:root{--small:.875rem;--body-size:1.125rem;--title:2rem;--paper:#f8f7f2;--ink:#1c2d38;--muted:#697579;--line:#d9ded9;--teal:#0d6870;--wash:#edf3f0;--gold:#ab783c;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--serif);font-size:var(--body-size);line-height:1.65}
a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:#063e43}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #36a5aa;outline-offset:5px}
.progress{position:fixed;left:0;top:0;height:3px;background:var(--teal);z-index:10;width:0}
.masthead{display:flex;justify-content:space-between;align-items:center;padding:27px 5%;border-bottom:1px solid var(--line);font-family:var(--sans);font-size:var(--small)}
.wordmark{letter-spacing:.19em;font-weight:750;color:var(--ink);text-decoration:none;font-size:var(--body-size)}.wordmark span{letter-spacing:.01em;font-size:var(--small);display:block;font-weight:400;color:var(--muted);margin-top:3px}
.edition{display:flex;gap:22px;align-items:center}.local{border:1px solid var(--line);padding:5px 11px;border-radius:30px;color:var(--muted)}
.layout{max-width:58rem;margin:auto;padding:0 clamp(20px,5vw,48px)}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font:600 var(--small)/1.6 var(--sans);color:var(--teal)}
.side-note{font-size:var(--small);color:var(--muted);border-top:1px solid var(--line);margin-top:30px;padding-top:20px;line-height:1.9}
main{min-width:0}.hero{padding:64px 0 48px}h1{font-size:var(--title);line-height:1.08;letter-spacing:-.045em;font-weight:400;margin:23px 0 25px}p{margin:18px 0}.lead{font-size:var(--body-size);line-height:1.6;max-width:760px}.hero-equation{font-size:var(--body-size);margin:28px 0 14px;border-left:2px solid var(--teal);padding:1px 16px;background:linear-gradient(90deg,#edf3f0,transparent)}.hero-caption{font-size:var(--small);line-height:1.65;color:#596b72;max-width:740px}
.trail{display:flex;flex-wrap:wrap;gap:12px;font:var(--small)/1.5 var(--sans);color:var(--teal);padding-top:24px}.trail b{font-weight:400;color:#9aaba9}
section:not(.hero){border-top:1px solid var(--line);padding:40px 0 46px}.section-label{display:flex;gap:12px;align-items:center;color:var(--muted);font:var(--small)/1.5 var(--sans);margin-bottom:23px}.section-label>span{color:var(--teal);font-weight:600}.section-label a{margin-left:auto;font-size:var(--small)}
h2{font-size:var(--title);line-height:1.2;letter-spacing:-.025em;font-weight:400;margin:16px 0 25px}h3{font:600 var(--small)/1.4 var(--sans);margin:30px 0 16px}.theorem{background:var(--wash);border-left:3px solid var(--teal);padding:22px 28px;margin:28px 0}.theorem p{margin:13px 0;font-size:var(--body-size)}
.katex{font-size:1.06em}.katex-display{margin:1.2em 0;overflow-x:auto;overflow-y:hidden;padding:7px 1px}.equation{padding:1px 6px}.spotlight{border-block:1px solid var(--line);color:var(--teal)}.margin-note{font:var(--small)/1.8 var(--sans);color:var(--muted);margin-top:24px}
details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:25px 0;background:#ffffff45}details+details{border-top:0;margin-top:-25px}summary{cursor:pointer;padding:18px 2px;font:500 var(--small)/1.55 var(--sans);list-style:none;display:flex;gap:12px;align-items:center}summary:before{content:'+';font-size:var(--body-size);color:var(--teal);width:16px;flex-shrink:0}details[open]>summary:before{content:'−'}summary span{margin-left:auto;color:var(--muted);font-size:var(--small);white-space:nowrap}.detail-body{padding:0 24px 24px;font-size:var(--body-size);line-height:1.7}.detail-body p:first-child{margin-top:7px}
.experiment{background:#fff;border:1px solid var(--line);border-radius:4px;margin:28px 0;overflow:hidden;font-family:var(--sans)}.experiment-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid #e8ece7}.segmented{display:flex;background:#edf2ef;padding:3px;border-radius:4px;gap:3px}.segmented button{border:0;padding:8px 15px;font:var(--small) var(--sans);background:transparent;color:var(--muted);border-radius:3px}.segmented .selected{background:var(--teal);color:white}.computed{font-size:var(--small);color:var(--muted)}
canvas{display:block;width:100%;height:350px;background:#fff}.legend{display:flex;flex-wrap:wrap;gap:17px;align-items:center;padding:4px 22px 18px;font-size:var(--small);color:var(--muted)}.legend label{margin-left:auto;display:flex;gap:6px;align-items:center}.swatch{display:inline-block;width:14px;height:2px;margin:0 6px 3px 0}.teal{background:var(--teal)}.gold{background:var(--gold)}input{accent-color:var(--teal)}
.controls{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:20px 22px;border-top:1px solid #e8ece7;background:#fafbf8}.controls label{font-size:var(--small)}.controls output{float:right;font-size:var(--small);color:var(--teal);font-variant-numeric:tabular-nums}.controls input{display:block;width:100%;margin-top:15px}
.readouts{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #e8ece7}.readouts>div{padding:17px 22px;border-bottom:1px solid #e8ece7}.readouts>div:nth-child(odd){border-right:1px solid #e8ece7}.readouts>div>span{display:block;font-size:var(--small);color:var(--muted)}.readouts strong{display:block;font:400 var(--body-size)/1.4 var(--serif);color:var(--teal);margin-top:7px;font-variant-numeric:tabular-nums}.experiment-note{padding:3px 22px 13px;font-size:var(--small);line-height:1.7;color:var(--muted)}
.text-button{border:0;background:none;color:var(--teal);font:var(--small)/1.6 var(--sans);padding:0;text-align:left;text-decoration:underline;text-underline-offset:5px}.boundaries{border-left:1px solid var(--gold);padding-left:22px;margin:28px 0}.boundaries p{font-size:var(--small)}.boundaries strong{font-weight:600}
.comparison{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:24px 0;border-block:1px solid var(--line);margin:28px 0}.comparison p{font-size:var(--body-size)}.support{font-size:var(--small)}.page-links{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.page-links a{font:var(--small) var(--sans);border:1px solid var(--line);padding:10px 14px;text-decoration:none}.page-links .archive{border-color:transparent}
.full-source{font-size:var(--small)}.full-source h1{font-size:var(--title)}.full-source h2{font-size:var(--body-size)}.full-source img{max-width:100%;height:auto}.full-source table{display:block;overflow:auto;font-size:var(--small);border-collapse:collapse}.full-source td,.full-source th{border:1px solid var(--line);padding:7px}.full-source pre{overflow:auto}.full-source a{overflow-wrap:anywhere}
footer{padding:35px 0 65px;border-top:1px solid var(--line);display:flex;gap:22px;font:var(--small)/1.8 var(--sans);color:var(--muted);align-items:center}footer>span{letter-spacing:.15em;color:var(--ink)}footer p{margin:0}footer a{margin-left:auto;white-space:nowrap}.skip{position:absolute;top:-100px;left:20px}.skip:focus{top:10px;background:white;padding:10px;z-index:99}
@media(max-width:1000px){.section-label a{display:none}body{font-size:var(--body-size)}.hero-equation{font-size:var(--body-size)}.computed{display:none}}
@media(max-width:720px){.masthead{padding:20px}.wordmark{font-size:var(--small)}.edition{font-size:var(--small)}.local{display:none}.layout{display:block;padding:0 22px}.hero{padding-top:38px}h1{font-size:var(--title)}.lead{font-size:var(--body-size)}h2{font-size:var(--title)}.hero-equation{font-size:var(--body-size);padding-left:9px}.trail{gap:8px;font-size:var(--small)}.theorem{padding:18px}.theorem p{font-size:var(--body-size)}summary{font-size:var(--small)}summary span{display:none}.detail-body{padding:0 8px 18px}.controls{gap:18px;padding:18px 14px}.controls output{float:none;display:block;margin-top:3px}canvas{height:270px}.legend{gap:10px;padding-inline:14px;font-size:var(--small)}.legend label{margin-left:0}.readouts>div{padding:14px}.readouts strong{font-size:var(--body-size)}.readouts>div>span{font-size:var(--small)}.experiment-head{padding:13px}.comparison{gap:18px}.comparison p{font-size:var(--small)}footer{display:block}footer p{margin:14px 0}.katex-display{font-size:.88em}.page-links a{padding:8px 11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.continuation{padding:18px 0 46px;border-top:1px solid var(--line)}.continuation h2{padding-top:30px;margin-top:38px;border-top:1px solid var(--line);scroll-margin-top:35px}.coverage-table table{display:block;overflow-x:auto;border-collapse:collapse;font:var(--small)/1.6 var(--sans)}.coverage-table th,.coverage-table td{min-width:150px;border:1px solid var(--line);padding:9px;vertical-align:top}.coverage-table a{overflow-wrap:anywhere}
.continuation>h2:first-child{border-top:0;padding-top:0;margin-top:16px}

/* Shared reading rhythm, including the HTML-authored billiard unit. */
.continuation>section{border:0;padding:0}.continuation>section:first-child>h2{border-top:0;padding-top:0;margin-top:16px}

.proof-step>h3{padding-top:14px;border-top:1px solid var(--line)}

small,code,pre{font-size:inherit} select,textarea{font:inherit}
