.visual-lesson .lesson-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:32px 0 24px}.visual-lesson .lesson-heading h2{font:30px/1.3 Georgia,serif;letter-spacing:-.015em;margin:10px 0}.visual-lesson .lesson-heading>a{font-size:14px;white-space:nowrap}.visual-lesson .classroom{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);gap:36px;align-items:start}.visual-lesson .teaching-column,.visual-lesson .visual-column{min-width:0}.visual-lesson .stage{height:490px;position:relative;background:var(--soft);margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.visual-lesson .stage canvas,.visual-lesson .stage>svg{display:block;width:100%;height:100%;touch-action:none}.visual-lesson .stage-note{position:absolute;top:18px;left:20px;font-size:11px;letter-spacing:.05em;color:var(--muted);pointer-events:none;z-index:1}.visual-lesson .stage-note span{display:block;font:18px/1.5 Georgia,serif;letter-spacing:0;color:var(--ink)}.visual-lesson .stage figcaption{position:absolute;bottom:0;left:0;right:0;padding:13px 18px;background:var(--soft);font-size:12px;line-height:1.6;color:var(--muted);pointer-events:none}.visual-lesson .camera-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:15px 0 8px}.visual-lesson .camera-tools>span{color:var(--muted);font-size:12px;margin-right:4px}.visual-lesson .camera-tools button{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:8px 12px;min-width:38px;font-size:14px}.visual-lesson .camera-tools button:hover{border-color:var(--strong);background:var(--soft)}.visual-lesson .camera-tools button:disabled{opacity:.4;cursor:default}.visual-lesson .interaction-hint{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0 18px}.visual-lesson .legend{display:flex;flex-wrap:wrap;gap:15px;font-size:12px;line-height:1.6;margin:17px 0 22px;color:var(--muted)}.visual-lesson .legend>span{display:flex;gap:8px;align-items:center}.visual-lesson .legend i{width:15px;height:3px;background:var(--accent);display:inline-block}.visual-lesson .legend .slice-key{background:#f2f2f2;border:1px solid #9c9c9c;height:5px}.visual-lesson .legend .point-key{background:#c27a35;width:7px;height:7px;border-radius:50%}.visual-lesson .legend .v-key{background:var(--strong)}.visual-lesson .controls{display:grid;grid-template-columns:1fr 1fr;gap:22px;background:var(--soft);border:1px solid var(--line);border-radius:5px;padding:22px}.visual-lesson .controls label{display:flex;flex-direction:column;gap:12px;font-size:13px;line-height:1.6}.visual-lesson .controls label:has(select){grid-column:1/-1}.visual-lesson select{background:var(--paper);color:var(--ink);border:1px solid var(--strong);padding:10px;border-radius:4px;max-width:100%}.visual-lesson .controls input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;min-height:24px}.visual-lesson .controls output{font:15px ui-monospace,monospace;color:var(--accent)}.visual-lesson .controls .check{grid-column:1/-1;flex-direction:row;align-items:center;gap:10px}.visual-lesson .check input{width:18px;height:18px;accent-color:var(--accent)}.visual-lesson .match-button{background:var(--paper);border:1px solid var(--strong);padding:11px 15px;border-radius:4px;grid-column:1/-1;text-align:left;color:var(--accent)}.visual-lesson .teaching-column .answer{font-size:18px;line-height:1.85;margin:14px 0 20px}.visual-lesson .teaching-column li,.visual-lesson .teaching-column>p{font-size:15px;line-height:1.85}.visual-lesson .connection-note h3,.visual-lesson .teaching-column h3{font:22px/1.3 Georgia,serif;margin:25px 0 12px}.visual-lesson .teaching-column ol{padding-left:23px}.visual-lesson .teaching-column li{padding-left:4px;margin:8px 0}.visual-lesson .equation{background:var(--soft);padding:13px 15px;overflow:auto;font-size:15px;border-left:2px solid var(--strong);margin:20px 0}.visual-lesson .katex-display{margin:8px 0}.visual-lesson .live-readout{padding:20px;border:1px solid var(--line);background:var(--soft);border-radius:4px;margin:24px 0}.visual-lesson .live-readout strong{font-size:16px;line-height:1.6}.visual-lesson .live-readout p{font-size:14px;line-height:1.8;margin-bottom:0}.visual-lesson .live-readout [data-equation]{overflow:auto;font-size:15px;margin-top:12px}.visual-lesson .live-readout.conflict{background:var(--selected);border-color:var(--strong)}.visual-lesson .scope{border-top:1px solid var(--line);padding-top:17px;margin-top:22px}.visual-lesson .scope strong{font-size:12px;font-weight:650}.visual-lesson .scope p{font-size:13px;line-height:1.8;color:var(--muted);margin:9px 0}.visual-lesson .connection-note{border-top:1px solid var(--line);margin-top:36px;padding-top:9px;max-width:950px}.visual-lesson .connection-note>p{font-size:15px;line-height:1.85}.visual-lesson .connection-note .source{font-size:12px;color:var(--muted)}.visual-lesson{container-type:inline-size}.visual-lesson [hidden]{display:none!important}.visual-lesson .renderer-status{position:absolute;top:17px;right:18px;font-size:10px;line-height:1.5;color:var(--muted);padding:5px 8px;background:var(--soft);border:1px solid var(--line);border-radius:3px;margin:0;z-index:1;pointer-events:none}@container(max-width:680px){.visual-lesson .classroom{grid-template-columns:1fr;gap:30px}.visual-lesson .stage{height:390px}.visual-lesson .lesson-heading{display:block}.visual-lesson .lesson-heading>a{display:block;margin:12px 0}.visual-lesson .controls{padding:18px;gap:18px}.visual-lesson .legend{gap:12px;font-size:11px}.visual-lesson .renderer-status{top:10px;left:auto;right:12px;font-size:9px}}.visual-lesson .stage,.visual-lesson .stage *{-webkit-user-select:none;user-select:none}.scene-labels{position:absolute;inset:0;pointer-events:none;z-index:1}.scene-label{position:absolute;transform:translate(-50%,-50%);width:max-content;max-width:40%;padding:1px 3px;border-radius:2px;background:rgb(252 252 252/85%);color:#595959;font:13px/1.4 system-ui,sans-serif;white-space:normal;text-align:center;overflow-wrap:anywhere}.visual-lesson .stage .renderer-status,.visual-lesson .stage figcaption{z-index:2}.visual-lesson.embedded-visual{margin:34px 0 38px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.visual-lesson.embedded-visual .lesson-heading{margin:0 0 24px}.visual-lesson.embedded-visual .lesson-heading h3{font:27px/1.3 Georgia,serif;margin:10px 0}.visual-lesson.embedded-visual .classroom{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:28px}.visual-lesson.embedded-visual .stage{height:450px}.visual-lesson .teaching-column .equation:first-child{margin-top:0}@container(max-width:680px){.visual-lesson.embedded-visual .classroom{grid-template-columns:1fr}.visual-lesson.embedded-visual .stage{height:390px}}.visual-lesson .loop-tools{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.visual-lesson .loop-tools button{flex:1 1;background:var(--paper);border:1px solid var(--strong);border-radius:4px;padding:10px;color:var(--accent)}.visual-lesson .controls button:disabled{opacity:.45;cursor:default}.visual-lesson .live-readout [data-readout=equation]{overflow:auto;max-width:100%;font-size:15px;margin-top:12px}.expression-view{margin:14px 0 28px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.expression-view>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;color:var(--accent);font-size:14px;list-style:none}.expression-view>summary:before{content:"+";font-size:20px;line-height:1}.expression-view[open]>summary:before{content:"−"}.expression-view>summary>span{flex:1 1}.expression-view>summary>small{color:var(--muted);font-size:11px}.expression-content button:focus-visible,.expression-view>summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.expression-content{padding:0 20px 20px;min-width:0}.expression-content:empty{padding:0}.expression-content h4{font:23px/1.4 Georgia,serif;margin:12px 0 20px}.visual-lesson .expression-stage{height:350px}.expression-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;padding:18px;background:var(--soft);border:1px solid var(--line);border-radius:4px}.expression-controls label{font-size:13px;line-height:1.7;display:block}.expression-controls output{float:right;color:var(--accent);font:14px ui-monospace,monospace}.expression-controls input{display:block;width:100%;min-height:28px;accent-color:var(--accent)}.expression-controls button,.expression-objects button{border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--accent);padding:9px 12px;font-size:13px;cursor:pointer}.expression-objects{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.expression-objects button[aria-pressed=true]{background:var(--selected);border-color:var(--accent)}.expression-arrows{font-size:13px;line-height:1.8;padding-left:20px;color:var(--muted)}[data-expression-equation]{overflow-x:auto;max-width:100%;font-size:15px}@container(max-width:500px){.expression-view>summary{padding:14px;flex-wrap:wrap}.expression-view>summary>small{display:none}.expression-content{padding:0 12px 16px}.visual-lesson .expression-stage{height:310px}}.experiment-intro{font-size:15px;line-height:1.8;max-width:70ch}.expression-focus{border:1px solid var(--line);border-radius:4px;padding:16px 18px;margin:18px 0;background:var(--soft)}[data-linked-equation]{overflow-x:auto;max-width:100%;font-size:16px}.expression-focus .expression-focus-title{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 10px}.expression-focus [data-equation-focus-caption]{font-size:13px;line-height:1.6;margin:12px 0 8px;font-weight:600}.eq-primary{--part-color:#365f92}.eq-secondary{--part-color:#626262}.eq-marker{--part-color:#a55b1e}.eq-context{--part-color:var(--muted)}.equation-part{border-radius:2px}.equation-part.eq-active{color:var(--part-color);background:color-mix(in srgb,var(--part-color) 12%,transparent)}.equation-part.eq-context.eq-active{background:transparent}.equation-part-keys{display:flex;flex-wrap:wrap;gap:8px 16px}.equation-part-key{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.6;color:var(--muted)}.equation-part-key i{width:9px;height:9px;flex-shrink:0;border-radius:50%;border:1px solid;background:transparent}.equation-part-key.eq-active:not(.eq-context) i{background:var(--part-color);border-color:var(--part-color)}.equation-scope-note{flex-basis:100%;margin:3px 0 0;font-size:12px;line-height:1.65;color:var(--muted)}.symbol-guide{margin:12px 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:4px;font-size:13px;line-height:1.65;background:var(--paper);min-width:0}.symbol-guide summary{cursor:pointer;color:var(--accent);font-weight:600}.symbol-guide .symbol-guide-title{margin:0 0 8px;font-size:13px;font-weight:650;color:var(--ink)}.symbol-definitions{margin:10px 0 0}.symbol-definitions>div{display:grid;grid-template-columns:minmax(90px,135px) minmax(0,1fr);gap:8px 16px;padding:9px 0;border-top:1px solid var(--line)}.symbol-definitions>div:first-child{border-top:0;padding-top:0}.symbol-definitions dd,.symbol-definitions dt{margin:0;min-width:0;font-size:13px;line-height:1.65}.symbol-definitions code{font-size:12px;overflow-wrap:anywhere;color:var(--ink)}.symbol-spoken{display:block;color:var(--muted);font-size:12px}.symbol-guide-open{margin:16px 0 0;background:var(--paper)}.symbol-guide-open>details{margin-top:10px}@media(max-width:520px){.symbol-definitions>div{grid-template-columns:minmax(0,1fr);gap:3px}.symbol-definitions dt{font-weight:650}}.equation-part-key.eq-active{color:var(--part-color);font-weight:650;text-decoration:underline;text-underline-offset:3px}.experiment-steps{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.experiment-steps button{background:var(--paper);color:var(--accent);border:1px solid var(--line);border-radius:4px;padding:11px 14px;font-size:13px;cursor:pointer}.experiment-steps button:hover,.experiment-steps button[aria-pressed=true]{background:var(--selected);border-color:var(--accent)}.experiment-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:22px;align-items:start}.visual-lesson .transformation-stage{height:clamp(440px,38cqi,640px)}.experiment-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;line-height:1.7;margin:13px 0;color:var(--muted)}.experiment-consequence{border-left:3px solid var(--accent);padding:0 18px;margin:8px 0;min-width:0}.experiment-consequence h5{font:22px/1.4 Georgia,serif;margin:0 0 12px;color:var(--ink)}.experiment-consequence p{font-size:14px;line-height:1.8}.experiment-consequence .experiment-selection{font-size:12px;line-height:1.6;color:var(--accent);margin:0 0 12px}.experiment-meaning{margin:20px 0;padding:16px;background:var(--soft);border:1px solid var(--line);border-radius:4px}.experiment-meaning h6{font:650 13px/1.6 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0 0 8px;color:var(--ink)}.experiment-meaning p{margin:0}.experiment-consequence dl{display:grid;gap:18px;margin:20px 0}.experiment-consequence dt{font-size:12px;color:var(--muted)}.experiment-consequence dd{margin:6px 0;font-size:15px;color:var(--ink);overflow-wrap:anywhere;line-height:1.65}.experiment-fact-details summary{cursor:pointer;color:var(--accent);font-size:13px}.experiment-fact-details p{font-size:12px;line-height:1.8}.experiment-extra{margin-top:14px;font-size:13px}.experiment-extra>summary{cursor:pointer;color:var(--muted);padding:8px 0}@container(max-width:740px){.experiment-layout{grid-template-columns:1fr}.experiment-consequence dl{display:flex;flex-wrap:wrap}.experiment-consequence{margin-top:8px}}@container(max-width:500px){.visual-lesson .transformation-stage{height:370px}.experiment-steps button{flex:1 1 140px}.experiment-consequence{padding:0 12px}.experiment-consequence dl{display:block}.experiment-consequence dl>div{margin:14px 0}}:root{color-scheme:light;--paper:#ffffff;--soft:#fcfcfc;--nav:#fafafa;--selected:#e3e3e3;--ink:#242424;--muted:#595959;--line:#d8d8d8;--strong:#7b7b7b;--accent:#365f92}