/* NEXQUOTE pitch v11 · evidence, cause, solution boundary, compete tracks, pilot, commercial, team tiers, roadmap.
   Every beat is a state on section[data-k]; the controller in app.js only sets the number (and a few values).
   .kb-cut on a section = jump to the state without motion (snap, replay, restore). */
.scene.kb-cut *{transition:none!important;animation:none!important}

/* ================= EVIDENCE: three sources side by side (one overview), then the gap they leave ================= */

/* ================= CAUSE ================= */

/* ================= SOLUTION (flow + release boundary) ================= */


/* ================= PILOT ================= */

/* ================= COMMERCIAL ================= */

/* ================= TEAM: one team, four equal portraits; the founder is named by role, not set apart ================= */
#s-team .tsub{top:192px;font-size:26px;color:var(--steel)}
#s-team .portraits{top:284px;gap:40px;grid-template-columns:repeat(4,minmax(0,1fr))}
#s-team .pf2 figcaption{margin-top:22px}
#s-team .pf2 figcaption b{font-size:27px;letter-spacing:-.016em;white-space:nowrap}
#s-team .pf2 figcaption span{margin-top:8px;font-size:22px;line-height:1.3;white-space:nowrap;color:var(--mute);opacity:0;transform:translateY(6px);transition:opacity .7s var(--out) .5s,transform .9s var(--out) .5s}
#s-team.b2 .pf2[data-b="2"] figcaption span,#s-team.b3 .pf2[data-b="3"] figcaption span,#s-team.b4 .pf2[data-b="4"] figcaption span,#s-team.b5 .pf2[data-b="5"] figcaption span{opacity:1;transform:none}

/* ================= ROADMAP (final, beat 1) ================= */
#s-final .rm{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s var(--io),visibility 0s .5s}
#s-final[data-k="1"] .rm{opacity:1;visibility:visible;transition:opacity .6s var(--io),visibility 0s}
#s-final .rm .head .h1{font-size:56px}
#s-final .rm-s{position:absolute;top:452px;transform:translateX(-50%);text-align:center;width:420px;opacity:0;transition:opacity .7s var(--out)}
#s-final .rm-s i{position:absolute;left:50%;top:88px;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--navy);box-shadow:0 0 0 2px var(--blue),0 0 0 9px rgba(127,176,255,.14)}
#s-final .rm-s b{display:block;font-size:38px;font-weight:600;letter-spacing:-.02em}
#s-final .rm-s span{display:block;margin-top:66px;font-size:21px;color:var(--mute)}
#s-final .rm-g{position:absolute;top:510px;transform:translateX(-50%);font-size:17px;font-weight:500;color:var(--amber);white-space:nowrap;opacity:0;transition:opacity .6s}
#s-final .rm-v{position:absolute;left:0;right:0;top:720px;margin:0;text-align:center;font-size:20px;color:var(--graph);opacity:0;transition:opacity .7s}
#s-final[data-k="1"] .rm-s{opacity:1}
#s-final[data-k="1"] .rm-s:nth-of-type(1){transition-delay:.5s}#s-final[data-k="1"] .rm-g:nth-of-type(1){opacity:1;transition-delay:.95s}
#s-final[data-k="1"] .rm-s:nth-of-type(2){transition-delay:1.2s}#s-final[data-k="1"] .rm-g:nth-of-type(2){opacity:1;transition-delay:1.65s}
#s-final[data-k="1"] .rm-s:nth-of-type(3){transition-delay:1.9s}#s-final[data-k="1"] .rm-v{opacity:1;transition-delay:2.6s}

/* ================= DEMO: controls step back while the recording plays ================= */
#s-demo .demo-ctl,#s-demo .demo-seek,#s-demo .head{transition:opacity .6s var(--io)}
#s-demo.playing .demo-ctl,#s-demo.playing .demo-seek{opacity:.12}
#s-demo.playing .demo-ctl:hover,#s-demo.playing .demo-seek:hover{opacity:1}

/* calm: was @media (prefers-reduced-motion:reduce); body.calm is set by app.js and can be turned off */
body.calm #s-cause *,body.calm #s-compete *,body.calm #s-biz *,body.calm #s-final .rm *{transition:none!important}

/* presenter: who speaks now, and when the handover happens */
#pv .spk{font-size:15px;color:var(--steel);margin:0 0 10px;padding:8px 12px;border-radius:10px;background:rgba(127,176,255,.08)}
#pv .spk b{color:var(--white);font-weight:600} #pv .spk em{font-style:normal;color:var(--amber)}
/* risk: control → remaining limit → response → owner */
#rp .facts .lim b{color:var(--amber)}

