/* DESIGN TOKENS — edit these values to change the site by hand.
   Paper, ink and muted text meet AA contrast. One blue-gray accent. */
:root{color-scheme:light;--paper:#f6f4ed;--surface:#eeece4;--ink:#232b2e;--muted:#586165;--accent:#285a69;--rule:#c8cdc8;--focus:#285a69;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--width:1100px;--reading:68ch;--space:clamp(24px,5vw,64px)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#192225;--surface:#222e32;--ink:#ecece4;--muted:#b6c0be;--accent:#9bc9d4;--rule:#49585b;--focus:#9bc9d4}}
:root[data-theme=dark]{color-scheme:dark;--paper:#192225;--surface:#222e32;--ink:#ecece4;--muted:#b6c0be;--accent:#9bc9d4;--rule:#49585b;--focus:#9bc9d4}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.7 var(--serif)}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:5px;border-radius:2px}.skip{position:absolute;top:-120px;left:20px;z-index:10;padding:12px 20px;background:var(--paper)}.skip:focus{top:12px}.site-header,main,footer{max-width:var(--width);margin:auto;padding-inline:var(--space)}.site-header{padding-top:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.brand{color:var(--ink);font:600 28px/1.2 var(--sans);letter-spacing:-1px;text-decoration:none}.brand span{display:block;margin-top:9px;font:11px/1.5 var(--mono);letter-spacing:.02em;color:var(--muted)}.theme{background:transparent;color:var(--ink);border:1px solid var(--rule);padding:10px 14px;font:12px/1.4 var(--mono);cursor:pointer;min-height:44px}.site-header nav{width:100%;display:flex;flex-wrap:wrap;gap:6px 26px;border-block:1px solid var(--rule);padding:12px 0;font:13px/1.5 var(--sans)}.site-header nav a{padding-block:8px;color:var(--muted);text-decoration:none}.site-header nav a[aria-current]{color:var(--accent);text-decoration:underline}.site-header nav a:hover{color:var(--ink)}main{padding-top:64px;padding-bottom:72px}.eyebrow,.status{font:11px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}h1,h2,h3{font-family:var(--sans);line-height:1.18;font-weight:500}h1{font-size:clamp(40px,6vw,70px);letter-spacing:-.045em;margin:19px 0 26px;max-width:20ch}h2{font-size:24px;letter-spacing:-.025em;margin:0 0 22px}h3{font-size:21px;letter-spacing:-.02em}p{max-width:var(--reading);margin:0 0 20px}.lead{font-size:clamp(21px,2.5vw,27px);line-height:1.5;max-width:48ch;color:var(--muted);margin-bottom:44px}main>section{max-width:var(--reading);padding-top:36px;margin-top:36px;border-top:1px solid var(--rule)}main>section:has(.cards){max-width:none}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-top:32px;border-top:1px solid var(--rule)}.intro-grid h2{font-size:19px}.intro-grid p{font-size:17px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.card{border:1px solid var(--rule);padding:25px 23px;color:var(--ink);text-decoration:none;display:block}.card:hover{background:var(--surface);border-color:var(--accent)}.card h3{margin:22px 0 16px}.card h3 span{color:var(--accent)}.card p{font-size:16px;line-height:1.6;margin:0;color:var(--muted)}.note,.notice{border-left:3px solid var(--accent);background:var(--surface);padding:24px 28px;margin:40px 0;max-width:var(--reading)}.notice h2{font-size:19px}.note p:last-child,.notice p:last-child{margin-bottom:0}.small,figcaption{font-size:14px;line-height:1.6;color:var(--muted)}.contents{display:flex;flex-wrap:wrap;gap:10px 22px;max-width:var(--reading);font:12px/1.8 var(--mono);margin-bottom:35px}.formula{font:28px/1.8 var(--serif);padding:18px 24px;margin:24px 0;background:var(--surface);border-block:1px solid var(--rule);text-align:center}.fraction{display:inline-flex;flex-direction:column;vertical-align:middle;line-height:1.3;text-align:center;margin-left:8px}.fraction span:first-child{border-bottom:1px solid;padding:0 8px 4px}.fraction span:last-child{padding-top:4px}.todo{font:14px/1.6 var(--mono);padding:12px 16px;border:1px dashed var(--accent);overflow-wrap:anywhere}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6}caption{text-align:left;color:var(--muted);font:12px/1.6 var(--mono);padding-bottom:16px}th,td{text-align:left;vertical-align:top;padding:15px 12px;border-bottom:1px solid var(--rule)}th{font-family:var(--sans);font-weight:500}thead th{background:var(--surface)}tbody th{width:30%}.references{padding-left:25px;font-size:15px;line-height:1.7}.references li{padding-left:8px;margin-bottom:22px;overflow-wrap:anywhere}.record dt{font:12px/1.6 var(--mono);margin-top:24px}.record dd{margin:10px 0 20px}.source-list{padding:0;list-style:none}.source-list li{border-bottom:1px solid var(--rule);padding:22px 0}.source-list h3{overflow-wrap:anywhere;margin:8px 0 12px}.source-list p{margin-bottom:8px}.archive-meta{max-width:var(--reading)}.archive-meta p{margin:18px 0}figure{margin:32px 0}svg{width:100%;height:auto;display:block}svg text{fill:var(--ink);font:15px var(--sans)}.axis,.guide,.measure{fill:none;stroke:var(--muted);stroke-width:1.5}.guide{stroke-dasharray:4 5}.path{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round}.event-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:2 6}.dot{fill:var(--accent)}figcaption{margin-top:20px}footer{padding-bottom:36px;font:12px/1.7 var(--sans);color:var(--muted)}footer>p{max-width:none;border-top:1px solid var(--rule);padding-top:24px}.footer-row{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}
@media(max-width:700px){body{font-size:17px}.site-header{padding-top:24px;gap:22px}.site-header nav{gap:4px 20px}main{padding-top:42px;padding-bottom:48px}.intro-grid,.cards{grid-template-columns:1fr;gap:22px}.intro-grid{gap:30px}.lead{margin-bottom:32px}.card{padding:22px}.card h3{margin:14px 0 12px}.notice,.note{padding:20px}h2{font-size:22px}th,td{padding:12px 8px;font-size:14px}.formula{font-size:23px;padding:16px 8px}.theme{font-size:11px;padding:8px 10px}svg text{font-size:16px}.footer-row{justify-content:flex-start}}
/* PRINT — paper-like output, all research text retained. */
@media print{:root,:root[data-theme=dark]{color-scheme:light;--paper:white;--surface:white;--ink:#111;--muted:#333;--accent:#111;--rule:#aaa}body{font-size:11pt;line-height:1.5}.site-header,footer,main{max-width:none;padding:0}.site-header nav,.theme,.skip,.contents{display:none}.site-header{margin-bottom:22pt}.brand{font-size:18pt}.brand span{font-size:8pt}main{padding:0}h1{font-size:30pt;max-width:none}h2{font-size:17pt;break-after:avoid}h3{break-after:avoid}.lead{font-size:14pt}.cards{gap:10pt}.card{padding:10pt}.intro-grid{gap:20pt}main>section{padding-top:16pt;margin-top:16pt}a{color:#111}figure,.note,.notice,.source-list li{break-inside:avoid}.formula{font-size:18pt}footer{margin-top:24pt;font-size:8pt}.todo{font-size:9pt}svg{max-height:220pt}thead{display:table-header-group}tr{break-inside:avoid}@page{margin:20mm}}

/* Compact appearance control; icons show the available action. */
.theme{width:44px;height:44px;min-height:44px;padding:10px;border-radius:50%;border-color:transparent}
.theme:hover{background:var(--surface);border-color:var(--rule)}
.theme svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theme .theme-sun{display:none}.theme[data-icon=sun] .theme-sun{display:block}.theme[data-icon=sun] .theme-moon{display:none}
@media print{.theme{display:none}}

/* Consent banner and footer privacy controls. */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:20;max-width:720px;margin:auto;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding:18px 22px;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-left:3px solid var(--accent);box-shadow:0 8px 28px rgba(0,0,0,.18);font:14px/1.55 var(--sans)}
.consent p{flex:1 1 320px;margin:0;max-width:none}
.consent-actions{display:flex;gap:10px;margin-left:auto}
.consent button,.consent-open{font:13px/1.4 var(--sans);cursor:pointer}
.consent button{min-height:44px;padding:10px 18px;background:transparent;color:var(--ink);border:1px solid var(--rule)}
.consent button:hover{border-color:var(--accent)}
.consent button.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
.consent-open{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:.2em;font-size:12px}
@media(max-width:700px){.consent{left:12px;right:12px;bottom:12px;padding:16px}.consent-actions{width:100%}.consent-actions button{flex:1}}
@media print{.consent,.consent-open{display:none}}

/* Wordmark: "scale" in accent with an event path (directional-change zigzag) underneath. */
.brand{font-weight:500;font-size:30px;letter-spacing:-1.2px;line-height:1.1}
.brand b{position:relative;display:inline-block;font-weight:650;color:var(--accent)}
.brand b svg{position:absolute;left:0;bottom:-9px;width:100%;height:8px;overflow:visible}
.brand b path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.brand span{margin-top:14px}
@media(max-width:700px){.brand{font-size:27px}}
@media print{.brand b{color:#111}.brand b path{stroke:#111}}

/* Home: event-path illustration beside the headline (wide screens only). */
main.home{position:relative}
.hero-path{display:none;margin:0}
@media(min-width:1000px){.home .hero-path{display:block;position:absolute;top:96px;right:var(--space);width:min(32%,340px)}.home h1,.home .lead{max-width:min(48ch,58%)}}
.hero-path svg{overflow:visible}
.hp-line{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.hp-dot{fill:var(--accent)}.hp-open{fill:var(--paper);stroke:var(--accent);stroke-width:2.5}
.hp-axis{stroke:var(--rule);stroke-width:1.5}.hp-tick{stroke:var(--accent);stroke-width:2}.hp-drop{stroke:var(--rule);stroke-width:1;stroke-dasharray:2 5}
.hero-path text{fill:var(--muted);font:12px var(--mono)}
@media(prefers-reduced-motion:no-preference){
.hp-line{stroke-dashoffset:1;animation:hp-draw 1.8s .2s cubic-bezier(.4,0,.2,1) forwards}
.hp-dot,.hp-tick,.hp-drop,.hp-open{opacity:0;animation:hp-in .4s forwards;animation-delay:calc(.35s + var(--i,6) * .25s)}
@keyframes hp-draw{to{stroke-dashoffset:0}}@keyframes hp-in{to{opacity:1}}}

/* Method: on-page contents become a sticky side index on wide screens. */
@media(min-width:1180px){
.contents{float:right;position:sticky;top:28px;z-index:1;width:190px;flex-direction:column;flex-wrap:nowrap;gap:2px;margin:0 0 0 40px;padding-left:18px;border-left:1px solid var(--rule)}
.contents a{text-decoration:none;color:var(--muted);padding:3px 0}
.contents a:hover,.contents a[aria-current]{color:var(--accent)}
.contents a[aria-current]{text-decoration:underline}}
