*{box-sizing:border-box}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.45em}[hidden]{display:none!important}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;transition:background var(--t-ui) var(--ease-ui),color var(--t-ui) var(--ease-ui)}h1,h2,h3{font-family:var(--font-display);font-weight:600}.mono,.readout .v,.readout .k,.tick-label,.slider-row small,.xh-tag,.eq-label,.ctrl-label,.prod-label,.peak-label,.pc-label,.lesson-pick-label,.lesson-hover-label{font-family:var(--font-data);font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--list-w) 0 minmax(0,1fr) var(--controls-w);min-height:100vh;--list-w: 184px;--dock-w: clamp(256px, min(27vw, 100vw - 950px), 400px);--controls-w: clamp(336px, 100vw - 688px, 424px);--stage-pad: clamp(12px, 12px + (100vw - 1112px) / 4, 28px)}.sidebar{grid-column:1}.exercise-dock{grid-column:2;display:none}.stage{grid-column:3}.controls{grid-column:4}.sidebar,.stage,.controls,.exercise-dock{min-width:0;min-height:0}@media(min-width:769px)and (min-height:541px){html,body{height:100%;overflow:hidden}.app{height:100vh;grid-template-rows:minmax(0,1fr)}.sidebar,.controls{overflow-y:auto}.control-actions{position:sticky;bottom:0;z-index:1}.app[data-courses=collapsed]{grid-template-columns:0 0 minmax(0,1fr) var(--controls-w)}.sidebar{overflow-x:hidden}.sidebar>*{min-width:calc(var(--list-w) - 25px)}.app[data-courses=collapsed] .sidebar{visibility:hidden;padding-inline:0;border-right-width:0}.app[data-courses=collapsed] .sidebar>*{transform:translate(calc(-1 * var(--list-w)))}.app[data-courses-anim]{transition:grid-template-columns var(--t-ui) var(--ease-ui)}.app[data-courses-anim] .sidebar{transition:padding var(--t-ui) var(--ease-ui),border-right-width var(--t-ui) var(--ease-ui)}.app[data-courses-anim][data-courses=collapsed] .sidebar{transition:padding var(--t-ui) var(--ease-ui),border-right-width var(--t-ui) var(--ease-ui),visibility 0s linear var(--t-ui)}.app[data-courses-anim] .sidebar>*{transition:transform var(--t-ui) var(--ease-ui)}}@media(min-width:1024px)and (min-height:541px){.app[data-exercises=open]{grid-template-columns:var(--list-w) var(--dock-w) minmax(0,1fr) var(--controls-w)}.app[data-exercises=open][data-courses=collapsed]{grid-template-columns:0 calc(var(--dock-w) + var(--list-w)) minmax(0,1fr) var(--controls-w)}.app[data-exercises=open] .exercise-dock{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border-right:1px solid var(--hairline)}}@media(min-width:1024px)and (max-width:1799px)and (min-height:541px){.app[data-exercises=open],.app[data-exercises=open][data-courses=collapsed]{grid-template-columns:0 var(--dock-w) minmax(0,1fr) var(--controls-w)}.app[data-exercises=open] .sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;z-index:60;transform:translate(-100%);transition:transform var(--t-ui) var(--ease-ui);overscroll-behavior:contain;border-right:1px solid var(--hairline)}body[data-nav=open] .app[data-exercises=open] .sidebar{transform:none;box-shadow:var(--shadow)}.app[data-exercises=open][data-courses=collapsed] .sidebar{visibility:visible;padding-inline:12px;border-right-width:1px}.app[data-exercises=open][data-courses=collapsed] .sidebar>*{transform:none}}@media(min-width:769px)and (max-width:1023px)and (min-height:541px){.app,.app[data-courses=collapsed]{grid-template-columns:0 0 minmax(0,1fr) var(--controls-w)}.sidebar,.app[data-courses=collapsed] .sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;z-index:60;visibility:visible;padding-inline:12px;border-right:1px solid var(--hairline);transform:translate(-100%);transition:transform var(--t-ui) var(--ease-ui);overscroll-behavior:contain}.app[data-courses=collapsed] .sidebar>*{transform:none}body[data-nav=open] .sidebar{transform:none;box-shadow:var(--shadow)}}@media(min-width:1800px)and (min-height:541px){.app[data-exercises=open][data-courses=collapsed] .lesson-bar[data-dock=side]{padding-left:40px}}.sidebar{display:flex;flex-direction:column;background:var(--paper);border-right:1px solid var(--hairline);padding:20px 12px 12px}.brand{display:flex;align-items:center;gap:8px;padding:2px 4px 16px;font-family:var(--font-display);font-weight:600;font-size:var(--text-title3);letter-spacing:-.01em}.brand-mark{color:var(--ink);font-size:var(--text-title2);line-height:1}.stage{background:var(--canvas);padding:24px var(--stage-pad) var(--stage-foot);display:flex;flex-direction:column;min-width:0;--stage-foot: 20px;--switch-size: 32px;--switch-inset: 8px}@media(max-width:768px),(max-height:540px){.stage{--switch-size: 36px}}@media(min-width:1024px)and (min-height:541px){.stage{position:relative;--switch-room: calc(var(--switch-inset) + var(--switch-size) + 4px)}.stage-head{display:flex;flex-direction:column;max-height:min(100% - (var(--switch-room) - var(--stage-foot)),80%)}.stage-head>.help-panel{min-height:0}.stage-head>#helpPanel{max-height:none}}@media(min-width:1024px)and (min-height:541px)and (pointer:coarse){.stage{--switch-room: calc(var(--switch-inset) + (var(--switch-size) + 44px) / 2 + 4px)}}.stage-head-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 24px}.stage-title{min-width:0;flex:1 1 320px}.stage-head h1{margin:0 0 4px;font-size:var(--fs-title);line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.stage-head p{margin:0;max-width:64ch;color:var(--muted);font-size:var(--fs-body);line-height:1.45;text-wrap:pretty}.graph-wrap{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:16px}.controls{background:var(--paper);border-left:1px solid var(--hairline);padding:0 20px;display:flex;flex-direction:column}@media(max-width:768px),(max-height:540px){html,body{height:100%;overflow:hidden;overscroll-behavior:none}.app{height:100vh;height:100dvh;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(84vw,320px);z-index:60;transform:translate(-100%);transition:transform var(--t-ui) var(--ease-ui);overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--hairline);padding:16px 12px calc(16px + env(safe-area-inset-bottom,0px))}body[data-nav=open] .sidebar{transform:none;box-shadow:var(--shadow)}.stage{grid-row:1;grid-column:1;min-height:0;padding:8px 12px 0}.stage-head h1{font-size:var(--text-title2);margin-bottom:2px}.stage-head p{font-size:var(--text-footnote);line-height:1.4}.graph-wrap{margin-top:8px}.controls{grid-row:2;grid-column:1;border-left:none;border-top:1px solid var(--hairline);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:0 16px calc(8px + env(safe-area-inset-bottom,0px));max-height:34vh;overflow-y:auto;overscroll-behavior:contain}.controls[data-sheet=open]{max-height:60vh}.app:has(.controls[data-sheet=open]) .stage-head p{display:none}.controls[data-sheet=peek] .readout{margin-top:0;border-top:0;padding-top:2px}.controls[data-sheet=peek] #controlsPanel,.controls[data-sheet=peek] .ai-panel-wrap,.controls[data-sheet=peek] .control-actions{display:none}.control-actions{margin:8px -16px 0;padding:8px 16px}.lesson-bar{max-height:40%;overscroll-behavior:contain}.lesson-kind{margin-left:0}.lesson-choices{grid-template-columns:1fr}}@media(max-height:540px)and (min-width:600px){.app{grid-template-columns:minmax(0,1fr) min(320px,38%);grid-template-rows:minmax(0,1fr)}.stage{grid-column:1;grid-row:1}.controls{grid-column:2;grid-row:1;height:100%;max-height:none;border-top:none;border-left:1px solid var(--hairline);border-radius:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}.controls[data-sheet=peek] #controlsPanel,.controls[data-sheet=peek] .ai-panel-wrap{display:block}.controls[data-sheet=peek] .control-actions{display:flex}.control-actions{margin:8px -12px 0;padding:8px 12px}.stage-head p{display:none}.lesson-bar{max-height:52%}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:0s!important}.app[data-courses-anim][data-courses=collapsed] .sidebar{transition-delay:0s!important}}
