/* ============================================================
   HUMANS IN CONTROL – REALITY CHECK PWA
   Audience view: dark #0A0A0A. Setup flow: cream #FAF8F3.
   ============================================================ */

@font-face { font-family:'League Spartan'; src:url('../assets/fonts/LeagueSpartan-900.woff2') format('woff2'); font-weight:900; font-display:block; }
@font-face { font-family:'League Spartan'; src:url('../assets/fonts/LeagueSpartan-700.woff2') format('woff2'); font-weight:700; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-400.woff2') format('woff2'); font-weight:400; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-500.woff2') format('woff2'); font-weight:500; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-600.woff2') format('woff2'); font-weight:600; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-700.woff2') format('woff2'); font-weight:700; font-display:block; }
@font-face { font-family:'DM Mono'; src:url('../assets/fonts/DMMono-400.woff2') format('woff2'); font-weight:400; font-display:block; }
@font-face { font-family:'DM Mono'; src:url('../assets/fonts/DMMono-500.woff2') format('woff2'); font-weight:500; font-display:block; }

:root{
  --cream:#FAF8F3; --stripe:#F3EEE3; --dark:#0A0A0A;
  --ink:#111111; --ink2:#424242; --muted:#666666;
  --red:#C8102E; --red-hover:#A8001F; --red-deco:#E63946; --blue:#2563EB;
  --c72:rgba(250,248,243,.72); --c55:rgba(250,248,243,.55); --c45:rgba(250,248,243,.45);
  --line:rgba(250,248,243,.16); --panel:rgba(250,248,243,.05);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html,body{ height:100%; }
body{ font-family:'Inter',sans-serif; background:var(--dark); color:var(--cream); overflow:hidden; }

/* ============ STAGE / DECK ============ */
#viewport{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:var(--dark); }
#stage{ width:1920px; height:1080px; position:relative; flex:none; transform-origin:center center; background:var(--dark); }

.slide{ position:absolute; inset:0; display:none; padding:110px 130px; background:var(--dark); color:var(--cream); }
.slide.active{ display:flex; flex-direction:column; }
.slide .notes{ display:none; }

.eyebrow{ font-family:'DM Mono',monospace; font-weight:500; font-size:25px; letter-spacing:.24em; text-transform:uppercase; color:var(--c45); margin-bottom:34px; }
.eyebrow .tick{ color:var(--red-deco); }

h1{ font-family:'League Spartan',sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.015em; line-height:.98; font-size:100px; }
h1 .hl{ font-style:normal; color:var(--red-deco); }
.sub{ font-size:33px; line-height:1.65; color:var(--c72); max-width:1300px; }
.mono{ font-family:'DM Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.srcline{ font-family:'DM Mono',monospace; font-size:18px; letter-spacing:.12em; text-transform:uppercase; color:var(--c45); }
.row{ display:flex; gap:56px; }
.grow{ flex:1; }
.vcenter{ display:flex; flex-direction:column; justify-content:center; }

/* fragments + synced slaves */
.frag, .syncf{ opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .45s ease; }
.frag.on, .syncf.on{ opacity:1; transform:none; }

/* editable */
.edit{ outline:none; border-bottom:3px dashed transparent; cursor:text; }
.edit:hover,.edit:focus{ border-bottom-color:rgba(230,57,70,.5); }

/* transition slides */
.slide.transition{ align-items:center; justify-content:center; text-align:center; }
.slide.transition h1{ font-size:92px; max-width:1500px; }

/* pause slides */
.pausechip{ display:inline-flex; align-items:center; gap:16px; font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.22em; color:var(--red-deco); margin-bottom:40px; }
.pausechip .pdot{ width:14px; height:14px; border-radius:50%; background:var(--red-deco); animation:pulse 1.6s infinite; }
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.25} }

/* ---------- S1 title ---------- */
#s-title{ align-items:center; justify-content:center; text-align:center; }
#s-title .logo{ height:92px; margin-bottom:70px; }
#s-title h1{ font-size:148px; max-width:1520px; }
#s-title .where{ margin-top:60px; font-size:27px; letter-spacing:.24em; color:var(--c72); }
#s-title .when{ margin-top:20px; font-size:23px; letter-spacing:.24em; color:var(--c45); }

/* ---------- S2 who ---------- */
#s-who .row{ align-items:center; flex:1; }
#s-who h1{ font-size:118px; }
#s-who .sub{ margin-top:34px; font-size:40px; }
#s-who .photo{ width:450px; height:550px; flex:none; border:3px dashed var(--line); display:flex; align-items:center; justify-content:center; overflow:hidden; }
#s-who .photo img{ width:100%; height:100%; object-fit:cover; display:block; }
#s-who .photo span{ font-family:'DM Mono',monospace; font-size:21px; letter-spacing:.2em; color:var(--c45); }

/* ---------- S4 years ---------- */
#s-years .row{ flex:1; align-items:stretch; margin-top:8px; }
#s-years .vid{ flex:1.15; display:flex; flex-direction:column; justify-content:center; }
#s-years video{ width:100%; aspect-ratio:16/9; background:#000; display:block; border:1px solid var(--line); }
#s-years .vidcap{ margin-top:18px; display:flex; justify-content:space-between; }
#s-years .domains{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:38px; }
.domain{ border-top:2px solid var(--line); padding-top:24px; }
.domain .k{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:37px; letter-spacing:.02em; }
.domain .v{ font-size:29px; color:var(--c72); margin-top:8px; }
.domain .v b{ color:var(--cream); font-weight:600; }
.domain .arrow{ color:var(--red-deco); font-weight:700; padding:0 10px; }

/* ---------- S5 metr ---------- */
#s-metr .chartwrap{ flex:1; margin-top:30px; position:relative; }
#s-metr svg{ width:100%; height:100%; overflow:visible; }
#s-metr .axislabel{ font-family:'DM Mono',monospace; font-size:20px; fill:var(--c45); letter-spacing:.08em; }
#s-metr .gline{ stroke:var(--grid); stroke-width:1.5; }
#s-metr .curve{ stroke:var(--red-deco); stroke-width:7; fill:none; stroke-linecap:round; }
#s-metr .pt circle{ fill:var(--cream); }
#s-metr .pt.big circle{ fill:var(--red-deco); }
#s-metr .ptlabel{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:33px; fill:var(--cream); }
#s-metr .ptlabel.big{ font-size:56px; fill:var(--red-deco); }
#s-metr .callout-line{ stroke:var(--c45); stroke-width:1.5; stroke-dasharray:6 4; }
#s-metr .callout-bg{ fill:var(--faint); stroke:var(--c45); stroke-width:1; }
#s-metr .callout-text{ font-family:'Inter',sans-serif; font-weight:500; font-size:20px; fill:var(--c72); }
#s-metr .ptsub{ font-family:'DM Mono',monospace; font-size:19px; fill:var(--c45); letter-spacing:.06em; }
#s-metr .leader{ stroke:var(--grid); stroke-width:2; }
#s-metr .doubling{ font-size:27px; color:var(--c72); margin-top:6px; }
#s-metr .doubling b{ color:var(--red-deco); }

/* ---------- S6 agent ---------- */
#s-agent .cols{ display:flex; gap:44px; flex:1; margin-top:64px; }
#s-agent .col{ flex:1; padding:52px 46px; background:var(--panel); border:1px solid var(--line); }
#s-agent .col .icon{ height:64px; margin-bottom:30px; }
#s-agent .col .icon svg{ height:64px; width:auto; }
#s-agent .col .tag{ font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.2em; color:var(--c45); }
#s-agent .col .name{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:44px; margin-top:16px; text-transform:uppercase; }
#s-agent .col ul{ list-style:none; margin-top:40px; display:flex; flex-direction:column; gap:24px; }
#s-agent .col li{ font-size:28px; color:var(--c72); border-top:2px solid var(--line); padding-top:20px; }
#s-agent .col.next{ background:rgba(230,57,70,.06); border-color:rgba(230,57,70,.45); }
#s-agent .col.next .tag{ color:var(--red-deco); }
#s-agent .scramble{ color:var(--red-deco); font-family:'DM Mono',monospace; letter-spacing:.02em; }

/* ---------- S7 rules ---------- */
#s-rules .cards{ display:flex; gap:44px; flex:1; align-items:stretch; margin-top:64px; }
#s-rules .card{ flex:1; background:var(--panel); border:1px solid var(--line); padding:52px 42px; display:flex; flex-direction:column; min-height:420px; }
#s-rules .card .icon{ height:76px; }
#s-rules .card .icon svg{ height:76px; width:auto; }
#s-rules .card .ind{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:42px; margin-top:34px; }
#s-rules .card .rule{ font-size:33px; color:var(--c72); margin-top:auto; display:flex; align-items:center; gap:18px; }
#s-rules .card .check{ color:var(--red-deco); font-size:44px; font-weight:700; line-height:1; }
#s-rules .card.bad{ background:rgba(230,57,70,.07); border-color:var(--red-deco); animation:none; }
#s-rules .card.bad.on-pulse{ animation:cardpulse 1.8s infinite; }
@keyframes cardpulse{ 0%,100%{ border-color:var(--red-deco); box-shadow:0 0 0 0 rgba(230,57,70,.0);} 50%{ border-color:#ff6b76; box-shadow:0 0 60px 0 rgba(230,57,70,.25);} }
#s-rules .card.bad .rule{ color:var(--red-deco); font-family:'League Spartan',sans-serif; font-weight:900; font-size:54px; text-transform:uppercase; }

/* ---------- S9 money ---------- */
#s-money .viz{ display:flex; gap:80px; flex:1; margin-top:40px; }
#s-money .stack{ flex:1; display:flex; flex-direction:column; }
#s-money .stack .lbl{ font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.18em; color:var(--c45); margin-bottom:26px; text-transform:uppercase; }
#s-money .sq-grid{ display:flex; flex-wrap:wrap; gap:22px; align-content:flex-start; max-width:520px; }
#s-money .sq{ width:112px; height:112px; background:var(--sq); }
#s-money .sq.red{ background:var(--red); }
#s-money .amount{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:56px; margin-top:24px; }
#s-money .amount.redamt{ color:var(--red-deco); }
#s-money .amount small{ font-size:24px; font-weight:600; color:var(--c55); display:block; margin-top:6px; font-family:'Inter'; }
#s-money .fork{ display:flex; gap:44px; margin-top:28px; }
#s-money .forkcard{ flex:1; background:var(--panel); border:1px solid var(--line); padding:26px 34px; }
#s-money .forkcard .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:31px; }
#s-money .forkcard p{ font-size:23px; color:var(--c72); margin-top:10px; line-height:1.45; }
#s-money .eachsq{ font-family:'DM Mono',monospace; font-size:18px; letter-spacing:.14em; color:var(--c45); margin-top:18px; }

/* ---------- misinfo section ---------- */
.misintro-town{ color:var(--red-deco); }
#s-article .frame, #s-posts .wrap, #s-texts .wrap{ flex:1; margin-top:36px; }
.browser{ background:#f5f3ee; color:#111; border-radius:10px; overflow:hidden; height:100%; display:flex; flex-direction:column; box-shadow:0 30px 80px rgba(0,0,0,.5); }
.browser .chrome{ background:#dad5c8; padding:14px 20px; display:flex; align-items:center; gap:10px; flex:none; }
.browser .chrome i{ width:14px; height:14px; border-radius:50%; background:#b7b1a2; }
.browser .chrome .urlbar{ flex:1; margin-left:14px; background:#f5f3ee; border-radius:6px; font-family:'DM Mono',monospace; font-size:16px; color:#666; padding:8px 16px; }
.browser .page{ padding:44px 60px; overflow:hidden; }
.browser .outlet{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:40px; letter-spacing:.02em; border-bottom:3px solid #111; padding-bottom:14px; }
.browser .tagline{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.2em; color:#C8102E; margin-top:14px; }
.browser h2{ font-family:Georgia,'Times New Roman',serif; font-size:44px; line-height:1.15; margin-top:12px; font-weight:700; }
.browser .byline{ font-size:19px; color:#666; margin-top:14px; }
.browser .bodycopy{ margin-top:22px; column-count:2; column-gap:40px; }
.browser .bodycopy p{ font-family:Georgia,serif; font-size:20px; line-height:1.55; margin-bottom:16px; }
.fakebadge{ position:absolute; right:150px; top:130px; background:var(--red); color:#fff; font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.2em; padding:12px 22px; transform:rotate(6deg); z-index:5; box-shadow:0 10px 30px rgba(0,0,0,.4); }

.socard{ background:#fff; color:#0f1419; border-radius:16px; padding:28px 30px; width:560px; box-shadow:0 24px 60px rgba(0,0,0,.5); }
.socard .schead{ display:flex; align-items:center; gap:14px; }
.socard .avatar{ width:52px; height:52px; border-radius:50%; background:#cfd9de; flex:none; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:22px; color:#555; }
.socard .who{ font-weight:700; font-size:21px; }
.socard .handle{ color:#536471; font-size:18px; }
.socard .sctext{ font-size:23px; line-height:1.45; margin-top:16px; }
.socard .scstats{ color:#536471; font-size:17px; margin-top:18px; border-top:1px solid #eff3f4; padding-top:14px; }
.socard.fb{ border-radius:8px; }
.socard.ig{ background:#111; color:#fff; border-radius:20px; }
.socard.ig .sctext{ font-weight:700; font-size:27px; }
.socard.ig .scstats{ color:#aaa; border-top-color:#333; }
#s-posts .wrap{ display:flex; gap:48px; align-items:center; justify-content:center; flex-wrap:wrap; }

#s-texts .wrap{ display:flex; justify-content:center; }
.imsg{ width:760px; background:#000; border:1px solid var(--line); border-radius:34px; padding:40px 34px; display:flex; flex-direction:column; gap:16px; }
.imsg .imhead{ text-align:center; font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.14em; color:var(--c45); padding-bottom:14px; border-bottom:1px solid rgba(250,248,243,.1); margin-bottom:8px; }
.imsg .bubble{ max-width:78%; padding:16px 22px; border-radius:24px; font-size:24px; line-height:1.4; }
.imsg .them{ background:#26252a; color:#fff; align-self:flex-start; border-bottom-left-radius:6px; }
.imsg .me{ background:#1084ff; color:#fff; align-self:flex-end; border-bottom-right-radius:6px; }

#s-reveal .lines{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:34px; margin-top:10px; }
#s-reveal .rl{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:60px; text-transform:uppercase; line-height:1; }
#s-reveal .rl.redl{ color:var(--red-deco); }
#s-reveal .gentime{ font-family:'DM Mono',monospace; font-size:23px; letter-spacing:.16em; color:var(--c45); text-transform:uppercase; }

/* ---------- S16 live demo / deepfakes ---------- */
#s-demo .live{ font-family:'DM Mono',monospace; font-size:28px; letter-spacing:.3em; color:var(--red-deco); margin-top:50px; display:flex; align-items:center; gap:22px; }
#s-demo .live .pdot{ width:18px; height:18px; border-radius:50%; background:var(--red-deco); animation:pulse 1.4s infinite; }
#s-demo .what{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:58px; margin-top:20px; text-transform:uppercase; }
#s-demo .backup{ margin-top:36px; font-size:26px; color:var(--c72); }
#s-demo .gallery{ display:flex; gap:30px; margin-top:44px; flex-wrap:wrap; }
#s-demo .gallery img{ height:340px; border:1px solid var(--line); display:block; }
#s-demo .gallery .empty{ font-family:'DM Mono',monospace; font-size:19px; color:var(--c45); letter-spacing:.14em; border:2px dashed var(--line); padding:40px 50px; }

/* ---------- breakout sequence ---------- */
.bo-map{ flex:1; margin-top:50px; position:relative; }
.bo-map svg.lines{ position:absolute; left:0; top:0; }
.bo-node{ position:absolute; border:3px solid rgba(250,248,243,.4); width:410px; height:150px; padding:28px 34px; display:flex; flex-direction:column; justify-content:center; }
.bo-node .nt{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:33px; text-transform:uppercase; }
.bo-node .ns{ font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.1em; color:var(--c45); margin-top:8px; text-transform:uppercase; }
.bo-node.redn{ border-color:var(--red-deco); }
.bo-node.redn .nt{ color:var(--red-deco); }
.bo-path{ stroke:var(--red-deco); stroke-width:6; fill:none; stroke-dasharray:14 14; }
.datechip{ font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.14em; color:var(--red-deco); }
.bo-punch{ font-size:32px; color:var(--cream); line-height:1.5; }
.bo-punch b{ color:var(--red-deco); }
/* sandbox intro */
#s-sandbox .boxwrap{ flex:1; display:flex; align-items:center; justify-content:center; }
#s-sandbox .sandbox{ width:820px; height:460px; border:4px solid rgba(250,248,243,.5); position:relative; display:flex; align-items:center; justify-content:center; }
#s-sandbox .sandbox .sblabel{ position:absolute; top:-46px; left:0; font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.24em; color:var(--c55); }
#s-sandbox .ai-dot{ width:34px; height:34px; border-radius:50%; background:var(--red-deco); box-shadow:0 0 40px rgba(230,57,70,.6); }
#s-sandbox .ai-lbl{ position:absolute; margin-top:90px; font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.2em; color:var(--red-deco); }
#s-sandbox .door{ position:absolute; right:-4px; top:50%; transform:translateY(-50%); width:8px; height:110px; background:var(--dark); border-top:4px solid rgba(250,248,243,.5); border-bottom:4px solid rgba(250,248,243,.5); }
#s-sandbox .doorlbl{ position:absolute; right:-330px; top:50%; transform:translateY(-50%); font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.12em; color:var(--c45); width:280px; text-transform:uppercase; }
#s-sandbox .nointernet{ position:absolute; bottom:-58px; left:0; font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.2em; color:var(--c45); }

/* ---------- cantfix ---------- */
#s-cantfix .cards{ display:flex; gap:44px; flex:1; margin-top:64px; }
#s-cantfix .card{ flex:1; border-top:4px solid var(--red-deco); padding-top:38px; }
#s-cantfix .num{ font-family:'DM Mono',monospace; font-size:25px; letter-spacing:.2em; color:var(--red-deco); }
#s-cantfix .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:43px; margin-top:20px; text-transform:uppercase; line-height:1.02; }
#s-cantfix p{ font-size:26px; color:var(--c72); margin-top:22px; line-height:1.55; }
#s-cantfix p b{ color:var(--cream); }

/* ---------- scheme split screen ---------- */
#s-scheme .headrow{ display:flex; gap:0; margin-top:40px; border:1px solid var(--line); border-bottom:none; }
#s-scheme .headrow div{ flex:1; padding:18px 30px; font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.2em; color:var(--c45); text-transform:uppercase; }
#s-scheme .headrow div:first-child{ border-right:1px solid var(--line); color:var(--red-deco); }
#s-scheme .steps{ flex:1; border:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; }
#s-scheme .step{ display:flex; flex:1; border-bottom:1px solid rgba(250,248,243,.08); }
#s-scheme .step:last-child{ border-bottom:none; }
#s-scheme .cell{ flex:1; padding:16px 30px; display:flex; flex-direction:column; justify-content:center; gap:6px; }
#s-scheme .cell.think{ border-right:1px solid var(--line); background:rgba(230,57,70,.04); }
#s-scheme .steplbl{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.18em; color:var(--c45); }
#s-scheme .thinktxt{ font-family:'DM Mono',monospace; font-size:23px; color:var(--red-deco); font-style:normal; }
#s-scheme .cmdtxt{ font-family:'DM Mono',monospace; font-size:21px; color:#7ddf8a; white-space:pre-wrap; word-break:break-all; }
#s-scheme .step.dangerstep .cmdtxt{ color:var(--red-deco); }
#s-scheme .flagtxt{ font-size:19px; color:var(--c72); }
#s-scheme .flagtxt b{ color:var(--cream); }

/* ---------- pattern ---------- */
#s-pattern .list{ flex:1; display:flex; flex-direction:column; justify-content:center; margin-top:24px; }
#s-pattern .inc{ display:flex; gap:44px; align-items:baseline; padding:22px 0; border-top:1px solid var(--line); }
#s-pattern .inc:last-of-type{ border-bottom:1px solid var(--line); }
#s-pattern .d{ font-family:'DM Mono',monospace; font-size:21px; color:var(--red-deco); letter-spacing:.12em; flex:none; width:170px; }
#s-pattern .w{ font-size:28px; color:var(--cream); flex:1; }
#s-pattern .s{ font-family:'DM Mono',monospace; font-size:16px; color:var(--c45); flex:none; letter-spacing:.08em; text-transform:uppercase; }
#s-pattern .final{ margin-top:40px; font-family:'League Spartan',sans-serif; font-weight:900; font-size:44px; text-transform:uppercase; }
#s-pattern .final em{ font-style:normal; color:var(--red-deco); }

/* ---------- CAIS ---------- */
#s-warning.active{ display:flex; flex-direction:column; }
#s-warning .warn-block{ margin-top:36px; }
#s-warning .quote{ font-family:Georgia,serif; font-size:42px; line-height:1.35; max-width:1500px; }
#s-warning .quote b{ color:var(--red-deco); font-weight:700; }
#s-warning .warn-src{ font-size:24px; color:var(--c72); margin-top:18px; }
#s-warning .warn-src b{ color:var(--cream); font-weight:600; }
#s-warning .srcline{ margin-top:50px; }

/* ---------- bridge ---------- */
#s-bridge .panels{ display:flex; gap:44px; margin-top:60px; }
#s-bridge .panel{ flex:1; background:var(--panel); border:1px solid var(--line); padding:44px 40px; }
#s-bridge .panel p{ font-size:29px; line-height:1.5; }
#s-bridge .panel .co{ font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.18em; color:var(--red-deco); margin-top:28px; text-transform:uppercase; }
#s-bridge .punch{ margin-top:56px; font-size:33px; color:var(--c72); max-width:1500px; line-height:1.6; }
#s-bridge .punch b{ color:var(--cream); }

/* ---------- for ---------- */
#s-for .cols{ display:flex; gap:44px; flex:1; margin-top:74px; }
#s-for .col{ flex:1; border-top:2px solid var(--line); padding-top:34px; }
#s-for .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:50px; text-transform:uppercase; line-height:1; }
#s-for p{ font-size:28px; color:var(--c72); margin-top:20px; line-height:1.55; }

/* ---------- ground rules ---------- */
#s-ground .list{ flex:1; display:flex; flex-direction:column; justify-content:center; }
#s-ground .gr{ display:flex; gap:56px; align-items:center; padding:46px 0; border-top:2px solid var(--line); }
#s-ground .gr:last-child{ border-bottom:2px solid var(--line); }
#s-ground .icon{ flex:none; width:96px; display:flex; justify-content:center; }
#s-ground .icon svg{ height:78px; width:auto; }
#s-ground .num{ font-family:'DM Mono',monospace; font-size:31px; color:var(--red-deco); letter-spacing:.1em; flex:none; }
#s-ground .txt{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:62px; text-transform:uppercase; line-height:1; }

/* ---------- phones ---------- */
#s-phones .row{ flex:1; align-items:center; gap:110px; }
#s-phones h1{ font-size:148px; }
#s-phones .sub{ margin-top:42px; font-size:39px; }
#s-phones .qrbox{ flex:none; text-align:center; }
#s-phones .qrbox .qrimg, #s-next .qr .qrimg{ background:#fff; padding:24px; display:block; }
#s-phones .qrbox .qrimg{ width:520px; height:520px; }
#s-phones .url{ margin-top:32px; font-size:26px; letter-spacing:.14em; color:var(--cream); }

/* ---------- majority ---------- */
#s-majority .bignums{ display:flex; gap:60px; margin-top:56px; }
#s-majority .bn{ flex:1; background:var(--panel); border:1px solid var(--line); padding:52px; text-align:center; }
#s-majority .pct{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:170px; line-height:1; color:var(--red-deco); }
#s-majority .who{ font-family:'DM Mono',monospace; font-size:25px; letter-spacing:.2em; margin-top:14px; text-transform:uppercase; }
#s-majority .meter{ height:16px; background:var(--track); margin-top:34px; position:relative; overflow:hidden; }
#s-majority .meter i{ position:absolute; left:0; top:0; bottom:0; width:0; background:var(--red); transition:width 1.2s cubic-bezier(.2,.7,.2,1); }
#s-majority .claim{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:42px; text-transform:uppercase; margin-top:48px; text-align:center; }
#s-majority .slowline{ font-size:30px; color:var(--c72); text-align:center; margin-top:26px; }
#s-majority .srcline{ text-align:center; margin-top:34px; }

/* ---------- playbook ---------- */
#s-playbook .cards{ display:flex; gap:44px; margin-top:64px; }
#s-playbook .card{ flex:1; border-top:4px solid var(--red-deco); padding-top:34px; }
#s-playbook .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:44px; text-transform:uppercase; line-height:1; }
#s-playbook p{ font-size:27px; color:var(--c72); margin-top:18px; line-height:1.5; }
#s-playbook .closer{ font-size:32px; margin-top:70px; max-width:1500px; line-height:1.6; color:var(--c72); }
#s-playbook .closer b{ color:var(--cream); }

/* ---------- timeline ---------- */
#s-timeline .tl{ flex:1; margin-top:60px; position:relative; padding-left:70px; }
#s-timeline .tl::before{ content:''; position:absolute; left:14px; top:12px; bottom:12px; width:4px; background:var(--line); }
#s-timeline .beat{ position:relative; padding:34px 0; }
#s-timeline .beat::before{ content:''; position:absolute; left:-64px; top:46px; width:24px; height:24px; border-radius:50%; background:var(--red-deco); }
#s-timeline .yr{ font-family:'DM Mono',monospace; font-size:25px; letter-spacing:.2em; color:var(--red-deco); }
#s-timeline .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:52px; text-transform:uppercase; margin-top:10px; }
#s-timeline p{ font-size:28px; color:var(--c72); margin-top:12px; max-width:1300px; }

/* ---------- maps ---------- */
.usamap-wrap{ flex:1; display:flex; align-items:center; justify-content:center; position:relative; margin-top:20px; }
.usamap-wrap svg.usamap{ height:100%; max-height:640px; width:auto; }
.usamap .land{ fill:var(--land); stroke:var(--dark); stroke-width:1; }
.usamap .land.focus{ fill:var(--red); }
#s-focus .statelbls{ display:flex; gap:64px; justify-content:center; margin-top:24px; }
#s-focus .statelbl{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:44px; text-transform:uppercase; }
#s-growth .counter{ text-align:center; margin-top:18px; font-family:'League Spartan',sans-serif; font-weight:900; font-size:52px; }
#s-growth .counter small{ display:block; font-family:'DM Mono',monospace; font-size:20px; font-weight:400; letter-spacing:.2em; color:var(--c45); margin-top:8px; text-transform:uppercase; }
#s-growth .counter .ppl{ color:var(--red-deco); }
.growdot{ opacity:0; transition:opacity .5s; }
.growdot.on{ opacity:1; }

/* ---------- rooms ---------- */
#s-rooms .cards{ display:flex; gap:44px; margin-top:64px; }
#s-rooms .card{ flex:1; border-top:4px solid var(--red-deco); padding-top:34px; }
#s-rooms .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:45px; text-transform:uppercase; line-height:1; }
#s-rooms p{ font-size:27px; color:var(--c72); margin-top:18px; line-height:1.5; }
#s-rooms .closer{ font-size:34px; margin-top:70px; max-width:1450px; line-height:1.55; color:var(--c72); }
#s-rooms .closer b{ color:var(--red-deco); }

/* ---------- next / selfie ---------- */
#s-next .row{ flex:1; gap:90px; align-items:center; }
#s-next h1{ font-size:100px; }
#s-next .sub{ margin-top:38px; font-size:34px; }
#s-next .qr{ margin-top:52px; display:flex; align-items:center; gap:40px; }
#s-next .qr .qrimg{ width:300px; height:300px; }
#s-next .url{ font-size:23px; letter-spacing:.14em; color:var(--cream); }
#s-selfie{ align-items:center; justify-content:center; text-align:center; }
#s-selfie .logo{ height:126px; margin-bottom:76px; }
#s-selfie h1{ font-size:128px; }
#s-selfie .sub{ margin-top:44px; font-size:37px; }

/* ---------- optional slides ---------- */
#s-kids .quote{ font-family:Georgia,serif; font-size:54px; line-height:1.35; max-width:1500px; margin-top:60px; }
#s-kids .attr{ margin-top:44px; }
#s-jobs .cols{ display:flex; gap:44px; flex:1; margin-top:64px; }
#s-jobs .col{ flex:1; border-top:2px solid var(--line); padding-top:32px; }
#s-jobs .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:42px; text-transform:uppercase; line-height:1.02; }
#s-jobs p{ font-size:27px; color:var(--c72); margin-top:18px; line-height:1.5; }
#s-viro .bars{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:60px; margin-top:20px; max-width:1400px; }
#s-viro .bar .lbl{ font-family:'DM Mono',monospace; font-size:23px; letter-spacing:.16em; color:var(--c72); text-transform:uppercase; }
#s-viro .bar .track{ height:70px; background:rgba(250,248,243,.1); margin-top:16px; position:relative; }
#s-viro .bar .fill{ position:absolute; left:0; top:0; bottom:0; width:0; transition:width 1.1s cubic-bezier(.2,.7,.2,1); }
#s-viro .bar .val{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:52px; position:absolute; left:12px; top:50%; transform:translateY(-50%); z-index:2; }
#s-viro .punch{ font-size:31px; color:var(--c72); margin-top:50px; max-width:1400px; line-height:1.6; }

/* ============ CHROME ============ */
#hint{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%); background:rgba(250,248,243,.1); color:var(--cream); font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.12em; padding:12px 22px; border-radius:6px; z-index:60; transition:opacity .8s; white-space:nowrap; }
#hint.gone{ opacity:0; pointer-events:none; }
#blackout{ position:fixed; inset:0; background:#000; z-index:100; display:none; }
#blackout.on{ display:block; }
#pagenum{ position:fixed; right:22px; bottom:18px; font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.1em; color:rgba(250,248,243,.35); z-index:50; }

#notesdrawer{ position:fixed; left:0; right:0; bottom:0; max-height:40vh; overflow:auto; background:rgba(10,10,10,.96); color:var(--cream); padding:20px 36px 26px; font-size:16px; line-height:1.65; z-index:70; display:none; border-top:3px solid var(--red); white-space:pre-wrap; }
#notesdrawer.on{ display:block; }
#notesdrawer .ndtag{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.18em; color:var(--red-deco); display:block; margin-bottom:10px; }
.cue{ color:var(--red-deco); font-weight:600; }

/* ============ SETUP FLOW (cream) ============ */
body.setup{ background:var(--cream); color:var(--ink); overflow:auto; }
body.setup #viewport, body.setup #hint, body.setup #pagenum{ display:none; }
#setupview{ display:none; }
body.setup #setupview{ display:block; max-width:880px; margin:0 auto; padding:56px 32px 120px; }
#setupview .logo-dark{ height:44px; filter:invert(1); opacity:.9; }
#setupview .eyebrow{ color:var(--muted); margin:36px 0 14px; }
#setupview .eyebrow .tick{ color:var(--red); }
#setupview h1{ font-size:56px; color:var(--ink); }
#setupview h1 .hl{ color:var(--red); }
#setupview .lede{ font-size:20px; line-height:1.65; color:var(--ink2); margin-top:20px; max-width:640px; }
.spanel{ background:#fff; border:1px solid #E5E0D5; padding:36px 40px; margin-top:34px; }
.spanel h3{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:24px; text-transform:uppercase; }
.spanel .phint{ font-size:15px; color:var(--muted); margin-top:6px; line-height:1.5; }
.sfield{ margin-top:24px; }
.sfield label{ display:block; font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink2); margin-bottom:8px; }
.sfield input[type=text], .sfield input[type=date]{ width:100%; font-family:'Inter'; font-size:18px; padding:14px 16px; border:2px solid #D8D2C4; background:var(--cream); color:var(--ink); outline:none; }
.sfield input:focus{ border-color:var(--red); }
.sfield .req{ color:var(--red); }
.filerow{ display:flex; align-items:center; gap:18px; margin-top:10px; }
.filerow .thumb{ width:74px; height:74px; object-fit:cover; border:1px solid #D8D2C4; display:none; }
.filerow .thumb.show{ display:block; }
.dfthumbs{ display:flex; gap:12px; flex-wrap:wrap; margin-top:14px; }
.dfthumbs img{ height:74px; border:1px solid #D8D2C4; }
.togglerow{ display:flex; align-items:flex-start; gap:16px; padding:18px 0; border-top:1px solid #EEE9DD; }
.togglerow input{ width:22px; height:22px; margin-top:4px; accent-color:var(--red); }
.togglerow .tt{ font-weight:600; font-size:17px; }
.togglerow .td{ font-size:15px; color:var(--ink2); margin-top:4px; line-height:1.5; }
.sbtn{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.12em; padding:16px 34px; background:var(--red); color:#fff; border:none; cursor:pointer; text-transform:uppercase; }
.sbtn:hover{ background:var(--red-hover); }
.sbtn.ghost{ background:transparent; border:2px solid #D8D2C4; color:var(--ink); }
.sbtn.ghost:hover{ border-color:var(--red); color:var(--red); background:transparent; }
.sbtn:disabled{ opacity:.5; cursor:default; }
#setup-actions{ margin-top:40px; display:flex; gap:16px; align-items:center; }
#setup-status{ font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.08em; color:var(--ink2); }
select#f-version{ width:100%; font-family:'Inter'; font-size:17px; padding:14px 16px; border:2px solid #D8D2C4; background:var(--cream); color:var(--ink); }

/* walkthrough */
#walkthrough{ background:var(--dark); color:var(--cream); padding:44px 48px; margin-top:34px; position:relative; }
#walkthrough .wt-step{ display:none; }
#walkthrough .wt-step.on{ display:block; }
#walkthrough .wt-eyebrow{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.2em; color:var(--red-deco); text-transform:uppercase; }
#walkthrough h4{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:30px; text-transform:uppercase; margin-top:12px; }
#walkthrough p{ font-size:17px; line-height:1.7; color:var(--c72); margin-top:12px; max-width:640px; }
#walkthrough .wt-nav{ display:flex; gap:12px; margin-top:26px; align-items:center; }
#walkthrough .wt-dots{ margin-left:auto; font-family:'DM Mono',monospace; font-size:13px; color:var(--c45); letter-spacing:.2em; }
#walkthrough .sbtn.ghost{ border-color:rgba(250,248,243,.3); color:var(--cream); }

/* ready screen + welcome back */
#readyview, #welcomeback{ display:none; }
body.setup #readyview.show{ display:block; max-width:880px; margin:0 auto; padding:80px 32px; }
#readyview .bigcheck{ font-size:80px; color:var(--red); font-weight:700; }
#welcomeback.show{ display:flex; position:fixed; inset:0; z-index:90; background:var(--dark); align-items:center; justify-content:center; }
#welcomeback .wb-card{ text-align:center; max-width:760px; padding:40px; }
#welcomeback .logo{ height:64px; margin-bottom:46px; }
#welcomeback h2{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:52px; text-transform:uppercase; line-height:1.05; }
#welcomeback h2 .hl{ color:var(--red-deco); }
#welcomeback .wb-sub{ font-family:'DM Mono',monospace; font-size:17px; letter-spacing:.16em; color:var(--c45); margin-top:22px; text-transform:uppercase; }
#welcomeback .wb-actions{ display:flex; gap:16px; justify-content:center; margin-top:52px; flex-wrap:wrap; }
#welcomeback .sbtn.ghost{ border-color:rgba(250,248,243,.3); color:var(--cream); }

/* ============ PRESENTER VIEW ============ */
body.presenter{ overflow:auto; background:#161616; color:var(--cream); }
body.presenter #viewport, body.presenter #hint, body.presenter #pagenum, body.presenter #setupview{ display:none; }
#pv{ display:none; }
body.presenter #pv{ display:block; padding:34px 44px; max-width:1100px; margin:0 auto; }
#pv .top{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid rgba(250,248,243,.15); padding-bottom:18px; }
#pv .slideno{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.18em; color:var(--c45); text-transform:uppercase; }
#pv .timer{ font-family:'DM Mono',monospace; font-size:34px; }
#pv .timer.warn{ color:var(--red-deco); }
#pv h2{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:32px; text-transform:uppercase; margin-top:24px; }
#pv h2 .hl{ color:var(--red-deco); font-style:normal; }
#pv .stepline{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.14em; color:var(--red-deco); margin-top:10px; text-transform:uppercase; }
#pv .notesbody{ margin-top:22px; font-size:20px; line-height:1.75; white-space:pre-wrap; }
#pv .nextup{ margin-top:32px; padding-top:18px; border-top:2px solid rgba(250,248,243,.15); font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.14em; color:var(--c45); text-transform:uppercase; }
#pv .controls{ margin-top:26px; display:flex; gap:14px; }
#pv button{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.12em; padding:12px 26px; background:var(--red); color:#fff; border:none; cursor:pointer; text-transform:uppercase; }
#pv button:hover{ background:var(--red-hover); }
#pv button.ghost{ background:transparent; border:2px solid rgba(250,248,243,.3); color:var(--cream); }
#pv-vibe{ display:none; margin-top:26px; padding:20px; border:1px solid rgba(250,248,243,.2); }
#pv-vibe.show{ display:block; }
#pv-vibe .vt{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.18em; color:var(--c45); margin-bottom:14px; }
#pv-vibe .vbtns{ display:flex; gap:12px; }
#pv-vibe button{ background:transparent; border:2px solid rgba(250,248,243,.3); color:var(--cream); font-size:16px; }

/* ============ SCRIPT VIEW ============ */
body.script{ overflow:auto; background:#fff; color:#111; }
body.script #viewport, body.script #hint, body.script #pagenum, body.script #pv, body.script #setupview{ display:none; }
#scriptview{ display:none; }
body.script #scriptview{ display:block; max-width:860px; margin:0 auto; padding:48px 32px; }
#scriptview h1{ font-size:34px; letter-spacing:0; text-transform:none; color:#111; }
#scriptview .intro{ margin:14px 0 34px; color:#424242; font-size:15px; line-height:1.6; }
#scriptview .sv-slide{ border-top:2px solid #ddd; padding:26px 0; page-break-inside:avoid; }
#scriptview .sv-num{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.18em; color:#C8102E; }
#scriptview .sv-title{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:22px; text-transform:uppercase; margin-top:6px; }
#scriptview .sv-notes{ margin-top:12px; font-size:15px; line-height:1.7; white-space:pre-wrap; color:#111; }
#scriptview .printbtn{ font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.1em; padding:12px 26px; background:#C8102E; color:#fff; border:none; cursor:pointer; margin-bottom:30px; }
@media print{ #scriptview .printbtn{ display:none; } }

/* ============================================================
   v3 REVISIONS — overrides & new components (appended)
   ============================================================ */

/* --- Slide 4: video hidden until played --- */
#s-years .vid{ order:2; }
#s-years .domains{ order:1; }
.vidbox{ position:relative; width:100%; aspect-ratio:16/9; border:1px solid var(--line); overflow:hidden; background:#000; }
#s-years video{ position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity .45s ease; border:none; aspect-ratio:auto; }
.vidbox.playing video{ opacity:1; }
.vidcover{ position:absolute; inset:0; background:#0d0d0d; display:flex; align-items:center; justify-content:center; transition:opacity .45s ease; }
.vidcover span{ font-size:64px; color:rgba(250,248,243,.28); }
.vidbox.playing .vidcover{ opacity:0; pointer-events:none; }

/* --- Slide 5: dot labels --- */
#s-metr .curve{ opacity:.95; }

/* --- Slide 9: job-loss quotes (replaces fork) --- */
#s-money .viz{ margin-top:30px; }
#s-money .sq{ width:88px; height:88px; }
#s-money .sq-grid{ max-width:420px; gap:18px; }
#s-money .amount{ font-size:48px; margin-top:20px; }
#s-money .amount small{ font-size:21px; }
#s-money .jobline{ font-size:26px; color:var(--c72); margin-top:24px; }
#s-money .jobquotes{ display:flex; gap:36px; margin-top:22px; }
#s-money .jobquote{ flex:1; background:var(--panel); border:1px solid var(--line); padding:26px 30px; display:flex; flex-direction:column; }
#s-money .jobquote p{ font-size:23px; line-height:1.45; color:var(--cream); }
#s-money .jobquote p b{ color:var(--red-deco); }
#s-money .jobquote .src{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.12em; color:var(--c45); margin-top:auto; padding-top:18px; text-transform:uppercase; }

/* --- Slide 12: realistic newspaper --- */
.browser .newssite{ flex:1; overflow:hidden; display:flex; flex-direction:column; background:#fff; color:#14110d; }
.ns-topbar{ display:flex; align-items:center; gap:20px; padding:16px 40px 12px; border-bottom:1px solid #e7e2d6; }
.ns-topbar .ns-name{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:38px; letter-spacing:.01em; flex:1; }
.ns-topbar .ns-date{ font-size:15px; color:#8a8474; }
.ns-topbar .ns-subscribe{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.14em; background:#C8102E; color:#fff; padding:8px 16px; }
.ns-nav{ display:flex; gap:30px; padding:12px 40px; border-bottom:2px solid #14110d; font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.12em; text-transform:uppercase; color:#3a352c; }
.ns-nav .active{ color:#C8102E; font-weight:500; }
.ns-nav .ns-search{ margin-left:auto; }
.ns-article{ padding:26px 40px 0; display:grid; grid-template-columns:1fr; overflow:hidden; }
.ns-kicker{ font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.2em; color:#C8102E; }
.ns-article h2{ font-family:Georgia,'Times New Roman',serif; font-size:42px; line-height:1.12; margin-top:10px; font-weight:700; color:#14110d; }
.ns-meta{ display:flex; align-items:center; gap:14px; font-size:17px; color:#6f6858; margin-top:14px; }
.ns-meta .ns-share{ margin-left:auto; font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.12em; color:#14110d; }
.ns-hero{ margin-top:20px; }
.ns-hero-img{ height:150px; background:linear-gradient(120deg,#c9c2b2,#a7a08f 60%,#8f8877); }
.ns-caption{ font-size:14px; color:#8a8474; margin-top:8px; font-style:italic; }
.ns-body{ margin-top:18px; column-count:2; column-gap:36px; }
.ns-body p{ font-family:Georgia,serif; font-size:18px; line-height:1.5; margin-bottom:14px; color:#231f18; }
.ns-side{ border-top:1px solid #e7e2d6; margin:0 40px; padding:16px 0 20px; }
.ns-side-h{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.18em; color:#8a8474; }
.ns-side-item{ font-family:Georgia,serif; font-size:19px; color:#14110d; padding:10px 0; border-bottom:1px solid #efeadd; }

/* --- Slide 14: iMessage link preview --- */
.imsg .bubble.haslink{ padding:8px; max-width:78%; }
.imsg .bubble span{ display:block; }
.imsg .bubble.haslink > span{ padding:8px 14px 10px; }
.linkprev{ background:#1c1b20; border-radius:16px; overflow:hidden; }
.imsg .me .linkprev{ background:#0b63c4; }
.linkprev .lp-img{ height:120px; background:linear-gradient(120deg,#3a3730,#26241d); }
.linkprev .lp-body{ padding:12px 16px; }
.linkprev .lp-title{ font-size:18px; line-height:1.25; color:#fff; }
.linkprev .lp-domain{ font-size:14px; color:#9aa0a6; margin-top:8px; }
.imsg .me .linkprev .lp-domain{ color:#cfe0f5; }

/* --- Slide 17: AN AI BROKE OUT (combined) --- */
#s-breakout{ padding:90px 130px; }
.breakout-stage{ flex:1; display:flex; flex-direction:column; justify-content:center; }
.bo-lines{ display:flex; flex-direction:column; gap:10px; }
.bo-l{ font-family:'League Spartan',sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.01em; line-height:.98; font-size:88px; }
.bo-l em{ font-style:normal; color:var(--red-deco); }
.bo-timeline{ display:flex; gap:0; margin-top:60px; border-top:2px solid var(--line); }
.bo-ev{ flex:1; padding:24px 22px 0; border-right:1px solid var(--line); position:relative; }
.bo-ev:last-child{ border-right:none; }
.bo-ev::before{ content:''; position:absolute; top:-8px; left:22px; width:13px; height:13px; border-radius:50%; background:var(--c45); }
.bo-ev.big::before{ background:var(--red-deco); box-shadow:0 0 18px rgba(230,57,70,.7); }
.bo-date{ font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.14em; color:var(--c45); }
.bo-ev.big .bo-date{ color:var(--red-deco); font-size:22px; }
.bo-text{ font-size:19px; line-height:1.42; color:var(--c72); margin-top:12px; }
.bo-ev.big .bo-text{ color:var(--cream); }

/* --- Slide 19: scheming (clear narrative) --- */
#s-scheme .scheme-intro{ font-size:27px; line-height:1.55; color:var(--c72); max-width:1500px; margin-top:30px; }
#s-scheme .scheme-intro b{ color:var(--cream); }
#s-scheme .scheme-steps{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:14px; margin:24px 0; }
#s-scheme .sstep{ display:flex; gap:30px; align-items:baseline; border-top:1px solid var(--line); padding-top:16px; }
#s-scheme .sstep.danger{ border-top-color:rgba(230,57,70,.5); }
#s-scheme .sstep-n{ font-family:'DM Mono',monospace; font-size:22px; color:var(--red-deco); flex:none; width:44px; }
#s-scheme .sstep-main{ flex:1; }
#s-scheme .sstep-head{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:34px; text-transform:uppercase; line-height:1.02; }
#s-scheme .sstep.danger .sstep-head{ color:var(--red-deco); }
#s-scheme .sstep-detail{ font-size:22px; color:var(--c72); margin-top:6px; }
#s-scheme .sstep-quote{ font-family:'DM Mono',monospace; font-size:19px; color:#7ddf8a; margin-top:8px; }
#s-scheme .sstep-tag{ display:inline-block; font-size:14px; letter-spacing:.12em; color:var(--c45); text-transform:uppercase; margin-right:14px; }
#s-scheme .scheme-payoff{ font-size:28px; color:var(--cream); max-width:1500px; }
#s-scheme .scheme-payoff b{ color:var(--red-deco); }

/* --- Slide 25: playbook year chips --- */
#s-playbook .card .yr{ font-family:'DM Mono',monospace; font-size:22px; letter-spacing:.14em; color:var(--red-deco); margin-bottom:6px; }

/* --- Slide 27: five focus labels --- */
#s-focus .statelbls{ flex-wrap:wrap; gap:26px 40px; }
#s-focus .statelbl{ font-size:34px; }

/* ============================================================
   v4 REVISIONS (appended)
   ============================================================ */

/* Slide 4: hide the whole video column until it's time to play */
#vidcol{ opacity:0; transition:opacity .45s ease; }
#vidcol.reveal{ opacity:1; }

/* Slide 5: smaller labels for the many dots */
#s-metr .ptlabel.small{ font-size:24px; }

/* Slide 6: four cards */
#s-agent .cols{ gap:30px; margin-top:52px; }
#s-agent .col{ padding:38px 32px; }
#s-agent .col .name{ font-size:38px; }
#s-agent .col li{ font-size:24px; padding-top:16px; gap:0; }
#s-agent .col ul{ margin-top:28px; gap:18px; }
#s-agent .agenticons{ display:flex; gap:14px; height:64px; align-items:center; margin-bottom:30px; }
#s-agent .agenticons span{ display:block; }
#s-agent .agenticons svg{ height:38px; width:38px; }
#s-agent .col.whatnext{ background:var(--faint); border-style:dashed; }
#s-agent .col.whatnext .qmark{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:64px; color:var(--c45); height:64px; line-height:1; margin-bottom:30px; }
#s-agent .col.whatnext .tag{ color:var(--c72); }

/* Slide 10: job quotes get the whole slide */
#s-jobquotes .jobquotes{ display:flex; gap:40px; flex:1; margin-top:60px; align-items:stretch; }
#s-jobquotes .jobquote{ flex:1; background:var(--panel); border:1px solid var(--line); padding:44px 40px; display:flex; flex-direction:column; }
#s-jobquotes .jobquote p{ font-size:30px; line-height:1.45; color:var(--cream); }
#s-jobquotes .jobquote p b{ color:var(--red-deco); }
#s-jobquotes .jobquote .src{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.12em; color:var(--c45); margin-top:auto; padding-top:22px; text-transform:uppercase; }

/* Slide 11: reaction questions */
#s-pause2 .qlist{ margin-top:44px; display:flex; flex-direction:column; gap:20px; }
#s-pause2 .ql{ font-size:30px; color:var(--c72); padding-left:26px; border-left:3px solid var(--red-deco); }

/* Slide 13: newspaper booking image + placeholders */
.ns-side .ns-book-img{ height:150px; background-size:cover; background-position:center; margin-bottom:8px; }
.ns-hero-img{ background-size:cover; background-position:center; }
.ns-hero-img.ph, .ns-book-img.ph{ background:repeating-linear-gradient(45deg,#c9c2b2,#c9c2b2 12px,#bdb6a5 12px,#bdb6a5 24px); display:flex; align-items:center; justify-content:center; }
.ns-hero-img.ph span, .ns-book-img.ph span{ font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.14em; color:#6f6858; }

/* Slide 15: iPhone frame + iOS rich-link preview */
#s-texts .wrap{ display:flex; justify-content:center; }
.iphone{ width:560px; background:#000; border:2px solid rgba(250,248,243,.18); border-radius:52px; padding:22px 18px 30px; }
.ip-status{ display:flex; justify-content:space-between; padding:6px 24px 16px; font-family:'DM Mono',monospace; font-size:16px; color:var(--c72); }
.ip-thread{ display:flex; flex-direction:column; gap:14px; padding:0 10px; min-height:200px; }
.ip-thread .bubble{ max-width:80%; padding:14px 20px; border-radius:22px; font-size:23px; line-height:1.35; }
.ip-thread .them{ background:#26252a; color:#fff; align-self:flex-start; border-bottom-left-radius:6px; }
.ip-thread .me{ background:#1084ff; color:#fff; align-self:flex-end; border-bottom-right-radius:6px; }
.ip-thread .bubble.haslink{ padding:6px; max-width:82%; }
.ip-thread .bubble.haslink > span{ display:block; padding:8px 14px 6px; }
.linkprev{ border-radius:16px; overflow:hidden; background:#1c1b20; }
.ip-thread .me .linkprev{ background:#0b63c4; }
.linkprev .lp-img{ height:150px; background:linear-gradient(120deg,#3a3730,#26241d); background-size:cover; background-position:center; }
.linkprev .lp-body{ padding:12px 16px 14px; }
.linkprev .lp-title{ font-size:18px; line-height:1.25; color:#fff; }
.linkprev .lp-domain{ font-size:14px; color:#9aa0a6; margin-top:6px; text-transform:lowercase; }
.ip-thread .me .linkprev .lp-domain{ color:#cfe0f5; }

/* Slides 17–19: What's at Stake */
#s-stake-terror .stakeboxes, #s-stake-auth .stakeboxes{ display:flex; gap:40px; flex:1; margin-top:60px; }
.stakeline{ font-size:30px; color:var(--c72); margin-top:6px; max-width:1500px; }
.stakebox{ flex:1; background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--red-deco); padding:40px 36px; display:flex; flex-direction:column; }
.stakebox .icon{ height:72px; }
.stakebox .icon svg{ height:72px; width:auto; }
.stakebox .sb-n{ font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.18em; color:var(--red-deco); margin-top:28px; }
.stakebox .sb-h{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:38px; text-transform:uppercase; line-height:1.02; margin-top:12px; }
.stakebox .sb-d{ font-size:24px; color:var(--c72); margin-top:18px; line-height:1.45; }
#s-stake-control .bigquote{ font-family:Georgia,serif; font-size:44px; line-height:1.4; max-width:1560px; margin-top:44px; }
#s-stake-control .bigquote-src{ font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.12em; color:var(--red-deco); margin-top:22px; text-transform:uppercase; }
#s-stake-control .ctrl-list{ display:flex; flex-direction:column; gap:20px; margin-top:50px; }
#s-stake-control .ctrl{ font-size:32px; color:var(--cream); padding-left:40px; position:relative; }
#s-stake-control .ctrl::before{ content:'→'; position:absolute; left:0; color:var(--red-deco); }

/* Slide 20: breakout animated chain */
#s-breakout{ padding:90px 130px; }
#s-breakout .bo-lines{ display:flex; flex-direction:column; gap:8px; }
#s-breakout .bo-l{ font-family:'League Spartan',sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:-.01em; line-height:.98; font-size:78px; }
#s-breakout .bo-l em{ font-style:normal; color:var(--red-deco); }
.bo-chain{ position:relative; flex:1; margin-top:40px; }
.bo-arrow{ stroke:var(--red-deco); stroke-width:5; fill:none; stroke-dasharray:12 12; opacity:0; transition:opacity .5s; }
.bo-arrow.on{ opacity:1; }
.bo-entity{ fill:var(--red-deco); opacity:0; transition:cx .7s cubic-bezier(.5,.05,.3,1), opacity .3s; filter:drop-shadow(0 0 14px rgba(230,57,70,.8)); }
.bo-entity.athf{ animation:entpulse 1s infinite; }
@keyframes entpulse{ 0%,100%{ r:16; } 50%{ r:21; } }
.bo-node2{ position:absolute; top:150px; transform:translateX(-50%); width:280px; text-align:center; opacity:0; transition:opacity .5s; }
.bo-node2.on{ opacity:1; }
.bo-node2 .bo-nt{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:30px; text-transform:uppercase; }
.bo-node2.redn2 .bo-nt{ color:var(--red-deco); }
.bo-node2 .bo-ns{ font-size:20px; color:var(--c72); margin-top:8px; }
.bo-node2 .bo-nd{ font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.14em; color:var(--red-deco); margin-top:10px; }
.bo-punch2{ position:absolute; bottom:0; left:0; right:0; font-size:26px; color:var(--c72); line-height:1.5; opacity:0; transition:opacity .5s; max-width:1400px; }
.bo-punch2.on{ opacity:1; }
.bo-punch2 b{ color:var(--red-deco); }

/* Slide 28: what we're for */
#s-forai .cols{ display:flex; gap:44px; flex:1; margin-top:64px; }
#s-forai .col{ flex:1; border-top:2px solid var(--line); padding-top:34px; }
#s-forai .col .t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:46px; text-transform:uppercase; line-height:1; }
#s-forai .col p{ font-size:27px; color:var(--c72); margin-top:20px; line-height:1.5; }

/* Slide 29: demands (numbered, no icon) */
#s-demands .list{ flex:1; display:flex; flex-direction:column; justify-content:center; }
#s-demands .gr{ display:flex; gap:48px; align-items:center; padding:34px 0; border-top:2px solid var(--line); }
#s-demands .gr:last-child{ border-bottom:2px solid var(--line); }
#s-demands .num{ font-family:'DM Mono',monospace; font-size:28px; color:var(--red-deco); letter-spacing:.1em; flex:none; width:56px; }
#s-demands .txt{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:50px; text-transform:uppercase; line-height:1; }

/* Slide 33: growth split (map + curve) */
#s-growth .growth-split{ display:flex; gap:50px; flex:1; align-items:center; margin-top:10px; }
#s-growth .growth-split .usamap-wrap{ flex:1.4; margin-top:0; }
#s-growth .growth-graph{ flex:1; display:flex; align-items:center; }
#s-growth .growth-graph svg{ width:100%; height:auto; max-height:460px; }
.gc-axis{ stroke:var(--line); stroke-width:2; }
.gc-lbl{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.1em; fill:var(--c45); text-transform:uppercase; }
.gc-line{ fill:none; stroke:var(--red-deco); stroke-width:5; stroke-linecap:round; }
.gc-dot{ fill:var(--cream); opacity:0; transition:opacity .4s; }
.gc-dot.on{ opacity:1; }

/* ============================================================
   v5 REVISIONS (appended)
   ============================================================ */

/* Slide 13: newspaper photos sized for near-square deepfakes (~1.1:1) */
.browser .newssite .ns-article{ display:block; }   /* normal flow so the photo floats */
.ns-hero{ float:right; width:300px; margin:2px 0 12px 28px; }
.ns-hero-img{ width:100%; aspect-ratio:5/4; height:auto; background-size:cover; background-position:center 22%; }
.ns-book{ float:left; width:200px; margin:2px 24px 10px 0; }
.ns-book-img{ width:100%; aspect-ratio:5/4; height:auto; background-size:cover; background-position:center 18%; }
.ns-body{ column-count:1; }
.ns-body p{ font-size:19px; line-height:1.5; }
.ns-side{ clear:both; padding-top:14px; }
.ns-hero-img.ph, .ns-book-img.ph{ aspect-ratio:5/4; }
.ns-caption{ font-size:13px; color:#8a8474; margin-top:6px; font-style:italic; }

/* Slide 20: breakout as four FRAMES with an entity travelling into each */
#s-breakout .bo-chain{ position:relative; flex:1; margin-top:44px; }
.bo-track{ position:absolute; left:0; right:0; top:44px; width:100%; height:60px; overflow:visible; }
.bo-track .bo-arrow{ stroke:var(--red-deco); stroke-width:4; stroke-dasharray:10 10; opacity:0; transition:opacity .5s; }
.bo-track .bo-arrow.on{ opacity:1; }
.bo-frame{ position:absolute; top:0; transform:translateX(-50%); width:23%; min-height:300px; border:3px solid var(--line); border-radius:6px; padding:26px 24px 24px; text-align:center; opacity:.22; transition:opacity .5s, border-color .5s, box-shadow .5s; }
.bo-frame.on{ opacity:1; }
.bo-frame.active{ border-color:var(--red-deco); box-shadow:0 0 60px rgba(230,57,70,.28); }
.bo-frame.redf.active{ box-shadow:0 0 70px rgba(230,57,70,.5); }
.bo-frame .bo-slot{ height:96px; display:flex; align-items:center; justify-content:center; }
.bo-frame .bo-icon svg{ height:60px; width:auto; opacity:.5; }
.bo-frame.active .bo-icon svg{ opacity:1; }
.bo-frame .bo-nt{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:30px; text-transform:uppercase; line-height:1.02; margin-top:14px; }
.bo-frame.redf .bo-nt{ color:var(--red-deco); }
.bo-frame .bo-ns{ font-size:20px; color:var(--c72); margin-top:10px; }
.bo-frame .bo-nd{ font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.14em; color:var(--red-deco); margin-top:16px; }
.bo-entity2{ position:absolute; top:60px; transform:translate(-50%,-50%); width:30px; height:30px; border-radius:50%; background:var(--red-deco); box-shadow:0 0 22px rgba(230,57,70,.9); opacity:0; transition:left .8s cubic-bezier(.5,.05,.3,1), opacity .3s; z-index:5; }
.bo-entity2.athf{ animation:entpulse2 1s infinite; }
@keyframes entpulse2{ 0%,100%{ box-shadow:0 0 22px rgba(230,57,70,.9);} 50%{ box-shadow:0 0 46px rgba(230,57,70,1);} }
#s-breakout .bo-punch2{ position:absolute; left:0; right:0; bottom:0; }

/* ============================================================
   v6 REVISIONS (appended)
   ============================================================ */

/* --- Slide 4: video visibility fix (ID selector was out-specifying the
   .playing override, so the frame could never show) + clearer play cover --- */
#s-years .vidbox.playing video{ opacity:1; }
.vidcover{ cursor:pointer; }
.vidcover span{ color:rgba(250,248,243,.55); transition:transform .3s ease; }
.vidbox:hover .vidcover span{ transform:scale(1.12); }
.vidcover::after{ content:'CLICK TO PLAY'; position:absolute; left:0; right:0; bottom:30px; text-align:center; font-family:'DM Mono',monospace; font-size:15px; letter-spacing:.22em; color:rgba(250,248,243,.42); transition:opacity .3s ease; }
.vidbox.playing .vidcover::after{ opacity:0; }

/* --- Slide 28 "Let's be clear": an icon per column --- */
#s-forai .col .icon{ height:58px; margin-bottom:26px; }
#s-forai .col .icon svg{ height:58px; width:auto; }

/* --- Slide 22 "And when it gets caught": private-notes redesign --- */
#s-scheme .scheme-frame{ margin-top:6px; }
#s-scheme .sf-big{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:60px; text-transform:uppercase; line-height:1; }
#s-scheme .sf-big em{ font-style:normal; color:var(--red-deco); }
#s-scheme .sf-sub{ font-size:23px; color:var(--c72); margin-top:16px; max-width:1620px; line-height:1.5; }
#s-scheme .sf-sub b{ color:var(--cream); }
#s-scheme .scheme-steps{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:14px; margin:20px 0; }
#s-scheme .srow{ display:flex; gap:38px; align-items:stretch; }
#s-scheme .sr-left{ flex:0 0 40%; display:flex; gap:20px; align-items:center; }
#s-scheme .sr-n{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:50px; color:var(--red-deco); opacity:.45; line-height:1; flex:none; }
#s-scheme .sr-act{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:31px; text-transform:uppercase; line-height:1.04; }
#s-scheme .srow.danger .sr-act{ color:var(--red-deco); }
#s-scheme .sr-note{ flex:1; background:rgba(230,57,70,.05); border:1px solid rgba(230,57,70,.28); border-left:4px solid var(--red-deco); border-radius:6px; padding:14px 24px; display:flex; flex-direction:column; justify-content:center; }
#s-scheme .sr-note-lbl{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.2em; color:var(--red-deco); text-transform:uppercase; display:flex; align-items:center; gap:9px; }
#s-scheme .sr-lock svg{ height:14px; width:auto; display:block; }
#s-scheme .sr-note-txt{ font-family:'DM Mono',monospace; font-size:22px; color:#7ddf8a; margin-top:7px; line-height:1.3; }
#s-scheme .sr-flag{ font-size:15px; color:var(--c55); margin-top:7px; }
#s-scheme .scheme-payoff{ font-size:25px; color:var(--cream); max-width:1620px; }
#s-scheme .scheme-payoff b{ color:var(--red-deco); }
#s-scheme .scheme-src{ margin-top:14px; }

/* --- Slide navigator overlay (press G · click to jump) --- */
#navigator{ position:fixed; inset:0; z-index:120; background:#0A0A0A; display:none; padding:64px 84px; overflow:auto; }
#navigator.on{ display:block; }
#navigator .nav-head{ font-family:'DM Mono',monospace; font-size:20px; letter-spacing:.2em; color:var(--c72); text-transform:uppercase; margin-bottom:30px; display:flex; align-items:baseline; gap:20px; }
#navigator .nav-hint{ font-size:14px; color:var(--c45); letter-spacing:.14em; }
#navigator .nav-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.nav-item{ text-align:left; background:rgba(250,248,243,.05); border:1px solid rgba(250,248,243,.16); color:var(--cream); padding:18px 20px; cursor:pointer; transition:border-color .18s, background .18s; }
.nav-item:hover{ border-color:var(--red-deco); background:rgba(230,57,70,.09); }
.nav-item.current{ border-color:var(--red-deco); background:rgba(230,57,70,.16); }
.nav-item .ni-n{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.16em; color:var(--red-deco); }
.nav-item .ni-t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:21px; text-transform:uppercase; margin-top:7px; line-height:1.03; }

/* --- Presenter view: jump-to-slide control --- */
#pv-jump{ margin-top:0; }
#pv-jumpwrap{ margin-top:14px; }
#pv-jumplist{ display:none; margin-top:12px; max-height:340px; overflow:auto; border:1px solid rgba(250,248,243,.2); }
#pv-jumplist.on{ display:block; }
#pv-jumplist .pvj{ display:block; width:100%; text-align:left; background:transparent; border:none; border-bottom:1px solid rgba(250,248,243,.1); color:var(--cream); padding:12px 16px; cursor:pointer; font-family:'Inter',sans-serif; font-size:16px; }
#pv-jumplist .pvj:hover{ background:rgba(230,57,70,.16); }
#pv-jumplist .pvj.current{ background:rgba(230,57,70,.1); }
#pv-jumplist .pvj .n{ font-family:'DM Mono',monospace; color:var(--red-deco); font-size:12px; letter-spacing:.14em; margin-right:12px; }

/* --- Setup: villain-pic help box --- */
.helpbox{ background:var(--stripe); border:1px solid #E5E0D5; border-left:4px solid var(--red); padding:20px 24px; margin-top:18px; }
.helpbox .hb-h{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--red); }
.helpbox ol{ margin:12px 0 0 20px; }
.helpbox li{ font-size:15px; line-height:1.6; color:var(--ink2); margin-bottom:9px; }
.helpbox a{ color:var(--blue); text-decoration:none; font-weight:600; }
.helpbox a:hover{ text-decoration:underline; }

/* --- Setup: core-team mission panel --- */
.spanel.mission{ border-top:5px solid var(--red); }
.spanel.mission .m-eyebrow{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--red); }
.spanel.mission h3{ margin-top:10px; }
.mission-list{ list-style:none; margin-top:16px; }
.mission-list li{ font-size:16px; line-height:1.6; color:var(--ink2); padding:11px 0 11px 28px; position:relative; border-top:1px solid #EEE9DD; }
.mission-list li:first-child{ border-top:none; }
.mission-list li::before{ content:'\2192'; position:absolute; left:0; color:var(--red); font-weight:700; }
.mission-list li b{ color:var(--ink); }
.mission-qs{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.mission-qs span{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.05em; color:var(--ink2); background:#fff; border:1px solid #E5E0D5; padding:8px 14px; border-radius:20px; }

/* --- Setup: move to another computer --- */
.movegrid{ display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.linkfield{ width:100%; margin-top:16px; font-family:'DM Mono',monospace; font-size:13px; padding:12px 14px; border:2px solid #D8D2C4; background:var(--stripe); color:var(--ink2); }
.move-note{ font-size:14px; color:var(--muted); margin-top:12px; line-height:1.55; }
.move-status{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.06em; color:#0a7a2f; margin-left:4px; align-self:center; }

/* --- Script view: back-to-dashboard + inline editor --- */
#scriptview .sv-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:26px; align-items:center; }
#scriptview .backbtn, #scriptview .editbtn{ font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.1em; padding:12px 22px; border:2px solid #C8102E; background:#fff; color:#C8102E; cursor:pointer; text-transform:uppercase; }
#scriptview .backbtn:hover, #scriptview .editbtn:hover{ background:#C8102E; color:#fff; }
#scriptview .editbtn.on{ background:#C8102E; color:#fff; }
#scriptview .edit-help{ font-size:14px; color:#666; margin:-10px 0 22px; line-height:1.55; display:none; }
body.script.editmode #scriptview .edit-help{ display:block; }
#scriptview .sv-edit{ display:none; width:100%; min-height:150px; font-family:'DM Mono',monospace; font-size:14px; line-height:1.65; padding:14px 16px; border:2px solid #C8102E; background:#fffdf8; color:#111; margin-top:10px; resize:vertical; }
body.script.editmode #scriptview .sv-notes{ display:none; }
body.script.editmode #scriptview .sv-edit{ display:block; }
#scriptview .sv-status{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.06em; color:#0a7a2f; }
@media print{ #scriptview .sv-actions, #scriptview .edit-help{ display:none; } #scriptview .sv-edit{ display:none !important; } body.script.editmode #scriptview .sv-notes{ display:block; } }

/* ============================================================
   v7 REVISIONS (appended)
   ============================================================ */

/* Keyboard shortcuts overlay (press ? anytime) */
#shortcuts{ position:fixed; inset:0; z-index:130; background:rgba(10,10,10,.72); display:none; align-items:center; justify-content:center; padding:24px; }
#shortcuts.on{ display:flex; }
#shortcuts .sc-card{ background:#141414; border:1px solid rgba(250,248,243,.2); border-radius:12px; padding:30px 36px 26px; width:580px; max-width:94vw; box-shadow:0 40px 120px rgba(0,0,0,.6); }
#shortcuts .sc-head{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.2em; color:var(--cream); text-transform:uppercase; display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
#shortcuts .sc-close{ background:transparent; border:none; color:var(--c55); font-size:20px; line-height:1; cursor:pointer; padding:4px 8px; }
#shortcuts .sc-close:hover{ color:var(--red-deco); }
#shortcuts .sc-foot{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.14em; color:var(--c45); text-transform:uppercase; margin-top:18px; }
.sc-list{ display:flex; flex-direction:column; }
.sc-row{ display:flex; align-items:baseline; gap:22px; padding:10px 0; border-top:1px solid rgba(250,248,243,.1); }
.sc-row:first-child{ border-top:none; }
.sc-key{ font-family:'DM Mono',monospace; font-size:15px; color:var(--red-deco); flex:none; min-width:120px; }
.sc-desc{ font-size:16px; color:var(--c72); line-height:1.4; }

/* Setup reference card (cream) reuses the .sc-list rows */
#sc-setup .sc-list{ margin-top:6px; }
#sc-setup .sc-row{ border-top-color:#EEE9DD; padding:9px 0; }
#sc-setup .sc-key{ color:var(--red); }
#sc-setup .sc-desc{ color:var(--ink2); }

/* Welcome-back dashboard tip */
.wb-tip{ font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.06em; color:var(--c45); margin-top:22px; }
.wb-tip b{ color:var(--red-deco); }

/* ============================================================
   v10 REVISIONS (appended)
   ============================================================ */

/* Breath / pivot interaction slide */
#s-breath h1{ font-size:76px; max-width:1520px; }

/* "But what about China?" objection-handling slide */
#s-china h1{ line-height:1.02; }
#s-china .stakeline{ margin-top:14px; }
#s-china .china-points{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:34px; margin-top:24px; }
#s-china .cpoint{ display:flex; gap:36px; align-items:baseline; border-top:1px solid var(--line); padding-top:30px; }
#s-china .cp-n{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:44px; color:var(--red-deco); opacity:.5; line-height:1; flex:none; }
#s-china .cp-t{ font-family:'League Spartan',sans-serif; font-weight:900; font-size:50px; text-transform:uppercase; line-height:1.03; }
#s-china .china-punch{ margin-top:40px; font-family:'League Spartan',sans-serif; font-weight:900; font-size:46px; text-transform:uppercase; line-height:1.02; }

/* ============================================================
   v16 — LIGHT THEME (default) for the audience deck.
   Scoped to #stage so the presenter view, setup, script view,
   and overlays keep their own (dark) styling. Press D → body.dark
   restores the original dark palette.
   ============================================================ */
#stage{
  --dark:#FAF8F3; --stripe:#F3EEE3; --cream:#111111;
  --c72:rgba(17,17,17,.74); --c55:rgba(17,17,17,.56); --c45:rgba(17,17,17,.5);
  --line:rgba(17,17,17,.17); --panel:rgba(17,17,17,.035);
  --red-deco:#C8102E;
  --grid:rgba(17,17,17,.12); --land:rgba(17,17,17,.13); --sq:rgba(17,17,17,.16);
  --track:rgba(17,17,17,.14); --faint:rgba(17,17,17,.03); --dot:#2b2b2b;
}
body.dark #stage{
  --dark:#0A0A0A; --stripe:#F3EEE3; --cream:#FAF8F3;
  --c72:rgba(250,248,243,.72); --c55:rgba(250,248,243,.55); --c45:rgba(250,248,243,.45);
  --line:rgba(250,248,243,.16); --panel:rgba(250,248,243,.05);
  --red-deco:#E63946;
  --grid:rgba(250,248,243,.1); --land:rgba(250,248,243,.1); --sq:rgba(250,248,243,.28);
  --track:rgba(250,248,243,.12); --faint:rgba(250,248,243,.03); --dot:#FAF8F3;
}

/* letterbox behind the 16:9 stage */
#viewport{ background:#ECE7DB; }
body.dark #viewport{ background:#0A0A0A; }

/* the HIC logo art is white — invert it to dark on the light theme */
#s-title .logo, #s-selfie .logo{ filter:invert(1); }
body.dark #s-title .logo, body.dark #s-selfie .logo{ filter:none; }

/* growth-map dots: theme-driven fill (JS no longer sets it inline) */
#stage .growdot circle{ fill:var(--dot); }
#stage .growdot.wave1 circle{ fill:var(--red-deco); }

/* deck chrome that sits over the light stage */
#hint{ background:rgba(17,17,17,.08); color:#111; }
#pagenum{ color:rgba(17,17,17,.45); }
body.dark #hint{ background:rgba(250,248,243,.1); color:#FAF8F3; }
body.dark #pagenum{ color:rgba(250,248,243,.35); }

/* ============================================================
   v17 REVISIONS (appended)
   ============================================================ */

/* Reveal punch line (money "homework helper", jobquotes "replace workers") */
.revealpunch{ font-family:'League Spartan',sans-serif; font-weight:900; text-transform:uppercase; font-size:46px; line-height:1.05; margin-top:34px; }
.revealpunch em{ font-style:normal; color:var(--red-deco); }
#s-money .revealpunch, #s-jobquotes .revealpunch{ flex:none; }
#s-jobquotes .revealpunch{ font-size:42px; }

/* Breakout bottom: three bigger bullets with icons */
#s-breakout .bo-punch2{ display:flex; gap:44px; align-items:flex-start; }
#s-breakout .bo-bullet{ flex:1; display:flex; gap:18px; align-items:flex-start; }
#s-breakout .bo-bicon{ flex:none; color:var(--red-deco); line-height:1; margin-top:2px; }
#s-breakout .bo-bicon svg{ height:44px; width:auto; display:block; }
#s-breakout .bo-btext{ font-size:22px; color:var(--c72); line-height:1.4; }
#s-breakout .bo-btext b{ display:block; font-family:'League Spartan',sans-serif; font-weight:900; font-size:32px; text-transform:uppercase; color:var(--cream); margin-bottom:6px; letter-spacing:-.01em; }

/* ============================================================
   v18 REVISIONS (appended)
   ============================================================ */

/* Practice-notes drawer: closable, and never lingering over setup */
#nd-close{ position:absolute; top:8px; right:14px; background:transparent; border:none; color:var(--red-deco); font-size:20px; line-height:1; cursor:pointer; padding:4px 8px; z-index:2; }
#nd-close:hover{ color:#fff; }
body.setup #notesdrawer{ display:none !important; }

/* Sticky "enter presentation" escape button on the setup screen */
#setup-enter{ display:none; }
body.setup #setup-enter{ display:inline-block; position:fixed; top:18px; right:18px; z-index:96; box-shadow:0 8px 24px rgba(0,0,0,.18); }

/* Act headers in the navigator (G) and the presenter jump list */
#navigator .nav-act{ grid-column:1 / -1; font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.22em; text-transform:uppercase; color:var(--red-deco); margin-top:24px; padding-bottom:8px; border-bottom:1px solid rgba(230,57,70,.35); }
#navigator .nav-act:first-child{ margin-top:0; }
#pv-jumplist .pvj-act{ font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--red-deco); padding:14px 16px 6px; border-bottom:1px solid rgba(250,248,243,.12); }

/* Demands slide: small category label above each ask */
#s-demands .gr{ align-items:center; padding:24px 0; }
#s-demands .dcat{ font-family:'DM Mono',monospace; font-size:16px; letter-spacing:.18em; text-transform:uppercase; color:var(--red-deco); margin-bottom:7px; }
#s-demands .txt{ font-size:44px; }

/* Buildout slide: data centers (left) + the spending comparison (right) */
.dc-fact{ display:flex; align-items:flex-start; gap:18px; }
.dc-fact .dc-icon{ flex:none; color:var(--red-deco); margin-top:2px; }
.dc-fact .dc-icon svg{ width:42px; height:42px; display:block; }
.dc-fact .dc-body{ font-size:27px; line-height:1.35; color:var(--c72); }
.dc-fact .dc-body b{ color:var(--cream); font-weight:700; }

#s-money .mn-cols{ flex:1; display:flex; gap:70px; margin-top:26px; align-items:flex-start; }
#s-money .mn-left{ flex:1.05; display:flex; flex-direction:column; gap:26px; }
#s-money .mn-right{ flex:1; }
#s-money .mn-hd{ font-family:'DM Mono',monospace; font-size:19px; letter-spacing:.2em; text-transform:uppercase; color:var(--red-deco); padding-bottom:14px; border-bottom:1px solid var(--line); }
#s-money .dc-oppose{ font-family:'League Spartan',sans-serif; font-weight:900; text-transform:uppercase; font-size:31px; line-height:1.15; margin-top:4px; }
#s-money .dc-oppose em{ font-style:normal; color:var(--red-deco); }
/* squares fit the right-hand column */
#s-money .mn-right .viz{ display:flex; gap:44px; margin-top:26px; }
#s-money .mn-right .lbl{ font-size:18px; margin-bottom:18px; letter-spacing:.14em; }
#s-money .mn-right .sq-grid{ max-width:266px; gap:14px; }
#s-money .mn-right .sq{ width:74px; height:74px; }
#s-money .mn-right .amount{ font-size:42px; margin-top:18px; }
#s-money .mn-right .amount small{ font-size:18px; }
#s-money .revealpunch{ margin-top:26px; }
#s-money .srcline{ flex:none; margin-top:18px; }
