/* 07-datasheet: the CV set as a technical datasheet.
   Swiss grid, black on white, one signal red. IBM Plex Sans, Mono and Serif.
   Two themes on <html data-theme>: light (native, also used without JavaScript and always in print) and dark.
   Contrast (WCAG 2.x, measured)
     Light: ink #0b0b0c on white 19.7:1; muted #5a5f66 on white 6.4:1, on tint 5.8:1;
            signal #d0021b on white 5.7:1, on tint #f4f4f2 5.1:1; white on signal 5.7:1; white on ink 19.7:1.
     Dark:  ink #ece7dd on ground #0f0f10 15.6:1, on panel 14.8:1, on bar #26262a 12.2:1;
            muted #a6a095 on ground 7.4:1, on tint 6.5:1, on bar 5.8:1;
            signal #ff4d4d on ground 5.9:1, on panel 5.6:1, on tint 5.2:1; ground on signal (selected cell, status labels) 5.9:1. */

/* Light: the native theme. :root:not([data-theme]) is the no-JavaScript case; print always uses these. */
:root, :root[data-theme="light"], :root:not([data-theme]) {
  --ink: #0b0b0c;
  --paper: #ffffff;
  --panel: #ffffff;
  --tint: #f4f4f2;
  --muted: #5a5f66;
  --rule: #0b0b0c;
  --rule-l: #cfd2d6;
  --rule-xl: #e7e8ea;
  --uline: #8a8f96;
  --signal: #d0021b;
  --on-signal: #ffffff;
  --bar: #0b0b0c;
  --on-bar: #ffffff;
  color-scheme: light;
}
/* Dark: a datasheet on a near-black ground. Warm off-white ink, grey rules, the signal red lifted so it
   reads as text; fills that carry text (status labels, the selected parameter) take ground-coloured text. */
@media screen {
  :root[data-theme="dark"] {
    --ink: #ece7dd;
    --paper: #0f0f10;
    --panel: #151517;
    --tint: #1d1d20;
    --muted: #a6a095;
    --rule: #837e75;
    --rule-l: #3a3936;
    --rule-xl: #29292a;
    --uline: #6f6a62;
    --signal: #ff4d4d;
    --on-signal: #0f0f10;
    --bar: #26262a;
    --on-bar: #ece7dd;
    color-scheme: dark;
  }
}
html:not([data-theme]) [data-theme-toggle] { display: none; }

:root {
  --sans: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --serif: "IBM Plex Serif", Georgia, "Times New Roman", serif;
  --wrap: 82.5rem;
  --gut: clamp(1rem, 3vw, 2.5rem);
  --navh: 2.75rem;
  --hang: 5.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 1.0625rem/1.55 var(--sans);
  font-kerning: normal;
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; text-decoration-color: var(--uline); }
a:hover { color: var(--signal); text-decoration-thickness: 2px; text-decoration-color: currentColor; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; }
main:focus { outline: none; }
[id] { scroll-margin-top: calc(var(--navh) + 1.25rem); }
#param-readout, #drawer-body { scroll-margin-top: calc(var(--navh) + 3.75rem); }
p { margin: 0 0 .75rem; }
.mono { font-family: var(--mono); font-size: .9375rem; }
.nowrap { white-space: nowrap; }
.frag__points, .com__pts, .notes ul { list-style-type: square; }
.dim { color: var(--muted); }
.block { display: block; }
.vh { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.k {
  font: 500 .75rem/1.4 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: .5rem;
}

.skip {
  position: absolute; left: 1rem; top: -5rem; z-index: 100;
  background: var(--bar); color: var(--on-bar); padding: .7rem 1rem;
  font: 500 .875rem var(--mono); text-decoration: none;
}
.skip:focus { top: 1rem; color: var(--on-bar); }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }

/* ---------- Masthead ---------- */
.mast { border-bottom: 2px solid var(--rule); }
.mast__bar {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding-block: .85rem .8rem;
  font: 500 .75rem/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase;
  border-bottom: 1px solid var(--rule);
}
.mast__bar a { text-decoration: none; }
.mast__bar a:hover { text-decoration: underline; }
/* Title block: the name across the top, then the key facts table and the revision box side by side.
   Source order is name, key facts, revision, so phones show the facts before the revision box. */
.mast__title {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 19.5rem;
  grid-template-areas: "name name" "kf rev";
  gap: 1.5rem 3rem;
  align-items: start;
  padding-block: 1.6rem 1.8rem;
}
.mast__name { grid-area: name; min-width: 0; }
.kf { grid-area: kf; min-width: 0; }
.revbox { grid-area: rev; }
.mast__kicker {
  display: flex; align-items: center; gap: .65rem;
  margin: 0 0 1.1rem;
  font: 500 .8125rem/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase;
}
.sig { width: .85rem; height: .85rem; background: var(--signal); flex: none; }
h1 {
  margin: 0;
  font: 700 clamp(2.75rem, .9rem + 7vw, 6.75rem)/.92 var(--sans);
  letter-spacing: -.045em;
}
.mast__headline {
  margin: 1.1rem 0 0;
  font: 400 clamp(1.2rem, .95rem + 1vw, 1.75rem)/1.25 var(--serif);
  max-width: 48ch;
}
.revbox { border: 1px solid var(--rule); font: 400 .8125rem/1.4 var(--mono); }
.revbox__h, .kf__h {
  margin: 0; padding: .45rem .75rem;
  background: var(--bar); color: var(--on-bar);
  font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
/* Key facts (kit.facts_strip): a two-column parameter table under a black bar, like the revision box. */
.kf { border: 1px solid var(--rule); background: var(--panel); container: kf / inline-size; }
.kf__h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .1rem 1rem; font: 500 .8125rem/1.4 var(--mono); letter-spacing: .08em; }
.kf__ref { font-weight: 400; letter-spacing: .04em; }
.facts { margin: 0; }
.facts__row { display: grid; grid-template-columns: 8.75rem minmax(0, 1fr); gap: .1rem 1rem; padding: .5rem .75rem .55rem; border-top: 1px solid var(--rule-l); }
.facts__row:first-child { border-top: 0; }
.facts__k { font: 500 .75rem/1.95 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.facts__v { margin: 0; font-size: 1rem; line-height: 1.45; }
.facts__strong { font-weight: 600; }
/* A narrow box (phones, landscape phones): each label sits above its value. */
@container kf (max-width: 560px) {
  .facts__row { grid-template-columns: minmax(0, 1fr); gap: 0; padding: .45rem .75rem .5rem; }
  .facts__k { line-height: 1.5; }
}
.revbox dl { margin: 0; }
.revbox dl > div { display: grid; grid-template-columns: 7.75rem minmax(0, 1fr); gap: .5rem; padding: .3rem .75rem; border-top: 1px solid var(--rule-l); }
.revbox dl > div:first-child { border-top: 0; }
.revbox dt { color: var(--muted); }
.revbox dd { margin: 0; }
.revbox__act { display: flex; flex-wrap: wrap; gap: .5rem; padding: .2rem .75rem .75rem; }
.revbox__act .btn { flex: 1 1 9rem; text-align: center; }
html:not([data-theme]) .revbox__act { display: none; }
/* Theme toggle: the label stays "Dark theme"; aria-pressed carries the state and fills the indicator square. */
.btn.btn--theme { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.btn--theme::before {
  content: ""; flex: none;
  width: .8rem; height: .8rem;
  border: 1px solid currentColor;
  background: transparent;
}
.btn--theme[aria-pressed="true"]::before { background: var(--signal); border-color: var(--signal); }

.btn, .btnlink, .trace {
  display: inline-block;
  font: 500 .75rem/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule);
  padding: .5rem .7rem;
  text-decoration: none;
  cursor: pointer;
}
.btn:hover, .btnlink:hover, .trace:hover { background: var(--ink); color: var(--paper); }
.trace[aria-current="true"] { background: var(--ink); color: var(--paper); }

/* ---------- Clause index (running header) ---------- */
.toc {
  position: sticky; top: 0; z-index: 20;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
}
.toc__in { position: relative; overflow-x: auto; scrollbar-width: none; }
.toc__in::-webkit-scrollbar { display: none; }
.toc ol { list-style: none; margin: 0; padding: 0; display: flex; }
.toc li { flex: 1 1 auto; }
.toc li + li a { border-left: 1px solid var(--rule-l); }
.toc a {
  display: block;
  height: var(--navh);
  padding: 0 .55rem;
  line-height: var(--navh);
  font: 500 .75rem/var(--navh) var(--mono); letter-spacing: .05em; text-transform: uppercase;
  white-space: nowrap; text-decoration: none; text-align: center;
}
.toc a:hover { background: var(--tint); color: var(--ink); }
.toc a[aria-current] { box-shadow: inset 0 -3px 0 var(--signal); }
.toc__n { color: var(--signal); font-weight: 600; }
.toc a:focus-visible { outline-offset: -3px; }

/* ---------- Clause headings ---------- */
.clause { padding-block: 2.75rem .5rem; }
.ch {
  display: flex; align-items: baseline; gap: .75rem;
  margin: 0 0 1.25rem;
  padding-top: .75rem;
  border-top: 2px solid var(--rule);
  font: 600 1.5rem/1.15 var(--sans); letter-spacing: -.012em;
}
.ch__n { font: 600 1rem/1 var(--mono); color: var(--signal); letter-spacing: 0; }
.sub-h {
  display: flex; align-items: baseline; gap: .6rem;
  margin: 0 0 .6rem;
  font: 600 1.0625rem/1.3 var(--sans);
}
.sub-h__n { font: 600 .8125rem/1 var(--mono); color: var(--signal); }
.intro { color: var(--muted); max-width: 68ch; margin-bottom: 1.25rem; }
.cap {
  margin: 0 0 .6rem;
  font: 500 .75rem/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  text-align: left;
}
.cap__n { color: var(--signal); font-weight: 600; margin-right: .5rem; }
.fine { color: var(--muted); max-width: 68ch; }

/* ---------- Front page: §1 to §3 ---------- */
.front {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  column-gap: 3rem;
  align-items: start;
}
.front__l, .front__r { min-width: 0; }

.clause--id {
  display: grid; grid-template-columns: 14rem minmax(0, 1fr); column-gap: 2rem;
  margin-top: 2.25rem; padding: .75rem 0 0;
  border-top: 2px solid var(--rule);
}
.clause--id .ch { border-top: 0; padding-top: 0; margin: 0; }
.idtab { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 1.5rem; }
.idtab > div { padding: .4rem 0 .45rem; border-top: 1px solid var(--rule-l); }
.idtab > div:nth-child(-n+4) { border-top: 0; padding-top: 0; }
.idtab dt { font: 500 .75rem/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.idtab dd { margin: .05rem 0 0; }

.sum { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 2.75rem; }
.lede { font: 400 1.0625rem/1.65 var(--serif); margin: 0 0 1.5rem; max-width: 66ch; }
.focus { list-style: none; margin: 0; padding: 0; counter-reset: f; border-top: 1px solid var(--rule); }
.focus li { counter-increment: f; display: grid; grid-template-columns: 3.5rem 1fr; padding: .45rem 0; border-bottom: 1px solid var(--rule-l); }
.focus li::before { content: "2.1." counter(f); font: 500 .8125rem/1.9 var(--mono); color: var(--muted); }
.curr { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.curr li { display: flex; flex-direction: column; padding: .55rem 0 .6rem; border-bottom: 1px solid var(--rule-l); }
.curr__t { font-weight: 600; text-decoration: none; }
.curr__t:hover { text-decoration: underline; }
.curr__o { line-height: 1.4; }
.curr__m { font: 400 .8125rem/1.5 var(--mono); color: var(--muted); margin-top: .1rem; }

/* §3 the parameter table: the signature */
.params-wrap { display: block; }
.params {
  list-style: none; margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.params li { display: flex; }
.param {
  flex: 1;
  display: flex; flex-direction: column;
  min-height: 10.75rem;
  padding: .85rem 1rem 1rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
}
.param__top {
  display: flex; justify-content: space-between; gap: .75rem;
  font: 500 .75rem/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase;
}
.param__n { color: var(--signal); font-weight: 600; }
.param__span { color: var(--muted); text-align: right; }
.param__label { margin-top: .8rem; font: 600 1.0625rem/1.25 var(--sans); }
.param__fig {
  flex: 1;
  margin-top: .55rem;
  font: 500 clamp(1.125rem, .8rem + .6vw, 1.4rem)/1.2 var(--mono);
  letter-spacing: -.025em;
}
.param__foot {
  display: flex; justify-content: space-between; align-items: center; gap: .5rem;
  margin-top: 1rem;
  font: 500 .75rem/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase;
}
.param__ev { border: 1px solid var(--signal); color: var(--signal); padding: .25rem .4rem; }
.param__go { color: var(--muted); font-size: 1rem; line-height: 1; }
.param__ev { white-space: nowrap; }
.param:hover { background: var(--tint); color: var(--ink); }
.param:hover .param__label { text-decoration: underline; text-underline-offset: .18em; }
.param[aria-current="true"] { background: var(--signal); color: var(--on-signal); }
.param[aria-current="true"] .param__n,
.param[aria-current="true"] .param__span,
.param[aria-current="true"] .param__go { color: var(--on-signal); }
.param[aria-current="true"] .param__ev { color: var(--on-signal); border-color: var(--on-signal); }
.param:focus-visible { outline: 3px solid var(--rule); outline-offset: -7px; }
.param[aria-current="true"]:focus-visible { outline-color: var(--on-signal); }

.readout { margin-top: 1.5rem; }
.guide { margin-top: 2.25rem; }
.guide__dl { margin: 0; padding: .4rem 1.1rem .6rem; }
.guide__dl > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .75rem; padding: .6rem 0; border-top: 1px solid var(--rule-l); }
.guide__dl > div:first-child { border-top: 0; }
.guide__dl dt { font: 500 .75rem/1.9 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.guide__dl dd { margin: 0; font-size: 1rem; line-height: 1.5; }
.guide .evs, .guide .mref { vertical-align: middle; margin: .1rem 0; }

/* ---------- Panels: parameter detail and evidence drawer ---------- */
.panel { border: 1px solid var(--rule); background: var(--panel); }
.panel__bar {
  display: flex; justify-content: space-between; gap: 1rem;
  margin: 0; padding: .6rem .9rem;
  background: var(--bar); color: var(--on-bar);
  font: 500 .75rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase;
}
.panel__body { padding: 1.1rem 1.1rem 1.25rem; font-size: 1rem; }
.load-error { color: var(--signal); }

/* Fragment content (shared kit fragments and the server-rendered defaults) */
.frag__meta {
  margin: 0 0 .45rem;
  font: 500 .75rem/1.45 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted);
}
.frag__title { margin: 0 0 .7rem; font: 600 1.3rem/1.2 var(--sans); letter-spacing: -.01em; }
.frag__title:focus { outline: none; }
.frag__title:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
.frag__lede { margin: 0 0 .85rem; }
.frag__points { margin: 0 0 .9rem; padding-left: 1.1rem; }
.frag__points li { margin-bottom: .35rem; }
.frag__points li::marker { color: var(--signal); }
.frag__where, .frag__check { margin: .6rem 0 0; padding-top: .55rem; border-top: 1px solid var(--rule-l); }
.frag__k {
  display: block; margin-bottom: .15rem;
  font: 500 .75rem/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted);
}
.frag__url { font: 400 .875rem/1.5 var(--mono); word-break: break-all; }
.frag__note { color: var(--muted); border-left: 3px solid var(--signal); padding-left: .7rem; }
.frag__status { padding: .5rem .7rem; border: 2px solid var(--rule); }
.frag__org { margin: .1rem 0 .3rem; font: 400 .8125rem/1.5 var(--mono); color: var(--muted); }
.frag__facts { margin: .6rem 0 0; }
.frag__facts dt { font: 500 .75rem/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-top: .6rem; }
.frag__facts dd { margin: .1rem 0 0; }
.frag__rec { margin-top: .75rem; padding-top: .7rem; border-top: 1px solid var(--rule-l); }
.frag__rec h4 { margin: 0; font: 600 1rem/1.3 var(--sans); }
.frag__rec .frag__points { margin-bottom: 0; }
.frag__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.frag__gallery figure { margin: 0; }
.frag__gallery img { display: block; width: 100%; height: auto; border: 1px solid var(--rule); }
.frag__gallery figcaption { margin-top: .35rem; font: 400 .8125rem/1.45 var(--mono); }

/* ---------- The sheet: §4 to §9 with the sticky drawer ---------- */
.sheet {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 21.5rem;
  gap: 3.25rem;
  align-items: start;
}
.hang { padding-left: var(--hang); }
.sheet .ch { display: grid; grid-template-columns: var(--hang) minmax(0, 1fr); gap: 0; }

.drawer { position: sticky; top: calc(var(--navh) + 1rem); margin-top: 2.75rem; }
.drawer__in { display: flex; flex-direction: column; max-height: calc(100vh - var(--navh) - 2rem); }
.drawer__scroll { overflow-y: auto; min-height: 0; }
.drawer .panel__bar { font-size: .75rem; }
.drawer__back-wrap { margin: 0; padding: 0 1.1rem; }
.drawer__back-wrap .btn { margin-bottom: 1rem; }
.key { margin: 0 1.1rem 1.1rem; padding-top: .8rem; border-top: 2px solid var(--rule); }
.key__h { margin: 0 0 .5rem; font: 600 .75rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.key dl { margin: 0; }
.key dl > div { padding: .45rem 0; border-top: 1px solid var(--rule-l); }
.key dl > div:first-child { border-top: 0; }
.key dd { margin: .35rem 0 0; font-size: .9375rem; line-height: 1.5; }

/* Items: projects and records */
.item { position: relative; padding-block: 1.75rem 1.5rem; border-top: 1px solid var(--rule); }
.ch + .intro + .item, .ch + .item { border-top-width: 1px; }
.item__head {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .25rem 1.5rem;
  align-items: start;
}
.item__n {
  position: absolute; left: calc(-1 * var(--hang)); top: .2rem;
  margin: 0;
  font: 600 .9375rem/1.4 var(--mono); color: var(--signal);
}
.item__title { margin: 0; font: 600 1.25rem/1.25 var(--sans); letter-spacing: -.008em; }
.item__org { margin: .2rem 0 0; }
.item__dates {
  margin: .15rem 0 0;
  font: 500 .875rem/1.35 var(--mono);
  text-align: right; white-space: nowrap;
}
.item__since { display: block; color: var(--muted); font-weight: 400; }
.item__note { margin: .5rem 0 0; color: var(--muted); font-style: italic; font-family: var(--serif); }
.flag {
  display: block; width: max-content; margin: .4rem 0 0 auto;
  padding: .15rem .4rem;
  border: 1px solid var(--signal); color: var(--signal);
  font: 600 .75rem/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase;
}

.rfacts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  margin: 1rem 0 .9rem;
  border-top: 1px solid var(--rule-l);
  border-bottom: 1px solid var(--rule-l);
}
.rfacts > div { padding: .5rem .9rem .55rem 0; }
.rfacts > div + div { padding-left: .9rem; border-left: 1px solid var(--rule-xl); }
.rfacts dt { font: 500 .75rem/1.4 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.rfacts dd { margin: .1rem 0 0; font-size: 1rem; line-height: 1.4; }
.scope { margin: 0 0 .6rem; max-width: 70ch; }

.subs { list-style: none; margin: 0; padding: 0; }
.subs > li {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  padding: .6rem 0;
  border-top: 1px solid var(--rule-xl);
}
.subs__n { font: 500 .8125rem/1.95 var(--mono); color: var(--muted); }
.subs__b p { margin: 0; max-width: 70ch; }
.subs__b .marks { margin-top: .5rem; }
/* Folds: on phones and landscape phones the points after the first (and notes) fold away.
   The server renders them open, so without JavaScript and on wider screens everything shows. */
.fold > .fold__s { display: none; }
.fold__s {
  align-items: center; gap: .65rem;
  min-height: 2.75rem;
  padding: .45rem 0;
  border-top: 1px solid var(--rule-xl);
  font: 500 .8125rem/1.35 var(--mono); letter-spacing: .04em; text-transform: uppercase;
  cursor: pointer;
  list-style: none;
}
.fold__s::-webkit-details-marker { display: none; }
.fold__s::before {
  content: "+"; flex: none;
  display: inline-grid; place-items: center;
  width: 1.5rem; height: 1.5rem;
  border: 1px solid var(--signal); color: var(--signal);
  font: 600 1rem/1 var(--mono);
}
.fold[open] > .fold__s::before { content: "2"; }
.fold__s:hover { color: var(--signal); }
.fold:not([open]) .fold__less, .fold[open] .fold__more { display: none; }
.fold--list > .fold__s { border-top: 2px solid var(--rule); }
.fold--list:not([open]) { margin-bottom: 1.75rem; }
.fold--list:not([open]) > .fold__s { border-bottom: 1px solid var(--rule-l); }
.notes { margin-top: .4rem; padding-top: .6rem; border-top: 1px solid var(--rule-xl); display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); }
.notes .k { margin: .25rem 0 0; }
.notes ul { margin: 0; padding-left: 1.1rem; max-width: 70ch; }
.notes li { margin-bottom: .3rem; }
.notes li::marker { color: var(--muted); }
.marks { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; }

/* Evidence markers: status label from the data, then the linked items */
.evs {
  display: inline-flex; flex-wrap: wrap; align-items: stretch;
  border: 1px solid var(--signal);
  font: 500 .78rem/1.25 var(--mono);
}
.evs__st {
  padding: .28rem .45rem;
  background: var(--signal); color: var(--on-signal);
  letter-spacing: .05em; text-transform: uppercase;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.evs__st--solo { display: inline-block; font: 500 .75rem/1.25 var(--mono); width: max-content; }
.ev {
  padding: .28rem .45rem;
  border-left: 1px solid var(--signal);
  color: var(--signal);
  text-decoration: none;
}
.ev:hover { background: var(--tint); color: var(--signal); text-decoration: underline; }
.ev[aria-current="true"] { background: var(--ink); color: var(--paper); }
.ev__ref { font-weight: 600; }
.ev--demo { cursor: default; }
.evs--demo { vertical-align: middle; }
.vtag {
  display: inline-block; width: max-content;
  padding: .25rem .4rem;
  border: 1px solid var(--rule-l);
  color: var(--muted);
  font: 500 .75rem/1.25 var(--mono); letter-spacing: .05em; text-transform: uppercase;
}
.mref {
  display: inline-block;
  padding: .28rem .45rem;
  border: 1px solid var(--rule);
  font: 500 .78rem/1.25 var(--mono);
  text-decoration: none;
}
a.mref:hover { background: var(--tint); color: var(--ink); text-decoration: underline; }

/* Projects */
.status {
  display: grid; grid-template-columns: 6.25rem minmax(0, 1fr);
  margin: 1.1rem 0 .7rem;
  border: 2px solid var(--rule);
}
.status__k {
  margin: 0; padding: .7rem .75rem;
  background: var(--bar); color: var(--on-bar);
  font: 600 .75rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.status__v { margin: 0; padding: .6rem .9rem; font-weight: 500; }
.prj__rel { margin: 0 0 1rem; font-family: var(--serif); font-style: italic; color: var(--muted); }
.qa { margin: 0; border-top: 1px solid var(--rule); }
.qa > div {
  display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem;
  padding: .7rem 0;
  border-bottom: 1px solid var(--rule-l);
}
.qa dt { font: 600 1rem/1.45 var(--sans); }
.qa__n { display: block; font: 500 .75rem/1.5 var(--mono); color: var(--muted); }
.qa dd { margin: 0; max-width: 68ch; }
.qa dd .marks { display: inline-flex; margin-left: .3rem; vertical-align: baseline; }
.prj__ev { margin-top: 1.1rem; }
.prj__evh { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: 0 0 .45rem; font-size: .9375rem; }
.prj__evh .k { margin-right: .25rem; }
.evs--bare { border-color: var(--signal); }
.evs--bare .ev { border-left: 0; }
.evlist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.evlist li { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem; padding: .45rem 0; border-bottom: 1px solid var(--rule-xl); }
.ext { line-height: 1.4; padding-block: .15rem; }
.none { margin: 0; padding: .5rem 0; border-top: 1px solid var(--rule); color: var(--muted); }
.terms { margin: 1rem 0 0; font: 400 .875rem/1.6 var(--mono); color: var(--muted); }

/* Figure 5.1: timing diagram */
.timing { margin: 0 0 1.5rem; }
.timing__scroll { overflow-x: auto; border-top: 2px solid var(--rule); border-bottom: 1px solid var(--rule); }
.timing__plot { position: relative; min-width: 40rem; padding: .25rem 0 2rem; --lab: 9.5rem; }
.timing__ticks { position: absolute; left: var(--lab); right: .5rem; top: 0; bottom: 0; pointer-events: none; }
.timing__ticks span {
  position: absolute; top: 0; bottom: 0; width: 0;
  border-left: 1px dashed var(--rule-l);
  display: flex; align-items: flex-end;
  padding: 0 0 .35rem .3rem;
  font: 500 .75rem/1 var(--mono); color: var(--muted);
}
.timing__ticks span:last-child { justify-content: flex-end; padding: 0 .3rem .35rem 0; }
.lane { display: grid; grid-template-columns: var(--lab) minmax(0, 1fr); border-top: 1px solid var(--rule-xl); }
.lane:first-of-type { border-top: 0; }
.lane__label {
  position: sticky; left: 0; z-index: 2;
  background: var(--paper);
  margin: 0; padding: .55rem .75rem .5rem 0;
  font: 500 .75rem/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted);
}
.lane__rows { position: relative; padding: .35rem .5rem .4rem 0; }
.trow {
  position: relative; height: 1.75rem;
  background: linear-gradient(var(--rule-l), var(--rule-l)) left bottom / 100% 1px no-repeat;
}
.pulse {
  position: absolute; bottom: 0; left: var(--l); width: var(--w);
  height: .6rem; min-width: 4px;
  border: 2px solid var(--ink); border-bottom: 0;
  background: var(--tint);
  color: var(--ink);
  text-decoration: none;
}
.pulse__lab {
  position: absolute; bottom: calc(100% + .2rem);
  white-space: nowrap;
  font: 500 .75rem/1 var(--mono);
}
.pulse__d { color: var(--muted); font-weight: 400; }
.pulse--start .pulse__lab { left: -2px; }
.pulse--end .pulse__lab { right: -2px; }
.pulse.is-now { border-color: var(--signal); background: var(--paper); }
.pulse.is-now .pulse__lab { color: var(--signal); }
.pulse.is-now .pulse__d { color: var(--signal); }
.pulse:hover { background: var(--ink); color: var(--ink); }
.pulse:hover .pulse__lab { text-decoration: underline; text-underline-offset: .15em; }
.pulse.is-now:hover { background: var(--signal); }

/* Skills */
.skg { margin-top: 1.5rem; }
.skg__head { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-bottom: .4rem; }
.skg__head .item__n { top: .1rem; }
.skg__head .trace { margin-left: auto; }
.spec { width: 100%; border-collapse: collapse; margin: .3rem 0 0; font-size: 1rem; }
.spec th {
  padding: .5rem .9rem .45rem 0;
  border-bottom: 2px solid var(--rule);
  font: 500 .75rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted); text-align: left; vertical-align: bottom;
}
.spec td { padding: .6rem .9rem .6rem 0; border-bottom: 1px solid var(--rule-l); vertical-align: top; line-height: 1.45; }
.spec td:last-child, .spec th:last-child { padding-right: 0; }
.skg .spec td:first-child { width: 46%; }
.skg .spec td:nth-child(2) { width: 7.5rem; }
.per { font: 500 .75rem/1.6 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.per--current { color: var(--signal); }
.per--historical { color: var(--muted); }
.cst { font: 500 .8125rem/1.5 var(--mono); }
.courses { list-style: none; margin: .3rem 0 0; padding: 0; color: var(--muted); }
.courses li { display: inline; }
.courses li:not(:last-child)::after { content: "; "; }

/* Credentials */
.cred { margin-top: 1.6rem; }
.cred-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2.5rem; }
.kv { margin: 0; border-top: 2px solid var(--rule); }
.kv > div { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--rule-l); }
.kv dt { font: 500 .75rem/1.6 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.kv dd { margin: 0; }
.plain { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--rule); }
.plain li { padding: .5rem 0; border-bottom: 1px solid var(--rule-l); font-weight: 500; }

/* Community */
.com { list-style: none; margin: 0 0 1.75rem; padding: 0; border-top: 2px solid var(--rule); }
.com__i { padding: .8rem 0 .85rem; border-bottom: 1px solid var(--rule-l); }
.com__head { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1.5rem; }
.com__t { margin: 0; font-weight: 600; }
.com--primary .com__t { font-size: 1.125rem; }
.com__t .flag { display: inline-block; margin: 0 0 0 .6rem; vertical-align: .1em; }
.com__d { margin: 0; font: 500 .8125rem/1.4 var(--mono); color: var(--muted); white-space: nowrap; }
.com__o { margin: .1rem 0 0; }
.com__note { margin: .2rem 0 0; color: var(--muted); }
.com__pts { margin: .5rem 0 0; padding-left: 1.1rem; max-width: 70ch; }
.com__pts li { margin-bottom: .3rem; }
.com__pts li::marker { color: var(--signal); }
.com__i .marks { margin-top: .55rem; }

/* §9 evidence index and figures register */
.eix, .mreg { list-style: none; margin: .4rem 0 1.75rem; padding: 0; border-top: 2px solid var(--rule); }
.eix__i, .mreg__i {
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr) 9.25rem;
  gap: .25rem 1rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--rule-l);
}
.mreg__i { grid-template-columns: 2.75rem 6.75rem minmax(0, 1fr) 8.75rem; }
.eix__ref { margin: 0; font: 600 .875rem/1.55 var(--mono); color: var(--signal); }
.eix__t { margin: 0; font-weight: 600; line-height: 1.4; }
.eix__s, .eix__c { margin: .3rem 0 0; }
.eix__c .k, .eix__s .k { margin-right: .35rem; }
.eix__m { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; font: 400 .8125rem/1.4 var(--mono); color: var(--muted); }
.mreg__v { line-height: 1.1; }
.mreg__num { display: block; font: 500 1.35rem/1.15 var(--mono); letter-spacing: -.02em; }
.approx { display: inline-block; margin-top: .35rem; font: 600 .75rem/1.2 var(--mono); letter-spacing: .05em; text-transform: uppercase; color: var(--signal); }
.mreg__u { margin: 0; font-weight: 600; line-height: 1.4; }

/* NASA photographs inside record 5.13 */
.media { margin-top: 1rem; border: 1px solid var(--rule); }
.media__bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem;
  margin: 0; padding: .55rem .75rem;
  border-bottom: 1px solid var(--rule);
  font-weight: 600;
}
.media__bar .k { margin-right: 0; }
.media__bar .btnlink { margin-left: auto; }
.media__body { padding: .8rem .9rem; }
.media__body:focus { outline: none; }
.media__body:focus-visible { outline: 3px solid var(--signal); outline-offset: -3px; }
.media__caps { margin: 0; padding-left: 1.4rem; color: var(--muted); }

/* ---------- Footer: §10 revision ---------- */
.foot { margin-top: 3.5rem; border-top: 2px solid var(--rule); }
.foot__in { padding-block: 2.75rem 3rem; }
.foot .ch { border-top: 0; padding-top: 0; }
.foot__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; }
.spec--rev caption { margin-bottom: .4rem; }
.data-links { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--rule); }
.data-links li { padding: .55rem 0; border-bottom: 1px solid var(--rule-l); }
.data-links a { font: 600 .9375rem/1.4 var(--mono); }
.foot__end {
  display: flex; flex-wrap: wrap; gap: .5rem 2.25rem;
  margin: 2.25rem 0 0; padding-top: 1rem;
  border-top: 1px solid var(--rule);
  font: 400 .875rem/1.5 var(--mono);
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: no-preference) {
  .param, .trace, .btn, .btnlink, .ev, .toc a { transition: background-color .12s ease, color .12s ease; }
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 1279px) {
  .toc a { padding: 0 .45rem; letter-spacing: .02em; }
}
@media screen and (max-width: 1179px) {
  .front { display: block; }
  .clause--id { grid-template-columns: minmax(0, 1fr); }
  .clause--id .ch { margin-bottom: 1rem; }
  .guide { display: none; }
  .sum { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .lede { font-size: 1.15rem; }
  .params-wrap { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(17rem, 1fr); gap: 1.5rem; align-items: start; }
  .readout { margin-top: 1.65rem; }
  .sheet { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .drawer { position: static; margin-top: 2.5rem; }
  .drawer__in { max-height: none; }
  .toc li { flex: 0 0 auto; }
  .toc ol { border-right: 1px solid var(--rule-l); width: max-content; }
}
@media screen and (max-width: 899px) {
  :root { --hang: 3.75rem; }
  .mast__title { grid-template-columns: minmax(0, 1fr); grid-template-areas: "name" "kf" "rev"; gap: 1.4rem; padding-block: 1.5rem 1.4rem; }
  .revbox { max-width: 30rem; }
  .revbox dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .revbox dl > div { display: block; border-top: 1px solid var(--rule-l); }
  .revbox dl > div:nth-child(-n+2) { border-top: 0; }
  .revbox dl > div:nth-child(even) { border-left: 1px solid var(--rule-l); }
  .revbox dt { font-size: .75rem; }
  .idtab { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .idtab > div:nth-child(3), .idtab > div:nth-child(4) { border-top: 1px solid var(--rule-l); padding-top: .45rem; }
  .idtab > div:last-child { grid-column: 1 / -1; }
  .sum { grid-template-columns: minmax(0, 1fr); }
  .params-wrap { display: block; }
  .readout { margin-top: 1.25rem; }
  .eix__i { grid-template-columns: 2.75rem minmax(0, 1fr); }
  .eix__i .eix__m { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; }
  .mreg__i { grid-template-columns: 2.75rem 6.5rem minmax(0, 1fr); }
  .mreg__i .eix__m { grid-column: 3; }
  .foot__grid { grid-template-columns: minmax(0, 1fr); }
}
/* Tablets and large phones in portrait: the revision box runs the full width as a strip */
@media screen and (min-width: 600px) and (max-width: 899px) and (min-height: 501px) {
  .revbox { max-width: none; }
  .revbox dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .revbox dl > div:nth-child(n) { border-top: 0; border-left: 1px solid var(--rule-l); }
  .revbox dl > div:first-child { border-left: 0; }
  .revbox__act { justify-content: flex-start; }
  .revbox__act .btn { flex: 0 1 15rem; }
}
@media screen and (max-width: 719px) {
  :root { --hang: 0rem; }
  body { font-size: 1rem; }
  .clause { padding-top: 2.25rem; }
  .ch, .sheet .ch { display: flex; gap: .65rem; font-size: 1.375rem; }
  #print-btn { display: none; }
  .fold > .fold__s { display: flex; }
  .fold--list[open] > .fold__s + ol { border-top-width: 1px; }
  .mast__kicker { margin-bottom: .7rem; }
  .item__n { position: static; margin-bottom: .2rem; }
  .item__head { grid-template-columns: minmax(0, 1fr); }
  .item__dates { text-align: left; white-space: normal; }
  .flag { display: inline-block; margin: 0 0 0 .6rem; vertical-align: .1em; }
  .item__since { display: inline; margin-left: .5rem; }
  .skg__head .item__n { position: static; }
  .skg__head .trace { margin-left: 0; }
  .idtab { grid-template-columns: minmax(0, 1fr); }
  .idtab > div:nth-child(2) { border-top: 1px solid var(--rule-l); padding-top: .45rem; }
  .notes { grid-template-columns: minmax(0, 1fr); }
  .lede { font-size: 1.125rem; }
  .rfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rfacts > div + div { padding-left: 0; border-left: 0; }
  .rfacts > div:nth-child(even) { padding-left: .9rem; border-left: 1px solid var(--rule-xl); }
  .rfacts > div:nth-child(n+3) { border-top: 1px solid var(--rule-xl); }
  .subs > li { grid-template-columns: 3.4rem minmax(0, 1fr); }
  .qa > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .qa__n { display: inline; margin-right: .4rem; }
  .status { grid-template-columns: minmax(0, 1fr); }
  .cred-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  /* Figure 5.1 on phones: each record is a labelled row with its pulse underneath, no sideways scroll */
  .timing__scroll { overflow: visible; }
  .timing__plot { min-width: 0; --lab: 0rem; padding-bottom: 1.9rem; }
  .timing__ticks { right: 0; }
  .lane { grid-template-columns: minmax(0, 1fr); }
  .lane__label { position: static; padding: .65rem 0 .1rem; background: none; color: var(--ink); font-weight: 600; }
  .lane__rows { padding: 0 0 .5rem; }
  .trow { height: auto; padding-bottom: .9rem; }
  .pulse { position: static; display: block; width: auto; height: auto; min-width: 0; min-height: 1.75rem; border: 0; background: none; padding-top: .4rem; }
  .pulse::after {
    content: ""; position: absolute; bottom: 0; left: var(--l); width: var(--w); min-width: 4px;
    height: .55rem; border: 2px solid var(--ink); border-bottom: 0; background: var(--tint);
  }
  .pulse.is-now { background: none; }
  .pulse.is-now::after { border-color: var(--signal); background: var(--paper); }
  .pulse__lab { position: static; display: block; white-space: normal; line-height: 1.3; }
  .pulse:hover, .pulse.is-now:hover { background: none; }
  .pulse:hover::after { background: var(--ink); }
  .pulse.is-now:hover::after { background: var(--signal); }
  .mreg__i { grid-template-columns: 2.75rem minmax(0, 1fr); }
  .mreg__i .mreg__v, .mreg__i .eix__b, .mreg__i .eix__m { grid-column: 2; }
  .mreg__i .mreg__v { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .7rem; }
  .com__head { flex-direction: column; gap: .1rem; }
  .frag__gallery { grid-template-columns: minmax(0, 1fr); }

  /* Tables become stacked label/value blocks */
  .spec, .spec thead, .spec tbody, .spec tr, .spec td, .spec caption { display: block; width: auto; }
  .spec thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .spec tr { padding: .55rem 0; border-bottom: 1px solid var(--rule-l); }
  .spec tbody { border-top: 2px solid var(--rule); }
  .spec td { padding: .15rem 0; border: 0; }
  .spec td:empty { display: none; }
  .skg .spec td:first-child, .skg .spec td:nth-child(2) { width: auto; }
  .spec td::before {
    content: attr(data-k); display: inline-block; min-width: 5.5rem; margin-right: .5rem;
    font: 500 .75rem/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted);
  }
  .spec tbody td:first-child { font-weight: 600; }
  .spec tbody td:first-child .dim { font-weight: 400; }
  .spec tbody td:first-child::before { content: none; }
  .spec--rev tbody td:first-child { font-weight: 400; }
  .spec--rev tbody td:first-child::before { content: attr(data-k); }
  .courses { margin-top: .2rem; }
}
@media screen and (max-width: 639px) {
  /* Figure 5.1: on narrow phones label every other year so the last two ticks do not collide */
  .timing__ticks span:nth-child(even) { color: transparent; }
  .params { grid-template-columns: minmax(0, 1fr); }
  .param {
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    grid-template-areas: "n label label" "n fig fig" "n foot span";
    column-gap: .5rem;
    min-height: 0;
    padding: .8rem .9rem .85rem .75rem;
  }
  .param__top { display: contents; }
  .param__n { grid-area: n; padding-top: .2rem; }
  .param__span { grid-area: span; align-self: end; margin-top: .6rem; }
  .param__label { grid-area: label; margin-top: 0; }
  .param__fig { grid-area: fig; margin-top: .3rem; font-size: 1.0625rem; }
  .param__foot { grid-area: foot; margin-top: .6rem; }
  .param__go { display: none; }
}

/* Landscape phones and other short screens: a slimmer running header, a compact title block, folds on. */
@media screen and (max-height: 500px) {
  :root { --navh: 2.25rem; }
  #print-btn { display: none; }
  .fold > .fold__s { display: flex; }
  .fold--list[open] > .fold__s + ol { border-top-width: 1px; }
  .clause { padding-top: 2rem; }
}
@media screen and (max-height: 500px) {
  .mast__bar { padding-block: .55rem; }
  .mast__title { gap: 1rem 1.75rem; padding-block: 1.1rem; }
  .mast__kicker { margin-bottom: .55rem; }
  h1 { font-size: clamp(2.5rem, 1rem + 4.5vw, 3.75rem); }
  .mast__headline { margin-top: .55rem; font-size: 1.125rem; }
  .revbox { max-width: none; }
}
@media screen and (max-height: 500px) and (min-width: 640px) {
  .mast__title { grid-template-columns: minmax(0, 1fr) 18rem; grid-template-areas: "name name" "kf rev"; }
}
@media screen and (max-height: 500px) and (max-width: 639px) {
  .revbox dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .revbox dl > div:nth-child(n) { border-top: 0; border-left: 1px solid var(--rule-l); padding-inline: .6rem; }
  .revbox dl > div:first-child { border-left: 0; }
}

/* ---------- Print: a clean datasheet ---------- */
@page { margin: 16mm 14mm 17mm; @bottom-right { content: "Page " counter(page) " of " counter(pages); font: 8pt "IBM Plex Mono", monospace; color: #5a5f66; } @bottom-left { content: "shaunmarshall.com/cv"; font: 8pt "IBM Plex Mono", monospace; color: #5a5f66; } @top-left { font: 8pt "IBM Plex Mono", monospace; color: #5a5f66; } @top-right { font: 8pt "IBM Plex Mono", monospace; color: #5a5f66; } }
@media print {
  :root { --hang: 3.25rem; --navh: 0rem; }
  html { font-size: 9pt; }
  body { font-size: 1rem; line-height: 1.45; }
  .skip, .toc, .drawer, .readout, .btn, .btnlink, .trace, .param__go, .timing__hint, #print-btn { display: none !important; }
  a { text-decoration: none; }
  .wrap { max-width: none; padding-inline: 0; }
  .mast__bar { padding-top: 0; }
  .mast__title { grid-template-columns: minmax(0, 1fr) 16rem; padding-block: 1.25rem 1rem; }
  h1 { font-size: 3.6rem; }
  .front { display: block; }
  .guide { display: none; }
  .mast__title { align-items: start; }
  .kf { break-inside: avoid; }
  .sheet .ch { grid-template-columns: var(--hang) minmax(0, 1fr); }
  .item { padding-block: 1rem .8rem; }
  .subs > li { padding: .35rem 0; }
  .qa > div { padding: .45rem 0; }
  .rfacts { margin: .6rem 0; }
  .eix__i, .mreg__i { padding: .5rem 0; }
  .terms { display: none; }
  .clause { padding-block: 1.1rem .25rem; }
  .clause--id { grid-template-columns: minmax(0, 1fr); margin-top: 1rem; }
  .clause--id .ch { margin-bottom: .6rem; }
  .idtab dd { font-size: .95rem; }
  .sum { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1.5rem; }
  .curr li { padding: .3rem 0; }
  .focus li { padding: .25rem 0; }
  .lane__label { position: static; }
  .lede { font-size: 1.05rem; margin-bottom: .8rem; }
  .intro { display: none; }
  .params-wrap { display: block; }
  .param { min-height: 0; padding: .6rem .7rem .7rem; background: none !important; color: var(--ink) !important; }
  .param[aria-current="true"] .param__n { color: var(--signal); }
  .param[aria-current="true"] .param__span { color: var(--muted); }
  .param[aria-current="true"] .param__ev { color: var(--signal); border-color: var(--signal); }
  .param__fig { font-size: 1.1rem; }
  .clause--params { break-inside: avoid; }
  .ptable { break-inside: avoid; }
  .sheet { display: block; }
  .eix__i, .mreg__i, .com__i, .spec tr, .params li, .subs > li, .qa > div, .timing, .status, .rfacts, .evlist li { break-inside: avoid; }
  .ch, .sub-h, .item__head, .skg__head, .rfacts, .scope, .prj__evh { break-after: avoid; }
  .item { orphans: 3; widows: 3; }
  .revbox .revbox__fmt, .revbox__act, .foot__end, .fold > .fold__s { display: none !important; }
  .fold::details-content { content-visibility: visible; display: block; }
  html { color-scheme: light !important; }
  .timing__scroll { overflow: visible; }
  .timing__plot { min-width: 0; }
  .media__bar .btnlink { display: none; }
  .ev, .evs { color: var(--signal); }
  .foot { margin-top: 1.5rem; break-before: avoid; }
  .foot__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
