:root{--paper:#fbfaf6;--ink:#252e29;--muted:#667068;--line:#dcded6;--green:#315e4e;--pale:#edf2eb;--gold:#b89559}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.72 Georgia,'Times New Roman',serif}a{color:var(--green);text-underline-offset:3px}button,input,select,textarea{font:inherit}button,.import-button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b89559;outline-offset:4px}button{background:white;border:1px solid #bdc8be;border-radius:4px;padding:7px 12px;color:var(--green);font:13px/1.4 system-ui}button:hover{background:#edf2eb}aside{position:fixed;inset:0 auto 0 0;width:274px;background:#f1f2ec;border-right:1px solid var(--line);padding:34px 25px 20px;overflow-y:auto;font-family:system-ui;font-size:12px}.brand{display:block;text-decoration:none;font:24px Georgia;color:var(--ink)}.brand-mark{display:inline-grid;place-items:center;background:var(--green);color:white;width:31px;height:35px;margin-right:8px;font-style:italic}.brand-sub{display:block;font:9px system-ui;letter-spacing:2px;margin:13px 0 0 42px}.course{font-size:9px;letter-spacing:1.2px;color:var(--muted);margin:38px 0 23px}.chapter-link{display:block;font-size:13px;text-decoration:none;font-weight:600;line-height:1.6}.nav-section{margin:26px 0 10px;color:var(--muted);font-size:11px}.subsection-link{display:block;margin-bottom:8px;font-size:12px;text-decoration:none;font-weight:600}#toc{margin:16px -10px}#toc a{display:flex;gap:10px;text-decoration:none;color:#58645b;padding:7px 10px;font-size:11px;line-height:1.4;border-left:2px solid transparent}#toc a b{font-weight:500;color:#7b837c;min-width:38px}#toc a.active{background:#e3e9df;border-left-color:var(--green);color:var(--green)}.up-next{font-size:10px;color:#7c837b;line-height:1.8;margin-top:25px;border-top:1px solid var(--line);padding-top:20px}.up-next span{display:block;font-style:italic}.sidebar-foot{border-top:1px solid var(--line);margin-top:30px;padding-top:16px;font-size:10px;line-height:2;color:var(--muted)}.main-wrap{margin-left:274px}.toolbar{height:68px;position:sticky;top:0;background:#fbfaf6f5;backdrop-filter:blur(10px);z-index:5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%;font:10px system-ui;letter-spacing:1.5px;color:var(--muted)}.toolbar div{display:flex;gap:8px;align-items:center}.toolbar button,.import-button{font:11px system-ui;letter-spacing:0;padding:7px 10px}.import-button{border:1px solid #bdc8be;border-radius:4px;color:var(--green);background:white}#import{display:none}main{max-width:1000px;padding:64px 62px 70px;margin:auto}.eyebrow,.tiny{font:10px system-ui;letter-spacing:1.8px;color:var(--green)}h1{font-size:clamp(36px,4.4vw,57px);font-weight:400;line-height:1.13;letter-spacing:-1.6px;margin:22px 0}.period{color:var(--gold)}.lead{font-size:20px;line-height:1.65;color:#697269;margin:26px 0}.chapter-meta{display:flex;gap:22px;font:10px system-ui;color:var(--muted);margin:26px 0 40px}.chapter-meta span+span:before{content:'·';margin-right:22px}.overview{display:flex;align-items:center;gap:20px;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;margin-bottom:66px}.overview p{font-size:17px;margin:12px 0}.overview p span{color:var(--gold);padding:0 6px}.overview svg{width:150px;flex-shrink:0}h2{font-size:31px;font-weight:400;line-height:1.3}h3{font-size:29px;font-weight:400;line-height:1.25;margin:12px 0 22px}.section-intro p{font-size:18px}.reading-guide{color:var(--muted);font-size:15px!important}.entry{padding-top:45px;margin-top:40px;border-top:1px solid var(--line);scroll-margin-top:75px}.entry-meta{display:flex;justify-content:space-between;gap:12px;font:10px system-ui;letter-spacing:1.1px;color:var(--green)}.entry-meta a{color:var(--muted);text-decoration:none;letter-spacing:0}.statement{background:#f1f2ec;border-left:3px solid #a2b7a4;padding:22px 26px;font-size:17px}.statement ol{padding-left:26px;margin-bottom:0}.statement li{margin:9px 0}.statement p{margin:12px 0}.label{font:9px system-ui;letter-spacing:1.5px;color:var(--muted);display:block;margin-bottom:12px}.plain{font-size:19px;margin:25px 0}.prereqs{font:11px/1.7 system-ui;color:var(--muted);margin:16px 0}.prereqs a{margin-left:10px}.visual{margin:28px 0 22px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#fffefa}.visual-head{font:10px system-ui;letter-spacing:1.4px;color:var(--green);padding:15px 21px;border-bottom:1px solid #e6e8df;display:flex;justify-content:space-between}.visual-body{padding:22px;font:13px/1.7 system-ui}.visual svg{display:block;width:100%;height:auto;max-height:400px}.visual svg text{font:13px system-ui;fill:#4f6156}.controls{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:15px}.controls label{display:flex;gap:9px;align-items:center;font-size:12px}.controls input[type=range]{width:140px;accent-color:var(--green)}.result{font:13px/1.7 system-ui;background:var(--pale);padding:12px 15px;margin-top:15px;border-radius:3px;color:#284e3d}.caption{padding:16px 21px;border-top:1px solid #e6e8df;font:12px/1.7 system-ui;color:var(--muted);margin:0;background:#f7f8f2}.visual .pill{margin:3px;padding:9px 16px}.pill[aria-pressed=true]{background:var(--green);color:white}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.flow .step{border:1px solid #bccdbc;background:#f0f4ed;border-radius:4px;padding:14px;flex:1;min-width:120px;font-size:12px}.flow .step b{display:block;font-size:17px;color:var(--green);margin-bottom:6px}.flow .arrow{color:var(--gold)}details{border-top:1px solid var(--line);padding:13px 0}summary{cursor:pointer;font:13px/1.6 system-ui;color:var(--green)}.hints{margin:25px 0}.hint-content{padding:14px 16px 3px;font-size:17px}.source-remark{font-size:15px;line-height:1.7;color:#616c62;margin:26px 0;padding-left:18px;border-left:2px solid #d3c4a4}.source-remark strong{font-size:12px;font-family:system-ui;font-weight:500}.notes{margin:24px 0}.notes summary{display:flex;justify-content:space-between}.notes summary:before{content:'＋';margin-right:9px}.notes[open] summary:before{content:'−'}.notes-title{flex:1}.save-state{font-size:10px;color:var(--muted)}.notes label{display:block;font:11px system-ui;color:var(--muted);margin:18px 0 7px}.notes textarea{display:block;min-height:90px;width:100%;resize:vertical;background:#fffef9;border:1px solid #cfd6ca;border-radius:3px;padding:12px;font:15px/1.6 Georgia}.notes .personal{min-height:110px}.notes-count{font:10px system-ui;color:var(--muted)}footer{border-top:1px solid var(--line);margin-top:70px;padding-top:40px}footer p{font-size:16px}footer details p{font-size:14px}.colophon{font:9px system-ui;letter-spacing:1.5px;color:var(--muted);margin-top:40px}.katex{font-size:1.05em}.katex-display{overflow-x:auto;overflow-y:hidden;padding:6px 1px}.katex-display>.katex{white-space:nowrap}#status{position:fixed;bottom:20px;right:20px;background:var(--green);color:white;font:13px system-ui;padding:13px 20px;border-radius:5px;z-index:30;display:none}.skip{position:fixed;top:-60px;left:290px;background:white;padding:8px;z-index:50}.skip:focus{top:4px}.matrix{width:100%;border-collapse:collapse;text-align:center;font-size:12px}.matrix th,.matrix td{padding:8px;border-bottom:1px solid var(--line)}.matrix input{accent-color:var(--green);width:17px;height:17px}.small{font:11px/1.6 system-ui;color:var(--muted)}@media(max-width:1000px){aside{width:225px;padding:25px 18px}.main-wrap{margin-left:225px}main{padding:48px 35px}.overview svg{width:110px}.overview p{font-size:15px}}@media(max-width:720px){aside{position:static;width:100%;padding:20px;border-right:0;border-bottom:1px solid var(--line)}aside .course,aside .sidebar-foot,aside .up-next{display:none}.brand-sub{display:inline;margin-left:15px}nav{margin-top:20px}nav .chapter-link,nav .nav-section{display:none}#toc{display:flex;overflow-x:auto;margin:12px 0 0;gap:6px}#toc a{min-width:112px;display:block;font-size:10px;border:1px solid var(--line);padding:8px}#toc a b{display:block}.main-wrap{margin-left:0}main{padding:36px 22px}.toolbar{padding:0 20px;height:58px}.toolbar-detail{display:none}.chapter-meta{gap:10px;font-size:9px}.chapter-meta span+span:before{margin-right:10px}.overview{margin-bottom:38px}.overview svg{display:none}h3{font-size:26px}.statement{padding:18px;font-size:16px}.visual-body{padding:15px}.controls{gap:10px}.controls label{flex-wrap:wrap}.skip{left:20px}.entry-meta{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.print-note{display:none}#toc .toc-group{padding:7px 0;border-top:1px solid #d9ded2}#toc .toc-group summary{font:11px/1.6 system-ui;color:#315e4e;padding:8px 10px;list-style-position:outside;margin-left:12px}#toc .toc-group summary span{font-size:10px;display:inline-block;margin-right:5px}#toc .section-jump{font-size:10px;color:#8c733f!important;padding-left:14px}.batch-intro{margin-top:80px;padding-top:42px;border-top:2px solid #b3bda9;scroll-margin-top:80px}.section-banner{font:30px/1.4 Georgia;color:#315e4e;background:#edf1e8;padding:28px;margin-bottom:38px}.proof-flow{display:grid;gap:12px}.proof-step{display:flex;gap:15px;align-items:flex-start;background:#f0f3eb;border:1px solid #d7dfd0;padding:17px;border-radius:4px}.proof-step b{display:block;margin-bottom:6px;font-weight:600;color:#315e4e}.step-number{font:18px Georgia;color:#9b814e;border:1px solid #d1c19d;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;flex-shrink:0}.proof-step div div{font:13px/1.8 system-ui}.set-list{display:flex;flex-wrap:wrap;gap:8px}.set-list span{border:1px solid #c9d4c5;padding:7px 12px;background:#edf2e9;border-radius:4px}.proof{margin-top:20px}.visual-body input[type=checkbox]{accent-color:#315e4e}.visual-body .controls select{max-width:100%}@media(max-width:720px){#toc{display:block;max-height:230px;overflow:auto}#toc .toc-group a{display:inline-flex;width:calc(50% - 10px);vertical-align:top;margin:4px}#toc .toc-group .section-jump{display:block;width:100%}#toc .toc-group summary{font-size:12px}.proof-step{padding:12px;gap:10px}.section-banner{font-size:24px;padding:18px}.batch-intro{margin-top:50px}.visual-body{overflow-x:auto}}

 #eventual-bound .eb-key{display:inline-block;width:12px;height:12px;margin-right:6px}
 #eventual-bound .eb-tail{background:var(--gold);opacity:.3}
 #eventual-bound .eb-now{background:var(--gold)}
 #eventual-bound svg{display:block;width:100%;overflow:visible}
 #eventual-bound svg text{fill:var(--ink)}
 #eventual-bound .eb-axis{stroke:var(--line);stroke-width:1}
 #eventual-bound .eb-label{fill:var(--muted)}
 #eventual-bound #eb-detail{min-height:38px}

#eventual-bound .controls .bound-field{display:grid;gap:4px;flex:1;min-width:130px} #eventual-bound .controls input{width:100%;min-width:0} #eventual-bound .bound-legend{display:flex;flex-wrap:wrap;gap:12px} #eventual-bound svg{max-height:none} #eventual-bound svg text{font-size:12px}

/* Borel sets: finite geometry paired with an exact construction. */
.borel-explorer .controls{align-items:flex-start}
.borel-explorer .borel-choice,.borel-explorer .borel-stage{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.borel-explorer .borel-choice select{max-width:100%;min-width:0}
.borel-explorer .borel-selected{display:flex;flex-direction:column;gap:5px;margin:14px 0;font-size:14px}
.borel-explorer .borel-selected span{font-size:12px;color:var(--muted)}
.borel-explorer .borel-drawing{width:100%;min-width:0}
.borel-explorer svg{max-height:none}
.borel-explorer svg text{font-size:12px;fill:var(--ink)}
.borel-explorer .borel-axis{stroke:var(--line);stroke-width:2}
.borel-explorer .borel-fill,.borel-explorer .borel-in{fill:var(--green)}
.borel-explorer .borel-in,.borel-explorer .borel-out{stroke:var(--green);stroke-width:1.5}
.borel-explorer .borel-out{fill:#fffefa}
.borel-explorer .borel-recipe{border-top:1px solid var(--line);margin-top:20px;padding-top:17px;overflow-wrap:anywhere}
.borel-explorer .borel-recipe .katex{font-size:1em}
.borel-explorer .borel-recipe>div{overflow-x:auto;padding:5px 0}
.borel-explorer .borel-recipe p,.borel-explorer .borel-meaning p{font-size:13px}
.borel-explorer .borel-meaning{margin-top:18px}
@media(max-width:480px){.borel-explorer .controls{flex-direction:column}.borel-explorer .borel-choice{flex-direction:column;align-items:flex-start}.borel-explorer .borel-stage{width:100%}.borel-explorer .borel-stage input{flex:1;min-width:80px}}
