@import url("https://fonts.googleapis.com/css?family=Press+Start+2P");

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

*::selection {
	background: #fd5d8d;
	color: #f1034a;
	color: #270245;
}

html, body {
	width: 100%;
	height: 100%;
}

body {
	position: relative;
	background: #000;
	overflow: hidden;
}

body:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background: radial-gradient(ellipse at center, transparent 0%, rgba(0, 0, 0, 0.4) 100%);
	z-index: 500;
	mix-blend-mode:darken;
	pointer-events: none;
}

.noise {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	z-index: 400;
	opacity: .8;
	pointer-events: none;
}

.noise:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url("assets/noise.png");
	pointer-events: none;
}

.noise-moving {
	opacity: 1;
	z-index: 450;
}

.noise-moving:before {
	will-change: background-position;
	animation: noise 1s infinite alternate;
}

.scanlines {
	position: fixed;
	left: 0;
	top: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	z-index: 300;
	opacity: 1;
	will-change: opacity;
	animation: opacity 3s linear infinite;
}

.scanlines:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent 50%, rgba(0, 0, 0, 0.5) 51%);
	background-size: 100% 4px;
	will-change: background, background-size;
	animation: scanlines .2s linear infinite;
}

.intro-wrap {
	position: fixed;
	top: 0;
	left: 0;
	font-family: 'Press Start 2P', cursive;
	color: #fff;
	font-size: 2rem;
	width: 100vw;
	height: 100vh;
	background: #081809;
}

.intro-wrap .noise:before {
	background-size: 4%;
}

.intro-wrap .tl {
	position: absolute;
	left: 2rem;
	top: 2rem;
	will-change: text-shadow;
	animation: rgbText 2s steps(9) 0s infinite alternate;
}

.intro-wrap .tl .char {
	will-change: opacity;
	animation: type 1.2s infinite alternate;
	animation-delay: calc(60ms * var(--char-index));
}

.intro-wrap .tl .tag {
	position: absolute;
    top: -3px;
  right: -50px;
    animation: blink 2s infinite;
}

.intro-wrap .br {
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	opacity: 0.4;
    transition: opacity 0.6s ease-in-out;
}
.intro-wrap .br:hover {
	opacity: 0.95;
}

.intro-wrap .tr {
	position: absolute;
	top: 2rem;
	right: 2rem;
}

.intro-wrap .tr img {
	width: 50px;
    height: auto;
}

.intro-wrap .bl {
	position: absolute;
	left: 2rem;
	bottom: 2rem;
	will-change: text-shadow;
	animation: rgbText 1s steps(9) 0s infinite alternate;
}

#logo {
	display: flex;
	width: 100%;
	height: 100%;
	justify-content: center;
	align-items: center;
}
#logo .inner {
	display: grid;
	width: 75vh;
	height: 75vh;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	grid-column-gap: 20px;
	grid-row-gap: 20px; 
}
#logo .inner div {
	border-top: 2px #ffffff99 solid;
	border-left: 2px #ffffff99 solid;
	border-bottom: 1px #000000dd solid;
	border-right: 1px #000000dd solid;
	border-radius: 2vh;
}

#logo .inner .plain {
	background-color: #2bff0022;
	box-shadow: inset 0 .3em #ffffff33;
}
#logo .inner .empty {
	box-shadow: inset 0 0 0 5vh #2bff0033, inset 0 .3em #ffffff33;
}

/* Animations */
@keyframes noise {
	0%, 100% {
		background-position: 0 0;
	}

	10% {
		background-position: -5% -10%;
	}

	20% {
		background-position: -15% 5%;
	}

	30% {
		background-position: 7% -25%;
	}

	40% {
		background-position: 20% 25%;
	}

	50% {
		background-position: -25% 10%;
	}

	60% {
		background-position: 15% 5%;
	}

	70% {
		background-position: 0 15%;
	}

	80% {
		background-position: 25% 35%;
	}

	90% {
		background-position: -10% 10%;
	}
}

@keyframes opacity {
	0% {
		opacity: .6;
	}

	20% {
		opacity: .3;
	}

	35% {
		opacity: .5;
	}

	50% {
		opacity: .8;
	}

	60% {
		opacity: .4;
	}

	80% {
		opacity: .7;
	}

	100% {
		opacity: .6;
	}
}

@keyframes scanlines {
	from {
		background: linear-gradient(to bottom, transparent 50%, rgba(0, 0, 0, 0.5) 51%);
		background-size: 100% 4px;
	}

	to {
		background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 50%, transparent 51%);
		background-size: 100% 4px;
	}
}

@keyframes rgbText {
	0% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), 0px 0 1px rgba(251, 0, 231, 0.8), 0 0px 3px rgba(0, 233, 235, 0.8), 0px 0 3px rgba(0, 242, 14, 0.8), 0 0px 3px rgba(244, 45, 0, 0.8), 0px 0 3px rgba(59, 0, 226, 0.8);
	}

	25% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), 0px 0 1px rgba(251, 0, 231, 0.8), 0 0px 3px rgba(0, 233, 235, 0.8), 0px 0 3px rgba(0, 242, 14, 0.8), 0 0px 3px rgba(244, 45, 0, 0.8), 0px 0 3px rgba(59, 0, 226, 0.8);
	}

	45% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), 5px 0 1px rgba(251, 0, 231, 0.8), 0 5px 1px rgba(0, 233, 235, 0.8), -5px 0 1px rgba(0, 242, 14, 0.8), 0 -5px 1px rgba(244, 45, 0, 0.8), 5px 0 1px rgba(59, 0, 226, 0.8);
	}

	50% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), -5px 0 1px rgba(251, 0, 231, 0.8), 0 -5px 1px rgba(0, 233, 235, 0.8), 5px 0 1px rgba(0, 242, 14, 0.8), 0 5px 1px rgba(244, 45, 0, 0.8), -5px 0 1px rgba(59, 0, 226, 0.8);
	}

	55% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), 0px 0 3px rgba(251, 0, 231, 0.8), 0 0px 3px rgba(0, 233, 235, 0.8), 0px 0 3px rgba(0, 242, 14, 0.8), 0 0px 3px rgba(244, 45, 0, 0.8), 0px 0 3px rgba(59, 0, 226, 0.8);
	}

	90% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), -5px 0 1px rgba(251, 0, 231, 0.8), 0 5px 1px rgba(0, 233, 235, 0.8), 5px 0 1px rgba(0, 242, 14, 0.8), 0 -5px 1px rgba(244, 45, 0, 0.8), 5px 0 1px rgba(59, 0, 226, 0.8);
	}

	100% {
		text-shadow: -1px 1px 8px rgba(255, 255, 255, 0.6), 1px -1px 8px rgba(255, 255, 235, 0.7), 5px 0 1px rgba(251, 0, 231, 0.8), 0 -5px 1px rgba(0, 233, 235, 0.8), -5px 0 1px rgba(0, 242, 14, 0.8), 0 5px 1px rgba(244, 45, 0, 0.8), -5px 0 1px rgba(59, 0, 226, 0.8);
	}
}

@keyframes type {
	0%, 19% {
		opacity: 0;
	}

	20%, 100% {
		opacity: 1;
	}
}

@keyframes blink {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
  100% {
    opacity: 1;
  }
}