/* =========================
	Variables
========================= */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');

:root {
	--bg: rgba(11, 10, 19, 0.9);
	--fg: #f0f0f0;
	--muted: #9a98b5;
	--accent: #78499e;
	--accent-weak: #b8b3d6;
	--maxw: 860px;
	--line-hi: #9a9ab8;
	--line-lo: #000000;
	--line-panels: #272738;
	--panel: linear-gradient(#0d0d15, #191926);
	--bevel-hi: #e8e6f4;
	--bevel-lo: #07070f;
}

/* =========================
	Base / Resets
========================= */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
	margin: 0;
	color: var(--fg);
	background: 
    linear-gradient(var(--bg),  var(--bg)),
    url("bg.png") center/cover no-repeat;
	background-attachment: fixed;
	font-family: "MS UI Gothic", sans-serif;
	-webkit-font-smoothing: none;
	-moz-osx-font-smoothing: auto;
}
a {
	color: var(--accent);
	text-decoration: none;
}
a:hover,
a:focus-visible {
	color: var(--accent-weak);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 2px;
}
a:focus-visible {
	outline: 2px dashed var(--accent);
	outline-offset: 3px;
}
::selection {
	background: var(--accent-weak);
	color: #0d0b17;
}

/* =========================
	Layout
========================= */
.wrap {
	max-width: var(--maxw);
	margin: 0 auto;
	min-height: 100%;
	padding: 20px 20px 96px;
	border: 1px solid var(--line-lo);
	box-shadow: inset -1px 0px var(--line-lo), inset 1px 1px var(--line-hi), inset -2px 0px #0d0d15, inset 2px 2px #1a1830, inset -3px -3px #1a1830, inset 3px 3px #1a1830, inset -4px -4px #1a1830, inset 4px 4px #1a1830;
	background: linear-gradient(#0b0a13, #07060d);
}

header {
	padding: 3.25em 0.75em;
	background: 
    linear-gradient(var(--bg),  var(--bg)),
    url("banner.png") center/cover no-repeat;
}

/* =========================
	Type & Headings
========================= */
h1 {
	margin: 0;
	font-size: 1.25rem;
	letter-spacing: 0.2px;
	font-family: 'Press Start 2P', cursive;
	padding-left: 12px;
}
h1, h2 { text-shadow: 1px 1px #322d54; }
p { margin: 0 0 14px; font-size: 12px; }
.muted { color: var(--muted); }
.inline-list { margin-top: 18px; font-size: 1.05rem; letter-spacing: .15px; }
.sep { color: var(--accent); opacity: .75; padding: 0 .35ch; }

/* =========================
	Nav & Section Boxes
========================= */
.window {
	background: var(--panel);
	border: 1px solid var(--line-lo);
	border-top: 0px;
	box-shadow:
		inset 1px 0px 0 0 var(--line-hi),
		inset -1px -1px 0 0 var(--line-lo);
	padding: 4px;
	padding-top: 0px;
	background: #1a1830;
}

.inside-window {
	background: var(--panel);
	box-shadow:
	inset -1px -1px 0 0 var(--line-hi),
	inset 1px 1px 0 0 var(--line-lo);
	padding: 8px;
}

section {
	background: var(--panel);
	border: 2px solid var(--line-panels);
	padding: 8px;
}
nav { margin: 16px 0 8px; }
nav a {
	display: inline-block;
	padding: 6px 10px;
	background: #0b0f18;
	border: 1px solid var(--line-lo);
	color: #fff;
	box-shadow: inset 1px 1px 0 0 var(--line-hi), inset -1px -1px 0 0 var(--line-lo);
	text-transform: uppercase;
	font-weight: 700;
}
nav a:hover { background: #12172a; text-decoration: none; }
h2 {
	margin: 0;
	padding: 6px 10px;
	background: #0d0d15;
	border: 1px solid var(--line-lo);
	border-bottom: 0px;
	box-shadow: inset -1px 0px var(--line-lo), inset 1px 1px var(--line-hi), inset -2px 0px #0d0d15, inset 2px 2px #1a1830, inset -3px -3px #1a1830, inset 3px 3px #1a1830, inset -4px -4px #1a1830, inset 4px 4px #1a1830;
	text-transform: uppercase;
	letter-spacing: .5px;
}
h2 + p {
	margin: 0 0 18px;
	padding: 10px;
	background: var(--panel);
	border-left: 1px solid var(--line-lo);
	border-right: 1px solid var(--line-lo);
	border-bottom: 1px solid var(--line-lo);
	box-shadow:
		inset 1px 1px 0 0 var(--line-hi),
		inset -1px -1px 0 0 var(--line-lo);
}

/* =========================
	Games
========================= */

.games h2 { font-size: 1.6rem; }
.game-list {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 12px;
}
.game-card {
	flex: 0 0 auto;
	width: 180px;
	margin: 0;
	margin-bottom: 4px;
	text-align: center;
	color: #e9ecf8;
	background: #0b0f18;
	border: 1px solid var(--line-lo);
	box-shadow:
		inset 1px 1px 0 0 var(--line-hi),
		inset -1px -1px 0 0 var(--line-lo);
	scroll-snap-align: start;
}
.game-card img {
	width: 100%;
	height: 120px;
	object-fit: cover;
	display: block;
	filter: saturate(.85) contrast(1.05);
}
.game-card span {
	display: block;
	padding: 6px 6px 8px;
	font-weight: 700;
	font-size: 13px;
}
.game-card:hover {
	outline: 1px dashed #9ec0ff;
	outline-offset: 2px;
}

/* =========================
	Clips
========================= */
.scroll-list {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 12px;
}
.clip-card {
	flex: 0 0 auto;
	width: 315px;
	margin: 0;
	margin-bottom: 4px;
	scroll-snap-align: start;
	text-align: center;
	color: inherit;
	text-decoration: none;
	background: #0b0f18;
	border: 1px solid var(--line-lo);
	box-shadow:
		inset 1px 1px 0 0 var(--line-hi),
		inset -1px -1px 0 0 var(--line-lo);
}
.clip-card img { width: 100%; display: block; }
.clip-card span { display: block; margin-top: .5rem; font-weight: 600; }
.clip-card iframe {
	width: 100%;
	height: 175px;
	border: 0;
	display: block;
}

/* =========================
	Profile
========================= */
.banner {
	width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}
.profile {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.profile > p {
	font-size: 16px;
}

.profile img.pfp { width: 100px; height: auto; }

/* =========================
	Chat
========================= */

.link-collection a {
	display: block;
	font-size: 12px;
	line-height: 16px;
}

.chat > p {
	margin-top: 8px;
}
/* =========================
	Link Collection
========================= */



/* =========================
	Custom Scrollbar
========================= */
::-webkit-scrollbar {
	width: 16px;
	height: 16px;
}
::-webkit-scrollbar-track {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAFElEQVQIW2M4fPz0////GYAYyAIASnoKpV3w4kgAAAAASUVORK5CYII=");
	image-rendering: pixelated;
}
::-webkit-scrollbar-track:active {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAEElEQVQIW2No6+pjgAAgCwAWogM9VKrgGQAAAABJRU5ErkJggg==");
}
::-webkit-scrollbar-thumb {
	border-top: 1px solid #706c91;
	border-left: 1px solid #706c91;
	border-right: 1px solid black;
	border-bottom: 1px solid black;
	box-shadow: inset 1px 1px 0 0 white, inset -1px -1px 0 0 #868a8e;
	width: 16px;
	height: 16px;
	background-color: #706c91;
	z-index: 1;
}
::-webkit-scrollbar-corner { background-color: #c3c7cb; }
::-webkit-resizer {
	width: 16px;
	height: 16px;
	background-color: #c3c7cb;
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAN0lEQVR4Ae3MgQUAMBRDwU5fFF05lb/CARTBw2Ulof0DxPtcwp3hNuEYnjbcEW4TjuFpwx3h9gMWGgZ2Y/PT2gAAAABJRU5ErkJggg==");
	background-position: bottom right;
	background-repeat: no-repeat;
	image-rendering: pixelated;
}
::-webkit-scrollbar-button {
	border-top: 1px solid #706c91;
	border-left: 1px solid #706c91;
	border-right: 1px solid black;
	border-bottom: 1px solid black;
	box-shadow: inset 1px 1px 0 0 white, inset -1px -1px 0 0 #868a8e;
	display: block;
	width: 16px;
	height: 16px;
	background-color: #706c91;
	image-rendering: pixelated;
	background-repeat: no-repeat;
	background-position: center center;
}
::-webkit-scrollbar-button:active {
	background-position: 2px 2px;
	border-top: 1px solid #868a8e;
	border-left: 1px solid #868a8e;
	border-bottom: 1px solid #868a8e;
	border-right: 1px solid #868a8e;
	box-shadow: none;
}
::-webkit-scrollbar-button:horizontal:decrement {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAHklEQVQY02NgoBT8xyX8H5fwf1zCpOjAYwceV1EEAAO2D/HsQ4vsAAAAAElFTkSuQmCC");
}
::-webkit-scrollbar-button:horizontal:increment {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAHUlEQVQY02NgIB/8xy3xH7fEf9wS/0nUQZqrKAYAK44P8ZRmzLQAAAAASUVORK5CYII=");
}
::-webkit-scrollbar-button:vertical:decrement {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGklEQVR4AWMYxuA/SYphmETFhDX9x4mHGQAAcL4P8dQiMq8AAAAASUVORK5CYII=");
}
::-webkit-scrollbar-button:vertical:increment {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAQAAAD8fJRsAAAAF0lEQVQY02NgoBf4jwJxSOHQhcNAOgMAWWAP8Rv2U3UAAAAASUVORK5CYII=");
}
::-webkit-scrollbar-button:horizontal:increment:start,
::-webkit-scrollbar-button:horizontal:decrement:end,
::-webkit-scrollbar-button:vertical:increment:start,
::-webkit-scrollbar-button:vertical:decrement:end {
	display: none;
}

/* =========================
	Content Layout
========================= */

.layout {
	display: flex;
	align-items: stretch;
	
}

.stats,
.chat,
.games {
	display: flex;
	flex-direction: column;
}

.layout > * { min-width: 0; } 
.games { flex: 1 1 auto; min-width: 0; }
.chat  { flex: 0 0 260px; }
.stats { flex: 0 0 200px; }

@media (max-width: 768px) {
  .layout { display: block; }
}

.sidebar {
	flex: 0 0 200px;
	background: var(--panel);
	border: 2px solid var(--line-panels);
	padding: 10px;
}
.sidebar h3 {
	font-size: .9rem;
	color: var(--accent-weak);
	text-transform: uppercase;
	letter-spacing: 1px;
	text-align: center;
}
.sidebar nav a {
	display: block;
	padding: 6px;
	margin-bottom: 2px;
	background: #0b0f18;
	border: 1px solid var(--line-lo);
	box-shadow:
		inset 1px 1px 0 var(--line-hi),
		inset -1px -1px 0 var(--line-lo);
	font-size: .8rem;
}
.intro {
	flex: 1;
	background: var(--panel);
	border: 2px solid var(--line-panels);
	padding: 14px;
	display: flex;
	display: flex; 
	flex-direction: column; 
}
.intro h1 {
	margin-top: 0;
	font-size: 1.2rem;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.center {
	width: 100%;
	margin-bottom: auto;
	margin-top: auto;
}

.updates {
	margin-top: 12px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.updates .inside-window {
	max-height: 240px;
	overflow: auto;
}

.updates-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.updates-list li {
	padding: 8px 6px;
	border-bottom: 1px solid var(--line-panels);
}
.updates-list li:last-child { border-bottom: 0; }
.updates-list a { font-weight: 700; }
.updates .date { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.updates .muted { margin: 2px 0 0; }

.window ~ h2 {
	margin-top: 8px;
}

/* =========================
	Responsive
========================= */
@media (max-width: 768px) {
	.layout { flex-direction: column; }
	.sidebar { flex: unset; width: 100%; }
	.intro { width: 100%; }
	.updates { grid-template-columns: 1fr; }
	.sidebar nav {
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
	}
	.sidebar nav a {
		flex: 1;
		margin: 0;
		text-align: center;
	}
	.sidebar h3 { display: none; }
}

/* =========================
	Font Tweaks
========================= */
h1, h2, h3 {
	-webkit-font-smoothing: none;
	-moz-osx-font-smoothing: auto;
	text-transform: uppercase;
	font-weight: 700;
	text-shadow: none;
	letter-spacing: 0;
	font-kerning: none;
	font-variant-ligatures: none;
	line-height: 1;
}
section h2 { font-size: 10px; line-height: 16px; }
.games > h2, .clips > h2 { font-size: 10px; line-height: 16px; }
.sidebar h3, .sidebar h2 { font-size: 10px; line-height: 16px; }


/* =========================
   CRT Scanline Effect
========================= */
body::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 9999;
	background: repeating-linear-gradient(
		to bottom,
		rgba(0, 0, 0, 0.03) 0px,
		rgba(0, 0, 0, 0.03) 2px,
		transparent 2px,
		transparent 4px
	);
	mix-blend-mode: multiply;
}


