/* RAIDER docs — /litepaper (paper research note) and /deck (16:9 slides). Tokens + base only; no new colours.
   Prefixes: lp- litepaper, deck- viewer, sl- slide parts, v- slide visuals, md- markdown output (web/js/doc/md.js). */

/* ═════════════════════════════ LITEPAPER ═════════════════════════════ */
/* --lp-red: paper-rule deepened toward ink for SMALL text (paper-rule on paper is 3.9:1; this is ≥ 4.9:1 on paper and on the desk). */
.lp-page { --lp-red: color-mix(in srgb, var(--paper-rule) 72%, var(--paper-ink)); background: var(--surface-2); }
.lp-tools .chip--plain { color: var(--paper-ink-2); }
.lp-page .rd-banner, .deck-page .rd-banner { color: var(--bone-2); }  /* the honesty banner stays a dark strip on paper */
.lp-page .rd-banner a, .deck-page .rd-banner a { color: var(--bone); }
.lp-page .rd-banner .chip, .deck-page .rd-banner .chip { color: var(--steel); }
[data-theme="paper"] .lp-tools .chip--warn, [data-theme="paper"] .deck-bar .chip--warn { color: color-mix(in srgb, var(--amber) 36%, var(--paper-ink)); } /* amber text on cream fails contrast: 36% is 5.6:1 on the tool bar */
.lp-progress { position: fixed; inset: 0 0 auto; z-index: 300; height: 3px; pointer-events: none; }
.lp-progress i { display: block; height: 100%; background: var(--paper-rule); transform-origin: 0 50%; transform: scaleX(0); }

.lp { padding: 28px var(--gutter) 24px; }
.lp-tools { max-width: calc(var(--wrap-max, var(--maxw)) - 2 * var(--gutter)); margin: 0 auto 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.lp-tools__chips, .lp-tools__act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lp-layout { max-width: calc(var(--wrap-max, var(--maxw)) - 2 * var(--gutter)); margin: 0 auto; display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 36px; align-items: start; }

/* sheet + masthead */
.lp-sheet { position: relative; min-width: 0; max-width: 900px; padding: 54px 68px 40px; background: var(--paper); color: var(--paper-ink);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--paper-ink) 8%, transparent), 0 34px 70px -26px color-mix(in srgb, var(--paper-ink) 45%, transparent);
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.lp-mast { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.lp-mast__logo { width: clamp(150px, 24vw, 232px); height: auto; }
.lp-mast__id { display: grid; justify-items: end; gap: 6px; text-align: right; }
.lp-mast__kicker { font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--lp-red); }
.lp-mast__date { font: 800 26px/1 var(--font-display); letter-spacing: .02em; }
.lp-mast__draft { font: 500 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.lp-rule { height: 7px; margin: 14px 0 26px; border-top: 3px solid var(--paper-rule); border-bottom: 1px solid var(--paper-rule); }
.lp-cover { position: relative; }
.lp-eyebrow { margin: 0 0 14px; max-width: none; padding-right: 170px; font: 500 var(--fs-xs)/1.45 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.lp-title { margin: 0 0 20px; padding-right: 150px; font: 900 clamp(52px, 8vw, 100px)/.86 var(--font-display); letter-spacing: 0; text-transform: uppercase; color: var(--paper-ink); }
.lp-title__v { color: var(--paper-rule); text-transform: none; }
.lp-stamp { position: absolute; right: 2px; top: 30px; padding: .14em .42em; font-size: 30px; color: var(--paper-rule); transform: rotate(-8deg); }
.lp-dek { margin: 0 0 18px; max-width: 64ch; font: italic 400 18px/1.5 var(--font-serif); color: var(--paper-ink-2); }
.lp-callout { margin: 0 0 24px; max-width: none; padding: 14px 18px; border-left: 4px solid var(--paper-rule); background: color-mix(in srgb, var(--paper-rule) 7%, var(--paper)); font: 400 16px/1.55 var(--font-serif); }
.lp-callout strong { font-weight: 600; }
.lp-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-block: 1px solid var(--paper-ink); }
.lp-facts > div { min-width: 0; padding: 10px 12px 11px; border-left: 1px solid var(--paper-line); }
.lp-facts > div:first-child { padding-left: 0; border-left: 0; }
.lp-facts dt { font: 500 9.5px/1.2 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--paper-ink-2); }
.lp-facts dd { margin: 6px 0 0; font: 800 19px/1.05 var(--font-display); letter-spacing: .01em; text-transform: uppercase; }
.lp-facts dd[data-fact-token] { color: var(--paper-rule); }

/* body */
.lp-body { margin-top: 4px; font: 400 17px/1.66 var(--font-serif); color: var(--paper-ink); }
.lp-body p { margin: 0 0 .9em; max-width: 70ch; }
.lp-sec { margin-top: 46px; }
.lp-body h2 { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: baseline; margin: 0 0 18px; padding-top: 14px; border-top: 2px solid var(--paper-ink);
  font: 600 29px/1.16 var(--font-serif); letter-spacing: -.012em; text-transform: none; color: var(--paper-ink); text-wrap: balance; break-after: avoid; }
.lp-body h2 .md-num { font: 900 33px/.9 var(--font-display); letter-spacing: .01em; color: var(--paper-rule); }
.lp-body h2 .md-num.is-sym { font: 600 27px/1 var(--font-serif); }
.lp-body h3 { display: flex; align-items: baseline; gap: 12px; margin: 32px 0 12px; font: 600 20px/1.25 var(--font-serif); letter-spacing: -.005em; text-transform: none; color: var(--paper-ink); break-after: avoid; }
.lp-body h3 .md-num { font: 600 var(--fs-xs)/1 var(--font-mono); letter-spacing: .1em; color: var(--lp-red); }
.lp-body h2, .lp-body h3, .lp-disc { scroll-margin-top: calc(var(--nav-h) + var(--banner-h) + 24px); }
.lp-body strong { font-weight: 600; }
.lp-body a { color: inherit; text-decoration-color: var(--paper-rule); }
.lp-body code { padding: .1em .32em; background: color-mix(in srgb, var(--paper-ink) 7%, transparent); font: 500 .82em/1 var(--font-mono); overflow-wrap: anywhere; }
.lp-body ul, .lp-body ol { max-width: 70ch; margin: 0 0 1em; padding-left: 1.4em; }
.lp-body ul { list-style: square; }
.lp-body li { margin-bottom: .4em; }
.lp-body li::marker { color: var(--paper-rule); font: 600 .84em var(--font-mono); }
.lp-body blockquote { margin: 18px 0; padding: 2px 0 2px 18px; border-left: 3px solid var(--paper-rule); font-style: italic; color: var(--paper-ink-2); }
.lp-body pre { overflow-x: auto; padding: 14px 16px; border: 1px solid var(--paper-line); background: color-mix(in srgb, var(--paper-ink) 5%, transparent); font: 400 13px/1.6 var(--font-mono); }
.lp-body hr { border-top-color: var(--paper-line); }
.lp-cite { font: 500 .76em/1 var(--font-mono); letter-spacing: .01em; color: var(--paper-ink-2); }

/* exhibits: research-note tables */
.lp-exhibit { margin: 22px 0 30px; }
.lp-exhibit__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 8px; font: 600 var(--fs-2xs)/1.3 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--lp-red); break-after: avoid; }
.lp-exhibit__sec { font-weight: 500; letter-spacing: .1em; color: var(--paper-ink-2); }
.lp-body .md-table { width: 100%; border-collapse: collapse; border-block: 2px solid var(--paper-ink); font: 400 14.5px/1.45 var(--font-serif); font-variant-numeric: tabular-nums; }
.lp-body .md-table.is-wide { font-size: 13.5px; }
.lp-body .md-table th { padding: 9px 12px 8px 0; border-bottom: 1px solid var(--paper-ink); text-align: left; vertical-align: bottom; font: 600 9.5px/1.3 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.lp-body .md-table td { padding: 9px 12px 9px 0; border-bottom: 1px solid var(--paper-line); vertical-align: top; overflow-wrap: break-word; }
.lp-body .md-table tr:last-child td { border-bottom: 0; }
.lp-body .md-table td:first-child { font-weight: 600; }
.lp-body .md-table th:last-child, .lp-body .md-table td:last-child { padding-right: 0; }
.lp-body .md-table tbody tr:nth-child(even) { background: color-mix(in srgb, var(--paper-2) 60%, transparent); }
.md-al-r { text-align: right !important; } .md-al-c { text-align: center !important; }
.lp-v { display: inline-block; margin-right: 6px; padding: 2px 6px 1px; border: 1.5px solid currentColor; font: 700 9.5px/1.3 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; vertical-align: 1px; }
.lp-v--stop { background: var(--paper-rule-solid); border-color: var(--paper-rule-solid); color: var(--paper); }
.lp-v--go { color: var(--paper-ink); }
.lp-v--warn { color: var(--lp-red); }
.lp-sec--refs .md-table { font-size: 13px; }
.lp-sec--refs p, .lp-sec--fine p { font-size: 15px; color: var(--paper-ink-2); }
.md-fnref a { padding: 0 .12em; font: 600 .68em/1 var(--font-mono); color: var(--lp-red); text-decoration: none; }
.md-footnotes { margin-top: 32px; padding-top: 12px; border-top: 1px solid var(--paper-ink); font-size: 13.5px; }
.md-fnback { text-decoration: none; color: var(--lp-red); }

/* closing box, colophon, states */
.lp-disc { margin-top: 52px; padding: 18px 22px 8px; border: 1.5px solid var(--paper-ink); break-inside: avoid; }
.lp-disc__h { margin: 0 0 12px; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--lp-red); }
.lp-disc p { margin: 0 0 .75em; max-width: none; font: 400 13.5px/1.55 var(--font-serif); }
.lp-disc a { color: inherit; text-decoration-color: var(--paper-rule); }
.lp-colophon { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin-top: 18px; padding-top: 12px; border-top: 3px double var(--paper-ink); font: 500 var(--fs-2xs)/1.4 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
.lp-skel { display: grid; gap: 12px; padding: 36px 0; }
.lp-skel i { display: block; height: 14px; background: linear-gradient(90deg, var(--paper-2) 30%, var(--surface-2) 50%, var(--paper-2) 70%) 0 0 / 300% 100%; animation: lp-skel 1.4s linear infinite; }
.lp-skel i:nth-child(3n+1) { width: 94%; } .lp-skel i:nth-child(3n+2) { width: 78%; } .lp-skel i:nth-child(3n) { width: 61%; }
@keyframes lp-skel { to { background-position: -150% 0; } }
.lp-missing { padding: 40px 0 8px; }
.lp-body .lp-missing__h { display: block; margin: 0 0 14px; padding: 0; border: 0; font: 600 clamp(26px, 3.4vw, 36px)/1.15 var(--font-serif); text-transform: none; letter-spacing: -.01em; }
.lp-missing__links { display: flex; flex-wrap: wrap; gap: 10px; }
.lp-note { font: 400 var(--fs-sm)/1.5 var(--font-mono); color: var(--paper-ink-2); }

/* contents (desktop rail) */
.lp-toc { position: sticky; top: calc(var(--nav-h) + var(--banner-h) + 24px); align-self: start; max-height: calc(100vh - var(--nav-h) - var(--banner-h) - 48px); overflow: auto; }
.lp-toc__bar { display: none; }
.lp-toc__h { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 12px; max-width: none; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--lp-red); }
.lp-toc__h .num { letter-spacing: .06em; color: var(--paper-ink-2); }
.lp-toc__list, .lp-toc__sub { list-style: none; margin: 0; padding: 0; }
.lp-toc__list { border-left: 1px solid var(--hair-2); }
.lp-toc a { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 4px; margin-left: -1px; padding: 6px 8px 6px 12px; border-left: 2px solid transparent; font: 500 12.5px/1.35 var(--font-sans); color: var(--paper-ink-2); text-decoration: none; transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease); }
.lp-toc a:hover { color: var(--paper-ink); }
.lp-toc a.is-on { border-left-color: var(--paper-rule); color: var(--paper-ink); background: color-mix(in srgb, var(--paper) 72%, transparent); }
.lp-toc__n { font: 600 11px/1.5 var(--font-mono); letter-spacing: .02em; color: var(--lp-red); }
.lp-toc__sub a { padding-left: 22px; font-size: 12px; }
.lp-toc__sub .lp-toc__n { font-weight: 500; }
.lp-toc__wait { padding: 8px 12px; font: 400 var(--fs-xs)/1.4 var(--font-mono); color: var(--paper-ink-2); }
.lp-toc__foot { margin: 16px 0 0; font: 500 10px/1.4 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--paper-ink-2); }

@media screen and (max-width: 1099px) {
  .lp-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .lp-sheet { max-width: none; }
  .lp-toc { top: calc(var(--nav-h) + var(--banner-h)); z-index: 50; max-height: none; overflow: visible; margin: 0 calc(var(--gutter) * -1) 16px; }
  .lp-toc__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; padding: 0 var(--gutter); border: 0; border-block: 1px solid var(--paper-line);
    background: color-mix(in srgb, var(--paper) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--paper-ink); text-align: left; cursor: pointer; }
  .lp-toc__barl { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
  .lp-toc__k { flex: none; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--lp-red); }
  .lp-toc__k::before { content: "≡ "; }
  .lp-toc__cur { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 500 13px/1.2 var(--font-sans); }
  .lp-toc__pct { flex: none; font: 500 var(--fs-xs)/1 var(--font-mono); color: var(--paper-ink-2); }
  .lp-toc__panel { display: none; position: absolute; left: 0; right: 0; top: 100%; max-height: min(70vh, 560px); overflow: auto; padding: 16px var(--gutter) 18px; background: var(--paper); border-bottom: 2px solid var(--paper-ink); box-shadow: 0 24px 40px -20px color-mix(in srgb, var(--paper-ink) 45%, transparent); }
  .lp-toc.is-open .lp-toc__panel { display: block; }
  .lp-toc a { padding-block: 10px; }
  .lp-body h2, .lp-body h3, .lp-disc { scroll-margin-top: calc(var(--nav-h) + var(--banner-h) + 64px); }
}
@media screen and (max-width: 640px) {
  .lp { padding: 14px 0 0; }
  .lp-tools { padding-inline: var(--gutter); }
  .lp-toc { margin: 0 0 0; }
  .lp-sheet { padding: 28px 18px 24px; box-shadow: none; }
  .lp-mast { align-items: flex-start; }
  .lp-mast__date { font-size: 21px; }
  .lp-eyebrow { padding-right: 0; }
  .lp-title { padding: 0; font-size: clamp(44px, 13.6vw, 64px); }
  .lp-stamp { position: static; margin: 0 0 18px 4px; font-size: 19px; transform: rotate(-4deg); }
  .lp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-facts > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .lp-facts > div:nth-child(n+3) { border-top: 1px solid var(--paper-line); }
  .lp-body { font-size: 16px; line-height: 1.62; }
  .lp-body h2 { grid-template-columns: 44px minmax(0, 1fr); font-size: 23px; }
  .lp-body h2 .md-num { font-size: 26px; }
  .lp-body .md-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .lp-body .md-table, .lp-body .md-table tbody, .lp-body .md-table tr, .lp-body .md-table td { display: block; width: 100%; }
  .lp-body .md-table tr { padding: 10px 0; border-bottom: 1px solid var(--paper-line); background: none !important; }
  .lp-body .md-table tr:last-child { border-bottom: 0; }
  .lp-body .md-table td { padding: 2px 0; border: 0; text-align: left !important; }
  .lp-body .md-table td:first-child { padding-bottom: 4px; font-size: 15px; }
  .lp-body .md-table td + td::before { content: attr(data-label); display: block; margin-top: 4px; font: 600 9px/1.5 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--paper-ink-2); }
  .lp-disc { padding: 16px 16px 6px; }
}

@media print {
  body.lp-page { page: lp; }
  @page lp {
    size: A4; margin: 18mm 17mm 18mm;
    @top-left { content: "Raider Research · Litepaper v0.1 · not financial advice"; font: 500 7pt "IBM Plex Mono", Consolas, monospace; letter-spacing: .1em; text-transform: uppercase; color: #4A453B; }
    @top-right { content: "Pre-token draft"; font: 500 7pt "IBM Plex Mono", Consolas, monospace; letter-spacing: .1em; text-transform: uppercase; color: #D93A12; }
    @bottom-left { content: "Raider is a persona run by a model under human control: humans approve every post and sign every transaction."; font: italic 400 7pt "IBM Plex Serif", Georgia, serif; color: #4A453B; }
    @bottom-right { content: counter(page) " / " counter(pages); font: 500 7.5pt "IBM Plex Mono", Consolas, monospace; color: #14110D; }
  }
  @page lp:first { @top-left { content: none; } @top-right { content: none; } }
  html:has(body.lp-page), body.lp-page { background: #fff !important; }
  .lp-progress, .lp-tools, .lp-toc, .skip-link { display: none !important; }
  .lp { padding: 0; }
  .lp-layout { display: block; max-width: none; }
  .lp-sheet { max-width: none; padding: 0; background: #fff; color: #000; box-shadow: none; }
  .lp-title { padding-right: 120pt; font-size: 56pt; }
  .lp-stamp { top: 18pt; font-size: 20pt; }
  .lp-dek { font-size: 12pt; }
  .lp-callout { font-size: 11pt; }
  .lp-callout, .lp-facts, .lp-disc, .lp-mast { break-inside: avoid; }
  .lp-body { font-size: 10.5pt; line-height: 1.5; color: #000; }
  .lp-body p, .lp-body li { orphans: 3; widows: 3; }
  .lp-sec { margin-top: 24pt; }
  .lp-body h2 { grid-template-columns: 36pt minmax(0, 1fr); margin-bottom: 10pt; padding-top: 7pt; font-size: 16.5pt; break-inside: avoid; }
  .lp-body h2 .md-num { font-size: 19pt; }
  .lp-body h3 { margin: 16pt 0 7pt; font-size: 12.5pt; break-inside: avoid; }
  .lp-exhibit { margin: 10pt 0 14pt; }
  .lp-body .md-table { font-size: 8.8pt; line-height: 1.38; }
  .lp-body .md-table th { font-size: 6.6pt; }
  .lp-body .md-table thead { display: table-header-group; }
  .lp-body .md-table tr { break-inside: avoid; }
  .lp-body a[href^="http"]::after { content: " (" attr(href) ")"; font: 400 .8em var(--font-mono); word-break: break-all; }
  .lp-disc p { font-size: 9.5pt; }
}

/* ═════════════════════════════ DECK ═════════════════════════════ */
/* Signal colours readable on both grounds: on paper the bright signals are mixed toward ink (contrast ≥ 4.5:1). */
.deck-html { --d-amber: var(--amber); --d-mint: var(--mint); --d-cold: var(--cold); --d-loss: var(--loss); --sl-card: color-mix(in srgb, var(--ink-2) 78%, transparent); }
.deck-html[data-theme="paper"] { --d-amber: color-mix(in srgb, var(--amber) 45%, var(--paper-ink)); --d-mint: color-mix(in srgb, var(--mint) 38%, var(--paper-ink)); --d-cold: color-mix(in srgb, var(--cold) 45%, var(--paper-ink)); --d-loss: color-mix(in srgb, var(--loss) 62%, var(--paper-ink)); --sl-card: color-mix(in srgb, var(--paper-2) 70%, transparent); }
.deck-page { display: flex; flex-direction: column; height: 100vh; height: 100dvh; overflow: hidden; background: var(--ink-0); --wrap-max: 100000px; } /* the slide stage and its control bar fill the window: the shared header takes the bar's edges (qa.mjs layout) */
.deck-page > rd-nav { display: block; flex: none; }
.deck { position: relative; display: flex; flex: 1; flex-direction: column; min-height: 0; background: var(--ink-0); }
[data-theme="paper"] .deck-page, [data-theme="paper"] .deck { background: var(--surface-2); }
.deck-viewport { position: relative; flex: 1; min-height: 0; overflow: hidden; touch-action: pan-y; }
.deck-stage { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; transform-origin: 0 0; box-shadow: 0 30px 90px color-mix(in srgb, var(--void) 70%, transparent); }

/* slide frame */
.slide { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 58px 96px 46px; overflow: hidden; color: var(--text);
  background: radial-gradient(120% 95% at 86% 8%, var(--ink-3) 0%, var(--ink-1) 50%, var(--ink-0) 100%);
  opacity: 0; visibility: hidden; transform: translateX(var(--sl-from, 48px));
  transition: opacity 240ms var(--ease), transform 320ms var(--ease), visibility 0s linear 320ms;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.slide.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity 240ms var(--ease), transform 320ms var(--ease), visibility 0s; }
.slide::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5; background-image: linear-gradient(var(--hair) 1px, transparent 1px), linear-gradient(90deg, var(--hair) 1px, transparent 1px); background-size: 96px 96px; background-position: -1px -1px;
  -webkit-mask-image: radial-gradient(70% 80% at 88% 10%, #000, transparent 72%); mask-image: radial-gradient(70% 80% at 88% 10%, #000, transparent 72%); }
.slide::after { content: ""; position: absolute; inset: 26px; pointer-events: none; --tc: color-mix(in srgb, var(--accent) 80%, transparent);
  background: linear-gradient(var(--tc), var(--tc)) 0 0 / 36px 3px, linear-gradient(var(--tc), var(--tc)) 0 0 / 3px 36px, linear-gradient(var(--tc), var(--tc)) 100% 0 / 36px 3px, linear-gradient(var(--tc), var(--tc)) 100% 0 / 3px 36px,
    linear-gradient(var(--tc), var(--tc)) 0 100% / 36px 3px, linear-gradient(var(--tc), var(--tc)) 0 100% / 3px 36px, linear-gradient(var(--tc), var(--tc)) 100% 100% / 36px 3px, linear-gradient(var(--tc), var(--tc)) 100% 100% / 3px 36px;
  background-repeat: no-repeat; }
.slide > * { position: relative; z-index: 1; }
:where(.slide) p { max-width: none; }
[data-theme="paper"] .slide { background: var(--paper); }
[data-theme="paper"] .slide::before { opacity: .7; }
.sl-head { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 24px; min-height: 42px; font: 500 19px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); }
.sl-head b { font-weight: 600; color: var(--accent); }
.sl-hchips { display: flex; gap: 12px; }
.slide .chip { height: 40px; gap: 12px; padding: 0 16px; border-width: 2px; font-size: 16px; letter-spacing: .14em; }
.slide .chip::before { width: 9px; height: 9px; }
.deck-html[data-theme="paper"] .slide .chip--warn { color: var(--d-amber); }
.deck-html[data-theme="paper"] .slide { --accent: color-mix(in srgb, var(--paper-rule) 80%, var(--paper-ink)); } /* small accent text ≥ 4.9:1 on paper */
.slide .chip--raid { color: var(--accent); }
.sl-h { flex: none; max-width: 1680px; margin: 34px 0 0; font: 900 112px/.9 var(--font-display); letter-spacing: .002em; text-transform: uppercase; color: var(--text); text-wrap: balance; }
.sl-h em { font-style: normal; color: var(--accent); }
.sl-h--two { font-size: 104px; }
.sl-sub { flex: none; max-width: 1440px; margin: 22px 0 0; font: 400 30px/1.4 var(--font-sans); color: var(--text-2); text-wrap: pretty; }
.sl-vis { position: relative; display: flex; flex: 1; min-height: 0; margin-top: 38px; }
.sl-vis--col { flex-direction: column; gap: 26px; }
.sl-foot { display: flex; flex: none; align-items: center; gap: 32px; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--hair-2); font: 400 17px/1.35 var(--font-mono); color: var(--text-3); }
.sl-brand { display: flex; flex: none; align-items: center; gap: 12px; font: 600 15px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-2); }
.sl-brand svg { width: 18px; height: auto; color: var(--text); }
.sl-src { flex: 1; min-width: 0; text-wrap: pretty; }
.sl-no { flex: none; font: 600 17px/1 var(--font-mono); letter-spacing: .08em; color: var(--text-2); }

/* 01 title */
.sl-cover { display: grid; flex: 1; min-height: 0; grid-template-columns: minmax(0, 1fr) 640px; gap: 36px; align-items: center; }
.sl-eyebrow { margin: 0 0 26px; font: 500 22px/1.3 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-2); }
.sl-hero { margin: 0; font: 900 178px/.84 var(--font-display); letter-spacing: -.004em; text-transform: uppercase; }
.sl-hero span { display: block; }
.sl-hero em { font-style: normal; color: var(--accent); }
.sl-lead { max-width: 1000px; margin: 30px 0 0; font: 400 31px/1.36 var(--font-sans); color: var(--text-2); }
.sl-disclose { max-width: 1010px; margin: 24px 0 0; padding: 4px 0 4px 24px; border-left: 5px solid var(--d-amber); font: 500 28px/1.4 var(--font-sans); color: var(--text); }
.sl-chips { display: flex; flex-wrap: wrap; gap: 12px; max-width: none; margin: 30px 0 0; }

/* radar */
.v-radar { display: block; width: 100%; height: auto; overflow: visible; }
.v-radar .face { fill: var(--surface); fill-opacity: .55; }
.v-radar .ring { fill: none; stroke: var(--hair-2); stroke-width: 1.5; }
.v-radar .ring--raid { stroke: var(--accent); stroke-opacity: .75; stroke-dasharray: 5 8; }
.v-radar .cross { fill: none; stroke: var(--hair-2); stroke-dasharray: 3 9; }
.v-radar .tick { stroke: var(--text-4); stroke-width: 1.5; } .v-radar .tick--l { stroke: var(--text-3); stroke-width: 2.5; }
.v-radar .lbl { font: 500 16px var(--font-mono); letter-spacing: .06em; fill: var(--text-4); }
.v-radar .sweep { transform-origin: 320px 320px; animation: v-sweep 6s linear infinite; }
.v-radar .sweep path { fill: var(--accent); }
.v-radar .sweep line { stroke: var(--accent); stroke-width: 2.5; }
.v-radar .b-raid { fill: var(--accent); } .v-radar .b-watch { fill: var(--d-amber); }
.v-radar .b-pass { fill: none; stroke: var(--text-3); stroke-width: 2; } .v-radar .b-never { fill: none; stroke: var(--d-loss); stroke-width: 3.5; }
.v-radar .pulse { fill: none; stroke: var(--accent); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: v-pulse 2.2s var(--ease) infinite; }
.v-radar .ret { fill: none; stroke: var(--accent); }
.v-radar .mark-bg { fill: var(--bg); fill-opacity: .82; }
.v-radar .mark { color: var(--text); }
.v-radar .pip { stroke: var(--text-2); stroke-width: 3; }
@keyframes v-sweep { to { transform: rotate(360deg); } }
@keyframes v-pulse { from { transform: scale(1); opacity: .9; } to { transform: scale(3.4); opacity: 0; } }
.slide:not(.is-active) .v-radar .sweep, .slide:not(.is-active) .v-radar .pulse { animation-play-state: paused; }

/* 02 waves */
.v-waves { display: grid; flex: 1; grid-template-rows: auto repeat(3, minmax(0, 1fr)); border-top: 3px solid var(--text); }
.v-waves__head, .v-waves__row { display: grid; grid-template-columns: 290px repeat(4, minmax(0, 1fr)); }
.v-waves__head { border-bottom: 2px solid var(--text); }
.v-waves__corner { align-self: end; padding: 0 0 16px; font: 500 16px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); }
.v-ph { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 6px 12px; padding: 18px 40px 16px 24px; font: 800 40px/1 var(--font-display); text-transform: uppercase; }
.v-ph b { grid-row: span 2; font: 600 18px/1 var(--font-mono); letter-spacing: .08em; color: var(--accent); }
.v-ph i { font: 500 16px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; color: var(--text-3); }
.v-ph:not(:last-child)::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 16px; border-top: 3px solid var(--accent); border-right: 3px solid var(--accent); transform: translateY(-50%) rotate(45deg); }
.v-waves__row { border-bottom: 1px solid var(--hair-2); }
.v-wave { padding: 22px 16px 16px 0; font: 800 34px/1 var(--font-display); text-transform: uppercase; }
.v-wave i { display: block; margin-top: 10px; font: 500 15px/1.2 var(--font-mono); font-style: normal; letter-spacing: .12em; color: var(--text-3); }
.v-cell { padding: 22px 24px 16px; border-left: 1px solid var(--hair); font: 400 24px/1.32 var(--font-sans); }
.v-cell small { display: block; margin-top: 10px; font: 500 15px/1.2 var(--font-mono); letter-spacing: .06em; color: var(--text-3); }
.is-thesis .v-wave { color: var(--text-2); }
.is-thesis .v-cell { border-left-style: dashed; color: var(--text-2); }
.v-cell.is-empty { font-style: italic; color: var(--text-3); }
.v-cell.is-lane { margin: 8px 0 8px 10px; border: 3px solid var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); font-weight: 600; color: var(--text); box-shadow: 0 0 70px -24px var(--raid-glow); }
.v-cell.is-lane b { display: block; margin-top: 12px; font: 600 16px/1.2 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }

/* 03 lane */
.v-lane { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 22px; margin: 0; padding: 0; list-style: none; }
.v-lane::before { content: ""; position: absolute; left: 0; right: 0; top: 39px; height: 2px; background: var(--hair-2); }
.v-lane li { position: relative; display: grid; align-content: start; gap: 10px; padding-top: 68px; }
.v-lane li::before { content: ""; position: absolute; left: 0; top: 31px; width: 18px; height: 18px; background: var(--text-3); }
.v-lane time { position: absolute; left: 0; top: 0; font: 600 18px/1 var(--font-mono); letter-spacing: .06em; color: var(--text-3); }
.v-lane b { font: 800 40px/1 var(--font-display); text-transform: uppercase; }
.v-lane em { margin-top: -2px; font: 600 16px/1.25 var(--font-mono); font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.v-lane span { margin-top: 4px; font: 400 23px/1.38 var(--font-sans); color: var(--text-2); }
.v-lane small { font: 500 15px/1.3 var(--font-mono); letter-spacing: .04em; color: var(--text-3); }
.v-lane li.is-open { margin: -14px -14px 0 0; padding: 82px 18px 20px; border: 3px dashed var(--accent); background: color-mix(in srgb, var(--accent) 9%, transparent); }
.v-lane li.is-open::before { left: 18px; top: 45px; border: 3px solid var(--accent); background: transparent; }
.v-lane li.is-open time { left: 18px; top: 14px; color: var(--accent); }
.v-lane li.is-open b { color: var(--accent); }
.v-lane li.is-open span { color: var(--text); }
.v-why { display: grid; grid-template-columns: 250px repeat(3, minmax(0, 1fr)); gap: 0 28px; margin-top: auto; padding-top: 18px; border-top: 2px solid var(--text); }
.v-why p { margin: 0; font: 400 21px/1.36 var(--font-sans); color: var(--text-2); }
.v-why b { display: block; margin-bottom: 6px; font: 800 26px/1 var(--font-display); text-transform: uppercase; color: var(--text); }
.v-why .v-why__k { font: 600 17px/1.35 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }

/* 04 beats + order */
.v-beats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; margin: 0; padding: 0; list-style: none; }
.v-beats li { position: relative; display: grid; align-content: start; gap: 16px; min-height: 350px; padding: 28px 28px 30px; border: 2px solid var(--hair-2); background: var(--sl-card); }
.v-beats li:not(:last-child)::after { content: ""; position: absolute; right: -27px; top: 50%; width: 15px; height: 15px; border-top: 3px solid var(--text-3); border-right: 3px solid var(--text-3); transform: translateY(-50%) rotate(45deg); }
.v-beats i { font: 600 17px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.v-beats p { margin: 0; font: 400 27px/1.38 var(--font-sans); }
.v-beats .is-receipt { border-color: var(--d-amber); box-shadow: inset 0 4px 0 var(--d-amber); }
.v-beats .is-receipt i { color: var(--d-amber); }
.v-beats .is-receipt b { font: 900 104px/.86 var(--font-display); color: var(--d-amber); }
.v-order { display: flex; align-items: center; gap: 40px; margin-top: auto; padding-top: 22px; border-top: 2px solid var(--text); }
.v-order__k { flex: none; width: 330px; margin: 0; font: 600 18px/1.35 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.v-order ol { display: flex; gap: 72px; margin: 0; padding: 0; list-style: none; }
.v-order li { position: relative; display: grid; gap: 8px; }
.v-order li:not(:last-child)::after { content: ""; position: absolute; right: -46px; top: 22px; width: 18px; height: 18px; border-top: 4px solid var(--accent); border-right: 4px solid var(--accent); transform: rotate(45deg); }
.v-order b { font: 900 60px/.88 var(--font-display); text-transform: uppercase; }
.v-order li i { font: 500 16px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.v-fine { max-width: none; margin: 0; font: 400 19px/1.4 var(--font-mono); color: var(--text-3); }

/* 05 daily loop */
.v-loop { display: grid; flex: 1; grid-template-columns: 262px minmax(0, 1fr); gap: 36px; align-items: start; }
.v-loop__radar { display: grid; gap: 12px; justify-items: center; padding-top: 6px; }
.v-loop__radar p { margin: 0; font: 600 16px/1 var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }
.v-loop__track { position: relative; padding-bottom: 64px; }
.v-loop__steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.v-loop__steps li { position: relative; display: grid; grid-template-rows: auto auto 1fr auto; gap: 14px; min-height: 440px; padding: 20px 20px 20px; border: 2px solid var(--hair-2); background: var(--sl-card); }
.v-loop__steps li.is-now { border-color: var(--accent); }
.v-loop__steps li.is-wait { border-style: dashed; border-color: var(--d-cold); background: color-mix(in srgb, var(--d-cold) 6%, transparent); }
.v-loop__steps i { font: 600 15px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.v-loop__steps .is-wait i { color: var(--d-cold); }
.v-loop__steps b { display: grid; gap: 10px; font: 800 40px/1 var(--font-display); text-transform: uppercase; }
.v-loop__steps b span { font: 900 60px/.84 var(--font-display); color: var(--text-4); }
.v-loop__steps p { margin: 0; font: 400 22px/1.38 var(--font-sans); color: var(--text-2); }
.v-loop__steps em { padding-top: 12px; border-top: 1px solid var(--hair-2); font: 600 14.5px/1.3 var(--font-mono); font-style: normal; letter-spacing: .1em; text-transform: uppercase; }
.v-loop__back { position: absolute; left: calc((100% - 90px) / 12); right: calc((100% - 90px) / 12); bottom: 10px; height: 46px; margin: 0; border: 3px solid var(--text-3); border-top: 0; }
.v-loop__back::before { content: ""; position: absolute; left: -11px; top: -6px; width: 0; height: 0; border: 9px solid transparent; border-bottom: 13px solid var(--text-3); border-top: 0; }
.v-loop__back span { position: absolute; left: 50%; bottom: -14px; padding: 0 16px; transform: translateX(-50%); background: var(--ink-1); font: 600 17px/1.5 var(--font-mono); letter-spacing: .2em; text-transform: uppercase; color: var(--text-2); }
[data-theme="paper"] .v-loop__back span { background: var(--paper); }

/* 06 score */
.v-eq { width: 1560px; max-width: 100%; margin: -12px auto 0; }
.v-eq svg { display: block; width: 100%; height: auto; }
.v-inputs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin-top: auto; }
.v-in { padding: 18px 22px 20px; border-top: 5px solid var(--c, var(--text)); background: var(--sl-card); }
.v-in i { display: block; margin-bottom: 12px; font: 700 17px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--c, var(--text)); }
.v-in p { margin: 0; font: 400 22px/1.38 var(--font-sans); color: var(--text-2); }
.v-in--amber { --c: var(--d-amber); } .v-in--raid { --c: var(--accent); } .v-in--mint { --c: var(--d-mint); }
.v-in--verdict { --c: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }

/* 07 playbook: a rectangular loop, 1 → 4 on top, 5 ← 8 below */
.v-play { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 54px 62px; margin: 0; padding: 0 0 0 58px; list-style: none; }
.v-play li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto 1fr; align-content: start; gap: 10px 16px; padding: 18px 22px 18px 20px; border: 2px solid var(--hair-2); background: var(--sl-card); }
.v-play li > span { grid-row: span 2; font: 900 66px/.8 var(--font-display); color: var(--accent); }
.v-play b { align-self: center; font: 800 33px/1 var(--font-display); text-transform: uppercase; }
.v-play p { margin: 0; font: 400 20px/1.36 var(--font-sans); color: var(--text-2); }
.v-play em { grid-column: 1 / -1; padding: 8px 12px; border: 2px dashed var(--text-3); font: 600 14px/1.2 var(--font-mono); font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--text-2); }
.v-play .is-fight { border-color: var(--accent); }
.v-play .is-fight em { border-color: var(--d-loss); color: var(--d-loss); }
.v-play .is-loop em { border-color: var(--accent); color: var(--accent); }
.v-play li:nth-child(5) { grid-area: 2 / 4; } .v-play li:nth-child(6) { grid-area: 2 / 3; } .v-play li:nth-child(7) { grid-area: 2 / 2; } .v-play li:nth-child(8) { grid-area: 2 / 1; }
.v-play li::after { content: ""; position: absolute; background: var(--text-3); }
.v-play li:nth-child(-n+3)::after { right: -52px; top: calc(50% - 8px); width: 40px; height: 16px; clip-path: polygon(0 6px, 28px 6px, 28px 0, 40px 8px, 28px 16px, 28px 10px, 0 10px); }
.v-play li:nth-child(n+5):nth-child(-n+7)::after { left: -52px; top: calc(50% - 8px); width: 40px; height: 16px; clip-path: polygon(40px 6px, 12px 6px, 12px 0, 0 8px, 12px 16px, 12px 10px, 40px 10px); }
.v-play li:nth-child(4)::after { left: calc(50% - 8px); bottom: -48px; width: 16px; height: 40px; clip-path: polygon(6px 0, 10px 0, 10px 28px, 16px 28px, 8px 40px, 0 28px, 6px 28px); }
.v-play li:nth-child(8)::after { left: -46px; top: calc(-50% - 27px); width: 34px; height: calc(100% + 54px); background: none; border: 3px solid var(--accent); border-right: 0; clip-path: none; }
.v-play li:nth-child(8)::before { content: ""; position: absolute; left: -15px; top: calc(-50% - 35px); border: 8px solid transparent; border-left: 12px solid var(--accent); border-right: 0; }
.v-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 34px; margin-top: auto; padding-top: 16px; border-top: 2px solid var(--text); }
.v-paths p { margin: 0; font: 400 20px/1.35 var(--font-sans); color: var(--text-2); }
.v-paths b { display: block; margin-bottom: 6px; font: 800 28px/1 var(--font-display); text-transform: uppercase; color: var(--text); }

/* 08 charter */
.v-charter { display: grid; flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.v-charter li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 14px 16px; padding: 20px 22px 22px; border-top: 5px solid var(--accent); background: var(--sl-card); }
.v-charter li > span { font: 900 72px/.8 var(--font-display); color: var(--accent); }
.v-charter b { align-self: center; font: 800 32px/1.02 var(--font-display); text-transform: uppercase; }
.v-charter p { grid-column: 1 / -1; margin: 0; font: 400 21.5px/1.4 var(--font-sans); color: var(--text-2); }
.v-charter .is-target { border-top-color: var(--d-amber); }
.v-charter .is-target > span { color: var(--d-amber); }
.v-ts { font: 700 .82em/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--d-amber); }
.v-charter .is-note { align-content: end; border-top: 2px dashed var(--hair-2); background: none; }
.v-charter .is-note b { grid-column: 1 / -1; font-size: 30px; color: var(--text-2); }

/* 09 token flow */
.v-flow { display: grid; grid-template-columns: minmax(0, 1.12fr) 46px minmax(0, 1fr) 46px minmax(0, 1fr) 46px minmax(0, .82fr) 46px minmax(0, 1.08fr); gap: 0 10px; align-items: center; }
.v-flow__col { display: grid; gap: 18px; }
.v-box { display: grid; align-content: start; gap: 9px; padding: 18px 20px 20px; border: 2px solid var(--hair-2); background: var(--sl-card); }
.v-box i { font: 600 14.5px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.v-box b { font: 800 38px/1 var(--font-display); text-transform: uppercase; }
.v-box p { margin: 0; font: 400 21px/1.38 var(--font-sans); color: var(--text-2); }
.v-box.is-target { border-style: dashed; border-color: var(--d-amber); } .v-box.is-target i { color: var(--d-amber); }
.v-box.is-sim { border-style: dashed; border-color: var(--d-cold); } .v-box.is-sim i { color: var(--d-cold); }
.v-box.is-burn { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); } .v-box.is-burn i { color: var(--accent); }
.v-flow__arr { height: 16px; background: var(--text-3); clip-path: polygon(0 6px, 32px 6px, 32px 0, 46px 8px, 32px 16px, 32px 10px, 0 10px); }
.v-strike { max-width: none; margin: auto 0 0; padding: 16px 22px; border: 2px solid var(--d-loss); font: 400 21px/1.4 var(--font-sans); color: var(--text-2); }
.v-strike b { font-weight: 600; color: var(--d-loss); }

/* 10 supply */
.v-supply { display: grid; flex: 1; grid-template-columns: 600px minmax(0, 1fr); gap: 60px; }
.v-gauge__n { display: flex; align-items: baseline; gap: 20px; margin: 0; }
.v-gauge__n b { font: 900 176px/.78 var(--font-display); color: var(--accent); }
.v-gauge__n span { font: 600 25px/1.1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.v-gauge__cells { display: grid; grid-template-columns: repeat(20, minmax(0, 1fr)); gap: 5px; margin: 24px 0 0; padding: 0; list-style: none; }
.v-gauge__cells li { height: 48px; border: 2px solid var(--hair-2); }
.v-gauge__cells li.is-est { border-color: var(--accent); background: repeating-linear-gradient(-45deg, var(--accent) 0 4px, transparent 4px 9px); }
.v-gauge__cells li.is-need { border-color: var(--text); box-shadow: inset 0 0 0 3px var(--text); }
.v-gauge__cap { max-width: none; margin: 14px 0 0; font: 400 17px/1.45 var(--font-mono); color: var(--text-3); }
.v-gauge__plan { display: grid; gap: 10px; margin: 26px 0 0; padding: 18px 0 0; border-top: 2px solid var(--text); list-style: none; counter-reset: p; }
.v-gauge__plan li { display: grid; grid-template-columns: 46px minmax(0, 1fr); font: 500 23px/1.3 var(--font-sans); counter-increment: p; }
.v-gauge__plan li::before { content: counter(p, decimal-leading-zero); font: 600 18px/1.6 var(--font-mono); color: var(--accent); }
.v-struct { display: grid; align-content: start; border-top: 3px solid var(--text); }
.v-struct > div { display: grid; grid-template-columns: 1.15fr 1.45fr .8fr; gap: 26px; padding: 22px 0; border-bottom: 1px solid var(--hair-2); font: 400 23px/1.38 var(--font-sans); color: var(--text-2); }
.v-struct > .v-struct__head { padding: 14px 0 12px; border-bottom: 2px solid var(--text); font: 500 15px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-3); }
.v-struct [role="rowheader"] { font: 800 30px/1.05 var(--font-display); text-transform: uppercase; color: var(--text); }
.v-struct .is-none, .v-struct .is-yes { font: 600 18px/1.35 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--d-loss); }
.v-struct .is-yes { color: var(--d-mint); }
.v-struct .is-other { background: color-mix(in srgb, var(--text) 4%, transparent); }

/* 11 acts */
.v-acts { display: grid; flex: 1; grid-template-rows: auto minmax(0, 1fr) auto; gap: 14px; }
.v-acts__weeks { display: grid; grid-template-columns: repeat(13, minmax(0, 1fr)); margin: 0; padding: 0 0 10px; border-bottom: 2px solid var(--text); list-style: none; font: 500 16px/1 var(--font-mono); letter-spacing: .1em; color: var(--text-3); }
.v-acts__weeks li { padding-left: 8px; border-left: 1px solid var(--hair-2); }
.v-acts__track { position: relative; display: grid; grid-template-columns: repeat(13, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 14px 0; margin: 0; padding: 0; list-style: none; }
.v-acts__track::before { content: ""; position: absolute; left: 0; top: -16px; bottom: 0; width: 4px; background: var(--accent); }
.v-act { display: grid; grid-column: var(--s) / var(--e); grid-row: var(--l); align-content: start; gap: 8px; margin: 0 6px; padding: 14px 18px 16px; border: 2px solid var(--hair-2); border-top: 5px solid var(--text-3); background: var(--sl-card); }
.v-act i { font: 600 15px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); }
.v-act b { font: 800 42px/1 var(--font-display); text-transform: uppercase; }
.v-act p { margin: 0; font: 400 21px/1.36 var(--font-sans); color: var(--text-2); }
.v-act em { margin-top: 2px; font: 500 16px/1.38 var(--font-mono); font-style: normal; color: var(--text-3); }
.v-act.is-now { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.v-act.is-now i { color: var(--accent); }
.v-act.is-tide { border-style: dashed; border-color: var(--d-amber); } .v-act.is-tide i { color: var(--d-amber); }
.v-acts__branch { max-width: none; margin: 0; font: 400 18px/1.4 var(--font-mono); color: var(--text-3); }

/* 12 gates */
.v-gates { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.v-gates li { display: grid; align-content: start; gap: 14px; padding: 20px 24px 24px; border: 2px solid var(--hair-2); border-top: 5px solid var(--d-amber); background: var(--sl-card); }
.v-gates li.is-stop { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.v-gates i { justify-self: start; padding: 8px 10px; border: 2px solid currentColor; font: 700 15px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--d-amber); }
.v-gates i.is-stop { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.v-gates b { font: 800 48px/1 var(--font-display); text-transform: uppercase; }
.v-gates p { margin: 0; font: 400 22px/1.4 var(--font-sans); color: var(--text-2); }
.v-risks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: auto; padding-top: 16px; border-top: 2px solid var(--text); }
.v-risks p { display: grid; align-content: start; gap: 6px; margin: 0; font: 400 18.5px/1.35 var(--font-sans); color: var(--text-2); }
.v-risks b { font: 800 26px/1 var(--font-display); text-transform: uppercase; color: var(--text); }
.v-risks i { font: 600 14px/1 var(--font-mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }

/* 13 disclosures */
.v-disc { display: grid; flex: 1; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 56px; }
.v-disc__sentence { max-width: none; margin: 0 0 30px; padding: 24px 28px; border-left: 6px solid var(--d-amber); background: var(--sl-card); font: 600 40px/1.26 var(--font-sans); color: var(--text); }
.v-disc__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.v-disc__list li { position: relative; padding-left: 30px; font: 400 24px/1.4 var(--font-sans); color: var(--text-2); }
.v-disc__list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; background: var(--accent); }
.v-disc__list b { font-weight: 600; color: var(--text); }
.v-disc__not { align-self: start; padding: 24px 28px 28px; border: 2px solid var(--hair-2); }
.v-disc__k { margin: 0 0 18px; font: 600 18px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.v-disc__not ul { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.v-disc__not li { position: relative; padding-left: 42px; font: 800 34px/1.05 var(--font-display); text-transform: uppercase; }
.v-disc__not li::before, .v-disc__not li::after { content: ""; position: absolute; left: -2px; top: 15px; width: 28px; height: 4px; background: var(--d-loss); transform: rotate(45deg); }
.v-disc__not li::after { transform: rotate(-45deg); }
.v-disc__not li:last-child { font-size: 27px; }

/* viewer chrome */
.deck-bar { position: relative; z-index: 5; display: flex; flex: none; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px var(--gutter) 12px; border-top: 1px solid var(--hair); background: var(--ink-1); transition: opacity var(--t-med) var(--ease), transform var(--t-med) var(--ease); }
[data-theme="paper"] .deck-bar { background: var(--paper); }
.deck-bar__l, .deck-bar__r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.deck-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 12px; border: 1px solid var(--hair-2); background: transparent; color: var(--text-2); font: 500 var(--fs-xs)/1 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease); }
.deck-btn:hover { border-color: var(--text-3); color: var(--text); }
.deck-btn[aria-pressed="true"] { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.deck-btn[aria-pressed="true"] .kbd { border-color: currentColor; background: transparent; color: inherit; }
.deck-btn:disabled { opacity: .38; cursor: default; }
.deck-btn--ico { justify-content: center; width: 44px; padding: 0; }
.deck-btn--ico svg { width: 18px; height: 18px; }
.deck-count { min-width: 76px; text-align: center; font: 600 var(--fs-sm)/1 var(--font-mono); letter-spacing: .06em; color: var(--text); }
.deck-bar__title { max-width: 40ch; margin-left: 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 500 var(--fs-xs)/1.2 var(--font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.deck-progress { position: absolute; left: 0; right: 0; top: -1px; height: 3px; background: var(--hair); }
.deck-progress i { display: block; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: 0 50%; transition: transform var(--t-med) var(--ease); }
.deck-notes { flex: none; max-height: 32vh; overflow: auto; padding: 14px var(--gutter) 16px; border-top: 1px solid var(--hair-2); background: var(--ink-2); }
[data-theme="paper"] .deck-notes { background: var(--paper-2); }
.deck-notes__k { display: flex; justify-content: space-between; gap: 12px; max-width: none; margin: 0 0 8px; font: 600 var(--fs-2xs)/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--accent); }
.deck-notes__t p { max-width: 112ch; margin: 0 0 .55em; font: 400 var(--fs-md)/1.55 var(--font-sans); color: var(--text); }
.deck-notes__next { max-width: none; margin: 6px 0 0; font: 500 var(--fs-xs)/1.3 var(--font-mono); letter-spacing: .06em; color: var(--text-3); }
.deck-rotate { display: none; }
.deck-grid { position: absolute; inset: 0; z-index: 30; overflow: auto; padding: 20px var(--gutter) 32px; background: var(--ink-0); }
[data-theme="paper"] .deck-grid { background: var(--surface-2); }
.deck-grid__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.deck-grid__head p { margin: 0; font: 600 var(--fs-xs)/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-2); }
.deck-grid__head p .num { color: var(--accent); }
.deck-grid__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 22px 18px; margin: 0; padding: 0; list-style: none; }
.deck-thumb { display: grid; gap: 8px; width: 100%; padding: 0; border: 0; background: none; color: var(--text-2); text-align: left; cursor: pointer; }
.deck-thumb__frame { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; outline: 1px solid var(--hair-2); }
.deck-thumb:hover .deck-thumb__frame, .deck-thumb.is-cur .deck-thumb__frame { outline: 2px solid var(--accent); }
.deck-thumb:focus-visible { outline: none; }
.deck-thumb:focus-visible .deck-thumb__frame { outline: 3px solid var(--accent); outline-offset: 3px; }
.slide.is-thumb { inset: auto; left: 0; top: 0; width: 1920px; height: 1080px; transform: scale(var(--ts, .15)); transform-origin: 0 0; transition: none; }
.deck-thumb__cap { font: 500 var(--fs-xs)/1.3 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.deck-thumb.is-cur .deck-thumb__cap { color: var(--accent); }
.deck.is-full { background: var(--ink-0); }
.deck.is-full .deck-bar { position: absolute; left: 0; right: 0; bottom: 0; }
.deck.is-full.is-idle { cursor: none; }
.deck.is-full.is-idle .deck-bar { opacity: 0; transform: translateY(100%); pointer-events: none; }
.deck.is-present { position: fixed; inset: 0; z-index: 400; }
@media (max-width: 900px) {
  .deck-bar__title, .deck-btn .kbd { display: none; }
  .deck-btn--hide-sm { display: none; }
}
@media (max-width: 700px) and (orientation: portrait) {
  .deck-rotate { display: block; flex: none; margin: 0; padding: 0 var(--gutter) 10px; font: 500 var(--fs-xs)/1.3 var(--font-mono); letter-spacing: .08em; text-align: center; color: var(--text-3); background: var(--ink-1); }
  [data-theme="paper"] .deck-rotate { background: var(--paper); }
  .deck-bar { gap: 8px; padding-inline: 12px; }
  .deck-btn { padding: 0 10px; }
}
@media (max-height: 480px) and (orientation: landscape) {
  .deck-page > rd-nav { display: none; } /* landscape phones: the slide needs the height; every slide carries its own disclosures */
  .deck-bar { padding-block: 6px 8px; }
  .deck-btn { min-height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .slide, .slide.is-active { transform: none; transition: none; }
  .v-radar .sweep, .v-radar .pulse { animation: none; }
  .v-radar .pulse { display: none; }
}

/* print: one slide per 1920×1080 page (?print=1, or the browser's print via beforeprint) */
html.is-print .deck-page { display: block; height: auto; overflow: visible; }
html.is-print .deck-page > rd-nav, html.is-print .deck-bar, html.is-print .deck-notes, html.is-print .deck-grid, html.is-print .deck-rotate, html.is-print .skip-link, html.is-print [data-live] { display: none !important; }
html.is-print .deck, html.is-print .deck-viewport { display: block; position: static; height: auto; overflow: visible; }
html.is-print .deck-stage { position: static; width: 1920px; height: auto; transform: none !important; box-shadow: none; }
html.is-print .slide { position: relative; inset: auto; width: 1920px; height: 1080px; opacity: 1; visibility: visible; transform: none; transition: none; break-after: page; break-inside: avoid; }
html.is-print .slide:last-child { break-after: auto; }
html.is-print .slide *, html.is-print .slide *::before, html.is-print .slide *::after { animation: none !important; transition: none !important; }
@media print {
  .deck-html, .deck-html body, .deck-html .slide { page: deck; }
  @page deck { size: 1920px 1080px; margin: 0; }
  html.deck-html, .deck-html body { background: var(--ink-0) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html.deck-html[data-theme="paper"], [data-theme="paper"] body.deck-page { background: var(--paper) !important; }
  .v-radar .pulse { display: none; }
}
