/* TUAT v0.10.7 — stage upgrades (loaded after story.css).
   1) FUTURE360 live layer: one phase on screen at a time, sized to the 1920×1080 canvas, never scrolls.
   2) Join QR: large on the projector before and during the vote.
   3) Text scenes: HUD visuals in the language of the nine scene images + entrance motion.
   Full-screen image scenes are explicitly excluded from every rule below. */

.story-stage{
  --sp-cyan:#5fe3ea;--sp-teal:#33c9b6;--sp-red:#ff5b64;--sp-amber:#ffb84f;--sp-ink:#ecf7ff;--sp-dim:#8fa8bb;
  --sp-line:rgba(110,226,236,.22);--sp-panel:linear-gradient(165deg,rgba(17,42,62,.80),rgba(6,16,28,.86));
  --sp-display:"Inter Display",Inter,"Segoe UI",system-ui,-apple-system,sans-serif;--sp-text:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
}

/* ---------- Safety: image scenes stay exactly as in v0.10.6 ---------- */
.story-stage.full-image-scene .sp-ambient,.story-stage.full-image-scene .sp-year,.story-stage.full-image-scene .sp-fx{display:none!important}

/* ---------- Ambient layer (text + live scenes) ---------- */
.sp-ambient{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.sp-ambient i{position:absolute;border-radius:50%;will-change:transform}
.sp-ambient i:nth-child(1){width:1100px;height:1100px;left:-380px;top:-460px;background:radial-gradient(circle,color-mix(in srgb,var(--story-accent) 20%,transparent) 0%,transparent 62%);animation:spDriftA 28s ease-in-out infinite alternate}
.sp-ambient i:nth-child(2){width:1000px;height:1000px;right:-360px;bottom:-520px;background:radial-gradient(circle,color-mix(in srgb,var(--story-accent2) 17%,transparent) 0%,transparent 60%);animation:spDriftB 34s ease-in-out infinite alternate}
.sp-ambient i:nth-child(3){left:0;right:0;top:0;height:180px;border-radius:0;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--story-accent) 7%,transparent),transparent);animation:spScan 11s linear infinite}
.sp-ambient b{position:absolute;inset:-60px;background-image:radial-gradient(circle,rgba(220,245,255,.34) 0 1px,transparent 1.7px);background-size:54px 54px;-webkit-mask-image:radial-gradient(ellipse at 72% 42%,#000 0%,transparent 64%);mask-image:radial-gradient(ellipse at 72% 42%,#000 0%,transparent 64%);opacity:.5;animation:spDots 60s linear infinite}
@keyframes spDriftA{to{transform:translate(220px,140px) scale(1.12)}}
@keyframes spDriftB{to{transform:translate(-200px,-120px) scale(1.08)}}
@keyframes spScan{from{transform:translateY(-200px)}to{transform:translateY(1100px)}}
@keyframes spDots{to{background-position:54px 108px}}

.sp-year{position:absolute;right:70px;bottom:118px;z-index:1;pointer-events:none;font:200 360px/.78 var(--sp-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--story-accent) 30%,transparent);opacity:.55}
.sp-year:empty{display:none}
.story-stage[data-live-phase] .sp-year{display:none}

/* ---------- Header: chapter rail ---------- */
.sp-rail{display:flex;align-items:center;gap:12px;margin-left:auto;margin-right:34px;font:700 12px/1 var(--sp-text);letter-spacing:.18em;color:#4b6274}
.sp-rail:empty{display:none}
.sp-rail span{transition:color .4s}
.sp-rail span.done{color:#86a3b8}
.sp-rail span.on{color:var(--story-accent);text-shadow:0 0 18px color-mix(in srgb,var(--story-accent) 55%,transparent)}
.sp-rail i{width:28px;height:1px;background:rgba(255,255,255,.14)}

/* ---------- Text scenes: typography ---------- */
.story-stage:not(.full-image-scene) .story-title{font-family:var(--sp-display);font-weight:800;letter-spacing:-.042em;text-wrap:balance}
.story-stage:not(.full-image-scene) #storySceneKicker{display:inline-flex;align-items:center;gap:14px;color:var(--story-accent);font-weight:800;letter-spacing:.22em}
.story-stage:not(.full-image-scene) #storySceneKicker::before{content:"";width:38px;height:2px;border-radius:2px;background:var(--story-accent);box-shadow:0 0 12px var(--story-accent)}
.story-stage:not(.full-image-scene) .story-body{color:#cddeea;text-wrap:pretty}
.sp-num{color:color-mix(in srgb,var(--story-accent) 82%,#ffffff);font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.story-stage:not(.full-image-scene) .story-headline{border-radius:10px;padding:11px 16px;font:800 13px/1 var(--sp-text);letter-spacing:.16em;background:linear-gradient(90deg,color-mix(in srgb,var(--story-accent) 14%,transparent),transparent);border:1px solid color-mix(in srgb,var(--story-accent) 34%,transparent)}
.story-stage:not(.full-image-scene) .story-headline i{animation:spBlink 1.6s ease-in-out infinite}
.story-stage:not(.full-image-scene) .story-highlights li{border-radius:12px;background:rgba(255,255,255,.04);font-size:16px}
.story-stage:not(.full-image-scene) .story-question strong{font-family:var(--sp-display);font-weight:600;letter-spacing:-.015em}
.story-stage:not(.full-image-scene) .story-question{border-top:1px solid color-mix(in srgb,var(--story-accent) 22%,rgba(255,255,255,.08))}
@keyframes spBlink{0%,100%{opacity:1}50%{opacity:.25}}

/* ---------- Text scenes with a HUD visual ---------- */
.story-stage.sp-has-fx .story-main{grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:64px}
.story-stage.sp-has-fx .story-orbit{display:none}
.story-stage.sp-has-fx .story-visual{height:auto;min-height:0;display:block;align-self:center}
.sp-fx:empty{display:none}
.sp-fx{display:flex;flex-direction:column;gap:16px;width:100%;color:var(--sp-ink);font-family:var(--sp-text)}
.story-stage:not(.sp-has-fx) .story-orbit::before{animation:spSpin 60s linear infinite}
.story-stage:not(.sp-has-fx) .story-orbit::after{animation:spSpin 90s linear infinite reverse}

/* Finale: one centred question */
.story-stage.sp-finale .story-main{grid-template-columns:1fr;justify-items:center;text-align:center;gap:26px;align-content:center}
.story-stage.sp-finale .story-copy{max-width:1500px;display:flex;flex-direction:column;align-items:center}
.story-stage.sp-finale .story-title{font-size:132px;line-height:.95}
.story-stage.sp-finale .story-body{max-width:none}
.story-stage.sp-finale .story-visual{width:100%}

/* ---------- HUD primitives ---------- */
.sp-panel{position:relative;padding:20px 22px;border:1px solid var(--sp-line);border-radius:18px;background:var(--sp-panel);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 26px 70px rgba(0,0,0,.38);overflow:hidden}
.sp-panel::before{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--sp-cyan),transparent);opacity:.55}
.sp-panel.sp-compact{padding:16px 20px}
.sp-panel-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--sp-cyan);font:800 12px/1.2 var(--sp-text);letter-spacing:.16em;text-transform:uppercase}
.sp-panel-head .sp-ico{width:19px;height:19px;flex:none}
.sp-panel.sp-amber .sp-panel-head{color:var(--sp-amber)}
.sp-panel.sp-rec{border-color:rgba(255,124,104,.3)}
.sp-panel.sp-rec .sp-panel-head{color:#ff9480}
.sp-panel.sp-rec .sp-panel-head .sp-ico{color:#ff4d55;animation:spBlink 1.2s steps(2,start) infinite}
.sp-quote{margin:0;font:300 30px/1.2 var(--sp-display);color:#fff}

.sp-ecg{position:relative;height:118px;border-radius:12px;background:rgba(2,10,18,.55);border:1px solid rgba(95,227,234,.12);overflow:hidden}
.sp-ecg svg{display:block;width:100%;height:100%}
.sp-ecg path{fill:none;stroke:var(--sp-cyan);stroke-width:2.4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 5px rgba(95,227,234,.75))}
.sp-ecg path.sp-ecg-grid{stroke:rgba(95,227,234,.08);stroke-width:1;filter:none}
.sp-ecg-run{animation:spEcg 3.8s linear infinite}
.sp-ecg-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(2,10,18,.95),transparent 16%,transparent 80%,rgba(2,10,18,.95))}
.sp-ecg.sp-ecg-glitch path{stroke:#ff8f7a;filter:drop-shadow(0 0 5px rgba(255,110,90,.7))}
.sp-ecg.sp-ecg-glitch .sp-ecg-run{animation:spEcg 3.8s linear infinite,spJitter 2.2s steps(1) infinite}
@keyframes spEcg{to{transform:translateX(-600px)}}
@keyframes spJitter{0%,86%,100%{opacity:1}88%{opacity:.2}90%{opacity:1}92%{opacity:.4}}

.sp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sp-chips span{padding:8px 13px;border-radius:999px;border:1px solid rgba(95,227,234,.24);background:rgba(95,227,234,.06);color:#c6eef4;font:700 12px/1 var(--sp-text);letter-spacing:.12em}
.sp-chips span.flow{border-color:color-mix(in srgb,var(--story-accent) 40%,transparent);color:#eef8ff;background:color-mix(in srgb,var(--story-accent) 10%,transparent)}
.sp-fx>.sp-chips{margin-top:2px}
.sp-fx>.sp-chips span.flow:not(:last-child)::after{content:"→";margin-left:12px;color:var(--story-accent)}

.sp-alert{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border-radius:16px;border:1px solid rgba(255,91,100,.58);background:linear-gradient(160deg,rgba(86,14,24,.78),rgba(34,6,12,.86));animation:spAlert 3s ease-in-out infinite}
.sp-alert .sp-ico{width:34px;height:34px;flex:none;color:var(--sp-red)}
.sp-alert b{display:block;font:750 24px/1.2 var(--sp-text);color:#ff9095}
.sp-alert span{display:block;margin-top:5px;font:500 15px/1.4 var(--sp-text);color:#f1c9cc}
@keyframes spAlert{0%,100%{box-shadow:0 0 0 1px rgba(255,91,100,.1),0 0 34px rgba(255,91,100,.14)}50%{box-shadow:0 0 0 1px rgba(255,91,100,.32),0 0 56px rgba(255,91,100,.3)}}

.sp-checks{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.sp-checks li{display:grid;grid-template-columns:32px 1fr;gap:13px;align-items:start;font:500 17px/1.42 var(--sp-text);color:#dbeaf3}
.sp-checks i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center}
.sp-checks .sp-ico{width:18px;height:18px}
.sp-checks .sp-ok i{background:rgba(51,201,182,.16);color:#64f0da}
.sp-checks .sp-no i{background:rgba(255,91,100,.16);color:#ff7d83}
.sp-checks .sp-q i{background:rgba(255,184,79,.15);color:#ffc874}

.sp-split{display:flex;gap:24px;align-items:center}
.sp-split .sp-stats{grid-template-columns:1fr;flex:1}
.sp-gauge{position:relative;width:200px;height:200px;flex:none}
.sp-gauge svg{width:100%;height:100%;transform:rotate(-90deg)}
.sp-g-track{fill:none;stroke:rgba(255,255,255,.08);stroke-width:14}
.sp-g-val{fill:none;stroke:var(--sp-amber);stroke-width:14;stroke-linecap:round;stroke-dasharray:502.65;stroke-dashoffset:calc(502.65px * (1 - var(--p)));filter:drop-shadow(0 0 8px rgba(255,184,79,.6))}
.sp-gauge.sp-red .sp-g-val{stroke:var(--sp-red)}
.sp-g-num{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center}
.sp-g-num b{display:flex;align-items:baseline;gap:2px;font:200 70px/1 var(--sp-display);color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.sp-g-num b em{font-style:normal}
.sp-g-num b small{font:300 34px/1 var(--sp-display);color:#ffd59a}
.sp-g-num span{margin-top:8px;font:800 9px/1.2 var(--sp-text);letter-spacing:.14em;color:var(--sp-dim);max-width:120px}

.sp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:12px}
.sp-stats div{padding:15px 17px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.sp-stats b{display:block;font:300 46px/1 var(--sp-display);color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sp-stats span{display:block;margin-top:7px;font:700 12px/1.2 var(--sp-text);letter-spacing:.13em;text-transform:uppercase;color:var(--sp-dim)}
.sp-fx>.sp-stats div{background:var(--sp-panel);border-color:var(--sp-line)}

.sp-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch;margin-bottom:14px}
.sp-vs-side{padding:16px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.sp-vs-side span{display:block;font:800 11px/1.2 var(--sp-text);letter-spacing:.15em}
.sp-vs-side b{display:block;margin-top:10px;font:200 66px/1 var(--sp-display);letter-spacing:-.035em;color:#fff;font-variant-numeric:tabular-nums}
.sp-vs-side small{display:block;margin-top:6px;font:600 13px var(--sp-text);color:var(--sp-dim)}
.sp-vs-side.sp-cyan{border-color:rgba(95,227,234,.36)}.sp-vs-side.sp-cyan span{color:var(--sp-cyan)}
.sp-vs-side.sp-amber{border-color:rgba(255,184,79,.42)}.sp-vs-side.sp-amber span,.sp-vs-side.sp-amber b{color:#ffcf86}
.sp-vs-side.sp-red{border-color:rgba(255,91,100,.5);background:rgba(255,91,100,.06)}.sp-vs-side.sp-red span,.sp-vs-side.sp-red b{color:#ff8a90}
.sp-vs-mid{display:grid;place-content:center;justify-items:center;text-align:center;min-width:58px}
.sp-vs-mid b{font:300 40px/1 var(--sp-display);color:#fff}
.sp-vs-mid small{margin-top:6px;font:800 9px/1.2 var(--sp-text);letter-spacing:.14em;color:#ff9480;max-width:70px}

.sp-trip{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sp-trip li{position:relative;display:grid;grid-template-columns:66px 1fr;gap:20px;align-items:center;padding:18px 22px;border-radius:18px;border:1px solid var(--sp-line);background:var(--sp-panel);box-shadow:0 22px 60px rgba(0,0,0,.32)}
.sp-trip li:not(:last-child)::after{content:"";position:absolute;left:54px;bottom:-15px;width:2px;height:16px;background:linear-gradient(var(--sp-cyan),transparent)}
.sp-trip li>i{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;color:var(--sp-cyan);border:1px solid rgba(95,227,234,.38);background:radial-gradient(circle,rgba(95,227,234,.18),rgba(6,16,28,.9))}
.sp-trip li>i .sp-ico{width:30px;height:30px}
.sp-trip li span{font:800 13px/1 var(--sp-text);letter-spacing:.22em;color:var(--sp-cyan)}
.sp-trip li b{display:block;margin-top:7px;font:200 44px/1.02 var(--sp-display);letter-spacing:-.02em;color:#fff}
.sp-trip li small{display:block;margin-top:7px;font:600 14px/1.35 var(--sp-text);letter-spacing:.06em;color:#a9c2d3}
.sp-trip li.on>i{box-shadow:0 0 34px rgba(95,227,234,.38)}

.sp-stack{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sp-stack li{display:grid;grid-template-columns:38px 1fr;gap:15px;align-items:center;padding:14px 18px;border-radius:14px;border:1px solid rgba(95,227,234,.2);background:rgba(95,227,234,.05);font:650 23px/1.2 var(--sp-text);color:#eaf6fb}
.sp-stack i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(51,201,182,.18);color:#68f1dc}
.sp-stack .sp-ico{width:20px;height:20px}

.sp-eq{display:grid;justify-items:center;padding:4px 0 8px}
.sp-eq .term{font:200 108px/1.02 var(--sp-display);letter-spacing:-.035em;color:#fff;text-align:center}
.sp-eq .op{font:200 118px/1 var(--sp-display);color:var(--story-accent);text-shadow:0 0 44px color-mix(in srgb,var(--story-accent) 70%,transparent)}

.sp-row{display:flex;justify-content:center}
.sp-loop{position:relative;width:340px;height:340px}
.sp-loop svg{position:absolute;left:10px;top:10px;width:320px;height:320px}
.sp-loop-ring{fill:none;stroke:rgba(95,227,234,.4);stroke-width:2}
.sp-loop-ring2{fill:none;stroke:rgba(95,227,234,.14);stroke-width:1;stroke-dasharray:6 8}
.sp-loop-spin{position:absolute;left:52px;top:52px;width:236px;height:236px;animation:spSpin 5.5s linear infinite}
.sp-loop-spin i{position:absolute;left:calc(50% - 7px);top:-7px;width:14px;height:14px;border-radius:50%;background:var(--sp-cyan);box-shadow:0 0 16px var(--sp-cyan),0 0 4px #fff}
.sp-loop-node{position:absolute;padding:9px 13px;border-radius:10px;background:rgba(5,14,24,.94);border:1px solid rgba(95,227,234,.38);font:800 12px/1 var(--sp-text);letter-spacing:.13em;color:#e2f8fc;white-space:nowrap}
.sp-loop-node.n0{left:50%;top:22px;transform:translateX(-50%)}
.sp-loop-node.n1{right:-40px;top:50%;transform:translateY(-50%)}
.sp-loop-node.n2{left:50%;bottom:22px;transform:translateX(-50%)}
.sp-loop-node.n3{left:-24px;top:50%;transform:translateY(-50%)}
.sp-loop-core{position:absolute;inset:0;display:grid;place-content:center;font:300 20px/1.25 var(--sp-display);letter-spacing:.16em;color:#fff;text-align:center}

.sp-map svg{display:block;width:100%;height:auto}
.sp-map-bg{fill:rgba(2,10,18,.6);stroke:rgba(95,227,234,.14)}
.sp-map-road{fill:none;stroke:rgba(95,227,234,.17);stroke-width:2}
.sp-ping-dot{fill:var(--sp-red)}
.sp-ping-wave{fill:none;stroke:var(--sp-red);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:spPing 2.6s ease-out infinite;animation-delay:calc(var(--i)*.42s)}
@keyframes spPing{0%{transform:scale(.3);opacity:.95}100%{transform:scale(2.3);opacity:0}}

.sp-patients{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sp-patient{padding:18px 20px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:var(--sp-panel);box-shadow:0 22px 60px rgba(0,0,0,.3)}
.sp-patient header b{display:block;font:800 28px/1 var(--sp-text);letter-spacing:.04em}
.sp-patient header span{display:block;margin-top:7px;font:500 15px/1.3 var(--sp-text);color:var(--sp-dim)}
.sp-pbar{height:10px;margin:18px 0 12px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.sp-pbar i{display:block;height:100%;width:calc(var(--v) * 100%);min-width:6px;border-radius:inherit;background:currentColor;box-shadow:0 0 14px currentColor}
.sp-patient footer{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sp-patient footer small{font:800 10px/1.2 var(--sp-text);letter-spacing:.14em;color:var(--sp-dim)}
.sp-patient footer b{font:200 52px/1 var(--sp-display);letter-spacing:-.03em}
.sp-patient.sp-red{border-color:rgba(255,91,100,.48);color:#ff7c83}
.sp-patient.sp-cyan{border-color:rgba(95,227,234,.42);color:var(--sp-cyan)}
.sp-fx>.sp-stats{margin-bottom:2px}

.sp-glitch{position:relative;display:inline-block;font:200 156px/1 var(--sp-display);letter-spacing:-.045em;color:#fff}
.sp-glitch::before,.sp-glitch::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}
.sp-glitch::before{color:#ff4d5a;transform:translate(3px,0);clip-path:inset(12% 0 58% 0);animation:spGlitchA 2.6s steps(1) infinite}
.sp-glitch::after{color:var(--sp-cyan);transform:translate(-3px,0);clip-path:inset(62% 0 8% 0);animation:spGlitchB 3.1s steps(1) infinite}
@keyframes spGlitchA{0%,90%,100%{transform:translate(0)}92%{transform:translate(7px,-2px)}95%{transform:translate(-5px,1px)}}
@keyframes spGlitchB{0%,84%,100%{transform:translate(0)}86%{transform:translate(-8px,2px)}89%{transform:translate(4px,0)}}
.sp-stamp{display:inline-block;margin:0 0 0 22px;vertical-align:middle;padding:9px 16px;border:3px solid var(--sp-red);border-radius:8px;color:#ff6e76;font:900 24px/1 var(--sp-text);letter-spacing:.28em;transform:rotate(-7deg)}

.sp-questions{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sp-questions li{padding:22px 26px;border-radius:18px;border:1px solid var(--sp-line);background:var(--sp-panel);box-shadow:0 22px 60px rgba(0,0,0,.3)}
.sp-questions b{display:block;font:300 36px/1.14 var(--sp-display);letter-spacing:-.02em;color:#fff}
.sp-questions small{display:block;margin-top:10px;font:800 11px/1 var(--sp-text);letter-spacing:.18em;color:#ff9480}
.sp-questions li.dim{opacity:.6;border-style:dashed}
.sp-questions li.dim b{text-decoration:line-through;text-decoration-color:rgba(255,91,100,.75);text-decoration-thickness:2px}

.sp-holo{position:relative;width:440px;height:440px;margin:0 auto;display:grid;place-content:center;justify-items:center;text-align:center}
.sp-holo i{position:absolute;inset:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--story-accent) 36%,transparent)}
.sp-holo i.r2{inset:44px;border-style:dashed;animation:spSpin 46s linear infinite}
.sp-holo i.r3{inset:96px;border-color:color-mix(in srgb,var(--story-accent2) 30%,transparent);animation:spSpin 30s linear infinite reverse}
.sp-holo b{font:200 112px/1 var(--sp-display);letter-spacing:-.04em;color:#fff}
.sp-holo span{margin-top:12px;font:800 12px/1 var(--sp-text);letter-spacing:.2em;color:var(--story-accent)}

.sp-paper{position:relative;height:210px;display:grid;align-content:center;gap:16px;padding:20px 24px;border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden}
.sp-paper i{display:block;height:10px;border-radius:6px;background:rgba(255,255,255,.08)}
.sp-paper i:nth-child(2){width:84%}.sp-paper i:nth-child(3){width:92%}.sp-paper i:nth-child(4){width:60%}
.sp-paper b{position:absolute;right:20px;bottom:18px;padding:8px 12px;border:2px solid var(--sp-amber);border-radius:6px;color:var(--sp-amber);font:900 13px/1 var(--sp-text);letter-spacing:.2em;transform:rotate(-6deg)}
.sp-paper::after{content:"";position:absolute;left:0;right:0;height:60px;top:-60px;background:linear-gradient(transparent,rgba(95,227,234,.16),transparent);animation:spPaperScan 3.6s ease-in-out infinite}
@keyframes spPaperScan{to{top:110%}}

.sp-final{position:relative;display:flex;justify-content:center;gap:150px;margin-top:22px;padding:0 0 10px}
.sp-final::before{content:"";position:absolute;left:18%;right:18%;top:44px;height:1px;background:linear-gradient(90deg,transparent,var(--sp-line),var(--sp-cyan),var(--sp-line),transparent)}
.sp-final span{position:relative;z-index:1;display:grid;justify-items:center;gap:14px}
.sp-final .sp-ico{box-sizing:content-box;width:44px;height:44px;padding:20px;border-radius:50%;border:1px solid var(--sp-line);background:var(--sp-panel);color:var(--sp-cyan);animation:spGlow 4.5s ease-in-out infinite}
.sp-final .n1 .sp-ico{animation-delay:1.5s}.sp-final .n2 .sp-ico{animation-delay:3s}
.sp-final b{font:800 17px/1 var(--sp-text);letter-spacing:.22em;color:#eaf6ff}
.sp-final-core{position:absolute;left:50%;top:-120px;transform:translateX(-50%);font:200 360px/1 var(--sp-display);font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);pointer-events:none;z-index:0}
@keyframes spGlow{0%,100%{box-shadow:0 0 0 rgba(95,227,234,0)}20%{box-shadow:0 0 46px rgba(95,227,234,.45)}40%{box-shadow:0 0 0 rgba(95,227,234,0)}}
@keyframes spSpin{to{transform:rotate(360deg)}}

/* ---------- Entrance motion (restarted on every scene change, never on image scenes) ---------- */
.story-stage.sp-enter #storySceneKicker{animation:spSlide .7s cubic-bezier(.2,.8,.2,1) both}
.story-stage.sp-enter #storySceneTitle .sp-w{display:inline-block;animation:spWord .8s cubic-bezier(.18,.82,.22,1) both;animation-delay:calc(var(--w) * 55ms + 120ms)}
.story-stage.sp-enter #storySceneBody{animation:spRise .85s cubic-bezier(.2,.8,.2,1) .42s both}
.story-stage.sp-enter .story-highlights li{animation:spRise .6s cubic-bezier(.2,.8,.2,1) both}
.story-stage.sp-enter .story-highlights li:nth-child(1){animation-delay:.6s}.story-stage.sp-enter .story-highlights li:nth-child(2){animation-delay:.68s}.story-stage.sp-enter .story-highlights li:nth-child(3){animation-delay:.76s}.story-stage.sp-enter .story-highlights li:nth-child(4){animation-delay:.84s}
.story-stage.sp-enter .story-headline{animation:spPop .6s cubic-bezier(.2,.8,.2,1) .78s both}
.story-stage.sp-enter .sp-fx>*{animation:spPanel .85s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 150ms + .38s)}
.story-stage.sp-enter .sp-fx>*:nth-child(2){--i:1}.story-stage.sp-enter .sp-fx>*:nth-child(3){--i:2}.story-stage.sp-enter .sp-fx>*:nth-child(4){--i:3}
.story-stage.sp-enter .sp-trip li,.story-stage.sp-enter .sp-stack li,.story-stage.sp-enter .sp-questions li,.story-stage.sp-enter .sp-checks li,.story-stage.sp-enter .sp-patient,.story-stage.sp-enter .sp-stats>div,.story-stage.sp-enter .sp-eq>span{animation:spRise .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 160ms + .55s)}
.story-stage.sp-enter .sp-g-val{animation:spGauge 1.5s cubic-bezier(.2,.8,.2,1) .55s both}
.story-stage.sp-enter .sp-pbar i{animation:spBar 1.3s cubic-bezier(.2,.8,.2,1) .7s both}
.story-stage.sp-enter .sp-year{animation:spYearIn 1.8s cubic-bezier(.2,.8,.2,1) both}
.story-stage.sp-enter .story-question{animation:spRise .8s cubic-bezier(.2,.8,.2,1) .9s both}
.story-stage.sp-enter .story-orbit{animation:spPop 1s cubic-bezier(.2,.8,.2,1) .3s both}
.story-stage.sp-enter .sp-final span{animation:spRise .7s cubic-bezier(.2,.8,.2,1) both}
.story-stage.sp-enter .sp-final .n0{animation-delay:.7s}.story-stage.sp-enter .sp-final .n1{animation-delay:.9s}.story-stage.sp-enter .sp-final .n2{animation-delay:1.1s}
.story-stage.sp-enter #storyLiveLayer .story-live-case,.story-stage.sp-enter #storyLiveLayer .story-live-side{animation:spRise .8s cubic-bezier(.2,.8,.2,1) both}
.story-stage.sp-enter #storyLiveLayer .story-live-side{animation-delay:.14s}
@keyframes spSlide{from{opacity:0;transform:translateX(-34px)}to{opacity:1;transform:none}}
@keyframes spWord{from{opacity:0;transform:translateY(.42em);filter:blur(9px)}to{opacity:1;transform:none;filter:none}}
@keyframes spRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes spPanel{from{opacity:0;transform:translateY(34px) scale(.975)}to{opacity:1;transform:none}}
@keyframes spPop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes spYearIn{from{opacity:0;transform:translateX(80px)}to{opacity:.55;transform:none}}
@keyframes spGauge{from{stroke-dashoffset:502.65px}}
@keyframes spBar{from{width:0}}

/* ---------- FUTURE360 live layer: phase layouts ---------- */
.story-stage[data-live-phase]{padding:46px 64px 34px;row-gap:16px}
.story-stage[data-live-phase] .story-question{padding-top:14px;margin-top:0}
.story-stage[data-live-phase] .story-question strong{font-size:27px;line-height:1.22;font-family:var(--sp-display);font-weight:600}
.story-stage[data-live-phase] .story-question span{margin-bottom:5px}

#storyLiveLayer[data-live-phase]{position:relative;height:100%;min-height:0}
#storyLiveLayer[data-live-phase] .story-live-grid{height:100%;min-height:0;gap:26px;grid-template-columns:minmax(0,1fr) 600px}
#storyLiveLayer[data-live-phase] .story-live-case,#storyLiveLayer[data-live-phase] .story-live-side{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:hidden;padding:28px 32px;border-radius:24px;background:linear-gradient(150deg,rgba(13,32,48,.92),rgba(6,15,25,.92));border-color:rgba(255,255,255,.09)}
#storyLiveLayer[data-live-phase] .story-live-case>*,#storyLiveLayer[data-live-phase] .story-live-side>*{flex:none}
#storyLiveLayer .sp-question,#storyLiveLayer .sp-results,#storyLiveLayer .sp-human-reveal,#storyLiveLayer .sp-compare,#storyLiveLayer .sp-unknown,#storyLiveLayer .sp-join,#storyLiveLayer .sp-vote-clock,#storyLiveLayer .sp-caption,#storyLiveLayer .sp-lobby{display:none}
#storyLiveLayer[data-live-phase] #storyAudiencePanel,#storyLiveLayer[data-live-phase] #storyDecisionPanel{display:none!important}
#storyLiveLayer .sp-empty{display:none!important}

.sp-case-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sp-phase-chip{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--story-accent) 38%,transparent);background:color-mix(in srgb,var(--story-accent) 10%,transparent);color:#ffe2ae;font:800 11px/1 var(--sp-text);letter-spacing:.16em;white-space:nowrap}
.sp-phase-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--story-accent);box-shadow:0 0 12px var(--story-accent);animation:spBlink 1.5s ease-in-out infinite}
.sp-phase-chip:empty{display:none}
#storyLiveLayer[data-live-phase] .story-live-tag{font-size:12px}
#storyLiveLayer[data-live-phase] #storyLiveTitle{margin:0;font-family:var(--sp-display);font-weight:800;font-size:56px;line-height:1.02;letter-spacing:-.04em;text-wrap:balance}
#storyLiveLayer[data-live-phase] #storyLiveFacts{flex:1 1 0;min-height:0;max-height:none;overflow:hidden;margin:0;font-size:26px;line-height:1.46;color:#d3e2ee}
#storyLiveLayer[data-live-phase] .story-live-options{margin-top:0;gap:9px}
#storyLiveLayer[data-live-phase] .story-live-options>div{grid-template-columns:38px 1fr;gap:14px;align-items:center;padding:12px 16px;border-radius:14px;font-size:18px;line-height:1.3;color:#d5e4ee;background:rgba(255,255,255,.035)}
#storyLiveLayer[data-live-phase] .story-live-options b{width:34px;height:34px;font-size:15px}

/* Right column primitives */
#storyLiveLayer[data-live-phase] .story-flow-track{gap:6px}
#storyLiveLayer[data-live-phase] .story-flow-track span{font-size:10px;letter-spacing:.1em;gap:8px}
#storyLiveLayer[data-live-phase] .story-flow-track i{width:32px;height:32px;font-size:13px}
#storyLiveLayer[data-live-phase] .story-live-status{padding:16px 18px;border-radius:16px}
#storyLiveLayer[data-live-phase] .story-live-status strong{font-size:23px;font-family:var(--sp-display);font-weight:600}
#storyLiveLayer[data-live-phase] .story-live-status p{font-size:15px;line-height:1.45;color:#a3bccd}

.sp-join{flex:1 1 auto!important;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center;padding:20px;border-radius:20px;border:1px solid rgba(255,184,79,.22);background:linear-gradient(150deg,rgba(255,184,79,.07),rgba(255,255,255,.02))}
.sp-join-qr{padding:14px;border-radius:18px;background:#fff;box-shadow:0 0 0 7px rgba(255,255,255,.05),0 22px 60px rgba(0,0,0,.45)}
.sp-join-qr img.qr{display:block;width:240px;height:240px;padding:0;border-radius:0;background:#fff}
.sp-join-copy{display:grid;gap:8px;min-width:0}
.sp-join-kicker{display:flex;align-items:center;gap:8px;font:800 11px/1.2 var(--sp-text);letter-spacing:.15em;color:#ffc771}
.sp-join-kicker i,.sp-lobby-kicker i{width:9px;height:9px;border-radius:50%;background:var(--sp-amber);box-shadow:0 0 12px var(--sp-amber);animation:spBlink 1.3s ease-in-out infinite;flex:none}
.sp-join-copy strong{font:700 24px/1.2 var(--sp-text);color:#fff}
.sp-join-copy>b{font:650 21px/1.2 var(--sp-text);color:var(--sp-cyan);overflow-wrap:anywhere}
.sp-join-copy em{font:700 13px/1 var(--sp-text);font-style:normal;letter-spacing:.14em;color:var(--sp-dim)}
.sp-join-copy em b{margin-left:6px;font-size:22px;letter-spacing:.16em;color:#ffd38c}
.sp-join-copy small{font:600 15px/1.3 var(--sp-text);color:#a7c0d0}
.sp-join-copy small b{font-size:20px;color:#fff;font-variant-numeric:tabular-nums}

/* intro + human: case on the left, early join QR on the right */
#storyLiveLayer[data-live-phase="intro"] .sp-join,#storyLiveLayer[data-live-phase="human"] .sp-join{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;align-content:center}
#storyLiveLayer[data-live-phase="intro"] .sp-join-copy,#storyLiveLayer[data-live-phase="human"] .sp-join-copy{justify-items:center}
#storyLiveLayer[data-live-phase="human"] .sp-join-qr img.qr{width:300px;height:300px}

/* lobby: the join QR takes the whole stage until the presenter opens the vote */
#storyLiveLayer[data-live-phase="lobby"] .story-live-grid{display:none}
#storyLiveLayer[data-live-phase="lobby"] .sp-lobby{display:grid}
.sp-lobby{position:absolute;inset:0;grid-template-columns:auto minmax(0,1fr);gap:72px;align-items:center;padding:6px 30px}
.sp-lobby-qr{position:relative;width:min(700px,100%);aspect-ratio:1;max-height:100%;padding:34px;border-radius:34px;background:#fff;box-shadow:0 0 0 10px rgba(255,255,255,.05),0 0 0 24px rgba(95,227,234,.06),0 40px 120px rgba(0,0,0,.55)}
.sp-lobby .sp-lobby-qr{width:720px;height:720px}
.sp-lobby-qr img.qr{display:block;width:100%;height:100%;padding:0;border-radius:0;background:#fff}
.sp-lobby-qr i{position:absolute;width:70px;height:70px;border:5px solid var(--sp-cyan);filter:drop-shadow(0 0 10px rgba(95,227,234,.6))}
.sp-lobby-qr i:nth-of-type(1){left:-22px;top:-22px;border-right:0;border-bottom:0;border-top-left-radius:24px}
.sp-lobby-qr i:nth-of-type(2){right:-22px;top:-22px;border-left:0;border-bottom:0;border-top-right-radius:24px}
.sp-lobby-qr i:nth-of-type(3){left:-22px;bottom:-22px;border-right:0;border-top:0;border-bottom-left-radius:24px}
.sp-lobby-qr i:nth-of-type(4){right:-22px;bottom:-22px;border-left:0;border-top:0;border-bottom-right-radius:24px}
.sp-lobby-copy{min-width:0;color:#fff}
.sp-lobby-kicker{display:inline-flex;align-items:center;gap:12px;padding:11px 20px;border-radius:999px;background:rgba(255,184,79,.12);border:1px solid rgba(255,184,79,.42);color:#ffc874;font:800 16px/1 var(--sp-text);letter-spacing:.18em}
.sp-lobby-copy h2{margin:28px 0 0;font:800 86px/.98 var(--sp-display);letter-spacing:-.045em;color:#fff}
.sp-lobby-copy h2 em{display:block;margin-top:16px;font:300 44px/1.12 var(--sp-display);font-style:normal;letter-spacing:-.02em;color:#bfe0ee}
.sp-lobby-copy ol{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px}
.sp-lobby-copy li{display:flex;align-items:center;gap:16px;font:600 24px/1.25 var(--sp-text);color:#d6e7f1}
.sp-lobby-copy li b{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(95,227,234,.12);border:1px solid rgba(95,227,234,.4);color:var(--sp-cyan);font-size:18px}
.sp-lobby-url{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;align-items:baseline;margin-top:30px;padding:22px 28px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.sp-lobby-url span{font:800 13px/1 var(--sp-text);letter-spacing:.18em;text-transform:uppercase;color:var(--sp-dim)}
.sp-lobby-url b.stageJoinURL{font:650 42px/1.1 var(--sp-text);color:var(--sp-cyan);overflow-wrap:anywhere}
.sp-lobby-url b.sp-code{font:800 46px/1 var(--sp-text);letter-spacing:.2em;color:#ffd38c}
.sp-lobby-count{display:flex;align-items:baseline;gap:18px;margin-top:26px}
.sp-lobby-count b{font:200 104px/1 var(--sp-display);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.sp-lobby-count span{font:600 26px/1 var(--sp-text);color:#bcd3e2}

/* voting: question + options big on the left, clock + count + QR on the right */
#storyLiveLayer[data-live-phase="voting"] .story-live-grid{grid-template-columns:minmax(0,1fr) 640px}
#storyLiveLayer[data-live-phase="voting"] #storyLiveFacts,#storyLiveLayer[data-live-phase="voting"] .story-live-status,#storyLiveLayer[data-live-phase="voting"] .story-flow-track{display:none}
#storyLiveLayer[data-live-phase="voting"] #storyLiveTitle{font-size:30px;font-weight:600;color:#a9c4d6}
#storyLiveLayer[data-live-phase="voting"] .sp-question{display:block;flex:0 1 auto!important;max-height:230px;overflow:hidden;font:700 44px/1.14 var(--sp-display);letter-spacing:-.025em;color:#fff}
#storyLiveLayer[data-live-phase="voting"] .story-live-options{flex:1 1 auto!important;min-height:0;align-content:center;gap:14px}
#storyLiveLayer[data-live-phase="voting"] .story-live-options>div{grid-template-columns:54px 1fr;padding:18px 22px;font-size:25px;border-radius:18px;border-color:rgba(255,255,255,.1)}
#storyLiveLayer[data-live-phase="voting"] .story-live-options b{width:46px;height:46px;font-size:21px}
#storyLiveLayer[data-live-phase="voting"] .sp-results{display:flex}
#storyLiveLayer[data-live-phase="voting"] .sp-results:empty{display:none}
#storyLiveLayer[data-live-phase="voting"].sp-rows .story-live-options{display:none}
#storyLiveLayer[data-live-phase="voting"] .sp-vote-clock{display:grid}
.sp-vote-clock{flex:1 1 auto!important;min-height:0;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:22px 26px;align-items:center}
.sp-ring{width:236px;height:236px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--sp-amber) calc(var(--progress,1) * 360deg),rgba(255,255,255,.08) 0);transition:background .2s linear;box-shadow:0 0 50px rgba(255,184,79,.12)}
.sp-ring::before{content:"";position:absolute;inset:15px;border-radius:50%;background:#0a1826}
.sp-ring>div{position:relative;display:grid;justify-items:center}
.sp-ring b{font:200 104px/1 var(--sp-display);letter-spacing:-.05em;color:#fff;font-variant-numeric:tabular-nums}
.sp-ring small{margin-top:4px;font:800 12px/1 var(--sp-text);letter-spacing:.2em;color:#ffcf86}
.sp-ring.ending{background:conic-gradient(var(--sp-red) calc(var(--progress,1) * 360deg),rgba(255,255,255,.08) 0);animation:spRingPulse .9s ease-in-out infinite}
.sp-ring.ending small{color:#ff8a90}
@keyframes spRingPulse{50%{box-shadow:0 0 70px rgba(255,91,100,.4)}}
.sp-vote-count{display:grid;gap:6px}
.sp-vote-count>b{font:200 112px/1 var(--sp-display);letter-spacing:-.05em;color:#fff;font-variant-numeric:tabular-nums}
.sp-vote-count>span{font:700 20px/1.2 var(--sp-text);color:#e7f2f8}
.sp-vote-count small{font:600 15px/1.3 var(--sp-text);color:#a7c0d0}
.sp-vote-count small b{color:#fff;font-size:18px}
.sp-vote-qr{grid-column:1/-1;align-self:stretch;display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center;padding:18px 22px;border-radius:20px;border:1px solid rgba(255,184,79,.22);background:linear-gradient(150deg,rgba(255,184,79,.07),rgba(255,255,255,.02))}
.sp-vote-qr img.qr{display:block;width:290px;height:290px;padding:14px;border-radius:18px;background:#fff}
.sp-vote-qr-copy{display:grid;gap:12px;min-width:0}
.sp-vote-qr-copy>span{font:800 12px/1.2 var(--sp-text);letter-spacing:.16em;text-transform:uppercase;color:#ffc771}
.sp-vote-qr-copy small{display:block;font:650 21px/1.25 var(--sp-text);color:var(--sp-cyan);overflow-wrap:anywhere}
.sp-vote-qr-copy em{font:700 13px/1 var(--sp-text);font-style:normal;letter-spacing:.14em;color:var(--sp-dim)}
.sp-vote-qr-copy .sp-code{display:block;margin-top:6px;font:800 26px/1 var(--sp-text);letter-spacing:.1em;color:#ffd38c;white-space:nowrap}

/* AI Clinical Board summary (results → research → review) */
#storyLiveLayer .sp-board{display:none}
#storyLiveLayer[data-live-phase="results"] .sp-board,#storyLiveLayer[data-live-phase="research"] .sp-board,#storyLiveLayer[data-live-phase="review"] .sp-board,#storyLiveLayer[data-live-phase="error"] .sp-board{display:block}
.sp-board{padding:18px 20px;border-radius:18px;border:1px solid rgba(95,227,234,.22);background:linear-gradient(160deg,rgba(14,38,56,.75),rgba(5,14,24,.8))}
.sp-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.sp-board-head span{font:800 12px/1 var(--sp-text);letter-spacing:.17em;color:var(--sp-cyan)}
.sp-board-head b{padding:6px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.14);font:800 10px/1 var(--sp-text);letter-spacing:.14em;color:#cfe0ea}
.sp-board ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sp-board li{display:grid;grid-template-columns:30px 1fr;gap:4px 14px;align-items:center}
.sp-board li>i{grid-row:1/3;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03);position:relative}
.sp-board li>span{font:650 18px/1.2 var(--sp-text);color:#9db4c4}
.sp-board li>small{font:500 13px/1.3 var(--sp-text);color:#6f889a}
.sp-board li[data-state="running"]>i{border-color:var(--sp-amber);box-shadow:0 0 14px rgba(255,184,79,.5)}
.sp-board li[data-state="running"]>i::after{content:"";position:absolute;inset:6px;border-radius:50%;border:2px solid var(--sp-amber);border-right-color:transparent;animation:spSpin .9s linear infinite}
.sp-board li[data-state="running"]>span{color:#fff}
.sp-board li[data-state="done"]>i{border-color:#45d6c1;background:rgba(51,201,182,.2)}
.sp-board li[data-state="done"]>i::after{content:"";position:absolute;left:9px;top:6px;width:8px;height:13px;border:solid #6cf0d9;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.sp-board li[data-state="done"]>span{color:#e6f4fa}
.sp-board li[data-state="skipped"]>span{color:#6f889a;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.25)}
#storyLiveLayer[data-live-phase="research"] .sp-board li>small,#storyLiveLayer[data-live-phase="review"] .sp-board li>small{display:none}
#storyLiveLayer[data-live-phase="research"] .sp-board li,#storyLiveLayer[data-live-phase="review"] .sp-board li{grid-template-rows:auto}

/* results / research / review: distribution + human reveal on the left, AI progress on the right */
#storyLiveLayer[data-live-phase="results"] #storyLiveFacts,#storyLiveLayer[data-live-phase="research"] #storyLiveFacts,#storyLiveLayer[data-live-phase="review"] #storyLiveFacts,#storyLiveLayer[data-live-phase="error"] #storyLiveFacts,
#storyLiveLayer[data-live-phase="results"] .story-live-options,#storyLiveLayer[data-live-phase="research"] .story-live-options,#storyLiveLayer[data-live-phase="review"] .story-live-options,#storyLiveLayer[data-live-phase="error"] .story-live-options{display:none}
#storyLiveLayer[data-live-phase="results"] #storyLiveTitle,#storyLiveLayer[data-live-phase="research"] #storyLiveTitle,#storyLiveLayer[data-live-phase="review"] #storyLiveTitle,#storyLiveLayer[data-live-phase="error"] #storyLiveTitle{font-size:30px;font-weight:600;color:#a9c4d6}
#storyLiveLayer[data-live-phase="results"] .sp-question,#storyLiveLayer[data-live-phase="research"] .sp-question,#storyLiveLayer[data-live-phase="review"] .sp-question,#storyLiveLayer[data-live-phase="error"] .sp-question{display:block;max-height:120px;overflow:hidden;font:600 30px/1.2 var(--sp-display);letter-spacing:-.015em;color:#fff}
#storyLiveLayer[data-live-phase="results"] .sp-results,#storyLiveLayer[data-live-phase="research"] .sp-results,#storyLiveLayer[data-live-phase="review"] .sp-results,#storyLiveLayer[data-live-phase="error"] .sp-results{display:flex}
#storyLiveLayer[data-live-phase="results"] .sp-human-reveal,#storyLiveLayer[data-live-phase="research"] .sp-human-reveal,#storyLiveLayer[data-live-phase="review"] .sp-human-reveal,#storyLiveLayer[data-live-phase="error"] .sp-human-reveal{display:block}
#storyLiveLayer[data-live-phase="results"] .sp-join{display:grid;flex:none!important;margin-top:auto}
#storyLiveLayer[data-live-phase="results"] .sp-join-qr img.qr{width:200px;height:200px}
#storyLiveLayer[data-live-phase="research"] #storyResearch,#storyLiveLayer[data-live-phase="review"] #storyResearch{flex:1 1 auto!important;min-height:0;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:10px;overflow:hidden}
#storyLiveLayer[data-live-phase] .story-research-head{grid-column:1/-1;font-size:12px;margin:2px 0 2px}
#storyLiveLayer[data-live-phase] .story-research-row{padding:13px 15px;border-radius:12px;font-size:14px;letter-spacing:.04em;color:#cfe0ea;background:rgba(255,255,255,.04)}
#storyLiveLayer[data-live-phase] .story-research-row b{font-size:11px;letter-spacing:.1em}
#storyLiveLayer[data-live-phase] .story-research-row[data-state=RUNNING]{background:linear-gradient(90deg,rgba(255,184,79,.12),rgba(255,255,255,.03) 60%);background-size:200% 100%;animation:spShimmer 1.6s linear infinite}
#storyLiveLayer[data-live-phase] .story-research-row[data-state=RUNNING] b{color:#ffc874}
#storyLiveLayer[data-live-phase] .story-research-row[data-state=DONE] b{color:#6cf0d9}
@keyframes spShimmer{from{background-position:100% 0}to{background-position:-100% 0}}

.sp-results{flex:1 1 auto!important;min-height:0;flex-direction:column;justify-content:center;gap:14px}
.sp-res-total{display:flex;align-items:baseline;gap:16px;margin-bottom:2px}
.sp-res-total b{font:200 66px/1 var(--sp-display);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.sp-res-total span{font:800 12px/1.3 var(--sp-text);letter-spacing:.16em;color:var(--sp-dim)}
.sp-res-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;grid-template-rows:auto 12px;gap:9px 16px;align-items:center}
.sp-res-row>b{grid-row:1/3;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.07);color:#dbe9f2;font:800 19px var(--sp-text)}
.sp-res-row>span{font:500 21px/1.28 var(--sp-text);color:#dbe9f3}
.sp-res-row>em{font:200 44px/1 var(--sp-display);font-style:normal;color:#fff;font-variant-numeric:tabular-nums}
.sp-res-row>i{grid-column:2/4;display:block;height:12px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.sp-res-row>i>i{display:block;height:100%;width:calc(var(--v) * 100%);border-radius:inherit;background:linear-gradient(90deg,#2b8f9b,#5fe3ea);animation:spBar 1.1s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 120ms)}
.sp-res-row.lead>b{background:var(--sp-amber);color:#1c1306}
.sp-res-row.lead>i>i{background:linear-gradient(90deg,#c4841f,#ffd07c);box-shadow:0 0 16px rgba(255,184,79,.45)}
.sp-res-empty{margin:0;font:500 24px/1.4 var(--sp-text);color:#a9c0cf}
.sp-human-reveal{padding:18px 22px;border-radius:18px;border:1px solid rgba(255,184,79,.3);background:rgba(255,184,79,.06)}
.sp-human-reveal span{display:block;font:800 11px/1 var(--sp-text);letter-spacing:.18em;color:#ffc771}
.sp-human-reveal strong{display:block;margin-top:9px;max-height:96px;overflow:hidden;font:600 24px/1.3 var(--sp-text);color:#fff}

/* answer + complete: case + comparison on the left, avatar + spoken text on the right */
#storyLiveLayer[data-live-phase="answer"] .story-live-grid,#storyLiveLayer[data-live-phase="complete"] .story-live-grid{grid-template-columns:minmax(0,1fr) 760px}
#storyLiveLayer[data-live-phase="answer"] .story-live-options,#storyLiveLayer[data-live-phase="complete"] .story-live-options,
#storyLiveLayer[data-live-phase="answer"] .story-flow-track,#storyLiveLayer[data-live-phase="answer"] .story-live-status,
#storyLiveLayer[data-live-phase="answer"] #storyResearch,#storyLiveLayer[data-live-phase="complete"] #storyResearch,#storyLiveLayer[data-live-phase="complete"] .story-flow-track{display:none}
#storyLiveLayer[data-live-phase="answer"] #storyLiveTitle,#storyLiveLayer[data-live-phase="complete"] #storyLiveTitle{font-size:36px}
#storyLiveLayer[data-live-phase="answer"] #storyLiveFacts,#storyLiveLayer[data-live-phase="complete"] #storyLiveFacts{font-size:19px;line-height:1.48;color:#bcd0de}
#storyLiveLayer[data-live-phase="answer"] .sp-compare,#storyLiveLayer[data-live-phase="complete"] .sp-compare{display:grid}
#storyLiveLayer[data-live-phase="answer"] .sp-unknown,#storyLiveLayer[data-live-phase="complete"] .sp-unknown{display:grid}
#storyLiveLayer[data-live-phase="answer"] .sp-caption,#storyLiveLayer[data-live-phase="complete"] .sp-caption{display:flex}
.sp-compare{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sp-cmp{display:flex;flex-direction:column;gap:9px;height:168px;padding:16px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);min-width:0}
.sp-cmp>span{font:800 11px/1 var(--sp-text);letter-spacing:.17em;color:var(--sp-dim)}
.sp-cmp>strong{flex:1 1 auto;min-height:0;overflow:hidden;font:600 20px/1.28 var(--sp-text);color:#fff}
.sp-cmp>em{font:700 14px/1 var(--sp-text);font-style:normal;color:#ffcf86;font-variant-numeric:tabular-nums}
.sp-cmp>em:empty{display:none}
.sp-cmp[data-k="human"]{border-color:rgba(255,184,79,.34)}.sp-cmp[data-k="human"]>span{color:#ffc771}
.sp-cmp[data-k="aud"]{border-color:rgba(171,155,255,.34)}.sp-cmp[data-k="aud"]>span{color:#c5b9ff}
.sp-cmp[data-k="ai"]{border-color:rgba(95,227,234,.4);background:rgba(95,227,234,.06)}.sp-cmp[data-k="ai"]>span{color:var(--sp-cyan)}
.sp-unknown{grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
.sp-unknown-copy{min-width:0;display:flex;flex-direction:column;gap:8px;height:112px}
.sp-unknown-copy span{font:800 11px/1 var(--sp-text);letter-spacing:.17em;color:var(--sp-dim)}
.sp-unknown-copy p{flex:1 1 auto;min-height:0;overflow:hidden;margin:0;font:500 18px/1.38 var(--sp-text);color:#dbe9f3}
.sp-mini-qr{display:grid;justify-items:center;gap:5px;text-align:center}
.sp-mini-qr img.qr{display:block;width:118px;height:118px;padding:7px;border-radius:10px;background:#fff}
.sp-mini-qr small{font:600 10px/1 var(--sp-text);color:#8fa8bb}
.sp-mini-qr b{font:800 13px/1 var(--sp-text);letter-spacing:.16em;color:#ffd38c}

#storyLiveLayer[data-live-phase] .story-avatar-mount{flex:none}
#storyLiveLayer[data-live-phase] .story-avatar-mount .avatar-frame{width:100%;height:auto;min-height:0;aspect-ratio:1.42/1;margin:0;border-radius:18px}
#storyLiveLayer[data-live-phase] .story-avatar-mount .avatar-orb{min-height:0;height:100%}
#storyLiveLayer[data-live-phase] .story-avatar-mount .avatar-caption{font-size:10px;letter-spacing:.14em}
#storyLiveLayer[data-live-phase] .story-avatar-mount .avatar-frame-label{font-size:10px}
.sp-caption{flex:1 1 auto!important;min-height:0;flex-direction:column;gap:12px;padding:18px 22px;border-radius:18px;border:1px solid rgba(95,227,234,.2);background:rgba(3,12,21,.62);transition:border-color .3s,box-shadow .3s}
.sp-caption.is-speaking{border-color:rgba(95,227,234,.5);box-shadow:0 0 0 1px rgba(95,227,234,.14),0 0 44px rgba(95,227,234,.1)}
.sp-caption-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sp-caption-head>span:first-child{font:800 11px/1 var(--sp-text);letter-spacing:.16em;color:var(--sp-cyan)}
.sp-caption-head .pill{font-size:10px}
#spCaptionDecision{display:none;margin:0;max-height:140px;overflow:hidden;font:700 34px/1.12 var(--sp-display);letter-spacing:-.02em;color:#fff}
#storyLiveLayer:not(.sp-has-avatar) #spCaptionDecision{display:block}
.sp-caption-scroll{flex:1 1 auto;min-height:0;max-height:230px;overflow:hidden;position:relative;font:500 24px/1.42 var(--sp-text);color:#eef7fc}
.sp-caption-scroll p{margin:0;white-space:pre-wrap;will-change:transform}
.sp-caption-scroll.sp-rolling::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30px;background:linear-gradient(transparent,rgba(3,12,21,.9));pointer-events:none}
.sp-caption-scroll p.sp-loop{animation:spPrompt var(--sp-dur,12s) ease-in-out infinite alternate}
@keyframes spPrompt{0%,14%{transform:translateY(0)}86%,100%{transform:translateY(var(--sp-shift,0))}}
/* long answers: smaller avatar frame, more room for the spoken text */
#storyLiveLayer.sp-long[data-live-phase] .story-avatar-mount .avatar-frame{width:auto;height:360px;margin:0 auto}
#storyLiveLayer.sp-xlong[data-live-phase] .story-avatar-mount .avatar-frame{width:auto;height:300px;margin:0 auto}
#storyLiveLayer.sp-long[data-live-phase] .story-avatar-mount:not(:empty),#storyLiveLayer.sp-xlong[data-live-phase] .story-avatar-mount:not(:empty){display:flex;justify-content:center}
#storyLiveLayer[data-live-phase="complete"] .story-live-status{order:-1}

/* ---------- Manual full-screen QR (mobile remote: “QR'ı göster”) ---------- */
.sp-qr-overlay{position:absolute;inset:0;z-index:60;display:grid;place-items:center;padding:70px 96px;background:radial-gradient(ellipse at 22% 50%,rgba(95,227,234,.12),transparent 55%),radial-gradient(ellipse at 85% 20%,rgba(255,184,79,.1),transparent 50%),#040e19;animation:spFade .45s ease both;font-family:var(--sp-text)}
.sp-qr-overlay[hidden]{display:none!important}
.sp-qr-overlay-inner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:86px;align-items:center;width:100%}
.sp-qr-overlay .sp-lobby-qr{width:820px;height:820px;max-height:none;--sp-cyan:#5fe3ea}
.sp-qr-overlay .sp-lobby-copy{--sp-dim:#8fa8bb;--sp-cyan:#5fe3ea;--sp-display:"Inter Display",Inter,sans-serif;--sp-text:Inter,sans-serif}
.sp-qr-overlay .sp-lobby-kicker{--sp-amber:#ffb84f}
.sp-qr-overlay .sp-lobby-qr i{border-color:#5fe3ea}
@keyframes spFade{from{opacity:0}to{opacity:1}}
/* windowed (non-presentation) stage preview: keep the overlay inside a smaller box */
body:not(.cinema) .sp-qr-overlay{padding:28px 32px}
body:not(.cinema) .sp-qr-overlay-inner{gap:40px}
body:not(.cinema) .sp-qr-overlay .sp-lobby-qr{width:min(560px,52vh);height:min(560px,52vh);padding:22px}
body:not(.cinema) .sp-qr-overlay .sp-lobby-copy h2{font-size:clamp(36px,4vw,64px)}
body:not(.cinema) .sp-qr-overlay .sp-lobby-url b.stageJoinURL{font-size:clamp(20px,2vw,34px)}
body:not(.cinema) .sp-qr-overlay .sp-lobby-url b.sp-code{font-size:clamp(22px,2.2vw,38px)}

/* ---------- Clicker feedback (subtle; presenters need it, the hall barely notices it) ---------- */
.sp-hint{position:absolute;right:34px;bottom:22px;z-index:70;max-width:800px;padding:12px 18px;border-radius:999px;background:rgba(4,12,20,.92);border:1px solid rgba(255,255,255,.16);color:#d3e3ec;font:600 17px/1.3 Inter,system-ui,sans-serif;box-shadow:0 14px 40px rgba(0,0,0,.45);animation:spFade .2s ease both}
.sp-hint[hidden]{display:none!important}
.sp-hint[data-kind="arm"]{border-color:rgba(255,184,79,.65);color:#ffd590}
.sp-hint[data-kind="error"]{border-color:rgba(255,91,100,.6);color:#ffa2a7}
.sp-hint[data-kind="go"]{border-color:rgba(95,227,234,.5);color:#c3f6f9}

/* ---------- Audience ballot: waiting state ---------- */
.sp-wait{display:flex;gap:14px;align-items:flex-start;margin:6px 0 16px;padding:15px 17px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04)}
.sp-wait>i{flex:none;width:12px;height:12px;margin-top:5px;border-radius:50%;background:#7b909f}
.sp-wait b{display:block;font-size:16px;line-height:1.3;color:#f2f8fb}
.sp-wait span{display:block;margin-top:4px;font-size:13.5px;line-height:1.45;color:#a9c0cf}
.sp-wait[data-state="wait"],.sp-wait[data-state="idle"]{border-color:rgba(255,184,79,.4);background:rgba(255,184,79,.08)}
.sp-wait[data-state="wait"]>i,.sp-wait[data-state="idle"]>i{background:#ffb84f;box-shadow:0 0 12px #ffb84f;animation:spBlink 1.4s ease-in-out infinite}
.sp-wait[data-state="open"]{border-color:rgba(95,227,234,.5);background:rgba(95,227,234,.09)}
.sp-wait[data-state="open"]>i{background:#5fe3ea;box-shadow:0 0 14px #5fe3ea}
.sp-wait[data-state="voted"]{border-color:rgba(51,201,182,.45);background:rgba(51,201,182,.08)}
.sp-wait[data-state="voted"]>i{background:#33c9b6}
body[data-ballot="open"] .ballot-vote{box-shadow:0 0 0 2px rgba(95,227,234,.5),0 22px 60px rgba(0,0,0,.35);transition:box-shadow .3s}

@media (prefers-reduced-motion:reduce){.sp-ambient i,.sp-ambient b,.sp-ecg-run,.sp-loop-spin,.sp-ping-wave,.sp-alert,.sp-holo i{animation:none!important}}
