/* present tab styles — split out of index.html. */
/* Fullscreen overlay: dark "backstage" pre-flight, pale patient-facing deck. */
#present-overlay{position:fixed;inset:0;z-index:9000;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#present-overlay[hidden]{display:none;}
#present-overlay .pv-stage{position:absolute;inset:0;display:none;}
#present-overlay.stage-preflight #pv-preflight{display:block;}
#present-overlay.stage-deck #pv-deck{display:block;}
#present-overlay.stage-exit #pv-exit{display:flex;}

/* ── Pre-flight (private, NOT shared) ── */
#pv-preflight{overflow-y:auto;background:#14211E;color:#DCE7DE;}
.pv-wrap{max-width:860px;margin:0 auto;padding:28px 28px 60px;}
.pv-private{display:flex;align-items:center;gap:12px;background:#B4735A;color:#fff;border-radius:12px;padding:14px 18px;font-size:14px;font-weight:600;margin-bottom:8px;}
.pv-private .pv-dot{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.25);flex:none;}
.pv-lede{font-size:12.5px;color:#9DB3A5;margin:0 2px 22px;line-height:1.5;}
.pv-card{background:#1C2C28;border:1px solid #2C4038;border-radius:14px;padding:18px 20px;margin-bottom:16px;}
.pv-card h3{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#7FA891;margin:0 0 12px;font-weight:600;}
.pv-say{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-style:normal;font-weight:400;font-size:16.5px;line-height:1.62;color:#EAF2EC;border-left:3px solid #6FA783;padding-left:15px;}
.pv-rows{display:flex;flex-direction:column;gap:10px;}
.pv-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:10px 0;border-top:1px solid #2C4038;}
.pv-row:first-child{border-top:none;}
.pv-dont,.pv-do{font-size:13.5px;line-height:1.45;}
.pv-dont{color:#D98C74;}.pv-dont b,.pv-do b{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-weight:600;}
.pv-dont b{color:#B4735A;}.pv-do{color:#BFE0CC;}.pv-do b{color:#6FA783;}
.pv-warn{margin-top:12px;font-size:12.5px;color:#E4B9A6;background:rgba(180,115,90,.14);border-radius:8px;padding:9px 12px;}
.pv-note details{border-top:1px solid #2C4038;padding:11px 0;}
.pv-note details:first-of-type{border-top:none;}
.pv-note summary{cursor:pointer;font-size:13.5px;font-weight:600;color:#EAF2EC;list-style:none;display:flex;justify-content:space-between;}
.pv-note summary::-webkit-details-marker{display:none;}
.pv-note summary::after{content:'+';color:#7FA891;}
.pv-note details[open] summary::after{content:'–';}
.pv-note p{font-family:"Newsreader",Georgia,serif;font-weight:300;font-size:15px;line-height:1.6;color:#C7D6CB;margin:10px 0 2px;white-space:pre-line;}
.pv-check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.pv-check li{display:flex;gap:10px;font-size:13.5px;color:#C7D6CB;}
.pv-check li::before{content:'□';color:#7FA891;}
.pv-actions{display:flex;gap:12px;align-items:center;margin-top:8px;}
.pv-btn{font-family:inherit;cursor:pointer;border:none;border-radius:10px;font-size:14px;font-weight:600;padding:12px 22px;}
.pv-btn-go{background:#6FA783;color:#0E1614;}
.pv-btn-go:hover{background:#7FB893;}
.pv-btn-ghost{background:none;color:#9DB3A5;border:1px solid #2C4038;}
.pv-btn-ghost:hover{color:#DCE7DE;}
.pv-launch-note{font-size:12px;color:#9DB3A5;margin-top:10px;}

/* ── Deck (patient-facing) ──
   Audience is typically 50+, read over a screen share. Everything here is a
   clear sans at regular-or-heavier weight and generous size: no light weights,
   no italic display serif, and no text below ~13px. Muted greens and the
   terracotta accent are darkened to clear 4.5:1 on the #E8EEDD ground. */
#pv-deck{background:#E8EEDD;}
#present-overlay .deck-slide,#present-overlay .deck-slide svg text{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#present-overlay .deck-slide{position:absolute;inset:0 0 92px 0;display:none;flex-direction:column;align-items:center;justify-content:center;padding:clamp(14px,2.4vh,40px) clamp(20px,3.6vw,72px);color:#20403A;overflow:hidden;}
#present-overlay .deck-slide.active{display:flex;}
#present-overlay .deck-slide .eyebrow{font-size:clamp(12px,min(1vw,1.7vh),16px);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#33564E;margin-bottom:clamp(14px,1.6vw,22px);}
#present-overlay .deck-slide h1{font-weight:600;font-size:clamp(30px,min(4.05vw,6.3vh),56px);line-height:1.12;text-align:center;letter-spacing:-.015em;max-width:26ch;margin-bottom:clamp(10px,1.7vh,28px);}
/* Width cap, not height: an SVG told width:100% with a max-height keeps the
   width and squashes the height, which shrinks the drawing inside it.
   Sizing by width lets the viewBox aspect decide the height. */
#present-overlay .deck-slide figure{width:100%;max-width:min(1040px,100vh);display:flex;justify-content:center;margin:0;flex:0 0 auto;}
#present-overlay .deck-slide svg{width:100%;height:auto;overflow:visible;}
#present-overlay .deck-slide .key{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,48px);margin-top:clamp(8px,1.3vh,20px);padding-top:clamp(8px,1.1vh,16px);border-top:1px solid rgba(32,64,58,.16);width:100%;max-width:min(1100px,100%);}
/* Label above its text, not beside it. A side-by-side label needs a fixed
   track, and these labels vary from "The burner" to "The direct route" —
   any track wide enough for the longest wastes space on the rest, and a
   nowrap label narrower than its content overflows into the sentence.
   Stacking also aligns both columns on the same left edge for free. */
#present-overlay .deck-slide .key div{display:block;max-width:none;}
#present-overlay .deck-slide .key b{display:block;margin-bottom:5px;font-weight:700;font-size:clamp(13px,min(1.1vw,1.85vh),17px);letter-spacing:.12em;text-transform:uppercase;color:#8F4F36;}
#present-overlay .deck-slide .key b.alt{color:#356059;}
#present-overlay .deck-slide .key span{display:block;font-weight:400;font-size:clamp(16px,min(1.5vw,2.5vh),22px);line-height:1.45;color:#20403A;}
#present-overlay .deck-slide .caption{font-weight:400;font-size:clamp(17px,min(1.6vw,2.6vh),24px);line-height:1.45;color:#33564E;text-align:center;max-width:58ch;margin-top:clamp(10px,1.5vh,22px);}
/* SVG element classes */
#present-overlay .col-label{font-size:clamp(24px,min(2.7vw,4.4vh),42px);font-weight:600;fill:#20403A;}
#present-overlay .col-sub{font-size:clamp(14px,1.15vw,17px);font-weight:600;letter-spacing:.12em;fill:#33564E;}
#present-overlay .rule{stroke:rgba(32,64,58,.16);stroke-width:1;}
#present-overlay .dot{fill:#4E837B;opacity:0;}
#present-overlay .dot-ghost{fill:#20403A;opacity:.07;}
#present-overlay .tag{font-size:clamp(14px,1.15vw,18px);font-weight:600;letter-spacing:.08em;fill:#33564E;text-transform:uppercase;}
#present-overlay .tag-strong{font-size:clamp(14px,1.15vw,18px);font-weight:700;letter-spacing:.08em;fill:#8F4F36;text-transform:uppercase;}
#present-overlay .heat{stroke:#B4735A;stroke-width:2.5;fill:none;stroke-linecap:round;opacity:.6;}
#present-overlay .tissue{fill:#B4735A;opacity:.85;}
#present-overlay .flow{stroke:#4E837B;stroke-width:2.5;fill:none;stroke-linecap:round;}
#present-overlay .flow-dash{stroke:#20403A;stroke-width:2;fill:none;opacity:.22;stroke-dasharray:6 7;stroke-linecap:round;}
#present-overlay .block{stroke:#B4735A;stroke-width:3.5;stroke-linecap:round;}
#present-overlay .fade{opacity:0;}
#present-overlay .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);}
#present-overlay .van{opacity:0;transform:translate(160px,183px);}
/* animation triggers (restart when a slide is (re)shown via .go) */
#present-overlay .deck-slide.go .dot{animation:deckpop .34s cubic-bezier(.2,.9,.3,1.4) forwards;}
#present-overlay .deck-slide.go .fade{animation:deckfade .6s ease forwards;}
#present-overlay .deck-slide.go .draw{animation:deckdraw 1s ease forwards;}
#present-overlay .deck-slide.go .van{animation:deckdrive 1.6s cubic-bezier(.3,.7,.4,1) 2.6s forwards;}
@keyframes deckpop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes deckfade{to{opacity:1}}
@keyframes deckdraw{to{stroke-dashoffset:0}}
@keyframes deckdrive{0%{opacity:0;transform:translate(160px,183px)}15%{opacity:1}100%{opacity:1;transform:translate(600px,183px)}}
@media (prefers-reduced-motion:reduce){#present-overlay .dot,#present-overlay .fade,#present-overlay .van{opacity:1!important;}#present-overlay .van{transform:translate(600px,183px)!important;}#present-overlay .draw{stroke-dashoffset:0!important;}}
/* 720p-class screen share. The deck has more content than fits at this height,
   so type and diagram are tuned together here: both stay larger than the old
   deck, and nothing runs off the slide (the previous version overflowed by
   ~55px, which simply hid the end of each caption). */
@media (max-height:780px){
  #present-overlay .deck-slide h1{font-size:clamp(28px,min(3.9vw,6.6vh),52px);}
  #present-overlay .deck-slide .caption{font-size:clamp(16px,min(1.55vw,2.55vh),22px);}
  #present-overlay .deck-slide .key span{font-size:clamp(15px,min(1.45vw,2.4vh),21px);}
  #present-overlay .deck-slide figure{max-width:min(1040px,94vh);}
}
/* deck compliance footer + controls */
#present-overlay .deck-compliance{position:absolute;left:0;right:0;bottom:0;padding:14px clamp(20px,4vw,44px);border-top:1px solid rgba(32,64,58,.16);background:#E8EEDD;font-size:clamp(13px,1vw,16px);line-height:1.5;color:#33564E;max-width:80ch;}
#present-overlay .deck-controls{position:absolute;left:50%;bottom:104px;transform:translateX(-50%) translateY(14px);display:flex;align-items:center;gap:10px;background:rgba(20,33,30,.92);border-radius:999px;padding:7px 8px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 8px 30px rgba(0,0,0,.22);}
#present-overlay .deck-controls.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
#present-overlay .dc-btn{font-family:inherit;cursor:pointer;border:none;background:none;color:#DCE7DE;font-size:13px;font-weight:600;padding:7px 12px;border-radius:999px;display:flex;align-items:center;gap:6px;}
#present-overlay .dc-btn:hover:not(:disabled){background:rgba(255,255,255,.12);}
#present-overlay .dc-btn:disabled{opacity:.35;cursor:default;}
#present-overlay .dc-ind{font-size:12px;color:#9DB3A5;min-width:44px;text-align:center;font-variant-numeric:tabular-nums;}
#present-overlay .dc-end{color:#E4B9A6;}
#present-overlay .dc-sep{width:1px;height:18px;background:rgba(255,255,255,.14);}

/* ── Exit checkpoint ── */
#pv-exit{align-items:center;justify-content:center;background:rgba(20,33,30,.96);padding:24px;}
.pv-exit-card{max-width:460px;background:#1C2C28;border:1px solid #2C4038;border-radius:16px;padding:26px;text-align:center;color:#DCE7DE;}
.pv-exit-card .pv-x{font-size:34px;line-height:1;margin-bottom:12px;}
.pv-exit-card h2{font-size:19px;font-weight:600;margin:0 0 10px;}
.pv-exit-card p{font-size:14px;line-height:1.55;color:#B9CCC0;margin:0 0 22px;}
.pv-exit-card p b{color:#E4B9A6;}
.pv-exit-actions{display:flex;flex-direction:column;gap:10px;}
.pv-btn-danger{background:#B4735A;color:#fff;}
.pv-btn-danger:hover{background:#c4805f;}
@media (max-width:640px){.pv-row{grid-template-columns:1fr;gap:6px;}}

