:root{color-scheme:dark;--paper:#20211f;--ink:#f3f0e7;--muted:#c0c1b8;--line:#62675c;--surface:#292d26;--accent:#bbd1ca;--button-ink:#202923;--warm:#edce8f}
:root[data-theme="light"]{color-scheme:light;--paper:#f8f6ee;--ink:#262c27;--muted:#535c50;--line:#8c9484;--surface:#eceee4;--accent:#365f53;--button-ink:#fff;--warm:#725006}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 "Segoe UI",system-ui,sans-serif}header,main,footer{max-width:1020px;margin:auto;padding-inline:1.6rem}button,select{font:inherit;min-height:46px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:.5rem .8rem;border-radius:3px;max-width:100%}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){background:var(--surface)}a{color:inherit;text-underline-offset:4px}a:hover,summary:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;left:1rem;top:-100px;padding:.7rem;background:var(--accent);color:var(--button-ink);z-index:3}.skip:focus{top:.5rem}.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line);padding:.8rem 0}.bar a{min-height:44px;display:inline-flex;align-items:center}.theme{border:0;background:none;text-decoration:underline;text-underline-offset:4px}.crumb{font-size:.88rem;color:var(--muted);margin:1.2rem 0 0;overflow-wrap:anywhere}h1{font:600 clamp(2rem,5.5vw,3.25rem)/1.13 Georgia,serif;letter-spacing:-.025em;margin:.45rem 0 1rem}h2{font-size:1.35rem;line-height:1.35;margin:0 0 .8rem}h3{font-size:1.05rem}p{max-width:48rem;margin:.65rem 0 1rem}.lead{color:var(--muted);margin-bottom:1.7rem}.eyebrow{font-size:.9rem;color:var(--muted);margin:1.1rem 0 .3rem}.lesson-nav{display:flex;flex-direction:column;border-block:1px solid var(--line);padding:.55rem 0;margin:1.4rem 0}.lesson-nav a{width:fit-content;min-height:43px;display:flex;align-items:center}.lesson-nav a:last-child{font-size:.9rem;color:var(--muted)}section{padding:1.6rem 0;border-bottom:1px solid var(--line);scroll-margin-top:1rem}.controls{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.primary{background:var(--accent);color:var(--button-ink);border-color:var(--accent);font-weight:600}.primary:hover:not(:disabled){background:var(--accent);filter:brightness(.94)}.readings{display:flex;flex-wrap:wrap;gap:.5rem 2rem}.readings p{margin:.4rem 0;font-size:.9rem;color:var(--muted)}.readings strong{display:block;color:var(--ink);font-size:1.06rem}.condition{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem 1rem;padding:.8rem 0;border-top:1px solid var(--line);margin-top:1rem}.condition strong{color:var(--warm);white-space:nowrap}.condition code{overflow-wrap:anywhere}.scene{margin:.6rem 0}.scene canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;border:1px solid var(--line);background:#fff;touch-action:none;cursor:crosshair}.scene figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.25rem 1rem;color:var(--muted);font-size:.85rem;margin-top:.4rem}.status{min-height:3.2em;max-width:100%}.subtle,figcaption{font-size:.9rem;color:var(--muted)}details{border-top:1px solid var(--line)}summary{min-height:50px;padding:.9rem .1rem;cursor:pointer;font-weight:600}details>div{padding:0 .1rem 1rem}code{font-family:Consolas,"Cascadia Mono",monospace}p code,li code{overflow-wrap:anywhere}pre{font:.95rem/1.8 Consolas,"Cascadia Mono",monospace;overflow:auto;background:var(--surface);border-left:3px solid var(--accent);padding:1rem;margin:.65rem 0 1rem}.code-line{display:block;min-width:max-content}.code-line.active{background:var(--paper);outline:1px solid var(--accent);outline-offset:2px}.code-state{font-size:.9rem;color:var(--warm)}.flow{max-width:48rem;border-left:3px solid var(--accent);padding-left:1rem;margin:1.3rem 0}.flow p{margin:.7rem 0}.flow-word{font-weight:600;display:inline-block;min-width:4.3rem}.flow-branch{display:flex;flex-direction:column;padding-left:4.3rem;gap:.35rem}.rule{margin:1.4rem 0;padding:1rem 1.2rem;background:var(--surface);max-width:48rem}.rule p{margin:0 0 .7rem}.rule p:last-child{margin:0}.tasks{padding-left:1.4rem;max-width:49rem}.tasks li{padding:.35rem 0 .7rem .3rem}.small-diagram-labels{display:none}.boundary{max-width:650px;margin:1.3rem 0}.boundary svg{width:100%;height:auto;color:var(--ink);font-family:"Segoe UI",system-ui,sans-serif;font-size:16px}.house-area{fill:var(--surface);stroke:var(--ink);stroke-width:2;stroke-dasharray:8 5}.roof{fill:none;stroke:var(--muted);stroke-width:2}.small-window{fill:var(--warm);stroke:var(--ink)}.axis{fill:none;stroke:var(--muted);stroke-width:1.5;marker-end:url(#arrow)}.boundary text{fill:var(--ink)}.boundary .roof-label{fill:var(--muted);font-size:14px}.mode-select{padding:1rem 0}.mode-select label{display:block;font-weight:600;margin-bottom:.6rem}.mode-select select{width:100%;max-width:40rem}.mode-select>a{display:inline-flex;align-items:center;min-height:44px}.bounds{padding:0;list-style:none;max-width:40rem}.bounds li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line)}.bounds output{font-size:.92rem}.bounds output[data-result=true]{font-weight:600}.materials{display:flex;flex-direction:column;gap:.2rem;margin-top:1rem}.materials a{min-height:45px;display:flex;align-items:center;width:fit-content}.pairlinks{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;margin:1.4rem 0}.pairlinks a{min-height:46px;display:flex;align-items:center}footer{padding-bottom:2rem;font-size:.82rem;color:var(--muted)}footer p{border-top:1px solid var(--line);padding-top:1rem}#keyboard-press{touch-action:none}
@media(max-width:620px){header,main,footer{padding-inline:1rem}.bar{font-size:.9rem}.controls button{flex:1 1 130px}.controls button:last-child{flex-basis:100%}.readings{gap:.45rem 1.1rem}.readings p{font-size:.8rem}.readings strong{font-size:.95rem}pre{font-size:.83rem;padding:.8rem}.condition{font-size:.9rem}.flow-branch{padding-left:1rem}.flow-word{display:block}.boundary svg{min-width:0}.boundary svg text{display:none}.small-diagram-labels{display:block;font-size:.9rem}.small-diagram-labels p{margin:.5rem 0}.boundary figcaption{font-size:.8rem}.bounds li{font-size:.9rem}.mode-select select{font-size:.9rem}.pairlinks{flex-direction:column}.status{min-height:4.8em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{:root{--paper:#fff;--ink:#222;--muted:#444;--line:#999;--surface:#eee;--accent:#333;--warm:#555}header,.lesson-nav,.controls,.mode-select,.keyboard,.pairlinks,.materials,.skip{display:none!important}body{font-size:11pt}main{max-width:none;padding:0}h1{font-size:25pt}section{break-inside:auto}.scene,.boundary,.flow,pre{break-inside:avoid}details>div{display:block!important}footer{padding:0}.code-line.active{outline:0}}
