

:root {
  --paper:#FCFCFA; --paper-sunk:#F4F5F2; --ink:#191C1A; --ink-muted:#5F645F;
  --rule:#DCE0DA; --accent:#1F6F5C; --accent-sunk:#E9F1ED;
  --font-display:'Source Serif 4', Georgia, 'Times New Roman', serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --measure:68ch; --note-width:17ch; --note-gap:3ch;
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem; --s6:2.5rem; --s7:4rem; --s8:6rem;
}
@media (prefers-color-scheme: dark) {
  :root { --paper:#121413; --paper-sunk:#1A1D1B; --ink:#E8EAE5; --ink-muted:#9AA098;
          --rule:#2C302D; --accent:#6FBFA3; --accent-sunk:#182420; }
}
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; padding:var(--s6) var(--s5) var(--s8); background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:clamp(1.0625rem, 1rem + .25vw, 1.1875rem); line-height:1.6;
  font-feature-settings:'kern' 1, 'liga' 1; counter-reset:sidenote; }

.page { max-width:var(--measure); margin:0 auto; }
h1, h2, h3 { font-family:var(--font-display); font-weight:600; color:var(--ink); text-wrap:balance; margin:0 0 var(--s4); }
h1 { font-size:clamp(2rem, 1.55rem + 1.9vw, 3rem); line-height:1.08; letter-spacing:-.021em; margin-bottom:var(--s3); }
h2 { font-size:clamp(1.5rem, 1.34rem + .72vw, 1.95rem); line-height:1.16; letter-spacing:-.014em;
  margin-top:var(--s7); padding-bottom:var(--s3); border-bottom:1px solid var(--rule); }
h3 { font-size:1.25rem; line-height:1.3; letter-spacing:-.008em; margin-top:var(--s6); }
p { margin:0 0 var(--s4); }
h1 + p { font-size:1.15em; line-height:1.5; color:var(--ink-muted); margin-bottom:var(--s6); }
.sn { counter-increment:sidenote; }
.sn-toggle { position:absolute; width:1px; height:1px; opacity:0; clip-path:inset(50%); }
.sn-mark { font-size:.68em; font-weight:600; color:var(--accent); vertical-align:super; line-height:0; padding:0 .12em; cursor:pointer; }
.sn-mark::after { content:counter(sidenote); }
.sn-toggle:focus-visible + .sn-mark { outline:2px solid var(--accent); outline-offset:2px; border-radius:2px; }
.sn-body { float:right; clear:right; width:var(--note-width); margin:.4rem calc(-1 * (var(--note-width) + var(--note-gap))) var(--s4) 0;
  font-size:.8125rem; line-height:1.45; color:var(--ink-muted); }
.sn-body::before { content:counter(sidenote); font-weight:600; color:var(--accent); font-size:.85em; vertical-align:super; line-height:0; margin-right:.35em; }
@media (max-width:78rem) {
  .sn-mark { background:var(--accent-sunk); border-radius:2px; padding:.1em .32em; vertical-align:baseline; line-height:normal; font-size:.72em; }
  .sn-body { display:none; }
  .sn-toggle:checked ~ .sn-body { display:block; float:none; width:auto; margin:var(--s3) 0 var(--s4); padding-left:var(--s4); border-left:2px solid var(--accent); }
}
a { color:var(--accent); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em;
  text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent); }
a:hover { text-decoration-color:var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:2px; }
strong { font-weight:600; }
code { font-family:var(--font-mono); font-size:.86em; background:var(--paper-sunk); padding:.12em .34em; border-radius:2px; }
table, .num, time, .stat { font-variant-numeric:tabular-nums lining-nums; }
.table-wrap { max-width:var(--measure); margin:var(--s5) auto; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-wrap table { margin:0; min-width:24rem; }
table { width:100%; border-collapse:collapse; margin:var(--s5) auto; font-size:.94em; }
thead th { font-size:.8rem; font-weight:600; color:var(--ink-muted); text-align:left; padding:0 var(--s3) var(--s2);
  border-bottom:1px solid var(--ink); white-space:nowrap; }
thead th.num { text-align:right; }
tbody td { padding:var(--s3); border-bottom:1px solid var(--rule); vertical-align:top; }
tbody tr:last-child td { border-bottom:1px solid var(--ink); }
.num { text-align:right; }
.callout { margin:var(--s5) auto; padding:var(--s4); background:var(--accent-sunk); border-left:2px solid var(--accent); font-size:.96em; }
.callout p:last-child { margin-bottom:0; }
.stat { font-family:var(--font-display); font-size:2.5rem; font-weight:600; line-height:1; letter-spacing:-.02em; display:block; }
.stat-label { font-size:.875rem; color:var(--ink-muted); margin-top:var(--s2); }


form { display:grid; grid-template-columns:1fr auto auto; gap:var(--s3); align-items:end; }
label.field { display:block; font-size:.8rem; font-weight:600; color:var(--ink-muted); margin-bottom:var(--s1); }
input[type=search], select, button { font:inherit; font-size:1rem; color:var(--ink); background:var(--paper);
  border:1px solid var(--rule); border-radius:2px; padding:var(--s2) var(--s3); min-height:2.75rem; }
input[type=search] { width:100%; }
button { background:var(--accent); border-color:var(--accent); color:var(--paper); font-weight:600; cursor:pointer; }
@media (max-width:34rem) {
  body { padding:var(--s5) var(--s4) var(--s7); }
  h2 { margin-top:var(--s6); }
  form { grid-template-columns:1fr 1fr; }
  form > div:first-child { grid-column:1 / -1; }
  table { font-size:.88em; }
}
ol.results { list-style:none; padding:0; margin:var(--s5) auto; }
ol.results li { padding:var(--s3) 0; border-bottom:1px solid var(--rule); margin:0; }
ol.results .where { color:var(--ink-muted); font-size:.9em; }
.muted { color:var(--ink-muted); }
.hidden { display:none; }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } }
@media print {
  :root { --paper:#fff; --ink:#000; --ink-muted:#444; --accent:#000; }
  body { font-size:11pt; padding:0; }
  form { display:none; }
  a { text-decoration:none; color:inherit; }
  h2, h3 { break-after:avoid; }
  table { break-inside:avoid; }
  .table-wrap { overflow:visible; }
  .sn-body { display:block !important; float:none; width:auto; margin:var(--s2) 0 var(--s3); padding-left:var(--s4); border-left:1px solid #999; }
}

.meta{font-size:.85em;color:var(--ink-muted);}
