
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#f2f4f6; --dim:#9aa4ad; --red:#ff3b30; --amber:#ffb02e;
  --bg:#05080b; --panel:rgba(10,14,18,.72); --line:rgba(255,255,255,.14);
}
html{scroll-behavior:auto}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);overflow-x:hidden}
.sample{color:var(--red);font-style:normal;font-weight:600;letter-spacing:.14em;font-size:.72em;font-family:var(--font-mono)}
.red{color:var(--red)}

/* loader */
.loader{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .5s}
.loader.done{opacity:0;pointer-events:none}
.loader-kicker{font-size:13px;letter-spacing:.5em;color:var(--dim);margin-bottom:14px;text-align:center;font-family:var(--font-mono)}
.loader-bar{width:220px;height:2px;background:#1c232a;margin:0 auto}
.loader-bar span{display:block;height:100%;background:var(--ink);transform:scaleX(.2);transform-origin:left;transition:transform .4s}

/* hud */
.hud{position:fixed;left:26px;bottom:26px;display:flex;align-items:center;gap:14px;z-index:90;mix-blend-mode:difference}
.hud-beat{font-family:var(--font-display);font-size:26px;color:#fff}
.hud-unit{font-family:var(--font-body);font-size:14px;color:#bbb;margin-left:6px}
.hud-label{font-size:10px;letter-spacing:.45em;color:#bbb;font-family:var(--font-mono)}
.hud-rail{width:120px;height:2px;background:rgba(255,255,255,.25)}
.hud-rail span{display:block;height:100%;background:#fff;transform:scaleX(0);transform-origin:left}

/* ============ top nav + mega menu ============ */
.nav{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:space-between;
  padding:18px 30px;background:linear-gradient(180deg,rgba(3,5,7,.82),rgba(3,5,7,0));transition:background .3s}
.nav.solid{background:rgba(4,7,10,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-family:var(--font-display);font-size:19px;letter-spacing:.14em;color:var(--ink);text-decoration:none}
.brand span{color:var(--red)}
.menu-btn{display:flex;align-items:center;gap:12px;background:transparent;border:1px solid var(--line);color:var(--ink);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.4em;padding:11px 18px 11px 22px;cursor:pointer}
.menu-btn:hover{border-color:var(--ink)}
.menu-btn-icon{position:relative;width:14px;height:14px}
.menu-btn-icon::before,.menu-btn-icon::after{content:"";position:absolute;background:var(--ink);transition:transform .3s}
.menu-btn-icon::before{left:6px;top:0;bottom:0;width:2px}
.menu-btn-icon::after{top:6px;left:0;right:0;height:2px}
.menu-btn[aria-expanded="true"] .menu-btn-icon::before{transform:rotate(90deg)}
.menu-btn[aria-expanded="true"] .menu-btn-icon::after{transform:rotate(180deg)}

.mega{position:fixed;inset:0;z-index:110;background:rgba(4,6,9,.97);backdrop-filter:blur(14px);
  transform:translateY(-102%);transition:transform .55s cubic-bezier(.7,0,.2,1);overflow-y:auto}
.mega.open{transform:translateY(0)}
.mega-inner{max-width:1180px;margin:0 auto;padding:120px 6vw 80px;display:grid;grid-template-columns:1fr 1fr;gap:60px}
.mega-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.45em;color:var(--dim);margin-bottom:26px;
  padding-bottom:14px;border-bottom:1px solid var(--line)}
.mega-col a{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto;column-gap:16px;text-decoration:none;
  padding:15px 10px;border-bottom:1px solid rgba(255,255,255,.06);transition:background .25s,padding-left .25s}
.mega-col a:hover{background:rgba(255,255,255,.04);padding-left:22px}
.m-num{grid-row:1/3;font-family:var(--font-mono);font-size:13px;color:var(--red);letter-spacing:.15em;padding-top:5px}
.m-title{font-family:var(--font-display);font-size:clamp(18px,2.4vw,26px);color:var(--ink);letter-spacing:.02em}
.m-sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--dim);margin-top:5px}
.mega-col a.active .m-title{color:var(--red)}

/* ALL CAPS system — headings, kickers, labels, buttons uppercase.
   Body copy stays sentence case for readability. */
.kicker,.chnum,.ctiny,.hint,.prose h2,.prose h3,.prose blockquote,
.brand,.menu-btn,.mega-kicker,.m-title,.m-num,.m-sub,
.hud-label,table.data th,.tipform button,.tipform label,.tip-k,
.replay,.closing,.count-k,.mblock-k,.mblock-v,.t-date,
.rail-facts dt,.note,.count-v{text-transform:uppercase}

/* dissolve layers — film melts into the footage's own color */
.dissolve-in,.dissolve-out{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:5}
.dissolve-in{background:var(--din,#000)}
.dissolve-out{background:var(--dout,#000)}
.chapter{z-index:6}

/* whisper text over film — small, never a billboard */
.ctiny{font-family:var(--font-display);font-size:clamp(19px,2.4vw,30px);letter-spacing:.1em;
  margin-top:12px;text-shadow:0 2px 22px rgba(0,0,0,.85)}

/* pages wear the color of the footage that melted into them */
.page.dossier{background:linear-gradient(to bottom,#04060a 0%,#20343a 18%,#20343a 82%,#0a0d1a 100%)}
.page.routes-page{background:linear-gradient(to bottom,#20343a 0%,#0a0d1a 18%,#0a0d1a 82%,#0b0e15 100%)}
.page.numbers-page{background:linear-gradient(to bottom,#0a0d1a 0%,#0b0e15 18%,#0b0e15 82%,#19202a 100%)}
.page.collapse-page{background:linear-gradient(to bottom,#0b0e15 0%,#19202a 18%,#19202a 82%,#6e5244 100%)}
.page.service-page{background:linear-gradient(to bottom,#19202a 0%,#6e5244 18%,#6e5244 82%,#0d1117 100%)}
.page.family-page{background:#887869}
.page.finale{background:linear-gradient(to bottom,#05080b 0%,#05080b 100%)}
.page.audit-page{background:#05080b}
.page.corp-page{background:#05080b}
.page.record-page{background:#05080b}

/* opening cover — wears the takeoff film's incoming color so the
   scroll melts straight from the cover into the movie */
.page.opening{background:#04060a;position:relative;overflow:hidden;min-height:100svh;display:flex;align-items:center;justify-content:center}
#pageOpening::before{content:"";position:absolute;top:0;left:0;right:0;height:150px;z-index:4;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.88),transparent)}
.hero-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
/* ultrawide fill: the same film, blurred and darkened, covers the screen
   behind the untouched full frame — the sharp picture is never cropped,
   and no dead black bars are left standing on a 21:9 screen */
.hero-film-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:blur(26px) brightness(.5) saturate(1.15);transform:scale(1.08)}
.hero-shade{position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(4,6,10,.55) 0%,rgba(4,6,10,0) 30%,rgba(4,6,10,0) 55%,rgba(4,6,10,.72) 100%),
  radial-gradient(120% 90% at 50% 45%,rgba(4,6,10,0) 40%,rgba(4,6,10,.5) 100%)}
.page.opening .cover{position:relative;z-index:2;padding-bottom:clamp(140px,17vh,180px)}
.page.opening .cover .kicker,
.page.opening .cover h2,
.page.opening .cover .lede,
.page.opening .cover .cover-hint{text-shadow:0 2px 18px rgba(0,0,0,.75),0 1px 4px rgba(0,0,0,.85)}

/* ---- hero top bar (mockup layer) ---- */
.hero-topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;align-items:center;gap:20px;padding:22px 36px}
.tb-brand img{height:46px;width:auto;display:block}
.tb-div{width:1px;align-self:stretch;background:rgba(255,255,255,.28)}
.tb-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.3em;line-height:1.8;color:#fff;white-space:nowrap}
.tb-links{display:flex;gap:28px;margin-left:auto}
.tb-links a{font-family:var(--font-mono);font-size:11px;letter-spacing:.24em;color:#fff;text-decoration:none;opacity:.92}
.tb-links a:hover{opacity:1;color:var(--red)}
.tb-cta{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;color:#fff;text-decoration:none;white-space:nowrap;
  border:1px solid var(--red);border-radius:5px;padding:12px 22px;background:rgba(0,0,0,.35)}
.tb-cta:hover{background:rgba(255,59,48,.18)}

/* ---- hero title lockup (mockup layer) ---- */
.hero-title{position:absolute;z-index:2;left:4vw;top:30%;width:min(620px,46vw)}
.hero-title img{width:100%;height:auto;display:block;filter:drop-shadow(0 4px 26px rgba(0,0,0,.6))}

/* ---- chapter dock: code-built button system ----
   Seven glass dossier tabs — Aldrich numbers in accusation red, titles in
   condensed caps. Dock-style magnification (scale + lift + red glow) with
   distance falloff; staggered entrance; red bar sweeps in on hover. */
.chapter-dock{position:absolute;left:50%;transform:translateX(-50%);bottom:10vh;z-index:3;
  display:flex;gap:10px;align-items:stretch}
.cd-btn{position:relative;flex:0 0 auto;width:122px;padding:14px 12px 16px;text-decoration:none;
  background:rgba(8,10,14,.66);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.09);border-radius:10px;overflow:hidden;
  transform-origin:50% 100%;will-change:transform;
  transition:transform .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out;
  animation:cdIn .55s cubic-bezier(.2,.7,.3,1) backwards}
.cd-btn:nth-child(1){animation-delay:.45s}.cd-btn:nth-child(2){animation-delay:.52s}
.cd-btn:nth-child(3){animation-delay:.59s}.cd-btn:nth-child(4){animation-delay:.66s}
.cd-btn:nth-child(5){animation-delay:.73s}.cd-btn:nth-child(6){animation-delay:.8s}
.cd-btn:nth-child(7){animation-delay:.87s}
@keyframes cdIn{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
.cd-btn::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.07) 0%,transparent 45%)}
.cd-num{display:block;color:var(--red);font-family:var(--font-display);font-size:13px;
  letter-spacing:.1em;margin-bottom:7px}
.cd-title{display:block;color:#fff;font-family:var(--font-display);font-size:10px;
  letter-spacing:.05em;line-height:1.55;text-transform:uppercase}
.cd-bar{position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--red);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .28s ease-out}
.cd-btn:hover,.cd-btn:focus-visible{border-color:rgba(255,59,48,.6);
  box-shadow:0 10px 34px rgba(255,45,30,.22),0 2px 10px rgba(0,0,0,.55)}
.cd-btn:hover .cd-bar,.cd-btn:focus-visible .cd-bar{transform:scaleX(1)}
.cd-btn:focus-visible{outline:2px solid #e8ff47;outline-offset:2px}
@media (max-width:900px){
  .chapter-dock{bottom:8vh;gap:7px;max-width:96vw;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}
  .chapter-dock::-webkit-scrollbar{display:none}
  .cd-btn{width:104px;flex-shrink:0;animation:none}
}
/* ---- hero atmosphere: dust, vignette, scroll cue ---- */
.hero-dust{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(4,6,10,.92) 0%,rgba(4,6,10,0) 11%),linear-gradient(-90deg,rgba(4,6,10,.92) 0%,rgba(4,6,10,0) 11%),radial-gradient(ellipse at 50% 42%,transparent 52%,rgba(0,0,0,.46) 100%)}
/* bottom melt: the cover film dissolves fully into the takeoff chapter's
   incoming color well before the section edge — no picture reaches the
   edge, so no hard line can form where the next stage slides in */
.hero-melt{display:none !important}
/* The takeoff uses the shared cinematic stage edge blend. Keeping a
   second ID-specific pseudo veil here overrides the shared transition system. */
.scroll-cue{position:absolute;left:50%;transform:translateX(-50%);bottom:2.2vh;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:9px;pointer-events:none;
  color:rgba(255,255,255,.5);font-family:var(--font-display);font-size:10px;letter-spacing:.34em;
  text-indent:.34em;transition:opacity .5s ease-out;animation:cdIn .8s ease-out 1.2s backwards}
.scroll-cue i{display:block;width:1px;height:38px;background:rgba(255,255,255,.18);
  position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;left:0;top:-45%;width:100%;height:45%;
  background:var(--red);animation:cueDrop 1.9s cubic-bezier(.6,0,.4,1) infinite}
@keyframes cueDrop{to{top:115%}}
@media (prefers-reduced-motion:reduce){
  .cd-btn{animation:none}
  .scroll-cue{animation:none}
  .scroll-cue i::after{animation:none}
}
/* the site HUD steps aside while the hero's own top bar is on screen */
.nav{transition:background .3s,opacity .35s}
.nav.hero-live{opacity:0;pointer-events:none}
@media (max-width:900px){
  .tb-links,.tb-tag{display:none}
  .hero-topbar{padding:16px 20px;gap:14px}
  .tb-cta{margin-left:auto}
  .hero-title{left:6vw;right:6vw;top:22%;width:auto}
  .dock-rail{width:94vw;overflow-x:auto;scroll-snap-type:x mandatory;height:104px;scrollbar-width:none}
  .dock-rail::-webkit-scrollbar{display:none}
  .dock-panel{flex:0 0 44vw;margin-left:-4vw;scroll-snap-align:center;transform:none !important}
  .dock-panel:first-child{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .dock-panel{transition:none;transform:none !important}
}
.cover{max-width:1020px;margin:0 auto;text-align:center}
.cover .kicker{margin-bottom:22px}
.cover h2{font-family:var(--font-display);font-size:clamp(40px,7vw,88px);line-height:1;letter-spacing:.015em;
  margin-bottom:20px;text-transform:uppercase}
.cover-frame{margin:46px 0 40px;border:1px solid var(--line);overflow:hidden;background:#000}
.cover-frame img{display:block;width:100%;height:auto;filter:saturate(.82) contrast(1.06) brightness(.94);
  animation:coverdrift 22s ease-in-out infinite alternate}
@keyframes coverdrift{from{transform:scale(1)}to{transform:scale(1.07)}}
.cover-frame figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.35em;color:var(--dim);
  padding:16px 18px;border-top:1px solid var(--line);text-transform:uppercase}
.cover .lede{font-size:clamp(19px,2.6vw,27px);font-weight:400;line-height:1.55;color:#e6ebef;
  margin:0 auto 20px;max-width:32em}
.cover .cover-hint{justify-content:center;margin-top:44px}

/* ============ cine chapters ============ */
.cine{height:300vh;position:relative;background:#000}
#cineHero{background:linear-gradient(to bottom,#20343a,#04060a)}
#cineGlobe{background:linear-gradient(to bottom,#0a0d1a,#20343a)}
#cineDesk{background:linear-gradient(to bottom,#0b0e15,#0a0d1a)}
#cineWreck{background:linear-gradient(to bottom,#19202a,#0b0e15)}
#cineCost{background:linear-gradient(to bottom,#6e5244,#19202a)}
#cinePat{background:linear-gradient(to bottom,#0d1117,#6e5244)}
#cineArmy{background:linear-gradient(to bottom,#0a0e14,#0d1117)}
.stage{position:sticky;top:0;height:100svh;overflow:clip;background:transparent}
.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.06) brightness(.94)}
/* Pat hero: anchor to the TOP of frame — the head is never cropped; any cover crop comes off the bottom */
#cinePat .film{object-position:50% 0}
.grade{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(0,0,0,.5) 100%),
             linear-gradient(180deg,rgba(4,10,16,.28),transparent 35%,transparent 65%,rgba(2,5,8,.42))}
.grain{position:absolute;inset:-100px;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.1s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-40px,30px)}50%{transform:translate(30px,-45px)}75%{transform:translate(-25px,-20px)}100%{transform:translate(0,0)}}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.42),transparent 30%,transparent 62%,rgba(0,0,0,.55));pointer-events:none}

.chapter{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 8vw;opacity:0;pointer-events:none}
.chapter.low{justify-content:flex-end;padding-bottom:11vh}
.kicker{font-size:14px;letter-spacing:.55em;color:var(--dim);margin-bottom:18px;font-family:var(--font-mono)}
.chnum{font-family:var(--font-display);font-size:15px;letter-spacing:.4em;color:var(--red);margin-bottom:10px}
h1.title{font-family:var(--font-display);font-size:clamp(64px,13vw,168px);line-height:.94;letter-spacing:.01em;text-shadow:0 4px 40px rgba(0,0,0,.7)}
.chapter h2{font-family:var(--font-display);font-size:clamp(40px,7vw,92px);line-height:1;letter-spacing:.02em;margin-bottom:14px;text-shadow:0 3px 30px rgba(0,0,0,.75)}
.cbody{font-size:clamp(16px,2.2vw,24px);font-weight:400;letter-spacing:.04em;color:#dfe5ea;line-height:1.65;text-shadow:0 2px 18px rgba(0,0,0,.8)}
.hint{margin-top:34px;font-size:12px;letter-spacing:.5em;color:var(--dim);display:flex;align-items:center;gap:14px;font-family:var(--font-mono)}
.hint-line{display:inline-block;width:52px;height:1px;background:var(--dim)}
.slogan-track{margin-top:26px;font-size:15px;letter-spacing:.42em;color:var(--ink);font-family:var(--font-mono)}
.slogan-track span{border:1px solid var(--line);padding:10px 22px 10px 26px;background:rgba(0,0,0,.45);backdrop-filter:blur(4px)}

/* routes svg */
.routes{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;overflow:hidden}
.routes path{stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 6px rgba(255,255,255,.35))}

/* ============ content pages ============ */
.page{position:relative;padding:clamp(90px,14vh,160px) 6vw;z-index:2}
.page-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:300px 1fr;gap:64px}
.page-inner>*{min-width:0}
.page-inner .prose.wide{grid-column:1/3;max-width:880px}

.rail-facts{position:sticky;top:110px;align-self:start;background:rgba(0,0,0,.35);padding:28px 24px}
.rail-facts .kicker{font-size:11px;margin-bottom:20px}
.rail-facts dl>div{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:11px 0;border-top:1px solid rgba(255,255,255,.08)}
.rail-facts dt{font-family:var(--font-mono);font-size:10px;letter-spacing:.3em;color:var(--dim);padding-top:3px}
.rail-facts dd{font-size:15px;letter-spacing:.03em}

.prose .kicker{margin-bottom:16px}
.prose h2{font-family:var(--font-display);font-size:clamp(30px,4.4vw,58px);line-height:1.02;letter-spacing:.015em;margin-bottom:26px}
.prose h3{font-family:var(--font-display);font-size:clamp(19px,2.4vw,28px);letter-spacing:.03em;margin:44px 0 18px}
.prose .lede{font-size:clamp(19px,2.6vw,27px);font-weight:400;line-height:1.55;color:#e6ebef;margin-bottom:28px;max-width:34em}
.prose p{font-size:17px;font-weight:400;line-height:1.85;color:#c9d1d8;margin-bottom:22px;max-width:38em;letter-spacing:.015em}
.prose blockquote{font-family:var(--font-display);font-size:clamp(20px,2.8vw,32px);line-height:1.3;color:var(--ink);
  border-left:3px solid var(--red);padding:6px 0 6px 26px;margin:40px 0;max-width:22em}
.ticks{list-style:none;margin:8px 0 30px}
.ticks li{position:relative;font-size:16px;font-weight:400;color:#c9d1d8;letter-spacing:.02em;padding:12px 0 12px 34px;border-bottom:1px solid rgba(255,255,255,.07)}
.ticks li::before{content:"▸";position:absolute;left:8px;color:var(--red)}

.table-wrap{overflow-x:auto;margin:30px 0 34px;}
table.data{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
table.data th{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);text-align:left;
  padding:16px 18px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.4)}
table.data td{padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.06);font-weight:400;letter-spacing:.02em;color:#d5dbe1}
table.data tr:last-child td{border-bottom:0}
table.data tr:hover td{background:rgba(255,255,255,.025)}

.market-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 10px}
.mblock{background:rgba(0,0,0,.35);padding:26px 22px;transition:border-color .25s}
.mblock:hover{border-color:rgba(255,255,255,.35)}
.mblock-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.4em;color:var(--dim);margin-bottom:12px}
.mblock-v{font-family:var(--font-display);font-size:38px;margin-bottom:10px}
.mblock p:last-child{font-size:14.5px;margin:0}
.note{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--dim);margin-top:18px}

.counters{display:flex;gap:44px;margin:34px 0 30px;flex-wrap:wrap}
.counter .count-v{font-family:var(--font-display);font-size:clamp(40px,5vw,68px);color:var(--ink)}
.counter .count-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.35em;color:var(--dim);margin-top:8px}
.bars{display:flex;gap:10px;align-items:flex-end;height:130px;margin:10px 0 30px}
.bar{width:56px;background:rgba(255,255,255,.07);height:100%;position:relative}
.bar span{position:absolute;bottom:0;left:0;right:0;height:var(--h);background:linear-gradient(180deg,#dfe5ea,#6b7680)}

.timeline{list-style:none;margin:30px 0 10px;border-left:1px solid var(--line)}
.timeline li{position:relative;display:grid;grid-template-columns:120px 1fr;gap:18px;padding:20px 0 20px 30px}
.timeline li::before{content:"";position:absolute;left:-6px;top:28px;width:11px;height:11px;background:var(--red);transform:rotate(45deg)}
.t-date{font-family:var(--font-mono);font-size:12px;letter-spacing:.25em;color:var(--dim);padding-top:4px}
.timeline .t-ev{font-size:16px;font-weight:400;line-height:1.7;color:#c9d1d8}

/* tip form */
.tipform{border:1px solid var(--line);background:rgba(0,0,0,.4);padding:36px 32px;margin:34px 0;max-width:640px}
.tip-k{font-family:var(--font-mono);font-size:12px;letter-spacing:.4em;color:var(--dim);margin-bottom:22px}
.tipform label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;color:var(--dim);margin-bottom:18px}
.tipform input,.tipform textarea{width:100%;margin-top:10px;background:rgba(0,0,0,.55);border:1px solid var(--line);
  color:var(--ink);font-family:var(--font-body);font-size:16px;padding:14px;letter-spacing:.03em}
.tipform textarea{resize:vertical}
.tipform button{margin-top:8px;background:var(--red);border:0;color:#fff;font-family:var(--font-body);
  font-size:14px;letter-spacing:.35em;padding:16px 34px;cursor:pointer}
.tipform button:hover{filter:brightness(1.15)}
.tip-done{margin-top:14px;font-size:14px;letter-spacing:.1em}
.filmblock{border:1px solid var(--line);background:rgba(0,0,0,.4);padding:28px 28px 20px;margin:34px 0;max-width:860px}
.film-k{font-family:var(--font-mono);font-size:12px;letter-spacing:.4em;color:var(--dim);margin-bottom:18px;text-transform:uppercase}
.film-video{display:block;width:100%;aspect-ratio:16/9;background:#000;border:1px solid var(--line)}
.film-cap{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;color:var(--dim);margin-top:14px;text-transform:uppercase}
.closing{font-family:var(--font-display);font-size:clamp(22px,3.2vw,40px);letter-spacing:.04em;margin:50px 0 10px}
.replay{margin:26px 0;background:transparent;border:1px solid var(--ink);color:var(--ink);font-family:var(--font-body);
  font-size:13px;letter-spacing:.4em;padding:15px 36px;cursor:pointer}
.replay:hover{background:var(--ink);color:#000}
.outro-line{font-size:14px;font-weight:400;color:var(--dim);line-height:1.8;margin-top:26px;max-width:44em}

/* scroll reveals */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* reduced motion: full scroll journey kept; only still autonomous motion */
body.rm .grain{animation:none}
body.rm .cover-frame img{animation:none}
body.rm .reveal{transition:opacity .3s ease;transform:none}
body.rm .mega{transition:none}

@media (max-width:900px){
  .page-inner{grid-template-columns:1fr;gap:40px}
  .page-inner .prose.wide{grid-column:1}
  .rail-facts{position:static}
  .mega-inner{grid-template-columns:1fr;gap:44px;padding-top:104px}
  .market-blocks{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr;gap:6px}
  .nav{padding:14px 18px}
  .hud{left:16px;bottom:16px}
  .cine{height:250vh}
  #cineHero{height:220vh}
}
@media (prefers-reduced-motion:reduce){
  .grain{animation:none}
  .mega{transition:none}
}

/* ================= CONTENT BINDING + MOTION LAYER (2026-10-02) =================
   Hi Fly lessons on our own pages: content folds forward, sweeps —
   boarding-pass cards scrub in, hold, and scrub away; card groups deal in
   with the same pass entrance. No hard lines: page-to-page
   seams melt through top gradients. Hidden initial states are gated behind
   html.mx (set by the motion module) so no-JS / reduced-motion keeps everything
   visible and static. */

/* new pages wear melt-family solids */
.page.pat-page{background:linear-gradient(to bottom,#6e5244 0%,#0d1117 18%,#0d1117 82%,#0a0e14 100%)}
.page.cred-page{background:linear-gradient(to bottom,#0d1117 0%,#0a0e14 18%,#0a0e14 82%,#080b0f 100%)}
.page.claims-page{background:linear-gradient(to bottom,#080b0f 0%,#070a0e 18%,#070a0e 82%,#0a0e14 100%)}
.page.people-page{background:linear-gradient(to bottom,#0a0e14 0%,#080b0f 18%,#080b0f 82%,#05080b 100%)}
.page.finale{border-top:none}

/* page-to-page melts removed 20261005 — gradients now baked into .page backgrounds */

/* ============ THE CLAIMS — verbatim chat-quote cards (20261006) ============ */
.claims-grid{display:grid;gap:26px;margin-top:46px}
.claim-card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--red);
  padding:30px 32px;backdrop-filter:blur(6px)}
.claim-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.42em;color:var(--red);
  margin-bottom:18px;text-transform:uppercase}
.claim-quote{font-family:var(--font-body);font-size:clamp(17px,2.2vw,24px);line-height:1.55;
  color:var(--ink);margin:0 0 20px}
.claim-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;color:var(--dim);
  text-transform:uppercase}
.claim-sub{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
.claim-sub:first-of-type{border-top:0;padding-top:0;margin-top:0}
.claim-fine{margin-top:44px;font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;
  color:var(--dim);line-height:2.1;text-transform:uppercase}
@media (max-width:640px){
  .claim-card{padding:22px 20px}
  .claims-grid{gap:20px;margin-top:34px}
}
.page.pat-page .page-inner,.page.cred-page .page-inner,
.page.people-page .page-inner,.page.finale .page-inner{position:relative;z-index:1}

/* receipt status chips — the evidence layer, worn visibly */
.rtag{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;
  letter-spacing:.16em;padding:2.5px 7px;border:1px solid rgba(255,255,255,.30);border-radius:3px;
  color:#eef1f3;vertical-align:middle;white-space:nowrap;line-height:1.5}
dd .rtag{margin-top:5px}
.t-ev .rtag{margin-left:6px}

/* ---- card stacks: the boarding-pass entrance, dealt into a grid ----
   Static grid by default (no JS / reduced motion / small screens — every
   card visible). With motion, the slot goes tall and sticky and each card
   scrubs in with the pass entrance, takes its grid place, and stays. */
.stack-scroll{position:relative;max-width:1180px;margin:10px auto 0}
.stack-stage{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:26px 0}
.stack-stage-k{font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.22em;color:var(--dim)}
.stack-stage-k::before{content:"";display:inline-block;width:26px;height:1px;background:var(--red);vertical-align:middle;margin-right:10px}
.stack-stage-note{font:500 10px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--dim)}
.stack-grid{display:grid;gap:12px}
.stack-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.stack-grid.cols-2{grid-template-columns:repeat(2,1fr);max-width:900px;width:100%;margin:0 auto}
.stack-card{position:relative;padding:20px 18px 18px;border-radius:14px;
  background:linear-gradient(155deg,rgba(18,22,29,.94),rgba(9,11,15,.96));
  border:1px solid rgba(255,255,255,.17);box-shadow:0 30px 70px rgba(0,0,0,.45);will-change:transform,opacity}
.stack-card[data-cid]{cursor:pointer}
.stack-grid.cols-3 .stack-card{min-height:150px}
.stack-grid.cols-2 .stack-card{min-height:228px}
.card-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.34em;color:var(--dim);margin-bottom:10px}
.card-v{font-family:var(--font-display);font-size:19px;line-height:1.25;letter-spacing:.02em;margin-bottom:12px;text-transform:uppercase}
.card-p{font-size:13.5px;font-weight:400;line-height:1.6;color:#c9d1d8;margin-bottom:12px}
@media (prefers-reduced-motion: no-preference) and (min-width: 901px){
  .stack-scroll.js-stack{height:340vh}
  .stack-scroll.js-stack.short{height:290vh}
  .stack-scroll.js-stack .stack-stage{position:sticky;top:0;height:100svh;padding:0}
  .stack-scroll.js-stack .stack-stage-note{opacity:0}
  .stack-scroll.js-stack .stack-card{opacity:0}
}
@media (max-width: 900px){ .stack-grid.cols-3{grid-template-columns:1fr 1fr} }
@media (max-width: 620px){
  .stack-grid.cols-3,.stack-grid.cols-2{grid-template-columns:1fr}
  .stack-grid .stack-card{min-height:0}
}

/* ---- boarding-pass cards: scrub in, hold, scrub away (sticky slot) ---- */
.pass-slot{margin:38px 0}
.pass-card{position:relative;max-width:640px;margin:0 auto;overflow:hidden;
  background:linear-gradient(155deg,rgba(18,22,29,.94),rgba(9,11,15,.96));
  border:1px solid rgba(255,255,255,.17);border-radius:14px;padding:26px 28px 22px;
  box-shadow:0 30px 70px rgba(0,0,0,.45);will-change:transform,opacity}
.pass-card::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:26%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);transform:skewX(-14deg)}
.pass-card.in::after{animation:passSheen 1.3s ease .15s forwards}
@keyframes passSheen{to{left:112%}}
.pass-head{display:flex;justify-content:space-between;gap:16px;font-family:var(--font-mono);
  font-size:10.5px;letter-spacing:.3em;color:var(--dim);margin-bottom:20px}
.pass-head span:last-child{color:var(--red)}
.pass-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px}
.pass-k{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.28em;color:var(--dim);margin-bottom:6px}
.pass-v{display:block;font-family:var(--font-display);font-size:17.5px;letter-spacing:.03em;line-height:1.3;text-transform:uppercase}
.pass-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin-top:22px;padding-top:16px;border-top:1px dashed rgba(255,255,255,.25);
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;color:#c9d1d8}
@media (prefers-reduced-motion: no-preference) and (min-width: 821px){
  .pass-slot{min-height:145vh}
  .pass-card{position:sticky;top:15vh}
}

/* ---- word-fill statement (scroll-scrubbed, Hi Fly style) ---- */
.wordfill{font-family:var(--font-display);font-size:clamp(27px,4.2vw,46px);line-height:1.14;
  letter-spacing:.02em;margin:36px 0 30px;text-transform:uppercase;max-width:16em}
.wordfill .wf-w{color:rgba(255,255,255,.20);transition:color .25s ease}
.wordfill .wf-w.on{color:var(--ink)}

/* ---- charts: stepwise bar reveals ---- */
.chart-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.32em;color:var(--dim);margin-bottom:18px}
.crow{display:grid;grid-template-columns:205px 1fr 86px;align-items:center;gap:14px;margin:13px 0}
.crow-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;color:#c9d1d8}
.crow-track{display:block;height:14px;background:rgba(255,255,255,.08)}
.crow-fill{display:block;height:100%;width:var(--w);background:#e8e8e8;
  transition:width 1.15s cubic-bezier(.2,.7,.2,1) calc(var(--i) * .14s)}
html.mx .crow-fill{width:0}
html.mx .chart.in .crow-fill{width:var(--w)}
.crow-fill.hot{background:var(--red)}
.crow-v{font-family:var(--font-display);font-size:20px;text-align:right}
.chart-src{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;line-height:1.8;color:var(--dim);margin-top:16px}
.chart-take{font-family:var(--font-display);font-size:clamp(19px,2.6vw,27px);color:var(--red);letter-spacing:.02em;margin-top:16px;text-transform:uppercase}
.principle{border-left:3px solid var(--red);background:rgba(0,0,0,.30);padding:24px 26px;margin:34px 0}
.principle-t{font-family:var(--font-display);font-size:clamp(17px,2.2vw,22px);letter-spacing:.02em;margin-bottom:10px;text-transform:uppercase}
.principle p:last-child{margin:0}
.market-chips{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 4px}
.mchip{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;padding:9px 13px;
  border:1px solid rgba(255,255,255,.22);border-radius:4px;color:#eef1f3;transition:border-color .5s ease,box-shadow .5s ease}
.mchip.in{border-color:rgba(240,200,120,.6);box-shadow:0 0 14px rgba(240,200,120,.14)}
/* claimed-markets rebuild (2026-10-05 fix round): the crown piece replaces the map */
.vband-crown{height:135vh}
.vb-stage-crown{background:transparent;display:flex;align-items:center;justify-content:center}
.vb-frame-crown{width:min(860px,94vw)}

/* ---- stacks & cost grid ---- */
.stack{margin:8px 0 6px}
.stackrow{display:flex;justify-content:space-between;align-items:center;gap:16px;
  border:1px solid var(--line);background:rgba(0,0,0,.32);padding:16px 20px;margin:10px 0}
.stack-k{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;color:#c9d1d8}
.stack-v{font-family:var(--font-display);font-size:clamp(22px,3vw,30px)}
.cost-grid{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 26px}
.cost-grid span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;
  border:1px dashed rgba(255,255,255,.28);border-radius:4px;padding:8px 11px;color:#c9d1d8}

/* ---- fold-out groups: children rotate forward, staggered ---- */
.fold{perspective:1000px}
html.mx .fold>*{opacity:0;transform:rotateX(-24deg) translateY(18px);transform-origin:50% 0;
  transition:opacity .65s ease calc(var(--i,0) * 95ms),transform .65s cubic-bezier(.2,.7,.25,1) calc(var(--i,0) * 95ms)}
html.mx .fold.in>*{opacity:1;transform:none}

/* ---- quote panels with a light sweep on entry ---- */
.quote-panel{position:relative;overflow:hidden;border-left:3px solid var(--red);
  background:rgba(0,0,0,.32);padding:28px 30px;margin:34px 0}
.quote-panel::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:24%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.10),transparent);transform:skewX(-14deg)}
.quote-panel.in::after{animation:passSheen 1.3s ease .15s forwards}
.quote-big{font-family:var(--font-display);font-size:clamp(20px,2.8vw,30px);line-height:1.35;letter-spacing:.015em;text-transform:uppercase}
.quote-attr{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;line-height:1.8;color:var(--dim);margin-top:14px;text-transform:none}
.quote-attr .rtag{margin-left:8px}

.big-line{font-family:var(--font-display);font-size:clamp(28px,4.6vw,54px);letter-spacing:.02em;
  line-height:1.05;margin:34px 0 14px;text-transform:uppercase}

/* ---- family exhibits & two-column verdict panels ---- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}
.two-col .mblock{margin:0}
.two-col .ticks{margin-bottom:0}
.two-col .ticks li:last-child{border-bottom:none}

/* ---- credibility loop ---- */
.loop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0}
.loop-step{border:1px solid var(--line);background:rgba(0,0,0,.30);padding:20px}
.loop-step p{font-size:14px;margin:0}
.loop-n{font-family:var(--font-display);font-size:23px;color:var(--red);margin-bottom:8px}
.loop-t{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.26em;color:var(--dim);margin-bottom:10px}
/* ---- the credibility loop: ONE circular graphic, drawn by scroll ---- */
.loop-wrap{display:grid;grid-template-columns:minmax(0,520px) 1fr;gap:clamp(30px,4.5vw,68px);align-items:start;margin:34px 0 8px}
.loop-ringbox{position:sticky;top:11vh}
.loop-svg{width:100%;height:auto;display:block;overflow:visible}
.loop-track{fill:none;stroke:rgba(255,255,255,.13);stroke-width:2}
.loop-arc{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;transform:rotate(-90deg);transform-box:fill-box;transform-origin:center}
.loop-arrow{fill:var(--ink)}
.loop-node circle{fill:#07090d;stroke:rgba(255,255,255,.32);stroke-width:1.5;transition:fill .35s ease,stroke .35s ease}
.loop-node text{fill:var(--dim);font-family:var(--font-display);font-size:19px;text-anchor:middle;dominant-baseline:central;transition:fill .35s ease}
.loop-node.done circle{stroke:rgba(255,255,255,.82)}
.loop-node.done text{fill:var(--ink)}
.loop-node.on circle{fill:var(--ink);stroke:var(--ink)}
.loop-node.on text{fill:#000}
.loop-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none;opacity:.35;transition:opacity .5s ease}
.loop-again-g{font-size:46px;line-height:1;color:var(--dim)}
.loop-again-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim)}
.loop-center.on{opacity:1}
.loop-center.on .loop-again-g,.loop-center.on .loop-again-t{color:var(--ink)}
.loop-steps{border-bottom:1px solid var(--line)}
.loop-step2{display:flex;gap:18px;padding:16px 2px;border-top:1px solid var(--line)}
.loop-step2 .loop-n{margin:0;font-size:21px;line-height:1.2}
.loop-step2-main{flex:1;min-width:0}
.loop-step2 .loop-t{margin-bottom:6px}
.loop-d{font-size:14.5px;line-height:1.55;color:#d7dde3;margin:0}
.loop-step2 .ev-chip{margin-top:11px}
.loop-live .loop-step2{opacity:.34;transition:opacity .45s ease}
.loop-live .loop-step2.done{opacity:.68}
.loop-live .loop-step2.on{opacity:1}
@media (max-width:900px){.loop-wrap{grid-template-columns:1fr}.loop-ringbox{position:relative;top:0;max-width:430px;width:100%;margin:0 auto}}

/* ---- pat art frame ---- */
.art-frame{border:1px dashed rgba(255,255,255,.35);padding:42px 30px;margin:34px 0;text-align:center;background:rgba(0,0,0,.22)}
.art-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.32em;color:var(--red);margin-bottom:16px}
.art-t{font-family:var(--font-display);font-size:clamp(17px,2.3vw,23px);line-height:1.45;max-width:44em;margin:0 auto 14px}
.art-n{font-size:14px;font-weight:400;color:#c9d1d8;max-width:42em;margin:0 auto}

/* ---- responsive: decks & grids unstack cleanly ---- */
@media (max-width: 900px){ .loop-grid{grid-template-columns:1fr 1fr} }
@media (max-width: 820px){
  .two-col{grid-template-columns:1fr}
  .crow{grid-template-columns:1fr 70px;grid-template-rows:auto auto}
  .crow-k{grid-column:1/3}
  .pass-grid{grid-template-columns:1fr}
  .pass-card{padding:22px 20px 18px}
}
@media (max-width: 560px){ .loop-grid{grid-template-columns:1fr} }
@media (prefers-reduced-motion: reduce){
  .pass-card::after,.quote-panel::after{animation:none}
}
/* ================= EVIDENCE LAYER + SOLDIER SCENE (2026-10-02) =================
   Every receipt tag is a door: click opens the record in place. The Soldier
   page is a pinned scene — FIFTEEN YEARS is the opening state and the
   chronology builds underneath it from the receipts themselves. */

/* status system — one language everywhere (dots, pills, chips) */
.st-disputed{--stc:#ff3b30}
.st-strong{--stc:#f2f4f6}
.st-corr{--stc:#8fb8dd}
.st-self{--stc:#ffb02e}
.st-unv{--stc:#77808a}
.st-plan{--stc:#565f68}
.st-analysis{--stc:#9aa4ad}
.ev-dot{width:8px;height:8px;border-radius:50%;background:var(--stc,#9aa4ad);flex:0 0 auto}

/* receipt tags become buttons */
button.rtag{background:rgba(0,0,0,.25);cursor:pointer;font-family:var(--font-mono);
  transition:border-color .2s,background .2s,color .2s}
button.rtag:hover{border-color:var(--ink);background:rgba(255,255,255,.10)}
button.rtag:focus-visible,.ev-chip:focus-visible,.ev-close:focus-visible,
.ev-back:focus-visible,.ev-rel:focus-visible,.ev-cited-btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
@keyframes evFlash{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}50%{box-shadow:0 0 0 3px rgba(255,59,48,.85)}}
.ev-flash{animation:evFlash .55s ease 3}

/* ---- evidence drawer ---- */
.ev-backdrop{position:fixed;inset:0;z-index:130;background:rgba(2,4,6,.68);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .3s ease}
.ev-backdrop.open{opacity:1}
.ev-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:131;
  background:#07090d;border-left:1px solid var(--line);box-shadow:-30px 0 80px rgba(0,0,0,.55);
  transform:translateX(103%);transition:transform .45s cubic-bezier(.7,0,.2,1);
  display:flex;flex-direction:column}
.ev-drawer.open{transform:none}
body.rm .ev-drawer,body.rm .ev-backdrop{transition:none}
.ev-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.ev-id{font-family:var(--font-display);font-size:21px;letter-spacing:.08em}
.ev-status{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;font-weight:600;
  letter-spacing:.16em;padding:4px 9px;border:1px solid var(--stc,#9aa4ad);color:var(--stc,#eef1f3);
  border-radius:3px;white-space:nowrap}
.ev-close{background:transparent;border:1px solid var(--line);color:var(--ink);width:37px;height:37px;
  font-size:21px;line-height:1;cursor:pointer;flex:0 0 auto}
.ev-close:hover{border-color:var(--ink)}
.ev-back{background:transparent;border:1px solid var(--line);color:var(--ink);cursor:pointer;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;padding:9px 12px}
.ev-back:hover{border-color:var(--ink)}
.ev-switch{display:flex;gap:8px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.07)}
.ev-switch button{background:transparent;border:1px solid var(--line);color:var(--dim);cursor:pointer;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;padding:7px 11px}
.ev-switch button[aria-current="true"]{color:var(--ink);border-color:var(--ink)}
.ev-body{overflow-y:auto;padding:24px 22px 64px;overscroll-behavior:contain}
.ev-title{font-family:var(--font-display);font-size:clamp(22px,3vw,29px);line-height:1.18;
  letter-spacing:.015em;margin-bottom:8px;text-transform:uppercase}
.ev-sec{margin-top:26px}
.ev-sec-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.34em;color:var(--dim);
  padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:13px}
.ev-body p{font-size:15px;font-weight:400;line-height:1.75;color:#c9d1d8}
.ev-meta{display:grid;grid-template-columns:118px 1fr;gap:8px 14px;font-size:13.5px}
.ev-meta dt{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.24em;color:var(--dim);padding-top:3px}
.ev-meta dd{font-weight:400;color:#dfe5ea;letter-spacing:.02em;overflow-wrap:anywhere}
.ev-src{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;line-height:1.7;color:#eef1f3;
  background:rgba(255,255,255,.045);border:1px solid var(--line);border-left:3px solid var(--amber);
  padding:14px 16px;overflow-wrap:anywhere}
.ev-ts{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px;align-items:center}
.ev-ts-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.24em;color:var(--dim)}
.ev-ts span{font-family:var(--font-mono);font-size:11px;border:1px solid rgba(255,255,255,.25);
  border-radius:3px;padding:3px 8px;color:#eef1f3}
.ev-quote{font-family:var(--font-display);font-size:19px;line-height:1.4;color:var(--ink);
  border-left:3px solid var(--red);padding:4px 0 4px 18px}
.ev-empty{border:1px dashed rgba(255,255,255,.25);padding:15px 16px;font-size:13.5px;
  font-weight:400;line-height:1.7;color:var(--dim)}
.raw-doc{width:100%;max-width:760px;background:#0c0f13;border:1px solid rgba(255,255,255,.16);
  padding:20px 22px;align-self:flex-start;margin:0 auto}
.raw-doc-tag{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#d8b25c;margin-bottom:14px}
.raw-doc-text{font:400 12.5px/1.75 'JetBrains Mono',monospace;color:#cfd6dd;white-space:pre-wrap;
  word-break:break-word;max-height:62vh;overflow:auto}
.ev-rel{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:rgba(255,255,255,.03);
  border:1px solid var(--line);color:var(--ink);padding:12px 14px;margin-bottom:8px;cursor:pointer}
.ev-rel:hover{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.06)}
.ev-rel-id{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--amber);flex:0 0 auto}
.ev-rel-t{font-size:13.5px;font-weight:400;line-height:1.45;flex:1}
.ev-rel-s{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.14em;color:var(--stc,#9aa4ad);flex:0 0 auto}
.ev-cited-btn{display:inline-block;background:transparent;border:1px solid var(--line);color:#dfe5ea;
  cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;padding:8px 12px;margin:0 8px 8px 0}
.ev-cited-btn:hover{border-color:var(--ink)}
.ev-media-item{margin-bottom:16px}
.ev-media-item img,.ev-media-item video{width:100%;display:block;background:#000}
.ev-media-item audio{width:100%}
.ev-media-cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--dim);margin-top:8px;line-height:1.7}
.ev-zoom{overflow:hidden;position:relative;cursor:zoom-in;background:#000;border:1px solid var(--line)}
.ev-zoom img{transform-origin:0 0;will-change:transform}
.ev-zoom.zoomed{cursor:grab}
.ev-zoom.zoomed:active{cursor:grabbing}
@media (max-width:560px){ .ev-meta{grid-template-columns:96px 1fr} .ev-body{padding:20px 16px 56px} }

/* ---- ledger chips (used by the Soldier scene; reusable) ---- */
.ev-chip{display:grid;grid-template-columns:8px 1fr;column-gap:10px;align-items:center;
  background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--ink);
  padding:11px 14px;cursor:pointer;text-align:left;border-radius:4px}
.ev-chip:hover{border-color:rgba(255,255,255,.45);background:rgba(0,0,0,.5)}
.ev-chip .ev-dot{grid-row:1/3}
.ev-chip-t{font-family:var(--font-display);font-size:13.5px;letter-spacing:.05em;line-height:1.3}
.ev-chip em{font-family:var(--font-mono);font-style:normal;font-size:8.5px;letter-spacing:.15em;color:var(--dim);margin-top:3px}

/* ---- The Soldier: pinned chronology scene ---- */
.soldier-scroll{height:400vh;position:relative;margin-top:6px}
.soldier-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;
  justify-content:center;gap:2.4vh;padding:11vh 0 5vh}
.ss-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.45em;color:var(--dim);margin-bottom:12px}
.ss-claim{font-family:var(--font-display);font-size:clamp(50px,7vw,98px);line-height:.96;
  letter-spacing:.01em;transform-origin:0 0}
.ss-claimsub{font-size:15px;font-weight:400;color:#dfe5ea;margin-top:13px;letter-spacing:.02em}
.ss-claimsub .rtag{margin-left:6px}
.ss-axis{position:relative;height:218px;margin-top:3.2vh}
.ss-track{position:absolute;left:0;right:0;bottom:70px;height:1px;background:rgba(255,255,255,.38)}
.ss-bar{position:absolute;height:26px;display:flex;align-items:center;transform-origin:0 50%}
.ss-bar-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;padding:0 10px;white-space:nowrap}
.ss-bar-ghost{top:0;left:0;width:100%;border:1px dashed rgba(255,255,255,.42);color:var(--dim)}
.ss-bar-claim{top:45px;left:11.8%;width:88.2%;background:linear-gradient(180deg,#f0f2f4,#98a1a9);color:#0a0d10}
.ss-bar-sourced{top:90px;left:41.2%;width:58.8%;background:linear-gradient(180deg,#7e97ad,#52667a);color:#eef4fa}
.ss-gap{position:absolute;top:45px;left:11.8%;width:29.4%;height:26px;transform-origin:0 50%;
  border:1px solid var(--red);
  background:repeating-linear-gradient(45deg,rgba(255,59,48,.55) 0 6px,rgba(255,59,48,.10) 6px 12px)}
.ss-gap-k{position:absolute;top:-18px;left:0;font-family:var(--font-mono);font-size:9px;
  letter-spacing:.26em;color:#ff6f66;white-space:nowrap}
.ss-mark{position:absolute;bottom:0;left:var(--x);width:180px;height:104px;
  transform:translateX(-50%);text-align:center}
.ss-mark.al-l{transform:none;text-align:left}
.ss-mark.al-r{transform:translateX(-100%);text-align:right}
.ss-mark i{display:block;width:9px;height:9px;background:var(--ink);transform:rotate(45deg);
  margin:21px auto 0}
.ss-mark.al-l i{margin-left:0}.ss-mark.al-r i{margin-right:0;margin-left:auto}
.ss-year{display:block;font-family:var(--font-display);font-size:15px;letter-spacing:.06em}
.ss-mlab{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.13em;
  line-height:1.7;color:var(--dim);margin-top:19px}
.ss-mlab .rtag{margin-left:4px}
.ss-gapcount{font-family:var(--font-display);font-size:clamp(16px,2.1vw,23px);
  letter-spacing:.03em;line-height:1.35}
.ss-gapnum{color:var(--red)}
.ss-chips-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.34em;color:var(--dim);margin-bottom:12px}
.ss-chiprow{display:flex;flex-wrap:wrap;gap:9px}
.ss-question{border-top:1px dashed rgba(255,255,255,.28);padding-top:2.2vh}
.ss-q{font-family:var(--font-display);font-size:clamp(25px,3.8vw,42px);line-height:1.08;letter-spacing:.02em}
.ss-pv{font-family:var(--font-display);font-size:clamp(15px,1.9vw,21px);letter-spacing:.14em;
  color:var(--ink);margin-top:10px}
.ss-pv::before{content:"";display:inline-block;width:9px;height:9px;background:var(--red);
  transform:rotate(45deg);margin-right:12px;vertical-align:2px}
@media (max-width:820px){
  .soldier-scroll{height:360vh}
  .soldier-stage{gap:1.8vh;padding-top:9vh}
  .ss-claim{font-size:clamp(40px,11.5vw,58px)}
  .ss-axis{height:196px}
  .ss-bar-k{font-size:8px;letter-spacing:.1em}
  .ss-mark{width:118px}
  .ss-mlab{font-size:7.5px}
  .ss-chiprow .ev-chip{flex:1 1 100%}
}

/* ================= EVIDENCE VIEWER v2 (2026-10-02) ================= */
.ev-drawer{width:min(1100px,100vw)}
.ev-grid{flex:1;display:grid;grid-template-columns:1.12fr .88fr;min-height:0}
.ev-media-pane{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:#050607}
.ev-tabs{display:flex;border-bottom:1px solid var(--line)}
.ev-tabs button{flex:1;background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.16em;padding:11px 8px;cursor:pointer}
.ev-tabs button:last-child{border-right:0}
.ev-tabs button.on{color:var(--paper);background:rgba(255,255,255,.05);box-shadow:inset 0 -2px 0 var(--red)}
.ev-stage{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;min-height:200px}
.ev-zoombar{display:flex;border-top:1px solid var(--line)}
.ev-zoombar button{flex:1;background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.12em;padding:10px;cursor:pointer}
.ev-zoombar button:last-child{border-right:0}
.ev-zoombar button:hover{color:var(--paper)}
.ev-strip{display:flex;gap:8px;margin-top:12px}
.ev-strip button{border:1px solid var(--line);background:none;padding:0;cursor:pointer;width:54px;height:40px;overflow:hidden}
.ev-strip img{width:100%;height:100%;object-fit:cover;display:block}
.ev-rail{overflow-y:auto;padding:22px 22px 30px;min-height:0}
.ev-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:10px 14px;background:#0a0b0d}
.ev-nav-btn{background:none;border:1px solid var(--line);color:var(--paper);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.14em;padding:9px 14px;cursor:pointer}
.ev-nav-btn:hover{border-color:rgba(255,255,255,.4)}
.ev-nav-btn:disabled{opacity:.32;cursor:default}
.ev-pos{font:500 10px 'JetBrains Mono',monospace;color:var(--dim);letter-spacing:.14em}
.ev-defbtn{margin-top:12px;background:none;border:1px dashed rgba(255,255,255,.25);color:var(--dim);font:600 9.5px 'JetBrains Mono',monospace;letter-spacing:.13em;padding:7px 10px;cursor:pointer}
.ev-defbtn:hover{color:var(--paper);border-color:rgba(255,255,255,.5)}
.ev-def{margin-top:10px;border-left:2px solid var(--red);background:rgba(255,255,255,.03);padding:10px 12px;font-size:13.5px;line-height:1.55;color:var(--paper)}
.ev-sourcebox{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.03);padding:14px}
.ev-sourcebtns{display:flex;flex-wrap:wrap;gap:8px}
.ev-sourcebtns button{background:#14161a;border:1px solid rgba(255,255,255,.22);color:var(--paper);font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.1em;padding:10px 13px;cursor:pointer}
.ev-sourcebtns button:hover{border-color:var(--red)}
.ev-rail audio{width:100%;margin-top:4px}
.ev-tip{position:fixed;z-index:200;max-width:292px;background:#101216;border:1px solid rgba(255,255,255,.25);border-top:2px solid var(--red);padding:11px 13px;font-size:12.5px;line-height:1.5;color:var(--paper);box-shadow:0 18px 44px rgba(0,0,0,.6);pointer-events:none}
.ev-tip strong{display:block;font:600 9.5px 'JetBrains Mono',monospace;letter-spacing:.16em;color:var(--red);margin-bottom:5px}

/* Messenger-accurate reconstruction — a reading aid inside a tablet frame */
.chat-frame{width:min(430px,100%);margin:0 auto;border:1px solid rgba(255,255,255,.2);border-radius:26px;background:#0b0c0e;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.chat-head{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--line);font:600 12.5px 'Geist',sans-serif;color:var(--paper)}
.chat-dot{width:30px;height:30px;border-radius:50%;background:linear-gradient(140deg,#3d4654,#171a1f);border:1px solid rgba(255,255,255,.18);flex:none}
.chat-head-r{margin-left:auto;font:600 8.5px 'JetBrains Mono',monospace;letter-spacing:.15em;color:var(--dim)}
.chat-body{padding:18px 14px 8px;display:flex;flex-direction:column;gap:3px}
.chat-row{display:flex;margin:2px 0}
.chat-row.right{justify-content:flex-end}
.chat-bubble{max-width:78%;padding:9px 13px;border-radius:19px;font-size:14.5px;line-height:1.45;background:#232529;color:#e8ebee;border-bottom-left-radius:6px;cursor:pointer;position:relative}
.chat-row.right .chat-bubble{background:#2f6db3;color:#fff;border-radius:19px;border-bottom-right-radius:6px}
.chat-who{display:block;font:600 9px 'JetBrains Mono',monospace;letter-spacing:.12em;opacity:.65;margin-bottom:3px}
.chat-time{display:block;font:500 9px 'JetBrains Mono',monospace;opacity:.55;margin-top:4px;text-align:right}
.chat-row.target .chat-bubble{box-shadow:0 0 0 2px var(--red);font-weight:600}
.chat-note{padding:10px 16px 14px;font:500 8.5px 'JetBrains Mono',monospace;letter-spacing:.13em;color:var(--dim);line-height:1.7}
.ev-peek{position:fixed;z-index:190;background:#0c0d10;border:1px solid rgba(255,255,255,.3);box-shadow:0 26px 60px rgba(0,0,0,.7);padding:6px;pointer-events:none}
.ev-peek img{display:block;width:100%;max-height:62vh;object-fit:contain;background:#000}
.ev-peek span{display:block;padding:7px 4px 3px;font:600 8.5px 'JetBrains Mono',monospace;letter-spacing:.14em;color:var(--dim)}

/* quote control rows — the quote, physically tied to its receipt */
.ev-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}
.ev-ctl{background:#121317;border:1px solid rgba(255,255,255,.22);color:var(--paper);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.12em;padding:9px 13px;cursor:pointer}
.ev-ctl:hover{border-color:var(--red)}
.ev-ctl.raw{border-color:rgba(255,59,48,.55)}
.ev-inline-audio{flex-basis:100%}
.ev-inline-audio audio{width:100%}
.ev-linked{position:relative}

/* ---- card stacks live in the content-motion block above ---- */
.rail-spacer{padding:0;border:0;background:none;min-height:1px}

/* ================= MARKET INFOGRAPHICS (2026-10-02) =================
   Coded graphics living in the page — every visual a different form, every
   form moved by scroll itself. Bars appear exactly once in this section. */
.mkt-slot{position:relative;height:165vh}
.mkt-sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center}
.mkt-panel{border:0;background:transparent;padding:0;width:100%}
.fx{margin:22px 0 10px}
.fx-from{font:400 clamp(22px,3vw,32px) 'Aldrich',sans-serif;color:var(--paper)}
.fx-mult{font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--red);margin:10px 0}
.fx-to{font:400 clamp(38px,6.4vw,64px)/1.05 'Aldrich',sans-serif;color:var(--paper)}
.fx-sub{margin-top:14px;font-size:14.5px;color:var(--dim);line-height:1.6}
@media (max-width:900px){
  .mkt-slot{height:auto;margin:26px 0}
  .mkt-sticky{position:static;height:auto}
}

/* ===== VIDEO BANDS — full-bleed scrubbed data scenes (2026-10-04) ===== */
.vband{grid-column:1/-1;position:relative;height:230vh;width:100vw;margin:44px 0 44px calc((100% - 100vw)/2)}
.vband-in{width:100%;margin-left:0;height:190vh;container-type:inline-size}
.vband-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#000;container-type:inline-size}
.vband-in .vband-stage{height:56.25cqw;top:calc((100svh - 56.25cqw)/2)}
.vb-film,.vb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vb-img{will-change:transform}
.vb-sign{opacity:0;transition:opacity .4s ease}
.vb-sign.on{opacity:1;animation:vbFlick .7s steps(1,end) 1}
@keyframes vbFlick{0%{opacity:0}12%{opacity:1}24%{opacity:.15}40%{opacity:1}55%{opacity:.35}72%,100%{opacity:1}}
.vb-plac{position:absolute;bottom:6%;width:20%;padding:13px 8px 11px;text-align:center;background:linear-gradient(180deg,rgba(10,14,20,.82),rgba(6,8,12,.9));border:1px solid rgba(143,184,221,.35);opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .45s ease}
.vb-plac.on{opacity:1;transform:none;animation:vbFlick .6s steps(1,end) 1}
.vb-plac-v{display:block;font:400 clamp(19px,2.9cqw,46px)/1 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 14px rgba(150,190,255,.45)}
.vb-plac-k{display:block;margin-top:6px;font:600 clamp(8px,.82cqw,11px) 'JetBrains Mono',monospace;letter-spacing:.13em;color:#96aac2}
.vb-side{position:absolute;top:0;bottom:0;width:50%;overflow:hidden}
.vb-side-l{left:0}
.vb-side-r{right:0}
.vb-side .vb-film{width:100cqw;max-width:none}
.vb-side-r .vb-film{left:auto;right:0}
.vb-seam{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:linear-gradient(180deg,transparent,rgba(180,210,255,.55) 30%,rgba(180,210,255,.55) 70%,transparent)}
.vb-tag{position:absolute;top:8%;padding:12px 16px;background:rgba(5,8,13,.55);opacity:0;transition:opacity .5s ease}
.vb-tag-l{left:4%;border-left:2px solid rgba(143,184,221,.55)}
.vb-tag-r{right:4%;text-align:right;border-right:2px solid rgba(255,59,48,.55)}
.vb-tag.on{opacity:1}
.vb-tag-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-tag-v{display:block;margin-top:4px;font:400 clamp(26px,4.2cqw,66px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-board{position:absolute;bottom:9%;padding:14px 18px;background:rgba(5,8,13,.62);border:1px solid rgba(143,184,221,.3);opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.vb-board.on{opacity:1;transform:none}
.vb-board-l{left:5%}
.vb-board-r{right:5%;text-align:right}
.vb-board-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-board-v{display:block;margin-top:4px;font:400 clamp(28px,4.6cqw,72px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-tracks{position:absolute;left:5%;right:5%;bottom:7%;display:flex;flex-direction:column;gap:15px}
.vb-track{display:flex;align-items:center;gap:14px;opacity:0;transition:opacity .5s ease}
.vb-track.on{opacity:1}
.vb-track-k{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.18em;color:#dbe6f2;min-width:106px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
.vb-track-bar{flex:1;height:10px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.vb-track-fill{display:block;height:100%;width:0;background:#8fb8dd}
.vb-track-fill.ph{background:var(--red)}
.vb-track-v{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.13em;color:#f2f7ff;min-width:158px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
@media (max-width:900px){
  .vb-plac{width:22%;padding:9px 4px 8px}
  .vb-plac-k{letter-spacing:.06em}
  .vb-track-k{min-width:82px}
  .vb-track-v{min-width:118px}
}

/* ---- hero pin (2026-10-02): the opening film scrubs inside a pinned stage,
        so the impact lands on screen — not after the hero has scrolled away ---- */
.page.opening{display:block;height:240vh;min-height:0;padding:0}
.hero-sticky{position:sticky;top:0;height:100svh;overflow:hidden}

/* soldier scene: keep the gap-count line clear of the sourced bar at every state */
.ss-gapcount{margin-top:3vh}
.ss-axis{margin-bottom:1vh}

/* ---- The $250K exchange: tablet reconstruction scroll scene ---- */
.tab-scroll{position:relative;height:380vh;margin:6px 0}
.tab-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;overflow:hidden}
.tab-amount{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:400 clamp(90px,17vw,240px)/1 'Aldrich',sans-serif;color:rgba(240,242,244,.13);letter-spacing:.01em;white-space:nowrap;z-index:0;pointer-events:none}
.tab-frame{position:relative;z-index:1;width:min(450px,92vw)}
.chat-date{text-align:center;font:500 9px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--dim);margin:2px 0 10px}
.chat-bubble.typing{display:flex;gap:4px;padding:12px 15px;align-items:center}
.chat-bubble.typing span{width:6px;height:6px;border-radius:50%;background:#9aa3ad;animation:tabdots 1s ease-in-out infinite}
.chat-bubble.typing span:nth-child(2){animation-delay:.15s}
.chat-bubble.typing span:nth-child(3){animation-delay:.3s}
@keyframes tabdots{0%,60%,100%{opacity:.25}30%{opacity:1}}
.tab-typing{display:none}
.tab-live .tab-typing{display:flex}
.tab-cta{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:11px}
.tab-cta-id{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:var(--dim)}
.tab-cta .ev-ctl{font-size:11px;padding:12px 18px}
@media (max-width:900px){
  .tab-scroll{height:auto;margin:26px 0}
  .tab-stage{position:static;height:auto;padding:8px 0}
  .tab-amount{font-size:64px;opacity:.5}
}
@media (prefers-reduced-motion: reduce){ .chat-bubble.typing span{animation:none} }

/* opening pace: the hero's full 10 seconds scrub across the tall opening
   section whose height is set in ONE place — the hero-pin block above
   (240vh). A second .page.opening height rule once sat here at 160vh and
   silently overrode it, strangling the scrub; do not re-add one.
   cineHero keeps its own 440vh span (2026-10-05: extended so the full takeoff plays out on scroll). */
#cineHero{height:220vh}

/* ============ evidence slip: hover-first, full-bleed bottom bar ============ */
#evSlip{position:fixed;left:0;right:0;bottom:0;z-index:900;transform:translateY(108%);transition:transform .38s cubic-bezier(.22,.9,.3,1);background:linear-gradient(180deg,rgba(12,14,18,.94),rgba(6,7,10,.98));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:2px solid #e8b34b;box-shadow:0 -18px 50px rgba(0,0,0,.55)}
#evSlip.on{transform:translateY(0)}
.evs-in{max-width:1240px;margin:0 auto;padding:16px 3vw 18px;display:grid;grid-template-columns:1.45fr 1fr;gap:8px 44px;position:relative}
.evs-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.evs-id{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;color:rgba(244,242,236,.55)}
.evs-status{font-family:"JetBrains Mono",monospace;font-size:10.5px;font-weight:700;letter-spacing:.12em;padding:3px 9px;border:1px solid currentColor}
.evs-status.st-bright{color:#ffb3ba}.evs-status.st-steel{color:var(--steel)}.evs-status.st-amber{color:#e8c47a}.evs-status.st-grey{color:rgba(244,242,236,.55)}.evs-status.st-dim{color:rgba(244,242,236,.75)}
.evs-type{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.14em;color:rgba(244,242,236,.5)}
.evs-title{font-family:Aldrich,sans-serif;font-size:clamp(19px,2.2vw,26px);letter-spacing:.03em;color:var(--paper);margin-top:7px;line-height:1.15}
.evs-excerpt{font-size:16.5px;font-style:italic;color:#ffd9dc;margin-top:6px;line-height:1.4}
.evs-def{font-size:12.5px;line-height:1.5;color:rgba(244,242,236,.66);margin-top:7px;max-width:56ch}
.evs-side{display:flex;flex-direction:column;gap:10px;justify-content:center}
.evs-src{font-family:"JetBrains Mono",monospace;font-size:11px;line-height:1.55;color:rgba(244,242,236,.72)}
.evs-srclab{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--red);margin-bottom:2px}
.evs-actions{display:flex;gap:8px;flex-wrap:wrap}
.evs-actions button{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.1em;padding:8px 12px;background:rgba(255,255,255,.05);color:var(--paper);border:1px solid rgba(255,255,255,.28);cursor:pointer}
.evs-actions button:hover{border-color:var(--red);background:rgba(230,57,70,.14)}
.evs-actions .evs-open{border-color:var(--red);color:#ffb3ba;margin-left:auto}
.evs-rel{display:flex;gap:7px;flex-wrap:wrap}
.evs-relchip{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.08em;padding:5px 9px;background:none;border:1px solid rgba(255,255,255,.22);color:rgba(244,242,236,.8);cursor:pointer}
.evs-relchip.contra{border-color:rgba(230,57,70,.6);color:#ffb3ba}
.evs-x{position:absolute;top:8px;right:12px;background:none;border:0;color:rgba(244,242,236,.55);font-size:22px;line-height:1;cursor:pointer;padding:6px}
.evs-x:hover{color:var(--paper)}
.rtag{transition:background .18s,color .18s,border-color .18s}
.rtag:hover{background:rgba(230,57,70,.2);border-color:var(--red);color:#fff}
.stack-card:hover,.led-row:hover{border-color:rgba(230,57,70,.55)}
@media (max-width:760px){ .evs-in{grid-template-columns:1fr;max-height:52vh;overflow-y:auto} .evs-actions .evs-open{margin-left:0} }
@media (prefers-reduced-motion: reduce){ #evSlip{transition:none} }

/* ============ TYPE DISCIPLINE + SLIP POLISH (2026-10-03, Johnny) ============
   The display face is ALWAYS caps — no exceptions for data-driven titles.
   Verbatim quotes (.ev-quote/.quote-big) keep their written case. */
.art-t,.big-line,.brand,.cd-title,.chapter,.chart-take,.closing,.ctiny,
.ev-chip-t,.ev-id,.evs-title,.hud-beat,.m-title,.principle-t,.ss-claim,
.ss-gapcount,.ss-pv,.ss-q,.ss-year,.fx-from,.fx-to,.wordfill,.cover,
.card-v,.cd-num,.counter,.crow-v,.mblock-v,.pass-v,.stack-v,.loop-n,.chnum
{text-transform:uppercase}
/* slip lighting: a lit top edge + a faint red bloom, deeper contrast below */
#evSlip{background:linear-gradient(180deg,rgba(20,16,20,.96),rgba(6,7,10,.985));
  box-shadow:0 -18px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,90,100,.45),inset 0 14px 34px -18px rgba(230,57,70,.28)}
.evs-def{color:rgba(244,242,236,.82)}
.evs-excerpt{color:#f6ecec}
/* inline audio inside the slip — one panel, press and it plays */
.evs-audio{margin-top:2px}
.evs-audio audio{width:100%;height:40px;display:block}
.evs-actions button.evs-playing{border-color:var(--red);background:rgba(230,57,70,.18);color:#ffb3ba}

/* ============ FULL-THREAD CHAT (2026-10-03): the whole conversation ============ */
.chat-body-thread{max-height:58vh;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
.chat-voice{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;border-style:dashed}
.chat-voice-n{display:block;font-size:8.5px;letter-spacing:.14em;opacity:.65;margin-top:5px}

/* ============ KINETIC HEADLINES (2026-10-03) ============ */
.mx h2.kin{opacity:1;transform:none}
.kin-l{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.kin-l>span{display:block;transform:translateY(112%);transition:transform .95s cubic-bezier(.19,.7,.22,1)}
h2.kin.in .kin-l>span{transform:none}
body.rm .kin-l>span{transform:none;transition:none}

/* ---------- THE PEOPLE: chat vignettes (verified messages, cascade on entry) ---------- */
.vig{max-width:880px;margin:72px auto;padding:0 20px}
.vig-head{margin-bottom:16px}
.vig-k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;color:var(--red);margin:0 0 6px}
.vig-name{font-family:Aldrich,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(30px,4.6vw,46px);line-height:1.02;margin:0 0 8px;color:#f2f4f6}
.vig-angle{margin:0;max-width:58ch;color:#c9ced4;font-size:16.5px;line-height:1.55}
.vig-frame{width:min(620px,100%);margin:0}
.vig-frame + .vig-frame{margin-top:20px}
.vig .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.vig.in .chat-row{opacity:1;transform:none}
/* ---- the co-owner board: five pinned case cards, one row, a breath of wind ---- */
.board{max-width:1180px;margin:64px auto 8px;padding:0 20px;text-align:center}
.board-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:0 0 26px}
.board-row{display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,1.8vw,26px);background:linear-gradient(180deg,#0b0e14,#07090e);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:clamp(18px,3vw,34px) clamp(10px,2vw,26px) clamp(22px,3.4vw,38px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -30px 60px rgba(0,0,0,.45),0 30px 60px rgba(0,0,0,.35)}
.pin-card{margin:0;height:clamp(290px,36vw,430px);opacity:0;transform:translateY(30px) rotate(var(--tilt,0deg));transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*110ms);cursor:pointer}
.pin-card:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:4px}
.board.in .pin-card{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}
.pin-sway{position:relative;display:block;height:100%;transform-origin:50% 3.5%;animation:pinsway 6.4s ease-in-out calc(var(--i,0)*-.9s) infinite alternate}
@keyframes pinsway{from{transform:rotate(-.55deg)}to{transform:rotate(.55deg)}}
.pin-card img{height:100%;width:auto;display:block;filter:drop-shadow(0 16px 20px rgba(0,0,0,.5));transform:perspective(720px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg));transition:transform .25s ease}
.pin-gloss{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 32%,rgba(255,255,255,.17) 47%,rgba(255,255,255,.04) 54%,transparent 66%);background-size:300% 100%;background-position:130% 0;opacity:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.board.in .pin-gloss{animation:glosssweep 1.6s ease calc(.6s + var(--i,0)*.11s) 1 both}
.pin-card:hover .pin-gloss{animation:glosssweep 1.1s ease 1 both}
@keyframes glosssweep{0%{background-position:130% 0;opacity:0}12%{opacity:1}88%{opacity:1}100%{background-position:-40% 0;opacity:0}}
body.rm .pin-sway{animation:none}
body.rm .pin-card{transition:opacity .3s ease}
/* board-live: JS drives the cards from scroll position + pointer (user-driven,
   so it runs under reduced motion too — only the autonomous sway stills) */
.board-live .pin-card{opacity:var(--bo,0);transform:translateY(calc((1 - var(--settle,0))*46px + var(--py,0px))) rotate(calc(var(--tilt,0deg) + var(--swing,0deg)));transition:none}
.vig-flash{animation:vigflash 1.7s ease}
@keyframes vigflash{0%,70%{box-shadow:0 0 0 2px rgba(242,244,246,.9)}100%{box-shadow:0 0 0 2px rgba(242,244,246,0)}}
body.rm .vig-flash{animation:none;box-shadow:0 0 0 2px rgba(242,244,246,.9)}
/* ---- inline full thread: the whole conversation, in the page ---- */
.threadbox{width:min(680px,100%);margin:36px auto 10px;text-align:left}
.tb-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#0b0c0e;border:1px solid rgba(255,255,255,.22);border-radius:14px;color:var(--paper);font:600 11px 'JetBrains Mono',monospace;letter-spacing:.18em;cursor:pointer;transition:border-color .25s ease}
.tb-toggle:hover{border-color:rgba(255,255,255,.5)}
.tb-chev{display:inline-block;transition:transform .35s ease}
.threadbox.open .tb-chev{transform:rotate(180deg)}
.tb-panel{margin-top:16px}
.threadbox .chat-frame{width:min(560px,100%)}
body.rm .tb-chev{transition:none}
/* ---- THE PEOPLE, presented openly: one uniform frame per person,
   stacked in the page flow — no file hidden behind a click. The name
   bar is a jump index; the co-owner cards jump too. ---- */
.people-index{max-width:880px;margin:26px auto 8px;background:rgba(10,13,18,.85);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 14px}
.tp-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tp-person{font-family:"JetBrains Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.13em;color:var(--dim);background:#12151c;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 14px;cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease}
.tp-person:hover{color:var(--paper);border-color:rgba(255,255,255,.4)}
.tp-person.on{color:#0b0c0e;background:var(--paper);border-color:var(--paper)}
.pf-frame{max-width:880px;margin:26px auto 8px;background:linear-gradient(180deg,#11141b,#0a0d12);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:14px;box-shadow:0 40px 80px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.pf-screen{background:#05070a;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:26px clamp(16px,4vw,38px) 30px}
.tp-issue .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.tp-issue.on .chat-row{opacity:1;transform:none}
body.rm .tp-issue .chat-row{transition:none}
.tp-issue + .tp-issue{margin-top:28px}
.pf-screen .vig-frame{width:min(620px,100%)}
.pf-screen .vig-chips{margin-top:20px}
/* THE PEOPLE is a single-column stack inside the two-column page grid:
   every block spans both columns, or the grid seats them side by side
   and they overlap (the board-over-vignettes bug Johnny caught). */
.page.people-page .page-inner>*{grid-column:1/-1}
@media (prefers-reduced-motion:reduce){.pin-sway{animation:none}.pin-gloss{animation:none !important}}
@media (max-width:760px){.board-row{flex-wrap:wrap}.pin-card{height:238px}}
/* ---- the collapse peak: the July 5–6 confrontation, staged ---- */
.peak-scroll{position:relative;height:auto;margin:10px 0 0}
.peak-stage{position:static;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:visible;padding:64px 0 48px}
.peak-kicker{position:static;transform:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);white-space:normal;z-index:3;margin:0 0 24px;text-align:center}
.peak-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 3vw;z-index:1}
.peak-backline{font-family:var(--font-display);font-size:clamp(46px,8.8vw,126px);line-height:.98;text-transform:uppercase;margin:0;color:rgba(255,59,48,0);-webkit-text-stroke:1.5px rgba(242,244,246,.15);transform:scale(.965)}
.peak-attr{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:22px 0 0;opacity:0}

/* ---- boarding-pass cards: scrub in, hold, scrub away (sticky slot) ---- */
.pass-slot{margin:38px 0}
.pass-card{position:relative;max-width:640px;margin:0 auto;overflow:hidden;
  background:linear-gradient(155deg,rgba(18,22,29,.94),rgba(9,11,15,.96));
  border:1px solid rgba(255,255,255,.17);border-radius:14px;padding:26px 28px 22px;
  box-shadow:0 30px 70px rgba(0,0,0,.45);will-change:transform,opacity}
.pass-card::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:26%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);transform:skewX(-14deg)}
.pass-card.in::after{animation:passSheen 1.3s ease .15s forwards}
@keyframes passSheen{to{left:112%}}
.pass-head{display:flex;justify-content:space-between;gap:16px;font-family:var(--font-mono);
  font-size:10.5px;letter-spacing:.3em;color:var(--dim);margin-bottom:20px}
.pass-head span:last-child{color:var(--red)}
.pass-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px}
.pass-k{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.28em;color:var(--dim);margin-bottom:6px}
.pass-v{display:block;font-family:var(--font-display);font-size:17.5px;letter-spacing:.03em;line-height:1.3;text-transform:uppercase}
.pass-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin-top:22px;padding-top:16px;border-top:1px dashed rgba(255,255,255,.25);
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;color:#c9d1d8}
@media (prefers-reduced-motion: no-preference) and (min-width: 821px){
  .pass-slot{min-height:145vh}
  .pass-card{position:sticky;top:15vh}
}

/* ---- word-fill statement (scroll-scrubbed, Hi Fly style) ---- */
.wordfill{font-family:var(--font-display);font-size:clamp(27px,4.2vw,46px);line-height:1.14;
  letter-spacing:.02em;margin:36px 0 30px;text-transform:uppercase;max-width:16em}
.wordfill .wf-w{color:rgba(255,255,255,.20);transition:color .25s ease}
.wordfill .wf-w.on{color:var(--ink)}

/* ---- charts: stepwise bar reveals ---- */
.chart-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.32em;color:var(--dim);margin-bottom:18px}
.crow{display:grid;grid-template-columns:205px 1fr 86px;align-items:center;gap:14px;margin:13px 0}
.crow-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;color:#c9d1d8}
.crow-track{display:block;height:14px;background:rgba(255,255,255,.08)}
.crow-fill{display:block;height:100%;width:var(--w);background:#e8e8e8;
  transition:width 1.15s cubic-bezier(.2,.7,.2,1) calc(var(--i) * .14s)}
html.mx .crow-fill{width:0}
html.mx .chart.in .crow-fill{width:var(--w)}
.crow-fill.hot{background:var(--red)}
.crow-v{font-family:var(--font-display);font-size:20px;text-align:right}
.chart-src{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;line-height:1.8;color:var(--dim);margin-top:16px}
.chart-take{font-family:var(--font-display);font-size:clamp(19px,2.6vw,27px);color:var(--red);letter-spacing:.02em;margin-top:16px;text-transform:uppercase}
.principle{border-left:3px solid var(--red);background:rgba(0,0,0,.30);padding:24px 26px;margin:34px 0}
.principle-t{font-family:var(--font-display);font-size:clamp(17px,2.2vw,22px);letter-spacing:.02em;margin-bottom:10px;text-transform:uppercase}
.principle p:last-child{margin:0}
.market-chips{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 4px}
.mchip{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;padding:9px 13px;
  border:1px solid rgba(255,255,255,.22);border-radius:4px;color:#eef1f3;transition:border-color .5s ease,box-shadow .5s ease}
.mchip.in{border-color:rgba(240,200,120,.6);box-shadow:0 0 14px rgba(240,200,120,.14)}
/* claimed-markets rebuild (2026-10-05 fix round): the crown piece replaces the map */
.vband-crown{height:135vh}
.vb-stage-crown{background:transparent;display:flex;align-items:center;justify-content:center}
.vb-frame-crown{width:min(860px,94vw)}

/* ---- stacks & cost grid ---- */
.stack{margin:8px 0 6px}
.stackrow{display:flex;justify-content:space-between;align-items:center;gap:16px;
  border:1px solid var(--line);background:rgba(0,0,0,.32);padding:16px 20px;margin:10px 0}
.stack-k{font-family:var(--font-mono);font-size:12px;letter-spacing:.2em;color:#c9d1d8}
.stack-v{font-family:var(--font-display);font-size:clamp(22px,3vw,30px)}
.cost-grid{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 26px}
.cost-grid span{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;
  border:1px dashed rgba(255,255,255,.28);border-radius:4px;padding:8px 11px;color:#c9d1d8}

/* ---- fold-out groups: children rotate forward, staggered ---- */
.fold{perspective:1000px}
html.mx .fold>*{opacity:0;transform:rotateX(-24deg) translateY(18px);transform-origin:50% 0;
  transition:opacity .65s ease calc(var(--i,0) * 95ms),transform .65s cubic-bezier(.2,.7,.25,1) calc(var(--i,0) * 95ms)}
html.mx .fold.in>*{opacity:1;transform:none}

/* ---- quote panels with a light sweep on entry ---- */
.quote-panel{position:relative;overflow:hidden;border-left:3px solid var(--red);
  background:rgba(0,0,0,.32);padding:28px 30px;margin:34px 0}
.quote-panel::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:24%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.10),transparent);transform:skewX(-14deg)}
.quote-panel.in::after{animation:passSheen 1.3s ease .15s forwards}
.quote-big{font-family:var(--font-display);font-size:clamp(20px,2.8vw,30px);line-height:1.35;letter-spacing:.015em;text-transform:uppercase}
.quote-attr{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;line-height:1.8;color:var(--dim);margin-top:14px;text-transform:none}
.quote-attr .rtag{margin-left:8px}

.big-line{font-family:var(--font-display);font-size:clamp(28px,4.6vw,54px);letter-spacing:.02em;
  line-height:1.05;margin:34px 0 14px;text-transform:uppercase}

/* ---- family exhibits & two-column verdict panels ---- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}
.two-col .mblock{margin:0}
.two-col .ticks{margin-bottom:0}
.two-col .ticks li:last-child{border-bottom:none}

/* ---- credibility loop ---- */
.loop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0}
.loop-step{border:1px solid var(--line);background:rgba(0,0,0,.30);padding:20px}
.loop-step p{font-size:14px;margin:0}
.loop-n{font-family:var(--font-display);font-size:23px;color:var(--red);margin-bottom:8px}
.loop-t{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.26em;color:var(--dim);margin-bottom:10px}
/* ---- the credibility loop: ONE circular graphic, drawn by scroll ---- */
.loop-wrap{display:grid;grid-template-columns:minmax(0,520px) 1fr;gap:clamp(30px,4.5vw,68px);align-items:start;margin:34px 0 8px}
.loop-ringbox{position:sticky;top:11vh}
.loop-svg{width:100%;height:auto;display:block;overflow:visible}
.loop-track{fill:none;stroke:rgba(255,255,255,.13);stroke-width:2}
.loop-arc{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;transform:rotate(-90deg);transform-box:fill-box;transform-origin:center}
.loop-arrow{fill:var(--ink)}
.loop-node circle{fill:#07090d;stroke:rgba(255,255,255,.32);stroke-width:1.5;transition:fill .35s ease,stroke .35s ease}
.loop-node text{fill:var(--dim);font-family:var(--font-display);font-size:19px;text-anchor:middle;dominant-baseline:central;transition:fill .35s ease}
.loop-node.done circle{stroke:rgba(255,255,255,.82)}
.loop-node.done text{fill:var(--ink)}
.loop-node.on circle{fill:var(--ink);stroke:var(--ink)}
.loop-node.on text{fill:#000}
.loop-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none;opacity:.35;transition:opacity .5s ease}
.loop-again-g{font-size:46px;line-height:1;color:var(--dim)}
.loop-again-t{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim)}
.loop-center.on{opacity:1}
.loop-center.on .loop-again-g,.loop-center.on .loop-again-t{color:var(--ink)}
.loop-steps{border-bottom:1px solid var(--line)}
.loop-step2{display:flex;gap:18px;padding:16px 2px;border-top:1px solid var(--line)}
.loop-step2 .loop-n{margin:0;font-size:21px;line-height:1.2}
.loop-step2-main{flex:1;min-width:0}
.loop-step2 .loop-t{margin-bottom:6px}
.loop-d{font-size:14.5px;line-height:1.55;color:#d7dde3;margin:0}
.loop-step2 .ev-chip{margin-top:11px}
.loop-live .loop-step2{opacity:.34;transition:opacity .45s ease}
.loop-live .loop-step2.done{opacity:.68}
.loop-live .loop-step2.on{opacity:1}
@media (max-width:900px){.loop-wrap{grid-template-columns:1fr}.loop-ringbox{position:relative;top:0;max-width:430px;width:100%;margin:0 auto}}

/* ---- pat art frame ---- */
.art-frame{border:1px dashed rgba(255,255,255,.35);padding:42px 30px;margin:34px 0;text-align:center;background:rgba(0,0,0,.22)}
.art-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.32em;color:var(--red);margin-bottom:16px}
.art-t{font-family:var(--font-display);font-size:clamp(17px,2.3vw,23px);line-height:1.45;max-width:44em;margin:0 auto 14px}
.art-n{font-size:14px;font-weight:400;color:#c9d1d8;max-width:42em;margin:0 auto}

/* ---- responsive: decks & grids unstack cleanly ---- */
@media (max-width: 900px){ .loop-grid{grid-template-columns:1fr 1fr} }
@media (max-width: 820px){
  .two-col{grid-template-columns:1fr}
  .crow{grid-template-columns:1fr 70px;grid-template-rows:auto auto}
  .crow-k{grid-column:1/3}
  .pass-grid{grid-template-columns:1fr}
  .pass-card{padding:22px 20px 18px}
}
@media (max-width: 560px){ .loop-grid{grid-template-columns:1fr} }
@media (prefers-reduced-motion: reduce){
  .pass-card::after,.quote-panel::after{animation:none}
}
/* ================= EVIDENCE LAYER + SOLDIER SCENE (2026-10-02) =================
   Every receipt tag is a door: click opens the record in place. The Soldier
   page is a pinned scene — FIFTEEN YEARS is the opening state and the
   chronology builds underneath it from the receipts themselves. */

/* status system — one language everywhere (dots, pills, chips) */
.st-disputed{--stc:#ff3b30}
.st-strong{--stc:#f2f4f6}
.st-corr{--stc:#8fb8dd}
.st-self{--stc:#ffb02e}
.st-unv{--stc:#77808a}
.st-plan{--stc:#565f68}
.st-analysis{--stc:#9aa4ad}
.ev-dot{width:8px;height:8px;border-radius:50%;background:var(--stc,#9aa4ad);flex:0 0 auto}

/* receipt tags become buttons */
button.rtag{background:rgba(0,0,0,.25);cursor:pointer;font-family:var(--font-mono);
  transition:border-color .2s,background .2s,color .2s}
button.rtag:hover{border-color:var(--ink);background:rgba(255,255,255,.10)}
button.rtag:focus-visible,.ev-chip:focus-visible,.ev-close:focus-visible,
.ev-back:focus-visible,.ev-rel:focus-visible,.ev-cited-btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
@keyframes evFlash{0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,0)}50%{box-shadow:0 0 0 3px rgba(255,59,48,.85)}}
.ev-flash{animation:evFlash .55s ease 3}

/* ---- evidence drawer ---- */
.ev-backdrop{position:fixed;inset:0;z-index:130;background:rgba(2,4,6,.68);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .3s ease}
.ev-backdrop.open{opacity:1}
.ev-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:131;
  background:#07090d;border-left:1px solid var(--line);box-shadow:-30px 0 80px rgba(0,0,0,.55);
  transform:translateX(103%);transition:transform .45s cubic-bezier(.7,0,.2,1);
  display:flex;flex-direction:column}
.ev-drawer.open{transform:none}
body.rm .ev-drawer,body.rm .ev-backdrop{transition:none}
.ev-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.ev-id{font-family:var(--font-display);font-size:21px;letter-spacing:.08em}
.ev-status{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;font-weight:600;
  letter-spacing:.16em;padding:4px 9px;border:1px solid var(--stc,#9aa4ad);color:var(--stc,#eef1f3);
  border-radius:3px;white-space:nowrap}
.ev-close{background:transparent;border:1px solid var(--line);color:var(--ink);width:37px;height:37px;
  font-size:21px;line-height:1;cursor:pointer;flex:0 0 auto}
.ev-close:hover{border-color:var(--ink)}
.ev-back{background:transparent;border:1px solid var(--line);color:var(--ink);cursor:pointer;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.22em;padding:9px 12px}
.ev-back:hover{border-color:var(--ink)}
.ev-switch{display:flex;gap:8px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.07)}
.ev-switch button{background:transparent;border:1px solid var(--line);color:var(--dim);cursor:pointer;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;padding:7px 11px}
.ev-switch button[aria-current="true"]{color:var(--ink);border-color:var(--ink)}
.ev-body{overflow-y:auto;padding:24px 22px 64px;overscroll-behavior:contain}
.ev-title{font-family:var(--font-display);font-size:clamp(22px,3vw,29px);line-height:1.18;
  letter-spacing:.015em;margin-bottom:8px;text-transform:uppercase}
.ev-sec{margin-top:26px}
.ev-sec-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.34em;color:var(--dim);
  padding-bottom:9px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:13px}
.ev-body p{font-size:15px;font-weight:400;line-height:1.75;color:#c9d1d8}
.ev-meta{display:grid;grid-template-columns:118px 1fr;gap:8px 14px;font-size:13.5px}
.ev-meta dt{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.24em;color:var(--dim);padding-top:3px}
.ev-meta dd{font-weight:400;color:#dfe5ea;letter-spacing:.02em;overflow-wrap:anywhere}
.ev-src{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;line-height:1.7;color:#eef1f3;
  background:rgba(255,255,255,.045);border:1px solid var(--line);border-left:3px solid var(--amber);
  padding:14px 16px;overflow-wrap:anywhere}
.ev-ts{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px;align-items:center}
.ev-ts-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.24em;color:var(--dim)}
.ev-ts span{font-family:var(--font-mono);font-size:11px;border:1px solid rgba(255,255,255,.25);
  border-radius:3px;padding:3px 8px;color:#eef1f3}
.ev-quote{font-family:var(--font-display);font-size:19px;line-height:1.4;color:var(--ink);
  border-left:3px solid var(--red);padding:4px 0 4px 18px}
.ev-empty{border:1px dashed rgba(255,255,255,.25);padding:15px 16px;font-size:13.5px;
  font-weight:400;line-height:1.7;color:var(--dim)}
.raw-doc{width:100%;max-width:760px;background:#0c0f13;border:1px solid rgba(255,255,255,.16);
  padding:20px 22px;align-self:flex-start;margin:0 auto}
.raw-doc-tag{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#d8b25c;margin-bottom:14px}
.raw-doc-text{font:400 12.5px/1.75 'JetBrains Mono',monospace;color:#cfd6dd;white-space:pre-wrap;
  word-break:break-word;max-height:62vh;overflow:auto}
.ev-rel{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:rgba(255,255,255,.03);
  border:1px solid var(--line);color:var(--ink);padding:12px 14px;margin-bottom:8px;cursor:pointer}
.ev-rel:hover{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.06)}
.ev-rel-id{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--amber);flex:0 0 auto}
.ev-rel-t{font-size:13.5px;font-weight:400;line-height:1.45;flex:1}
.ev-rel-s{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.14em;color:var(--stc,#9aa4ad);flex:0 0 auto}
.ev-cited-btn{display:inline-block;background:transparent;border:1px solid var(--line);color:#dfe5ea;
  cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;padding:8px 12px;margin:0 8px 8px 0}
.ev-cited-btn:hover{border-color:var(--ink)}
.ev-media-item{margin-bottom:16px}
.ev-media-item img,.ev-media-item video{width:100%;display:block;background:#000}
.ev-media-item audio{width:100%}
.ev-media-cap{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--dim);margin-top:8px;line-height:1.7}
.ev-zoom{overflow:hidden;position:relative;cursor:zoom-in;background:#000;border:1px solid var(--line)}
.ev-zoom img{transform-origin:0 0;will-change:transform}
.ev-zoom.zoomed{cursor:grab}
.ev-zoom.zoomed:active{cursor:grabbing}
@media (max-width:560px){ .ev-meta{grid-template-columns:96px 1fr} .ev-body{padding:20px 16px 56px} }

/* ---- ledger chips (used by the Soldier scene; reusable) ---- */
.ev-chip{display:grid;grid-template-columns:8px 1fr;column-gap:10px;align-items:center;
  background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--ink);
  padding:11px 14px;cursor:pointer;text-align:left;border-radius:4px}
.ev-chip:hover{border-color:rgba(255,255,255,.45);background:rgba(0,0,0,.5)}
.ev-chip .ev-dot{grid-row:1/3}
.ev-chip-t{font-family:var(--font-display);font-size:13.5px;letter-spacing:.05em;line-height:1.3}
.ev-chip em{font-family:var(--font-mono);font-style:normal;font-size:8.5px;letter-spacing:.15em;color:var(--dim);margin-top:3px}

/* ---- The Soldier: pinned chronology scene ---- */
.soldier-scroll{height:400vh;position:relative;margin-top:6px}
.soldier-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;
  justify-content:center;gap:2.4vh;padding:11vh 0 5vh}
.ss-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.45em;color:var(--dim);margin-bottom:12px}
.ss-claim{font-family:var(--font-display);font-size:clamp(50px,7vw,98px);line-height:.96;
  letter-spacing:.01em;transform-origin:0 0}
.ss-claimsub{font-size:15px;font-weight:400;color:#dfe5ea;margin-top:13px;letter-spacing:.02em}
.ss-claimsub .rtag{margin-left:6px}
.ss-axis{position:relative;height:218px;margin-top:3.2vh}
.ss-track{position:absolute;left:0;right:0;bottom:70px;height:1px;background:rgba(255,255,255,.38)}
.ss-bar{position:absolute;height:26px;display:flex;align-items:center;transform-origin:0 50%}
.ss-bar-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;padding:0 10px;white-space:nowrap}
.ss-bar-ghost{top:0;left:0;width:100%;border:1px dashed rgba(255,255,255,.42);color:var(--dim)}
.ss-bar-claim{top:45px;left:11.8%;width:88.2%;background:linear-gradient(180deg,#f0f2f4,#98a1a9);color:#0a0d10}
.ss-bar-sourced{top:90px;left:41.2%;width:58.8%;background:linear-gradient(180deg,#7e97ad,#52667a);color:#eef4fa}
.ss-gap{position:absolute;top:45px;left:11.8%;width:29.4%;height:26px;transform-origin:0 50%;
  border:1px solid var(--red);
  background:repeating-linear-gradient(45deg,rgba(255,59,48,.55) 0 6px,rgba(255,59,48,.10) 6px 12px)}
.ss-gap-k{position:absolute;top:-18px;left:0;font-family:var(--font-mono);font-size:9px;
  letter-spacing:.26em;color:#ff6f66;white-space:nowrap}
.ss-mark{position:absolute;bottom:0;left:var(--x);width:180px;height:104px;
  transform:translateX(-50%);text-align:center}
.ss-mark.al-l{transform:none;text-align:left}
.ss-mark.al-r{transform:translateX(-100%);text-align:right}
.ss-mark i{display:block;width:9px;height:9px;background:var(--ink);transform:rotate(45deg);
  margin:21px auto 0}
.ss-mark.al-l i{margin-left:0}.ss-mark.al-r i{margin-right:0;margin-left:auto}
.ss-year{display:block;font-family:var(--font-display);font-size:15px;letter-spacing:.06em}
.ss-mlab{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.13em;
  line-height:1.7;color:var(--dim);margin-top:19px}
.ss-mlab .rtag{margin-left:4px}
.ss-gapcount{font-family:var(--font-display);font-size:clamp(16px,2.1vw,23px);
  letter-spacing:.03em;line-height:1.35}
.ss-gapnum{color:var(--red)}
.ss-chips-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.34em;color:var(--dim);margin-bottom:12px}
.ss-chiprow{display:flex;flex-wrap:wrap;gap:9px}
.ss-question{border-top:1px dashed rgba(255,255,255,.28);padding-top:2.2vh}
.ss-q{font-family:var(--font-display);font-size:clamp(25px,3.8vw,42px);line-height:1.08;letter-spacing:.02em}
.ss-pv{font-family:var(--font-display);font-size:clamp(15px,1.9vw,21px);letter-spacing:.14em;
  color:var(--ink);margin-top:10px}
.ss-pv::before{content:"";display:inline-block;width:9px;height:9px;background:var(--red);
  transform:rotate(45deg);margin-right:12px;vertical-align:2px}
@media (max-width:820px){
  .soldier-scroll{height:360vh}
  .soldier-stage{gap:1.8vh;padding-top:9vh}
  .ss-claim{font-size:clamp(40px,11.5vw,58px)}
  .ss-axis{height:196px}
  .ss-bar-k{font-size:8px;letter-spacing:.1em}
  .ss-mark{width:118px}
  .ss-mlab{font-size:7.5px}
  .ss-chiprow .ev-chip{flex:1 1 100%}
}

/* ================= EVIDENCE VIEWER v2 (2026-10-02) ================= */
.ev-drawer{width:min(1100px,100vw)}
.ev-grid{flex:1;display:grid;grid-template-columns:1.12fr .88fr;min-height:0}
.ev-media-pane{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:#050607}
.ev-tabs{display:flex;border-bottom:1px solid var(--line)}
.ev-tabs button{flex:1;background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.16em;padding:11px 8px;cursor:pointer}
.ev-tabs button:last-child{border-right:0}
.ev-tabs button.on{color:var(--paper);background:rgba(255,255,255,.05);box-shadow:inset 0 -2px 0 var(--red)}
.ev-stage{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;min-height:200px}
.ev-zoombar{display:flex;border-top:1px solid var(--line)}
.ev-zoombar button{flex:1;background:none;border:0;border-right:1px solid var(--line);color:var(--dim);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.12em;padding:10px;cursor:pointer}
.ev-zoombar button:last-child{border-right:0}
.ev-zoombar button:hover{color:var(--paper)}
.ev-strip{display:flex;gap:8px;margin-top:12px}
.ev-strip button{border:1px solid var(--line);background:none;padding:0;cursor:pointer;width:54px;height:40px;overflow:hidden}
.ev-strip img{width:100%;height:100%;object-fit:cover;display:block}
.ev-rail{overflow-y:auto;padding:22px 22px 30px;min-height:0}
.ev-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:10px 14px;background:#0a0b0d}
.ev-nav-btn{background:none;border:1px solid var(--line);color:var(--paper);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.14em;padding:9px 14px;cursor:pointer}
.ev-nav-btn:hover{border-color:rgba(255,255,255,.4)}
.ev-nav-btn:disabled{opacity:.32;cursor:default}
.ev-pos{font:500 10px 'JetBrains Mono',monospace;color:var(--dim);letter-spacing:.14em}
.ev-defbtn{margin-top:12px;background:none;border:1px dashed rgba(255,255,255,.25);color:var(--dim);font:600 9.5px 'JetBrains Mono',monospace;letter-spacing:.13em;padding:7px 10px;cursor:pointer}
.ev-defbtn:hover{color:var(--paper);border-color:rgba(255,255,255,.5)}
.ev-def{margin-top:10px;border-left:2px solid var(--red);background:rgba(255,255,255,.03);padding:10px 12px;font-size:13.5px;line-height:1.55;color:var(--paper)}
.ev-sourcebox{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.03);padding:14px}
.ev-sourcebtns{display:flex;flex-wrap:wrap;gap:8px}
.ev-sourcebtns button{background:#14161a;border:1px solid rgba(255,255,255,.22);color:var(--paper);font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.1em;padding:10px 13px;cursor:pointer}
.ev-sourcebtns button:hover{border-color:var(--red)}
.ev-rail audio{width:100%;margin-top:4px}
.ev-tip{position:fixed;z-index:200;max-width:292px;background:#101216;border:1px solid rgba(255,255,255,.25);border-top:2px solid var(--red);padding:11px 13px;font-size:12.5px;line-height:1.5;color:var(--paper);box-shadow:0 18px 44px rgba(0,0,0,.6);pointer-events:none}
.ev-tip strong{display:block;font:600 9.5px 'JetBrains Mono',monospace;letter-spacing:.16em;color:var(--red);margin-bottom:5px}

/* Messenger-accurate reconstruction — a reading aid inside a tablet frame */
.chat-frame{width:min(430px,100%);margin:0 auto;border:1px solid rgba(255,255,255,.2);border-radius:26px;background:#0b0c0e;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.chat-head{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--line);font:600 12.5px 'Geist',sans-serif;color:var(--paper)}
.chat-dot{width:30px;height:30px;border-radius:50%;background:linear-gradient(140deg,#3d4654,#171a1f);border:1px solid rgba(255,255,255,.18);flex:none}
.chat-head-r{margin-left:auto;font:600 8.5px 'JetBrains Mono',monospace;letter-spacing:.15em;color:var(--dim)}
.chat-body{padding:18px 14px 8px;display:flex;flex-direction:column;gap:3px}
.chat-row{display:flex;margin:2px 0}
.chat-row.right{justify-content:flex-end}
.chat-bubble{max-width:78%;padding:9px 13px;border-radius:19px;font-size:14.5px;line-height:1.45;background:#232529;color:#e8ebee;border-bottom-left-radius:6px;cursor:pointer;position:relative}
.chat-row.right .chat-bubble{background:#2f6db3;color:#fff;border-radius:19px;border-bottom-right-radius:6px}
.chat-who{display:block;font:600 9px 'JetBrains Mono',monospace;letter-spacing:.12em;opacity:.65;margin-bottom:3px}
.chat-time{display:block;font:500 9px 'JetBrains Mono',monospace;opacity:.55;margin-top:4px;text-align:right}
.chat-row.target .chat-bubble{box-shadow:0 0 0 2px var(--red);font-weight:600}
.chat-note{padding:10px 16px 14px;font:500 8.5px 'JetBrains Mono',monospace;letter-spacing:.13em;color:var(--dim);line-height:1.7}
.ev-peek{position:fixed;z-index:190;background:#0c0d10;border:1px solid rgba(255,255,255,.3);box-shadow:0 26px 60px rgba(0,0,0,.7);padding:6px;pointer-events:none}
.ev-peek img{display:block;width:100%;max-height:62vh;object-fit:contain;background:#000}
.ev-peek span{display:block;padding:7px 4px 3px;font:600 8.5px 'JetBrains Mono',monospace;letter-spacing:.14em;color:var(--dim)}

/* quote control rows — the quote, physically tied to its receipt */
.ev-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}
.ev-ctl{background:#121317;border:1px solid rgba(255,255,255,.22);color:var(--paper);font:600 10px 'JetBrains Mono',monospace;letter-spacing:.12em;padding:9px 13px;cursor:pointer}
.ev-ctl:hover{border-color:var(--red)}
.ev-ctl.raw{border-color:rgba(255,59,48,.55)}
.ev-inline-audio{flex-basis:100%}
.ev-inline-audio audio{width:100%}
.ev-linked{position:relative}

/* ---- card stacks live in the content-motion block above ---- */
.rail-spacer{padding:0;border:0;background:none;min-height:1px}

/* ================= MARKET INFOGRAPHICS (2026-10-02) =================
   Coded graphics living in the page — every visual a different form, every
   form moved by scroll itself. Bars appear exactly once in this section. */
.mkt-slot{position:relative;height:165vh}
.mkt-sticky{position:sticky;top:0;height:100svh;display:flex;align-items:center}
.mkt-panel{border:0;background:transparent;padding:0;width:100%}
.fx{margin:22px 0 10px}
.fx-from{font:400 clamp(22px,3vw,32px) 'Aldrich',sans-serif;color:var(--paper)}
.fx-mult{font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--red);margin:10px 0}
.fx-to{font:400 clamp(38px,6.4vw,64px)/1.05 'Aldrich',sans-serif;color:var(--paper)}
.fx-sub{margin-top:14px;font-size:14.5px;color:var(--dim);line-height:1.6}
@media (max-width:900px){
  .mkt-slot{height:auto;margin:26px 0}
  .mkt-sticky{position:static;height:auto}
}

/* ===== VIDEO BANDS — full-bleed scrubbed data scenes (2026-10-04) ===== */
.vband{grid-column:1/-1;position:relative;height:230vh;width:100vw;margin:44px 0 44px calc((100% - 100vw)/2)}
.vband-in{width:100%;margin-left:0;height:190vh;container-type:inline-size}
.vband-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#000;container-type:inline-size}
.vband-in .vband-stage{height:56.25cqw;top:calc((100svh - 56.25cqw)/2)}
.vb-film,.vb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vb-img{will-change:transform}
.vb-sign{opacity:0;transition:opacity .4s ease}
.vb-sign.on{opacity:1;animation:vbFlick .7s steps(1,end) 1}
@keyframes vbFlick{0%{opacity:0}12%{opacity:1}24%{opacity:.15}40%{opacity:1}55%{opacity:.35}72%,100%{opacity:1}}
.vb-plac{position:absolute;bottom:6%;width:20%;padding:13px 8px 11px;text-align:center;background:linear-gradient(180deg,rgba(10,14,20,.82),rgba(6,8,12,.9));border:1px solid rgba(143,184,221,.35);opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .45s ease}
.vb-plac.on{opacity:1;transform:none;animation:vbFlick .6s steps(1,end) 1}
.vb-plac-v{display:block;font:400 clamp(19px,2.9cqw,46px)/1 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 14px rgba(150,190,255,.45)}
.vb-plac-k{display:block;margin-top:6px;font:600 clamp(8px,.82cqw,11px) 'JetBrains Mono',monospace;letter-spacing:.13em;color:#96aac2}
.vb-side{position:absolute;top:0;bottom:0;width:50%;overflow:hidden}
.vb-side-l{left:0}
.vb-side-r{right:0}
.vb-side .vb-film{width:100cqw;max-width:none}
.vb-side-r .vb-film{left:auto;right:0}
.vb-seam{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:linear-gradient(180deg,transparent,rgba(180,210,255,.55) 30%,rgba(180,210,255,.55) 70%,transparent)}
.vb-tag{position:absolute;top:8%;padding:12px 16px;background:rgba(5,8,13,.55);opacity:0;transition:opacity .5s ease}
.vb-tag-l{left:4%;border-left:2px solid rgba(143,184,221,.55)}
.vb-tag-r{right:4%;text-align:right;border-right:2px solid rgba(255,59,48,.55)}
.vb-tag.on{opacity:1}
.vb-tag-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-tag-v{display:block;margin-top:4px;font:400 clamp(26px,4.2cqw,66px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-board{position:absolute;bottom:9%;padding:14px 18px;background:rgba(5,8,13,.62);border:1px solid rgba(143,184,221,.3);opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.vb-board.on{opacity:1;transform:none}
.vb-board-l{left:5%}
.vb-board-r{right:5%;text-align:right}
.vb-board-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-board-v{display:block;margin-top:4px;font:400 clamp(28px,4.6cqw,72px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-tracks{position:absolute;left:5%;right:5%;bottom:7%;display:flex;flex-direction:column;gap:15px}
.vb-track{display:flex;align-items:center;gap:14px;opacity:0;transition:opacity .5s ease}
.vb-track.on{opacity:1}
.vb-track-k{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.18em;color:#dbe6f2;min-width:106px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
.vb-track-bar{flex:1;height:10px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.vb-track-fill{display:block;height:100%;width:0;background:#8fb8dd}
.vb-track-fill.ph{background:var(--red)}
.vb-track-v{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.13em;color:#f2f7ff;min-width:158px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
@media (max-width:900px){
  .vb-plac{width:22%;padding:9px 4px 8px}
  .vb-plac-k{letter-spacing:.06em}
  .vb-track-k{min-width:82px}
  .vb-track-v{min-width:118px}
}

/* ---- hero pin (2026-10-02): the opening film scrubs inside a pinned stage,
        so the impact lands on screen — not after the hero has scrolled away ---- */
.page.opening{display:block;height:240vh;min-height:0;padding:0}
.hero-sticky{position:sticky;top:0;height:100svh;overflow:hidden}

/* soldier scene: keep the gap-count line clear of the sourced bar at every state */
.ss-gapcount{margin-top:3vh}
.ss-axis{margin-bottom:1vh}

/* ---- The $250K exchange: tablet reconstruction scroll scene ---- */
.tab-scroll{position:relative;height:380vh;margin:6px 0}
.tab-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;overflow:hidden}
.tab-amount{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:400 clamp(90px,17vw,240px)/1 'Aldrich',sans-serif;color:rgba(240,242,244,.13);letter-spacing:.01em;white-space:nowrap;z-index:0;pointer-events:none}
.tab-frame{position:relative;z-index:1;width:min(450px,92vw)}
.chat-date{text-align:center;font:500 9px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--dim);margin:2px 0 10px}
.chat-bubble.typing{display:flex;gap:4px;padding:12px 15px;align-items:center}
.chat-bubble.typing span{width:6px;height:6px;border-radius:50%;background:#9aa3ad;animation:tabdots 1s ease-in-out infinite}
.chat-bubble.typing span:nth-child(2){animation-delay:.15s}
.chat-bubble.typing span:nth-child(3){animation-delay:.3s}
@keyframes tabdots{0%,60%,100%{opacity:.25}30%{opacity:1}}
.tab-typing{display:none}
.tab-live .tab-typing{display:flex}
.tab-cta{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:11px}
.tab-cta-id{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:var(--dim)}
.tab-cta .ev-ctl{font-size:11px;padding:12px 18px}
@media (max-width:900px){
  .tab-scroll{height:auto;margin:26px 0}
  .tab-stage{position:static;height:auto;padding:8px 0}
  .tab-amount{font-size:64px;opacity:.5}
}
@media (prefers-reduced-motion: reduce){ .chat-bubble.typing span{animation:none} }

/* opening pace: the hero's full 10 seconds scrub across the tall opening
   section whose height is set in ONE place — the hero-pin block above
   (240vh). A second .page.opening height rule once sat here at 160vh and
   silently overrode it, strangling the scrub; do not re-add one.
   cineHero keeps its own 440vh span (2026-10-05: extended so the full takeoff plays out on scroll). */
#cineHero{height:220vh}

/* ============ evidence slip: hover-first, full-bleed bottom bar ============ */
#evSlip{position:fixed;left:0;right:0;bottom:0;z-index:900;transform:translateY(108%);transition:transform .38s cubic-bezier(.22,.9,.3,1);background:linear-gradient(180deg,rgba(12,14,18,.94),rgba(6,7,10,.98));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:2px solid #e8b34b;box-shadow:0 -18px 50px rgba(0,0,0,.55)}
#evSlip.on{transform:translateY(0)}
.evs-in{max-width:1240px;margin:0 auto;padding:16px 3vw 18px;display:grid;grid-template-columns:1.45fr 1fr;gap:8px 44px;position:relative}
.evs-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.evs-id{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;color:rgba(244,242,236,.55)}
.evs-status{font-family:"JetBrains Mono",monospace;font-size:10.5px;font-weight:700;letter-spacing:.12em;padding:3px 9px;border:1px solid currentColor}
.evs-status.st-bright{color:#ffb3ba}.evs-status.st-steel{color:var(--steel)}.evs-status.st-amber{color:#e8c47a}.evs-status.st-grey{color:rgba(244,242,236,.55)}.evs-status.st-dim{color:rgba(244,242,236,.75)}
.evs-type{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.14em;color:rgba(244,242,236,.5)}
.evs-title{font-family:Aldrich,sans-serif;font-size:clamp(19px,2.2vw,26px);letter-spacing:.03em;color:var(--paper);margin-top:7px;line-height:1.15}
.evs-excerpt{font-size:16.5px;font-style:italic;color:#ffd9dc;margin-top:6px;line-height:1.4}
.evs-def{font-size:12.5px;line-height:1.5;color:rgba(244,242,236,.66);margin-top:7px;max-width:56ch}
.evs-side{display:flex;flex-direction:column;gap:10px;justify-content:center}
.evs-src{font-family:"JetBrains Mono",monospace;font-size:11px;line-height:1.55;color:rgba(244,242,236,.72)}
.evs-srclab{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--red);margin-bottom:2px}
.evs-actions{display:flex;gap:8px;flex-wrap:wrap}
.evs-actions button{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.1em;padding:8px 12px;background:rgba(255,255,255,.05);color:var(--paper);border:1px solid rgba(255,255,255,.28);cursor:pointer}
.evs-actions button:hover{border-color:var(--red);background:rgba(230,57,70,.14)}
.evs-actions .evs-open{border-color:var(--red);color:#ffb3ba;margin-left:auto}
.evs-rel{display:flex;gap:7px;flex-wrap:wrap}
.evs-relchip{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.08em;padding:5px 9px;background:none;border:1px solid rgba(255,255,255,.22);color:rgba(244,242,236,.8);cursor:pointer}
.evs-relchip.contra{border-color:rgba(230,57,70,.6);color:#ffb3ba}
.evs-x{position:absolute;top:8px;right:12px;background:none;border:0;color:rgba(244,242,236,.55);font-size:22px;line-height:1;cursor:pointer;padding:6px}
.evs-x:hover{color:var(--paper)}
.rtag{transition:background .18s,color .18s,border-color .18s}
.rtag:hover{background:rgba(230,57,70,.2);border-color:var(--red);color:#fff}
.stack-card:hover,.led-row:hover{border-color:rgba(230,57,70,.55)}
@media (max-width:760px){ .evs-in{grid-template-columns:1fr;max-height:52vh;overflow-y:auto} .evs-actions .evs-open{margin-left:0} }
@media (prefers-reduced-motion: reduce){ #evSlip{transition:none} }

/* ============ TYPE DISCIPLINE + SLIP POLISH (2026-10-03, Johnny) ============
   The display face is ALWAYS caps — no exceptions for data-driven titles.
   Verbatim quotes (.ev-quote/.quote-big) keep their written case. */
.art-t,.big-line,.brand,.cd-title,.chapter,.chart-take,.closing,.ctiny,
.ev-chip-t,.ev-id,.evs-title,.hud-beat,.m-title,.principle-t,.ss-claim,
.ss-gapcount,.ss-pv,.ss-q,.ss-year,.fx-from,.fx-to,.wordfill,.cover,
.card-v,.cd-num,.counter,.crow-v,.mblock-v,.pass-v,.stack-v,.loop-n,.chnum
{text-transform:uppercase}
/* slip lighting: a lit top edge + a faint red bloom, deeper contrast below */
#evSlip{background:linear-gradient(180deg,rgba(20,16,20,.96),rgba(6,7,10,.985));
  box-shadow:0 -18px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,90,100,.45),inset 0 14px 34px -18px rgba(230,57,70,.28)}
.evs-def{color:rgba(244,242,236,.82)}
.evs-excerpt{color:#f6ecec}
/* inline audio inside the slip — one panel, press and it plays */
.evs-audio{margin-top:2px}
.evs-audio audio{width:100%;height:40px;display:block}
.evs-actions button.evs-playing{border-color:var(--red);background:rgba(230,57,70,.18);color:#ffb3ba}

/* ============ FULL-THREAD CHAT (2026-10-03): the whole conversation ============ */
.chat-body-thread{max-height:58vh;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
.chat-voice{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;border-style:dashed}
.chat-voice-n{display:block;font-size:8.5px;letter-spacing:.14em;opacity:.65;margin-top:5px}

/* ============ KINETIC HEADLINES (2026-10-03) ============ */
.mx h2.kin{opacity:1;transform:none}
.kin-l{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.kin-l>span{display:block;transform:translateY(112%);transition:transform .95s cubic-bezier(.19,.7,.22,1)}
h2.kin.in .kin-l>span{transform:none}
body.rm .kin-l>span{transform:none;transition:none}

/* ---------- THE PEOPLE: chat vignettes (verified messages, cascade on entry) ---------- */
.vig{max-width:880px;margin:72px auto;padding:0 20px}
.vig-head{margin-bottom:16px}
.vig-k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;color:var(--red);margin:0 0 6px}
.vig-name{font-family:Aldrich,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(30px,4.6vw,46px);line-height:1.02;margin:0 0 8px;color:#f2f4f6}
.vig-angle{margin:0;max-width:58ch;color:#c9ced4;font-size:16.5px;line-height:1.55}
.vig-frame{width:min(620px,100%);margin:0}
.vig-frame + .vig-frame{margin-top:20px}
.vig .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.vig.in .chat-row{opacity:1;transform:none}
/* ---- the co-owner board: five pinned case cards, one row, a breath of wind ---- */
.board{max-width:1180px;margin:64px auto 8px;padding:0 20px;text-align:center}
.board-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:0 0 26px}
.board-row{display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,1.8vw,26px);background:linear-gradient(180deg,#0b0e14,#07090e);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:clamp(18px,3vw,34px) clamp(10px,2vw,26px) clamp(22px,3.4vw,38px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -30px 60px rgba(0,0,0,.45),0 30px 60px rgba(0,0,0,.35)}
.pin-card{margin:0;height:clamp(290px,36vw,430px);opacity:0;transform:translateY(30px) rotate(var(--tilt,0deg));transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*110ms);cursor:pointer}
.pin-card:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:4px}
.board.in .pin-card{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}
.pin-sway{position:relative;display:block;height:100%;transform-origin:50% 3.5%;animation:pinsway 6.4s ease-in-out calc(var(--i,0)*-.9s) infinite alternate}
@keyframes pinsway{from{transform:rotate(-.55deg)}to{transform:rotate(.55deg)}}
.pin-card img{height:100%;width:auto;display:block;filter:drop-shadow(0 16px 20px rgba(0,0,0,.5));transform:perspective(720px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg));transition:transform .25s ease}
.pin-gloss{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 32%,rgba(255,255,255,.17) 47%,rgba(255,255,255,.04) 54%,transparent 66%);background-size:300% 100%;background-position:130% 0;opacity:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.board.in .pin-gloss{animation:glosssweep 1.6s ease calc(.6s + var(--i,0)*.11s) 1 both}
.pin-card:hover .pin-gloss{animation:glosssweep 1.1s ease 1 both}
@keyframes glosssweep{0%{background-position:130% 0;opacity:0}12%{opacity:1}88%{opacity:1}100%{background-position:-40% 0;opacity:0}}
body.rm .pin-sway{animation:none}
body.rm .pin-card{transition:opacity .3s ease}
/* board-live: JS drives the cards from scroll position + pointer (user-driven,
   so it runs under reduced motion too — only the autonomous sway stills) */
.board-live .pin-card{opacity:var(--bo,0);transform:translateY(calc((1 - var(--settle,0))*46px + var(--py,0px))) rotate(calc(var(--tilt,0deg) + var(--swing,0deg)));transition:none}
.vig-flash{animation:vigflash 1.7s ease}
@keyframes vigflash{0%,70%{box-shadow:0 0 0 2px rgba(242,244,246,.9)}100%{box-shadow:0 0 0 2px rgba(242,244,246,0)}}
body.rm .vig-flash{animation:none;box-shadow:0 0 0 2px rgba(242,244,246,.9)}
/* ---- inline full thread: the whole conversation, in the page ---- */
.threadbox{width:min(680px,100%);margin:36px auto 10px;text-align:left}
.tb-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#0b0c0e;border:1px solid rgba(255,255,255,.22);border-radius:14px;color:var(--paper);font:600 11px 'JetBrains Mono',monospace;letter-spacing:.18em;cursor:pointer;transition:border-color .25s ease}
.tb-toggle:hover{border-color:rgba(255,255,255,.5)}
.tb-chev{display:inline-block;transition:transform .35s ease}
.threadbox.open .tb-chev{transform:rotate(180deg)}
.tb-panel{margin-top:16px}
.threadbox .chat-frame{width:min(560px,100%)}
body.rm .tb-chev{transition:none}
/* ---- THE PEOPLE, presented openly: one uniform frame per person,
   stacked in the page flow — no file hidden behind a click. The name
   bar is a jump index; the co-owner cards jump too. ---- */
.people-index{max-width:880px;margin:26px auto 8px;background:rgba(10,13,18,.85);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 14px}
.tp-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tp-person{font-family:"JetBrains Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.13em;color:var(--dim);background:#12151c;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 14px;cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease}
.tp-person:hover{color:var(--paper);border-color:rgba(255,255,255,.4)}
.tp-person.on{color:#0b0c0e;background:var(--paper);border-color:var(--paper)}
.pf-frame{max-width:880px;margin:26px auto 8px;background:linear-gradient(180deg,#11141b,#0a0d12);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:14px;box-shadow:0 40px 80px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.pf-screen{background:#05070a;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:26px clamp(16px,4vw,38px) 30px}
.tp-issue .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.tp-issue.on .chat-row{opacity:1;transform:none}
body.rm .tp-issue .chat-row{transition:none}
.tp-issue + .tp-issue{margin-top:28px}
.pf-screen .vig-frame{width:min(620px,100%)}
.pf-screen .vig-chips{margin-top:20px}
/* THE PEOPLE is a single-column stack inside the two-column page grid:
   every block spans both columns, or the grid seats them side by side
   and they overlap (the board-over-vignettes bug Johnny caught). */
.page.people-page .page-inner>*{grid-column:1/-1}
@media (prefers-reduced-motion:reduce){.pin-sway{animation:none}.pin-gloss{animation:none !important}}
@media (max-width:760px){.board-row{flex-wrap:wrap}.pin-card{height:238px}}
/* ---- the collapse peak: the July 5–6 confrontation, staged ---- */
.peak-scroll{position:relative;height:auto;margin:10px 0 0}
.peak-stage{position:static;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:visible;padding:64px 0 48px}
.peak-kicker{position:static;transform:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);white-space:normal;z-index:3;margin:0 0 24px;text-align:center}
.peak-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 3vw;z-index:1}
.peak-backline{font-family:var(--font-display);font-size:clamp(46px,8.8vw,126px);line-height:.98;text-transform:uppercase;margin:0;color:rgba(255,59,48,0);-webkit-text-stroke:1.5px rgba(242,244,246,.15);transform:scale(.965)}
.peak-attr{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:22px 0 0;opacity:0}
.peak-core{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;padding:0 16px}
.peak-frame{width:min(640px,94vw)}
.peak-frame .chat-body{max-height:none;overflow:visible}
.peak-live .pk-row{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
.peak-live .pk-row.on{opacity:1;transform:none}
@media (max-width:760px){.peak-scroll{height:auto}.peak-stage{position:static;height:auto;padding:56px 0 8px;flex-direction:column}.peak-back{position:relative;inset:auto;order:-1;padding:0 0 26px}}
/* ---- scene plates: photographic exhibits woven into the data sections ---- */
.board-sign{position:absolute;left:35%;top:24%;width:29.7%;height:31.5%;display:flex;flex-direction:column;justify-content:center;gap:9%;text-align:center;pointer-events:none}
.bs-row{margin:0;display:flex;flex-direction:column;gap:2px}
.bs-lab{font-family:var(--font-display);font-size:10px;font-size:1.35cqw;letter-spacing:.28em;color:#96aac2}
.bs-num{font-family:var(--font-display);font-size:30px;font-size:3.9cqw;line-height:1;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.55),0 0 42px rgba(120,170,255,.25)}
.board-fx{left:20.3%;top:6.1%;width:59.4%;height:30.4%;gap:4%}
.bs-mid{font-family:var(--font-display);font-size:34px;font-size:5.4cqw;line-height:1;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.55),0 0 42px rgba(120,170,255,.25)}
.bs-small{font-family:var(--font-display);font-size:13px;font-size:2cqw;letter-spacing:.14em;color:#c8d6e6;text-shadow:0 0 10px rgba(150,190,255,.4)}
/* arena rebuild (2026-10-05 fix round): slim slot, Johnny's stage art as the
   jumbotron, the audience numbers live on its screen and count up */
.vband-arena{height:125vh}
.vb-stage-arena{background:transparent;display:flex;align-items:center;justify-content:center}
.vb-frame{position:relative;flex:none;width:min(920px,94vw);container-type:inline-size;will-change:transform}
.vb-art{position:relative;display:block;width:100%;height:auto}
.board-jumbo{left:32%;top:30.5%;width:35%;height:39.5%;background:rgba(3,6,10,.34);border-radius:6px}
.board-jumbo.on{box-shadow:inset 0 0 42px rgba(120,170,255,.15)}
.vig-sub{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;color:#9aa3ad;margin:14px 2px 6px;line-height:1.7}
.vig-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
body.rm .vig .chat-row{transform:none;transition:opacity .3s ease;transition-delay:0s}

/* ===== FAMILY EXHIBIT SCREENSHOTS + FAMILY FILM (2026-10-04) ===== */

/* ===== THE FULL RECORD (2026-10-04) ===== */
.rec-frame{grid-column:1/-1;width:min(1120px,100%);margin:26px auto 0}
.rec-controls{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(242,244,246,.12);flex-wrap:wrap}
.rec-search{flex:1 1 220px;background:#0b0d10;border:1px solid rgba(242,244,246,.22);color:#f2f4f6;padding:10px 12px;font:inherit;font-size:13px;letter-spacing:.08em}
.rec-search::placeholder{color:rgba(242,244,246,.45)}
.rec-day{background:#0b0d10;border:1px solid rgba(242,244,246,.22);color:#f2f4f6;padding:10px;font:inherit;font-size:13px;letter-spacing:.06em}
.rec-status{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;opacity:.75}
.rec-body{max-height:72vh}
.rec-link{display:inline-block;margin-top:10px;background:none;border:1px solid rgba(242,244,246,.25);color:inherit;padding:8px 12px;font:inherit;font-size:12px;letter-spacing:.12em;cursor:pointer}
.rec-link:hover{border-color:rgba(242,244,246,.55)}
.threadbox .rec-link{margin:10px 0 2px}

/* cited-in-the-story marker inside The Record (doctrine 2026-10-04) */
.rec-cited{display:inline-block;margin-top:7px;font:600 9px 'JetBrains Mono',monospace;letter-spacing:.13em;color:#f0b7b3;background:rgba(255,59,48,.13);border:1px solid rgba(255,59,48,.4);padding:3px 7px;cursor:pointer}
.rec-cited:hover{background:rgba(255,59,48,.25)}

/* voice messages that carry their recovered audio (2026-10-04) */
.chat-audio{display:block;width:218px;max-width:100%;height:32px;margin-top:7px}

/* ===== HERO: FULL FRAME AT EVERY ASPECT (Johnny, 2026-10-04:
   "dont cut it at all") — the wide-screen cover experiment is
   REVERTED. The film is never cropped on any screen; the opening
   runs object-fit:contain with the blurred fill of his own footage
   behind it. The permanent wide answer is a true 21:9 master from
   Johnny, not a crop. ===== */

/* Record timeline — one bar per day, height ∝ count (2026-10-04) */
.rec-timeline{display:flex;align-items:flex-end;gap:1px;height:52px;margin:12px 2px 0}
.rec-tl-bar{flex:1 1 0;min-width:2px;background:#5a4632;border:0;padding:0;cursor:pointer}
.rec-tl-bar:hover{background:#c8b28a}
.rec-tl-bar.on{background:#e5484d}
.rec-tl-label{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.08em;color:#a08b6d;min-height:14px;margin-top:4px}

/* ===== HERO — JOHNNY'S CALL (2026-10-04): "Use my shit. Stretch
   to fit it." The hero film is now his dusty8 master (1.83:1).
   The blurred side-fill is GONE (his order). Screens up to the
   film's own ratio run the full frame untouched; wider screens
   STRETCH the film to fill edge-to-edge — no bars, no blur,
   no crop. ===== */
.hero-film-bg{display:none}
@media (min-aspect-ratio: 91/50){
  .hero-film{object-fit:fill}
}


/* ===== REVIEW PASS (Johnny, 2026-10-05) =====
   No hard picture edges anywhere; bands that didn't pay off are
   shorter; G2 builds from blueprint; the map draws its routes;
   a man falls off the Graph 3 building and does not land. */
/* edge feather: every film/plate melts into the page top and bottom */
.cine .film,.vband-stage .vb-film,.vband-stage .vb-img,.vband-stage .vb-plate,.vband-stage .vb-map-img{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%)}
.vband-short{height:160vh}
/* G2 build-up plates */
.vb-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vb-built{clip-path:inset(100% 0 0 0)}
.vband-grow .vb-tag{top:auto;bottom:9%}
/* facade faller */
.vb-faller{position:absolute;top:-14%;left:57%;width:clamp(150px,13vw,230px);aspect-ratio:624/416;z-index:5;opacity:0;pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.55))}
.vb-faller .vf{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.vb-faller .vf.act{opacity:1}
/* G5 ticket */
.vb-ticket{position:absolute;left:50%;top:15%;transform:translateX(-50%) rotate(-2deg);border:1.5px solid rgba(232,232,232,.42);background:rgba(5,8,13,.45);padding:2.4cqw 5cqw;opacity:0;transition:opacity .5s ease;z-index:3}
.vb-ticket.on{opacity:1}
.vb-ticket::after{content:"";position:absolute;left:12px;right:12px;bottom:11px;border-top:2px dashed rgba(232,232,232,.28)}
.vb-ticket-v{font-family:var(--font-display);font-size:clamp(46px,6.5vw,104px);line-height:1;color:#e8e8e8}
/* claimed-markets map: a true 2:1 panel so dots and routes stay registered */
.vband-map{height:175vh;container-type:inline-size}
.vband-map .vband-stage{height:50cqw;top:calc((100svh - 50cqw)/2)}
.vb-map-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vb-mapfx{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.vb-arc{fill:none;stroke:rgba(232,232,232,.55);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
.vb-dot{opacity:0;transition:opacity .45s ease}
.vb-dot.on{opacity:1}
.vb-dot .core{fill:#e8e8e8}
.vb-dot.hub .core{fill:var(--red)}
/* G1 icon dots */
.crow-track{position:relative}
.crow-dots{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:3px;z-index:2}
.crow-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.16);transition:background .45s ease}
.chart.in .crow-dots i.on{background:#f2f2f2}
.chart.in .crow-dots i.on:nth-child(2){transition-delay:0.07s}
.chart.in .crow-dots i.on:nth-child(3){transition-delay:0.14s}
.chart.in .crow-dots i.on:nth-child(4){transition-delay:0.21s}
.chart.in .crow-dots i.on:nth-child(5){transition-delay:0.28s}
.chart.in .crow-dots i.on:nth-child(6){transition-delay:0.35s}
.chart.in .crow-dots i.on:nth-child(7){transition-delay:0.42s}
.chart.in .crow-dots i.on:nth-child(8){transition-delay:0.49s}
.chart.in .crow-dots i.on:nth-child(9){transition-delay:0.56s}
.chart.in .crow-dots i.on:nth-child(10){transition-delay:0.63s}
/* work-audit hours diagram */
.audit-bars{margin:28px 0 4px}

/* ===== SERVICE STACK — Johnny's panels, 2026-10-05 ===== */
.svc-stack{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3.2vh,36px);margin:36px 0 10px}
.svc-title{width:min(720px,94%);height:auto;filter:drop-shadow(0 22px 44px rgba(0,0,0,.6))}
.svc-title.reveal{transform:translateY(30px) scale(.93)}
.svc-title.reveal.in{transform:none}
.svc-photo-row{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,30px);justify-content:center;align-items:flex-start;width:100%}
.svc-photo{margin:0;width:min(600px,100%)}
.svc-photo img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.svc-photo figcaption{margin-top:10px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.14em;line-height:1.7;color:rgba(255,255,255,.62);text-align:center}
.svc-lori{width:min(430px,92%);height:auto;filter:drop-shadow(0 22px 44px rgba(0,0,0,.6))}
.svc-strip{width:min(1000px,97%);height:auto;filter:drop-shadow(0 24px 48px rgba(0,0,0,.6))}
.svc-stack .svc-strip.reveal{opacity:0;transform:translateY(24px)}

.svc-stack .svc-strip.reveal.in{opacity:1;transform:none}
.svc-verdict{width:min(1120px,99%)}
.rm .svc-stack .svc-strip.reveal,.rm .svc-title.reveal{transform:none;opacity:1}
/* ===== POP BAND (population, replaces blueprint) ===== */
.vband-pop{height:170vh}
.vb-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,3vh,28px);text-align:center;padding:24px}
.pop-kicker{font-family:Aldrich,sans-serif;font-size:12px;letter-spacing:.42em;color:rgba(255,255,255,.55);margin:0}
.pop-row{display:flex;align-items:center;gap:clamp(18px,4vw,54px)}
.pop-v{font-family:Aldrich,sans-serif;font-size:clamp(54px,9vw,120px);line-height:1;color:#fff;margin:0}
.pop-name{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.6);margin:10px 0 0}
.pop-vs{font-family:Aldrich,sans-serif;font-size:clamp(16px,2.6vw,26px);color:#e8b34a;letter-spacing:.2em;margin:0}
/* ===== TICKET2 BAND (affordability rework) ===== */
.tk2-top{display:flex;align-items:baseline;gap:14px;opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.tk2-top.on{opacity:1;transform:none}
.tk2-v{font-family:Aldrich,sans-serif;font-size:clamp(60px,10vw,110px);color:#fff;line-height:1}
.tk2-k{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.34em;color:rgba(255,255,255,.6)}
.tk2-row{width:min(760px,92vw);opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.tk2-row.on{opacity:1;transform:none}
.tk2-lab{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.65);margin:0 0 8px}
.tk2-bar{position:relative;height:34px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.tk2-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:#c8a24a}
.tk2-fill.ph{background:#b3342a}
.tk2-pct{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:Aldrich,sans-serif;font-size:15px;color:#fff}
.tk2-take{font-family:Aldrich,sans-serif;font-size:clamp(18px,3.4vw,32px);letter-spacing:.06em;color:#fff;margin:6px 0 0;opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;max-width:min(820px,94vw)}
.tk2-take.on{opacity:1;transform:none}
.tk2-take b{color:#e8b34a}
/* ===== AUDIT PAYOFF ===== */
.payoff{margin:34px auto 6px;max-width:860px;text-align:center;padding:30px 22px;border:1px solid rgba(232,179,74,.35);background:linear-gradient(180deg,rgba(232,179,74,.07),rgba(0,0,0,0))}
.payoff-k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.34em;color:#e8b34a;margin:0 0 12px}
.payoff-v{font-family:Aldrich,sans-serif;font-size:clamp(30px,5.4vw,54px);color:#fff;margin:0}
.payoff-eq{font-family:Aldrich,sans-serif;font-size:clamp(22px,4vw,38px);color:rgba(255,255,255,.85);margin:10px 0 0}
.payoff-big{color:#e8b34a;font-size:1.5em}
.payoff-sub{max-width:620px;margin:16px auto 0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.7}
/* ===== CORP ===== */
.corp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:rgba(255,255,255,.14);margin:26px 0}
.corp-fact{background:#0a0d12;padding:18px}
.corp-k{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.5);margin:0 0 8px}
.corp-v{font-family:Aldrich,sans-serif;font-size:17px;color:#fff;margin:0;line-height:1.4}
.corp-link{color:#e8b34a}
.corp-exhibit{display:inline-block;margin-top:6px;padding:14px 26px;border:1px solid rgba(232,179,74,.6);color:#fff;font-family:Aldrich,sans-serif;letter-spacing:.18em;font-size:13px;text-decoration:none}
.corp-exhibit:hover{background:rgba(232,179,74,.12)}
/* ===== PEOPLE: uniform tablets + scroll spotlight ===== */
.pf-screen{height:clamp(560px,82vh,780px);overflow-y:auto;scrollbar-width:none}
.pf-frame{transition:opacity .45s ease,transform .45s ease,filter .45s ease}
.pf-frame:not(.pf-active){opacity:.45;transform:scale(.982);filter:saturate(.8)}
.pf-frame.pf-active{opacity:1;transform:none;filter:none}
.rm .pf-frame{transition:none}
.rm .pf-frame:not(.pf-active){opacity:1;transform:none;filter:none}

/* peak scene: static always-visible reconstruction (2026-10-05) */
.peak-live .pk-row{opacity:1;transform:none}

/* people stepper: one tablet at a time, slide on scroll (2026-10-05) */
.people-track{position:relative}
.people-stage{position:sticky;top:0;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.people-stage .pf-frame{position:absolute;width:min(880px,94vw);margin:0;opacity:0;transform:translateX(90px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.people-stage .pf-frame.pf-gone{transform:translateX(-90px)}
.people-stage .pf-frame.pf-active{opacity:1;transform:none;pointer-events:auto}
body.rm .people-stage .pf-frame{transition:none}
.people-stage .pf-frame .pf-screen{max-height:88svh}

/* corporate dossier: folder with tabs (2026-10-05) */
.dossier{max-width:1020px;margin:34px auto 0;background:linear-gradient(180deg,#14171d,#0c0f14);border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.dos-tabs{display:flex;flex-wrap:wrap;gap:0;background:#080b0f;border-bottom:1px solid rgba(255,255,255,.12)}
.dos-tab{flex:1 1 auto;font-family:var(--font-display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);background:none;border:0;border-right:1px solid rgba(255,255,255,.08);padding:18px 14px;cursor:pointer;transition:color .25s,background .25s}
.dos-tab:last-child{border-right:0}
.dos-tab:hover{color:#fff}
.dos-tab.on{color:#ffb02e;background:rgba(255,176,46,.07);box-shadow:inset 0 -2px 0 #ffb02e}
.dos-panels{padding:clamp(22px,4vw,44px)}
.dos-panel{display:none}
.dos-panel.on{display:block;animation:dosIn .45s ease}
@keyframes dosIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.rm .dos-panel.on{animation:none}
.dos-lede{font-family:var(--font-display);font-size:clamp(18px,2.6vw,26px);letter-spacing:.06em;text-transform:uppercase;margin:0 0 22px;color:#fff}
.dos-points{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.dos-points p{margin:0;font-size:15px;line-height:1.65;color:var(--body,#d7dbe0)}
.dos-points strong{color:#ffb02e;font-weight:700}
.ctrl-bar{display:flex;border-radius:10px;overflow:hidden;margin:6px 0 4px;min-height:96px}
.ctrl-kemp{flex:0 0 75%;background:linear-gradient(180deg,rgba(255,176,46,.30),rgba(255,176,46,.12));display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px;border-right:1px solid rgba(255,255,255,.16)}
.ctrl-kemp span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:#fff}
.ctrl-kemp em,.ctrl-rest em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;color:var(--dim)}
.ctrl-rest{flex:1;background:rgba(255,255,255,.03);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px}
.ctrl-rest span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:var(--dim)}
.reg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:26px}
.reg-link{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:10px;background:rgba(255,255,255,.02);text-decoration:none;transition:border-color .25s,background .25s}
.reg-link:hover{border-color:#ffb02e;background:rgba(255,176,46,.06)}
.reg-link span{font-family:var(--font-display);font-size:13px;letter-spacing:.18em;color:#fff}
.reg-link em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--dim)}
.dos-panel .corp-grid{margin:0}
.dos-panel .note{margin-top:22px}
@media (max-width:640px){.dos-tab{font-size:10px;padding:14px 8px;letter-spacing:.12em}.ctrl-bar{flex-direction:column}.ctrl-kemp{flex:none;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}}

/* pass2: mobile table guard */
table.data{max-width:100%;display:block;overflow-x:auto}

/* pass4: skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:#ffb02e;color:#000;font-family:var(--font-display);font-size:13px;letter-spacing:.15em;padding:12px 20px;z-index:9999;text-decoration:none}
.skip-link:focus{left:0}

/* seam-killer 2026-10-05: uniform black page backgrounds, no color bands */

/* service: photo on top, sidebar on side, content in middle (2026-10-05 fix) */
.page.service-page .page-inner{display:grid;grid-template-columns:300px 1fr;gap:64px}
.page.service-page .svc-head{grid-column:1/3;grid-row:1;margin:0;display:flex;flex-direction:row;gap:32px;align-items:start;min-width:0}
.page.service-page .svc-hero{margin:0;max-width:100%;flex:1;min-width:0}
.svc-hero img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#000}
.svc-hero figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--dim);margin-top:12px;text-transform:uppercase;text-align:center}
.page.service-page .svc-head .svc-lori{width:min(380px,40%);height:auto;margin:0;opacity:1;filter:none;flex-shrink:0}
.page.service-page .rail-facts{position:sticky;top:110px;align-self:start}
.page.service-page .rail-facts dl{display:block}
.svc-stack{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(28px,4vh,44px)}
.svc-title{width:min(680px,94%);height:auto}
.svc-lori{width:min(420px,88%);height:auto;opacity:.92}
.svc-strip{width:min(860px,100%);height:auto}
.svc-verdict{width:min(860px,100%);height:auto}
@media (max-width:900px){.page.service-page .page-inner{grid-template-columns:1fr;gap:40px}.page.service-page .rail-facts{position:static}}
@media (max-width:900px){.page.service-page .svc-head,.page.service-page .rail-facts,.page.service-page .prose{grid-column:1;grid-row:auto;position:static}}

/* redesigned title: pure HTML, zero seams (2026-10-05) */
.svc-title-html{text-align:center;margin:0 auto;max-width:760px}
.sth-top{display:flex;align-items:center;justify-content:center;gap:18px}
.sth-15{font-family:var(--font-display);font-size:clamp(72px,10vw,128px);line-height:.9;color:#e5322b;text-shadow:0 4px 0 #7a0f0b,0 10px 30px rgba(0,0,0,.6)}
.sth-years{font-family:var(--font-display);font-size:clamp(38px,5.4vw,68px);line-height:.95;color:#f2f4f6;text-align:left;text-shadow:0 3px 0 #111,0 8px 24px rgba(0,0,0,.6)}
.sth-sub{font-family:var(--font-display);font-size:clamp(18px,2.6vw,30px);letter-spacing:.06em;color:#f2f4f6;margin-top:14px;padding-top:12px;border-top:3px solid #e8b34b;display:inline-block}
.sth-sub em{font-style:normal;color:#e8b34b}

/* peak: remove overlapping backdrop, clean stack (2026-10-05) */
.peak-back{display:none}
.peak-kicker{position:static;transform:none;margin:0 0 24px;text-align:center}
.peak-core{width:100%}

/* people fixes: hide scrollbars, Arial only in bubbles, real slides (2026-10-05) */
.tablet-screen{scrollbar-width:none;-ms-overflow-style:none}
.tablet-screen::-webkit-scrollbar{display:none;width:0}
.chat-bubble{font-family:var(--font-body)}
.pf-frame{transition:transform .6s cubic-bezier(.22,.9,.28,1),opacity .6s !important}
.pf-frame.pf-gone{transform:translateX(-80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame:not(.pf-active):not(.pf-gone){transform:translateX(80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame.pf-active{transform:translateX(0) !important;opacity:1 !important}

/* debt + breaches (2026-10-05) */
.debt-rows{max-width:560px;margin:18px auto 8px;text-align:left}
.debt-row{display:flex;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:15px}
.debt-row span:last-child{font-family:var(--font-mono);white-space:nowrap}
.debt-total{border-bottom:2px solid var(--ink);font-weight:600}
.debt-paid{color:var(--dim)}
.debt-out{font-size:19px;font-weight:700;border-bottom:none;padding-top:14px}
.debt-out span:last-child{color:var(--red);font-size:24px}
.breaches{max-width:560px;margin:32px auto 0;text-align:left}
.breaches-k{font-family:var(--font-display);font-size:14px;letter-spacing:.18em;color:var(--red);margin-bottom:12px}
.breaches ul{list-style:none;padding:0}
.breaches li{padding:10px 0 10px 24px;position:relative;border-bottom:1px solid var(--line);font-size:15px}
.breaches li:before{content:"";position:absolute;left:4px;top:18px;width:8px;height:8px;background:var(--red)}

/* ============ CORPORATE FOLDER (3D) ============ */
.corp-folder{perspective:1400px;max-width:900px;margin:40px auto;position:relative}
.cf-tab{background:#c8a951;color:#1a1408;font-family:var(--font-display);font-size:13px;letter-spacing:.2em;padding:10px 28px;display:inline-block;border-radius:8px 8px 0 0;margin-left:40px;position:relative;z-index:1}
.cf-body{background:#d4af5f;border-radius:6px;padding:36px 32px 28px;position:relative;transform-style:preserve-3d;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cf-back{position:absolute;inset:0;background:#b8944a;border-radius:6px;transform:translateZ(-30px)}
.cf-papers{position:relative;transform-style:preserve-3d;min-height:420px}
.cf-paper{background:#f5f1e8;color:#1a1a1a;border-radius:2px;padding:32px 36px;box-shadow:0 4px 24px rgba(0,0,0,.25);position:absolute;inset:0;transform:translateZ(0) translateY(20px);opacity:0;transition:transform .7s cubic-bezier(.22,.9,.28,1),opacity .7s;overflow-y:auto;max-height:520px}
.cf-paper.on{transform:translateZ(40px) translateY(0);opacity:1;z-index:5}
.cf-paper .corp-k{color:#8a6d1f}
.cf-paper .corp-v{color:#111}
.cf-paper .note{color:#444}
.cf-paper a{color:#8a1f1f}
.cf-front{position:absolute;inset:0;background:linear-gradient(180deg,#d4af5f,#c09a4e);border-radius:6px;transform-origin:bottom center;transition:transform 1s cubic-bezier(.22,.9,.28,1);z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 -10px 40px rgba(0,0,0,.3)}
.cf-front .cf-label{font-family:var(--font-display);font-size:clamp(20px,3vw,32px);letter-spacing:.1em;color:#3a2c10;text-align:center;padding:20px}
.corp-folder.open .cf-front{transform:rotateX(-75deg)}
.cf-index{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap;position:relative;z-index:20}
.cf-idx{background:transparent;border:1px solid #8a6d1f;color:#3a2c10;font-family:var(--font-display);font-size:12px;letter-spacing:.14em;padding:10px 20px;cursor:pointer;border-radius:4px;transition:all .3s}
.cf-idx:hover,.cf-idx.on{background:#3a2c10;color:#f5f1e8}
@media (max-width:700px){.cf-body{padding:24px 18px}.cf-paper{padding:24px 20px}}

.tk2-fill.ng{background:#ff9f1c}.tk2-fill.np{background:#ff3b30}

/* ============ UX PACKAGE ============ */
#uxProgress{position:fixed;top:0;left:0;height:3px;background:#e8b34b;width:0;z-index:9999;transition:width .1s linear}
#uxTop{position:fixed;bottom:28px;right:28px;width:48px;height:48px;border-radius:50%;background:#111;border:1px solid #2a3238;color:#f2f4f6;font-size:20px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s;z-index:9000}
#uxTop.show{opacity:1;pointer-events:auto}
#uxTop:hover{background:#e5322b;border-color:#e5322b}
#uxChapters{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);z-index:9500;display:none;overflow-y:auto;padding:60px 20px}
#uxChapters.open{display:block}
.ux-ch-grid{max-width:800px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ux-ch{background:#111;border:1px solid #2a3238;padding:18px;border-radius:6px;color:#f2f4f6;text-decoration:none;transition:border-color .2s}
.ux-ch:hover{border-color:#e5322b}
.ux-ch .ux-ch-n{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.1em}
.ux-ch .ux-ch-t{font-family:'Aldrich',sans-serif;font-size:15px;margin-top:6px}
.ux-ch-close{position:fixed;top:20px;right:28px;background:none;border:none;color:#f2f4f6;font-size:32px;cursor:pointer}
.ux-share{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid #2a3238;color:#9aa4ad;font-size:12px;letter-spacing:.12em;padding:8px 16px;border-radius:4px;cursor:pointer;text-transform:uppercase;margin-top:16px}
.ux-share:hover{color:#f2f4f6;border-color:#e5322b}
.nav a.active{color:#e5322b}

/* ============ COMPREHENSIBILITY ============ */
[data-tip]{position:relative;border-bottom:1px dotted var(--dim);cursor:help}
[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#111;border:1px solid #e5322b;color:#f2f4f6;font-size:13px;padding:10px 14px;border-radius:4px;white-space:normal;width:240px;z-index:100;text-transform:none;letter-spacing:0;line-height:1.5}
.cast-card{background:#111;border:1px solid #2a3238;border-radius:8px;padding:28px;margin:32px auto;max-width:720px}
.cast-card h4{font-family:'Aldrich',sans-serif;font-size:16px;letter-spacing:.1em;margin-bottom:16px;color:#e5322b}
.cast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.cast-p{background:#0a0a0a;border:1px solid #222;padding:14px;border-radius:4px}
.cast-p .cp-n{font-size:14px;font-weight:600}
.cast-p .cp-r{font-size:12px;color:#9aa4ad;margin-top:4px}
.rtag{position:relative}
.rtag .rn{font-size:10px;vertical-align:super;color:#e5322b;margin-left:2px}
.read-time{font-family:'JetBrains Mono',monospace;font-size:11px;color:#5a636b;letter-spacing:.1em;margin-bottom:12px}

/* ============ SCROLLYTELLING: debt counter, chat replay, card flip, credits ============ */
/* debt counter */
.debt-count-wrap{text-align:center;margin:24px auto;max-width:560px}
.debt-count{font-family:'JetBrains Mono',monospace;font-size:clamp(40px,7vw,72px);color:#e5322b;font-weight:700}
.debt-count-lab{font-size:13px;letter-spacing:.18em;color:#9aa4ad;text-transform:uppercase;margin-top:8px}
/* chat replay */
.replay-wrap{max-width:560px;margin:0 auto}
.replay-bubble{max-width:78%;padding:9px 13px;border-radius:19px;font-size:14.5px;line-height:1.45;
  background:#232529;color:#e8ebee;margin:8px 0;opacity:0;transform:translateY(14px);
  transition:opacity .4s,transform .4s;font-family:var(--font-body)}
.replay-bubble.right{margin-left:auto;background:#2f6db3;color:#fff}
.replay-bubble.show{opacity:1;transform:none}
.replay-typing{display:inline-block;padding:12px 16px;background:#232529;border-radius:19px;margin:8px 0}
.replay-typing span{display:inline-block;width:8px;height:8px;background:#9aa4ad;border-radius:50%;margin:0 2px;animation:rtblink 1s infinite}
.replay-typing span:nth-child(2){animation-delay:.2s}.replay-typing span:nth-child(3){animation-delay:.4s}
@keyframes rtblink{0%,100%{opacity:.3}50%{opacity:1}}
.replay-who{font-size:11px;color:#9aa4ad;letter-spacing:.1em;margin:12px 0 2px;text-transform:uppercase}
/* card flip */
.rtag{perspective:400px;display:inline-block}
.rtag-flip{position:relative;transform-style:preserve-3d;transition:transform .5s;display:inline-block}
.rtag:hover .rtag-flip{transform:rotateY(180deg)}
.rtag-face{backface-visibility:hidden;display:inline-block}
.rtag-back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;
  background:#e5322b;color:#fff;font-size:10px;padding:2px 6px;border-radius:3px;white-space:nowrap}
/* end credits */
.credits{background:#000;color:#f2f4f6;text-align:center;padding:80px 20px;overflow:hidden}
.credits-roll{display:inline-block;text-align:center;animation:creditsUp 40s linear infinite}
.credits-roll p{margin:14px 0;font-size:15px}
.credits-roll .cr-k{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.2em;margin-top:32px}
.credits-roll .cr-t{font-family:'Aldrich',sans-serif;font-size:20px;letter-spacing:.06em;margin:24px 0 8px}
@keyframes creditsUp{from{transform:translateY(30%)}to{transform:translateY(-70%)}}
@media (prefers-reduced-motion:reduce){.credits-roll{animation:none}}

.page.service-page .rail-facts{grid-column:1;grid-row:2;position:sticky;top:110px;align-self:start;min-width:0}
.page.service-page .prose{grid-column:2;grid-row:1/span 2;min-width:0}

/* paper-trail contrast fixes: dark ink on cream paper */
.cf-paper .dos-lede{color:#1a1a1a}
.cf-paper .dos-points p{color:#333}
.cf-paper .dos-points strong{color:#8a6d1f}
.cf-paper .ctrl-rest span,.cf-paper .ctrl-kemp em,.cf-paper .ctrl-rest em{color:#5a5142}
.cf-paper .ctrl-kemp span{color:#3a1410}
.cf-paper .rtag{color:#3a2c10;border-color:rgba(58,44,16,.45)}
.cf-paper .rtag-face{color:#3a2c10}
.cf-num{font-family:var(--font-mono);font-weight:700;background:rgba(138,109,31,.14);padding:2px 8px;border-radius:3px;letter-spacing:.08em}
/* inline exhibit drawer */
.cf-exhibit-drawer{margin-top:16px;border:1px solid rgba(58,44,16,.35);border-radius:4px;overflow:hidden;background:#fff}
.cf-exhibit-drawer iframe{width:100%;height:min(70vh,640px);border:0;display:block;background:#fff}
button.corp-exhibit{font:inherit;cursor:pointer}
.vb-side .vb-film{width:100cqw;max-width:none}
.vb-side-r .vb-film{left:auto;right:0}
.vb-seam{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:linear-gradient(180deg,transparent,rgba(180,210,255,.55) 30%,rgba(180,210,255,.55) 70%,transparent)}
.vb-tag{position:absolute;top:8%;padding:12px 16px;background:rgba(5,8,13,.55);opacity:0;transition:opacity .5s ease}
.vb-tag-l{left:4%;border-left:2px solid rgba(143,184,221,.55)}
.vb-tag-r{right:4%;text-align:right;border-right:2px solid rgba(255,59,48,.55)}
.vb-tag.on{opacity:1}
.vb-tag-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-tag-v{display:block;margin-top:4px;font:400 clamp(26px,4.2cqw,66px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-board{position:absolute;bottom:9%;padding:14px 18px;background:rgba(5,8,13,.62);border:1px solid rgba(143,184,221,.3);opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.vb-board.on{opacity:1;transform:none}
.vb-board-l{left:5%}
.vb-board-r{right:5%;text-align:right}
.vb-board-k{display:block;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:#96aac2}
.vb-board-v{display:block;margin-top:4px;font:400 clamp(28px,4.6cqw,72px)/1.05 'Aldrich',sans-serif;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.5)}
.vb-tracks{position:absolute;left:5%;right:5%;bottom:7%;display:flex;flex-direction:column;gap:15px}
.vb-track{display:flex;align-items:center;gap:14px;opacity:0;transition:opacity .5s ease}
.vb-track.on{opacity:1}
.vb-track-k{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.18em;color:#dbe6f2;min-width:106px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
.vb-track-bar{flex:1;height:10px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.vb-track-fill{display:block;height:100%;width:0;background:#8fb8dd}
.vb-track-fill.ph{background:var(--red)}
.vb-track-v{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.13em;color:#f2f7ff;min-width:158px;text-shadow:0 1px 8px rgba(0,0,0,.85)}
@media (max-width:900px){
  .vb-plac{width:22%;padding:9px 4px 8px}
  .vb-plac-k{letter-spacing:.06em}
  .vb-track-k{min-width:82px}
  .vb-track-v{min-width:118px}
}

/* ---- hero pin (2026-10-02): the opening film scrubs inside a pinned stage,
        so the impact lands on screen — not after the hero has scrolled away ---- */
.page.opening{display:block;height:240vh;min-height:0;padding:0}
.hero-sticky{position:sticky;top:0;height:100svh;overflow:hidden}

/* soldier scene: keep the gap-count line clear of the sourced bar at every state */
.ss-gapcount{margin-top:3vh}
.ss-axis{margin-bottom:1vh}

/* ---- The $250K exchange: tablet reconstruction scroll scene ---- */
.tab-scroll{position:relative;height:380vh;margin:6px 0}
.tab-stage{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;overflow:hidden}
.tab-amount{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:400 clamp(90px,17vw,240px)/1 'Aldrich',sans-serif;color:rgba(240,242,244,.13);letter-spacing:.01em;white-space:nowrap;z-index:0;pointer-events:none}
.tab-frame{position:relative;z-index:1;width:min(450px,92vw)}
.chat-date{text-align:center;font:500 9px 'JetBrains Mono',monospace;letter-spacing:.18em;color:var(--dim);margin:2px 0 10px}
.chat-bubble.typing{display:flex;gap:4px;padding:12px 15px;align-items:center}
.chat-bubble.typing span{width:6px;height:6px;border-radius:50%;background:#9aa3ad;animation:tabdots 1s ease-in-out infinite}
.chat-bubble.typing span:nth-child(2){animation-delay:.15s}
.chat-bubble.typing span:nth-child(3){animation-delay:.3s}
@keyframes tabdots{0%,60%,100%{opacity:.25}30%{opacity:1}}
.tab-typing{display:none}
.tab-live .tab-typing{display:flex}
.tab-cta{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:11px}
.tab-cta-id{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.22em;color:var(--dim)}
.tab-cta .ev-ctl{font-size:11px;padding:12px 18px}
@media (max-width:900px){
  .tab-scroll{height:auto;margin:26px 0}
  .tab-stage{position:static;height:auto;padding:8px 0}
  .tab-amount{font-size:64px;opacity:.5}
}
@media (prefers-reduced-motion: reduce){ .chat-bubble.typing span{animation:none} }

/* opening pace: the hero's full 10 seconds scrub across the tall opening
   section whose height is set in ONE place — the hero-pin block above
   (240vh). A second .page.opening height rule once sat here at 160vh and
   silently overrode it, strangling the scrub; do not re-add one.
   cineHero keeps its own 440vh span (2026-10-05: extended so the full takeoff plays out on scroll). */
#cineHero{height:220vh}

/* ============ evidence slip: hover-first, full-bleed bottom bar ============ */
#evSlip{position:fixed;left:0;right:0;bottom:0;z-index:900;transform:translateY(108%);transition:transform .38s cubic-bezier(.22,.9,.3,1);background:linear-gradient(180deg,rgba(12,14,18,.94),rgba(6,7,10,.98));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:2px solid #e8b34b;box-shadow:0 -18px 50px rgba(0,0,0,.55)}
#evSlip.on{transform:translateY(0)}
.evs-in{max-width:1240px;margin:0 auto;padding:16px 3vw 18px;display:grid;grid-template-columns:1.45fr 1fr;gap:8px 44px;position:relative}
.evs-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.evs-id{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;color:rgba(244,242,236,.55)}
.evs-status{font-family:"JetBrains Mono",monospace;font-size:10.5px;font-weight:700;letter-spacing:.12em;padding:3px 9px;border:1px solid currentColor}
.evs-status.st-bright{color:#ffb3ba}.evs-status.st-steel{color:var(--steel)}.evs-status.st-amber{color:#e8c47a}.evs-status.st-grey{color:rgba(244,242,236,.55)}.evs-status.st-dim{color:rgba(244,242,236,.75)}
.evs-type{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.14em;color:rgba(244,242,236,.5)}
.evs-title{font-family:Aldrich,sans-serif;font-size:clamp(19px,2.2vw,26px);letter-spacing:.03em;color:var(--paper);margin-top:7px;line-height:1.15}
.evs-excerpt{font-size:16.5px;font-style:italic;color:#ffd9dc;margin-top:6px;line-height:1.4}
.evs-def{font-size:12.5px;line-height:1.5;color:rgba(244,242,236,.66);margin-top:7px;max-width:56ch}
.evs-side{display:flex;flex-direction:column;gap:10px;justify-content:center}
.evs-src{font-family:"JetBrains Mono",monospace;font-size:11px;line-height:1.55;color:rgba(244,242,236,.72)}
.evs-srclab{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--red);margin-bottom:2px}
.evs-actions{display:flex;gap:8px;flex-wrap:wrap}
.evs-actions button{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.1em;padding:8px 12px;background:rgba(255,255,255,.05);color:var(--paper);border:1px solid rgba(255,255,255,.28);cursor:pointer}
.evs-actions button:hover{border-color:var(--red);background:rgba(230,57,70,.14)}
.evs-actions .evs-open{border-color:var(--red);color:#ffb3ba;margin-left:auto}
.evs-rel{display:flex;gap:7px;flex-wrap:wrap}
.evs-relchip{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.08em;padding:5px 9px;background:none;border:1px solid rgba(255,255,255,.22);color:rgba(244,242,236,.8);cursor:pointer}
.evs-relchip.contra{border-color:rgba(230,57,70,.6);color:#ffb3ba}
.evs-x{position:absolute;top:8px;right:12px;background:none;border:0;color:rgba(244,242,236,.55);font-size:22px;line-height:1;cursor:pointer;padding:6px}
.evs-x:hover{color:var(--paper)}
.rtag{transition:background .18s,color .18s,border-color .18s}
.rtag:hover{background:rgba(230,57,70,.2);border-color:var(--red);color:#fff}
.stack-card:hover,.led-row:hover{border-color:rgba(230,57,70,.55)}
@media (max-width:760px){ .evs-in{grid-template-columns:1fr;max-height:52vh;overflow-y:auto} .evs-actions .evs-open{margin-left:0} }
@media (prefers-reduced-motion: reduce){ #evSlip{transition:none} }

/* ============ TYPE DISCIPLINE + SLIP POLISH (2026-10-03, Johnny) ============
   The display face is ALWAYS caps — no exceptions for data-driven titles.
   Verbatim quotes (.ev-quote/.quote-big) keep their written case. */
.art-t,.big-line,.brand,.cd-title,.chapter,.chart-take,.closing,.ctiny,
.ev-chip-t,.ev-id,.evs-title,.hud-beat,.m-title,.principle-t,.ss-claim,
.ss-gapcount,.ss-pv,.ss-q,.ss-year,.fx-from,.fx-to,.wordfill,.cover,
.card-v,.cd-num,.counter,.crow-v,.mblock-v,.pass-v,.stack-v,.loop-n,.chnum
{text-transform:uppercase}
/* slip lighting: a lit top edge + a faint red bloom, deeper contrast below */
#evSlip{background:linear-gradient(180deg,rgba(20,16,20,.96),rgba(6,7,10,.985));
  box-shadow:0 -18px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,90,100,.45),inset 0 14px 34px -18px rgba(230,57,70,.28)}
.evs-def{color:rgba(244,242,236,.82)}
.evs-excerpt{color:#f6ecec}
/* inline audio inside the slip — one panel, press and it plays */
.evs-audio{margin-top:2px}
.evs-audio audio{width:100%;height:40px;display:block}
.evs-actions button.evs-playing{border-color:var(--red);background:rgba(230,57,70,.18);color:#ffb3ba}

/* ============ FULL-THREAD CHAT (2026-10-03): the whole conversation ============ */
.chat-body-thread{max-height:58vh;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
.chat-voice{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;border-style:dashed}
.chat-voice-n{display:block;font-size:8.5px;letter-spacing:.14em;opacity:.65;margin-top:5px}

/* ============ KINETIC HEADLINES (2026-10-03) ============ */
.mx h2.kin{opacity:1;transform:none}
.kin-l{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.kin-l>span{display:block;transform:translateY(112%);transition:transform .95s cubic-bezier(.19,.7,.22,1)}
h2.kin.in .kin-l>span{transform:none}
body.rm .kin-l>span{transform:none;transition:none}

/* ---------- THE PEOPLE: chat vignettes (verified messages, cascade on entry) ---------- */
.vig{max-width:880px;margin:72px auto;padding:0 20px}
.vig-head{margin-bottom:16px}
.vig-k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;color:var(--red);margin:0 0 6px}
.vig-name{font-family:Aldrich,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(30px,4.6vw,46px);line-height:1.02;margin:0 0 8px;color:#f2f4f6}
.vig-angle{margin:0;max-width:58ch;color:#c9ced4;font-size:16.5px;line-height:1.55}
.vig-frame{width:min(620px,100%);margin:0}
.vig-frame + .vig-frame{margin-top:20px}
.vig .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.vig.in .chat-row{opacity:1;transform:none}
/* ---- the co-owner board: five pinned case cards, one row, a breath of wind ---- */
.board{max-width:1180px;margin:64px auto 8px;padding:0 20px;text-align:center}
.board-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:0 0 26px}
.board-row{display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,1.8vw,26px);background:linear-gradient(180deg,#0b0e14,#07090e);border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:clamp(18px,3vw,34px) clamp(10px,2vw,26px) clamp(22px,3.4vw,38px);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -30px 60px rgba(0,0,0,.45),0 30px 60px rgba(0,0,0,.35)}
.pin-card{margin:0;height:clamp(290px,36vw,430px);opacity:0;transform:translateY(30px) rotate(var(--tilt,0deg));transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*110ms);cursor:pointer}
.pin-card:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:4px}
.board.in .pin-card{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}
.pin-sway{position:relative;display:block;height:100%;transform-origin:50% 3.5%;animation:pinsway 6.4s ease-in-out calc(var(--i,0)*-.9s) infinite alternate}
@keyframes pinsway{from{transform:rotate(-.55deg)}to{transform:rotate(.55deg)}}
.pin-card img{height:100%;width:auto;display:block;filter:drop-shadow(0 16px 20px rgba(0,0,0,.5));transform:perspective(720px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg));transition:transform .25s ease}
.pin-gloss{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 32%,rgba(255,255,255,.17) 47%,rgba(255,255,255,.04) 54%,transparent 66%);background-size:300% 100%;background-position:130% 0;opacity:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.board.in .pin-gloss{animation:glosssweep 1.6s ease calc(.6s + var(--i,0)*.11s) 1 both}
.pin-card:hover .pin-gloss{animation:glosssweep 1.1s ease 1 both}
@keyframes glosssweep{0%{background-position:130% 0;opacity:0}12%{opacity:1}88%{opacity:1}100%{background-position:-40% 0;opacity:0}}
body.rm .pin-sway{animation:none}
body.rm .pin-card{transition:opacity .3s ease}
/* board-live: JS drives the cards from scroll position + pointer (user-driven,
   so it runs under reduced motion too — only the autonomous sway stills) */
.board-live .pin-card{opacity:var(--bo,0);transform:translateY(calc((1 - var(--settle,0))*46px + var(--py,0px))) rotate(calc(var(--tilt,0deg) + var(--swing,0deg)));transition:none}
.vig-flash{animation:vigflash 1.7s ease}
@keyframes vigflash{0%,70%{box-shadow:0 0 0 2px rgba(242,244,246,.9)}100%{box-shadow:0 0 0 2px rgba(242,244,246,0)}}
body.rm .vig-flash{animation:none;box-shadow:0 0 0 2px rgba(242,244,246,.9)}
/* ---- inline full thread: the whole conversation, in the page ---- */
.threadbox{width:min(680px,100%);margin:36px auto 10px;text-align:left}
.tb-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;background:#0b0c0e;border:1px solid rgba(255,255,255,.22);border-radius:14px;color:var(--paper);font:600 11px 'JetBrains Mono',monospace;letter-spacing:.18em;cursor:pointer;transition:border-color .25s ease}
.tb-toggle:hover{border-color:rgba(255,255,255,.5)}
.tb-chev{display:inline-block;transition:transform .35s ease}
.threadbox.open .tb-chev{transform:rotate(180deg)}
.tb-panel{margin-top:16px}
.threadbox .chat-frame{width:min(560px,100%)}
body.rm .tb-chev{transition:none}
/* ---- THE PEOPLE, presented openly: one uniform frame per person,
   stacked in the page flow — no file hidden behind a click. The name
   bar is a jump index; the co-owner cards jump too. ---- */
.people-index{max-width:880px;margin:26px auto 8px;background:rgba(10,13,18,.85);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 14px}
.tp-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tp-person{font-family:"JetBrains Mono",monospace;font-weight:600;font-size:10.5px;letter-spacing:.13em;color:var(--dim);background:#12151c;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 14px;cursor:pointer;transition:color .25s ease,background .25s ease,border-color .25s ease}
.tp-person:hover{color:var(--paper);border-color:rgba(255,255,255,.4)}
.tp-person.on{color:#0b0c0e;background:var(--paper);border-color:var(--paper)}
.pf-frame{max-width:880px;margin:26px auto 8px;background:linear-gradient(180deg,#11141b,#0a0d12);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:14px;box-shadow:0 40px 80px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.pf-screen{background:#05070a;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:26px clamp(16px,4vw,38px) 30px}
.tp-issue .chat-row{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.tp-issue.on .chat-row{opacity:1;transform:none}
body.rm .tp-issue .chat-row{transition:none}
.tp-issue + .tp-issue{margin-top:28px}
.pf-screen .vig-frame{width:min(620px,100%)}
.pf-screen .vig-chips{margin-top:20px}
/* THE PEOPLE is a single-column stack inside the two-column page grid:
   every block spans both columns, or the grid seats them side by side
   and they overlap (the board-over-vignettes bug Johnny caught). */
.page.people-page .page-inner>*{grid-column:1/-1}
@media (prefers-reduced-motion:reduce){.pin-sway{animation:none}.pin-gloss{animation:none !important}}
@media (max-width:760px){.board-row{flex-wrap:wrap}.pin-card{height:238px}}
/* ---- the collapse peak: the July 5–6 confrontation, staged ---- */
.peak-scroll{position:relative;height:auto;margin:10px 0 0}
.peak-stage{position:static;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:visible;padding:64px 0 48px}
.peak-kicker{position:static;transform:none;font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);white-space:normal;z-index:3;margin:0 0 24px;text-align:center}
.peak-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 3vw;z-index:1}
.peak-backline{font-family:var(--font-display);font-size:clamp(46px,8.8vw,126px);line-height:.98;text-transform:uppercase;margin:0;color:rgba(255,59,48,0);-webkit-text-stroke:1.5px rgba(242,244,246,.15);transform:scale(.965)}
.peak-attr{font-family:var(--font-mono);font-size:11px;letter-spacing:.3em;color:var(--dim);margin:22px 0 0;opacity:0}
.peak-core{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px;padding:0 16px}
.peak-frame{width:min(640px,94vw)}
.peak-frame .chat-body{max-height:none;overflow:visible}
.peak-live .pk-row{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
.peak-live .pk-row.on{opacity:1;transform:none}
@media (max-width:760px){.peak-scroll{height:auto}.peak-stage{position:static;height:auto;padding:56px 0 8px;flex-direction:column}.peak-back{position:relative;inset:auto;order:-1;padding:0 0 26px}}
/* ---- scene plates: photographic exhibits woven into the data sections ---- */
.board-sign{position:absolute;left:35%;top:24%;width:29.7%;height:31.5%;display:flex;flex-direction:column;justify-content:center;gap:9%;text-align:center;pointer-events:none}
.bs-row{margin:0;display:flex;flex-direction:column;gap:2px}
.bs-lab{font-family:var(--font-display);font-size:10px;font-size:1.35cqw;letter-spacing:.28em;color:#96aac2}
.bs-num{font-family:var(--font-display);font-size:30px;font-size:3.9cqw;line-height:1;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.55),0 0 42px rgba(120,170,255,.25)}
.board-fx{left:20.3%;top:6.1%;width:59.4%;height:30.4%;gap:4%}
.bs-mid{font-family:var(--font-display);font-size:34px;font-size:5.4cqw;line-height:1;color:#f2f7ff;text-shadow:0 0 16px rgba(150,190,255,.55),0 0 42px rgba(120,170,255,.25)}
.bs-small{font-family:var(--font-display);font-size:13px;font-size:2cqw;letter-spacing:.14em;color:#c8d6e6;text-shadow:0 0 10px rgba(150,190,255,.4)}
/* arena rebuild (2026-10-05 fix round): slim slot, Johnny's stage art as the
   jumbotron, the audience numbers live on its screen and count up */
.vband-arena{height:125vh}
.vb-stage-arena{background:transparent;display:flex;align-items:center;justify-content:center}
.vb-frame{position:relative;flex:none;width:min(920px,94vw);container-type:inline-size;will-change:transform}
.vb-art{position:relative;display:block;width:100%;height:auto}
.board-jumbo{left:32%;top:30.5%;width:35%;height:39.5%;background:rgba(3,6,10,.34);border-radius:6px}
.board-jumbo.on{box-shadow:inset 0 0 42px rgba(120,170,255,.15)}
.vig-sub{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;color:#9aa3ad;margin:14px 2px 6px;line-height:1.7}
.vig-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
body.rm .vig .chat-row{transform:none;transition:opacity .3s ease;transition-delay:0s}

/* ===== FAMILY EXHIBIT SCREENSHOTS + FAMILY FILM (2026-10-04) ===== */

/* ===== THE FULL RECORD (2026-10-04) ===== */
.rec-frame{grid-column:1/-1;width:min(1120px,100%);margin:26px auto 0}
.rec-controls{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(242,244,246,.12);flex-wrap:wrap}
.rec-search{flex:1 1 220px;background:#0b0d10;border:1px solid rgba(242,244,246,.22);color:#f2f4f6;padding:10px 12px;font:inherit;font-size:13px;letter-spacing:.08em}
.rec-search::placeholder{color:rgba(242,244,246,.45)}
.rec-day{background:#0b0d10;border:1px solid rgba(242,244,246,.22);color:#f2f4f6;padding:10px;font:inherit;font-size:13px;letter-spacing:.06em}
.rec-status{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;opacity:.75}
.rec-body{max-height:72vh}
.rec-link{display:inline-block;margin-top:10px;background:none;border:1px solid rgba(242,244,246,.25);color:inherit;padding:8px 12px;font:inherit;font-size:12px;letter-spacing:.12em;cursor:pointer}
.rec-link:hover{border-color:rgba(242,244,246,.55)}
.threadbox .rec-link{margin:10px 0 2px}

/* cited-in-the-story marker inside The Record (doctrine 2026-10-04) */
.rec-cited{display:inline-block;margin-top:7px;font:600 9px 'JetBrains Mono',monospace;letter-spacing:.13em;color:#f0b7b3;background:rgba(255,59,48,.13);border:1px solid rgba(255,59,48,.4);padding:3px 7px;cursor:pointer}
.rec-cited:hover{background:rgba(255,59,48,.25)}

/* voice messages that carry their recovered audio (2026-10-04) */
.chat-audio{display:block;width:218px;max-width:100%;height:32px;margin-top:7px}

/* ===== HERO: FULL FRAME AT EVERY ASPECT (Johnny, 2026-10-04:
   "dont cut it at all") — the wide-screen cover experiment is
   REVERTED. The film is never cropped on any screen; the opening
   runs object-fit:contain with the blurred fill of his own footage
   behind it. The permanent wide answer is a true 21:9 master from
   Johnny, not a crop. ===== */

/* Record timeline — one bar per day, height ∝ count (2026-10-04) */
.rec-timeline{display:flex;align-items:flex-end;gap:1px;height:52px;margin:12px 2px 0}
.rec-tl-bar{flex:1 1 0;min-width:2px;background:#5a4632;border:0;padding:0;cursor:pointer}
.rec-tl-bar:hover{background:#c8b28a}
.rec-tl-bar.on{background:#e5484d}
.rec-tl-label{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.08em;color:#a08b6d;min-height:14px;margin-top:4px}

/* ===== HERO — JOHNNY'S CALL (2026-10-04): "Use my shit. Stretch
   to fit it." The hero film is now his dusty8 master (1.83:1).
   The blurred side-fill is GONE (his order). Screens up to the
   film's own ratio run the full frame untouched; wider screens
   STRETCH the film to fill edge-to-edge — no bars, no blur,
   no crop. ===== */
.hero-film-bg{display:none}
@media (min-aspect-ratio: 91/50){
  .hero-film{object-fit:fill}
}


/* ===== REVIEW PASS (Johnny, 2026-10-05) =====
   No hard picture edges anywhere; bands that didn't pay off are
   shorter; G2 builds from blueprint; the map draws its routes;
   a man falls off the Graph 3 building and does not land. */
/* edge feather: every film/plate melts into the page top and bottom */
.cine .film,.vband-stage .vb-film,.vband-stage .vb-img,.vband-stage .vb-plate,.vband-stage .vb-map-img{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%)}
.vband-short{height:160vh}
/* G2 build-up plates */
.vb-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vb-built{clip-path:inset(100% 0 0 0)}
.vband-grow .vb-tag{top:auto;bottom:9%}
/* facade faller */
.vb-faller{position:absolute;top:-14%;left:57%;width:clamp(150px,13vw,230px);aspect-ratio:624/416;z-index:5;opacity:0;pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.55))}
.vb-faller .vf{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.vb-faller .vf.act{opacity:1}
/* G5 ticket */
.vb-ticket{position:absolute;left:50%;top:15%;transform:translateX(-50%) rotate(-2deg);border:1.5px solid rgba(232,232,232,.42);background:rgba(5,8,13,.45);padding:2.4cqw 5cqw;opacity:0;transition:opacity .5s ease;z-index:3}
.vb-ticket.on{opacity:1}
.vb-ticket::after{content:"";position:absolute;left:12px;right:12px;bottom:11px;border-top:2px dashed rgba(232,232,232,.28)}
.vb-ticket-v{font-family:var(--font-display);font-size:clamp(46px,6.5vw,104px);line-height:1;color:#e8e8e8}
/* claimed-markets map: a true 2:1 panel so dots and routes stay registered */
.vband-map{height:175vh;container-type:inline-size}
.vband-map .vband-stage{height:50cqw;top:calc((100svh - 50cqw)/2)}
.vb-map-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vb-mapfx{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.vb-arc{fill:none;stroke:rgba(232,232,232,.55);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
.vb-dot{opacity:0;transition:opacity .45s ease}
.vb-dot.on{opacity:1}
.vb-dot .core{fill:#e8e8e8}
.vb-dot.hub .core{fill:var(--red)}
/* G1 icon dots */
.crow-track{position:relative}
.crow-dots{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:3px;z-index:2}
.crow-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.16);transition:background .45s ease}
.chart.in .crow-dots i.on{background:#f2f2f2}
.chart.in .crow-dots i.on:nth-child(2){transition-delay:0.07s}
.chart.in .crow-dots i.on:nth-child(3){transition-delay:0.14s}
.chart.in .crow-dots i.on:nth-child(4){transition-delay:0.21s}
.chart.in .crow-dots i.on:nth-child(5){transition-delay:0.28s}
.chart.in .crow-dots i.on:nth-child(6){transition-delay:0.35s}
.chart.in .crow-dots i.on:nth-child(7){transition-delay:0.42s}
.chart.in .crow-dots i.on:nth-child(8){transition-delay:0.49s}
.chart.in .crow-dots i.on:nth-child(9){transition-delay:0.56s}
.chart.in .crow-dots i.on:nth-child(10){transition-delay:0.63s}
/* work-audit hours diagram */
.audit-bars{margin:28px 0 4px}

/* ===== SERVICE STACK — Johnny's panels, 2026-10-05 ===== */
.svc-stack{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3.2vh,36px);margin:36px 0 10px}
.svc-title{width:min(720px,94%);height:auto;filter:drop-shadow(0 22px 44px rgba(0,0,0,.6))}
.svc-title.reveal{transform:translateY(30px) scale(.93)}
.svc-title.reveal.in{transform:none}
.svc-photo-row{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,30px);justify-content:center;align-items:flex-start;width:100%}
.svc-photo{margin:0;width:min(600px,100%)}
.svc-photo img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.svc-photo figcaption{margin-top:10px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.14em;line-height:1.7;color:rgba(255,255,255,.62);text-align:center}
.svc-lori{width:min(430px,92%);height:auto;filter:drop-shadow(0 22px 44px rgba(0,0,0,.6))}
.svc-strip{width:min(1000px,97%);height:auto;filter:drop-shadow(0 24px 48px rgba(0,0,0,.6))}
.svc-stack .svc-strip.reveal{opacity:0;transform:translateY(24px)}

.svc-stack .svc-strip.reveal.in{opacity:1;transform:none}
.svc-verdict{width:min(1120px,99%)}
.rm .svc-stack .svc-strip.reveal,.rm .svc-title.reveal{transform:none;opacity:1}
/* ===== POP BAND (population, replaces blueprint) ===== */
.vband-pop{height:170vh}
.vb-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,3vh,28px);text-align:center;padding:24px}
.pop-kicker{font-family:Aldrich,sans-serif;font-size:12px;letter-spacing:.42em;color:rgba(255,255,255,.55);margin:0}
.pop-row{display:flex;align-items:center;gap:clamp(18px,4vw,54px)}
.pop-v{font-family:Aldrich,sans-serif;font-size:clamp(54px,9vw,120px);line-height:1;color:#fff;margin:0}
.pop-name{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.3em;color:rgba(255,255,255,.6);margin:10px 0 0}
.pop-vs{font-family:Aldrich,sans-serif;font-size:clamp(16px,2.6vw,26px);color:#e8b34a;letter-spacing:.2em;margin:0}
/* ===== TICKET2 BAND (affordability rework) ===== */
.tk2-top{display:flex;align-items:baseline;gap:14px;opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.tk2-top.on{opacity:1;transform:none}
.tk2-v{font-family:Aldrich,sans-serif;font-size:clamp(60px,10vw,110px);color:#fff;line-height:1}
.tk2-k{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.34em;color:rgba(255,255,255,.6)}
.tk2-row{width:min(760px,92vw);opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.tk2-row.on{opacity:1;transform:none}
.tk2-lab{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.65);margin:0 0 8px}
.tk2-bar{position:relative;height:34px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.tk2-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:#c8a24a}
.tk2-fill.ph{background:#b3342a}
.tk2-pct{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:Aldrich,sans-serif;font-size:15px;color:#fff}
.tk2-take{font-family:Aldrich,sans-serif;font-size:clamp(18px,3.4vw,32px);letter-spacing:.06em;color:#fff;margin:6px 0 0;opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;max-width:min(820px,94vw)}
.tk2-take.on{opacity:1;transform:none}
.tk2-take b{color:#e8b34a}
/* ===== AUDIT PAYOFF ===== */
.payoff{margin:34px auto 6px;max-width:860px;text-align:center;padding:30px 22px;border:1px solid rgba(232,179,74,.35);background:linear-gradient(180deg,rgba(232,179,74,.07),rgba(0,0,0,0))}
.payoff-k{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.34em;color:#e8b34a;margin:0 0 12px}
.payoff-v{font-family:Aldrich,sans-serif;font-size:clamp(30px,5.4vw,54px);color:#fff;margin:0}
.payoff-eq{font-family:Aldrich,sans-serif;font-size:clamp(22px,4vw,38px);color:rgba(255,255,255,.85);margin:10px 0 0}
.payoff-big{color:#e8b34a;font-size:1.5em}
.payoff-sub{max-width:620px;margin:16px auto 0;color:rgba(255,255,255,.72);font-size:15px;line-height:1.7}
/* ===== CORP ===== */
.corp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:rgba(255,255,255,.14);margin:26px 0}
.corp-fact{background:#0a0d12;padding:18px}
.corp-k{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.5);margin:0 0 8px}
.corp-v{font-family:Aldrich,sans-serif;font-size:17px;color:#fff;margin:0;line-height:1.4}
.corp-link{color:#e8b34a}
.corp-exhibit{display:inline-block;margin-top:6px;padding:14px 26px;border:1px solid rgba(232,179,74,.6);color:#fff;font-family:Aldrich,sans-serif;letter-spacing:.18em;font-size:13px;text-decoration:none}
.corp-exhibit:hover{background:rgba(232,179,74,.12)}
/* ===== PEOPLE: uniform tablets + scroll spotlight ===== */
.pf-screen{height:clamp(560px,82vh,780px);overflow-y:auto;scrollbar-width:none}
.pf-frame{transition:opacity .45s ease,transform .45s ease,filter .45s ease}
.pf-frame:not(.pf-active){opacity:.45;transform:scale(.982);filter:saturate(.8)}
.pf-frame.pf-active{opacity:1;transform:none;filter:none}
.rm .pf-frame{transition:none}
.rm .pf-frame:not(.pf-active){opacity:1;transform:none;filter:none}

/* peak scene: static always-visible reconstruction (2026-10-05) */
.peak-live .pk-row{opacity:1;transform:none}

/* people stepper: one tablet at a time, slide on scroll (2026-10-05) */
.people-track{position:relative}
.people-stage{position:sticky;top:0;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.people-stage .pf-frame{position:absolute;width:min(880px,94vw);margin:0;opacity:0;transform:translateX(90px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.people-stage .pf-frame.pf-gone{transform:translateX(-90px)}
.people-stage .pf-frame.pf-active{opacity:1;transform:none;pointer-events:auto}
body.rm .people-stage .pf-frame{transition:none}
.people-stage .pf-frame .pf-screen{max-height:88svh}

/* corporate dossier: folder with tabs (2026-10-05) */
.dossier{max-width:1020px;margin:34px auto 0;background:linear-gradient(180deg,#14171d,#0c0f14);border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.5)}
.dos-tabs{display:flex;flex-wrap:wrap;gap:0;background:#080b0f;border-bottom:1px solid rgba(255,255,255,.12)}
.dos-tab{flex:1 1 auto;font-family:var(--font-display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);background:none;border:0;border-right:1px solid rgba(255,255,255,.08);padding:18px 14px;cursor:pointer;transition:color .25s,background .25s}
.dos-tab:last-child{border-right:0}
.dos-tab:hover{color:#fff}
.dos-tab.on{color:#ffb02e;background:rgba(255,176,46,.07);box-shadow:inset 0 -2px 0 #ffb02e}
.dos-panels{padding:clamp(22px,4vw,44px)}
.dos-panel{display:none}
.dos-panel.on{display:block;animation:dosIn .45s ease}
@keyframes dosIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.rm .dos-panel.on{animation:none}
.dos-lede{font-family:var(--font-display);font-size:clamp(18px,2.6vw,26px);letter-spacing:.06em;text-transform:uppercase;margin:0 0 22px;color:#fff}
.dos-points{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.dos-points p{margin:0;font-size:15px;line-height:1.65;color:var(--body,#d7dbe0)}
.dos-points strong{color:#ffb02e;font-weight:700}
.ctrl-bar{display:flex;border-radius:10px;overflow:hidden;margin:6px 0 4px;min-height:96px}
.ctrl-kemp{flex:0 0 75%;background:linear-gradient(180deg,rgba(255,176,46,.30),rgba(255,176,46,.12));display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px;border-right:1px solid rgba(255,255,255,.16)}
.ctrl-kemp span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:#fff}
.ctrl-kemp em,.ctrl-rest em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;color:var(--dim)}
.ctrl-rest{flex:1;background:rgba(255,255,255,.03);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px}
.ctrl-rest span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:var(--dim)}
.reg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:26px}
.reg-link{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:10px;background:rgba(255,255,255,.02);text-decoration:none;transition:border-color .25s,background .25s}
.reg-link:hover{border-color:#ffb02e;background:rgba(255,176,46,.06)}
.reg-link span{font-family:var(--font-display);font-size:13px;letter-spacing:.18em;color:#fff}
.reg-link em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--dim)}
.dos-panel .corp-grid{margin:0}
.dos-panel .note{margin-top:22px}
@media (max-width:640px){.dos-tab{font-size:10px;padding:14px 8px;letter-spacing:.12em}.ctrl-bar{flex-direction:column}.ctrl-kemp{flex:none;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}}

/* pass2: mobile table guard */
table.data{max-width:100%;display:block;overflow-x:auto}

/* pass4: skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:#ffb02e;color:#000;font-family:var(--font-display);font-size:13px;letter-spacing:.15em;padding:12px 20px;z-index:9999;text-decoration:none}
.skip-link:focus{left:0}

/* seam-killer 2026-10-05: uniform black page backgrounds, no color bands */

/* service: photo on top, sidebar on side, content in middle (2026-10-05 fix) */
.page.service-page .page-inner{display:grid;grid-template-columns:300px 1fr;gap:64px}
.page.service-page .svc-head{grid-column:1/3;grid-row:1;margin:0;display:flex;flex-direction:row;gap:32px;align-items:start;min-width:0}
.page.service-page .svc-hero{margin:0;max-width:100%;flex:1;min-width:0}
.svc-hero img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#000}
.svc-hero figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--dim);margin-top:12px;text-transform:uppercase;text-align:center}
.page.service-page .svc-head .svc-lori{width:min(380px,40%);height:auto;margin:0;opacity:1;filter:none;flex-shrink:0}
.page.service-page .rail-facts{position:sticky;top:110px;align-self:start}
.page.service-page .rail-facts dl{display:block}
.svc-stack{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(28px,4vh,44px)}
.svc-title{width:min(680px,94%);height:auto}
.svc-lori{width:min(420px,88%);height:auto;opacity:.92}
.svc-strip{width:min(860px,100%);height:auto}
.svc-verdict{width:min(860px,100%);height:auto}
@media (max-width:900px){.page.service-page .page-inner{grid-template-columns:1fr;gap:40px}.page.service-page .rail-facts{position:static}}
@media (max-width:900px){.page.service-page .svc-head,.page.service-page .rail-facts,.page.service-page .prose{grid-column:1;grid-row:auto;position:static}}

/* redesigned title: pure HTML, zero seams (2026-10-05) */
.svc-title-html{text-align:center;margin:0 auto;max-width:760px}
.sth-top{display:flex;align-items:center;justify-content:center;gap:18px}
.sth-15{font-family:var(--font-display);font-size:clamp(72px,10vw,128px);line-height:.9;color:#e5322b;text-shadow:0 4px 0 #7a0f0b,0 10px 30px rgba(0,0,0,.6)}
.sth-years{font-family:var(--font-display);font-size:clamp(38px,5.4vw,68px);line-height:.95;color:#f2f4f6;text-align:left;text-shadow:0 3px 0 #111,0 8px 24px rgba(0,0,0,.6)}
.sth-sub{font-family:var(--font-display);font-size:clamp(18px,2.6vw,30px);letter-spacing:.06em;color:#f2f4f6;margin-top:14px;padding-top:12px;border-top:3px solid #e8b34b;display:inline-block}
.sth-sub em{font-style:normal;color:#e8b34b}

/* peak: remove overlapping backdrop, clean stack (2026-10-05) */
.peak-back{display:none}
.peak-kicker{position:static;transform:none;margin:0 0 24px;text-align:center}
.peak-core{width:100%}

/* people fixes: hide scrollbars, Arial only in bubbles, real slides (2026-10-05) */
.tablet-screen{scrollbar-width:none;-ms-overflow-style:none}
.tablet-screen::-webkit-scrollbar{display:none;width:0}
.chat-bubble{font-family:var(--font-body)}
.pf-frame{transition:transform .6s cubic-bezier(.22,.9,.28,1),opacity .6s !important}
.pf-frame.pf-gone{transform:translateX(-80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame:not(.pf-active):not(.pf-gone){transform:translateX(80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame.pf-active{transform:translateX(0) !important;opacity:1 !important}

/* debt + breaches (2026-10-05) */
.debt-rows{max-width:560px;margin:18px auto 8px;text-align:left}
.debt-row{display:flex;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:15px}
.debt-row span:last-child{font-family:var(--font-mono);white-space:nowrap}
.debt-total{border-bottom:2px solid var(--ink);font-weight:600}
.debt-paid{color:var(--dim)}
.debt-out{font-size:19px;font-weight:700;border-bottom:none;padding-top:14px}
.debt-out span:last-child{color:var(--red);font-size:24px}
.breaches{max-width:560px;margin:32px auto 0;text-align:left}
.breaches-k{font-family:var(--font-display);font-size:14px;letter-spacing:.18em;color:var(--red);margin-bottom:12px}
.breaches ul{list-style:none;padding:0}
.breaches li{padding:10px 0 10px 24px;position:relative;border-bottom:1px solid var(--line);font-size:15px}
.breaches li:before{content:"";position:absolute;left:4px;top:18px;width:8px;height:8px;background:var(--red)}

/* ============ CORPORATE FOLDER (3D) ============ */
.corp-folder{perspective:1400px;max-width:900px;margin:40px auto;position:relative}
.cf-tab{background:#c8a951;color:#1a1408;font-family:var(--font-display);font-size:13px;letter-spacing:.2em;padding:10px 28px;display:inline-block;border-radius:8px 8px 0 0;margin-left:40px;position:relative;z-index:1}
.cf-body{background:#d4af5f;border-radius:6px;padding:36px 32px 28px;position:relative;transform-style:preserve-3d;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cf-back{position:absolute;inset:0;background:#b8944a;border-radius:6px;transform:translateZ(-30px)}
.cf-papers{position:relative;transform-style:preserve-3d;min-height:420px}
.cf-paper{background:#f5f1e8;color:#1a1a1a;border-radius:2px;padding:32px 36px;box-shadow:0 4px 24px rgba(0,0,0,.25);position:absolute;inset:0;transform:translateZ(0) translateY(20px);opacity:0;transition:transform .7s cubic-bezier(.22,.9,.28,1),opacity .7s;overflow-y:auto;max-height:520px}
.cf-paper.on{transform:translateZ(40px) translateY(0);opacity:1;z-index:5}
.cf-paper .corp-k{color:#8a6d1f}
.cf-paper .corp-v{color:#111}
.cf-paper .note{color:#444}
.cf-paper a{color:#8a1f1f}
.cf-front{position:absolute;inset:0;background:linear-gradient(180deg,#d4af5f,#c09a4e);border-radius:6px;transform-origin:bottom center;transition:transform 1s cubic-bezier(.22,.9,.28,1);z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 -10px 40px rgba(0,0,0,.3)}
.cf-front .cf-label{font-family:var(--font-display);font-size:clamp(20px,3vw,32px);letter-spacing:.1em;color:#3a2c10;text-align:center;padding:20px}
.corp-folder.open .cf-front{transform:rotateX(-75deg)}
.cf-index{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap;position:relative;z-index:20}
.cf-idx{background:transparent;border:1px solid #8a6d1f;color:#3a2c10;font-family:var(--font-display);font-size:12px;letter-spacing:.14em;padding:10px 20px;cursor:pointer;border-radius:4px;transition:all .3s}
.cf-idx:hover,.cf-idx.on{background:#3a2c10;color:#f5f1e8}
@media (max-width:700px){.cf-body{padding:24px 18px}.cf-paper{padding:24px 20px}}

.tk2-fill.ng{background:#ff9f1c}.tk2-fill.np{background:#ff3b30}

/* ============ UX PACKAGE ============ */
#uxProgress{position:fixed;top:0;left:0;height:3px;background:#e8b34b;width:0;z-index:9999;transition:width .1s linear}
#uxTop{position:fixed;bottom:28px;right:28px;width:48px;height:48px;border-radius:50%;background:#111;border:1px solid #2a3238;color:#f2f4f6;font-size:20px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s;z-index:9000}
#uxTop.show{opacity:1;pointer-events:auto}
#uxTop:hover{background:#e5322b;border-color:#e5322b}
#uxChapters{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);z-index:9500;display:none;overflow-y:auto;padding:60px 20px}
#uxChapters.open{display:block}
.ux-ch-grid{max-width:800px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ux-ch{background:#111;border:1px solid #2a3238;padding:18px;border-radius:6px;color:#f2f4f6;text-decoration:none;transition:border-color .2s}
.ux-ch:hover{border-color:#e5322b}
.ux-ch .ux-ch-n{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.1em}
.ux-ch .ux-ch-t{font-family:'Aldrich',sans-serif;font-size:15px;margin-top:6px}
.ux-ch-close{position:fixed;top:20px;right:28px;background:none;border:none;color:#f2f4f6;font-size:32px;cursor:pointer}
.ux-share{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid #2a3238;color:#9aa4ad;font-size:12px;letter-spacing:.12em;padding:8px 16px;border-radius:4px;cursor:pointer;text-transform:uppercase;margin-top:16px}
.ux-share:hover{color:#f2f4f6;border-color:#e5322b}
.nav a.active{color:#e5322b}

/* ============ COMPREHENSIBILITY ============ */
[data-tip]{position:relative;border-bottom:1px dotted var(--dim);cursor:help}
[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#111;border:1px solid #e5322b;color:#f2f4f6;font-size:13px;padding:10px 14px;border-radius:4px;white-space:normal;width:240px;z-index:100;text-transform:none;letter-spacing:0;line-height:1.5}
.cast-card{background:#111;border:1px solid #2a3238;border-radius:8px;padding:28px;margin:32px auto;max-width:720px}
.cast-card h4{font-family:'Aldrich',sans-serif;font-size:16px;letter-spacing:.1em;margin-bottom:16px;color:#e5322b}
.cast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.cast-p{background:#0a0a0a;border:1px solid #222;padding:14px;border-radius:4px}
.cast-p .cp-n{font-size:14px;font-weight:600}
.cast-p .cp-r{font-size:12px;color:#9aa4ad;margin-top:4px}
.rtag{position:relative}
.rtag .rn{font-size:10px;vertical-align:super;color:#e5322b;margin-left:2px}
.read-time{font-family:'JetBrains Mono',monospace;font-size:11px;color:#5a636b;letter-spacing:.1em;margin-bottom:12px}

/* ============ SCROLLYTELLING: debt counter, chat replay, card flip, credits ============ */
/* debt counter */
.debt-count-wrap{text-align:center;margin:24px auto;max-width:560px}
.debt-count{font-family:'JetBrains Mono',monospace;font-size:clamp(40px,7vw,72px);color:#e5322b;font-weight:700}
.debt-count-lab{font-size:13px;letter-spacing:.18em;color:#9aa4ad;text-transform:uppercase;margin-top:8px}
/* chat replay */
.replay-wrap{max-width:560px;margin:0 auto}
.replay-bubble{max-width:78%;padding:9px 13px;border-radius:19px;font-size:14.5px;line-height:1.45;
  background:#232529;color:#e8ebee;margin:8px 0;opacity:0;transform:translateY(14px);
  transition:opacity .4s,transform .4s;font-family:var(--font-body)}
.replay-bubble.right{margin-left:auto;background:#2f6db3;color:#fff}
.replay-bubble.show{opacity:1;transform:none}
.replay-typing{display:inline-block;padding:12px 16px;background:#232529;border-radius:19px;margin:8px 0}
.replay-typing span{display:inline-block;width:8px;height:8px;background:#9aa4ad;border-radius:50%;margin:0 2px;animation:rtblink 1s infinite}
.replay-typing span:nth-child(2){animation-delay:.2s}.replay-typing span:nth-child(3){animation-delay:.4s}
@keyframes rtblink{0%,100%{opacity:.3}50%{opacity:1}}
.replay-who{font-size:11px;color:#9aa4ad;letter-spacing:.1em;margin:12px 0 2px;text-transform:uppercase}
/* card flip */
.rtag{perspective:400px;display:inline-block}
.rtag-flip{position:relative;transform-style:preserve-3d;transition:transform .5s;display:inline-block}
.rtag:hover .rtag-flip{transform:rotateY(180deg)}
.rtag-face{backface-visibility:hidden;display:inline-block}
.rtag-back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;
  background:#e5322b;color:#fff;font-size:10px;padding:2px 6px;border-radius:3px;white-space:nowrap}
/* end credits */
.credits{background:#000;color:#f2f4f6;text-align:center;padding:80px 20px;overflow:hidden}
.credits-roll{display:inline-block;text-align:center;animation:creditsUp 40s linear infinite}
.credits-roll p{margin:14px 0;font-size:15px}
.credits-roll .cr-k{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.2em;margin-top:32px}
.credits-roll .cr-t{font-family:'Aldrich',sans-serif;font-size:20px;letter-spacing:.06em;margin:24px 0 8px}
@keyframes creditsUp{from{transform:translateY(30%)}to{transform:translateY(-70%)}}
@media (prefers-reduced-motion:reduce){.credits-roll{animation:none}}

.page.service-page .rail-facts{grid-column:1;grid-row:2;position:sticky;top:110px;align-self:start;min-width:0}
.page.service-page .prose{grid-column:2;grid-row:1/span 2;min-width:0}

/* paper-trail contrast fixes: dark ink on cream paper */
.cf-paper .dos-lede{color:#1a1a1a}
.cf-paper .dos-points p{color:#333}
.cf-paper .dos-points strong{color:#8a6d1f}
.cf-paper .ctrl-rest span,.cf-paper .ctrl-kemp em,.cf-paper .ctrl-rest em{color:#5a5142}
.cf-paper .ctrl-kemp span{color:#3a1410}
.cf-paper .rtag{color:#3a2c10;border-color:rgba(58,44,16,.45)}
.cf-paper .rtag-face{color:#3a2c10}
.cf-num{font-family:var(--font-mono);font-weight:700;background:rgba(138,109,31,.14);padding:2px 8px;border-radius:3px;letter-spacing:.08em}
/* inline exhibit drawer */
.cf-exhibit-drawer{margin-top:16px;border:1px solid rgba(58,44,16,.35);border-radius:4px;overflow:hidden;background:#fff}
.cf-exhibit-drawer iframe{width:100%;height:min(70vh,640px);border:0;display:block;background:#fff}
button.corp-exhibit{font:inherit;cursor:pointer}
/* reduced-motion dossier: all sheets stacked, no cycling */
body.rm #pageCorp .cf-paper{position:relative;inset:auto;opacity:1;transform:none;margin-bottom:24px;max-height:none;overflow:visible}
body.rm #pageCorp .cf-index{display:none}

.pf-screen::-webkit-scrollbar{display:none}
.pf-next{display:block;margin:24px auto 8px;padding:12px 28px;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;font-family:var(--font-display);font-size:12px;letter-spacing:.2em;cursor:pointer}
.pf-skip{display:block;text-align:center;margin:18px auto 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.25em;color:var(--dim);text-decoration:none}

#pageDossier{padding-top:clamp(40px,6vh,72px)}
.cine-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12);z-index:6;pointer-events:none}
.cine-progress i{display:block;height:100%;background:#e8b34b;transform:scaleX(0);transform-origin:left}

/* ============ NARRATION LAYER (2026-10-05) ============
   Per-chapter LISTEN buttons. Audio files land in assets/narration/
   as narr-ch01.mp3..narr-ch20.mp3. Buttons injected by app.js. */
section[id]{position:relative}
.narr-wrap{position:absolute;top:14px;right:16px;z-index:60}
.narr-btn{font-family:'Aldrich',sans-serif;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(0,0,0,.55);color:#e8b34a;border:1px solid rgba(232,179,74,.45);border-radius:2px;
  padding:0 10px;height:30px;min-height:30px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.narr-btn:hover{background:#e8b34a;color:#000}
.narr-btn.playing{background:#e8b34a;color:#000}
.narr-btn:disabled{opacity:.45;cursor:default}
.narr-btn .narr-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.narr-btn.playing .narr-dot{animation:narrPulse 1.2s ease-in-out infinite}
@keyframes narrPulse{0%,100%{opacity:1}50%{opacity:.25}}
@media (max-width:900px){.narr-wrap{top:10px;right:10px}.narr-btn{font-size:10px;padding:7px 10px}}
@media (prefers-reduced-motion:reduce){.narr-btn.playing .narr-dot{animation:none}}

/* hardline fix 2026-10-05: static gradient veils guarantee every cine boundary blends,
   even if JS/video fails. Uses each cine's own --din/--dout (set inline per section). */
.cine::before{content:"";position:absolute;top:0;left:0;right:0;height:22vh;z-index:4;pointer-events:none;background:linear-gradient(180deg,var(--din,#000),rgba(0,0,0,0))}
.cine::after{content:"";position:absolute;bottom:0;left:0;right:0;height:22vh;z-index:4;pointer-events:none;background:linear-gradient(0deg,var(--dout,#000),rgba(0,0,0,0))}

/* hardline fix 2026-10-05: LISTEN button lives in content flow below the kicker, not the corner */
.narr-wrap.inflow{position:static;top:auto;right:auto;margin:6px 0 24px;z-index:1}

/* visualfix2-20261005: full-bleed dossier section */
.page.dossier{max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;overflow:visible}
/* visualfix2-20261005: hide fixed header.nav while hero is in view */
header.nav{transition:background .3s,opacity .35s ease,transform .35s ease}
header.nav.nav-hidden{transform:translateY(-110%);opacity:0;pointer-events:none}
/* visualfix2-20261005: explicit approved fonts for dossier (no Arial fallback ambiguity) */
.cf-paper{font-family:'Geist',sans-serif}
.cf-paper .dos-lede,.cf-paper h3{font-family:'Aldrich',sans-serif}
.cf-paper .corp-k,.cf-paper .k{font-family:'JetBrains Mono',monospace}

/* visualfix3-20261005: no visible inner scrollbars anywhere */
.ev-body,.raw-doc-text,.ev-stage,.ev-rail,.chat-body-thread,.cf-paper,.evs-in,#uxChapters,#glossPop,.mega{scrollbar-width:none!important;-ms-overflow-style:none}
.ev-body::-webkit-scrollbar,.raw-doc-text::-webkit-scrollbar,.ev-stage::-webkit-scrollbar,.ev-rail::-webkit-scrollbar,.chat-body-thread::-webkit-scrollbar,.cf-paper::-webkit-scrollbar,.evs-in::-webkit-scrollbar,#uxChapters::-webkit-scrollbar,#glossPop::-webkit-scrollbar,.mega::-webkit-scrollbar{display:none!important}
.dos-tab:last-child{border-right:0}
.dos-tab:hover{color:#fff}
.dos-tab.on{color:#ffb02e;background:rgba(255,176,46,.07);box-shadow:inset 0 -2px 0 #ffb02e}
.dos-panels{padding:clamp(22px,4vw,44px)}
.dos-panel{display:none}
.dos-panel.on{display:block;animation:dosIn .45s ease}
@keyframes dosIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.rm .dos-panel.on{animation:none}
.dos-lede{font-family:var(--font-display);font-size:clamp(18px,2.6vw,26px);letter-spacing:.06em;text-transform:uppercase;margin:0 0 22px;color:#fff}
.dos-points{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.dos-points p{margin:0;font-size:15px;line-height:1.65;color:var(--body,#d7dbe0)}
.dos-points strong{color:#ffb02e;font-weight:700}
.ctrl-bar{display:flex;border-radius:10px;overflow:hidden;margin:6px 0 4px;min-height:96px}
.ctrl-kemp{flex:0 0 75%;background:linear-gradient(180deg,rgba(255,176,46,.30),rgba(255,176,46,.12));display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px;border-right:1px solid rgba(255,255,255,.16)}
.ctrl-kemp span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:#fff}
.ctrl-kemp em,.ctrl-rest em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.24em;color:var(--dim)}
.ctrl-rest{flex:1;background:rgba(255,255,255,.03);display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 22px}
.ctrl-rest span{font-family:var(--font-display);font-size:clamp(15px,2vw,20px);letter-spacing:.08em;color:var(--dim)}
.reg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:26px}
.reg-link{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:10px;background:rgba(255,255,255,.02);text-decoration:none;transition:border-color .25s,background .25s}
.reg-link:hover{border-color:#ffb02e;background:rgba(255,176,46,.06)}
.reg-link span{font-family:var(--font-display);font-size:13px;letter-spacing:.18em;color:#fff}
.reg-link em{font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--dim)}
.dos-panel .corp-grid{margin:0}
.dos-panel .note{margin-top:22px}
@media (max-width:640px){.dos-tab{font-size:10px;padding:14px 8px;letter-spacing:.12em}.ctrl-bar{flex-direction:column}.ctrl-kemp{flex:none;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}}

/* pass2: mobile table guard */
table.data{max-width:100%;display:block;overflow-x:auto}

/* pass4: skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:#ffb02e;color:#000;font-family:var(--font-display);font-size:13px;letter-spacing:.15em;padding:12px 20px;z-index:9999;text-decoration:none}
.skip-link:focus{left:0}

/* seam-killer 2026-10-05: uniform black page backgrounds, no color bands */

/* service: photo on top, sidebar on side, content in middle (2026-10-05 fix) */
.page.service-page .page-inner{display:grid;grid-template-columns:300px 1fr;gap:64px}
.page.service-page .svc-head{grid-column:1/3;grid-row:1;margin:0;display:flex;flex-direction:row;gap:32px;align-items:start;min-width:0}
.page.service-page .svc-hero{margin:0;max-width:100%;flex:1;min-width:0}
.svc-hero img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#000}
.svc-hero figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--dim);margin-top:12px;text-transform:uppercase;text-align:center}
.page.service-page .svc-head .svc-lori{width:min(380px,40%);height:auto;margin:0;opacity:1;filter:none;flex-shrink:0}
.page.service-page .rail-facts{position:sticky;top:110px;align-self:start}
.page.service-page .rail-facts dl{display:block}
.svc-stack{width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(28px,4vh,44px)}
.svc-title{width:min(680px,94%);height:auto}
.svc-lori{width:min(420px,88%);height:auto;opacity:.92}
.svc-strip{width:min(860px,100%);height:auto}
.svc-verdict{width:min(860px,100%);height:auto}
@media (max-width:900px){.page.service-page .page-inner{grid-template-columns:1fr;gap:40px}.page.service-page .rail-facts{position:static}}
@media (max-width:900px){.page.service-page .svc-head,.page.service-page .rail-facts,.page.service-page .prose{grid-column:1;grid-row:auto;position:static}}

/* redesigned title: pure HTML, zero seams (2026-10-05) */
.svc-title-html{text-align:center;margin:0 auto;max-width:760px}
.sth-top{display:flex;align-items:center;justify-content:center;gap:18px}
.sth-15{font-family:var(--font-display);font-size:clamp(72px,10vw,128px);line-height:.9;color:#e5322b;text-shadow:0 4px 0 #7a0f0b,0 10px 30px rgba(0,0,0,.6)}
.sth-years{font-family:var(--font-display);font-size:clamp(38px,5.4vw,68px);line-height:.95;color:#f2f4f6;text-align:left;text-shadow:0 3px 0 #111,0 8px 24px rgba(0,0,0,.6)}
.sth-sub{font-family:var(--font-display);font-size:clamp(18px,2.6vw,30px);letter-spacing:.06em;color:#f2f4f6;margin-top:14px;padding-top:12px;border-top:3px solid #e8b34b;display:inline-block}
.sth-sub em{font-style:normal;color:#e8b34b}

/* peak: remove overlapping backdrop, clean stack (2026-10-05) */
.peak-back{display:none}
.peak-kicker{position:static;transform:none;margin:0 0 24px;text-align:center}
.peak-core{width:100%}

/* people fixes: hide scrollbars, Arial only in bubbles, real slides (2026-10-05) */
.tablet-screen{scrollbar-width:none;-ms-overflow-style:none}
.tablet-screen::-webkit-scrollbar{display:none;width:0}
.chat-bubble{font-family:var(--font-body)}
.pf-frame{transition:transform .6s cubic-bezier(.22,.9,.28,1),opacity .6s !important}
.pf-frame.pf-gone{transform:translateX(-80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame:not(.pf-active):not(.pf-gone){transform:translateX(80px) !important;opacity:0 !important;pointer-events:none}
.pf-frame.pf-active{transform:translateX(0) !important;opacity:1 !important}

/* debt + breaches (2026-10-05) */
.debt-rows{max-width:560px;margin:18px auto 8px;text-align:left}
.debt-row{display:flex;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:15px}
.debt-row span:last-child{font-family:var(--font-mono);white-space:nowrap}
.debt-total{border-bottom:2px solid var(--ink);font-weight:600}
.debt-paid{color:var(--dim)}
.debt-out{font-size:19px;font-weight:700;border-bottom:none;padding-top:14px}
.debt-out span:last-child{color:var(--red);font-size:24px}
.breaches{max-width:560px;margin:32px auto 0;text-align:left}
.breaches-k{font-family:var(--font-display);font-size:14px;letter-spacing:.18em;color:var(--red);margin-bottom:12px}
.breaches ul{list-style:none;padding:0}
.breaches li{padding:10px 0 10px 24px;position:relative;border-bottom:1px solid var(--line);font-size:15px}
.breaches li:before{content:"";position:absolute;left:4px;top:18px;width:8px;height:8px;background:var(--red)}

/* ============ CORPORATE FOLDER (3D) ============ */
.corp-folder{perspective:1400px;max-width:900px;margin:40px auto;position:relative}
.cf-tab{background:#c8a951;color:#1a1408;font-family:var(--font-display);font-size:13px;letter-spacing:.2em;padding:10px 28px;display:inline-block;border-radius:8px 8px 0 0;margin-left:40px;position:relative;z-index:1}
.cf-body{background:#d4af5f;border-radius:6px;padding:36px 32px 28px;position:relative;transform-style:preserve-3d;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cf-back{position:absolute;inset:0;background:#b8944a;border-radius:6px;transform:translateZ(-30px)}
.cf-papers{position:relative;transform-style:preserve-3d;min-height:420px}
.cf-paper{background:#f5f1e8;color:#1a1a1a;border-radius:2px;padding:32px 36px;box-shadow:0 4px 24px rgba(0,0,0,.25);position:absolute;inset:0;transform:translateZ(0) translateY(20px);opacity:0;transition:transform .7s cubic-bezier(.22,.9,.28,1),opacity .7s;overflow-y:auto;max-height:520px}
.cf-paper.on{transform:translateZ(40px) translateY(0);opacity:1;z-index:5}
.cf-paper .corp-k{color:#8a6d1f}
.cf-paper .corp-v{color:#111}
.cf-paper .note{color:#444}
.cf-paper a{color:#8a1f1f}
.cf-front{position:absolute;inset:0;background:linear-gradient(180deg,#d4af5f,#c09a4e);border-radius:6px;transform-origin:bottom center;transition:transform 1s cubic-bezier(.22,.9,.28,1);z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 -10px 40px rgba(0,0,0,.3)}
.cf-front .cf-label{font-family:var(--font-display);font-size:clamp(20px,3vw,32px);letter-spacing:.1em;color:#3a2c10;text-align:center;padding:20px}
.corp-folder.open .cf-front{transform:rotateX(-75deg)}
.cf-index{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap;position:relative;z-index:20}
.cf-idx{background:transparent;border:1px solid #8a6d1f;color:#3a2c10;font-family:var(--font-display);font-size:12px;letter-spacing:.14em;padding:10px 20px;cursor:pointer;border-radius:4px;transition:all .3s}
.cf-idx:hover,.cf-idx.on{background:#3a2c10;color:#f5f1e8}
@media (max-width:700px){.cf-body{padding:24px 18px}.cf-paper{padding:24px 20px}}

.tk2-fill.ng{background:#ff9f1c}.tk2-fill.np{background:#ff3b30}

/* ============ UX PACKAGE ============ */
#uxProgress{position:fixed;top:0;left:0;height:3px;background:#e8b34b;width:0;z-index:9999;transition:width .1s linear}
#uxTop{position:fixed;bottom:28px;right:28px;width:48px;height:48px;border-radius:50%;background:#111;border:1px solid #2a3238;color:#f2f4f6;font-size:20px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s;z-index:9000}
#uxTop.show{opacity:1;pointer-events:auto}
#uxTop:hover{background:#e5322b;border-color:#e5322b}
#uxChapters{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.92);z-index:9500;display:none;overflow-y:auto;padding:60px 20px}
#uxChapters.open{display:block}
.ux-ch-grid{max-width:800px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ux-ch{background:#111;border:1px solid #2a3238;padding:18px;border-radius:6px;color:#f2f4f6;text-decoration:none;transition:border-color .2s}
.ux-ch:hover{border-color:#e5322b}
.ux-ch .ux-ch-n{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.1em}
.ux-ch .ux-ch-t{font-family:'Aldrich',sans-serif;font-size:15px;margin-top:6px}
.ux-ch-close{position:fixed;top:20px;right:28px;background:none;border:none;color:#f2f4f6;font-size:32px;cursor:pointer}
.ux-share{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid #2a3238;color:#9aa4ad;font-size:12px;letter-spacing:.12em;padding:8px 16px;border-radius:4px;cursor:pointer;text-transform:uppercase;margin-top:16px}
.ux-share:hover{color:#f2f4f6;border-color:#e5322b}
.nav a.active{color:#e5322b}

/* ============ COMPREHENSIBILITY ============ */
[data-tip]{position:relative;border-bottom:1px dotted var(--dim);cursor:help}
[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#111;border:1px solid #e5322b;color:#f2f4f6;font-size:13px;padding:10px 14px;border-radius:4px;white-space:normal;width:240px;z-index:100;text-transform:none;letter-spacing:0;line-height:1.5}
.cast-card{background:#111;border:1px solid #2a3238;border-radius:8px;padding:28px;margin:32px auto;max-width:720px}
.cast-card h4{font-family:'Aldrich',sans-serif;font-size:16px;letter-spacing:.1em;margin-bottom:16px;color:#e5322b}
.cast-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.cast-p{background:#0a0a0a;border:1px solid #222;padding:14px;border-radius:4px}
.cast-p .cp-n{font-size:14px;font-weight:600}
.cast-p .cp-r{font-size:12px;color:#9aa4ad;margin-top:4px}
.rtag{position:relative}
.rtag .rn{font-size:10px;vertical-align:super;color:#e5322b;margin-left:2px}
.read-time{font-family:'JetBrains Mono',monospace;font-size:11px;color:#5a636b;letter-spacing:.1em;margin-bottom:12px}

/* ============ SCROLLYTELLING: debt counter, chat replay, card flip, credits ============ */
/* debt counter */
.debt-count-wrap{text-align:center;margin:24px auto;max-width:560px}
.debt-count{font-family:'JetBrains Mono',monospace;font-size:clamp(40px,7vw,72px);color:#e5322b;font-weight:700}
.debt-count-lab{font-size:13px;letter-spacing:.18em;color:#9aa4ad;text-transform:uppercase;margin-top:8px}
/* chat replay */
.replay-wrap{max-width:560px;margin:0 auto}
.replay-bubble{max-width:78%;padding:9px 13px;border-radius:19px;font-size:14.5px;line-height:1.45;
  background:#232529;color:#e8ebee;margin:8px 0;opacity:0;transform:translateY(14px);
  transition:opacity .4s,transform .4s;font-family:var(--font-body)}
.replay-bubble.right{margin-left:auto;background:#2f6db3;color:#fff}
.replay-bubble.show{opacity:1;transform:none}
.replay-typing{display:inline-block;padding:12px 16px;background:#232529;border-radius:19px;margin:8px 0}
.replay-typing span{display:inline-block;width:8px;height:8px;background:#9aa4ad;border-radius:50%;margin:0 2px;animation:rtblink 1s infinite}
.replay-typing span:nth-child(2){animation-delay:.2s}.replay-typing span:nth-child(3){animation-delay:.4s}
@keyframes rtblink{0%,100%{opacity:.3}50%{opacity:1}}
.replay-who{font-size:11px;color:#9aa4ad;letter-spacing:.1em;margin:12px 0 2px;text-transform:uppercase}
/* card flip */
.rtag{perspective:400px;display:inline-block}
.rtag-flip{position:relative;transform-style:preserve-3d;transition:transform .5s;display:inline-block}
.rtag:hover .rtag-flip{transform:rotateY(180deg)}
.rtag-face{backface-visibility:hidden;display:inline-block}
.rtag-back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;
  background:#e5322b;color:#fff;font-size:10px;padding:2px 6px;border-radius:3px;white-space:nowrap}
/* end credits */
.credits{background:#000;color:#f2f4f6;text-align:center;padding:80px 20px;overflow:hidden}
.credits-roll{display:inline-block;text-align:center;animation:creditsUp 40s linear infinite}
.credits-roll p{margin:14px 0;font-size:15px}
.credits-roll .cr-k{font-family:'JetBrains Mono',monospace;font-size:11px;color:#e5322b;letter-spacing:.2em;margin-top:32px}
.credits-roll .cr-t{font-family:'Aldrich',sans-serif;font-size:20px;letter-spacing:.06em;margin:24px 0 8px}
@keyframes creditsUp{from{transform:translateY(30%)}to{transform:translateY(-70%)}}
@media (prefers-reduced-motion:reduce){.credits-roll{animation:none}}

.page.service-page .rail-facts{grid-column:1;grid-row:2;position:sticky;top:110px;align-self:start;min-width:0}
.page.service-page .prose{grid-column:2;grid-row:1/span 2;min-width:0}

/* paper-trail contrast fixes: dark ink on cream paper */
.cf-paper .dos-lede{color:#1a1a1a}
.cf-paper .dos-points p{color:#333}
.cf-paper .dos-points strong{color:#8a6d1f}
.cf-paper .ctrl-rest span,.cf-paper .ctrl-kemp em,.cf-paper .ctrl-rest em{color:#5a5142}
.cf-paper .ctrl-kemp span{color:#3a1410}
.cf-paper .rtag{color:#3a2c10;border-color:rgba(58,44,16,.45)}
.cf-paper .rtag-face{color:#3a2c10}
.cf-num{font-family:var(--font-mono);font-weight:700;background:rgba(138,109,31,.14);padding:2px 8px;border-radius:3px;letter-spacing:.08em}
/* inline exhibit drawer */
.cf-exhibit-drawer{margin-top:16px;border:1px solid rgba(58,44,16,.35);border-radius:4px;overflow:hidden;background:#fff}
.cf-exhibit-drawer iframe{width:100%;height:min(70vh,640px);border:0;display:block;background:#fff}
button.corp-exhibit{font:inherit;cursor:pointer}
/* reduced-motion dossier: all sheets stacked, no cycling */
body.rm #pageCorp .cf-paper{position:relative;inset:auto;opacity:1;transform:none;margin-bottom:24px;max-height:none;overflow:visible}
body.rm #pageCorp .cf-index{display:none}

.pf-screen::-webkit-scrollbar{display:none}
.pf-next{display:block;margin:24px auto 8px;padding:12px 28px;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;font-family:var(--font-display);font-size:12px;letter-spacing:.2em;cursor:pointer}
.pf-skip{display:block;text-align:center;margin:18px auto 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.25em;color:var(--dim);text-decoration:none}

#pageDossier{padding-top:clamp(40px,6vh,72px)}
.cine-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12);z-index:6;pointer-events:none}
.cine-progress i{display:block;height:100%;background:#e8b34b;transform:scaleX(0);transform-origin:left}

/* ============ NARRATION LAYER (2026-10-05) ============
   Per-chapter LISTEN buttons. Audio files land in assets/narration/
   as narr-ch01.mp3..narr-ch20.mp3. Buttons injected by app.js. */
section[id]{position:relative}
.narr-wrap{position:absolute;top:14px;right:16px;z-index:60}
.narr-btn{font-family:'Aldrich',sans-serif;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(0,0,0,.55);color:#e8b34a;border:1px solid rgba(232,179,74,.45);border-radius:2px;
  padding:0 10px;height:30px;min-height:30px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.narr-btn:hover{background:#e8b34a;color:#000}
.narr-btn.playing{background:#e8b34a;color:#000}
.narr-btn:disabled{opacity:.45;cursor:default}
.narr-btn .narr-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.narr-btn.playing .narr-dot{animation:narrPulse 1.2s ease-in-out infinite}
@keyframes narrPulse{0%,100%{opacity:1}50%{opacity:.25}}
@media (max-width:900px){.narr-wrap{top:10px;right:10px}.narr-btn{font-size:10px;padding:7px 10px}}
@media (prefers-reduced-motion:reduce){.narr-btn.playing .narr-dot{animation:none}}

/* hardline fix 2026-10-05: static gradient veils guarantee every cine boundary blends,
   even if JS/video fails. Uses each cine's own --din/--dout (set inline per section). */
.cine::before{content:"";position:absolute;top:0;left:0;right:0;height:22vh;z-index:4;pointer-events:none;background:linear-gradient(180deg,var(--din,#000),rgba(0,0,0,0))}
.cine::after{content:"";position:absolute;bottom:0;left:0;right:0;height:22vh;z-index:4;pointer-events:none;background:linear-gradient(0deg,var(--dout,#000),rgba(0,0,0,0))}

/* hardline fix 2026-10-05: LISTEN button lives in content flow below the kicker, not the corner */
.narr-wrap.inflow{position:static;top:auto;right:auto;margin:6px 0 24px;z-index:1}

/* visualfix2-20261005: full-bleed dossier section */
.page.dossier{max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;overflow:visible}
/* visualfix2-20261005: hide fixed header.nav while hero is in view */
header.nav{transition:background .3s,opacity .35s ease,transform .35s ease}
header.nav.nav-hidden{transform:translateY(-110%);opacity:0;pointer-events:none}
/* visualfix2-20261005: explicit approved fonts for dossier (no Arial fallback ambiguity) */
.cf-paper{font-family:'Geist',sans-serif}
.cf-paper .dos-lede,.cf-paper h3{font-family:'Aldrich',sans-serif}
.cf-paper .corp-k,.cf-paper .k{font-family:'JetBrains Mono',monospace}

/* visualfix3-20261005: no visible inner scrollbars anywhere */
.ev-body,.raw-doc-text,.ev-stage,.ev-rail,.chat-body-thread,.cf-paper,.evs-in,#uxChapters,#glossPop,.mega{scrollbar-width:none!important;-ms-overflow-style:none}
.ev-body::-webkit-scrollbar,.raw-doc-text::-webkit-scrollbar,.ev-stage::-webkit-scrollbar,.ev-rail::-webkit-scrollbar,.chat-body-thread::-webkit-scrollbar,.cf-paper::-webkit-scrollbar,.evs-in::-webkit-scrollbar,#uxChapters::-webkit-scrollbar,#glossPop::-webkit-scrollbar,.mega::-webkit-scrollbar{display:none!important}
/* cine-embed: blended inline video, no hard edges, custom play button */
.cine-embed{position:relative;margin:3rem auto;max-width:960px;aspect-ratio:16/9;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 6%,#000 94%,transparent 100%)}
.cine-embed-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}
.cine-embed-play{position:absolute;inset:0;margin:auto;width:84px;height:84px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(5,8,11,.55);backdrop-filter:blur(6px);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .3s,transform .3s}
.cine-embed-play span{display:block;width:0;height:0;margin-left:6px;
  border-left:22px solid #e8b34b;border-top:14px solid transparent;border-bottom:14px solid transparent}
.cine-embed-play:hover{transform:scale(1.08)}
.cine-embed.playing .cine-embed-play{opacity:0;pointer-events:none}
.cine-embed .grade{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,rgba(5,8,11,.35),transparent 20%,transparent 80%,rgba(5,8,11,.35))}

/* MOBILE 20261006: preserve the cinematic system.
   Local browser defects are scoped locally; mobile does not disable the site. */
@media (max-width:900px){
  .page-inner{grid-template-columns:1fr !important;gap:28px}
  .page{padding:56px 5vw !important;min-height:0 !important}

  /* All seven cinematic bridges retain real scroll distance and a pinned stage. */
  .cine{
    height:300svh !important;
    min-height:300svh !important;
    /* Do not clip the tall scroll container: overflow clipping prevents the
       child stage from actually sticking in mobile Chromium/Safari. */
    overflow:visible !important;
  }
  .cine .stage{
    position:sticky !important;
    top:0 !important;
    height:100svh !important;
    min-height:100svh !important;
    overflow:clip;
  }
  .cine .film{
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover;
  }

  /* Opening is edge-to-edge and keeps its own sticky timeline. */
  #pageOpening{
    padding:0 !important;
    height:240svh;
    min-height:0 !important;
    /* A sticky child cannot pin reliably when its tall ancestor clips. */
    overflow:visible !important;
  }
  #pageOpening .hero-sticky{
    position:sticky !important;
    top:0 !important;
    height:100svh !important;
    overflow:clip;
  }
  #pageOpening .hero-film{
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover;
    object-position:50% 50%;
  }

  /* The Safari compositor workaround belongs only to the helicopter chapter. */
  #cineArmy{
    isolation:isolate;
    /* Keep the tall section itself free of overflow/paint containment so its
       sticky child can pin. Safari video containment belongs on the stage. */
    contain:none;
    overflow:visible !important;
  }
  #cineArmy .stage{
    isolation:isolate;
    contain:paint;
    overflow:clip;
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }
  #cineArmy .film{
    clip-path:inset(0);
    -webkit-clip-path:inset(0);
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }

  /* Compact mobile navigation: one clear route into the chapter index. */
  .nav{
    min-height:54px;
    padding:9px 12px !important;
    gap:10px;
    background:rgba(4,7,10,.90);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .brand{
    min-width:0;
    flex:1 1 auto;
    font-size:0 !important;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
  }
  .brand::before{
    content:"UEBL FILES";
    font-family:var(--font-display);
    font-size:12px;
    letter-spacing:.18em;
    color:var(--ink);
  }
  .brand span{display:none}
  .menu-btn{
    flex:0 0 auto;
    padding:9px 11px 9px 13px !important;
    gap:8px;
    font-size:10px !important;
    letter-spacing:.22em !important;
  }
  .menu-btn-label{font-size:0}
  .menu-btn-label::after{content:"CHAPTERS";font-size:10px}
  .mega{
    height:100dvh !important;
    min-height:100dvh !important;
    background:#050607 !important;
    overscroll-behavior:contain;
  }
  .mega-inner{padding:78px 5vw 48px !important;gap:26px !important}
  .mega-col a{padding:11px 6px}
  .m-sub{display:none}

  .page h1,.page h2,.page h3{position:relative !important}
  /* overflow-x:hidden computes the other axis to auto and creates a
     sticky-breaking scroll container. clip suppresses horizontal spill
     without stealing the viewport scroll from position:sticky. */
  html,body{
    overflow-x:clip !important;
    overflow-y:visible !important;
    max-width:100vw
  }
  img,video{max-width:100%}
  .cine-embed{max-width:100%;margin:1.5rem auto}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* Evidence Key inside viewer rail (not floating) */
.ev-key-toggle{background:none;border:0;cursor:pointer;text-align:left;width:100%;padding:0;color:inherit;font:inherit}
.ev-key-toggle:hover{color:#e8b34b}
.ev-key-body{margin-top:12px}
.ev-key-term{margin-bottom:12px}
.ev-key-term span{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:#e8b34b;display:block;margin-bottom:4px}
.ev-key-term p{font-size:13px;line-height:1.5;color:var(--dim);margin:0}

/* SECTION SEAMS 20261006:
   Never fade whole sections through black. Adjacent environments meet via
   their own backgrounds and cine bridge colors. Safari can expose a hard
   rectangle when a composited <video> itself carries a mask, so cinematic
   edge blending lives on the sticky stage instead of the video layer. */
.page,.cine,.page.opening,.page:last-of-type{
  -webkit-mask-image:none;
  mask-image:none;
}
.cine .film{
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.cine .stage{
  background:linear-gradient(
    to bottom,
    var(--din,#05080b) 0%,
    #05080b 50%,
    var(--dout,#05080b) 100%
  );
}
.cine .stage::before{content:none !important}
.cine::before,.cine::after{content:none !important}
body{background:#05080b}

/* FINAL RESPONSIVE STABILIZATION 20261006
   Scoped repairs only. These rules intentionally sit last in the cascade. */
.mega-record-kicker{margin-top:30px}

@media (max-width:900px){
  /* Service Record: late desktop grid rules were overriding earlier mobile
     declarations. Force a real one-column document flow on phones. */
  .page.service-page .page-inner{
    display:flex !important;
    flex-direction:column !important;
    gap:30px !important;
  }
  .page.service-page .svc-head{
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    width:100% !important;
    margin:0 !important;
    grid-column:auto !important;
    grid-row:auto !important;
  }
  .page.service-page .svc-head .svc-hero,
  .page.service-page .svc-head .svc-lori{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
  }
  .page.service-page .rail-facts,
  .page.service-page .prose{
    position:static !important;
    top:auto !important;
    grid-column:auto !important;
    grid-row:auto !important;
    width:100% !important;
    min-width:0 !important;
  }
  .page.service-page .rail-facts{order:2}
  .page.service-page .prose{order:3}
  .page.service-page .svc-head{order:1}
  .page.service-page .svc-stack{width:100% !important;max-width:100% !important}
  .page.service-page .svc-strip,
  .page.service-page .svc-verdict{width:100% !important;max-width:100% !important}
  .page.service-page .ss-chiprow{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    width:100% !important;
  }
  .page.service-page .ev-chip{width:100% !important;min-width:0 !important}
  .page.service-page .ev-chip-t,
  .page.service-page .ev-chip em{overflow-wrap:anywhere}

  /* Evidence viewer: desktop two-column rail is unusable at phone width.
     Stack media/reconstruction first, metadata/source detail second. */
  .ev-drawer{
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    max-width:100vw !important;
    border-left:0 !important;
  }
  .ev-head{
    padding:12px 14px !important;
    gap:8px !important;
  }
  .ev-id{font-size:18px !important}
  .ev-status{
    font-size:8.5px !important;
    letter-spacing:.11em !important;
    padding:4px 7px !important;
  }
  .ev-grid{
    display:block !important;
    flex:1 1 auto !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    min-height:0 !important;
  }
  .ev-media-pane{
    border-right:0 !important;
    border-bottom:1px solid var(--line) !important;
    min-height:0 !important;
  }
  .ev-tabs button{
    font-size:9px !important;
    letter-spacing:.11em !important;
    padding:12px 6px !important;
  }
  .ev-stage{
    min-height:0 !important;
    overflow:visible !important;
    justify-content:flex-start !important;
    padding:14px 12px 18px !important;
  }
  .ev-rail{
    overflow:visible !important;
    padding:18px 16px 24px !important;
    width:100% !important;
    min-width:0 !important;
  }
  .ev-title{
    font-size:24px !important;
    overflow-wrap:anywhere !important;
  }
  .ev-src,.ev-def,.ev-rail p,.ev-rail dd{
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }
  .chat-frame{
    width:100% !important;
    max-width:100% !important;
    border-radius:18px !important;
  }
  .chat-bubble{
    max-width:92% !important;
    overflow-wrap:anywhere !important;
  }
  .ev-nav{
    gap:7px !important;
    padding:9px 8px !important;
  }
  .ev-nav-btn{
    flex:1 1 0 !important;
    min-width:0 !important;
    padding:10px 6px !important;
    font-size:8.5px !important;
    letter-spacing:.08em !important;
  }
  .ev-pos{
    flex:0 0 42px !important;
    text-align:center !important;
    font-size:9px !important;
  }

  /* Corporate dossier stays an actual folder on mobile, but its paper stack
     and index fit the viewport instead of disappearing beyond the fold. */
  #pageCorp .corp-folder{
    max-width:100% !important;
    margin:28px 0 12px !important;
  }
  #pageCorp .cf-tab{
    margin-left:10px !important;
    padding:9px 13px !important;
    max-width:calc(100% - 20px) !important;
    font-size:10px !important;
    letter-spacing:.12em !important;
    overflow-wrap:anywhere !important;
  }
  #pageCorp .cf-body{padding:18px 12px 16px !important}
  #pageCorp .cf-papers{min-height:560px !important}
  #pageCorp .cf-paper{
    padding:20px 16px !important;
    max-height:560px !important;
    overflow-y:auto !important;
  }
  #pageCorp .cf-index{
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    padding-bottom:6px !important;
  }
  #pageCorp .cf-idx{
    flex:0 0 auto !important;
    padding:9px 13px !important;
    font-size:10px !important;
  }
}

@media (max-width:560px){
  .ev-meta{grid-template-columns:84px minmax(0,1fr) !important}
}

/* Cinematic/page progress bars intentionally removed. They were visual
   dividers masquerading as navigation and fought the seamless film language. */
#uxProgress,.cine-progress,.hud-rail,.cd-bar{display:none !important}

/* Opening -> Takeoff is one split animation, not two chapters separated by a
   color bridge. No turquoise melt, no top veil, no artificial dead band. */
#pageOpening .hero-melt{display:none !important}
#cineHero{
  /* The second plane begins before the opening releases, so the two clips
     cross through one another instead of exposing a section boundary. */
  margin-top:-120vh !important;
  position:relative;
  z-index:4;
  background:transparent !important;
}
#cineHero .stage{
  background:transparent !important;
}
#cineHero .stage::before{
  background:linear-gradient(to bottom,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,0) 72%,
    var(--dout,#04060a) 97%,
    var(--dout,#04060a) 100%) !important;
}

/* ================= FINAL COMPOSITION PASS 20261006 =================
   These rules sit LAST deliberately. Older duplicated AI passes must not
   re-left-align or de-pin the mobile documentary experience. */

/* The fixed header is its own readable black surface. Do not put a second
   black gradient over the opening artwork underneath it. */
#pageOpening::before{display:none !important}

.payoff{
  margin:38px auto 18px;
  max-width:860px;
  text-align:center;
  padding:30px 22px;
  border:1px solid rgba(232,179,74,.35);
  background:linear-gradient(180deg,rgba(232,179,74,.07),rgba(0,0,0,0));
}
.payoff-k{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.30em;
  color:#e8b34a;
  margin:0 0 18px;
}
.payoff-rate{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:10px 14px;
  align-items:baseline;
  padding:16px 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.payoff-rate-main{border-top:0}
.payoff-hours,.payoff-op{
  font-family:var(--font-display);
  font-size:clamp(17px,2.6vw,27px);
  color:#f2f4f6;
}
.payoff-big{
  font-family:var(--font-display);
  font-size:clamp(26px,4.4vw,46px);
  color:#e8b34a;
  white-space:nowrap;
}
.payoff-lab{
  grid-column:1/-1;
  font-family:var(--font-mono);
  font-size:9px;
  letter-spacing:.20em;
  color:var(--dim);
}
.payoff-sub{
  max-width:650px !important;
  margin:18px auto 0 !important;
  color:rgba(255,255,255,.72) !important;
  font-size:14px !important;
  line-height:1.65 !important;
}

/* Market data scenes intentionally share a black visual floor. */
.page.service-page .svc-cutout{
  display:block;
  width:min(760px,96%);
  height:auto;
  margin-left:auto;
  margin-right:auto;
  background:transparent;
  filter:drop-shadow(0 18px 34px rgba(0,0,0,.42));
}

#pageRoutes .market-black-bridge{
  background:#000;
  box-sizing:border-box;
  width:100vw !important;
  max-width:none !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
}
#pageRoutes .market-black-bridge + .vband,
#pageRoutes .vband + .market-black-bridge{
  margin-top:0;
  margin-bottom:0;
}
#pageRoutes .vband,
#pageRoutes .vband-stage{background:#000}
#pageRoutes .market-black-bridge{
  box-shadow:none !important;
  position:relative;
  z-index:2;
  /* Cover the parent grid gap with the same black field so no navy band
     can appear above or below the World Bank/building run. */
  margin-top:-64px !important;
  margin-bottom:-64px !important;
  padding-top:92px !important;
  padding-bottom:98px !important;
}
#pageRoutes .market-black-bridge + .vband,
#pageRoutes .vband + .market-black-bridge{
  /* Cancel the page-inner row gap so the black connector and building
     physically touch instead of exposing the routes-page navy background. */
  margin-top:-64px !important;
  margin-bottom:0 !important;
  background:#000 !important;
}
#pageRoutes .market-black-bridge + .vband .vband-stage::before,
#pageRoutes .market-black-bridge + .vband .vband-stage::after{
  display:none !important;
}

@media (max-width:900px){
  /* Header: solid, readable, no blurred/gradient veil over the logo/menu. */
  .nav{
    background:#050607 !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
  }
  #pageOpening .hero-shade{
    /* Keep only a subtle center vignette. No top/bottom black curtain. */
    background:radial-gradient(120% 90% at 50% 45%,
      rgba(4,6,10,0) 52%,rgba(4,6,10,.30) 100%) !important;
  }
  #pageOpening .tb-brand img{
    filter:brightness(1.28) contrast(1.06)
      drop-shadow(0 2px 8px rgba(0,0,0,.72)) !important;
  }

  /* Evidence is a temporary mobile modal, never a persistent half-screen rail. */
  .ev-drawer[hidden],.ev-backdrop[hidden]{display:none !important}
  .ev-drawer{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    max-width:none !important;
    max-height:100dvh !important;
    border:0 !important;
    transform:translateY(100%) !important;
    border-radius:0 !important;
  }
  .ev-drawer.open{transform:translateY(0) !important}
  .ev-head{
    position:sticky !important;
    top:0 !important;
    z-index:20 !important;
    background:#080b0f !important;
  }
  .ev-close{
    min-width:44px !important;
    min-height:44px !important;
    flex:0 0 44px !important;
  }

  /* Center the documentary composition. Reading text can remain readable
     inside the centered column; major titles/media no longer hug the left. */
  .page .page-inner{justify-items:center}
  .page .prose.wide{
    width:min(100%,820px) !important;
    max-width:820px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
  }
  .page .prose.wide > p{
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .page .prose.wide > .kicker,
  .page .prose.wide > h2,
  .page .prose.wide > h3,
  .page .prose.wide > .lede,
  .page .prose.wide > .wordfill,
  .page .prose.wide > .chart-t{
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .page .prose.wide > .cine-embed,
  .page .prose.wide > .quote-panel,
  .page .prose.wide > .pass-slot,
  .page .prose.wide > .cost-grid{
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* Market opening: title + argument + video are one centered composition. */
  #pageRoutes .page-inner > article.prose.wide:first-of-type{
    text-align:center !important;
  }
  #pageRoutes .page-inner > article.prose.wide:first-of-type > p{
    margin-left:auto !important;
    margin-right:auto !important;
  }
  #pageRoutes .cine-embed{
    width:min(100%,760px) !important;
    margin:28px auto !important;
  }

  /* The World Bank/source connectors belong to the black data-film world. */
  #pageRoutes .market-black-bridge{
    width:100vw !important;
    max-width:none !important;
    margin:0 calc(50% - 50vw) !important;
    padding:28px max(5vw,20px) 34px !important;
    text-align:center !important;
  }
  #pageRoutes .market-black-bridge > *{
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  #pageRoutes .vband{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
  #pageRoutes .market-black-bridge + .vband,
  #pageRoutes .vband + .market-black-bridge{
    margin-top:-40px !important;
  }
  #pageRoutes .vband-pop::before{
    content:"";
    position:absolute;
    left:0;right:0;top:-88px;
    height:88px;
    pointer-events:none;
    background:linear-gradient(to bottom,#0a0d1a 0%,#000 100%);
  }

  /* Restore the currency-motion panel instead of replacing it with a static
     mobile fallback. */
  #pageRoutes .mkt-slot{
    height:165svh !important;
    margin:0 auto !important;
    width:100% !important;
  }
  #pageRoutes .mkt-sticky{
    position:sticky !important;
    top:0 !important;
    height:100svh !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  #pageRoutes .mkt-panel{text-align:center !important}

  /* $250K: restore the actual scrollytelling scene and center it. */
  #tabScene.tab-scroll{
    position:relative !important;
    height:320svh !important;
    width:100% !important;
    max-width:760px !important;
    margin:24px auto !important;
    overflow:visible !important;
  }
  #tabScene .tab-stage{
    position:sticky !important;
    top:0 !important;
    height:100svh !important;
    min-height:100svh !important;
    padding:64px 0 24px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:clip !important;
    text-align:center !important;
  }
  #tabScene .tab-frame{
    width:min(450px,92vw) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  #tabScene .tab-cta{
    align-items:center !important;
    text-align:center !important;
    width:100% !important;
  }

  /* Service Record: isolated title graphic + artwork centered, never stacked
     as live title text over the illustrations. */
  .page.service-page .prose{
    width:100% !important;
    max-width:880px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .page.service-page .prose > .kicker,
  .page.service-page .prose > h2,
  .page.service-page .prose > .lede{
    text-align:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .page.service-page .svc-title,
  .page.service-page .svc-strip,
  .page.service-page .svc-verdict,
  .page.service-page .svc-cutout{
    display:block !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .page.service-page .svc-cutout{
    width:min(760px,96%) !important;
    height:auto !important;
    background:transparent !important;
    filter:drop-shadow(0 18px 34px rgba(0,0,0,.42));
  }
  .page.service-page .svc-title{width:min(720px,96%) !important}
  .page.service-page .svc-stack{gap:30px !important}
  .page.service-page .ss-chips,
  .page.service-page .ss-question{
    width:100% !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .payoff{padding:24px 16px}
  .payoff-rate{
    grid-template-columns:1fr;
    gap:4px;
    justify-items:center;
  }
  .payoff-lab{grid-column:1}
  .payoff-big{white-space:normal}

  /* Market film handoff: only this black data sequence needs an edge blend.
     Conceal the poster/video edge without putting a veil over the site header. */
  #pageRoutes .vband-stage::before,
  #pageRoutes .vband-stage::after{
    content:"";
    position:absolute;
    left:0;right:0;
    height:54px;
    z-index:5;
    pointer-events:none;
  }
  #pageRoutes .vband-stage::before{
    top:0;
    background:linear-gradient(to bottom,#000 0%,rgba(0,0,0,0) 100%);
  }
  #pageRoutes .vband-stage::after{
    bottom:0;
    background:linear-gradient(to top,#000 0%,rgba(0,0,0,0) 100%);
  }

  /* Final mobile market handoff: no navy parent gap and no blue-looking
     edge veil around the World Bank/building sequence. */
  #pageRoutes .market-black-bridge{
    margin:-40px calc(50% - 50vw) !important;
    padding:68px max(5vw,20px) 74px !important;
    background:#000 !important;
  }
  #pageRoutes .market-black-bridge + .vband,
  #pageRoutes .vband + .market-black-bridge{
    margin-top:-40px !important;
    background:#000 !important;
  }
  #pageRoutes .market-black-bridge + .vband .vband-stage::before,
  #pageRoutes .market-black-bridge + .vband .vband-stage::after{
    display:none !important;
  }
}

/* FINAL TARGETED FIXES 20261006 ? scoped to the three reported defects. */

/* 1) Service overview: genuine alpha cutout, no keyed/matted plate. */
.page.service-page .svc-cutout{
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}

/* 2) World Bank -> facade is one black visual field. No navy surround. */
#pageRoutes .vband-pop{
  background:#000 !important;
  margin-bottom:0 !important;
}
#pageRoutes .vband-pop::before,
#pageRoutes .vband-pop::after{
  content:none !important;
  background:none !important;
}
#pageRoutes .vband-pop + .market-black-bridge{
  position:relative;
  z-index:4;
  margin-top:-64px !important;
  padding-top:92px !important;
  background:#000 !important;
  box-shadow:none !important;
}
#pageRoutes .market-black-bridge + .vband{
  margin-top:-64px !important;
  background:#000 !important;
}
#pageRoutes .market-black-bridge + .vband .vband-stage{
  background:#000 !important;
}

/* 3) Evidence: true mobile modal, one column when open, absent when closed. */
.ev-drawer[hidden],
.ev-backdrop[hidden]{display:none !important}

@media (max-width:900px){
  .ev-drawer{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    max-width:100vw !important;
    max-height:100dvh !important;
    border:0 !important;
    box-shadow:none !important;
    transform:translateY(102%) !important;
    transition:transform .28s cubic-bezier(.2,.7,.3,1) !important;
    background:#050607 !important;
  }
  .ev-drawer.open{transform:translateY(0) !important}
  .ev-head{
    position:sticky !important;
    top:0 !important;
    z-index:20 !important;
    background:#050607 !important;
  }
  .ev-grid{
    display:block !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    min-width:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }
  .ev-media-pane,
  .ev-rail{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    border-left:0 !important;
    border-right:0 !important;
  }
  .ev-nav{
    position:sticky !important;
    bottom:0 !important;
    z-index:20 !important;
    background:#050607 !important;
  }

  #pageRoutes .vband-pop + .market-black-bridge,
  #pageRoutes .market-black-bridge + .vband{
    margin-top:-40px !important;
  }
}


/* WORLD BANK / FACADE ? full-bleed black on desktop and mobile. */
#pageRoutes .market-black-bridge{
  width:100vw !important;
  max-width:none !important;
  position:relative !important;
  left:auto !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding-left:max(5vw,24px) !important;
  padding-right:max(5vw,24px) !important;
  text-align:center !important;
}
#pageRoutes .market-black-bridge > *{
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#pageRoutes .market-black-bridge + .vband .vband-stage::before{
  height:96px !important;
  background:linear-gradient(
    to bottom,
    #000 0%,
    #000 34%,
    rgba(0,0,0,.88) 52%,
    rgba(0,0,0,0) 100%
  ) !important;
}

/* Service content starts below the full-width photograph, not in its row. */
@media (min-width:901px){
  #pageService > .page-inner > .prose{
    grid-row:2;
  }
}

/* TAKEOFF layers enter with its plane during the approved opening overlap. */
#cineHero .grade, #cineHero .shade { opacity: var(--takeoff-crossfade, 0); }
#cineHero .grain { opacity: calc(.07 * var(--takeoff-crossfade, 0)); }

/* People stage retains an explicit width inside its centered mobile parent. */
#pagePeople #peopleTrack { width:100%; min-width:0; grid-column:1 / -1; }
#pagePeople .people-stage { width:100%; }

/* Opening-only: let its sticky viewport pin on desktop as on mobile. */
#pageOpening{overflow:visible !important}
