/* Glimra Games: the game UI's look (Nexum Gaming/_design/hexa-stones-final-blueprint.md): black, flat panels with a 1 px edge,
   small radius, one moon-cream accent, leaning ends instead of pills; Bungee for display, Chakra Petch Bold for text. */
@font-face {
	font-family: 'Bungee';
	src: url('/fonts/Bungee-Regular.ttf') format('truetype');
	font-display: swap;
}
@font-face {
	font-family: 'Chakra Petch';
	src: url('/fonts/ChakraPetch-Bold.ttf') format('truetype');
	font-weight: 700;
	font-display: swap;
}

:root {
	--bg: #000;
	--panel: #07060b;
	--key: #1c1a27;
	--edge: rgba(255, 255, 255, 0.14);
	--text: #f2f2f2;
	--quiet: rgba(255, 255, 255, 0.62);
	--grey: #8c8c8c;
	--accent: #ffe08a;
	--on-accent: #14101f;
	--display: 'Bungee', system-ui, sans-serif;
	--body: 'Chakra Petch', system-ui, sans-serif;
	--gutter: clamp(16px, 4vw, 48px);
	--max: 1160px;
}

* {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	background: var(--bg);
}
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--body);
	font-weight: 700;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
img,
video {
	display: block;
	max-width: 100%;
	height: auto;
}
a {
	color: inherit;
}
h1,
h2,
h3 {
	font-family: var(--display);
	font-weight: 400;
	line-height: 1.1;
	margin: 0;
	letter-spacing: 0.01em;
}

/* ---------- intro ---------- */
.intro {
	position: fixed;
	inset: 0;
	z-index: 50;
	background: #000;
	display: grid;
	place-items: center;
	transition: opacity 0.6s ease;
}
.intro video {
	width: min(80vmin, 640px);
	height: auto;
}
.intro.done {
	opacity: 0;
	pointer-events: none;
}
.intro.gone {
	display: none;
}

/* ---------- header ---------- */
.top {
	position: sticky;
	top: 0;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px var(--gutter);
	background: rgba(0, 0, 0, 0.82);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--edge);
}
.brand img {
	height: 34px;
	width: auto;
}
.top nav {
	display: flex;
	align-items: center;
	gap: clamp(10px, 2.4vw, 28px);
}
.top nav a {
	text-decoration: none;
	color: var(--quiet);
	font-size: 15px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.top nav a:hover {
	color: var(--text);
}
.top nav a.key {
	color: var(--text);
}

/* ---------- keys: flat, a thin edge, leaning ends ---------- */
.key {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 30px;
	background: var(--key);
	color: var(--text);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-family: var(--display);
	font-size: 15px;
	clip-path: polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
	transition: filter 0.15s ease, transform 0.15s ease;
}
.top nav a.key {
	font-family: var(--body);
	padding: 8px 22px;
	font-size: 14px;
}
.key:hover {
	filter: brightness(1.18);
}
.key:active {
	transform: translateY(1px);
}
.key.accent {
	background: var(--accent);
	color: var(--on-accent);
}
.key.big {
	font-size: clamp(16px, 2.6vw, 24px);
	padding: 18px 44px;
	clip-path: polygon(16px 0, 100% 0, calc(100% - 16px) 100%, 0 100%);
}

/* ---------- hero ---------- */
.hero {
	max-width: var(--max);
	margin: 0 auto;
	padding: clamp(56px, 12vh, 140px) var(--gutter) clamp(56px, 10vh, 120px);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
}
.hero-mark {
	width: clamp(96px, 16vw, 150px);
	height: auto;
}
.hero-mark .spark {
	transform-box: fill-box;
	transform-origin: center;
	animation: breathe 5s ease-in-out infinite;
}
.eyebrow {
	margin: 6px 0 0;
	color: var(--grey);
	letter-spacing: 0.3em;
	text-transform: uppercase;
	font-size: clamp(12px, 1.6vw, 15px);
}
.hero h1 {
	font-size: clamp(42px, 8vw, 96px);
}
.hero h1 span {
	color: var(--accent);
}
.lead {
	max-width: 640px;
	margin: 0;
	color: var(--quiet);
	font-size: clamp(16px, 2vw, 20px);
}
.actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 10px;
}

/* ---------- sections ---------- */
.section {
	max-width: var(--max);
	margin: 0 auto;
	padding: clamp(48px, 8vh, 96px) var(--gutter);
	border-top: 1px solid var(--edge);
}
.section > h2 {
	font-size: clamp(28px, 4.4vw, 44px);
	margin-bottom: clamp(24px, 4vh, 40px);
}

/* ---------- games ---------- */
.game {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	background: var(--panel);
	border: 1px solid var(--edge);
	border-radius: 4px;
	overflow: hidden;
}
.game + .game {
	margin-top: 22px;
}
.game-art {
	position: relative;
	background: #000;
}
.game-art img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 16 / 9;
}
.game-body {
	padding: clamp(20px, 3vw, 36px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}
.game-body p {
	margin: 0;
	color: var(--quiet);
}
.game-body h3 {
	font-size: clamp(26px, 3.4vw, 38px);
}
.tag {
	color: var(--accent) !important;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 13px;
}
.facts {
	list-style: none;
	margin: 4px 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.facts li {
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 7px 18px;
	background: var(--key);
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--quiet);
}
.facts b {
	color: var(--accent);
	font-size: 16px;
}
.soon .game-art img {
	filter: grayscale(0.35);
}
.soon.art-left .game-art img {
	filter: none;
}
/* the stamp sits in the calm left part of the picture, clear of the character */
.art-left .stamp {
	left: 26%;
}
.stamp {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	padding: 10px 28px;
	background: rgba(0, 0, 0, 0.75);
	border: 1px solid var(--edge);
	font-family: var(--display);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: clamp(16px, 2.4vw, 22px);
}

/* ---------- studio ---------- */
.cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.panel {
	background: var(--panel);
	border: 1px solid var(--edge);
	border-radius: 4px;
	padding: clamp(18px, 2.4vw, 28px);
}
.panel h3 {
	font-size: 20px;
	margin-bottom: 10px;
}
.panel p {
	margin: 0;
	color: var(--quiet);
}

/* ---------- contact ---------- */
.contact {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
}
.contact > h2 {
	margin-bottom: 0;
}

/* ---------- footer ---------- */
.foot {
	border-top: 1px solid var(--edge);
	padding: 32px var(--gutter) 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
	color: var(--grey);
	font-size: 14px;
}
.foot img {
	height: 26px;
	width: auto;
	opacity: 0.7;
	margin-bottom: 6px;
}
.foot p {
	margin: 0;
}
.disclaimer {
	max-width: 720px;
	margin-top: 10px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 12px;
	line-height: 1.6;
	color: var(--grey);
}
.disclaimer a {
	color: var(--quiet);
}
.badge18 {
	display: inline-block;
	padding: 1px 8px;
	margin-right: 6px;
	border: 1px solid var(--accent);
	color: var(--accent);
	font-family: var(--display);
	font-weight: 400;
}

/* ---------- the 18+ check ---------- */
.age {
	position: fixed;
	inset: 0;
	z-index: 60;
	display: grid;
	place-items: center;
	padding: var(--gutter);
	background: rgba(0, 0, 0, 0.92);
}
.age[hidden] {
	display: none;
}
.age-box {
	width: min(460px, 100%);
	background: var(--panel);
	border: 1px solid var(--edge);
	border-radius: 4px;
	padding: 28px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	text-align: center;
}
.age-box img {
	height: 40px;
	width: auto;
}
.age-box h2 {
	font-size: 26px;
}
.age-box p {
	margin: 0;
	color: var(--quiet);
}
button.key {
	border: 0;
	cursor: pointer;
}

/* ---------- phones ---------- */
@media (max-width: 820px) {
	.game {
		grid-template-columns: 1fr;
	}
	.cols {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 480px) {
	.brand img {
		height: 26px;
	}
	.top nav a:not(.key) {
		display: none;
	}
}

@keyframes breathe {
	50% {
		transform: scale(1.05);
	}
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	.hero-mark .spark {
		animation: none;
	}
}
