:root{color-scheme:light;--paper:#fbfbfa;--ink:#1a1a1a;--secondary:#5a5a5a;--accent:#1f3a8a;--rule:#d8d8d4;font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
.workspace{--split-x:50%;--split-y:42%;position:relative;height:100vh;height:100dvh;display:grid;grid-template-columns:minmax(0,var(--split-x)) minmax(0,1fr);overflow:clip}.canvas-shell{position:relative;min-width:0;min-height:0;overflow:clip}.viewport{position:absolute;inset:0;overflow:clip;touch-action:none;cursor:grab;outline:0}.viewport:focus-visible{box-shadow:inset 0 0 0 2px #1f3a8a40}.viewport.dragging,.viewport.dragging *{cursor:grabbing!important}.world{position:absolute;left:0;top:0;transform-origin:0 0;user-select:none}.world svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}#artwork{width:100%;height:100%;pointer-events:none;transition:opacity .22s}.world.focused #artwork{opacity:.22}.lifted-region{position:absolute;pointer-events:none;background:#f7f2ef;border-radius:4px;box-shadow:0 4px 16px #322d2526;overflow:hidden}.lifted-region svg{overflow:hidden}.hotspot{position:absolute;padding:0;border-radius:4px;border:1px solid transparent;touch-action:none}.hotspot.is-available{border-color:#1f3a8a25}.hotspot:hover{background:#1f3a8a05;border-color:#1f3a8a80}.detail-outline{position:absolute;pointer-events:none;border:1px solid var(--accent);border-radius:4px}.start-button{position:absolute;z-index:4;left:24px;top:22px;display:flex;gap:16px;align-items:center;padding:10px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:5px;font-size:14px}.start-button:hover{border-color:var(--secondary)}.start-button span{font-family:Arial,sans-serif;font-size:18px}
.notes{position:relative;border-left:1px solid var(--rule);min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--paper)}.reading-nav{height:65px;padding:0 clamp(24px,4vw,64px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;font-size:14px}#contents-toggle{display:flex;align-items:center;gap:10px;padding:10px 0}#contents-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .15s}#contents-toggle[aria-expanded=true] svg{transform:rotate(180deg)}#chapter-label{color:var(--secondary);text-align:right}.reader{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;outline:0;scroll-padding-top:48px}.reader:focus-visible{box-shadow:inset 0 0 0 1px #1f3a8a30}#article{max-width:680px;margin:0 auto;padding:8px clamp(24px,4vw,64px) 70vh}.reading-block{padding:40px 0 20px;scroll-margin-top:48px}.reading-block.is-major{padding-top:64px}.reading-block:first-child{padding-top:32px}.reading-block h2,.reading-block h3{font-weight:400;line-height:1.18;letter-spacing:-.02em;text-wrap:balance;margin:0 0 26px}.reading-block h2{font-size:clamp(28px,2.6vw,40px)}.reading-block h3{font-size:clamp(23px,1.9vw,29px)}.reading-block p{font-size:18px;line-height:1.75;margin:0 0 24px;overflow-wrap:break-word}.reading-block p:last-child{margin-bottom:0}.reading-block.is-current>h2,.reading-block.is-current>h3{color:var(--accent)}.reading-block math{font-size:26px;margin:28px 0}
#contents-menu{position:absolute;z-index:8;top:58px;left:24px;right:24px;max-height:calc(100% - 82px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--paper);padding:20px 24px 28px;border:1px solid var(--rule);border-radius:5px;box-shadow:0 12px 30px #1a1a1a10}#toc{display:flex;flex-direction:column;gap:16px}.toc-macro{font-size:16px;margin:8px 0}.toc-group{display:flex;flex-direction:column;gap:1px}.toc-link{text-align:left;width:100%;border-radius:3px;padding:6px 8px;line-height:1.4;font-size:14px;display:flex;align-items:baseline;gap:10px}.toc-number{color:#8b8b84;font:10px/1.5 Arial,sans-serif;min-width:16px}.toc-detail{padding:4px 8px 4px 34px;color:var(--secondary);font-size:13px}.toc-link:hover{background:#1a1a1a05;color:var(--ink)}.toc-link[aria-current=location]{background:#1f3a8a08;color:var(--accent)}
.loading,.asset-error{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:var(--paper);z-index:5;color:var(--secondary);font-size:14px}.asset-error button{border-bottom:1px solid var(--rule);padding:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:15px;top:-100px;z-index:10;background:var(--paper);padding:12px;color:var(--accent)}.skip-link:focus{top:12px}.no-script{position:fixed;inset:0;background:var(--paper);padding:30px;z-index:20}
@media(max-width:760px){.workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,var(--split-y)) minmax(0,1fr)}.notes{border-left:0;border-top:1px solid var(--rule)}.reading-nav{height:48px;padding:0 24px;font-size:13px}.start-button{left:14px;top:14px;font-size:12px;padding:7px 10px}.start-button span{font-size:16px}#article{padding:0 26px 55vh}.reading-block{padding:28px 0 16px}.reading-block.is-major{padding-top:44px}.reading-block:first-child{padding-top:24px}.reading-block h2{font-size:28px}.reading-block h3{font-size:23px}.reading-block h2,.reading-block h3{margin-bottom:20px}.reading-block p{font-size:16px;line-height:1.65;margin-bottom:20px}#contents-menu{top:42px;left:12px;right:12px;max-height:calc(100% - 54px);padding:16px}.toc-link{min-height:34px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.passage-body{font-size:18px;line-height:1.75;overflow-wrap:break-word}.passage-body>div:not([data-equation]){margin:0 0 24px}.passage-body ul,.passage-body ol{padding-left:1.5em;margin:0 0 24px}.passage-body li{margin:0 0 8px}.passage-body blockquote{margin:0 0 24px 1.5em}.passage-body:empty{min-height:1.75em}@media(max-width:760px){.passage-body{font-size:16px;line-height:1.65}}
.component-fold{margin:30px 0 0;padding:16px 0 0;border-top:1px solid var(--rule)}.component-chips{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0 0 12px}.component-chip{font-size:14px;line-height:1.3;padding:5px 10px;border:1px solid var(--rule);border-radius:3px;color:var(--secondary);text-align:left}.component-chip:hover,.component-chip:focus-visible{border-color:var(--accent);color:var(--accent);background:#1f3a8a08;outline:0}.components-toggle{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:15px;color:var(--accent)}.components-toggle:hover .toggle-label{text-decoration:underline;text-underline-offset:3px}.toggle-mark::before{content:'+';font:16px/1 Arial,sans-serif}.components-toggle[aria-expanded=true] .toggle-mark::before{content:'−'}.component-group{border-left:1px solid var(--rule);padding-left:clamp(14px,2vw,24px);margin-left:2px}.component-group .reading-block:last-child{padding-bottom:36px}
.passage-body blockquote.drawing-note{margin:0 0 24px;padding:2px 0 2px 16px;border-left:2px solid #c9a227}.drawing-note p{font-size:16px;line-height:1.65;color:var(--secondary)}.drawing-note strong{color:var(--ink);font-weight:600}.placeholder-note{font-style:italic;color:var(--secondary);border:1px dashed var(--rule);border-radius:4px;padding:16px 18px}
.reading-routes{margin:36px 0 0;padding:22px 0 0;border-top:1px solid var(--rule)}.reading-routes h3{font-size:clamp(20px,1.6vw,24px);font-weight:400;margin:0 0 18px}.route{margin:0 0 22px}.reading-routes .route-title{font-size:17px;margin:0;font-weight:600}.reading-routes .route-note{font-size:15px;color:var(--secondary);margin:2px 0 8px;line-height:1.5}.route-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0;font-size:15px}.route-links li{display:flex;align-items:center}.route-links li+li::before{content:'→';color:#8b8b84;margin:0 8px;font-family:Arial,sans-serif;font-size:13px}.route-link{color:var(--accent);padding:2px 0;text-align:left}.route-link:hover{text-decoration:underline;text-underline-offset:3px}
.expand-all{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--secondary);padding:0 8px 14px;margin-bottom:6px;border-bottom:1px solid var(--rule);cursor:pointer}.expand-all input{accent-color:var(--accent);margin:0}
.editing .component-fold{display:none}
@media(max-width:760px){.component-fold{margin-top:22px}.component-chip{font-size:13px}.drawing-note p{font-size:15px}.route-links{font-size:14px}}
.detail-outline.is-preview{border-width:2px;background:#1f3a8a0d;box-shadow:0 0 0 4px #1f3a8a1a}.component-chip.is-linked{border-color:var(--accent);color:var(--accent);background:#1f3a8a08}.route-link.is-linked{text-decoration:underline;text-underline-offset:3px}
@media(prefers-reduced-motion:no-preference){.detail-outline.is-preview{animation:outline-in .18s ease-out}@keyframes outline-in{from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}}
.page-tabs{display:flex;gap:2px;padding:3px;border:1px solid var(--rule);border-radius:5px;flex-shrink:0}.page-tabs a{padding:5px 11px;border-radius:3px;color:var(--secondary);text-decoration:none;font-size:14px;line-height:1.2}.page-tabs a:hover{color:var(--ink);background:#1a1a1a06}.page-tabs a[aria-current=page]{background:var(--accent);color:#fff}.reading-nav #contents-toggle{margin-right:auto}
@media(max-width:760px){.page-tabs a{padding:4px 8px;font-size:13px}}@media(max-width:420px){#chapter-label{display:none}}
.math{font-family:'STIX Two Text','Cambria Math',Cambria,'Times New Roman',serif;font-size:.98em;color:var(--ink);background:#ecebe6;border-radius:3px;padding:.04em .34em .1em;white-space:nowrap;-webkit-box-decoration-break:clone;box-decoration-break:clone}.math.is-shape{background:#e6e9f1}.math i{font-style:italic}.math .mi.is-upright,.math .mt{font-style:normal}.math .mn{font-variant-numeric:lining-nums}.math .mo{color:#55554f}.math .mo.is-mul{color:var(--accent)}.math .mo.is-rel{color:var(--ink)}.math .mf{font-style:normal}.math .mf.is-layer{font-weight:600;letter-spacing:.01em}.math .mb{color:var(--accent);font-weight:600}.math .mp{color:#55554f}.math sub,.math sup{font-size:.7em;line-height:0}.math sub{vertical-align:-.32em}.math sup{vertical-align:.5em}.math-keep{white-space:nowrap}.xref{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:#1f3a8a59}.xref:hover,.xref:focus-visible{text-decoration-color:var(--accent)}@media(max-width:560px){.math,.math-keep{white-space:normal}}
.splitter{position:absolute;z-index:6;touch-action:none;outline:0}.splitter[data-axis=x]{top:0;bottom:0;width:13px;left:calc(var(--split-x) - 6.5px);cursor:col-resize}.splitter[data-axis=y]{left:0;right:0;height:13px;top:calc(var(--split-y) - 6.5px);cursor:row-resize}.splitter::before,.splitter::after{content:'';position:absolute;pointer-events:none}.splitter::after{background:var(--accent);opacity:0;transition:opacity .15s}.splitter[data-axis=x]::after{top:0;bottom:0;left:5px;width:3px}.splitter[data-axis=y]::after{left:0;right:0;top:5px;height:3px}.splitter::before{z-index:1;background:var(--paper);border:1px solid var(--rule);border-radius:4px;box-shadow:0 1px 4px #1a1a1a14;transition:border-color .15s}.splitter[data-axis=x]::before{left:3px;top:calc(50% - 18px);width:7px;height:36px}.splitter[data-axis=y]::before{top:3px;left:calc(50% - 18px);height:7px;width:36px}.splitter:hover::after,.splitter:focus-visible::after,.splitter.is-dragging::after{opacity:.6}.splitter:hover::before,.splitter:focus-visible::before,.splitter.is-dragging::before{border-color:var(--accent)}[data-resizing] *{user-select:none!important}[data-resizing=x],[data-resizing=x] *{cursor:col-resize!important}[data-resizing=y],[data-resizing=y] *{cursor:row-resize!important}[data-resizing] video,[data-resizing] canvas,[data-resizing] iframe{pointer-events:none}
/* Thin site footer under every page; the workspace gives up exactly its height. */
:root{--footer-h:24px}
.workspace{height:calc(100vh - var(--footer-h));height:calc(100dvh - var(--footer-h))}
.site-footer{height:var(--footer-h);display:flex;align-items:center;justify-content:center;gap:4px;font:11px/1 Arial,sans-serif;color:var(--secondary);background:var(--paper);border-top:1px solid var(--rule)}
.site-footer a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}.site-footer a:hover{color:var(--accent);border-bottom-color:var(--accent)}
