/* Layout: game title screen on top, console-style rails below; episode pages are a "now playing" screen with a controller pad. */
:root{
  --void:#06071A; --deep:#0B0E28; --panel:#12163A; --line:#252B66; --line-2:#3A42A0;
  --text:#EEF0FF; --dim:#9BA2D6; --start:#FFD400; --hot:#FF3D7F; --blue:#3D7BFF;
  --pix:"Press Start 2P",ui-monospace,monospace;
  --ui:"Chakra Petch",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--void)}
body{margin:0;background:var(--void);color:var(--text);font:500 17px/1.55 var(--ui);-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--start)}
:focus-visible{outline:3px solid var(--start);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:10px;z-index:50;background:var(--start);color:#000;padding:6px 10px}
.dim{color:var(--dim)}
kbd{font:700 11px var(--ui);border:1px solid currentColor;border-radius:4px;padding:3px 5px 2px;margin-left:10px;opacity:.7;vertical-align:2px}

/* top bar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;
  padding:12px clamp(16px,4vw,40px);background:rgba(6,7,26,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.mark{font:14px var(--pix);color:var(--text);text-decoration:none;letter-spacing:1px;display:inline-flex;gap:8px}
.mark span{color:var(--start)}
.bar nav{display:flex;flex-wrap:wrap;gap:4px 22px}
.bar nav a{color:var(--dim);text-decoration:none;font-weight:600;font-size:15px;padding:4px 0;border-bottom:2px solid transparent}
.bar nav a:hover{color:var(--text)}
.bar nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--start)}

/* title screen */
.title{position:relative;overflow:hidden;min-height:min(52vh,520px);display:grid;place-items:center;text-align:center;padding:72px 16px 56px;isolation:isolate}
.title-bg{position:absolute;inset:0;z-index:-1}
.title-bg img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated;filter:saturate(1.15) brightness(.42);transform:scale(1.04)}
.title-bg::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 42%,rgba(6,7,26,.15),rgba(6,7,26,.85) 70%),
             linear-gradient(transparent 55%,var(--void)),
             repeating-linear-gradient(transparent 0 3px,rgba(0,0,0,.22) 3px 4px)}
.presents{font:10px var(--pix);letter-spacing:2px;color:var(--start);margin:0 0 22px;text-transform:uppercase}
.logo{margin:0;font:clamp(34px,7.5vw,92px)/1 var(--pix);letter-spacing:.02em;display:flex;flex-direction:column;align-items:center;gap:.14em}
.logo span{display:block;color:#fff;text-shadow:.05em .05em 0 var(--hot),.1em .1em 0 var(--blue),0 0 40px rgba(61,123,255,.45)}
.logo .l2{color:var(--start);text-shadow:.05em .05em 0 var(--hot),.1em .1em 0 var(--blue),0 0 40px rgba(255,212,0,.35)}
.tagline{margin:20px 0 0;font-size:18px;color:var(--dim)}
.start{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px}
.press{display:inline-flex;align-items:center;font:14px var(--pix);text-transform:uppercase;color:#000;background:var(--start);text-decoration:none;
  padding:18px 26px;border-radius:6px;box-shadow:0 6px 0 #b39500,0 0 0 1px #000 inset,0 12px 40px rgba(255,212,0,.25);transition:transform .08s,box-shadow .08s}
.press:hover{transform:translateY(-2px);box-shadow:0 8px 0 #b39500,0 16px 50px rgba(255,212,0,.35)}
.press:active{transform:translateY(4px);box-shadow:0 2px 0 #b39500}
.press.sm{font-size:11px;padding:13px 18px}
.newgame{display:inline-flex;align-items:center;font:600 16px var(--ui);color:var(--text);text-decoration:none;padding:16px 22px;border-radius:6px;border:1px solid var(--line-2);background:rgba(18,22,58,.6)}
.newgame:hover{border-color:var(--text)}
.hud{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;padding:0;margin:40px 0 0;color:var(--dim);font-size:15px}
.hud b{color:var(--text);font:12px var(--pix);margin-right:6px}

/* intro: one orchestrated moment */
@media (prefers-reduced-motion:no-preference){
  .home .logo span{animation:drop .6s steps(6) both}.home .logo .l2{animation-delay:.18s}
  .home .presents,.home .tagline,.home .start,.home .hud{animation:fade .5s ease-out .55s both}
  .home .press{animation:fade .5s ease-out .55s both,blink 1.1s steps(1) 1.4s 3}
}
@keyframes drop{from{transform:translateY(-40px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes blink{50%{background:#fff}}

/* rows */
.row{max-width:1280px;margin:0 auto;padding:36px clamp(16px,4vw,40px)}
.rowhead{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-bottom:18px}
.lbl{font:13px var(--pix);text-transform:uppercase;letter-spacing:1px;margin:0;color:var(--text)}
.lbl.big{font-size:clamp(20px,3vw,30px);line-height:1.3;width:100%}
.more{margin-left:auto;font-weight:600;text-decoration:none}
.tabs{display:flex;gap:6px;background:var(--deep);padding:4px;border-radius:8px;border:1px solid var(--line)}
.tabs button{font:600 15px var(--ui);color:var(--dim);background:none;border:0;border-radius:6px;padding:7px 14px;cursor:pointer}
.tabs button span{font:9px var(--pix);margin-left:6px;opacity:.7}
.tabs button[aria-selected=true]{background:var(--panel);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}
.arrows{margin-left:auto;display:flex;gap:8px}
.arr{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:var(--deep);color:var(--text);font-size:18px;cursor:pointer}
.arr:hover{border-color:var(--start);color:var(--start)}

/* episode cards */
.cards{display:grid;gap:18px}
.rail{grid-auto-flow:column;grid-auto-columns:clamp(220px,24vw,290px);overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 18px;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.gridv{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.row .cards:not(.rail):not(.gridv){grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
.ep{scroll-snap-align:start;display:flex;flex-direction:column;text-decoration:none;color:var(--text);background:var(--panel);border-radius:10px;overflow:hidden;
  box-shadow:0 0 0 1px var(--line);transition:transform .15s ease,box-shadow .15s ease;position:relative}
.ep .th{display:block;aspect-ratio:16/10;background:#000;overflow:hidden}
.ep img{width:100%;height:100%;object-fit:cover;display:block;image-rendering:pixelated;transition:transform .3s ease}
.ep .meta{display:grid;gap:2px;padding:12px 14px 14px}
.ep .no{font:9px var(--pix);color:var(--start);letter-spacing:1px}
.ep .tt{font-weight:700;font-size:17px;line-height:1.25}
.ep .dt{font-size:13px;color:var(--dim)}
a.ep:hover,a.ep:focus-visible{transform:translateY(-4px);box-shadow:0 0 0 3px var(--start),0 18px 40px rgba(0,0,0,.5);outline:0}
a.ep:hover img{transform:scale(1.05)}
a.ep:hover::before,a.ep:focus-visible::before{content:"";position:absolute;left:10px;top:10px;z-index:2;border:7px solid transparent;border-left:10px solid var(--start);filter:drop-shadow(0 0 4px #000)}
.ep.lost{opacity:.6}
.ep.lost .th{display:grid;place-items:center;background:repeating-linear-gradient(45deg,#0d0f26 0 10px,#11143a 10px 20px)}
.lock{font:10px/1.8 var(--pix);color:var(--hot);text-align:center;letter-spacing:2px}
.ep.lost .no{color:var(--dim)}.ep.lost .tt{text-decoration:line-through;color:var(--dim)}

/* character select */
.fighters{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}
.fighter{display:grid;gap:6px;background:linear-gradient(160deg,var(--panel),var(--deep));border-radius:10px;padding:16px 18px 18px;color:var(--text);text-decoration:none;
  box-shadow:0 0 0 1px var(--line);transition:box-shadow .15s}
a.fighter:hover,.fighter:target{box-shadow:0 0 0 3px var(--hot)}
.fname{font:13px/1.4 var(--pix);text-transform:uppercase}
.frole{color:var(--dim);font-size:14px;margin-bottom:6px}
.stat{display:grid;grid-template-columns:118px 1fr 30px;align-items:center;gap:10px;font-size:13px}
.sl{color:var(--dim)}.sv{font:9px var(--pix);text-align:right}
.sb{height:8px;background:#0a0c22;border-radius:2px;box-shadow:inset 0 0 0 1px var(--line)}
.sb span{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,var(--hot),var(--start))}
.fighter p{margin:10px 0 0;font-size:15px;color:#cfd3f4}

.news .note{background:var(--panel);border-radius:10px;padding:18px 22px;box-shadow:0 0 0 1px var(--line);max-width:760px;margin-top:14px}
.news .note p{margin:0}.news .note p+p{margin-top:6px}

/* reader */
.reading main{padding-bottom:40px}
.reader{max-width:1280px;margin:0 auto}
.rhead{max-width:760px;margin:0 auto;padding:32px 16px 18px;text-align:center}
.chip{display:inline-block;font:9px var(--pix);letter-spacing:1px;color:var(--start);border:1px solid var(--line-2);border-radius:99px;padding:7px 12px;margin:0 0 14px;text-transform:uppercase}
.rhead h1{font:700 clamp(30px,5vw,48px)/1.1 var(--ui);margin:0;text-wrap:balance}
.rhead .dim{margin:8px 0 0}
.prog{height:6px;max-width:360px;margin:0 auto;background:var(--deep);border-radius:3px;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.prog span{display:block;height:100%;background:linear-gradient(90deg,var(--hot),var(--start))}
.progtxt{font:9px var(--pix);color:var(--dim);margin:8px 0 0}
.screen{width:fit-content;max-width:calc(100% - 32px);margin:8px auto 0;background:#000;border-radius:8px;padding:10px;
  box-shadow:0 0 0 1px var(--line-2),0 30px 80px rgba(61,123,255,.18),0 0 120px rgba(255,61,127,.08)}
.screen img{display:block;height:auto;border-radius:3px}
.gapnote{max-width:640px;margin:18px auto 0;text-align:center;color:var(--dim);padding:0 16px}
.pad{position:sticky;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:15;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;
  width:fit-content;max-width:calc(100% - 32px);margin:22px auto 0;padding:8px;border-radius:14px;background:rgba(11,14,40,.86);backdrop-filter:blur(12px);
  box-shadow:0 0 0 1px var(--line-2),0 14px 40px rgba(0,0,0,.6)}
.ctl{display:inline-flex;align-items:center;font:700 15px var(--ui);color:var(--text);text-decoration:none;padding:10px 16px;border-radius:9px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.ctl:hover{box-shadow:inset 0 0 0 1px var(--text)}
.ctl.go{background:var(--start);color:#000;box-shadow:none}
.ctl.off{opacity:.35}
.ctl kbd{margin-left:8px}

/* walls, about, 404 */
.walls{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px}
.wall{margin:0;background:var(--panel);border-radius:10px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.wall img{display:block;width:100%;height:auto}
.wall figcaption{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-weight:700}
.wall a{font:9px var(--pix);text-decoration:none;color:var(--start)}
.prose{max-width:760px}.prose p{font-size:18px}
.credits{list-style:none;padding:0;display:grid;gap:8px;margin-top:14px}
.credits li{display:grid;grid-template-columns:90px 1fr;gap:12px;background:var(--panel);border-radius:8px;padding:10px 14px;box-shadow:0 0 0 1px var(--line)}
.credits b{font:11px/1.8 var(--pix);color:var(--start)}
.over{text-align:center;display:grid;justify-items:center;gap:18px}
.logo.small{font-size:clamp(32px,7vw,64px)}
.over img{border-radius:8px;box-shadow:0 0 0 1px var(--line-2)}

.foot{border-top:1px solid var(--line);padding:30px clamp(16px,4vw,40px) 40px;color:var(--dim);font-size:14px;max-width:1280px;margin:30px auto 0}
.foot p{margin:.5em 0 0;max-width:80ch}.foot .fine{font-size:12px;opacity:.8}
.mark.small{font-size:11px}

@media (max-width:640px){
  .bar{position:static;justify-content:center;padding-bottom:8px}.bar nav{flex-wrap:nowrap;overflow-x:auto;gap:18px;max-width:100%;scrollbar-width:none}.bar nav a{white-space:nowrap}
  .arrows{display:none}
  .stat{grid-template-columns:100px 1fr 26px}
  .ctl{padding:9px 12px;font-size:14px}.ctl kbd,.press kbd{display:none}
  .pad .end{display:none}
}
@media (prefers-reduced-motion:reduce){*,*::before{transition:none!important;animation:none!important}}
@media (max-width:640px){.home .fighters{grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.home .fighter{scroll-snap-align:start}}
/* latest strip on home */
.latest .rowhead{margin-bottom:14px}.latest .rowhead .dim{font-size:15px}
.home-screen{display:block;margin:0 auto;transition:box-shadow .15s}
.home-screen:hover{box-shadow:0 0 0 3px var(--start),0 30px 80px rgba(61,123,255,.18)}
/* cast */
.castgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.who{background:var(--panel);border-radius:10px;padding:18px 20px;box-shadow:0 0 0 1px var(--line)}
.who:target{box-shadow:0 0 0 3px var(--start)}
.who h2{font:13px/1.4 var(--pix);text-transform:uppercase;margin:0 0 6px}
.who p{margin:0}.who p+p{margin-top:10px;color:#cfd3f4;font-size:15px}
button.ctl{border:0;cursor:pointer;font-family:var(--ui)}

/* simplified */
.home .press{animation:fade .5s ease-out .55s both}
.foot a{color:var(--dim)}.foot a:hover{color:var(--text)}
.rowhead .more{margin-left:auto}
.about{max-width:720px;margin:18px auto 0;padding:0 16px;color:var(--dim)}
.about summary{cursor:pointer;font-weight:700;color:var(--text);list-style:none;text-align:center}
.about summary::-webkit-details-marker{display:none}
.about summary::after{content:" +";color:var(--start)}.about[open] summary::after{content:" \2212"}
.about p{margin:10px 0 0;font-size:16px;line-height:1.6}.about p b{color:var(--text)}
.rail,.gridv{align-items:start}.ep .meta{padding:10px 14px 12px}
.search{margin:4px 0 22px}
.search input{width:100%;max-width:520px;font:600 16px var(--ui);color:var(--text);background:var(--deep);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px}
.search input::placeholder{color:var(--dim)}
.search input:focus{outline:none;border-color:var(--start);box-shadow:0 0 0 3px rgba(255,212,0,.2)}
.search .dim{margin:8px 0 0;font-size:14px;min-height:1em}
.yr{margin-bottom:28px}.yr .lbl{margin-bottom:12px;color:var(--start)}
.who{display:grid;grid-template-columns:96px 1fr;column-gap:16px;align-items:start}
.who .pt{grid-row:span 3;width:96px;height:96px;image-rendering:pixelated;border-radius:8px;background:#000;box-shadow:0 0 0 1px var(--line-2)}
