@font-face {
	font-family: OpenSans;
	font-display: fallback;
	src: url(/images/fonts/open-sans.woff2) format('woff2');
}
@font-face {
	font-family: cinzel;
	font-display: swap;
	src: url(/images/fonts/cinzel.woff2) format('woff2');
}

:root {
	--bg: 		rgb(25,25,25);
	--bg-alt: 	rgb(50,50,50);

	--shadow: 	rgba(0,0,0,0.4);
	--shadow-dark:rgba(0,0,0,0.8);

	--red: 		rgb(200,50,50);
	--orange: 	rgb(250,100,0);
	--yellow: 	rgb(250,200,50);
	--green: 	rgb(50,200,50);
	--blue: 	rgb(0,100,200);

	--darkgrey: rgb(50,50,50);
	--lightgrey:rgb(100,100,100);
	--lite: 	rgb(250,250,250);
}

html, body {margin: 0;}

body {
	font-family: OpenSans, system-ui, Arial, Helvetica, sans-serif;
	background: var(--bg);
	font-size: 1em;
}

pre {
	font-family: OpenSans, system-ui, Arial, Helvetica, sans-serif;
	white-space: pre-wrap;
	text-wrap: wrap;
}


h1, h2, h3, h4, h5, h6 {}
p {}
a {}
a:hover {}

/* -grids- */
.grid {
    display: grid;
    row-gap: 20px;
    column-gap: 20px;
}
.x2 {grid-template-columns: auto auto;}
.x3 {grid-template-columns: auto auto auto;}
.x4 {grid-template-columns: auto auto auto auto;}
.x5 {grid-template-columns: auto auto auto auto auto;}
.x6 {grid-template-columns: auto auto auto auto auto auto;}
/* rigid grids */
.x2r {grid-template-columns: 1fr 1fr;}
.x3r {grid-template-columns: 1fr 1fr 1fr;}
.x4r {grid-template-columns: 1fr 1fr 1fr 1fr;}
.x5r {grid-template-columns: 1fr 1fr 1fr 1fr 1fr;}
.x6r {grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;}

.topbar {
	/* */
	width: 100%;
	padding: 0.8rem 0;
	font-size: 1rem;
	border-bottom: 1px solid var(--lightgrey);
	box-shadow: 0 1rem 0.6rem var(--shadow);
	background: var(--bg-alt);
	text-align: center;
	color: var(--lite);
	/* */
}
.topbar a {
	color: var(--lite);
	text-decoration: none;
}
.topbar a:hover {
	text-decoration: underline;
}

.desk {
	max-width: 1200px;
	min-height: 100vh;
	margin: 0 auto;
	padding-top: 2rem;
	font-size: 1rem;
	text-align: center;
	background: var(--bg);
	background-image: url("/images/desk.jpg");
	background-position: center top;
	background-repeat: no-repeat;
	background-size: contain;
	box-shadow: 0 1rem 0.6rem var(--shadow-dark);
	transition: transform 0.4s ease;
}
.desker {
	background-image: url("/images/wood.jpg");
}

.plate {grid-area: plate;}
.tablet {grid-area: tablet;}
.card {grid-area: card;}
.signs-cover {grid-area: signs}
.letter {grid-area: letter;}
.questions-cover {grid-area: questions;}
.leaflets {grid-area: leaflets;}

.desk-grid {
	display: grid;
	display: inline-grid;
	grid-template-areas:
		"plate tablet card"
		"signs letter questions"
		"leaflets . .";
	row-gap: 20px;
    column-gap: 20px;
	width: 100%;
}
@media only screen and (max-width:900px) {
	.desk-grid {
		grid-template-areas:
			"plate"
			"tablet"
			"letter"
			"card"
			"signs"
			"questions"
			"leaflets";
	}
}

/*
plate tablet card
signs-cover letter questions-cover
leaflets

.ui-grid {
	display: inline-grid;
	grid-gap: 0;
	grid-template-areas: "buttons canvas";
}
.buttons {
	grid-area: buttons;
}
.viewport {
	grid-area: canvas;
}
@media only screen and (max-width:900px) {
	.ui-grid {
		grid-gap: 10px;
		grid-template-columns: 1fr;
		grid-template-areas:"canvas"
							"buttons";
	}
}
*/

.topgrid {
	display: grid;
    row-gap: 20px;
    column-gap: 20px;
	grid-template-columns: 1fr 1fr 1fr;
	width: 100%;
}

.plate {
	position: relative;
	margin: 0rem auto;
	height: 3.5rem;
	width: 240px;
	padding-top: 1rem;
	margin-top: -12px;
	border-radius: 2px;
	font-family: cinzel, serif;
	font-weight: 500;
	font-size: 1.2rem;
	color: rgb(25,25,25);
	box-shadow: 0 0 2rem rgba(0,0,0,0.8),
				inset 0 2rem 2rem -2rem rgba(255,255,255,0.6);
	background: rgb(250,200,100);
	background-image:linear-gradient(180deg,
					rgb(250,200,100),
					rgb(250,200,125)
					);
	transform: translate(-0px, 0px) rotate(-1deg);
}
.plate:after {
	content: " ";
	display: inline-block;
	position: absolute;
	left: -5px;
	bottom: -1px;
	margin: 0;
	height: 1.2rem;
	width: 250px;
	border-radius: 2px;
	background: rgb(200,200,200);
	box-shadow: 0 0 2rem rgba(0,0,0,0.8);
	background-image:linear-gradient(180deg,
					rgb(200,200,200),
					rgb(200,200,200),
					rgb(100,100,100),
					rgb(200,200,200),
					rgb(150,150,150)
					);
}

.genPlate {
	position: relative;
	margin: 0rem auto;
	height: 3.5rem;
	width: 240px;
	padding-top: 1rem;
	margin-top: -12px;
	border-radius: 2px;
	font-family: cinzel, serif;
	font-weight: 500;
	font-size: 1.2rem;
	color: rgb(25,25,25);
	box-shadow: 0 0 2rem rgba(0,0,0,0.8),
				inset 0 2rem 2rem -2rem rgba(255,255,255,0.6);
	background: rgb(250,200,100);
	background-image:linear-gradient(180deg,
					rgb(250,200,100),
					rgb(250,200,125)
					);
	transform: translate(-0px, 0px) rotate(-1deg);
}
.genPlate:after {
	content: " ";
	display: inline-block;
	position: absolute;
	left: -5px;
	bottom: -1px;
	margin: 0;
	height: 1.2rem;
	width: 250px;
	border-radius: 2px;
	background: rgb(200,200,200);
	box-shadow: 0 0 2rem rgba(0,0,0,0.8);
	background-image:linear-gradient(180deg,
					rgb(200,200,200),
					rgb(200,200,200),
					rgb(100,100,100),
					rgb(200,200,200),
					rgb(150,150,150)
					);
}

.tablet {
	margin: 0rem auto;
	padding: 20px 20px;
	max-width: 400px;
	max-height: 205px;
	border-radius: 1rem;
	background: rgb(25,25,25);
	border: 1px solid rgb(100,100,100);
	outline: 1px solid rgb(125,125,125);
	box-shadow: 0 0 2rem rgba(0,0,0,0.8);
}
video {
	width: 360px;
	height: 204px;
}

.card {
	width: 350px;
	margin: 35px auto;
	padding: 1rem 1rem;
	font-size: 12px;
	font-size: 1rem;
	text-align: center;
	background: rgb(250,250,250);
	background-color: rgb(255,255,255);
	box-shadow: 0 0 1rem rgba(0,0,0,0.4);
	transition: all 0.4s ease;
	transform: scale(0.6) rotate(5deg) translate(-30%,0);
	position: relative;
	overflow: hidden;
	cursor: pointer;
	z-index: 1;
}
.card:hover {
	transform: scale(0.64) rotate(4deg) translate(-30%,0);
}
.card .socials {
	position: absolute;
	right: 0px;
	top: 0px;
	padding: 10px 10px 0 0;
}
.card .socials img {
	height: 24px;
	border-radius: 100px;
	border: 2px solid white;
	background: rgb(25,25,25);
	box-shadow: 0 0 5px rgba(0,0,0,0.4);
}
.card > img {
	width: 90%;
	margin: 28px auto 0 auto;
}
.card .grid {
	width: 100%;
}
.card p {
	text-align: left;
}
.card a.url {
	display: inline-block;
	position: relative;
	margin: 0rem auto;
	color: rgb(225,0,0);
	text-align: center;
}

.letter {
	height: 400px;
	width: 286px;
	margin: -48px auto 0 auto;
	padding: 1rem 32px;
	overflow: hidden;
	font-size: 12px;
	text-align: left;
	background: rgb(250,250,250);
	background-color: rgba(255,255,255,1.0);
	background-image: url("/images/vsl-letter.png");
    background-blend-mode: lighten;
	background-size: 350px 450px;
	background-repeat: no-repeat;
	box-shadow: 0 0 1rem rgba(0,0,0,0.4);
	transition: all 0.4s ease;
	transform: scale(1) rotate(-3deg) translate(0,0px);
	cursor: pointer;
	position: relative;
	z-index: 2;
}
.letter:hover {
	transform: scale(1.05) rotate(-2deg) translate(0,0);
}

.letter .logo {text-align: center}
.letter .logo {margin: auto}
.letter h2 {
	//margin-bottom: 20px;
	font-weight: normal;
	font-size: 12px;
	color: rgb(250,0,0);
}

.small {
	font-size: 8px;
}
.coverSig {
	width: 100px;
}
.indent {
	text-indent: 2em;
}

#extended, .extended {
	//opacity: 0.0;
	transition: all 0.4s ease-in-out;
	//display: none;
}

.serif {
	font-family: serif;
}


/* forms */
.landscape {
	/* height: 400px; */
	width: 500px;
	margin: 35px auto;
	padding: 1rem 32px;
	font-size: 16px;
	text-align: left;
	background: rgb(250,250,250);
	background-color: rgba(255,255,255,1.0);
    background-blend-mode: lighten;
	background-size: 350px 450px;
	background-repeat: no-repeat;
	box-shadow: 0 0 1rem rgba(0,0,0,0.4);
	transition: all 0.4s ease;
}
form input, form select, form textarea {
	padding: 0.4rem;
	border-radius: 0.2rem;
	border: 1px solid rgb(150,150,150);
}

textarea:focus,
input[type=text]:focus,
input[type=email]:focus,
input[type=select]:focus {
	outline: .1rem solid #3264c8;
	box-shadow: 0 0 .5em rgba(0,100,200,0.2) inset;
}

form button {
	border: none;
	padding: 0.4rem 1rem;
	font-weight: bold;
	border-radius: 0.2rem;
	color: rgb(250,250,250);
	background: rgb(0,100,200);
	cursor: pointer;
}

#generate {
	transition: 0.2s all ease;
	transform: translateY(0px);
}

.newURL {
	width: 95%;
	height: 1rem;
	padding: 0.6rem 0.4rem;
	font-size: 0.8rem;
	font-family: monospace;
	border-radius: 0.4rem;
	border: 1px solid rgb(150,150,150);
	background: rgb(225,225,225);
}

.copyToClip {
	display: block;
	position: relative;
	margin-top: -1.9rem;
	margin-right: 1rem;
	float: right;
	cursor: pointer;
	z-index: 5;
}

.copyToClip img {
	transition: 0.2s all ease;
	transform: translateX(0px);
}

.copyToClip img:hover {

}

#previewLetter {
	color: rgb(150,150,150);
	display: inline;
	height: 1rem;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* document covers */
.signs-cover {
	transition: all 0.4s ease;
	position: relative;
	z-index: 1;
}
.signs-cover a {
	cursor: default;
}
.signs-cover img {
	width: 65%;
	transition: all 0.4s ease;
	transform: scale(1) rotate(-25deg) translate(35%,-10%);
	box-shadow: 0 0 2rem rgba(0,0,0,0.6);
	cursor: pointer;
}
.signs-cover img:hover {
	transform: scale(1.05) rotate(-20deg) translate(35%,-10%);
	cursor: pointer;
}
.signs-doc {
	
}

.questions-cover {
	transition: all 0.4s ease;
	position: relative;
	z-index: 1;
}
.questions-cover a {
	cursor: default;
}
.questions-cover img {
	width: 60%;
	transition: all 0.4s ease;
	transform: scale(1) rotate(15deg) translate(-25%,0);
	box-shadow: 0 0 2rem rgba(0,0,0,0.6);
	cursor: pointer;
}
.questions-cover img:hover {
	transform: scale(1.05) rotate(12deg) translate(-25%,0);
	cursor: pointer;
}

.leaflets {
	transform-origin: center;
	margin-left: 15px;
}
.leaflet {
	width: 198px;
	height: 184px;
	padding: 8px 1px;
	text-align: center;
	color: rgb(25,25,25);
	transform-origin: center;
	transition: all 0.4s ease;
	background-repeat: no-repeat;
	background-size: 100%;
	box-shadow: 0 0 2rem rgba(0,0,0,0.6);
	cursor: pointer;
}
.leaflet:hover {
	//transform: scale(1.05) translate(-25px,-180px) rotate(1deg);
	box-shadow: 0 0 2rem rgba(0,0,0,0.6);
}
.leaflet .supertext {
	font-size: 0.8rem;
}
.leaflet .title {
	font-size: 0.8rem;
	font-weight: bold;
}
.leaflet .title-s {
	font-size: 0.8rem;
	font-weight: bold;
}
.blue-l {
	background-image: url("/images/leaflet.svg");
	transform: scale(1) translate(0px,-180px) rotate(-5deg);
	position: relative;
	z-index: 2;
}
.blue-l:hover {
	transform: scale(1.05) translate(0px,-180px) rotate(-8deg);
}
.green-l {
	background-image: url("/images/leaflet-green.svg");
	transform: scale(1) translate(-25px,-180px) rotate(-5deg);
	position: relative;
	z-index: 1;
}
.green-l:hover {
	transform: scale(1.05) translate(-25px,-180px) rotate(-2deg);
}

.dimmer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 5;
	opacity: 0.9;
	display: none;
	display: block;
	visibility: visible;
	visibility: hidden;
	background: rgba(0, 0, 0, 0.6);
	transition: opacity 0.65s ease;
}
.docDimmer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: 5;
	opacity: 0.9;
	display: none;
	display: block;
	visibility: visible;
	visibility: hidden;
	background: rgba(0, 0, 0, 0.6);
	transition: opacity 0.65s ease;
}

.docs {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 9;
	transform: translate(-50%, -50%) scale(0.0);
	width: 0px;
	height: 0x;
	border-radius: 0.2rem;
	background: rgb(250,250,250);
	transition: all linear 0.6s;
	box-shadow: 0 0 2rem rgba(0,0,0,0.8);
	visibility: hidden;
	overflow: hidden;
}
.docs:hover {

}

.docs iframe {
	border: none;
	width: 100%;
	height: 100%;
	opacity: 0.0;
	transition: opacity 0.6s;
}

.close-button {
	position: absolute;
	top: 0;
	left: 0;
	width: 24px;
	height: 24px;
	margin: 4rem 0.6rem;
	border: 2px solid white;
	border-radius: 100px;
	box-shadow: 0 0 5px rgba(0,0,0,0.4);
	background-repeat: no-repeat;
	background-color: black;
	background-image: url("/images/close-x.svg");
	background-size: 100%;
	cursor: pointer;
	z-index: 9;
}


/* Phones */
@media only screen and (max-width:860px) {
	body {
		//background-image: url("/images/wood.jpg");
	}
	.topgrid {
		display: block;
		grid-template-columns: 1fr;
	}
	.desk {
		padding-top: 1rem;
		box-shadow: none;
		max-width: 100vw;
		background-image: url("/images/wood.jpg");
		background-repeat: repeat-y;
	}
	.desker {
		display: none;
		height: 1250px;
		background-image: url("/images/wood.jpg");
		box-shadow: none;
	}
	.plate {
		position: relative;
		margin: 1rem auto 0.4rem auto;
		height: 3.5rem;
		width: 240px;
		padding-top: 1rem;
		margin-top: -5px;
		transform: translate(-0px, 0px) rotate(-0deg);
	}
	.tablet {
		width: 99%;
		padding: 1rem 0 1rem 0;
		max-width: 100%;
    	max-height: 100%;
	}
	video {
			width: 90%;
			height: 100%;
	}

	.card {
		width: 86%;
		font-size: 0.9rem;
		padding: 1rem 0.4rem 1rem 1rem;
		transform: scale(1) rotate(0deg) translate(0px,0px);
	}
	.card:hover {
		transform: scale(1) rotate(0deg) translate(0,0);
	}
	.card .socials img {
		height: 28px;
	}
	.card > img {
		margin: 32px auto 0 auto;
	}

	.letter {
		height: 100%;
		width: 86%;
		margin: 1rem auto;
		padding: 0.4rem 1rem;
		font-size: 1rem;
		background: rgb(250,250,250);
		transform: scale(1) rotate(0deg) translate(0,0px);
		cursor: pointer;
	}
	.letter:hover {
		transform: scale(1) rotate(0deg) translate(0,0);
	}

	.close-button {
		top: 0;
		left: 0;
		margin: 5px 5px;
		width: 32px;
		height: 32px;
	}

	.signs-cover img {
		width: 90%;
		transition: all 0.4s ease;
		transform: scale(1) rotate(-3deg) translate(0%,0%);
		box-shadow: 0 0 2rem rgba(0,0,0,0.6);
		cursor: pointer;
	}
	.signs-cover img:hover {
		transform: scale(1) rotate(0deg) translate(0%,0%);
		cursor: pointer;
	}

	.questions-cover img {
		width: 80%;
		transition: all 0.4s ease;
		transform: scale(1) rotate(3deg) translate(0,0);
		box-shadow: 0 0 2rem rgba(0,0,0,0.6);
		cursor: pointer;
	}
	.questions-cover img:hover {
		transform: scale(1) rotate(0deg) translate(0,0);
		cursor: pointer;
	}

	.leaflets {
		margin-left: 0px;
		column-gap: 0px;
	}
	.leaflet {
		width: 99%;
		padding: 1px 0px;
		cursor: pointer;
	}
	.leaflet .title-s {
		font-size: 0.75rem;
	}

	.blue-l {
		transform: scale(1) translate(0px,0px) rotate(0deg);
	}
	.green-l {
		transform: scale(1) translate(0px,0px) rotate(0deg);
	}

	.landscape {
		width: 80vw;
	}
	#generator .x2 {
		grid-template-columns: auto;
	}
}

/* Tablets */
@media only screen and (min-width:541px) and (max-width:900px) {
	.desk {
		max-width: 100vw;
	}
	.tablet {
		padding: 2rem 0 2rem 0;
	}
	.card {
		width: 86%;
		font-size: 1.6rem;
		padding: 1rem 0rem 2rem 3rem;
		margin: 5rem auto 5rem auto;
	}
	.card .socials {
		padding: 20px 20px 0 0;
	}
	.card .socials img {
		height: 36px;
	}
	.card > img {
		margin: 48px auto 0 auto;
	}
	.letter {
		width: 90%;
		font-size: 1.2rem;
	}
	.close-button {
		width: 32px;
		height: 32px;
	}
	.leaflet {
		min-height: 360px;
		padding-top: 1.6rem;
	}
	.leaflet .supertext {
		font-size: 1.6rem;
	}
	.leaflet .title {
		font-size: 1.6rem;
	}
	.leaflet .title-s {
		font-size: 1.6rem;
	}
}


/*
@media only screen and (min-height:720px) and (-webkit-device-pixel-ratio:1.5) {
	html {font-size: 1.2em}
}
@media only screen and (min-height:900px) and (-webkit-device-pixel-ratio:1.5) {
	html {font-size: 1.5em}
}
@media only screen and (min-height:900px) and (-webkit-device-pixel-ratio:1.25) {
	html {font-size: 1.5em}
}
@media only screen and (min-height:1080px) and (-webkit-device-pixel-ratio:1.25) {
	html {font-size: 2em}
}
@media only screen and (min-height:1080px) and (-webkit-device-pixel-ratio:1) {
	html {font-size: 1.5em}
}
@media only screen and (min-height:1440px) and (-webkit-device-pixel-ratio:1) {
	html {font-size: 2.2em}
}
*/