/* Basic-function explanation site — the only place font sizes are set. Light palette only. */
:root {
  --fs-body: 1rem; --fs-small: .88rem; --fs-h1: 1.75rem; --fs-h2: 1.3rem; --fs-h3: 1.06rem;
  --bg: #fbfaf7; --surface: #ffffff; --ink: #1d1d1f; --muted: #5d5d66; --rule: #e3e0d8;
  --accent: #6aa7e4; --accent-ink: #2667a8; --accent-soft: #eef5fc; --accent-fill: #d6e8fa;
  --hi: #fff4d6; --hi-rule: #e9c46a;
  --def: #4b5563; --def-bg: #eef0f3; --prov: #1f7a4d; --prov-bg: #e3f4ea;
  --here: #2667a8; --here-bg: #e3f0fc; --heur: #8a6100; --heur-bg: #fbf1d9;
  --open: #a3324a; --open-bg: #f9e3e8; --ctx: #6b5b95; --ctx-bg: #efebf7; --q: #a8571a; --q-bg: #fcebdc;
  --c1: #4a90d9; --c2: #e07b39; --c3: #3f9e6e; --c4: #b05aa8;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { overflow-x: hidden; }
body { margin: 0; background: var(--bg); color: var(--ink); font: var(--fs-body)/1.62 "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; }
html { font-size: 17px; }
main { max-width: 820px; margin: 0 auto; padding: 24px 16px 72px; }
h1 { font-size: var(--fs-h1); line-height: 1.25; margin: 6px 0 6px; }
h2 { font-size: var(--fs-h2); margin: 36px 0 10px; }
h3 { font-size: var(--fs-h3); margin: 24px 0 8px; }
a { color: var(--accent-ink); }
[id] { scroll-margin-top: 110px; }
.sans, nav, button, label, select, input, .tag, .legend, table, .ctrl, .readout, .kicker, .pager, figcaption, .stmt-head, .rm { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.katex { font-size: 1.08em; }
.katex-display { overflow-x: auto; overflow-y: hidden; padding: 2px 0; }
.sub { color: var(--muted); margin: 0 0 18px; }
.small, figcaption, table, .legend, .readout, .ctrl, .kicker, .pager, .tag, .stmt-head, nav.site, .opts label, .q .kind, textarea, select, input, button { font-size: var(--fs-small); }
.small, figcaption { color: var(--muted); }
.kicker { text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }

/* navigation */
nav.site { position: sticky; top: 0; z-index: 20; background: var(--bg); border-bottom: 1px solid var(--rule); }
nav.site .row { max-width: 1100px; margin: 0 auto; padding: 7px 16px; display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
nav.site .row.second { max-width: none; border-top: 1px dashed var(--rule); background: var(--accent-soft); justify-content: center; }
nav.site a { text-decoration: none; color: var(--muted); padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
nav.site a:hover { color: var(--ink); background: var(--accent-soft); }
nav.site a.here { color: var(--ink); background: var(--accent-fill); }
nav.site a.intopic { color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--accent-fill); }
nav.site a.home { font-weight: 700; color: var(--ink); }
nav.site .util { margin-left: auto; display: flex; gap: 4px; flex-wrap: wrap; }
nav.site .util button { border: 1px solid var(--rule); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 3px 10px; cursor: pointer; }
nav.site .util button[aria-pressed="false"] { opacity: .6; }
.pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 16px; border-top: 1px solid var(--rule); align-items: center; }
.pager a { text-decoration: none; max-width: 42%; }
.pager .pos { color: var(--muted); }

/* sections */
details.step > summary { list-style: none; cursor: pointer; }
details.step > summary::-webkit-details-marker { display: none; }
details.step > summary h2 { border-bottom: 1px solid var(--rule); padding-bottom: 6px; }
details.step > summary h2::before { content: "▸"; color: var(--accent); font-size: .8em; display: inline-block; width: 1.1em; transition: transform .15s; }
details.step[open] > summary h2::before { transform: rotate(90deg); }
details.step > summary h2 .n { color: var(--muted); font-weight: 400; margin-right: 6px; }
details.step > summary .q-open { display: block; font-weight: 400; font-style: italic; color: var(--muted); font-size: var(--fs-body); margin-top: 2px; }
details.proof, details.how { margin: 6px 0 10px; }
details.proof > summary, details.how > summary { cursor: pointer; color: var(--muted); font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-small); }
details.proof[open], details.how[open] { border-left: 2px solid var(--rule); padding-left: 12px; }
.open-all { float: right; border: 1px solid var(--rule); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 3px 10px; cursor: pointer; margin-top: 4px; }

/* statements: the only boxes */
.stmt { background: var(--surface); border: 1px solid var(--rule); border-left: 4px solid var(--def); border-radius: 8px; padding: 10px 16px 6px; margin: 16px 0; }
.stmt[data-kind="lemma"], .stmt[data-kind="prop"] { border-left-color: var(--prov); }
.stmt[data-kind="example"] { border-left-color: var(--c2); background: #fffdf9; }
.stmt.target { border: 1.5px solid var(--hi-rule); border-left: 6px solid var(--hi-rule); background: var(--hi); }
.stmt-head { margin: 0 0 6px; color: var(--muted); }
.stmt-head .stmt-label { font-weight: 700; color: var(--ink); }
.key { background: var(--hi); border: 1px solid var(--hi-rule); border-radius: 8px; padding: 2px 10px; margin: 10px 0; }

/* claim tags (A10) */
.tag { display: inline-block; font-weight: 600; padding: 0 8px; border-radius: 999px; white-space: nowrap; margin-left: 4px; }
.t-def { color: var(--def); background: var(--def-bg); }
.t-cited { color: var(--prov); background: var(--prov-bg); }
.t-here { color: var(--here); background: var(--here-bg); }
.t-heur { color: var(--heur); background: var(--heur-bg); }
.t-open { color: var(--open); background: var(--open-bg); }
.t-ctx { color: var(--ctx); background: var(--ctx-bg); }
.t-q { color: var(--q); background: var(--q-bg); }
.t-check { color: var(--muted); background: #f0eee8; }

/* figures, tables, widgets */
figure { margin: 18px 0; }
figure img { width: 100%; height: auto; display: block; }
figcaption { margin-top: 6px; }
figcaption .fig-n, .tab-n { font-weight: 700; color: var(--ink); }
.tablewrap { overflow-x: auto; margin: 10px 0; position: relative; }
table { border-collapse: collapse; width: 100%; }
caption { caption-side: top; text-align: left; color: var(--muted); padding-bottom: 6px; }
th, td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--rule); vertical-align: top; }
th { color: var(--muted); font-weight: 600; }
td.num, th.num { text-align: right; }
tr.sel td { background: var(--accent-soft); }
.panel { background: var(--surface); border: 1px solid var(--rule); border-radius: 10px; padding: 14px 16px; margin: 16px 0; }
.panel .kicker { color: var(--accent-ink); margin-bottom: 4px; }
.ctrl { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 8px 0; }
.ctrl button, button.go { padding: 5px 11px; border-radius: 8px; border: 1px solid var(--rule); background: var(--bg); color: var(--ink); cursor: pointer; }
.ctrl button:hover, button.go:hover { border-color: var(--accent); }
.ctrl button.on { background: var(--accent-fill); border-color: var(--accent); }
.ctrl select, .ctrl input { padding: 4px 6px; border-radius: 6px; border: 1px solid var(--rule); background: var(--surface); }
.ctrl input[type=number] { width: 5.5em; }
.readout { color: var(--muted); margin-top: 8px; }
.readout b { color: var(--ink); }
.ok { color: var(--prov); font-weight: 600; }
.bad { color: var(--open); font-weight: 600; }
.widget svg { width: 100%; height: auto; display: block; max-width: 460px; margin: 0 auto; touch-action: none; }
.mat { overflow-x: auto; text-align: center; }
.log { max-height: 9em; overflow-y: auto; border-top: 1px dashed var(--rule); margin-top: 8px; padding-top: 6px; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 640px) { .two { grid-template-columns: 1fr; } }
.predict { border-left: 3px solid var(--q); padding: 4px 0 4px 12px; margin: 10px 0; }

/* questions (A6) */
.q { margin: 18px 0 26px; }
.q .kind { text-transform: uppercase; letter-spacing: .06em; color: var(--q); font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
.opts label { display: block; padding: 7px 10px; border: 1px solid var(--rule); border-radius: 8px; margin: 6px 0; cursor: pointer; background: var(--surface); }
.opts label:hover { border-color: var(--accent); }
.opts input { margin-right: 8px; }
textarea { width: 100%; min-height: 90px; font-family: inherit; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--rule); background: var(--surface); color: var(--ink); }
button.go { margin-top: 8px; border-color: var(--accent); background: var(--accent-fill); }
button.go:disabled { opacity: .45; cursor: not-allowed; }
.fb { display: none; margin-top: 10px; padding: 10px 14px; border-radius: 8px; background: var(--accent-soft); }
.fb.show { display: block; }

/* roadmap (A1) */
.roadmap { background: var(--surface); border: 1px solid var(--rule); border-radius: 10px; padding: 10px 12px; margin: 8px 0 18px; }
.roadmap .head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.roadmap svg { width: 100%; height: auto; display: block; }
.rm .nd { cursor: pointer; }
.rm .nd rect { stroke-width: 1.4; }
.rm .nd:hover rect, .rm .nd:focus rect { stroke-width: 2.8; }
.rm .nd:focus { outline: none; }
.rm .e { fill: none; stroke: var(--muted); stroke-opacity: .5; stroke-width: 1.3; }
.rm .lbl { font-size: 13px; line-height: 1.25; text-align: center; color: var(--ink); display: flex; align-items: center; justify-content: center; height: 100%; padding: 0 6px; }
.rm .lbl .katex { font-size: 1em; }
.legend { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; color: var(--muted); }

/* knowls (A2) and reader's notes (A13) */
button.kn { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; border-bottom: 1.5px dotted var(--accent-ink); }
button.kn:focus-visible, sup.qnote button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.knowl-body { display: block; background: var(--accent-soft); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; padding: 8px 12px; margin: 6px 0; }
td .knowl-body { margin: 4px 0; }
sup.qnote button { font-family: -apple-system, sans-serif; font-size: .72rem; border: 1px solid var(--q); color: var(--q); background: var(--q-bg); border-radius: 999px; padding: 0 5px; cursor: pointer; margin-left: 2px; }
body.no-notes sup.qnote { display: none; }
.qa { display: none; background: var(--q-bg); border-radius: 8px; padding: 8px 12px; margin: 8px 0; }
.qa.show { display: block; }
.qa .qq { font-weight: 600; font-family: -apple-system, sans-serif; font-size: var(--fs-small); color: var(--q); }

/* timeline */
.tl { position: relative; margin: 20px 0; padding-left: 26px; }
.tl::before { content: ""; position: absolute; left: 8px; top: 6px; bottom: 6px; width: 2px; background: var(--rule); }
.tl .ev { position: relative; margin: 0 0 26px; }
.tl .ev::before { content: ""; position: absolute; left: -24px; top: 8px; width: 12px; height: 12px; border-radius: 50%; background: var(--surface); border: 2px solid var(--accent); }
.tl .yr { font-family: -apple-system, sans-serif; font-weight: 700; color: var(--accent-ink); }
.tl dl { margin: 4px 0 0; display: grid; grid-template-columns: 7.5em 1fr; gap: 2px 10px; }
.tl dt { font-family: -apple-system, sans-serif; font-size: var(--fs-small); color: var(--muted); }
.tl dd { margin: 0; }
@media (max-width: 560px) { .tl dl { grid-template-columns: 1fr; } .tl dd { margin-bottom: 4px; } }
.status { border: 1px solid var(--rule); border-radius: 10px; padding: 10px 14px; background: var(--surface); }
ul.goals li { margin: 4px 0; }
.unver { color: var(--open); font-weight: 600; }
.kicker .katex { text-transform: none; letter-spacing: 0; }
.roadmap { overflow-x: auto; }
@media (max-width: 640px) { .roadmap svg { min-width: 620px; } }

/* tokens and cost of making these pages: top right of the navigation, plot on the hub */
nav.site details.cost { position: relative; }
nav.site details.cost summary { list-style: none; cursor: pointer; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--rule); background: var(--surface); white-space: nowrap; font-variant-numeric: tabular-nums; }
nav.site details.cost summary::-webkit-details-marker { display: none; }
nav.site details.cost summary b { font-weight: 600; color: var(--ink); }
nav.site details.cost .usd { color: #8a5a1c; font-weight: 600; }
.cost-menu { position: absolute; right: 0; top: calc(100% + 6px); width: min(24rem, calc(100vw - 24px)); background: var(--surface); border: 1px solid var(--rule); border-radius: 10px; padding: 10px 14px; box-shadow: 0 6px 24px rgba(0,0,0,.08); z-index: 30; }
.cost-menu .cost-head { margin: 0 0 6px; font-weight: 650; }
.cost-menu td small { display: block; color: var(--muted); }
.cost-menu td, .cost-menu th { padding: 4px 6px; }
.cost-menu td + td, .cost-menu th + th { text-align: right; }
.cost-menu tr.sum td { font-weight: 650; }
.cost-menu p.small { margin: 8px 0 0; line-height: 1.45; }
#cost-plot svg { width: 100%; height: auto; display: block; font: 12px/1.2 -apple-system, BlinkMacSystemFont, sans-serif; }
@media (max-width: 640px) { .cost-menu { position: fixed; left: 12px; right: 12px; width: auto; top: 96px; } }

/* linked multi-pane widgets */
.three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.three .pane, .two .pane { margin: 0; }
.pane svg { width: 100%; height: auto; display: block; border: 1px solid var(--rule); border-radius: 8px; touch-action: none; }
@media (max-width: 720px) { .three { grid-template-columns: 1fr; } .three .pane svg { max-width: 340px; margin: 0 auto; } }
.ctrl input[type=range] { width: 11em; vertical-align: middle; }

/* matrix lab */
ol.steps { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 10px 0; counter-reset: st; font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-small); }
ol.steps li { counter-increment: st; padding: 3px 12px 3px 8px; border-radius: 999px; border: 1px solid var(--rule); color: var(--muted); background: var(--bg); }
ol.steps li::before { content: counter(st) ". "; font-weight: 700; }
ol.steps li.now { border-color: var(--accent); color: var(--ink); background: var(--accent-fill); }
ol.steps li.done { color: var(--prov); background: var(--prov-bg); border-color: var(--prov-bg); }
ol.steps li.done::before { content: "✓ "; }
.mgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 4.6em)); gap: 6px; justify-content: center; margin: 10px 0; padding: 8px 12px; border-left: 2px solid var(--ink); border-right: 2px solid var(--ink); border-radius: 10px; width: max-content; margin-left: auto; margin-right: auto; }
.mgrid .cell { font: 600 1.05rem/1 -apple-system, BlinkMacSystemFont, sans-serif; font-variant-numeric: tabular-nums; padding: 12px 4px; border-radius: 8px; border: 1px solid var(--rule); background: var(--surface); color: var(--ink); cursor: default; }
.mgrid .cell.zero { color: #b8b5ad; font-weight: 400; }
.mgrid .cell.one { color: var(--prov); }
.mgrid .cell.act { cursor: pointer; border-color: var(--accent); }
.mgrid .cell.act:hover { background: var(--accent-soft); }
.mgrid .cell.next { background: var(--accent-fill); box-shadow: 0 0 0 2px var(--accent); }
.mgrid .cell.neg { color: var(--open); }
.hint { font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-small); min-height: 2.6em; margin: 4px 0; }
.pane .cap { margin: 6px 0 0; }
@media (max-width: 640px) { nav.site { position: static; } }

/* widget anatomy, one region per role (Palmer 1992, common region; Mayer, spatial contiguity and signalling):
   pictures with their captions directly under them, then a "change" box (inputs only) and a "mathematics" box
   (the live values only). Slider labels carry the colour of the mark they move. */
.widget > .kicker { margin-bottom: 10px; }
.three { gap: 16px; }
.pane .cap, .pane .small.cap { margin: 10px 4px 2px; line-height: 1.45; }
.pane .cap b { color: var(--ink); }
.zones { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 14px; }
.zones.stack { grid-template-columns: 1fr; }
@media (max-width: 720px) { .zones { grid-template-columns: 1fr; } }
.zone { border-radius: 8px; padding: 10px 14px 12px; min-width: 0; }
.zone.change { background: var(--bg); border: 1px solid var(--rule); }
.zone.math { background: var(--accent-soft); border: 1px solid var(--accent-fill); }
.zone > .zlab { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: var(--fs-small); font-weight: 650; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); margin: 0 0 6px; }
.zone .grp + .grp { border-top: 1px dashed var(--rule); margin-top: 8px; padding-top: 8px; }
.zone .glab { font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-small); color: var(--muted); margin: 0 0 2px; }
.zone .ctrl { margin: 4px 0; }
.zone.math .readout { color: var(--ink); margin: 0; font-family: inherit; }
.zone.math .readout .katex-display { margin: 4px 0; }
.zone.math .readout p { margin: 4px 0; }
.zone .predict { margin: 4px 0; }
.ctrl label.c-1, .ctrl label.c-2, .ctrl label.c-3 { font-weight: 600; }
.ctrl label.c-1 { color: var(--c1); } .ctrl label.c-1 input[type=range] { accent-color: var(--c1); }
.ctrl label.c-2 { color: var(--c2); } .ctrl label.c-2 input[type=range] { accent-color: var(--c2); }
.ctrl label.c-3 { color: var(--c3); } .ctrl label.c-3 input[type=range] { accent-color: var(--c3); }
.legend .sw { display: inline-block; width: 18px; height: 0; border-top: 3px solid; vertical-align: middle; margin-right: 4px; }
.legend .sw.dash { border-top-style: dashed; border-top-width: 2px; }
.legend > span { margin-right: 10px; }

/* footnotes */
sup.fn a { text-decoration: none; font-family: -apple-system, sans-serif; font-size: .75rem; padding: 0 2px; }
ol.footnotes { font-size: var(--fs-small); color: var(--muted); border-top: 1px solid var(--rule); margin: 18px 0 0; padding: 8px 0 0 1.4em; }
ol.footnotes li { margin: 4px 0; }
ol.footnotes li:target { background: var(--hi); }

/* Hecke lab (functions.html) */
.hl table { width: auto; min-width: 100%; }
.hl td.zero { color: #b8b5ad; }
.hl th.tgt, .hl td.tgt { background: var(--hi); }
.hl th, .hl td { padding: 5px 8px; white-space: nowrap; }
#hl-saved button, .zone .ctrl button { margin: 2px 0; }
.stmt-head .tag, td .tag { white-space: normal; }
figure img.narrow { max-width: 480px; margin: 0 auto; }
[id] { scroll-margin-top: 150px; }

/* comments (../../collaboration/comments.js): while a comment card is docked beside the text, the script pads the body
   on the right, the sticky nav narrows, and the house and search icons that site-home.js placed in the nav's margins
   would sit on top of the first row; keep the row clear of them. */
body[style*="padding-right"] nav.site .row:first-child { padding-left: 52px; padding-right: 52px; }

/* 𝔸ⁿ widgets (affine.html): orbit picker and lattice-chain explorer, moved from the Iwahori workspace on 2026-10-20 */
figure.widget { background: var(--surface); border: 1px solid var(--rule); border-radius: 10px; padding: 12px 14px; }
figure.widget svg { width: 100%; height: auto; display: block; background: #fff; border: 1px solid var(--rule); border-radius: 8px; }
figure.widget button { padding: 4px 10px; border-radius: 8px; border: 1px solid var(--rule); background: var(--bg); color: var(--ink); cursor: pointer; }
figure.widget button:hover { border-color: var(--accent); }
figure.widget button[aria-pressed="true"] { background: var(--accent-fill); border-color: var(--accent); }
figure.widget button:disabled { opacity: .45; cursor: not-allowed; }
figure.widget select, figure.widget input[type=number] { padding: 3px 6px; border-radius: 6px; border: 1px solid var(--rule); background: var(--surface); }
.orbit-controls, .explorer-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: var(--fs-small); }
.orbit-controls label, .explorer-controls label { display: flex; align-items: center; gap: 8px; }
.orbit-controls input[type=range], .explorer-controls input[type=range] { width: 140px; accent-color: var(--accent-ink); }
.orbit-presets { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.orbit-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.orbit-charts h3 { margin: 4px 0; font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-body); }
.orbit-charts p { margin: 0 0 6px; font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: var(--fs-small); color: var(--muted); }
.orbit-charts svg { cursor: crosshair; }
#orbit-readout { min-height: 3.5em; overflow-x: auto; }
.explorer-j { display: flex; align-items: center; gap: 6px; } #ex-j-buttons { display: flex; flex-wrap: wrap; gap: 4px; }
.explorer-step button { margin-left: 6px; }
.explorer-body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 10px; }
.explorer-body svg { max-width: 540px; margin: 0 auto; }
.explorer-readout { min-width: 0; overflow-x: auto; }
.explorer-readout p { margin: 6px 0; } .explorer-readout .katex-display { margin: .4em 0; text-align: left; } .explorer-readout .katex-display > .katex { text-align: left; }
figure.step-figure { margin: 10px 0 14px; } figure.step-figure img.narrow { max-width: 360px; }
@media (max-width: 760px) { .orbit-charts, .explorer-body { grid-template-columns: minmax(0, 1fr); } }

/* motivation page (2026-10-20): open literature questions are boxed like statements, with the source transcluded
   (a highlighted crop of the cited page, its text as alt); statement knowls copy a numbered statement in place */
.stmt[data-kind="open"] { border-left-color: var(--open); background: #fffafb; }
.stmt dl.setup { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 8px 0 10px; }
.stmt dl.setup dt { font-weight: 600; }
.stmt dl.setup dd { margin: 0; }
@media (max-width: 560px) { .stmt dl.setup { grid-template-columns: 1fr; } .stmt dl.setup dd { margin-bottom: 4px; } }
.stmt .katex-display { margin: 12px 0; }
.knowl-stmt .stmt { margin: 2px 0 6px; }
.knowl-stmt > p.small { margin: 0; }
.extract { margin: 10px 0 8px; border: 1px solid var(--rule); border-radius: 8px; background: #fff; overflow: hidden; }
.extract img { display: block; width: 100%; max-width: 640px; height: auto; margin: 0 auto; }
.extract .src { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: var(--fs-small); color: var(--muted); padding: 5px 10px; border-top: 1px solid var(--rule); background: var(--bg); }
.extract .src mark { background: var(--hi); border-bottom: 2px solid var(--hi-rule); padding: 0 3px; }
td .ex-link { white-space: nowrap; }
