:root{--cs-paper: #F6F8FB;--cs-ink: #131B2C;--cs-ink-soft: #4A586C;--cs-grid-minor: #E3EAF3;--cs-grid-major: #C9D6E6;--cs-axis: #8CA3BF;--cs-action: #2454FF;--cs-action-ink: #1A3FCC;--cs-focus: #1A3FCC;--cs-curve-1: #2454FF;--cs-curve-2: #D6336C;--cs-curve-3: #0CA678;--cs-curve-4: #F08C00;--cs-curve-5: #7048E8;--cs-curve-6: #3B5B7A;--cs-ease: cubic-bezier(.22,.9,.26,1);--cs-dur-fast: .16s;--cs-dur: .22s}[data-theme=dark]{--cs-paper: #0E1526;--cs-ink: #E8EEF8;--cs-ink-soft: #9FB0C6;--cs-grid-minor: #1C2942;--cs-grid-major: #2A3B5C;--cs-axis: #5C7699;--cs-action: #5C82FF;--cs-action-ink: #8FA9FF;--cs-focus: #8FA9FF;--cs-curve-1: #5C82FF;--cs-curve-2: #F06595;--cs-curve-3: #38D9A9;--cs-curve-4: #FFB84D;--cs-curve-5: #9775FA;--cs-curve-6: #74A0C4}#calc-root,#calc-root *{box-sizing:border-box}#calc-root{min-height:100%;color:var(--cs-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light}#calc-root[data-theme=dark]{color-scheme:dark}:where(#calc-root) button,:where(#calc-root) input,:where(#calc-root) select{font:inherit}:where(#calc-root) button,:where(#calc-root) [role=radio],:where(#calc-root) input[type=range]{min-width:24px;min-height:24px}#calc-root :is(button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--cs-focus);outline-offset:3px}.calc-studio{width:min(1440px,100%);margin:0 auto;padding:22px clamp(14px,3vw,40px) 16px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.title-line{display:flex;align-items:center;gap:10px}.app-header h1{margin:0;font-size:clamp(1.35rem,2vw,1.75rem);letter-spacing:-.035em}.app-header p{margin:3px 0 0;color:var(--cs-ink-soft);font-size:.8rem}.preview-badge{padding:4px 8px;border:1px solid var(--cs-grid-major);border-radius:999px;color:var(--cs-action-ink);font-size:.68rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.calc-mode-switch{display:inline-grid;grid-auto-flow:column;gap:3px;margin:0;padding:3px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-grid-minor)}.calc-mode-tab{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 12px;border:1px solid transparent;border-radius:7px;color:var(--cs-ink-soft);font-size:.74rem;font-weight:750;text-decoration:none;white-space:nowrap;transition:color var(--cs-dur-fast) var(--cs-ease),background var(--cs-dur-fast) var(--cs-ease)}.calc-mode-tab:hover{color:var(--cs-ink)}.calc-mode-tab[aria-current=page]{color:var(--cs-action-ink);background:var(--cs-paper);border-color:var(--cs-grid-major);box-shadow:0 1px 4px color-mix(in srgb,var(--cs-ink) 10%,transparent)}.calc-mode-tab:focus-visible{outline:2px solid var(--cs-action);outline-offset:2px}.angle-toggle{display:grid;grid-template-columns:repeat(2,1fr);padding:3px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-grid-minor)}.angle-toggle button{min-height:30px;padding:4px 9px;border:0;border-radius:7px;background:transparent;color:var(--cs-ink-soft);font-size:.72rem;font-weight:700;cursor:pointer}.angle-toggle button[aria-checked=true]{background:var(--cs-paper);color:var(--cs-action-ink);box-shadow:0 1px 5px color-mix(in srgb,var(--cs-ink) 10%,transparent)}.header-actions{display:flex;align-items:end;gap:10px}.practice-mode-select{display:grid;gap:3px;color:var(--cs-ink-soft);font-size:.68rem;font-weight:700}.practice-mode-select select{min-height:36px;padding:5px 28px 5px 9px;border:1px solid var(--cs-grid-major);border-radius:9px;background:var(--cs-paper);color:var(--cs-ink);cursor:pointer}.rich-math-toggle{display:flex;min-height:36px;align-items:center;gap:6px;color:var(--cs-ink-soft);font-size:.72rem;font-weight:700;cursor:pointer}.rich-math-toggle input{width:24px;height:24px;margin:0;accent-color:var(--cs-action);cursor:pointer}.practice-mode-banner{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px;padding:9px 12px;border:1px solid var(--cs-grid-major);border-radius:10px;background:color-mix(in srgb,var(--cs-action) 7%,var(--cs-paper));color:var(--cs-ink-soft);font-size:.75rem}.practice-mode-banner strong{color:var(--cs-action-ink)}.practice-mode-banner details{flex:0 0 auto}.practice-mode-banner summary{color:var(--cs-action-ink);font-weight:700;cursor:pointer}.practice-mode-banner p{max-width:62ch;margin:8px 0 0}.practice-mode-banner ul{max-width:62ch;margin:6px 0 2px;padding-left:18px}.studio-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:16px;align-items:start}.studio-layout-coach{grid-template-columns:minmax(0,1fr) minmax(250px,300px) minmax(280px,340px)}.view-area{min-width:0}.view-toggle{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(2,1fr);width:116px;height:38px;margin:0 0 10px;padding:3px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-grid-minor)}.view-toggle button{z-index:1;border:0;border-radius:7px;background:transparent;color:var(--cs-ink-soft);font-size:.78rem;font-weight:750;cursor:pointer}.view-toggle button[aria-checked=true]{color:var(--cs-ink)}.view-toggle-indicator{position:absolute;z-index:0;top:3px;left:3px;width:53px;height:30px;border:1px solid var(--cs-grid-major);border-radius:7px;background:var(--cs-paper);box-shadow:0 2px 7px color-mix(in srgb,var(--cs-ink) 10%,transparent);transition:transform var(--cs-dur-fast) var(--cs-ease)}.view-toggle-indicator-3d{transform:translate(56px)}.view-stack{position:relative;min-height:560px}.view-pane{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;visibility:hidden;transform:scale(.992);pointer-events:none;transition:opacity var(--cs-dur) var(--cs-ease),transform var(--cs-dur) var(--cs-ease),visibility 0s linear var(--cs-dur)}.view-pane-active{z-index:1;opacity:1;visibility:visible;transform:scale(1);pointer-events:auto;transition-delay:0s}.graph-stage-wrap{height:100%}.graph-stage{position:relative;overflow:hidden;width:100%;height:520px;border:1px solid var(--cs-grid-major);border-radius:16px;background:var(--cs-paper);box-shadow:0 12px 30px color-mix(in srgb,var(--cs-ink) 8%,transparent);cursor:crosshair;touch-action:none}.graph-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.graph-stage-3d{cursor:grab}.graph-stage-3d:active{cursor:grabbing}.zoom-controls{position:absolute;right:12px;bottom:12px;display:flex;overflow:hidden;border:1px solid var(--cs-grid-major);border-radius:10px;background:color-mix(in srgb,var(--cs-paper) 92%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--cs-ink) 10%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.zoom-controls button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-right:1px solid var(--cs-grid-major);background:transparent;color:var(--cs-ink);font-size:1.1rem;font-weight:650;cursor:pointer}.zoom-controls button:last-child{border-right:0}.zoom-controls button:hover{background:var(--cs-grid-minor)}.practice-mode-scope[data-zoom-fit=false] .zoom-controls .zoom-fit{display:none}.plotting-state{position:absolute;top:12px;right:12px;padding:4px 8px;border:1px solid var(--cs-grid-major);border-radius:999px;background:color-mix(in srgb,var(--cs-paper) 90%,transparent);color:var(--cs-ink-soft);font-size:.68rem}.surface-picker{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.surface-picker button{min-height:34px;padding:5px 10px;border:1px solid var(--cs-grid-major);border-radius:999px;background:transparent;color:var(--cs-ink-soft);font-size:.75rem;cursor:pointer}.surface-picker button[aria-pressed=true]{border-color:var(--cs-action);background:color-mix(in srgb,var(--cs-action) 11%,var(--cs-paper));color:var(--cs-action-ink);font-weight:700}.webgl-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0;padding:30px;color:var(--cs-ink-soft);text-align:center}.expression-rail{min-height:568px;padding:16px;border:1px solid var(--cs-grid-major);border-radius:16px;background:color-mix(in srgb,var(--cs-paper) 94%,var(--cs-grid-minor));box-shadow:0 12px 30px color-mix(in srgb,var(--cs-ink) 6%,transparent)}.rail-heading{display:flex;justify-content:space-between;align-items:baseline;padding:0 2px 12px}.rail-heading h2{margin:0;font-size:.95rem;letter-spacing:-.01em}.rail-heading>span{color:var(--cs-ink-soft);font-size:.72rem;font-variant-numeric:tabular-nums}.expression-list{display:grid;gap:8px}.expression-row{display:grid;grid-template-columns:10px minmax(0,1fr) 30px;align-items:start;gap:9px;min-width:0;padding:10px;border:1px solid var(--cs-grid-major);border-radius:11px;background:var(--cs-paper);transition:border-color var(--cs-dur-fast) var(--cs-ease),transform var(--cs-dur-fast) var(--cs-ease)}.expression-row:hover{border-color:var(--cs-axis);transform:translateY(-1px)}.curve-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 13%,transparent)}.expression-row>.curve-dot{margin-top:11px}.expression-main{display:grid;gap:6px;min-width:0}.expression-input{width:100%;min-height:32px;padding:4px 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem}.expression-input:hover,.expression-input:focus{border-color:var(--cs-grid-major);background:color-mix(in srgb,var(--cs-grid-minor) 45%,transparent)}.rich-expression-input{display:block;font-family:inherit}.expression-meta{display:flex;align-items:center;gap:7px;min-height:24px}.kind-chip{padding:2px 6px;border:1px solid var(--cs-grid-major);border-radius:999px;color:var(--cs-ink-soft);font-size:.63rem;font-weight:700;text-transform:lowercase}.value-display{min-height:24px;padding:1px 6px;border:0;border-radius:6px;background:var(--cs-grid-minor);color:var(--cs-action-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem;cursor:pointer}.value-display:disabled{color:var(--cs-ink-soft);cursor:default}.expression-error{margin:0;color:var(--cs-curve-2);font-size:.7rem;line-height:1.35}.regression-summary{display:grid;gap:3px;color:var(--cs-ink-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.35}.regression-parameters,.regression-metrics{display:flex;flex-wrap:wrap;gap:3px 10px}.regression-parameters{color:var(--cs-ink);font-weight:650}.regression-metrics sup{font-size:.7em}.fit-converged{color:var(--cs-action-ink)}.fit-not-converged{color:var(--cs-curve-2)}.row-actions{display:grid;gap:2px}.visibility-toggle{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--cs-action-ink);cursor:pointer}.visibility-toggle:hover{background:var(--cs-grid-minor)}.visibility-toggle[aria-pressed=false]{color:var(--cs-ink-soft)}.remove-expression{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--cs-ink-soft);cursor:pointer}.remove-expression:hover{background:var(--cs-grid-minor);color:var(--cs-curve-2)}.slider-offers{display:flex;align-items:center;flex-wrap:wrap;gap:4px;color:var(--cs-ink-soft);font-size:.68rem}.slider-offers button{min-height:26px;padding:2px 7px;border:1px solid var(--cs-grid-major);border-radius:999px;background:transparent;color:var(--cs-action-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;cursor:pointer}.slider-chip{display:grid;grid-template-columns:52px 1fr 34px;align-items:center;gap:7px;margin-top:3px}.slider-chip label{color:var(--cs-ink-soft);font-size:.72rem;font-variant-numeric:tabular-nums}.slider-chip input{width:100%;accent-color:var(--cs-action);cursor:pointer}.slider-chip button{display:grid;place-items:center;width:34px;height:30px;padding:0;border:1px solid var(--cs-grid-major);border-radius:8px;background:transparent;color:var(--cs-action-ink);font-size:.72rem;cursor:pointer}.add-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.add-expression{width:100%;min-height:38px;border:1px dashed var(--cs-axis);border-radius:10px;background:transparent;color:var(--cs-action-ink);font-size:.75rem;font-weight:700;cursor:pointer}.add-expression:hover{background:var(--cs-grid-minor)}.reset-expressions{grid-column:1 / -1;min-height:34px;border:1px solid var(--cs-grid-major);border-radius:10px;background:transparent;color:var(--cs-ink-soft);font-size:.72rem;font-weight:700;cursor:pointer}.reset-expressions:hover{background:var(--cs-grid-minor);color:var(--cs-ink)}.table-expression-row{grid-template-columns:10px minmax(0,1fr) 30px}.table-main{gap:8px}.table-scroll{overflow-x:auto;padding:3px}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-variant-numeric:tabular-nums}.data-table caption{padding:0 0 6px;color:var(--cs-ink);font-weight:750;text-align:left}.data-table th,.data-table td{min-width:62px;padding:2px;border:1px solid var(--cs-grid-major);text-align:center}.data-table th{color:var(--cs-action-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.data-table thead th{height:32px;background:var(--cs-grid-minor)}.data-table thead th:not(.data-row-heading){position:relative;padding-right:26px}.data-table thead button{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--cs-ink-soft);cursor:pointer}.data-table thead button:hover{background:var(--cs-paper);color:var(--cs-curve-2)}.data-table thead button:disabled{opacity:.35;cursor:default}.data-table .data-row-heading,.data-table tbody th{min-width:28px;width:28px;color:var(--cs-ink-soft)}.data-table input{width:100%;min-width:56px;min-height:30px;padding:3px 5px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;text-align:right}.data-table input:hover,.data-table input:focus{border-color:var(--cs-axis);background:var(--cs-paper)}.table-controls{display:flex;flex-wrap:wrap;gap:6px}.table-controls button{min-height:30px;padding:3px 8px;border:1px solid var(--cs-grid-major);border-radius:7px;background:transparent;color:var(--cs-action-ink);font-size:.68rem;font-weight:700;cursor:pointer}.table-controls button:hover{background:var(--cs-grid-minor)}.table-hint{margin:0;color:var(--cs-ink-soft);font-size:.66rem;line-height:1.4}.coach-panel{min-width:0;padding:16px;border:1px solid var(--cs-grid-major);border-radius:16px;background:color-mix(in srgb,var(--cs-paper) 96%,var(--cs-action));box-shadow:0 12px 30px color-mix(in srgb,var(--cs-ink) 6%,transparent)}.coach-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin:0 0 14px;padding:3px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-grid-minor)}.coach-tabs button{min-height:36px;border:0;border-radius:7px;background:transparent;color:var(--cs-ink-soft);font-size:.75rem;font-weight:750;cursor:pointer}.coach-tabs button[aria-selected=true]{background:var(--cs-paper);color:var(--cs-action-ink);box-shadow:0 1px 5px color-mix(in srgb,var(--cs-ink) 10%,transparent)}.coach-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.coach-heading h2{margin:0;font-size:1.05rem}.coach-heading-actions{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.coach-voice-settings{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px 9px;color:var(--cs-ink-soft);font-size:.68rem}.coach-voice-settings label{display:inline-flex;align-items:center;gap:4px}.coach-voice-settings input{accent-color:var(--cs-action)}.coach-voice-settings select{min-height:28px;padding:2px 5px;border:1px solid var(--cs-grid-major);border-radius:6px;background:var(--cs-paper);color:var(--cs-ink);font:inherit}.coach-eyebrow{margin:0 0 2px;color:var(--cs-ink-soft);font-size:.65rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.coach-level{padding:4px 8px;border:1px solid var(--cs-grid-major);border-radius:999px;color:var(--cs-action-ink);font-size:.7rem;font-weight:750}.coach-problem{margin-top:12px;padding:12px;border:1px solid var(--cs-grid-major);border-radius:11px;background:var(--cs-paper)}.coach-problem h3{margin:10px 0 0;font-size:.9rem;line-height:1.4}.problem-selector{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}.problem-selector span{color:var(--cs-ink-soft);font-size:.7rem;text-align:center;font-variant-numeric:tabular-nums}.problem-selector button,.coach-form button,.coach-debrief button{min-height:36px;padding:5px 9px;border:1px solid var(--cs-grid-major);border-radius:8px;background:var(--cs-paper);color:var(--cs-action-ink);font-size:.72rem;font-weight:700;cursor:pointer}.problem-selector button:disabled,.coach-form button:disabled{opacity:.5;cursor:default}.coach-move{display:grid;gap:2px;margin:9px 0 0;color:var(--cs-ink-soft);font-size:.7rem}.coach-move strong{color:var(--cs-action-ink)}.coach-loading{margin:14px 0;color:var(--cs-ink-soft);font-size:.78rem}.coach-log{display:grid;gap:7px;overflow-y:auto;max-height:210px;margin:12px 0;padding-right:3px}.coach-event{margin:0;padding:8px 9px;border-radius:9px;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}.coach-event-coach{background:color-mix(in srgb,var(--cs-action) 10%,var(--cs-paper))}.coach-event-student{margin-left:16px;background:var(--cs-grid-minor)}.coach-caption span{border-radius:3px;transition:background-color var(--cs-dur) var(--cs-ease)}.coach-caption .is-speaking{background:color-mix(in srgb,var(--cs-action) 20%,transparent)}.coach-speak-button{display:inline-grid;place-items:center;min-width:28px;min-height:28px;margin:-5px -3px -5px 4px;padding:2px;border:0;border-radius:6px;background:transparent;color:var(--cs-action-ink);cursor:pointer}.coach-speak-button:hover{background:color-mix(in srgb,var(--cs-action) 12%,transparent)}.coach-form{display:grid;gap:5px;margin-top:10px}.coach-form label{color:var(--cs-ink-soft);font-size:.7rem;font-weight:700}.coach-form-row{display:flex;gap:6px;flex-wrap:wrap}.coach-form input{min-width:0;min-height:38px;flex:1 1 130px;padding:6px 8px;border:1px solid var(--cs-grid-major);border-radius:8px;background:var(--cs-paper);color:var(--cs-ink)}.coach-form input.is-interim{color:var(--cs-ink-soft);font-style:italic}.coach-form button{flex:0 0 auto}.coach-mic-button{min-width:38px;padding-inline:7px!important}.coach-mic-button>span:first-child{color:var(--cs-ink-soft);font-size:.55rem}.coach-mic-button[aria-pressed=true]{border-color:var(--cs-action);background:color-mix(in srgb,var(--cs-action) 10%,var(--cs-paper))}.coach-listening-dot{color:var(--cs-action)!important;animation:coach-listening 1.15s ease-in-out infinite}.coach-speech-status{margin:0;color:var(--cs-ink-soft);font-size:.66rem;line-height:1.35}.coach-speech-status.is-error{color:var(--cs-curve-2)}.coach-answer{padding-top:10px;border-top:1px solid var(--cs-grid-major)}.coach-debrief{margin-top:12px;padding:12px;border:1px solid var(--cs-grid-major);border-radius:11px;background:var(--cs-paper);font-size:.76rem;line-height:1.45}.coach-debrief h3,.coach-debrief p{margin:0 0 7px}.coach-debrief ol{margin:7px 0 10px;padding-left:20px}.coach-debrief li+li{margin-top:4px}.coach-debrief button{width:100%;min-height:40px;border-color:var(--cs-action);background:var(--cs-action);color:#fff}.coach-disclaimer{margin:13px 0 0;color:var(--cs-ink-soft);font-size:.65rem;line-height:1.45}.lesson-picker h2,.lesson-running h2{margin:0;font-size:1.05rem}.lesson-intro{margin:7px 0 13px;color:var(--cs-ink-soft);font-size:.76rem;line-height:1.45}.lesson-card-list{display:grid;gap:9px}.lesson-card{display:grid;gap:5px;width:100%;min-height:92px;padding:12px;border:1px solid var(--cs-grid-major);border-radius:11px;background:var(--cs-paper);color:var(--cs-ink);text-align:left;cursor:pointer}.lesson-card:hover{border-color:var(--cs-action);background:color-mix(in srgb,var(--cs-action) 5%,var(--cs-paper))}.lesson-card strong{font-size:.86rem}.lesson-card>span:not(.lesson-dots,.visually-hidden,.lesson-card-grade){color:var(--cs-ink-soft);font-size:.7rem;line-height:1.4}.lesson-dots{display:flex;gap:5px;margin-top:3px}.lesson-dots i{width:7px;height:7px;border:1px solid var(--cs-axis);border-radius:50%;background:transparent}.lesson-dots i.is-complete{border-color:var(--cs-curve-3);background:var(--cs-curve-3)}.lesson-dots i.is-current{border-color:var(--cs-action);background:var(--cs-action);box-shadow:0 0 0 3px color-mix(in srgb,var(--cs-action) 13%,transparent)}.lesson-running{position:relative;min-height:310px}.lesson-illustration{display:block;width:100%;height:auto;aspect-ratio:704 / 512;object-fit:cover;margin:2px 0 13px;border:1px solid var(--cs-grid-major);border-radius:12px;background:var(--cs-grid-minor)}.lesson-step-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;color:var(--cs-ink-soft);font-size:.68rem;font-variant-numeric:tabular-nums}.lesson-step-meta .lesson-dots{margin:0}.lesson-body,.lesson-closing>p:not(.coach-eyebrow,.visually-hidden){margin:10px 0 14px;color:var(--cs-ink-soft);font-size:.78rem;line-height:1.58}.lesson-body code{padding:1px 4px;border-radius:4px;background:var(--cs-grid-minor);color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}.lesson-primary{width:100%;min-height:40px;padding:7px 10px;border:1px solid var(--cs-action);border-radius:8px;background:var(--cs-action);color:var(--cs-paper);font-size:.74rem;font-weight:750;cursor:pointer}.lesson-primary:hover{background:var(--cs-action-ink)}.lesson-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.lesson-actions .lesson-primary{flex:1 1 auto;width:auto}.lesson-tip{min-height:40px;padding:7px 18px;border:1px solid var(--cs-grid-major);border-radius:8px;background:var(--cs-paper);color:var(--cs-action-ink);font-size:.74rem;font-weight:750;cursor:pointer}.lesson-tip:hover{background:var(--cs-grid-minor)}.lesson-feedback{margin:10px 0 2px;padding:9px 12px;border:1px solid color-mix(in srgb,#f59e0b 50%,var(--cs-grid-major));border-radius:10px;background:color-mix(in srgb,#f59e0b 13%,var(--cs-paper));color:color-mix(in srgb,#92400e 72%,var(--cs-ink));font-size:.72rem;line-height:1.45}.lesson-hint{min-height:37px;margin:13px 0 0;padding:8px 9px;border-left:3px solid var(--cs-axis);color:var(--cs-ink-soft);font-size:.7rem;line-height:1.4;opacity:0}.lesson-hint.is-visible{opacity:1;transition:opacity var(--cs-dur) var(--cs-ease)}.lesson-step-check{position:absolute;inset:30px 0 auto;display:grid;place-items:center;width:52px;height:52px;margin:auto;border-radius:50%;background:var(--cs-curve-3);color:var(--cs-paper);font-size:1.5rem;font-weight:800;animation:lesson-check var(--cs-dur) var(--cs-ease) both}.lesson-controls{display:flex;justify-content:space-between;gap:8px;margin-top:18px;padding-top:11px;border-top:1px solid var(--cs-grid-major)}.lesson-controls button{min-height:34px;padding:5px 7px;border:0;background:transparent;color:var(--cs-action-ink);font-size:.68rem;font-weight:700;cursor:pointer}.lesson-finish-mark{display:grid;place-items:center;width:46px;height:46px;margin:16px 0 4px;border-radius:50%;background:color-mix(in srgb,var(--cs-curve-3) 16%,var(--cs-paper));color:var(--cs-curve-3);font-size:1.35rem;font-weight:800}@keyframes lesson-check{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes coach-listening{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.app-footer{display:flex;align-items:center;gap:7px;min-height:30px;margin-top:10px;color:var(--cs-ink-soft);font-size:.7rem}.app-footer p{margin:0}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--cs-curve-3);box-shadow:0 0 0 3px color-mix(in srgb,var(--cs-curve-3) 13%,transparent)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:18px;align-items:start}.calc-stage{min-width:0;width:100%;max-width:560px}.calc-stage-basic{max-width:470px}.calc-controls{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-bottom:12px}.calc-controls-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calc-device{width:100%;padding:clamp(12px,2.4vw,18px);border-radius:26px;border:1px solid color-mix(in srgb,var(--cs-grid-major) 82%,var(--cs-ink) 10%);background:linear-gradient(180deg,color-mix(in srgb,var(--cs-grid-minor) 32%,var(--cs-paper)),color-mix(in srgb,var(--cs-grid-major) 48%,var(--cs-paper)));box-shadow:inset 0 1px color-mix(in srgb,#fff 55%,transparent),0 24px 48px color-mix(in srgb,var(--cs-ink) 17%,transparent),0 5px 12px color-mix(in srgb,var(--cs-ink) 8%,transparent)}.calc-brand{display:flex;align-items:center;justify-content:space-between;gap:8px 10px;flex-wrap:wrap;padding:2px 4px 12px}.calc-brand-graphing{padding:0 2px;margin-bottom:14px}.calc-model{font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--cs-ink-soft)}.calc-logo{display:block;height:22px;width:auto;opacity:.92}.calc-brand-actions{display:inline-flex;align-items:center;gap:8px}.calc-fullscreen{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--cs-grid-major);border-radius:8px;background:var(--cs-paper);color:var(--cs-ink-soft);cursor:pointer;transition:color var(--cs-dur-fast) var(--cs-ease),background var(--cs-dur-fast) var(--cs-ease)}.calc-fullscreen:hover{color:var(--cs-ink);background:var(--cs-grid-minor)}.calc-stage:fullscreen{width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:14px;padding:clamp(16px,5vh,56px) clamp(12px,3vw,40px);background:linear-gradient(180deg,var(--cs-grid-minor),var(--cs-grid-major))}.calc-stage:fullscreen .calc-controls,.calc-stage:fullscreen .calc-device{width:min(720px,94vw);max-width:none}.calc-screen{padding:12px 14px;margin-bottom:14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--cs-grid-major) 92%,var(--cs-ink) 12%);background:color-mix(in srgb,var(--cs-paper) 86%,var(--cs-grid-minor));box-shadow:inset 0 2px 9px color-mix(in srgb,var(--cs-ink) 15%,transparent)}.calc-screen .calculation-tape{min-height:84px;max-height:168px;padding:0;border:0;background:transparent}.calc-entry{margin:8px 0 0}.calc-entry input{width:100%;min-height:44px;padding:6px 2px;border:0;border-bottom:2px solid color-mix(in srgb,var(--cs-grid-major) 90%,var(--cs-ink) 10%);background:transparent;color:var(--cs-ink);text-align:right;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.5rem;font-weight:600}.calc-entry input:focus{outline:none;border-bottom-color:var(--cs-action)}.calc-clear-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.practice-lessons{min-width:0;padding:16px;border:1px solid var(--cs-grid-major);border-radius:16px;background:color-mix(in srgb,var(--cs-paper) 96%,var(--cs-action));box-shadow:0 12px 30px color-mix(in srgb,var(--cs-ink) 6%,transparent)}.lesson-card-grade{justify-self:start;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--cs-action) 12%,var(--cs-paper));color:var(--cs-action-ink);font-size:.6rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.calculator-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:12px}.calculator-heading h2{margin:0;font-size:1.05rem}.calculator-heading p{margin:3px 0 0;color:var(--cs-ink-soft);font-size:.78rem}.mode-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}.mode-chips button{min-height:32px;padding:4px 10px;border:1px solid var(--cs-grid-major);border-radius:999px;background:transparent;color:var(--cs-ink-soft);font-size:.72rem;cursor:pointer}.mode-chips button[aria-checked=true]{border-color:var(--cs-action);background:color-mix(in srgb,var(--cs-action) 11%,var(--cs-paper));color:var(--cs-action-ink);font-weight:700}.calculator-settings{margin-top:10px;color:var(--cs-ink-soft);font-size:.75rem}.calculator-settings summary{width:fit-content;color:var(--cs-action-ink);font-weight:700;cursor:pointer}.calculator-settings p{margin:6px 0 0}.calculation-tape{overflow-y:auto;height:200px;padding:10px 12px;border:1px solid var(--cs-grid-major);border-radius:11px;background:var(--cs-paper)}.calculation-tape ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.calculation-tape li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;padding-bottom:7px;border-bottom:1px solid var(--cs-grid-minor)}.calculation-tape li:last-child{padding-bottom:0;border-bottom:0}.calculation-tape code{overflow-wrap:anywhere;color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.empty-tape{margin:0;color:var(--cs-ink-soft);font-size:.78rem}.tape-result{min-height:24px;margin:0;padding:2px 5px;border:0;border-radius:5px;background:transparent;color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25em;font-weight:800;white-space:nowrap}button.tape-result:hover{background:color-mix(in srgb,var(--cs-action) 10%,transparent)}button.tape-result{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}.tape-error{grid-column:1 / -1;color:var(--cs-curve-2);font-size:.75rem}.calculator-entry{margin:12px 0}.calculator-entry input{width:100%;min-height:52px;padding:9px 12px;border:2px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-paper);color:var(--cs-ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.05rem}.calculator-entry input[aria-invalid=true]{border-color:var(--cs-curve-2)}.keypad-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:3px;margin-bottom:8px;padding:2px;border:1px solid var(--cs-grid-major);border-radius:8px;background:var(--cs-grid-minor)}.keypad-tabs button{min-height:26px;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--cs-ink-soft);font-size:.7rem;font-weight:700;text-transform:lowercase;cursor:pointer}.keypad-tabs button[aria-selected=true]{background:var(--cs-paper);color:var(--cs-action-ink);box-shadow:0 1px 5px color-mix(in srgb,var(--cs-ink) 10%,transparent)}.keypad{display:grid;gap:2px}.keypad-row{display:grid;grid-template-columns:repeat(var(--key-count),minmax(44px,1fr));gap:6px;overflow-x:auto;padding:3px 3px 11px}.key{--key-face: var(--cs-paper);--key-edge: color-mix(in srgb, var(--cs-grid-major) 62%, var(--cs-ink) 16%);--key-ink: var(--cs-ink);min-width:42px;min-height:46px;padding:6px;border:1px solid color-mix(in srgb,var(--key-edge) 55%,var(--key-face));border-radius:10px;background:var(--key-face);color:var(--key-ink);font-weight:700;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 var(--key-edge),0 6px 8px color-mix(in srgb,var(--cs-ink) 10%,transparent);transition:transform 80ms var(--cs-ease),box-shadow 80ms var(--cs-ease),filter .13s var(--cs-ease)}.key:hover{filter:brightness(.96)}.key:active{transform:translateY(4px);box-shadow:0 0 0 var(--key-edge),0 1px 2px color-mix(in srgb,var(--cs-ink) 14%,transparent)}.key.k-value{--key-face: var(--cs-paper)}.key.k-fn{--key-face: color-mix(in srgb, var(--cs-grid-minor) 72%, var(--cs-paper));--key-edge: color-mix(in srgb, var(--cs-grid-major) 78%, var(--cs-ink) 12%)}.key.k-op{--key-face: color-mix(in srgb, #f59e0b 22%, var(--cs-paper));--key-ink: color-mix(in srgb, #92400e 78%, var(--cs-ink));--key-edge: color-mix(in srgb, #d97706 55%, var(--cs-grid-major))}.key.k-mod{--key-face: color-mix(in srgb, #0d9488 20%, var(--cs-paper));--key-ink: color-mix(in srgb, #0f766e 80%, var(--cs-ink));--key-edge: color-mix(in srgb, #0d9488 52%, var(--cs-grid-major))}.key.k-util{--key-face: color-mix(in srgb, var(--cs-grid-minor) 48%, var(--cs-paper));--key-ink: var(--cs-ink-soft)}.key.k-clear{--key-face: color-mix(in srgb, #ef4444 22%, var(--cs-paper));--key-ink: color-mix(in srgb, #b91c1c 78%, var(--cs-ink));--key-edge: color-mix(in srgb, #ef4444 52%, var(--cs-grid-major))}.key.k-clearentry{--key-face: color-mix(in srgb, #ef4444 9%, var(--cs-paper));--key-ink: color-mix(in srgb, #b91c1c 58%, var(--cs-ink));--key-edge: color-mix(in srgb, #ef4444 30%, var(--cs-grid-major))}.key-active{--key-face: #0d9488;--key-ink: #fff;--key-edge: #0a5f58}.key-primary{--key-face: var(--cs-action);--key-ink: #fff;--key-edge: var(--cs-action-ink)}.key.is-demo-pressed{--key-face: var(--cs-action);--key-ink: #fff;--key-edge: var(--cs-action-ink);transform:translateY(4px);box-shadow:0 1px 3px color-mix(in srgb,var(--cs-action) 35%,transparent),0 0 0 3px color-mix(in srgb,var(--cs-action) 22%,transparent)}@media(prefers-reduced-motion:reduce){.key,.key:active,.key.is-demo-pressed{transition:none;transform:none}}#calc-root[data-theme=dark] .key.k-op{--key-face: color-mix(in srgb, #f59e0b 42%, var(--cs-paper));--key-ink: #fde68a;--key-edge: color-mix(in srgb, #d97706 60%, var(--cs-paper))}#calc-root[data-theme=dark] .key.k-mod{--key-face: color-mix(in srgb, #14b8a6 40%, var(--cs-paper));--key-ink: #99f6e4;--key-edge: color-mix(in srgb, #0d9488 60%, var(--cs-paper))}#calc-root[data-theme=dark] .key.k-clear{--key-face: color-mix(in srgb, #ef4444 42%, var(--cs-paper));--key-ink: #fecaca;--key-edge: color-mix(in srgb, #ef4444 60%, var(--cs-paper))}#calc-root[data-theme=dark] .key.k-clearentry{--key-face: color-mix(in srgb, #ef4444 22%, var(--cs-paper));--key-ink: #fecaca;--key-edge: color-mix(in srgb, #ef4444 42%, var(--cs-paper))}#calc-root[data-theme=dark] .lesson-feedback{border-color:color-mix(in srgb,#f59e0b 45%,var(--cs-paper));background:color-mix(in srgb,#f59e0b 16%,var(--cs-paper));color:#fcd9a6}.calc-heading-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.learn-toggle{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 12px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-paper);color:var(--cs-ink-soft);font-size:.78rem;font-weight:750;cursor:pointer}.learn-toggle:hover{color:var(--cs-ink)}.learn-toggle-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:var(--cs-grid-minor);color:var(--cs-action-ink);font-size:.7rem;font-weight:800}.learn-toggle.is-on{border-color:var(--cs-action);background:var(--cs-action);color:#fff}.learn-toggle.is-on .learn-toggle-mark{background:color-mix(in srgb,#fff 30%,transparent);color:#fff}.learn-banner{margin:0 0 12px;padding:9px 12px;border:1px solid var(--cs-action);border-radius:10px;background:color-mix(in srgb,var(--cs-action) 10%,var(--cs-paper));color:var(--cs-action-ink);font-size:.78rem;font-weight:600}.learn-active .keypad .key{cursor:help}.learn-active .keypad .key:hover{border-color:var(--cs-action);background:color-mix(in srgb,var(--cs-action) 8%,var(--cs-paper));color:var(--cs-ink)}@keyframes fn-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fn-pop-in{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes learn-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.learn-banner{animation:learn-slide-in .2s var(--cs-ease)}.fn-info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:color-mix(in srgb,var(--cs-ink) 45%,transparent);animation:fn-fade-in .16s var(--cs-ease)}.fn-info-dialog{width:min(440px,100%);max-height:88vh;overflow-y:auto;padding:20px;border:1px solid var(--cs-grid-major);border-radius:16px;background:var(--cs-paper);color:var(--cs-ink);box-shadow:0 24px 60px color-mix(in srgb,var(--cs-ink) 30%,transparent);animation:fn-pop-in .24s cubic-bezier(.18,.9,.24,1);transform-origin:center bottom}@media(prefers-reduced-motion:reduce){.fn-info-backdrop,.fn-info-dialog,.learn-banner{animation:none}}.fn-info-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.fn-info-symbol{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:0 8px;border-radius:12px;background:var(--cs-action);color:#fff;font-size:1.15rem;font-weight:750}.fn-info-titles{flex:1;min-width:0}.fn-info-titles h2{margin:0;font-size:1.15rem}.fn-info-grade{display:inline-block;margin-top:3px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--cs-action) 12%,var(--cs-paper));color:var(--cs-action-ink);font-size:.62rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.fn-info-close{align-self:start;width:34px;height:34px;border:1px solid var(--cs-grid-major);border-radius:9px;background:var(--cs-paper);color:var(--cs-ink-soft);font-size:1.2rem;line-height:1;cursor:pointer}.fn-info-close:hover{color:var(--cs-ink);background:var(--cs-grid-minor)}.fn-info-body section{margin-bottom:12px}.fn-info-body h3{margin:0 0 3px;color:var(--cs-ink-soft);font-size:.68rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.fn-info-body p{margin:0;font-size:.88rem;line-height:1.5}.fn-info-example{padding:12px;border-radius:11px;background:var(--cs-grid-minor)}.fn-info-example .fn-info-calc{margin:0 0 6px;font-size:1rem}.fn-info-calc code{padding:2px 6px;border-radius:6px;background:var(--cs-paper);font-weight:700}.fn-info-result{color:var(--cs-action-ink)}.fn-info-actions{display:flex;gap:8px;margin-top:16px}.fn-info-try{flex:1;min-height:44px;border:0;border-radius:10px;background:var(--cs-action);color:#fff;font-size:.85rem;font-weight:750;cursor:pointer}.fn-info-try:hover{background:var(--cs-action-ink)}.fn-info-dismiss{min-height:44px;padding:0 16px;border:1px solid var(--cs-grid-major);border-radius:10px;background:var(--cs-paper);color:var(--cs-ink);font-weight:700;cursor:pointer}.fn-info-dismiss:hover{background:var(--cs-grid-minor)}@media(max-width:820px){.studio-layout,.practice-layout{grid-template-columns:1fr}.calc-stage,.calc-stage-basic{max-width:none}.view-stack{min-height:500px}.graph-stage{height:460px}.expression-rail{min-height:0}}@media(min-width:821px)and (max-width:1120px){.studio-layout-coach{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}.studio-layout-coach .coach-panel{grid-column:1 / -1}}@media(max-width:520px){.calc-studio{padding-inline:10px}.app-header{align-items:flex-start}.header-actions{align-items:stretch;flex-direction:column}.header-actions .angle-toggle{grid-template-columns:1fr}.practice-mode-banner{align-items:flex-start;flex-direction:column}.graph-stage{height:410px;border-radius:12px}.view-stack{min-height:450px}.zoom-controls button{width:42px;height:42px}.calc-studio{padding-bottom:80px}.calc-device{padding:12px;border-radius:20px}.calc-screen{padding:10px 12px}.calc-entry input{font-size:1.3rem}.calc-brand{padding-bottom:10px}.keypad-row{gap:5px;padding:3px 2px 10px}.key{min-width:40px;min-height:44px;padding:5px}.calculation-tape{height:150px}.calculation-tape li{grid-template-columns:1fr;gap:4px}.tape-result{justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.coach-listening-dot{opacity:1;transform:none}}@media(forced-colors:active){button,.graph-stage,.expression-row,.expression-rail,.coach-panel,.coach-problem,.coach-debrief,.lesson-card,.practice-calculator,.calculation-tape,.calculator-entry input{border-color:CanvasText}.curve-dot,.status-dot{forced-color-adjust:none}}
