:root {
  --paper: #f5f6f2;
  --surface: #ffffff;
  --surface-soft: #e9eee8;
  --rule: #d7ded6;
  --ink: #17231f;
  --ink-2: #63716b;
  --accent: #b9f36b;
  --accent-dark: #456d25;
  --coral: #f28a6d;
  --black: #10211d;
  --shadow: 0 18px 50px rgba(28, 49, 39, .09);
  --serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Inter", "Segoe UI", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
:root[data-theme="dark"], :root:not([data-theme])[data-system-dark="true"] {
  --paper: #0e1714; --surface: #15231e; --surface-soft: #20332a; --rule: #2c4036;
  --ink: #edf5ec; --ink-2: #a2b3a6; --accent: #b9f36b; --accent-dark: #c8f88a;
  --black: #09130f; --shadow: 0 18px 50px rgba(0,0,0,.24);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --paper:#0e1714; --surface:#15231e; --surface-soft:#20332a; --rule:#2c4036; --ink:#edf5ec; --ink-2:#a2b3a6; --black:#09130f; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 17px/1.75 var(--serif); -webkit-font-smoothing: antialiased; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 2rem; }
a { color: var(--ink); text-underline-offset: 3px; }
a:focus-visible, input:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }

.masthead { position: relative; overflow: hidden; padding: 5.7rem 0 4.6rem; color: #f4f8f0; background: var(--black); border-bottom: 1px solid #2d493b; }
.masthead::before { content:""; position:absolute; width:40rem; height:40rem; right:-12rem; top:-22rem; border:1px solid rgba(185,243,107,.25); border-radius:50%; box-shadow:0 0 0 3rem rgba(185,243,107,.04),0 0 0 8rem rgba(185,243,107,.025); }
.masthead::after { content:""; position:absolute; left:7%; bottom:-4rem; width:14rem; height:14rem; background:var(--accent); opacity:.08; filter:blur(55px); border-radius:50%; }
.masthead .wrap { position:relative; z-index:1; }
.venue { display:flex; align-items:center; gap:.65rem; margin:0 0 1.4rem; color:var(--accent); font:700 .72rem/.9 var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.venue::before { content:""; width:2.2rem; height:2px; background:currentColor; }
h1 { max-width: 850px; margin:0 0 1.2rem; font:750 clamp(2.8rem,6vw,5.4rem)/.98 var(--sans); letter-spacing:-.065em; }
.dek { max-width: 650px; margin:0 0 1.8rem; color:#c0d0c0; font:400 1.12rem/1.55 var(--sans); }
.author { margin:0 0 2.2rem; font:600 1rem/1.45 var(--sans); }
.author span { color:#93a99a; font-weight:400; font-size:.86rem; }
.hero-stats { display:flex; gap:2.1rem; margin:0 0 2.2rem; }
.hero-stats div { display:flex; flex-direction:column; gap:.05rem; }
.hero-stats strong { color:var(--accent); font:750 1.25rem var(--sans); letter-spacing:-.04em; }
.hero-stats span { color:#99aca0; font:600 .68rem var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.links { display:flex; flex-wrap:wrap; gap:.6rem; }
.links a { padding:.55rem .85rem; color:#edf7eb; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.2); border-radius:7px; font:600 .8rem var(--sans); text-decoration:none; transition:.2s ease; }
.links a:first-child { color:#17231f; background:var(--accent); border-color:var(--accent); }
.links a:hover { border-color:var(--accent); transform:translateY(-2px); }

.layout { display:grid; grid-template-columns:190px minmax(0,760px); gap:5.5rem; padding-top:4.5rem; padding-bottom:4rem; }
.toc { position:relative; }
.toc nav { position:sticky; top:1.5rem; display:flex; flex-direction:column; border-left:1px solid var(--rule); }
.toc-label { margin:0 0 .75rem; color:var(--ink-2); font:700 .68rem var(--sans); letter-spacing:.14em; text-transform:uppercase; }
.toc a { padding:.4rem 0 .4rem 1rem; margin-left:-1px; color:var(--ink-2); border-left:2px solid transparent; font:600 .76rem/1.35 var(--sans); text-decoration:none; transition:.2s ease; }
.toc a:hover, .toc a.on { color:var(--ink); border-left-color:var(--coral); }
main { min-width:0; }
section { margin-bottom:3.4rem; padding:0 0 3rem; border-bottom:1px solid var(--rule); }
section:last-child { border-bottom:0; }
h2 { display:flex; align-items:center; gap:.8rem; margin:0 0 1.15rem; color:var(--ink); font:750 1.7rem/1.18 var(--sans); letter-spacing:-.035em; }
h2::before { content:""; width:.58rem; height:.58rem; flex:0 0 auto; background:var(--coral); border-radius:50%; box-shadow:0 0 0 5px color-mix(in srgb, var(--coral) 15%, transparent); }
h3 { margin:2rem 0 .65rem; color:var(--accent-dark); font:750 .76rem/1.3 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
p { margin:0 0 1.1rem; }
ul, ol { padding-left:1.4rem; } li { margin-bottom:.45rem; }
code { color:var(--accent-dark); background:var(--surface-soft); padding:.12em .38em; border-radius:4px; font:.82em var(--mono); }
.eq { margin:1.5rem 0; padding:1.25rem 1.4rem; color:var(--ink); background:var(--surface); border:1px solid var(--rule); border-left:4px solid var(--accent); border-radius:0 12px 12px 0; overflow-x:auto; box-shadow:var(--shadow); }
.eq .katex-display { margin:0; text-align:left; } .m .katex, .eq .katex { font-size:1.04em; } .m { color:var(--ink); white-space:nowrap; }
figure { margin:1.8rem 0; padding:1.25rem 1.3rem 1.1rem; background:var(--surface); border:1px solid var(--rule); border-radius:14px; box-shadow:var(--shadow); }
figcaption { margin-top:.9rem; color:var(--ink-2); font:.78rem/1.5 var(--sans); }
svg { width:100%; height:auto; display:block; } .d-line line { stroke:var(--ink-2); stroke-width:1.4; } .d-box rect,.d-box circle { fill:var(--surface-soft); stroke:var(--ink); stroke-width:1.4; } .d-t text { fill:var(--ink); font:14px var(--sans); } .d-line { color:var(--ink-2); }
table { width:100%; margin:1.4rem 0; border-collapse:separate; border-spacing:0; font:.82rem/1.5 var(--sans); }
th,td { min-width:7rem; padding:.8rem .85rem; text-align:left; border-bottom:1px solid var(--rule); vertical-align:top; } th:first-child,td:first-child { padding-left:0; } thead th { color:var(--ink); border-bottom:2px solid var(--ink); font-weight:750; } tbody tr:hover { background:var(--surface-soft); } table.num td,table.num th { text-align:right; font-variant-numeric:tabular-nums; } table.out { display:table; max-width:460px; margin-top:1rem; } table.out th { width:58%; color:var(--ink-2); font-weight:600; }
.panel { margin:1.8rem 0; padding:1.45rem 1.5rem; background:var(--surface); border:1px solid var(--rule); border-radius:14px; box-shadow:var(--shadow); } .panel h3 { margin-top:0; }
.fields { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:.85rem; } .fields label { display:flex; align-items:center; gap:.45rem; color:var(--ink-2); font:700 .8rem var(--sans); } .fields input { width:6.5rem; padding:.52rem .6rem; color:var(--ink); background:var(--surface-soft); border:1px solid var(--rule); border-radius:6px; font:.9rem var(--mono); } .fields input:focus { border-color:var(--coral); }
.note { margin:.5rem 0 0; color:var(--ink-2); font:.78rem/1.5 var(--sans); } .chart text { fill:var(--ink-2); font:11px var(--sans); } .refs li { font-size:.9rem; } .foot { padding-top:1.5rem; padding-bottom:3rem; border-top:1px solid var(--rule); color:var(--ink-2); font:.78rem var(--sans); }
@media (max-width:900px) { .layout { display:block; padding-top:3rem; } .toc { display:none; } main { max-width:none; } }
@media (max-width:560px) { .wrap { padding:0 1.15rem; } body { font-size:16px; } .masthead { padding:4.8rem 0 3.2rem; } h1 { font-size:2.75rem; } .hero-stats { gap:1.25rem; } .eq { padding:1rem; } figure { padding:.8rem; } .panel { padding:1.1rem; } .fields input { width:5.8rem; } table { display:block; overflow-x:auto; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .links a { transition:none; } }
@media print { .masthead { color:var(--ink); background:none; box-shadow:none; } .toc,.links,.hero-stats { display:none; } .layout { display:block; } }
