:root{--ink:#0e1117;--ink-soft:#2d333d;--ink-mute:#596070;--wire:#d4d8e0;--wire-soft:#eaedf2;--paper:#f7f8fa;--white:#fff;--accent:#1a5fff;--accent-alt:#0040d0;--success:#1a9e4b;--warn:#e06b00;--danger:#c82929;--algebra:#7b2dbe;--ask:#00796b;--mono:"IBM Plex Mono",monospace;--sans:"IBM Plex Sans",sans-serif;--radius:4px;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 16px rgba(0,0,0,.1);--transition:120ms ease}*,:after,:before{box-sizing:border-box}html{font-size:15px;line-height:1.5;color:var(--ink);background:var(--paper)}body{font-family:var(--sans);height:100vh;margin:0;display:flex;flex-direction:column;overflow:hidden}.visually-hidden{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;top:-40px;left:1rem;padding:.4rem .8rem;background:var(--accent);color:#fff;font-size:.8rem;border-radius:var(--radius);transition:top .15s;z-index:999;text-decoration:none}.skip-link:focus{top:.5rem}#dev-banner{background:#fef3c7;border-bottom:1px solid #fbbf24;padding:.5rem 1rem;font-size:.78rem;font-family:var(--mono);display:flex;align-items:center;gap:.5rem;color:#78350f}#dev-banner svg{flex-shrink:0}#dev-banner.hidden,[data-embedded] header{display:none}header{background:var(--white);border-bottom:1px solid var(--wire);padding:0 1.5rem;display:flex;align-items:center;gap:1rem;height:52px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.logo{font-family:var(--mono);font-weight:600;font-size:1rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.logo span{color:var(--accent)}header .studio-nav{margin-left:auto;display:flex;gap:1.25rem;align-items:center}header .studio-nav a{font-size:.82rem;color:var(--ink-mute);text-decoration:none}header .studio-nav a:hover{color:var(--ink)}.main-grid{display:grid;grid-template-columns:1fr 340px;grid-template-rows:1fr;grid-gap:0;gap:0;flex:1 1 auto;min-height:0}.mode-bar{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--wire);background:var(--white);padding:0 1.5rem}.mode-btn{all:unset;cursor:pointer;padding:.75rem 1.25rem;font-size:.78rem;font-weight:600;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid transparent;margin-bottom:-1px;transition:var(--transition);color:var(--ink-mute)}.mode-btn:hover{color:var(--ink)}.mode-btn[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.mode-btn[data-mode=ALGEBRA][aria-pressed=true]{color:var(--algebra);border-bottom-color:var(--algebra)}.mode-btn[data-mode=ASK][aria-pressed=true]{color:var(--ask);border-bottom-color:var(--ask)}.mode-btn:focus,.mode-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;transition:none}.mode-hint{margin-left:auto;font-size:.72rem;color:var(--ink-mute);font-family:var(--mono)}.editor-pane{background:var(--white);border-right:1px solid var(--wire);display:flex;flex-direction:column;min-height:0}.formula-stage{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem 2rem;min-height:0;position:relative;overflow:auto}.formula-display{font-size:1.8rem;cursor:pointer;outline:none;padding:1.5rem 2rem;border-radius:var(--radius);border:2px solid transparent;transition:border-color .15s;min-width:200px;text-align:center}.formula-display:focus{border-color:var(--accent)}.formula-display.mutating{animation:flash-green .4s ease}@keyframes flash-green{0%,to{background:transparent}50%{background:#d1fae5}}.formula-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ask-picker{display:none;width:100%;margin-top:1.5rem;gap:1rem}.ask-picker.visible{display:flex}.ask-option{flex:1 1;padding:1rem;border:2px solid var(--wire);border-radius:var(--radius);cursor:pointer;text-align:center;transition:var(--transition);background:var(--white)}.ask-option:hover{border-color:var(--ask);background:#f0fdfa}.ask-option:focus{outline:2px solid var(--ask);outline-offset:2px}.ask-option-label{font-size:.7rem;font-family:var(--mono);color:var(--ink-mute);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.ask-option-formula{font-size:1.2rem}.command-row{padding:1rem 1.5rem;border-top:1px solid var(--wire);display:flex;gap:.5rem;align-items:center;background:var(--paper)}#cmd-input{flex:1 1;font-family:var(--mono);font-size:.85rem;padding:.6rem .9rem;border:1px solid var(--wire);border-radius:var(--radius);background:var(--white);color:var(--ink);outline:none;transition:border-color .15s}#cmd-input:focus{border-color:var(--accent)}#cmd-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn{padding:.55rem .9rem;border-radius:var(--radius);border:none;cursor:pointer;font-size:.78rem;font-weight:600;font-family:var(--sans);transition:background-color var(--transition),color var(--transition),border-color var(--transition),outline var(--transition);display:inline-flex;align-items:center;gap:.4rem}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-alt)}.btn-secondary{background:var(--wire-soft);color:var(--ink-soft)}.btn-secondary:hover{background:var(--wire)}.btn-danger{background:#fef2f2;color:var(--danger);border:1px solid #fca5a5}.btn-danger:hover{background:#fee2e2}.btn:focus,.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;transition:none}.btn:disabled{opacity:.5;cursor:not-allowed}#mic-btn{width:38px;height:38px;border-radius:50%;background:var(--paper);border:1.5px solid var(--wire);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);flex-shrink:0;position:relative}#mic-btn:hover{background:#eff6ff;border-color:var(--accent)}#mic-btn.listening{background:#fee2e2;border-color:var(--danger);animation:mic-pulse 1.2s infinite}#mic-btn:focus,#mic-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;transition:none}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 rgba(200,41,41,.3)}50%{box-shadow:0 0 0 8px rgba(200,41,41,0)}}.transcript-area{padding:.75rem 1.5rem;font-family:var(--mono);font-size:.8rem;color:var(--ink-mute);min-height:36px;border-top:1px solid var(--wire-soft);background:var(--white);display:flex;align-items:center;gap:.5rem}.transcript-area .interim{opacity:.6;font-style:italic}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--wire);flex-shrink:0}.status-dot.ready{background:var(--success)}.status-dot.thinking{background:var(--warn);animation:blink .6s infinite}.status-dot.error{background:var(--danger)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.sidebar{background:var(--paper);overflow-y:auto;display:flex;flex-direction:column;min-height:0}.sidebar-section{padding:1rem;border-bottom:1px solid var(--wire)}.sidebar-title{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute);margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem}.latex-edit{width:100%;font-family:var(--mono);font-size:.8rem;padding:.55rem .75rem;border:1px solid var(--wire);border-radius:var(--radius);background:var(--white);color:var(--ink);resize:vertical;min-height:64px;outline:none;transition:border-color .15s}.latex-edit:focus{border-color:var(--accent)}.undo-row{display:flex;gap:.4rem;margin-top:.6rem}.diff-log{list-style:none;max-height:220px;overflow-y:auto;font-family:var(--mono);font-size:.72rem;color:var(--ink-soft);margin:0;padding:0}.diff-log li{padding:.35rem .5rem;border-left:2px solid transparent;margin-bottom:1px;border-radius:0 var(--radius) var(--radius) 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem}.diff-log li.success{border-left-color:var(--success);background:#f0fdf4}.diff-log li.error{border-left-color:var(--danger);background:#fef2f2}.diff-log li.info{border-left-color:var(--accent);background:#eff6ff}.diff-log .op-badge{font-size:.6rem;font-weight:600;text-transform:uppercase;padding:.05rem .3rem;border-radius:2px;white-space:nowrap;background:var(--wire);color:var(--ink-soft)}.diff-log .detail,.diff-log .log-ext{color:var(--ink-mute)}.diff-log .log-ext{width:100%;font-size:.67rem;opacity:.8;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diff-log .log-ext-code code{font-family:var(--mono);font-size:.64rem;background:rgba(0,0,0,.05);padding:0 .2rem;border-radius:2px}.tts-row{display:flex;gap:.4rem;margin-bottom:.5rem}.ssml-pre{font-family:var(--mono);font-size:.68rem;white-space:pre-wrap;background:#0e1117;color:#7dd3fc;padding:.6rem;border-radius:var(--radius);max-height:100px;overflow-y:auto;line-height:1.6}.word-highlight{background:#fef08a;border-radius:2px;padding:0 1px}.preset-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.4rem;gap:.4rem}.preset-btn{padding:.4rem .6rem;font-size:.7rem;font-family:var(--mono);border:1px solid var(--wire);border-radius:var(--radius);background:var(--white);cursor:pointer;text-align:center;color:var(--ink-soft);transition:var(--transition);line-height:1.4}.preset-btn:hover{border-color:var(--accent);background:#eff6ff;color:var(--accent)}.preset-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.asr-toggle{display:flex;gap:.4rem;font-size:.72rem}.asr-opt{padding:.2rem .6rem;border:1px solid var(--wire);border-radius:var(--radius);cursor:pointer;background:var(--white);color:var(--ink-mute);font-family:var(--mono);transition:var(--transition)}.asr-opt.active{background:var(--ink);color:var(--white);border-color:var(--ink)}.algebra-hint{display:none;padding:.6rem .8rem;background:#f5f3ff;border:1px solid #c4b5fd;border-radius:var(--radius);font-size:.72rem;color:#4c1d95;font-family:var(--mono);line-height:1.6;margin-top:.5rem}.algebra-hint.visible{display:block}@media (prefers-reduced-motion:reduce){.formula-display.mutating{animation:none}#mic-btn.listening{animation:none;box-shadow:none}}@media (max-width:800px){body{height:auto;min-height:100vh;overflow:auto}.main-grid{flex:none;height:auto;min-height:calc(100vh - 52px - 40px)}.formula-stage{min-height:180px}.main-grid{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.sidebar{border-top:1px solid var(--wire)}.editor-pane,.sidebar{border-right:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::placeholder{color:var(--ink-mute);opacity:1}.copy-row{display:flex;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--wire)}.copy-btn{flex:1 1;font-size:.75rem;min-height:32px}.eqn-actions{display:flex;gap:.6rem;padding:.5rem .9rem;border-bottom:1px solid var(--wire)}.eqn-actions,.new-eqn-btn{align-items:center;background:var(--white)}.new-eqn-btn{display:inline-flex;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.new-eqn-btn.armed,.new-eqn-btn:hover{background:var(--accent);color:#fff}.new-eqn-btn.armed{box-shadow:0 0 0 3px rgba(26,95,255,.2)}.new-eqn-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.new-eqn-hint{font-size:.78rem;color:var(--accent);font-weight:500}.photo-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;font-weight:600;color:var(--accent);background:var(--white);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.photo-btn:hover:not(:disabled){background:var(--accent);color:#fff}.photo-btn:disabled{opacity:.6;cursor:wait}