:root {
	--crt-green: #00FF00;
}

body {
	background: #000;
	color: var(--crt-green);
	font-family: 'VT323', 'Source Code Pro', monospace;
	font-size: 24px;
}

a {
	color: var(--crt-green);
	text-decoration: none;
}
a.button {
	display: inline-block;
	border: 1px solid var(--crt-green);
	padding: 5px 10px;
}

ul.menu {
	list-style-type: none;
	padding: 0 0 0 2rem;
}
ul.menu li:before {
	content: ">";
	padding: 0 5px 0 0;
}
ul.menu li a.selected {
	background: var(--crt-green);
	color: #000;
}

.content {
	padding: 0 2rem;
}
.content a {
	text-decoration: underline;
}
.content a:hover {
	text-decoration: none;
	background: var(--crt-green);
	color: black;
}

.back-link {
	text-decoration: underline;
	margin: 1rem 0 0 2rem;
}

code {
	font-family: 'VT323', 'Source Code Pro', monospace;
	background: var(--crt-green);
	color: black;
	padding: 0 5px;
}

hr {
	border: none;
	border-bottom: 2px dashed var(--crt-green);
	margin: 0 2rem;
}
.render-area-divider {
	display: none;
}
.render-area-divider--show {
	display: block;
}

.container {
	width: 100vw;
	height: 100vh;
	position: relative;
	overflow: hidden;
}

.container::before {
	content: " ";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.35) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
	z-index: 2;
	background-size: 100% 4px, 12px 100%;
	pointer-events: none;
}
.container::after {
	content:" ";
	display:block;
	position:absolute;
	top:0;
	left:0;
	width: 100vw;
	height: 100vh;
	background: rgba(0,0,0,0.15);
	opacity:0;
	z-index:2;
	pointer-events:none;
}
.banner {
	font-size: 1rem;
	padding: 0 0 0 2rem;
	font-family: 'VT323', monospace;
}

#input-wrapper {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
}
#terminal-prompt {
	padding: 0 0 0 2rem;
}
#terminal-input {
	background: none;
	border: none;
	outline: none;
	padding: 0 0 0 .5rem;
	caret-color: var(--crt-green);
	color: var(--crt-green);
	display: block;
	width: 100%;
	box-sizing: border-box;
	resize: none;
}

#terminal-messages {
	width: 100%;
	margin: 0 0 2rem 0;
	padding: 0 0 0 2rem;
	box-sizing: border-box;
	min-height: 1.2em;
}

span.glyph {
	font-family: 'Source Code Pro', monospace;
	line-height: 22px;
}

.blink {
	animation: blinker 1s linear infinite;
}

@keyframes blinker {
	0% {
		opacity: 1;
	}
	49% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	100% {
		opacity: 0;
	}
}

@keyframes flicker {
	0% {
		opacity: 0.79162;
	}
	5% {
		opacity: 0.3147;
	}
	10% {
		opacity: 0.35834;
	}
	15% {
		opacity: 0.79524;
	}
	20% {
		opacity: 0.48658;
	}
	25% {
		opacity: 0.25834;
	}
	30% {
		opacity: 0.37559;
	}
	35% {
		opacity: 0.78102;
	}
	40% {
		opacity: 0.74606;
	}
	45% {
		opacity: 0.49151;
	}
	50% {
		opacity: 0.18443;
	}
	55% {
		opacity: 0.93317;
	}
	60% {
		opacity: 0.22851;
	}
	65% {
		opacity: 0.59511;
	}
	70% {
		opacity: 0.56156;
	}
	75% {
		opacity: 0.38927;
	}
	80% {
		opacity: 0.9951;
	}
	85% {
		opacity: 0.55635;
	}
	90% {
		opacity: 0.15845;
	}
	95% {
		opacity: 0.67361;
	}
	100% {
		opacity: 0.96746;
	}
}

.container::after {
	/* animation: flicker 0.15s infinite; */
}

@keyframes turn-on {
	0% {
		transform: scale(1, 0.8) translate3d(0, 0, 0);
		-webkit-filter: brightness(30);
		filter: brightness(30);
		opacity: 1;
	}
	7.5% {
		transform: scale(1, 0.8) translate3d(0, 100%, 0);
	}
	7.6% {
		transform: scale(1, 0.8) translate3d(0, -100%, 0);
		opacity: 1;
	}
	18% {
		transform: scale(1.3, 0.6) translate3d(0, 100%, 0);
		-webkit-filter: brightness(30);
		filter: brightness(30);
		opacity: 0;
	}
	22% {
		transform: scale(1, 1) translate3d(0, 0, 0);
		-webkit-filter: contrast(0) brightness(0);
		filter: contrast(0) brightness(0);
		opacity: 0;
	}
	100% {
		transform: scale(1, 1) translate3d(0, 0, 0);
		-webkit-filter: contrast(1) brightness(1) saturate(1);
		filter: contrast(1) brightness(1) saturate(1);
		opacity: 1;
	}
}
@keyframes turn-off {
	0% {
		transform: scale(1, 1.3) translate3d(0, -10%, 0);
		-webkit-filter: brightness(1);
		filter: brightness(1);
		opacity: 1;
	}
	60% {
		transform: scale(1.3, 0.001) translate3d(0, 0, 0);
		-webkit-filter: brightness(10);
		filter: brightness(10);
	}
	100% {
		animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
		transform: scale(0, 0.0001) translate3d(0, 0, 0);
		-webkit-filter: brightness(50);
		filter: brightness(50);
	}
}
@keyframes v-hold {
	0% {
		transform: scale(1, 0.9) translate3d(0, 0, 0);
		-webkit-filter: brightness(30);
		filter: brightness(30);
		opacity: .5;
	}
	100% {
		transform: scale(1, 1) translate3d(0, 0, 0);
		-webkit-filter: contrast(1) brightness(1.2) saturate(1.3);
		filter: contrast(1) brightness(1.2) saturate(1.3);
		opacity: 1;
	}
}

.screen {
	background: #001902;
	width: 90vw;
	height: 90vh;
	left: 5vw;
	top: 5vh;
	position: absolute;
	border-radius: 30px;
	border: 1px solid #004400;
	overflow: auto;
}
.container > .screen {
	animation: turn-on 2s linear;
	animation-fill-mode: backwards;
}

.container > .screen.v-hold-off {
	animation: none;
}
.container > .screen.v-hold {
	animation: v-hold 200ms linear;
	animation-iteration-count: 1;
	animation-fill-mode: backwards;
}

.browser-upgrade {
	display: none;
}
.browser-upgrade--show{
	display: block;
}