:root{
  --ground:#ECE7E2; --surface:#F6F2EE; --surface-2:#FFFFFF; --ink:#1A1418;
  --ash:#6E6570; --line:rgba(20,10,20,.10); --ember:#E23A0E; --ember-hot:#F1791F;
  --ember-soft:rgba(226,58,14,.10); --glass:rgba(246,242,238,.72);
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --disp:"Helvetica Neue","Arial Black",system-ui,sans-serif;
  --maxw:1120px;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#0C0A0D; --surface:#17141B; --surface-2:#201C26; --ink:#F3EDE8;
    --ash:#9A8F98; --line:rgba(255,255,255,.09); --ember:#FF5A1F; --ember-hot:#FFA23A;
    --ember-soft:rgba(255,90,31,.14); --glass:rgba(12,10,13,.66);
  }
}
:root[data-theme="light"]{
  --ground:#ECE7E2; --surface:#F6F2EE; --surface-2:#FFFFFF; --ink:#1A1418;
  --ash:#6E6570; --line:rgba(20,10,20,.10); --ember:#E23A0E; --ember-hot:#F1791F;
  --ember-soft:rgba(226,58,14,.10); --glass:rgba(246,242,238,.72);
}
:root[data-theme="dark"]{
  --ground:#0C0A0D; --surface:#17141B; --surface-2:#201C26; --ink:#F3EDE8;
  --ash:#9A8F98; --line:rgba(255,255,255,.09); --ember:#FF5A1F; --ember-hot:#FFA23A;
  --ember-soft:rgba(255,90,31,.14); --glass:rgba(12,10,13,.66);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0; background:var(--ground); color:var(--ink); font-family:var(--sans);
  line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,40px)}
a{color:inherit; text-decoration:none}
.eyebrow{font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ember); font-weight:600}
.skip{position:absolute; left:-999px; top:0; background:var(--ember); color:#fff; padding:8px 14px; border-radius:0 0 8px 0; z-index:100}
.skip:focus{left:0}
/* wordmark */
.mark{font-family:var(--disp); font-weight:800; letter-spacing:-.04em; line-height:.9; display:inline-flex; align-items:baseline; color:var(--ink)}
.mark .dot{width:.34em; height:.34em; border-radius:50%; margin-left:.06em; align-self:flex-end; margin-bottom:.06em;
  background:radial-gradient(circle at 40% 35%,var(--ember-hot),var(--ember) 55%,#7a1400 100%);
  box-shadow:0 0 .5em var(--ember),0 0 1.1em var(--ember-soft); display:inline-block}
@media (prefers-reduced-motion:no-preference){.mark .dot{animation:pulse 2.6s ease-in-out infinite}}
@keyframes pulse{0%,100%{box-shadow:0 0 .45em var(--ember),0 0 1em var(--ember-soft)}50%{box-shadow:0 0 .75em var(--ember),0 0 1.7em var(--ember-soft)}}
/* nav */
header.nav{position:sticky; top:0; z-index:50; backdrop-filter:blur(12px); background:var(--glass); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; justify-content:space-between; height:60px}
.nav .mark{font-size:1.5rem}
.nav nav{display:flex; gap:26px; align-items:center}
.nav nav a{font-size:.9rem; color:var(--ash); transition:color .18s}
.nav nav a:hover{color:var(--ink)}
.toggle{font-family:var(--mono); font-size:.75rem; color:var(--ash); background:none; border:1px solid var(--line);
  border-radius:999px; padding:5px 12px; cursor:pointer; transition:border-color .18s,color .18s}
.toggle:hover{color:var(--ink); border-color:var(--ember)}
:focus-visible{outline:2px solid var(--ember); outline-offset:3px; border-radius:3px}
/* hero */
.hero{position:relative; padding:clamp(18px,3vw,36px) 0 clamp(16px,2.5vw,30px)}
.forge{position:relative; border-radius:20px; overflow:hidden; background:#0a0809; border:1px solid var(--line);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.7)}
.forge canvas{position:absolute; inset:0; width:100%; height:100%; display:block}
.forge img{position:relative; z-index:1; width:100%; height:auto; display:block; mix-blend-mode:screen}
.forge .glow{position:absolute; z-index:0; inset:0; background:radial-gradient(60% 70% at 72% 62%,rgba(255,90,31,.22),transparent 70%)}
.hero-copy{margin-top:20px; max-width:56ch}
.hero h1{font-family:var(--disp); font-weight:800; letter-spacing:-.02em; line-height:1.02;
  font-size:clamp(2rem,5.4vw,3.4rem); margin:.5rem 0 0; text-wrap:balance}
.hero h1 em{font-style:normal; color:var(--ember)}
.hero p.lede{font-size:clamp(1.05rem,2vw,1.2rem); color:var(--ash); margin:.9rem 0 0}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:16px}
.btn{display:inline-flex; align-items:center; gap:.5em; font-weight:600; font-size:.95rem; padding:11px 20px;
  border-radius:999px; transition:transform .16s,box-shadow .2s,background .2s}
.btn.solid{background:var(--ember); color:#fff; box-shadow:0 8px 24px -10px var(--ember)}
.btn.solid:hover{transform:translateY(-2px); box-shadow:0 12px 30px -8px var(--ember)}
.btn.ghost{border:1px solid var(--line); color:var(--ink)}
.btn.ghost:hover{border-color:var(--ember); color:var(--ember)}
/* sections */
section.block{padding:clamp(22px,3.5vw,44px) 0}
.head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px}
.head h2{font-family:var(--disp); font-weight:800; letter-spacing:-.02em; font-size:clamp(1.5rem,3.4vw,2.1rem); margin:.35rem 0 0}
.head .count{font-family:var(--mono); color:var(--ash); font-size:.8rem; font-variant-numeric:tabular-nums}
/* games */
.games{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:14px}
.card{position:relative; display:flex; flex-direction:column; gap:12px; padding:20px; background:var(--surface);
  border:1px solid var(--line); border-radius:16px; transition:transform .2s,border-color .2s,box-shadow .3s; overflow:hidden}
.card::before{content:""; position:absolute; inset:0; border-radius:16px; padding:1px;
  background:linear-gradient(120deg,transparent,var(--ember),transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .3s; pointer-events:none}
.card:hover{transform:translateY(-4px); box-shadow:0 24px 50px -30px rgba(0,0,0,.6)}
.card:hover::before{opacity:.9}
.card:focus-within{border-color:var(--ember)}
.card h3 a::after{content:""; position:absolute; inset:0; z-index:1}
.card .go{position:relative; z-index:2}
.card .toprow{display:flex; align-items:center; justify-content:space-between; gap:10px}
.card h3{font-size:1.3rem; font-weight:700; margin:0; letter-spacing:-.01em}
.card p{margin:0; color:var(--ash); font-size:.96rem}
.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:auto}
.tag{font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ash);
  border:1px solid var(--line); border-radius:6px; padding:4px 8px}
/* One tag per card is lit: the thing that actually makes that game worth a
   click. Built from the same --ember tokens as the live LED and the card link,
   so it reads as the site's existing accent picking out a word, not a new
   colour — and it re-tunes itself for light and dark with the rest of them. */
.tag.lit{color:var(--ember); background:var(--ember-soft); border-color:var(--ember)}
@supports (color:color-mix(in srgb,red,blue)){
  .tag.lit{border-color:color-mix(in srgb,var(--ember) 45%,transparent)}
}
.status{font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:6px; white-space:nowrap}
.status .led{width:7px; height:7px; border-radius:50%}
.status.live{color:var(--ember)} .status.live .led{background:var(--ember); box-shadow:0 0 8px var(--ember)}
.status.soon{color:var(--ash)} .status.soon .led{background:var(--ash)}
.card .go{font-size:.85rem; color:var(--ember); font-weight:600; display:inline-flex; align-items:center; gap:.4em}
.card.dead .go{color:var(--ash)}
/* studio strip */
.studio{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface)}
.studio .wrap{display:grid; grid-template-columns:1fr; gap:16px; padding-top:clamp(22px,3.5vw,40px); padding-bottom:clamp(22px,3.5vw,40px)}
@media(min-width:760px){.studio .wrap{grid-template-columns:1.2fr 1fr; align-items:center}}
.studio p{font-size:clamp(1.1rem,2.2vw,1.35rem); line-height:1.5; margin:.6rem 0 0; color:var(--ink); text-wrap:balance}
.studio .facts{display:flex; flex-direction:column; gap:12px; font-family:var(--mono); font-size:.82rem}
.studio .facts div{display:flex; justify-content:space-between; gap:16px; border-bottom:1px dashed var(--line); padding-bottom:10px; color:var(--ash)}
.studio .facts b{color:var(--ink); font-weight:600}
/* footer */
footer{padding:26px 0 34px}
.foot{display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between}
.foot .mark{font-size:1.25rem}
.foot nav{display:flex; gap:20px; flex-wrap:wrap}
.foot a{color:var(--ash); font-size:.88rem; transition:color .18s}
.foot a:hover{color:var(--ember)}
.foot small{color:var(--ash); font-size:.78rem; font-family:var(--mono); width:100%; margin-top:8px}
.fuse{height:1px; background:linear-gradient(90deg,transparent,var(--ember),transparent); margin:0 0 22px; opacity:.5}
/* mobile */
@media(max-width:600px){
  .nav-in{height:54px} .nav .mark{font-size:1.3rem} .nav nav{gap:14px} .nav nav a{font-size:.82rem}
  .toggle{padding:4px 10px} .hero-copy{margin-top:14px} .cta-row .btn{flex:1 1 auto; justify-content:center}
  .studio p{font-size:1.05rem} .foot{gap:14px}
}
@media(max-width:400px){ .nav nav a[data-opt]{display:none} }
