/* Narrated deck player: visual stage + key points, narration audio, captions, summary sheet. */
.player{background:#0c1124;border:1px solid var(--line2);border-radius:16px;overflow:hidden;margin:0 0 18px}
.stage{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(14px,3vw,34px);align-items:center;min-height:360px;padding:clamp(16px,3.5vw,36px);background:radial-gradient(900px 400px at 20% 0%,#1c2745,#0c1124)}
.stage .vis{min-width:0;display:flex;align-items:center;justify-content:center}
.stage .pts{min-width:0}
.stage .kicker{color:var(--gold);font:700 11px var(--body);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}
.stage h2{margin:0 0 10px;font-size:clamp(22px,3.2vw,34px);line-height:1.1;text-wrap:balance}
.stage ul{margin:0;padding:0;list-style:none}
.stage ul li{position:relative;padding-left:18px;margin:8px 0;font-size:clamp(15px,1.8vw,19px);line-height:1.4;color:var(--ink)}
.stage ul li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.vis-svg{width:100%;max-width:560px;height:auto;display:block}
/* visuals */
.bignums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}
.bn{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:14px;padding:16px 10px;text-align:center}
.bn b{display:block;font:800 clamp(34px,5vw,56px)/1 var(--mono);color:var(--gold)}
.bn span{display:block;margin-top:6px;font-size:12px;color:var(--ink2);line-height:1.3}
.two{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.1fr);gap:16px;align-items:center;width:100%}
.rows{min-width:0}
.rows .row{display:grid;grid-template-columns:auto auto 1fr;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font:600 clamp(14px,1.5vw,18px) var(--mono)}
.rows .row b{overflow-wrap:break-word;min-width:0}
.rows .row span{color:var(--ink3)}.rows .row .g{color:var(--gold)}
.rows .ex-line{margin-top:10px;font:800 clamp(16px,2.2vw,22px) var(--mono);color:var(--green)}
.cmp{display:grid;gap:10px;width:100%}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pair>div{border-radius:12px;padding:12px 14px;font:600 clamp(14px,1.8vw,18px) var(--mono);display:flex;gap:10px;align-items:center}
.pair .w{background:rgba(210,31,51,.12);border:1px solid var(--scarlet);color:#ffd7db;text-decoration:line-through;text-decoration-color:var(--scarlet2)}
.pair .r{background:rgba(58,210,159,.12);border:1px solid var(--green);color:#c9ffe9}
.pair span{font-size:20px;flex:none;text-decoration:none}
.chk{margin:0;padding:0;list-style:none;width:100%}
.chk li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);font-size:clamp(15px,2vw,20px);color:var(--ink)}
.chk li span{color:var(--green);font-weight:800}
.titlecard{text-align:center;width:100%}
.tc-badge{display:inline-block;max-width:100%;font:700 clamp(9px,.9vw,11px)/1.3 var(--body);letter-spacing:.1em;text-transform:uppercase;color:#0a0e1a;background:var(--gold);padding:6px 12px;border-radius:999px}
.tc-mission{margin-top:22px;color:var(--scarlet);font:800 .72rem var(--body);letter-spacing:.35em;text-transform:uppercase}
.tc-name{font-size:clamp(26px,4vw,44px);font-weight:800;line-height:1.1;margin-top:4px}
/* scene + extra visuals */
.scene{margin:0;width:100%}.scene img{width:100%;height:auto;border-radius:14px;display:block;border:1px solid var(--line)}.scene figcaption{color:var(--ink3);font-size:12px;margin-top:6px;text-align:center}
.titlescene{position:relative;width:100%;border-radius:14px;overflow:hidden;min-height:200px;aspect-ratio:16/9;border:1px solid var(--line)}
.titlescene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.titlescene .ts-text{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;background:linear-gradient(180deg,rgba(10,14,26,0) 30%,rgba(10,14,26,.92) 100%)}
.titlescene .tc-mission{margin-top:8px}.titlescene .tc-name{font-size:clamp(22px,3.2vw,36px);text-shadow:0 2px 12px rgba(0,0,0,.6)}
.barset{width:100%;display:grid;gap:10px}.barrow{display:grid;grid-template-columns:minmax(70px,auto) 1fr auto;gap:10px;align-items:center}
.bl{color:var(--ink2);font-size:14px}.bt{height:22px;background:var(--line);border-radius:999px;overflow:hidden}.bf{height:100%;background:var(--gold);border-radius:999px}.bv{font:700 16px var(--mono);color:var(--gold);min-width:60px;text-align:right}
.piewrap{display:flex;gap:16px;align-items:center;width:100%}.pie{max-width:220px;flex:1}.pielabel b{display:block;font:800 40px var(--mono);color:var(--gold)}.pielabel span{color:var(--ink2);font-size:15px}
.blocks{display:grid;gap:14px;width:100%}.bg-label{color:var(--ink2);font-size:14px;margin-bottom:4px}.bg-row{display:flex;flex-wrap:wrap;gap:6px}.blk{width:34px;height:34px;border-radius:8px;background:var(--gold)}.blk.green{background:var(--green)}.blk.blue{background:var(--blue)}.bg-n{font:700 14px var(--mono);color:var(--ink3);margin-top:4px}
.receipt{width:100%;max-width:420px;background:#fff;color:#0a0e1a;border-radius:10px;padding:14px 16px;font:600 16px var(--mono)}.rl{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed #cbd2e0}.rl.total{border-bottom:none;border-top:2px solid #0a0e1a;margin-top:6px;font-size:19px}
.chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}.step{display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:15px}.sn{width:24px;height:24px;border-radius:50%;background:var(--gold);color:#0a0e1a;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}.arrow{color:var(--gold);font-weight:800}
.vtable{border-collapse:collapse;font:600 16px var(--mono);width:auto;min-width:220px}.vtable th{color:var(--ink2);font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;border-bottom:2px solid var(--line)}.vtable td{padding:8px 14px;border-bottom:1px solid var(--line);text-align:center;color:var(--ink)}.vtable tr.hi td{color:var(--gold);background:rgba(231,185,78,.08)}
.ladder{display:grid;gap:6px;width:100%;max-width:460px}.lrow{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.lrow b{font:800 20px var(--mono);color:var(--ink)}.lrow:last-child b{color:var(--gold)}.lrow span{color:var(--ink3);font-size:13px;white-space:nowrap}
.coord{max-width:320px}
.wparts{width:100%}.wp-row{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.wp{flex:1 1 90px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:center;min-width:0}.wp b{display:block;font:800 clamp(22px,3vw,34px)/1 var(--mono);color:var(--gold)}.wp span{display:block;margin-top:8px;font-size:13px;color:var(--ink2);line-height:1.3}.wp-plus{align-self:center;color:var(--ink3);font:800 22px var(--mono)}.wp-means{margin-top:14px;font:700 clamp(16px,2vw,21px) var(--body);color:var(--green)}.wp-means span{color:var(--ink);font-family:var(--mono);margin-right:10px}
.vquote{width:100%}.vq-text{background:rgba(255,255,255,.04);border-left:3px solid var(--gold);border-radius:0 12px 12px 0;padding:14px 16px;font-size:clamp(14px,1.6vw,17px);line-height:1.55;color:var(--ink)}.vq-text mark{background:rgba(231,185,78,.28);color:#fff;border-radius:4px;padding:0 3px}.vq-q{margin-top:12px;font:700 clamp(15px,1.8vw,19px) var(--body);color:var(--gold)}
.velim{width:100%;display:grid;gap:8px}.ve-stem{font:700 clamp(15px,1.8vw,19px) var(--body);color:var(--ink);margin-bottom:4px}.ve{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:clamp(14px,1.6vw,17px);min-width:0}.ve-l{width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;font:700 12px var(--mono);color:var(--ink2)}.ve-t{min-width:0;overflow-wrap:break-word}.ve.x .ve-t{text-decoration:line-through;text-decoration-color:var(--scarlet2);color:var(--ink3)}.ve.x .ve-n{color:var(--scarlet2);font-size:12px;white-space:nowrap}.ve.ok{border-color:var(--green);background:rgba(58,210,159,.1)}.ve.ok .ve-t{color:#c9ffe9;font-weight:700}.ve.ok .ve-n{color:var(--green);font-weight:800;font-size:13px}
/* animations (one run per slide; respect reduced motion) */
@media (prefers-reduced-motion:no-preference){
 .stage .pts>*{animation:rise .35s ease both}.stage .pts h2{animation-delay:.05s}.stage .pts ul{animation-delay:.12s}
 .mover{animation:slide 4s linear forwards}@keyframes slide{to{transform:translateX(var(--tx))}}
 .tri-cover{opacity:0;animation:cover 9s linear infinite}.tri-cover.c2{animation-delay:3s}.tri-cover.c3{animation-delay:6s}@keyframes cover{0%,30%{opacity:1}34%,100%{opacity:0}}
 .mv-a{animation:toCenterA 3s ease-in-out forwards}.mv-b{animation:toCenterB 3s ease-in-out forwards}@keyframes toCenterA{to{transform:translateX(180px)}}@keyframes toCenterB{to{transform:translateX(-180px)}}
 .leg{transform-origin:left center;animation:grow .6s ease both}@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
 @keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
}
/* captions, controls, summary */
.caps{padding:12px 16px;border-top:1px solid var(--line);color:var(--ink2);font-size:14px;line-height:1.5;background:#0a0e1a}
.caps.off{display:none}
.ctrl{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);flex-wrap:wrap}
.ctrl .btn.sm{padding:8px 12px}
.ctrl .big{width:44px;height:44px;border-radius:50%;padding:0;font-size:18px;background:var(--gold);color:#0a0e1a;border-color:var(--gold)}
.seek{flex:1 1 160px;height:10px;background:var(--line);border-radius:999px;position:relative;cursor:pointer;min-width:120px}
.seek .fill{position:absolute;left:0;top:0;bottom:0;background:var(--gold);border-radius:999px;width:0}
.seek .mark{position:absolute;top:-2px;width:2px;height:14px;background:#0c1124;opacity:.9}
.ctrl .t{font:12px var(--mono);color:var(--ink3);min-width:84px;text-align:right}
.ctrl .toggle{font-size:12px}.ctrl .toggle.on{border-color:var(--gold);color:var(--gold)}
.sheet{padding:clamp(16px,3vw,30px);background:radial-gradient(900px 400px at 20% 0%,#1c2745,#0c1124)}
.sheet .kicker{color:var(--gold);font:700 11px var(--body);letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
.sum{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--line)}
.sum h3{grid-column:1/-1;margin:0;font-size:15px;color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.sum ul{margin:0;padding-left:18px;color:var(--ink);font-size:16px;line-height:1.5}.sum li{margin:4px 0}
.sum-vis{grid-column:2;grid-row:2}.sum-vis .vis-svg{max-width:220px}
.sum:has(.sum-vis) ul{grid-column:1;grid-row:2}
.player .noaudio{padding:10px 16px;font-size:13px;color:var(--ink3);border-top:1px solid var(--line)}
@media (max-width:700px){.stage{grid-template-columns:1fr;min-height:0}.two{grid-template-columns:1fr}.pair{grid-template-columns:1fr}.sum{grid-template-columns:1fr}.sum-vis{grid-column:1;grid-row:auto}.bignums{grid-template-columns:1fr 1fr 1fr}}
