/* playingheaven-ui tokens (registry copy; edit in the registry) */
:root {
  --paper-main: #eff2f7;
  --paper-raised: #f6f8fb;
  --paper-deep: #e2e8f1;
  --ink-main: #2e3134;
  --ink-secondary: #5a5e62;
  --ink-muted: #62666b;
  --mineral-main: #3f5e8c;
  --mineral-text: #33507b;
  --mineral-soft: #7d95b8;
  --mineral-pale: #c9d4e5;
  --mineral-wash: #e6ebf3;
  --rule: #c8d2e0;
  --rule-strong: #a5b5cd;
  --focus: #33507b;
  color-scheme: light;

  --background: var(--paper-main);
  --foreground: var(--ink-main);
  --card: var(--paper-raised);
  --card-foreground: var(--ink-main);
  --popover: var(--paper-raised);
  --popover-foreground: var(--ink-main);
  --primary: var(--ink-main);
  --primary-foreground: var(--paper-main);
  --secondary: var(--paper-deep);
  --secondary-foreground: var(--ink-main);
  --muted: var(--paper-deep);
  --muted-foreground: var(--ink-muted);
  --accent: var(--mineral-wash);
  --accent-foreground: var(--ink-main);
  --destructive: var(--ink-main);
  --destructive-foreground: var(--paper-main);
  --border: var(--rule);
  --input: var(--rule-strong);
  --ring: var(--focus);
  --radius: 2px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper-main: #1e2732;
    --paper-raised: #25303d;
    --paper-deep: #2d3949;
    --ink-main: #e3e0d9;
    --ink-secondary: #c4c1ba;
    --ink-muted: #aca9a2;
    --mineral-main: #8aa3c2;
    --mineral-text: #9ab1ce;
    --mineral-soft: #5e7396;
    --mineral-pale: #33425a;
    --mineral-wash: #282f3b;
    --rule: #3c4959;
    --rule-strong: #4e5f74;
    --focus: #9ab1ce;
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --paper-main: #1e2732;
  --paper-raised: #25303d;
  --paper-deep: #2d3949;
  --ink-main: #e3e0d9;
  --ink-secondary: #c4c1ba;
  --ink-muted: #aca9a2;
  --mineral-main: #8aa3c2;
  --mineral-text: #9ab1ce;
  --mineral-soft: #5e7396;
  --mineral-pale: #33425a;
  --mineral-wash: #282f3b;
  --rule: #3c4959;
  --rule-strong: #4e5f74;
  --focus: #9ab1ce;
  color-scheme: dark;
}

/* playingheaven-ui seps (registry copy; edit in the registry) */
.seps {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: calc(1.4em + 1px);
  overflow: hidden;
  padding: 4px;
  margin: -4px;
}
.seps > * + * {
  padding-left: calc(0.7em + 1px);
  margin-left: calc(-0.7em - 1px);
  background: linear-gradient(var(--rule-strong), var(--rule-strong)) 0 55% / 1px 0.95em no-repeat;
}

/* playingheaven-ui portrait (registry copy; edit in the registry) */
.ph-portrait,
.ph-person {
  --ph-portrait-size: 6rem;
}
.ph-portrait[data-size="xs"],
.ph-person[data-size="xs"] {
  --ph-portrait-size: 2rem;
}
.ph-portrait[data-size="sm"],
.ph-person[data-size="sm"] {
  --ph-portrait-size: 3rem;
}
.ph-portrait[data-size="md"],
.ph-person[data-size="md"] {
  --ph-portrait-size: 4.5rem;
}
.ph-portrait[data-size="lg"],
.ph-person[data-size="lg"] {
  --ph-portrait-size: 6rem;
}
.ph-portrait[data-size="xl"],
.ph-person[data-size="xl"] {
  --ph-portrait-size: 12rem;
}

.ph-portrait {
  display: block;
  flex: none;
  box-sizing: border-box;
  inline-size: var(--ph-portrait-size);
  block-size: var(--ph-portrait-size);
  border: 1px solid var(--rule);
  background: var(--paper-raised);
  overflow: hidden;
}
.ph-portrait > img,
.ph-portrait > svg {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}
.ph-portrait-fallback {
  display: grid;
  place-items: center;
  inline-size: 100%;
  block-size: 100%;
  font-size: calc(var(--ph-portrait-size) * 0.32);
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.ph-person {
  display: grid;
  grid-template-columns: var(--ph-portrait-size) minmax(0, 1fr);
  column-gap: 1rem;
  align-items: start;
}
.ph-person-name {
  margin: 0;
  line-height: 1.2;
}
.ph-person-title {
  margin: 0.3rem 0 0;
  line-height: 1.45;
  color: var(--ink-secondary);
}

/* Playing Heaven Talks: the deck.
   A presentation dialect of playingheaven.ai: the same paper, ink, lapis, rules, and type, given more room.
   Three modes share one markup. Present: a 1600 × 900 field scaled to the screen, one slide at a time.
   Read: the slides as a page that reflows. Print: every slide at its final state, one per 1600 × 900 page. */

/* ---------- tokens ---------- */
/* The palette (paper, ink, lapis, rules, focus, color-scheme, light and dark) is the playingheaven-ui registry's
   `tokens` item: build_talks.py writes src/styles/playingheaven-ui/tokens.css ahead of this file, so the deck's
   colours are Pivot's and the homepage's by construction, never a copy. Only the deck's type stacks live here; the one
   literal colour below is the paper plate under the crests in dark mode, as the homepage draws it. */
:root{--serif:"Source Serif 4","TW-Kai","TW-Kai Ext-B",Georgia,serif;--sans:"Source Sans 3","TW-Kai","TW-Kai Ext-B",system-ui,sans-serif;
 --mono:"IBM Plex Mono","TW-Kai","TW-Kai Ext-B",ui-monospace,Menlo,monospace;
 --zh:"Source Serif 4","TW-Kai","TW-Kai Ext-B",serif;--zh-ui:"Source Sans 3","TW-Kai","TW-Kai Ext-B",sans-serif}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--paper-main);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper-main);color:var(--ink-main);font-family:var(--serif);font-kerning:normal;-webkit-font-smoothing:antialiased;
 font-variant-numeric:lining-nums proportional-nums}
a{color:var(--ink-main);text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.16em;text-decoration-color:var(--mineral-soft)}
a:hover{text-decoration-color:var(--mineral-main)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
[lang|="zh"],.zh{font-family:var(--zh)}
.skip{position:absolute;left:-999px;top:0;background:var(--paper-raised);padding:.5rem 1rem;z-index:90;font-family:var(--sans)}.skip:focus{left:1rem;top:1rem}

/* ---------- SVG vocabulary (talk_figures.py) ---------- */
.fig{display:block;width:100%;height:auto;overflow:visible}
.fig text{font-kerning:normal}
.s-ink{stroke:var(--ink-main)}.s-mut{stroke:var(--ink-muted)}.s-lap{stroke:var(--mineral-main)}.s-rule{stroke:var(--rule-strong)}
.f-ink{fill:var(--ink-main)}.f-mut{fill:var(--ink-muted)}.f-lap{fill:var(--mineral-main)}.f-raised{fill:var(--paper-raised)}
.dash{stroke-dasharray:5 4}
.t-sans{font-family:var(--sans)}.t-serif{font-family:var(--serif)}.t-mono{font-family:var(--mono)}.t-zh{font-family:var(--zh)}.t-zh-ui{font-family:var(--zh-ui)}
.t-it{font-family:var(--serif);font-style:italic}
.t-ink{fill:var(--ink-main)}.t-mut{fill:var(--ink-muted)}.t-sec{fill:var(--ink-secondary)}.t-lap{fill:var(--mineral-text)}
.t-strong{font-weight:600}
.t-lab{font-family:var(--sans);font-size:13.5px;letter-spacing:.09em;fill:var(--ink-muted);font-weight:500}
.t-lab.t-lap{fill:var(--mineral-text)}
.t-sm{font-size:17px}.t-xs{font-size:15px}.t-xxs{font-size:13px}
.t-num{font-size:46px;font-weight:500;font-variant-numeric:lining-nums tabular-nums}
.t-item{font-size:21px;font-weight:500}
.fo-q{margin:0;font-family:var(--sans);font-size:15.5px;line-height:1.35;color:var(--ink-secondary)}
.fig [data-from],.fig [data-until]{transition:opacity .5s cubic-bezier(.4,0,.2,1)}
.fig .is-off{opacity:0}
.fig .term{cursor:pointer;outline:none}
.fig .term .hit{fill:transparent}
.fig .term:hover .hit,.fig .term:focus-visible .hit{fill:var(--mineral-wash)}
.fig .term.sel .hit{fill:var(--mineral-wash);stroke:var(--mineral-soft);stroke-width:1}
.fig .term:focus-visible .hit{stroke:var(--focus);stroke-width:2}

/* ---------- the deck ---------- */
.deck{position:relative}
.slide{position:relative;background:var(--paper-main);color:var(--ink-main)}
.slide>.qr{position:absolute;top:8px;right:80px;z-index:5;display:block;box-sizing:content-box;width:120px;height:120px;padding:0;background:transparent;color:var(--ink-main);line-height:0}
.slide>.qr svg{display:block;width:100%;height:100%}
.deck[data-mode=read] .slide>.qr{display:none}
.slide .num{font-family:var(--mono);font-size:15px;color:var(--ink-muted);letter-spacing:.04em}
/* headings hold Source Serif 4's text optical size (opsz 28) rather than the narrow display cut the browser picks at
   heading sizes, and no negative tracking: the author found the display cut horizontally compressed (13 Oct 2026); the
   site's headings take the same (prod_shell.py) */
.slide h2{font-family:var(--serif);font-weight:500;letter-spacing:0;font-variation-settings:"opsz" 28;line-height:1.12;margin:0;text-wrap:balance}
.slide .lede{font-family:var(--serif);color:var(--ink-main);margin:0;text-wrap:pretty}
.slide .q{font-family:var(--serif);font-weight:600;margin:0;text-wrap:pretty}
.slide .kicker{font-family:var(--sans);color:var(--ink-secondary);letter-spacing:.01em;margin:0}
.label{font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted)}
.label.lap{color:var(--mineral-text)}
.tag{display:inline-block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.15em .5em;border:1px solid currentColor;border-radius:2px;line-height:1.3}
.tag.model{color:var(--mineral-text)}.tag.dev{color:var(--ink-secondary);border-style:dashed}.tag.schem{color:var(--ink-muted)}
.foot{font-family:var(--sans);color:var(--ink-muted)}
.foot p{margin:0}
.foot a{color:var(--ink-secondary)}
.out{font-family:var(--sans);font-size:15px;font-weight:500;color:var(--mineral-text);text-decoration:none;border:1px solid var(--mineral-soft);border-radius:2px;padding:.3em .65em;white-space:nowrap;display:inline-flex;align-items:center;gap:.4em;background:var(--paper-raised)}
.out:hover{border-color:var(--mineral-main);background:var(--mineral-wash)}
.out svg{width:14px;height:14px}
.out .url{display:none}
.shot{position:relative;margin:0}
.shot img{display:block;width:100%;height:auto;border:1px solid var(--rule-strong);background:#fff}
.shot figcaption{font-family:var(--sans);font-size:13px;color:var(--ink-muted);margin-top:6px;line-height:1.35}
.shot .live{position:absolute;right:8px;top:8px}
.prov{font-family:var(--sans);font-size:13px;color:var(--ink-muted);line-height:1.4}
.mono{font-family:var(--mono)}
.panel{background:var(--paper-raised);border:1px solid var(--rule);border-left:2px solid var(--mineral-main);font-family:var(--mono);font-size:14px;line-height:1.5;color:var(--ink-main)}
.panel .bar{display:flex;justify-content:space-between;gap:1em;padding:6px 12px;border-bottom:1px solid var(--rule);color:var(--ink-muted);font-size:12.5px}
.panel .body{padding:10px 14px}
.panel p{margin:0 0 .45em}
.panel b{font-weight:600}
.panel .n{color:var(--ink-muted);margin-right:.3em}
.panel .dir{font-family:var(--sans);font-size:12.5px;letter-spacing:.06em;color:var(--mineral-text);text-transform:uppercase}

/* ---------- present: a 1600 × 900 field, scaled to the window ---------- */
.deck[data-mode=present]{position:fixed;inset:0;overflow:hidden;background:var(--paper-main)}
.deck[data-mode=present] .stage{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--s,1));transform-origin:center}
.deck[data-mode=present] .slide{position:absolute;inset:0;width:1600px;height:900px;overflow:hidden;visibility:hidden;opacity:0;transition:opacity .35s ease,visibility 0s .35s}
.deck[data-mode=present] .slide.on{visibility:visible;opacity:1;transition:opacity .35s ease}
@media (prefers-reduced-motion:reduce){.deck .slide,.fig [data-from],.fig [data-until]{transition:none!important}}
html[data-motion=reduce] .deck .slide,html[data-motion=reduce] .fig [data-from]{transition:none!important}

/* the slide's grid at 1600 × 900: a gutter for the number, a field, a foot */
/* the head and foot rhythm, one for every slide (the author, 13 Oct 2026): the title alone on one line at 44px, 60px from the
   top and 34px over the field; the foot 14px under its rule and 40px from the bottom; no section label */
.deck:not([data-mode=read]) .slide{display:grid;grid-template-columns:72px 1fr;grid-template-rows:auto 1fr auto;padding:60px 80px 40px 24px;column-gap:0}
.deck:not([data-mode=read]) .slide>.num{grid-column:1;grid-row:1;padding-top:13px;text-align:right;padding-right:18px}
.deck:not([data-mode=read]) .slide>.head{grid-column:2;grid-row:1;margin-bottom:34px}
.deck:not([data-mode=read]) .slide>.field{grid-column:2;grid-row:2;position:relative;min-height:0}
.deck:not([data-mode=read]) .slide>.foot{grid-column:2;grid-row:3;display:flex;gap:28px;align-items:flex-end;justify-content:space-between;font-size:13.5px;line-height:1.4;padding-top:14px;border-top:1px solid var(--rule)}
.deck:not([data-mode=read]) .slide>.foot .cite{max-width:1180px}
.s-experiments .foot .cite p{font-family:var(--serif);font-size:17px;color:var(--ink-main)}
.deck:not([data-mode=read]) .slide>.foot .acts{display:flex;gap:10px;flex:none}
.deck:not([data-mode=read]) .slide h2{font-size:44px;white-space:nowrap}
.deck:not([data-mode=read]) .slide .lede{font-size:26px;line-height:1.42}
.deck:not([data-mode=read]) .slide .q{font-size:27px;line-height:1.36}
.deck:not([data-mode=read]) .slide .kicker{font-size:18px}

/* ---------- the section identifier: the research aim a slide takes up ---------- */
.slide .head{display:block}
.slide .sec{font-family:var(--sans);font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;padding-bottom:6px}
.slide .sec b{font-family:var(--mono);font-weight:500;color:var(--mineral-text);letter-spacing:.04em}
.deck:not([data-mode=read]) .slide .head h2{padding-top:6px}
.mq{margin:0;border-left:2px solid var(--mineral-main);padding:6px 0 6px 16px}
.mq p{font-family:var(--serif);margin:0 0 6px;line-height:1.38;text-wrap:pretty}
.mq footer{font-family:var(--sans);font-size:13px;color:var(--ink-muted);line-height:1.35}
.mq footer .tag{margin-right:.5em;vertical-align:1px}

/* ---------- title ---------- */
.s-title{overflow:hidden}
.s-title .bamboo{position:absolute;inset:0;background:url(../img/bamboo-ground-light.svg) right top/cover no-repeat;opacity:.95;pointer-events:none}
:root[data-theme=dark] .s-title .bamboo{background-image:url(../img/bamboo-ground-dark.svg)}
.deck:not([data-mode=read]) .s-title{grid-template-columns:1fr;padding:0}
.deck:not([data-mode=read]) .s-title .tblock{position:absolute;left:150px;top:196px;display:grid;grid-template-columns:150px auto;column-gap:44px;align-items:start}
.s-title .markbox{position:relative;display:block;width:150px;height:150px}
.s-title .a1{width:150px;height:150px;color:var(--ink-main);display:block}
.s-title .replay{position:absolute;left:0;bottom:-34px;width:28px;height:28px;display:grid;place-items:center;font-family:var(--sans);font-size:17px;color:var(--ink-muted);opacity:.45;border-radius:2px}
.s-title .replay:hover,.s-title .replay:focus-visible{opacity:1;background:var(--mineral-wash);color:var(--mineral-text)}
.s-title h1{font-family:var(--serif);font-weight:500;font-size:96px;letter-spacing:0;font-variation-settings:"opsz" 32;line-height:1;margin:6px 0 18px}
.s-title .sub{font-family:var(--serif);font-size:34px;color:var(--ink-secondary);line-height:1.25;margin:0 0 44px;max-width:960px}
/* the team, as the People page lists it: each member as the registry's Person (playingheaven-ui portrait-css), the
   portrait in its frame and the name beside it; a university's members two to a row, HKU's four as two by two; the
   groups parted by hairlines, each captioned at the foot with its crest and name, the captions on one line; the
   presenters marked under their names */
.s-title .team{display:flex;align-items:stretch;margin:0}
.s-title .grp{display:flex;flex-direction:column;padding:0 26px;border-left:1px solid var(--rule)}
.s-title .grp:first-child{padding-left:0;border-left:0}.s-title .grp:last-child{padding-right:0}
.s-title .ppl{list-style:none;margin:0;padding:0 0 24px;display:grid;grid-template-columns:repeat(2,250px);gap:18px 20px;align-content:start}
.s-title .grp:nth-child(n+2) .ppl{grid-template-columns:250px}
.s-title .ph-person,.s-title .ph-portrait{--ph-portrait-size:104px}
.s-title .ph-person{column-gap:14px}
.s-title .ph-person>div{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.s-title .who{font-family:var(--serif);font-size:17px;line-height:1.2;margin-top:2px;text-wrap:balance}.s-title .who .nb{white-space:nowrap}
.s-title .spk{font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mineral-text);margin-top:7px}
.s-title .inst{display:flex;align-items:flex-start;gap:10px;margin:0;padding-top:14px;border-top:1px solid var(--rule);font-family:var(--sans);font-size:13.5px;line-height:1.3;color:var(--ink-secondary);margin-top:auto}
.s-title .inst .crest{height:36px;width:auto;flex:none;display:block;opacity:.92}
.s-title .inst span{max-width:200px;padding-top:1px}
.s-title .tfoot{font-family:var(--sans);border-top:1px solid var(--rule);padding-top:16px}
.deck:not([data-mode=read]) .s-title .tfoot{position:absolute;left:344px;right:80px;bottom:54px}
.s-title .perm{margin:0;display:flex;justify-content:space-between;align-items:center;gap:40px}
.s-title .perm .seps{align-items:center;row-gap:6px}
.s-title .perm .wm{height:26px;width:auto;display:block;opacity:.92}
.s-title .perm .wm-dark{display:none}:root[data-theme=dark] .s-title .perm .wm{display:none}:root[data-theme=dark] .s-title .perm .wm-dark{display:block}
.s-title .perm a{font-size:19px;color:var(--mineral-text);text-decoration-color:var(--mineral-soft)}
/* the mark's entrance: the homepage's transition, as synth_common BASE_CSS draws it (duration, stagger, trace unchanged) */
.a1[data-entrance] .s{transform-box:view-box;transform-origin:37.4px 38px;animation:a1A var(--a1-dur,1.5s) cubic-bezier(.22,.61,.21,1) both}
@keyframes a1A{0%{transform:translate(var(--ix),var(--iy)) rotate(var(--ir));opacity:var(--io)}100%{transform:none;opacity:1}}
.a1[data-entrance] .tr{transform-box:view-box;transform-origin:37.4px 38px;transform:translate(var(--ix),var(--iy)) rotate(var(--ir));opacity:0;animation:a1trace calc(var(--a1-dur,1.5s) + 50ms) linear both}
@keyframes a1trace{0%{opacity:var(--a1-trace,.20)}70%{opacity:calc(var(--a1-trace,.20)*.6)}100%{opacity:0}}
.a1[data-entrance] .s-flank-lower,.a1[data-entrance] .tr-flank-lower{animation-delay:calc(var(--a1-stagger,90ms)*1)}
.a1[data-entrance] .s-flank-upper,.a1[data-entrance] .tr-flank-upper{animation-delay:calc(var(--a1-stagger,90ms)*2)}
.a1[data-entrance] .s-branch,.a1[data-entrance] .tr-branch{animation-delay:calc(var(--a1-stagger,90ms)*3)}
.a1:not([data-entrance]) .tr{display:none}
@media (prefers-reduced-motion:reduce){.a1[data-entrance] .s,.a1[data-entrance] .tr{animation:none}.a1[data-entrance] .tr{display:none}}
html[data-motion=reduce] .a1[data-entrance] .s,html[data-motion=reduce] .a1[data-entrance] .tr{animation:none}
html[data-motion=reduce] .a1[data-entrance] .tr{display:none}

/* ---------- slide 1 · four challenges, an accordion ----------
   One section open at a time; the open section has two states, keyed on the slide's data-step (deck.js sets it):
   k = 2s opens section s on its challenge, k = 2s + 1 reveals our approach while the challenge recedes. Heights
   reallocate by flex-grow and by a 0fr/1fr grid row on each paragraph, so nothing jumps; reduced motion cuts the
   transitions. Each section's glyph sits out of the flow at its right, small and quiet while the section is
   collapsed, full size while it is open; a glyph's second state (the disciplines' connections, the return to the
   passage, the readings judged) is a data-from mark at the section's approach, which deck.js resolves. Print, the
   overview's thumbnails and the editor's all-at-once show the four sections open, two by two, Challenge over Our
   Approach; reading mode stacks them. The teal is slide 2's philology strand (.s-orient --strand-phil). */
.s-aims{--strand-phil:#476F7E}
:root[data-theme=dark] .s-aims{--strand-phil:#7FA6B4}
.s-aims .fig .s-phil{stroke:var(--strand-phil)}.s-aims .fig .f-phil{fill:var(--strand-phil)}.s-aims .fig .t-phil{fill:var(--strand-phil)}
.deck:not([data-mode=read]) .s-aims .field{display:grid;grid-template-rows:1fr}
/* the four sections two by two in even cells: number, heading, the challenge, our approach, the drawing floated at
   the right of the text (the author, 13 and 14 Oct 2026). The challenge and the approach appear one by one, eight
   states: at state 2k the challenge of section k is in focus, at 2k+1 its approach, the challenge receding; the text
   in focus is set larger and its drawing larger, the rest compact. Print and the all-at-once views show everything. */
.s-aims ol.aims{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;align-content:stretch;column-gap:44px;row-gap:0;height:100%;min-height:0}
.s-aims ol.aims li{position:relative;display:grid;grid-template-columns:48px 1fr 170px;column-gap:18px;align-items:start;border-top:1px solid var(--rule);padding:12px 0 8px;min-height:0;overflow:hidden}
.s-aims ol.aims li:nth-child(-n+2){border-top:1.5px solid var(--ink-main)}
.s-aims .n b{font-family:var(--mono);font-weight:500;font-size:28px;color:var(--mineral-text);letter-spacing:.02em;line-height:1;display:block}
.s-aims h3{font-family:var(--serif);font-weight:500;font-size:20px;margin:0 0 6px;line-height:1.15}
.s-aims .txt{min-width:0}
.s-aims .ch,.s-aims .ap{display:block;margin-top:0}
.s-aims .ap{margin-top:8px}
.s-aims .lab{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:var(--ink-muted);margin-bottom:2px}
.s-aims .ap .lab{color:var(--mineral-text)}
.s-aims .txt p{font-family:var(--serif);font-size:11.5px;line-height:1.28;margin:0;max-width:none;text-wrap:pretty;color:var(--ink-secondary)}
.s-aims .txt p b{font-weight:600}
.s-aims .txt p i{font-style:italic}
.s-aims .pic{position:static;float:none;margin:6px 0 0;pointer-events:none;justify-self:end}
.s-aims .pic .fig{width:170px;height:auto;display:block}
/* the deck's states (deck.js, aims): the spotlight, a plate over the field with the section large; the placed
   sections small in their cells beneath, dimmed while a spotlight is up; a section's flight to its cell is a FLIP */
.deck[data-mode=present] .s-aims:not([data-all]) li.hero{position:absolute;left:60px;right:60px;top:0;bottom:0;margin:auto 0;height:max-content;z-index:3;grid-template-columns:84px 1fr 440px;column-gap:34px;padding:30px 40px 30px 36px;will-change:transform,opacity;background:var(--paper-raised);border:1px solid var(--rule);border-top:1.5px solid var(--ink-main);box-shadow:0 12px 40px rgba(46,49,52,.10);overflow:visible;animation:heroIn .5s cubic-bezier(.22,.61,.21,1) .3s both}
@keyframes heroIn{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .n b{font-size:44px;color:var(--mineral-text)}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero h3{font-size:34px;margin-bottom:12px;color:var(--ink-main)}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .lab{font-size:14px;margin-bottom:4px}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .txt p{font-size:19px;line-height:1.42;color:var(--ink-main);max-width:none}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .ap{margin-top:14px}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .pic{margin:0;align-self:center}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .pic .fig{width:440px}
/* in the spotlight the approach is absent until its state; when it is in focus the challenge recedes */
.deck[data-mode=present] .s-aims:not([data-all]) li.hero .ap.is-off{display:none}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero:has(.ap.cur) .ch p{font-size:16px;color:var(--ink-secondary)}
.deck[data-mode=present] .s-aims:not([data-all]) li.hero:has(.ap.cur) .ch .lab{color:var(--ink-muted)}
/* the placed sections: small, both texts, in their cells; dimmed under a spotlight */
.deck[data-mode=present] .s-aims:not([data-all]) li.placed{transition:opacity .45s}
.deck[data-mode=present] .s-aims:not([data-all]) .spot li.placed{opacity:.38}
.deck[data-mode=present] .s-aims:not([data-all]) li.placed .ap.is-off{display:block;opacity:1}
.deck[data-mode=present] .s-aims:not([data-all]) li.placed .txt p{color:var(--ink-main)}
.deck[data-mode=present] .s-aims:not([data-all]) li.placed .n b{color:var(--mineral-text)}
.deck[data-mode=present] .s-aims:not([data-all]) li.placed h3{color:var(--ink-main)}
@media (prefers-reduced-motion:reduce){.s-aims li.hero{animation:none!important}.s-aims li{transition:none!important}}
html[data-motion=reduce] .s-aims li.hero{animation:none!important}
/* print and the all-at-once views: everything, at the reading size, the rows as tall as they need */
html.print .deck[data-mode] .s-aims[data-steps] ol.aims,.deck[data-mode=present] .s-aims[data-all] ol.aims{grid-template-rows:auto auto;align-content:start}
html.print .deck[data-mode] .s-aims[data-steps] ol.aims li,.deck[data-mode=present] .s-aims[data-all] ol.aims li{overflow:visible;grid-template-columns:48px 1fr 200px;column-gap:18px;padding:10px 0 6px}
html.print .deck[data-mode] .s-aims[data-steps] .txt p,.deck[data-mode=present] .s-aims[data-all] .txt p{font-size:12.5px!important;line-height:1.3!important;color:var(--ink-main)!important}
html.print .deck[data-mode] .s-aims[data-steps] .pic .fig,.deck[data-mode=present] .s-aims[data-all] .pic .fig{width:200px!important}
html.print .deck[data-mode] .s-aims[data-steps] .n b,.deck[data-mode=present] .s-aims[data-all] .n b{color:var(--mineral-text)!important}
html.print .deck[data-mode] .s-aims[data-steps] h3,.deck[data-mode=present] .s-aims[data-all] h3{color:var(--ink-main)!important;font-size:19px;margin-bottom:4px}
@media (prefers-reduced-motion:reduce){.s-aims ol.aims li,.s-aims .n b,.s-aims h3,.s-aims .ch,.s-aims .ap,.s-aims .lab,.s-aims .txt p,.s-aims .pic,.s-aims .pic .fig,.s-aims .pic .g-lab{transition:none!important}}
html[data-motion=reduce] .s-aims ol.aims li,html[data-motion=reduce] .s-aims .n b,html[data-motion=reduce] .s-aims h3,html[data-motion=reduce] .s-aims .ch,html[data-motion=reduce] .s-aims .ap,html[data-motion=reduce] .s-aims .lab,html[data-motion=reduce] .s-aims .txt p,html[data-motion=reduce] .s-aims .pic,html[data-motion=reduce] .s-aims .pic .fig,html[data-motion=reduce] .s-aims .pic .g-lab{transition:none!important}

/* ---------- common to the revised slides: the lede, the body, a label line ---------- */
.deck:not([data-mode=read]) .slide .top{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;align-items:start}
.deck:not([data-mode=read]) .slide .top .lede{font-size:24px;line-height:1.36;margin:0;font-weight:500;text-wrap:pretty}
.deck:not([data-mode=read]) .slide .top .body,.deck:not([data-mode=read]) .slide p.body{font-family:var(--serif);font-size:18.5px;line-height:1.4;margin:0;color:var(--ink-secondary);text-wrap:pretty}
.slide .ops ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);column-gap:34px;position:relative}
.slide .ops li{border-top:1.5px solid var(--ink-main);padding-top:8px;position:relative;font-family:var(--sans)}
.slide .ops li+li::before{content:"→";position:absolute;left:-26px;top:6px;color:var(--mineral-main);font-size:18px}
.slide .ops li:last-child{border-top-color:var(--mineral-main)}
.slide .ops .k{display:block;font-weight:600;font-size:16px;color:var(--ink-main);margin-bottom:3px}
.slide .ops .t{display:block;font-size:14px;color:var(--ink-secondary);line-height:1.35}
.slide .ops .note{font-family:var(--sans);font-size:14px;color:var(--ink-muted);margin:8px 0 0;line-height:1.35}

/* ---------- slide 2 · Manchu, source-image led ---------- */
/* ---------- slide 3 · the page, the two paragraphs, one result strip (14 Oct 2026) ---------- */
.deck:not([data-mode=read]) .s-manchu .field{display:grid;grid-template-columns:1010px 1fr;grid-template-rows:1fr auto;column-gap:44px;row-gap:18px;align-items:start}
.deck:not([data-mode=read]) .s-manchu .left{grid-column:1;grid-row:1;min-width:0}
.s-manchu .sketch{margin:0}
.s-manchu .sketch img{display:block;width:1010px;max-width:100%;height:auto;border:1px solid var(--rule)}
.s-manchu .sketch img.dark{display:none}
:root[data-theme=dark] .s-manchu .sketch img.dark{display:block}:root[data-theme=dark] .s-manchu .sketch img.light{display:none}
.deck:not([data-mode=read]) .s-manchu .right{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:13px;min-width:0;padding-top:0}
.deck:not([data-mode=read]) .s-manchu .right .lede{font-size:18px;line-height:1.4;margin:0;font-weight:500}
.deck:not([data-mode=read]) .s-manchu .right .body{font-size:16.5px;line-height:1.4;margin:0;color:var(--ink-secondary)}
.s-manchu .right .mark{display:block;line-height:0;margin-bottom:0}
.s-manchu .right .go{margin:0}
.s-manchu .right .go .out .url{display:none}
/* the result strip: one grid across the field, every group centred on the strip's axis; the model group parted
   from the accuracy group by a hairline the height of the content; the seal at the end */
.s-manchu .result{grid-column:1/span 2;grid-row:2;display:grid;grid-template-columns:auto auto 1fr;column-gap:32px;align-items:center;border-top:1.5px solid var(--ink-main);padding-top:14px}
.s-manchu .result .val{font-family:var(--serif);font-size:80px;line-height:1;color:var(--mineral-text);font-variant-numeric:lining-nums;letter-spacing:-.01em}
.s-manchu .result .what{display:flex;flex-direction:column;gap:4px;justify-content:center}
.s-manchu .result .metric{display:block;font-family:var(--serif);font-size:24px;color:var(--ink-main);line-height:1.2}
.s-manchu .result .material{display:block;font-family:var(--sans);font-size:15px;color:var(--ink-secondary);line-height:1.3}
.s-manchu .result .model{display:flex;flex-direction:column;gap:4px;justify-content:center;border-left:1px solid var(--rule-strong);padding-left:28px;font-family:var(--sans);line-height:1.3;align-self:stretch}
.s-manchu .result .model .name{font-size:18px;font-weight:600;color:var(--ink-main)}
.s-manchu .result .model .note{font-size:15px;color:var(--ink-secondary)}
.s-manchu .result .model .credit{font-size:14px;color:var(--ink-muted);margin-top:2px}
.s-manchu .seal{display:block;width:72px;height:72px}
.s-manchu .seal.dark{display:none}
:root[data-theme=dark] .s-manchu .seal.dark{display:block}:root[data-theme=dark] .s-manchu .seal.light{display:none}
.s-manchu .result.is-off{opacity:0}.s-manchu .result{transition:opacity .5s cubic-bezier(.4,0,.2,1)}

/* ---------- slide 2 · the making and circulation of Neo-Confucian traditions ---------- */
/* strand colours: ink for literary culture, lapis for the Learning of the Way (its lighter shade for the Learning of
   the Mind), the site's teal mineral (tools/tokens.py, the homepage's light tokens) for philology and evidential
   scholarship, its warm rule-strong for the translation projects; the map's polities take the same five values */
/* the polities' colours are the persons' colours (the author, 13 Oct 2026): ink for the Qing and the Chinese figures,
   the warm ink for Chosŏn and the Koreans, teal for Tokugawa Japan and Sorai; Ryūkyū takes the light warm and Đại Việt,
   with no person on the chronology, the lapis (the author flipped Chosŏn and Đại Việt, 13 Oct 2026). A person's strand is where they stand, so colour is free to mean the polity. */
.s-orient{--strand-lit:var(--ink-main);--strand-dao:var(--mineral-main);--strand-xin:var(--mineral-text);--strand-phil:#476F7E;--strand-kz:#3B6270;--accent-warm:#B7A992;--accent-warm-ink:#7f7059;
 --pol-qing:var(--ink-muted);--pol-choson:#7f7059;--pol-tokugawa:#476F7E;--pol-ryukyu:#A3B38A;--pol-ryukyu-ink:#66774C;--pol-daiviet:var(--mineral-main);--strand-jes:#8C5A6B}
:root[data-theme=dark] .s-orient{--strand-phil:#7FA6B4;--strand-kz:#8FB3C0;--accent-warm:#CFC7B9;--accent-warm-ink:#CFC7B9;--pol-tokugawa:#7FA6B4;--pol-ryukyu:#9FB08A;--pol-ryukyu-ink:#B9C7A2;--pol-choson:#B8B1A5;--strand-jes:#C49AAA}
.deck:not([data-mode=read]) .s-orient .field{display:grid;grid-template-rows:auto 1fr auto;row-gap:6px;align-content:start}
.s-orient .intro{font-family:var(--serif);font-size:16.5px;line-height:1.32;column-count:2;column-gap:44px;column-fill:balance;margin:0;color:var(--ink-secondary);text-wrap:pretty;max-width:1424px}
.s-orient .intro i{font-style:italic}
.s-orient .mid{display:grid;grid-template-columns:880px 500px;column-gap:44px;align-items:start}
.s-orient .tlwrap svg{display:block;width:880px;height:auto}
.s-orient .rightcol{display:flex;flex-direction:column;gap:10px}
.s-orient .mapwrap{margin:0}
.s-orient .mapwrap svg{display:block;width:500px;height:auto}
/* the two compilations beneath the map: title row, band, note */
.s-orient .comps{display:flex;flex-direction:column;gap:6px}
.s-orient .comp .ct{margin:0 0 3px;font-family:var(--serif);font-size:14.5px;line-height:1.25;color:var(--ink-main);display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.s-orient .comp .ct b{font-weight:600}.s-orient .comp .ct .ti{font-size:13.5px;color:var(--ink-secondary)}.s-orient .comp .ct i{font-style:italic}
.s-orient .comp svg{display:block;width:500px;height:10px}
.s-orient .comp .cn{margin:3px 0 0;font-family:var(--sans);font-size:12.5px;line-height:1.3;color:var(--ink-muted)}
.s-orient .fig.field .fv{fill:var(--paper-deep);stroke:var(--rule-strong);stroke-width:.6}
.s-orient figcaption{font-family:var(--sans);font-size:13.5px;line-height:1.38;color:var(--ink-secondary);margin-top:8px}
.s-orient .fig.field .fa{fill:var(--ink-muted);fill-opacity:.75}.s-orient .fig.field .fb{fill:var(--mineral-main);fill-opacity:.8}
.s-orient .fig .st-lit{stop-color:var(--strand-lit)}.s-orient .fig .st-dao{stop-color:var(--strand-dao)}.s-orient .fig .st-xin{stop-color:var(--strand-xin)}
.s-orient .fig .st-phil{stop-color:var(--strand-phil)}.s-orient .fig .st-kz{stop-color:var(--strand-kz)}
.s-orient .fig .s-phil{stroke:var(--strand-phil)}.s-orient .fig .f-phil{fill:var(--strand-phil)}.s-orient .fig .t-phil{fill:var(--strand-kz)}
.s-orient .fig.tl .t-dao{fill:var(--mineral-text)}
.s-orient .fig.map .pl-qing{fill:var(--ink-main)}.s-orient .fig.map .pl-daiviet{fill:var(--mineral-text)}.s-orient .fig.map .pl-tokugawa{fill:var(--strand-kz)}
.s-orient .fig.map .pl-choson{fill:var(--accent-warm-ink)}.s-orient .fig.map .pl-ryukyu{fill:var(--pol-ryukyu-ink)}
.s-orient .fig.map .pl-jesuit{fill:var(--strand-jes)}.s-orient .fig.map .route{stroke:var(--strand-jes)}
.s-orient .fig .st-jes{stop-color:var(--strand-jes)}.s-orient .fig .s-jes{stroke:var(--strand-jes)}.s-orient .fig .f-jes{fill:var(--strand-jes)}.s-orient .fig .t-jes{fill:var(--strand-jes)}
.s-orient .fig.map .jmark{fill:var(--strand-jes);stroke:none}
.s-orient .fig .f-warm{fill:var(--accent-warm-ink)}.s-orient .fig .t-warm{fill:var(--accent-warm-ink)}
.s-orient .fig.map .sea{fill:var(--mineral-wash)}
.s-orient .fig.map .cap{fill:var(--ink-main);stroke:var(--paper-main);stroke-width:1}
.s-orient .fig .tmark{fill:var(--accent-warm);stroke:var(--ink-main);stroke-width:1.4}.s-orient .fig .s-warm{stroke:var(--accent-warm-ink)}
.s-orient .fig .tmark-dot{fill:var(--accent-warm);stroke:var(--ink-main);stroke-width:1}
.s-orient .fig.tl text:not(.bl){paint-order:stroke;stroke:var(--paper-main);stroke-width:4px;stroke-linejoin:round}
.s-orient .fig.map text{paint-order:stroke;stroke:var(--paper-main);stroke-width:3px;stroke-linejoin:round}.s-orient .fig.map text .t-zh{font-weight:500}
.s-orient .fig .land{fill:var(--paper-raised);stroke:none}.s-orient .fig .coast{stroke:var(--ink-muted)}
.s-orient .fig .pol{stroke:none}.s-orient .fig .pol-qing{fill:var(--pol-qing);fill-opacity:.3}.s-orient .fig .pol-choson{fill:var(--pol-choson);fill-opacity:.42}
.s-orient .fig .pol-tokugawa{fill:var(--pol-tokugawa);fill-opacity:.42}.s-orient .fig .pol-ryukyu{fill:var(--pol-ryukyu);fill-opacity:.95}.s-orient .fig .pol-daiviet{fill:var(--pol-daiviet);fill-opacity:.5}
.s-orient [data-from]{transition:opacity .5s cubic-bezier(.4,0,.2,1)}
.s-orient [data-from].is-off{opacity:0}
@media (prefers-reduced-motion:reduce){.s-orient [data-from]{transition:none!important}}
html[data-motion=reduce] .s-orient [data-from]{transition:none!important}
/* reading mode */
.deck[data-mode=read] .s-orient .mid{display:block}
.deck[data-mode=read] .s-orient .tlwrap svg,.deck[data-mode=read] .s-orient .mapwrap svg,.deck[data-mode=read] .s-orient .comp svg{width:100%;max-width:900px}
.deck[data-mode=read] .s-orient .rightcol{margin-top:1.2rem;max-width:560px}
.deck[data-mode=read] .s-orient .intro{font-size:1.1rem;line-height:1.55;margin-bottom:1rem}
.deck[data-mode=read] 
/* ---------- slide 3 · the two editions, term by term; one character cell for every Chinese term ---------- */
.deck:not([data-mode=read]) .s-census .field{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto;row-gap:14px;align-content:start}
.deck:not([data-mode=read]) .s-census .top{display:block}
.deck:not([data-mode=read]) .s-census .top .body{font-size:18px;line-height:1.42;color:var(--ink-main);max-width:none;margin:0;text-wrap:pretty;column-count:2;column-gap:44px;column-fill:balance}
.s-census .srcblock{border-top:1px solid var(--rule);padding-top:14px;margin-top:10px}
.s-census .srch{margin:0 0 6px;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ink-main)}.s-census .srch i{font-style:italic}
.s-census .src{display:grid;grid-template-columns:auto 1fr;column-gap:24px;align-items:baseline;margin:0;font-family:var(--sans);font-size:15px;color:var(--ink-secondary)}
.s-census .src .zh{font-family:var(--zh);font-size:27px;color:var(--ink-main)}
.s-census .src .en{font-family:var(--serif);font-size:17px}
.s-census .cmp{display:grid;grid-template-columns:150px 1fr;column-gap:20px;align-items:stretch;align-self:center}
.s-census .cmp .rows{display:grid;grid-template-rows:1fr auto 1fr;align-items:center;font-family:var(--sans);font-size:14.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.s-census .cmp .rows span:nth-child(2){text-transform:none;letter-spacing:0;font-size:14.5px;padding:30px 0;color:var(--ink-secondary)}
/* the cell: --em is the glyph size, --pad the clearance around the em box, --stem the connector's height; the cell's
   outer size is computed from these, never from the font's advance or line metrics, so a fallback CJK font changes
   nothing but the glyph; the connectors meet the cell at the same edge in every column */
.s-census ol.terms{--em:68px;--pad:22px;--stem:92px;list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:10px}
.s-census ol.terms li{display:grid;grid-template-rows:auto var(--stem) calc(var(--em) + 2*var(--pad)) var(--stem) auto;padding:12px 0;justify-items:center;align-items:center;min-width:92px;text-align:center}
.s-census ol.terms .r{font-family:var(--serif);font-size:33px;color:var(--ink-main);line-height:1.2;display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:5px 12px;border-radius:3px;transition:background .45s,box-shadow .45s}
.s-census ol.terms .r.rk{align-self:end}.s-census ol.terms .r.rq{align-self:start}
.s-census ol.terms .r .g{font-family:var(--sans);font-size:16px;color:var(--ink-muted);font-style:normal;opacity:0;transition:opacity .45s}
.s-census ol.terms .line{width:0;height:100%;border-left:1px solid var(--ink-main)}
.s-census ol.terms .cell{position:relative;display:inline-grid;place-items:center;box-sizing:border-box;width:calc(var(--n,1)*var(--em) + 2*var(--pad));height:calc(var(--em) + 2*var(--pad));padding:0;margin:0;font-family:var(--zh);font-size:var(--em);line-height:1;letter-spacing:0;white-space:nowrap;color:var(--ink-main)}
.s-census ol.terms .cell::before{content:"";position:absolute;inset:0;border:1px solid var(--ink-main);border-radius:2px;pointer-events:none}
.s-census ol.terms li[data-key=zy]{min-width:250px}      /* room for kungdzi hendume on one line */
.s-census ol.terms .r i{white-space:nowrap}
.s-census ol.terms li.gram .r{color:var(--ink-muted)}
.s-census ol.terms li.gram .cell{color:var(--ink-muted)}
.s-census ol.terms li.gram .cell::before{border-style:dashed;border-color:var(--ink-muted)}
.s-census ol.terms li.gram .line{border-left-style:dashed;border-left-color:var(--ink-muted)}
.s-census ol.terms li.changed .r{color:var(--mineral-text);font-weight:600}
.s-census ol.terms li.changed .cell{color:var(--mineral-text)}
.s-census ol.terms li.changed .cell::before{border-width:2px;border-color:var(--mineral-main)}
.s-census ol.terms li.changed .line{border-left:2px solid var(--mineral-main)}
/* the washes and glosses on the second state, and whenever every state is shown at once */
/* the reveal (the brief of 14 Oct 2026): state 0 neutral; 1 holds 子曰 up with its two glosses; 2 holds 志 up, 子曰 keeping its wash; 3 both; print and reading show both */
.s-census ol.terms li.changed .r{transition:background .45s,box-shadow .45s,transform .45s cubic-bezier(.4,0,.2,1)}
.s-census[data-steps="0"] li.changed .r,.s-census[data-step="1"] li[data-key=zy] .r,.s-census[data-step="2"] li.changed .r,.s-census[data-step="3"] li.changed .r,html.print .s-census li.changed .r,.deck[data-mode=read] .s-census li.changed .r{background:var(--mineral-wash);box-shadow:inset 0 0 0 1px var(--mineral-pale)}
.s-census[data-steps="0"] li.changed .g,.s-census[data-step="1"] li[data-key=zy] .g,.s-census[data-step="2"] li.changed .g,.s-census[data-step="3"] li.changed .g,html.print .s-census ol.terms .g,.deck[data-mode=read] .s-census ol.terms .g{opacity:1}
.s-census[data-step="1"] li[data-key=zy] .r,.s-census[data-step="2"] li[data-key=zhi] .r{transform:scale(1.06)}
.s-census[data-step="0"]:not([data-steps="0"]) li.changed .r,.s-census[data-step="0"]:not([data-steps="0"]) li.changed .cell{color:var(--ink-main);font-weight:500}
.s-census[data-step="0"]:not([data-steps="0"]) li.changed .cell::before{border-color:var(--ink-main);border-width:1px}
.s-census[data-step="0"]:not([data-steps="0"]) li.changed .line{border-left:1px solid var(--ink-main)}
.s-census .legend{margin:0;font-family:var(--sans);font-size:15px;color:var(--ink-secondary);display:flex;gap:36px;padding-top:12px;border-top:1px solid var(--rule)}
.s-census .legend span::before{content:"";display:inline-block;width:28px;height:0;border-top:1px solid var(--ink-main);vertical-align:middle;margin-right:8px}
.s-census .legend .changed::before{border-top:2px solid var(--mineral-main)}
.s-census .legend .gram::before{border-top:1px dashed var(--ink-muted)}

/* ---------- slide 4 · transmission: three operations, one documented example ---------- */
.deck:not([data-mode=read]) .s-transmission .field{display:grid;grid-template-columns:1fr 640px;grid-template-rows:auto auto auto 1fr auto;column-gap:48px;row-gap:8px;align-content:start}
.s-transmission .top{grid-column:1/span 2}
.s-transmission ol.three{grid-column:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.s-transmission ol.three li{border-top:1px solid var(--rule);padding:7px 0 8px;display:grid;grid-template-columns:230px 1fr;column-gap:20px;align-items:start}
.s-transmission ol.three li:first-child{border-top:1.5px solid var(--ink-main)}
.s-transmission ol.three h3{font-family:var(--serif);font-weight:500;font-size:21px;margin:0;line-height:1.2}
.s-transmission ol.three p{font-family:var(--serif);font-size:15px;line-height:1.36;margin:0;color:var(--ink-secondary)}
.s-transmission ol.three .st{grid-column:1}
.s-transmission ol.three .st{font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}
.s-transmission ol.three li.documented .st{color:var(--mineral-text)}
.s-transmission .opn{grid-column:1;font-family:var(--sans);font-size:14px;color:var(--ink-muted);margin:0}
.s-transmission .example{grid-column:2;grid-row:2/span 3;border-top:1.5px solid var(--mineral-main);padding-top:8px;display:flex;flex-direction:column;gap:4px;min-width:0}
.s-transmission .example .label{color:var(--mineral-text)}
.s-transmission .example h3{font-family:var(--serif);font-weight:500;font-size:20px;margin:0;line-height:1.25}
.s-transmission .example>p{font-family:var(--serif);font-size:15px;line-height:1.36;margin:0;color:var(--ink-secondary)}
.s-transmission .pairs{margin-top:4px}
.s-transmission .pairs .heads{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;font-family:var(--sans);font-size:12.5px;color:var(--ink-muted);border-bottom:1px solid var(--rule);padding-bottom:3px}
.s-transmission .pairs ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:0}
.s-transmission .pairs li{display:grid;grid-template-columns:1fr 18px 1fr;align-items:center;column-gap:6px;font-family:var(--zh);font-size:15.5px;line-height:1.5;border-bottom:1px solid var(--rule)}
.s-transmission .pairs li a{color:var(--ink-main);text-decoration-color:var(--mineral-soft)}
.s-transmission .pairs li .missing{color:var(--ink-muted)}
.s-transmission .pairs li .tie{height:1px;background:var(--mineral-main)}
.s-transmission .pairs .pn{font-family:var(--sans);font-size:12.5px;color:var(--ink-muted);line-height:1.35;margin:6px 0 0}
.s-transmission .parallel{grid-column:1;grid-row:4;border-top:1px solid var(--rule);padding-top:6px;align-self:start}
.s-transmission .parallel p{font-family:var(--serif);font-size:15px;line-height:1.36;margin:2px 0 0;color:var(--ink-secondary)}
.s-transmission .line{grid-column:1/span 2;font-family:var(--serif);font-size:19px;color:var(--ink-main);margin:0;border-top:1px solid var(--rule);padding-top:8px}



/* ---------- slide 5 · agentic knowledge distillation (13 Oct 2026; the homepage's drawing, as slide 1's glyph draws it) ----------
   The two statements; the five panels on five columns (talk_figures.COLS5), the worked chain, the scale and the open
   comparison on the same columns beneath; the conclusion at the foot of the field. */
/* ---------- slide 5, Pivot 機: the diagram held up stage by stage, one demonstration panel beneath ---------- */
.deck:not([data-mode=read]) .s-distill .field{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto 1fr;row-gap:2px;align-content:start}
.deck:not([data-mode=read]) .s-distill .top{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;align-items:start}      /* two paragraphs, one a column (the author, 14 Oct 2026) */
.deck:not([data-mode=read]) .s-distill .top .lede,.deck:not([data-mode=read]) .s-distill .top .body{font-family:var(--serif);font-size:17px;line-height:1.34;margin:0;padding:0;max-width:none;font-weight:400;color:var(--ink-main);text-wrap:pretty}
.deck:not([data-mode=read]) .s-distill .top .body{font-family:var(--serif);font-size:17px;line-height:1.42;color:var(--ink-secondary);margin:0;padding-top:3px}
.s-distill .flow svg{display:block;width:1424px;height:auto}
.s-distill .flow .panel{transition:opacity .45s cubic-bezier(.4,0,.2,1)}
.deck[data-mode=present] .s-distill:not([data-all]) .flow .panel.dim{opacity:.34}
.s-distill ol.stages{list-style:none;margin:12px 0 0;padding:0;position:relative;height:36px}
.s-distill ol.stages li{position:absolute;top:0;left:calc(var(--cx) - 115px);width:230px;text-align:center}
.s-distill ol.stages .op{display:block;font-family:var(--sans);font-size:13px;line-height:1.35;color:var(--ink-secondary);margin:0;transition:color .45s}
.s-distill ol.stages li.dim .op{color:var(--ink-muted);opacity:.7}
/* the demonstration panel: one state at a time, the operation at the left, the record at the right */
.s-distill .demo{position:relative;border-top:1.5px solid var(--ink-main);margin-top:12px;min-height:190px}
.s-distill .demo .st{position:absolute;inset:0;display:grid;grid-template-columns:560px 1fr;column-gap:44px;padding-top:8px;align-items:start}
.s-distill .demo .st.is-off{pointer-events:none}
.s-distill .demo p{margin:0}
.s-distill .demo .kick{font-family:var(--serif);font-size:20px;line-height:1.25;color:var(--ink-main)}
.s-distill .demo .kick .sn{display:inline-block;font-family:var(--mono);font-size:15px;color:var(--mineral-text);margin-right:12px;vertical-align:2px}
.s-distill .demo .opl{font-family:var(--sans);font-size:14px;line-height:1.4;color:var(--ink-secondary);margin-top:6px}
.s-distill .demo .cmd{margin-top:12px;font-family:var(--mono);font-size:15px;line-height:1.5;color:var(--ink-main)}
.s-distill .demo .cmd code{display:inline-block;border:1px solid var(--rule-strong);border-radius:2px;background:var(--paper-raised);padding:4px 10px;min-height:1.5em;min-width:12ch;white-space:nowrap}
.s-distill .demo .cmd code::after{content:"";display:inline-block;width:1px;height:1em;background:var(--ink-main);vertical-align:-2px;margin-left:2px;opacity:.6}
.s-distill .demo .cmd code:not([data-typed])::after,html.print .s-distill .demo .cmd code::after{display:none}
.s-distill .demo .quote{margin-top:12px;font-family:var(--serif);font-size:15.5px;line-height:1.42;color:var(--ink-secondary);max-width:520px;text-wrap:pretty}
.s-distill .demo .quote .qw{display:block;font-family:var(--mono);font-size:12.5px;color:var(--ink-muted);margin-top:3px}
.s-distill .demo .r{border-left:1px solid var(--rule);padding-left:28px;min-height:150px}
.s-distill .demo .tagline{margin-bottom:8px}
.s-distill .demo .zh{font-family:var(--zh);font-size:25px;line-height:1.4;color:var(--ink-main)}
.s-distill .demo .en{font-family:var(--serif);font-size:17px;line-height:1.4;color:var(--ink-main);margin-top:4px;max-width:760px}
.s-distill .demo .from{font-family:var(--zh);font-size:16px;color:var(--ink-muted);margin-bottom:6px}
.s-distill .demo .lead{font-family:var(--serif);font-size:15px;color:var(--ink-secondary);margin-bottom:4px}
.s-distill .demo .txt{font-family:var(--serif);font-size:19px;line-height:1.42;color:var(--ink-main);max-width:760px;text-wrap:pretty}
.s-distill .demo .txt.open{color:var(--mineral-text)}
.s-distill .demo .claim{font-family:var(--serif);font-size:17px;line-height:1.4;color:var(--mineral-text);max-width:760px}
.s-distill .demo .arrow{font-family:var(--sans);font-size:16px;color:var(--mineral-soft);margin:2px 0 4px;line-height:1}
.s-distill .demo .who{font-family:var(--sans);font-size:13px;color:var(--ink-muted);margin-top:8px;line-height:1.35}
.tag.src{color:var(--ink-secondary);border-color:var(--rule-strong)}
/* the command line the simulation types: a prompt in the muted ink, the command in the mono with the tool name in lapis */
.s-distill .demo .cmd{margin-top:10px;font-family:var(--mono);font-size:14px;line-height:1.5;color:var(--ink-main);display:flex;gap:8px;align-items:baseline;white-space:nowrap}
.s-distill .demo .cmd .ps{color:var(--ink-muted);font-size:13px;letter-spacing:.02em}
.s-distill .demo .cmd code{display:inline-block;border:0;background:none;padding:0;min-width:0;white-space:nowrap;color:var(--mineral-text)}
.s-distill .demo .cmd code::after{opacity:.5}
.s-distill .demo .opl{margin-top:8px}
.s-distill .demo .quote{margin-top:8px}
.s-distill .demo .secs{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.s-distill .demo .secs li{font-family:var(--serif);font-size:13.5px;line-height:1.25;color:var(--ink-secondary);display:flex;gap:10px;align-items:baseline}
.s-distill .demo .secs li.on{color:var(--ink-main);font-weight:500}
.s-distill .demo .secs .sq{font-family:var(--mono);font-size:12.5px;color:var(--mineral-text);min-width:1.6em}
.s-distill .demo .secs li.on .sq{font-weight:500}
.s-distill .demo .dims{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:28px;row-gap:6px}
.s-distill .demo .dims li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:baseline;border-left:2px solid var(--mineral-main);padding-left:12px}
.s-distill .demo .dims .code{font-family:var(--mono);font-size:12.5px;color:var(--mineral-text);font-weight:500}
.s-distill .demo .dims .dn{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--ink-main)}
.s-distill .demo .dims .dz{font-family:var(--zh);font-weight:400;color:var(--ink-secondary);margin-left:4px}
.s-distill .demo .dims .dc{grid-column:1/span 2;font-family:var(--serif);font-size:14.5px;line-height:1.34;color:var(--ink-secondary)}
.s-distill .demo .terms,.s-distill .demo .pairs{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px 8px}
.s-distill .demo .term,.s-distill .demo .pair{font-family:var(--sans);font-size:12.5px;color:var(--ink-secondary);border:1px solid var(--rule-strong);border-radius:2px;padding:2px 8px;background:var(--paper-raised)}
.s-distill .demo .term [lang],.s-distill .demo .pair [lang]{font-family:var(--zh);color:var(--ink-main);margin-right:4px}
.s-distill .demo .sub{font-family:var(--serif);font-size:15px;line-height:1.4;color:var(--ink-secondary);margin-top:6px;max-width:760px}
.s-distill .demo .txt.big{font-size:22px}
.s-distill .demo .chain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.s-distill .demo .chain li{display:grid;grid-template-columns:200px 1fr;column-gap:14px;align-items:baseline;font-family:var(--serif);font-size:15px;color:var(--ink-main)}
.s-distill .demo .chain li+li .id::before{content:"↓  ";font-family:var(--sans);color:var(--mineral-soft);font-size:13px;white-space:pre}
.s-distill .demo .chain .id{font-family:var(--mono);font-size:13.5px;color:var(--mineral-text)}
.s-distill .demo .chain .what[lang]{font-family:var(--zh);font-size:18px}
.s-distill .flow .f-mut{fill:var(--ink-muted)}
html.print .s-distill .demo .st[data-print] .dims{grid-template-columns:1fr;row-gap:4px}
html.print .s-distill .demo .st[data-print] .terms,html.print .s-distill .demo .st[data-print] .cmd,html.print .s-distill .demo .st[data-print] .secs{display:none}
html.print .s-distill .demo .st[data-print] .dims .dc{font-size:13.5px}
html.print .s-distill .demo .st[data-print] .txt{font-size:14.5px}
html.print .s-distill .demo .st[data-print] .who{display:none}
html.print .s-distill .demo .st[data-print] .dims .dc{font-size:13px;line-height:1.3}
html.print .s-distill .demo .st[data-print] .dims li{row-gap:0}
html.print .s-distill .demo .st[data-print] .kick{font-size:17px}
html.print .s-distill .demo .st[data-print] .r{margin-top:4px}

/* print and the all-at-once views: three records side by side under the whole diagram */
html.print .s-distill .demo .st,.deck[data-mode=present] .s-distill[data-all] .demo .st{display:none}
html.print .s-distill .demo,.deck[data-mode=present] .s-distill[data-all] .demo{display:grid;grid-template-columns:1fr 1fr 1fr;column-gap:36px;min-height:0}
html.print .s-distill .demo .st[data-print],.deck[data-mode=present] .s-distill[data-all] .demo .st[data-print]{display:block!important;position:static;opacity:1!important;padding-top:12px}
html.print .s-distill .demo .st[data-print] .r,.deck[data-mode=present] .s-distill[data-all] .demo .st[data-print] .r{border-left:0;padding-left:0;margin-top:8px;min-height:0}
html.print .s-distill .demo .st[data-print] .kick{font-size:18px}html.print .s-distill .demo .st[data-print] .zh{font-size:21px}html.print .s-distill .demo .st[data-print] .en,html.print .s-distill .demo .st[data-print] .txt{font-size:15px}
/* the playback controls, in the foot */
.foot .playctl{display:flex;align-items:center;gap:18px;font-family:var(--sans);font-size:13px;color:var(--ink-muted)}
.foot .playctl .plab{letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}
.foot .playctl .pbtns{display:inline-flex;gap:4px}
.foot .playctl button{width:30px;height:26px;border:1px solid var(--rule-strong);border-radius:2px;background:var(--paper-raised);color:var(--ink-secondary);font-family:var(--sans);font-size:15px;line-height:1;display:grid;place-items:center;cursor:pointer}
.foot .playctl button:hover,.foot .playctl button:focus-visible{color:var(--mineral-text);border-color:var(--mineral-soft)}
.foot .playctl button[data-act=play][aria-pressed=true]{color:var(--mineral-text);background:var(--mineral-wash);border-color:var(--mineral-soft)}
.foot .playctl button svg{width:12px;height:12px;display:block}
.foot .playctl button .i-pause,.foot .playctl button[aria-pressed=true] .i-play{display:none}
.foot .playctl button[aria-pressed=true] .i-pause{display:block}
.foot .playctl .pstate{display:inline-flex;gap:10px;align-items:baseline}
.foot .playctl .playk{font-family:var(--mono);font-size:12.5px;color:var(--ink-secondary)}
.foot .playctl .playname{color:var(--ink-main)}
html.print .playctl,.deck[data-mode=read] .playctl{display:none}
/* ---------- slide 6, Pivot Debate: the recorded debate replayed in the room's own terms ---------- */
.deck:not([data-mode=read]) .s-wangsu .field{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;row-gap:20px;align-content:start}
.deck:not([data-mode=read]) .s-wangsu .lede{font-size:17.5px;line-height:1.34;margin:0;max-width:none;font-weight:400;column-count:2;column-gap:44px;column-fill:balance;text-wrap:pretty}
.s-wangsu .room{position:relative;display:grid;grid-template-columns:400px 1fr;column-gap:36px;border:1px solid var(--rule);background:var(--paper-raised);padding:12px 22px 10px;min-height:0}
.s-wangsu .room>.panel{display:flex;flex-direction:column;gap:12px;border-left:0;border-right:1px solid var(--rule);padding:0 28px 0 0;margin:0;background:none;min-width:0}
.s-wangsu .flow6{display:flex;flex-direction:column;gap:12px;min-width:0}
.s-wangsu .ph{font-family:var(--sans);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);display:block;margin:0 0 4px}
.s-wangsu .stagebar{display:contents}
/* the model picker */
.s-wangsu .dd{position:relative}
.s-wangsu .ddb{display:flex;align-items:center;justify-content:space-between;width:100%;font-family:var(--sans);font-size:15px;color:var(--ink-main);border:1px solid var(--rule-strong);border-radius:2px;background:var(--paper-main);padding:8px 12px;cursor:pointer;text-align:left}
.s-wangsu .ddb .caret{color:var(--ink-muted);font-size:14px;line-height:1}
.s-wangsu .dd .list{position:absolute;left:0;right:0;top:100%;margin:2px 0 0;padding:4px 0;list-style:none;border:1px solid var(--rule-strong);border-radius:2px;background:var(--paper-raised);box-shadow:0 2px 6px rgba(46,49,52,.08);z-index:5;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.s-wangsu .dd.open .list{opacity:1;visibility:visible}
.s-wangsu .dd .list li{font-family:var(--sans);font-size:14.5px;padding:6px 12px;color:var(--ink-main);cursor:pointer}
.s-wangsu .dd .list li:hover{background:var(--mineral-wash)}
.s-wangsu .dd .list li[aria-selected=true]{color:var(--mineral-text);background:var(--mineral-wash)}
.s-wangsu .ddnote{margin:6px 0 0;font-family:var(--sans);font-size:12.5px;color:var(--ink-secondary)}
/* the picker's own sequence at the first state: closed, opened, the recorded model lit, chosen, closed */
.deck[data-mode=present] .s-wangsu[data-step="0"] .dd.auto .list{animation:ddlist 4.2s ease-out 1 both}
.deck[data-mode=present] .s-wangsu[data-step="0"] .dd.auto .list li[data-rec="1"]{animation:ddpick 4.2s ease-out 1 both}
.deck[data-mode=present] .s-wangsu[data-step="0"] .dd.auto .cur{animation:ddcur 4.2s steps(1,end) 1 both}
@keyframes ddlist{0%,18%{opacity:0;visibility:hidden}26%,74%{opacity:1;visibility:visible}84%,100%{opacity:0;visibility:hidden}}
@keyframes ddpick{0%,44%{background:transparent;color:var(--ink-main)}56%,100%{background:var(--mineral-wash);color:var(--mineral-text)}}
@keyframes ddcur{0%{opacity:0}78%{opacity:0}79%,100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.s-wangsu .dd .list,.s-wangsu .dd .list li,.s-wangsu .dd .cur{animation:none!important}}
html[data-motion=reduce] .s-wangsu .dd .list,html[data-motion=reduce] .s-wangsu .dd .list li,html[data-motion=reduce] .s-wangsu .dd .cur,html.print .s-wangsu .dd .list,html.print .s-wangsu .dd .list li,html.print .s-wangsu .dd .cur{animation:none!important}
/* the question */
.s-wangsu .qrow .q{margin:0;border:1px solid var(--rule-strong);border-radius:2px;background:var(--paper-main);padding:8px 14px;min-height:1.4em}
.s-wangsu .qrow .qt{font-family:var(--serif);font-size:18px;line-height:1.35;color:var(--ink-main)}
.s-wangsu .qrow .qt[data-typed]::after{content:"";display:inline-block;width:1px;height:1em;background:var(--ink-main);vertical-align:-2px;margin-left:2px;opacity:.6}
.s-wangsu[data-step="0"] .qrow .q{opacity:.5}
/* participants, rounds, the dossier */
.s-wangsu .setup{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--rule);padding-top:10px}
.s-wangsu .parts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.s-wangsu .parts li{display:grid;grid-template-columns:62px 1fr;column-gap:12px;align-items:baseline}
.s-wangsu .parts .ord{font-family:var(--sans);font-size:12.5px;color:var(--ink-muted)}
.s-wangsu .parts .pn{font-family:var(--serif);font-size:17px;color:var(--ink-main);line-height:1.3}
.s-wangsu .parts li.note{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-muted);margin-top:2px}
.s-wangsu .mode{margin:10px 0 0;font-family:var(--sans);font-size:14px;color:var(--ink-main);display:flex;gap:10px;align-items:baseline}
.s-wangsu .mode .ph{display:inline;margin:0}
.s-wangsu .mode .sep{display:inline-block;width:1px;height:.9em;background:var(--rule-strong);vertical-align:-1px}
.s-wangsu .dossier{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.s-wangsu .dossier li{display:grid;grid-template-columns:112px 1fr;column-gap:10px;align-items:baseline;font-family:var(--serif);font-size:13.5px;color:var(--ink-main);line-height:1.3}
.s-wangsu .dossier .id{font-family:var(--mono);font-size:11.5px;color:var(--mineral-text)}
.s-wangsu .dossier i{font-style:italic}
/* Begin and the run's milestones */
.s-wangsu .begin{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border-top:1px solid var(--rule);padding-top:10px;margin-top:auto}
.s-wangsu .bbtn{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--paper-main);background:var(--mineral-main);border:1px solid var(--mineral-main);border-radius:2px;padding:7px 18px}
.s-wangsu .run{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-family:var(--sans);font-size:12.5px;color:var(--ink-secondary)}
.s-wangsu .run li{opacity:1;transition:opacity .45s cubic-bezier(.4,0,.2,1)}
.s-wangsu .begin.is-off .run li{opacity:0;transition:none}
.s-wangsu .run li+li::before{content:"→";margin-right:8px;color:var(--mineral-soft)}
.s-wangsu .run li:last-child{color:var(--mineral-text);font-weight:500}
/* the positions, the disagreement, the evidence */
.s-wangsu .positions{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;row-gap:8px;align-items:start}
.s-wangsu .positions .tagline{margin:0;grid-column:1/span 2}
.s-wangsu .pos p{margin:0}
.s-wangsu .pos .pw{font-family:var(--sans);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
.s-wangsu .pos .pt{font-family:var(--serif);font-size:16.5px;line-height:1.42;color:var(--ink-main);text-wrap:pretty}
.s-wangsu .cites{font-family:var(--mono);font-size:11.5px;color:var(--mineral-text);display:inline-flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.s-wangsu .disagree{border-top:1px solid var(--rule);padding-top:10px}
.s-wangsu .disagree p{margin:0}
.s-wangsu .disagree .dh{font-family:var(--serif);font-size:19px;color:var(--ink-main);margin-bottom:6px}
.s-wangsu .disagree .dh .ph{display:inline;margin:0 10px 0 0}
.s-wangsu .disagree .da{font-family:var(--serif);font-size:16px;line-height:1.42;color:var(--ink-secondary);margin-top:4px;text-wrap:pretty}
.s-wangsu .disagree .da b{font-weight:600;color:var(--ink-main);margin-right:6px}
.s-wangsu .evidence{border-top:1px solid var(--rule);padding-top:10px;margin-top:auto}
.s-wangsu .ev{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr 1fr;column-gap:28px}
.s-wangsu .ev li{display:flex;flex-direction:column;gap:2px}
.s-wangsu .ev .id{font-family:var(--mono);font-size:12.5px;color:var(--mineral-text)}
.s-wangsu .ev .zt{font-family:var(--zh);font-size:19px;color:var(--ink-main)}
.s-wangsu .ev .w{font-family:var(--sans);font-size:12.5px;color:var(--ink-secondary)}
.s-wangsu .status{margin:0;font-family:var(--sans);font-size:12px;line-height:1.35;color:var(--ink-muted)}
.s-wangsu .tag{vertical-align:2px}

.deck[data-mode=read] .s-distill .flow svg{width:100%}
.deck[data-mode=read] .s-distill ol.stages{height:auto;display:flex;flex-direction:column;gap:.4rem}.deck[data-mode=read] .s-distill ol.stages li{position:static;width:auto;text-align:left}
.deck[data-mode=read] .s-distill .demo{min-height:0}.deck[data-mode=read] .s-distill .demo .st{position:static;grid-template-columns:1fr;row-gap:.8rem;border-top:1px solid var(--rule);padding:.8rem 0}.deck[data-mode=read] .s-distill .demo .r{border-left:0;padding-left:0;min-height:0}
.deck[data-mode=read] .s-wangsu .room,.deck[data-mode=read] .s-wangsu .positions,.deck[data-mode=read] .s-wangsu .ev{grid-template-columns:1fr;row-gap:.8rem}.deck[data-mode=read] .s-wangsu .panel{border-right:0;padding-right:0}


:root[data-theme=dark] .s-evaluation .shot img.dark{display:block}:root[data-theme=dark] .s-evaluation .shot img.light{display:none}

/* ---------- progressive states outside SVG ---------- */
.deck [data-from].is-off,.deck [data-until].is-off{opacity:0;pointer-events:none}
.deck [data-from],.deck [data-until]{transition:opacity .45s cubic-bezier(.4,0,.2,1)}

/* ---------- chrome: controls, switcher, overview ---------- */
.chrome{position:fixed;right:14px;bottom:12px;z-index:40;display:flex;gap:4px;align-items:center;font-family:var(--sans);font-size:14px;color:var(--ink-secondary);
 background:color-mix(in srgb,var(--paper-raised) 88%,transparent);border:1px solid var(--rule);border-radius:3px;padding:3px;transition:opacity .4s}
.chrome button,.chrome a{min-width:34px;height:32px;display:inline-grid;place-items:center;padding:0 8px;border-radius:2px;color:var(--ink-secondary);text-decoration:none}
.chrome button:hover,.chrome a:hover{background:var(--mineral-wash);color:var(--ink-main)}
#t-close{display:none!important}html.embed #t-close{display:inline-grid!important}
.chrome .count{font-family:var(--mono);font-size:13px;padding:0 6px;min-width:58px;text-align:center}
.chrome [aria-pressed=true]{color:var(--mineral-text);background:var(--mineral-wash)}
.deck.idle .chrome{opacity:0}
.phs{position:fixed;left:12px;top:8px;z-index:41;font-family:var(--sans)}
.phs>button{width:calc(52px*var(--s,1));height:calc(52px*var(--s,1));display:grid;place-items:center;border-radius:3px;color:var(--ink-main);opacity:.85}
.phs>button:hover,.phs>button[aria-expanded=true]{opacity:1;background:var(--mineral-wash)}
.phs>button svg{width:calc(40px*var(--s,1));height:calc(40px*var(--s,1));display:block}
.deck.at-title~.phs,.deck.at-title .phs,body:has(.deck.at-title) .phs{visibility:hidden}
.deck[data-mode=present]:not(.at-title) .stage .s-title .markbox{visibility:hidden}
.phs ul{list-style:none;margin:6px 0 0;padding:6px 0;background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:3px;min-width:220px;box-shadow:0 6px 24px rgba(20,30,50,.12)}
.phs ul[hidden]{display:none}
.phs li a{display:flex;justify-content:space-between;gap:1rem;padding:8px 14px;text-decoration:none;color:var(--ink-main);font-size:15px}
.phs li a small{color:var(--ink-muted);font-size:12.5px}
.phs li a:hover,.phs li a:focus-visible{background:var(--mineral-wash)}
.phs li a[aria-current=page]{font-weight:600}
.overview{position:fixed;inset:0;z-index:60;background:var(--paper-main);overflow:auto;padding:40px 48px;display:none}
.deck.ov .overview{display:block}
.overview h2{font-family:var(--serif);font-weight:500;font-size:22px;margin:0 0 18px}
.overview ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.overview li button{display:block;width:100%;text-align:left}
.overview .thumb{aspect-ratio:16/9;border:1px solid var(--rule-strong);overflow:hidden;position:relative;background:var(--paper-main)}
.overview .thumb>.slide{position:absolute!important;left:0;top:0;width:1600px;height:900px;transform:scale(var(--ts,.2));transform-origin:0 0;visibility:visible!important;opacity:1!important;pointer-events:none}
.overview .cap{font-family:var(--sans);font-size:14px;color:var(--ink-secondary);margin-top:6px;display:block}
.overview li button[aria-current=true] .thumb{outline:2px solid var(--mineral-main);outline-offset:2px}
.orient{display:none}
@media (orientation:portrait) and (max-width:900px){.deck[data-mode=present] .orient{display:block;position:fixed;left:12px;right:12px;top:60px;z-index:45;font-family:var(--sans);font-size:14px;background:var(--paper-raised);border:1px solid var(--rule-strong);padding:10px 12px}}
.help{position:fixed;right:14px;bottom:56px;z-index:42;background:var(--paper-raised);border:1px solid var(--rule-strong);padding:12px 16px;font-family:var(--sans);font-size:14px;line-height:1.6}
.help[hidden]{display:none}
.help kbd{font-family:var(--mono);font-size:12.5px;border:1px solid var(--rule-strong);border-radius:2px;padding:0 .35em;background:var(--paper-main)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- the editor (edit.js), plain CSS over the tokens; print never shows it ---------- */
.ov-hidden{display:none!important}
#t-edit[hidden]{display:none!important}
.chrome a.login{font-family:var(--sans);font-size:13px;padding:0 10px;color:var(--ink-secondary)}
.chrome a.login[hidden]{display:none!important}
.deck.editing .stage .slide.on .is-off{opacity:.22!important;pointer-events:auto!important}
.deck.editing .stage .slide.on a{pointer-events:none}
.edbar{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:50;display:flex;flex-wrap:wrap;gap:6px 0;align-items:center;max-width:min(1540px,96vw);background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:3px;padding:7px 14px;font-family:var(--sans);font-size:13.5px;line-height:1.3;color:var(--ink-main);box-shadow:0 6px 24px rgba(20,30,50,.12)}
.edbar[hidden]{display:none}
.edbar b{font-weight:600}
.edbar .grp{display:flex;align-items:center;gap:6px;padding:0 12px;border-left:1px solid var(--rule)}
.edbar .grp:first-child{border-left:0;padding-left:0}
.edbar button,.edbar select{font:inherit;font-size:13px;color:var(--ink-main);background:var(--paper-main);border:1px solid var(--rule-strong);border-radius:2px;padding:2px 8px;min-height:26px;cursor:pointer}
.edbar button:hover{background:var(--mineral-wash)}
.edbar button[aria-pressed=true]{background:var(--mineral-wash);color:var(--mineral-text);border-color:var(--mineral-soft)}
.edbar .pips{display:inline-flex;gap:3px;margin-left:4px}
.edbar .pips button{min-width:26px;padding:2px 4px;font-family:var(--mono)}
.edbar .sel{color:var(--ink-secondary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edbar .save[data-dirty=true]{color:var(--mineral-text);border-color:var(--mineral-main);font-weight:600}
.edbar .toast{color:var(--ink-muted);font-size:12.5px;min-width:60px}
.ed-sel{outline:2px solid var(--mineral-main)!important;outline-offset:3px;border-radius:1px}
.ed-leaf[contenteditable]{outline:2px solid var(--mineral-main)!important;outline-offset:3px;background:var(--mineral-wash)}
.edver{position:fixed;right:14px;top:60px;z-index:51;background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:3px;padding:12px 16px;font-family:var(--sans);font-size:13.5px;min-width:280px;box-shadow:0 6px 24px rgba(20,30,50,.12)}
.edver b{display:block;margin-bottom:8px}
.edver .row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12.5px}
.edver button{font:inherit;font-size:13px;color:var(--ink-main);background:var(--paper-main);border:1px solid var(--rule-strong);border-radius:2px;padding:2px 8px;cursor:pointer;margin-top:6px}
.help .edk{display:none}.deck[data-editor] .help .edk{display:flex}

/* ---------- slide 7 · investigating machine interpretation (13 Oct 2026) ----------
   The attribution and the question across the top; the persona-vector finding at the left as a two-line summary
   with its qualification; the reading-stance finding at the right, wider, with the one chart; the next question. */
/* ---------- slide 7, How Do Language Models Construct Interpretations? ---------- */
.deck:not([data-mode=read]) .s-experiments .field{display:grid;grid-template-columns:1fr 1.55fr;grid-template-rows:auto 1fr;column-gap:60px;row-gap:18px;align-content:start}
.deck:not([data-mode=read]) .s-experiments .q{grid-column:1/span 2;font-size:22px;line-height:1.36;margin:0;max-width:1380px;font-weight:400;color:var(--ink-main);text-wrap:pretty}
.s-experiments section{border-top:1.5px solid var(--ink-main);padding-top:14px;display:flex;flex-direction:column;gap:14px;align-self:start}
.s-experiments .done{grid-column:1;grid-row:2}.s-experiments .now{grid-column:2;grid-row:2}
.s-experiments section h3{font-family:var(--serif);font-weight:500;font-size:24px;margin:0;line-height:1.2}
.s-experiments section h3 .n{font-family:var(--mono);font-weight:500;font-size:16px;color:var(--mineral-text);margin-right:12px;letter-spacing:.02em;vertical-align:2px}
.s-experiments section h3 .opn{font-size:17px;font-weight:400;color:var(--ink-muted);margin-left:2px}
.s-experiments section .t{font-family:var(--serif);font-size:19.5px;line-height:1.44;margin:0;color:var(--ink-main);text-wrap:pretty}
.s-experiments ul.sum{list-style:none;margin:6px 0 0;padding:0}
.s-experiments ul.sum li{display:grid;grid-template-columns:1fr auto;column-gap:24px;align-items:baseline;padding:14px 0;border-top:1px solid var(--rule)}
.s-experiments ul.sum li:last-child{border-bottom:1px solid var(--rule)}
.s-experiments ul.sum .a{font-family:var(--serif);font-size:18px;color:var(--ink-main)}
.s-experiments ul.sum .b{font-family:var(--sans);font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--mineral-text);font-weight:500}
.s-experiments ul.sum li.no .b{color:var(--ink-secondary)}
.s-experiments .figbox{margin:4px 0 0}
.s-experiments .figbox .fig{width:940px;max-width:100%;height:auto}
.s-experiments .figbox figcaption{font-family:var(--sans);font-size:15.5px;color:var(--ink-secondary);line-height:1.4;margin:12px 0 0;max-width:940px}
.s-experiments .direction{grid-column:1/span 2;grid-row:3;font-family:var(--serif);font-size:21px;line-height:1.36;margin:0;border-top:1px solid var(--rule);padding-top:12px;max-width:1380px;align-self:end;color:var(--ink-main);text-wrap:pretty}
.s-experiments .direction .dl{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
/* the understated text links of slides 7 and 8 */
.foot .acts .lnk{font-family:var(--sans);font-size:14.5px;color:var(--mineral-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--mineral-soft);display:inline-flex;align-items:center;gap:.35em;white-space:nowrap}
.foot .acts .lnk svg,.lnk svg{width:13px;height:13px}
.foot .acts .lnk:hover{text-decoration-color:var(--mineral-main)}

/* ---------- slide 8 · next steps (13 Oct 2026, by the brief of that night) ----------
   Four numbered directions stacked, one at each step; the fourth, the longer-term ambition, under a thinner rule
   with an understated label and the number in the muted ink. No foot. */
.deck:not([data-mode=read]) .s-evaluation .field{display:grid;grid-template-columns:1fr;grid-template-rows:1fr;align-content:start}
.s-evaluation ol.four{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;column-gap:56px;row-gap:18px;height:100%;align-content:start}
.s-evaluation ol.four li{display:grid;grid-template-columns:72px 1fr;column-gap:28px;align-items:start;border-top:1.5px solid var(--ink-main);padding:14px 0 6px;min-height:0}
.s-evaluation{--longer:#7f7059;--longer-rule:#B7A992}:root[data-theme=dark] .s-evaluation{--longer:#CFC7B9;--longer-rule:#8a8273}
.s-evaluation ol.four li.longer{border-top:1.5px solid var(--longer-rule)}
.s-evaluation .n b{display:block;font-family:var(--mono);font-weight:500;color:var(--mineral-text);font-size:34px;line-height:1;letter-spacing:.02em;padding-top:4px}
.s-evaluation li.longer .n b{color:var(--longer)}
.s-evaluation .body{display:flex;flex-direction:column;gap:8px;max-width:680px}
.s-evaluation .lab{font-family:var(--sans);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--longer)}
.s-evaluation ol.four h3{font-family:var(--serif);font-weight:500;font-size:24px;margin:0;line-height:1.2;color:var(--ink-main);text-wrap:balance}
.s-evaluation li.longer h3{color:var(--longer)}
.s-evaluation ol.four .t{font-family:var(--serif);font-size:20.5px;line-height:1.4;margin:0;color:var(--ink-main);text-wrap:pretty}
.s-evaluation li.longer .t{color:var(--ink-main)}
.s-evaluation ol.four .t i{font-style:italic}
.s-evaluation .go{margin:4px 0 0}
.s-evaluation .go{margin-top:6px}
/* reading mode */
.deck[data-mode=read] .s-evaluation ol.four{grid-template-columns:1fr;grid-template-rows:none}.deck[data-mode=read] .s-evaluation ol.four li{grid-template-columns:3rem 1fr;column-gap:1rem}
.deck[data-mode=read] .s-experiments .figbox .fig{width:100%}

/* ---------- read: the same slides as a page ---------- */
.deck[data-mode=read]{max-width:1080px;margin:0 auto;padding:84px 24px 80px}
.deck[data-mode=read] .stage{display:block}
.deck[data-mode=read] .slide{display:block;padding:44px 0 36px;border-top:1px solid var(--rule)}
.deck[data-mode=read] .slide>.num{display:block;margin-bottom:6px}
.deck[data-mode=read] .slide h2{font-size:clamp(1.7rem,3.6vw,2.4rem);margin-bottom:.6rem}
.deck[data-mode=read] .slide .lede,.deck[data-mode=read] .slide .q{font-size:1.18rem;line-height:1.6;max-width:66ch;margin:0 0 1rem}
.deck[data-mode=read] .slide .kicker{font-size:1rem;margin:0 0 .4rem}
.deck[data-mode=read] .slide .field>*+*{margin-top:1.2rem}
.deck[data-mode=read] .slide .field{display:block}
.deck[data-mode=read] .slide .foot{margin-top:1.4rem;padding-top:.8rem;border-top:1px solid var(--rule);font-size:.88rem;line-height:1.5;display:flex;flex-direction:column;gap:.6rem}
.deck[data-mode=read] .slide .foot .acts{display:flex;flex-wrap:wrap;gap:.6rem}
.deck[data-mode=read] .out{white-space:normal;max-width:100%;text-align:left}.deck[data-mode=read] .out .url{display:none}
.deck[data-mode=read] [data-from],.deck[data-mode=read] [data-until]{opacity:1!important}
.deck[data-mode=read] .fig [data-until]{display:none}
.deck[data-mode=read] .wide{overflow-x:auto;-webkit-overflow-scrolling:touch}
.deck[data-mode=read] .wide>.fig{min-width:760px}
.deck[data-mode=read] .chrome,.deck[data-mode=read] .help{display:none}
@media (max-width:820px){.deck[data-mode=read] .wide::before{content:"The figure continues to the right; scroll it sideways.";display:block;position:sticky;left:0;font-family:var(--sans);font-size:.8rem;color:var(--ink-muted);margin-bottom:.4rem;white-space:nowrap}}
.scrollnote{display:none}
.deck[data-mode=read] .scrollnote{display:none;font-family:var(--sans);font-size:.8rem;color:var(--ink-muted)}
@media (max-width:820px){.deck[data-mode=read] .scrollnote{display:block}}
.deck[data-mode=read] .s-title{min-height:70vh;padding-top:12vh;border-top:0;position:relative}
.deck[data-mode=read] .s-title .bamboo{opacity:.6}
.deck[data-mode=read] .s-title .tblock{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:1.4rem}
.deck[data-mode=read] .s-title .markbox{width:clamp(64px,10vw,120px);height:auto}
.deck[data-mode=read] .s-title .a1{width:clamp(64px,10vw,120px);height:auto}
.deck[data-mode=read] .s-title .replay{bottom:-30px}
.deck[data-mode=read] .s-title h1{font-size:clamp(2.6rem,7vw,4.6rem)}
.deck[data-mode=read] .s-title .sub{font-size:clamp(1.2rem,2.6vw,1.8rem);margin-bottom:1.6rem}
.deck[data-mode=read] .s-title .team{flex-wrap:wrap;row-gap:1.4rem}
.deck[data-mode=read] .s-title .grp{padding:0 1.2rem 0 0;border-left:0}
.deck[data-mode=read] .s-title .ppl,.deck[data-mode=read] .s-title .grp:nth-child(n+2) .ppl{grid-template-columns:minmax(0,14rem);gap:.7rem}
.deck[data-mode=read] .s-title .ph-person,.deck[data-mode=read] .s-title .ph-portrait{--ph-portrait-size:4.5rem}
.deck[data-mode=read] .s-title .who{font-size:1rem}
.deck[data-mode=read] .s-title .inst{font-size:.8rem;margin-top:.9rem}.deck[data-mode=read] .s-title .inst .crest{height:28px}
.deck[data-mode=read] .s-title .tfoot{position:relative;margin-top:2rem;padding-top:.8rem}
.deck[data-mode=read] .s-title .perm{flex-wrap:wrap;gap:.6rem 2rem;justify-content:flex-start}
.deck[data-mode=read] .s-title .perm a{font-size:1rem}
.deck[data-mode=read] .slide .head{grid-template-columns:1fr}
.deck[data-mode=read] .slide .sec{font-size:.8rem;margin-bottom:.4rem}
.deck[data-mode=read] .s-aims ol.aims li{grid-template-columns:3rem 1fr;row-gap:.6rem;transition:none}
.deck[data-mode=read] .s-aims ol.aims li .txt{display:flex;flex-direction:column}
.deck[data-mode=read] .s-aims ol.aims li .pic{order:9;position:static;opacity:1;margin-top:.6rem}
/* the glyph takes the column's width, never the column the glyph's: at 300px it pushed a phone's text past the edge */
.deck[data-mode=read] .s-aims .pic .fig{width:100%;max-width:300px}
.deck[data-mode=read] .s-aims .n b{font-size:1.6rem}
.deck[data-mode=read] .s-aims h3{font-size:1.4rem}
.deck[data-mode=read] .s-aims .ch,.deck[data-mode=read] .s-aims .ap{grid-template-rows:1fr;opacity:1;margin-top:.6rem;transition:none}
.deck[data-mode=read] .s-aims .txt p{font-size:1.08rem}
.deck[data-mode=read] .s-manchu .sketch{max-width:900px}
.deck[data-mode=read] .s-manchu .result .val{font-size:3rem}
.deck[data-mode=read] .s-manchu .left{display:flex;flex-direction:column;gap:1.2rem}
.deck[data-mode=read] .s-manchu .result{grid-template-columns:auto 1fr;row-gap:.6rem}
.deck[data-mode=read] .s-manchu .result .model{grid-column:1/span 2;border-left:0;padding-left:0}
.deck[data-mode=read] .s-census ol.terms{--em:34px;--pad:12px;--stem:24px;flex-wrap:wrap;justify-content:flex-start;gap:14px}
.deck[data-mode=read] .s-census .cmp{grid-template-columns:1fr;row-gap:.8rem}
.deck[data-mode=read] .s-census .cmp .rows{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.deck[data-mode=read] .s-census .cmp .rows span:nth-child(2){padding:0}
.deck[data-mode=read] .s-census .top{grid-template-columns:1fr;row-gap:.6rem}
.deck[data-mode=read] .s-census .corp{max-width:560px}
.deck[data-mode=read] .s-limits .ex.b .prov-fig .fig{width:min(560px,100%)}
.deck[data-mode=read] .s-limits .bgrid,.deck[data-mode=read] .s-limits .why{grid-template-columns:1fr;row-gap:1rem}
.deck[data-mode=read] .s-limits .why .prov{grid-column:1}
.deck[data-mode=read] .s-limits .earlier{grid-template-columns:1fr;row-gap:.3rem}
.deck[data-mode=read] .s-persona .txt{grid-template-columns:1fr}
.deck[data-mode=read] .s-persona .txt .q{grid-column:1}
.deck[data-mode=read] .s-persona .tbl{overflow-x:auto}
.deck[data-mode=read] .s-persona table{min-width:700px;font-size:.9rem}
.deck[data-mode=read] .s-sae ul.status li{grid-template-columns:1fr;row-gap:.1rem}
.deck[data-mode=read] .s-sae .dist{grid-template-columns:1fr;row-gap:1rem}
.readbar{display:none}
.deck[data-mode=read]~.readbar,.readbar.show{display:block}
.reading-head{display:none}
.deck[data-mode=read] .reading-head{display:block;margin-bottom:28px;font-family:var(--sans);font-size:15px;color:var(--ink-secondary)}
.deck[data-mode=read] .reading-head .acts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.deck[data-mode=read] .resources{display:block;border-top:1px solid var(--rule);margin-top:1rem;padding-top:1.6rem;font-family:var(--sans)}
.resources{display:none}
.resources h2{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:0 0 .8rem}
.resources ul{padding-left:1.1rem;line-height:1.6}
.resources .cites li{font-size:.92rem;color:var(--ink-secondary)}
.resources .updated{font-size:.88rem;color:var(--ink-muted)}

/* ---------- print and ?print: every slide at its last state, one per page ---------- */
@page{size:1600px 900px;margin:0}
@media print{
 html,body{background:var(--paper-main)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .chrome,.phs,.overview,.help,.orient,.skip,.reading-head,.resources,.edbar,.edver{display:none!important}
 .deck,.deck[data-mode]{position:static!important;max-width:none!important;padding:0!important;margin:0!important;overflow:visible!important}
 .deck .stage{position:static!important;transform:none!important;width:1600px!important;height:auto!important}
 .deck .slide{position:relative!important;inset:auto!important;width:1600px!important;height:900px!important;visibility:visible!important;opacity:1!important;
  break-after:page;page-break-after:always;break-inside:avoid;overflow:hidden!important;border:0!important}
 .deck .slide:last-child{break-after:auto;page-break-after:auto}
 .deck [data-from],.deck .fig [data-from]{opacity:1!important}
 .deck [data-until],.deck .fig [data-until]{display:none!important}
 .out .url{display:none!important}
 .print-only{display:block!important}
 .screen-only{display:none!important}
}
.print-only{display:none}
html.print .chrome,html.print .phs,html.print .overview,html.print .help,html.print .orient,html.print .reading-head,html.print .resources{display:none!important}
html.print .edbar,html.print .edver{display:none!important}
html.print .deck{position:static!important;padding:0!important;max-width:none!important}
html.print .deck .stage{position:static!important;transform:none!important;width:1600px!important;height:auto!important;margin:0 auto}
html.print .deck .slide{position:relative!important;inset:auto!important;width:1600px!important;height:900px!important;visibility:visible!important;opacity:1!important;margin:0 auto 24px;box-shadow:0 0 0 1px var(--rule-strong)}
html.print .deck [data-from]{opacity:1!important}
html.print .deck [data-until]{display:none!important}
html.print .a1[data-entrance] .s,html.print .a1[data-entrance] .tr{animation:none!important}html.print .a1 .tr{display:none!important}html.print .s-title .replay{display:none!important}
html.print .s-title .markbox{visibility:visible!important}
html.print .print-only{display:block}
html.print .screen-only{display:none}
html.print .out .url{display:none}

/* real print wins over the on-screen print preview: no gap and no frame between pages */
@media print{.a1[data-entrance] .s,.a1[data-entrance] .tr{animation:none!important}.a1 .tr{display:none!important}.s-title .replay{display:none!important}.s-title .markbox{visibility:visible!important}.foot .out{flex-wrap:wrap;row-gap:0}.foot .out .url{flex-basis:100%}html.print .deck .slide,.deck .slide{margin:0!important;box-shadow:none!important}html,body{height:auto!important}.sr{display:none!important}}

/* reading mode on a phone: nothing wider than the screen (the sweep of 14 Oct 2026) */
.deck[data-mode=read] .s-distill .demo .cmd,.deck[data-mode=read] .s-distill .demo .cmd code{white-space:normal;word-break:break-word}
.deck[data-mode=read] .s-distill .demo .st{grid-template-columns:1fr}
.deck[data-mode=read] .s-orient .mapwrap svg,.deck[data-mode=read] .s-orient .comp svg,.deck[data-mode=read] .s-orient .tlwrap svg{height:auto;max-width:100%}
.deck[data-mode=read] .fig{max-width:100%;height:auto}
.deck[data-mode=read] .slide .foot .acts{flex-wrap:wrap}
/* a narrow screen reads one column: the two-column paragraphs and the paired introductions fall into one */
@media (max-width:700px){.deck[data-mode=read] .slide .top{display:block}.deck[data-mode=read] .slide .top>*+*{margin-top:.8rem}.deck[data-mode=read] .s-orient .intro,.deck[data-mode=read] .s-census .top .body{column-count:1}}
