@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:100,300,400,600,900&display=swap');
@import url('https://fonts.googleapis.com/css?family=Uncial+Antiqua');
@font-face {
  font-family: "Lorem ipsum";
  src: url(Loremipsum-Regular.woff);
  font-weight: normal;
}
:root {
	--background-color: 				rgb(255,255,255);
	--background-color-translucent: 	rgba(255,255,255,.5);
	--header-color: 					rgba(0,0,0,.75);
	--text-color: 					rgba(0,0,0,1);
	--divider-color: 				rgba(0,0,0,.25);
	--neutral-color: 				rgba(0,0,0,.5);
	--pale-color: 					rgba(0,0,0,.025);
	
	--anfang:						'Uncial Antiqua', cursive;
	
	--refraction-day-1:				rgba(255,160,180,.5);
	--refraction-day-2:				rgba(255,127,50,.75);
	--refraction-night-1:			rgba(160,140,210,.25);
	--refraction-night-2:			rgba(255,127,180,.25);
	}
@keyframes fade-in {
	0% {
		opacity: 0;
		}
	100% {
		opacity: 1;
		}
	}
@keyframes fade-out {
	0% {
		opacity: 1;
		}
	100% {
		opacity: 0;
		}
	}
@keyframes keep-alive {
	0% {
		opacity: 1;
		}
	100% {
		opacity: 1;
		}
	}
	
html {
	background: #fff;
}

html, body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: auto;
	font-family: 'Lorem ipsum', 'Source Sans Pro', sans-serif;
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 1.4vw;
	overflow-x: hidden;
	}
	#page {
		position: absolute;
		width: 100vw;
		height: 100vh;
		z-index: -1000;
/* 		background-position: center center; */
		background-size: cover;
		background-size: 100vw 65vmax;
		background-repeat: no-repeat;
		animation: fade-in 3s 1;
		}
		#page.day {
/*
			background-image: 
			linear-gradient(
				-180deg,
				rgba(255,255,255,0) 60%, 
				rgba(245,245,245,1) 70%), 
			radial-gradient( 
				circle at 51.25% 32.25%,
				rgb(250,240,180) 10%, 
				rgb(250,250,240) 36%,
				rgb(180,230,255) 50%,
				rgb(80,180,230) 70%
				); 
*/
/*
			background-image: 
			linear-gradient(
				-180deg,
				rgba(50,200,255,.25) 0%, 
				rgba(50,170,255,.75) 40%, 
				rgb(50,150,255) 50%, 
				rgb(50,150,255) 60%,
				rgba(50,150,255,0) 80%); 
*/
			background-image: 
			linear-gradient(
				-180deg,
				rgba(255,200,50,.75) 0%, 
				rgba(255,200,50,.5) 40%,  
				rgba(255,220,150,.5) 60%,  
				rgba(255,255,255,1) 100%
				); 
			background-image: 
			linear-gradient(
				-180deg,
				rgba(100,200,250,.75) 0%, 
				rgba(200,200,200,.5) 40%,  
				rgba(255,220,150,.5) 60%,  
				rgba(255,255,255,1) 100%
				); 
			}
			#page.day.refraction {
/*
				background-image: 
				linear-gradient(
					rgba(255,255,255,0) 25%, 
					var(--refraction-day-1) 50%,
					var(--refraction-day-2) 60%), 
				radial-gradient( 
					circle at 51.25% 32.25%,
					rgb(250,240,180) 10%, 
					rgb(250,250,240) 36%,
					rgb(180,230,255) 50%,
					rgb(80,180,230) 70%
					); 
*/
				background-image: 
				linear-gradient(
					-180deg,
					rgba(255,220,50,.125) 0%, 
					rgba(255,150,50,.75) 40%,  
					rgba(255,50,50,.5) 60%,  
					rgba(255,255,255,1) 100%
					); 
				}
		#page.night {
/*
			background-image: 
			linear-gradient(
				-180deg,
				rgba(255,255,255,0) 60%, 
				rgba(245,245,245,1) 70%), 
			radial-gradient( 
				circle at 52.25% 33.25%,
				rgb(240,230,210) 18%,
				rgb(110,140,150) 35%,
				rgb(50,110,130) 45%,
				rgb(0,100,130) 50%,
				rgb(0,30,50) 90%
				); 
*/
			background-image: 
			linear-gradient(
				180deg,
				rgb(0,0,10) 0%,
				rgb(0,30,50) 20%,
				rgb(0,120,130) 60%, 
				rgb(255,255,255) 100%); 
			}
			#page.night.refraction {
/*
				background-image: 
				linear-gradient(
					rgba(0,0,0,0), 
					var(--refraction-night-1) 55%, 
					var(--refraction-night-2) 60%), 
				radial-gradient( 
					circle at 52.25% 33.25%,
					rgb(240,230,210) 18%,
					rgb(110,140,150) 35%,
					rgb(50,110,130) 45%,
					rgb(0,100,130) 50%,
					rgb(0,30,50) 90%
					);
*/ 
/*
				background-image: 
				linear-gradient(
					rgba(0,0,0,0), 
					var(--refraction-night-1) 55%, 
					var(--refraction-night-2) 60%),
					rgba(255,255,255,1) 100%);
*/
/*
			background-image: 
			linear-gradient(
				180deg,
				rgb(0,20,50) 0%,
				rgb(150,100,130) 40%,
				rgb(200,150,100) 60%,
				rgb(255,255,255) 100%); 
				}
*/
			background-image: 
			linear-gradient(
				180deg,
				rgb(50,150,180) 0%,
				rgb(180,110,140) 40%,
				rgb(220,150,100) 60%,
				rgb(255,255,255) 100%); 
				}
		#stellar.day {
			background-image: 
			radial-gradient( 
				circle at 51% 42.5%,
				rgba(255,255,50,.5) 15%,
				rgba(255,255,200,.5) 20%,
				rgba(255,255,200,.5) 28%,
				rgba(255,255,255,0) 35%
				); 
			}
		#stellar.night {
/*
			background-image: 
			radial-gradient( 
				circle at 52.25% 33.25%,
				rgb(240,230,210) 18%,
				rgb(110,140,150) 35%,
				rgb(50,110,130) 45%,
				rgb(0,100,130) 50%,
				rgb(0,30,50) 90%
				); 
*/
/*
			background-image: 
			radial-gradient( 
				circle at 51% 42.5%,
				rgba(255,255,250,1) 18%,
				rgba(255,255,200,.25) 30%,
				rgba(255,255,200,0) 40%,
				rgba(255,255,255,0) 90%
				); 
*/
			}

/*	—————————————————————
	Text
	*/
	h1, p {
		margin: 0;
		}
		h1 { 
			padding: .5em 0;
			font-size: 3rem;
			font-weight: 600;
			}
		h2 { 
			padding: 4em 0 0;
			font-size: 1.5rem;
			font-weight: 400;
			text-align: center;
			}
		p { 
			padding: .75rem 0 .75rem 0; 
			font-size: 1rem;
			font-weight: 300;
			line-height: 1.5rem;
			}
	em {
		font-style: normal;
		text-transform: uppercase;
		font-size: .75em;
		opacity: .5;
		}
	
	a:link, a:visited {
		color: black;
		transition: .1s all ease-in-out;
		}
		a:hover, a:active {
			color: rgb(0,150,255);
			}
			.dark p a:link, .dark p a:visited {
				color: white;
				}
				.dark p a:hover, .dark p a:active {
					color: rgb(0,150,255);
					}
img { 
	max-width: 100%;
	}
		
hr {
	width: 50%;
	margin: 0 auto;
	border: none;
	border-top: 1px solid rgba(255,255,255,.75);
	border-bottom: 1px solid rgba(0,0,0,.25);
	opacity: .25;
	}
		
section {
	width: inherit;
	float: left;
	}
	section:after {
		clear: both;
		}

.top, .right, .bottom, .left { 
	position: absolute; 
	width: 100%; 
	text-align: center;
	}
	.top { 
		top: 0; 
		}
	.right {
		right: 0;
		}
	.bottom {
		bottom: 0;
		}
	.left {
		left: 0; 
		}

/*
.display { 
	position: fixed;
	width: 100vw;
	height: 100vh;
	box-shadow: inset 0 0 20em black;
	opacity: .025;
    -webkit-animation: distortion .05s infinite;
    }
	@-webkit-keyframes distortion { 
		50% { background-image: url("pixel-crt.png"); } 
		}
*/
body > section {
/* 	min-height: 50vw; */
	}
	
.group {
	position: relative;
	margin: 0 auto;
	width: calc(100vw + 2px);
	margin-left: -1px;
	min-height: calc(50vw + 2px);
	float: left;
	}
	.layer {
		position: absolute;
		width: 100%;
		min-height: 50vw;
		height: calc(100% + 1px);
		}
		.fore, .base, .back, .deep {
			background-size: contain;
			background-repeat: no-repeat;
			background-position-x: center;
			transition: .1s transform ease;
			will-change: transform;
			transition-delay: 0;
			overflow: visible;
			}
			.fore {
				z-index: 10;
				animation: fade-in 5s;
				animation-iteration-count: 1;
				}
			.base {
				z-index: 0;
				}
			.back {
				z-index: -10;
				animation: fade-in 1s;
				animation-iteration-count: 1;
				}
			.deep {
				z-index: -100;
				animation: fade-in 3s 1, keep-alive .5s infinite;
				overflow: visible; 
				}
				

	.group.content, .group.content > .base {
		position: relative;
		display: block;
		height: auto;
		}
		#group-1 {
			}
			#group-1 > * {
				background-position-y: bottom;
				}
				
			#group-1 > .base { 
				background-image: url("1_Base.png"); 
				}
				.spring ~ #group-1 > .base, 
				.summer ~ #group-1 > .base, 
				.autumn ~ #group-1 > .base, 
				.winter ~ #group-1 > .base {
					background-image: linear-gradient(
						180deg,
						rgb(100,100,100),
						rgb(50,50,50)
					);
					-webkit-mask-size: contain;
					-webkit-mask-repeat: no-repeat;
					-webkit-mask-position: bottom;
				}
				
				.spring ~ #group-1 > .base { 
					-webkit-mask-image: url("seasons/1_Base-spring.png"); 
					}
				.summer ~ #group-1 > .base { 
					-webkit-mask-image: url("seasons/1_Base-summer.png"); 
					}
				.autumn ~ #group-1 > .base { 
					-webkit-mask-image: url("seasons/1_Base-autumn.png"); 
					}
				.winter ~ #group-1 > .base { 
					-webkit-mask-image: url("seasons/1_Base-winter.png"); 
					}
			#group-1 > .back { 
				background-image: url("1_Back.png"); 
				border-bottom: 10em solid rgb(77,77,77);
					background-image: linear-gradient(
						180deg,
						rgb(100,120,100),
						rgb(55,55,55)
					);
					-webkit-mask-size: contain;
					-webkit-mask-repeat: no-repeat;
					-webkit-mask-position: center;
					-webkit-mask-image: url("seasons/1_Back-autumn.png"); 
				}
				.autumn ~ #group-1 > .back { 
/* 					background-image: url("seasons/1_Back-autumn.png");  */
					}
				.rain ~ #group-1 > .back { 
					-webkit-mask-image: url("weather/rain.png");
					-webkit-mask-type: luminance;
					-webkit-mask-size: cover;
					mask-image: url("weather/rain.png");
					mask-type: luminance;
					mask-size: cover;
					animation: rain 2s linear infinite ;
					}
					@keyframes rain {
						0% 		
						{
							-webkit-mask-position: 0 0;
							mask-position: 0 0;
							}
						50%
						{
							-webkit-mask-position: 0 1000px;
							mask-position: 0 1000px;
							}
						100%
						{
							-webkit-mask-position: 0 2500px;
							mask-position: 0 2500px;
							}
						}
			#group-1 > .deep { 
				will-change: opacity;
				background: rgba(255,255,255,0);
				mix-blend-mode: screen; 
				background-blend-mode: screen;
				/*
				normal
				multiply
				screen
				overlay
				darken
				lighten
				color-dodge
				color-burn
				hard-light
				soft-light
				difference
				exclusion
				hue
				saturation
				color
				luminosity
				*/
				}
				#group-1 > .deep img#stellar {
					}
					
					.day + #group-1 > .back {
						background-image: linear-gradient(
							180deg,
							rgb(160,200,220),
							rgb(55,55,55)
						);
					}
					.day.refraction + #group-1 > .back {
						background-image: linear-gradient(
							180deg,
							rgb(180,120,100),
							rgb(55,55,55)
						);
					}
					.night + #group-1 > .back {
						background-image: linear-gradient(
							180deg,
							rgb(60,120,140),
							rgb(55,55,55)
						);
					}
					.night.refraction + #group-1 > .back {
						background-image: linear-gradient(
							180deg,
							rgb(180,100,140),
							rgb(55,55,55)
						);
					}
			
		#group-2 {  
/* 			box-shadow: inset 0 8em 5em -5em rgb(77,77,77); */
			}
			#group-2 > * {
				background-position-y: top;
				}

			#group-2 > .base { background-image: url("2_Base.png"); margin-top: -3px;}
			
		#group-3 {
			}
			#group-3 > * {
				background-position-y: top;
				}
				
		#group-4 {
			}
			#group-4 > * {
				background-position-y: top;
				}

			#group-4 > .base { background-image: url("3_Base.png"); margin-top: -3px;}
			
			#group-4 > .back { background-image: url("grid.png"); margin-top: -3px;
			
			image-rendering: pixelated;
			background-size: contain;
			z-index: -1;
			}
			
	.group.content, .group.content > .layer {
		min-height: 50vw;
		height: auto;
		}
		.content {
			display: block;
			max-height: auto;
			overflow: hidden;
			}
			div#welcome {
				position: relative;
				top: 0;
				height: inherit;
				}
	section.dark {
		background-color: rgb(20,20,20);
		color: rgb(235,235,235);
		}
	section.light {
		background-color: rgb(245,245,245);
		background-color: rgb(230,230,230);
		color: rgb(20,20,20);
		}
		
	
article {
	float: left;
	position: relative;
	top: auto;
	display: block;
	}
	
	article.introduction {
		width: 50%;
		margin: 15em 25% 0;
/* 		text-shadow: 1px 1px 2px rgba(0,255,255,.5), -1px -1px 2px rgba(255,0,255,.5); */
		}
		article.introduction h2 {
			margin-top: 4em;
			}
		article.introduction p {
			text-align: left;
			}
			
			.introduction div:nth-of-type(1) p:nth-of-type(1)::first-letter {
				display: inline-block;
				width: 1em;
				height: 1em;
				margin-right: .125em;
				font-size: 4em;
				line-height: .95em;
				text-align: center;
				float: left;
				border: 1px solid rgba(255,255,255,.25);
				background: rgba(255,255,255,.125);
				font-family: var(--anfang);
				}
			.introduction div:nth-of-type(2) {
				width: 70%;
				margin-left: calc(-25% + 1em);
				float: left;
				}
			.introduction div:nth-of-type(3) {
				width: 70%;
				margin-right: calc(-25% + 1em);
				float: right;
				}
			
	article.portfolio {
		margin-bottom: 2em;
		padding: 0 1em;
		display: grid;
		grid-template-columns: repeat(3, calc(100% / 3) [col-start]);
/*
		color: rgba(255,255,255,.25);
		color: rgba(255,255,255,.9);
*/
/* 		animation: fade-in 3s infinite; */
		}
		article.portfolio > section {
			z-index: 100;
			position: relative;
/* 			height: calc(100% / 2); */
/* 			overflow-y: scroll; */
			margin: 0;
			display: flex;
			flex-flow: row wrap;
			}
			article.portfolio section .project {
				z-index: 100;
				position: relative;
				}
		article.portfolio h3 {
			text-align: center;
			font-weight: 400;
			margin: 0;
			padding: 2em 2em 0;
			flex: 2 0 0;
			min-width: calc(100% - 4em);
			}
		article.portfolio .tag, article.portfolio ul.tags {
			opacity: 0;
			}
			article.portfolio .tag {
				top: 2em;
				}
		article.portfolio .project a img {
			max-width: 90%;
 			max-height: 11em; 
			margin: 0 auto;
			display: block;
/* 			opacity: .75; */
			}
/*
		article.portfolio .project:hover {
			z-index: 100000;
			transform: scale(2);
			transform-origin: top center;
			transition: .25s all ease-in-out;
			border-radius: .5em;
			background: black;
			}
*/
		article.portfolio section:hover h3 {
/* 			text-align: left; */
		}
		article.portfolio section:hover a img {
/* 			opacity: 1; */
			transition: .5s opacity ease-in-out;
			}
		article.portfolio section .project:hover .tags {
			opacity: 1;
			transition: .5s all ease-in-out;
			transform: translateY(1.5em);
			}
		article.portfolio > section > .project {
			flex: 1 1 0;
			margin: 1em 1em 0;
			padding-top: 2em;
/* 			border: 1px solid white; */
			border: 1px solid rgba(255,255,255,.1);
			border-radius: 1em;
			}
		article.portfolio h3 {
			opacity: .25;
			}
		article.portfolio > section:hover h3 {
/* 			color: white; */
			opacity: 1;
			transition: .5s opacity ease-in-out;
			}
		article.portfolio > section:hover > .project {
			background: rgba(127,127,127,.1);
			border: 1px solid rgba(127,127,127,.5);
			}
			#acidmasters {
				grid-column: 2 / span 2;
				}
		
.tags {
	z-index: 1000;
	display: flex;
	justify-content: center;
	margin: .5em auto;
	text-align: center;
	padding: 0;
	list-style: none;
	font-size: .75em;
	font-weight: 300;
	}
	.tags li, .tags img, .tag {
		margin-left: .25rem;
		margin-right: .25rem;
		padding: .25rem .5rem;
		height: 1rem;
		background: rgba(127,127,127,.75);
		background: rgb(50,50,50);
		background: rgb(245,245,245);
		line-height: 1rem;
		border: 1px solid rgba(127,127,127,.5);
		border-radius: .25rem;
/* 		opacity: .5; */
		color: rgba(0,0,0,.75);
		}
		.tags img {
			padding: 0;
			height: 1.5rem;
			opacity: 1;
			}
		.tag {
			position: absolute;
			top: 1em;
			right: 1em;
			margin: 0;
			float: right;
			line-height: 1em;
			opacity: .2;
			}
			img.tag {
				height: 2em;
				padding: 0;
				top: .75em;
				}
			

	
	
footer {
	position: relative;
	z-index: 100;
	width: 100vw;
	padding: 4em 0;
	float: left;
	text-align: center;
	background-color: rgb(245,245,245);
	background: linear-gradient(180deg, rgb(230,230,230), rgb(245,245,245) 50%, rgb(255,255,255));
	color: rgb(20,20,20);
	}
	footer p {
		padding: .5em 1em;
		}
	footer hr {
		margin-top: 1em;
		margin-bottom: 1em;
		}
	footer img {
/* 		margin-top: -50%; */
		min-width: 5em;
		max-width: 90%;
		padding: .5em 1em;
		}
	
.columns {
	width: 100%;
	display: flex;
	align-items: center;
	}
	.columns > * {
		flex: 1;
		}
	
	
	#reset:link, #reset:visited {
		z-index: 1000000;
		display: block;
		position: fixed;
		bottom: -4em;
		left: calc(50% - 1em);
		width: 2em;
		height: 2em;
		transform: rotate(-45deg);
		background: rgba(255,255,255,.25);
		color: white;
		line-height: .75em;
		font-size: 1.5em;
		border: 1px solid black;
		border-radius: 0 .25em 0 0;
		opacity: .25;
		box-shadow: 
		0 0 .5em 0 rgba(255,255,255,1);
		}
		#reset:hover {
			opacity: 1;
			background: rgba(0,0,0,.1);
			box-shadow: inset 0 0 .25em 0 rgb(0,0,0), 
			inset 0 0 1em 0 rgba(0,0,0,.5), 
			0 0 .5em 0 rgba(255,255,255,1);
			border: 1px solid white;
			}
		#reset.fixed-to-bottom {
			bottom: calc(-1em - 1px);
			}
	#links {
		}
		#links > a img {
			width: 50%;
			opacity: .125;
			transition: .25s opacity ease-in-out;
			}
			#links > a:hover img {
				opacity: 1;
				}
	#gaming {
		}
		#gaming img, #social img {
			position: relative;
			min-width: 1em;
			width: 2em;
			padding: 0;
			opacity: .25;
			transition: .25s opacity ease-in-out;
			}
			#gaming img:hover, #social img:hover {
				opacity: 1;
				}
			#gaming img::after {
				content: attr(aria-label) ": ";
				position: absolute;
				top: 1em;
				left: 0;
				}
				
				
	
.clear {
	clear: both;
	height: 0;
	border: none;
	padding: 0;
	margin: 0;
	}
	
	
.byline {
	opacity: .25;
	}
	
.pro-tip {
	position: absolute;
	top: 2em;
	right: 2em;
	width: 10em;
	}

.lazy-anchor {
	z-index: -10000;
	height: 1px;
	width: 1px;
	background: transparent;
	position: absolute;
/* 	bottom: calc(50% - .5px); */
/* 	top: calc(100vh - 1px); */
	bottom: 0;
	left: calc(50% - .5px);
	
/*
	width: 2px;
	height: 2px;
	z-index: 10000;
	background: red;
*/
	}
		
header {
	z-index: 10000;
	position: absolute;
	top: 0;
	left: 0;
	width: calc(100vw + 1px);
	padding: .5em 0;
	background: rgba(50,50,50,0);
/* 	background: linear-gradient(rgb(50,50,50),rgba(50,50,50,0)); */
	}
	header #logotype img {
		position: absolute;
		top: .25em;
		right: 2em;
		height: 5em;
		transform: rotate(-6deg);
		animation: fade-in 3s;
		animation-iteration-count: 1;
	}
	nav {
		width: 50vw;
		font-weight: 100;
/* 		font-family: 'Oswald', sans-serif; */
		}
		nav ul {
			display: flex;
				list-style: none;
				padding: .25em .5em;
				margin: 0;
		animation: fade-in 3s;
		animation-iteration-count: 1;
			}
			nav ul li {
				margin: 0 .5em;
				flex: 1 1 auto;
				max-width: 10em;
				text-align: center;
				border-radius: .25em;
				overflow: hidden;
/* 				box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); */
				border: 1px dotted rgba(255,255,255,.1);
					border-radius: .25em;
				}
				nav ul li a:link, nav ul li a:visited {
					display: block;
					width: 100%;
					height: 100%;
					padding: .5em 0;
						color: white;
					background: rgba(50,50,50,.5);
					opacity: .5;
					text-decoration: none;
					border-radius: .125em;
					}
					nav ul li a:hover, nav ul li a:active {
						background: rgb(0,150,255);
						color: white;
						opacity: 1;
						}
					nav ul li a:before {
						}
				
.fixed-to-top {
	position: fixed;
	top: 0;
	left: 0;
	background: rgba(0,0,0,.2);
	background: linear-gradient(6deg, rgba(0,0,0,.1) 50%, rgba(0,0,0,1) 100%);
	background: rgba(50,50,50,1);
	background: transparent;
	background: rgba(0,0,0,1);
	border-bottom: 1px solid rgba(255,255,255,.25);
	transition: .5s background ease-in-out;
	}
	.fixed-to-top > a {
		transition: 0 all ease-in;
	}
	.fixed-to-top nav ul {
		}
	.fixed-to-top nav ul li {
/* 		box-shadow: inset 0 0 0 1px rgba(255,255,255,.5); */
		border: 1px solid rgba(255,255,255,.5);
		}
		.fixed-to-top nav ul li:hover {
/* 			box-shadow: inset 0 0 0 1px transparent; */
			border: 1px solid rgb(0,150,255);
			}
	.fixed-to-top nav ul li a:link, .fixed-to-top nav ul li a:visited {
		background: rgba(0,0,0,.75);
		background: transparent;
		opacity: 1;
		}
	.fixed-to-top nav ul li a:hover, .fixed-to-top nav ul li a:active {
		background: rgb(0,150,255);
		color: white;
		}
	.fixed-to-top #logotype img {
/* 		height: 4em; */
		opacity: 1;
		transform: rotate(0deg);
		}
	
#sinister {
	animation: fade-in 20s infinite;
	animation-delay: 10s;
	opacity: 0;
	}
	
.eyes {
	width: 64px;
	height: 64px;
	background: url('Eyes.png') left center;
	background-size: cover;
	animation: eyes-blink .5s steps(10) infinite alternate, eyes-fade 10s infinite, eyes-scale 15s infinite alternate;
	z-index: 100000;
	position: absolute;
/* 	background-position: calc(640px + 64px); */
	opacity: 0;
	}
	.eyes:nth-of-type(1) {
		top: 100%;
		left: 5%;
		animation-delay: 3s;
		}
	.eyes:nth-of-type(2) {
		top: 70%;
		left: 10%;
		animation-delay: 6s;
		animation: eyes-blink 1s steps(10) infinite alternate, eyes-fade 20s infinite, eyes-scale 30s infinite alternate;
		}
	.eyes:nth-of-type(3) {
		top: 90%;
		right: 5%;
		animation-delay: 9s;
		animation: eyes-blink 1.5s steps(10) infinite alternate, eyes-fade 30s infinite, eyes-scale 60s infinite reverse alternate;
		}

@keyframes eyes-blink {
	0% { background-position: 0; }
	100% { background-position: -640px; }
}
@keyframes eyes-fade {
	0%, 18% { opacity: 1; }
	20%, 100% { opacity: 0; }
}
@keyframes eyes-scale {
	0% { transform: scale(1); }
	50% { transform: scale(.75); }
	100% { transform: scale(.5); }
}
.paint {
	position: absolute;
	transform: scale(.5);
}
@media (max-width: 990px) {
	.paint {
		transform: scale(.5) translate(-2vmax,-1vmax); 
	}
}
@media (max-width: 600px) {
	.paint {
		transform: scale(.4) translate(-4vmax,-4vmax); 
	}
}
.drip {
	width: 64px;
	height: 768px;
	background: url('dripping.png') left center;
	background-size: cover;
	animation: dripping 1.5s steps(12) infinite;
	z-index: 100000;
	position: absolute;
/* 	background-position: calc(640px + 64px); */
	opacity: 1;
	pointer-events: none;
	}
	.paint:nth-of-type(1) {
		top: 69.5%;
		left: 26.75%;
		}
	.paint:nth-of-type(2) {
		top: 57%;
		left: 53%;
		}
	.paint:nth-of-type(3) {
		top: 46.5%;
		left: 95%;
		transform: scale(.8);
		}
	.paint:nth-of-type(4) {
		top: 38.5%;
		left: 77.5%;
		}
	.paint:nth-of-type(5), .paint:nth-of-type(6), .paint:nth-of-type(7) {
		top: 56%;
		left: 54%;
		}
		.paint:nth-of-type(1) .drip,
		.paint:nth-of-type(4) .drip,
		.paint:nth-of-type(6) .drip {
			animation-delay: 0s;
			}
		.paint:nth-of-type(2) .drip,
		.paint:nth-of-type(7) .drip {
			animation-delay: 2s;
			}
		.paint:nth-of-type(3) .drip,
		.paint:nth-of-type(5) .drip {
			animation-delay: 1s;
			}
@keyframes dripping {
	0% { background-position: 0; }
	100% { background-position: -768px; }
}
	
.bat {
	width: 64px;
	height: 64px;
	background: url('Bat.png') left center;
	background-size: cover;
	animation: bat-fly .5s steps(10) infinite alternate, travel-horizon-right 15s infinite ;
	will-change: transform;
	z-index: 10;
	position: absolute;
/* 	background-position: calc(640px + 64px); */
	opacity: 1;
	}
.bat:nth-of-type(1) {
	animation: bat-fly .5s steps(10) infinite , 
	travel-horizon-right 30s infinite;
	}
.bat:nth-of-type(2) {
	animation: bat-fly .5s steps(10) infinite , 
	travel-horizon-right-2 14s infinite;
	}
.bat:nth-of-type(3) {
	animation: bat-fly .5s steps(10) infinite ,
	travel-horizon-right-3 12s infinite;
	}

@keyframes bat-fly {
	0% { background-position: 0; }
	100% { background-position: -640px; }
	}

@keyframes travel-horizon-right {
	0% { transform: translate(-80vw,50vmin) scale(1); }
	50% { transform: translate(200vw,40vmin) scale(.5); }
	75% { transform: translate(20vw,20vmin) scale(1); }
	100% { transform: translate(-80vw,50vmin) scale(2); }
	}

@keyframes travel-horizon-right-2 {
	0% { transform: translate(-40vw,70vmin) scale(1); }
	30% { transform: translate(20vw,30vmin) scale(.5); }
	100% { transform: translate(130vw,50vmin) scale(2); }
	}

@keyframes travel-horizon-right-3 {
	0% { transform: translate(-60vw,60vmin) scale(.5); }
	80% { transform: translate(95vw,30vmin) scale(.5); }
	100% { transform: translate(100vw,20vmin) scale(.125); }
	}

@keyframes travel-horizon-left {
	0% { transform: translate(150vw,0); }
	100% { transform: translate(-50vw,20vh); }
}
		
		
@media only screen and (max-width: 600px) {
	html, body {
		font-size: 4vw;
		}
/*
		#page.day {
			background-image: 
			linear-gradient(
				-180deg,
				rgba(255,255,255,0) 50%, 
				rgba(245,245,245,1) 60%), 
			radial-gradient( 
				circle at 49.25% 19.75%,
				rgba(240,200,120,.5) 12%, 
				rgba(250,250,230,.5) 20%,
				rgb(180,230,255) 28%,
				rgb(80,180,230) 70%
				); 
			}
			#page.day.refraction {
				background-image: 
				linear-gradient(
					rgba(255,255,255,0) 20%, 
					var(--refraction-day-1) 35%,
					var(--refraction-day-2) 45%), 
				radial-gradient( 
					circle at 49.25% 19.75%,
					rgba(240,200,120,.5) 12%, 
					rgba(250,250,230,.5) 20%,
					rgb(180,230,255) 28%,
					rgb(80,180,230) 70%
					); 
				}
		#page.night {
			background-image: 
			linear-gradient(
				-180deg,
				rgba(255,255,255,0) 50%, 
				rgba(245,245,245,1) 60%), 
			radial-gradient( 
				circle at 49.25% 19.25%,
				rgb(240,230,210) 12%,
				rgb(110,140,150) 25%,
				rgb(50,110,130) 35%,
				rgb(0,100,130) 50%,
				rgb(0,30,50) 90%
				); 
			}
			#page.night.refraction {
				background-image: 
				linear-gradient(
					rgba(0,0,0,0), 
					var(--refraction-night-1) 25%, 
					var(--refraction-night-2) 35%), 
				radial-gradient( 
					circle at 49.25% 19.25%,
					rgb(240,230,210) 12%,
					rgb(110,140,150) 25%,
					rgb(50,110,130) 35%,
					rgb(0,100,130) 50%,
					rgb(0,30,50) 90%
					); 
				}
*/
		.group {
			min-height: 50vw;
			}
		nav {
			width: 100%;
			}
			nav ul li {
				max-width: 100%;
				}
			header #logotype {
				background: pink;
				width: 100%;
				height: 2em;
				transition: 1s all ease-in-out;
				}
			header #logotype img {
				transform: rotate(0deg);
				width: 50%;
				top: 7em;
				right: 25%;
				}
			.fixed-to-top #logotype {
				opacity: 0;
				height: 0;
				}
				.fixed-to-top #logotype img {
					animation: fade-out .5s;
					animation-iteration-count: 1;
					transform: translate(0, -20em) scale(0);
					transition: .5s all ease-in-out;
					}
	#group-1 {
		height: 50vh;
		}
		#group-1 .deep img {
			margin-top: 0;
			margin-left: -52.5%;
			width: 200%;
			max-width: 200%;
		}
		#group-2 > .base { 
			background-position-y: 1em;
			box-shadow: inset 0 2em 0 0 rgb(50,50,50);
			}
		.group.content > .base {
			}
/*
		.group.content > .back, .group.content > .deep {
			position: relative;
			top: -75vw;
			}
*/
		article.introduction {
			width: 90%;
			margin: 5em 5%;
			padding: 0;
			}
			.introduction div:nth-of-type(2), .introduction div:nth-of-type(3) {
				width: 100%;
				margin: 0;
				}
/*
		article.portfolio {
			width: 90%;
			margin: 0 5%;
			
*/	article.portfolio {
		min-height: calc(100vw / 2.5);
		text-align: center;
		display: block;
		width: 100%;
		margin: 1em 0;
		padding: 0;
		flex-flow: row nowrap;
/*
		grid-auto-columns: 40%;
		grid-auto-flow: column;
*/
		overflow-y: visible;
		overflow-x: scroll;
		margin-bottom: 7.5vh;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		}
				
	article.portfolio section {
		position: relative;
		margin: 0;
		width: 100%;
		padding-bottom: 1em;
		overflow-y: scroll;
		border-radius: .25em;
		display: flex;
		flex-flow: column wrap;
		}
			article.portfolio h3 {
				margin-bottom: 0;
				padding: 1.5em 1em 0;
				}
			article.portfolio > section > .project {
				padding-top: 2em;
		min-height: 50vw;
		max-height: 50vw;
		height: 50vw;
				margin-bottom: 1em;
				}
				article.portfolio ul.tags, article.portfolio section .project:hover ul.tags {
					opacity: 1;
					font-size: .75em;
					transform: translateY(.5em);
					}
			

		.top, .right, .bottom, .left { 
			position: relative; 
			width: 100%; 
			text-align: center;
			height: inherit;
			}
			.top { top: auto; }
			.right { right: auto; }
			.bottom { bottom: auto; }
			.left { left: auto; }
	.columns {
		width: 100%;
		display: block;
		}
		.columns > * {
			width: 100%;
			float: left;
			}
	.pro-tip {
		display: none;
		}
	footer img {
		margin: auto;
		width: 50%;
		}
	@keyframes eyes-scale {
		0% { transform: scale(.5); }
		50% { transform: scale(.35); }
		100% { transform: scale(.25); }
		}
	}
	
@media only screen and (min-width: 1280px) {
	.fore, .base, .back, .deep {
		transition: .25s transform ease;
		}
	}
	
	
	
.word {
	z-index: 100000;
	width: calc(100% - 6em);
	margin: -2em 3em -3.5em;
	font-size: .75vw;
	position: absolute;
	bottom: 0;
/* 	transform: perspective(-600px); */
    perspective: 1000px;
	transform-style: preserve-3d;
	transform-origin: center bottom;
	}
.L, .O, .G {
	display: block;
	width: calc(25% - 2em);
	height: 18vw;
	margin: 1em;
	overflow: hidden;
	float: left;
	background: rgba(255,255,255,.1) url("1_Base.png");
	background-position: center bottom;
	background-size: 100vw;
	background-repeat: no-repeat;
	font-size: inherit;
    transform: rotateX(35deg);
    font-weight: bold;
/*     border-radius: 1em 1em 0 0; */
/*     box-shadow: inset 0 -10em 5em -5em rgb(50,50,50); */
/*     box-shadow: inset 0 20em 10em -10em rgba(255,255,255,.25), inset 0 -10em 10em -5em rgba(0,0,0,0); */
	}
.L {
	-webkit-clip-path: polygon(0 0, 6em 0, 6em calc(100% - 6em), 100% calc(100% - 6em), 100% 100%, 0 100%);
	background-position-x: -4em;
	}
.O {
	-webkit-clip-path: polygon(0% 0%, 0% 100%, 6em 100%, 6em 6em, calc(100% - 6em) 6em, calc(100% - 6em) calc(100% - 6em), 6em  calc(100% - 6em), 6em 100%, 100% 100%, 100% 0%);
	background-position-x: calc(25% - 8em);
	}
.G {
	-webkit-clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% calc(100% - 12em), calc(100% - 6em) calc(100% - 12em), calc(100% - 6em) calc(100% - 6em), 6em calc(100% - 6em), 6em 6em, 100% 6em, 100% 0%);
	background-position-x: calc(50% - 14em);
	}
.word :last-child {
	background-position-x: calc(75% - 20em);
}

.fade {
	opacity: .0;
}



#cookies {
	position: fixed;
	z-index: 1000000;
	width: 100vw;
	height: 100vh;
	color: white;
	text-shadow: 0 0 .25em rgba(50,50,50,.9);
	background: linear-gradient(180deg, rgba(50,50,50,0) 0%, rgba(50,50,50,.25) 25%, rgba(50,50,50,.65) 50%, rgba(50,50,50,.9) 75%, rgba(50,50,50,.9) 100%), url("/assets/grain.png"), url("/assets/grain-2.png");
	opacity: 1;
	transition: .2s opacity ease-in-out;
	}
	#cookies.accepted {
		opacity: 0;
		}
	#cookies form {
		position: absolute;
		bottom: 5em;
		left: 25vw;
		width: 50vw;
		text-align: center;
		font-size: 1.2vw;
		}
	#cookies form h1 {
		font-weight: 400;
		font-size: 4em;
		margin: 0;
		padding: 0;
		}
	#cookies form p {
		font-size: 1.5em;
		margin: 0;
		padding: 1em 2em;
		}
	#cookies form a:link, #cookies form a:visited {
		color: rgb(255,255,255);
		}
		#cookies form a:hover, #cookies form a:active {
			color: rgb(50,150,255);
			}
	
	input[name=accept], 
	input[name=decline] {
		padding: .75em 0;
		margin: .5em;
		width: 40%;
		font-size: 1.5em;
		line-height: 1em;
		color: rgb(255,255,255);
		border: none;
		border-radius: .5em;
		transition: .125s box-shadow ease-in-out;
/* 		box-shadow: inset -1px -1px 1px rgba(0,0,0,.5), inset 1px 1px 1px rgba(255,255,255,.5); */
		-webkit-appearance: none;
		}
	input[name=accept] {
		background: rgb(50,200,50);
		}
		input[name=accept]:hover {
			box-shadow: inset 1px 1px 3px rgba(0,0,0,.75), inset -1px -1px 3px rgba(255,255,255,.25), inset 0 .5em 2em rgba(0,50,0);
/* 			box-shadow: inset 0 .5em 2em rgba(0,50,0); */
			}
	input[name=decline] {
		background: rgb(200,50,50);
		}
		input[name=decline]:hover {
			box-shadow: inset 1px 1px 3px rgba(0,0,0,.75), inset -1px -1px 3px rgba(255,255,255,.25), inset 0 .5em 2em rgba(100,0,0);
/* 			box-shadow: inset 0 .5em 2em rgba(100,0,0); */
			}
	
@media only screen and (max-width: 600px) {
	#cookies form {
		bottom: 16.5vh;
		width: 100%;
		left: 0;
		font-size: 2.5vw;
		}
	}
		
		#time-circuit {
			z-index: 10000;
			position: fixed;
			bottom: .5em;
			bottom: -4em;
			right: .5em;
			padding: .25em .25em .25em 1em;
			width: 16.25em;
			font-size: 1em;
			line-height: 1.2em;
			color: rgb(255,120,0);
			background: rgba(127,127,127,.5);
			border-radius: .25em ;
			border-radius: 2em;
			box-shadow: inset 0 0 0 2px black;
			}
			#time-circuit input, #time-circuit p {
				float: left;
				margin: .25em;
				padding: 0;
				line-height: inherit;
				text-align: center;
				font-size: inherit;
				text-transform: uppercase;
				color: inherit;
				background: black;
				border: none;
				border-radius: .125em;
				}
				#time-circuit input {
					z-index: 1;
					}
					#time-circuit input:nth-of-type(1) {
						width: 3em;
						}
					#time-circuit input:nth-of-type(2) {
						width: 2em;
						}
					#time-circuit input:nth-of-type(3) {
						width: 3em;
						}
					#time-circuit input:nth-of-type(4) {
						width: 2em;
						}
					#time-circuit input:nth-of-type(5) {
						width: 2em;
						}
				#time-circuit input[type="submit"] {
					background: url("flux-capacitor.png"), rgb(255,120,0);
					background-size: 70%;
					background-repeat: no-repeat;
					background-position: center center;
					width: 1.25em;
					height: 1.25em;
					border-radius: 1em;
					box-shadow: inset 0 0 0 2px black;
						transition: .25s background ease-in-out;
					}
					#time-circuit input[type="submit"]:hover {
						background-color: yellow;
						}
				#time-circuit p {
					z-index: -1;
					width: 1em;
					margin: .25em -.75em .25em -.5em;
					padding: 0;
/* 					background: transparent; */
					}
					
					
		#cookies .fine-print {
			font-size: .5em;
			line-height: 1em;
			font-size: 8pt;
			line-height: 1.2em;
			padding-bottom: 0;
			}
			
			.dark p a:link, .dark p a:visited {
				background-image: 
				linear-gradient(
				180deg,
				rgba(0,0,0,0) 5%,
				rgba(0,150,255,1) 0);
				background-image: 
				linear-gradient(
				90deg,
				rgba(0,150,255,1) 0%,
				rgba(150,255,0,.5) 40%,
				rgba(250,255,0,.5) 60%,
				rgba(255,0,150,.25) 80%,
				rgba(255,0,150,0) 100%);
				background-size: 0% 1em;
				background-repeat: no-repeat;
				background-position: left center;
				transition: .25s background-size ease-in-out;
				transition: 1s background-size ease-in-out;
/* 				transition-timing-function: cubic-bezier(.6,0,1,.6); */
			}
			article p a:hover, .dark p a:hover {
				color: rgb(0,0,0);
				color: rgb(255,255,255);
				color: inherit;
				background-size: 100% 1em;
				background-size: 1000% 1em;
			}
			
	
.shimmer {
	z-index: 10000;
	pointer-events: none;
	position: fixed;
	width: 200%;
	height: 200%;
	top: -50%;
	left: -50%;
	animation: shimmer 10s infinite alternate;
	transform-origin: center;
	mix-blend-mode: overlay;
	opacity: .25;
	background: radial-gradient(
		rgba(0,255,0,0) 10%,
		rgba(0,255,0,1) 25%
	);
}

@keyframes shimmer {
	0%, 100% {
		transform: scale(1);
		background: radial-gradient(
			rgba(0,255,0,0) 10%,
			rgba(0,255,0,1) 25%
		);
		}
	50% {
		transform: scale(5);
		background: radial-gradient(
			rgba(0,255,0,0) 10%,
			rgba(0,255,0,1) 15%
		);
	}
}