@font-face{font-family:Pricedown;src:url("/fonts/pricedown-bl.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("/fonts/barlow-condensed-500-latin.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("/fonts/barlow-condensed-700-latin.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Share Tech Mono";src:url("/fonts/share-tech-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Press Start 2P";src:url("/fonts/press-start-2p-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

:root{
  --bg:#07060e;
  --bg2:#100818;
  --ink:#f6eef8;
  --muted:#b9a8c4;
  --pink:#ff3cab;
  --pink2:#ff7ad4;
  --teal:#2ef0e0;
  --teal2:#7cfffb;
  --gold:#f5d76e;
  --ember:#ffb14a;
  --paper:#f3ead6;
  --hud:#c8ffd4;
  --line:rgba(255,60,171,.28);
  --safe:min(1180px, calc(100% - 40px));
  --display:Pricedown, Impact, Haettenschweiler, sans-serif;
  --ui:"Barlow Condensed", Bahnschrift, sans-serif;
  --mono:"Share Tech Mono", ui-monospace, monospace;
  --pix:"Press Start 2P", var(--mono);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink)}
body{font-family:var(--ui);font-weight:500;font-size:20px;line-height:1.45;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
button,a{font:inherit}
button{cursor:pointer}
code{font-family:var(--mono)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--pink);color:#14010c;padding:8px 12px;z-index:100}
.skip-link:focus{left:12px;top:12px}
.pd{font-family:var(--display);font-weight:400;letter-spacing:.02em;line-height:.88}
.mono{font-family:var(--mono);letter-spacing:.06em}
.pix{font-family:var(--pix);font-size:10px;letter-spacing:.08em;line-height:1.6}
.kicker{color:var(--teal);text-transform:uppercase;margin:0 0 10px}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:1px solid transparent;border-radius:2px;padding:12px 18px;
  text-decoration:none;text-transform:uppercase;letter-spacing:.08em;
  font-weight:700;font-size:18px;transition:transform .15s, filter .15s, background .15s;
}
.btn img,.btn svg{width:20px;height:20px;flex:0 0 auto}
.btn.hot{background:linear-gradient(90deg,var(--pink),#ff6ad1);color:#1a0212;box-shadow:0 0 24px rgba(255,60,171,.35)}
.btn.teal{background:var(--teal);color:#04221e}
.btn.ghost{background:transparent;border-color:rgba(46,240,224,.45);color:var(--teal)}
.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.btn[disabled],.btn.is-disabled{
  opacity:.48;cursor:not-allowed;filter:grayscale(.15);transform:none;
  pointer-events:auto;
}
.btn.sm{padding:8px 12px;font-size:15px}

/* ---------- gate ---------- */
#gate{
  position:fixed;inset:0;z-index:90;display:grid;place-items:center;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(255,60,171,.28), transparent 50%),
    radial-gradient(ellipse at 90% 80%, rgba(46,240,224,.18), transparent 45%),
    #07060e;
}
#gate.out{animation:fadeOut .45s forwards}
@keyframes fadeOut{to{opacity:0;visibility:hidden}}
.gate-grid{
  position:absolute;inset:0;opacity:.45;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,60,171,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46,240,224,.1) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.gate-inner{position:relative;text-align:center;padding:24px}
.gate-unit{color:var(--gold);margin-bottom:8px}
.gate-title{font-size:clamp(72px,16vw,188px);margin:0;color:#fff;
  text-shadow:4px 4px 0 #7a104e, 0 0 32px rgba(255,60,171,.55)}
.gate-sub{margin:6px 0 28px;color:var(--pink2);font-size:clamp(16px,3vw,28px)}
.gate-bar{width:min(420px,78vw);height:10px;margin:0 auto 12px;background:#1b1226;border:1px solid var(--pink);overflow:hidden}
#gate-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--pink))}
.gate-pct{color:var(--muted);margin:0 0 18px;font-size:13px}
.gate-tip{min-height:2.2em;color:var(--paper);font-size:15px;max-width:460px;margin:0 auto 22px}
.gate-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ---------- hud ---------- */
.hud{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;gap:16px;
  padding:10px 18px;
  background:linear-gradient(180deg, rgba(7,6,14,.88), rgba(7,6,14,.28) 80%, transparent);
  backdrop-filter:blur(8px);
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;min-width:max-content}
.brand img{width:40px;height:40px;object-fit:cover;border:1px solid var(--pink);border-radius:2px}
.brand b{font-family:var(--display);font-size:28px;line-height:1}
.brand i{font-style:normal;color:var(--pink);margin-left:6px;font-size:16px;font-family:var(--mono)}
#nav{display:flex;gap:4px;flex:1;justify-content:center}
#nav a{
  color:var(--muted);text-decoration:none;padding:8px 10px;text-transform:uppercase;
  letter-spacing:.08em;font-size:16px;border-bottom:2px solid transparent;
}
#nav a:hover,#nav a.on{color:#fff;border-bottom-color:var(--pink)}
.hud-r{display:flex;align-items:center;gap:14px;margin-left:auto}
#wanted{display:flex;gap:3px;color:#4a3044;font-size:18px;letter-spacing:1px}
#wanted i{font-style:normal;transition:color .2s, text-shadow .2s}
#wanted i.on{color:var(--gold);text-shadow:0 0 8px rgba(245,215,110,.7)}
#hud-clock{color:var(--hud);font-size:13px}
#hud-cash{color:var(--gold);font-size:13px}
.burger{display:none;background:none;border:0;width:42px;height:42px;padding:8px}
.burger span{display:block;height:2px;background:#fff;margin:7px 0}

/* ---------- radar ---------- */
.radar-wrap{
  position:fixed;left:16px;bottom:16px;z-index:36;
  width:176px;height:176px;border-radius:50%;
  box-shadow:0 0 0 3px rgba(46,240,224,.35), 0 12px 40px rgba(0,0,0,.45);
}
#radar{width:176px;height:176px;border-radius:50%;cursor:pointer;display:block;background:#031310}
.radar-n{
  position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:11px;color:var(--gold);pointer-events:none;
}
@media(max-width:720px){
  .radar-wrap{transform:scale(.78);transform-origin:left bottom}
}

/* ---------- command wheel ---------- */
#wheel-btn{
  position:fixed;right:18px;bottom:18px;z-index:45;
  width:64px;height:64px;border-radius:50%;
  border:2px solid var(--pink);background:rgba(16,8,24,.85);
  color:#fff;font-family:var(--pix);font-size:11px;
  box-shadow:0 0 24px rgba(255,60,171,.4);
}
#wheel{
  position:fixed;inset:0;z-index:50;display:grid;place-items:center;
  background:rgba(5,4,12,.55);backdrop-filter:blur(4px);
}
#wheel[hidden]{display:none}
.wheel-ring{
  position:relative;width:min(420px,86vw);height:min(420px,86vw);
  border-radius:50%;
  background:radial-gradient(circle at center, rgba(16,8,24,.5) 0 70px, rgba(255,60,171,.08) 70px);
  box-shadow:0 0 0 2px rgba(46,240,224,.35), inset 0 0 60px rgba(255,60,171,.12);
}
.wheel-hub{
  position:absolute;inset:50%;width:110px;height:110px;margin:-55px 0 0 -55px;
  border-radius:50%;display:grid;place-items:center;text-align:center;
  background:#14081c;border:2px solid var(--teal);color:var(--pink2);
  font-family:var(--display);font-size:28px;line-height:1;
}
#wheel [data-cmd]{
  position:absolute;left:50%;top:50%;width:96px;margin:-40px 0 0 -48px;
  background:rgba(10,6,20,.9);border:1px solid rgba(46,240,224,.35);
  color:#fff;padding:10px 6px;border-radius:8px;text-transform:uppercase;
  font-weight:700;letter-spacing:.08em;font-size:15px;
}
#wheel [data-cmd] small{display:block;font-weight:500;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:none}
#wheel [data-cmd].on,#wheel [data-cmd]:hover{
  background:var(--pink);color:#1a0212;border-color:#fff;
}
#wheel [data-cmd].on small,#wheel [data-cmd]:hover small{color:#3a1028}
#wheel [data-cmd]:nth-child(1){transform:rotate(0deg) translateY(-150px) rotate(0)}
#wheel [data-cmd]:nth-child(2){transform:rotate(72deg) translateY(-150px) rotate(-72deg)}
#wheel [data-cmd]:nth-child(3){transform:rotate(144deg) translateY(-150px) rotate(-144deg)}
#wheel [data-cmd]:nth-child(4){transform:rotate(216deg) translateY(-150px) rotate(-216deg)}
#wheel [data-cmd]:nth-child(5){transform:rotate(288deg) translateY(-150px) rotate(-288deg)}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;align-items:center;
  background:#090614 url("/img/action-1920.webp") center/cover no-repeat;
  overflow:hidden;
}
#leonida{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-shade{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(7,6,14,.88) 0%, rgba(7,6,14,.45) 46%, rgba(7,6,14,.15) 70%),
    linear-gradient(180deg, rgba(7,6,14,.25), transparent 20%, rgba(7,6,14,.7) 100%);
}
.hero-hud{
  position:absolute;top:72px;left:24px;right:24px;display:flex;justify-content:space-between;
  pointer-events:none;color:var(--hud);text-shadow:0 1px 0 #000;
}
.hero-in{
  position:relative;z-index:2;width:var(--safe);margin:0 auto;padding:110px 0 80px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;
}
.hero-copy h1{
  font-size:clamp(92px,18vw,210px);margin:0;color:#fff;
  text-shadow:5px 5px 0 #6d1246, 0 0 40px rgba(255,60,171,.45);
}
.hero-copy .tick{
  display:inline-block;margin:4px 0 14px;padding:4px 10px;
  border:1px solid var(--teal);color:var(--teal);font-size:14px;
}
.hero-lead{font-size:clamp(22px,3vw,34px);margin:0 0 12px;color:var(--paper);max-width:22ch}
.hero-sub{margin:0 0 22px;color:var(--muted);max-width:38ch}
.ca{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:rgba(10,6,20,.72);border:1px solid var(--line);
  padding:10px 12px;margin:0 0 18px;max-width:560px;
}
.ca .lbl{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.12em}
.ca code{font-size:15px;color:#fff;word-break:break-all}
.ca button{
  margin-left:auto;border:1px solid rgba(255,255,255,.2);background:#1a1224;color:#fff;
  padding:6px 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;
}
.ca button[disabled]{opacity:.5;cursor:not-allowed}
.cta{display:flex;flex-wrap:wrap;gap:10px}
.hero-safe{margin:16px 0 0;font-size:12px;color:var(--muted)}
.portrait-wrap{perspective:900px}
#portrait{
  position:relative;aspect-ratio:1/1;width:min(100%,460px);margin-left:auto;
  transform-style:preserve-3d;transition:transform .18s;
  border:2px solid var(--pink);box-shadow:0 20px 50px rgba(0,0,0,.45), 0 0 0 8px rgba(255,60,171,.12);
  background:#100818;
}
#portrait img{width:100%;height:100%;object-fit:cover;object-position:center}
#portrait.focus{outline:3px solid var(--teal);box-shadow:0 0 40px rgba(46,240,224,.35)}
#portrait .stamp{
  position:absolute;right:12px;bottom:12px;padding:6px 10px;
  background:rgba(255,60,171,.9);color:#16010c;font-family:var(--display);font-size:28px;
  transform:rotate(-8deg);line-height:1;
}
#portrait .tag{
  position:absolute;left:12px;top:12px;background:rgba(7,6,14,.72);
  color:var(--teal);padding:4px 8px;font-size:11px;
}
.scrollcue{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
  color:var(--muted);text-decoration:none;font-size:12px;letter-spacing:.16em;
}
.scrollcue b{display:block;text-align:center;color:var(--pink);animation:bob 1.4s infinite}
@keyframes bob{50%{transform:translateY(5px)}}

/* ---------- marquee ---------- */
.marq{overflow:hidden;border-block:1px solid var(--line);background:#0c0814;padding:10px 0}
.marq .track{display:flex;gap:36px;width:max-content;animation:marq 28s linear infinite;font-family:var(--mono);font-size:13px;color:var(--pink2);text-transform:uppercase;letter-spacing:.14em}
.marq.alt .track{animation-direction:reverse;color:var(--teal);animation-duration:36s}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
section{position:relative;padding:88px 0}
.wrap{width:var(--safe);margin:0 auto}
.sec-h{margin-bottom:28px}
.sec-h h2{font-size:clamp(56px,10vw,108px);margin:0;color:#fff}
.sec-h h2 em{font-style:normal;color:var(--pink)}
.sec-h p{margin:8px 0 0;color:var(--muted)}

/* dossier */
.dossier{
  display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start;
}
.shot{
  background:#100818;border:1px solid var(--line);padding:10px;
}
.shot figure{margin:0;aspect-ratio:16/9;overflow:hidden;background:#08060e}
.shot img{width:100%;height:100%;object-fit:cover}
.shot figcaption{padding:10px 6px 2px;font-size:13px;color:var(--muted);font-family:var(--mono)}
.file{
  background:linear-gradient(180deg,#16101f,#100818);
  border:1px solid var(--line);padding:22px 22px 16px;
  box-shadow:8px 8px 0 rgba(255,60,171,.15);
}
.file h3{margin:0 0 14px;font-size:36px}
.rows{display:grid;gap:0}
.rows div{display:grid;grid-template-columns:118px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:18px}
.rows dt{margin:0;color:var(--gold);font-family:var(--mono);font-size:12px;letter-spacing:.1em;display:flex;align-items:center}
.rows dd{margin:0}
.file .disc{margin:16px 0 0;font-size:14px;color:var(--muted)}
.side-shots{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.side-shots figure{margin:0;background:#100818;border:1px solid var(--line);padding:8px}
.side-shots img{width:100%;height:100%;object-fit:cover}
.side-shots .a{aspect-ratio:1/1}
.side-shots .b{aspect-ratio:16/9}
.side-shots figcaption{font-size:12px;color:var(--muted);padding-top:8px;font-family:var(--mono)}

/* confirmed */
.confirmed{
  background:
    radial-gradient(ellipse at 80% 20%, rgba(255,60,171,.18), transparent 50%),
    radial-gradient(ellipse at 10% 90%, rgba(46,240,224,.12), transparent 46%),
    #0b0714;
}
.conf-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:center}
.conf-copy h2{margin-top:8px}
.conf-copy .date{color:var(--gold);font-size:14px}
.conf-copy p{color:#ddd}
.badge{
  display:inline-block;padding:6px 12px;border:1px solid var(--teal);color:var(--teal);
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;margin-bottom:8px;
}

/* brief / token */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tile{background:#120a1a;border:1px solid var(--line);padding:18px}
.tile .k{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.12em}
.tile .v{font-family:var(--display);font-size:42px;margin:6px 0 4px;color:#fff;line-height:1}
.tile .s{color:var(--muted);font-size:16px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}
.step{background:#120a1a;border:1px solid var(--line);padding:18px;min-height:180px}
.step .sn{font-family:var(--display);font-size:42px;color:var(--pink);line-height:1}
.step h3{margin:8px 0;font-size:26px}
.step p{margin:0;color:var(--muted);font-size:16px}

/* dispatch */
.dispatch{background:#0a0712}
.terminal{
  display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start;
  margin-bottom:28px;
}
.feat{
  background:#100818;border:1px solid var(--line);padding:12px;
}
#feat-box{
  margin:0;background:#07060e;display:grid;place-items:center;overflow:hidden;
  min-height:280px;cursor:zoom-in;
}
#feat-box img{max-width:100%;max-height:min(62vh,640px);width:auto;height:auto;object-fit:contain}
.feat-meta{display:flex;justify-content:space-between;gap:12px;align-items:end;padding:12px 4px 4px}
.feat-meta h3{margin:0;font-size:28px}
.feat-nav{display:flex;gap:8px;margin-top:10px}
.locker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:640px;overflow:auto;padding-right:4px}
.locker button{
  appearance:none;border:1px solid transparent;background:#120a1a;padding:0;text-align:left;color:inherit;
}
.locker button.on{border-color:var(--pink);box-shadow:0 0 0 1px var(--pink)}
.locker figure{margin:0;padding:6px}
.locker .ph{overflow:hidden;background:#07060e}
.locker img{width:100%;height:100%;object-fit:cover}
.locker figcaption{font-size:11px;padding:6px 2px 0;color:var(--muted);font-family:var(--mono)}
.board{
  columns:4;column-gap:12px;margin-top:8px;
}
.card{
  break-inside:avoid;margin:0 0 12px;background:#120a1a;border:1px solid var(--line);
  padding:8px;cursor:pointer;width:100%;color:inherit;text-align:left;
}
.card:hover,.card:focus{border-color:var(--pink)}
.card img{width:100%;height:auto;object-fit:contain;background:#07060e}
.card figcaption{margin:0;padding:8px 2px 2px}
.card b{display:block;font-size:16px}
.card span{display:block;color:var(--muted);font-size:13px}

/* lightbox */
#lb{border:0;padding:0;background:rgba(4,3,10,.92);max-width:none;width:100%;height:100%}
#lb::backdrop{background:rgba(4,3,10,.92)}
#lb[hidden]{display:none}
.lb-in{min-height:100vh;display:grid;place-items:center;padding:24px 64px 80px;position:relative}
#lb-img{max-width:min(92vw,1200px);max-height:78vh;width:auto;height:auto;object-fit:contain}
.lb-cap{text-align:center;margin-top:14px}
.lb-cap b{display:block;font-size:28px}
.lb-x,.lb-nav{
  position:fixed;background:rgba(16,8,24,.8);border:1px solid var(--line);color:#fff;
  width:48px;height:48px;font-size:28px;
}
.lb-x{top:16px;right:16px}
.lb-nav.prev{left:16px;top:50%}
.lb-nav.next{right:16px;top:50%}

/* join — BANNER ONLY HERE */
.join{padding-bottom:48px}
.join-banner{
  width:min(1400px,96vw);margin:0 auto 28px;
  aspect-ratio:3/1;background:#100818;
  border:1px solid var(--line);
}
.join-banner img{width:100%;height:100%;object-fit:contain;object-position:center}
.join .wrap{text-align:center}
.join h2{margin:0 0 8px}
.join .lede{max-width:40ch;margin:0 auto 20px;color:var(--muted)}
.join .ca{margin:0 auto 18px}

/* footer */
footer{padding:28px 0 120px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer small{display:block;max-width:62ch}

/* slam */
#slam{
  position:fixed;inset:0;z-index:70;display:grid;place-items:center;
  background:rgba(8,4,14,.62);pointer-events:none;
}
#slam[hidden]{display:none}
#slam .band{
  width:100%;background:linear-gradient(90deg, rgba(255,60,171,.92), rgba(46,240,224,.85));
  text-align:center;padding:22px 16px;transform:scale(1.2);opacity:0;
}
#slam.show .band{animation:slam .45s cubic-bezier(.16,1.3,.4,1) forwards}
@keyframes slam{to{transform:scale(1);opacity:1}}
#slam .pd{font-size:clamp(72px,14vw,160px);color:#14010c;margin:0}
#slam p{margin:4px 0 0;color:#241018;font-weight:700;text-transform:uppercase;letter-spacing:.12em}

#toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:85;
  background:#14081c;border:1px solid var(--pink);color:#fff;padding:10px 16px;
  font-family:var(--mono);font-size:13px;letter-spacing:.06em;
}
#toast[hidden]{display:none}

/* 404 */
.page-404{min-height:100vh;display:grid;place-items:center;text-align:center}
.miss h1{font-size:clamp(72px,16vw,160px);margin:0 0 10px;color:var(--pink);
  text-shadow:4px 4px 0 #3a1028}

/* responsive */
@media(max-width:980px){
  .hero-in,.dossier,.conf-grid,.terminal{grid-template-columns:1fr}
  .tiles,.steps{grid-template-columns:1fr 1fr}
  .board{columns:3}
  #portrait{margin:20px auto 0}
  .hero-hud{display:none}
}
@media(max-width:720px){
  body{font-size:18px}
  .hud{padding:8px 10px}
  #nav{
    display:none;position:absolute;top:58px;left:0;right:0;background:#100818;
    flex-direction:column;padding:10px 16px 16px;border-bottom:1px solid var(--line);
  }
  #nav.open{display:flex}
  .burger{display:block}
  .tiles,.steps,.side-shots,.locker{grid-template-columns:1fr 1fr}
  .board{columns:2}
  .hero-in{padding:92px 0 70px}
  .hero-copy h1{font-size:clamp(76px,22vw,140px)}
  footer{padding-bottom:160px}
  .lb-in{padding:24px 16px 80px}
}
@media(max-width:480px){
  .board{columns:1}
  .locker{grid-template-columns:1fr 1fr}
  .tiles,.steps{grid-template-columns:1fr}
  #wanted{display:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marq .track,.scrollcue b,#slam.show .band,#gate.out{animation:none}
  #portrait{transition:none}
}
