/* ═══════════════════════════════════════════════════════════════
   GHOST ARCHIVE — Section 9 field terminal
   Neo-Tokyo thermoptic night: rain-wet concrete, green phosphor,
   thermoptic-camo shimmer, Oshii solemnity.
   ═══════════════════════════════════════════════════════════════ */

@font-face{font-family:'Michroma';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/Michroma-400.woff2') format('woff2');}
@font-face{font-family:'PlexMono';font-style:normal;font-weight:300;font-display:swap;src:url('../assets/fonts/IBMPlexMono-300.woff2') format('woff2');}
@font-face{font-family:'PlexMono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/IBMPlexMono-400.woff2') format('woff2');}
@font-face{font-family:'PlexMono';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/IBMPlexMono-500.woff2') format('woff2');}
@font-face{font-family:'PlexMono';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/IBMPlexMono-600.woff2') format('woff2');}

:root{
  --bg0:#04070A;
  --bg1:#080D11;
  --bg2:#0C1318;
  --bg3:#101921;
  --line:#1B2B27;
  --line-hi:#2C4A3F;
  --phos:#3DFF9C;
  --phos-soft:#7AFFC0;
  --phos-dim:#1C7A4E;
  --phos-ghost:rgba(61,255,156,.14);
  --ice:#D8EBE1;
  --dim:#6E8B7E;
  --faint:#42584E;
  --amber:#E8B93C;
  --red:#FF4D5E;
  --cyan:#4EC8E8;
  --font-d:'Michroma','PlexMono',monospace;
  --font-m:'PlexMono','SFMono-Regular','Consolas',monospace;
  --font-j:'Hiragino Kaku Gothic ProN','Yu Gothic','Noto Sans JP','Meiryo',sans-serif;
  --pad:clamp(18px,4vw,64px);
  --ease:cubic-bezier(.22,.9,.24,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html:focus-within{scroll-behavior:smooth}
body{
  background:var(--bg0);
  color:var(--ice);
  font-family:var(--font-m);
  font-size:15px;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(1200px 700px at 85% -10%, rgba(61,255,156,.045), transparent 60%),
    radial-gradient(900px 600px at -10% 30%, rgba(78,200,232,.035), transparent 60%);
}
::selection{background:var(--phos);color:#031008}
img{display:block;max-width:100%}
a{color:inherit}
button{font-family:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:1px solid var(--phos);outline-offset:3px}

/* ── global atmosphere ─────────────────────────────────────── */
.scanlines{
  position:fixed;inset:0;z-index:60;pointer-events:none;mix-blend-mode:overlay;opacity:.5;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);
}
.vignette{
  position:fixed;inset:0;z-index:59;pointer-events:none;
  background:radial-gradient(130% 100% at 50% 40%,transparent 55%,rgba(2,4,6,.5) 100%);
}

/* ── boot overlay ──────────────────────────────────────────── */
.boot{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:var(--bg0);
  transition:opacity .7s var(--ease),visibility .7s;
}
.boot.is-done{opacity:0;visibility:hidden}
.boot__inner{width:min(560px,88vw)}
.boot__brand{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.35em;color:var(--phos);margin-bottom:26px;white-space:nowrap}
@media (max-width:560px){.boot__brand{font-size:9px;letter-spacing:.2em;gap:9px}}
.boot__mark{filter:brightness(1.4) saturate(.6) hue-rotate(80deg)}
.boot__log{
  min-height:230px;font-size:12px;line-height:2;color:var(--dim);white-space:pre-wrap;
  text-shadow:0 0 8px rgba(61,255,156,.25);
}
.boot__log .ok{color:var(--phos)}
.boot__log .warn{color:var(--amber)}
.boot__log .hl{color:var(--ice)}
.boot__bar{height:3px;background:var(--line);margin:18px 0 10px;overflow:hidden}
.boot__bar i{display:block;height:100%;width:0;background:var(--phos);box-shadow:0 0 12px var(--phos);transition:width .18s linear}
.boot__meta{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);letter-spacing:.15em}
.boot__skip{color:var(--faint);letter-spacing:.2em}
.boot__skip:hover{color:var(--phos)}
.boot__hint{position:absolute;bottom:26px;left:0;right:0;text-align:center;font-size:10px;letter-spacing:.4em;color:var(--faint)}

/* ── HUD top bar ───────────────────────────────────────────── */
.hud{
  position:fixed;top:0;left:0;right:0;z-index:70;
  display:flex;align-items:center;gap:22px;
  padding:0 clamp(14px,2.5vw,30px);height:56px;
  background:linear-gradient(180deg,rgba(4,7,10,.92),rgba(4,7,10,.78) 70%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(27,43,39,.7);
}
.hud__brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.hud__mark{filter:brightness(1.5) saturate(.5) hue-rotate(80deg)}
.hud__title{font-family:var(--font-d);font-size:13px;letter-spacing:.14em;color:var(--ice);display:flex;flex-direction:column;line-height:1.3}
.hud__title em{font-style:normal;font-family:var(--font-m);font-size:8px;letter-spacing:.4em;color:var(--phos-dim)}
.hud__nav{display:flex;gap:2px;margin-left:auto}
.hud__nav a{
  font-size:10.5px;letter-spacing:.12em;color:var(--dim);text-decoration:none;
  padding:6px 10px;border:1px solid transparent;transition:.25s;white-space:nowrap;
}
.hud__nav a:hover{color:var(--phos);border-color:var(--line)}
.hud__nav a.is-active{color:var(--phos);border-color:var(--line-hi);background:var(--phos-ghost);text-shadow:0 0 10px rgba(61,255,156,.4)}
.hud__status{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--dim);letter-spacing:.1em;flex-shrink:0}
.hud__dot{width:7px;height:7px;border-radius:50%;background:var(--phos);box-shadow:0 0 8px var(--phos);animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.hud__burger{display:none;flex-direction:column;justify-content:center;gap:5px;padding:12px;min-width:46px;min-height:46px}
.hud__burger i{width:20px;height:1.5px;background:var(--phos);transition:.3s}

/* ── file rail ─────────────────────────────────────────────── */
.rail{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:65;display:flex;flex-direction:column;align-items:center;gap:12px}
.rail__line{width:2px;height:180px;background:var(--line);position:relative;overflow:hidden}
.rail__line i{position:absolute;top:0;left:0;width:100%;height:0;background:linear-gradient(180deg,var(--phos-dim),var(--phos));transition:height .15s linear}
.rail__label{writing-mode:vertical-rl;font-size:9px;letter-spacing:.35em;color:var(--faint)}

/* ── buttons / chips ───────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;letter-spacing:.18em;text-decoration:none;
  padding:12px 20px;border:1px solid var(--line-hi);color:var(--ice);
  background:rgba(12,19,24,.6);transition:.25s var(--ease);
}
.btn:hover{border-color:var(--phos);color:var(--phos);box-shadow:0 0 18px rgba(61,255,156,.15),inset 0 0 18px rgba(61,255,156,.05)}
.btn--solid{background:var(--phos);color:#03170C;border-color:var(--phos);font-weight:600}
.btn--solid:hover{background:var(--phos-soft);color:#03170C;box-shadow:0 0 26px rgba(61,255,156,.35)}
.chip{
  font-size:10px;letter-spacing:.14em;color:var(--dim);
  padding:6px 12px;border:1px solid var(--line);transition:.2s;
}
.chip:hover{color:var(--phos);border-color:var(--line-hi)}
.chip.is-on{color:#03170C;background:var(--phos);border-color:var(--phos);font-weight:600}
.copybtn{
  font-size:9px;letter-spacing:.15em;border:1px solid var(--line-hi);color:var(--phos);
  padding:3px 8px;margin-left:8px;vertical-align:middle;transition:.2s;
}
.copybtn:hover{background:var(--phos-ghost)}
.copybtn.is-copied{color:var(--amber);border-color:var(--amber)}

/* ── hero ──────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:110px var(--pad) 70px}
.hero__rain{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:.85}
.hero__glow{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(60% 55% at 72% 45%,rgba(61,255,156,.06),transparent 70%),
    linear-gradient(180deg,rgba(4,7,10,.2),transparent 30%,transparent 65%,var(--bg0) 98%);
}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(28px,5vw,80px);align-items:center;max-width:1440px;margin:0 auto;width:100%}
.hero__over{font-size:11px;letter-spacing:.4em;color:var(--phos);margin-bottom:22px}
.hero__title{font-family:var(--font-d);line-height:1.02;margin-bottom:18px}
.hero__jp{display:block;font-family:var(--font-j);font-weight:700;font-size:clamp(14px,1.6vw,20px);letter-spacing:.55em;color:var(--phos-dim);margin-bottom:16px}
.hero__line{display:block;font-size:clamp(38px,6.2vw,86px);color:var(--ice);text-shadow:0 0 40px rgba(61,255,156,.14)}
.hero__sub{font-size:clamp(12px,1.4vw,16px);letter-spacing:.24em;color:var(--dim);margin-bottom:34px}
.hero__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);max-width:640px;margin-bottom:34px}
.hero__facts>div{background:rgba(8,13,17,.85);padding:14px 14px 12px}
.hero__facts dt{font-size:9px;letter-spacing:.28em;color:var(--faint);margin-bottom:5px}
.hero__facts dd{font-size:clamp(14px,1.5vw,19px);color:var(--phos);letter-spacing:.05em;font-weight:500}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px}
.hero__tag{font-size:12px;color:var(--faint);letter-spacing:.12em;font-style:italic}
.hero__panel{justify-self:end;width:min(420px,100%)}

/* framed media */
.frame{position:relative;border:1px solid var(--line-hi);background:var(--bg1);padding:10px;overflow:hidden}
.frame img{width:100%;height:auto;filter:saturate(.92) contrast(1.04)}
.frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(61,255,156,.10) 45%,rgba(78,200,232,.08) 55%,transparent 70%);
  transform:translateX(-120%);animation:shimmer 7s var(--ease) infinite;
}
@keyframes shimmer{0%,55%{transform:translateX(-120%)}80%,100%{transform:translateX(120%)}}
.frame__cap{position:absolute;left:10px;bottom:10px;font-size:9px;letter-spacing:.3em;color:rgba(216,235,225,.85);background:rgba(4,7,10,.72);padding:5px 10px;border-left:2px solid var(--phos)}
.frame__tick{position:absolute;width:14px;height:14px;border:1.5px solid var(--phos);opacity:.9}
.frame__tick--tl{top:-1px;left:-1px;border-right:0;border-bottom:0}
.frame__tick--tr{top:-1px;right:-1px;border-left:0;border-bottom:0}
.frame__tick--bl{bottom:-1px;left:-1px;border-right:0;border-top:0}
.frame__tick--br{bottom:-1px;right:-1px;border-left:0;border-top:0}
.hero__readout{
  position:relative;z-index:2;display:flex;gap:28px;flex-wrap:wrap;max-width:1440px;margin:56px auto 0;width:100%;
  font-size:10px;letter-spacing:.22em;color:var(--faint);
}
.hero__readout b{color:var(--dim);font-weight:500}
.hero__readout span{border-left:1px solid var(--line-hi);padding-left:12px}

/* ── ticker ────────────────────────────────────────────────── */
.ticker{border-block:1px solid var(--line);background:rgba(8,13,17,.85);overflow:hidden;padding:10px 0}
.ticker__track{display:flex;gap:44px;width:max-content;animation:tick 36s linear infinite;font-size:11px;letter-spacing:.3em;color:var(--phos-dim);white-space:nowrap}
.ticker__track span{display:flex;align-items:center;gap:44px}
.ticker__track span::after{content:"◆";font-size:7px;color:var(--faint)}
@keyframes tick{to{transform:translateX(-50%)}}

/* ── sections ──────────────────────────────────────────────── */
.sec{padding:clamp(80px,10vw,140px) var(--pad) 0;max-width:1500px;margin:0 auto}
.sec__head{display:flex;align-items:baseline;gap:18px;margin-bottom:clamp(30px,4vw,54px);flex-wrap:wrap}
.sec__idx{font-size:11px;letter-spacing:.3em;color:var(--amber);border:1px solid var(--line);padding:4px 10px}
.sec__title{font-family:var(--font-d);font-size:clamp(22px,3.4vw,42px);letter-spacing:.08em;color:var(--ice)}
.sec__rule{flex:1;height:1px;background:linear-gradient(90deg,var(--line-hi),transparent);min-width:60px}
.sec__meta{font-size:9px;letter-spacing:.24em;color:var(--faint)}
.panel{background:linear-gradient(160deg,rgba(16,25,33,.55),rgba(8,13,17,.75));border:1px solid var(--line);padding:clamp(18px,2.4vw,30px);position:relative}
.panel__fn{margin-top:18px;font-size:9px;letter-spacing:.18em;color:var(--faint)}
.panel h3{font-size:12px;letter-spacing:.26em;color:var(--phos);margin-bottom:18px}
.panel h3 span{color:var(--faint);font-size:10px}

/* ── dossier ───────────────────────────────────────────────── */
.dossier{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:26px}
.dossier__year{font-size:11px;letter-spacing:.4em;color:var(--amber);margin-bottom:18px}
.dossier__syn{font-size:clamp(14px,1.35vw,16.5px);line-height:1.9;color:var(--ice);margin-bottom:18px;max-width:70ch}
.dossier__tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.dossier__tags li{font-size:9.5px;letter-spacing:.2em;color:var(--dim);border:1px solid var(--line);padding:5px 11px}
.factlist>div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.factlist dt{font-size:9.5px;letter-spacing:.2em;color:var(--faint);padding-top:2px;white-space:nowrap}
.factlist dd{font-size:11.5px;letter-spacing:.06em;color:var(--ice);text-align:right}
.rating-card{margin-top:22px;border:1px solid var(--line-hi);background:var(--phos-ghost);padding:18px;display:flex;align-items:center;gap:16px}
.rating-card__num b{font-family:var(--font-d);font-size:34px;color:var(--phos);font-weight:400}
.rating-card__num span{color:var(--dim);font-size:12px}
.rating-card__meta{font-size:9px;letter-spacing:.2em;color:var(--dim);line-height:1.8}

/* registry */
.registry{margin-top:clamp(40px,5vw,70px)}
.registry__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.registry__head h3{font-size:12px;letter-spacing:.26em;color:var(--phos)}
.registry__head h3 span{color:var(--faint);font-size:10px}
.registry__nav{display:flex;gap:8px}
.registry__nav button{width:36px;height:36px;border:1px solid var(--line-hi);color:var(--dim);font-size:14px;transition:.2s}
.registry__nav button:hover{color:var(--phos);border-color:var(--phos)}
.registry__track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--line-hi) transparent}
.regcard{flex:0 0 300px;scroll-snap-align:start;border:1px solid var(--line);background:var(--bg1)}
.regcard__img{height:120px;overflow:hidden;border-bottom:1px solid var(--line);position:relative}
.regcard__img img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.9)}
.regcard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,7,10,.75))}
.regcard figcaption{padding:14px 16px 16px}
.regcard b{font-size:11.5px;letter-spacing:.16em;color:var(--ice)}
.regcard i{display:block;font-style:normal;font-family:var(--font-j);font-size:10px;color:var(--phos-dim);margin:4px 0 8px;letter-spacing:.08em}
.regcard p{font-size:11px;line-height:1.7;color:var(--dim)}
.regcard--hostile{border-color:rgba(255,77,94,.35)}
.regcard--hostile i{color:var(--red)}

/* ── signal ────────────────────────────────────────────────── */
.sigpath{margin-bottom:26px;overflow-x:auto}
.sigpath__svg{width:100%;min-width:900px;height:auto;display:block}
.sigpath__node rect{fill:rgba(8,13,17,.9);stroke:var(--line-hi);stroke-width:1}
.sigpath__node--out rect{stroke:var(--phos);fill:var(--phos-ghost)}
.sigpath__node text{fill:var(--ice);text-anchor:middle;font-family:var(--font-m)}
.t-b{font-size:15px;font-weight:600;letter-spacing:.1em}
.t-s{font-size:10px;fill:var(--dim);letter-spacing:.14em}
.t-dim{fill:var(--faint)}
.t-fn{font-size:9px;fill:var(--faint);text-anchor:middle;letter-spacing:.2em}
.sigpath__wire{stroke:var(--phos-dim);stroke-width:1.4;fill:none;stroke-dasharray:5 4;animation:wireflow 1.6s linear infinite}
@keyframes wireflow{to{stroke-dashoffset:-9}}
.sigpath__audio{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);padding-top:18px;margin-top:8px;flex-wrap:wrap}
.sigpath__alabel{font-size:9px;letter-spacing:.26em;color:var(--faint);flex-shrink:0}
.sigpath__alabel--r{margin-left:auto}
.sigpath__ch{flex:1;min-width:220px}
.sigpath__chname{font-size:11px;letter-spacing:.14em;color:var(--ice)}
.sigpath__meters{display:flex;gap:4px;margin:8px 0}
.sigpath__meters i{flex:1;height:8px;background:var(--phos-dim);opacity:.35;animation:meter 1.1s ease-in-out infinite}
.sigpath__meters i:nth-child(2n){animation-delay:.15s}
.sigpath__meters i:nth-child(3n){animation-delay:.3s}
.sigpath__meters i:nth-child(4n){animation-delay:.45s}
.sigpath__meters i:nth-child(5n){animation-delay:.6s}
@keyframes meter{0%,100%{opacity:.25;transform:scaleY(.6)}50%{opacity:.9;transform:scaleY(1)}}
.sigpath__tracks{font-size:9.5px;letter-spacing:.16em;color:var(--dim)}

.specgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:26px}
.spec{border:1px solid var(--line);background:var(--bg1)}
.spec summary{
  display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;list-style:none;user-select:none;transition:.2s;
}
.spec summary::-webkit-details-marker{display:none}
.spec summary:hover{background:rgba(61,255,156,.04)}
.spec__k{font-size:10px;letter-spacing:.24em;color:var(--phos);width:86px;flex-shrink:0}
.spec__v{font-size:11px;color:var(--dim);letter-spacing:.1em}
.spec__x{margin-left:auto;width:12px;height:12px;position:relative;flex-shrink:0}
.spec__x::before,.spec__x::after{content:"";position:absolute;background:var(--phos);transition:.3s}
.spec__x::before{left:0;top:5px;width:12px;height:1.5px}
.spec__x::after{left:5px;top:0;width:1.5px;height:12px}
.spec[open] .spec__x::after{transform:scaleY(0)}
.spec__body{border-top:1px solid var(--line);padding:14px 18px}
.spec__body>dl>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed rgba(27,43,39,.6)}
.spec__body>dl>div:last-child{border-bottom:0}
.spec__body dt{font-size:9px;letter-spacing:.18em;color:var(--faint);padding-top:2px;white-space:nowrap}
.spec__body dd{font-size:11px;color:var(--ice);text-align:right;letter-spacing:.04em}

.signal__row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1fr);gap:14px}
.langmatrix table{width:100%;border-collapse:collapse}
.langmatrix th,.langmatrix td{border:1px solid var(--line);padding:10px;text-align:center;font-size:11px;letter-spacing:.12em}
.langmatrix th{color:var(--faint);font-size:9px;letter-spacing:.24em;font-weight:400}
.langmatrix td:first-child{text-align:left;color:var(--ice);font-family:var(--font-j)}
.langmatrix .on{color:var(--phos)}
.langmatrix .off{color:var(--faint)}
.runalloc__bars{display:flex;flex-direction:column;gap:16px}
.rbar__lbl{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--dim);margin-bottom:6px}
.rbar__track{display:block;height:14px;background:var(--bg0);border:1px solid var(--line);position:relative;overflow:hidden}
.rbar__track i{position:absolute;inset:1px auto 1px 1px;width:var(--w);background:repeating-linear-gradient(135deg,var(--phos-dim) 0 6px,rgba(28,122,78,.35) 6px 12px);animation:barfill 1.4s var(--ease) both}
.rbar--bonus .rbar__track i{background:repeating-linear-gradient(135deg,var(--amber) 0 6px,rgba(232,185,60,.3) 6px 12px)}
@keyframes barfill{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}
.rbar__val{display:block;font-size:9px;letter-spacing:.14em;color:var(--faint);margin-top:5px;text-align:right}
.timeline{overflow:hidden}
.timeline__line{position:relative;height:110px;border-bottom:1px solid var(--line-hi);margin:10px 46px 0 46px}
.timeline__line::before{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--line-hi)}
.timeline__pt{position:absolute;bottom:-5px;left:var(--x);transform:translateX(-50%);text-align:center}
.timeline__pt::before{content:"";display:block;width:9px;height:9px;background:var(--bg0);border:1.5px solid var(--phos-dim);transform:rotate(45deg);margin:0 auto 8px}
.timeline__pt b{display:block;font-size:11px;color:var(--ice);letter-spacing:.1em}
.timeline__pt i{display:block;font-style:normal;font-size:8px;letter-spacing:.16em;color:var(--faint);margin-top:3px;white-space:nowrap}
.timeline__pt--hi::before{border-color:var(--amber);background:var(--amber);box-shadow:0 0 10px rgba(232,185,60,.6)}
.timeline__pt--hi b{color:var(--amber)}

/* ── evidence / gallery ────────────────────────────────────── */
.gallery__filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip--kv{border-color:rgba(232,185,60,.4);color:var(--amber)}
.chip--kv.is-on{background:var(--amber);border-color:var(--amber);color:#1A1204}
.gallery__count{font-size:10px;letter-spacing:.22em;color:var(--faint);margin-bottom:22px}
.gallery__count span{color:var(--phos)}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.shot{position:relative;border:1px solid var(--line);background:var(--bg1);overflow:hidden;cursor:pointer;padding:0;text-align:left;aspect-ratio:16/9}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease),filter .4s;filter:saturate(.9)}
.shot:hover img,.shot:focus-visible img{transform:scale(1.05);filter:saturate(1.05)}
.shot::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(61,255,156,.16) 48%,rgba(216,235,225,.12) 52%,transparent 68%);
  transform:translateX(-130%);transition:transform .7s var(--ease);
}
.shot:hover::before{transform:translateX(130%)}
.shot::after{
  content:attr(data-label);position:absolute;left:0;bottom:0;z-index:3;
  font-size:8.5px;letter-spacing:.22em;color:var(--ice);background:rgba(4,7,10,.78);
  border-left:2px solid var(--phos);padding:4px 9px;opacity:.85;
}
.shot--kv{aspect-ratio:auto}
.shot--kv img{aspect-ratio:3/4.2;object-position:top}
.shot.is-hidden{display:none}
.shot{align-self:start;opacity:0;transform:translateY(14px)}
.shot.is-in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}

/* ── manifest / discs ──────────────────────────────────────── */
.discs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.disc__head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.disc__badge{font-size:9px;letter-spacing:.2em;color:#03170C;background:var(--phos);padding:4px 8px;font-weight:600}
.disc--bonus .disc__badge{background:var(--amber)}
.disc__head h3{font-size:12px;letter-spacing:.18em;color:var(--ice);margin:0}
.disc__head h3 i{font-style:normal;color:var(--faint);font-size:10px}
.disc__cap{margin-left:auto;font-size:9.5px;letter-spacing:.14em;color:var(--dim)}
.eps{list-style:none;counter-reset:ep}
.eps li{border-top:1px solid var(--line)}
.ep__row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 6px;text-align:left;transition:.2s}
.ep__row:hover{background:rgba(61,255,156,.05)}
.ep__num{font-size:10px;color:var(--faint);letter-spacing:.1em;width:44px;flex-shrink:0}
.ep__title{font-size:11px;letter-spacing:.08em;color:var(--ice);flex:1;min-width:0}
.ep__st{font-size:8px;letter-spacing:.2em;color:var(--phos-dim);flex-shrink:0}
.ep[open] .ep__st{color:var(--amber)}
.ep__body{padding:4px 6px 16px 56px}
.ep__body img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);margin-bottom:10px;filter:saturate(.9)}
.ep__body p{font-size:10.5px;line-height:1.75;color:var(--dim)}
.ep__meta{display:flex;gap:14px;font-size:8.5px;letter-spacing:.18em;color:var(--faint);margin-top:10px;flex-wrap:wrap}
.bonus{list-style:none}
.bonus li{display:grid;grid-template-columns:52px 1fr;gap:4px 12px;padding:10px 6px;border-top:1px solid var(--line)}
.bonus__tag{grid-row:span 2;font-size:8px;letter-spacing:.14em;color:var(--amber);border:1px solid rgba(232,185,60,.35);padding:3px 5px;height:fit-content;text-align:center}
.bonus b{font-size:10.5px;letter-spacing:.08em;color:var(--ice);font-weight:500}
.bonus b em{color:var(--amber);font-style:normal}
.bonus i{font-style:normal;font-size:9px;letter-spacing:.14em;color:var(--faint)}
.enclosed{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.enclosed h4{font-size:10px;letter-spacing:.24em;color:var(--phos);margin-bottom:12px}
.enclosed__items{display:flex;flex-direction:column;gap:10px}
.enclosed__items span{display:block;font-size:10px;color:var(--dim);border:1px dashed var(--line-hi);padding:10px 12px}
.enclosed__items b{display:block;font-size:10.5px;color:var(--ice);letter-spacing:.1em;margin-bottom:3px}

/* ── physical ──────────────────────────────────────────────── */
.physical__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;margin-bottom:14px}
.packshots__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.frame--sm{padding:6px}
.frame--sm .frame__cap{left:6px;bottom:6px;font-size:8px}
.retail__filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.retail__list{list-style:none;max-height:430px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-hi) transparent;padding-right:6px}
.retail__list li{display:flex;gap:14px;padding:11px 6px;border-top:1px solid var(--line);align-items:baseline}
.retail__list li.is-hidden{display:none}
.retail__name{font-size:10.5px;letter-spacing:.1em;color:var(--ice);width:150px;flex-shrink:0}
.retail__item{font-size:10px;color:var(--dim);line-height:1.6}
.retail__cat{margin-left:auto;font-size:8px;letter-spacing:.18em;color:var(--phos-dim);border:1px solid var(--line);padding:2px 7px;flex-shrink:0;align-self:center}

.compare__tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.compare__grid{display:grid;grid-template-columns:150px 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);overflow-x:auto}
.cmp-cell{background:var(--bg1);padding:12px 14px;font-size:10.5px;letter-spacing:.05em;min-width:130px}
.cmp-cell--k{color:var(--faint);font-size:9px;letter-spacing:.22em;min-width:0}
.cmp-cell--a{background:rgba(61,255,156,.06)}
.cmp-cell--b{color:var(--dim)}
.cmp-cell .win{color:var(--phos)}
.cmp-cell .win::before{content:"▸ ";color:var(--phos)}
.cmp-head{font-size:10px;letter-spacing:.14em;color:var(--phos)}
.cmp-head--b{color:var(--dim)}
.cmp-head small{display:block;color:var(--faint);font-size:8.5px;margin-top:4px;letter-spacing:.1em}

/* ── telemetry ─────────────────────────────────────────────── */
.gauges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.gauge{text-align:center;padding:24px 16px}
.gauge svg{width:110px;height:110px;transform:rotate(-90deg)}
.gauge__bg{fill:none;stroke:var(--line);stroke-width:4}
.gauge__arc{fill:none;stroke:var(--phos);stroke-width:4;stroke-linecap:butt;stroke-dasharray:327;stroke-dashoffset:327;filter:drop-shadow(0 0 5px rgba(61,255,156,.5));transition:stroke-dashoffset 1.4s var(--ease)}
.gauge__num{margin-top:-72px;height:52px;display:flex;align-items:baseline;justify-content:center;gap:3px}
.gauge__num b{font-family:var(--font-d);font-size:24px;color:var(--ice);font-weight:400}
.gauge__num span{font-size:9px;color:var(--dim);letter-spacing:.1em}
.gauge p{font-size:9px;letter-spacing:.18em;color:var(--ice);margin-top:14px;line-height:1.8}
.gauge p i{font-style:normal;color:var(--faint)}
.telemetry__cols{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:14px}
.verdict__big{font-size:clamp(13px,1.4vw,17px);color:var(--amber);letter-spacing:.1em;margin-bottom:14px}
.verdict p{font-size:12px;line-height:1.85;color:var(--dim);margin-bottom:16px}
.verdict__watch{list-style:none}
.verdict__watch li{font-size:10px;letter-spacing:.14em;color:var(--phos-dim);padding:8px 0 8px 20px;border-top:1px dashed var(--line);position:relative}
.verdict__watch li::before{content:"◈";position:absolute;left:0;color:var(--amber);font-size:9px}
.lineage ol{list-style:none}
.lineage li{display:flex;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:11px}
.lineage li b{font-family:var(--font-d);color:var(--phos-dim);font-weight:400;width:46px;flex-shrink:0}
.lineage li span{color:var(--dim);line-height:1.7}
.lineage li span i{color:var(--ice)}
.lineage li.on b{color:var(--phos)}
.lineage li.on span{color:var(--ice)}

/* ── acquire ───────────────────────────────────────────────── */
.acquire__lead{display:flex;align-items:center;gap:clamp(20px,3vw,46px);flex-wrap:wrap;margin-bottom:14px}
.acquire__price b{font-family:var(--font-d);font-size:clamp(30px,4vw,48px);color:var(--phos);font-weight:400;display:block}
.acquire__price span{font-size:9px;letter-spacing:.24em;color:var(--faint)}
.acquire__note{flex:1;min-width:240px;font-size:11.5px;line-height:1.85;color:var(--dim)}
.acquire__row{display:flex;gap:10px;flex-wrap:wrap;width:100%}
.acquire__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.retailer{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);background:var(--bg1);padding:14px 16px;text-decoration:none;position:relative;transition:.2s}
.retailer b{font-size:11px;letter-spacing:.14em;color:var(--ice)}
.retailer span{font-size:9px;letter-spacing:.1em;color:var(--faint);line-height:1.6}
.retailer i{position:absolute;top:12px;right:12px;font-style:normal;color:var(--faint);transition:.2s}
.retailer:hover{border-color:var(--phos);background:rgba(61,255,156,.05)}
.retailer:hover i{color:var(--phos);transform:translate(2px,-2px)}
.acquire__fn{margin-top:16px;font-size:9px;letter-spacing:.16em;color:var(--faint);line-height:1.9}

/* ── footer ────────────────────────────────────────────────── */
.foot{margin-top:clamp(80px,10vw,140px);border-top:1px solid var(--line);padding:clamp(30px,4vw,50px) var(--pad) 30px;background:linear-gradient(180deg,transparent,rgba(8,13,17,.9))}
.foot__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;max-width:1500px;margin:0 auto 34px}
.foot__col h4{font-size:10px;letter-spacing:.3em;color:var(--phos);margin-bottom:12px}
.foot__col p{font-size:10.5px;line-height:1.9;color:var(--dim)}
.foot__link{color:var(--dim);font-size:10.5px;letter-spacing:.1em;text-decoration:none;border-bottom:1px dashed var(--line-hi);padding:0;transition:.2s;line-height:2}
.foot__link:hover{color:var(--phos)}
.foot__uptime{color:var(--faint);font-size:10px;letter-spacing:.12em}
.foot__uptime b{color:var(--phos-dim)}
.foot__legal{max-width:1500px;margin:0 auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;font-size:8.5px;letter-spacing:.14em;color:var(--faint)}

/* ── lightbox ──────────────────────────────────────────────── */
.lb{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(3,5,7,.94);backdrop-filter:blur(8px)}
.lb[hidden]{display:none}
.lb__wipe{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(61,255,156,.04) 0 2px,transparent 2px 6px)}
.lb__stage{position:relative;max-width:min(1100px,92vw);border:1px solid var(--line-hi);background:var(--bg1);padding:12px}
.lb__stage img{max-width:100%;max-height:74vh;width:auto;margin:0 auto}
.lb__cap{display:flex;justify-content:space-between;gap:14px;padding-top:12px;font-size:10px;letter-spacing:.2em;color:var(--dim)}
.lb__cap span:first-child{color:var(--ice)}
.lb__btn{position:absolute;z-index:2;width:46px;height:46px;border:1px solid var(--line-hi);background:rgba(8,13,17,.85);color:var(--ice);font-size:18px;transition:.2s}
.lb__btn:hover{border-color:var(--phos);color:var(--phos)}
.lb__btn--prev{left:clamp(8px,3vw,40px);top:50%;transform:translateY(-50%)}
.lb__btn--next{right:clamp(8px,3vw,40px);top:50%;transform:translateY(-50%)}
.lb__btn--close{top:clamp(10px,3vh,30px);right:clamp(10px,3vw,40px);font-size:22px}
.lb__meta{position:absolute;bottom:clamp(10px,3vh,30px);left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.26em;color:var(--faint)}

/* ── decrypt / reveal states ───────────────────────────────── */
[data-decrypt]{min-height:1em}

/* ── responsive ────────────────────────────────────────────── */
@media (max-width:1180px){
  .hud__nav a{padding:6px 7px;font-size:10px}
  .specgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .acquire__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .signal__row{grid-template-columns:1fr 1fr}
  .timeline{grid-column:1/-1}
  .discs{grid-template-columns:1fr 1fr}
  .disc--bonus{grid-column:1/-1}
}
@media (max-width:900px){
  .hud__nav{
    position:fixed;top:56px;right:0;left:0;flex-direction:column;
    background:rgba(4,7,10,.97);border-bottom:1px solid var(--line-hi);
    padding:10px;display:none;
  }
  .hud__nav.is-open{display:flex}
  .hud__nav a{padding:12px 14px;font-size:12px}
  .hud__burger{display:flex;margin-left:auto}
  .hud__status{display:none}
  .rail{display:none}
  .hero__grid{grid-template-columns:1fr;gap:36px}
  .hero__panel{justify-self:start;width:min(380px,86%)}
  .dossier{grid-template-columns:1fr}
  .physical__top{grid-template-columns:1fr}
  .telemetry__cols{grid-template-columns:1fr}
  .gauges{grid-template-columns:repeat(2,minmax(0,1fr))}
  .discs{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compare__grid{grid-template-columns:110px 1fr 1fr}
}
@media (max-width:560px){
  body{font-size:14px}
  .hero{padding-top:96px}
  .hero__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .specgrid{grid-template-columns:1fr}
  .signal__row{grid-template-columns:1fr}
  .acquire__grid{grid-template-columns:1fr 1fr}
  .gauges{grid-template-columns:1fr 1fr}
  .foot__cols{grid-template-columns:1fr}
  .sec__head{gap:10px}
  .registry__track{scroll-snap-type:x mandatory}
  .regcard{flex-basis:min(78vw,300px)}
  .lb__btn--prev{left:4px}.lb__btn--next{right:4px}
  .hero__readout{gap:14px}
  .boot__log{font-size:11px}
}

/* ── reduced motion ────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.001s !important}
  .ticker__track{animation:none;transform:none}
  .hero__rain{display:none}
  .frame::after{display:none}
  .shot{opacity:1;transform:none}
  .scanlines{opacity:.25}
}
