

/* ---- Typefaces ----
   Reading text is STIX Two Text, the same design as the STIX Two math font
   MathJax sets the papers' formulas in, so prose and mathematics share one
   face; interface text is Source Sans 3. Both are SIL OFL fonts, subset and
   renamed (Source Sans 3's licence reserves "Source", and STIX is an IEEE
   trademark) by
   tools/meta/dissemination/build_plectis_web_fonts.py, with the licences in
   assets/fonts/. Plectis Math is STIX Two Math's arrows and operators for the
   characters the text faces lack; its unicode-range means a page downloads it
   only when it prints one. Each math file is declared for both styles and the
   whole weight range, so the browser never slants or thickens an operator
   inside italic or bold text, as in typeset mathematics. The two fallback
   faces are local Times New Roman and Arial scaled to the web faces' widths
   and line metrics (numbers from the font builder's report), so lines do not
   move when the web fonts arrive. */
@font-face { font-family: "Plectis Serif"; src: url("fonts/plectis-serif.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Plectis Serif"; src: url("fonts/plectis-serif-italic.woff2") format("woff2"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Plectis Sans"; src: url("fonts/plectis-sans.woff2") format("woff2"); font-weight: 200 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Plectis Sans"; src: url("fonts/plectis-sans-italic.woff2") format("woff2"); font-weight: 200 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Plectis Math"; src: url("fonts/plectis-math.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; unicode-range: U+2190-21FF, U+2200-2211, U+2213-22FF; }
@font-face { font-family: "Plectis Math"; src: url("fonts/plectis-math.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; unicode-range: U+2190-21FF, U+2200-2211, U+2213-22FF; }
@font-face { font-family: "Plectis Math"; src: url("fonts/plectis-math-extra.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; unicode-range: U+2300-23FF, U+25A0-25FF, U+27C0-27FF, U+2980-29FF, U+2A00-2AFF; }
@font-face { font-family: "Plectis Math"; src: url("fonts/plectis-math-extra.woff2") format("woff2"); font-weight: 100 900; font-style: italic; font-display: swap; unicode-range: U+2300-23FF, U+25A0-25FF, U+27C0-27FF, U+2980-29FF, U+2A00-2AFF; }
@font-face { font-family: "Plectis Serif Fallback"; src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"); size-adjust: 105.63%; ascent-override: 72.14%; descent-override: 22.53%; line-gap-override: 23.67%; }
@font-face { font-family: "Plectis Sans Fallback"; src: local("Arial"), local("ArialMT"), local("Liberation Sans"); size-adjust: 94.72%; ascent-override: 108.11%; descent-override: 42.23%; line-gap-override: 0%; }


@font-face { font-family: "Plectis MathML"; src: url("fonts/plectis-mathml.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
math { font-family: "Plectis MathML", math; }

:root {
  
  --page: #f8f0e2;
  --surface: #fffdf7;
  --surface-sunk: #f1e7d4;
  --ink: #191520;
  --ink-soft: #342d3d;
  
  --muted: #544d5d;
  --faint: #6d6473;
  --rule: #eaddc9;
  --rule-strong: #d9c7ae;
  
  --rule-control: #96836a;
  --accent: #29527b;
  --accent-strong: #1b3f65;
  
  --accent-wash: #e1ebf4;
  
  --select-bg: #f6e2b2;
  
  --wash-warm: #9a322c;
  --wash-warm-a: 7%;
  --wash-cool: #2a5982;
  --wash-cool-a: 7%;
  --wash-rose: #c9679f;
  --wash-rose-a: 4%;
  --wash-ember: #d06034;
  --wash-ember-a: 4%;
  
  --thread: linear-gradient(90deg,
    #1c1526 0%, #3f2240 9%, #7e2f30 20%, #c4594d 29%, #a8443d 36%,
    #46304f 49%, #2c4a6c 60%, #7fa9cb 69%, #4d7fa9 77%, #2e3352 89%, #1c1526 100%);
  --thread-alpha: 0.95;
  
  --edge: #8d8072;
  --code-bg: #f2e8d2;
  --code-ink: #37232c;
  
  --ink-rgb: 27, 20, 35;
  --on-accent: #ffffff;
  
  --ink-press: #08050c;
  
  --scrim: rgba(27, 20, 35, 0.36);

  
  --max: 1080px;
  --prose: 660px;
  --docs-max: 1320px;
  --reader-stage-max: 1040px;
  --topbar-h: 58px;

  
  --font-serif: "Plectis Serif", "Plectis Math", "Plectis Serif Fallback", "Iowan Old Style", Georgia, serif;
  --font-sans: "Plectis Sans", "Plectis Math", "Plectis Sans Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, system-ui, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

  
  --fs-micro: 0.75rem;    
  --fs-small: 0.8125rem;  
  --fs-meta:  0.875rem;   
  --fs-body:  0.9375rem;  
  --fs-base:  1rem;       
  --fs-h3:    1.0625rem;  
  --fs-lede:  1.125rem;   
  --fs-h2:    1.1875rem;  
  --lh-tight: 1.2;
  --lh-snug:  1.4;
  --lh-body:  1.62;
  --tracking-eyebrow: 0.12em;
  --tracking-label: 0.1em;
  --tracking-kicker: 0.08em;  

  
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.75rem;
  --space-8: 3.5rem;
  --gutter: 24px;           
  
  --stack-major: 2.25rem;
  --stack-minor: 1.15rem;
  --stack-pad: 1.2rem;
  
  --section-y: 72px;

  
  --r-xs: 4px;    
  --r-sm: 6px;    
  --r-control: 7px; 
  --r-md: 8px;    
  --r-lg: 10px;   
  --r-xl: 12px;   
  --r-pill: 999px;

  
  --shadow: 0 1px 2px rgba(var(--ink-rgb), 0.04), 0 6px 22px rgba(var(--ink-rgb), 0.05);
  --shadow-pop: 0 18px 60px rgba(var(--ink-rgb), 0.22);

  
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 0.12s;
  --dur: 0.16s;
  --dur-slow: 0.2s;

  
  --ease-out: cubic-bezier(0.2, 0.75, 0.25, 1);
  --motion-fast: 140ms;   
  --motion-ui: 190ms;     
  --motion-panel: 260ms;  

  
  --reading-measure: 40rem;
  
  --measure-note: 66ch;

  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  scroll-behavior: auto; scroll-padding-top: calc(var(--topbar-h) + 8px);
}

body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1;
  
  font-variant-numeric: proportional-nums;
}


body { position: relative; }
body::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 760px;
  pointer-events: none; z-index: -1;
  background:
    radial-gradient(120% 103% at 16% -12%, color-mix(in srgb, var(--wash-warm) var(--wash-warm-a), transparent), transparent 68%),
    radial-gradient(95% 89% at 97% -7%, color-mix(in srgb, var(--wash-cool) var(--wash-cool-a), transparent), transparent 64%),
    radial-gradient(48% 48% at 70% 12%, color-mix(in srgb, var(--wash-rose) var(--wash-rose-a), transparent), transparent 60%),
    radial-gradient(55% 41% at 26% 60%, color-mix(in srgb, var(--wash-ember) var(--wash-ember-a), transparent), transparent 58%),
    radial-gradient(110% 68% at 50% -21%, color-mix(in srgb, var(--accent-wash) 30%, transparent), transparent 74%);
  
  -webkit-mask-image: linear-gradient(to bottom, #000 0 60%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 0 60%, transparent 100%);
}


body::after {
  content: ""; position: fixed; top: 0; left: 0; right: 0; height: 2px;
  pointer-events: none; z-index: 60;
  background: var(--thread);
  opacity: var(--thread-alpha);
}
@media print { body::after { display: none; } }


::selection { background: var(--select-bg); color: var(--ink); }

::target-text { background: var(--select-bg); color: var(--ink); }

h1, h2, h3, h4 { overflow-wrap: anywhere; margin: 0; font-weight: 600; color: var(--ink); text-wrap: balance; }
h1, h2 { font-family: var(--font-serif); font-weight: 600; letter-spacing: -0.01em; line-height: var(--lh-tight); }
p { margin: 0; }

/* ----------------------------------------------------------------------------
   Dark mode — re-point semantic colour tokens only.
   The whole sheet reads var(--page)/var(--ink)/var(--rule)/… so the cascade
   carries the theme with no per-component overrides. Same design language,
   deeper register: the ground is the violet of the entangled-photon
   photograph (OKLCH hue about 306, each neutral at the lightness its
   contrast ratios were checked at) under bone ink, with the red and azure
   inks lifted for legibility. Luminous, never neon; crisp 1px rules; no
   pure-black. WCAG-AA verified.
---------------------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --page: #1c1526;
    --surface: #272132;
    --surface-sunk: #2f2839;
    --ink: #f2e6d4;
    --ink-soft: #ddcdbb;
    --muted: #bcb8c6;
    --faint: #a6a2b1;
    --rule: #363040;
    --rule-strong: #484251;
    /* See the light-mode note: control boundaries need 3:1, decorative rules do
       not. 3.38:1 vs --page, 3.18:1 vs --surface; --rule-strong was 1.79:1. */
    --rule-control: #757080;
    --accent: #97c1df;
    --accent-strong: #bdd8ec;
    --accent-wash: #203244;
    --select-bg: #58411b;
    --edge: #817b8c;
    --code-bg: #221c2c;
    --code-ink: #e4d3bd;
    --ink-rgb: 0, 0, 0;          /* shadows read as depth against dark paper */
    --on-accent: #1c1526;         /* dark text sits on the lifted accent */
    --ink-press: #ffffff;         /* ink-filled controls brighten toward white on press */
    --scrim: rgba(13, 5, 22, 0.62);
    /* Light on dark: the photograph's red and azure on its violet ground.
       Strengths are set in the dark-strength block further down. */
    --wash-warm: #b84e45;
    --wash-warm-a: 13%;
    --wash-cool: #4d7fa9;
    --wash-cool-a: 10%;
    --wash-rose: #c4508e;
    --wash-rose-a: 6%;
    --wash-ember: #c8552e;
    --wash-ember-a: 6%;
    --thread-alpha: 0.85;
    color-scheme: dark;
  }
  /* Slightly deepen elevation so raised surfaces separate on dark paper. */
  :root:not([data-theme]) {
    --shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 26px rgba(0, 0, 0, 0.36);
    --shadow-pop: 0 20px 64px rgba(0, 0, 0, 0.55);
  }
  /* The sticky headers use color-mix over --page; that holds on dark. */
}

/* ── Manual theme override ────────────────────────────────────────────────────
   The header toggle (injected by docs.js) stamps data-theme="dark"|"light" on
   <html>. The prefers-color-scheme media blocks above and below now read
   :root:not([data-theme]) so they only speak for the no-explicit-choice default;
   an explicit choice is carried entirely by these attribute rules and wins by
   specificity. Dark values MIRROR the @media (prefers-color-scheme: dark) blocks
   — keep the two in sync. Light needs no block: the base :root is already light,
   and the media blocks opt out the moment data-theme is present. */
:root[data-theme="dark"] {
  --page: #1c1526;
  --surface: #272132;
  --surface-sunk: #2f2839;
  --ink: #f2e6d4;
  --ink-soft: #ddcdbb;
  --muted: #bcb8c6;
  --faint: #a6a2b1;
  --rule: #363040;
  --rule-strong: #484251;
  --rule-control: #757080;
  --accent: #97c1df;
  --accent-strong: #bdd8ec;
  --accent-wash: #203244;
  --select-bg: #58411b;
  --edge: #817b8c;
  --code-bg: #221c2c;
  --code-ink: #e4d3bd;
  --ink-rgb: 0, 0, 0;
  --on-accent: #1c1526;
  --ink-press: #ffffff;
  --scrim: rgba(13, 5, 22, 0.62);
  --wash-warm: #b84e45;
  --wash-warm-a: 13%;
  --wash-cool: #4d7fa9;
  --wash-cool-a: 10%;
  --wash-rose: #c4508e;
  --wash-rose-a: 6%;
  --wash-ember: #c8552e;
  --wash-ember-a: 6%;
  --thread-alpha: 0.85;
  color-scheme: dark;
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 26px rgba(0, 0, 0, 0.36);
  --shadow-pop: 0 20px 64px rgba(0, 0, 0, 0.55);
  --link-ext: #e6b264;
  --warn-warm: #e08a58;
  --pm-wash: #272031;
  --pm-rail: #dcb166;
  --pm-lead-compression: #bdd8ec;
  --pm-lead-detail: #92a8de;
  --pm-rail-soft: #514028;
  --pm-source-fill: #282132;
  --pm-source-fill-hover: #30293a;
  --pm-source-inset: #1f192a;
  --pm-source-border: #a87f42;
  --pm-source-border-soft: #60492f;
  --pm-source-path: #e4ca90;
  --dcard-axiom: #90a9e8;
  --dcard-principle: #e0b860;
  --dcard-anti: #e07d50;
  --dcard-anti-rgb: 224, 125, 80;
}

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-strong); text-decoration: underline; text-underline-offset: 0.18em; }


button, input, select, textarea { font-family: inherit; }

input, textarea { caret-color: var(--accent); }

.docs-article p a,
.obj-coverage p a,
.section__head p a,
.lead-list a,
.callout a,
.contact-line a,
p.muted a { text-decoration: underline; text-underline-offset: 0.18em; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

:where(a, button, input, summary, [tabindex]):where(:focus-visible) { border-radius: 3px; }
/* The one deliberate exception, and it removes nothing a reader can reach.
   <main id="main"> carries tabindex="-1" purely so the skip link can land focus
   on it (SC 2.4.1); it is never in the Tab sequence. Without this the rule above
   would draw a 2px ring around the entire content column the moment the skip
   link was used. Scoped to #main by id so no other focus indicator is touched --
   and nothing else in this stylesheet removes an outline outside a :focus
   context. */
main#main:focus,
main#main:focus-visible { outline: none; }

/* ── Link grammar: endogenous (stays in Microcosm) vs exogenous (leaves it) ───
   The operator's ask: a click that goes off-site (Source / GitHub / License)
   must not read identically to one that stays, and a depth-jump into the
   reference index ("Read the full module") must not look like an inline prose
   link. Signalled by BOTH a distinct colour AND a non-colour cue (an outbound
   ↗ on exogenous, a → on reference), so it satisfies WCAG 1.4.1 — never colour
   alone. `data-link-kind` is stamped by the builder: `exogenous` = absolute
   off-site href (mark_external_links); `reference` = an in-site jump into the
   reference index. Plain in-site links carry no marker and keep the accent
   style above. */
:root { --link-ext: #8f6212; }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) { --link-ext: #e6b264; } }


:root { --warn-warm: #a8481e; }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) { --warn-warm: #e08a58; } }


:root {
  --pm-wash: #f6ead2;
  --pm-rail: #8a5f0e;
  --pm-lead-compression: #29527b;
  --pm-lead-detail: #1b3f65;
  --pm-rail-soft: #e5d2ac;
  --pm-source-fill: #f1e3c4;
  --pm-source-fill-hover: #ead8b0;
  --pm-source-inset: #fcf4e2;
  --pm-source-border: #a5761e;
  --pm-source-border-soft: #d5bd92;
  --pm-source-path: #7a591b;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --pm-wash: #272031;
    --pm-rail: #dcb166;
    --pm-lead-compression: #bdd8ec;
    --pm-lead-detail: #92a8de;
    --pm-rail-soft: #514028;
    --pm-source-fill: #282132;
    --pm-source-fill-hover: #30293a;
    --pm-source-inset: #1f192a;
    --pm-source-border: #a87f42;
    --pm-source-border-soft: #60492f;
    --pm-source-path: #e4ca90;
  }
}

a[data-link-kind="exogenous"] { color: var(--link-ext); }
a[data-link-kind="exogenous"]:hover { color: var(--link-ext); }
a[data-link-kind="exogenous"]::after {
  content: "\2197";                 
  display: inline-block; margin-left: 0.14em;
  font-size: 0.8em; line-height: 1; vertical-align: baseline;
  text-decoration: none;
}

.link-row[data-link-kind="exogenous"]::after { content: none; }

a[data-link-kind="reference"] { color: var(--accent); font-weight: 600; white-space: nowrap; }
a[data-link-kind="reference"]::after {
  content: "\2192";                 
  margin-left: 0.25em; color: var(--muted); font-weight: 400;
}
a[data-link-kind="reference"]:hover,
a[data-link-kind="reference"]:hover::after { color: var(--accent-strong); }

.docs-main .narrative-ref {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: var(--accent);
  text-decoration-color: color-mix(in srgb, var(--accent) 36%, transparent);
  text-decoration-thickness: 0.06em;
  text-underline-offset: 0.16em;
  transition: color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);
}

.docs-main .narrative-ref:hover {
  color: var(--accent-strong);
  text-decoration-color: var(--accent-strong);
}

.docs-main .narrative-ref--axiom,
.docs-main .narrative-ref--principle {
  text-decoration-style: dotted;
}

.docs-main .narrative-ref:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}


a.narrative-ref--term {
  color: inherit;
  
  text-decoration-line: none;
  text-decoration-style: dashed;
  text-decoration-color: color-mix(in srgb, var(--accent) 30%, transparent);
  text-decoration-thickness: 0.06em;
  text-underline-offset: 0.16em;
  cursor: help;
  transition: color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);
}
a.narrative-ref--term:hover {
  color: var(--accent-strong);
  text-decoration-color: var(--accent-strong);
}

a.narrative-ref--term:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

a.narrative-ref--term.is-term-first {
  color: inherit;
  text-decoration-line: none;
  text-decoration-style: dotted;
  text-decoration-color: color-mix(in srgb, var(--accent) 32%, transparent);
  text-decoration-thickness: 0.045em;
  text-underline-offset: 0.18em;
}
a.narrative-ref--term.is-term-first:hover {
  color: var(--accent-strong);
  text-decoration-color: var(--accent-strong);
}

a.narrative-ref--term.is-term-again {
  color: inherit;
  text-decoration-line: none;
}
a.narrative-ref--term.is-term-again:hover,
a.narrative-ref--term.is-term-again:focus-visible {
  color: var(--accent-strong);
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: var(--accent-strong);
}

html:not(.scripting) a.narrative-ref--term {
  color: inherit;
  
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: color-mix(in srgb, var(--accent) 32%, transparent);
  text-decoration-thickness: 0.045em;
  text-underline-offset: 0.18em;
}
html:not(.scripting) a.narrative-ref--term:hover {
  color: var(--accent-strong);
  text-decoration-color: var(--accent-strong);
}


.term-tip {
  position: fixed;
  z-index: 50;
  width: 22rem;
  max-width: calc(100vw - 1rem);
  margin: 0;
  padding: 0.5rem 0.7rem;
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--rule-strong);
  border-radius: 8px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.14);
  font-size: 0.86rem;
  line-height: 1.42;
}
.term-tip[hidden] { display: none; }
.term-tip[data-placement="above"] { transform-origin: left bottom; }
.term-tip[data-placement="below"] { transform-origin: left top; }
.term-tip[data-placement="side"] { transform-origin: left top; }
.term-tip__label { font-weight: 600; }
.term-tip__text { margin-top: 0.1rem; color: var(--ink-soft); }
.term-tip__cue { margin-top: 0.3rem; color: var(--muted); font-size: 0.76rem; }
.term-tip__escape {
  margin-top: 0.2rem;
  color: color-mix(in srgb, var(--muted) 72%, transparent);
  font-size: 0.68rem;
  letter-spacing: 0.01em;
  text-align: right;
}


.term-tip.is-expanded { width: 25rem; max-width: calc(100vw - 1rem); max-height: 70vh; overflow-y: auto; padding: 0.65rem 0.85rem; }
.term-tip__rule { margin-top: 0.45rem; color: var(--ink-soft); font-size: 0.82rem; }
.term-tip__deep {
  margin-top: 0.45rem; padding-top: 0.45rem;
  border-top: 1px solid var(--rule); color: var(--ink-soft);
}
.term-tip__full {
  display: inline-block; margin-top: 0.55rem;
  color: var(--accent); font-weight: 600; font-size: 0.82rem; text-decoration: none;
}
.term-tip__full:hover { color: var(--accent-strong); text-decoration: underline; }
.term-tip__actions { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
.term-tip__back {
  appearance: none; margin-top: 0.55rem; padding: 0; border: 0; background: none;
  color: var(--ink-soft); font: inherit; font-size: 0.82rem; cursor: pointer;
  text-decoration: underline; text-underline-offset: 0.16em;
}
.term-tip__back:hover { color: var(--ink); }
.term-tip__rule[hidden], .term-tip__deep[hidden], .term-tip__full[hidden], .term-tip__back[hidden] { display: none; }

@media (pointer: coarse), (max-width: 640px) {
  .term-tip__actions { align-items: center; row-gap: 0.2rem; }
  .term-tip__back, .term-tip__full {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 0.2rem;
  }
}


.docs-main .doctrine-map {
  display: grid;
  
  grid-template-columns: repeat(auto-fit, minmax(min(33rem, 100%), 1fr));
  gap: 16px;
  margin: 26px 0 10px;
}
.docs-main .doctrine-map__col {
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: var(--surface-sunk);
  padding: 16px 18px 8px;
}
.docs-main .doctrine-map__heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  color: var(--ink);
}

.docs-main .doctrine-map__status {
  flex: none;
  padding: 2px 9px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  background: var(--surface);
  font-size: var(--fs-micro);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.docs-main .doctrine-map__note {
  margin: 4px 0 8px;
  font-size: 0.85rem;
  color: var(--muted);
}
.docs-main .doctrine-map__row {
  display: grid;
  grid-template-columns: minmax(7.5rem, max-content) 1fr auto;
  gap: 4px 14px;
  align-items: baseline;
  padding: 10px 0;
  border-top: 1px solid var(--rule);
}
.docs-main .doctrine-map__kind {
  font-weight: 600;
  color: var(--ink);
}

.docs-main .doctrine-map__kind a.narrative-ref--term,
#the-operating-loop + p + ul > li > a.narrative-ref--term:first-child {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: color-mix(in srgb, var(--accent) 32%, transparent);
  text-decoration-thickness: 0.045em;
  text-underline-offset: 0.18em;
}
.docs-main .doctrine-map__kind a.narrative-ref--term:hover,
#the-operating-loop + p + ul > li > a.narrative-ref--term:first-child:hover {
  color: var(--accent-strong);
  text-decoration-color: var(--accent-strong);
}
.docs-main .doctrine-map__gloss {
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.docs-main .doctrine-map__route {
  grid-column: 3;
  justify-self: end;
  align-self: center;
  white-space: nowrap;
  font-size: var(--fs-small);
  color: var(--accent-strong);
  text-decoration: none;
}
.docs-main .doctrine-map__route:hover { color: var(--accent); text-decoration: underline; }
.docs-main .doctrine-map__route-arrow { font-family: var(--font-mono); }

h2 > .section-route { color: inherit; text-decoration: none; }
h2 > .section-route:hover,
h2 > .section-route:focus-visible { color: var(--accent); }
h2 > .section-route .section-route__arrow {
  font-family: var(--font-mono);
  font-size: 0.72em;
  opacity: 0.45;
}
h2 > .section-route:hover .section-route__arrow,
h2 > .section-route:focus-visible .section-route__arrow { opacity: 1; }

.docs-main .doctrine-map__scope {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-left: 2px solid var(--accent);
  background: var(--accent-wash);
  border-radius: 0 8px 8px 0;
  font-size: 0.9rem;
  color: var(--ink-soft);
}
.docs-main .doctrine-map__caption {
  margin: 8px 0 0;
  font-size: 0.88rem;
  color: var(--muted);
}
@media (max-width: 640px) {
  
  .docs-main .doctrine-map__row { grid-template-columns: 1fr; gap: 3px 0; }
  .docs-main .doctrine-map__route {
    grid-column: 1; justify-self: start; margin-top: 4px;
  }
}


.docs-main .dcard-group { margin: 24px 0 0; }
.docs-main .dcard-group__title {
  margin: 0 0 2px;
  font-size: var(--fs-h3);
  color: var(--ink);
}
.docs-main .dcard-group__note {
  margin: 0 0 10px;
  font-size: var(--fs-small);
  color: var(--muted);
}
.docs-main .dcard-list { display: grid; gap: 8px; }
.docs-main .dcard {
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: var(--surface);
}
.docs-main .dcard[open] { border-color: var(--rule-strong); }
.docs-main .dcard__summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  display: block;
  padding: 12px 40px 12px 16px;
}
.docs-main .dcard__summary::-webkit-details-marker { display: none; }
.docs-main .dcard__head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.docs-main .dcard__id {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--accent-strong);
}
.docs-main .dcard__name { font-weight: 600; color: var(--ink); }
.docs-main .dcard__plain {
  display: block;
  margin-top: 5px;
  color: var(--ink-soft);
  font-size: var(--fs-body);
  line-height: 1.5;
}

.docs-main .dcard__summary::after {
  content: "";
  position: absolute;
  right: 17px;
  top: 17px;
  width: 7px;
  height: 7px;
  border-right: 1.6px solid var(--muted);
  border-bottom: 1.6px solid var(--muted);
  transform: rotate(45deg);
  transition: transform var(--dur) var(--ease), border-color var(--dur-fast) var(--ease);
}
.docs-main .dcard[open] .dcard__summary::after { transform: rotate(225deg); top: 20px; }
.docs-main .dcard__summary:hover .dcard__name { color: var(--accent-strong); }
.docs-main .dcard__summary:hover::after { border-color: var(--accent-strong); }
.docs-main .dcard__summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  border-radius: 10px;
}
.docs-main .dcard__clause,
.docs-main .dcard__rel,
.docs-main .dcard__refs {
  margin: 0;
  padding: 10px 16px;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-meta);
  line-height: 1.55;
  color: var(--ink-soft);
}
.docs-main .dcard__label {
  display: block;
  margin-bottom: 3px;
  color: var(--faint);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.docs-main .dcard__clause-text {
  color: var(--ink);
}
.docs-main .dcard__chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
}
.docs-main .dcard__chip {
  display: inline-block;
  padding: 1px 7px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  background: var(--surface-sunk);
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  color: var(--accent-strong);
  text-decoration: none;
}
.docs-main a.dcard__chip:hover {
  border-color: var(--accent);
  color: var(--accent-strong);
  background: var(--accent-wash);
}
.docs-main .dcard__chip--flat { color: var(--muted); }
.docs-main .dcard__refs { font-size: var(--fs-small); }


.docs-main .dcard__deep,
.docs-main .dcard__formal,
.docs-main .dcard__triad,
.docs-main .dcard__clause {
  margin: 0;
  padding: 12px 16px;
  border-top: 1px solid var(--rule);
}
.docs-main .dcard__deep {
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--ink-soft);
}
.docs-main .dcard__formal {
  background: var(--surface-sunk);
}
.docs-main .dcard__math {
  display: block;
  margin: 4px 0 2px;
  font-family: var(--font-serif);
  font-size: 1.04rem;
  line-height: 1.7;
  color: var(--ink);
  overflow-x: auto;
}
.docs-main .dcard__math i { font-style: italic; }
.docs-main .dcard__math sub,
.docs-main .dcard__math sup { font-size: 0.74em; }
.docs-main .dcard__mtext {
  font-style: normal;
  font-family: var(--font-serif);
}
.docs-main .dcard__reads {
  display: block;
  margin-top: 6px;
  font-size: var(--fs-meta);
  color: var(--muted);
}
.docs-main .dcard__symbols {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dotted var(--rule);
}
.docs-main .dcard__sym {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  font-size: var(--fs-small);
}
.docs-main .dcard__sym-k {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--ink);
  min-width: 1.1em;
}
.docs-main .dcard__sym-v { color: var(--muted); }
.docs-main .dcard__latex-raw {
  font-family: var(--font-mono);
  font-size: 0.86em;
  background: var(--code-bg);
  color: var(--code-ink);
  padding: 1px 5px;
  border-radius: 4px;
}
.docs-main .dcard__triad {
  display: grid;
  gap: 6px 14px;
}
.docs-main .dcard__tri {
  display: grid;
  grid-template-columns: minmax(5.5rem, max-content) 1fr;
  gap: 4px 14px;
  align-items: baseline;
}
.docs-main .dcard__tri .dcard__label { margin-bottom: 0; }
.docs-main .dcard__tri-text { color: var(--ink-soft); font-size: var(--fs-meta); }
.docs-main .dcard__label--good { color: var(--accent-strong); }
.docs-main .dcard__label--bad { color: var(--warn-warm); }
.docs-main .dcard__chip--organ {
  font-family: var(--font-sans);
  border-radius: 6px;
}


.docs-main .dcard__ladder {
  border-top: 1px solid var(--rule);
  background: var(--accent-wash);
}
.docs-main .dcard__ladder > * { border-top: 1px solid var(--rule); }
.docs-main .dcard__ladder > :first-child { border-top: none; }
.docs-main .dcard__analogy {
  margin: 0;
  padding: 12px 16px;
  font-size: var(--fs-meta);
  line-height: 1.55;
  color: var(--ink-soft);
}
.docs-main .dcard__analogy-text { display: block; color: var(--ink); }
.docs-main .dcard__maps {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dotted var(--rule);
}
.docs-main .dcard__map {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 4px 10px;
  align-items: baseline;
  font-size: var(--fs-small);
}
.docs-main .dcard__map-d { color: var(--ink); text-align: right; }
.docs-main .dcard__map-link {
  color: var(--faint);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.docs-main .dcard__map-a { color: var(--muted); }
.docs-main .dcard__analogy-bound {
  display: block;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dotted var(--rule);
  color: var(--muted);
  font-size: var(--fs-small);
}
.docs-main .dcard__bound-label {
  margin-right: 7px;
  color: var(--warn-warm);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
@media (max-width: 640px) {
  .docs-main .dcard__label { display: block; }
  .docs-main .dcard__tri { grid-template-columns: 1fr; gap: 1px; }
  .docs-main .dcard__map { grid-template-columns: 1fr; gap: 1px; }
  .docs-main .dcard__map-d { text-align: left; }
}


.comp-card__summary:focus-visible,
.comp-card[open] .comp-card__summary:focus-visible {
  outline-offset: -2px;
  border-radius: inherit;
}

.comp-card[open] .comp-card__summary:focus-visible { outline-color: var(--accent-strong); }
.cmdk__panel :focus-visible {
  outline-offset: -2px;
}

code, kbd, pre { font-family: var(--font-mono); }
:where(p, li) code {
  background: var(--code-bg);
  color: var(--code-ink);
  padding: 0.12em 0.36em;
  border-radius: 4px;
  font-size: 0.88em;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.eyebrow {
  font-size: var(--fs-micro);
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--faint);
  font-family: var(--font-sans);
  /* Tracked capitals are wide, so a three-word eyebrow wraps on a phone. Left
     to the browser it breaks after the last word that fits and drops one word
     onto the second line; balanced, the two lines come out even. */
  text-wrap: balance;
}
/* Eyebrows carry no leading rule. The tracked grey capitals already read as a
   label, and a dash-shaped tick in front of the first line of copy reads as an
   em dash the page does not use. */

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 50;
  background: var(--ink); color: var(--page); padding: 0.6rem 0.9rem; border-radius: 0 0 6px 0;
}
.skip-link:focus { left: 0; }


.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}


.wrap { width: min(var(--max), calc(100% - var(--gutter) * 2)); margin-inline: auto; }

.site-header {
  container: page-chrome / inline-size;
  position: sticky; top: 0; z-index: 30;
  background: var(--page);
  border-bottom: 1px solid var(--rule);
}
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .35rem 1.5rem;
  min-height: 60px; padding-block: .5rem;
}

.wordmark {
  display: inline; white-space: nowrap;
  font-family: var(--font-serif);
  font-size: 1.18rem; font-weight: 600; letter-spacing: -0.01em;
  color: var(--ink);
}
.wordmark:hover { text-decoration: none; color: var(--ink); }

.wordmark__mark {
  width: 26px; height: 26px; flex: none;
  display: inline-block;
  margin-right: 0.52rem;
  vertical-align: -0.36em;
}
@media (max-width: 480px) {
  
  .wordmark__mark { width: 22px; height: 22px; vertical-align: -0.25em; }
}

:root[data-theme="dark"] .wordmark__mark { content: url("favicon-night.svg"); }
:root[data-theme="light"] .wordmark__mark { content: url("favicon-day.svg"); }

.btn__ext {
  font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  font-size: 0.92em; font-weight: 500;
  opacity: 0.6;
  margin-left: 0.1em;
}


.brand-ladder { display: inline-flex; align-items: baseline; gap: 0.5rem; min-width: 0; }
.brand-ladder__up {
  font-family: var(--font-sans);
  font-size: 0.84rem;
  color: var(--muted);
  white-space: nowrap;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.brand-ladder__up:hover { color: var(--accent); border-bottom-color: var(--accent); text-decoration: none; }
.brand-ladder__up:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
.brand-ladder__sep { color: var(--faint); font-size: 0.95rem; user-select: none; }

.docs-topbar .brand-ladder { margin-right: 0.4rem; }
.docs-topbar .brand-ladder .wordmark { margin-right: 0; }

.site-header nav { display: flex; flex-wrap: wrap; gap: .35rem 1.6rem; align-items: center; }
.site-header nav a { color: var(--ink-soft); font-size: 0.92rem; }
.site-header nav a:hover { color: var(--accent); text-decoration: none; }

a.nav-cue {
  color: var(--link-ext);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28em;
  text-decoration-color: color-mix(in srgb, var(--link-ext) 55%, transparent);
}
a.nav-cue:hover {
  color: var(--link-ext);
  text-decoration-color: var(--link-ext);
}

.site-header nav a.nav-cue { color: var(--link-ext); text-decoration: none; }
.site-header nav a.nav-cue:hover {
  color: var(--link-ext);
  text-decoration: underline;
  text-decoration-color: var(--link-ext);
}

a.nav-cue[data-link-kind="exogenous"]::after { content: none; }


.theme-toggle {
  flex: none; display: inline-flex; align-items: center;
  margin: 0; padding: 0; border: 0; background: none; cursor: pointer;
  line-height: 0; -webkit-tap-highlight-color: transparent;
}
.theme-toggle__track {
  position: relative; display: block; width: 2.9rem; height: 1.6rem;
  border-radius: var(--r-pill);
  background: var(--surface-sunk); border: 1px solid var(--rule-strong);
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.theme-toggle:hover .theme-toggle__track { border-color: var(--ink-soft); }
.theme-toggle__ico {
  position: absolute; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; color: var(--faint);
  transition: color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.theme-toggle__ico--sun { left: 0.36rem; color: var(--accent); }
.theme-toggle__ico--moon { right: 0.34rem; opacity: 0.5; }
.theme-toggle__ico svg { display: block; }
.theme-toggle__knob {
  position: absolute; top: 50%; left: 0.2rem;
  width: 1.2rem; height: 1.2rem; border-radius: 50%;
  background: var(--ink); box-shadow: 0 1px 2px rgba(var(--ink-rgb), 0.28);
  transform: translateY(-50%);
  
  transition: transform var(--dur-slow) var(--ease-out);
}
.theme-toggle[aria-checked="true"] .theme-toggle__knob { transform: translate(1.3rem, -50%); }
.theme-toggle[aria-checked="true"] .theme-toggle__ico--sun { color: var(--faint); opacity: 0.5; }
.theme-toggle[aria-checked="true"] .theme-toggle__ico--moon { opacity: 1; color: var(--accent); }
.theme-toggle:focus-visible { outline: none; }
.theme-toggle:focus-visible .theme-toggle__track { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .theme-toggle__knob, .theme-toggle__track, .theme-toggle__ico { transition: none; }
}

.docs-topbar__links .theme-toggle { margin-left: 0.15rem; }

html:not(.js) .site-header nav[aria-label="Primary"]::after,
html:not(.js) .docs-topbar__links::after {
  content: "";
  flex: none;
  width: 2.9rem;
  height: 1.6rem;
}
html:not(.js) .docs-topbar__links::after { margin-left: 0.15rem; }

.hero { padding: 92px 0 64px; }

main.hero {
  min-height: 100vh;
  min-height: 100svh;
  display: flex; flex-direction: column; justify-content: center;
  padding-block: 64px;
}
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 304px; gap: 52px; align-items: start; }

.hero__kicker,
.hero .eyebrow { margin-bottom: 1.2rem; }
.hero h1 {
  font-size: clamp(2.7rem, 5.6vw, 3.9rem);
  margin: 0 0 1.3rem;
}
.hero__lede {
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);
  line-height: var(--lh-snug); color: var(--ink-soft);
  
  max-width: 54ch;
  margin-bottom: 0.7rem;
  
  text-wrap: balance;
}

.hero__sub {
  font-size: var(--fs-lede); color: var(--muted);
  max-width: var(--measure-note); margin-bottom: 1.9rem;
  line-height: var(--lh-snug); text-wrap: pretty;
}

.hero__sub u {
  text-underline-offset: 0.18em; text-decoration-thickness: 1.5px;
  text-decoration-color: color-mix(in srgb, var(--link-ext) 62%, transparent);
}

.hero__modes { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.95rem; max-width: 740px; }

.hero__contact { margin: 1.4rem 0 0; font-size: var(--fs-meta); color: var(--muted); line-height: var(--lh-snug); overflow-wrap: anywhere; }
.hero__contact a { color: inherit; text-underline-offset: 0.18em; }
.hero__mode { display: grid; grid-template-columns: 16.5rem minmax(0, 1fr); gap: 0.35rem 1.15rem; align-items: center; }
.hero__mode > .btn { justify-self: start; margin: 0; }
.hero__mode-note { margin: 0; font-size: var(--fs-meta); color: var(--muted); line-height: var(--lh-snug); text-wrap: pretty; }
@media (max-width: 720px) {
  .hero__mode { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; }
  .hero__modes { gap: 1.15rem; }
}

.hero__ai { max-width: 800px; }
.hero__ai-status { display: block; }
.hero__stance {
  margin-top: var(--stack-major); padding-top: var(--stack-pad);
  border-top: 1px solid var(--rule);
  font-size: var(--fs-body); color: var(--muted); max-width: var(--measure-note);
}


.hero__start {
  background: var(--surface); border: 1px solid var(--rule);
  border-radius: var(--r-xl); padding: 1.1rem 1.2rem 0.5rem; box-shadow: var(--shadow);
}
.hero__start-title {
  font-size: var(--fs-micro); font-weight: 700; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--faint); margin-bottom: 0.5rem;
}
.btn {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.4rem;
  max-width: 100%; overflow-wrap: anywhere;
  font-size: 0.95rem; font-weight: 500;
  padding: 0.62rem 1.05rem; border-radius: var(--r-control);
  border: 1px solid transparent; cursor: pointer;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease),
              color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);
}
.btn--primary { background: var(--ink); color: var(--page); box-shadow: 0 1px 2px rgba(var(--ink-rgb), 0.14); }
.btn--primary:hover { background: var(--ink-press); color: var(--page); text-decoration: none; }
.btn--ghost { background: var(--surface); color: var(--ink); border-color: var(--rule-control); }
.btn--ghost:hover { border-color: var(--ink-soft); color: var(--ink); text-decoration: none; }

.btn--gold {
  background: color-mix(in srgb, var(--link-ext) 18%, var(--surface));
  color: color-mix(in srgb, var(--link-ext) 82%, var(--ink));
  border-color: color-mix(in srgb, var(--link-ext) 42%, transparent);
}
.btn--gold:hover {
  background: color-mix(in srgb, var(--link-ext) 28%, var(--surface));
  color: color-mix(in srgb, var(--link-ext) 82%, var(--ink));
  border-color: var(--link-ext);
  text-decoration: none;
}

.btn--primary:hover, .btn--ghost:hover, .btn--gold:hover, .btn--accent:hover { transform: translateY(-1px); }

.btn--primary:active, .btn--ghost:active { transform: translateY(1px); }
.btn--text { color: var(--accent); padding: 0.62rem 0.3rem; }
.btn--text:hover { color: var(--accent-strong); }
.btn--text::after { content: " \2192"; }
.btn__format {
  font-family: var(--font-mono); font-size: 0.68rem; line-height: 1;
  border-radius: var(--r-xs); padding: 0.16rem 0.28rem;
  color: var(--ink); background: var(--page);
}
.btn--ghost .btn__format { background: var(--surface-sunk); }

.section { padding: var(--section-y) 0; border-top: 1px solid var(--rule); }
.section__head { max-width: var(--prose); margin-bottom: 2rem; }

.section__head h2 {
  font-size: clamp(1.5rem, 3vw, 1.95rem); margin: 0.5rem 0 0.7rem;
  text-wrap: balance;
}
.section__head p { color: var(--muted); text-wrap: pretty; }

.section__head p + p, .section > p + p { margin-top: 0.8rem; }
.lead-list { max-width: var(--prose); margin: 0; padding: 0; list-style: none; display: grid; gap: 0.85rem; }
.lead-list li { padding-left: 1.3rem; position: relative; color: var(--ink-soft); }
.lead-list li::before {
  content: ""; position: absolute; left: 0; top: 0.62em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--accent);
}


.area-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem;
}
.area-card {
  display: flex; flex-direction: column; gap: 0.5rem;
  background: var(--surface); border: 1px solid var(--rule);
  border-radius: var(--r-xl); padding: 1.3rem 1.35rem;
  color: var(--ink); transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.area-card--sunk { background: var(--surface-sunk); }
.area-card--sunk .examples { border-top-color: var(--rule-strong); }
.area-card:hover { text-decoration: none; color: var(--ink); border-color: var(--rule-strong); transform: translateY(-2px); box-shadow: var(--shadow); }
.area-card h3 { font-size: var(--fs-h3); display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.area-card h3 .arrow { color: var(--faint); font-weight: 400; transition: transform var(--dur) var(--ease); }
.area-card:hover h3 .arrow { transform: translateX(3px); color: var(--accent); }
.area-card p { font-size: 0.92rem; color: var(--muted); }
.area-card .examples {
  margin-top: auto; padding-top: 0.7rem; border-top: 1px solid var(--rule);
  font-family: var(--font-mono); font-size: 0.76rem; color: var(--faint);
  letter-spacing: 0.01em;
}


.video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.video-card { margin: 0; background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-xl); overflow: hidden; }
.video-card__frame {
  aspect-ratio: 16 / 9; display: grid; place-items: center;
  background: var(--surface-sunk);
  background-size: cover; background-position: center;
  border-bottom: 1px solid var(--rule);
  color: var(--faint); position: relative; padding: 0;
}

.video-card__frame > span {
  font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid var(--rule-strong); border-radius: var(--r-pill); padding: 0.3rem 0.8rem;
}

.video-card__still {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center top; display: block;
}
.video-card__frame > .video-card__tag {
  position: absolute; left: 0.7rem; bottom: 0.7rem; z-index: 1;
  font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--r-pill);
  padding: 0.26rem 0.7rem; color: rgba(255, 255, 255, 0.85);
  background: rgba(0, 0, 0, 0.45);
}

a.video-card {
  display: block; text-decoration: none; color: inherit;
  transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
a.video-card:hover { border-color: var(--rule-strong); transform: translateY(-2px); }
a.video-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.video-card__go {
  display: inline-block; margin-top: 0.6rem;
  font-size: 0.85rem; font-weight: 500; color: var(--accent-strong);
}
a.video-card:hover .video-card__go { text-decoration: underline; }
.video-card__body { padding: 1.05rem 1.2rem 1.25rem; margin: 0; }
.video-card__body h3 { font-size: 1rem; margin-bottom: 0.3rem; }
.video-card__body p { font-size: 0.9rem; color: var(--muted); }


.link-rows { max-width: var(--prose); display: grid; gap: 0; }

.link-row {
  display: grid; grid-template-columns: minmax(9rem, 15rem) 1fr auto;
  align-items: baseline; gap: 0.3rem 1.4rem;
  padding: 0.95rem 0.6rem; margin-inline: -0.6rem; border-radius: var(--r-md);
  border-top: 1px solid var(--rule); color: var(--ink);
  transition: background var(--dur) var(--ease);
}
.link-row:hover { text-decoration: none; color: var(--ink); background: var(--surface-sunk); }
.link-row:last-child { border-bottom: 1px solid var(--rule); }
.link-row strong { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.link-row .desc { color: var(--muted); font-size: var(--fs-body); overflow-wrap: anywhere; }
.link-row .go { color: var(--accent); font-size: var(--fs-meta); white-space: nowrap; text-align: right; }
.link-row:hover .go,
.link-row:focus-visible .go { text-decoration: underline; text-underline-offset: 0.2em; }
.link-row[data-link-kind="exogenous"] .go { color: var(--link-ext); }
.link-row[data-link-kind="exogenous"] .go::after { content: " \2197"; }  
@media (max-width: 640px) {
  .link-row { grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; }
  .link-row .desc { grid-column: 1 / -1; }
}
.contact-line { margin-top: 1.6rem; font-size: 0.95rem; color: var(--ink-soft); }
.contact-line a { font-weight: 500; }

.verify-strip {
  margin: var(--stack-major) 0 0; padding: 1.4rem 1.5rem; background: var(--surface-sunk);
  border: 1px solid var(--rule); border-radius: var(--r-lg);
  font-size: var(--fs-body); color: var(--muted); max-width: var(--prose);
}
.verify-strip strong { color: var(--ink-soft); font-weight: 600; }


.orient-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3);
}
.orient-card {
  display: flex; flex-direction: column; gap: var(--space-2);
  min-width: 0; height: 100%;
  background: var(--surface); border: 1px solid var(--rule);
  border-radius: var(--r-lg); padding: var(--space-4) var(--space-4) var(--space-5);
  color: var(--ink);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.orient-card:hover {
  text-decoration: none; color: var(--ink);
  border-color: var(--rule-strong); transform: translateY(-2px); box-shadow: var(--shadow);
}
.orient-card__kicker {
  align-self: flex-start;
  font-family: var(--font-mono); font-size: var(--fs-micro);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--accent-strong);
  background: var(--accent-wash); border: 1px solid var(--rule);
  border-radius: var(--r-xs); padding: 0.1rem 0.45rem;
}
.orient-card__name { font-weight: 600; font-size: var(--fs-h3); color: var(--ink); overflow-wrap: anywhere; }
.orient-card__desc { margin-top: auto; font-size: var(--fs-body); color: var(--muted); }
.orient-note {
  margin-top: var(--space-5); font-size: var(--fs-meta); color: var(--muted);
  max-width: var(--prose);
}
.orient-note strong { color: var(--ink-soft); font-weight: 600; }
@media (max-width: 820px) {
  .orient-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .orient-grid { grid-template-columns: 1fr; }
}

.site-footer { border-top: 1px solid var(--rule); padding: 40px 0 64px; }
.site-footer__inner { display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem; align-items: baseline; justify-content: space-between; }
.site-footer p { font-size: var(--fs-meta); color: var(--faint); }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; }
.site-footer nav a { font-size: var(--fs-meta); color: var(--muted); }


.site-footer__parent {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.3rem 0.85rem; margin-top: var(--stack-major);
}
.site-footer__parent-kind {
  font-family: var(--font-sans); font-size: var(--fs-micro); font-weight: 600;
  letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--faint);
}
.site-footer .site-footer__parent a {
  color: var(--ink-soft); font-size: var(--fs-meta);
  text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 0.24em;
  text-decoration-color: color-mix(in srgb, var(--ink-soft) 32%, transparent);
  transition: color var(--motion-fast) var(--ease-out),
              text-decoration-color var(--motion-fast) var(--ease-out);
}
.site-footer .site-footer__parent a:hover,
.site-footer .site-footer__parent a:focus-visible {
  color: var(--accent-strong); text-decoration-color: var(--accent-strong);
}


.docs-topbar {
  container: page-chrome / inline-size;
  position: sticky; top: 0; z-index: 40;
  background: var(--page);
  border-bottom: 1px solid var(--rule);
}
.docs-topbar__inner {
  display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem;
  min-height: 58px; padding-block: .5rem;
  width: min(1320px, calc(100% - 40px)); margin-inline: auto;
}
.docs-topbar .wordmark { margin-right: 0.4rem; }
.docs-topbar__links { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1.3rem; }
.site-header nav a, .docs-topbar__links a { white-space: nowrap; }
.docs-topbar__links a { color: var(--ink-soft); font-size: 0.9rem; }
.docs-topbar__links a:hover { color: var(--accent); text-decoration: none; }

.docs-menu-btn {
  display: none; font: inherit; font-size: 0.85rem; font-weight: 500;
  background: var(--surface); border: 1px solid var(--rule-strong);
  border-radius: var(--r-control); padding: 0.4rem 0.7rem; cursor: pointer; color: var(--ink);
}

.docs-layout {
  width: min(1320px, calc(100% - 40px)); margin-inline: auto;
  display: grid; grid-template-columns: 244px minmax(0, 1fr) 208px;
  gap: 40px; align-items: start;
}

.docs-sidebar {
  position: sticky; top: var(--topbar-h); align-self: start;
  height: calc(100dvh - var(--topbar-h)); overflow-y: auto;
  padding: 28px 8px 40px 0;
}
.docs-nav { display: flex; flex-direction: column; gap: 0.1rem; }

.docs-nav__group {
  font-size: var(--fs-small); font-weight: 650; letter-spacing: 0;
  color: var(--ink-soft); margin: 1.5rem 0 0.4rem; padding-left: 0.7rem;
}
.docs-nav__group:first-child { margin-top: 0; }
.docs-nav a {
  font-size: 0.9rem; color: var(--ink-soft);
  padding: 0.34rem 0.7rem; border-radius: 6px; border-left: 3px solid transparent;
}
.docs-nav a:hover { background: var(--surface-sunk); color: var(--ink); text-decoration: none; }
.docs-nav a.is-active {
  color: var(--accent-strong); font-weight: 600;
  background: var(--surface-sunk); border-left-color: var(--accent);
}

.docs-main { padding: 36px 0 80px; min-width: 0; container-type: inline-size; }
.docs-article { max-width: var(--prose); }

.docs-article p { max-width: 66ch; }

.docs-eyebrow {
  margin-bottom: 0.55rem;
  font-size: var(--fs-small); font-weight: 600; letter-spacing: 0; text-transform: none;
  color: var(--muted);
}
.docs-article h1 { font-size: clamp(1.9rem, 4vw, 2.4rem); margin-bottom: 1rem; }
.docs-article h2 {
  font-family: var(--font-sans); font-size: var(--fs-h2); font-weight: 600;
  margin: 2.4rem 0 0.8rem; padding-top: 0.4rem;
}
.docs-article h3 { font-size: 1rem; margin: 1.6rem 0 0.5rem; }
.docs-article p { margin: 0.9rem 0; color: var(--ink-soft); }
.docs-article ul { margin: 0.9rem 0; padding-left: 1.2rem; color: var(--ink-soft); }
.docs-article li::marker { color: var(--faint); }
.docs-article li { margin: 0.4rem 0; }
.docs-article .muted { color: var(--muted); font-size: 0.92rem; }

.docs-lede { font-size: var(--fs-lede); line-height: var(--lh-snug); color: var(--ink-soft); }

pre {
  background: var(--code-bg); border: 1px solid var(--rule);
  border-radius: 10px; padding: 1rem 1.15rem;
  white-space: pre-wrap; overflow-wrap: anywhere;
  font-size: 0.85rem; line-height: 1.6; color: var(--code-ink);
  margin: 1.1rem 0;
}
pre .c { color: var(--faint); } 

.callout {
  border: 1px solid var(--rule); background: var(--surface);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-md); padding: 0.9rem 1.1rem; margin: 1.3rem 0;
  font-size: 0.92rem; color: var(--ink-soft);
}

.next-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.9rem; margin: 1.4rem 0; }
.next-card {
  border: 1px solid var(--rule); border-radius: 10px; padding: 1rem 1.1rem; background: var(--surface);
  color: var(--ink); display: flex; flex-direction: column; gap: 0.25rem;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.next-card:hover { text-decoration: none; color: var(--ink); border-color: var(--rule-strong); box-shadow: var(--shadow); }
.next-card strong { font-size: 0.96rem; }
.next-card span { font-size: 0.85rem; color: var(--muted); }


.comp-list { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 0; }
.comp-list li {
  padding: 0.7rem 0; border-top: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: 0.15rem;
}
.comp-list li:last-child { border-bottom: 1px solid var(--rule); }
.comp-list .name { font-weight: 600; color: var(--ink); font-size: 0.96rem; }
.comp-list .what { font-size: 0.88rem; color: var(--muted); }
.comp-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.18rem; }

.tag {
  font-family: var(--font-mono); font-size: 0.72rem; line-height: 1.6;
  color: var(--muted); background: var(--surface-sunk);
  border: 0; border-radius: 999px; padding: 0.12rem 0.55rem;
}
.spine {
  font-family: var(--font-mono); font-size: 0.82rem; color: var(--ink-soft);
  background: var(--surface-sunk); border: 1px solid var(--rule); border-radius: 8px;
  padding: 0.85rem 1rem; overflow-x: auto; margin: 1.1rem 0; line-height: 1.8;
}

.system-map {
  margin: 2rem 0 1.6rem; padding: 1rem 0 0;
  border-top: 1px solid var(--rule);
}
.system-map__header h2 { margin-top: 0.2rem; margin-bottom: 0.5rem; }
.system-map__scene {
  border: 1px solid var(--rule); background: var(--surface);
  border-radius: 10px; padding: 1rem; margin: 1rem 0;
}
.system-map__spine {
  font-family: var(--font-mono); font-size: 0.78rem; color: var(--ink);
  background: var(--surface-sunk); border: 1px solid var(--rule);
  border-radius: 8px; padding: 0.8rem 0.9rem; overflow-x: auto;
}
.system-map__areas {
  list-style: none; padding: 0; margin: 1rem 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem;
}
.system-map__areas li { margin: 0; }
.system-map__areas a {
  display: flex; flex-direction: column; gap: 0.15rem;
  min-height: 78px; border: 1px solid var(--rule); border-radius: 8px;
  padding: 0.75rem 0.85rem; color: var(--ink); background: var(--page);
}
.system-map__areas a:hover {
  text-decoration: none; border-color: var(--rule-strong); box-shadow: var(--shadow);
}
.system-map__areas strong { font-size: 0.92rem; }
.system-map__areas span { font-size: 0.8rem; color: var(--muted); }
.system-map__receipt {
  display: flex; flex-wrap: wrap; gap: 0.6rem;
  color: var(--muted); font-size: 0.82rem;
}
.system-map__receipt strong,
.system-map__receipt span {
  border: 1px solid var(--rule); background: var(--surface-sunk);
  border-radius: 999px; padding: 0.25rem 0.55rem;
}
.wire-list {
  list-style: none; padding: 0; margin: 0.8rem 0 1rem;
  border-top: 1px solid var(--rule);
}
.wire-list li {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem;
  border-bottom: 1px solid var(--rule); padding: 0.58rem 0;
}
.wire-source { color: var(--ink); font-weight: 600; font-size: 0.92rem; }
.wire-targets { color: var(--muted); font-size: 0.82rem; text-align: right; overflow-wrap: anywhere; }

.wire-list.is-enriched li { display: block; }
.wire-list.is-enriched .wire-source { display: inline-block; margin-bottom: 0.2rem; font-size: 0.95rem; }
.wire-list.is-enriched .wire-targets { display: block; text-align: left; font-size: 0.85rem; line-height: 1.55; }
.wire-list .wire-source-link { color: var(--ink); text-decoration: none; }
.wire-list .wire-source-link:hover { color: var(--accent); }
.wire-list .wire-target { color: var(--accent); text-decoration: none; }
.wire-list .wire-target:hover { text-decoration: underline; text-underline-offset: 0.15em; }


.docs-toc {
  position: sticky; top: var(--topbar-h); align-self: start;
  padding: 36px 0; font-size: 0.84rem;
}
.docs-toc__title {
  font-size: var(--fs-small); font-weight: 650; letter-spacing: 0;
  color: var(--ink-soft); margin-bottom: 0.6rem;
}
.docs-toc a { display: block; overflow-wrap: anywhere; color: var(--muted); padding: 0.25rem 0; border-left: 2px solid var(--rule); padding-left: 0.8rem; }
.docs-toc a:hover { color: var(--accent); text-decoration: none; border-left-color: var(--accent); }

.page-foot {
  margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--rule);
  display: flex; flex-wrap: wrap; gap: 1.2rem; font-size: 0.9rem;
}


.comp-controls {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: start; gap: 0.7rem 1rem; margin: 1.4rem 0 0.4rem;
}
.comp-toolbar {
  display: grid; grid-template-columns: auto minmax(160px, 1fr);
  align-items: center; gap: 0.4rem 0.7rem; margin: 0;
}
.comp-toolbar__label {
  font-size: var(--fs-small); font-weight: 650; color: var(--ink-soft);
}
.comp-toolbar__input {
  min-width: 0; min-height: 2.4rem;
  font: inherit; font-size: 0.92rem; color: var(--ink);
  background: var(--surface); border: 1px solid var(--rule-strong);
  border-radius: var(--r-control); padding: 0.45rem 0.85rem;
}
.comp-toolbar__input::placeholder { color: var(--faint); }
.comp-toolbar__status { grid-column: 1 / -1; font-size: 0.82rem; color: var(--muted); }
.comp-controls .comp-toolbar__status { margin: 0; }
.comp-actions {
  display: flex; align-items: center; justify-content: flex-end;
  gap: 0.55rem; min-height: 2.4rem;
  
  align-self: start;
}

@container (max-width: 660px) {
  .comp-controls { grid-template-columns: minmax(0, 1fr); }
  .comp-actions { justify-content: flex-start; flex-wrap: wrap; }
  .comp-toolbar__status { width: 100%; }
}
.page-export-btn {
  display: inline-flex; align-items: center; gap: 0.48rem;
  min-height: 2.4rem; max-width: 100%;
  font: inherit; font-size: 0.84rem; font-weight: 600;
  color: var(--ink); background: var(--surface);
  border: 1px solid var(--rule-strong); border-radius: var(--r-control);
  padding: 0.42rem 0.78rem; cursor: pointer;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease),
              color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.page-export-btn:hover { background: var(--surface-sunk); border-color: var(--ink-soft); transform: translateY(-1px); }
.page-export-btn.is-copied { color: var(--page); background: var(--accent-strong); border-color: var(--accent-strong); }

.page-export-btn__format {
  font-family: var(--font-mono); font-size: 0.68rem; line-height: 1;
  color: var(--muted); background: var(--surface-sunk);
  border: 1px solid var(--rule);
  border-radius: var(--r-xs); padding: 0.15rem 0.3rem;
}
.page-export-btn.is-copied .page-export-btn__format {
  color: var(--accent-strong); background: var(--page); border-color: transparent;
}
@media (max-width: 720px) {
  .comp-controls { grid-template-columns: 1fr; }
  .comp-actions { justify-content: flex-start; }
}
.page-export-btn__label { overflow-wrap: anywhere; text-align: left; }
.page-export-status { font-size: 0.8rem; color: var(--muted); }
.comp-actions .page-export-status:empty { display: none; }
@container (max-width: 440px) {
  .comp-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .comp-actions .page-export-btn { width: 100%; min-height: 44px; }
}
.comp-empty { color: var(--muted); font-size: 0.92rem; margin: 1.2rem 0; }
.comp-empty__clear {
  font: inherit; font-size: 0.92rem; color: var(--accent);
  background: none; border: none; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 0.18em;
}
.comp-empty__clear:hover { color: var(--accent-strong); }
.comp-group__count { color: var(--faint); font-weight: 400; }
.comp-toolbar[hidden], .comp-empty[hidden], .comp-group[hidden], .comp-item[hidden] { display: none; }


.comp-list--cards { display: grid; gap: 0.55rem; margin: 1rem 0; }
.comp-card {
  border: 1px solid var(--rule); border-radius: 10px;
  background: var(--surface); overflow: hidden;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.comp-card:hover:not([open]) { border-color: var(--rule-strong); box-shadow: var(--shadow); }
.comp-card[open] { border-color: var(--rule-strong); border-left: 3px solid var(--accent); box-shadow: var(--shadow); }
.comp-card__summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: flex-start; gap: 0.7rem;
  padding: 0.62rem 2.1rem 0.68rem 0.9rem; position: relative;
}
.comp-card__summary::-webkit-details-marker { display: none; }
.comp-card__summary::after {
  content: "+"; position: absolute; right: 0.9rem; top: 0.82rem; transform: none;
  font-family: var(--font-mono); color: var(--muted); font-size: 1.05rem; line-height: 1;
}
.comp-card[open] .comp-card__summary::after { content: "\2212"; color: var(--accent); }
.comp-card__summary { transition: background var(--dur) var(--ease); }
.comp-card__summary:hover { background: var(--surface-sunk); }

.comp-card__head { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0.2rem; }
.comp-card__summary .name { min-width: 0; overflow-wrap: anywhere; font-weight: 600; color: var(--ink); font-size: 0.96rem; line-height: 1.3; }
.comp-card__job {
  min-width: 0; color: var(--muted); font-size: 0.85rem; line-height: 1.4;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}

details.comp-card[open] .comp-card__job {
  display: block; -webkit-line-clamp: unset; overflow: visible;
}
.comp-card__sig { flex: none; display: flex; flex-wrap: wrap; max-width: 100%; gap: 0.3rem; margin-top: 0.1rem; }
.comp-card__sig .comp-chip { white-space: normal; overflow-wrap: anywhere; }
.comp-chip--rank {
  color: var(--accent-strong); border-color: var(--accent-wash);
  background: var(--accent-wash); font-weight: 700;
}
.comp-card__body {
  padding: 0 0.9rem 0.9rem; border-top: 1px solid var(--rule);
  display: grid; gap: 0.65rem;
}
.comp-card__body > * { margin: 0; }
.comp-card__what { color: var(--ink-soft); font-size: 0.92rem; padding-top: 0.8rem; overflow-wrap: anywhere; }
.comp-card__scope {
  font-size: 0.88rem; color: var(--muted);
  background: var(--surface-sunk); border: 1px solid var(--rule);
  border-left: 3px solid var(--accent);
  border-radius: 6px; padding: 0.55rem 0.7rem;
}
.comp-card__klabel {
  font-size: 0.66rem; font-weight: 700; letter-spacing: var(--tracking-kicker); text-transform: uppercase;
  color: var(--faint); margin-right: 0.4rem;
}
.comp-card__klabel--run { display: block; margin: 0 0 0.3rem; }
.comp-card__run { font-size: 0.85rem; color: var(--muted); }
.comp-card__cmd { margin: 0; font-size: 0.8rem; padding-right: 3rem; white-space: pre-wrap; overflow-wrap: anywhere; }

.comp-card__meta {
  display: grid; gap: 0.42rem; padding-top: 0.7rem;
  border-top: 1px dashed var(--rule);
}
.comp-card__meta > * { margin: 0; }
.comp-card__evidence { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
.comp-card__reader-cues {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem;
  font-size: 0.84rem; color: var(--muted);
}
.comp-chip {
  font-family: var(--font-mono); font-size: 0.72rem; color: var(--ink-soft);
  background: var(--surface-sunk); border: 1px solid var(--rule);
  border-radius: 999px; padding: 0.1rem 0.55rem;
}
.comp-chip--reader { background: var(--surface); border-color: var(--pm-rail-soft); }
.comp-card__links, .comp-card__source { font-size: 0.84rem; color: var(--muted); line-height: 1.7; }
.comp-card__source { color: var(--faint); }

.comp-card__meta .comp-card__klabel { display: inline-block; min-width: 5.6rem; }

.comp-card__relfeed {
  display: grid; grid-template-columns: 6.4rem minmax(0, 1fr);
  gap: 0.2rem 0.6rem; align-items: baseline;
}
.comp-card__relfeed .comp-card__klabel { margin-right: 0; }
.comp-card__relbody {
  min-width: 0; display: flex; flex-wrap: wrap;
  gap: 0.3rem 1.2rem; align-items: baseline;
}
.comp-card__relgroup {
  display: inline-flex; flex-wrap: wrap; gap: 0.25rem 0.45rem;
  align-items: baseline; min-width: 0;
}
.comp-card__relgroup--list { display: block; flex: 1 1 100%; }
.comp-card__relkind {
  color: var(--faint); font-size: 0.68rem; text-transform: uppercase;
  letter-spacing: 0.05em;
}
.comp-card__rel-list {
  list-style: none; margin: 0.2rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.2rem 1.4rem;
}

.comp-card__rel-list li {
  display: block; margin: 0; border: 0;
  padding: 0 0 0 0.85rem; position: relative; min-width: 0;
}
.comp-card__rel-list li::before {
  content: ""; position: absolute; left: 0; top: 0.6em;
  width: 0.4rem; height: 1px; background: var(--rule-strong);
}
.comp-card__reltarget { font-size: 0.82rem; color: var(--ink-soft); overflow-wrap: anywhere; }
a.comp-card__reltarget {
  color: var(--accent); text-decoration: none;
  transition: color var(--dur) var(--ease);
}
a.comp-card__reltarget:hover, a.comp-card__reltarget:focus-visible {
  text-decoration: underline; text-underline-offset: 0.16em;
}
@media (max-width: 560px) {
  .comp-card__relfeed { grid-template-columns: 1fr; gap: 0.12rem; }
}
.comp-card__tags-row { display: flex; flex-wrap: wrap; gap: 0.3rem; }
@media (max-width: 540px) { .comp-card__job { -webkit-line-clamp: 3; } }


.pm-fulltext { border-top: 1px dashed var(--rule); padding-top: 0.6rem; }
.pm-fulltext__toggle {
  cursor: pointer; list-style: none;
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--accent); padding: 0.15rem 0;
}
.pm-fulltext__toggle::-webkit-details-marker { display: none; }
.pm-fulltext__toggle::before { content: "\25B8  "; }
.pm-fulltext[open] .pm-fulltext__toggle::before { content: "\25BE  "; }
.pm-body {
  margin-top: 0.7rem; padding: 1rem 1.15rem 1.1rem;
  background: var(--surface-sunk); border: 1px solid var(--rule); border-radius: 8px;
  font-size: 0.92rem; color: var(--ink-soft); line-height: 1.65;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.7rem; overflow-wrap: break-word;
}
.pm-body > * { margin: 0; }

.pm-body > p, .pm-body > ul, .pm-body > ol { max-width: 74ch; }

.pm-body__h {
  font-family: var(--font-serif); font-size: 1.22rem; font-weight: 600;
  letter-spacing: -0.01em; text-transform: none;
  color: var(--ink); margin-top: 1.3rem;
  padding-bottom: 0.35rem; border-bottom: 1px solid var(--rule); max-width: 74ch;
}

.pm-body .pm-lead-row { color: var(--pm-lead-detail); }
.pm-body .pm-lead { color: var(--pm-lead-compression); font-weight: 600; }
.pm-body .pm-lead__focus { color: var(--ink); }
.pm-body ul { margin: 0; padding-left: 1.2rem; list-style: disc; }

.comp-card .pm-body li { display: list-item; margin: 0.3rem 0; padding: 0; border: 0; }
.pm-body code {
  font-family: var(--font-mono); font-size: 0.82em;
  background: var(--surface); border: 1px solid var(--rule); border-radius: 4px;
  padding: 0.05rem 0.3rem; overflow-wrap: anywhere;
}
.comp-card .pm-body ol { display: block; margin: 0; padding-left: 1.4rem; list-style: decimal; }
.pm-body pre.pm-pre {
  margin: 0; padding: 0.6rem 0.7rem; background: var(--surface);
  border: 1px solid var(--rule); border-radius: 6px; font-size: 0.8rem;
}
.pm-body pre.pm-pre code {
  background: none; border: 0; padding: 0; white-space: pre-wrap; overflow-wrap: anywhere;
}
.pm-body table.pm-table {
  width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 0.82rem;
}
.pm-body .pm-table-scroll {
  max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.pm-body .pm-table-scroll:focus-visible {
  outline: 2px solid var(--accent-strong); outline-offset: 3px;
}
.pm-body .pm-table-scroll .pm-table {
  width: max(100%, 42rem); table-layout: auto;
}
.pm-body .pm-table th, .pm-body .pm-table td {
  border: 1px solid var(--rule); padding: 0.4rem 0.5rem;
  text-align: left; vertical-align: top; overflow-wrap: anywhere; word-break: break-word;
}
.pm-body .pm-table th { background: var(--surface); font-weight: 600; color: var(--ink-soft); }


.pm-body__h--sub {
  font-family: var(--font-sans); font-size: 0.95rem; font-weight: 700;
  letter-spacing: 0.005em; text-transform: none;
  color: var(--ink); margin-top: 1rem; max-width: 74ch; opacity: 1;
  border-bottom: 0; padding-bottom: 0;
}
.pm-body__boundary {
  display: grid; gap: 0.6rem; margin-top: 0.4rem;
  padding: 0.8rem 0.95rem; border: 1px solid var(--rule); border-radius: 8px; background: var(--surface);
}
.pm-body__boundary > * { margin: 0; max-width: 74ch; }
.pm-body__boundary-h { border-bottom: 1px solid var(--rule); padding-bottom: 0.3rem; }
.pm-body__provenance {
  margin-top: 0.2rem; border: 1px solid var(--rule); border-radius: 8px;
  background: var(--surface-sunk); font-size: 0.86rem;
}
.pm-body__provenance > summary {
  cursor: pointer; padding: 0.55rem 0.9rem; list-style: none;
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-soft);
}
.pm-body__provenance[open] > summary { border-bottom: 1px solid var(--rule); }
.pm-body__provenance > :not(summary) { margin: 0.5rem 0.95rem; max-width: 74ch; }


.pm-diagram { margin: 0.4rem 0; max-width: 100%; overflow-x: auto; }

.pm-diagram__svg { margin-inline: auto; }
.pm-diagram__caption { margin: 0 0 0.4rem; font-size: 0.82rem; color: var(--muted); font-style: italic; }
.pm-diagram__svg {
  display: block; box-sizing: content-box;
  background: var(--surface-sunk); border: 1px solid var(--rule);
  border-radius: 8px; padding: 8px;
}
.pmd-node {
  fill: color-mix(in srgb, var(--accent-wash) 68%, var(--surface));
  stroke: color-mix(in srgb, var(--accent) 42%, var(--rule-strong)); stroke-width: 1.5;
}
.pmd-label { fill: var(--ink); font-size: 13.5px; font-family: inherit; font-weight: 500; }
.pmd-edge { stroke: color-mix(in srgb, var(--accent) 38%, var(--muted)); stroke-width: 1.55; fill: none; }
.pmd-arrow { fill: color-mix(in srgb, var(--accent) 38%, var(--muted)); }
.pmd-elabel-bg { fill: var(--surface-sunk); }
.pmd-elabel { fill: var(--ink-soft); font-size: 10.5px; font-family: inherit; }

.pm-diagram__refs { margin-top: 0.6rem; }
.pm-diagram__refs-title {
  margin: 0 0 0.3rem; text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 0.68rem; font-weight: 600; color: var(--muted);
}
.pm-diagram__refs-list { margin: 0; display: grid; gap: 0.3rem 0; }
.pm-diagram__ref {
  display: grid; grid-template-columns: minmax(6.5rem, 12rem) 1fr;
  gap: 0.2rem 0.8rem; align-items: baseline;
}
.pm-diagram__ref dt {
  margin: 0; color: var(--ink-soft); font-weight: 600; font-size: 0.8rem;
}
.pm-diagram__ref dd {
  margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem; min-width: 0;
}
.pm-diagram__ref-loc {
  font-family: var(--font-mono); font-size: 0.72rem;
  background: var(--code-bg); color: var(--code-ink);
  border-radius: var(--r-xs); padding: 0.05rem 0.32rem;
  overflow-wrap: anywhere; word-break: break-word; line-height: 1.5;
}
@media (max-width: 560px) {
  .pm-diagram__ref { grid-template-columns: 1fr; gap: 0.1rem; }
}
.pm-diagram__source { margin-top: 0.5rem; }
.pm-diagram__source summary {
  cursor: pointer; color: var(--muted); font-size: 0.78rem; letter-spacing: 0.01em;
}
.pm-diagram__source[open] summary { margin-bottom: 0.35rem; }

.pm-diagram__source .pm-diagram__refs { margin: 0.4rem 0 0.6rem; }
@supports (width: 100cqw) {
  @media (min-width: 920px) {
    
    .docs-article .reader-stage__item {
      box-sizing: border-box;
      width: min(100cqw, var(--reader-stage-max));
      max-width: none;
    }
    
    .docs-article .comp-card__pm-body .reader-stage__item {
      width: auto;
      max-width: 100%;
    }
  }
}

.comp-list { grid-template-columns: minmax(0, 1fr); }
.comp-card, .comp-card__body, .comp-card__body > *, .pm-fulltext, .pm-body, .pm-body > *,
.comp-card__pm, .comp-card__pm-body, .comp-card__pm-body > * { min-width: 0; }


.comp-card__pm { margin-top: 0.45rem; padding-top: 0.7rem; border-top: 1px solid var(--rule); }

.comp-card__pm-head {
  display: flex; flex-direction: column; gap: 0.12rem;
  font-size: 0.84rem; color: var(--ink-soft); margin: 0 0 0.55rem;
}
.comp-card__pm-title { font-weight: 600; color: var(--ink); font-size: 1rem; overflow-wrap: anywhere; }

.comp-card__pm-body {
  margin-top: 0.4rem; padding: 0.15rem 0 0.15rem 0.95rem;
  border-left: 2px solid var(--accent);
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem;
}
.comp-card__pm-body > * { margin: 0; }

.comp-card__pm-body .pm-body {
  margin-top: 0.1rem; padding: 0; background: none; border: 0; border-radius: 0;
}
.comp-card__pm-body .comp-card__what { padding-top: 0; }
.comp-card__pm-thesis { font-size: 0.9rem; color: var(--ink); font-weight: 500; }
.comp-card__pm-more { font-size: 0.84rem; padding-top: 0.1rem; }
.comp-card__pm-full { font-weight: 600; }


.comp-card--paper {
  background: var(--pm-wash);
  border-left: 3px solid var(--pm-rail);
}
.comp-card--paper:hover:not([open]) { border-left-color: var(--pm-rail); }
.comp-card--paper[open] { border-left-color: var(--pm-rail); }
.comp-card--paper .comp-card__summary:hover { background: var(--surface); }
.comp-card--paper[open] .comp-card__summary::after { color: var(--pm-rail); }

.comp-card__kind {
  font-family: var(--font-mono); font-size: 0.62rem; font-weight: 700;
  letter-spacing: var(--tracking-kicker); text-transform: uppercase;
  color: var(--pm-rail); white-space: nowrap;
  border: 1px solid var(--pm-rail-soft); border-radius: 999px;
  padding: 0.13rem 0.5rem;
}

.comp-card__actions {
  display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
  padding-top: 0.35rem;
}
.comp-card__actions .btn { font-size: 0.85rem; padding: 0.46rem 0.95rem; }

.comp-card__read::after, .comp-card__open::after { content: " \2192"; }
.comp-card__pm-anchor { font-size: 0.78rem; color: var(--faint); margin-left: 0.2rem; }


.reader-handoff {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem 1rem;
  margin: 1.3rem 0 0.4rem; padding: 0.85rem 1.05rem;
  background: var(--pm-wash);
  border: 1px solid var(--pm-rail-soft); border-left: 3px solid var(--pm-rail);
  border-radius: var(--r-md);
}
.reader-handoff__body { flex: 1; min-width: 14rem; display: flex; flex-direction: column; gap: 0.25rem; }
.reader-handoff__note { margin: 0; font-size: 0.92rem; color: var(--ink-soft); }
.reader-handoff__module { margin: 0; font-size: 0.86rem; color: var(--muted); }
.reader-handoff__module-title { color: var(--ink); font-weight: 600; }
.reader-handoff__cta { flex: none; }
.reader-handoff__cta::after { content: " \2192"; }


.pm-detail__eyebrow { color: var(--pm-rail); }
.pm-detail__thesis { font-family: var(--font-serif); color: var(--ink); }
.pm-detail__meta { margin: 0.55rem 0 0.2rem; display: flex; flex-direction: column; gap: 0.2rem; }
.pm-detail__contains, .pm-detail__explains { margin: 0; font-size: 0.88rem; color: var(--ink-soft); }
.comp-card__source-route {
  display: grid; gap: 0.2rem;
  margin: 0.2rem 0 0.1rem; padding: 0.65rem 0.75rem;
  background: var(--surface-sunk);
  border: 1px solid var(--pm-rail-soft); border-radius: var(--r-md);
}
.comp-card__source-route-row { margin: 0; font-size: 0.82rem; color: var(--ink-soft); line-height: 1.55; }
.pm-source-jump {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.8rem;
  width: 100%; max-width: 100%; min-width: 0;
  margin: 1.05rem 0 1.15rem; padding: 0.95rem 1.05rem;
  background: var(--pm-wash);
  border: 1px solid var(--pm-rail-soft); border-left: 3px solid var(--pm-rail);
  border-radius: var(--r-md);
}
.pm-source-jump > * { min-width: 0; max-width: 100%; }
.pm-source-jump__head {
  display: grid; grid-template-columns: max-content minmax(0, 1fr);
  gap: 0.3rem 0.85rem; align-items: baseline; min-width: 0;
}
.pm-source-jump__label {
  margin: 0; font-family: var(--font-mono); font-size: 0.68rem; font-weight: 700;
  letter-spacing: var(--tracking-kicker); text-transform: uppercase; color: var(--pm-rail);
}
.pm-source-jump__note { min-width: 0; margin: 0; font-size: 0.86rem; color: var(--muted); overflow-wrap: anywhere; }
.pm-source-jump__primary-links {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: 0.55rem; align-items: stretch; min-width: 0;
}
.pm-source-jump__primary {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto;
  column-gap: 0.7rem; row-gap: 0.08rem; align-items: center; justify-content: stretch;
  width: 100%; max-width: 100%; min-width: 0; min-height: 2.75rem;
  padding: 0.58rem 0.72rem; text-align: left;
  background: var(--pm-source-fill); color: var(--ink);
  border-color: var(--pm-source-border); border-radius: var(--r-control);
}
.pm-source-jump__primary:hover {
  background: var(--pm-source-fill-hover); color: var(--ink);
  border-color: var(--pm-rail); text-decoration: none;
}
.pm-source-jump__primary:focus-visible {
  outline: 2px solid var(--accent-strong); outline-offset: 3px;
  box-shadow: 0 0 0 1px var(--page);
}
.pm-source-jump__primary-label {
  grid-column: 1; grid-row: 1;
  min-width: 0; font-size: 0.88rem; font-weight: 650; line-height: 1.25;
  color: var(--ink);
}
.pm-source-jump__primary-path {
  grid-column: 1; grid-row: 2;
  display: block; min-width: 0; max-width: 100%;
  font-family: var(--font-mono); font-size: 0.7rem; line-height: 1.3;
  color: var(--pm-source-path); overflow-wrap: anywhere; word-break: break-word;
  background: transparent; padding: 0; border: 0;
}
.pm-source-jump__primary[data-link-kind="exogenous"]::after {
  grid-column: 2; grid-row: 1 / span 2; align-self: center;
  margin-left: 0; color: var(--pm-source-path); font-size: 0.88rem;
}
.pm-source-jump__details {
  min-width: 0; padding-top: 0.05rem;
  border-top: 1px solid color-mix(in srgb, var(--pm-rail-soft) 72%, transparent);
}
.pm-source-jump__details > summary {
  width: fit-content; margin-top: 0.12rem; padding: 0.18rem 0;
  cursor: pointer; color: var(--pm-source-path); font-size: 0.78rem;
  font-weight: 620; letter-spacing: 0.01em;
}
.pm-source-jump__details[open] > summary { margin-bottom: 0.55rem; }
.pm-source-jump__details[open] { display: grid; gap: 0.55rem; }
.pm-source-jump__modules { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.55rem; min-width: 0; }
.pm-source-jump__module {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.38rem;
  width: 100%; max-width: 100%; min-width: 0;
  padding: 0.68rem 0.75rem; background: var(--pm-source-inset);
  border: 1px solid var(--pm-source-border-soft); border-radius: var(--r-sm);
}
.pm-source-jump__line {
  display: grid; grid-template-columns: max-content minmax(0, 1fr);
  gap: 0.28rem 0.62rem; align-items: baseline;
}
.pm-source-jump__line,
.pm-source-jump__role {
  min-width: 0; max-width: 100%; margin: 0; font-size: 0.84rem;
  color: var(--ink-soft); line-height: 1.6; overflow-wrap: anywhere;
}
.pm-source-jump__line a,
.pm-source-jump__line code,
.pm-source-jump__role { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.pm-source-jump__role { color: var(--muted); }
.pm-source-jump__parts { display: inline-flex; flex-wrap: wrap; gap: 0.28rem; min-width: 0; max-width: 100%; vertical-align: middle; }
.pm-source-jump__part {
  padding: 0.1rem 0.34rem; border: 1px solid var(--rule); border-radius: 999px;
  background: var(--surface); color: var(--ink);
}
.pm-source-jump__more { font-family: var(--font-mono); font-size: 0.72rem; color: var(--faint); }
.pm-source-jump__links {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  gap: 0.45rem; min-width: 0; max-width: 100%;
}
.pm-source-jump__link {
  flex: 0 1 auto;
  justify-content: start; align-items: baseline; min-width: 0; max-width: 100%;
  min-height: 2rem; padding: 0.4rem 0.62rem; font-size: 0.82rem; line-height: 1.35;
  flex-wrap: wrap; white-space: normal; text-align: left;
  background: transparent; color: var(--pm-source-path); border-color: var(--pm-source-border-soft);
}
.pm-source-jump__link--path {
  flex: 1 1 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 0.55rem; row-gap: 0.12rem; align-items: center;
}
.pm-source-jump__link--path::after { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.pm-source-jump__link:hover,
.pm-source-jump__link:focus-visible {
  background: var(--pm-source-fill); color: var(--ink);
  border-color: var(--pm-source-border); text-decoration: none;
}
.pm-source-jump__link-label { flex: none; font-weight: 560; }
.pm-source-jump__link--path .pm-source-jump__link-label { grid-column: 1; grid-row: 1; min-width: 0; }
.pm-source-jump__link-path {
  grid-column: 1; grid-row: 2; min-width: 0; max-width: 100%;
  font-family: var(--font-mono); font-size: 0.72rem; line-height: 1.35;
  color: var(--pm-source-path); overflow-wrap: anywhere; word-break: break-word;
  background: transparent; border: 0; padding: 0;
}

@container (max-width: 620px) {
  .pm-source-jump { gap: 0.42rem; margin: 0.7rem 0 0.9rem; padding: 0.62rem 0.68rem; }
  
  .pm-source-jump__head { display: none; }
  .pm-source-jump__head,
  .pm-source-jump__line,
  .pm-source-jump__link--path { grid-template-columns: minmax(0, 1fr); }
  .pm-source-jump__link--path::after { grid-column: 1; grid-row: auto; justify-self: start; }
  .pm-source-jump__primary-links { grid-template-columns: minmax(0, 1fr); }
  .pm-source-jump__primary { min-height: 2.6rem; padding: 0.5rem 0.58rem; }
}


.pm-context {
  display: grid; gap: 0.55rem; padding: 0.9rem 1.05rem;
  background: var(--surface-sunk);
  border: 1px solid var(--rule); border-radius: var(--r-md);
  font-size: 0.9rem; color: var(--ink-soft);
}
.pm-context > * { margin: 0; }


.roster-status { margin-top: 1rem; }
.roster-section { margin-top: 1.8rem; }
.roster-group { margin-top: 1.15rem; }
.roster-list {
  display: grid; gap: 0;
  border: 1px solid var(--rule); border-radius: 10px; overflow: hidden;
  background: var(--surface);
}
.roster-row {
  display: grid; grid-template-columns: minmax(7rem, 10rem) minmax(0, 1fr);
  gap: 0.75rem; padding: 0.72rem 0.9rem;
  border-top: 1px solid var(--rule);
}
.roster-row:first-child { border-top: 0; }
.roster-row:hover { background: var(--surface-sunk); }
.roster-row__signals {
  min-width: 0; display: flex; flex-wrap: wrap; align-content: start;
  align-items: center; gap: 0.28rem; padding-top: 0.12rem;
}

.roster-row__body { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.24rem; }
.roster-row__label {
  display: inline-block; width: fit-content; max-width: 100%;
  color: var(--ink); font-size: 0.96rem; font-weight: 650;
  overflow-wrap: anywhere;
}
.roster-row__label:hover { color: var(--accent); text-decoration-thickness: 0.08em; }
.roster-row__one {
  margin: 0; color: var(--ink-soft); font-size: 0.9rem; line-height: var(--lh-snug);
  overflow-wrap: break-word;
}
.roster-row__meta {
  margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.28rem 0.55rem;
  color: var(--faint); font-size: 0.78rem;
}
.roster-row__meta code {
  max-width: 100%; color: var(--faint); font-size: 0.9em;
  white-space: normal; overflow-wrap: anywhere; word-break: break-word;
}
.roster-row__source, .roster-row__quality { color: var(--muted); }
.roster-row--quality-fail .roster-row__quality { color: var(--accent-strong); }
.roster-row--quality-warn .roster-row__quality { color: var(--muted); }
.roster-row__edges {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.3rem 0.45rem;
  color: var(--muted); font-size: 0.8rem;
}
.roster-row__edges a {
  color: var(--ink-soft); background: var(--surface-sunk);
  border: 1px solid var(--rule); border-radius: 999px;
  padding: 0.04rem 0.45rem; text-decoration: none;
  max-width: 100%; overflow-wrap: anywhere;
}
.roster-row__edges a:hover { color: var(--accent); border-color: var(--accent); }
.roster-row__more { color: var(--faint); }

@media (max-width: 700px) {
  .roster-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.38rem; padding: 0.78rem 0.82rem;
  }
  .roster-row__signals { order: 0; }
  .roster-row__body { order: 1; }
  .roster-row__label { display: block; width: 100%; }
  .roster-row__one { font-size: 0.92rem; }
  .roster-row__meta { gap: 0.22rem 0.48rem; }
  .roster-row__edges { padding-top: 0.1rem; }
}


@supports (content-visibility: auto) {
  .docs-article > section,
  .wire-list,
  .comp-list--cards,
  .rule-group,
  .auth-class {
    content-visibility: auto;
    contain-intrinsic-size: auto 640px;
  }

  
  .system-map__scene {
    content-visibility: auto;
    contain-intrinsic-size: auto 320px;
  }

  .comp-card {
    content-visibility: auto;
    contain-intrinsic-size: auto 88px;
  }

  .comp-card[open] {
    contain-intrinsic-size: auto 360px;
  }

  
  .term-card {
    content-visibility: auto;
    contain-intrinsic-size: auto 6.5rem;
  }

  @media (max-width: 540px) {
    .term-card { contain-intrinsic-size: auto 10rem; }
  }

  .term-card[open] {
    contain-intrinsic-size: auto 640px;
  }
}


.auth-ranks { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1.6rem; }
.auth-class { margin: 1.7rem 0; }
.auth-class h2 { margin-bottom: 0.3rem; }
.auth-members { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.7rem; }
.auth-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  font-size: 0.82rem; padding: 0.25rem 0.55rem;
  background: var(--surface-sunk); border: 1px solid var(--rule); border-radius: var(--r-sm);
  color: var(--ink-soft); text-decoration: none; overflow-wrap: anywhere;
}
.auth-chip:hover { border-color: var(--accent); color: var(--ink); }

.auth-chip__rank { font-family: var(--font-mono); font-size: 0.72rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--accent-strong); white-space: nowrap; flex: none; }


.docs-toc a.is-current {
  color: var(--accent); font-weight: 600;
  border-left-color: var(--accent);
}


pre { position: relative; }
.copy-btn {
  position: absolute; top: 0.5rem; right: 0.5rem;
  font: inherit; font-family: var(--font-sans); font-size: 0.72rem; font-weight: 500;
  color: var(--ink-soft); background: var(--surface);
  border: 1px solid var(--rule-strong); border-radius: 6px;
  padding: 0.2rem 0.55rem; cursor: pointer; opacity: 0.55;
  transition: opacity var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
pre:hover .copy-btn, .copy-btn:focus-visible { opacity: 1; }
.copy-btn:hover { border-color: var(--ink-soft); color: var(--ink); }
.copy-btn.is-copied { color: var(--accent-strong); border-color: var(--accent); opacity: 1; }

@media (hover: none) { .copy-btn { opacity: 1; } }

@media (hover: none) {
  .comp-toolbar__input { font-size: max(1rem, 16px); min-height: 44px; }
  .site-header nav a, .docs-topbar__links a, .site-footer nav a {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  
  .theme-toggle, .docs-main .docs-pagetool, .landing-pagetools .docs-pagetool,
  html:not(.js) .site-header nav[aria-label="Primary"]::after,
  html:not(.js) .docs-topbar__links::after {
    min-height: 44px;
  }
}
.copy-proxy { position: absolute; left: -9999px; top: 0; opacity: 0; }


.docs-pager {
  display: flex; flex-wrap: wrap; gap: 1rem;
  margin-top: 2.6rem; padding-top: 1.6rem; border-top: 1px solid var(--rule);
}
.docs-pager__link {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; gap: 0.2rem;
  border: 1px solid var(--rule); border-radius: 10px;
  padding: 0.85rem 1.05rem; background: var(--surface); color: var(--ink);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.docs-pager__link:hover { text-decoration: none; color: var(--ink); border-color: var(--rule-strong); box-shadow: var(--shadow); }
.docs-pager__link--next { text-align: right; align-items: flex-end; }
.docs-pager__link--empty { visibility: hidden; border: none; background: none; box-shadow: none; }
.docs-pager__dir { font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); }
.docs-pager__title { font-size: 0.98rem; font-weight: 600; color: var(--accent); }
.docs-pager__link:hover .docs-pager__title { color: var(--accent-strong); }


@media (max-width: 1080px) {
  .docs-layout { grid-template-columns: 230px minmax(0, 1fr); }
  .docs-toc { display: none; }
}
@media (max-width: 820px) {
  .area-grid, .video-grid { grid-template-columns: 1fr; }
  .system-map__areas { grid-template-columns: 1fr; }
  .hero__grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 768px) {
  .docs-menu-btn { display: inline-flex; }
  .docs-layout { grid-template-columns: minmax(0, 1fr); }
  .docs-sidebar {
    position: fixed; left: 0; top: var(--topbar-h); z-index: 35;
    width: 280px; max-width: 86vw; height: calc(100dvh - var(--topbar-h));
    background: var(--page); border-right: 1px solid var(--rule);
    padding: 20px 16px 40px; box-shadow: var(--shadow);
    transform: translateX(-102%); visibility: hidden;
    transition: transform var(--dur-slow) var(--ease), visibility 0s linear var(--dur-slow);
  }
  
  body.nav-open { overflow: hidden; }
  body.nav-open .docs-sidebar { transform: translateX(0); visibility: visible; transition: transform var(--dur-slow) var(--ease), visibility 0s; }
  body.nav-open::after {
    content: ""; position: fixed; inset: var(--topbar-h) 0 0 0; background: var(--scrim); z-index: 34;
  }
  .docs-main { padding-top: 26px; }
}
@media (max-width: 540px) {
  .site-header nav { gap: 1rem; }
  .hero { padding: 56px 0 44px; }
  .docs-pager__link { flex-basis: 100%; }
  .comp-controls { grid-template-columns: 1fr; }
  .comp-actions { justify-content: flex-start; flex-wrap: wrap; }
  .comp-toolbar__status { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


@media print {
  :root {
    --page: #ffffff; --surface: #ffffff; --surface-sunk: #ffffff;
    --ink: #000000; --ink-soft: #1a1a1a; --muted: #333333; --faint: #444444;
    --rule: #cccccc; --rule-strong: #999999; --rule-control: #767676;
    --edge: #808080;
    --accent: #1a1a1a; --accent-strong: #000000;
    --shadow: none; --shadow-pop: none;
    color-scheme: light;
  }
  html { scroll-padding-top: 0; }
  body {
    background: #fff; color: #000;
    font-size: 11pt; line-height: 1.5;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }

  
  .site-header, .docs-topbar, .docs-search-btn, .docs-menu-btn,
  .cmdk, .copy-btn, .page-export-btn, .page-export-status,
  [data-site-export], [data-site-download],
  .comp-actions, .gfocus, .gpanel, .skip-link,
  .docs-pagetools,
  .docs-toc, .docs-pager, .site-footer nav, .video-card__frame { display: none !important; }

  
  .site-header, .docs-topbar { position: static; }
  .docs-layout, .docs-layout--wide { display: block; width: auto; }
  .docs-sidebar {
    position: static; height: auto; overflow: visible;
    border: 0; padding: 0; margin: 0 0 1.5rem;
  }
  .docs-nav { display: block; columns: 2; gap: 1.5rem; }
  .docs-nav a { border-left: 0; padding-left: 0; color: #000; }
  .docs-nav a.is-active { background: none; font-weight: 700; }
  .wrap, .docs-main, .docs-article { width: auto; max-width: 100%; margin: 0; padding: 0; }

  
  details, .comp-card, .pm-fulltext, .comp-card__pm { display: block !important; }
  .comp-card__body, .pm-body, .comp-card__pm-body { display: block !important; }
  .comp-card__summary::after, .pm-fulltext__toggle::before,
  .comp-card__pm-toggle::before { content: "" !important; }

  
  pre, .callout, .comp-card, .next-card, .area-card, .spine, .system-map__scene,
  .system-map__spine, .status-grid, .auth-chip, .comp-chip, .tag, .verify-strip,
  .hero__start, .system-map__graph, .gscroll, .orient-card {
    background: #fff !important; box-shadow: none !important;
    border: 1px solid #ccc; break-inside: avoid;
  }
  pre, code, .comp-card__cmd { color: #000; }

  
  .docs-article p a[href^="http"]::after,
  .obj-coverage p a[href^="http"]::after {
    content: " (" attr(href) ")"; font-size: 0.85em; color: #555; word-break: break-all;
  }
  a { color: #000; text-decoration: underline; }

  
  h1, h2, h3, h4 { break-after: avoid; }
  .docs-article h2, .docs-article h3, .auth-class, .system-map { break-before: auto; }
  p, li { orphans: 3; widows: 3; }
  .content-visibility-auto, .docs-article > section, .comp-card,
  .comp-list--cards, .rule-group, .auth-class, .wire-list, .system-map__scene {
    content-visibility: visible !important; 
  }

  /* Defensive: never attempt a backdrop blur on the print compositor. */
  * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }

  
  .system-map__graph .gnode__label,
  .system-map__graph.has-salience .gnode--component .gnode__label,
  .system-map__graph.has-salience .gnode--wired_component .gnode__label { opacity: 1 !important; }
  .system-map__graph .gnode.is-dim, .system-map__graph .gedge.is-dim,
  .system-map__graph .gedge, .system-map__graph .gedge--bridge { opacity: 1 !important; }

  
  .copy-proxy { display: none !important; }
}


.docs-search-btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  margin-left: auto;
  padding: 0.32rem 0.7rem;
  background: var(--surface); color: var(--muted);
  border: 1px solid var(--rule-strong); border-radius: var(--r-control);
  font: inherit; font-size: 0.84rem; cursor: pointer;
}
.docs-search-btn:hover { color: var(--ink); border-color: var(--accent); }
.docs-search-btn__kbd {
  font-family: var(--font-mono); font-size: 0.74rem; line-height: 1;
  padding: 0.12rem 0.4rem; color: var(--faint);
  background: var(--surface-sunk); border: 1px solid var(--rule); border-radius: 4px;
}
.docs-topbar__links + .docs-search-btn, .docs-search-btn + .docs-topbar__links { margin-left: 0.5rem; }

@media (max-width: 600px) { .docs-topbar__links { display: none; } }


body.cmdk-open { overflow: hidden; }
.cmdk { position: fixed; inset: 0; z-index: 60; display: grid; place-items: start center; }
.cmdk[hidden] { display: none; }
@keyframes cmdk-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes cmdk-panel-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.cmdk__backdrop { position: absolute; inset: 0; background: var(--scrim); animation: cmdk-backdrop-in var(--dur-fast) var(--ease); }
.cmdk__panel {
  position: relative; margin-top: 9vh; width: min(620px, 92vw);
  background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 12px;
  box-shadow: var(--shadow-pop); overflow: hidden;
  display: flex; flex-direction: column; max-height: calc(100dvh - 18vh);
  animation: cmdk-panel-in var(--dur) var(--ease);
}
.cmdk__head { display: flex; flex: none; align-items: center; gap: 0.5rem; padding: 0.55rem 0.6rem; border-bottom: 1px solid var(--rule); }
.cmdk__input {
  flex: 1; min-width: 0; border: 0; background: transparent; color: var(--ink);
  font: inherit; font-size: 1.02rem; padding: 0.4rem 0.5rem;
}
.cmdk__input:focus { outline: none; }
.cmdk__close {
  font: inherit; font-size: 0.74rem; color: var(--faint); cursor: pointer;
  background: var(--surface-sunk); border: 1px solid var(--rule); border-radius: 5px; padding: 0.2rem 0.45rem;
  display: inline-flex; align-items: center; min-height: 24px;
}
.cmdk__results { list-style: none; margin: 0; padding: 0.3rem; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.cmdk__item {
  display: grid; grid-template-columns: 5.4rem minmax(0, 1fr); align-items: baseline; gap: 0.1rem 0.7rem;
  padding: 0.5rem 0.6rem; border-left: 2px solid transparent; border-radius: 8px; cursor: pointer;
}
.cmdk__item.is-active { background: var(--surface-sunk); border-left-color: var(--accent); }
.cmdk__item.is-active .cmdk__label { color: var(--accent-strong); }
.cmdk__kind {
  grid-row: span 2; align-self: center;
  font-size: 0.64rem; letter-spacing: var(--tracking-kicker); text-transform: uppercase; color: var(--faint);
}
.cmdk__label { min-width: 0; overflow-wrap: anywhere; color: var(--ink); font-weight: 600; }
.cmdk__rank {
  display: inline-block; margin-left: 0.45rem; vertical-align: baseline;
  font-size: 0.7rem; font-weight: 600; color: var(--accent-strong);
  background: var(--accent-wash); border: 1px solid var(--rule);
  border-radius: 999px; padding: 0 0.4rem;
}
.cmdk__meta { grid-column: 2; color: var(--muted); font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmdk__role { color: var(--ink-soft); font-weight: 600; }
.cmdk__actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0.3rem 0.4rem; margin-top: 0.25rem; }
.cmdk__action { font-family: inherit; font-size: 0.72rem; font-weight: 600; padding: 0.1rem 0.55rem; border: 1px solid var(--rule); border-radius: 999px; color: var(--accent); text-decoration: none; background: var(--surface); cursor: pointer; display: inline-flex; align-items: center; min-height: 24px; }
.cmdk__action:hover { border-color: var(--accent); }
.cmdk__item.is-active .cmdk__action { border-color: var(--accent); }
@media (max-width: 700px) {
  .cmdk__close, .cmdk__action { min-height: 44px; }
}
.cmdk__empty { padding: 1.4rem 1rem; color: var(--muted); text-align: center; }
.cmdk__foot {
  display: flex; justify-content: space-between; gap: 1rem;
  flex: none;
  padding: 0.45rem 0.7rem; border-top: 1px solid var(--rule);
  color: var(--muted); font-size: 0.74rem;
}
.cmdk__hint { font-family: var(--font-mono); }
@media (max-width: 600px) {
  .cmdk__panel { margin-top: 12px; width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .cmdk__item { grid-template-columns: minmax(0, 1fr); gap: .25rem; padding: .75rem; }
  .cmdk__kind { grid-row: auto; font-size: .6875rem; }
  .cmdk__meta, .cmdk__actions { grid-column: 1; }
  .cmdk__actions { gap: .35rem; }
  .cmdk__action { justify-content: center; font-size: .75rem; }
  .cmdk__foot { flex-wrap: wrap; gap: .25rem; }
}
@media (hover: none) {
  .cmdk__hint { display: none; }
}


.system-map__graph { margin: 1.4rem 0 0.4rem; contain: layout paint style; }
.system-map__graphcap { margin: 0 0 0.7rem; color: var(--muted); font-size: 0.92rem; max-width: var(--prose); }
.gfocus { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.7rem; }
.gfocus__btn {
  font: inherit; font-size: 0.8rem; cursor: pointer;
  padding: 0.28rem 0.66rem; color: var(--ink-soft);
  background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 999px;
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.gfocus__btn:hover { border-color: var(--accent); color: var(--ink); }
.gfocus__btn.is-active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }

.gscroll {
  overflow-x: auto; overflow-y: hidden;
  overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
  border: 1px solid var(--rule); border-radius: 12px; background: var(--surface);
}
.gsvg { display: block; width: 100%; min-width: 0; height: auto; }

.gcluster__box { fill: var(--surface-sunk); stroke: var(--rule); stroke-width: 1; }
.gcluster__label { fill: var(--ink-soft); font-family: var(--font-sans); font-size: 15px; font-weight: 600; letter-spacing: 0.01em; }
.gcluster__count { fill: var(--muted); font-weight: 700; }

.gcluster__box--overview, .gcluster__box--shared_spine { fill: none; stroke: var(--rule-strong); }
.gcluster--overview .gcluster__label, .gcluster--shared_spine .gcluster__label {
  fill: var(--muted); font-size: 12px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
}
.gcluster--overview .gcluster__count, .gcluster--shared_spine .gcluster__count { fill: var(--muted); }

.gedge { stroke: var(--edge); stroke-width: 1; stroke-linecap: round; transition: opacity var(--dur) var(--ease); }

.gedge--binds_to_shared_path { stroke: var(--rule); stroke-dasharray: 3 3; }
.gedge--spine_sequence { stroke: var(--accent); stroke-width: 1.6; }
.gedge--declared_dependency_untyped { stroke: var(--edge); }


.gnode { cursor: pointer; }
.gnode .gnode__dot { stroke: var(--surface); stroke-width: 1.5; transition: r var(--dur-fast) var(--ease); }
.gnode__hithalo { fill: transparent; }

.gnode--area .gnode__dot { fill: var(--accent); }
.gnode--shared_spine .gnode__dot, .gnode--spine_step .gnode__dot { fill: var(--muted); }
.gnode--component .gnode__dot,
.gnode--wired_component .gnode__dot { fill: var(--surface-sunk); stroke: var(--accent); stroke-width: 1.4; }
.gnode__label {
  fill: var(--ink-soft); font-family: var(--font-sans); font-size: 13px; pointer-events: none;
  
  paint-order: stroke; stroke: var(--surface-sunk); stroke-width: 3px; stroke-linejoin: round;
}
.gnode__hit { cursor: pointer; }
  
.gnode--area .gnode__hit .gnode__dot { stroke: var(--accent); }

.system-map__graph.is-isolating .gnode.is-dim { opacity: 0.18; }
.system-map__graph.is-isolating .gedge.is-dim { opacity: 0.07; }
.gnode.is-active .gnode__dot { stroke: var(--accent-strong); stroke-width: 2.5; }
.gnode.is-active .gnode__label, .gnode.is-neighbour .gnode__label { fill: var(--ink); font-weight: 600; }
.gedge.is-active { stroke: var(--accent-strong); stroke-width: 2; }


.system-map__graph.has-salience:not(.is-isolating) .gedge--bridge { opacity: 0.09; }
.system-map__graph.has-salience:not(.is-isolating) .gedge--local.gedge--declared_dependency_untyped { opacity: 0.32; }


.system-map__graph.has-salience .gnode--component .gnode__label,
.system-map__graph.has-salience .gnode--wired_component .gnode__label { opacity: 0; }
.system-map__graph.has-salience .gnode--component.is-hub .gnode__label,
.system-map__graph.has-salience .gnode--component.is-active .gnode__label,
.system-map__graph.has-salience .gnode--component.is-neighbour .gnode__label,
.system-map__graph.has-salience .gnode--wired_component.is-hub .gnode__label,
.system-map__graph.has-salience .gnode--wired_component.is-active .gnode__label,
.system-map__graph.has-salience .gnode--wired_component.is-neighbour .gnode__label { opacity: 1; }

.system-map__graph.has-salience .gnode--component:hover .gnode__label,
.system-map__graph.has-salience .gnode--component:focus-within .gnode__label,
.system-map__graph.has-salience .gnode--wired_component:hover .gnode__label,
.system-map__graph.has-salience .gnode--wired_component:focus-within .gnode__label { opacity: 1; }


.system-map__graph.has-salience .gnode.is-hub .gnode__hithalo { stroke: var(--accent); stroke-width: 1.4; opacity: 0.4; }
.system-map__graph.has-salience .gnode.is-hub .gnode__dot { stroke: var(--accent-strong); stroke-width: 2.2; }
.system-map__graph.has-salience .gnode.is-hub .gnode__label { font-weight: 700; }


.system-map__graph.has-salience .gnode--component.is-active .gnode__dot,
.system-map__graph.has-salience .gnode--wired_component.is-active .gnode__dot { fill: var(--accent); }


.gpanel { margin: 0.9rem 0 0.2rem; padding: 0.85rem 1rem; max-width: var(--prose); border: 1px solid var(--rule-strong); border-radius: 12px; background: var(--surface-sunk); }
.gpanel.is-pinned { border-color: var(--accent); }
.gpanel__hint { margin: 0; color: var(--muted); font-size: 0.9rem; }
.gpanel__head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; }
.gpanel__kind { font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.gpanel__pin { font: inherit; font-size: 0.8rem; padding: 0.2rem 0.7rem; border: 1px solid var(--rule-strong); border-radius: 999px; background: var(--surface); color: var(--ink); cursor: pointer; }
.gpanel__pin:hover { border-color: var(--accent); color: var(--accent); }
.gpanel.is-pinned .gpanel__pin { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.gpanel__title { margin: 0.3rem 0 0.1rem; font-size: 1.05rem; overflow-wrap: anywhere; }
.gpanel__where { margin: 0 0 0.5rem; color: var(--muted); font-size: 0.85rem; }

.gpanel__evidence { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0 0 0.5rem; }
.gpanel__rank { font-size: 0.74rem; font-weight: 700; padding: 0.1rem 0.5rem; border-radius: 999px; color: var(--accent-strong); border: 1px solid var(--accent-wash); background: var(--accent-wash); }
.gpanel__evkind { font-size: 0.74rem; padding: 0.1rem 0.5rem; border-radius: 999px; color: var(--ink-soft); border: 1px solid var(--rule); background: var(--surface); }
.gpanel__evtool { font-size: 0.68rem; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.12rem 0.5rem; border-radius: 999px; color: var(--muted); border: 1px solid var(--rule); }
.gpanel__job { margin: 0 0 0.55rem; font-size: 0.86rem; color: var(--ink-soft); line-height: 1.45; }
.gpanel__ceiling { margin: 0 0 0.55rem; font-size: 0.82rem; color: var(--ink-soft); line-height: 1.45; }
.gpanel__links-label { margin: 0.3rem 0 0.35rem; font-size: 0.82rem; color: var(--muted); }
.gpanel__links { list-style: none; margin: 0 0 0.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.gpanel__links li { margin: 0; }
.gpanel__nbr { font: inherit; font-size: 0.82rem; padding: 0.18rem 0.6rem; border: 1px solid var(--rule); border-radius: 999px; background: var(--surface); color: var(--ink); cursor: pointer; overflow-wrap: anywhere; text-align: left; }
.gpanel__nbr:hover { border-color: var(--accent); color: var(--accent); }
.gpanel__note { margin: 0.4rem 0 0.6rem; font-size: 0.78rem; color: var(--muted); }
.gpanel__actions { display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; align-items: center; }
.gpanel__open { font-size: 0.85rem; font-weight: 600; color: var(--accent); text-decoration: none; }
.gpanel__open:hover { text-decoration: underline; }
.gpanel__share { font: inherit; font-size: 0.82rem; padding: 0.2rem 0.7rem; border: 1px solid var(--rule-strong); border-radius: 8px; background: var(--surface); color: var(--ink); cursor: pointer; }
.gpanel__share:hover { border-color: var(--accent); color: var(--accent); }
.gpanel__act { font: inherit; font-size: 0.78rem; font-weight: 600; padding: 0.18rem 0.6rem; border: 1px solid var(--rule); border-radius: 999px; background: var(--surface); color: var(--accent); text-decoration: none; cursor: pointer; }
.gpanel__act:hover { border-color: var(--accent); }
.gpanel__pin, .gpanel__nbr, .gpanel__share, .gpanel__act { transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.gpanel__pin, .gpanel__nbr, .gpanel__share, .gpanel__act { display: inline-flex; align-items: center; min-height: 24px; }



@media (min-width: 1408px) {
  .system-map__graph.is-docked {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(20rem, 27vw, 24rem);
    grid-template-areas:
      "cap    cap"
      "focus  focus"
      "legend legend"
      "scroll panel";
    column-gap: 1rem;
    align-items: start;
  }
  .system-map__graph.is-docked > [data-dock="cap"]    { grid-area: cap; }
  .system-map__graph.is-docked > [data-dock="focus"]  { grid-area: focus; }
  .system-map__graph.is-docked > [data-dock="legend"] { grid-area: legend; }
  .system-map__graph.is-docked > [data-dock="scroll"] {
    grid-area: scroll; min-width: 0;
    /* Fit-scroll: the graph column grows with the page and the SVG below scales to
       fill it, so widening the window reveals MORE of the map until the whole thing
       is on screen -- not an empty gutter beside a fixed-scale thumbnail. The cap is
       generous so the full map shows; the inspector beside it is sticky, so it stays
       co-visible without forcing the map down to a thumbnail. */
    
    max-height: min(88vh, 1180px);
    overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
  }
  
  .system-map__graph.is-docked > [data-dock="scroll"] .gsvg {
    width: 100%; min-width: var(--map-fit-floor, 680px); height: auto;
    max-height: calc(min(88vh, 1180px) - 2px);
  }
  .system-map__graph.is-docked > [data-dock="scroll"]:focus-visible {
    outline: 2px solid var(--accent); outline-offset: -2px;
  }
  .system-map__graph.is-docked > [data-dock="panel"] {
    grid-area: panel; min-width: 0;
    margin: 0;            
    max-width: none;      
    position: sticky; top: 0.8rem; align-self: start;
    max-height: min(78vh, 760px); overflow-y: auto; overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

@media (min-width: 701px) and (max-width: 1407px) {
  .system-map__graph.is-docked > [data-dock="scroll"] {
    max-height: min(82vh, 900px);
    overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  }
  .system-map__graph.is-docked > [data-dock="scroll"] .gsvg {
    width: 100%; min-width: var(--map-fit-floor, 680px); height: auto;
    max-height: calc(min(82vh, 900px) - 2px); /* -2px: container border, see above */
  }
  .system-map__graph.is-docked > [data-dock="scroll"]:focus-visible {
    outline: 2px solid var(--accent); outline-offset: -2px;
  }
  .system-map__graph.is-docked > [data-dock="panel"] {
    margin: 0.7rem 0 0.2rem; max-width: none; max-height: 44vh; overflow-y: auto;
  }
}

@media print {
  .system-map__graph.is-docked { display: block; }
  .system-map__graph.is-docked > [data-dock="scroll"],
  .system-map__graph.is-docked > [data-dock="panel"] {
    max-height: none; overflow: visible; position: static;
  }
  .system-map__graph.is-docked > [data-dock="scroll"] .gsvg { min-width: 0; width: 100%; }
}


.system-map-landing__stage { margin: 1.1rem 0 0.4rem; }

.system-map-landing .system-map__graph { margin-top: 0.6rem; --map-fit-floor: 0px; }
.system-map-landing .gscroll { background: var(--surface-sunk); }
.system-map-landing .gsvg { max-width: 600px; margin: 0 auto; }
/* Cover legibility: eight labelled nodes in one small cluster collide, and the twin
   list below already names every area. So the dots + the active-node badge carry the
   shape at rest; a node's label appears on hover or focus. docs.js's declutter sets
   the promoted fan labels' opacity INLINE, so the resting-hide needs !important to
   win; the hover/focus reveal restores them the same way. The hub keeps its on-map
   badge for a name. */
.system-map-landing .gnode .gnode__label { opacity: 0 !important; }
.system-map-landing .gnode:hover .gnode__label,
.system-map-landing .gnode:focus-within .gnode__label { opacity: 1 !important; }


.system-map-landing__twin { margin: 1rem 0 0; }
.system-map-landing__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 0.4rem;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}
.system-map-landing__item {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem;
  padding: 0.5rem 0.75rem; text-decoration: none;
  border: 1px solid var(--rule); border-radius: 10px; background: var(--surface); color: var(--ink);
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.system-map-landing__item:hover { border-color: var(--accent); }
.system-map-landing__item.is-current { border-color: var(--accent); background: var(--accent-wash); }
.system-map-landing__item--spine { border-style: dashed; }
.system-map-landing__item-name { font-weight: 600; font-size: 0.92rem; }
.system-map-landing__item-meta { color: var(--muted); font-size: 0.8rem; white-space: nowrap; }

.system-map-landing__exits { display: flex; flex-wrap: wrap; gap: 0.6rem 0.9rem; margin: 1.1rem 0 0; align-items: center; }


.gpanel__count { margin: 0 0 0.55rem; font-size: 0.84rem; font-weight: 600; color: var(--ink-soft); }


.hero__copy--lead { max-width: 830px; }
.check-q { font-size: 1.18rem; line-height: 1.3; color: var(--ink); margin: 2.4rem 0 0.7rem; }
.check-q:first-of-type { margin-top: 1.5rem; }

.review-callout {
  max-width: 800px; margin: 1.5rem 0 0; padding-top: 1.3rem;
  border-top: 1px solid var(--rule);
}
.review-callout__lede { margin: 0 0 0.75rem; color: var(--ink-soft); font-size: var(--fs-body); line-height: var(--lh-snug); }
.review-callout pre {
  margin: 0; padding: 0.6rem 0.75rem;
  background: var(--surface-sunk); border: 1px solid var(--rule);
  border-radius: var(--r-md);
  font-size: 0.78rem; line-height: 1.5; color: var(--muted);
  white-space: pre-wrap; overflow-wrap: anywhere;
}
.review-callout pre code { font-family: inherit; font-size: inherit; background: none; padding: 0; }


.gbadge { pointer-events: none; }
.gbadge__box { fill: var(--surface); stroke: var(--accent-strong); stroke-width: 1.5; opacity: 0.97; }
.gbadge__text {
  fill: var(--ink); font-family: var(--font-sans); font-size: 12px; font-weight: 600;
  paint-order: stroke; stroke: var(--surface); stroke-width: 3px; stroke-linejoin: round;
}


.groute { fill: none; stroke: var(--accent-strong); stroke-width: 1.5; opacity: 0.85; stroke-linejoin: round; stroke-linecap: round; pointer-events: none; }
.system-map__graph .gedge.is-routed { display: none; }


.system-map__graph .gnode.is-chiplit .gnode__dot { stroke: var(--accent-strong); stroke-width: 3; }
.system-map__graph .gnode.is-chiplit .gnode__label { opacity: 1; fill: var(--ink); font-weight: 600; }
.system-map__graph .gedge.is-chiplit, .system-map__graph .groute.is-chiplit { stroke: var(--accent-strong); stroke-width: 2.6; opacity: 1; }


.system-map__graph.has-salience .gnode--component.is-clusterlabel .gnode__label,
.system-map__graph.has-salience .gnode--wired_component.is-clusterlabel .gnode__label { opacity: 0.95; }


.system-map__graph .gnode.is-fulllabel .gnode__label { opacity: 1; stroke-width: 3.6px; }
.system-map__graph.has-workbench .gnode.is-labelsuppressed .gnode__label { opacity: 0 !important; }


.status-grid { margin: 0.6rem 0 1.1rem; display: grid; gap: 0; border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; }
.status-grid__row { display: grid; grid-template-columns: 13rem 1fr; gap: 0.6rem; padding: 0.6rem 0.9rem; border-top: 1px solid var(--rule); }
.status-grid__row:first-child { border-top: 0; }
.status-grid dt { color: var(--muted); font-size: 0.9rem; }
.status-grid dd { margin: 0; color: var(--ink); }
.status-grid dd code { font-size: 0.84em; word-break: break-all; }
@media (max-width: 540px) { .status-grid__row { grid-template-columns: 1fr; gap: 0.15rem; } }


.obj-coverage { margin: 1.6rem 0 1.1rem; }
.obj-coverage > h2 { font-size: var(--fs-h2); }
.obj-coverage__list { list-style: none; margin: 0.7rem 0; padding: 0; border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; }
.obj-coverage__list li { display: flex; flex-wrap: wrap; gap: 0.15rem 0.8rem; align-items: baseline; padding: 0.5rem 0.9rem; border-top: 1px solid var(--rule); }
.obj-coverage__list li:first-child { border-top: 0; }
.obj-coverage__kind { font-family: var(--font-mono); font-size: 0.84rem; color: var(--ink); min-width: 8.5rem; }
.obj-coverage__stat { color: var(--muted); font-size: 0.88rem; overflow-wrap: anywhere; }
a.obj-coverage__kind { color: var(--accent); text-decoration: none; }
a.obj-coverage__kind:hover { text-decoration: underline; text-underline-offset: 0.18em; }

.obj-coverage__table {
  width: 100%; border-collapse: collapse; margin: 0.7rem 0;
  border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; font-size: 0.86rem;
}
.obj-coverage__caption {
  caption-side: bottom; text-align: left; color: var(--muted);
  font-size: 0.82rem; line-height: 1.5; padding: 0.65rem 0.2rem 0;
}
.obj-coverage__table thead th {
  text-align: right; font-weight: 700; color: var(--faint); font-size: 0.66rem;
  letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap;
  padding: 0.5rem 0.4rem; border-bottom: 1px solid var(--rule);
}
.obj-coverage__table thead th.obj-coverage__kind-head { text-align: left; padding-left: 0.7rem; }
.obj-coverage__table tbody th, .obj-coverage__table tbody td {
  padding: 0.4rem 0.4rem; border-top: 1px solid var(--rule);
}
.obj-coverage__table tbody .obj-coverage__kind-cell { padding-left: 0.7rem; }
.obj-coverage__table tbody tr:first-child th, .obj-coverage__table tbody tr:first-child td { border-top: 0; }
.obj-coverage__kind-cell { text-align: left; font-weight: 400; }
.obj-coverage__num {
  text-align: right; color: var(--ink-soft);
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
}
.obj-coverage__num--na { color: var(--faint); }

.obj-coverage__summary { margin: 0.7rem 0 0.3rem; }
.obj-coverage__lead { color: var(--ink-soft); margin: 0 0 0.5rem; }
.obj-coverage__exhead { color: var(--muted); font-size: 0.84rem; margin: 0 0 0.35rem; }
.obj-coverage__exceptions { margin: 0; display: grid; border: 1px solid var(--rule); border-radius: 10px; overflow: hidden; }
.obj-coverage__exceptions > div { display: grid; grid-template-columns: minmax(7rem, 9rem) 1fr; gap: 0.9rem; padding: 0.45rem 0.8rem; border-top: 1px solid var(--rule); }
.obj-coverage__exceptions > div:first-child { border-top: 0; }
.obj-coverage__exceptions dt { font-family: var(--font-mono); font-size: 0.82rem; color: var(--ink); }
.obj-coverage__exceptions dd { margin: 0; color: var(--ink-soft); font-size: 0.86rem; }
.obj-coverage__audit { margin: 0.6rem 0 0; }
.obj-coverage__audit-toggle {
  cursor: pointer; list-style: none; font-size: 0.78rem; color: var(--accent);
  padding: 0.35rem 0; display: inline-flex; align-items: center; gap: 0.3rem;
}
.obj-coverage__audit-toggle::-webkit-details-marker { display: none; }
.obj-coverage__audit-toggle::before { content: "\25B8"; font-size: 0.7rem; }
.obj-coverage__audit[open] .obj-coverage__audit-toggle::before { content: "\25BE"; }
.obj-coverage__audit .obj-coverage__table { margin-top: 0.4rem; }
@media (max-width: 640px) { .obj-coverage__exceptions > div { grid-template-columns: 1fr; gap: 0.1rem; } }

.fg-equation {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.45rem 0.8rem;
  padding: 0.9rem 1.05rem; border: 1px solid var(--rule); border-radius: 10px; margin: 0.8rem 0 0.5rem;
}
.fg-equation__term { color: var(--muted); font-size: 0.94rem; }
.fg-equation__term strong {
  color: var(--ink); font-size: 1.2rem; font-weight: 700;
  font-variant-numeric: tabular-nums; margin-right: 0.25rem;
}
.fg-equation__op { color: var(--faint); font-size: 1.05rem; font-family: var(--font-mono); }
.fg-equation__note { margin: 0 0 0.5rem; }
@media (max-width: 640px) {
  .obj-coverage__table, .obj-coverage__table tbody, .obj-coverage__table tbody tr { display: block; }
  .obj-coverage__caption { display: block; width: auto; caption-side: bottom; }
  .obj-coverage__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .obj-coverage__table tbody tr { border-top: 1px solid var(--rule); padding: 0.55rem 0.2rem; }
  .obj-coverage__table tbody tr:first-child { border-top: 0; }
  .obj-coverage__kind-cell { padding: 0 0 0.4rem; border: 0; }
  .obj-coverage__num { display: flex; justify-content: space-between; gap: 1rem; padding: 0.14rem 0; border: 0; }
  .obj-coverage__num--na { display: none; }
  .obj-coverage__num::before {
    content: attr(data-label); color: var(--faint); text-transform: uppercase;
    letter-spacing: var(--tracking-kicker); font-size: 0.64rem; font-family: var(--font-sans);
  }
}



.docs-layout--wide { width: min(1680px, calc(100% - 48px)); grid-template-columns: 244px minmax(0, 1fr); }
.docs-main > .docs-article { max-width: var(--prose); }

.docs-main > .docs-article:has(> .comp-group, > .comp-list--cards, > .rule-group) { max-width: none; }
.docs-article:has(> .comp-group, > .comp-list--cards, > .rule-group)
  > :not(.comp-group):not(.comp-list--cards):not(.rule-group) { max-width: var(--prose); }
.artifact-stage { margin: 1.8rem 0 2.2rem; }
.artifact-stage--paper-modules > h2,
.artifact-stage--paper-modules > p,
.artifact-stage--paper-modules > .status-grid { max-width: var(--prose); }
.artifact-stage--paper-modules .comp-list--cards { width: 100%; }
.artifact-stage .system-map { margin: 0; border-top: 0; padding-top: 0; }
.artifact-stage .system-map__header,
.artifact-stage .system-map > p,
.artifact-stage .system-map > h3,
.artifact-stage .system-map__scene,
.artifact-stage .wire-list { max-width: var(--prose); }
.artifact-stage .system-map__graph { margin-top: 0.5rem; }


.glegend { display: flex; flex-wrap: wrap; gap: 0.35rem 1.1rem; margin: 0 0 0.7rem; font-size: 0.82rem; color: var(--muted); }
.glegend__item { display: inline-flex; align-items: center; gap: 0.42rem; }
.glegend__dot { width: 11px; height: 11px; border-radius: 50%; box-shadow: 0 0 0 1.5px var(--surface), 0 0 0 2.5px var(--rule-strong); }
.glegend__dot--area { background: var(--accent); }
.glegend__dot--spine { background: var(--muted); }
.glegend__dot--wired { background: var(--surface-sunk); box-shadow: inset 0 0 0 2px var(--accent-strong), 0 0 0 1.5px var(--surface), 0 0 0 2.5px var(--rule-strong); }

@media (max-width: 1080px) { .docs-layout--wide { grid-template-columns: 230px minmax(0, 1fr); } }
@media (max-width: 768px) { .docs-layout--wide { grid-template-columns: minmax(0, 1fr); } }

@media (max-width: 700px) { .system-map__graph { display: none; } }




:root { --map-fit-floor: 680px; }


[data-fit-scroll] { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
[data-fit-scroll] > [data-fit-scroll-child] { width: 100%; min-width: var(--fit-floor, 640px); height: auto; }


.pm-body--page {
  background: none; border: 0; padding: 0.2rem 0 0;
  font-size: 1.04rem; line-height: 1.72; gap: 0.95rem;
}
.pm-body--page > p, .pm-body--page > ul, .pm-body--page > ol { max-width: 70ch; }
.pm-body--page .pm-body__h { font-size: 1.42rem; margin-top: 1.8rem; }
.pm-body--page .pm-body__h--sub { font-size: 1.04rem; margin-top: 1.3rem; }
.pm-body--page pre.pm-pre { font-size: 0.86rem; padding: 0.75rem 0.9rem; }
.pm-body--page table.pm-table { font-size: 0.9rem; }
.pm-body--page .pm-body__boundary { background: var(--surface-sunk); }

.pm-body--page .pm-diagram { width: auto; max-width: min(70ch, 100%); }
.pm-body--page .pm-diagram__svg { background: none; border: 0; padding: 0; max-width: none; }
.pm-body--page .pm-diagram__caption { text-align: center; }
.pm-body--page .pm-diagram__source { text-align: center; }
.pm-body--page .pm-diagram__source[open] { text-align: left; }

.docs-main > .docs-article.pm-detail { max-width: var(--reader-stage-max); }
.pm-detail > .docs-lede { max-width: 64ch; font-size: 1.22rem; }
.pm-detail .pm-context > p, .pm-detail .pm-context > div { max-width: 82ch; }
.pm-detail > h2 { font-family: var(--font-serif); font-size: 1.5rem; margin-top: 2.3rem; }

.pm-detail .comp-card__source a,
.pm-detail .comp-card__source code { overflow-wrap: anywhere; word-break: break-word; }


.pm-detail .pm-context {
  display: grid; gap: 0.6rem;
  padding: 1rem 1.15rem; border: 1px solid var(--rule);
  border-radius: var(--r-lg); background: var(--surface);
}
.pm-detail .pm-context .comp-card__relfeed {
  grid-template-columns: 7.5rem minmax(0, 1fr);
  padding-top: 0.55rem; border-top: 1px solid var(--rule);
}
.pm-detail .pm-context .comp-card__reltarget {
  display: inline-block; padding: 0.16rem 0.62rem; border-radius: var(--r-pill);
  font-size: 0.84rem; line-height: 1.4; color: var(--ink-soft);
  border: 1px solid color-mix(in srgb, var(--rel-kind, var(--rule-strong)) 55%, transparent);
  background: color-mix(in srgb, var(--rel-kind, var(--rule-strong)) 8%, var(--surface));
}
.pm-detail .pm-context a.comp-card__reltarget {
  color: color-mix(in srgb, var(--rel-kind, var(--accent)) 72%, var(--ink));
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.pm-detail .pm-context a.comp-card__reltarget:hover,
.pm-detail .pm-context a.comp-card__reltarget:focus-visible {
  text-decoration: none;
  border-color: var(--rel-kind, var(--accent));
  background: color-mix(in srgb, var(--rel-kind, var(--accent)) 16%, var(--surface));
}
.pm-detail .comp-card__reltarget--axiom { --rel-kind: var(--dcard-axiom); }
.pm-detail .comp-card__reltarget--principle { --rel-kind: var(--dcard-principle); }
.pm-detail .comp-card__reltarget--anti-principle { --rel-kind: var(--dcard-anti); }
.pm-detail .comp-card__reltarget--concept { --rel-kind: var(--accent); }
.pm-detail .comp-card__reltarget--mechanism { --rel-kind: var(--link-ext); }
.pm-detail .comp-card__reltarget--component { --rel-kind: var(--edge); }
.pm-detail .comp-card__reltarget--paper-module { --rel-kind: var(--pm-rail); }

.pm-detail .pm-context .comp-card__rel-list {
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.35rem; margin-top: 0.25rem;
}
.pm-detail .pm-context .comp-card__rel-list li { padding: 0; }
.pm-detail .pm-context .comp-card__rel-list li::before { display: none; }


.docs-breadcrumb { margin: 0 0 1.4rem; }

.docs-headrow {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 0.5rem 1.5rem; max-width: var(--prose); margin: 0 0 1.6rem;
}
.docs-headrow--wide { max-width: none; }
.docs-headrow > .docs-breadcrumb { margin: 0; }
.docs-main .docs-headrow > .docs-pagetools { margin: 0 0 0 auto; max-width: none; gap: 6px; }
.docs-main .docs-headrow .docs-pagetool { padding: 3px 10px; background: transparent; color: var(--muted); }
.docs-breadcrumb__list {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.1rem 0.55rem;
  list-style: none; margin: 0; padding: 0;
  font-family: var(--font-sans); font-size: 0.76rem; letter-spacing: 0.01em;
  color: var(--muted);
}
.docs-crumb { display: inline-flex; align-items: center; gap: 0.55rem; min-width: 0; }

.docs-crumb:not(:last-child)::after { content: "/"; color: var(--faint); }
.docs-breadcrumb a {
  color: var(--muted); text-decoration: none;
  border-bottom: 1px solid transparent; transition: color var(--dur) var(--ease);
}
.docs-breadcrumb a:hover { color: var(--accent); border-bottom-color: var(--accent); }
.docs-breadcrumb a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
.docs-breadcrumb [aria-current="page"] { color: var(--ink-soft); font-weight: 600; }
.docs-breadcrumb__section { color: var(--muted); }
@media (max-width: 700px) { .docs-breadcrumb { margin-bottom: 1rem; } }


.viewback {
  position: fixed; left: 16px; bottom: 16px; z-index: 60;
  display: inline-flex; align-items: center; gap: 0.45rem;
  max-width: min(22rem, calc(100vw - 32px));
  padding: 0.55rem 1rem 0.55rem 0.82rem;
  font: inherit; font-size: 0.88rem; color: var(--ink); text-align: left;
  
  background: var(--surface); border: 1px solid var(--accent); border-radius: 999px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.12), 0 8px 18px -12px rgba(0,0,0,0.42);
  cursor: pointer;
  transform: translateY(6px); opacity: 0;
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease),
              border-color var(--dur) var(--ease), color var(--dur) var(--ease),
              gap 0.28s var(--ease), padding 0.28s var(--ease);
}
.viewback.is-shown { transform: translateY(0); opacity: 1; }
.viewback:hover { border-color: var(--accent-strong); color: var(--accent); }
.viewback:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.viewback__arrow { font-size: 1.05rem; line-height: 1; color: var(--accent); font-weight: 700; }
.viewback__label {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  max-width: 24rem;
}
.viewback__where { color: var(--muted); }
.viewback:hover .viewback__where { color: var(--accent); }

.viewback.is-folded:not(:hover):not(:focus-visible) {
  min-width: 0; gap: 0; padding: 0; width: 2.5rem; height: 2.5rem; justify-content: center;
}
.viewback.is-folded:not(:hover):not(:focus-visible) .viewback__label { display: none; }
@media (prefers-reduced-motion: reduce) {
  .viewback { transition: opacity var(--dur) var(--ease); }
}

@media (min-width: 769px) {
  body.has-viewback .docs-sidebar {
    height: calc(100vh - var(--topbar-h) - 72px);
  }
  .viewback { min-width: 196px; max-width: 230px; }
}

@media (min-width: 1081px) {
  .viewback {
    left: max(16px, calc((100vw - 1680px) / 2));
    min-width: 208px;
    max-width: 244px;
  }
}
@media (max-width: 700px) { .viewback { left: 12px; bottom: 12px; font-size: 0.8rem; } }

body.nav-open .viewback, body.cmdk-open .viewback {
  opacity: 0; visibility: hidden; pointer-events: none;
}

body.has-viewback { padding-bottom: 64px; }
@media print { .viewback { display: none !important; } }


.glossary-hint {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 0;
  max-width: min(24rem, calc(100vw - 32px));
  padding: 0.38rem 0.38rem 0.38rem 0.38rem;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  line-height: 1.38;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid color-mix(in srgb, var(--home-ember) 40%, var(--rule-control));
  border-radius: 0.9rem;
  
  box-shadow: 0 1px 2px rgba(0,0,0,0.12), 0 8px 18px -12px rgba(0,0,0,0.42);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
              opacity var(--motion-panel) var(--ease-out);
}
.glossary-hint:hover,
.glossary-hint:focus-within { border-color: color-mix(in srgb, var(--home-ember) 75%, var(--rule-control)); }
.glossary-hint.is-away { opacity: 0; pointer-events: none; }

.glossary-hint.is-tucked, .glossary-hint.is-aside { opacity: 0; pointer-events: none; }
body.nav-open .glossary-hint, body.cmdk-open .glossary-hint {
  opacity: 0; visibility: hidden; pointer-events: none;
}

.glossary-hint__mark {
  flex: none;
  width: 2.15rem;
  height: 2.15rem;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 999px;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1;
  color: var(--home-ember);
  background: color-mix(in srgb, var(--home-ember) 12%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--home-ember) 42%, transparent);
  cursor: pointer;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.glossary-hint__mark:hover {
  background: color-mix(in srgb, var(--home-ember) 20%, var(--surface));
  border-color: color-mix(in srgb, var(--home-ember) 70%, transparent);
}
.glossary-hint__mark:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.glossary-hint__body {
  display: grid;
  grid-template-columns: 1fr;
  min-width: 0;
  transition: grid-template-columns 0.28s var(--ease-out);
}
.glossary-hint__body > div { min-width: 0; overflow: hidden; }

.glossary-hint__text { width: 18.5rem; max-width: calc(100vw - 7.5rem); padding: 0.05rem 0.4rem 0.05rem 0.8rem; }
.glossary-hint p { margin: 0; }
.glossary-hint__lead { font-weight: 500; letter-spacing: 0.005em; }
.glossary-hint__more { color: var(--muted); font-size: 0.73rem; margin-top: 0.12rem; }
.glossary-hint a {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
  text-underline-offset: 0.16em;
  transition: text-decoration-color var(--dur-fast) var(--ease);
}
.glossary-hint a:hover { color: var(--accent); text-decoration-color: var(--accent); }
.glossary-hint a[href^="mailto:"],
.glossary-hint a[data-link-kind="exogenous"] { color: var(--link-ext); text-decoration-color: color-mix(in srgb, var(--link-ext) 45%, transparent); }
.glossary-hint a[href^="mailto:"]:hover,
.glossary-hint a[data-link-kind="exogenous"]:hover { color: var(--link-ext); text-decoration-color: var(--link-ext); }
.glossary-hint__lead a { margin-left: 0.15em; white-space: nowrap; }
.glossary-hint__lead a::after { content: " \2192"; }
.glossary-hint a:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 2px;
}
.glossary-hint__close {
  flex: none; display: grid; place-items: center;
  width: 1.85rem; height: 1.85rem; margin: 0 0.15rem 0 0.1rem;
  padding: 0; border: 0; border-radius: 999px;
  background: transparent; color: var(--faint); font: inherit; font-size: 1.1rem; line-height: 1;
  cursor: pointer;
  transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.glossary-hint__close:hover { color: var(--ink); background: var(--surface-sunk); }
.glossary-hint__close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
/* Folded: mark only, unless the reader is on it or has pinned it open. */
.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) .glossary-hint__body { grid-template-columns: 0fr; }
.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) .glossary-hint__close { display: none; }
.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) { border-color: color-mix(in srgb, var(--home-ember) 34%, var(--rule-control)); border-radius: 999px; }
.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) .glossary-hint__body > div { max-height: 2.15rem; }

.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) {
  padding: 0; background: transparent; border-color: transparent; box-shadow: none;
}
.glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) .glossary-hint__mark {
  width: 2.5rem; height: 2.5rem;
  background: color-mix(in srgb, var(--home-ember) 12%, var(--surface));
  box-shadow: 0 1px 2px rgba(0,0,0,0.12), 0 8px 18px -12px rgba(0,0,0,0.42);
}

@media (max-width: 620px) {
  .glossary-hint {
    right: 10px;
    max-width: calc(100vw - 20px);
    font-size: 0.76rem;
  }
  .glossary-hint__more { display: none; }
  .glossary-hint.is-compact:not(:hover):not(:focus-within):not(.is-open) .glossary-hint__body { display: none; }
  .glossary-hint:not(.is-compact),
  .glossary-hint.is-compact:is(:hover, :focus-within, .is-open) {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    max-height: calc(100dvh - 32px); overflow-y: auto;
  }
  .glossary-hint__mark { grid-column: 1; grid-row: 1; }
  .glossary-hint__close { grid-column: 2; grid-row: 1; }
  .glossary-hint__body { grid-column: 1 / -1; grid-row: 2; }
  .glossary-hint__text { width: auto; max-width: none; padding: 0.4rem; overflow-wrap: anywhere; }
  .glossary-hint__lead a { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .glossary-hint, .glossary-hint__body, .glossary-hint__mark { transition: none; }
}
body.nav-open .glossary-hint, body.cmdk-open .glossary-hint {
  opacity: 0; visibility: hidden; pointer-events: none;
}
@media print { .glossary-hint { display: none !important; } }


.docs-main .dcard {
  position: relative;
  border-left-width: 3px;
  border-left-style: solid;
  border-left-color: var(--rule-strong);
}

.docs-main .dcard.term-card { border-left-width: 1px; border-left-color: var(--rule); }
.docs-main .dcard__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.docs-main .dcard__kind {
  padding: 1px 8px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
  white-space: nowrap;
}

/* Doctrine-card kind colours — one token per family so the left rail, the
   AX-/P-/AP- id code, and the (hidden) kind pill stay a single hue and re-point
   together in dark. The id code is small --fs-small/600 text, so each LIGHT value
   must clear WCAG AA 4.5:1 as text on the card surface; DARK values are lifted to
   clear AA on dark paper (same approach as --link-ext). The anti-principle warm
   also drives a faint surface wash, so its raw channel is exposed for the rgba().
   Light anti is darkened from the former #a4703c (~4.0:1 on its own wash, below AA)
   to #965f32 (~5:1) so rail, id, and wash stay one coherent hue and clear AA. */
:root {
  --dcard-axiom: #3d5a9e;
  --dcard-principle: #9a6a10;
  --dcard-anti: #b04a20;
  --dcard-anti-rgb: 176, 74, 32;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --dcard-axiom: #90a9e8;
    --dcard-principle: #e0b860;
    --dcard-anti: #e07d50;
    --dcard-anti-rgb: 224, 125, 80;
  }
}
.docs-main .dcard--axiom { border-left-color: var(--dcard-axiom); }
.docs-main .dcard--axiom .dcard__id { border-radius: 3px; }
.docs-main .dcard--axiom .dcard__name { font-weight: 650; }
.docs-main .dcard--axiom .dcard__kind { color: var(--dcard-axiom); border-color: var(--dcard-axiom); }

.docs-main .dcard--principle { border-left-style: dashed; border-left-color: var(--dcard-principle); }
.docs-main .dcard--principle .dcard__id { border-radius: 999px; }
.docs-main .dcard--principle .dcard__kind { color: var(--dcard-principle); border-color: var(--dcard-principle); }

.docs-main .dcard--anti-principle { border-left-color: var(--dcard-anti); background: rgba(var(--dcard-anti-rgb), 0.045); }
.docs-main .dcard--anti-principle .dcard__id { border-radius: 3px; clip-path: polygon(0 0, 100% 0, 100% 64%, 84% 100%, 0 100%); }
.docs-main .dcard--anti-principle .dcard__kind { color: var(--dcard-anti); border-color: var(--dcard-anti); }

.docs-main .dcard__kind { display: none; }

.docs-main .dcard--axiom .dcard__id { color: var(--dcard-axiom); }
.docs-main .dcard--principle .dcard__id { color: var(--dcard-principle); }
.docs-main .dcard--anti-principle .dcard__id { color: var(--dcard-anti); }


.docs-main .docs-pagetools,
.landing-pagetools .docs-pagetools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  max-width: var(--prose);
  margin: 0 0 20px;
}
html:not(.js) .docs-main .docs-pagetools > *,
html:not(.js) .landing-pagetools .docs-pagetools > * { visibility: hidden; }

.landing-pagetools .docs-pagetools {
  max-width: none;
  margin: 0;
  justify-content: flex-end;
  gap: 10px;
}
.landing-pagetools { padding-top: var(--space-3); }
.docs-main .docs-pagetools__label,
.landing-pagetools .docs-pagetools__label {
  margin-right: auto;
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--faint);
}
.docs-main .docs-pagetool,
.landing-pagetools .docs-pagetool {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border: 1px solid var(--rule-control);
  border-radius: 7px;
  background: var(--surface);
  font: inherit;
  font-size: var(--fs-small);
  color: var(--ink-soft);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.docs-main .docs-pagetool:hover,
.landing-pagetools .docs-pagetool:hover {
  border-color: var(--accent);
  color: var(--accent-strong);
  background: var(--surface-sunk);
}
.docs-main .docs-pagetool:focus-visible,
.landing-pagetools .docs-pagetool:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.docs-main .docs-pagetool.is-copied,
.landing-pagetools .docs-pagetool.is-copied { border-color: var(--accent); color: var(--accent-strong); }
.docs-main .docs-pagetool__icon,
.landing-pagetools .docs-pagetool__icon { font-size: 0.95em; line-height: 1; }
.docs-main .docs-pagetools__status,
.landing-pagetools .docs-pagetools__status { font-size: var(--fs-small); color: var(--muted); }

.landing-pagetools .docs-pagetools__label { margin-right: 0; }
.landing-pagetools .docs-pagetool {
  padding: 3px 9px;
  color: var(--faint);
  
  background: transparent;
  border-color: var(--rule-control);
}
.landing-pagetools .docs-pagetool:hover { color: var(--accent-strong); }


.corpus-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px;
  margin: 0 0 20px;
  padding: 0;
  background: var(--rule);
  border: 1px solid var(--rule);
  border-radius: 8px;
  overflow: hidden;
}
.corpus-facts__cell {
  background: var(--surface);
  padding: 14px 16px;
}
.corpus-facts dt {
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--faint);
  margin: 0 0 6px;
}
.corpus-facts dd {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.1;
}
.corpus-facts__note {
  font-size: var(--fs-small);
  color: var(--muted);
  max-width: var(--measure-note);
  margin: 0 0 14px;
}


#about-the-author:target ~ .author-email {
  padding: 0.7rem 0.9rem;
  border-left: 3px solid var(--accent);
  background: var(--accent-wash);
  border-radius: 0 6px 6px 0;
  animation: author-email-arrival 2.2s ease-out 1;
}
@keyframes author-email-arrival {
  from { background: color-mix(in srgb, var(--accent) 28%, var(--accent-wash)); }
  to { background: var(--accent-wash); }
}
@media (prefers-reduced-motion: reduce) {
  #about-the-author:target ~ .author-email { animation: none; }
}


.loop-chips {
  list-style: none; counter-reset: loop-chip;
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.4rem 0.45rem; margin: -0.9rem 0 1.9rem; padding: 0;
  font-size: 0.8rem; color: var(--muted);
}
.loop-chips li { display: inline-flex; align-items: center; }

.loop-chips li + li::before { content: "\2192"; color: var(--faint); margin-right: 0.45rem; }
.loop-chip {
  display: inline-flex; align-items: center; gap: 0.4rem;
  min-height: 1.72rem; padding: 0.14rem 0.42rem 0.14rem 0.22rem;
  border: 1px solid var(--rule); border-radius: 999px;
  background: var(--surface); white-space: nowrap; line-height: 1.15;
}
.loop-chip::before {
  content: counter(loop-chip); counter-increment: loop-chip;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.15rem; height: 1.15rem; flex: none;
  border: 1px solid var(--rule-strong); border-radius: 999px;
  background: var(--surface-sunk);
  font-size: 0.68rem; font-variant-numeric: tabular-nums; color: var(--muted);
}
.loop-chips code { font-size: 0.92em; }
@media (max-width: 640px) {
  .loop-chips {
    display: grid; grid-template-columns: 1fr;
    align-items: stretch; gap: 0.38rem;
    margin: -0.45rem 0 1.45rem;
    max-width: 22rem;
  }
  .loop-chips li { display: flex; min-width: 0; }
  .loop-chips li + li::before { content: none; }
  .loop-chips li:last-child:nth-child(odd) { grid-column: auto; }
  .loop-chip {
    width: 100%; min-height: 2.1rem;
    padding: 0.3rem 0.58rem 0.3rem 0.36rem;
    border-radius: 8px;
    white-space: normal; overflow-wrap: break-word;
  }
  .loop-chip::before { width: 1.28rem; height: 1.28rem; flex-basis: 1.28rem; }
}

.boundary-band {
  display: flex; flex-wrap: wrap; align-items: baseline;
  margin: 0.7rem 0 0; padding: 0.55rem 0.1rem 0;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small); color: var(--muted);
  letter-spacing: 0.01em;
}

.boundary-band span { white-space: nowrap; }
.boundary-band span + span::before { content: "\00B7"; margin: 0 0.6rem; color: var(--faint); }



.ai-primary { margin: var(--stack-major) 0 0; padding-top: var(--stack-pad); border-top: 1px solid var(--rule); }
.ai-primary__lede { margin: 0; color: var(--ink-soft); font-size: var(--fs-body); line-height: var(--lh-snug); }
.ai-primary__row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem 1rem;
  margin: 0.85rem 0 0;
}
.ai-primary__row .btn { margin: 0; }
.ai-primary__alt {
  font-size: var(--fs-meta); color: var(--muted); line-height: var(--lh-snug);
  max-width: 34ch;
}
.ai-primary__for {
  margin: 0.85rem 0 0; font-size: var(--fs-small); color: var(--muted);
  line-height: var(--lh-snug); text-wrap: pretty; max-width: var(--measure-note);
}
.ai-advanced { margin: 0.8rem 0 0; border-top: 1px solid var(--rule); }
.ai-advanced > summary {
  display: flex; align-items: center; gap: 0.5rem;
  cursor: pointer; list-style: none; padding: 0.55rem 0 0.1rem;
  font-size: var(--fs-small); color: var(--faint);
  transition: color var(--dur) var(--ease);
}
.ai-advanced > summary::-webkit-details-marker { display: none; }
.ai-advanced > summary::before {
  content: ""; flex: none; width: 0.38em; height: 0.38em; margin-top: -0.08em;
  border-right: 1.5px solid var(--faint); border-bottom: 1.5px solid var(--faint);
  transform: rotate(-45deg);
  transition: transform var(--dur) var(--ease);
}
.ai-advanced[open] > summary::before { transform: rotate(45deg); margin-top: -0.16em; }
.ai-advanced > summary:hover { color: var(--muted); }
.ai-advanced[open] > summary { color: var(--muted); }
.ai-direct {
  margin: 0.7rem 0 0.2rem; font-size: var(--fs-small); color: var(--faint);
}
.ai-direct a { color: var(--muted); }

.ai-questions { margin: 0.85rem 0 0; }
.ai-questions > summary {
  display: flex; align-items: center; gap: 0.5rem;
  cursor: pointer; list-style: none; padding: 0.15rem 0;
  font-size: var(--fs-small); font-weight: 600; color: var(--muted);
  transition: color var(--dur) var(--ease);
}
.ai-questions > summary::-webkit-details-marker { display: none; }
.ai-questions > summary::before {
  content: ""; flex: none; width: 0.38em; height: 0.38em; margin-top: -0.08em;
  border-right: 1.5px solid var(--faint); border-bottom: 1.5px solid var(--faint);
  transform: rotate(-45deg);
  transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ai-questions[open] > summary::before { transform: rotate(45deg); margin-top: -0.16em; }
.ai-questions > summary:hover { color: var(--ink-soft); }
.ai-questions > summary:hover::before { border-color: var(--muted); }
.ai-questions ul {
  margin: 0.45rem 0 0.2rem; padding-left: 1.2rem;
  font-size: var(--fs-small); color: var(--muted); line-height: var(--lh-snug);
}
.ai-questions li { margin: 0.18rem 0; }
.ai-questions__note { margin: 0.3rem 0 0.2rem; font-size: var(--fs-small); color: var(--faint); }


.ai-questions__set { border-top: 1px solid var(--rule); }
.ai-questions__set:first-of-type { margin-top: 0.45rem; }
.ai-questions__set > summary {
  display: flex; align-items: center; gap: 0.55rem;
  padding: 0.52rem 0.1rem; cursor: pointer; list-style: none;
  font-size: 0.9rem; font-weight: 600; color: var(--ink-soft);
  transition: color var(--dur) var(--ease);
}
.ai-questions__set > summary::-webkit-details-marker { display: none; }
.ai-questions__set > summary::before {
  content: ""; flex: none; width: 0.4em; height: 0.4em; margin-top: -0.1em;
  border-right: 1.5px solid var(--faint); border-bottom: 1.5px solid var(--faint);
  transform: rotate(-45deg);
  transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ai-questions__set[open] > summary::before { transform: rotate(45deg); margin-top: -0.2em; }
.ai-questions__set > summary:hover { color: var(--accent); }
.ai-questions__set > summary:hover::before { border-color: var(--accent); }
.ai-questions__set ul { margin: 0.05rem 0 0.6rem; }
.ai-questions__set li { color: var(--muted); }
.ai-questions__set .ai-questions__note { margin: 0 0 0.45rem; }
.ai-questions__copy {
  margin: 0.1rem 0 0.8rem;
  font-size: 0.78rem; padding: 0.3rem 0.75rem;
  color: var(--muted);
}
.ai-questions__copy:hover { color: var(--ink); }



.ai-agent-boot { margin: 0.2rem 0 0.3rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 1.1rem; }
.ai-agent-boot pre {
  margin: 0.7rem 0 0; padding: 0.7rem 0.85rem;
  background: var(--surface-sunk); border-radius: var(--r-md);
  font-size: 0.78rem; line-height: 1.55; color: var(--muted);
  white-space: pre-wrap; overflow-wrap: anywhere;
}
.ai-agent-boot .ai-questions__copy { margin: 0; }
.ai-agent-boot__peek { flex: 1 1 100%; order: 3; }
.ai-agent-boot__peek > summary {
  cursor: pointer; list-style: none; color: var(--faint); font-size: var(--fs-meta);
  display: inline-flex; align-items: center; gap: 0.5rem;
}
.ai-agent-boot__peek > summary::-webkit-details-marker { display: none; }

.ai-agent-boot__peek > summary::before {
  content: ""; width: 0.4em; height: 0.4em; flex: none;
  border-right: 1.5px solid var(--faint); border-bottom: 1.5px solid var(--faint);
  rotate: -45deg; transition: rotate var(--motion-ui) var(--ease-out);
}
.ai-agent-boot__peek[open] > summary::before { rotate: 45deg; }
.ai-agent-boot__peek > summary:hover { color: var(--muted); }
.ai-agent-boot__then { color: var(--muted); }


.ai-altpath {
  margin: 0.95rem 0 0; padding-top: 0.85rem; border-top: 1px solid var(--rule);
  font-size: var(--fs-small); line-height: var(--lh-snug); color: var(--faint);
  text-wrap: pretty;
}
.ai-altpath__q { color: var(--ink-soft); font-weight: 600; }

.ai-tiers { list-style: none; margin: 0.9rem 0 0; padding: 0; }
.ai-tier {
  display: grid; grid-template-columns: 14.5rem minmax(0, 1fr);
  gap: 0.35rem 0.95rem; align-items: start;
  padding: 0.6rem 0; border-top: 1px solid var(--rule);
}
.ai-tier:first-child { border-top: none; padding-top: 0.15rem; }
.ai-tier .btn { line-height: normal; }
.ai-tier__for { margin: 0; font-size: var(--fs-small); color: var(--muted); line-height: var(--lh-snug); text-wrap: pretty; }
@media (max-width: 600px) {
  .ai-tier { grid-template-columns: 1fr; }
  .ai-tier .btn { width: auto; justify-self: start; }
}

.reads-as {
  margin: 1.4rem 0 0; padding: 0.4rem 1rem;
  border: 1px solid var(--rule); border-radius: 8px;
  background: var(--surface-sunk); font-size: var(--fs-body);
}
.reads-as__row {
  display: grid; grid-template-columns: 9.5rem minmax(0, 1fr);
  gap: 0.85rem; padding: 0.55rem 0; border-top: 1px solid var(--rule);
}
.reads-as__row:first-child { border-top: none; }
.reads-as dt {
  margin: 0; padding-top: 0.12rem; font-size: var(--fs-small);
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--faint); font-weight: 600;
}
.reads-as dd { margin: 0; color: var(--ink-soft); text-wrap: pretty; }
@media (max-width: 540px) {
  .reads-as__row { grid-template-columns: 1fr; gap: 0.15rem; }
}

.glossary-guide {
  margin: 1.2rem 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.glossary-guide > summary {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 44px;
  padding: 0.6rem 0.15rem;
  list-style: none;
  cursor: pointer;
  color: var(--ink-soft);
  font-size: var(--fs-small);
  font-weight: 600;
}
.glossary-guide > summary::-webkit-details-marker { display: none; }
.glossary-guide > summary::before {
  content: "";
  flex: none;
  width: 0.4em;
  height: 0.4em;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  transition: transform var(--dur-fast) var(--ease);
}
.glossary-guide[open] > summary::before { transform: rotate(45deg); }
.glossary-guide > summary:hover { color: var(--accent-strong); }
.glossary-guide > summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 3px;
}
.glossary-guide .callout { margin: 0.4rem 0 0.8rem; }
.term-list { margin: 1.4rem 0 1.2rem; }

.docs-main .term-list { grid-template-columns: minmax(0, 1fr); }
.docs-main .term-card { min-width: 0; overflow-wrap: anywhere; }
.docs-main .term-card .dcard__head { gap: 0.35rem 0.65rem; }
.term-card__kind {
  padding: 1px 8px;
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  color: var(--muted);
  font-size: var(--fs-micro);
  letter-spacing: 0.01em;
  white-space: normal;
}
.term-card__record { display: block; margin-bottom: 0.3rem; overflow-wrap: anywhere; }
.term-card__phrase {
  display: block;
  margin: 0 0 0.3rem;
  color: var(--accent-strong);
  font-weight: 650;
}
.term-card__relations {
  align-items: flex-start;
}
.term-card__rel {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.25rem 0.35rem;
  margin: 0 0.35rem 0.35rem 0;
  color: var(--muted);
  font-size: var(--fs-small);
}
.term-card__relverb {
  color: var(--faint);
  font-size: var(--fs-micro);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.term-card__relgloss { color: var(--muted); }
.term-card__source-list {
  margin: 0;
  padding-left: 1rem;
  color: var(--muted);
  font-size: var(--fs-small);
}
.term-card__source-list li { margin: 0.25rem 0; }
.term-card__cmd {
  margin: 0.15rem 0;
  padding: 0.35rem 0.5rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
}
.term-card__source {
  margin: 0.7rem 0 0;
  color: var(--faint);
  font-size: var(--fs-small);
}



.oq-doc{max-width:var(--prose);margin:0 auto}
.oq-intro h1{margin-bottom:8px}
.oq-intro__deck{color:var(--muted);font-size:1.06rem;line-height:1.5;margin-bottom:20px}
.oq-intro p{color:var(--ink-soft);margin-bottom:12px}
.oq-intro__date{color:var(--faint);font-size:.84rem;margin-top:4px}
.oq-intro__nav{margin:6px 0 18px;padding:12px 16px;background:var(--surface-sunk);
  border:1px solid var(--rule);border-radius:9px;color:var(--ink-soft);font-size:.95rem;line-height:1.5}


.oq-vocab{margin:24px 0 4px;padding:18px 20px 20px;background:var(--surface-sunk);
  border:1px solid var(--rule);border-radius:10px}
.oq-vocab h2{font-size:1.02rem;margin:0 0 14px}
.oq-vocab dl{margin:0}
.oq-vocab dt{font-weight:600;color:var(--ink);font-size:.95rem;
  margin-top:18px;padding-top:18px;border-top:1px solid var(--rule)}
.oq-vocab dt:first-of-type{margin-top:0;padding-top:0;border-top:0}
.oq-vocab dd{margin:4px 0 0;color:var(--ink-soft);font-size:.92rem;line-height:1.6}
.oq-vocab__note{margin-top:18px;padding-top:16px;border-top:1px solid var(--rule);
  color:var(--muted);font-size:.9rem;line-height:1.55}


.oq-chain{margin:22px 0 4px}
.oq-chain h2{font-size:1.02rem;margin-bottom:11px}
.oq-chain ol{margin:0;padding-left:1.4em;display:grid;gap:8px;color:var(--ink-soft);
  font-size:.95rem;line-height:1.5}
.oq-chain__tail{margin-top:13px;color:var(--muted);font-size:.92rem;line-height:1.55}


.oq-fivehead{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;margin:30px 0 14px;
  padding-bottom:10px;border-bottom:1px solid var(--rule-strong)}
.oq-fivehead h2{font-size:1.12rem;white-space:nowrap}
.oq-fivehead .oq-btn{margin-left:auto;white-space:nowrap}
.oq-fivehead__hint{flex-basis:100%;font-size:.8rem;color:var(--faint);line-height:1.4}
.oq-btn{font:inherit;font-size:.82rem;color:var(--accent-strong);background:var(--surface);
  border:1px solid var(--rule-strong);border-radius:7px;padding:4px 10px;cursor:pointer}
.oq-btn:hover{border-color:var(--accent);background:var(--accent-wash)}
.oq-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}


.oq-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.oq-q{border:1px solid var(--rule);border-radius:10px;background:var(--surface)}
.oq-q[open]{border-color:var(--rule-strong)}
.oq-q__summary{list-style:none;cursor:pointer;position:relative;display:block;padding:15px 44px 16px 18px}
.oq-q__summary::-webkit-details-marker{display:none}
.oq-q__summary::after{content:"";position:absolute;right:20px;top:21px;width:8px;height:8px;
  border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);
  transform:rotate(45deg);transition:transform var(--dur) var(--ease),border-color var(--dur-fast) var(--ease)}
.oq-q[open] .oq-q__summary::after{transform:rotate(225deg);top:24px}
@media (prefers-reduced-motion:reduce){.oq-q__summary::after{transition:none}}
.oq-q__summary:hover .oq-q__prompt{color:var(--accent-strong)}
.oq-q__summary:hover::after{border-color:var(--accent-strong)}
.oq-q__summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:10px}
.oq-q__eyebrow{display:inline-flex;align-items:baseline;gap:7px;font-family:var(--font-mono);
  font-size:.74rem;font-weight:600;letter-spacing:.04em;color:var(--accent-strong);text-transform:uppercase}
.oq-q__eyebrow b{font-weight:600}
.oq-q__prompt{display:block;margin:8px 0 0;font-family:var(--font-serif);font-size:1.14rem;
  line-height:1.42;color:var(--ink);font-weight:600}
.oq-q__overview{display:block;margin-top:10px;color:var(--ink-soft);font-size:.96rem;line-height:1.55}


.oq-q__body{padding:0 18px 16px}
.oq-q__controls{display:flex;justify-content:flex-end;padding:8px 0 2px}
.oq-mini{font:inherit;font-size:.76rem;color:var(--accent-strong);background:transparent;
  border:1px solid var(--rule);border-radius:6px;padding:3px 9px;cursor:pointer}
.oq-mini:hover{border-color:var(--accent);background:var(--accent-wash)}
.oq-mini:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

@media (max-width:700px){
  .oq-btn,.oq-mini{min-height:44px}
}

/* Facet: the glance IS the clickable summary; opening adds new material */
.oq-facets{border-top:1px solid var(--rule)}
.oq-facet{border-top:1px solid var(--rule)}
.oq-facet:first-child{border-top:none}
.oq-facet>summary{list-style:none;cursor:pointer;position:relative;display:block;padding:13px 28px 13px 0}
.oq-facet>summary::-webkit-details-marker{display:none}
.oq-facet>summary::after{content:"";position:absolute;right:6px;top:18px;width:6px;height:6px;
  border-right:1.4px solid var(--faint);border-bottom:1.4px solid var(--faint);
  transform:rotate(45deg);transition:transform var(--dur) var(--ease),border-color var(--dur-fast) var(--ease)}
.oq-facet[open]>summary::after{transform:rotate(225deg);top:21px}
@media (prefers-reduced-motion:reduce){.oq-facet>summary::after{transition:none}}
.oq-facet>summary:hover::after{border-color:var(--accent)}
.oq-facet>summary:hover .oq-facet__glance{color:var(--ink)}
.oq-facet>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.oq-facet__kind{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;
  color:var(--faint);margin-bottom:4px}
.oq-facet__glance{display:block;color:var(--ink-soft);font-size:.97rem;line-height:1.55}
.oq-facet__body{padding:4px 0 13px;color:var(--muted);font-size:.92rem;line-height:1.62}

.oq-facet[data-kind="observed"]{padding-left:13px;border-left:3px solid var(--rule-strong)}
.oq-facet[data-kind="observed"] .oq-facet__glance{color:var(--muted);font-style:italic}

/* Citations: paper-style superscript numerals, comma-separated when adjacent */
.oq-cite{font-family:var(--font-mono);font-size:.62em;vertical-align:super;line-height:0;
  color:var(--accent);padding:0 1px;font-weight:600}
.oq-cite:hover{color:var(--accent-strong);text-decoration:underline}
.oq-cite + .oq-cite::before{content:", ";color:var(--faint);font-weight:400}

.oq-xref{border-bottom:1px dotted var(--accent);text-decoration:none}
.oq-xref:hover{text-decoration:none;border-bottom-style:solid}


.oq-children{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule)}
.oq-children__head{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin-bottom:10px}
.oq-rail{list-style:none;margin:0;padding:0 0 0 4px;counter-reset:oqc}
.oq-rail>li{position:relative;counter-increment:oqc;padding:0 0 14px 30px}
.oq-rail>li::before{content:counter(oqc);position:absolute;left:0;top:-1px;width:20px;height:20px;
  display:grid;place-items:center;font-family:var(--font-mono);font-size:.72rem;color:var(--muted);
  background:var(--surface);border:1px solid var(--rule-strong);border-radius:999px}
.oq-rail>li::after{content:"";position:absolute;left:9.5px;top:21px;bottom:2px;width:1px;background:var(--rule)}
.oq-rail>li:last-child{padding-bottom:0}
.oq-rail>li:last-child::after{display:none}
.oq-rail__q{color:var(--ink);font-size:.95rem;line-height:1.5}

.oq-bridge{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule);
  color:var(--muted);font-style:italic;font-size:.92rem;line-height:1.55}


.oq-sources{margin-top:46px;padding-top:20px;border-top:1px solid var(--rule-strong)}
.oq-sources h2{margin-bottom:6px}
.oq-sources__note{color:var(--muted);font-size:.88rem;line-height:1.55;margin-bottom:16px}
.oq-srclist{list-style:none;margin:0;padding:0;counter-reset:src;display:grid;gap:9px}
.oq-srclist>li{position:relative;counter-increment:src;padding-left:34px;font-size:.86rem;
  line-height:1.5;color:var(--ink-soft);scroll-margin-top:72px}
.oq-srclist>li::before{content:counter(src);position:absolute;left:0;top:0;width:24px;
  font-family:var(--font-mono);font-size:.78rem;color:var(--accent-strong);text-align:right}
.oq-srclist>li:target{background:var(--accent-wash);border-radius:6px;padding-top:3px;padding-bottom:3px;margin:-3px 0}
.oq-src__meta{color:var(--faint)}
.oq-badge{display:inline-block;margin-left:6px;font-size:.68rem;letter-spacing:.04em;
  border-radius:999px;padding:0 7px;border:1px solid var(--rule-strong);color:var(--muted)}
.oq-badge--ok{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-wash)}
.oq-foot{margin-top:36px;font-size:.82rem;color:var(--faint);line-height:1.55}
.oq-colophon{max-width:var(--prose);margin:40px auto 0;padding-top:18px;border-top:1px solid var(--rule);
  color:var(--muted);font-size:.9rem;line-height:1.6}
.oq-colophon h2{font-size:1.02rem;margin-bottom:8px;color:var(--ink)}


.wrap--wide { --max: 1220px; }


.claim-loop {
  list-style: none; margin: 0 0 1.6rem; padding: 0;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.9rem;
  color: var(--faint); font-size: var(--fs-small);
  letter-spacing: var(--tracking-kicker);
}
.claim-loop li { display: inline-flex; align-items: baseline; gap: 0.9rem; }
.claim-loop li:not(:last-child)::after { content: "\2192"; color: var(--rule-strong); }

.claim-carousel { position: relative; }
.claim-cards { display: flex; align-items: stretch; gap: 1.1rem; margin: 1.6rem 0 0.3rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.5rem; scrollbar-width: none; }
.claim-cards::-webkit-scrollbar { display: none; }
.claim-card { flex: 0 0 min(420px, 86vw); scroll-snap-align: start; border: 1px solid var(--rule-strong); border-radius: 12px; background: var(--surface); padding: 1.05rem 1.15rem; display: flex; flex-direction: column; gap: 0.6rem; }
.claim-card--featured {
  border-color: color-mix(in srgb, var(--link-ext) 60%, var(--rule-strong));
  background: color-mix(in srgb, var(--link-ext) 4%, var(--surface));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--link-ext) 24%, transparent);
}
.claim-card__eyebrow {
  margin: 0;
  color: var(--link-ext);
}
.claim-card h3 { font-size: 1.02rem; }
.claim-card dl { margin: 0; }
.claim-card dl > div { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: 0 0.65rem; padding: 0.34rem 0; border-top: 1px solid var(--rule); }
.claim-card dl > div:first-child { border-top: 0; }
.claim-card dt { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); padding-top: 0.18rem; }
.claim-card dd { margin: 0; font-size: 0.92rem; line-height: 1.45; color: var(--ink-soft); }
.claim-card dd code { font-size: 0.82em; overflow-wrap: anywhere; }
.claim-card__go { margin-top: auto; font-weight: 600; }
.claim-carousel__nav { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.75rem; }

#put-to-test > p, #check > p { max-width: var(--measure-note); }
.claim-card__refs { margin-top: auto; padding-top: 0.55rem; }
.claim-card__refs > summary { cursor: pointer; font-size: 0.85rem; font-weight: 600; color: var(--accent); padding: 0.2rem 0; }
.claim-refs { list-style: none; display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.55rem 0 0.1rem; padding: 0; }
.claim-ref-pill { display: inline-flex; align-items: center; gap: 0.42rem; border: 1px solid var(--rule-strong); border-radius: 999px; padding: 0.16rem 0.72rem 0.16rem 0.28rem; font-size: 0.8rem; line-height: 1.25; color: var(--ink-soft); }
.claim-ref-pill:hover { border-color: var(--accent); color: var(--accent-strong); }
.claim-ref-pill__num { display: inline-grid; place-items: center; min-width: 1.2rem; height: 1.2rem; border-radius: 999px; background: var(--accent-wash); color: var(--accent-strong); font-size: 0.72rem; font-weight: 700; }
.claim-cite { font-size: 0.66em; color: var(--accent); font-weight: 700; letter-spacing: 0.04em; }


.video-carousel { position: relative; }
.video-cards { display: flex; align-items: stretch; gap: var(--space-5); margin: var(--space-6) 0 var(--space-2); padding-bottom: var(--space-2); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.video-cards::-webkit-scrollbar { display: none; }
.video-card { flex: 0 0 clamp(17rem, 88vw, 448px); scroll-snap-align: start; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--rule); border-radius: var(--r-xl); background: var(--surface); transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.video-card:hover { border-color: var(--rule-strong); transform: translateY(-2px); box-shadow: var(--shadow); }

/* Poster: a designed placeholder — cinematic gradient, serif chapter numeral,
   mono kicker — deliberately not a fake screenshot. */
.video-card__player { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; margin: 0; padding: 0; border: 0; overflow: hidden; cursor: pointer; text-align: left; font: inherit; color: var(--ink);
  background:
    radial-gradient(120% 92% at 50% 0%, color-mix(in srgb, var(--accent-wash) 62%, transparent), transparent 60%),
    linear-gradient(168deg, var(--surface-sunk) 0%, color-mix(in srgb, var(--ink) 9%, var(--surface-sunk)) 100%);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--accent) 26%, transparent), inset 0 -1px 0 var(--rule); }
.video-card__poster { position: absolute; inset: 0; }
.video-card__poster-mark { position: absolute; left: 0.9rem; bottom: 0.3rem; font-family: var(--font-serif); font-size: 4.4rem; font-weight: 600; line-height: 1; letter-spacing: -0.02em; color: var(--ink); opacity: 0.13; font-variant-numeric: tabular-nums; transition: opacity var(--dur) var(--ease); }
.video-card__player:hover .video-card__poster-mark { opacity: 0.2; }
.video-card__poster-title { position: absolute; left: 1rem; top: 0.95rem; max-width: 58%; font-size: var(--fs-micro); font-weight: 500; text-transform: uppercase; letter-spacing: var(--tracking-kicker); line-height: 1.35; color: var(--faint); }
.video-card__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 3.6rem; height: 3.6rem; border-radius: var(--r-pill); display: grid; place-items: center; background: color-mix(in srgb, var(--surface) 76%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--rule-strong)); box-shadow: var(--shadow); backdrop-filter: blur(6px); transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.video-card__play::after { content: ""; margin-left: 0.22rem; border-style: solid; border-width: 0.5rem 0 0.5rem 0.84rem; border-color: transparent transparent transparent var(--accent-strong); transition: border-color var(--dur) var(--ease); }
.video-card__player:hover .video-card__play { background: var(--ink); border-color: var(--ink); transform: translate(-50%, -50%) scale(1.05); }
.video-card__player:hover .video-card__play::after { border-left-color: var(--page); }
.video-card__player:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.video-card__duration { position: absolute; top: 0.8rem; right: 0.8rem; font-size: var(--fs-small); letter-spacing: 0.01em; padding: 0.12rem 0.5rem; border-radius: var(--r-pill); background: color-mix(in srgb, var(--surface-sunk) 70%, transparent); border: 1px solid var(--rule); color: var(--ink-soft); backdrop-filter: blur(6px); font-variant-numeric: tabular-nums; }
.video-card__pending { position: absolute; inset: 0; display: none; place-items: center; text-align: center; padding: var(--space-5); background: color-mix(in srgb, var(--surface) 82%, transparent); backdrop-filter: blur(3px); }
.video-card__pending > span { max-width: 32ch; font-size: var(--fs-meta); line-height: var(--lh-snug); color: var(--ink-soft); }
.video-card.is-pending .video-card__pending { display: grid; }
.video-card.is-pending .video-card__play { display: none; }
.video-card__media { display: block; width: 100%; aspect-ratio: 16 / 9; background: #000; }

.video-card__body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-4) var(--space-4); }
.video-card__title { font-family: var(--font-serif); font-size: 1.16rem; font-weight: 600; letter-spacing: -0.01em; line-height: var(--lh-tight); margin: 0; }
.video-card__logline { margin: 0 0 var(--space-1); font-size: var(--fs-body); line-height: var(--lh-snug); color: var(--ink-soft); }
.video-card__tldw { margin-top: auto; }
.video-card__note { border-top: 1px solid var(--rule); }
.video-card__note > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 0.55rem; padding: 0.55rem 0; font-size: var(--fs-small); font-weight: 600; color: var(--accent); transition: color var(--dur-fast) var(--ease); }
.video-card__note > summary::-webkit-details-marker { display: none; }
.video-card__note > summary::before { content: ""; flex: none; width: 0.42rem; height: 0.42rem; margin: 0 0.05rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform var(--dur) var(--ease); }
.video-card__note[open] > summary::before { transform: rotate(45deg); }
.video-card__note > summary:hover { color: var(--accent-strong); }
.video-card__note-body { font-size: var(--fs-meta); line-height: var(--lh-body); color: var(--ink-soft); padding-bottom: 0.7rem; }
.video-card__note-body ol { margin: 0; padding-left: 1.15rem; display: flex; flex-direction: column; gap: 0.42rem; }
.video-card__note-body ol li::marker { color: var(--faint); font-variant-numeric: tabular-nums; }
.video-card__note-body p { margin: 0 0 0.6rem; }
.video-card__note-body p:last-child { margin-bottom: 0; }
.video-carousel__nav { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-3); }
#demo-videos > p:last-child { max-width: var(--prose); }

.map-details > summary { cursor: pointer; font-weight: 600; color: var(--accent); padding: 0.4rem 0; }
.map-details[open] { margin-bottom: 0.8rem; }





@media (max-width: 620px) {
  .site-header__inner {
    height: auto; min-height: 60px; padding-block: 0.55rem;
    flex-wrap: wrap; row-gap: 0.35rem; column-gap: 1rem;
  }
  .site-header nav { width: 100%; gap: 0.65rem; flex-wrap: wrap; }
}


.hero { padding: 60px 0 56px; }
.hero__layout { display: grid; grid-template-columns: minmax(0, 1fr) 356px; gap: 60px; align-items: start; }
.hero__copy--lead { max-width: none; }
@media (max-width: 1023px) {
  .hero__layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 540px) {
  
  .hero { padding: 40px 0 44px; }
  
  .hero__kicker::before { content: none; }
  
  .landing-pagetools { padding-top: var(--space-2); }
}


.hero__map { padding: 0; }
.hero__map-root { display: flex; flex-direction: column; gap: 0.2rem; padding-bottom: 0.9rem; }
.hero__map-role {
  align-self: start;
  font-size: var(--fs-small); font-weight: 400;
  letter-spacing: 0; text-transform: none;
  color: var(--faint);
}
.hero__map-role--root { color: var(--faint); }
.hero__map-rootname { font-size: var(--fs-meta); color: var(--muted); line-height: var(--lh-snug); }
.hero__map-rows { list-style: none; margin: 0 0 0 0.55rem; padding: 0 0 0 0.95rem; border-left: 1px solid var(--rule-strong); }
.hero__map-rows li { position: relative; }
.hero__map-rows li::before {
  content: ""; position: absolute; left: -0.95rem; top: 1.42rem;
  width: 0.7rem; height: 1px; background: var(--rule-strong);
}
.hero__map-rows a {
  display: flex; flex-direction: column; gap: 0.12rem;
  padding: 0.72rem 0.6rem 0.78rem; margin-left: 0.05rem;
  border-radius: var(--r-md); color: inherit; text-decoration: none;
}
.hero__map-rows li + li a { border-top: 1px solid var(--rule); border-top-left-radius: 0; border-top-right-radius: 0; }
.hero__map-rows a:hover,
.hero__map-rows a:focus-visible { background: var(--surface-sunk); text-decoration: none; }
.hero__map-rows a:hover .hero__map-name,
.hero__map-rows a:focus-visible .hero__map-name { color: var(--accent); }
.hero__map-name { font-weight: 600; color: var(--ink); font-size: 0.98rem; line-height: var(--lh-snug); }
.hero__map-desc { font-size: var(--fs-meta); color: var(--muted); line-height: var(--lh-snug); }

.hero__map-rows a[data-link-kind="exogenous"]::after { content: none; }
.hero__map-rows a[data-link-kind="exogenous"] .hero__map-name::after { content: " \2197"; color: var(--link-ext); font-size: 0.85em; }
@media (max-width: 1023px) {
  .hero__map { max-width: 560px; }
}


a.btn--primary[data-link-kind="exogenous"] { color: var(--page); }
a.btn--primary[data-link-kind="exogenous"]:hover { color: var(--page); }
a.btn--ghost[data-link-kind="exogenous"],
a.btn--ghost[data-link-kind="exogenous"]:hover { color: var(--ink); }
a.btn--gold[data-link-kind="exogenous"] { color: var(--link-ext); }
a.btn[data-link-kind="exogenous"]::after { color: inherit; opacity: 0.75; }
a.btn--ghost[data-link-kind="exogenous"]::after { color: var(--link-ext); opacity: 1; }



.docs-main .paper-shelf__question {
  
  max-width: 62ch; color: var(--muted); font-size: var(--fs-body);
  margin: 0.4rem 0 1.3rem;
}
.docs-main .paper-entry {
  padding: 1.65rem 0 1.55rem;
  border-top: 1px solid var(--rule);
}

.docs-main .paper-entry__meta {
  margin: 0 0 0.5rem;
  font-family: var(--font-sans); font-size: var(--fs-meta); line-height: 1.4;
  color: var(--muted);
}

.docs-main .paper-entry__subject {
  margin-right: 0.15em;
  color: var(--accent); font-weight: 650;
}

.docs-main .paper-entry__status { color: var(--warn-warm); font-weight: 650; }

.docs-main .paper-entry h3 {
  margin: 0 0 0.45rem;
  font-family: var(--font-serif); font-weight: 600;
  font-size: clamp(1.3rem, 1.2rem + 0.4vw, 1.5rem);
  line-height: 1.22; letter-spacing: -0.012em;
  text-wrap: balance; max-width: 32em;
}

.docs-main .paper-entry__question {
  margin: 0;
  font-family: var(--font-serif); font-style: normal;
  font-size: 1.0625rem; line-height: 1.5;
  color: var(--ink-soft);
  max-width: 34em; text-wrap: pretty;
}

.docs-main .paper-entry .math { font-style: normal; white-space: nowrap; }
.docs-main .paper-entry .math var { font-style: italic; }

.docs-main .paper-entry .math :is(sub, sup) { line-height: 0; }


.docs-main .paper-entry__precis {
  margin: 0 0 1.4rem; color: var(--ink-soft);
  font-family: var(--font-serif); font-size: 1.06rem; line-height: 1.62; text-wrap: pretty;
  max-width: 64ch; overflow-wrap: anywhere;
}

.docs-main .paper-entry details > summary {
  list-style: none; display: inline-flex; align-items: baseline; gap: 0.4rem;
  margin-top: 0.4rem; padding-block: 0.25rem; cursor: pointer;
  font-size: var(--fs-meta); font-weight: 600; color: var(--ink-soft);
}
.docs-main .paper-entry details > summary::-webkit-details-marker { display: none; }
.docs-main .paper-entry details > summary::after { content: "+"; color: var(--faint); font-weight: 500; }
.docs-main .paper-entry details[open] > summary::after { content: "\2212"; }
.docs-main .paper-entry details[open] > summary { margin-bottom: 0.6rem; }

.docs-main .paper-entry__state {
  margin: 0.5rem 0 0; color: var(--muted); font-size: var(--fs-meta);
  line-height: var(--lh-snug); max-width: 46em;
}
/* Scope: what the paper explains, what it is not authority for, and where to
   start. This was a two-column table with a 9.5rem uppercase label cell, which
   put three uppercase labels beside every entry -- thirty-nine of them down a
   catalogue of thirteen -- and left "Not authority for" wrapping onto two lines
   inside its own cell while its value sat beside the ragged result. The labels
   now run in at the head of their line, the way a catalogue or a dictionary
   sets them, so they cannot wrap into a column and the block reads as the
   annotation it is rather than as a form stapled under the abstract. The rule
   in the margin is what marks it as an aside; nothing here is boxed. */
.docs-main .paper-entry__body {
  
  max-width: 34rem;
  margin: 0; padding-top: 0.85rem;
  border-top: 1px solid var(--rule);
  display: grid; gap: 0.35rem;
}
.docs-main .paper-entry__row {
  display: block;
  font-size: var(--fs-small); line-height: 1.5;
}
.docs-main .paper-entry__row dt {
  display: inline; margin-right: 0.4rem;
  font-family: var(--font-sans); font-weight: 650;
  color: var(--ink-soft);
}
.docs-main .paper-entry__row dd { display: inline; margin: 0; color: var(--muted); }
.docs-main .paper-entry__aside { color: var(--faint); }

.docs-main .paper-entry__routes {
  
  max-width: none;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 1.25rem;
  margin: 0.8rem 0 0; font-size: var(--fs-meta);
  color: var(--faint);
}
.docs-main .paper-entry__routes a { padding-block: 0.2rem; font-weight: 500; }

.docs-main .paper-entry__routes a.paper-entry__read {
  font-weight: 650;
  padding-right: 1.25rem; border-right: 1px solid var(--rule-strong);
}
.docs-main .paper-entry__repo { color: var(--muted); }

.paper-flagship {
  margin: 0 0 2rem; padding-top: 1.35rem;
  border-top: 2px solid var(--ink);
  max-width: 800px;
}
.paper-flagship__kicker {
  font-size: var(--fs-micro); font-weight: 700;
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--faint); margin-bottom: 0.75rem;
}
.paper-flagship__title {
  font-family: var(--font-serif); font-weight: 600; letter-spacing: -0.01em;
  font-size: clamp(1.55rem, 3.2vw, 2.15rem); line-height: var(--lh-tight);
  margin: 0 0 0.45rem;
}
.paper-flagship__subtitle {
  font-family: var(--font-serif); font-style: italic;
  font-size: clamp(1.02rem, 1.8vw, 1.18rem); line-height: var(--lh-snug);
  color: var(--ink-soft); margin-bottom: 0.95rem; max-width: 680px;
}
.paper-flagship__status { color: var(--muted); max-width: var(--prose); margin-bottom: 1.25rem; }
.paper-flagship__status strong { color: var(--ink); font-weight: 600; }
.paper-flagship__actions { display: flex; flex-wrap: wrap; gap: 0.7rem 0.9rem; align-items: center; }
.paper-flagship + .link-rows { margin-top: 0.4rem; }



.specimen { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.4rem; margin-top: 1.5rem; max-width: 760px; }
.specimen__card { padding: 0; border-top: 1px solid var(--rule); padding-top: 1.3rem; }
.specimen__kicker {
  font-size: var(--fs-meta); font-weight: 600; letter-spacing: 0;
  color: var(--ink); margin-bottom: 1.05rem;
}
.specimen__body { margin: 0; display: grid; gap: 1rem; }
.specimen__row { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1.1rem; }
.specimen__row dt {
  font-size: var(--fs-meta); font-weight: 400; letter-spacing: 0;
  color: var(--faint); padding-top: 0.05rem;
}
.specimen__row dd { margin: 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.62; }
@media (max-width: 560px) {
  .specimen__row { grid-template-columns: minmax(0, 1fr); gap: 0.25rem; }
}
.specimen__code {
  margin: 0; padding: 0.75rem 0.95rem;
  background: var(--code-bg); color: var(--code-ink);
  border-radius: var(--r-md); overflow-x: auto;
  font-family: var(--font-mono); font-size: 0.78rem; line-height: 1.55;
}
.specimen__code code { font-family: inherit; font-size: inherit; background: none; padding: 0; }
.specimen__code--receipt { border-left: 3px solid var(--accent); }
.specimen__note { display: block; margin-top: 0.45rem; font-size: var(--fs-small); color: var(--muted); line-height: var(--lh-snug); max-width: var(--measure-note); }
.specimen__links {
  margin-top: var(--stack-minor); padding-top: 0.95rem;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-meta); color: var(--muted); max-width: var(--measure-note);
}


.fold { --fold-mark: var(--rule-strong); }


.fold__summary {
  cursor: pointer; list-style: none;
  display: grid;
  grid-template-columns: minmax(0, var(--reading-measure)) minmax(9rem, 1fr);
  column-gap: clamp(2rem, 6vw, 5rem);
  align-items: start;
  padding: 2.1rem 0 1.9rem;
  border-bottom: 1px solid var(--rule);
  transition: border-color var(--motion-fast) var(--ease-out);
}
.fold__summary-main { max-inline-size: var(--reading-measure); }

.fold__summary .section__head > .eyebrow { margin: 0 0 0.55rem; }
.fold__summary .section__head > h2,
.fold__summary .section__head > h3 { margin: 0; text-wrap: balance; max-inline-size: 26ch; }
.fold__summary::-webkit-details-marker { display: none; }


.fold__summary-meta {
  margin: 0.15rem 0 0; align-self: start;
  display: flex; flex-direction: column; gap: 0.5rem; align-items: start;
  font-size: var(--fs-meta); line-height: var(--lh-snug);
}
.fold__marker { color: var(--faint); text-wrap: pretty; }

.fold__cue {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.34rem 0.7rem;
  border: 1px solid var(--rule-strong); border-radius: var(--r-control);
  background: var(--surface);
  color: var(--accent); font-weight: 600;
  transition: color var(--motion-fast) var(--ease-out),
              border-color var(--motion-fast) var(--ease-out),
              background-color var(--motion-fast) var(--ease-out);
}
.fold__cue::before {
  content: ""; width: 0.4em; height: 0.4em; flex: none;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  rotate: -45deg; margin-top: -0.15em;
  transition: rotate var(--motion-ui) var(--ease-out);
}
.fold[open] > .fold__summary .fold__cue::before { rotate: 45deg; margin-top: -0.05em; }

.fold__cue::after { content: "Open"; }
.fold[open] > .fold__summary .fold__cue::after { content: "Close"; }

.fold__summary:hover { border-bottom-color: var(--rule-strong); --fold-mark: var(--accent); }
.fold__summary:hover .fold__cue {
  color: var(--accent-strong); border-color: var(--accent);
  background: var(--accent-wash);
}
.fold__summary:hover h2, .fold__summary:hover h3 { color: var(--accent-strong); }
.fold__summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; border-radius: var(--r-xs); }
.fold__summary .section__head { margin-bottom: 0; max-width: var(--reading-measure); }
.fold__summary h2, .fold__summary h3 { transition: color var(--motion-fast) var(--ease-out); }

.fold[open] > .fold__summary { border-bottom-color: transparent; }
.fold[open] > .fold__summary h2,
.fold[open] > .fold__summary h3 { color: var(--accent-strong); }


.fold__gist {
  margin: 0.55rem 0 0; max-inline-size: var(--reading-measure);
  color: var(--muted); font-size: 1rem; line-height: var(--lh-body);
  text-wrap: pretty;
}


html[data-landing-bands="on"] main { counter-reset: band; }
html[data-landing-bands="on"] section.section:not(.hero) { counter-increment: band; }

.band-head {
  cursor: pointer; position: relative;
  max-width: none;
  padding: 1rem 3.6rem 1.05rem 1rem;
  
  margin: -1rem -1rem calc(2rem - 1.05rem);
  border-radius: var(--r-lg);
  transition: background var(--dur) var(--ease);
}
.section.is-collapsed > .band-head { margin-bottom: -1.05rem; }
.band-head > * { max-inline-size: var(--prose); }
.band-head h2 { max-inline-size: none; margin-top: 0; padding-right: 0; }
.band-head::after {
  content: ""; position: absolute; right: 1.35rem; top: 50%;
  width: 0.62rem; height: 0.62rem; margin-top: -0.5rem;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  rotate: 45deg; color: var(--faint);
  transition: rotate var(--motion-ui) var(--ease-out), margin var(--motion-ui) var(--ease-out), color var(--dur) var(--ease);
}
.band-head[aria-expanded="true"]::after { rotate: -135deg; margin-top: -0.1rem; }

.section.is-collapsed > .band-head:hover,
.section.is-collapsed > .band-head:focus-visible { background: color-mix(in srgb, var(--wash-warm) var(--wash-warm-a), transparent); }
.band-head:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.band-head:hover::after { color: var(--accent); }
.band-head:hover .eyebrow::before { color: var(--link-ext); }
.band-head .eyebrow { display: flex; align-items: baseline; gap: 0.7rem; margin-bottom: 0.5rem; }
.band-head .eyebrow::before {
  content: counter(band, decimal-leading-zero);
  font-family: var(--font-mono); font-weight: 500; letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--link-ext) 78%, var(--faint));
  transition: color var(--dur) var(--ease);
}
.section.is-collapsed { padding-block: 1.6rem; }
.section.is-collapsed > :not(.band-head) { display: none; }
/* Closed: eyebrow, heading, and the opening of the first sentence on one line.
   The line fades out at the edge when there is more of it; a sentence that fits
   is shown whole (landing.js stamps data-band-overflow when it measures more). */
.section.is-collapsed > .section__head > h2 ~ :not(h2 + p) { display: none; }
.section.is-collapsed > .section__head > h2 + p {
  display: block; white-space: nowrap; overflow: hidden; text-overflow: clip;
  margin: 0.4rem 0 0;
  font-size: var(--fs-body); color: var(--muted); line-height: var(--lh-snug);
}
.section.is-collapsed > .section__head > h2 + p[data-band-overflow] {
  -webkit-mask-image: linear-gradient(90deg, #000 72%, transparent 99%);
  mask-image: linear-gradient(90deg, #000 72%, transparent 99%);
}
.section.is-collapsed > .section__head { margin-bottom: -1.05rem; }
.section.is-collapsed > .section__head h2 { margin-bottom: 0; }
.section--tail.is-collapsed { display: none; }

html[data-landing-bands="on"] .section--quiet:not(.is-collapsed) { padding: var(--section-y) 0; }
html[data-landing-bands="on"] .section--quiet .quiet-links { margin-top: 0.2rem; }

#papers .corpus-route { margin-top: 1.4rem; }
#papers .corpus-facts__note { margin: 0.55rem 0 0; }
@media (max-width: 640px) {
  .band-head { padding: 0.85rem 2.6rem 0.9rem 0.7rem; margin: -0.85rem -0.7rem -0.9rem; }
  .band-head::after { right: 0.9rem; }
}
.docs-pagetool[aria-pressed="true"] { color: var(--accent-strong); border-color: var(--accent); }

.fold__gist strong { color: var(--ink-soft); font-weight: 600; }
.fold__body {
  padding: 0.4rem 0 2.6rem;
  border-bottom: 1px solid var(--rule);
  max-inline-size: var(--reading-measure);
}
.fold__intro { margin-bottom: 1.6rem; }
.fold__intro p:first-child { margin-top: 0; }


@supports selector(details::details-content) {
  details::details-content { opacity: 0; }
  details[open]::details-content {
    opacity: 1;
    transition: opacity 120ms var(--ease-out);
  }
  @starting-style {
    details[open]::details-content { opacity: 0; }
  }
}

@media (max-width: 64rem) {
  .fold__summary { grid-template-columns: minmax(0, 1fr); }
  .fold__summary-meta {
    flex-direction: row; align-items: baseline; justify-content: space-between;
    width: 100%; margin-top: 1rem; gap: 1rem;
  }
}



.section:has(> .fold) { border-top: none; padding-top: 0; padding-bottom: 0; }
.section:has(> .fold) + .section:has(> .fold) { margin-top: 0; }


@media (prefers-reduced-motion: reduce) {
  .fold::details-content { translate: none !important; }
  .btn:hover, .btn:active,
  .btn--primary:hover, .btn--ghost:hover,
  .btn--gold:hover, .btn--accent:hover { transform: none !important; }
}


#papers .link-rows { max-width: 780px; }
#papers .link-row {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.3rem 1.2rem;
  padding-block: 1.1rem;
  align-items: start;
}
#papers .link-row .paper-row__meta { grid-column: 1; grid-row: 1; }
#papers .link-row strong { grid-column: 1; grid-row: 2; }
#papers .link-row .desc { grid-column: 1; grid-row: 3; }
#papers .link-row .go { grid-column: 2; grid-row: 1; align-self: baseline; }


#papers .paper-row__meta {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.1rem 0.5rem;
  font-family: var(--font-sans); font-size: var(--fs-micro);
  letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--faint);
}
#papers .paper-row__meta > * + *::before {
  content: "\00b7"; margin-right: 0.5rem; color: var(--rule);
}

#papers .paper-row__subject { color: var(--ink-soft); font-weight: 600; }

#papers .link-row[data-subject-kind="system"] .paper-row__subject {
  color: var(--muted); font-weight: 500;
}
#papers .paper-row__pages { font-variant-numeric: tabular-nums; }


#papers .link-row strong {
  font-family: var(--font-serif); font-weight: 600;
  font-size: clamp(1.3rem, 2.2vw, 1.55rem); line-height: 1.2;
  letter-spacing: -0.012em;
  color: var(--ink); text-wrap: pretty;
}

#papers .link-row strong a { color: inherit; text-decoration: none; }
#papers .link-row strong a:hover,
#papers .link-row strong a:focus-visible {
  text-decoration: underline; text-underline-offset: 0.18em;
}
#papers .link-row .desc {
  max-width: 62ch; margin-top: 0.25rem;
  font-size: var(--fs-body); line-height: 1.62; text-wrap: pretty;
}


#papers .paper-row__routes {
  display: flex; flex-wrap: wrap; align-items: baseline;
  
  gap: 12px 0.5rem;
}
#papers .paper-row__routes > * + *::before {
  content: "\00b7"; margin-right: 0.5rem; color: var(--rule);
}

#papers .paper-row__route {
  color: var(--accent); text-decoration: none;
  display: inline-block; padding: 6px 0; margin: -6px 0;
}
#papers .paper-row__route:hover,
#papers .paper-row__route:focus-visible {
  text-decoration: underline; text-underline-offset: 0.2em;
}
@media (max-width: 640px) {
  #papers .link-row { grid-template-columns: minmax(0, 1fr); }
  #papers .link-row .go {
    grid-column: 1; grid-row: 4; text-align: left; margin-top: 0.35rem;
  }
  
  #papers .paper-row__routes { justify-content: flex-start; }
}


.ai-questions__set { margin: 1.15rem 0 0; }
.ai-questions__set-title {
  margin: 0 0 0.4rem; color: var(--ink-soft);
  font-size: var(--fs-meta); font-weight: 600;
}
.ai-questions__set ul { margin: 0 0 0.6rem; }



.claim-more { max-width: 720px; margin-top: var(--stack-major); }
.claim-more h3 { margin: 0 0 0.6rem; }

#hypothesis-handoff .claim-more { margin-top: 0; }

#hypothesis-handoff h3 {
  font-family: var(--font-serif); font-weight: 600;
  font-size: clamp(1.5rem, 3vw, 1.95rem);
  line-height: var(--lh-tight);
}
.claim-more > p { line-height: var(--lh-body); }
.claim-more__lede { color: var(--muted); margin-bottom: 0.3rem; }
.claim-lines { list-style: none; margin: 0 0 1.3rem; padding: 0; }
.claim-lines li { border-bottom: 1px solid var(--rule); }
.claim-lines a {
  display: block; padding: 0.6rem 0.2rem; color: var(--ink-soft); text-decoration: none;
}
.claim-lines a::after { content: " \2192"; color: var(--faint); }
.claim-lines a:hover, .claim-lines a:focus-visible { color: var(--accent); background: var(--surface-sunk); text-decoration: none; }
.claim-lines a:hover::after, .claim-lines a:focus-visible::after { color: var(--accent); }

.claim-statements { list-style: none; margin: 0 0 1.3rem; padding: 0; max-width: var(--prose); }
.claim-statements li {
  border-bottom: 1px solid var(--rule);
  padding: 0.6rem 0.2rem; color: var(--ink-soft); line-height: var(--lh-body);
}
.claim-statements li:last-child { border-bottom: 0; }
.claim-more > p:last-child { color: var(--muted); max-width: var(--prose); }




#demo-videos .fold__body { max-inline-size: 880px; }
#demo-videos .fold__intro { max-inline-size: var(--reading-measure); }
.demo-provenance { font-size: var(--fs-meta); color: var(--faint); max-width: var(--measure-note); }
.demo-rows { list-style: none; margin: 0.6rem 0 0; padding: 0; }
.demo-row {
  display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 1.6rem;
  padding: 1.5rem 0 1.6rem; border-top: 1px solid var(--rule);
  align-items: start;
}
.demo-row__body { min-width: 0; }
.demo-row__thumb {
  position: relative; display: block; overflow: hidden;
  aspect-ratio: 16 / 9; text-decoration: none;
  border: 1px solid var(--rule-strong); border-radius: var(--r-lg);
  background: var(--surface-sunk);
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.demo-row__still {
  display: block; width: 100%; height: 100%; object-fit: cover;
  transition: transform 260ms ease;
}
.demo-row__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(10, 8, 12, 0.56);
  border: 1px solid rgba(255, 255, 255, 0.58);
  transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.demo-row__play::before {
  content: ""; display: block;
  border-left: 12px solid #fff;
  border-top: 7.5px solid transparent;
  border-bottom: 7.5px solid transparent;
  margin-left: 3px;
  transition: border-left-color 150ms ease;
}
.demo-row__duration {
  position: absolute; right: 7px; bottom: 7px;
  font-size: var(--fs-micro);
  color: #f5efe4; background: rgba(10, 8, 12, 0.78);
  border-radius: var(--r-sm); padding: 0.1rem 0.38rem;
  font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1.6;
}

.demo-row__thumb:hover,
.demo-row:has(.demo-row__watch:hover) .demo-row__thumb,
.demo-row:has(.demo-row__watch:focus-visible) .demo-row__thumb {
  border-color: var(--link-ext); box-shadow: var(--shadow);
}
.demo-row__thumb:hover .demo-row__still,
.demo-row:has(.demo-row__watch:hover) .demo-row__still { transform: scale(1.025); }
.demo-row__thumb:hover .demo-row__play,
.demo-row:has(.demo-row__watch:hover) .demo-row__play,
.demo-row:has(.demo-row__watch:focus-visible) .demo-row__play {
  background: var(--link-ext); border-color: var(--link-ext);
  transform: translate(-50%, -50%) scale(1.07);
}
.demo-row__thumb:hover .demo-row__play::before,
.demo-row:has(.demo-row__watch:hover) .demo-row__play::before,
.demo-row:has(.demo-row__watch:focus-visible) .demo-row__play::before {
  border-left-color: #17100a;
}
@media (prefers-reduced-motion: reduce) {
  .demo-row__still, .demo-row__play, .demo-row__thumb { transition: none; }
  .demo-row__thumb:hover .demo-row__still,
  .demo-row:has(.demo-row__watch:hover) .demo-row__still { transform: none; }
}

.demo-row__title {
  font-size: 1.25rem; font-family: var(--font-sans);
  letter-spacing: -0.005em; line-height: var(--lh-snug);
  margin-bottom: 0.3rem;
}
.demo-row__state {
  display: inline-block; vertical-align: 0.12em; margin-left: 0.5rem;
  font-size: var(--fs-micro); font-weight: 600; letter-spacing: var(--tracking-kicker);
  text-transform: uppercase; color: var(--faint);
  border: 1px solid var(--rule-strong); border-radius: var(--r-pill);
  padding: 0.1rem 0.5rem;
}
.demo-row__logline { color: var(--muted); font-size: var(--fs-body); max-width: var(--measure-note); margin-bottom: 0.5rem; }
.demo-row__actions { margin: 0 0 0.25rem; }
.demo-row__note { max-width: var(--prose); }
.demo-row__note summary { cursor: pointer; color: var(--accent); font-size: var(--fs-meta); padding: 0.28rem 0; }
.demo-row__note summary:hover { color: var(--accent-strong); }
.demo-row__note-body { padding: 0.45rem 0 0.6rem; color: var(--muted); font-size: var(--fs-body); }
.demo-row__note-body p + p { margin-top: 0.6rem; }
.demo-row__note-body ol { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.4rem; }



.demo-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem;
  align-items: start;
}
.demo-grid .demo-row {
  display: flex; flex-direction: column;
  padding: 0; border: 1px solid var(--rule); border-radius: var(--r-xl);
  background: var(--surface); overflow: hidden;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.demo-grid .demo-row:hover { border-color: var(--rule-strong); box-shadow: var(--shadow); transform: translateY(-2px); }
.demo-grid .demo-row__thumb {
  border: 0; border-radius: 0; border-bottom: 1px solid var(--rule);
  cursor: pointer;
}
.demo-grid .demo-row__thumb:hover,
.demo-grid .demo-row:has(.demo-row__watch:hover) .demo-row__thumb,
.demo-grid .demo-row:has(.demo-row__watch:focus-visible) .demo-row__thumb { box-shadow: none; border-color: var(--rule); }
.demo-grid .demo-row__body { padding: 1rem 1.15rem 1.15rem; display: flex; flex-direction: column; }
.demo-row__kicker {
  display: flex; align-items: baseline; gap: 0.75rem; margin: 0 0 0.4rem;
  font-size: var(--fs-micro); font-weight: 500;
  letter-spacing: var(--tracking-kicker); text-transform: uppercase; color: var(--faint);
  font-variant-numeric: tabular-nums;
}
.demo-row__num { color: color-mix(in srgb, var(--link-ext) 78%, var(--faint)); }
.demo-grid .demo-row__title { font-size: 1.12rem; margin-bottom: 0.5rem; text-wrap: balance; }
.demo-grid .demo-row__actions { margin: 0 0 0.75rem; }
.demo-grid .demo-row__note { max-width: none; border-top: 1px solid var(--rule); }
.demo-grid .demo-row__note summary { padding: 0.5rem 0; }
.demo-grid .demo-row__note:last-child[open] { padding-bottom: 0.2rem; }

.demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
  transform: none;
}
.demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) .demo-row__thumb {
  position: sticky; top: 4.5rem; align-self: start;
  margin: 1.15rem 0 1.15rem 1.15rem;
  border: 1px solid var(--rule-strong); border-radius: var(--r-lg);
}
.demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) .demo-row__body { padding: 1.15rem 1.4rem 1.15rem 1.5rem; }
.demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) .demo-row__note { max-width: var(--reading-measure); }
@media (max-width: 900px) {
  .demo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
}
@media (max-width: 640px) {
  .demo-grid { grid-template-columns: minmax(0, 1fr); }
  .demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) { grid-template-columns: minmax(0, 1fr); }
  .demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) .demo-row__thumb { position: static; margin: 0; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; }
  .demo-grid .demo-row:has(> .demo-row__body > .demo-row__note[open]) .demo-row__body { padding: 1rem 1.15rem 1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
  .demo-grid .demo-row { transition: none; }
  .demo-grid .demo-row:hover { transform: none; }
}

@media (max-width: 660px) {
  .demo-row { grid-template-columns: minmax(0, 1fr); gap: 0.9rem; padding: 1.3rem 0 1.4rem; }
}



.link-group-label {
  font-size: var(--fs-meta); font-weight: 600;
  letter-spacing: 0; text-transform: none;
  color: var(--faint); margin: var(--stack-major) 0 0.55rem;
}
.section__head + .link-group-label { margin-top: 0.4rem; }


.demo-row__watch {
  display: inline-block; font-size: var(--fs-meta); font-weight: 600;
  letter-spacing: 0; text-transform: none; color: var(--link-ext);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--link-ext) 45%, transparent);
  text-underline-offset: 0.22em; text-decoration-thickness: 1px;
}
.demo-row__watch:hover,
.demo-row__watch:focus-visible {
  color: var(--link-ext); text-decoration-color: var(--link-ext);
}



.specimen__depth > summary,
.review-receipt__log > summary,
.claim-more__depth > summary,
.contact-directory > summary {
  cursor: pointer; list-style: none;
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-size: var(--fs-meta); font-weight: 600; color: var(--muted);
  
  max-width: 100%; min-width: 0;
}
.specimen__depth > summary::-webkit-details-marker,
.review-receipt__log > summary::-webkit-details-marker,
.claim-more__depth > summary::-webkit-details-marker,
.contact-directory > summary::-webkit-details-marker { display: none; }
.specimen__depth > summary::before,
.review-receipt__log > summary::before,
.claim-more__depth > summary::before,
.contact-directory > summary::before {
  content: ""; width: 0.42em; height: 0.42em; flex: none;
  border-right: 1.5px solid var(--faint); border-bottom: 1.5px solid var(--faint);
  transform: rotate(-45deg); transition: transform var(--motion-ui) var(--ease-out); margin-top: -0.1em;
}
.specimen__depth[open] > summary::before,
.review-receipt__log[open] > summary::before,
.claim-more__depth[open] > summary::before,
.contact-directory[open] > summary::before { transform: rotate(45deg); margin-top: -0.16em; }
.specimen__depth > summary:hover,
.review-receipt__log > summary:hover,
.claim-more__depth > summary:hover,
.contact-directory > summary:hover { color: var(--ink-soft); }
.specimen__depth > summary:hover::before,
.review-receipt__log > summary:hover::before,
.claim-more__depth > summary:hover::before,
.contact-directory > summary:hover::before { border-color: var(--muted); }


.specimen__depth { margin: 0.2rem 0 0.15rem 6.6rem; }
@media (max-width: 560px) { .specimen__depth { margin-left: 0; } }
.specimen__depth[open] > summary { margin-bottom: 0.95rem; }
.claim-more__depth { margin: 1rem 0 0; }
.claim-more__depth[open] > summary { margin-bottom: 0.7rem; }
.claim-more__depth .claim-lines { margin-bottom: 0.9rem; }
.claim-more__depth .review-callout { margin-top: 1.2rem; }


.corpus-route { max-width: var(--prose); margin-top: 1.1rem; font-size: var(--fs-meta); }
.corpus-route a { color: var(--accent); }
.corpus-route a:hover { color: var(--accent-strong); }


.review-receipt__finding {
  display: grid; grid-template-columns: max-content minmax(0, 1fr);
  gap: 0.9rem; align-items: start;
  margin: 0 0 1.05rem; padding: 0.9rem 1.05rem;
  background: var(--surface-sunk); border-left: 3px solid var(--link-ext);
  border-radius: 0 var(--r-lg) var(--r-lg) 0; max-width: 860px;
}
.review-receipt__finding .review-receipt__exit { align-self: start; margin-top: 0.16rem; }
.review-receipt__finding-body { margin: 0; color: var(--ink-soft); font-size: var(--fs-body); line-height: 1.55; }
.review-receipt__finding-body code { font-size: 0.78rem; overflow-wrap: anywhere; }
@media (max-width: 560px) {
  .review-receipt__finding { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
}
.review-receipt__log[open] > summary { margin-bottom: 0.95rem; }


.diy-strip {
  max-width: 780px; margin: var(--stack-major) 0 0; padding-top: var(--stack-pad);
  border-top: 1px solid var(--rule);
}
.diy-strip p { margin: 0; color: var(--muted); font-size: var(--fs-meta); line-height: 1.55; max-width: var(--measure-note); }
.diy-strip strong { color: var(--ink-soft); }


.contact-directory { margin: var(--stack-major) 0 0; }
.contact-directory > summary {
  font-size: var(--fs-meta); font-weight: 400;
  letter-spacing: 0; text-transform: none;
  color: var(--faint);
}
.contact-directory > summary:hover { color: var(--muted); }
.contact-directory[open] > summary { margin-bottom: 0.45rem; }

/* ---- Cold-rerun review receipt (landing #claim-loop) ----------------------- */


.review-receipt {
  margin-top: var(--stack-major); padding-top: var(--stack-pad);
  border-top: 1px solid var(--rule);
  
  max-width: 760px;
}
.review-receipt__kicker {
  font-size: var(--fs-meta); font-weight: 600; letter-spacing: 0;
  color: var(--ink); margin: 0 0 0.7rem;
}
.review-receipt__lede { margin: 0 0 1.1rem; color: var(--ink-soft); font-size: 1rem; line-height: 1.62; }
.review-receipt__rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.review-receipt__row {
  display: grid; grid-template-columns: minmax(180px, 300px) auto minmax(0, 1fr);
  gap: 0.35rem 0.9rem; align-items: baseline;
  border-top: 1px solid var(--rule); padding-top: 0.75rem;
}
.review-receipt__row > code {
  font-family: var(--font-mono); font-size: 0.78rem; color: var(--code-ink);
  background: var(--code-bg); border-radius: var(--r-xs); padding: 0.14rem 0.4rem;
  overflow-wrap: anywhere;
}
.review-receipt__exit {
  justify-self: start; align-self: center; white-space: nowrap;
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 700;
  border-radius: var(--r-pill); padding: 0.1rem 0.55rem;
}
.review-receipt__exit--ok { color: var(--muted); border: 1px solid var(--rule-strong); }
.review-receipt__exit--fail { color: var(--link-ext); border: 1px solid var(--link-ext); }
.review-receipt__what { color: var(--ink-soft); font-size: var(--fs-meta); line-height: 1.55; }
.review-receipt__what code { font-size: 0.78rem; overflow-wrap: anywhere; }
.review-receipt__note {
  margin: var(--stack-minor) 0 0; padding-top: 0.9rem; border-top: 1px solid var(--rule);
  color: var(--muted); font-size: var(--fs-meta); line-height: 1.55;
  max-width: var(--measure-note);
}
@media (max-width: 719px) {
  .review-receipt__row { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; }
  .review-receipt__exit { justify-self: start; }
}

/* ---- Assistant-lane boundary line (ai-handoff #browser-assistant) ---------- */
.ai-primary__boundary { border-left: 3px solid var(--accent); padding-left: 0.85rem; }

/* ---- Response-lane list (contact #help) ----------------------------------- */
.help-routes__list { list-style: none; margin: 0 0 0.6rem; padding: 0; max-width: 860px; }
.help-routes__list li {
  border-bottom: 1px solid var(--rule); padding: 0.65rem 0.2rem 0.7rem;
  color: var(--ink-soft); font-size: var(--fs-body); line-height: 1.55;
}
.help-routes__list li strong { color: var(--ink); }




html { scrollbar-gutter: stable; }


a, button, summary, input, select, textarea, label { touch-action: manipulation; }
html { -webkit-tap-highlight-color: color-mix(in srgb, var(--accent) 16%, transparent); }
button, summary, .btn, .docs-nav a, .docs-topbar__links a, .next-card,
.docs-pager__link, .link-row, .system-map__areas a, .hero__map-rows a,
.area-card, .cmdk__action { -webkit-tap-highlight-color: transparent; }


.docs-search-btn, .docs-menu-btn, .docs-nav a, .docs-topbar__links a,
.link-row, .hero__map-rows a, .docs-pager__link, .cmdk__action, .cmdk__close,
.wordmark {
  transition: color var(--motion-fast) var(--ease-out),
              background-color var(--motion-fast) var(--ease-out),
              border-color var(--motion-fast) var(--ease-out),
              box-shadow var(--motion-fast) var(--ease-out),
              transform var(--motion-fast) var(--ease-out);
}


.docs-nav a:active { background: var(--accent-wash); color: var(--accent-strong); }
.docs-topbar__links a:active, .wordmark:active { color: var(--accent-strong); }
.link-row:active, .hero__map-rows a:active { background: var(--accent-wash); }
.docs-search-btn:active { color: var(--ink); border-color: var(--accent); }
.docs-menu-btn:active { background: var(--surface-sunk); }
.cmdk__action:active, .cmdk__close:active { border-color: var(--accent); background: var(--accent-wash); }
.viewback:active { border-color: var(--accent-strong); }
.theme-toggle:active .theme-toggle__track { border-color: var(--ink-soft); }
.fold__summary:active .fold__cue { border-color: var(--accent-strong); }


@media (prefers-reduced-motion: no-preference) {
  .btn--gold:active, .btn--accent:active,
  .docs-search-btn:active, .docs-menu-btn:active,
  .docs-pager__link:active, .next-card:active,
  .system-map__areas a:active, .cmdk__action:active,
  .fold__summary:active .fold__cue { transform: translateY(1px); }
  .area-card:active { transform: translateY(0); }
}


.docs-menu-btn:hover { border-color: var(--ink-soft); }


@media (prefers-reduced-motion: reduce) {
  .area-card:hover, .area-card:hover h3 .arrow { transform: none !important; }
}


.term-tip {
  animation: mc-tip-in 60ms var(--ease-out);
  transition: opacity 90ms var(--ease-out);
}
.term-tip.is-leaving { opacity: 0; }
@keyframes mc-tip-in {
  from { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .term-tip { animation: none; transition: none; }
}


@media (prefers-reduced-motion: no-preference) {
  .docs-main :target { animation: mc-target-wash 1.3s var(--ease-out); }
  @keyframes mc-target-wash {
    from { background-color: var(--select-bg); }
    to { background-color: transparent; }
  }
}




.mc-field {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 600ms var(--ease-out);
}
html.mc-field-live .mc-field { opacity: 1; }


body::before { transition: opacity 500ms var(--ease-out); }
html.mc-field-live body::before { opacity: 0; }


html.mc-field-live .landing-pagetools .docs-pagetools__label,
html.mc-field-live .hero .eyebrow {
  color: var(--ink-soft);
  text-shadow:
    0 0 14px var(--page),
    0 0 5px var(--page),
    0 1px 2px var(--page);
}


@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .btn--primary:hover {
    box-shadow: 8px -4px 26px -6px rgba(184, 78, 69, 0.22), -8px 6px 26px -6px rgba(77, 127, 169, 0.22);
  }
}
:root[data-theme="dark"] .btn--primary:hover {
  box-shadow: 8px -4px 26px -6px rgba(184, 78, 69, 0.22), -8px 6px 26px -6px rgba(77, 127, 169, 0.22);
}


@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --wash-warm-a: 16%;
    --wash-cool-a: 19%;
    --wash-rose-a: 8%;
    --wash-ember-a: 8%;
  }
}
:root[data-theme="dark"] {
  --wash-warm-a: 16%;
  --wash-cool-a: 19%;
  --wash-rose-a: 8%;
  --wash-ember-a: 8%;
}


.mc-field { transition: opacity 240ms var(--ease-out); }
.mc-field > canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}




@supports (text-box: trim-both cap alphabetic) {
  .hero h1,
  .section__head h2,
  .docs-article h1,
  .paper-flagship__title,
  #hypothesis-handoff h3,
  .oq-q__prompt {
    text-box: trim-both cap alphabetic;
  }
}


.docs-article p a:not(.narrative-ref),
.obj-coverage p a:not(.narrative-ref),
.section__head p a:not(.narrative-ref),
.lead-list a:not(.narrative-ref),
.callout a:not(.narrative-ref),
.contact-line a:not(.narrative-ref),
p.muted a:not(.narrative-ref) {
  text-decoration-thickness: 1px;
  text-decoration-color: color-mix(in srgb, currentColor 44%, transparent);
  transition: color var(--motion-fast) var(--ease-out),
              text-decoration-color var(--motion-fast) var(--ease-out);
}
.docs-article p a:not(.narrative-ref):hover,
.obj-coverage p a:not(.narrative-ref):hover,
.section__head p a:not(.narrative-ref):hover,
.lead-list a:not(.narrative-ref):hover,
.callout a:not(.narrative-ref):hover,
.contact-line a:not(.narrative-ref):hover,
p.muted a:not(.narrative-ref):hover,
.docs-article p a:not(.narrative-ref):focus-visible,
.obj-coverage p a:not(.narrative-ref):focus-visible,
.section__head p a:not(.narrative-ref):focus-visible,
.lead-list a:not(.narrative-ref):focus-visible,
.callout a:not(.narrative-ref):focus-visible,
.contact-line a:not(.narrative-ref):focus-visible,
p.muted a:not(.narrative-ref):focus-visible {
  text-decoration-color: currentColor;
}




@media (prefers-reduced-motion: reduce) {
  details::details-content { transition: none !important; animation: none !important; }
}


.docs-sidebar,
.cmdk__results,
.gscroll,
.pm-diagram,
.pm-table-scroll,
.term-tip.is-expanded,
.specimen__code,
[data-fit-scroll],
.system-map__graph.is-docked > [data-dock="panel"] {
  scrollbar-width: thin;
  scrollbar-color: var(--rule-strong) transparent;
}


@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045),
              0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 26px rgba(0, 0, 0, 0.36);
    --shadow-pop: inset 0 1px 0 rgba(255, 255, 255, 0.06),
                  0 20px 64px rgba(0, 0, 0, 0.55);
  }
}
:root[data-theme="dark"] {
  --shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045),
            0 1px 2px rgba(0, 0, 0, 0.3), 0 8px 26px rgba(0, 0, 0, 0.36);
  --shadow-pop: inset 0 1px 0 rgba(255, 255, 255, 0.06),
                0 20px 64px rgba(0, 0, 0, 0.55);
}


@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .term-tip {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05),
                0 8px 22px rgba(0, 0, 0, 0.5), 0 20px 56px rgba(0, 0, 0, 0.4);
  }
}
:root[data-theme="dark"] .term-tip {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05),
              0 8px 22px rgba(0, 0, 0, 0.5), 0 20px 56px rgba(0, 0, 0, 0.4);
}


.btn--text::after { display: inline-block; transition: translate var(--motion-fast) var(--ease-out); }
@media (prefers-reduced-motion: no-preference) {
  .btn--text:hover::after { translate: 3px 0; }
}


.hero a.narrative-ref--term,
.fold__summary a.narrative-ref--term,
.boundary-band a.narrative-ref--term,
.site-footer a.narrative-ref--term {
  text-decoration-line: none;
}
.hero a.narrative-ref--term:hover,
.hero a.narrative-ref--term:focus-visible,
.fold__summary a.narrative-ref--term:hover,
.fold__summary a.narrative-ref--term:focus-visible,
.boundary-band a.narrative-ref--term:hover,
.boundary-band a.narrative-ref--term:focus-visible,
.site-footer a.narrative-ref--term:hover,
.site-footer a.narrative-ref--term:focus-visible {
  color: var(--accent-strong);
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-color: var(--accent-strong);
}

@media (prefers-contrast: more) {
  :root, :root:not([data-theme]), :root[data-theme] { --rule: var(--rule-strong); }
  .site-header, .docs-topbar {
    background: var(--page);
    backdrop-filter: none;
  }
  a.narrative-ref--term.is-term-again,
  .hero a.narrative-ref--term,
  .fold__summary a.narrative-ref--term,
  .boundary-band a.narrative-ref--term,
  .site-footer a.narrative-ref--term { text-decoration-line: underline; }
}


@page { margin: 16mm 15mm 20mm; }


.section--nested { padding: 1.5rem 0 0.5rem; border-top: 1px solid var(--rule); }
.fold__body > .section--nested:first-of-type { border-top: 0; padding-top: 0.25rem; }
.fold__body > .section--nested .fold__summary-main { margin-bottom: 0; }


.landing-problems .link-row { grid-template-columns: minmax(0, 1fr); row-gap: 0.15rem; }
.landing-problems .paper-row__meta {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.5rem;
  font-family: var(--font-sans); font-size: var(--fs-micro);
  letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--faint);
}
.landing-problems .paper-row__meta > * + *::before { content: "\00b7"; margin-right: 0.5rem; color: var(--rule); }
.landing-problems .paper-row__subject { color: var(--ink-soft); font-weight: 600; }
.landing-problems .link-row strong {
  font-family: var(--font-serif); font-weight: 600; font-size: 1.14rem; line-height: 1.28;
  letter-spacing: -0.005em; color: var(--ink); text-wrap: pretty;
}
.landing-problems .link-row strong a { color: inherit; text-decoration: none; }
.landing-problems .link-row:hover strong a,
.landing-problems .link-row strong a:focus-visible { text-decoration: underline; text-underline-offset: 0.18em; }
.landing-problems .link-row .desc { max-width: 62ch; margin-top: 0.15rem; font-size: var(--fs-body); line-height: 1.62; text-wrap: pretty; }


#contribute .link-row { grid-template-columns: minmax(0, 1fr); row-gap: 0.15rem; }
#contribute .link-row strong { font-size: 1.05rem; }
#contribute .link-row[data-link-kind="exogenous"] strong a { color: var(--link-ext); }
#contribute .link-row[data-link-kind="exogenous"] strong a::after { content: " \2197"; font-size: 0.85em; }


.boundaries__check-title { margin: 1.6rem 0 0.4rem; font-size: 1.05rem; font-weight: 600; }


.fold__summary:focus-visible { outline: none; }
.fold__summary:focus-visible .fold__cue { outline: 2px solid var(--accent); outline-offset: 3px; }
.fold__summary > .fold__cue { justify-self: start; align-self: start; }


#papers .link-rows, .landing-problems { max-width: 880px; }
#papers .fold__body { max-inline-size: 880px; }
#papers .link-row {
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 2rem; row-gap: 0.28rem; align-items: start;
  padding: 1.35rem 0.4rem;
}
#papers .link-row .paper-row__meta { grid-column: 1; grid-row: 1; }
#papers .link-row strong { grid-column: 1; grid-row: 2; }
#papers .link-row .desc { grid-column: 1; grid-row: 3; }
#papers .link-row .go { grid-column: 2; grid-row: 1 / span 3; align-self: start; justify-self: end; padding-top: 0.1rem; }
#papers .paper-row__meta > *, .landing-problems .paper-row__meta > * { white-space: nowrap; }
.landing-problems .link-row { padding: 1.05rem 0.6rem; }
@media (max-width: 640px) {
  #papers .link-row { grid-template-columns: minmax(0, 1fr); }
  #papers .link-row .go { grid-column: 1; grid-row: 4; justify-self: start; margin-top: 0.35rem; }
  #papers .paper-row__meta > *, .landing-problems .paper-row__meta > * { white-space: normal; }
}


.hero__map-repos { margin: 0.9rem 0 0 0.55rem; font-size: var(--fs-meta); color: var(--muted); }
.hero__map-repos a { color: var(--link-ext); }
.section--tail { padding-top: 0; }
.section__note { max-width: var(--prose); color: var(--muted); font-size: var(--fs-body); text-wrap: pretty; }
.public-work .link-row,
.further-reading .link-row { row-gap: 0.15rem; }
.public-work .paper-row__meta {
  font-family: var(--font-sans); font-size: var(--fs-micro);
  letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--faint);
}
.public-work .link-row strong { font-family: var(--font-serif); font-weight: 600; font-size: 1.14rem; line-height: 1.28; }
.public-work .link-row strong a { color: inherit; text-decoration: none; }
.public-work .link-row:hover strong a,
.public-work .link-row strong a:focus-visible { text-decoration: underline; text-underline-offset: 0.18em; }
.public-work .link-row .desc { max-width: 62ch; }
.further-reading .link-row { grid-template-columns: minmax(0, 1fr); }
.further-reading .link-row strong { font-size: 1.05rem; }
.landing-problems--compact { max-width: var(--prose); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.landing-problems--compact .link-row { padding-block: 0.7rem; }
.landing-problems--compact .link-row strong { font-size: 1.05rem; line-height: 1.3; }
@media (max-width: 640px) { .landing-problems--compact { grid-template-columns: minmax(0, 1fr); } }
.demo-block { max-width: var(--prose); }
.demo-block__title, .specimen-block__title { margin: 1.4rem 0 0.4rem; font-size: 1.15rem; font-weight: 600; }
.demo-block__lede, .specimen-block__lede { color: var(--muted); text-wrap: pretty; }
.specimen-block { max-width: var(--prose); }
.specimen__depth--receipt { margin-top: 1rem; }
.specimen__depth--receipt > summary { cursor: pointer; font-weight: 600; }
.review-receipt__log-label { margin-top: 1rem; }
.ai-questions--open { margin-top: 1.2rem; }
.fold[data-fold-tone="quiet"] { margin-top: 1.4rem; }


.hero--simple { max-width: 1060px; padding-top: 72px; padding-bottom: 2.4rem; }
.hero--simple .hero__lede {
  max-width: 24ch;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  margin-bottom: 1rem;
}
.hero--simple .hero__sub {
  max-width: 62ch;
  color: var(--ink-soft);
  margin-bottom: 1rem;
  line-height: var(--lh-body);
}
.hero__who {
  margin: 0 0 1.8rem;
  font-size: var(--fs-meta);
  color: var(--muted);
}
.hero__who a { color: inherit; text-underline-offset: 0.18em; }
.hero--simple .hero__modes { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; }

.hero--simple .hero__repos { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: .2rem; }
.hero--simple .hero__modes .btn--text { padding-inline: 0.15rem; }
.hero--simple .hero__modes .btn--text[data-link-kind="exogenous"] { color: var(--link-ext); }
.hero--simple .hero__modes .btn--text[data-link-kind="exogenous"]::after { content: " \2197"; }


.section--quiet { padding: 2rem 0; }
.section--quiet .eyebrow { margin-bottom: 0.7rem; }
.quiet-links {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 0.4rem 0;
  max-width: 900px; font-size: var(--fs-body);
}
.quiet-links li + li::before { content: "\00b7"; color: var(--rule-strong); margin: 0 0.7rem; }
.quiet-links a { color: var(--ink-soft); }
.quiet-links a:hover { color: var(--accent); }
.fold__lede { color: var(--muted); max-width: var(--prose); margin: 0 0 1.2rem; text-wrap: pretty; }
.landing-example { margin-top: 1.5rem; }
.landing-example > summary { cursor: pointer; color: var(--ink-soft); padding: .75rem 0; }
@media (max-width: 600px) {
  .docs-topbar__inner { flex-wrap: wrap; height: auto; min-height: 58px; padding-block: .65rem; }
  .docs-topbar__links { display: flex; flex-wrap: wrap; gap: 1rem; width: 100%; margin: .35rem 0 0; }
  .docs-topbar__links a { padding: .4rem 0; }
}


@media (prefers-reduced-motion: reduce) {
  
  .docs-sidebar, .docs-sidebar * { transition: none !important; }
}
@media (max-width: 620px) {
  .site-header__inner { position: relative; }
  .site-header .theme-toggle { position: absolute; top: .5rem; right: 0; min-height: 36px; }
  .site-header .brand-ladder { padding-right: 54px; }
  .site-header nav { column-gap: .9rem; row-gap: .25rem; }
  .site-header nav a { font-size: .875rem; }
  .hero--simple .hero__modes { display: grid; grid-template-columns: minmax(0, 1fr); gap: .65rem; }
  .hero--simple .hero__modes .btn { justify-content: center; min-height: 46px; text-align: center; }
  .glossary-hint { bottom: max(12px, env(safe-area-inset-bottom)); }
  body.has-viewback .glossary-hint { bottom: calc(68px + env(safe-area-inset-bottom)); }
  .glossary-hint__close { width: 36px; height: 36px; }
}
@media (max-width: 600px) {
  .docs-topbar__inner { position: relative; gap: .65rem; padding-right: 54px; }
  .docs-topbar__links { flex: 0 0 calc(100% + 54px); gap: .25rem 1rem; margin-top: .1rem; }
  .docs-topbar .docs-topbar__links { margin-left: 0; }
  .docs-topbar__links a { font-size: .8125rem; }
  .docs-topbar__links .theme-toggle { position: absolute; top: .65rem; right: 0; min-height: 36px; }
  .docs-search-btn { padding-inline: .55rem; }
  .docs-search-btn__kbd { display: none; }
}

@media (max-width: 600px) {
  .docs-topbar__inner {
    display: grid; grid-template-columns: auto minmax(0, 1fr) 40px 46px;
    column-gap: .3rem; padding-right: 0;
  }
  .docs-topbar .brand-ladder { grid-column: 2; grid-row: 1; }
  .docs-topbar__links { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  .docs-menu-btn { grid-column: 1; grid-row: 1; padding-inline: .55rem; }
  .docs-search-btn { grid-column: 3; grid-row: 1; position: relative; width: 40px; height: 40px; padding: 0; }
  .docs-search-btn__text {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip-path: inset(50%); white-space: nowrap;
  }
  .docs-search-btn::before {
    content: ""; position: absolute; width: 12px; height: 12px;
    left: 11px; top: 10px; border: 1.5px solid currentColor; border-radius: 50%;
  }
  .docs-search-btn::after {
    content: ""; position: absolute; width: 7px; height: 1.5px;
    left: 22px; top: 24px; background: currentColor; transform: rotate(45deg);
  }
  .docs-topbar__links { flex-basis: 100%; margin-top: 0; }
}
@media (max-width: 360px) {
  .docs-topbar__inner { grid-template-columns: auto minmax(0, 1fr) 32px 46px; column-gap: .1rem; }
  .docs-search-btn { width: 32px; }
  .docs-search-btn::before { left: 7px; }
  .docs-search-btn::after { left: 18px; }
  .docs-menu-btn { padding-inline: .35rem; }
  .docs-topbar .brand-ladder { gap: .3rem; margin-right: 0; }
  .docs-topbar .wordmark__mark { margin-right: .25rem; }
  .docs-topbar .brand-ladder__up { font-size: .75rem; }
  .docs-topbar .brand-ladder .wordmark { font-size: 1.05rem; }
  .docs-main .docs-pagetools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .docs-main .docs-pagetools__label, .docs-main .docs-pagetools__status { grid-column: 1 / -1; }
  .docs-main .docs-pagetool { justify-content: center; min-width: 0; padding-inline: .5rem; }
  
  .docs-main .docs-headrow > .docs-pagetools { flex-basis: 100%; margin: 0; }
}

@container (max-width: 20rem) {
  .comp-card__summary { flex-wrap: wrap; }
  .comp-card__head { flex-basis: 100%; }
}


@container page-chrome (max-width: 18rem) {
  .brand-ladder { flex-wrap: wrap; }
  .docs-topbar__inner { display: flex; padding-right: 0; }
  .docs-topbar .brand-ladder { order: -1; flex-basis: 100%; padding-right: 54px; }
  .docs-topbar__links { flex-basis: 100%; width: 100%; }
}



html:not(.scripting):not(.js):has(.docs-topbar) { scroll-padding-top: 8px; }
html:not(.scripting):not(.js) .docs-topbar { position: static; }
html:not(.scripting):not(.js) .docs-menu-btn,
html:not(.scripting):not(.js) .docs-search-btn,
html[data-plectis-docs-runtime="failed"] .docs-menu-btn,
html[data-plectis-docs-runtime="failed"] .docs-search-btn { display: none; }
@media (max-width: 768px) {
  html:not(.scripting):not(.js) .docs-sidebar,
  html[data-plectis-docs-runtime="failed"] .docs-sidebar {
    position: static; width: 100%; max-width: none; height: auto;
    visibility: visible; transform: none; transition: none;
    padding: 1rem 0; border: 0; box-shadow: none;
  }
}





.btn-split { display: inline-flex; align-items: stretch; max-width: 100%; border-radius: var(--r-control); transition: transform var(--dur-fast) var(--ease); }
.btn-split:hover { transform: translateY(-1px); }
.btn-split .btn { margin: 0; }
.btn-split .btn:hover { transform: none; }
.btn-split__main { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.btn-split__alt {
  border-top-left-radius: 0; border-bottom-left-radius: 0;
  padding-inline: 0.72rem;
  border-left-color: color-mix(in srgb, var(--link-ext) 42%, transparent);
}
.btn-split__alt .btn__format {
  background: transparent; color: inherit; padding: 0;
  font-size: 0.72rem; letter-spacing: 0.06em;
}
.btn-split__alt:hover { background: color-mix(in srgb, var(--link-ext) 36%, var(--surface)); }
.btn-split:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
.btn-split .btn:focus-visible { outline: none; }


.hero--simple .hero__modes .hero__repo {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.36rem 0.78rem 0.36rem 0.62rem;
  font-size: var(--fs-small); font-weight: 500;
  color: var(--link-ext);
  border: 1px solid color-mix(in srgb, var(--link-ext) 32%, transparent);
  border-radius: 999px;
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.hero--simple .hero__modes .hero__repo:hover {
  border-color: var(--link-ext);
  background: color-mix(in srgb, var(--link-ext) 12%, transparent);
  text-decoration: none;
}
.hero--simple .hero__modes .hero__repo[data-link-kind="exogenous"]::after { content: none; }
.hero__repo-mark { flex: none; opacity: 0.85; }
.hero--simple .hero__repos { gap: 0.5rem 0.6rem; margin-top: 0.55rem; }


.hero--simple::after {
  content: ""; display: block; width: 6rem; height: 3px;
  margin-top: 2.6rem; border-radius: 2px;
  background: var(--thread); opacity: var(--thread-alpha);
}
.hero--simple { padding-bottom: 1.6rem; }
.hero--simple .hero__who { margin-bottom: 1.5rem; }


.docs-layout.docs-layout--essay {
  width: min(1320px, calc(100% - 32px));
  grid-template-columns: minmax(0, 1fr);
}
.docs-layout--essay .docs-main { padding: clamp(2rem, 5vw, 4.25rem) 0 5rem; }

.docs-layout--essay {
  --essay-fs: clamp(1.125rem, 1.04rem + 0.3vw, 1.25rem);
}
.docs-layout--essay .essay,
.docs-layout--essay .essay__resources {
  max-width: none; width: min(100%, calc(27.5 * var(--essay-fs)));
  margin-inline: auto;
}
.essay { font-size: var(--essay-fs); }
.docs-article.essay p { max-width: none; }

.essay__head { margin: 0 0 clamp(2.25rem, 4vw, 3rem); }
.essay__label {
  margin: 0 0 0.9rem;
  font-family: var(--font-sans); font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent);
}
.docs-article.essay h1 {
  margin: 0 0 1.1rem;
  font-family: var(--font-serif); font-weight: 600;
  font-size: clamp(2.25rem, 1.55rem + 2.5vw, 3.5rem);
  line-height: 1.06; letter-spacing: -0.02em; color: var(--ink);
  text-wrap: balance;
}
.docs-article.essay .essay__standfirst {
  margin: 0 0 1.4rem;
  font-family: var(--font-serif); font-style: italic;
  font-size: clamp(1.3rem, 1.12rem + 0.6vw, 1.56rem); line-height: 1.42;
  color: var(--ink-soft); text-wrap: pretty;
}
.docs-article.essay .essay__byline {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0;
  margin: 0 0 1.6rem; font-family: var(--font-sans); font-size: 1rem;
}
.essay__author { font-weight: 600; color: var(--ink); }
.essay__date { color: var(--muted); }
.essay__date::before { content: "\00b7"; margin: 0 0.6rem; color: var(--faint); }
.essay__actions { display: flex; flex-wrap: wrap; gap: 0.7rem 0.8rem; }
.essay__actions .btn, .essay__cta .btn { min-height: 44px; font-size: 1rem; }

.essay__head::after {
  content: ""; display: block; width: 6rem; height: 3px;
  margin-top: clamp(2rem, 3.5vw, 2.6rem); border-radius: 2px;
  background: var(--thread); opacity: var(--thread-alpha);
}

.essay__body {
  font-family: var(--font-serif); line-height: 1.7; color: var(--ink);
}
.docs-article.essay .essay__body p { margin: 0 0 1.05em; color: var(--ink); text-wrap: pretty; }
.docs-article.essay .essay__body .essay__opening {
  font-size: 1.12em; line-height: 1.55; color: var(--ink);
}
.docs-article.essay .essay__body h2 {
  margin: 2.6em 0 0.7em; padding: 0;
  font-family: var(--font-serif); font-weight: 600;
  font-size: clamp(1.45rem, 1.3rem + 0.5vw, 1.75rem); line-height: 1.2;
  letter-spacing: -0.01em; color: var(--ink);
  scroll-margin-top: calc(var(--topbar-h) + 1.25rem);
}
.essay__body var { font-style: italic; }

.essay__body a[data-link-kind="exogenous"]:has(+ .essay__cite)::after { content: none; }
.essay__cite { font-size: 0.68em; line-height: 0; vertical-align: super; margin-left: 0.1em; }
.essay__cite a { color: var(--accent); text-decoration: none; font-family: var(--font-sans); font-variant-numeric: tabular-nums; }
.essay__cite a:hover { text-decoration: underline; }
.docs-article.essay .essay__cta { margin: 1.6rem 0 0; }


.essay__sources {
  margin: clamp(3.5rem, 6vw, 4.5rem) 0 0; padding-top: 1.6rem;
  border-top: 1px solid var(--rule-strong);
  font-size: 1rem; line-height: 1.55; color: var(--ink-soft);
}
.docs-article.essay .essay__sources-title {
  margin: 0 0 0.6rem; padding: 0;
  font-family: var(--font-serif); font-size: 1.3rem; font-weight: 600; color: var(--ink);
}
.docs-article.essay .essay__sources-lede { margin: 0 0 1.1rem; color: var(--muted); }
.essay__readings, .essay__notes { margin: 0; padding: 0; list-style: none; }
.essay__readings li { margin: 0 0 0.85rem; }
.essay__readings cite, .essay__notes cite { font-style: italic; }
.essay__sources a { color: var(--link-ext); }
.essay__sources a[data-link-kind="exogenous"]::after { content: none; }
.essay__notes {
  counter-reset: essay-note; margin-top: 1.5rem; padding-top: 1.1rem;
  border-top: 1px solid var(--rule);
}
.essay__notes li {
  position: relative; padding-left: 1.75rem; margin: 0 0 0.5rem;
  scroll-margin-top: calc(var(--topbar-h) + 1rem);
}
.essay__notes li::before {
  counter-increment: essay-note; content: counter(essay-note);
  position: absolute; left: 0; top: 0;
  font-family: var(--font-sans); font-weight: 600; font-variant-numeric: tabular-nums;
  color: var(--accent);
}
.essay__notes li:target { color: var(--ink); }
.essay__notes code { font-size: 0.88em; overflow-wrap: anywhere; }


.essay__resources {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.6rem;
  margin-top: 2.4rem; padding-top: 1.1rem; border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
}
.essay__resources-label { margin: 0; color: var(--faint); }
.docs-main .essay__resources .docs-pagetools { display: contents; }
.docs-main .essay__resources .docs-pagetool { min-height: 32px; text-decoration: none; color: var(--ink-soft); }
.essay__software { margin-left: auto; color: var(--ink-soft); }
@media (max-width: 560px) {
  .essay__software { margin-left: 0; flex-basis: 100%; }
}


.docs-main .paper-shelf { margin: 0 0 3.2rem; }

.docs-main .paper-shelf > h2 {
  padding-top: 1.2rem; border-top: 2px solid var(--ink);
}
.docs-main .paper-shelf__count {
  margin-left: 0.45em;
  font-weight: 500; font-size: 0.72em;
  color: var(--faint); font-variant-numeric: tabular-nums;
}
.docs-main .paper-entry__kind { white-space: nowrap; }
.docs-main .paper-entry__form { color: var(--muted); }

.docs-main .paper-shelf--archive > h2 { border-top: 1px solid var(--rule-strong); }
.docs-main .paper-shelf--archive .paper-entry h3 {
  font-size: clamp(1.15rem, 1.08rem + 0.25vw, 1.3rem); font-weight: 500; color: var(--ink-soft);
}


.docs-layout.docs-layout--catalogue {
  grid-template-columns: minmax(0, 1fr) 13rem;
  column-gap: clamp(40px, 4.5vw, 72px);
}

.docs-layout--catalogue .docs-headrow,
.docs-layout--catalogue .docs-article { max-width: none; }
.docs-layout--catalogue .docs-lede { max-width: 62ch; }
.docs-layout--catalogue .docs-toc { display: block; }
.docs-layout--catalogue .docs-toc a {
  display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem;
}
.docs-toc__count {
  flex: none; color: var(--faint);
  font-variant-numeric: tabular-nums;
}
.docs-toc a.is-current .docs-toc__count, .docs-toc a:hover .docs-toc__count { color: inherit; }

.docs-layout--catalogue .docs-toc a[href="#pending"],
.docs-layout--catalogue .docs-toc a[href="#provenance"] { margin-top: 0.9rem; }


.docs-layout--catalogue .paper-shelf { margin: 2.75rem 0 0; }

.docs-layout--catalogue .docs-article > section {
  content-visibility: visible; contain-intrinsic-size: none;
}
.docs-layout--catalogue .paper-shelf > h2 { margin-top: 0; }


.docs-main .catalogue-index { display: none; }
.catalogue-index ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 0.15rem 1.4rem;
  font-size: var(--fs-meta); line-height: 1.4;
}
.catalogue-index li { margin: 0; padding: 0; }
.catalogue-index a { display: inline-block; padding-block: 0.3rem; color: var(--ink-soft); }
.catalogue-index a:hover { color: var(--accent); }
.catalogue-index__count {
  margin-left: 0.2em; color: var(--faint); font-variant-numeric: tabular-nums;
}
@media (max-width: 960px) {
  .docs-layout.docs-layout--catalogue { grid-template-columns: minmax(0, 1fr); }
  .docs-layout--catalogue .docs-toc { display: none; }
  .docs-main .catalogue-index {
    display: block; margin: 1.4rem 0 0; padding-top: 0.9rem;
    border-top: 1px solid var(--rule);
  }
}


@container (min-width: 40rem) {
  .docs-main .paper-entry {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr);
    column-gap: 2rem;
    align-items: baseline;
  }
  .docs-main .paper-entry__meta {
    margin: 0;
    display: flex; flex-direction: column; align-items: flex-end;
    text-align: right; line-height: 1.35;
  }
  .docs-main .paper-entry__sep { display: none; }
  .docs-main .paper-entry__subject { margin-right: 0; }
  .docs-main .paper-entry__kind,
  .docs-main .paper-entry__form { font-size: var(--fs-small); }
  .docs-main .paper-entry__kind { white-space: normal; }
  .docs-main .paper-entry__status + .paper-entry__kind,
  .docs-main .paper-entry__status ~ .paper-entry__subject { margin-top: 0.1rem; }
  .docs-main .paper-entry__meta > * { text-wrap: balance; }
  .docs-main .paper-entry__pair { margin-top: 0.3rem; }
}

.docs-main a.paper-entry__subject { text-decoration: none; }
.docs-main a.paper-entry__subject:hover,
.docs-main a.paper-entry__subject:focus-visible { text-decoration: underline; text-underline-offset: 0.18em; }
.docs-main .paper-entry__pair {
  font-size: var(--fs-small); color: var(--accent); text-decoration: none;
  white-space: nowrap;
}
.docs-main .paper-entry__pair:hover,
.docs-main .paper-entry__pair:focus-visible { text-decoration: underline; text-underline-offset: 0.18em; }
.docs-main .paper-entry { scroll-margin-top: calc(var(--topbar-h) + 1.25rem); }


.is-catalogue .viewback:not(:hover):not(:focus-visible) {
  min-width: 0; gap: 0; padding: 0; width: 2.5rem; height: 2.5rem; justify-content: center;
}
.is-catalogue .viewback:not(:hover):not(:focus-visible) .viewback__label { display: none; }

/* ── The catalogue as a folio (6 October 2026, second pass) ───────────────
   The subject of the page is the relationship between a concise argument
   and the investigation behind it, and the composition says so in three
   registers. The opening faces display type with one real mathematical
   object: the lemniscate of the #1041 counterexample, computed from the
   paper's coefficients (build_catalogue_frontispiece.py), with its centre
   magnified 10^12 times beside it, one result and the detail behind it.
   The catalogue keeps a steady cadence in a margin of serif numerals: each
   shelf's count, each problem's number, and a two-strand mark (the plait's
   weave at the size of a word) where a short paper and its record name each
   other. An opened guide is an annotated passage: the abstract in the
   reading measure, its notes beside it. The page closes on a colophon.
   Colour stays in the two inks; the grounds stay flat. */


.catalogue-masthead {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(0, 29rem);
  grid-template-rows: auto auto;
  column-gap: clamp(2rem, 4vw, 3.75rem);
  margin: 0 0 0.75rem;
}
.catalogue-masthead__text { grid-column: 1; grid-row: 1; min-width: 0; }
.docs-article .catalogue-masthead h1 {
  margin: 0.1rem 0 1.1rem;
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(3.4rem, 1.8rem + 3.6vw, 5.75rem);
  line-height: 0.92; letter-spacing: -0.025em; color: var(--ink);
}
.docs-layout--catalogue .catalogue-masthead .docs-lede {
  margin: 0; max-width: 36ch;
  font-family: var(--font-serif); font-size: 1.25rem; line-height: 1.45;
  color: var(--ink-soft); text-wrap: pretty;
}
.catalogue-masthead__route {
  margin: 1rem 0 0; max-width: 46ch;
  font-size: var(--fs-meta); line-height: 1.55; color: var(--muted);
}

.frontispiece {
  grid-column: 1 / -1; grid-row: 1 / -1;
  display: grid; grid-template-columns: subgrid; grid-template-rows: subgrid;
  margin: 0; min-width: 0;
}
.frontispiece__plate {
  grid-column: 2; grid-row: 1 / -1;
  display: block; width: 100%; height: auto; overflow: visible;
}
.frontispiece__caption {
  grid-column: 1; grid-row: 2; align-self: end;
  max-width: 50ch; margin: 1.5rem 0 0.4rem; padding-top: 0.8rem;
  border-top: 1px solid var(--rule-strong);
  font-family: var(--font-serif); font-size: 0.875rem; line-height: 1.55;
  color: var(--muted); text-wrap: pretty;
}
.frontispiece__label {
  display: block; margin-bottom: 0.2rem;
  font-family: var(--font-sans); font-size: var(--fs-small); font-weight: 600;
  color: var(--accent); text-decoration: none;
}
.frontispiece__label:hover, .frontispiece__label:focus-visible { text-decoration: underline; text-underline-offset: 0.18em; }
.frontispiece__caption sup { font-size: 0.7em; line-height: 0; }
@container (max-width: 52rem) {
  .catalogue-masthead { grid-template-columns: minmax(0, 1fr); }
  .frontispiece { grid-column: 1; grid-row: 2; display: block; margin-top: 2rem; }
  .frontispiece__plate { max-width: 32rem; }
  .frontispiece__caption { margin-top: 0.75rem; }
}

.plate {
  --pl-key: var(--home-ember); --pl-other: var(--home-ice);
  --pl-ink: var(--ink); --pl-faint: var(--faint);
  --pl-rule: var(--rule-strong); --pl-page: var(--page);
  display: block; width: 100%; height: auto; overflow: visible;
}
.pl-edge { fill: none; stroke: var(--pl-other); stroke-width: 1.1; stroke-linejoin: round; stroke-linecap: round; }
.pl-edge--key { stroke: var(--pl-key); stroke-width: 1.6; }
.pl-hatch { fill: none; stroke: var(--pl-other); stroke-width: 0.7; opacity: 0.5; }
.pl-hatch--key { stroke: var(--pl-key); stroke-width: 0.9; opacity: 0.9; }
.pl-line { fill: none; stroke: var(--pl-other); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.pl-line--key { stroke: var(--pl-key); stroke-width: 1.8; }
.pl-ref { fill: none; stroke: var(--pl-rule); stroke-width: 1; stroke-dasharray: 2 3; }
.pl-ref--faint { stroke: var(--pl-faint); stroke-dasharray: 3 3; }
.pl-contour { fill: none; stroke: var(--pl-ink); stroke-width: 0.8; opacity: 0.55; }
.pl-axis, .pl-leader { fill: none; stroke: var(--pl-faint); stroke-width: 0.8; }
.pl-ring { fill: none; stroke: var(--pl-ink); stroke-width: 1; }
.pl-ground { fill: var(--pl-page); stroke: none; }
.pl-dot { fill: var(--pl-other); stroke: none; }
.pl-dot--key { fill: var(--pl-key); }
.pl-dot--ink { fill: var(--pl-ink); }
.pl-dot--open { fill: var(--pl-page); stroke: var(--pl-other); stroke-width: 1.2; }
.pl-dot--open-key { fill: var(--pl-page); stroke: var(--pl-key); stroke-width: 1.4; }
.pl-mark { fill: none; stroke: var(--pl-ink); stroke-width: 1; }
.pl-text {
  fill: var(--pl-faint); font-family: var(--font-serif); font-size: 15px;
  font-variant-numeric: lining-nums;
  paint-order: stroke; stroke: var(--pl-page); stroke-width: 4px; stroke-linejoin: round;
}
.pl-text--ink { fill: var(--pl-ink); }
.pl-text--key { fill: var(--pl-key); }
.pl-text--ice { fill: var(--pl-other); }
.pl-text--small { font-size: 12.5px; }

.pl-text--body { font-size: 17px; }
.pl-text--large { font-size: 20px; }
.pl-var { font-style: italic; }
.pl-sup { font-size: 0.68em; }
.pl-grid { fill: none; stroke: var(--pl-faint); stroke-width: 0.5; opacity: 0.45; }
.pl-dot--faint { fill: var(--pl-faint); }

.pl-thin { stroke-width: 0.7; }
.pl-bold { stroke-width: 1.8; }
.pl-dashed { stroke-dasharray: 3 3; }

.pl-stage { transition: opacity 320ms var(--ease-out, ease-out); }
.home-results.is-live:not([data-results-mode="technical"]) .home-result-plate .pl-tech,
.home-results__preview .pl-tech, .frontispiece .pl-tech { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .home-results[data-results-mode="technical"] .home-result-plate .pl-tech { animation: pl-tech-in 420ms var(--ease-out, ease-out) both; }
}
@keyframes pl-tech-in { from { opacity: 0; } to { opacity: 1; } }

.plate.is-tracing .pl-stage:not(.is-at) { opacity: 0.08; }
.plate.is-tracing .pl-stage.is-at:not(.is-traced) { opacity: 0.45; }
.plate.is-tracing[data-underdrawing="none"] .pl-stage:not(.is-at) { opacity: 0; }

.pl-stage[data-until] { display: none; }
.plate.is-pending .pl-stage[data-until].is-drawn,
.plate.is-tracing .pl-stage[data-until].is-at { display: inline; }
.plate.is-pending .pl-stage.is-drawn.is-retired { opacity: 0; transition: opacity 560ms var(--ease-out, ease-out); }

.pl-bar { fill: none; stroke: var(--pl-faint); stroke-width: 1; stroke-linecap: butt; }
.pl-bar--ink { stroke: var(--pl-ink); }
.pl-bar--key { stroke: var(--pl-key); }
.pl-bar--ice { stroke: var(--pl-other); }

.plate {
  --pl-hot: #c5533f; --pl-glow: transparent;
}
:root[data-theme="dark"] .plate { --pl-hot: #f6c0aa; --pl-glow: rgba(240, 150, 125, 0.55); }
@media (prefers-color-scheme: dark) { :root:not([data-theme]) .plate { --pl-hot: #f6c0aa; --pl-glow: rgba(240, 150, 125, 0.55); } }

.home-results__preview .pl-text, .home-results__preview .pl-bar,
.home-results__preview .pl-tabular { display: none; }
.home-results__preview .plate path,
.home-results__preview .plate circle,
.home-results__preview .plate rect { vector-effect: non-scaling-stroke; }
.home-results__preview .pl-hatch { opacity: 0.38; }
.home-results__preview .pl-hatch--key { opacity: 0.72; }
.home-results__preview .pl-edge--key, .home-results__preview .pl-line--key { stroke-width: 1.7; }


.docs-layout--catalogue .docs-headrow .docs-pagetool {
  border-color: transparent; background: transparent; padding-inline: 0.4rem;
}
.docs-layout--catalogue .docs-headrow .docs-pagetool:hover {
  border-color: transparent; background: transparent; color: var(--accent-strong);
}


.docs-main .paper-entry__subject { font-weight: 500; }
.docs-main .paper-entry__number,
.frontispiece__label .paper-entry__number {
  font-family: var(--font-serif); font-weight: 400;
  font-size: 1.5em; line-height: 1; letter-spacing: -0.01em;
  font-variant-numeric: lining-nums;
}
.docs-main .paper-entry__subject .paper-entry__number { margin-left: 0.12em; }
.docs-main .paper-entry h3 { font-weight: 500; }

.pair-mark {
  width: 20px; height: 12px; margin-right: 0.35em; vertical-align: -0.08em;
  overflow: visible;
}
.pair-mark__strand { fill: none; stroke-width: 1.6; stroke-linecap: round; }
.pair-mark__strand--short { stroke: var(--home-ember); }
.pair-mark__strand--record { stroke: var(--home-ice); }
.pair-mark__gap { fill: none; stroke: var(--page); stroke-width: 4.5; stroke-linecap: round; }


.docs-main .paper-shelf > h2.paper-shelf__head {
  margin: 0; padding-top: 1.1rem;
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(1.75rem, 1.35rem + 1vw, 2.3rem); line-height: 1.1;
  letter-spacing: -0.015em; color: var(--ink);
}
.docs-main .paper-shelf__head .paper-shelf__count {
  margin: 0 0.4em 0 0;
  font-family: var(--font-serif); font-weight: 400; font-style: normal; font-size: 1em;
  color: var(--faint); font-variant-numeric: lining-nums tabular-nums;
  white-space: nowrap;
}
.paper-shelf__unit {
  margin-left: 0.2em; font-family: var(--font-sans); font-size: var(--fs-small);
  font-weight: 500; letter-spacing: 0; vertical-align: 0.05em;
}
.docs-main .paper-shelf__question {
  font-family: var(--font-serif); font-size: 1.0625rem; line-height: 1.55;
  color: var(--muted); margin: 0.6rem 0 1.6rem;
}
.docs-main .paper-shelf__problems {
  margin: -0.4rem 0 1.6rem; display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.2rem 1.15rem;
  font-family: var(--font-serif); font-size: 1.6rem; line-height: 1.3;
  font-variant-numeric: lining-nums;
}
.docs-main .paper-shelf__problems a { color: var(--ink-soft); text-decoration: none; }
.docs-main .paper-shelf__problems a:hover,
.docs-main .paper-shelf__problems a:focus-visible { color: var(--accent); text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
.paper-shelf__problems-label {
  font-family: var(--font-sans); font-size: var(--fs-small); font-weight: 500; color: var(--muted);
}
.docs-layout--catalogue .paper-shelf--synthesis-papers { margin-top: 4.5rem; }
.docs-main .paper-shelf--synthesis-papers > h2.paper-shelf__head {
  border-top-width: 1px; font-style: italic;
  font-size: clamp(2rem, 1.4rem + 1.6vw, 2.9rem);
}
.docs-layout--catalogue .paper-shelf--reasoning-records { margin-top: 5rem; }
.docs-main .paper-shelf--archive > h2.paper-shelf__head {
  font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.75rem); color: var(--ink-soft);
}
@container (min-width: 40rem) {
  .docs-main .paper-shelf > h2.paper-shelf__head {
    display: grid; grid-template-columns: 9.5rem minmax(0, 1fr);
    column-gap: 2rem; align-items: baseline;
  }
  .docs-main .paper-shelf__head .paper-shelf__count { justify-self: end; margin: 0; }
  .docs-main .paper-shelf__question,
  .docs-main .paper-shelf__problems { margin-left: 11.5rem; }
}


.docs-main .paper-entry__row dt { display: block; margin: 0 0 0.1rem; }
.docs-main .paper-entry__row dd { display: block; }
.docs-main .paper-entry__body { gap: 0.8rem; }
.docs-main .paper-entry__row dd a.paper-entry__section { font-weight: 500; }
@container (min-width: 62rem) {
  .docs-main .paper-entry__guide {
    display: grid; grid-template-columns: minmax(0, 36rem) minmax(13rem, 18rem);
    column-gap: 2.5rem; align-items: start;
  }
  .docs-main .paper-entry__guide .paper-entry__precis { margin: 0; }
  .docs-main .paper-entry__guide .paper-entry__body {
    max-width: none; padding: 0.2rem 0 0 1.1rem;
    border-top: 0; border-left: 1px solid var(--rule-strong);
  }
}


.docs-main .paper-close {
  margin-top: 5.5rem; padding-top: 1.5rem; border-top: 2px solid var(--ink);
  display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem;
}
.paper-close__mark { width: 28px; height: 28px; }
.docs-main .paper-close__link { display: flex; flex-direction: column; gap: 0.25rem; text-decoration: none; }
.paper-close__dir { font-size: var(--fs-meta); color: var(--muted); }
.paper-close__title {
  font-family: var(--font-serif); font-weight: 400; color: var(--ink);
  font-size: clamp(1.6rem, 1.3rem + 0.9vw, 2.15rem); line-height: 1.15; letter-spacing: -0.015em;
}
.docs-main .paper-close__link:hover .paper-close__title,
.docs-main .paper-close__link:focus-visible .paper-close__title {
  color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.14em;
}
.docs-main .paper-close__aside {
  margin: 1.4rem 0 0; font-size: var(--fs-meta); color: var(--muted);
}
@container (min-width: 40rem) {
  .docs-main .paper-close {
    grid-template-columns: 9.5rem repeat(2, max-content);
    column-gap: 2rem; align-items: end;
  }
  .docs-main .paper-close__link + .paper-close__link { margin-left: 2.5rem; }
  .paper-close__mark { justify-self: end; margin-bottom: 0.35rem; }
  .docs-main .paper-close__aside { margin-left: 11.5rem; }
}


:root {
  
  --home-max: 1320px;
  
  --atlas-ease: cubic-bezier(0.45, 0, 0.2, 1);
  --home-ember: #9a322c;
  --home-ice: #2a5982;
  
  --weave-red: #9a322c;
  --weave-azure: #2a5982;
  --weave-red-glow: #9a322c;
  --weave-azure-glow: #2a5982;
  --home-line: rgba(25, 21, 32, 0.10);
  --home-line-strong: rgba(25, 21, 32, 0.18);
  --home-card: color-mix(in srgb, var(--surface) 82%, transparent);
  --home-film-shadow: 0 18px 40px -26px rgba(25, 21, 32, 0.42);
  
  --u-universe: var(--ink);
  --u-problem: #272230;
  --u-claim: #716c7b;
  --u-paper: #9894a0;
  --u-paper-short: #8f6212;
  --u-paper-long: #6a4fa3;
  
  --u-paper-expository: #0d8b73;
  --u-document: #6a6573;
  --u-integration: var(--weave-red);
  --u-module: #9c98a4;
  --u-object: #8c8499;
  --u-statement: var(--weave-azure-glow);
  --u-plate: rgba(25, 21, 32, 0.045);
  --u-edge: rgba(25, 21, 32, 0.14);
  --u-edge-hot: rgba(42, 89, 130, 0.55);
  --u-halo: rgba(25, 21, 32, 0.10);
  --u-rim: rgba(25, 21, 32, 0.3);
  /* The system map's inks (assets/system-map.js reads them on every theme
     change): the machinery in the plait's red and the doctrine in its azure,
     the two cables of the Plectis mark, by reference so the drawing follows
     the site's palette; the map derives each ink's tints itself (faces,
     sides, edges, traces). Words and the shared path stay ink, the page's
     own violet ink by day (the wine #211318 it kept read warmer than every
     word round it). */
  --s-ink: var(--ink);
  --s-ground: var(--surface);
  --s-ember: var(--home-ember);
  --s-doctrine: var(--home-ice);
  --s-rail: rgba(25, 21, 32, 0.5);
  --s-rail-edge: rgba(25, 21, 32, 0.62);
  --s-chrome: rgba(25, 21, 32, 0.34);
  --s-ghost: rgba(25, 21, 32, 0.26);
  --s-trace-hot: rgba(25, 21, 32, 0.86);
  --s-text: rgba(25, 21, 32, 0.74);
  --s-faint: rgba(25, 21, 32, 0.52);
  --s-grey: rgba(25, 21, 32, 0.22);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --home-ember: #e18a79;
    --home-ice: #97c1df;
    --weave-red: #b84e45;
    --weave-azure: #4d7fa9;
    --weave-red-glow: #e67b6d;
    --weave-azure-glow: #93c5e6;
    --home-line: rgba(242, 230, 212, 0.09);
    --home-line-strong: rgba(242, 230, 212, 0.16);
    --home-card: color-mix(in srgb, var(--surface) 70%, transparent);
    --home-film-shadow: 0 22px 50px -28px rgba(0, 0, 0, 0.7);
    --u-problem: #ece0cf;
    --u-claim: #a29dac;
    --u-paper: #85818e;
    --u-paper-short: #d9a84e;
    --u-paper-long: #a98fd6;
    --u-paper-expository: #1daa8d;
    --u-document: #94909e;
    --u-module: #847e8f;
    --u-object: #a7a0b6;
    --u-plate: rgba(242, 230, 212, 0.05);
    --u-edge: rgba(242, 230, 212, 0.14);
    --u-edge-hot: rgba(151, 193, 223, 0.7);
    --u-halo: rgba(242, 230, 212, 0.12);
    --u-rim: rgba(12, 8, 16, 0.55);
    --s-rail: rgba(242, 230, 212, 0.48);
    --s-rail-edge: rgba(242, 230, 212, 0.6);
    --s-chrome: rgba(242, 230, 212, 0.36);
    --s-ghost: rgba(242, 230, 212, 0.28);
    --s-trace-hot: rgba(242, 230, 212, 0.9);
    --s-text: rgba(242, 230, 212, 0.76);
    --s-faint: rgba(242, 230, 212, 0.54);
    --s-grey: rgba(242, 230, 212, 0.26);
  }
}
:root[data-theme="dark"] {
  --home-ember: #e18a79;
  --home-ice: #97c1df;
  --weave-red: #b84e45;
  --weave-azure: #4d7fa9;
  --weave-red-glow: #e67b6d;
  --weave-azure-glow: #93c5e6;
  --home-line: rgba(242, 230, 212, 0.09);
  --home-line-strong: rgba(242, 230, 212, 0.16);
  --home-card: color-mix(in srgb, var(--surface) 70%, transparent);
  --home-film-shadow: 0 22px 50px -28px rgba(0, 0, 0, 0.7);
  --u-problem: #ece0cf;
  --u-claim: #a29dac;
  --u-paper: #85818e;
  --u-paper-short: #d9a84e;
  --u-paper-long: #a98fd6;
  --u-paper-expository: #1daa8d;
  --u-document: #94909e;
  --u-module: #847e8f;
  --u-object: #a7a0b6;
  --u-plate: rgba(242, 230, 212, 0.05);
  --u-edge: rgba(242, 230, 212, 0.14);
  --u-edge-hot: rgba(151, 193, 223, 0.7);
  --u-halo: rgba(242, 230, 212, 0.12);
  --u-rim: rgba(12, 8, 16, 0.55);
  --s-rail: rgba(242, 230, 212, 0.48);
  --s-rail-edge: rgba(242, 230, 212, 0.6);
  --s-chrome: rgba(242, 230, 212, 0.36);
  --s-ghost: rgba(242, 230, 212, 0.28);
  --s-trace-hot: rgba(242, 230, 212, 0.9);
  --s-text: rgba(242, 230, 212, 0.76);
  --s-faint: rgba(242, 230, 212, 0.54);
  --s-grey: rgba(242, 230, 212, 0.26);
}


body::before { content: none; }


.site-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 0.15rem 0.2rem; }
.docs-topbar__links.site-nav { gap: 0.15rem 0.2rem; }

.site-header nav.site-nav { gap: 0.15rem 0.2rem; }
.site-header nav.site-nav a,
.docs-topbar__links.site-nav a {
  padding: 0.42rem 0.72rem; border-radius: var(--r-pill);
  font-size: 0.93rem; color: var(--ink-soft);
  transition: color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);
}
.site-header nav.site-nav a:hover,
.docs-topbar__links.site-nav a:hover {
  color: var(--ink); text-decoration: none;
  background: color-mix(in srgb, var(--ink) 7%, transparent);
}
.site-header nav.site-nav a[aria-current],
.docs-topbar__links.site-nav a[aria-current] {
  color: var(--ink);
  background: color-mix(in srgb, var(--home-ember) 13%, transparent);
}
.site-header nav.site-nav .theme-toggle,
.docs-topbar__links.site-nav .theme-toggle { margin-left: 0.6rem; }


@media (max-width: 620px) {
  .site-header nav.site-nav,
  .docs-topbar__links.site-nav { justify-content: space-between; column-gap: 0; }
  .site-header nav.site-nav a,
  .docs-topbar__links.site-nav a { padding: .5rem .25rem; font-size: .8125rem; }
}


.home .wrap { width: min(var(--home-max), calc(100% - 40px)); }
.home .site-header { background: var(--page); border-bottom-color: var(--home-line); }

.home .site-header.is-flowing { position: static; }
@media (max-width: 620px) {
  html:not(.scripting) .home .site-header { position: static; }
}
.home .site-header__inner { width: min(1320px, calc(100% - 40px)); min-height: 58px; }

@media screen {
  html:has(> body.home) { scroll-padding-top: calc(var(--home-header-h, 59px) + 8px); }
}
@media screen and (max-width: 620px) {
  html:has(> body.home) { scroll-padding-top: calc(var(--home-header-h, 92px) + 8px); }
}


.plait {
  position: absolute; top: 0; left: 0; width: 100%;
  pointer-events: none; z-index: -1;
  opacity: 0; transition: opacity 900ms var(--ease-out);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 9%, #000 91%, transparent 100%);
}
html.plait-live .plait { opacity: 1; }
.plait > canvas { display: block; }



.home-hero { position: relative; padding: clamp(26px, 5vh, 64px) 0 0; }

.home-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.home-hero__aside { margin-top: 1.7rem; }

.home-hero__title {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(3.6rem, 8.2vw, 8rem); line-height: 0.86; letter-spacing: -0.042em;
  margin: 0 0 0.95rem -0.04em; color: var(--ink);
  font-kerning: normal; font-feature-settings: "kern", "liga";
}
.home-hero__lede {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(1.4rem, 2.15vw, 1.9rem); line-height: 1.24; letter-spacing: -0.006em;
  color: var(--ink); max-width: 46ch; text-wrap: balance;
}
.home-hero__why {
  margin-top: 1rem; max-width: 62ch;
  font-size: 1.06rem; line-height: 1.6; color: var(--ink-soft);
}
.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem; }
.home-hero__actions .btn { padding: 0.74rem 1.3rem; font-size: 0.98rem; border-radius: var(--r-pill); }
.home-hero__by { margin-top: 1.4rem; font-size: 0.84rem; color: var(--faint); }

.home main .home-hero__lede { text-wrap: balance; }


.home-film {
  display: grid; grid-template-columns: clamp(132px, 12vw, 168px) minmax(0, 1fr);
  align-items: center; column-gap: 1rem;
  margin: 1.4rem 0 0; padding-top: 1rem; border-top: 1px solid var(--home-line);
}
.home-film__frame {
  position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: 6px; background: #0d0a12;
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-film__frame img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  
  filter: saturate(0.8);
  transition: transform 700ms var(--ease-out), filter var(--motion-ui) var(--ease-out);
}
.home-film__frame:hover img { transform: scale(1.018); filter: saturate(1) brightness(1.04); }
.home-film__play, .home-video__play {
  position: absolute; left: 50%; top: 50%; translate: -50% -50%;
  width: 58px; height: 58px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.38), 0 10px 30px -10px rgba(0, 0, 0, 0.6);
  transition: transform var(--motion-ui) var(--ease-out), background-color var(--motion-ui) var(--ease-out);
}
.home-film__play::after, .home-video__play::after {
  content: ""; position: absolute; left: 54%; top: 50%; translate: -50% -50%;
  border-left: 15px solid #fff; border-top: 9.5px solid transparent; border-bottom: 9.5px solid transparent;
}
.home-film__frame:hover .home-film__play, .home-video__frame:hover .home-video__play {
  transform: scale(1.06); background: rgba(255, 255, 255, 0.24);
}

@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  
  :root .video-card__play, :root .video-card__duration, :root .video-card__pending,
  :root .home-film__play, :root .home-video__play,
  :root .home-film__frame:hover .home-film__play, :root .home-video__frame:hover .home-video__play,
  :root .home-universe__open, :root .home-atlas__edge, :root .explorer-tool {
    -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--page);
  }
  :root .home-film__play::after, :root .home-video__play::after { border-left-color: var(--ink); }
}
.home-film__play { width: 34px; height: 34px; }
.home-film__play::after { border-left-width: 9px; border-top-width: 5.5px; border-bottom-width: 5.5px; }
.home-film__caption { min-width: 0; display: grid; gap: 0.2rem; overflow-wrap: anywhere; }
.home-film__title { font-weight: 600; color: var(--ink); }
.home-film__meta { font-size: 0.86rem; line-height: 1.45; color: var(--muted); }
.home-film__title::after { content: " \2197"; color: var(--faint); font-weight: 400; }
.home-film .home-video__duration { right: 0.35rem; bottom: 0.35rem; padding: 0.05rem 0.35rem; font-size: 0.7rem; }


.home-weave { height: clamp(70px, 9vh, 100px); margin-top: clamp(10px, 2vh, 24px); }

.home-funnel { flex: 1 1 520px; max-width: 920px; min-width: 0; }
.home-funnel__steps {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 0.9rem;
  margin: 0; padding: 0; list-style: none; text-align: center;
}
.home-funnel__steps a {
  position: relative; display: grid; justify-items: center; gap: 0.12rem;
  color: var(--ink); text-decoration: none;
}
.home-funnel__steps a::after { content: ""; position: absolute; inset: -0.35rem -0.5rem; border-radius: 12px; }
.home-funnel__name {
  font-family: var(--font-serif); font-size: clamp(1.06rem, 1.25vw, 1.2rem); line-height: 1.15;
  transition: color var(--motion-fast) var(--ease-out);
}
.home-funnel__what { font-size: 0.84rem; line-height: 1.3; color: var(--muted); text-wrap: balance; }
.home-funnel__steps a:hover .home-funnel__name { color: var(--home-ember); }
.home-funnel__steps a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px; }

.home-funnel__steps a[data-link-kind="exogenous"] .home-funnel__name { position: relative; color: var(--link-ext); }

.home-funnel__steps a[data-link-kind="exogenous"] .home-funnel__name::after {
  content: "\2197"; position: absolute; left: 100%; top: 0.12em; margin-left: 0.16em; font-size: 0.8em; line-height: 1;
}


.home-band { padding: clamp(84px, 12vh, 132px) 0 0; }

.home-band.home-maths { padding-top: clamp(16px, 2.6vh, 28px); }
.home-band h2, .home-head h2 {
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.016em;
  margin: 0 0 1.05rem;
}
.home-split {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(36px, 5.5vw, 84px); align-items: center;
}
.home-split--mirror { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.home-split--mirror .home-split__figure { order: -1; }
.home-split__text > p:not([class]) {
  max-width: 46ch; font-size: 1.04rem; line-height: 1.66; color: var(--ink-soft);
}
.home-split__text > p:not([class]) + p:not([class]) { margin-top: 0.85rem; }
.home-split__figure { margin: 0; }



.home-problems {
  list-style: none; margin: 1.9rem 0 0; padding: 0;
  display: grid; grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--home-line);
}
.home-problem { border-bottom: 1px solid var(--home-line); }
.home-problem > a {
  display: grid; grid-template-columns: 3.6rem minmax(0, 1fr) auto; column-gap: 0.9rem;
  align-items: baseline; padding: 0.62rem 0.2rem; color: var(--ink); text-decoration: none;
  border-radius: 6px; transition: background-color var(--motion-fast) var(--ease-out);
}
.home-problem > a:hover { background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
.home-problem__num {
  font-family: var(--font-serif); font-size: 0.98rem; line-height: 1.3;
  font-variant-numeric: lining-nums tabular-nums; color: var(--faint);
}

.home-problem__title { font-size: 1rem; line-height: 1.4; transition: color var(--motion-fast) var(--ease-out); }
.home-problem__status { font-size: 0.875rem; color: var(--muted); text-align: right; max-width: 10rem; }
.home-problem:not([data-problem-status="open"]) .home-problem__status { color: var(--home-ember); }
.home-problems__note { margin-top: 1rem; max-width: 60ch; font-size: 0.9rem; line-height: 1.55; color: var(--muted); }
.home-problem > a:hover .home-problem__title,
.home-problem > a:focus-visible .home-problem__title { color: var(--home-ember); }

@media (max-width: 560px) {
  .home-problem > a { grid-template-columns: 3.2rem minmax(0, 1fr); row-gap: 0.1rem; }
  .home-problem__status { grid-column: 2; text-align: left; max-width: none; }
}


.home-universe {
  position: relative; aspect-ratio: 1.08 / 1; overflow: hidden;
  
  border-radius: 12px;
  background: var(--home-card);
  box-shadow: 0 0 0 1px var(--home-line);
}

.home-universe { display: flex; flex-direction: column; }
.home-universe__head {
  flex: none; position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.2rem 1.4rem;
  padding: 0.95rem 1.15rem 0;
}
.home-universe__legend {
  margin: 0; max-width: 64ch; text-wrap: pretty;
  font-size: 0.84rem; line-height: 1.45; color: var(--muted);
}
.home-universe__legend i { font-family: var(--font-serif); font-size: 1.08em; color: var(--ink-soft); }

.home-universe__specimen { font-family: var(--font-serif); font-size: 1.04em; color: var(--ink-soft); white-space: nowrap; }
.home-universe__specimen i { color: inherit; }
.home-universe canvas {
  position: relative; flex: 1 1 0; min-height: 0; width: 100%; margin-bottom: 0.55rem;
  display: block; cursor: pointer;
}
.home-universe__caption {
  flex: none; position: relative; margin: 0 1.15rem 0.95rem;
  display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem;
  pointer-events: none;
}
.home-universe .universe-caption {
  margin: 0; min-height: 1.4em; max-width: 34ch;
  font-size: 0.84rem; line-height: 1.4; color: var(--muted);
}

.home-universe .universe-captionslot { flex: 1 1 auto; min-width: 0; position: relative; }
.home-universe .universe-captionslot > .universe-caption { position: absolute; left: 0; bottom: 0; }
.home-universe .universe-key {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 1rem;
  margin: 0; padding: 0; list-style: none;
  
  font-size: 0.875rem; line-height: 1.4; color: var(--muted);
  transition: opacity 240ms var(--ease-emph) 200ms, visibility 0s linear 200ms;
}
.home-universe .universe-key.is-out, .home-universe.uc-reading .universe-key {
  opacity: 0; visibility: hidden; transition: none;
}
.home-universe .universe-key__item {
  display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap;
  position: relative; isolation: isolate; pointer-events: auto;
}

.home-universe .universe-key__item::before {
  content: ""; position: absolute; z-index: -1; inset: -0.12rem -0.35rem;
  border-radius: 0.3rem; background: var(--home-line);
  opacity: 0; transform: scale(0.97);
  transition: opacity 140ms var(--ease-out), transform 190ms var(--ease-emph);
  pointer-events: none;
}

.home-universe .universe-key__mark {
  position: relative; flex: none; width: 0.6rem; height: 0.6rem; border-radius: 50%;
  transition: transform 190ms var(--ease-emph);
}
.home-universe .universe-key__mark::before {
  content: ""; position: absolute; inset: -0.2rem; border-radius: inherit;
  border: 1px solid var(--key-ink, var(--faint)); opacity: 0; transform: scale(0.65);
  transition: opacity 140ms var(--ease-out), transform 220ms var(--ease-emph);
}
.home-universe .universe-key__mark--replayed { --key-ink: var(--u-integration); }
.home-universe .universe-key__mark--lean { --key-ink: var(--u-statement); }
.home-universe .universe-key__mark--claim { --key-ink: var(--u-claim); }
.home-universe .universe-key__mark--short { --key-ink: var(--u-paper-short); }
.home-universe .universe-key__mark--long { --key-ink: var(--u-paper-long); }
.home-universe .universe-key__mark--expository { --key-ink: var(--u-paper-expository); }
@media (hover: hover) and (pointer: fine) {
  .home-universe .universe-key__item:hover { color: var(--ink); }
  .home-universe .universe-key__item:hover::before { opacity: 1; transform: none; }
  .home-universe .universe-key__item:hover .universe-key__mark { transform: scale(1.12); }
  .home-universe .universe-key__item:hover .universe-key__mark::before { opacity: 0.45; transform: none; }
}
.home-universe .universe-key__mark--replayed { background: var(--u-integration); }
.home-universe .universe-key__mark--lean { background: var(--u-statement); }
.home-universe .universe-key__mark--lean::after { content: ""; position: absolute; inset: 31%; border-radius: 50%; background: var(--surface); }
.home-universe .universe-key__mark--none { box-shadow: inset 0 0 0 1px var(--faint); opacity: 0.8; }
.home-universe .universe-key__mark--claim { background: var(--u-claim); }

.home-universe .universe-key__mark--short,
.home-universe .universe-key__mark--long,
.home-universe .universe-key__mark--expository { border-radius: 2px; }
.home-universe .universe-key__mark--short { box-shadow: inset 0 0 0 1.5px var(--u-paper-short); background: color-mix(in srgb, var(--u-paper-short) 30%, transparent); }
.home-universe .universe-key__mark--long { box-shadow: inset 0 0 0 1.5px var(--u-paper-long); background: color-mix(in srgb, var(--u-paper-long) 30%, transparent); }

.home-universe .universe-key__mark--expository { box-shadow: inset 0 0 0 1.5px var(--u-paper-expository); background: color-mix(in srgb, var(--u-paper-expository) 30%, transparent); }
@media (prefers-reduced-motion: reduce) {
  .home-universe .universe-key { transition: opacity 0s linear 200ms, visibility 0s linear 200ms; }
  .home-universe .universe-key__item::before,
  .home-universe .universe-key__mark,
  .home-universe .universe-key__mark::before { transition: none; }
  .home-universe .universe-key__item:hover::before,
  .home-universe .universe-key__item:hover .universe-key__mark,
  .home-universe .universe-key__item:hover .universe-key__mark::before { transform: none; }
}
.home-universe__open {
  pointer-events: auto; flex: none;
  font-size: 0.86rem; font-weight: 600; color: var(--ink);
  padding: 0.4rem 0.8rem; border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--page) 70%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.home-universe__open:hover { text-decoration: none; box-shadow: 0 0 0 1px var(--home-ember); }

.home-universe__repo {
  flex: none; font-size: 0.84rem; font-weight: 500; color: var(--ink-soft);
  text-decoration: underline; text-decoration-color: var(--home-line-strong);
  text-decoration-thickness: 1px; text-underline-offset: 0.28em;
}
.home-universe__repo:hover { color: var(--ink); text-decoration-color: currentColor; }
.home-universe.is-unavailable canvas { display: none; }


.home-atlas {
  position: relative; --atlas-move: 620ms; --atlas-top: clamp(4px, 0.9vh, 10px);
  --atlas-bar-h: 40px; --atlas-bar-gap: clamp(22px, 3vh, 34px);
  
  --atlas-ease: cubic-bezier(0.45, 0, 0.2, 1);
}
.home-band.home-atlas { padding-top: var(--atlas-top); }

.home-atlas__bar {
  position: relative; z-index: 4;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
  gap: clamp(36px, 5vh, 60px) 2rem; min-height: var(--atlas-bar-h); margin-bottom: var(--atlas-bar-gap);
}

.home-atlas__bar > .home-funnel { flex-basis: 100%; }
.home-atlas__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem; margin-left: auto; min-width: 0; max-width: 100%; }
.home-atlas__expand {
  display: inline-flex; align-items: center; gap: 0.5rem;
  min-height: 40px; max-width: 100%; padding: 0.4rem 1.05rem 0.4rem 0.9rem; border-radius: var(--r-pill);
  font-size: 0.88rem; font-weight: 600; line-height: 1.2; color: var(--ink); text-decoration: none;
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
  transition: box-shadow var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);
}
.home-atlas__expand > span { min-width: 0; text-wrap: balance; }
.home-atlas__expand svg {
  width: 15px; height: 15px; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
  color: var(--home-ember);
}
.home-atlas__expand:hover, .home-atlas__expand:focus-visible { text-decoration: none; box-shadow: 0 0 0 1px var(--home-ember); }
.home-atlas__expand:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.home-atlas.is-live .home-atlas__expand-which {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.home-atlas.is-live:not([data-atlas-view="system"]) .home-atlas__expand[data-atlas-for="system"],
.home-atlas.is-live[data-atlas-view="system"] .home-atlas__expand[data-atlas-for="mathematics"] { display: none; }
.home-atlas__switch {
  position: relative; isolation: isolate;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); max-width: 100%; padding: 3px;
  border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-atlas__tab {
  position: relative; z-index: 1; min-width: 0; min-height: 34px; padding: 0.38rem 1.15rem; overflow-wrap: anywhere;
  border: 0; border-radius: var(--r-pill); background: transparent; cursor: pointer;
  font: inherit; font-size: 0.88rem; font-weight: 600; line-height: 1.2; color: var(--muted);
  transition: color var(--motion-fast) var(--ease-out);
}
.home-atlas__tab[aria-selected="true"] { color: var(--ink); }
.home-atlas__tab:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .home-atlas__tab:hover { color: var(--ink); }
}

.home-atlas__thumb {
  position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px);
  border-radius: var(--r-pill); pointer-events: none;
  background: color-mix(in srgb, var(--ink) 8%, var(--surface));
  box-shadow: 0 0 0 1px var(--home-line-strong);
  transition: transform var(--atlas-move) var(--atlas-ease);
}
.home-atlas[data-atlas-view="system"] .home-atlas__thumb { transform: translateX(100%); }
.home-atlas:not(.is-live) .home-atlas__switch { display: none; }

.home-atlas__viewport {
  position: relative;
  overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.home-atlas__viewport::-webkit-scrollbar { display: none; }

.home-atlas.is-live .home-atlas__viewport { overflow-x: clip; overflow-y: visible; touch-action: pan-y; }
.home-atlas__track {
  display: flex; align-items: stretch;
  transition: transform var(--atlas-move) var(--atlas-ease);
}
.home-atlas.is-instant .home-atlas__track,
.home-atlas.is-still .home-atlas__track,
.home-atlas.is-still .home-atlas__thumb { transition: none; }
.home-atlas__slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; scroll-snap-align: start; }
.home-atlas.is-live .home-atlas__slide:not(.is-shown) { visibility: hidden; }


.home-atlas__edge {
  position: absolute; z-index: 3; top: 50%;
  display: grid; justify-items: center; align-content: center; gap: 0.55rem;
  width: 38px; padding: 0.95rem 0 1.05rem; border: 0; border-radius: 19px; cursor: pointer;
  font: inherit; color: var(--ink);
  background: color-mix(in srgb, var(--page) 76%, transparent);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  box-shadow: 0 0 0 1px var(--home-line-strong);
  transform: translateY(-50%);
  transition: opacity 200ms var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);
}

.home-atlas__edge--prev { left: max(6px, calc((100% - min(var(--home-max), 100% - 40px)) / 2 - 62px)); }
.home-atlas__edge--next { right: max(6px, calc((100% - min(var(--home-max), 100% - 40px)) / 2 - 62px)); }
.home-atlas__edge-arrow { font-size: 1.05rem; line-height: 1; }
.home-atlas__edge-label {
  writing-mode: vertical-rl; font-size: 0.74rem; font-weight: 600; line-height: 1;
  color: var(--muted); transition: color var(--motion-fast) var(--ease-out);
}
.home-atlas__edge--prev .home-atlas__edge-label { transform: rotate(180deg); }
.home-atlas__edge.is-away { opacity: 0; pointer-events: none; transition-duration: 140ms; }

.home-atlas.is-moving .home-atlas__edge { opacity: 0; pointer-events: none; transition-duration: 90ms; }
@media (hover: hover) and (pointer: fine) {
  .home-atlas__edge:hover { box-shadow: 0 0 0 1px var(--home-ember); }
  .home-atlas__edge:hover .home-atlas__edge-label { color: var(--ink); }
}
.home-atlas:not(.is-live) .home-atlas__edge { display: none; }
@media (max-width: 1100px) {
  .home-atlas__edge { display: none; }
}

@media (min-width: 961px) {
  .home-atlas .home-split { align-items: start; }
  .home-atlas .home-split--system {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(36px, 5.5vw, 84px);
    align-items: stretch; height: 100%;
  }
  .home-atlas .home-split--system .home-split__text { justify-content: flex-start; }
  .home-atlas .home-universe {
    align-self: stretch; aspect-ratio: auto; min-height: 460px;
    max-height: calc(100svh - var(--topbar-h, 58px) - var(--atlas-bar-h) - var(--atlas-bar-gap) - 24px);
  }
  .home-atlas .home-system .sm-mount, .home-atlas .home-system .sm, .home-atlas .home-system .sm-area { min-height: 0; }
  
  .home-atlas .home-system .sm-keyslot { flex-basis: 100%; }
}

@media (max-width: 1509px) {
  .home-atlas__edge { display: none; }
}


.home-split--system {
  grid-template-columns: minmax(0, 37fr) minmax(0, 63fr);
  gap: clamp(28px, 3vw, 48px); align-items: stretch;
}
.home-split--system .home-split__text { display: flex; flex-direction: column; justify-content: center; }
.home-system {
  --sm-ground: color-mix(in srgb, var(--s-ground, var(--surface)) 72%, var(--page));
  --sm-card: color-mix(in srgb, var(--ink) 3.5%, var(--sm-ground));
  --sm-rule: color-mix(in srgb, var(--ink) 15%, transparent);
  --sm-soft: color-mix(in srgb, var(--ink) 6%, transparent);
  position: relative; display: flex; flex-direction: column; min-width: 0; margin: 0; min-height: var(--sm-floor, 0px);
  border-radius: 12px; background: var(--sm-ground); box-shadow: 0 0 0 1px var(--home-line);
}
.sm-mount { position: relative; flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.sm-fallback { margin: 0; padding: 1.4rem 1.6rem; max-width: 46ch; font-size: 1rem; line-height: 1.55; color: var(--muted); }
.home-system.is-ready .sm-fallback { display: none; }

.home-system.is-parked { max-height: 0; min-height: 0; overflow: hidden; visibility: hidden; box-shadow: none; }
.home-system.is-parked::after { content: none; }
.home-system__caption {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 0.6rem 1.4rem;
  padding: 0.1rem 1.4rem 1rem;
}
.home-system__caption:empty { display: none; }
.sm-keyslot { flex: 1 1 22rem; min-width: 0; }


.home-universe::after, .home-system::after {
  content: ""; position: absolute; inset: 10px; z-index: 2; pointer-events: none;
  --mark: color-mix(in srgb, var(--ink) 30%, transparent);
  background:
    linear-gradient(var(--mark), var(--mark)) top left / 13px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top left / 1px 13px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top right / 13px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top right / 1px 13px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom left / 13px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom left / 1px 13px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 13px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 1px 13px no-repeat;
}


.home-families {
  list-style: none; margin: 1.9rem 0 0; padding: 0;
  display: grid; grid-template-columns: minmax(0, 1fr);
  border-top: 1px solid var(--home-line);
}
.home-family { position: relative; border-bottom: 1px solid var(--home-line); }
.home-family > a {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 0.9rem;
  align-items: baseline; padding: 0.62rem 0.2rem; color: var(--ink); text-decoration: none;
  border-radius: 6px; transition: background-color var(--motion-fast) var(--ease-out);
}
.home-family__name { font-size: 1rem; line-height: 1.4; transition: color var(--motion-fast) var(--ease-out); }
.home-family__count {
  min-width: 2ch; text-align: right;
  font-family: var(--font-serif); font-size: 1rem; line-height: 1.3;
  font-variant-numeric: lining-nums tabular-nums; color: var(--faint);
  transition: color var(--motion-fast) var(--ease-out);
}
.home-family > a:focus-visible .home-family__name,
.home-family.is-lit .home-family__name,
.home-family.is-lit .home-family__count { color: var(--home-ember); }
.home-family.is-lit > a { background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
.home-family::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: var(--home-ember); pointer-events: none;
  transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform 180ms var(--ease-exit);
}
.home-family:focus-within::after,
.home-family.is-lit::after {
  transform: scaleX(1); transform-origin: 0 50%;
  transition: transform var(--motion-panel) var(--ease-emph);
}
@media (hover: hover) and (pointer: fine) {
  .home-family > a:hover { background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
  .home-family > a:hover .home-family__name { color: var(--home-ember); }
  .home-family:hover::after {
    transform: scaleX(1); transform-origin: 0 50%;
    transition: transform var(--motion-panel) var(--ease-emph);
  }
}


.sm {
  position: relative; flex: 1 1 auto; display: flex; flex-direction: column;
  padding: 1rem 1.4rem 0.3rem; color: var(--ink); font-size: 1rem; line-height: 1.4;
}
.sm button { font: inherit; color: inherit; }
.sm button:focus-visible, .sc button:focus-visible, .sc a:focus-visible, .sc__scroll:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
.sm-label { font-size: 1rem; }
.sm-note { font-size: 0.875rem; }
.sm-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.3rem 1.2rem; }
.sm-crumbs { min-width: 0; }
.sm-crumbs__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 0.15rem;
}
.sm-crumbs__item { display: inline-flex; align-items: baseline; min-width: 0; }
.sm-crumbs__item + .sm-crumbs__item::before { content: "\203A"; margin: 0 0.55rem; color: var(--faint); }
.sm-crumbs__go {
  appearance: none; background: none; border: 0; margin: 0 -0.2rem; padding: 0.12rem 0.2rem; min-height: 24px;
  color: var(--muted); cursor: pointer; border-radius: 4px; text-align: left;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.22em;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
  transition: color var(--motion-fast) var(--ease-out), text-decoration-color var(--motion-fast) var(--ease-out);
}
.sm-crumbs__go:hover { color: var(--ink); text-decoration-color: currentColor; }
.sm-crumbs__here { font-weight: 600; color: var(--ink); }
.sm-back {
  appearance: none; background: none; border: 0; margin: 0; padding: 0.12rem 0.25rem; min-height: 24px;
  font-size: 0.9375rem; color: var(--muted); cursor: pointer; border-radius: 4px; white-space: nowrap;
  transition: color var(--motion-fast) var(--ease-out);
}
.sm-back[hidden] { display: none; }
.sm-back:hover { color: var(--ink); }
.sm-back__mark { display: inline-block; transition: transform var(--motion-fast) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .sm-back:hover .sm-back__mark { transform: translateX(-2px); } }
.sm-caption { margin: 0.4rem 0 0; max-width: 88ch; font-size: 1rem; line-height: 1.5; color: var(--ink-soft); text-wrap: pretty; }
.sm-area { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; margin-top: 0.3rem; }
.sm-body { position: relative; }
.sm-live, .sm-measure {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.sm-readout { position: absolute; z-index: 6; pointer-events: none; margin: 0; color: var(--ink); }
.sm-readout[hidden] { display: none; }
.sm-readout__head {
  margin: 0; display: flex; align-items: baseline; gap: 0.6rem; min-width: 0;
  line-height: 1.5; white-space: nowrap; overflow: hidden;
}
.sm-readout__title {
  min-width: 0; overflow: hidden; text-overflow: ellipsis;
  font-family: var(--font-serif); font-size: 1rem; font-weight: 600; color: var(--ink);
}
.sm-readout__kind { flex: none; font-size: 0.875rem; color: var(--muted); }
.sm-readout__text {
  margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink-soft); text-wrap: pretty;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--sm-readout-lines, 1); overflow: hidden;
}
.sm-readout__hint { margin: 0; font-size: 0.875rem; line-height: 1.5; color: var(--home-ember); }
.sm:not(.sm--explorer) .sm-readout {
  left: var(--sm-readout-x, 1.4rem); top: var(--sm-readout-y, 2.5rem);
  width: var(--sm-readout-w, auto); height: var(--sm-readout-h, auto); overflow: hidden;
}
.sm-caption.is-read-over { visibility: hidden; }
.sm--explorer .sm-readout {
  
  max-width: min(30rem, max(16rem, calc(50% - 110px)), calc(100% - 36px)); padding: 0.5rem 0.85rem 0.6rem; border-radius: 4px;
  background: color-mix(in oklab, var(--ink) 4%, var(--page));
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.sm--explorer .sm-readout--tl { left: 18px; top: 14px; }
.sm--explorer .sm-readout--br { right: 116px; bottom: 18px; }
/* Focus: frames what is chosen again once the reader has fitted or moved
   the map away from it; it keeps its place among the controls while it
   waits, so they never shift. */
.explorer-tool--focus.is-idle { visibility: hidden; }

.sm-inset {
  position: absolute; right: 14px; bottom: 14px; z-index: 5; width: 88px; height: 88px; pointer-events: none;
  border-radius: 6px; background: color-mix(in srgb, var(--page) 88%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
  opacity: 0; transform: translateY(4px);
  transition: opacity var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);
}
.sm-inset.is-shown { opacity: 1; transform: none; }
.sm-inset__svg { display: block; width: 88px; height: 88px; overflow: hidden; border-radius: 6px; }
.sm-inset__arc { fill: none; stroke: color-mix(in srgb, var(--ink) 34%, transparent); stroke-width: 3.2; }
.sm-inset__arc.is-self { stroke: var(--s-ember); }
.sm-inset__core { fill: none; stroke: color-mix(in srgb, var(--s-doctrine) 72%, transparent); stroke-width: 1.3; }
.sm-inset__dot { fill: var(--s-ember); opacity: 0; }
.sm-inset__dot.is-rule { fill: var(--s-doctrine); }
.sm-inset__dot.is-shown { opacity: 1; }
.sm-inset__view {
  fill: color-mix(in srgb, var(--ink) 8%, transparent); stroke: var(--ink); stroke-opacity: 0.8; stroke-width: 1;
  vector-effect: non-scaling-stroke; transform-origin: 0 0;
  transition: transform 460ms cubic-bezier(0.3, 0.1, 0.12, 1);
}
.sm-inset.is-live .sm-inset__view { transition: none; }

@media (max-width: 899px) { .sm-inset { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .sm-inset, .sm-inset__view { transition: none; }
}
.sm--explorer .sm-readout__head { flex-wrap: wrap; white-space: normal; row-gap: 0; }
.sm--explorer .sm-readout__text { font-size: 0.9375rem; -webkit-line-clamp: 4; }
@media (prefers-reduced-motion: no-preference) {
  .sm-readout:not([hidden]) { animation: sm-tip-in 100ms var(--ease-out) both; }
}
@keyframes sm-tip-in { from { opacity: 0; } to { opacity: 1; } }


.sm-view { position: relative; }
.sm-view > .sm-body.is-leaving { position: absolute; left: 0; top: 0; width: 100%; pointer-events: none; }
.sm-body.is-moving { will-change: transform, opacity; transform-origin: 0 0; }

.sm-ring.is-camera {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 18px, #000 calc(100% - 18px), transparent),
                      linear-gradient(to bottom, transparent, #000 18px, #000 calc(100% - 18px), transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent, #000 18px, #000 calc(100% - 18px), transparent),
              linear-gradient(to bottom, transparent, #000 18px, #000 calc(100% - 18px), transparent);
  mask-composite: intersect;
}

.sm-glyph { display: block; overflow: visible; }



.sm-ring {
  display: block; overflow: visible; margin: 0 auto;
  
  -webkit-user-select: none; user-select: none;
  --sm-tone: color-mix(in oklab, var(--ink) 16%, var(--sm-ground, var(--surface)));
  --sm-fibre-rest: color-mix(in oklab, var(--s-ember) 46%, var(--sm-tone));
  --sm-fibre-dim: color-mix(in oklab, var(--s-ember) 26%, var(--sm-tone));
  --sm-fibre-under: color-mix(in oklab, var(--s-ember) 38%, var(--sm-tone));
}

.sm-tick { fill: none; stroke: var(--ink); stroke-width: 1; opacity: 0.4; transition: opacity var(--motion-fast) var(--ease-out); }
.sm-tick--base { opacity: 0.26; }
.sm-tick--end { opacity: 0.66; }

.sm-bar { fill: none; stroke: var(--s-doctrine); stroke-width: 1.5; stroke-linecap: butt; opacity: 0.58; transition: opacity var(--motion-fast) var(--ease-out); }
.sm-cap { fill: none; stroke: var(--s-doctrine); stroke-width: 1.4; stroke-linecap: butt; opacity: 0.95; transition: opacity var(--motion-fast) var(--ease-out); }
.sm-cap--part { stroke-width: 1.1; opacity: 0.8; }

.sm-fibre { fill: var(--sm-fibre-rest); stroke: none; transition: fill var(--motion-ui, 240ms) var(--ease-out); }
.sm-fibre.is-under { visibility: hidden; }
.sm-route { fill: var(--s-ember); stroke: none; }
.sm-route.is-local { fill: color-mix(in oklab, var(--s-ember) 88%, var(--sm-ground, var(--surface))); }
.sm-route.is-preview { fill-opacity: 0.55; }

.sm-necklace { fill: none; stroke: var(--ink); stroke-width: 1; stroke-opacity: 0.13; }
.sm-span { fill: none; stroke: var(--s-doctrine); stroke-width: var(--sm-span, 0.9px); stroke-linecap: round; opacity: 0.72; transition: opacity var(--motion-fast) var(--ease-out); }
.sm-span.is-chord { opacity: 0.44; }
.sm-span--threat { stroke-dasharray: 2.2 2.4; }

.sm-rline { fill: none; stroke: var(--s-doctrine); stroke-width: var(--sm-az, 1px); stroke-linecap: butt; stroke-linejoin: round; }
.sm-rline.is-preview { opacity: 0.55; }

.sm-node { cursor: pointer; outline: none; }
.sm-node--comp { color: var(--s-ember); }
.sm-node--rule, .sm-node--centre { color: var(--s-doctrine); }
.sm-hit { fill: transparent; stroke: none; pointer-events: all; }
.sm-hit--band { fill: none; stroke: transparent; pointer-events: stroke; }

.sm-halo { fill: var(--sm-ground); stroke: none; }
.sm-node .sm-mark { transition: opacity var(--motion-fast) var(--ease-out); }

.sm-g--ring { fill: var(--sm-ground); stroke: currentColor; stroke-width: 1.45; }
.sm-g--dot { fill: currentColor; stroke: none; }
.sm-g--diamond { fill: var(--sm-ground); stroke: currentColor; stroke-width: 1.45; stroke-linejoin: miter; }
.sm-g--cross { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; }
.sm-focus-ring { fill: none; stroke: transparent; stroke-width: 1.6; pointer-events: none; }
.sm-focus-band { fill: none; stroke: transparent; pointer-events: none; }
.sm-node:focus-visible .sm-focus-ring { stroke: var(--accent); stroke-width: 2; }
.sm-node--fam:focus-visible .sm-focus-band { stroke: color-mix(in srgb, var(--accent) 22%, transparent); }
.sm-node.is-hover .sm-focus-ring { stroke: currentColor; opacity: 0.55; }

.sm-node.is-pulse .sm-focus-ring { stroke: currentColor; stroke-opacity: 0.9; stroke-width: 1.6; animation: sm-lock 260ms var(--ease-out, ease-out) both; }
@keyframes sm-lock { from { stroke-opacity: 0; stroke-width: 5; } to { stroke-opacity: 0.9; stroke-width: 1.6; } }
.sm-sector__name, .sm-sector__count, .sm-centre__label {
  paint-order: stroke; stroke: var(--sm-ground); stroke-width: 3px; stroke-linejoin: round;
}
.sm-sector__name { font-family: var(--font-serif); font-size: 16px; font-weight: 600; fill: var(--ink); letter-spacing: 0.01em; }
.sm-sector__count { font-family: var(--font-serif); font-size: 14px; font-variant-numeric: lining-nums tabular-nums; fill: var(--muted); letter-spacing: 0.02em; }
.sm-centre__label { font-family: var(--font-serif); font-size: 16px; font-weight: 600; fill: var(--s-doctrine); letter-spacing: 0.02em; }
.sm-node--fam.is-hover .sm-sector__name, .sm-node--fam.is-self .sm-sector__name { fill: var(--s-ember); }
.sm-node--centre.is-hover .sm-centre__label, .sm-node--centre.is-self .sm-centre__label { fill: var(--ink); }

.sm-focus-box { fill: none; stroke: transparent; pointer-events: none; }
.sm-node--head:focus-visible .sm-focus-box { stroke: var(--accent); stroke-width: 2; }

.sm-node--fam.is-covered text { visibility: hidden; }

.sm-rimname { font-family: var(--font-sans); font-size: 16px; fill: var(--ink-soft); transition: opacity var(--motion-fast) var(--ease-out); }
.sm-rimname--15 { font-size: 15px; }
.sm-rimname--14 { font-size: 14px; }
.sm-node--comp.is-hover .sm-rimname, .sm-node--comp.is-self .sm-rimname, .sm-node--comp.is-lit .sm-rimname { fill: var(--ink); }
.sm-node--comp.is-self .sm-rimname { font-weight: 600; }

.sm-ring.is-selecting .sm-fibre { fill: var(--sm-fibre-dim); }

.sm-ring.is-rule .sm-fibre { fill: var(--sm-fibre-under); }

.sm-ring.dims-rim .sm-node--comp:not(.is-lit):not(.is-self) { color: color-mix(in oklab, var(--s-ember) 30%, var(--sm-tone)); }
.sm-ring.dims-rim .sm-node--comp:not(.is-lit):not(.is-self) .sm-rimname { opacity: 0.42; }
.sm-ring.dims-core .sm-node--rule:not(.is-lit):not(.is-self) { color: color-mix(in oklab, var(--s-doctrine) 30%, var(--sm-tone)); }
.sm-ring.is-selecting .sm-necklace { stroke-opacity: 0.08; }
.sm-ring.is-selecting .sm-span:not(.is-lit) { opacity: 0.1; }

.sm-ring.is-selecting .sm-span.is-lit { opacity: 0.58; }
.sm-ring.is-rule .sm-span.is-lit { opacity: 1; stroke-width: calc(var(--sm-span, 0.9px) * 1.4); }

.sm-ring.is-doctrine .sm-span.is-lit { opacity: 0.9; stroke-width: calc(var(--sm-span, 0.9px) * 1.2); }
.sm-ring.is-doctrine .sm-span.is-lit.is-chord { opacity: 0.55; }
.sm-ring.is-selecting .sm-tick:not(.sm-tick--base):not(.sm-tick--end):not(.is-lit) { opacity: 0.16; }
.sm-ring.is-selecting .sm-tick.is-lit { opacity: 0.95; }
.sm-ring.is-selecting .sm-bar, .sm-ring.is-selecting .sm-cap { opacity: 0.2; }
.sm-ring.is-selecting .sm-node--fam:not(.is-self):not(.is-lit) .sm-sector__name { fill: var(--muted); }

.sm-reticle { fill: none; stroke: var(--ink); stroke-width: 1; stroke-linecap: square; shape-rendering: crispEdges; opacity: 0.92; }
.sm-reticle--full { stroke: var(--s-doctrine); stroke-width: 1.25; opacity: 1; }
.sm-reticle--part { stroke: var(--s-doctrine); opacity: 0.75; }

.sm-reticle--rim { shape-rendering: geometricPrecision; }

.sm-plate__box { fill: var(--sm-ground); stroke: var(--ink); stroke-opacity: 0.45; stroke-width: 1; shape-rendering: crispEdges; }
.sm-plate--self .sm-plate__box { stroke: var(--s-ember); stroke-opacity: 0.95; }

.sm-plate--full .sm-plate__box { stroke: var(--s-doctrine); stroke-opacity: 1; stroke-width: 1.25; }
.sm-plate--part .sm-plate__box { stroke: var(--s-doctrine); stroke-opacity: 0.8; stroke-dasharray: 4 3; }
.sm-plate__text { font-family: var(--font-serif); font-size: 16px; font-weight: 500; fill: var(--ink); }
.sm-plate--self .sm-plate__text { font-weight: 600; }

.sm-plate__go { font-family: var(--font-serif); font-size: 16px; fill: var(--s-ember); }
.sm-plate--go { cursor: pointer; }
.sm-plate__box { transition: fill var(--motion-fast) var(--ease-out), stroke-opacity var(--motion-fast) var(--ease-out); }
.sm-plate.is-hover .sm-plate__box, .sm-plate--go:hover .sm-plate__box {
  stroke-opacity: 1; fill: color-mix(in oklab, var(--s-ember) 9%, var(--sm-ground));
}
.sm-plate--go .sm-plate__go { transition: transform var(--motion-fast) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .sm-plate--go:hover .sm-plate__go { transform: translateX(2px); }
}
.sm-leader { fill: none; stroke: var(--ink); stroke-width: 1; opacity: 0.5; }

.sm-tag__box { fill: var(--sm-ground); stroke: var(--s-doctrine); stroke-width: 1; shape-rendering: crispEdges;
  transition: fill var(--motion-fast) var(--ease-out); }
.sm-tag__leader { fill: none; stroke: var(--s-doctrine); stroke-width: 1; opacity: 0.85; }
.sm-tag__kind { font-family: var(--font-sans); font-size: 14px; font-weight: 500; letter-spacing: 0.02em; fill: var(--home-ice); }
.sm-tag__title { font-family: var(--font-serif); font-size: 16px; font-weight: 600; fill: var(--ink); }
.sm-tag__go { font-family: var(--font-serif); font-size: 16px; fill: var(--home-ice); transition: transform var(--motion-fast) var(--ease-out); }
.sm-tag--go { cursor: pointer; }
.sm-tag--go:hover .sm-tag__box { fill: color-mix(in oklab, var(--s-doctrine) 10%, var(--sm-ground)); }
@media (hover: hover) and (pointer: fine) { .sm-tag--go:hover .sm-tag__go { transform: translateX(2px); } }

.sm-rname { font-family: var(--font-serif); font-size: 15px; font-weight: 500; fill: var(--home-ice);
  paint-order: stroke; stroke: var(--sm-ground); stroke-width: 4px; stroke-linejoin: round; }
.sm-rname__leader { fill: none; stroke: var(--s-doctrine); stroke-width: 1; opacity: 0.55; }
.sm-rname-g--hover .sm-rname { fill: var(--ink); }

.sm-fx { pointer-events: none; }
.sm-head { fill: none; stroke-linecap: round; }
.sm-head--red { stroke: color-mix(in oklab, var(--weave-red-glow) 58%, var(--ink)); }
.sm-head--azure { stroke: color-mix(in oklab, var(--weave-azure-glow) 58%, var(--ink)); }
.sm-answer { fill: none; stroke-width: 1.25; transform-box: fill-box; transform-origin: center; }
.sm-answer--red { stroke: var(--weave-red-glow); }
.sm-answer--azure { stroke: var(--weave-azure-glow); }
@media (prefers-reduced-motion: reduce) { .sm-fx { display: none; } }

.sm-hovers { pointer-events: none; }
.sm-plate--hover .sm-plate__box { stroke-opacity: 0.6; }

.sm-light .sm-wire, .sm-span { transition: opacity var(--motion-fast) var(--ease-out); }
.sm-ring.is-tracing .sm-light .sm-wire:not(.is-traced) { opacity: 0.2; }
.sm-ring.is-tracing .sm-span.is-lit:not(.is-traced) { opacity: 0.14; }
.sm-ring.is-tracing .sm-span.is-traced { opacity: 1; }
.sm-rname-g { transition: opacity var(--motion-fast) var(--ease-out); }
.sm-ring.is-tracing .sm-tags .sm-rname-g:not(.is-traced) { opacity: 0.4; }

.sm-ring.awaits-reveal .sm-rest, .sm-ring.awaits-reveal .sm-spans { opacity: 0; }

.sm-ring.awaits-reveal .sm-tick--base, .sm-ring.awaits-reveal .sm-necklace { opacity: 0; }


.sm-key { display: grid; gap: 0.3rem; color: var(--muted); }
.sm-key[hidden] { display: none; }
.sm-key__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.95rem; }
.sm-key__item { display: inline-flex; align-items: center; gap: 0.42rem; }
.sm-key__mark { display: inline-flex; line-height: 0; }
.sm-key__mark--comp { color: var(--s-ember); }
.sm-key__mark--rule { color: var(--s-doctrine); }
.sm-key__mark--sheaf { color: var(--s-ember); }

.sm-key__about { margin: 0.15rem 0 0; max-width: 80ch; font-size: 0.875rem; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.sm-key__line { display: inline-block; width: 18px; height: 2px; border-radius: 1px; }
.sm-key__line--red { background: var(--s-ember); }
.sm-key__line--azure { height: 1px; background: var(--s-doctrine); }
.sm-key__line--span { height: 1px; background: var(--s-doctrine); opacity: 0.8; }
.sm-key__line--k-runs { height: 2px; background: var(--s-ember); }
.sm-key__line--k-reads { height: 1.7px; background: repeating-linear-gradient(90deg, var(--s-ember) 0 5.5px, transparent 5.5px 8.5px); }
.sm-key__line--k-checks { height: 2.2px; background: repeating-linear-gradient(90deg, var(--s-ember) 0 2px, transparent 2px 4.8px); }
.sm-key__line--k-named, .sm-key__line--k-other { height: 1.5px; background: var(--s-ember); }
.sm-key__line--threat { height: 1px; background: repeating-linear-gradient(90deg, var(--s-doctrine) 0 2px, transparent 2px 4.6px); }
.sm-key__bar {
  display: inline-block; width: 12px; height: 13px;
  background:
    linear-gradient(var(--s-doctrine), var(--s-doctrine)) center bottom / 1.5px 10px no-repeat,
    linear-gradient(var(--ink), var(--ink)) center bottom / 7px 1px no-repeat;
}
.sm-key__cap {
  display: inline-block; width: 12px; height: 13px;
  background:
    linear-gradient(var(--s-doctrine), var(--s-doctrine)) center 2px / 6px 1.4px no-repeat,
    linear-gradient(var(--s-doctrine), var(--s-doctrine)) center bottom / 1.5px 8px no-repeat;
}
.sm-key__cap--part {
  background:
    linear-gradient(90deg, var(--s-doctrine) 0 2.2px, transparent 2.2px 3.8px, var(--s-doctrine) 3.8px) center 2px / 6px 1.1px no-repeat,
    linear-gradient(var(--s-doctrine), var(--s-doctrine)) center bottom / 1.5px 8px no-repeat;
}

.sm-key__weave {
  display: inline-block; width: 20px; height: 12px;
  background:
    linear-gradient(var(--s-doctrine), var(--s-doctrine)) center / 1.2px 12px no-repeat,
    linear-gradient(90deg, var(--s-ember) 0 6.6px, transparent 6.6px 13.4px, var(--s-ember) 13.4px) center / 20px 2px no-repeat;
}
.sm-key__reticle {
  display: inline-block; width: 13px; height: 13px; --mark: var(--s-doctrine);
  background:
    linear-gradient(var(--mark), var(--mark)) top left / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top left / 1px 4px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top right / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top right / 1px 4px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom left / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom left / 1px 4px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 1px 4px no-repeat;
}
.sm-key__reticle--part {
  background:
    linear-gradient(var(--mark), var(--mark)) top left / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) top left / 1px 4px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 4px 1px no-repeat,
    linear-gradient(var(--mark), var(--mark)) bottom right / 1px 4px no-repeat;
  opacity: 0.8;
}
.sm-key__more {
  appearance: none; border: 0; background: none; margin: 0 0 0 -0.3rem; padding: 0.1rem 0.3rem; min-height: 24px;
  border-radius: 6px; color: var(--ink-soft); cursor: pointer;
  text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 0.22em;
}
.sm-key__more::after { content: "\203A"; display: inline-block; margin-left: 0.3em; transition: transform var(--motion-fast) var(--ease-out); }
.sm-key__more[aria-expanded="true"]::after { transform: rotate(90deg); }
.sm-key__more:hover { color: var(--ink); }


.sc-host { position: relative; }

.sc-host > :not(.sc) { transition: opacity 90ms var(--ease-exit, ease-in), visibility 0s linear 0s; }
.sc-host--open > :not(.sc) { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 90ms var(--ease-exit, ease-in), visibility 0s linear 90ms; }
.sc { position: absolute; inset: 0; z-index: 1; display: none; }
.sc.is-open { display: block; }

.sc__page { position: absolute; inset: 0 -6px; padding: 0 6px; display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.sc__page > * { flex: none; }
.sc__page > .sc__head { order: 0; }
.sc__page > .sc__actions { order: 1; }
.sc__page > .sc__scroll { order: 2; }
.sc__kicker { margin: 0 0 0.3rem; font-family: var(--font-serif); font-size: 1.08rem; line-height: 1.25; color: var(--home-ember); }
.sc__kicker--doctrine { color: var(--s-doctrine); }
.sc__title {
  margin: 0 0 0.45rem; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.55rem, 2.15vw, 2.05rem); line-height: 1.1; letter-spacing: -0.012em;
  color: var(--ink); text-wrap: balance;
}
.sc__lede { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink-soft); text-wrap: pretty; }
.sc__body { margin: 0.5rem 0 0; font-size: 0.9375rem; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.sc__meta { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.sc__meta--mark { display: flex; align-items: baseline; gap: 0.45rem; }
.sc__meta--mark .sc__mk { align-self: center; }
.sc__page > .sc__scroll {
  flex: 1 1 auto; min-height: 6.5rem; overflow-y: auto; margin-top: 0.7rem; padding: 0.55rem 0.25rem 0.4rem 0.35rem;
  border-top: 1px solid var(--home-line); scrollbar-width: thin; scrollbar-gutter: stable;
}

.sc__scroll { scroll-snap-type: y proximity; scrollbar-color: color-mix(in srgb, var(--ink) 34%, transparent) transparent; }
.sc__scroll .sc__li, .sc__scroll .sc__label, .sc__scroll .sc__note { scroll-snap-align: start; }
.sc__block + .sc__block { margin-top: 0.55rem; }
.sc__label { margin: 0 0 0.15rem; font-size: 0.875rem; font-weight: 600; color: var(--muted); }

.sc__block--quiet .sc__label { font-weight: 400; color: var(--faint); }
.sc__block--quiet .sc__item { color: var(--ink-soft); }
.sc__label-n { font-weight: 400; font-variant-numeric: lining-nums tabular-nums; }
.sc__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.02rem; }

.sc__list--two { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.1rem; }
.sc__item {
  appearance: none; display: flex; align-items: baseline; gap: 0.55rem; width: calc(100% + 0.7rem); min-height: 24px;
  margin: 0 -0.35rem; padding: 0.08rem 0.35rem; border: 0; border-radius: 6px; background: none;
  font-size: 0.9375rem; line-height: 1.3; color: var(--ink); text-align: left; cursor: pointer;
  transition: background-color var(--motion-fast) var(--ease-out);
}
.sc__mk { align-self: center; }
.sc__item-text { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 0.55rem; row-gap: 0.12rem; min-width: 0; }
.sc__item-note { font-size: 0.875rem; color: var(--muted); }
.sc__item.is-lit { background: color-mix(in srgb, var(--s-ember) 11%, transparent); }
.sc__item--rule.is-lit { background: color-mix(in srgb, var(--s-doctrine) 13%, transparent); }
@media (hover: hover) and (pointer: fine) {
  .sc__item:hover { background: color-mix(in srgb, var(--s-ember) 11%, transparent); }
  .sc__item--rule:hover { background: color-mix(in srgb, var(--s-doctrine) 13%, transparent); }
}
.sc__note { margin: 0.5rem 0 0; font-size: 0.875rem; line-height: 1.4; color: var(--muted); text-wrap: pretty; }

.sc__li--code { display: flex; align-items: baseline; column-gap: 0.5rem; }
.sc__li--code > .sc__item { flex: 1 1 auto; width: auto; min-width: 0; margin-right: 0; }
.sc__code { flex: none; font-size: 0.875rem; color: var(--muted); text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
.sc__code:hover, .sc__code:focus-visible { color: var(--ink); }
.sc__page > .sc__actions { margin: 0.65rem 0 0.1rem; display: flex; flex-wrap: wrap; gap: 0.45rem; }
.sc__go {
  display: inline-flex; align-items: center; min-height: 30px; padding: 0.12rem 0.85rem; border-radius: var(--r-pill, 999px);
  font-size: 0.9375rem; font-weight: 500; color: var(--ink); text-decoration: none;
  box-shadow: inset 0 0 0 1px var(--home-line-strong);
  transition: box-shadow var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);
}
.sc__go--primary { box-shadow: inset 0 0 0 1px var(--home-ember); font-weight: 600; }
.sc__go:hover, .sc__go:focus-visible {
  color: var(--ink); text-decoration: none;
  box-shadow: inset 0 0 0 1px var(--home-ember); background-color: color-mix(in oklab, var(--home-ember) 10%, transparent);
}
.sc__page--doctrine .sc__go--primary { box-shadow: inset 0 0 0 1px var(--s-doctrine); }
.sc__page--doctrine .sc__go:hover, .sc__page--doctrine .sc__go:focus-visible {
  box-shadow: inset 0 0 0 1px var(--s-doctrine); background-color: color-mix(in oklab, var(--s-doctrine) 12%, transparent);
}
.sc__mk { display: inline-flex; flex: none; align-self: center; line-height: 0; color: var(--s-ember); }
.sc__mk--rule { color: var(--s-doctrine); }
.sc__all {
  appearance: none; margin: 0.05rem 0 0 -0.35rem; padding: 0.1rem 0.35rem; min-height: 26px; border: 0; border-radius: 6px;
  background: none; font-size: 0.875rem; color: var(--ink-soft); cursor: pointer;
  text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 0.22em;
}
.sc__all:hover { color: var(--ink); }
.sc__group-btn .sc__item-text { justify-content: space-between; flex-wrap: nowrap; width: 100%; }
.sc__group-btn .sc__item-note { font-family: var(--font-serif); font-size: 0.9375rem; font-variant-numeric: lining-nums tabular-nums; }
.sc__group-btn::before { content: "\203A"; display: inline-block; width: 0.7em; color: var(--muted); transition: transform var(--motion-fast) var(--ease-out); }
.sc__group-btn[aria-expanded="true"]::before { transform: rotate(90deg); }
.sc__list--inner { margin: 0.1rem 0 0.35rem 1.1rem; }

.sc__list--flow { display: flex; flex-wrap: wrap; column-gap: 0.1rem; row-gap: 0; margin-left: -0.35rem; }
.sc__list--flow .sc__item { width: auto; margin: 0; }
.sc__list--flow .sc__group-btn .sc__item-text { width: auto; justify-content: flex-start; column-gap: 0.4rem; }

.sc-doctrine { margin: 0; border-bottom: 1px solid var(--home-line); }
.sc-doctrine__go {
  appearance: none; display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(0, max-content); column-gap: 0.9rem; align-items: baseline;
  width: 100%; margin: 0; padding: 0.62rem 0.2rem; border: 0; border-radius: 6px; background: none;
  font: inherit; color: var(--ink); text-align: left; cursor: pointer;
  transition: background-color var(--motion-fast) var(--ease-out);
}
.sc-doctrine__name { font-size: 1rem; line-height: 1.4; color: var(--s-doctrine); }
.sc-doctrine__count { font-size: 0.875rem; color: var(--faint); text-align: right; }
.sc-doctrine__go:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.sc-doctrine__go.is-lit, .sc-doctrine__go:hover { background: color-mix(in srgb, var(--s-doctrine) 9%, transparent); }

@media (max-width: 960px) {
  .sc { position: static; }
  .sc__page { position: static; overflow: visible; padding: 0; }
  .sc__page > .sc__scroll { max-height: 24rem; }
}
@media (prefers-reduced-motion: reduce) {
  .sc-host > :not(.sc), .sm-span, .sm-tick, .sm-bar, .sm-cap, .sm-rest, .sm-fibre, .sm-rimname, .sm-node .sm-mark, .sc__item, .sc-doctrine__go { transition: none; }
  .sm-node.is-pulse .sm-focus-ring { animation: none; stroke-opacity: 0.8; }
}


.system-explorer { --sm-ground: var(--page); }
.system-explorer .sm-mount { position: absolute; inset: 0; display: block; }
.system-explorer .sm-fallback { position: absolute; left: 24px; top: 24px; }
.sm.sm--explorer { position: absolute; inset: 0; padding: 0; display: block; }
.sm--explorer .sm-area { position: absolute; inset: 0; margin: 0; display: block; touch-action: none; }
.sm--explorer .sm-view { position: absolute; inset: 0; }
.sm--explorer .sm-ring { margin: 0; }

.sm--explorer .sm-area { cursor: grab; user-select: none; -webkit-user-select: none; }
.sm--explorer .sm-area.is-dragging, .sm--explorer .sm-area.is-dragging .sm-node { cursor: grabbing; }
.sm--explorer .sm-body.is-moving { transform-origin: 0 0; }

.sm-ring.is-peeking .sm-light { opacity: 0.22; transition: opacity var(--motion-fast) var(--ease-out); }
.sm-ring.is-peeking .sm-route.is-preview { fill-opacity: 1; }
.sm-ring.is-peeking .sm-rline.is-preview { opacity: 1; }

.sm-rimname--in { paint-order: stroke; stroke: var(--sm-ground); stroke-width: 4px; stroke-linejoin: round; }

.sm-scale__sector.is-self .sm-tick--base, .sm-scale__sector.is-self .sm-tick--end { stroke: var(--s-ember); opacity: 0.95; stroke-width: 1.6; }


.system-explorer__legend { pointer-events: none; }
.system-explorer__legend .sm-key { display: block; }
.system-explorer__legend .sm-key__row {
  display: inline-flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; padding: 0.2rem 0.45rem; margin: -0.2rem -0.45rem;
  border-radius: 6px; background: var(--page); color: var(--muted); pointer-events: auto;
}
.system-explorer__legend .sm-key__group { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 1.1rem; }

.system-explorer .explorer__stage:has(.sm-inset.is-shown) .explorer__legend { right: 122px; }


.system-explorer__section + .system-explorer__section { margin-top: 1.9rem; }
.system-explorer__label {
  margin: 0.15rem 0 0.55rem; font-family: var(--font-serif); font-weight: 600;
  font-size: 1.08rem; line-height: 1.3; letter-spacing: 0.005em; color: var(--ink);
}
.system-explorer .explorer__body .home-families { margin-top: 0; }
.system-explorer .sc-doctrine__go { grid-template-columns: minmax(0, 1fr); row-gap: 0.12rem; }
.system-explorer .sc-doctrine__count { text-align: left; }
.system-explorer__hint { margin: 0.85rem 0 0; font-size: 0.9375rem; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.system-explorer__about > p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--ink-soft); text-wrap: pretty; }
.sm-key--panel { margin-top: 1rem; color: var(--ink-soft); }
.sm-key--panel .sm-key__row--list {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; font-size: 0.9375rem; line-height: 1.4;
}
.sm-key--panel .sm-key__item { align-items: baseline; gap: 0.7rem; }
.sm-key--panel .sm-key__item > :first-child { flex: none; width: 26px; justify-content: center; align-self: center; }
.sm-key--panel .sm-key__item > .sm-note { font-size: inherit; }
.sm-key--panel .sm-key__about { margin-top: 0.9rem; font-size: 0.875rem; color: var(--muted); }


.system-explorer .explorer__head.is-collapsed .explorer__title {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.system-explorer .explorer__head.is-collapsed .explorer__lede { display: none; }
.system-explorer .explorer__head.is-collapsed .explorer__crumbs { margin-bottom: 0.6rem; }
.sm-trail { margin: 0; }
.sm-trail[hidden] { display: none; }
.sm-trail .sm-crumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 0.2rem; }
.sm-trail .sm-crumbs__item { display: inline-flex; align-items: baseline; min-width: 0; }
.sm-trail .sm-crumbs__item + .sm-crumbs__item::before { content: "\203A"; margin: 0 0.5rem; color: var(--faint); }
.sm-trail .sm-crumbs__item:last-child::after { content: "\203A"; margin-left: 0.5rem; color: var(--faint); }
.sm-trail .sm-crumbs__go {
  appearance: none; background: none; border: 0; margin: 0 -0.25rem; padding: 0.15rem 0.25rem; min-height: 28px;
  font: inherit; font-family: var(--font-serif); font-size: 1.05rem; line-height: 1.3; color: var(--ink-soft);
  cursor: pointer; border-radius: 4px; text-align: left;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.22em;
  text-decoration-color: color-mix(in srgb, currentColor 30%, transparent);
  transition: color var(--motion-fast) var(--ease-out), text-decoration-color var(--motion-fast) var(--ease-out);
}
.sm-trail .sm-crumbs__go:hover { color: var(--ink); text-decoration-color: currentColor; }
.sm-trail .sm-crumbs__go:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }


.system-explorer .explorer__body.sc-host--open > :not(.sc) { display: none; }
.system-explorer .sc { position: static; }
.system-explorer .sc__page { position: static; inset: auto; padding: 0; overflow: visible; }

.system-explorer .sc__page > .sc__actions { order: 1; margin: 1.05rem 0 0.15rem; }
.system-explorer .sc__page > .sc__flow { order: 2; margin-top: 0.4rem; }
.system-explorer .sc__title { font-size: clamp(1.55rem, 1.15rem + 0.75vw, 2rem); }
.system-explorer .sc__body { margin-top: 0.75rem; font-size: 0.9875rem; line-height: 1.62; color: var(--ink-soft); }
.system-explorer .sc__lede + .sc__body { margin-top: 0.6rem; }
.system-explorer .sc__meta { margin-top: 0.7rem; }
.sc__onmap { margin: 0.7rem 0 0; font-size: 0.875rem; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.sc__flow > .sc__onmap:first-child { margin-top: 0.9rem; }

.sc__section--about .sc__body { margin-top: 0; }

.sc__held {
  flex: none; align-self: center; margin-left: auto; padding: 0 0.42rem; border-radius: 3px;
  font-size: 0.875rem; line-height: 1.4; white-space: nowrap; color: var(--home-ice);
  border: 1px solid color-mix(in srgb, var(--s-doctrine) 78%, transparent);
}
.sc__held--part { border-style: dashed; border-color: color-mix(in srgb, var(--s-doctrine) 62%, transparent); }
.sc__section { margin-top: 1.35rem; padding-top: 1rem; border-top: 1px solid var(--home-line); }
.sc__section-title {
  margin: 0 0 0.6rem; font-family: var(--font-serif); font-weight: 600; font-size: 1.08rem; line-height: 1.3; color: var(--ink);
}
.sc__section--rules .sc__section-title { color: var(--s-doctrine); }
.system-explorer .sc__flow .sc__block + .sc__block { margin-top: 0.8rem; }
.system-explorer .sc__flow > .sc__block:first-child { margin-top: 1.1rem; }
.system-explorer .sc__section .sc__block + .sc__block { margin-top: 0.8rem; }
.system-explorer .sc__label { margin-bottom: 0.25rem; font-size: 0.875rem; }
.system-explorer .sc__item { min-height: 28px; padding-block: 0.16rem; font-size: 0.96875rem; }
.system-explorer .sc__note { margin-top: 0.75rem; }

.system-explorer .sc__code { display: inline-flex; align-items: center; min-height: 28px; padding: 0 0.3rem; margin-right: -0.3rem; border-radius: 4px; }
.system-explorer .sc__code:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }


.system-explorer .explorer__body { scroll-padding-top: 56px; }
.system-explorer .sc__page--comp .sc__title { margin-bottom: 0.35rem; }
.system-explorer .sc__page > .sc__actions { align-items: center; gap: 0.5rem 0.55rem; }

.system-explorer .sc__go--primary {
  font-weight: 600; box-shadow: inset 0 0 0 1px var(--home-ember);
  background-color: color-mix(in oklab, var(--home-ember) 14%, transparent);
}
.system-explorer .sc__page--doctrine .sc__go--primary, .system-explorer .sc__page--rule .sc__go--primary {
  box-shadow: inset 0 0 0 1px var(--s-doctrine); background-color: color-mix(in oklab, var(--s-doctrine) 14%, transparent);
}
.system-explorer .sc__go--quiet {
  min-height: 30px; padding: 0.12rem 0.3rem; box-shadow: none; font-size: 0.9rem; font-weight: 500; color: var(--muted);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.22em;
  text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
}
.system-explorer .sc__go--quiet:hover, .system-explorer .sc__go--quiet:focus-visible { color: var(--ink); box-shadow: none; background: none; }
.system-explorer .sc__go:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.system-explorer .sc__tabs {
  position: sticky; top: -16px; z-index: 3;
  margin: 1.1rem calc(-1 * var(--explorer-pad)) 0; padding: 0 var(--explorer-pad);
  background: var(--page); border-bottom: 1px solid var(--home-line);
}
.sc__tablist { display: flex; flex-wrap: wrap; gap: 0 0.3rem; }
.sc__tab {
  appearance: none; display: inline-flex; align-items: baseline; gap: 0.4rem;
  min-height: 42px; margin: 0 0 -1px; padding: 0.7rem 0.55rem 0.55rem; border: 0; border-bottom: 2px solid transparent;
  background: none; font: inherit; font-size: 0.9375rem; font-weight: 600; line-height: 1.2; color: var(--muted); cursor: pointer;
  transition: color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out);
}
.sc__tab:first-child { margin-left: -0.55rem; }
.sc__tab-n { font-weight: 400; font-variant-numeric: lining-nums tabular-nums; color: var(--muted); }
.sc__tab:hover { color: var(--ink); }
.sc__tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--home-ember); }
.sc__tab[aria-selected="true"][data-view="rules"],
.sc__page--doctrine .sc__tab[aria-selected="true"] { border-bottom-color: var(--s-doctrine); }
.sc__tab:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; border-radius: 6px; }
.sc__panel { padding-top: 1rem; }
.sc__panel[hidden] { display: none; }

.sc__sum { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.3rem; }
.sc__sum-go {
  appearance: none; display: grid; gap: 0.18rem; width: calc(100% + 0.9rem); margin: 0 -0.45rem; padding: 0.55rem 0.45rem;
  border: 0; border-radius: 8px; background: none; font: inherit; text-align: left; color: var(--ink); cursor: pointer;
  transition: background-color var(--motion-fast) var(--ease-out);
}
.sc__sum-big {
  font-family: var(--font-serif); font-size: 1.08rem; font-weight: 600; line-height: 1.3;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.24em;
  text-decoration-color: color-mix(in srgb, currentColor 28%, transparent);
}
.sc__sum-go--rules .sc__sum-big { color: var(--home-ice); }
.sc__sum-small { font-size: 0.875rem; line-height: 1.45; color: var(--muted); }
.sc__sum-go:hover { background: color-mix(in srgb, var(--s-ember) 8%, transparent); }
.sc__sum-go--rules:hover { background: color-mix(in srgb, var(--s-doctrine) 10%, transparent); }
.sc__sum-go:hover .sc__sum-big { text-decoration-color: currentColor; }
.sc__sum-go:focus-visible, .sc__jump:focus-visible, .sc__fam:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.sc__panel--overview .sc__section--about { margin-top: 1.1rem; }
/* Connections: under each verb, by family; a family's heading shows its
   connections alone on the drawing, pressed while it does. */
.sc__rel + .sc__rel { margin-top: 1.4rem; }
.sc__rel-title { margin: 0.2rem 0 0.4rem; font-family: var(--font-serif); font-size: 1.06rem; font-weight: 600; line-height: 1.3; color: var(--ink); }
.sc__rel-title .sc__label-n { color: var(--muted); }
.sc__famgroup + .sc__famgroup { margin-top: 0.55rem; }
.sc__fam {
  appearance: none; display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem;
  width: calc(100% + 0.7rem); min-height: 28px; margin: 0 -0.35rem 0.1rem; padding: 0.22rem 0.35rem;
  border: 0; border-radius: 6px; background: none; font: inherit; font-size: 0.875rem; font-weight: 600; line-height: 1.3;
  color: var(--muted); text-align: left; cursor: pointer;
  transition: background-color var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out);
}
.sc__fam-n { font-weight: 400; font-variant-numeric: lining-nums tabular-nums; }
.sc__fam:hover { color: var(--ink); background: color-mix(in srgb, var(--s-ember) 7%, transparent); }
.sc__fam[aria-pressed="true"] { color: var(--ink); background: color-mix(in srgb, var(--s-ember) 13%, transparent); box-shadow: inset 2px 0 0 var(--home-ember); }
.sc__famgroup[hidden], .sc__rel[hidden], .sc__li[hidden] { display: none; }
.system-explorer .sc__list--code .sc__item, .system-explorer .sc__list--rules .sc__item, .system-explorer .sc__list--doctrine .sc__item { font-size: 0.9375rem; }

.system-explorer .sc__li--code { align-items: center; }
.system-explorer .sc__code { font-size: 0.8125rem; white-space: nowrap; }

.sc__find { margin: 0 0 0.85rem; }
.sc__find-label {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.sc__find-input {
  box-sizing: border-box; width: 100%; min-height: 36px; padding: 0.4rem 0.7rem; border: 1px solid var(--home-line-strong); border-radius: 8px;
  background: var(--surface); font: inherit; font-size: 0.9375rem; color: var(--ink);
}
.sc__find-input::placeholder { color: var(--muted); opacity: 1; }
.sc__find-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.sc__find-n { margin: 0.4rem 0 0; font-size: 0.875rem; line-height: 1.4; color: var(--muted); }
.sc__find-n:empty { display: none; }

.sc__zero { margin: 0.1rem 0 0; font-family: var(--font-serif); font-size: 1.08rem; font-weight: 600; line-height: 1.35; color: var(--ink); }
.sc__jump {
  appearance: none; display: inline-flex; align-items: center; min-height: 32px; margin: 0.85rem 0 0; padding: 0.2rem 0.85rem;
  border: 0; border-radius: var(--r-pill, 999px); background: color-mix(in oklab, var(--s-doctrine) 12%, transparent);
  box-shadow: inset 0 0 0 1px var(--s-doctrine); font: inherit; font-size: 0.9375rem; font-weight: 600; color: var(--ink); cursor: pointer;
}
.sc__rules-title { margin-top: 0.1rem; }
.sc__panel > .sc__onmap:first-child { margin-top: 0; }
.sc__panel .sc__onmap { margin: 0.2rem 0 0.85rem; }
.sc__heldnote { margin-top: 0.9rem; }
.sc__heldnote .sc__note { margin-top: 0.4rem; }
.sc__note--go .sc__go { margin-left: -0.3rem; }

.sc__how { margin-top: 1.5rem; padding-top: 0.9rem; border-top: 1px solid var(--home-line); }
.sc__how-summary {
  min-height: 28px; cursor: pointer; font-family: var(--font-serif); font-size: 1.02rem; font-weight: 600; line-height: 1.5; color: var(--ink);
}
.sc__how-summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.sc__how .sc__body { margin-top: 0.55rem; }

.sc__page--rule .sc__section-title { color: var(--ink); }
.sc__section--evidence .sc__label, .sc__section--ties .sc__label { color: var(--muted); }

.sc__scopebar {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.8rem;
  margin: 0 0 0.6rem; padding: 0.45rem 0.65rem; border-radius: 8px;
  background: color-mix(in srgb, var(--s-ember) 10%, var(--page)); box-shadow: inset 2px 0 0 var(--home-ember);
  font-size: 0.875rem; line-height: 1.4; color: var(--ink);
}
.sc__scopebar-text { margin: 0; }
.sc__scopebar-all {
  appearance: none; min-height: 24px; padding: 0 0.1rem; border: 0; background: none; font: inherit; font-weight: 600;
  color: var(--ink); cursor: pointer; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em;
}
.sc__scopebar-all:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }

.sm-light__red, .sm-light__azure, .sm-spans, .sm-counts, .sm-scoped { transition: opacity var(--motion-fast) var(--ease-out); }
.sm-ring.is-view-code .sm-light__azure, .sm-ring.is-view-code .sm-spans { opacity: 0.2; }
.sm-ring.is-view-rules .sm-light__red, .sm-ring.is-view-rules .sm-counts, .sm-ring.is-view-rules .sm-scoped { opacity: 0.18; }
.sm-ring.is-narrowed .sm-light__red, .sm-ring.is-narrowed .sm-fx { opacity: 0.16; }
.sm-ring.is-narrowed-rules .sm-light__azure .sm-rline:not(.is-in-scope) { opacity: 0.16; }
.sm-ring.is-tracing .sm-light .sm-route.is-trunk, .sm-ring.is-tracing .sm-scoped { opacity: 0.2; }
.sm-ring.is-tracing .sm-counts { opacity: 0.3; }
.sm-trace__dir { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.sm-count {
  font-family: var(--font-serif); font-size: 15px; font-weight: 600; font-variant-numeric: lining-nums tabular-nums;
  fill: var(--home-ember); paint-order: stroke; stroke: var(--sm-ground); stroke-width: 4px; stroke-linejoin: round;
}

.sm-ring.is-cat-axiom .sm-node--rule:not(.sm-node--axiom) .sm-mark,
.sm-ring.is-cat-principle .sm-node--rule:not(.sm-node--principle) .sm-mark,
.sm-ring.is-cat-failure .sm-node--rule:not(.sm-node--failure) .sm-mark { opacity: 0.45; }
.sm-ring.is-doctrine .sm-rest, .sm-ring.is-doctrine .sm-scale, .sm-ring.is-doctrine .sm-rim { opacity: 0.45; }
@media (max-width: 899px) {
  
  .system-explorer .sc__tabs { top: -12px; margin-inline: -16px; padding-inline: 16px; }
  .system-explorer__legend .sm-key__row { font-size: 0.8125rem; gap: 0.2rem 0.8rem; }
}
@media print {
  .home-atlas__controls, .home-atlas__edge { display: none !important; }
  .home-atlas__track { display: block; transform: none !important; }
  .home-atlas__slide { visibility: visible !important; }
}



.home-papers {
  padding-top: clamp(76px, 10vh, 112px);
  --sheet-w: clamp(150px, 13vw, 188px);
  --sheet-box: calc(var(--sheet-w) * 498 / 352);
  --sheet-paper: var(--surface);
  --sheet-paper-back: color-mix(in oklab, var(--surface) 55%, var(--page));
  --sheet-edge: var(--home-line-strong);
  --sheet-shadow: 0 1px 1px rgba(var(--ink-rgb), 0.05), 0 14px 24px -16px rgba(var(--ink-rgb), 0.42);
  --sheet-ink: 0.9;
  --sheet-ink-back: 0.58;
  --sheet-filter: none;
}
.home-papers__inner {
  padding: 2.1rem 0 2.2rem;
  border-top: 1px solid var(--home-line);
}

.home-papers__head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  column-gap: 2rem; row-gap: 0.6rem;
}
.home-papers h2 {
  margin: 0;
  font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.016em;
}
.home-papers__all { min-width: 0; font-size: 0.95rem; font-weight: 600; text-wrap: pretty; }
.home-papers__lede {
  max-width: 60ch; margin: 0.75rem 0 0;
  font-size: 1rem; line-height: 1.6; color: var(--muted); text-wrap: pretty;
}
.home-papers__shelf {
  position: relative; list-style: none; margin: 2.7rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: var(--sheet-box) auto auto;
  column-gap: clamp(28px, 4vw, 64px);
}

.home-papers__shelf::before {
  content: ""; position: absolute; left: 0; right: 0; top: var(--sheet-box);
  border-top: 1px solid var(--home-line-strong); pointer-events: none;
}
.home-pair {
  display: grid; grid-row: span 3; grid-template-rows: subgrid; min-width: 0;
}
.home-pair__sheets {
  position: relative; display: block; align-self: end;
  width: calc(var(--sheet-w) * 1.56); height: var(--sheet-box);
}
.home-pair__sheet {
  position: absolute; bottom: 0; left: 0; z-index: 2;
  width: var(--sheet-w); aspect-ratio: 352 / 498; overflow: hidden;
  background: var(--sheet-paper); border-radius: 2px;
  box-shadow: 0 0 0 1px var(--sheet-edge), var(--sheet-shadow);
  transition: transform var(--motion-ui, 180ms) var(--ease-out);
}
.home-pair__sheet img {
  display: block; width: 100%; height: 100%;
  opacity: var(--sheet-ink); filter: var(--sheet-filter);
  transition: opacity var(--motion-ui, 180ms) var(--ease-out);
}
.home-pair__sheet--companion {
  left: calc(var(--sheet-w) * 0.78); z-index: 1;
  width: calc(var(--sheet-w) * 0.78); background: var(--sheet-paper-back);
}
.home-pair__sheet--companion img { opacity: var(--sheet-ink-back); }
.home-pair .home-paper {
  display: flex; flex-direction: column; gap: 0.45rem; padding-top: 1.4rem;
}
.home-paper__kind { margin: 0; font-size: 0.9rem; font-weight: 500; color: var(--muted); }
.home-paper__heading {
  margin: 0; font-family: var(--font-serif); font-weight: 500;
  font-size: 1.36rem; line-height: 1.22; letter-spacing: -0.006em; text-wrap: balance;
}
.home-paper__title { font: inherit; color: var(--ink); }
.home-paper__title:hover { color: var(--home-ember); text-decoration: none; }
.home-paper__routes { margin: 0.1rem 0 0; font-size: 0.9rem; color: var(--faint); }
.home-paper__routes a { color: var(--ink-soft); }
.home-pair__companion {
  align-self: start; display: flex; flex-direction: column; gap: 0.2rem;
  margin: 1.3rem 0 0; padding-top: 0.85rem; border-top: 1px solid var(--home-line);
}

.home-pair__role { font-size: 0.875rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.home-pair__companion a {
  font-family: var(--font-serif); font-size: 1rem; line-height: 1.3; color: var(--ink-soft);
  text-wrap: balance;
}
.home-pair__companion a:hover { color: var(--ink); }

.home-pair:has(.home-paper__title:focus-visible) .home-pair__sheet--lead,
.home-pair:has(.home-pair__companion a:focus-visible) .home-pair__sheet--companion {
  transform: translateY(-5px);
}
.home-pair:has(.home-pair__companion a:focus-visible) .home-pair__sheet--companion img {
  opacity: var(--sheet-ink);
}
@media (hover: hover) and (pointer: fine) {
  .home-pair:has(.home-pair__sheets:hover, .home-paper__title:hover) .home-pair__sheet--lead,
  .home-pair:has(.home-pair__companion a:hover) .home-pair__sheet--companion {
    transform: translateY(-5px);
  }
  .home-pair:has(.home-pair__companion a:hover) .home-pair__sheet--companion img {
    opacity: var(--sheet-ink);
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-pair__sheet, .home-pair__sheet img { transition: none; }
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .home-papers {
    --sheet-paper: color-mix(in oklab, #f8f0e2 92%, #000);
    --sheet-paper-back: color-mix(in oklab, #f8f0e2 77%, #000);
    --sheet-edge: rgba(0, 0, 0, 0.4);
    --sheet-shadow: 0 18px 30px -18px rgba(0, 0, 0, 0.8);
    --sheet-ink: 0.9;
    --sheet-ink-back: 0.72;
    --sheet-filter: none;
  }
}
:root[data-theme="dark"] .home-papers {
  --sheet-paper: color-mix(in oklab, #f8f0e2 92%, #000);
  --sheet-paper-back: color-mix(in oklab, #f8f0e2 77%, #000);
  --sheet-edge: rgba(0, 0, 0, 0.4);
  --sheet-shadow: 0 18px 30px -18px rgba(0, 0, 0, 0.8);
  --sheet-ink: 0.9;
  --sheet-ink-back: 0.72;
  --sheet-filter: none;
}
.home-papers__note { max-width: 80ch; margin: 2.4rem 0 0; font-size: 0.8rem; color: var(--faint); }

@media (max-width: 960px) {
  .home-papers { --sheet-w: 112px; }
  .home-papers__shelf { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 2.6rem; }
  .home-papers__shelf::before { content: none; }
  .home-pair {
    grid-row: auto; grid-template-rows: none;
    grid-template-columns: calc(var(--sheet-w) * 1.56) minmax(0, 1fr); column-gap: 1.6rem;
  }
  .home-pair__sheets { grid-row: 1 / span 2; align-self: start; }
  .home-pair .home-paper { padding-top: 0; }
  .home-pair__companion { grid-column: 2; }
}
@media (max-width: 560px) {
  .home-pair { grid-template-columns: minmax(0, 1fr); }
  .home-pair__sheets { grid-row: auto; margin-bottom: 1.1rem; }
  .home-pair__companion { grid-column: auto; }
}


.home-head { margin-bottom: 2.1rem; }
.home-head h2 { margin: 0 0 0.6rem; }
.home-head p { max-width: 60ch; color: var(--muted); font-size: 1rem; line-height: 1.55; }
.home-videos__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.2vw, 28px);
  align-items: start;
}
.home-video__frame {
  position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: 10px; background: #0d0a12;
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-video__frame img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.8);
  transition: transform 700ms var(--ease-out), filter var(--motion-ui) var(--ease-out);
}
.home-video__frame:hover img { transform: scale(1.02); filter: saturate(1) brightness(1.04); }
.home-video__play { width: 46px; height: 46px; }
.home-video__play::after { border-left-width: 12px; border-top-width: 7.5px; border-bottom-width: 7.5px; }
.home-video__duration {
  position: absolute; right: 0.6rem; bottom: 0.6rem;
  padding: 0.14rem 0.45rem; border-radius: 6px;
  font-family: var(--font-sans); font-size: 0.75rem; font-weight: 600; font-variant-numeric: tabular-nums;
  background: rgba(10, 6, 14, 0.72); color: #fff;
}
.home-video__title { margin: 0.95rem 0 0.35rem; font-family: var(--font-sans); font-size: 1rem; font-weight: 600; }
.home-video__title a { color: var(--ink); }
.home-video__title a::after { content: " \2197"; color: var(--faint); font-weight: 400; }
.home-video__transcript > summary {
  list-style: none; display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer;
  font-size: 0.86rem; color: var(--accent);
}
.home-video__transcript > summary::-webkit-details-marker { display: none; }
.home-video__transcript > summary::after { content: "+"; }
.home-video__transcript[open] > summary::after { content: "\2212"; }
.home-video__text {
  margin-top: 0.75rem; max-height: 24rem; overflow: auto; padding-right: 0.5rem;
  font-size: 0.9rem; line-height: 1.62; color: var(--ink-soft);
}
.home-video__text p + p { margin-top: 0.6rem; }

@media (min-width: 961px) {
  .home-videos__layout {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    grid-template-rows: auto auto auto 1fr;
    column-gap: clamp(36px, 5vw, 76px);
  }
  .home-videos__layout > .home-head { grid-column: 1; grid-row: 1; position: relative; z-index: 1; margin-bottom: 1.8rem; }
  .home-videos__layout > .home-videos__grid {
    grid-column: 1 / -1; grid-row: 1 / -1;
    display: grid; grid-template-columns: subgrid; grid-template-rows: subgrid;
    gap: 0 clamp(36px, 5vw, 76px);
  }
  .home-videos__grid > .home-video { grid-column: 1; align-self: start; }
  .home-videos__grid > .home-video:nth-child(1) { grid-row: 2; }
  .home-videos__grid > .home-video:nth-child(3) { grid-row: 3; margin-top: 1.6rem; padding-top: 1.6rem; border-top: 1px solid var(--home-line); }
  .home-videos__grid > .home-video:nth-child(2) { grid-column: 2; grid-row: 1 / -1; }
  .home-videos__grid > .home-video:not(:nth-child(2)) {
    display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
    grid-template-areas: "frame title" "notes notes"; column-gap: 1.1rem; align-items: center;
  }
  .home-videos__grid > .home-video:not(:nth-child(2)) .home-video__frame { grid-area: frame; border-radius: 8px; }
  .home-videos__grid > .home-video:not(:nth-child(2)) .home-video__title { grid-area: title; margin: 0; }
  .home-videos__grid > .home-video:not(:nth-child(2)) .home-video__transcript { grid-area: notes; margin-top: 0.75rem; }
  .home-videos__grid > .home-video:nth-child(2) .home-video__title { margin-top: 1.1rem; font-size: 1.12rem; }
  .home-videos__grid > .home-video:nth-child(2) .home-video__play { width: 62px; height: 62px; }
  .home-videos__grid > .home-video:nth-child(2) .home-video__play::after { border-left-width: 16px; border-top-width: 10px; border-bottom-width: 10px; }
}


.film-poster {
  position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: 10px; background: #0d0a12;
  box-shadow: 0 0 0 1px var(--home-line-strong);
  
  --play: 46px;
  --film-chip: rgba(18, 12, 24, 0.76);
  --film-chip-solid: #15101b;
  --film-mark: #f8f0e2;
}
.film-poster > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.film-poster .home-video__play {
  width: var(--play); height: var(--play);
  background: var(--film-chip);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: inset 0 0 0 1px rgba(248, 240, 226, 0.3), 0 6px 16px -8px rgba(8, 5, 12, 0.8);
}
.film-poster .home-video__play::after {
  left: 53.5%;
  border-left: calc(var(--play) * 0.27) solid var(--film-mark);
  border-top: calc(var(--play) * 0.165) solid transparent;
  border-bottom: calc(var(--play) * 0.165) solid transparent;
}
.film-poster .home-video__duration {
  
  background: var(--film-chip-solid); color: var(--film-mark);
  box-shadow: inset 0 0 0 1px rgba(248, 240, 226, 0.14);
}

.film-poster--inset-bottom-right .home-video__duration { right: auto; left: 0.6rem; }
.film--introduction .film-poster { --play: 52px; }
.film--featured .film-poster { --play: 48px; }
.home-film .film-poster { --play: 30px; }
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .film-poster .home-video__play, .film-poster .home-video__duration {
    -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--film-chip-solid);
  }
}

.film-shelf__feature, .film-shelf__more > ol { list-style: none; margin: 0; padding: 0; }
.film-shelf__feature { display: grid; gap: clamp(2rem, 3.4vw, 2.8rem); }
.film { min-width: 0; }
.film__poster { margin: 0 0 1rem; }
.film__title {
  margin: 0; font-family: var(--font-serif); font-weight: 400; color: var(--ink);
  font-size: 1.24rem; line-height: 1.2; letter-spacing: -0.01em; text-wrap: balance;
}

.film__keep { display: inline-block; text-decoration: inherit; }

.film__title { container-type: inline-size; }
@container (min-width: 19em) {
  .film__lead { display: inline-block; text-decoration: inherit; }
}
.film--introduction .film__title { font-size: clamp(1.55rem, 1.05rem + 1.1vw, 2.05rem); line-height: 1.12; }
.film--featured .film__title { font-size: clamp(1.3rem, 1.02rem + 0.62vw, 1.6rem); line-height: 1.16; }
.film__title a { color: inherit; text-decoration: none; }

.film__title a { display: inline-block; }

.film__title a::after { content: "\00a0\2197"; color: var(--faint); font-family: var(--font-sans); font-size: 0.62em; }
.film__meta {
  margin: 0.45rem 0 0; font-family: var(--font-sans); font-size: 0.84rem; line-height: 1.4;
  color: var(--faint); font-variant-numeric: tabular-nums;
}
.film__text { margin: 0.4rem 0 0; max-width: 54ch; font-size: 0.97rem; line-height: 1.6; color: var(--ink-soft); text-wrap: pretty; }
.film--introduction .film__text { margin-top: 0.55rem; font-size: 1.04rem; }

.film__support { margin-top: 0.85rem; display: grid; justify-items: start; row-gap: 0.45rem; }

.film__links { display: grid; justify-items: start; row-gap: 0.1rem; font-size: 0.92rem; line-height: 1.55; }
.film__support .home-video__transcript > summary { min-height: 24px; padding-block: 0.1rem; }

.film__chapter-list {
  list-style: none; margin: 0.5rem 0 0.1rem; padding: 0;
  display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 0.8rem;
  font-size: 0.9rem; line-height: 1.45;
}

.film__chapter-list > li { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; }
.film__chapter-list a {
  display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; align-items: baseline;
  padding: 0.17rem 0; color: var(--ink-soft); text-decoration: none;
  transition: color var(--motion-fast) var(--ease-out);
}
.film__chapter-time { justify-self: end; color: var(--faint); font-variant-numeric: tabular-nums; }
.film__chapter-name::after { content: "\00a0\2197"; color: var(--faint); font-size: 0.8em; }

.film__title-text {
  text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 0.17em;
  text-decoration-color: transparent;
  transition: text-decoration-color var(--motion-fast) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .film__title a:hover .film__title-text,
  .film:has(a.film-poster:hover) .film__title-text { text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); }
  a.film-poster:hover .home-video__play,
  .film:has(.film__title a:hover) .home-video__play { transform: scale(1.06); }
  .film__chapter-list a:hover { color: var(--ink); }
  .film__chapter-list a:hover .film__chapter-time { color: var(--ink-soft); }
}

.film:has(.film__title a:focus-visible) .film-poster { box-shadow: 0 0 0 1px var(--page), 0 0 0 2px var(--accent); }
.film:has(.film__title a:focus-visible) .home-video__play { transform: scale(1.06); }
.film-shelf__more { margin-top: clamp(2.6rem, 5vw, 3.8rem); padding-top: 1.6rem; border-top: 1px solid var(--home-line-strong); }

.film-shelf__label { margin: 0 0 0.9rem; font-family: var(--font-sans); font-size: 0.95rem; color: var(--muted); }
.film-shelf__more > ol { display: grid; gap: clamp(1.8rem, 3vw, 2.4rem); }


.home-film .film-poster { border-radius: 6px; }
.home-film--text { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 0.2rem; }
.home-film__title--here::after { content: none; }

.film-shelf { scroll-margin-top: calc(36px - clamp(84px, 12vh, 132px)); }

.home main .film-shelf .home-head p { text-wrap: balance; }
.film-shelf__phrase { display: inline-block; }
.film-shelf:focus, .film-shelf:focus-visible { outline: none; }
.film-shelf .home-head h2 { position: relative; scroll-margin-top: 36px; }
.film-shelf .home-head h2::before {
  content: ""; position: absolute; left: 0.04em; bottom: 100%; margin-bottom: 0.3em;
  width: 1.1em; height: 2px; border-radius: 1px; background: var(--accent);
  opacity: 0; transition: opacity var(--motion-ui) var(--ease-out);
}
.film-shelf:focus-visible .home-head h2::before { opacity: 1; }
@media (forced-colors: active) {
  .film-shelf:focus-visible .home-head h2::before { forced-color-adjust: none; background: Highlight; }
}

@media (min-width: 640px) {
  .film-shelf__more > ol { row-gap: 0; }
  .film-shelf__more > ol > .film { display: grid; grid-row: span 5; grid-template-rows: subgrid; }
  .film-shelf__more .film__body { display: contents; }
  .film-shelf__more .film__poster { grid-row: 1; }
  .film-shelf__more .film__title { grid-row: 2; }
  .film-shelf__more .film__meta { grid-row: 3; }
  .film-shelf__more .film__text { grid-row: 4; }
  .film-shelf__more .film__support { grid-row: 5; align-self: start; }
}
@media (min-width: 640px) and (max-width: 960px) {
  .film-shelf__more > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .film-shelf__more > ol > .film { margin-bottom: clamp(1.8rem, 3vw, 2.4rem); }
}

@media (min-width: 961px) {
  .film-shelf__layout {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(36px, 5vw, 76px);
  }
  .film-shelf__layout > .home-head { grid-column: 1; grid-row: 1; position: relative; z-index: 1; margin-bottom: 1.1rem; }
  .film-shelf__feature {
    grid-column: 1 / -1; grid-row: 1 / 4;
    display: grid; grid-template-columns: subgrid; grid-template-rows: subgrid;
    gap: 0 clamp(36px, 5vw, 76px);
  }
  .film-shelf__feature > .film { display: grid; grid-template-rows: subgrid; }
  .film--introduction { grid-column: 2; grid-row: 1 / 4; }
  .film--featured { grid-column: 1; grid-row: 2 / 4; }
  .film--introduction > .film__poster { grid-row: 1 / 3; align-self: end; }
  .film--featured > .film__poster { grid-row: 1; align-self: end; }
  .film-shelf__feature .film__body { grid-row: -2 / -1; }
  .film-shelf__layout > .film-shelf__more { grid-column: 1 / -1; grid-row: 4; }
  .film-shelf__more > ol {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(22px, 2.6vw, 40px);
  }
}


.film-shelf__layout--text-feature { display: block; }
.film-shelf__layout--text-feature > .home-head { margin-bottom: 2rem; }
.film-shelf__feature--text {
  grid-template-columns: minmax(0, 1fr); grid-template-rows: none;
  gap: 1.75rem;
}
.film-shelf__feature--text > .film { display: block; grid-column: auto; grid-row: auto; }
.film-shelf__feature--text .film__body { grid-row: auto; }
.film__heading { display: contents; }
.film-shelf__feature--text .film__heading { display: block; }
.film-shelf__feature--text .film--featured { border-top: 1px solid var(--home-line); padding-top: 1.5rem; }
.film-shelf__more--text > ol { display: block; }
.film-shelf__more--text > ol > .film { display: block; margin: 0; padding: 1.25rem 0; }
.film-shelf__more--text > ol > .film + .film { border-top: 1px solid var(--home-line); }
.film-shelf__more--text > ol > .film:first-child { padding-top: 0; }
.film-shelf__more--text .film__body { display: block; }
@media (min-width: 640px) {
  .film-shelf__more--text .film__body {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(24px, 4vw, 60px); align-items: start;
  }
  .film-shelf__more--text .film__heading { display: block; grid-column: 1; grid-row: 1 / 3; }
  .film-shelf__more--text .film__title { grid-column: 1; grid-row: 1; }
  .film-shelf__more--text .film__meta { grid-column: 1; grid-row: 2; }
  .film-shelf__more--text .film__text { grid-column: 2; grid-row: 1; margin-top: 0; }
  .film-shelf__more--text .film__support { grid-column: 2; grid-row: 2; margin-top: 0.5rem; }
}
@media (min-width: 961px) {
  .film-shelf__feature--text { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(36px, 5vw, 76px); }
  .film-shelf__feature--text .film--featured { border-top: 0; border-left: 1px solid var(--home-line); padding-top: 0; padding-left: 2rem; }
}


.film-shelf__alternate { grid-column: 1 / -1; margin-top: 2rem; border-top: 1px solid var(--home-line-strong); padding-top: 1rem; }
.film-shelf__alternate > summary { cursor: pointer; color: var(--muted); font-family: var(--font-sans); }
.film-shelf__alternate > ol { list-style: none; padding: 1.25rem 0 0; margin: 0; max-width: 34rem; }
.film-shelf__alternate .film__poster { max-width: 28rem; }


.home-about { padding-bottom: clamp(48px, 7vh, 80px); }
.home-about__grid {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(36px, 5vw, 76px); align-items: start;
}

.home-about__lead {
  margin: 0 0 1.35rem; max-width: 34.5rem;
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(1.4rem, 2.1vw, 1.8rem); line-height: 1.3; letter-spacing: -0.006em; color: var(--ink);
  text-wrap: balance;
}
.home main .home-about__lead { text-wrap: balance; }
.home-about__why > p:not([class]) {
  font-family: var(--font-serif); font-size: clamp(1.04rem, 1.2vw, 1.14rem); line-height: 1.66; color: var(--ink-soft);
  
  max-width: 34.5rem;
}
.home-about__why > p:not([class]) + p:not([class]) { margin-top: 0.9em; }
.home-about__more { margin-top: 1.1rem; font-size: 0.95rem; }
.home-about__join {
  padding: clamp(22px, 2.6vw, 34px); border-radius: 12px;
  background: var(--home-card); box-shadow: 0 0 0 1px var(--home-line);
}

@media (min-width: 961px) {
  .home-about__join { position: sticky; top: calc(var(--topbar-h) + 28px); }
}
.home-about__join h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); }
.home-about__join > p:not([class]) { font-size: 1rem; line-height: 1.62; color: var(--ink-soft); }
.home-about__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1.4rem 0 1.25rem; }
.home-about__actions .btn { border-radius: var(--r-pill); padding: 0.66rem 1.2rem; }

.home-about__why > h3 {
  margin: 2rem 0 0; padding-top: 1.4rem; border-top: 1px solid var(--home-line);
  font-family: var(--font-serif); font-weight: 500; font-size: 1.3rem; line-height: 1.25; color: var(--ink);
}

.home-ai { margin-top: 0.9rem; max-width: 32rem; }
.home-ai__primary {
  padding: 1rem 1.15rem 1.05rem; border-radius: 12px;
  background: var(--home-card); box-shadow: 0 0 0 1px var(--home-line);
}
.home-ai__choice { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.9rem; margin: 0; }
.home-ai__download {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.5rem;
  font-size: 1.05rem; font-weight: 600; line-height: 1.3;
}
.home-ai__download svg {
  flex: none; width: 1.05rem; height: 1.05rem; align-self: center;
  fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}
.home-ai__fit { font-size: 0.9rem; color: var(--muted); }
.home-ai__how { margin: 0.35rem 0 0; font-size: 0.95rem; line-height: 1.6; color: var(--ink-soft); }
.home-ai__others { list-style: none; margin: 0.35rem 0 0; padding: 0; }
.home-ai__others li {
  padding: 0.7rem 0.2rem; border-bottom: 1px solid var(--home-line);
  font-size: 0.95rem; line-height: 1.55; color: var(--muted);
}
.home-ai__others a { font-weight: 600; }


.home-credit {
  margin-top: clamp(56px, 8vh, 88px); padding-top: 1.9rem;
  border-top: 1px solid var(--home-line);
}

.home-credit {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 2rem; row-gap: 0;
}
.home-credit__head { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 0.8rem; }
.home-credit__head h2 {
  margin: 0; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.016em;
}
.home-credit__head p { margin: 0; max-width: 62ch; font-size: 1rem; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.home-credit__controls { grid-column: 2; grid-row: 1; align-self: end; display: flex; align-items: center; gap: 0.7rem; }
.home-credit__controls[hidden] { display: none; }
.home-credit__count { min-width: 5.2em; text-align: center; font-size: 0.95rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; }

@media (max-width: 30em) { .home-credit__count { min-width: 0; } }
.home-credits-frame {
  grid-column: 1 / -1; grid-row: 2; margin-top: 1.6rem;
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: 2px;
  scrollbar-width: thin; scrollbar-color: var(--home-line-strong) transparent;
  padding: 2px 2px 10px; border-radius: 12px;
}
.home-credits-frame.is-live { scrollbar-width: none; padding-bottom: 2px; }
.home-credits-frame.is-live::-webkit-scrollbar { display: none; }
.home-credits-frame:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.home-credits {
  --credit-gap: clamp(12px, 1.4vw, 18px);
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-auto-flow: column; gap: var(--credit-gap);
  grid-auto-columns: calc((100% - var(--credit-gap)) / 2);
}
.home-credits > li { scroll-snap-align: start; }
.home-credit-entry {
  display: flex; flex-direction: column; gap: 0.55rem;
  padding: clamp(18px, 2vw, 24px); border-radius: 12px;
  background: var(--home-card); box-shadow: 0 0 0 1px var(--home-line);
}
.home-credit-entry p { margin: 0; }

.home-credit-entry__told, .home-credit-entry__changed { max-width: 66ch; }
.home-credit-entry__date { font-size: 0.84rem; color: var(--faint); font-variant-numeric: tabular-nums; }
.home-credit-entry__told {
  font-family: var(--font-serif); font-size: 1.06rem; line-height: 1.5; color: var(--ink); text-wrap: pretty;
}
.home-credit-entry__changed { font-size: 0.93rem; line-height: 1.58; color: var(--ink-soft); text-wrap: pretty; }
.home-credit-entry__label { font-weight: 600; color: var(--ink); }
.home-credit-entry__meta {
  margin-top: auto; padding-top: 0.35rem;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.3rem 1rem;
  font-size: 0.85rem; color: var(--muted);
}
.home-credit-entry__meta a { color: var(--link-ext); font-weight: 600; }

.home-credit-entry p.home-credit-entry__meta { margin-top: auto; }

.home-credit-entry__meta a, .home-earlier__links a { display: inline-block; padding-block: 3px; }
.home-credit-entry__meta a:hover { color: var(--ink); }
.home-credit-entry[data-credit-naming="named_with_permission"] .home-credit-entry__meta span { color: var(--ink-soft); }

.home-credit__more { grid-column: 1 / -1; grid-row: 3; margin: 1rem 0 0; font-size: 0.92rem; color: var(--muted); max-width: 70ch; }
.home-credit__more a { color: var(--link-ext); font-weight: 600; }
@media (max-width: 960px) {
  .home-credit { grid-template-columns: minmax(0, 1fr); }
  .home-credit__controls { grid-column: 1; grid-row: 2; justify-self: start; margin-top: 1rem; }
  .home-credits-frame { grid-row: 3; margin-top: 1rem; }
  .home-credit__more { grid-row: 4; }
  .home-credits { grid-auto-columns: 100%; }
}



.home .site-footer { border-top: 0; }
.home .site-footer__grid { border-top: 1px solid var(--home-line); }
.site-footer__grid {
  display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: 2rem; padding: 2.8rem 0 1.6rem;
}

.site-footer .site-footer__name { font-family: var(--font-serif); font-size: 1.25rem; color: var(--ink); margin-bottom: 0.4rem; }
.site-footer__brand p:not(.site-footer__name) { font-size: 0.9rem; color: var(--muted); max-width: 30ch; }
.home .site-footer nav.site-footer__col { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.site-footer__head { font-size: 0.88rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 0.2rem; }
.home .site-footer__parent-kind { font-size: 0.86rem; letter-spacing: normal; text-transform: none; color: var(--muted); }

.home .site-footer nav.site-footer__col a { font-size: 0.92rem; color: var(--ink-soft); min-height: 24px; }
.home .site-footer nav.site-footer__col a:hover { color: var(--ink); }

.home .site-footer nav.site-footer__col a[data-link-kind="exogenous"],
.home .site-footer nav.site-footer__col a[data-link-kind="exogenous"]:hover { color: var(--link-ext); }


@media (max-width: 960px) {
  .home-hero__grid, .home-split, .home-split--mirror, .home-about__grid { grid-template-columns: minmax(0, 1fr); }
  .home-split--mirror .home-split__figure { order: 0; }
  .home-videos__grid { grid-template-columns: minmax(0, 1fr); }
  .home-head { flex-direction: column; align-items: flex-start; gap: 0.8rem; }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .home-problems { grid-template-columns: minmax(0, 1fr); }
  .home-atlas__controls { width: 100%; justify-content: space-between; margin-left: 0; }
  .home-atlas__tab { padding-inline: 0.85rem; }
  .home-atlas__expand { padding: 0 0.85rem 0 0.75rem; }
  .home-funnel__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem 1.4rem; text-align: left; }
  .home-funnel__steps a { justify-items: start; }
  
  .home-universe { aspect-ratio: auto; }
  .home-universe canvas { flex: none; aspect-ratio: 1 / 0.92; }
}
@media (prefers-reduced-motion: reduce) {
  .home-film__frame img, .home-video__frame img, .home-film__play, .home-video__play { transition: none; }
}


:root {
  --ease-emph: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-move: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-exit: cubic-bezier(0.3, 0, 1, 1);
}
@keyframes mc-tip-down {
  from { opacity: 0; transform: translateY(-4px) scale(0.985); }
}
@keyframes mc-tip-up {
  from { opacity: 0; transform: translateY(4px) scale(0.985); }
}

@media screen and (prefers-reduced-motion: no-preference) {
  
  .term-tip { animation: mc-tip-down 150ms var(--ease-emph); }
  .term-tip[data-placement="above"] { animation-name: mc-tip-up; }

  
  .site-header nav.site-nav a:active,
  .docs-topbar__links.site-nav a:active,
  .home-universe__open:active,
  .home-universe__repo:active,
  .home-results__arrow:active,
  .home-credit__arrow:active:not(:disabled),
  .theme-toggle:active .theme-toggle__track { transform: scale(0.97); }
}


#mathematics .home-split__text:not(.uc-host) .home-problem,
.docs-main .problem-entry { position: relative; }
#mathematics .home-split__text:not(.uc-host) .home-problem::after,
.docs-main .problem-entry::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: var(--home-ember); pointer-events: none;
  transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform 180ms var(--ease-exit);
}
#mathematics .home-split__text:not(.uc-host) .home-problem:focus-within::after,
.docs-main .problem-entry:focus-within::after {
  transform: scaleX(1); transform-origin: 0 50%;
  transition: transform var(--motion-panel) var(--ease-emph);
}
@media (hover: hover) and (pointer: fine) {
  #mathematics .home-split__text:not(.uc-host) .home-problem:hover::after,
  .docs-main .problem-entry:hover::after {
    transform: scaleX(1); transform-origin: 0 50%;
    transition: transform var(--motion-panel) var(--ease-emph);
  }
}
.home-problem__num { transition: color var(--motion-fast) var(--ease-out); }
.home-problem > a:hover .home-problem__num,
.home-problem > a:focus-visible .home-problem__num { color: var(--home-ember); }


.home-paper__title, .docs-main .problem-entry__title a {
  text-decoration-line: underline; text-decoration-thickness: 1px;
  text-decoration-color: transparent; text-underline-offset: 0.42em;
  transition: color var(--motion-fast) var(--ease-out),
              text-decoration-color var(--motion-ui) var(--ease-out),
              text-underline-offset var(--motion-panel) var(--ease-emph);
}
.home-paper__title:focus-visible, .docs-main .problem-entry__title a:focus-visible {
  text-decoration-line: underline; text-decoration-color: currentColor; text-underline-offset: 0.2em;
}
@media (hover: hover) and (pointer: fine) {
  .home-paper__title:hover, .docs-main .problem-entry__title a:hover {
    text-decoration-line: underline; text-decoration-color: currentColor; text-underline-offset: 0.2em;
  }
}


.home-film__title, .home-video__title a, .home-about__more a, .home-papers__route a,
.home-paper__routes a, .home-earlier__links a {
  transition: color var(--motion-fast) var(--ease-out),
              text-decoration-color var(--motion-fast) var(--ease-out);
}


.home-film__frame img, .home-video__frame img {
  transition: filter var(--motion-ui) var(--ease-out);
}
.home-film__frame:hover img, .home-video__frame:hover img { transform: none; }


.site-header nav.site-nav a,
.docs-topbar__links.site-nav a {
  transition: color var(--motion-fast) var(--ease-out),
              background-color var(--motion-fast) var(--ease-out),
              transform var(--motion-fast) var(--ease-out);
}
.home-universe__open, .home-universe__repo {
  transition: color var(--motion-fast) var(--ease-out),
              box-shadow var(--motion-ui) var(--ease-out),
              transform var(--motion-fast) var(--ease-out);
}
.home-universe__open:hover, .home-universe__open:focus-visible { color: var(--ink); }
.home-universe__repo:hover, .home-universe__repo:focus-visible { color: var(--ink); }
.theme-toggle__track { transition: transform var(--motion-fast) var(--ease-out); }

/* Buttons: the hover glow eases with the fill instead of snapping in. In
   the dark scheme a pressed or hovered ink button lifts to a warm bone, not
   to untinted white (the one pure white on the night page). */
.btn {
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease),
              color var(--dur) var(--ease), transform var(--dur-fast) var(--ease),
              box-shadow var(--motion-ui) var(--ease-out);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) { --ink-press: #fbf2e4; }
}
:root[data-theme="dark"] { --ink-press: #fbf2e4; }


.btn__format { font-family: var(--font-sans); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }


.docs-pager__dir { font-size: 0.82rem; letter-spacing: normal; text-transform: none; }
.docs-pager__title {
  transition: color var(--motion-fast) var(--ease-out), transform var(--motion-ui) var(--ease-emph);
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .docs-pager__link--next:hover .docs-pager__title { transform: translateX(3px); }
  .docs-pager__link--prev:hover .docs-pager__title { transform: translateX(-3px); }
}


.docs-toc a {
  transition: color var(--motion-ui) var(--ease-out), border-color var(--motion-ui) var(--ease-out);
}
.docs-toc a.is-current { font-weight: inherit; }
.docs-nav a {
  transition: color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);
}


@keyframes mc-target-arrive {
  from { background-color: color-mix(in srgb, var(--select-bg) 55%, transparent); }
  to { background-color: transparent; }
}
@keyframes mc-card-arrive {
  0%, 30% { box-shadow: inset 3px 0 0 var(--home-ember); }
  100% { box-shadow: inset 3px 0 0 transparent; }
}
@media (prefers-reduced-motion: no-preference) {
  .docs-main :target { animation: mc-target-arrive 900ms var(--ease-out); }
  .docs-main .term-card:target { animation: mc-target-arrive 900ms var(--ease-out), mc-card-arrive 1.6s var(--ease-out); }
}


.home-video__transcript > summary::after,
.docs-main .paper-entry details > summary::after {
  content: ""; flex: none; align-self: center;
  width: 0.62em; height: 0.62em;
  background:
    linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat;
  transition: transform var(--motion-panel) var(--ease-emph), background-size var(--motion-panel) var(--ease-emph);
}
.home-video__transcript[open] > summary::after,
.docs-main .paper-entry details[open] > summary::after {
  content: ""; transform: rotate(180deg);
  background-size: 100% 1.5px, 1.5px 0;
}
.home-video__transcript > summary, .docs-main .paper-entry details > summary {
  transition: color var(--motion-fast) var(--ease-out);
}
.home-video__transcript > summary:hover { color: var(--accent-strong); }
.docs-main .paper-entry details > summary:hover { color: var(--ink); }

@media (forced-colors: active) {
  .home-video__transcript > summary::after,
  .docs-main .paper-entry details > summary::after {
    content: "+"; background: none; width: auto; height: auto; transform: none; line-height: 1;
  }
  .home-video__transcript[open] > summary::after,
  .docs-main .paper-entry details[open] > summary::after { content: "\2212"; }
}


@supports (interpolate-size: allow-keywords) and selector(details::details-content) {
  @media screen and (prefers-reduced-motion: no-preference) {
    .home-video__transcript, .home-agent,
    .docs-main details:not(.dcard, .reader-contents, .fold) { interpolate-size: allow-keywords; }
    .home-video__transcript::details-content, .home-agent::details-content,
    .docs-main details:not(.dcard, .reader-contents, .fold)::details-content {
      block-size: 0; overflow-y: clip;
      transition: block-size 180ms var(--ease-exit), opacity 140ms var(--ease-exit),
                  content-visibility 180ms allow-discrete;
    }
    .home-video__transcript[open]::details-content, .home-agent[open]::details-content,
    .docs-main details[open]:not(.dcard, .reader-contents, .fold)::details-content {
      block-size: auto;
      transition: block-size var(--motion-panel) var(--ease-emph), opacity 220ms var(--ease-out) 40ms,
                  content-visibility var(--motion-panel) allow-discrete;
    }
  }
}


html:not(.js) .site-header nav.site-nav::after,
html:not(.js) .docs-topbar__links.site-nav::after { margin-left: 0.6rem; }
html:not(.js) .site-header nav.site-nav:has(> .theme-toggle)::after,
html:not(.js) .docs-topbar__links.site-nav:has(> .theme-toggle)::after { content: none; }


html.vt-theme .theme-toggle__knob {
  transition: transform var(--dur-slow) var(--ease-out) !important;
}
html.vt-theme .theme-toggle__ico {
  transition: opacity var(--dur-slow) var(--ease-out), color var(--dur-slow) var(--ease-out) !important;
}



.home-earlier {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: baseline; gap: 0.5rem clamp(36px, 5vw, 76px);
  margin-top: clamp(64px, 9vh, 96px); padding-top: 1.5rem;
  border-top: 1px solid var(--home-line);
}
.home-earlier__label {
  font-family: var(--font-serif); font-size: 1.15rem; font-weight: 500; line-height: 1.3; color: var(--ink-soft);
}
.home-earlier__text { font-size: 0.95rem; line-height: 1.6; color: var(--muted); max-width: 62ch; }
.home-earlier__links { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem; font-size: 0.9rem; }
.home-earlier__links a { color: var(--accent); }
.home-earlier__links a:hover { color: var(--ink); }
@media (max-width: 960px) {
  .home-earlier { grid-template-columns: minmax(0, 1fr); }
  .home-earlier__links { grid-column: auto; }
}


.anchor-alias { position: absolute; width: 0; height: 0; overflow: hidden; scroll-margin-top: 84px; }
.home-about__routes { margin-top: 1rem; font-size: 0.88rem; line-height: 1.55; color: var(--muted); }


.home-agent { margin-top: 1rem; }
.home-agent > summary {
  list-style: none; display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer;
  font-size: 0.86rem; color: var(--accent);
}
.home-agent > summary::-webkit-details-marker { display: none; }
.home-agent > summary::after { content: "+"; }
.home-agent[open] > summary::after { content: "\2212"; }
.home-agent .ai-agent-boot { margin-top: 0.8rem; }
.home-agent .ai-questions__note { font-size: 0.82rem; color: var(--muted); }
.home-agent pre {
  margin: 0.7rem 0; padding: 0.8rem 0.9rem; border-radius: 10px;
  white-space: pre-wrap; font-size: 0.78rem; line-height: 1.55;
  background: var(--code-bg); color: var(--code-ink);
}
.site-footer__name a { color: inherit; }


.home-about__actions { align-items: center; }
.home-about__credit { flex-basis: 100%; margin-top: 0.1rem; font-size: 0.9rem; }
.home-agent__lede { margin-top: 0.8rem; font-size: 0.86rem; line-height: 1.6; color: var(--muted); }
.home-agent .ai-questions__set-title { margin-top: 0.9rem; font-size: 0.8rem; font-weight: 600; color: var(--ink-soft); }


.site-footer__lineage { padding-top: 0.4rem; font-size: 0.8rem; line-height: 1.55; color: var(--faint); }
.site-footer__lineage > span { display: block; max-width: 64ch; }
.site-footer__lineage a { color: var(--muted); }


.home h1, .home h2, .home h3 { text-wrap: balance; }
.home main p { text-wrap: pretty; }

@media (min-width: 48em) {
  .home main p a[data-link-kind="exogenous"] { white-space: nowrap; }
}


.home-agent__more { margin-top: 0.6rem; font-size: 0.86rem; }



.home-results { padding-top: clamp(76px, 10vh, 112px); }
.home-results__inner { padding-top: 2.1rem; border-top: 1px solid var(--home-line); }
/* The band keeps focus for its arrow keys (tabindex="-1", never a Tab stop),
   and an in-page jump or a result's own link lands it there. The ring the
   [tabindex] rule draws would box the whole band, 1320px wide, for every
   reader who arrives at #result (8 October 2026); as with main#main, the
   ring goes, and the band's own rule takes the accent, so a keyboard reader
   still sees which band holds focus. */
.home-results:focus-visible { outline: none; }
.home-results:focus-visible .home-results__inner { border-top-color: var(--accent); }
.home-results__head {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 1rem 2rem;
}
.home-results__head h2 {
  margin: 0; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.016em;
}
.home-results__head p { margin: 0.6rem 0 0; max-width: 60ch; font-size: 1rem; line-height: 1.6; color: var(--muted); }
.home-results__controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem; max-width: 100%; }
.home-results__count { min-width: 3.8em; text-align: center; font-family: var(--font-serif); font-size: 1rem; color: var(--ink-soft); font-variant-numeric: lining-nums tabular-nums; }
.home-results__arrow, .home-credit__arrow {
  width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--home-line-strong); cursor: pointer;
  display: inline-grid; place-items: center; font: inherit; font-size: 1.1rem; line-height: 1;
  color: var(--ink); background: transparent;
  transition: background var(--motion-fast) var(--ease-out);
}
.home-results__arrow:hover, .home-credit__arrow:hover:not(:disabled) { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.home-results__arrow:focus-visible, .home-credit__arrow:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.home-credit__arrow:disabled { opacity: 0.38; cursor: default; }
.home-results:not(.is-live) .home-results__controls { display: none; }

.home-results__window { margin-top: clamp(1.8rem, 4vh, 2.6rem); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; }
.home-results.is-live .home-results__window { overflow: visible; }
.home-results.is-live .home-results__track { display: block; touch-action: pan-y pinch-zoom; }
.home-results.is-live .home-result-slide:not(.is-active) { display: none; }
.home-results__track { list-style: none; margin: 0; padding: 0; display: flex; align-items: flex-start; }
.home-result-slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; scroll-snap-align: start; padding: 0 0 3px; scroll-margin-top: 6rem; }
.home-result-slide__reading { max-width: 84ch; margin-inline: 0; }
.home-result-slide__problem { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1.2rem; margin: 0 0 0.6rem; font-size: 0.95rem; font-weight: 600; color: var(--home-ember); }
.home-result-slide__status { color: var(--muted); font-weight: 400; }
.home-result-slide__headline { margin: 0 0 1.1rem; max-width: 22ch; font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.55rem, 2.45vw, 2.2rem); line-height: 1.16; letter-spacing: -0.01em; color: var(--ink); text-wrap: balance; }
.home-result-slide__statement {
  position: relative; margin: 0; max-width: 64ch; padding-left: clamp(1rem, 1.6vw, 1.4rem);
  font-family: var(--font-serif); font-size: clamp(1.1rem, 1.45vw, 1.26rem); line-height: 1.6; color: var(--ink);
  hanging-punctuation: first last;
}

.home-result-slide__statement::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: color-mix(in oklab, var(--home-ember) 62%, transparent);
  transform-origin: 50% 0;
}
@media (prefers-reduced-motion: no-preference) {
  .home-results.is-turned .home-result-slide.is-active .home-result-slide__reading { animation: home-result-settle 300ms var(--ease-out) both; }
  .home-results.is-turned .home-result-slide.is-active .home-result-slide__statement::before { animation: home-result-pen 560ms var(--ease-emph, var(--ease-out)) 60ms both; }
}
@keyframes home-result-settle { from { opacity: 0; } to { opacity: 1; } }
@keyframes home-result-pen { from { transform: scaleY(0); } to { transform: scaleY(1); } }

.home-results .math[data-math-rendered] { font-feature-settings: normal; white-space: normal; }
.home-results .math.inline[data-math-compact],
.home-results .math.inline[data-math-compact] mjx-math,
.home-results .math.inline[data-math-compact] mjx-break { white-space: nowrap; }
.home-results .math mjx-container { overflow-wrap: normal; }
.home-results .math.display {
  display: block; max-width: 100%; margin: 0.8em 0; padding-block: 0.25em;
  overflow-x: auto; overflow-y: hidden; scrollbar-width: thin;
  text-align: left; overscroll-behavior-x: contain;
}
.home-results .math.display mjx-container[display="true"] { margin: 0; text-align: left; }
.home-results .math.display mjx-container[display="true"] mjx-math { white-space: nowrap; }
.home-result-slide__why { margin: 1.15rem 0 0; max-width: 76ch; font-size: 1rem; line-height: 1.58; color: var(--ink-soft); }
.home-result-slide__why strong, .home-result-slide__open strong { font-weight: 600; color: var(--ink); }
.home-result-slide__open { margin: 0.75rem 0 0; max-width: 78ch; font-size: 1rem; line-height: 1.58; color: var(--ink-soft); }
.home-result-slide__evidence { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 1.5rem; margin: 1.4rem 0 0; padding-top: 0.55rem; border-top: 1px solid var(--home-line); font-size: 1rem; }
.home-result-slide__evidence a { display: inline-flex; align-items: center; min-height: 2.5rem; font-weight: 600; }

.home-result-slide__checks { grid-area: checks; margin: 0.5rem 0 0; max-width: 78ch; font-size: 0.92rem; line-height: 1.55; color: var(--muted); text-wrap: pretty; }
.home-result-slide__checks strong { font-weight: 600; color: var(--ink-soft); }
/* The contents (Type B reviews, 6 October 2026): every result by its
   problem and its short title, so a reader goes straight to any of the
   twelve instead of paging through them. It sits between the heading and the
   open result, so its place never depends on how tall that result is, and
   it reads as the index of a scholarly spread: quiet rows read across, in
   the order the arrows and the count walk the results (columns read down
   used to put #257, the second result, under the first), a serif number
   and a title, the open entry marked by the ember rule its statement
   carries below. Selection changes colour and the rule only, never
   weight, so no title rewraps; focus is its own outline. landing.js builds
   it from each slide's data-result-label; without the script the strip
   below already shows them all. */
.home-results__contents { margin-top: clamp(1.4rem, 3vh, 2rem); }
.home-results__contents ol {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: clamp(1rem, 2.4vw, 2.4rem);
}
@media (max-width: 900px) { .home-results__contents ol { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.home-results__contents ol { margin-left: -0.75rem; }
.home-results__contents li { break-inside: avoid; }
.home-results__entry {
  position: relative;
  display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); column-gap: 0.4rem; align-items: baseline;
  width: 100%; min-height: 2.6rem; margin: 0; padding: 0.42rem 0.4rem 0.42rem 0.75rem; border: 0; border-radius: 4px;
  background: none; text-align: left; cursor: pointer;
  font: inherit; font-size: 0.92rem; line-height: 1.35; color: var(--muted);
  transition: color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);
}
.home-results__entry::before {
  content: ""; position: absolute; left: 0; top: 0.55rem; bottom: 0.55rem; width: 2px; border-radius: 1px;
  background: color-mix(in oklab, var(--home-ember) 62%, transparent);
  transform: scaleY(0); transform-origin: 50% 0;
  transition: transform var(--motion-ui, 220ms) var(--ease-out);
}
.home-results__entry-num { font-family: var(--font-serif); font-size: 1.04em; font-variant-numeric: lining-nums tabular-nums; color: var(--faint); transition: color var(--motion-fast) var(--ease-out); }
.home-results__entry:hover { color: var(--ink); background: color-mix(in srgb, var(--ink) 3.5%, transparent); }
.home-results__entry:hover .home-results__entry-num { color: var(--ink-soft); }
.home-results__entry:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.home-results__entry[aria-current="true"] { color: var(--ink); }
.home-results__entry[aria-current="true"]::before { transform: scaleY(1); }
.home-results__entry[aria-current="true"] .home-results__entry-num { color: var(--home-ember); }
@media (prefers-reduced-motion: reduce) { .home-results__entry::before { transition: none; } }

.home-results__window {
  --folio-sheet: #fcf7ee; --folio-edge: rgba(25, 21, 32, 0.10);
  
  --page: var(--folio-sheet);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .home-results__window { --folio-sheet: #231b2f; --folio-edge: rgba(242, 230, 212, 0.085); }
}
:root[data-theme="dark"] .home-results__window { --folio-sheet: #231b2f; --folio-edge: rgba(242, 230, 212, 0.085); }
.home-results__window {
  background: var(--folio-sheet); color: var(--ink);
  border-radius: 2px; box-shadow: 0 0 0 1px var(--folio-edge);
  padding: clamp(1.6rem, 4.2vw, 3.6rem) clamp(1.25rem, 4.4vw, 4rem) clamp(1.4rem, 3.2vw, 2.6rem);
}
@media (max-width: 600px) {
  .home-results__window { margin-inline: -20px; border-radius: 0; padding-inline: 20px; }
}

.home-results__window .home-result-slide__statement {
  font-size: clamp(1.18rem, 0.55rem + 1.3vw, 1.62rem); line-height: 1.52;
}
.home-results__window .home-result-slide__headline {
  font-size: clamp(1.45rem, 0.9rem + 1.3vw, 2rem); line-height: 1.14;
}
.home-results__window .home-result-slide__why,
.home-results__window .home-result-slide__open { font-size: 1.02rem; line-height: 1.62; }
.home-results__window .home-result-slide__why strong,
.home-results__window .home-result-slide__open strong {
  font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 1.06em;
}

.home-result-plate { margin: 1.3rem 0 0; width: min(100%, 40rem); }
.home-result-plate__drawing { width: 100%; }
.home-result-plate__words { margin: 1rem 0 0; max-width: 62ch; }
.home-result-plate__intuitive, .home-result-plate__technical {
  margin: 0; font-family: var(--font-serif); line-height: 1.55; color: var(--ink-soft); text-wrap: pretty;
}
.home-result-plate__intuitive { font-size: clamp(1.06rem, 0.62rem + 0.62vw, 1.24rem); }
.home-result-plate__technical { font-size: clamp(0.98rem, 0.68rem + 0.42vw, 1.1rem); line-height: 1.6; }
.home-result-plate__technical p { margin: 0; }
.home-result-plate__technical p + p { margin-top: 0.85em; }
.home-result-plate__lead, .home-result-plate__continuation { display: block; }
.home-result-plate__continuation { margin-top: 0.85em; }
.home-result-plate__hint { display: none; }
.home-results.is-live .home-result-plate__hint {
  display: block; margin-bottom: 0.8rem;
  font-family: var(--font-sans); font-size: 0.85rem; color: var(--muted);
}
.home-results:not(.is-live) .home-result-plate__technical { margin-top: 0.85rem; }
.home-results.is-live:not([data-results-mode="technical"]) .home-result-plate__technical,
.home-results.is-live[data-results-mode="technical"] .home-result-plate__intuitive { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .home-results.is-live .home-result-plate__words > * { animation: home-result-settle 240ms var(--ease-out) both; }
}

.home-results__switch {
  position: relative; isolation: isolate; margin-right: 0.5rem;
  display: grid; grid-template-columns: 1fr 1fr; padding: 3px;
  border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-results__mode {
  position: relative; z-index: 1; min-height: 34px; padding: 0.38rem 1.05rem;
  border: 0; border-radius: var(--r-pill); background: transparent; cursor: pointer;
  font: inherit; font-size: 0.88rem; font-weight: 600; line-height: 1.2; color: var(--muted);
  transition: color var(--motion-fast) var(--ease-out);
}
.home-results__mode[aria-pressed="true"] { color: var(--ink); }
.home-results__mode:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .home-results__mode:hover { color: var(--ink); }
}
.home-results__thumb {
  position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px);
  border-radius: var(--r-pill); pointer-events: none;
  background: color-mix(in srgb, var(--ink) 8%, var(--surface));
  box-shadow: 0 0 0 1px var(--home-line-strong);
  transition: transform 320ms var(--atlas-ease, var(--ease-out));
}
.home-results[data-results-mode="technical"] .home-results__thumb { transform: translateX(100%); }
@media (prefers-reduced-motion: reduce) { .home-results__thumb { transition: none; } }

.home-result-slide__more {
  display: flex; align-items: center; width: 100%; min-height: 2.75rem;
  margin: 1.5rem 0 0; padding: 0.6rem 0 0;
  border: 0; border-top: 1px solid var(--home-line-strong); background: none; cursor: pointer;
  font: inherit; font-size: 0.98rem; font-weight: 600; text-align: left; color: var(--accent);
}
.home-result-slide__more:hover { color: var(--accent-strong); }
.home-result-slide__more:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.home-results:not(.is-live) .home-result-slide__more { display: none; }
.home-result-slide__theorem { display: grid; grid-template-rows: 1fr; }
.home-result-slide__theorem-body { min-height: 0; padding-top: clamp(1.2rem, 2.4vw, 1.9rem); }
.home-results.is-live .home-result-slide__theorem {
  grid-template-rows: 0fr; visibility: hidden; opacity: 0;
  transition: grid-template-rows 460ms var(--ease-out), opacity 260ms var(--ease-out), visibility 0s linear 460ms;
}
.home-results.is-live .home-result-slide__theorem-body { overflow: hidden; }
.home-results.is-live.is-theorem-open .home-result-slide__theorem {
  grid-template-rows: 1fr; visibility: visible; opacity: 1;
  transition: grid-template-rows 460ms var(--ease-out), opacity 380ms var(--ease-out) 80ms, visibility 0s;
}
@media (prefers-reduced-motion: no-preference) {
  .home-results.is-live.is-theorem-open .home-result-slide.is-active .home-result-slide__statement::before {
    animation: home-result-pen 620ms var(--ease-emph, var(--ease-out)) 160ms both;
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-results.is-live .home-result-slide__theorem,
  .home-results.is-live.is-theorem-open .home-result-slide__theorem { transition: none; }
}

.home-explainer { max-width: 62ch; }
.home-explainer-crux { max-width: 64ch; }
.home-explainer-crux .home-explainer-plate { max-width: 100%; }
.home-explainer__original {
  position: relative; margin: 1.2rem 0 0; padding-left: clamp(1rem, 1.6vw, 1.4rem);
  font-family: var(--font-serif); font-size: clamp(1.08rem, 0.7rem + 0.55vw, 1.24rem); line-height: 1.55; color: var(--ink);
}
.home-explainer__original::before {
  content: ""; position: absolute; left: 0; top: 0.2em; bottom: 0.2em; width: 2px;
  background: color-mix(in oklab, var(--home-ember) 62%, transparent);
}
.home-explainer__original p { margin: 0; }
.home-explainer__original footer { margin-top: 0.45rem; font-family: var(--font-sans, inherit); font-size: 0.86rem; color: var(--muted); }
.home-explainer__asks, .home-explainer__example { margin: 1rem 0 0; font-size: 1.02rem; line-height: 1.62; color: var(--ink-soft); text-wrap: pretty; }
.home-explainer__summary > p { margin: 0 0 0.75rem; }
.home-explainer__summary > p:last-child { margin-bottom: 0; }
.home-explainer strong, .home-explainer__crux strong {
  font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 1.06em; color: var(--ink);
}
.home-explainer-plate { margin: 1.4rem 0 0; width: min(100%, 40rem); }
.home-explainer-plate__drawing { width: 100%; }
.home-explainer__crux {
  margin: 0.9rem 0 0; max-width: 64ch; font-family: var(--font-serif);
  font-size: clamp(1.02rem, 0.66rem + 0.5vw, 1.16rem); line-height: 1.58; color: var(--ink-soft); text-wrap: pretty;
}

.home-explainer__more {
  display: inline-flex; align-items: center; min-height: 2.25rem; margin: 0.15rem 0 0; padding: 0.2rem 0;
  border: 0; background: none; cursor: pointer;
  font: inherit; font-size: 0.92rem; font-weight: 600; color: var(--accent);
}
.home-explainer__more:hover { color: var(--accent-strong); }
.home-explainer__more:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.home-results:not(.is-live) .home-explainer__more { display: none; }
.home-explainer__full { display: grid; grid-template-rows: 1fr; }
.home-explainer__full-body {
  min-height: 0; margin-top: 0.35rem; padding: 0.15rem 0 0.2rem clamp(0.9rem, 1.4vw, 1.2rem);
  border-left: 1px solid var(--home-line-strong);
  font-size: 1rem; line-height: 1.64; color: var(--ink-soft);
}
.home-explainer__part--crux .home-explainer__full-body { font-family: var(--font-serif); font-size: clamp(1rem, 0.7rem + 0.4vw, 1.1rem); }
.home-explainer__full-body > p { margin: 0 0 0.8rem; text-wrap: pretty; }
.home-explainer__full-body > p:last-child { margin-bottom: 0; }
.home-explainer__full-body > ol, .home-explainer__full-body > ul { margin: 0 0 0.85rem; padding-left: 1.3rem; }
.home-explainer__full-body li { margin: 0 0 0.4rem; padding-left: 0.2rem; }
.home-explainer__full-body li::marker { color: var(--home-ember); font-family: var(--font-serif); }
.home-explainer__full-body > .math.display { margin: 0.2rem 0 0.9rem; }
.home-explainer__full-body strong { font-family: inherit; font-style: normal; font-weight: 600; font-size: 1em; color: var(--ink); }
.home-results.is-live .home-explainer__full {
  grid-template-rows: 0fr; visibility: hidden; opacity: 0;
  transition: grid-template-rows 420ms var(--ease-out), opacity 240ms var(--ease-out), visibility 0s linear 420ms;
}
.home-results.is-live .home-explainer__full-body { overflow: hidden; }
.home-results.is-live .home-explainer__part.is-open .home-explainer__full {
  grid-template-rows: 1fr; visibility: visible; opacity: 1;
  transition: grid-template-rows 420ms var(--ease-out), opacity 340ms var(--ease-out) 60ms, visibility 0s;
}
.home-results.is-live .home-explainer__part:not(.is-open) .home-explainer__full-body { margin-top: 0; padding-block: 0; }
@media (prefers-reduced-motion: reduce) {
  .home-results.is-live .home-explainer__full,
  .home-results.is-live .home-explainer__part.is-open .home-explainer__full { transition: none; }
}

.home-results.is-live .home-explainer__part:has(> .home-explainer__more) > .home-explainer__summary { cursor: pointer; }

.home-result-slide__open-result {
  display: flex; align-items: center; width: 100%; min-height: 2.9rem;
  margin: clamp(1.4rem, 2.6vw, 2.2rem) 0 0; padding: 0.7rem 0 0;
  border: 0; border-top: 1px solid var(--home-line-strong); background: none; cursor: pointer;
  font: inherit; font-size: 1.04rem; font-weight: 600; text-align: left; color: var(--accent);
}
.home-result-slide__open-result:hover { color: var(--accent-strong); }
.home-result-slide__open-result:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.home-results:not(.is-live) .home-result-slide__open-result { display: none; }
.home-result-slide__result { display: grid; grid-template-rows: 1fr; }
.home-result-slide__result-body { min-height: 0; padding-top: clamp(1.4rem, 2.8vw, 2.2rem); }
.home-results.is-live .home-result-slide__result {
  grid-template-rows: 0fr; visibility: hidden; opacity: 0;
  transition: grid-template-rows 520ms var(--ease-out), opacity 280ms var(--ease-out), visibility 0s linear 520ms;
}
.home-results.is-live .home-result-slide__result-body { overflow: hidden; }

.home-results.is-live:not(.is-result-open) .home-result-slide__result-body { padding-top: 0; }
.home-results.is-live.is-result-open .home-result-slide__result {
  grid-template-rows: 1fr; visibility: visible; opacity: 1;
  transition: grid-template-rows 520ms var(--ease-out), opacity 400ms var(--ease-out) 80ms, visibility 0s;
}
@media (prefers-reduced-motion: reduce) {
  .home-results.is-live .home-result-slide__result,
  .home-results.is-live.is-result-open .home-result-slide__result { transition: none; }
}
.home-result-slide__kicker { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1.2rem; margin: 0 0 0.6rem; font-size: 0.95rem; font-weight: 600; color: var(--home-ember); }
.home-result-slide__result-title {
  margin: 0 0 1rem; max-width: 26ch; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.3rem, 0.85rem + 1vw, 1.7rem); line-height: 1.18; color: var(--ink); text-wrap: balance;
}

.home-results.is-live:not(.is-result-open) .home-results__switch { visibility: hidden; }

.home-results.is-live .home-result-slide__result-body:not(:has(> .home-result-plate)) .home-result-slide__more { display: none; }
.home-results.is-live .home-result-slide__result-body:not(:has(> .home-result-plate)) .home-result-slide__theorem {
  grid-template-rows: 1fr; visibility: visible; opacity: 1; transition: none;
}
@media (min-width: 961px) {
  
  
  .home-result-slide__reading {
    --result-gutter: clamp(36px, 4.4vw, 68px);
    display: grid; max-width: none;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "problem  problem  problem  problem  problem  diagram diagram diagram diagram diagram diagram diagram"
      "explain  explain  explain  explain  explain  diagram diagram diagram diagram diagram diagram diagram"
      "crux     crux     crux     crux     crux     crux    crux    crux    crux    crux    crux    crux"
      "openres  openres  openres  openres  openres  openres openres openres openres openres openres openres"
      "result   result   result   result   result   result  result  result  result  result  result  result";
    grid-template-rows: auto 1fr auto auto auto;
    column-gap: var(--result-gutter);
  }
  .home-result-slide__problem { grid-area: problem; }
  .home-explainer { grid-area: explain; }
  .home-explainer-crux { display: contents; }
  .home-explainer-crux .home-explainer-plate {
    grid-area: diagram; align-self: start; justify-self: end;
    margin: 0; width: min(100%, calc(60vh * 1.44)); max-width: none;
  }
  .home-explainer-crux > .home-explainer__part--crux { grid-area: crux; margin-top: 0.75rem; }
  .home-explainer__crux {
    max-width: none; columns: 2; column-gap: var(--result-gutter);
    font-size: 1.06rem;
  }
  .home-explainer__crux > p:not(:only-child) { break-inside: avoid; }
  .home-explainer__part--crux .home-explainer__full-body { max-width: 78ch; }
  .home-result-slide__open-result { grid-area: openres; }
  .home-result-slide__result { grid-area: result; }
  
  .home-result-slide__result-body {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "kicker   kicker   kicker   kicker   kicker   plate   plate   plate   plate   plate   plate   plate"
      "title    title    title    title    title    plate   plate   plate   plate   plate   plate   plate"
      "words    words    words    words    words    plate   plate   plate   plate   plate   plate   plate"
      "more     more     more     more     more     plate   plate   plate   plate   plate   plate   plate"
      "theorem  theorem  theorem  theorem  theorem  theorem theorem theorem theorem theorem theorem theorem";
    grid-template-rows: auto auto auto 1fr auto;
    column-gap: var(--result-gutter);
  }
  .home-result-slide__kicker { grid-area: kicker; }
  .home-result-slide__result-title { grid-area: title; align-self: start; margin: 0; max-width: 24ch; }
  
  .home-result-plate {
    grid-area: plate; align-self: start; justify-self: end;
    width: min(100%, calc(68vh * 1.44)); margin: 0;
  }
  .home-result-plate__words { grid-area: words; margin-top: clamp(1.1rem, 2.2vw, 1.7rem); }
  .home-result-slide__more { grid-area: more; align-self: end; }
  .home-result-slide__theorem { grid-area: theorem; }
  
  .home-results.is-live .home-result-slide__result-body {
    grid-template-areas:
      "kicker kicker kicker kicker kicker plate plate plate plate plate plate plate"
      "title title title title title plate plate plate plate plate plate plate"
      "words words words words words plate plate plate plate plate plate plate"
      "continuation continuation continuation continuation continuation continuation continuation continuation continuation continuation continuation continuation"
      "replay replay replay replay replay replay replay replay replay replay replay replay"
      "more more more more more more more more more more more more"
      "theorem theorem theorem theorem theorem theorem theorem theorem theorem theorem theorem theorem";
    grid-template-rows: auto auto 1fr auto auto auto auto;
  }
  .home-results.is-live .home-result-plate__words,
  .home-results.is-live:not([data-results-mode="technical"]) .home-result-plate__intuitive,
  .home-results.is-live[data-results-mode="technical"] .home-result-plate__technical { display: contents; }
  .home-results.is-live .home-result-plate__lead { grid-area: words; margin-top: 1.1rem; }
  .home-results.is-live .home-result-plate__continuation {
    grid-area: continuation; columns: 2; column-gap: var(--result-gutter);
    margin-top: 1.2rem; max-width: none;
  }
  .home-results.is-live .home-result-plate__continuation > * { break-inside: avoid; }
  .home-results.is-live .home-result-plate__replay { grid-area: replay; justify-self: start; }
  .home-result-slide__theorem-body {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-areas:
      "statement statement statement statement statement statement statement why      why      why      why      why"
      "statement statement statement statement statement statement statement open     open     open     open     open"
      "evidence  evidence  evidence  evidence  evidence  evidence  evidence  evidence evidence evidence evidence evidence"
      "checks    checks    checks    checks    checks    checks    checks    checks   checks   checks   checks   checks";
    grid-template-rows: auto 1fr auto auto;
    column-gap: var(--result-gutter);
  }
  .home-result-slide__statement { grid-area: statement; align-self: start; max-width: 62ch; }
  
  .home-result-slide__why, .home-result-slide__open {
    margin-top: 0; padding-top: 1.05rem; max-width: none;
    padding-right: max(0px, calc(100% - 66ch));
    border-top: 1px solid var(--home-line-strong);
  }
  .home-result-slide__open { margin-top: clamp(1rem, 1.8vw, 1.4rem); }
  .home-result-slide__why { grid-area: why; }
  .home-result-slide__open { grid-area: open; }
  .home-result-slide__evidence { grid-area: evidence; margin-top: clamp(1.6rem, 3vw, 2.4rem); }
}

@media (max-width: 600px) {
  .home-results__head { gap: 1rem; }
  
  .home-results__controls { flex-wrap: wrap; row-gap: 0.75rem; }
  .home-results__switch { flex: 1 1 100%; margin-right: 0; }
  .home-result-slide__headline { font-size: 1.55rem; }
  .home-result-slide__evidence { gap: 0.1rem 1.2rem; }
}


.home-results { scroll-margin-top: calc(1rem - clamp(76px, 10vh, 112px)); }
.home-results__head p { max-width: 80ch; }
.home-results.has-overview .home-results__head > div:first-child { flex: 1 1 20rem; min-width: 0; max-width: none; }
.home-results__preview { display: none; }
.home-results__preview[hidden], .home-results__views[hidden],
.home-results__arrow[hidden] { display: none; }
.home-results__views { display: flex; gap: 0.25rem; align-items: center; }
.home-results__view {
  min-height: 2.25rem; padding: 0.5rem 0.7rem; border: 0; border-radius: 4px;
  background: transparent; color: var(--muted); font: inherit;
  font-size: 0.9rem; cursor: pointer;
  transition: color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);
}
.home-results__view:hover { color: var(--ink); }
.home-results__view[aria-pressed="true"] {
  color: var(--ink); background: color-mix(in srgb, var(--ink) 7%, transparent);
}
.home-results__view:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.home-results__mode:focus-visible,
.home-results__view:focus-visible { outline-offset: 1px; }
.home-results.is-overview .home-results__switch { display: none; }

.home-results__views {
  position: relative; isolation: isolate;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; padding: 3px; max-width: 100%;
  border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-results__views::before {
  content: ""; position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px;
  width: calc(50% - 3px); border-radius: var(--r-pill); pointer-events: none;
  background: color-mix(in srgb, var(--ink) 8%, var(--surface));
  box-shadow: 0 0 0 1px var(--home-line-strong);
  transition: transform 320ms var(--atlas-ease, var(--ease-out));
}
.home-results.has-overview:not(.is-overview) .home-results__views::before { transform: translateX(100%); }
.home-results__view {
  position: relative; z-index: 1; min-width: 0; min-height: 34px; padding: 0.38rem 1.05rem;
  border-radius: var(--r-pill); text-wrap: balance;
  font-size: 0.88rem; font-weight: 600; line-height: 1.2;
  transition: color var(--motion-fast) var(--ease-out);
}
.home-results__view[aria-pressed="true"] { background: transparent; }
.home-results__view:hover { color: var(--muted); }
.home-results__view[aria-pressed="true"]:hover { color: var(--ink); }
@media (hover: hover) and (pointer: fine) {
  .home-results__view:hover { color: var(--ink); }
}
@media (prefers-reduced-motion: reduce) { .home-results__views::before { transition: none; } }

.home-results.is-overview .home-results__count {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.home-results.is-overview .home-results__window { display: none; }

.home-results.is-overview .home-results__contents ol {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem 1.6rem; margin-left: 0;
}
.home-results.is-overview .home-results__entry {
  grid-template-columns: auto minmax(0, 1fr); gap: 0.2rem 0.6rem;
  align-items: baseline; padding: 0.6rem 0; border-radius: 0;
  border-top: 1px solid var(--home-line); color: var(--ink-soft);
}
.home-results.is-overview .home-results__entry::before { display: none; }
.home-results.is-overview .home-results__entry:hover { background: none; }
.home-results.is-overview .home-results__preview {
  display: flex; grid-column: 1 / -1; align-items: center;
  justify-content: center; width: 100%;
  /* Two rows of figures and names fit the first screen under the band's
     head. The head takes about 380px of a laptop's window once its sentence
     wraps beside the controls (8 October 2026: at 1440 by 790 the second
     row's names ended 10px under the fold with the 360px this assumed, and
     #result-overview is the film's capture entry). The placeholder below
     reserves the same room. */
  height: clamp(150px, calc((100svh - 380px) / 2), 250px);
  margin-bottom: 0.45rem;
}
.home-results__preview svg { width: 100%; height: 100%; object-fit: contain; overflow: visible; }

.home-results.is-overview .home-results__entry::after {
  content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px;
  background: var(--home-ember); pointer-events: none;
  transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform 180ms var(--ease-exit);
}
.home-results.is-overview .home-results__entry:focus-visible::after {
  transform: scaleX(1); transform-origin: 0 50%;
  transition: transform var(--motion-panel) var(--ease-emph);
}
.home-results.is-overview .home-results__entry-num { transition: color var(--motion-fast) var(--ease-out); }
.home-results.is-overview .home-results__entry:focus-visible .home-results__entry-num { color: var(--home-ember); }
@media (hover: hover) and (pointer: fine) {
  .home-results.is-overview .home-results__entry:hover::after {
    transform: scaleX(1); transform-origin: 0 50%;
    transition: transform var(--motion-panel) var(--ease-emph);
  }
  .home-results.is-overview .home-results__entry:hover .home-results__entry-num { color: var(--home-ember); }
}
@media (prefers-reduced-motion: reduce) {
  .home-results.is-overview .home-results__entry::after,
  .home-results.is-overview .home-results__entry:hover::after,
  .home-results.is-overview .home-results__entry:focus-visible::after { transition: none; }
}
.home-results.is-overview .home-results__entry[aria-current="true"] .home-results__entry-num { color: var(--faint); }
.home-results.is-overview .home-results__entry-name { font-size: 0.92rem; }
.home-results.has-overview .home-results__controls { flex-wrap: wrap; justify-content: flex-end; }

html.scripting .home-results:not(.is-live) .home-results__window { display: none; }
html.scripting .home-results:not(.is-live) .home-results__inner::after {
  content: ""; display: block;
  height: calc(2 * clamp(150px, calc((100svh - 380px) / 2), 250px) + 8.4rem);
}
@media (max-width: 700px) {
  .home-results__view-rest { display: none; }
  .home-results.is-overview .home-results__contents ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .home-results__views { flex-wrap: wrap; }
  .home-results.is-overview .home-results__preview { height: auto; aspect-ratio: 6 / 5; }
  html.scripting .home-results:not(.is-live) .home-results__inner::after { height: 150vw; }
  
  .home-results.has-overview:not(.is-overview) .home-results__controls {
    display: grid; grid-template-columns: 1fr auto auto auto;
    grid-template-areas: "mode mode mode mode" "views prev count next";
    align-items: center; gap: 0.75rem 0.4rem;
  }
  .home-results.has-overview:not(.is-overview) .home-results__switch { grid-area: mode; margin-right: 0; }
  .home-results.has-overview:not(.is-overview) .home-results__views { grid-area: views; justify-self: start; }
  .home-results.has-overview:not(.is-overview) [data-results-prev] { grid-area: prev; }
  .home-results.has-overview:not(.is-overview) .home-results__count { grid-area: count; min-width: 2.5em; }
  .home-results.has-overview:not(.is-overview) [data-results-next] { grid-area: next; }
  .home-results__view { padding: 0.38rem 0.8rem; }
}
@media (max-width: 600px) {
  .home-results.has-overview:not(.is-overview) .home-results__controls { flex: 1 1 100%; }
}

.home-results.has-overview .home-results__head { container-type: inline-size; }
@container (max-width: 309px) {
  .home-results.has-overview:not(.is-overview) .home-results__controls {
    grid-template-areas: "mode mode mode mode" "views views views views" ". prev count next";
  }
}

::view-transition-group(result-plate) {
  animation-duration: 460ms; animation-timing-function: cubic-bezier(0.2, 0, 0, 1);
}
::view-transition-old(result-plate), ::view-transition-new(result-plate) {
  animation-duration: 460ms; height: 100%; object-fit: contain;
}
html:not(.vt-theme)::view-transition-old(root),
html:not(.vt-theme)::view-transition-new(root) { animation-duration: 300ms; }


.home-result-plate__beat {
  display: block;
  transition: color 260ms var(--ease-out);
}

.home-result-plate__beat + .home-result-plate__beat { margin-top: 0.75em; }
.home-result-slide.is-telling .home-result-plate__beat { color: var(--faint); }
.home-result-slide.is-telling .home-result-plate__beat.is-read { color: var(--ink-soft); }
.home-result-slide.is-telling .home-result-plate__beat.is-reading,
.home-result-plate__beat.is-traced { color: var(--ink); }
.home-result-plate__replay {
  display: inline-flex; align-items: center; min-height: 2.25rem;
  margin: 0.55rem 0 0; padding: 0.3rem 0; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: 0.9rem; font-weight: 600; color: var(--accent);
}
.home-result-plate__replay:hover { color: var(--accent-strong); }
.home-result-plate__replay:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.home-results[data-results-mode="technical"] .home-result-plate__replay { display: none; }

.plate.is-pending .pl-stage { opacity: 0.1; transition: none; }
.plate.is-pending[data-underdrawing="none"] .pl-stage:not(.is-drawn) { opacity: 0; }
.plate.is-pending .pl-stage.is-drawn { opacity: 1; }

.home-results.is-live .home-result-plate__beat[data-step] { cursor: pointer; border-radius: 2px; }
.home-results.is-live .home-result-plate__beat[data-step]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.home-result-plate__replay[hidden] { display: none; }


html.vt-theme *, html.vt-theme *::before, html.vt-theme *::after {
  transition: none !important;
}
html.vt-theme::view-transition-old(root),
html.vt-theme::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
  opacity: 1;
}
html.vt-theme::view-transition-old(root) { z-index: 1; }
html.vt-theme::view-transition-new(root) { z-index: 2; }


html.is-explorer, html.is-explorer body { height: 100%; }
html.is-explorer body { overflow: hidden; }
html.is-explorer .docs-topbar__inner { width: auto; margin-inline: 0; padding-inline: 24px; }
.explorer {
  
  --explorer-panel: clamp(360px, 22vw + 130px, 660px);
  --explorer-pad: clamp(18px, 1.7vw, 28px);
  position: relative;
  display: grid; grid-template-columns: var(--explorer-panel) minmax(0, 1fr);
  height: calc(100dvh - var(--topbar-h) - 1px);
  background: var(--page);
}
html.is-map-fullscreen .docs-topbar { display: none; }
.explorer.is-fullscreen { position: fixed; inset: 0; z-index: 1000; width: 100%; height: 100dvh; }
html.is-map-fullscreen::backdrop { background: var(--page); }
.explorer__panel {
  position: relative; z-index: 2; min-height: 0;
  display: flex; flex-direction: column;
  border-right: 1px solid var(--home-line-strong);
  background: var(--page);
}
.explorer__head {
  flex: none; padding: 18px var(--explorer-pad) 14px;
  border-bottom: 1px solid var(--home-line);
}
.explorer__crumbs {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
  margin: 0 0 0.85rem;
}
.explorer__back {
  display: inline-flex; align-items: center; min-height: 24px;
  font-size: 0.875rem; color: var(--muted); text-decoration: none; white-space: nowrap;
}
.explorer__back:hover { color: var(--ink); text-decoration: none; }
.explorer__title {
  margin: 0; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.5rem, 1.1rem + 0.8vw, 1.95rem); line-height: 1.12; letter-spacing: -0.005em;
  color: var(--ink);
}
.explorer__lede {
  margin: 0.45rem 0 0; max-width: 46ch;
  font-size: 0.95rem; line-height: 1.5; color: var(--ink-soft);
}

.explorer__body {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  scrollbar-gutter: stable; scrollbar-width: thin;
  padding: 16px var(--explorer-pad) 40px;
}
.explorer__stage {
  position: relative; min-width: 0; min-height: 0; overflow: hidden;
  background: var(--page);
}
.explorer__stage > canvas, .explorer__stage > svg { display: block; width: 100%; height: 100%; }


.explorer__switch {
  position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; padding: 3px;
  border-radius: var(--r-pill);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.explorer__switch a {
  min-height: 30px; padding: 0.3rem 0.95rem; border-radius: var(--r-pill);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0.84rem; font-weight: 600; line-height: 1.2; color: var(--muted); text-decoration: none;
}
.explorer__switch a:hover { color: var(--ink); text-decoration: none; }
.explorer__switch a[aria-current="page"] {
  color: var(--ink);
  background: color-mix(in srgb, var(--ink) 8%, var(--surface));
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.explorer__switch a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }


.explorer__tools {
  position: absolute; z-index: 5; top: 14px; right: 14px;
  display: flex; align-items: center; gap: 6px;
}
.explorer__legend {
  position: absolute; z-index: 4; left: 18px; bottom: 14px; right: 18px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.2rem;
  pointer-events: none;
  font-size: 0.875rem; color: var(--muted);
}
.explorer__legend > * { pointer-events: auto; }
.explorer-tool {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: 36px; min-width: 36px; padding: 0 0.85rem;
  border: 0; border-radius: var(--r-pill); cursor: pointer;
  font: inherit; font-size: 0.85rem; font-weight: 600; line-height: 1; color: var(--ink-soft);
  background: color-mix(in srgb, var(--page) 78%, transparent);
  box-shadow: 0 0 0 1px var(--home-line-strong);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);
}
.explorer-tool--icon { padding: 0; width: 36px; font-size: 1.05rem; }
.explorer-tool svg { width: 15px; height: 15px; flex: none; }
.explorer-tool:hover { color: var(--ink); box-shadow: 0 0 0 1px var(--home-ember); }
.explorer-tool:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.explorer-tool[aria-pressed="true"] { color: var(--ink); box-shadow: 0 0 0 1px var(--home-ember); }
.explorer-tool[hidden] { display: none; }
.explorer__zoom { display: inline-flex; gap: 0; border-radius: var(--r-pill); box-shadow: 0 0 0 1px var(--home-line-strong); }
.explorer__zoom .explorer-tool { box-shadow: none; border-radius: 0; }
.explorer__zoom .explorer-tool:first-child { border-radius: var(--r-pill) 0 0 var(--r-pill); }
.explorer__zoom .explorer-tool:last-child { border-radius: 0 var(--r-pill) var(--r-pill) 0; border-left: 1px solid var(--home-line); }
.explorer__zoom .explorer-tool:hover { box-shadow: none; color: var(--home-ember); }


.explorer__views { display: none; }


.explorer.is-panel-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
.explorer.is-panel-collapsed .explorer__panel { visibility: hidden; overflow: hidden; border-right: 0; }
.explorer-tool__ico { display: inline-flex; line-height: 0; }


html.is-explorer .viewback { left: 16px; max-width: calc(clamp(340px, 28vw, 520px) - 32px); }
html.is-explorer .viewback.is-folded:not(:hover):not(:focus-visible) {
  width: auto; height: auto; padding: 0.55rem 1rem 0.55rem 0.82rem; gap: 0.45rem; justify-content: flex-start;
}
html.is-explorer .viewback.is-folded:not(:hover):not(:focus-visible) .viewback__label { display: inline; }
html.is-explorer.is-map-fullscreen .viewback { display: none; }
html.is-explorer body.has-viewback .explorer__panel { padding-bottom: 68px; }
html.is-explorer body.has-viewback .explorer__body { border-bottom: 1px solid var(--home-line); }
@media (max-width: 899px) {
  html.is-explorer .viewback { max-width: calc(100vw - 32px); }
  html.is-explorer body.has-viewback .explorer__legend { bottom: 64px; }
}

@media (max-width: 899px) {
  html.is-explorer body { overflow: auto; }
  .explorer {
    grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr);
    height: calc(100dvh - var(--topbar-h) - 1px);
  }
  .explorer__views {
    display: flex; gap: 6px; padding: 10px 16px;
    border-bottom: 1px solid var(--home-line);
  }
  .explorer__views .explorer-tool { flex: 1 1 0; }
  .explorer__panel, .explorer__stage { grid-row: 2; grid-column: 1; border-right: 0; }
  .explorer[data-explorer-shown="map"] .explorer__panel { visibility: hidden; pointer-events: none; }
  .explorer[data-explorer-shown="details"] .explorer__stage { visibility: hidden; pointer-events: none; }
  .explorer__head { padding: 14px 16px 12px; }
  .explorer__body { padding: 12px 16px 32px; }
  .explorer__tools { top: 10px; right: 10px; }
  .explorer__legend { left: 12px; bottom: 10px; font-size: 0.8125rem; }
  
  .explorer.is-panel-collapsed { grid-template-columns: minmax(0, 1fr); }
  .explorer.is-panel-collapsed .explorer__panel { visibility: visible; overflow: visible; }
  .explorer.is-panel-collapsed[data-explorer-shown="map"] .explorer__panel { visibility: hidden; }
  .explorer-tool--panel { display: none; }
}


.docs-layout--reference {
  width: min(1200px, calc(100% - 48px));
  grid-template-columns: minmax(0, 1fr);
}
.docs-layout--reference .docs-headrow { max-width: none; margin-bottom: 0.4rem; }
.docs-layout--reference .docs-article { max-width: none; }


.glossary-masthead {
  display: grid; grid-template-columns: minmax(0, 40rem) minmax(0, 1fr);
  column-gap: clamp(2rem, 4vw, 3.5rem); align-items: stretch;
}
.glossary-masthead__text { min-width: 0; }
.docs-article .glossary-masthead h1 {
  margin: 0.25rem 0 0.95rem;
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(3.25rem, 5.6vw, 5rem); line-height: 1; letter-spacing: -0.02em;
  color: var(--ink);
}
.docs-layout--reference .glossary-masthead .docs-lede {
  margin: 0; max-width: 62ch;
  font-family: var(--font-serif); font-size: 1.125rem; line-height: 1.5; color: var(--ink-soft);
}
.docs-layout--reference .glossary-guide { max-width: 72ch; margin: 0.6rem 0 0; }
.glossary-masthead__art { min-height: 8.5rem; }
html:has(body.docs-reference) .plait { transition-duration: 240ms; }



body.docs-nav-drawer .docs-menu-btn { display: inline-flex; }
body.docs-nav-drawer .docs-sidebar {
  position: fixed; left: 0; top: var(--topbar-h); z-index: 35;
  width: 280px; max-width: 86vw; height: calc(100dvh - var(--topbar-h));
  background: var(--page); border-right: 1px solid var(--rule);
  padding: 20px 16px 40px; box-shadow: var(--shadow);
  transform: translateX(-102%); visibility: hidden;
  transition: transform var(--dur-slow) var(--ease), visibility 0s linear var(--dur-slow);
}
body.docs-nav-drawer.nav-open { overflow: hidden; }
body.docs-nav-drawer.nav-open .docs-sidebar {
  transform: translateX(0); visibility: visible;
  transition: transform var(--dur-slow) var(--ease), visibility 0s;
}
body.docs-nav-drawer.nav-open::after {
  content: ""; position: fixed; inset: var(--topbar-h) 0 0 0; background: var(--scrim); z-index: 34;
}


html:has(body.docs-reference) {
  scroll-padding-top: calc(var(--topbar-h) + var(--glossary-bar-h, 0px) + 12px);
}
.glossary-bar {
  position: sticky; top: var(--topbar-h); z-index: 20;
  display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
  align-items: center; gap: 0.6rem 1.75rem;
  margin: 0.9rem 0 0; padding: 0.7rem 0 0.6rem;
  background: var(--page); border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong);
}
.glossary-bar .comp-controls { display: block; margin: 0; }
.glossary-bar .comp-toolbar { grid-template-columns: minmax(0, 1fr); gap: 0.3rem; }
.glossary-bar .comp-toolbar__label { font-size: 0.875rem; color: var(--ink-soft); }
.glossary-bar .comp-toolbar__input { min-height: 2.6rem; font-size: 1rem; border-color: var(--rule-control, var(--rule-strong)); }
.glossary-bar .comp-toolbar__input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.glossary-bar .comp-toolbar__status { font-size: 0.8125rem; color: var(--muted); }

html.scripting .glossary-bar .comp-toolbar[hidden] { display: grid; visibility: hidden; }
.glossary-bar .comp-toolbar__status { min-height: 1.5em; }
html:not(.scripting) .glossary-bar:has(.comp-toolbar[hidden]) { grid-template-columns: minmax(0, 1fr); }
.glossary-letters {
  display: flex; flex-wrap: wrap; gap: 2px; align-self: end;
  margin-bottom: 1.35rem;
}
.glossary-letters__link {
  display: inline-grid; place-items: center;
  min-width: 1.75rem; height: 1.85rem; padding: 0 0.2rem;
  border-radius: 6px;
  font-family: var(--font-serif); font-size: 1.0625rem; line-height: 1;
  color: var(--ink-soft); text-decoration: none;
  font-variant-numeric: lining-nums;
}
a.glossary-letters__link:hover { background: var(--surface-sunk); color: var(--accent-strong); text-decoration: none; }
a.glossary-letters__link:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.glossary-letters__link[aria-current] { color: var(--home-ember); background: var(--surface-sunk); box-shadow: inset 0 -2px 0 var(--home-ember); }
.glossary-letters__link.is-empty { color: var(--faint); opacity: 0.45; }


.glossary-essentials {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1.1rem;
  margin: 0.9rem 0 0;
}
.docs-article .glossary-essentials__title { margin: 0; padding: 0; font-family: var(--font-sans); font-size: 0.875rem; font-weight: 650; color: var(--ink-soft); }
.docs-article .glossary-essentials__list { display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; margin: 0; padding: 0; list-style: none; }
.docs-article .glossary-essentials__list li { margin: 0; }
.glossary-essentials__list a { font-size: 0.95rem; }


.docs-layout--reference .term-list { margin: 0.4rem 0 2.5rem; }
.glossary-group {
  display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); column-gap: 1.25rem;
  margin: 0; padding-top: 2.25rem;
}
.glossary-group:first-child { padding-top: 1.5rem; }
.glossary-group[hidden] { display: none; }

.docs-article .glossary-group__letter {
  grid-column: 1; align-self: start;
  position: sticky; top: calc(var(--topbar-h) + var(--glossary-bar-h, 0px) + 0.6rem);
  margin: 0; padding: 0.7rem 0 0; border: 0;
  font-family: var(--font-serif); font-size: 3.4rem; font-weight: 400; line-height: 1;
  letter-spacing: -0.02em; color: var(--home-ember);
  font-variant-numeric: lining-nums;
}
.docs-article #letter-num-title { padding-top: 1.1rem; font-size: 2.1rem; letter-spacing: -0.04em; }
.docs-main .glossary-group__terms { display: block; grid-column: 2; min-width: 0; border-top: 1px solid var(--rule-strong); }


.docs-layout--reference .term-card {
  --gl-head: minmax(10rem, 28%);
  --gl-gap: 2.25rem;
}
.docs-layout--reference .docs-main .dcard.term-card {
  border: 0; border-bottom: 1px solid var(--rule); border-radius: 0;
  background: none;
}
.docs-layout--reference .docs-main .term-card .dcard__summary {
  display: grid; grid-template-columns: var(--gl-head) minmax(0, 1fr);
  gap: 0.2rem var(--gl-gap); align-items: baseline;
  padding: 1.05rem 2.75rem 1.1rem 0;
}
.docs-layout--reference .docs-main .term-card .dcard__head {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0.2rem;
}
.docs-layout--reference .docs-main .term-card .dcard__name {
  font-family: var(--font-serif); font-size: 1.5rem; font-weight: 500; line-height: 1.15;
  letter-spacing: -0.01em; color: var(--ink); overflow-wrap: break-word;
}
.docs-layout--reference .term-card__kind {
  padding: 0; border: 0; border-radius: 0;
  font-size: 0.8125rem; letter-spacing: 0; color: var(--faint);
}
.docs-layout--reference .docs-main .term-card .dcard__plain {
  margin: 0; max-width: 62ch;
  font-family: var(--font-serif); font-size: 1.125rem; line-height: 1.5; color: var(--ink-soft);
}
.docs-layout--reference .docs-main .term-card .dcard__summary::after { top: 1.55rem; right: 0.9rem; }
.docs-layout--reference .docs-main .term-card .dcard__summary:hover .dcard__name { color: var(--accent-strong); }

.docs-layout--reference .docs-main .term-card .dcard__summary:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px;
}


.docs-layout--reference .docs-main .dcard.term-card[open] {
  background: none; box-shadow: 0 -1px 0 var(--ink-soft);
  border-bottom-color: var(--rule-strong);
}
.docs-layout--reference .docs-main .term-card[open] .dcard__summary { padding-top: 1.5rem; padding-bottom: 1.35rem; }
.docs-layout--reference .docs-main .term-card[open] .dcard__name {
  font-size: clamp(2rem, 3.1vw, 2.6rem); font-weight: 400; line-height: 1.05; letter-spacing: -0.02em;
}
.docs-layout--reference .docs-main .term-card[open] .dcard__plain {
  font-size: 1.3125rem; line-height: 1.45; color: var(--ink); max-width: 52ch;
}
.docs-layout--reference .docs-main .term-card[open] .dcard__summary::after { top: 2.05rem; }

.docs-layout--reference .term-card__body {
  display: block; padding: 1.35rem 0 2rem; border-top: 1px solid var(--rule);
}
.docs-layout--reference .term-card__phrase {
  margin: 0 0 1.1rem; max-width: 40ch;
  font-family: var(--font-serif); font-size: 1.6rem; font-weight: 400; line-height: 1.2;
  letter-spacing: -0.01em; color: var(--accent-strong);
}
.docs-layout--reference .term-card__columns {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  column-gap: 2.75rem; align-items: start;
}
.docs-layout--reference .term-card__explain,
.docs-layout--reference .term-card__limits { min-width: 0; }
.docs-layout--reference .term-card__limits { padding-left: 1.75rem; border-left: 1px solid var(--rule); }
.docs-layout--reference .term-card__limits > :first-child,
.docs-layout--reference .term-card__explain > :first-child { padding-top: 0; }
.docs-layout--reference .docs-main .term-card__body .dcard__deep,
.docs-layout--reference .docs-main .term-card__body .dcard__rel,
.docs-layout--reference .docs-main .term-card__body .dcard__refs {
  margin: 0; padding: 0 0 1.05rem; border: 0;
  font-family: var(--font-serif); font-size: 1.125rem; line-height: 1.65; color: var(--ink);
}
.docs-layout--reference .docs-main .term-card__limits .dcard__rel {
  font-size: 1.0625rem; line-height: 1.62; color: var(--ink-soft);
}
.docs-layout--reference .docs-main .term-card__body .dcard__rel-text { display: block; }
.docs-layout--reference .docs-main .term-card__body .dcard__label {
  display: block; margin: 0 0 0.3rem;
  font-family: var(--font-sans); font-size: 0.8125rem; font-weight: 650; letter-spacing: 0; text-transform: none;
  color: var(--muted);
}
.docs-layout--reference .docs-main .term-card__body .dcard__label--good { color: var(--accent-strong); }
.docs-layout--reference .docs-main .term-card__body .dcard__label--bad { color: var(--warn-warm); }
.docs-layout--reference .docs-main .term-card__body .term-card__example-route { display: block; margin-top: 0.45rem; font-family: var(--font-sans); font-size: 0.9375rem; }
.docs-layout--reference .docs-main .term-card__example-route .dcard__chip { margin-right: 0.5rem; font-family: var(--font-sans); font-size: 0.875rem; }


.docs-layout--reference .docs-main .term-card__body .term-card__rule {
  display: grid; grid-template-columns: var(--gl-head) minmax(0, 1fr); column-gap: var(--gl-gap);
  max-width: none; margin: 0.5rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid var(--rule);
}
.docs-layout--reference .docs-main .term-card__body .term-card__rule .dcard__label { margin: 0.4rem 0 0; color: var(--warn-warm); }
.docs-layout--reference .docs-main .term-card__body .term-card__rule .dcard__rel-text {
  max-width: 58ch; font-size: 1.25rem; line-height: 1.5; color: var(--ink);
}


.term-figure { margin: 0 0 1.35rem; }
.term-figure__drawing { display: block; width: 100%; max-width: 16rem; height: auto; overflow: visible; }
.term-figure__grid { stroke: var(--rule); stroke-width: 1; }
.term-figure__axis { stroke: var(--muted); stroke-width: 1; }
.term-figure__vector { fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.term-figure__vector--one { stroke: var(--accent); }
.term-figure__vector--two { stroke: var(--home-ember); }
.term-figure__label { fill: var(--ink); font-family: var(--font-serif); font-size: 14px; }
.term-figure__var { font-style: italic; }
.term-figure__sub { font-size: 10px; font-style: normal; }
.term-figure__caption {
  max-width: 34ch; margin-top: 0.6rem; padding-top: 0.55rem; border-top: 1px solid var(--rule);
  font-size: 0.8125rem; line-height: 1.5; color: var(--muted);
}
.term-figure__caption strong { color: var(--ink-soft); font-weight: 650; }


.docs-layout--reference .term-card__reference { margin-top: 1.1rem; padding-top: 0.6rem; border-top: 1px solid var(--rule); }
.docs-layout--reference .term-card__reference > summary {
  display: inline-flex; align-items: center; gap: 0.45rem; min-height: 2rem;
  cursor: pointer; list-style: none;
  font-size: 0.875rem; font-weight: 600; color: var(--muted);
}
.docs-layout--reference .term-card__reference > summary::-webkit-details-marker { display: none; }
.docs-layout--reference .term-card__reference > summary::before {
  content: ""; width: 6px; height: 6px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg); transition: transform var(--dur) var(--ease);
}
.docs-layout--reference .term-card__reference[open] > summary::before { transform: rotate(45deg); }
.docs-layout--reference .term-card__reference > summary:hover { color: var(--accent-strong); }
.docs-layout--reference .term-card__reference > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.docs-layout--reference .docs-main .term-card__reference .dcard__rel,
.docs-layout--reference .docs-main .term-card__reference .dcard__refs {
  max-width: 72ch; padding-bottom: 0.6rem;
  font-family: var(--font-sans); font-size: 0.9rem; line-height: 1.55; color: var(--ink-soft);
}


@supports (content-visibility: auto) {
  .docs-layout--reference .term-card { contain-intrinsic-size: auto 5.6rem; }
  .docs-layout--reference .term-card[open] { contain-intrinsic-size: auto 640px; }
}


@container (max-width: 900px) {
  .glossary-bar { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
  .glossary-letters { margin-bottom: 0; }
  .docs-layout--reference .term-card__columns { grid-template-columns: minmax(0, 1fr); }
  .docs-layout--reference .term-card__limits { padding: 1.05rem 0 0; border-left: 0; border-top: 1px solid var(--rule); }
}
@container (max-width: 760px) {
  .glossary-group { display: block; padding-top: 1.75rem; }
  .docs-article .glossary-group__letter,
  .docs-article #letter-num-title {
    position: static; padding: 0 0 0.4rem; font-size: 2.4rem; letter-spacing: -0.02em;
  }
  .docs-layout--reference .docs-main .term-card .dcard__summary { grid-template-columns: minmax(0, 1fr); gap: 0.35rem; padding-right: 2.25rem; }
  .docs-layout--reference .docs-main .term-card .dcard__head { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.6rem; }
  .docs-layout--reference .docs-main .term-card[open] .dcard__plain { font-size: 1.1875rem; }
  .docs-layout--reference .docs-main .term-card__body .term-card__rule { grid-template-columns: minmax(0, 1fr); }
  .docs-layout--reference .docs-main .term-card__body .term-card__rule .dcard__label { margin: 0 0 0.3rem; }
  .docs-layout--reference .docs-main .term-card__body .term-card__rule .dcard__rel-text { font-size: 1.125rem; }
}
@media (max-width: 860px) {
  .glossary-masthead { grid-template-columns: minmax(0, 1fr); }
  .glossary-masthead__art { display: none; }
}
@media (max-width: 768px) {
  .docs-layout--reference { width: calc(100% - 32px); }
  .glossary-bar { position: static; }
  html:has(body.docs-reference) { scroll-padding-top: calc(var(--topbar-h) + 8px); }
  .glossary-letters { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .glossary-letters__link { min-width: 2.4rem; height: 2.6rem; flex: none; }
}
@media print {
  .glossary-bar, .glossary-essentials, .glossary-masthead__art { display: none; }
  .docs-article .glossary-group__letter { position: static; }
  .docs-layout--reference .docs-main .dcard.term-card[open] { box-shadow: none; }
}


.home-funnel__steps { grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); row-gap: 0.75rem; }
@media (max-width: 700px) {
  .home-results.is-overview .home-results__contents ol {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, max(9rem, calc((100% - 1rem) / 2))), 1fr));
  }
}
@media (max-width: 600px) {
  .site-footer__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); }
}
@media (max-width: 350px) {
  .home-problem > a { grid-template-columns: minmax(0, 1fr); row-gap: 0.2rem; }
  .home-problem__status { grid-column: 1; }
}


.home-sibling {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center;
  gap: clamp(1.5rem, 3.5vw, 3.5rem); padding-block: clamp(2.5rem, 6vh, 4.5rem);
}
.home-sibling__shot {
  display: block; overflow: hidden; border-radius: 10px; background: #0d0a12;
  box-shadow: 0 0 0 1px var(--home-line-strong);
}
.home-sibling__shot img { display: block; width: 100%; height: auto; }
@media (hover: hover) and (pointer: fine) {
  .home-sibling__shot:hover { box-shadow: 0 0 0 1px var(--home-ice); }
}
.home-sibling__kind { margin: 0 0 0.35rem; font-size: 0.85rem; color: var(--muted); }
.home-sibling__text h2 {
  margin: 0 0 0.8rem; font-family: var(--font-serif); font-weight: 500;
  font-size: clamp(1.95rem, 3.2vw, 2.75rem); line-height: 1.08; letter-spacing: -0.016em;
}
.home-sibling__text > p:not([class]) { margin: 0; max-width: 46ch; color: var(--ink-soft); line-height: 1.6; text-wrap: pretty; }
.home-sibling__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.4rem; margin: 1.3rem 0 0; }
@media (max-width: 860px) {
  .home-sibling { grid-template-columns: minmax(0, 1fr); }
  .home-sibling__text { order: -1; }
}

a.home-sibling__shot[data-link-kind="exogenous"]::after { content: none; }


.home-film-note { margin-top: clamp(0.5rem, 1.5vh, 1rem); }
.home-film-note p {
  margin: 0; max-width: 68ch; font-size: 0.92rem; line-height: 1.6;
  color: var(--muted); text-wrap: pretty;
}
