/* ============================================================
   69 CREATIONS — design system
   Concept: "liminal premium" — strict dark architecture,
   teal fluorescent accent, mono "LEVEL" wayfinding, grain.
   Themes: dark (default) + light "fog over wet concrete".
   ============================================================ */

:root{
  color-scheme:dark;
  --void:#0a0b0e;
  --void-2:#0e1015;
  --void-rgb:10 11 14;
  --panel:#13151c;
  --panel-2:#181b24;
  --line:rgba(232,234,240,.09);
  --line-strong:rgba(232,234,240,.18);
  --text:#e8eaf0;
  --muted:#8b90a3;
  --dim:#5b6071;
  --accent:#2dd4bf;          /* fluorescent hum */
  --accent-rgb:45 212 191;
  --accent-ink:#04221d;
  --accent-soft:rgb(var(--accent-rgb)/.14);
  --anomaly:#7a6cff;         /* rare, ambient only */
  --anomaly-rgb:122 108 255;
  --cyan-rgb:34 211 238;
  --x-glow-rgb:255 255 255;  /* X/Twitter hover halo */
  --danger:#ff5d5d;
  --grain:.05;
  --glow-strong:.35;
  --glow-text:.4;
  --shadow-strength:.8;
  --backdrop:rgba(6,7,9,.78);
  --radius:14px;
  --radius-sm:9px;
  --max:1180px;
  --nav-h:72px;
  /* 8px spacing scale */
  --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:32px;
  --sp-5:48px; --sp-6:64px; --sp-section:96px;
  --font-display:"Unbounded",system-ui,sans-serif;
  --font-body:"Space Grotesk",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
}

/* light theme — fog over wet concrete */
html[data-theme="light"]{
  color-scheme:light;
  --void:#e7e9e7;
  --void-2:#dde0dd;
  --void-rgb:231 233 231;
  --panel:#f4f6f4;
  --panel-2:#e9ece9;
  --line:rgba(25,35,32,.17);
  --line-strong:rgba(25,35,32,.32);
  --text:#171c20;
  --muted:#454c53;
  --dim:#6c737a;
  --accent:#0f766e;
  --accent-rgb:13 130 121;
  --accent-ink:#ecfdf9;
  --accent-soft:rgb(var(--accent-rgb)/.14);
  --anomaly:#5c4fc4;
  --anomaly-rgb:92 79 196;
  --cyan-rgb:8 145 178;
  --x-glow-rgb:17 20 23;
  --danger:#c4343e;
  --grain:.025;
  --glow-strong:.16;
  --glow-text:.14;
  --shadow-strength:.18;
  --backdrop:rgba(120,128,126,.5);
}
/* light theme: glass surfaces sit on white, not on the dark void */
html[data-theme="light"] .stat,
html[data-theme="light"] .bento-card,
html[data-theme="light"] .newsletter{background:rgba(255,255,255,.6)}
html[data-theme="light"] .dcard{background:rgba(255,255,255,.62)}
html[data-theme="light"] .dd-menu{background:rgba(250,252,250,.92)}
html[data-theme="light"] .gtag,
html[data-theme="light"] .stat-chip{background:rgba(255,255,255,.55)}
html[data-theme="light"] .nl-row{background:rgba(255,255,255,.75)}
html[data-theme="light"] .records-panel{
  background:
    radial-gradient(900px 420px at 72% -10%,rgb(var(--anomaly-rgb)/.08),transparent 60%),
    radial-gradient(760px 400px at 12% 110%,rgb(var(--accent-rgb)/.07),transparent 60%),
    #dfe3df;
}
/* light theme: calmer, higher-contrast motion */
html[data-theme="light"] .aurora i{opacity:.26;filter:blur(110px)}
html[data-theme="light"] .hero h1 .glow{
  background:linear-gradient(90deg,#0f766e,#0e7490,#5c4fc4,#0f766e);
  background-size:280% 100%;-webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 0 12px rgb(var(--accent-rgb)/.22));
}
html[data-theme="light"] .spotlight::after{
  background:radial-gradient(380px 240px at var(--mx,50%) var(--my,50%),rgb(var(--spot-rgb,var(--accent-rgb))/.11),transparent 65%);
}
/* accents must stay readable on the pale theme */
html[data-theme="light"] .eyebrow .lvl{color:#0f766e}
html[data-theme="light"] .eyebrow{color:#5a6168}
html[data-theme="light"] .post-card::before{background:linear-gradient(90deg,#0f766e,transparent 60%)}
html[data-theme="light"] .ticker-half span::after{color:rgb(var(--accent-rgb)/.8)}
html[data-theme="light"] .gtag::before{opacity:1}
html[data-theme="light"] .live-badge{border-color:rgb(var(--accent-rgb)/.55)}
html[data-theme="light"] .fresh-flag{background:rgba(23,28,32,.78);color:#7ce8d8}
html[data-theme="light"] .stat .num{color:#12181d}
html[data-theme="light"] .car-dot{background:rgba(25,35,32,.3)}
html[data-theme="light"] .pulse-dot{box-shadow:0 0 0 0 rgb(var(--accent-rgb)/.4)}
html[data-theme="light"] .btn::after{background:linear-gradient(100deg,transparent,rgba(23,28,32,.07),transparent)}
html[data-theme="light"] .btn-primary::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent)}
html[data-theme="light"] .stat-hero .num{text-shadow:0 0 16px rgb(var(--accent-rgb)/.22)}
html[data-theme="light"] .door .go,
html[data-theme="light"] .dcard .go{color:var(--accent)}
html[data-theme="light"] .brand:hover{filter:drop-shadow(0 0 8px rgb(var(--accent-rgb)/.4))}
/* light theme: status pills on pale surfaces are light glass with the
   darkened palette; pills sitting on covers keep the dark glass + the
   bright palette, because covers stay dark in both themes */
html[data-theme="light"] .tag{
  border-color:rgba(25,35,32,.3);background:rgba(255,255,255,.72);color:var(--text);
  backdrop-filter:blur(6px);
}
html[data-theme="light"] .tag[data-status]{
  color:rgb(var(--st));
  border-color:rgb(var(--st)/.5);
  background:
    linear-gradient(90deg,rgb(var(--st)/.14),transparent 80%),
    rgba(255,255,255,.78);
}
html[data-theme="light"] .cover [data-status="live"]{--st:74 222 128}
html[data-theme="light"] .cover [data-status="beta"]{--st:34 211 238}
html[data-theme="light"] .cover [data-status="in development"]{--st:251 146 60}
html[data-theme="light"] .cover [data-status="prototype"]{--st:167 139 250}
html[data-theme="light"] .cover [data-status="announced"]{--st:244 114 182}
html[data-theme="light"] .cover .tag{
  border-color:rgba(232,234,240,.25);background:rgba(10,11,14,.6);color:#e8eaf0;
}
html[data-theme="light"] .cover .tag[data-status]{
  color:rgb(var(--st));
  border-color:rgb(var(--st)/.32);
  background:
    linear-gradient(90deg,rgb(var(--st)/.14),transparent 80%),
    rgba(10,11,14,.66);
}
/* light theme: article chips need a stronger tint to read on white */
html[data-theme="light"] .ptag{background:rgb(var(--pt,23 28 32)/.12);border-color:rgb(var(--pt,23 28 32)/.55)}
html[data-theme="light"] .fresh-pill{background:rgb(var(--accent-rgb)/.14);border-color:rgb(var(--accent-rgb)/.65)}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--void);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .35s ease,color .35s ease;
}
::selection{background:var(--accent);color:var(--accent-ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* film grain over everything */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  opacity:var(--grain);mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--sp-3)}

/* ---------- utilities (must beat component shorthands) ---------- */
.pt-0{padding-top:0!important}
.pb-0{padding-bottom:0!important}
.pt-48{padding-top:var(--sp-5)!important}
.mt-16{margin-top:var(--sp-2)}
.mt-24{margin-top:var(--sp-3)}
.acc{color:var(--accent)}

/* ---------- wayfinding: quiet kicker — a divider, not a block ---------- */
.eyebrow{
  display:flex;align-items:center;gap:14px;margin-bottom:var(--sp-2);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--dim);
}
.eyebrow .kick{display:inline-flex;align-items:baseline;gap:10px}
/* quiet "go back" control, woven into the wayfinding divider */
.eyebrow .back-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);background:transparent;border:1px solid var(--line-strong);
  border-radius:999px;padding:7px 14px 7px 11px;cursor:pointer;
  transition:color .25s ease,border-color .25s ease;
}
.eyebrow .back-btn:hover{color:var(--accent);border-color:rgb(var(--accent-rgb)/.6)}
.eyebrow .back-btn .arr{transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.eyebrow .back-btn:hover .arr{transform:translateX(-3px)}
.eyebrow .lvl{color:rgb(var(--accent-rgb)/.8)}
.eyebrow .lvl::after{content:" /";color:var(--dim);opacity:.6}
.eyebrow::after{content:"";height:1px;flex:0 0 64px;background:linear-gradient(90deg,var(--line-strong),transparent)}

h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.12;letter-spacing:-.01em}
h1{font-size:clamp(34px,5.4vw,68px)}
h2{font-size:clamp(26px,3.4vw,42px)}
h3{font-size:20px}
.lead{color:var(--muted);font-size:clamp(16px,1.4vw,19px);max-width:640px}
.lead-narrow{max-width:380px;font-size:15px}

section{padding:var(--sp-section) 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap}
.head-actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 24px;border-radius:999px;border:1px solid var(--line-strong);
  font-family:var(--font-body);font-weight:600;font-size:15px;color:var(--text);
  background:transparent;
  transition:transform .3s cubic-bezier(.22,.61,.36,1),background .3s ease,border-color .3s ease,box-shadow .3s ease;
  white-space:nowrap;
}
/* light sweep on hover */
.btn::after{
  content:"";position:absolute;top:-20%;left:-65%;width:45%;height:140%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);
  transform:skewX(-18deg);pointer-events:none;transition:left .6s cubic-bezier(.22,.61,.36,1);
}
.btn:hover::after{left:125%}
.btn:hover{border-color:var(--text);transform:translateY(-2px)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn-primary::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent)}
.btn-primary:hover{box-shadow:0 6px 30px rgb(var(--accent-rgb)/var(--glow-strong));border-color:var(--accent)}
.btn-sm{padding:9px 16px;font-size:13.5px}
.btn .arr{transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.btn:hover .arr{transform:translateX(4px)}
.btn-danger{border-color:rgba(255,93,93,.4);color:var(--danger)}
.btn-danger:hover{border-color:var(--danger)}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);
  display:flex;align-items:center;
  background:rgb(var(--void-rgb)/.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .35s ease;
}
.nav .wrap{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.brand{display:flex;align-items:center;color:var(--text);transition:filter .3s ease}
.brand-mark{height:30px;width:auto;display:block}
.brand:hover{filter:drop-shadow(0 0 12px rgb(var(--accent-rgb)/.55))}
.nav-links{display:flex;align-items:center;gap:6px;position:relative}
.nav-links a{
  font-size:14.5px;font-weight:500;color:var(--muted);padding:9px 15px;border-radius:999px;
  transition:color .2s ease;position:relative;z-index:1;
}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
/* sliding pill — follows hover, rests on the active link (JS-positioned) */
.nav-ind{
  position:absolute;top:0;left:0;height:100%;border-radius:999px;
  background:var(--panel-2);border:1px solid var(--line);
  opacity:0;z-index:0;
  transition:transform .2s cubic-bezier(.22,.61,.36,1),width .2s cubic-bezier(.22,.61,.36,1),opacity .15s ease;
}
.nav-ind.on{opacity:1}
/* smooth cross-page morph in Chromium; harmless elsewhere */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}
.nav-cta{display:flex;gap:10px;align-items:center}
.nav-burger{display:none;background:none;border:1px solid var(--line-strong);border-radius:9px;width:40px;height:40px;color:var(--text);font-size:18px}

/* theme toggle */
.theme-toggle{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);
  background:transparent;color:var(--muted);display:grid;place-items:center;
  transition:color .18s,border-color .18s,transform .18s;
}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent);transform:rotate(15deg)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .ic-moon{display:none}
html[data-theme="light"] .theme-toggle .ic-sun{display:none}
html[data-theme="light"] .theme-toggle .ic-moon{display:block}

main{padding-top:var(--nav-h)}

/* ---------- hero (home) ---------- */
.hero{
  position:relative;min-height:calc(100vh - var(--nav-h));
  display:flex;align-items:center;overflow:hidden;
  background:
    radial-gradient(900px 480px at 78% 18%,rgb(var(--anomaly-rgb)/.10),transparent 60%),
    radial-gradient(1100px 560px at 22% 92%,rgb(var(--accent-rgb)/.07),transparent 60%),
    var(--void);
}
/* starfield canvas — slow drifting particles (JS-driven) */
.stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
/* drifting aurora blobs — slow, expensive-feeling ambient motion */
.aurora{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}
.aurora i:nth-child(1){
  width:46vw;height:46vw;left:58%;top:-22%;
  background:radial-gradient(circle at 50% 50%,rgb(var(--accent-rgb)/.34),transparent 65%);
  animation:drift-a 19s ease-in-out infinite alternate;
}
.aurora i:nth-child(2){
  width:40vw;height:40vw;left:-12%;bottom:-26%;
  background:radial-gradient(circle at 50% 50%,rgb(var(--anomaly-rgb)/.30),transparent 65%);
  animation:drift-b 25s ease-in-out infinite alternate;
}
.aurora i:nth-child(3){
  width:26vw;height:26vw;left:38%;top:42%;
  background:radial-gradient(circle at 50% 50%,rgb(var(--cyan-rgb)/.20),transparent 65%);
  animation:drift-c 30s ease-in-out infinite alternate;
}
html[data-theme="light"] .aurora i{opacity:.4}
@keyframes drift-a{to{transform:translate3d(-14vw,10vh,0) scale(1.18)}}
@keyframes drift-b{to{transform:translate3d(10vw,-8vh,0) scale(1.12)}}
@keyframes drift-c{to{transform:translate3d(8vw,6vh,0) scale(.9)}}

.hero-inner{position:relative;z-index:2;width:100%;will-change:transform,opacity}
.hero .aurora,.hero .stars{will-change:transform}
.hero h1 .glow{
  background:linear-gradient(90deg,var(--accent),rgb(var(--cyan-rgb)),var(--anomaly),var(--accent));
  background-size:280% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:glow-pan 9s linear infinite;
  filter:drop-shadow(0 0 24px rgb(var(--accent-rgb)/var(--glow-text)));
}
@keyframes glow-pan{to{background-position:280% 0}}
.hero .lead{margin:var(--sp-3) 0 var(--sp-4)}
.hero-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.hero-meta{
  margin-top:var(--sp-6);display:flex;gap:var(--sp-4);flex-wrap:wrap;
  font-family:var(--font-mono);font-size:12.5px;color:var(--dim);letter-spacing:.12em;text-transform:uppercase;
}
.hero-meta b{color:var(--muted);font-weight:500}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:var(--dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,6px)}}

/* hero entrance — plays once on load */
.hero-inner > *{animation:hero-rise .9s cubic-bezier(.2,.7,.2,1) backwards}
.hero-inner > *:nth-child(1){animation-delay:.05s}
.hero-inner > *:nth-child(2){animation-delay:.15s}
.hero-inner > *:nth-child(3){animation-delay:.25s}
.hero-inner > *:nth-child(4){animation-delay:.35s}
.hero-inner > *:nth-child(5){animation-delay:.45s}
@keyframes hero-rise{from{opacity:0;transform:translateY(26px)}}

/* ---------- records — glassy tiles over an animated galaxy ---------- */
.records{background:var(--void-2);border-block:1px solid var(--line)}
.records-panel{
  position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  background:
    radial-gradient(900px 420px at 72% -10%,rgb(var(--anomaly-rgb)/.12),transparent 60%),
    radial-gradient(760px 400px at 12% 110%,rgb(var(--accent-rgb)/.10),transparent 60%),
    var(--void);
}
.galaxy{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.stats-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);padding:var(--sp-2)}
.stat{
  position:relative;overflow:hidden;border-radius:12px;
  border:1px solid var(--line);
  background:rgb(var(--void-rgb)/.5);backdrop-filter:blur(12px);
  padding:var(--sp-3);
  display:grid;grid-template-rows:auto auto 1fr;align-items:start;row-gap:14px;
  transition:border-color .35s ease,background .35s ease,transform .35s ease;
}
.stat:hover{border-color:rgb(var(--accent-rgb)/.4);background:rgb(var(--void-rgb)/.66);transform:translateY(-3px)}
.stat::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),rgb(var(--anomaly-rgb)/.6) 70%,transparent);opacity:0;transition:opacity .35s}
.stat:hover::before{opacity:1}
.stat-top{display:flex;align-items:center;gap:10px;min-height:18px}
.stat .label{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.stat .num{font-family:var(--font-display);font-size:clamp(30px,3vw,46px);color:var(--text);line-height:1;font-variant-numeric:tabular-nums}
.stat .num .unit{font-size:.5em;color:var(--accent)}
.stat-hero .num{color:var(--accent);text-shadow:0 0 30px rgb(var(--accent-rgb)/var(--glow-text))}
.stat .sub{align-self:start;font-size:13.5px;color:var(--dim)}
.stat .sub b{color:var(--accent);font-weight:600}
.stat-chips{display:flex;flex-wrap:wrap;gap:6px;align-self:start;align-content:flex-start}
.stat-chip{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;padding:4px 10px;border:1px solid var(--line);border-radius:99px;color:var(--dim);background:rgb(var(--void-rgb)/.6)}
.stat-chip b{color:var(--accent);font-weight:500}
.pulse-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgb(var(--accent-rgb)/.5);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{70%{box-shadow:0 0 0 11px rgb(var(--accent-rgb)/0)}100%{box-shadow:0 0 0 0 rgb(var(--accent-rgb)/0)}}
.live-badge{
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);border:1px solid rgb(var(--accent-rgb)/.35);padding:8px 16px;border-radius:99px;
  display:none;align-items:center;gap:9px;
}
.live-badge.show{display:inline-flex}
.live-badge .pulse-dot{width:7px;height:7px;flex-basis:7px}

/* ---------- game cards / carousel ---------- */
.carousel-zone{position:relative}
/* edge fades as overlays (not mask): immune to transform-layer compositing
   bugs and consistent across browsers */
.carousel-zone::before,.carousel-zone::after{
  content:"";position:absolute;top:0;bottom:0;width:72px;z-index:4;pointer-events:none;
  opacity:1;transition:opacity .3s ease;
}
.carousel-zone::before{left:-1px;background:linear-gradient(90deg,var(--void),transparent)}
.carousel-zone::after{right:-1px;background:linear-gradient(270deg,var(--void),transparent)}
.carousel-zone.at-start::before{opacity:0}
.carousel-zone.at-end::after{opacity:0}
.carousel{
  display:flex;gap:var(--sp-3);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:var(--sp-1) 4px var(--sp-3);scroll-padding-inline:4px;scrollbar-width:none;
  cursor:grab;
}
.carousel::-webkit-scrollbar{display:none}
.carousel .game-card{flex:0 0 min(78vw,400px);scroll-snap-align:start}
/* desktop: we drive all movement ourselves — native snap would fight it */
@media (pointer:fine){.carousel{scroll-snap-type:none}}
.carousel,.carousel *{user-select:none;-webkit-user-drag:none}
.carousel.dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing}
.carousel.dragging .game-card{pointer-events:none}
.carousel.gliding{scroll-snap-type:none;scroll-behavior:auto}
.car-btns{display:flex;gap:10px}
.car-btn{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);
  background:var(--panel);color:var(--text);font-size:17px;
  transition:border-color .3s ease,color .3s ease,opacity .3s ease,transform .3s ease;
}
.car-btn:active:not(:disabled){transform:scale(.92)}
.car-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.car-btn:disabled{opacity:.3;cursor:default}
.car-dots{display:flex;gap:8px;justify-content:center;margin-top:var(--sp-1)}
.car-dot{
  width:8px;height:8px;border-radius:99px;border:none;padding:0;
  background:var(--line-strong);transition:width .3s ease,background .3s ease;
}
.car-dot:hover{background:var(--muted)}
.car-dot.active{width:26px;background:var(--accent)}

.game-card{
  position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  background:var(--panel);display:flex;flex-direction:column;
  transition:transform .4s cubic-bezier(.22,.61,.36,1),border-color .4s ease,box-shadow .4s ease;
}
.game-card:hover{transform:translateY(-6px);border-color:rgb(var(--accent-rgb)/.4);box-shadow:0 24px 60px -26px rgb(0 0 0/var(--shadow-strength)),0 0 34px -6px rgb(var(--accent-rgb)/.25)}

/* cursor spotlight — JS feeds --mx/--my; --spot-rgb adapts the hue per card */
.spotlight::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;
  background:radial-gradient(380px 240px at var(--mx,50%) var(--my,50%),rgb(var(--spot-rgb,var(--accent-rgb))/.12),transparent 65%);
  transition:opacity .4s ease;
}
.spotlight:hover::after{opacity:1}
.social.discord{--spot-rgb:88 101 242}
.social.x{--spot-rgb:var(--x-glow-rgb)}
.social.yt{--spot-rgb:255 70 70}
.cover{
  aspect-ratio:16/9;position:relative;display:flex;align-items:flex-end;padding:var(--sp-2);
  background-size:cover;background-position:center;
}
/* covers stay dark in both themes — intentional, keeps the liminal mood */
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,11,14,.85));}
.tag{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;padding:6px 11px;border-radius:99px;border:1px solid rgba(232,234,240,.25);
  background:rgba(10,11,14,.6);backdrop-filter:blur(6px);color:#e8eaf0;
}
/* status color coding — glowing dot + tinted pill */
[data-status="live"]{--st:74 222 128}
[data-status="beta"]{--st:34 211 238}
[data-status="in development"]{--st:251 146 60}
[data-status="prototype"]{--st:167 139 250}
[data-status="announced"]{--st:244 114 182}
/* darker status palette for the light theme (contrast on pale surfaces) */
html[data-theme="light"] [data-status="live"]{--st:21 128 61}
html[data-theme="light"] [data-status="beta"]{--st:14 116 144}
html[data-theme="light"] [data-status="in development"]{--st:194 65 12}
html[data-theme="light"] [data-status="prototype"]{--st:109 40 217}
html[data-theme="light"] [data-status="announced"]{--st:190 24 93}
.tag[data-status]{
  display:inline-flex;align-items:center;gap:8px;
  color:rgb(var(--st,232 234 240));
  border:1px solid rgb(var(--st,232 234 240)/.32);
  background:
    linear-gradient(90deg,rgb(var(--st,232 234 240)/.14),transparent 80%),
    rgba(10,11,14,.66);
}
.tag[data-status]::before{
  content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;
  background:rgb(var(--st,232 234 240));
  box-shadow:0 0 10px rgb(var(--st,232 234 240)/.9);
}
.tag[data-status="live"]::before{animation:st-pulse 2.2s ease-out infinite}
@keyframes st-pulse{
  0%{box-shadow:0 0 0 0 rgb(var(--st)/.55)}
  70%{box-shadow:0 0 0 8px rgb(var(--st)/0)}
  100%{box-shadow:0 0 0 0 rgb(var(--st)/0)}
}
.cover .tag{position:relative;z-index:2}
.game-body{padding:var(--sp-3);display:flex;flex-direction:column;gap:12px;flex:1}
.game-body h3{font-size:19px}
.game-body p{color:var(--muted);font-size:14.5px;flex:1}
.game-stats{display:flex;gap:var(--sp-2);font-family:var(--font-mono);font-size:12px;color:var(--dim);letter-spacing:.06em}
.game-stats b{color:var(--accent);font-weight:500}
.game-actions{display:flex;gap:10px;margin-top:var(--sp-1);flex-wrap:wrap}

/* gradient cover placeholders */
.cv-liminal{background-image:radial-gradient(120% 130% at 20% 10%,#0e3c36,#080e0d 55%),repeating-linear-gradient(90deg,rgba(45,212,191,.13) 0 2px,transparent 2px 64px)}
.cv-anomaly{background-image:radial-gradient(130% 120% at 80% 20%,#241f56,#0a0a14 60%),repeating-linear-gradient(0deg,rgba(122,108,255,.12) 0 2px,transparent 2px 52px)}
.cv-pool{background-image:radial-gradient(130% 130% at 50% 0%,#0e3c46,#08141a 60%),repeating-linear-gradient(45deg,rgba(94,222,255,.08) 0 14px,transparent 14px 28px)}
.cv-indie1{background-image:radial-gradient(120% 130% at 15% 85%,#4a1330,#120712 60%)}
.cv-indie2{background-image:radial-gradient(130% 120% at 85% 80%,#13402a,#07120c 60%)}

/* ---------- generic grid ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}
.grid-2.wide-gap{gap:var(--sp-6);align-items:start}

/* ---------- explore — fanned display-card stack ---------- */
.explore-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--sp-6);align-items:center}
.explore-grid .lead{margin:var(--sp-2) 0 var(--sp-4)}
.display-stack{position:relative;display:grid;place-items:center;min-height:440px;padding:var(--sp-3) 0}
.dcard{
  grid-area:1/1;width:min(100%,400px);z-index:1;
  display:flex;flex-direction:column;gap:10px;
  padding:var(--sp-3);
  border-radius:var(--radius);border:1px solid var(--line-strong);
  background:rgb(var(--void-rgb)/.55);backdrop-filter:blur(14px);
  box-shadow:0 24px 60px -30px rgb(0 0 0/var(--shadow-strength));
  filter:grayscale(.65) brightness(.88);
  transition:transform .7s cubic-bezier(.22,.61,.36,1),filter .7s ease,border-color .4s ease,box-shadow .7s ease;
}
.dcard .ic{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent);border:1px solid rgb(var(--accent-rgb)/.3);
  margin-bottom:4px;
}
.dcard .ic svg{width:20px;height:20px}
.dcard .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;color:var(--dim);text-transform:uppercase}
.dcard h3{font-size:20px}
.dcard p{color:var(--muted);font-size:14.5px}
.dcard .go{margin-top:6px;color:var(--accent);font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center}
.dcard .go .arr{transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.dcard:hover .go .arr{transform:translateX(5px)}
/* the fan */
.dcard:nth-child(1){transform:translate(-15%,-32%) rotate(-7deg)}
.dcard:nth-child(2){transform:translate(2%,-2%) rotate(-1deg);z-index:2}
.dcard:nth-child(3){transform:translate(19%,28%) rotate(5deg);z-index:3}
/* hovering the stack spreads it and wakes the colors */
.display-stack:hover .dcard{filter:none}
.display-stack:hover .dcard:nth-child(1){transform:translate(-24%,-42%) rotate(-9deg)}
.display-stack:hover .dcard:nth-child(3){transform:translate(28%,38%) rotate(7deg)}
/* hovering a card lifts it on top */
.display-stack .dcard:hover{
  z-index:5;border-color:rgb(var(--accent-rgb)/.55);
  box-shadow:0 32px 80px -32px rgb(0 0 0/var(--shadow-strength)),0 0 46px -8px rgb(var(--accent-rgb)/.35);
}
.display-stack .dcard:nth-child(1):hover{transform:translate(-24%,-44%) rotate(-3deg) scale(1.05)}
.display-stack .dcard:nth-child(2):hover{transform:translate(2%,-4%) rotate(0deg) scale(1.05)}
.display-stack .dcard:nth-child(3):hover{transform:translate(28%,36%) rotate(2deg) scale(1.05)}

/* ---------- about strip: bento + ticker ---------- */
.about{background:var(--void-2);border-block:1px solid var(--line);overflow:hidden}
.about > .wrap > .eyebrow{margin-bottom:var(--sp-4)}
/* columns stretch together: bento rows fill the column height, and the
   metrics row is pinned to the bottom so both columns end on the same line */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--sp-6);align-items:stretch}
.about-grid > div:first-child{display:flex;flex-direction:column}
.about-grid > .bento{grid-auto-rows:1fr}
.about .lead{margin:var(--sp-3) 0}
.about blockquote{
  border-left:2px solid var(--accent);padding-left:var(--sp-3);color:var(--muted);
  font-size:17px;font-style:italic;
}
.about-metrics{display:flex;gap:var(--sp-4);margin-top:auto;padding-top:var(--sp-4);flex-wrap:wrap}
.about-metric .m-num{font-family:var(--font-display);font-size:30px;color:var(--accent);line-height:1}
.about-metric .m-lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:6px}
.bento{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.bento-card{
  position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--radius);
  background:rgb(var(--void-rgb)/.45);backdrop-filter:blur(10px);
  padding:var(--sp-3);display:flex;flex-direction:column;gap:8px;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),border-color .35s ease,box-shadow .35s ease;
}
.bento-card:hover{transform:translateY(-4px);border-color:rgb(var(--accent-rgb)/.4);box-shadow:0 18px 44px -22px rgb(0 0 0/var(--shadow-strength))}
.bento-card .ic{
  width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent);border:1px solid rgb(var(--accent-rgb)/.3);
}
.bento-card .ic svg{width:18px;height:18px}
.bento-card b{font-size:15.5px}
.bento-card span{color:var(--muted);font-size:13.5px;line-height:1.5}
/* keyword ticker — two identical halves => seamless -50% loop */
.ticker{margin-top:var(--sp-6);border-block:1px solid var(--line);padding:14px 0;overflow:hidden;position:relative}
.ticker::before,.ticker::after{
  content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;
}
.ticker::before{left:0;background:linear-gradient(90deg,var(--void-2),transparent)}
.ticker::after{right:0;background:linear-gradient(270deg,var(--void-2),transparent)}
.ticker-track{display:flex;width:max-content;animation:ticker 40s linear infinite;will-change:transform}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-half{display:flex;align-items:center;gap:var(--sp-5);padding-right:var(--sp-5)}
.ticker-half span{
  font-family:var(--font-mono);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--dim);white-space:nowrap;display:flex;align-items:center;gap:var(--sp-5);
}
.ticker-half span::after{content:"✦";color:rgb(var(--accent-rgb)/.55);font-size:10px}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ---------- page hero (games / blogs / admin) ---------- */
.page-hero{padding:var(--sp-6) 0 var(--sp-5)}
.page-hero .lead{margin-top:var(--sp-2)}
.block-divider{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-6) 0 var(--sp-4);font-family:var(--font-mono);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.block-divider:first-child{margin-top:0}
.filters + .block-divider{margin-top:0}
.block-divider::before,.block-divider::after{content:"";height:1px;background:var(--line);flex:1}

/* ---------- blogs ---------- */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:var(--sp-4)}
.platform-chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{
  padding:9px 18px;border-radius:999px;border:1px solid var(--line-strong);
  background:transparent;color:var(--muted);font-size:14px;font-weight:500;transition:.15s;
}
.chip:hover{color:var(--text);border-color:var(--text)}
.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* "show more" toggle — an action, not a tag */
.chip-more{
  padding:9px 14px;border:none;background:none;border-radius:99px;
  color:var(--accent);font-family:var(--font-mono);font-size:12.5px;
  letter-spacing:.05em;font-weight:600;cursor:pointer;
  transition:background .2s ease;
}
.chip-more:hover{background:var(--accent-soft)}
.filters .spacer{flex:1}

/* ---------- custom dropdown (filters, language switcher) ---------- */
.dd{position:relative}
.dd-btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:9px 14px 9px 18px;border-radius:999px;border:1px solid var(--line-strong);
  background:transparent;color:var(--text);font-size:14px;font-weight:500;
  transition:border-color .2s ease,color .2s ease;white-space:nowrap;
}
.dd-btn:hover{border-color:var(--text)}
.dd-btn .chev{width:10px;height:10px;transition:transform .25s ease;flex:0 0 10px}
.dd.open .dd-btn{border-color:var(--accent)}
.dd.open .dd-btn .chev{transform:rotate(180deg)}
.dd-menu{
  position:absolute;top:calc(100% + 8px);left:0;min-width:max(100%,190px);z-index:120;
  background:rgb(var(--void-rgb)/.85);backdrop-filter:blur(16px);
  border:1px solid var(--line-strong);border-radius:12px;padding:6px;
  box-shadow:0 24px 60px -24px rgb(0 0 0/var(--shadow-strength));
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .22s ease,transform .22s cubic-bezier(.22,.61,.36,1);
  max-height:320px;overflow-y:auto;scrollbar-width:thin;
}
.dd.open .dd-menu{opacity:1;transform:none;pointer-events:auto}
.dd-menu.right{left:auto;right:0}
.dd-item{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:9px 12px;border-radius:8px;border:none;background:transparent;
  color:var(--muted);font-size:14px;text-align:left;cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.dd-item:hover{background:var(--accent-soft);color:var(--text)}
.dd-item.sel{color:var(--accent)}
.dd-item .tick{width:14px;height:14px;flex:0 0 14px;opacity:0}
.dd-item.sel .tick{opacity:1}
.dd-item .sub-lbl{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--dim)}
/* SVG language flags — emoji flags don't render on Windows */
.flag{width:17px;height:auto;flex:0 0 17px;border-radius:3px;display:block;box-shadow:0 0 0 1px var(--line)}
.post-count{font-family:var(--font-mono);font-size:12px;color:var(--dim);letter-spacing:.1em}

.post-card{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);
  padding:var(--sp-3);display:flex;flex-direction:column;gap:12px;
  transition:transform .4s cubic-bezier(.22,.61,.36,1),border-color .4s ease,box-shadow .4s ease;
  position:relative;overflow:hidden;
}
.post-card:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 20px 50px -26px rgb(0 0 0/var(--shadow-strength))}
.post-card::before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),transparent 60%);opacity:0;transition:.2s;z-index:2}
.post-card:hover::before{opacity:1}
.post-thumb{
  aspect-ratio:16/7;margin:calc(var(--sp-3) * -1) calc(var(--sp-3) * -1) 0;
  background-size:cover;background-position:center;border-bottom:1px solid var(--line);
}
.post-meta{display:flex;gap:10px;align-items:center;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);flex-wrap:wrap}
.post-meta .game-pill{color:var(--accent);border:1px solid rgb(var(--accent-rgb)/.35);padding:3px 10px;border-radius:99px}
/* article category chips — colored like statuses */
[data-ptag="major-update"]{--pt:var(--accent-rgb)}
[data-ptag="update"]{--pt:var(--cyan-rgb)}
[data-ptag="minor-update"]{--pt:148 163 184}
html[data-theme="light"] [data-ptag="minor-update"]{--pt:71 85 105}
[data-ptag="season"]{--pt:167 139 250}
[data-ptag="devlog"]{--pt:244 114 182}
[data-ptag="beta"]{--pt:96 165 250}
[data-ptag="hotfix"]{--pt:251 146 60}
[data-ptag="announcement"]{--pt:232 234 240}
html[data-theme="light"] [data-ptag="season"]{--pt:109 40 217}
html[data-theme="light"] [data-ptag="devlog"]{--pt:190 24 93}
html[data-theme="light"] [data-ptag="beta"]{--pt:29 78 216}
html[data-theme="light"] [data-ptag="hotfix"]{--pt:194 65 12}
html[data-theme="light"] [data-ptag="announcement"]{--pt:23 28 32}
.ptag{
  display:inline-flex;align-items:center;gap:7px;
  color:rgb(var(--pt,232 234 240));
  border:1px solid rgb(var(--pt,232 234 240)/.35);
  background:rgb(var(--pt,232 234 240)/.08);
  padding:3px 10px;border-radius:99px;
}
.ptag::before{content:"";width:5px;height:5px;border-radius:50%;flex:0 0 5px;background:rgb(var(--pt,232 234 240))}
/* freshly published (≤7 days): quiet accent outline + corner flag;
   the hover top-bar stays a hover-only effect */
.fresh-pill{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--accent);border:1px solid rgb(var(--accent-rgb)/.5);
  background:rgb(var(--accent-rgb)/.1);padding:3px 10px;border-radius:99px;font-weight:500;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;
}
.fresh-pill::before{content:"";width:5px;height:5px;border-radius:50%;flex:0 0 5px;background:var(--accent);animation:pulse 2.2s ease-out infinite}
.post-card[data-fresh]{border-color:rgb(var(--accent-rgb)/.45)}
.fresh-flag{
  position:absolute;top:12px;right:12px;z-index:3;
  background:rgba(10,11,14,.78);backdrop-filter:blur(8px);
  box-shadow:0 4px 14px -4px rgba(0,0,0,.6);
}
/* card footer: read-more left, date right */
.post-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.post-foot .read{color:var(--accent);font-weight:600;font-size:14px}
.post-foot .date{font-family:var(--font-mono);font-size:11.5px;color:var(--dim);letter-spacing:.06em}
.post-card h3{font-size:18.5px;font-family:var(--font-body);font-weight:700}
.post-card p{color:var(--muted);font-size:14.5px;flex:1}
.post-card .read{color:var(--accent);font-weight:600;font-size:14px}
.empty{
  border:1px dashed var(--line-strong);border-radius:var(--radius);padding:var(--sp-6) var(--sp-3);
  text-align:center;color:var(--muted);
}
.empty b{display:block;color:var(--text);margin-bottom:6px;font-size:17px}

/* post reader modal — scroll lives INSIDE the box, page scroll is locked */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:4vh 20px;background:var(--backdrop);backdrop-filter:blur(8px)}
.modal.open{display:flex}
body.modal-open{overflow:hidden}
.modal-box{
  width:min(760px,100%);max-height:88vh;display:flex;flex-direction:column;
  background:var(--void-2);border:1px solid var(--line-strong);
  border-radius:var(--radius);padding:0;position:relative;overflow:hidden;
  animation:rise .25s ease;
}
@keyframes rise{from{transform:translateY(16px);opacity:0}}
.modal-scroll{
  overflow-y:auto;padding:var(--sp-5);
  scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;
}
.modal-scroll::-webkit-scrollbar{width:5px}
.modal-scroll::-webkit-scrollbar-track{background:transparent;margin:14px 0}
.modal-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}
.modal-scroll::-webkit-scrollbar-thumb:hover{background:rgb(var(--accent-rgb)/.45)}
.modal-close{position:absolute;top:16px;right:16px;z-index:2;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);background:var(--panel);color:var(--text);font-size:15px}
.modal-close:hover{border-color:var(--accent);color:var(--accent)}
.modal-box h2{margin:var(--sp-2) 0 var(--sp-3);font-size:clamp(22px,3vw,30px)}

/* article body — shared by reader modal and WYSIWYG editor */
.post-body{color:var(--muted);display:flex;flex-direction:column;gap:14px;font-size:15.5px}
.post-body h2,.post-body h3,.post-body h4{color:var(--text);font-family:var(--font-body);font-weight:700;margin-top:10px;line-height:1.3}
.post-body h2{font-size:21px}
.post-body h3{font-size:18px}
.post-body h4{font-size:16.5px}
.post-body ul,.post-body ol{padding-left:22px;display:flex;flex-direction:column;gap:6px}
.post-body strong,.post-body b{color:var(--text)}
.post-body code{font-family:var(--font-mono);font-size:13px;background:var(--panel-2);padding:2px 7px;border-radius:6px;color:var(--accent)}
.post-body pre{background:var(--panel-2);border:1px solid var(--line);padding:14px 16px;border-radius:var(--radius-sm);overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.6}
.post-body pre code{background:none;padding:0}
.post-body blockquote{border-left:2px solid var(--accent);padding-left:var(--sp-2);font-style:italic}
.post-body img{border-radius:var(--radius-sm);border:1px solid var(--line);max-width:100%;cursor:zoom-in}

/* image lightbox — click to enlarge, wheel to zoom into a spot */
.lightbox{
  position:fixed;inset:0;z-index:340;display:none;align-items:center;justify-content:center;
  background:rgba(4,5,7,.9);backdrop-filter:blur(10px);cursor:zoom-out;overflow:hidden;padding:24px;
}
.lightbox.open{display:flex}
.lightbox img{
  max-width:92vw;max-height:90vh;border-radius:10px;cursor:zoom-out;
  box-shadow:0 40px 120px -40px rgba(0,0,0,.9);
  will-change:transform; /* movement is JS-eased — a CSS transition here desyncs the zoom math */
}
.lightbox.zoomed img{cursor:grab}
.lightbox.zoomed.panning img{cursor:grabbing}
.post-body figure{margin:4px 0}
.post-body figcaption{font-family:var(--font-mono);font-size:12px;color:var(--dim);margin-top:8px}
.post-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* ---------- game detail ---------- */
.game-hero{padding:var(--sp-6) 0;position:relative;overflow:hidden}
.game-hero .cover-bg{position:absolute;inset:0;opacity:.38;filter:saturate(.95);background-size:cover;background-position:center}
.game-hero .cover-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(var(--void-rgb)/.3),var(--void)),radial-gradient(700px 360px at 18% 20%,rgb(var(--accent-rgb)/.10),transparent 65%)}
.game-hero .wrap{position:relative;z-index:2}
.game-hero .status-tag{display:inline-block;margin-bottom:var(--sp-2)}
.game-hero .lead{margin-top:var(--sp-2)}
.game-hero .meta-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin:var(--sp-3) 0;font-family:var(--font-mono);font-size:13px;color:var(--muted);letter-spacing:.06em}
.game-hero .meta-row b{color:var(--accent);font-weight:500}
.game-hero .hero-actions{margin-top:var(--sp-4)}
/* tag cloud — quiet mono chips with a # accent */
.game-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--sp-3)}
.gtag{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;
  padding:7px 13px;border-radius:9px;
  color:var(--muted);background:rgb(var(--void-rgb)/.5);
  border:1px solid var(--line);backdrop-filter:blur(8px);
  transition:color .25s ease,border-color .25s ease,background .25s ease,transform .25s ease;
}
.gtag::before{content:"#";color:var(--accent);margin-right:6px;opacity:.85}
.gtag:hover{color:var(--text);border-color:rgb(var(--accent-rgb)/.45);background:rgb(var(--accent-rgb)/.08);transform:translateY(-1px)}
/* trailer */
.trailer-frame{
  position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line-strong);background:var(--panel);
  box-shadow:0 26px 70px -30px rgb(0 0 0/var(--shadow-strength)),0 0 44px -10px rgb(var(--accent-rgb)/.22);
}
.trailer-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* description paragraphs */
.desc-text{display:flex;flex-direction:column;gap:14px;max-width:none}
.one-col{grid-template-columns:1fr}
.sub-h2{margin-bottom:var(--sp-2)}

/* ---------- community ---------- */
.community{border-top:1px solid var(--line);background:
  radial-gradient(640px 300px at 50% 0%,rgb(var(--accent-rgb)/.08),transparent 65%),var(--void-2)}
.community .head-center{text-align:center;max-width:620px;margin:0 auto var(--sp-5)}
.community .head-center .eyebrow{justify-content:center}
.community .head-center .eyebrow::after{display:none}
.community .head-center .lead{margin:var(--sp-2) auto 0}
.socials{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.social{
  position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);
  padding:var(--sp-4) var(--sp-3);display:flex;flex-direction:column;gap:8px;
  transition:transform .4s cubic-bezier(.22,.61,.36,1),border-color .4s ease,box-shadow .4s ease;
}
.social:hover{transform:translateY(-5px);border-color:var(--line-strong)}
.social .ic{font-size:24px;margin-bottom:var(--sp-1)}
.social b{font-size:17px}
.social span{color:var(--muted);font-size:14px}
.social .go{margin-top:12px;color:var(--accent);font-weight:600;font-size:14px}
.social .ic svg{width:26px;height:26px;display:block}
.social.discord .ic{color:#5865F2}
.social.x .ic{color:var(--text)}
.social.yt .ic{color:#FF0000}
.social.discord:hover{box-shadow:0 0 0 1px rgba(88,101,242,.45),0 18px 46px -20px rgba(88,101,242,.55)}
.social.x:hover{box-shadow:0 0 0 1px rgb(var(--x-glow-rgb)/.6),0 18px 46px -20px rgb(var(--x-glow-rgb)/.45)}
.social.yt:hover{box-shadow:0 0 0 1px rgba(255,0,0,.45),0 18px 46px -20px rgba(255,0,0,.5)}

/* ---------- newsletter — quiet broadcast panel ---------- */
.newsletter{
  position:relative;overflow:hidden;
  margin-top:var(--sp-5);border:1px solid rgb(var(--accent-rgb)/.22);border-radius:var(--radius);
  background:
    radial-gradient(560px 280px at 88% -40%,rgb(var(--accent-rgb)/.13),transparent 65%),
    radial-gradient(480px 260px at 2% 140%,rgb(var(--anomaly-rgb)/.10),transparent 65%),
    rgb(var(--void-rgb)/.45);
  backdrop-filter:blur(10px);
  padding:var(--sp-4) var(--sp-5);
  display:grid;grid-template-columns:1.05fr 1fr;gap:var(--sp-5);align-items:center;
}
.nl-kick{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:rgb(var(--accent-rgb)/.85);
}
.nl-kick .pulse-dot{width:7px;height:7px;flex-basis:7px}
.newsletter h3{font-family:var(--font-display);font-size:clamp(20px,2.2vw,26px);margin-bottom:10px}
.newsletter .nl-sub{color:var(--muted);font-size:14.5px;max-width:46ch}
.nl-form{display:flex;flex-direction:column;gap:12px;justify-content:center}
/* one sealed capsule: icon + input + button */
.nl-row{
  display:flex;align-items:center;gap:8px;
  padding:6px 6px 6px 18px;border-radius:999px;
  background:var(--void-2);border:1px solid var(--line-strong);
  transition:border-color .25s ease,box-shadow .25s ease;
}
.nl-row:focus-within{border-color:var(--accent);box-shadow:0 0 28px -10px rgb(var(--accent-rgb)/.55)}
.nl-row .nl-mail{width:16px;height:16px;flex:0 0 16px;color:var(--dim)}
.nl-row:focus-within .nl-mail{color:var(--accent)}
.nl-row input[type="email"]{
  flex:1;background:transparent;border:none;color:var(--text);
  padding:9px 4px;font:inherit;font-size:14.5px;min-width:0;
}
.nl-row input[type="email"]:focus{outline:none}
.nl-consent{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--dim);cursor:pointer;padding-left:6px}
.nl-consent input{accent-color:var(--accent);margin-top:2px}
.nl-msg{font-size:13px;min-height:0;line-height:1.4}
.nl-msg:empty{display:none}
.nl-msg.ok{color:var(--accent)}
.nl-msg.err{color:var(--danger)}
.nl-hp{position:absolute;left:-9999px;opacity:0;pointer-events:none}

/* ---------- admin login overlay ---------- */
.gate{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;background:var(--backdrop);backdrop-filter:blur(12px);padding:20px}
.gate.show{display:flex}
.gate-box{
  width:min(420px,100%);background:var(--void-2);border:1px solid var(--line-strong);
  border-radius:var(--radius);padding:var(--sp-4);animation:rise .25s ease;
}
.gate-box h3{margin-bottom:6px}
.gate-box .g-sub{color:var(--muted);font-size:14px;margin-bottom:var(--sp-3)}
.gate-msg{font-size:13px;min-height:18px;margin-top:10px}
.gate-msg.err{color:var(--danger)}
.gate-msg.ok{color:var(--accent)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:var(--sp-4) 0;background:var(--void)}
footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer .copy{color:var(--dim);font-size:13.5px;font-family:var(--font-mono);letter-spacing:.04em}
footer .f-links{display:flex;gap:var(--sp-2);align-items:center}
footer .f-links a{color:var(--muted);font-size:14px}
footer .f-links a:hover{color:var(--text)}
footer .f-links a.staff{color:var(--dim);font-size:13px}

/* ---------- admin ---------- */
.tabs{
  display:inline-flex;gap:4px;margin-top:var(--sp-4);flex-wrap:wrap;
  padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
}
.tab{
  padding:10px 18px;background:none;border:none;border-radius:9px;color:var(--muted);
  font-weight:600;font-size:14px;transition:color .2s ease,background .2s ease;
}
.tab:hover{color:var(--text)}
.tab.active{color:var(--accent);background:var(--accent-soft)}
.tab-panel{padding:0 0 var(--sp-section)}
.tab-panel[hidden]{display:none}

/* editor on top, full width; lists and notes below */
.admin-stack{display:flex;flex-direction:column;gap:var(--sp-3);padding-top:var(--sp-3)}
/* native select kept in the DOM for form semantics, custom dropdown on top */
.native-hidden{position:absolute!important;width:1px;height:1px;opacity:0;pointer-events:none}
.field .dd{display:block;width:100%}
.field .dd .dd-btn{width:100%;justify-content:space-between;border-radius:var(--radius-sm);padding:11px 14px;background:var(--void-2);font-size:14.5px}
.field .dd .dd-menu{min-width:100%}
.admin-cols{display:grid;grid-template-columns:1fr 1.5fr;gap:var(--sp-3);align-items:start}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--sp-2)}
.form-grid .span-2{grid-column:span 2}
.form-grid .span-3{grid-column:1/-1}
.admin-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:var(--sp-4)}
.admin-panel h3{
  margin-bottom:var(--sp-3);padding-bottom:14px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;font-size:17px;gap:10px;
}
.admin-panel h3 .badge{color:var(--dim);font-family:var(--font-mono);font-size:12px;font-weight:400}
.admin-side{display:flex;flex-direction:column;gap:var(--sp-3)}
.field{margin-bottom:var(--sp-2)}
.field label{display:block;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;background:var(--void-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  color:var(--text);padding:11px 14px;font:inherit;font-size:14.5px;transition:border-color .15s;
}
.field textarea{min-height:110px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field .hint{font-size:12.5px;color:var(--dim);margin-top:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--sp-3);align-items:center}
.admin-actions .size-note{font-family:var(--font-mono);font-size:11.5px;color:var(--dim)}
.admin-list{display:flex;flex-direction:column;gap:10px;max-height:560px;overflow-y:auto;padding-right:4px}
.admin-row{
  display:flex;align-items:center;gap:var(--sp-2);border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--void-2);padding:13px 16px;transition:border-color .2s ease;
}
.admin-row:hover{border-color:rgb(var(--accent-rgb)/.35)}
.admin-row .t{flex:1;min-width:0}
.admin-row .t b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-row .t span{font-family:var(--font-mono);font-size:11px;color:var(--dim);letter-spacing:.08em}
.admin-row .ops{display:flex;gap:6px}
.icon-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);font-size:14px}
.icon-btn:hover{color:var(--text);border-color:var(--text)}
.icon-btn.del:hover{color:var(--danger);border-color:var(--danger)}
.toast{
  position:fixed;bottom:26px;left:50%;transform:translate(-50%,80px);z-index:300;
  background:var(--panel-2);border:1px solid var(--accent);color:var(--text);
  padding:13px 22px;border-radius:99px;font-size:14.5px;transition:transform .3s ease;
  box-shadow:0 14px 40px -10px rgb(0 0 0/var(--shadow-strength));
}
.toast.show{transform:translate(-50%,0)}
.admin-note{border:1px solid rgb(var(--accent-rgb)/.3);background:var(--accent-soft);border-radius:var(--radius-sm);padding:var(--sp-2) 18px;font-size:13.5px;color:var(--muted)}
.admin-note b{color:var(--accent)}
.admin-note code{font-family:var(--font-mono);font-size:12.5px}
.draft-banner{
  display:none;align-items:center;gap:var(--sp-2);flex-wrap:wrap;
  border:1px solid rgb(var(--accent-rgb)/.4);background:var(--accent-soft);
  padding:10px 16px;border-radius:var(--radius-sm);font-size:13.5px;margin-top:var(--sp-2);
}
.draft-banner.show{display:flex}
.draft-banner .grow{flex:1;min-width:200px}
.api-status{font-family:var(--font-mono);font-size:12.5px;color:var(--dim);margin-top:8px;min-height:18px}
.api-status.ok{color:var(--accent)}
.api-status.err{color:var(--danger)}
/* WYSIWYG editor */
.wys-toolbar{
  display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:var(--panel-2);
  border:1px solid var(--line-strong);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  position:sticky;top:calc(var(--nav-h) + 8px);z-index:5;
}
.wys-group{display:flex;gap:2px;padding:3px;background:var(--void-2);border:1px solid var(--line);border-radius:8px}
.wys-group.right{margin-left:auto}
.wys-btn{
  width:32px;height:28px;padding:0;border-radius:6px;border:none;
  display:grid;place-items:center;
  background:transparent;color:var(--muted);
  font-family:var(--font-body);font-size:12.5px;font-weight:700;line-height:1;
  transition:color .15s ease,background .15s ease;
}
.wys-btn svg{width:15px;height:15px;display:block}
.wys-btn:hover{color:var(--text);background:var(--panel)}
.wys-btn.on{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb)/.4)}
.wysiwyg{
  min-height:320px;max-height:560px;overflow-y:auto;
  background:var(--void-2);border:1px solid var(--line-strong);
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  padding:var(--sp-2) 18px;font-size:14.5px;
}
.wysiwyg:focus{outline:none;border-color:var(--accent)}
.wysiwyg:empty::before{content:attr(data-placeholder);color:var(--dim);pointer-events:none}
/* body is being edited in the pop-out window */
.wysiwyg.detached{opacity:.45;pointer-events:none;user-select:none}

/* ---------- reveal on scroll ----------
   keyframes (not transitions) so hover transitions never conflict,
   and OS-level reduced-motion can't silently kill it */
.reveal{opacity:0}
.reveal.in{opacity:1;animation:reveal-in .8s cubic-bezier(.16,.84,.28,1) backwards}
@keyframes reveal-in{from{opacity:0;transform:translateY(28px)}}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .stats-grid,.grid-3,.socials{grid-template-columns:1fr 1fr}
  .about-grid{grid-template-columns:1fr;gap:var(--sp-4)}
  .admin-cols{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr 1fr}
  .form-grid .span-2,.form-grid .span-3{grid-column:1/-1}
  .grid-2.wide-gap{grid-template-columns:1fr;gap:var(--sp-4)}
  .explore-grid{grid-template-columns:1fr;gap:var(--sp-4)}
  .display-stack{display:flex;flex-direction:column;gap:var(--sp-2);min-height:0;padding:0}
  .display-stack .dcard{transform:none!important;filter:none;width:100%}
  .bento{grid-template-columns:1fr 1fr}
  .newsletter{grid-template-columns:1fr}
  .nl-form{min-width:0}
}
@media (max-width:680px){
  section{padding:var(--sp-6) 0}
  .tab-panel{padding-bottom:var(--sp-6)}
  .stats-grid,.grid-3,.grid-2,.socials{grid-template-columns:1fr}
  .nav-links{
    position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:stretch;
    background:var(--void-2);border-bottom:1px solid var(--line);padding:var(--sp-2) var(--sp-3) var(--sp-3);gap:4px;
    display:none;
  }
  .nav-links.open{display:flex}
  .nav-ind{display:none}
  .nav-links a.active{background:var(--panel-2);border:1px solid var(--line)}
  .nav-burger{display:block}
  .nav-cta .btn{display:none}
  .modal-box{padding:var(--sp-4) var(--sp-3)}
  .form-grid{grid-template-columns:1fr}
}
