/* NTWRK HTML deck. Canvas 1920x1080, scaled to fit. Tokens from tokens.css (generated, do not edit).
   Layout classes: l-title l-section l-number l-statement l-text-figure l-chart l-compare l-timeline l-process l-quote l-about l-offer l-close */
/* deck-local off-palette values: no token in tokens.json yet; kept for a Creative Director ruling. */
:root{--deck-off-presenter-bg:#0B0F0D;--deck-off-step-mute:#9AA39B;}
/* end off-palette */
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--light-inverse-bg);overflow:hidden} /* letterbox in brand ink */
body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01" 0}
p,h1,h2,h3,ul,ol,blockquote,figure{margin:0;padding:0}
ul,ol{list-style:none}

/* ---------- stage ---------- */
.deck{position:fixed;inset:0;overflow:hidden;background:var(--light-inverse-bg)}
.viewport{position:absolute;left:0;top:0;width:var(--slide-w);height:var(--slide-h);transform-origin:0 0}
.slide{position:absolute;inset:0;width:var(--slide-w);height:var(--slide-h);overflow:hidden;background:var(--bg);color:var(--ink);
  padding:var(--slide-margin-top) var(--slide-margin-x) var(--slide-margin-bottom);display:flex;flex-direction:column;
  visibility:hidden;opacity:0;transition:opacity 150ms ease-out,visibility 0s linear 150ms}
.slide.is-current{visibility:visible;opacity:1;transition:opacity 150ms ease-out,visibility 0s}
@media (prefers-reduced-motion:reduce){.slide,.slide.is-current{transition:none}}

/* ---------- type ---------- */
.eyebrow,.label,.s-foot{font:var(--slide-fw-label) var(--slide-fs-label)/var(--slide-lh-label) var(--font-mono);letter-spacing:var(--slide-tr-label);text-transform:uppercase;color:var(--mute)}
.eyebrow .n{color:var(--ink)}
.display{font-size:var(--slide-fs-display);font-weight:var(--slide-fw-display);letter-spacing:var(--slide-tr-display);line-height:var(--slide-lh-display)}
.statement{font-size:var(--slide-fs-statement);font-weight:var(--slide-fw-statement);letter-spacing:var(--slide-tr-statement);line-height:var(--slide-lh-statement)}
.h1{font-size:var(--slide-fs-h1);font-weight:var(--slide-fw-h1);letter-spacing:var(--slide-tr-h1);line-height:var(--slide-lh-h1);max-width:22ch;text-wrap:balance}
.h2{font-size:var(--slide-fs-h2);font-weight:var(--slide-fw-h2);letter-spacing:var(--slide-tr-h2);line-height:var(--slide-lh-h2)}
.h3{font-size:var(--slide-fs-h3);font-weight:var(--slide-fw-h3);letter-spacing:var(--slide-tr-h3);line-height:var(--slide-lh-h3)}
.lead{font-size:var(--slide-fs-lead);line-height:var(--slide-lh-lead);letter-spacing:var(--slide-tr-lead);color:var(--ink-2);max-width:34ch}
.body{font-size:var(--slide-fs-body);line-height:var(--slide-lh-body);color:var(--ink-2);max-width:40ch}
.small{font-size:var(--slide-fs-small);line-height:var(--slide-lh-small);color:var(--ink-2)}
.src{font:400 var(--slide-fs-label)/1.4 var(--font-mono);color:var(--mute)}
.tag{display:inline-block;font:500 var(--slide-fs-label)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border:2px dashed var(--mute);border-radius:6px;padding:8px 12px;vertical-align:middle}
.mono{font-family:var(--font-mono)}
.s-head{display:flex;flex-direction:column;gap:28px}
.s-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}

/* footer: wordmark, deck name, slide number */
.s-foot{position:absolute;left:var(--slide-margin-x);right:var(--slide-margin-x);bottom:var(--slide-footer-baseline);display:flex;align-items:center;gap:24px;letter-spacing:.1em}
.s-foot img{height:26px;width:auto;display:block}
.s-foot .num{margin-left:auto;font-variant-numeric:tabular-nums}
.slide[data-theme="dark"] .s-foot img.on-light,.slide:not([data-theme="dark"]) .s-foot img.on-dark{display:none}

/* forest top rule (one Forest element per slide) */
.rule-top::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--primary)}
.slide[data-theme="dark"].rule-top::before{background:var(--light-primary)}

/* ---------- layouts ---------- */
/* title */
.l-title .wm{height:48px;width:auto;display:block;align-self:flex-start}
.l-title .s-body{justify-content:flex-end;gap:36px;padding-bottom:40px}
.l-title .display{max-width:17ch;text-wrap:balance}
.l-title .meta{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}

/* section divider */
.l-section{background:var(--surface)}
.l-section .s-body{justify-content:flex-end;padding-bottom:80px}
.l-section .big{font:500 280px/0.85 var(--font-mono);letter-spacing:-.04em;color:var(--line);margin-bottom:40px}
.l-section .display{margin-top:24px;max-width:16ch}
.l-section .bar{width:160px;height:8px;background:var(--primary);margin-top:48px}

/* big number */
.l-number .s-body{flex-direction:row;align-items:center;justify-content:flex-start;gap:80px}
.l-number .fig{font-size:var(--slide-fs-number);font-weight:var(--slide-fw-number);letter-spacing:var(--slide-tr-number);line-height:var(--slide-lh-number);font-variant-numeric:tabular-nums}
.l-number .fig .u{font-size:.45em;letter-spacing:-.02em;margin-left:8px}
.l-number .side{display:flex;flex-direction:column;gap:28px;max-width:760px}
.l-number .side .h2{max-width:20ch}
.l-number .side .accent{border-left:8px solid var(--primary);padding-left:28px}

/* statement */
.l-statement .s-body{gap:56px}
.l-statement .statement{max-width:18ch;text-wrap:balance}
.l-statement .bar{width:160px;height:8px;background:var(--primary)}

/* text + figure */
.cols{display:grid;grid-template-columns:repeat(var(--slide-columns),minmax(0,1fr));column-gap:var(--slide-gutter)}
.l-text-figure .cols{flex:1;align-items:center;min-height:0}
.l-text-figure .copy{grid-column:1/5}.l-text-figure .parts{grid-column:6/13}
.l-text-figure .copy{display:flex;flex-direction:column;gap:32px}
.parts{display:grid;gap:20px}
.parts .grp{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:center;background:var(--card);border:2px solid var(--line);border-radius:20px;padding:28px 32px}
.parts .grp .label{color:var(--ink-2)}
.parts .chips{display:flex;flex-wrap:wrap;gap:14px}
.chip{font-size:30px;font-weight:600;letter-spacing:-.01em;padding:14px 22px;border-radius:12px;background:var(--surface);border:2px solid var(--line-2)}
.parts .grp.focus{border-color:var(--primary);background:var(--primary-tint)}
.parts .grp.focus .chip{background:var(--card);border-color:var(--primary-edge)}

/* chart */
.l-chart .s-body{justify-content:flex-start;padding-top:64px;gap:22px}
.bars{display:grid;gap:34px;max-width:1560px}
.bar-row{display:grid;grid-template-columns:340px 1fr;gap:32px;align-items:center}
.bar-row .lbl{font-size:32px;font-weight:600;color:var(--ink)}
.bar-track{display:flex;align-items:center;gap:20px}
.bar{height:76px;border-radius:4px;background:var(--chart-c1)}
.bar.c2{background:var(--chart-c2)}.bar.c3{background:var(--chart-c3)}.bar.c4{background:var(--chart-c4)}
.bar-val{font:400 var(--slide-fs-label) var(--font-mono);color:var(--ink-2);white-space:nowrap}
.chart-foot{margin-top:28px;display:flex;gap:24px;align-items:center}

/* comparison */
/* l-compare: rebuilt 8 Oct 2026 on the live Home OwnPanel (PR #138, thesis audit C12). What you own leads at 8 columns in a solid
   ink frame, Forest only on its label and four markers; Runs in is a lower-weight footer. Rented is the quieter dashed panel at 4 columns. */
.l-compare .cols{margin-top:40px;align-items:start}
.l-compare .owned{grid-column:1/9}.l-compare .rented{grid-column:9/13}
.panel{border-radius:24px;padding:24px 36px;display:flex;flex-direction:column;gap:14px}
.panel.owned{background:var(--card);border:3px solid var(--ink-2)}
.panel.rented{border:3px dashed var(--mute);background:transparent}
.panel.owned>.label{color:var(--mute)} /* labels never Forest text (Creative ruling, 8 Oct 2026) */
.own-list,.rent-list{display:grid;gap:10px}
.own-list li{border:2px solid var(--line);border-radius:12px;padding:8px 24px;display:grid;grid-template-columns:18px 280px minmax(0,1fr);column-gap:20px;align-items:start}
.own-list li::before{content:"";width:18px;height:18px;border-radius:4px;background:var(--primary);margin-top:12px}
.own-list b{font-size:32px;font-weight:700;letter-spacing:-.01em;line-height:1.3}
.own-list span{font-size:24px;line-height:1.4;color:var(--ink-2);padding-top:4px}
.own-meta{border-top:2px solid var(--line);padding-top:12px;display:grid;gap:6px}
.own-meta .runs{display:flex;gap:20px;align-items:baseline;font-size:24px;line-height:1.4;color:var(--ink-2)}
.rent-list li{border:2px dashed var(--line);border-radius:12px;padding:8px 20px;display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:16px;align-items:start;font-size:28px;font-weight:500;line-height:1.3;color:var(--ink-2)}
.rent-list li::before{content:"";width:18px;height:18px;box-sizing:border-box;border:2px solid var(--mute);border-radius:4px;margin-top:9px}

/* timeline */
.l-timeline .track{position:relative;margin-top:120px;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.l-timeline .track::before{content:"";position:absolute;left:0;right:0;top:18px;height:4px;background:var(--line)}
.l-timeline .pt{position:relative;padding-top:72px;display:flex;flex-direction:column;gap:16px}
.l-timeline .pt::before{content:"";position:absolute;left:0;top:4px;width:32px;height:32px;border-radius:50%;background:var(--bg);border:4px solid var(--ink)}
.l-timeline .pt.now::before{background:var(--primary);border-color:var(--primary)}
.l-timeline .pt .when{font:500 var(--slide-fs-label) var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}

/* process day 0 to 30 */
.l-process .rail{margin-top:72px;display:flex;justify-content:space-between;font:500 var(--slide-fs-label) var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.l-process .line{height:4px;background:var(--line);margin:16px 0 36px;position:relative}
.l-process .line::after{content:"";position:absolute;right:0;top:-10px;width:24px;height:24px;border-radius:50%;background:var(--ink)}
.l-process .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.step{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:16px;min-height:330px}
.step .n{font:500 var(--slide-fs-label) var(--font-mono);letter-spacing:.14em;color:var(--mute)}
.step.last{border-color:var(--primary)}
.step.last .n{color:var(--mute)} /* labels never Forest text (Creative ruling, 8 Oct 2026) */
.l-process .bound{margin-top:36px;max-width:none}

/* quote */
.l-quote .s-body{gap:48px}
.l-quote blockquote{font-size:var(--slide-fs-statement);font-weight:600;letter-spacing:-.03em;line-height:1.08;max-width:20ch;text-wrap:balance;position:relative;padding-left:64px;border-left:8px solid var(--primary)}
.l-quote .cite{padding-left:72px;display:flex;flex-direction:column;gap:10px}

/* about */
.l-about .cols{flex:1;align-items:center;min-height:0}
.l-about .copy{grid-column:1/6}.l-about .side{grid-column:7/13}
.l-about .copy{display:flex;flex-direction:column;gap:36px}
.person{display:flex;gap:32px;align-items:center;background:var(--card);border:2px solid var(--line);border-radius:24px;padding:32px}
.person .ph{width:168px;height:168px;border-radius:20px;background:var(--surface);border:2px dashed var(--mute);display:flex;align-items:center;justify-content:center;font:500 24px/1.2 var(--font-mono);color:var(--mute);text-align:center;letter-spacing:.08em;flex:none}
.facts{display:grid;gap:18px;margin-top:28px}
.facts div{display:grid;grid-template-columns:180px 1fr;gap:24px;font-size:28px;line-height:1.35;color:var(--ink-2);border-top:2px solid var(--line);padding-top:16px}
.facts div .label{padding-top:4px}

/* offer */
.l-offer .cols{flex:1;margin-top:44px;min-height:0}
.l-offer .outputs{grid-column:1/8}.l-offer .price{grid-column:9/13}
.outputs{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-content:start}
.outputs .o{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:28px 32px;display:flex;flex-direction:column;gap:12px}
.price{background:var(--inverse-bg);color:var(--inverse-fg);border-radius:24px;padding:44px;display:flex;flex-direction:column;gap:20px}
.price .h2{font-size:var(--slide-fs-h2);font-weight:var(--slide-fw-h2);letter-spacing:var(--slide-tr-h2);line-height:var(--slide-lh-h2);color:inherit;text-wrap:balance} /* no fee on slides: pricing is in the proposal only */
.price .small,.price .src{color:inherit;opacity:.82}
.price .tag{color:inherit;border-color:currentColor;opacity:.9;align-self:flex-start}

/* close */
.l-close .s-body{justify-content:center;align-items:flex-start;gap:40px}
.l-close .display{max-width:14ch}
.btn{display:inline-flex;align-items:center;height:96px;padding:0 48px;border-radius:16px;background:var(--light-primary);color:var(--light-inverse-fg);font-size:36px;font-weight:600;letter-spacing:-.01em;text-decoration:none}
.l-close .wm{position:absolute;left:var(--slide-margin-x);bottom:var(--slide-footer-baseline);height:32px;width:auto}
.l-close .contact{display:flex;gap:56px;font:400 30px var(--font-mono);color:var(--ink-2)}

/* ---------- grid overlay (G): 12 columns of 103.33px with 40px gutters inside the 120/96/120 margins ---------- */
.grid-on .slide::after{content:"";position:absolute;left:var(--slide-margin-x);right:var(--slide-margin-x);top:var(--slide-margin-top);bottom:var(--slide-margin-bottom);
  background:repeating-linear-gradient(90deg,rgba(42,112,72,.13) 0 103.333px,transparent 103.333px 143.333px);outline:2px dashed rgba(42,112,72,.55);pointer-events:none;z-index:2}

/* ---------- build steps ---------- */
.slide [data-step]{transition:opacity 150ms ease-out,visibility 0s}
.slide [data-step]:not(.step-on){opacity:0;visibility:hidden;transition:opacity 150ms ease-out,visibility 0s linear 150ms}
@media (prefers-reduced-motion:reduce){.slide [data-step],.slide [data-step]:not(.step-on){transition:none}}

/* ---------- live chart tooltips ---------- */
[data-tip]{cursor:help}
[data-tip]:focus{outline:none}
[data-tip]:focus-visible{outline:4px solid var(--light-primary);outline-offset:6px;border-radius:6px}
.slide[data-theme="dark"] [data-tip]:focus-visible{outline-color:var(--dark-primary)}
.tip{position:absolute;z-index:7;max-width:520px;background:var(--light-inverse-bg);color:var(--light-inverse-fg);border:2px solid var(--light-primary);border-radius:12px;padding:14px 20px;
  font:500 26px/1.35 var(--font-sans);letter-spacing:-.005em;box-shadow:0 18px 40px -10px rgb(0 0 0 / .6);pointer-events:none;transform:translate(-50%,calc(-100% - 18px));white-space:normal}
.tip.side{transform:translate(0,-50%)}
.tip b{font-weight:700}
.tip .v{display:block;font:500 24px/1.4 var(--font-mono);letter-spacing:.04em;color:var(--light-accent)}

/* ---------- laser pointer ---------- */
.laser{position:absolute;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:var(--light-primary);z-index:9;pointer-events:none;display:none;
  box-shadow:0 0 0 6px rgba(108,196,138,.45),0 0 36px 14px rgba(108,196,138,.55)}
.laser.on{display:block}
body.laser-on .deck{cursor:none}

/* ---------- blank screen ---------- */
.blank{position:fixed;inset:0;z-index:8;background:black;display:none}
.blank.on{display:block}.blank.white{background:white}

/* ---------- overview ---------- */
.ov{position:fixed;inset:0;z-index:6;background:var(--light-inverse-bg);overflow:auto;padding:28px 32px 48px;display:none}
.ov.open{display:block}
.ov h2{font:500 13px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dark-mute);margin:0 0 20px}
.ov ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.ov button{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;border-radius:10px}
.ov .th{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:8px;outline:2px solid var(--dark-line)}
.ov .th>.viewport{position:absolute;left:0;top:0;pointer-events:none}
.ov .th .slide{visibility:visible;opacity:1;transition:none}
.ov .cap{display:flex;gap:12px;margin-top:10px;font:500 13px/1.3 var(--font-mono);letter-spacing:.08em;color:var(--dark-ink-2)}
.ov .cap b{color:var(--dark-ink);font-weight:500}
.ov button[aria-current="true"] .th{outline:4px solid var(--dark-primary)}
.ov button:focus-visible .th{outline:4px solid var(--dark-ink);outline-offset:3px}
.ov button:hover .th{outline-color:var(--dark-primary)}

/* ---------- notes, chrome ---------- */
.notes{display:none}
.pv-bar button{font:500 13px/1 var(--font-mono);letter-spacing:.06em;color:var(--dark-ink);background:var(--dark-card);border:1px solid var(--dark-line);border-radius:8px;height:36px;min-width:36px;padding:0 10px;cursor:pointer}
.pv-bar button:hover,.pv-bar button:focus-visible{border-color:var(--dark-primary);outline:none}

/* ---------- shortcut bar: hidden for the audience, always on in the presenter view ---------- */
.kbar{position:fixed;left:0;right:0;top:0;height:32px;z-index:7;display:flex;align-items:center;gap:14px;padding:0 12px 0 16px;
  background:rgba(15,26,20,.92);-webkit-backdrop-filter:blur(10px) saturate(1.15);backdrop-filter:blur(10px) saturate(1.15);border-bottom:1px solid rgba(232,228,214,.12);
  font:500 12px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dark-ink-2);
  opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity 150ms ease-out,transform 150ms ease-out}
.kbar.on,body.presenter .kbar{opacity:1;transform:none;pointer-events:auto}
body.kbar-off .kbar{display:none}
body.blanked:not(.presenter) .kbar,body.laser-on:not(.presenter) .kbar{visibility:hidden}
.kbar .mark{display:flex;align-items:center;flex:none}.kbar .mark img{display:block;height:13px;width:auto}
.kbar .sep{flex:none;width:1px;height:14px;background:rgba(232,228,214,.16)}
.kbar .keys{display:flex;align-items:center;align-self:stretch;gap:2px;flex:1;min-width:0;overflow:hidden}
.kbar button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 8px;border-radius:6px;cursor:pointer;color:var(--dark-ink-2);white-space:nowrap;flex:none}
.kbar button:hover{color:var(--light-inverse-fg);background:rgba(232,228,214,.07)}
.kbar button:hover kbd{border-color:rgba(232,228,214,.6)}
.kbar button:focus-visible{outline:2px solid var(--dark-primary);outline-offset:-1px;color:var(--light-inverse-fg);background:rgba(232,228,214,.07)}
.kbar kbd{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:18px;height:18px;padding:0 4px;border:1px solid rgba(232,228,214,.34);border-radius:4px;
  font:500 12px/1 var(--font-mono);letter-spacing:0;text-transform:none;color:var(--dark-ink)}
.kbar button[aria-pressed="true"]{color:var(--light-inverse-fg)}
.kbar button[aria-pressed="true"] kbd{background:var(--light-primary);border-color:var(--light-primary);color:var(--light-inverse-fg)}
.kbar .count{flex:none;display:flex;gap:12px;color:var(--dark-ink);letter-spacing:.08em;font-variant-numeric:tabular-nums;white-space:nowrap}
.kbar .count .st{color:var(--deck-off-step-mute)}
@media (max-width:1180px){.kbar button span{display:none}.kbar button{padding:0 5px}}
@media (prefers-reduced-motion:reduce){.kbar{transition:none;transform:none}}
.progress{position:fixed;left:0;bottom:0;height:3px;background:var(--light-primary);z-index:4;transition:width 150ms;display:none}
body.progress-on .progress{display:block}
@media (prefers-reduced-motion:reduce){.progress{transition:none}}
body.notes-on .deck{bottom:30vh}
.notes-panel{display:none;position:fixed;left:0;right:0;bottom:0;height:30vh;background:var(--dark-bg);color:var(--dark-ink);border-top:1px solid var(--dark-line);padding:20px 28px;overflow:auto;font:400 18px/1.55 var(--font-sans);z-index:3}
.notes-panel h2,.pv-lbl h2,.pv-notes h2{font:500 13px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dark-mute);margin:0 0 12px;display:flex;gap:16px}
.notes-panel p+p,.notes-panel li+li,.pv-notes p+p{margin-top:8px}
.notes-panel ul{list-style:disc;padding-left:22px}
body.notes-on .notes-panel{display:block}
.help{display:none;position:fixed;inset:0;background:color-mix(in srgb, var(--dark-bg) 90.196%, transparent);color:var(--dark-ink);z-index:10;align-items:center;justify-content:center}
.help.open{display:flex}
.help .box{background:var(--dark-surface);border:1px solid var(--dark-line);border-radius:14px;padding:26px 32px;font:400 16px/1.5 var(--font-sans);max-height:92vh;overflow:auto}
.help .cols2{display:grid;grid-template-columns:1fr 1fr;gap:4px 40px;margin-top:12px}
.help table{border-collapse:collapse}.help td{padding:4px 16px 4px 0;vertical-align:top}
.help h3{font:500 12px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dark-mute);margin:14px 0 6px}
.help kbd{font:500 14px var(--font-mono);background:var(--dark-card);border:1px solid var(--dark-line);border-radius:6px;padding:2px 7px;white-space:nowrap}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--dark-surface);color:var(--dark-ink);border:1px solid var(--light-primary);border-radius:10px;padding:12px 18px;font:400 16px/1.4 var(--font-sans);z-index:11;max-width:640px;display:none}
.toast.on{display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- presenter view (index.html?presenter) ---------- */
body.presenter{background:var(--deck-off-presenter-bg);color:var(--dark-ink);font-family:var(--font-sans)}
body.presenter .notes-panel{display:none!important}
body.presenter .ov{top:32px}
.pv-bar{position:fixed;left:0;right:0;top:32px;height:60px;display:flex;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid var(--dark-line);background:var(--light-inverse-bg);z-index:5}
.pv-bar .t{font:500 13px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dark-mute)}
.pv-bar .big{font:500 28px/1 var(--font-mono);letter-spacing:.02em;color:var(--dark-ink);font-variant-numeric:tabular-nums}
.pv-bar .sp{flex:1}
.pv-bar .badge{display:none;font:500 13px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:6px;padding:7px 10px;background:var(--dark-ink);color:var(--light-ink)}
.pv-bar .badge.on{display:inline-block}
.pv-bar .link{color:var(--dark-mute);font:500 13px var(--font-mono);letter-spacing:.06em}
.pv-bar .link.ok{color:var(--dark-primary)}
body.presenter .deck{position:fixed;left:16px;top:108px;width:calc(62vw - 24px);bottom:16px;inset:108px auto 16px 16px;border-radius:8px;outline:1px solid var(--dark-line)}
.pv-next{position:fixed;right:16px;top:132px;width:calc(38vw - 24px);aspect-ratio:16/9;overflow:hidden;border-radius:8px;outline:1px solid var(--dark-line);background:var(--light-inverse-bg)}
.pv-next>.viewport{position:absolute;left:0;top:0}
.pv-next .slide{visibility:visible;opacity:1;transition:none}
.pv-next .end{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:500 14px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dark-mute)}
.pv-lbl{position:fixed;right:16px;top:108px;width:calc(38vw - 24px)}
.pv-notes{position:fixed;right:16px;width:calc(38vw - 24px);top:calc(132px + (38vw - 24px) * 9 / 16 + 24px);bottom:16px;overflow:auto;background:var(--dark-surface);border:1px solid var(--dark-line);border-radius:8px;padding:18px 22px;font:400 22px/1.5 var(--font-sans);color:var(--dark-ink)}
.pv-notes ul{list-style:disc;padding-left:24px}

/* ---------- print: one slide per page, 1920x1080, final build state ---------- */
@page{size:1920px 1080px;margin:0}
@media print{
  html,body{height:auto;overflow:visible;background:none}
  .deck{position:static;overflow:visible;background:none}
  .viewport{position:static;transform:none!important;width:auto;height:auto}
  .slide{position:relative;visibility:visible!important;opacity:1!important;transition:none;break-after:page;page-break-after:always;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .slide:last-of-type{break-after:auto;page-break-after:auto}
  .slide [data-step]{opacity:1!important;visibility:visible!important;transition:none}
  .kbar,.notes-panel,.help,.progress,.sr,.tip,.laser,.blank,.ov,.toast,.pv-bar,.pv-next,.pv-lbl,.pv-notes{display:none!important}
  .grid-on .slide::after{display:none}
}
