:root{--font-sans:"Lexend Variable",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Bricolage Grotesque Variable","Lexend Variable",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;--fs-xs:12.5px;--fs-sm:14px;--fs-base:16px;--fs-md:17px;--fs-lg:20px;--fs-xl:26px;--fs-2xl:32px;--math-lg:clamp(30px,2.4vw + 14px,40px);--math-md:clamp(22px,1.2vw + 14px,27px);--math-sm:18px;--lh-tight:1.25;--lh-snug:1.4;--lh:1.55;--w-regular:400;--w-medium:500;--w-semibold:600;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:48px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--bar-h:64px;--bg:#f4f5fb;--surface:#ffffff;--surface-2:#f8f9ff;--surface-3:#eef0fb;--line:#e5e8f4;--line-2:#d3d8ec;--grid:#e9ecf7;--ink:#1b1f3b;--ink-2:#444b6c;--ink-3:#5f6688;--blue:#4f5bea;--blue-ink:#3a44c4;--blue-soft:#eceefe;--blue-line:#c6cbfa;--amber:#6a3dc2;--amber-mid:#9f7cf0;--amber-soft:#f2ecff;--amber-line:#dacbfb;--ok:#157a56;--ok-soft:#e2f6ed;--ok-line:#a6ddc4;--bad:#c3344e;--bad-soft:#fdebef;--bad-line:#f3b7c3;--sky:#1a6aa6;--sky-soft:#e4f3ff;--coral:#a93c22;--coral-soft:#ffeee8;--violet-soft:#efeaff;--focus:#4f5bea;--shadow:0 1px 2px rgba(27,31,59,0.05),0 10px 30px -18px rgba(53,62,160,0.28)}*{box-sizing:border-box}body,html{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"calt" 1;font-size:var(--fs-base);line-height:var(--lh);font-weight:var(--w-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-weight:var(--w-semibold);line-height:var(--lh-tight)}.card-body h2,.ev-brand b,.ev-main h1,.home-brand,.home-intro h1,.rail-brand b,.result h2,.welcome h1,h1{font-family:var(--font-display);letter-spacing:-.02em}.board-grid,.card-figure,.notebook,.sp-figure,.welcome-preview,.work-panel{background-color:var(--surface);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}p{overflow-wrap:break-word}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.link,.muted{font-size:var(--fs-sm)}.link{background:none;border:none;padding:0;color:var(--blue);text-decoration:underline;text-underline-offset:3px}.math{font-size:inherit}.katex{font-size:1em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:9px 18px;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--surface);font-weight:var(--w-semibold);font-size:15px;text-decoration:none;color:var(--ink)}.btn:hover{background:var(--surface-3)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-ink)}.btn.big{padding:13px 26px;font-size:var(--fs-md)}.btn.danger{border-color:var(--bad-line);color:var(--bad)}.btn:disabled{opacity:.55}.error{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);color:var(--bad);background:var(--bad-soft);border-left:3px solid var(--bad);border-radius:var(--r-sm);padding:10px 14px;font-size:var(--fs-sm);margin:var(--sp-3) 0}.tutor-panel>.error{margin:0 var(--sp-4) var(--sp-3)}.note-banner{color:var(--ok);background:var(--ok-soft);border-radius:var(--r-sm);padding:8px 12px;font-size:var(--fs-sm);margin:0}.app{min-height:100vh;display:flex;flex-direction:column}.rail{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;grid-gap:var(--sp-6);gap:var(--sp-6);min-height:var(--bar-h);padding:10px var(--sp-6);background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.2) blur(6px);backdrop-filter:saturate(1.2) blur(6px)}.rail,.rail-left{align-items:center}.rail-left{display:flex;gap:var(--sp-4);min-width:0}.rail-home{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:7px 12px;font-size:var(--fs-sm);font-weight:var(--w-semibold);text-decoration:none;white-space:nowrap}.rail-home:hover{background:var(--surface-3)}.rail-brand{display:flex;flex-direction:column;line-height:var(--lh-tight);min-width:0}.rail-brand b{font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.rail-brand span{font-size:var(--fs-xs);color:var(--ink-3)}.rail-stops{display:flex;list-style:none;margin:0;padding:0;justify-self:center;min-width:0}.stop{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);position:relative;color:var(--ink-3)}.stop+.stop:before{content:"";position:absolute;left:-8px;top:50%;width:16px;height:1px;background:var(--line-2)}.stop-dot{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--surface);display:grid;place-items:center;font-size:var(--fs-xs);color:var(--ink-3)}.stop-dot,.stop-text{font-weight:var(--w-semibold)}.stop-text{display:flex;flex-direction:column;font-size:var(--fs-sm);line-height:var(--lh-tight);white-space:nowrap}.stop-text small{font-weight:var(--w-regular);font-size:var(--fs-xs);color:var(--ink-3)}.stop.now{color:var(--ink)}.stop.now .stop-dot{border-color:var(--blue);background:var(--blue);color:#fff}.stop.done{color:var(--ink-2)}.stop.done .stop-dot{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok)}.stop.done .stop-dot.pip.no{border-color:var(--amber-line);background:var(--amber-soft);color:var(--amber)}.rail-actions{display:flex;align-items:center;gap:var(--sp-2);justify-content:flex-end}.rail-link{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink-2);text-decoration:none;padding:7px 10px;border-radius:var(--r-sm);white-space:nowrap}.rail-link:hover{color:var(--ink);background:var(--surface-3)}.rail-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:var(--r-md);padding:7px 12px;font-size:var(--fs-sm);font-weight:var(--w-medium);text-decoration:none;white-space:nowrap}.rail-btn:hover{background:var(--surface-3)}.mode{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:2px 10px;white-space:nowrap}.mode.llm{color:var(--ok);border-color:var(--ok-line)}.menu{position:relative}.menu-panel{position:absolute;right:0;top:calc(100% + 8px);width:248px;max-width:calc(100vw - 24px);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:0 12px 32px -12px rgba(27,31,59,.25);padding:6px;z-index:30}.menu-item{display:block;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:9px 12px;font-size:15px;color:var(--ink)}.menu-item:hover{background:var(--surface-3)}.menu-sep{height:1px;background:var(--line);margin:6px 4px}.menu-label{margin:0;padding:4px 12px 2px;font-size:var(--fs-xs);font-weight:var(--w-semibold);color:var(--ink-3)}.menu-toggle{display:flex;align-items:center;gap:10px;padding:7px 12px;font-size:15px;cursor:pointer}.menu-toggle input{width:16px;height:16px;accent-color:var(--blue)}.menu-fine{margin:0;padding:4px 12px 6px;font-size:var(--fs-xs);color:var(--ink-3);line-height:var(--lh-snug)}.welcome{width:min(640px,calc(100% - 32px));margin:clamp(24px,8vh,80px) auto;padding:clamp(28px,5vw,48px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.welcome-kicker{font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--amber);margin:0}.welcome h1{font-size:clamp(26px,2vw + 16px,var(--fs-2xl));line-height:1.2;letter-spacing:-.01em;margin:10px 0 14px}.welcome p{color:var(--ink-2);font-size:var(--fs-md);line-height:1.6}.welcome-preview{margin:var(--sp-6) 0 var(--sp-7);padding:var(--sp-4) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow-x:auto}.welcome-fine{font-size:var(--fs-sm)!important;color:var(--ink-3)!important;margin-top:var(--sp-6)}.welcome{animation:settle .35s ease-out both}.welcome h1{font-size:clamp(30px,2.4vw + 16px,40px);margin:8px 0 10px}.welcome-lead{font-size:18px!important;color:var(--ink-2)!important;max-width:46ch;margin:0}.welcome-preview{border-radius:var(--r-md);border:1px solid var(--line)!important;display:grid;place-items:center;min-height:120px}.welcome-actions{align-items:center}.welcome-actions .btn.primary.big{min-width:180px}.sound-toggle{display:inline-flex;align-items:center;gap:8px}.btn.sound-toggle.on{color:var(--blue-ink);border-color:var(--blue-line);background:var(--blue-soft)}.btn.sound-toggle.off{color:var(--ink-3)}.work-panel.attention{box-shadow:0 0 0 3px var(--amber-line),var(--shadow);transition:box-shadow .6s ease}.work-panel{transition:box-shadow .8s ease}.workspace{flex:1 1;width:100%;max-width:1320px;margin:0 auto;padding:var(--sp-6);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,1fr);grid-gap:var(--sp-6);gap:var(--sp-6);align-items:start}.tutor-panel,.work-panel{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}.work-panel{position:relative;padding-bottom:var(--sp-5);min-height:calc(100vh - var(--bar-h) - 2 * var(--sp-5))}.work-panel.scratching{cursor:crosshair}.scratch{position:absolute;inset:0;z-index:5;touch-action:none;border-radius:var(--r-lg)}.panel-head{position:relative;z-index:6;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;min-height:54px;padding:10px var(--sp-5) 10px var(--sp-6);border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:15px;color:var(--ink)}.panel-tools{display:flex;gap:var(--sp-2);flex-wrap:wrap}.tool{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:5px 10px;font-size:13.5px;font-weight:var(--w-medium);color:var(--ink-2);white-space:nowrap}.tool:hover{background:var(--surface-3)}.tool.on{background:var(--blue);color:#fff;border-color:var(--blue)}.tutor-panel{position:-webkit-sticky;position:sticky;top:calc(var(--bar-h) + var(--sp-5));height:calc(100vh - var(--bar-h) - 2 * var(--sp-5));min-height:480px;display:flex;flex-direction:column;overflow:hidden}.tutor-head{padding-left:var(--sp-5)}.notebook{padding:0}.nb-section{padding:0 var(--sp-6)}.nb-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--sp-3);padding:var(--sp-5) 0 var(--sp-3);border-bottom:1px solid var(--line)}.nb-kicker{font-size:15px;font-weight:var(--w-semibold);color:var(--ink)}.nb-sub{flex-basis:100%;font-size:var(--fs-sm);color:var(--ink-2);max-width:560px}.nb-grid{display:grid;grid-template-columns:36px minmax(0,1fr)}.nb-connector,.nb-row{display:contents}.gutter{grid-column:1;padding-top:14px;text-align:left;color:var(--ink-3);font-size:15px}.gutter,.work{border-bottom:1px solid var(--line)}.work{grid-column:2;padding:10px 0;min-height:52px;display:flex;align-items:baseline;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;min-width:0}.given .work{padding:var(--sp-5) 0 var(--sp-4)}.given .gutter{padding-top:var(--sp-6)}.nb-connector .conn,.nb-connector .gutter{border-bottom:none}.nb-row.is-active .gutter{box-shadow:inset 3px 0 0 var(--amber-mid)}.mathline{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.3em;color:var(--blue);font-size:var(--math-md);line-height:1.3;max-width:100%}.mathline.lg{font-size:var(--math-lg);color:var(--ink)}.mathline.sm{font-size:var(--math-sm)}.mathline .side{gap:.06em}.mathline .side,.term{display:inline-flex;align-items:baseline}.term{gap:.3em;padding:0 .12em;border-radius:4px;transition:background-color .25s,box-shadow .25s}.term .op{font-weight:var(--w-regular)}.term.focus{background:var(--amber-soft);box-shadow:inset 0 -2px 0 var(--amber-mid)}.term.eq{padding:0 .1em}.status-word{font-size:13.5px;color:var(--ink-3)}.mark{font-weight:var(--w-semibold);font-size:16px}.mark small{font-size:10px;vertical-align:super;margin-left:1px}.mark.ok{color:var(--ok)}.mark.bad{color:var(--bad)}.final .mathline,.final .status-word,.valid .status-word{color:var(--ok)}.invalid .mathline{color:var(--bad);position:relative}.invalid .mathline:after{content:"";position:absolute;left:-2px;right:-2px;top:54%;height:1.5px;background:currentColor;opacity:.55}.invalid .status-word{color:var(--bad)}.nb-connector .conn{grid-column:2;display:flex;align-items:center;gap:var(--sp-2);padding:2px 0 2px 10px}.conn-line{width:2px;align-self:stretch;min-height:18px;background:currentColor;opacity:.4;border-radius:1px}.conn-text{font-size:13.5px;font-weight:var(--w-medium)}.conn-why{font-weight:var(--w-regular)}.nb-connector.ok{color:var(--ok)}.nb-connector.bad{color:var(--bad)}.vs{opacity:.6;margin:0 4px}.annotation .gutter{color:var(--amber)}.annotation .tutor-ink{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2) var(--sp-3);color:var(--amber);font-size:21px;background:var(--amber-soft);border-left:3px solid var(--amber-mid);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:6px 14px;max-width:100%}.ink-label{font-size:13px;font-weight:var(--w-semibold)}.folded .fold,.nb-row.folded>.link{grid-column:2;justify-self:start;margin:10px 0}.nb-section.past{padding:0}.past-summary{width:100%;display:flex;align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;background:transparent;border:none;border-bottom:1px solid var(--line);padding:14px var(--sp-6);text-align:left;color:var(--ink-2)}.past-summary:hover{background:var(--surface-2)}.past-summary:hover .past-open{text-decoration:underline}.past-label{font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--ink);min-width:108px}.past-arrow{color:var(--ink-3)}.past-open{font-size:13.5px;color:var(--blue);margin-left:auto}.evidence-tag{font-size:var(--fs-xs);font-weight:var(--w-semibold);padding:2px 10px;border-radius:var(--r-pill)}.evidence-tag.alone{background:var(--ok-soft);color:var(--ok)}.evidence-tag.help{background:var(--amber-soft);color:var(--amber)}.nb-section.current{animation:settle .35s ease-out both}@keyframes settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.nb-row.annotation .work,.nb-row.final .work,.nb-row.invalid .work,.nb-row.valid .work{animation:settle .3s ease-out both}.result{margin:var(--sp-5) var(--sp-6) 0;padding:var(--sp-6);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg)}.result-kicker{font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--ink-3);margin:0}.result h2{font-size:var(--fs-xl);margin:4px 0 8px}.result-verdict{font-size:var(--fs-md);margin:0 0 6px}.result-evidence{color:var(--ink-2);font-size:var(--fs-sm)}.evidence{margin:var(--sp-5) 0 var(--sp-4)}.evidence h3{font-family:var(--font-display);font-size:var(--fs-md);margin:0 0 var(--sp-2)}.evidence-table{width:100%;border-collapse:collapse;font-size:14px}.evidence-table td,.evidence-table th{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--line);vertical-align:top}.evidence-table thead th{font-size:var(--fs-xs);font-weight:var(--w-semibold);color:var(--ink-3)}.evidence-table tbody th{font-weight:var(--w-medium)}.evidence-table tbody th small{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-weight:var(--w-regular)}.ev-eq,.ev-steps{font-family:KaTeX_Main,Times New Roman,serif;font-size:16px}.ev-eq{white-space:nowrap}@media (max-width:560px){.evidence-table td:nth-child(2),.evidence-table th:nth-child(2){display:none}}.ev-steps{color:var(--blue-ink)}.evidence-note{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);color:var(--ink-2)}.result-moves{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-5);font-size:var(--fs-sm)}.result-moves .move{border:1px solid var(--ok-line);background:var(--surface);color:var(--ok);padding:4px 12px;border-radius:var(--r-pill);font-weight:var(--w-medium)}.result-moves .arrow{color:var(--ink-3)}.thread{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4);overscroll-behavior:contain}.msg{margin:0;overflow-wrap:break-word}.msg.tutor{color:var(--ink);background:var(--surface-2);padding:10px 14px;border-left:3px solid var(--amber-line);border-radius:0 var(--r-md) var(--r-md) 0;outline-offset:4px}.msg.tutor.earlier{color:var(--ink-2)}.msg.tutor.active{background:var(--amber-soft);border-left:3px solid var(--amber-mid);border-radius:0 var(--r-md) var(--r-md) 0;padding:12px 16px 13px;animation:settle .3s ease-out both}.note-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:0 0 4px;min-height:26px}.note-top .note-kind{margin:0}.audio-ctl{display:flex;gap:6px}.audio-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--amber-line);color:var(--amber);border-radius:var(--r-pill);padding:3px 11px;font-size:13px;font-weight:var(--w-medium)}.audio-btn:hover:not(:disabled){background:#fff}.audio-btn:disabled{opacity:.5}.welcome-actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.btn.quiet{background:transparent}.welcome-sound{font-size:var(--fs-sm)!important;color:var(--ink-2)!important;margin:var(--sp-4) 0 0}.note-kind{margin:0 0 4px;font-size:var(--fs-xs);font-weight:var(--w-semibold);color:var(--amber)}.nowrap{white-space:nowrap}.note-text{margin:0;font-size:var(--fs-base);line-height:var(--lh)}.spoken{color:var(--ink)}.unspoken{color:var(--ink-3)}.msg.student{align-self:flex-end;max-width:85%;background:var(--blue-soft);color:var(--blue-ink);border-radius:14px 14px 4px 14px;padding:8px 14px;font-size:15.5px;line-height:var(--lh-snug)}.msg.student .via{display:inline-block;vertical-align:-1px;margin-right:6px;opacity:.8}.thread-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-2) 0 0;color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--w-semibold)}.thread-divider:after,.thread-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.nextline{flex:none;padding:var(--sp-4) var(--sp-5) var(--sp-5);border-top:1px solid var(--line);background:var(--surface)}.nl-form{display:flex;align-items:center;gap:var(--sp-2);padding:6px;background:#fff;border:1.5px solid var(--line-2);border-radius:var(--r-lg);transition:border-color .15s,box-shadow .15s}.nl-form:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.presence,.vbtn{flex:none;width:42px;height:42px;border-radius:50%;border:none;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.presence:hover:not(:disabled),.vbtn:hover{background:#dfe2fd}.presence:disabled{background:var(--surface-3);color:#7c829f}.vbtn.vcancel{background:var(--bad-soft);color:var(--bad)}.vbtn.vedit{width:auto;border-radius:999px;padding:0 14px;font:inherit;font-size:.875rem;font-weight:600}.nl-input{flex:1 1;min-width:0;border:none;background:transparent;font-size:var(--fs-md);padding:9px 4px;color:var(--ink);outline:none}.nl-input::placeholder{color:var(--ink-3)}.nl-input:focus-visible{outline:none}.nl-input:disabled{color:var(--ink-2)}.nl-send{flex:none;height:42px;padding:0 18px;border-radius:var(--r-md);background:var(--blue);color:#fff;border:none;font-weight:var(--w-semibold);font-size:15px;white-space:nowrap}.nl-send:hover:not(:disabled){background:var(--blue-ink)}.nl-send:disabled{background:var(--surface-3);color:#6a7090}.nl-send.ghost{background:transparent;color:var(--blue);border:1px solid var(--blue-line)}.nl-send.vdone{background:var(--ok)}.nl-send.vdone:disabled{background:var(--surface-3);color:#6a7090}.nl-live{flex:1 1;min-width:0;min-height:42px;display:flex;align-items:center;flex-wrap:wrap;gap:0 6px;padding:8px 4px;font-size:var(--fs-md);line-height:var(--lh-snug);color:var(--ink)}.nl-live .interim,.nl-live-empty{color:var(--ink-3)}.nl-foot{display:flex;flex-direction:column;gap:10px;margin-top:10px}.nl-status{display:flex;align-items:flex-start;gap:var(--sp-2);margin:0;min-height:21px;font-size:13.5px;line-height:var(--lh-snug);color:var(--ink-2)}.nl-status .dot{position:relative;flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--blue)}.help-options{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.quick-btn{background:var(--surface);border:1px solid var(--amber-line);color:var(--amber);border-radius:var(--r-pill);padding:6px 14px;font-size:var(--fs-sm);font-weight:var(--w-medium)}.quick-btn:hover:not(:disabled){background:var(--amber-soft)}.quick-btn:disabled{opacity:.55}.p-listening .nl-form,.p-requesting .nl-form{border-color:var(--bad-line);box-shadow:0 0 0 3px var(--bad-soft)}.p-listening .nl-status .dot,.p-requesting .nl-status .dot{background:var(--bad)}.p-listening .nl-status .dot:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--bad);opacity:.3;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.12}50%{opacity:.45}}.p-finishing .nl-status .dot{background:var(--ok)}.p-interrupted .nl-form{border-style:dashed;border-color:var(--amber-mid)}.p-interrupted .nl-status .dot{background:var(--amber-mid)}.p-error .nl-status,.p-voice-error .nl-status{color:var(--bad)}.p-error .nl-status .dot,.p-voice-error .nl-status .dot{background:var(--bad)}.p-processing .nl-status .dot{background:var(--amber-mid);animation:think 1.4s ease-in-out infinite}.p-speaking .presence{background:var(--amber-soft);color:var(--amber)}.p-speaking .nl-status .dot{background:var(--amber-mid)}.p-recovering .nl-status{color:var(--amber)}.p-recovering .nl-status .dot{background:var(--amber-mid)}@keyframes think{0%,to{opacity:.3}50%{opacity:1}}.drawer-backdrop{position:fixed;inset:0;background:rgba(27,31,59,.28);z-index:40}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(460px,100vw);background:var(--surface);z-index:41;padding:var(--sp-6);overflow:auto;border-left:1px solid var(--line-2);box-shadow:-16px 0 40px -24px rgba(27,31,59,.35)}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.drawer-head h2{font-size:var(--fs-lg);margin:0}.drawer-h3{font-size:var(--fs-base);margin:var(--sp-6) 0 4px}.kv{display:grid;grid-template-columns:1fr auto;grid-gap:8px var(--sp-3);gap:8px var(--sp-3);font-size:15px;margin:var(--sp-4) 0}.kv dt{color:var(--ink-2)}.kv dd{margin:0;font-weight:var(--w-semibold)}.plain{padding-left:18px;margin:6px 0;font-size:15px}.transcript{list-style:none;padding:0;margin:var(--sp-4) 0 0;gap:var(--sp-3)}.transcript,.transcript li{display:flex;flex-direction:column}.transcript li{gap:2px;padding-left:var(--sp-3);border-left:2px solid var(--line-2);font-size:15px;line-height:var(--lh)}.transcript li.tutor{border-color:var(--amber-mid);color:var(--ink)}.transcript li.student{border-color:var(--blue-line);color:var(--blue-ink)}.transcript .who{font-size:var(--fs-xs);font-weight:var(--w-semibold);color:var(--ink-3)}@media (max-width:960px){.workspace{grid-template-columns:minmax(0,1fr);gap:var(--sp-4);padding:var(--sp-4)}.tutor-panel{position:static;height:auto;min-height:0}.work-panel{min-height:0}.thread{max-height:min(56vh,520px)}.rail{gap:var(--sp-4);padding:10px var(--sp-4)}.stop{padding:0 var(--sp-3)}.stop-text small{display:none}}@media (max-width:720px){.rail{grid-template-columns:1fr auto;row-gap:var(--sp-2)}.rail-stops{grid-column:1/-1;grid-row:2;justify-self:start}.stop:not(.now) .stop-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rail-link .wide-label{display:none}}@media (max-width:560px){:root{--bar-h:100px}.workspace{padding:var(--sp-2) var(--sp-2) var(--sp-6)}.nb-section{padding:0 var(--sp-4)}.panel-head{padding-left:var(--sp-4);padding-right:var(--sp-3)}.nb-grid{grid-template-columns:26px minmax(0,1fr)}.past-summary{padding:12px var(--sp-4)}.result{margin:var(--sp-4) var(--sp-4) 0;padding:var(--sp-5)}.thread{padding:var(--sp-4)}.nextline{padding:var(--sp-3) var(--sp-3) var(--sp-4)}.nl-send{padding:0 14px}.presence,.vbtn{width:40px;height:40px}.annotation .tutor-ink{font-size:18px}.rail-brand span{display:none}}@media (max-width:440px){.rail-actions .rail-link{display:none}.rail-left{gap:var(--sp-3)}.rail-home{padding:6px 10px}}@media (max-width:360px){.rail{padding:8px var(--sp-3)}.rail-link{padding:6px}.nl-form{gap:4px;padding:4px}.nl-send{padding:0 12px}.msg.student{max-width:92%}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.home{min-height:100vh;display:flex;flex-direction:column}.home-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);max-width:1180px;width:100%;margin:0 auto;padding:var(--sp-5) var(--sp-6) 0}.home-brand{font-size:19px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}.home-main{flex:1 1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(28px,6vh,64px) var(--sp-6) var(--sp-8)}.home-intro{max-width:640px;margin-bottom:clamp(28px,5vh,48px)}.home-intro h1{font-size:clamp(30px,2.6vw + 14px,42px);line-height:1.12;letter-spacing:-.022em;margin:0 0 14px}.home-intro p{font-size:var(--fs-md);color:var(--ink-2);margin:0;max-width:56ch}.lesson-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--sp-6);gap:var(--sp-6)}.lesson-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.card-figure{height:196px;display:grid;place-items:center;padding:var(--sp-4) var(--sp-5);background:var(--surface-2);border-bottom:1px solid var(--line)}.card-figure .fig{max-height:172px}.s-algebra .card-figure{background-color:var(--violet-soft)}.s-physics .card-figure{background-color:var(--sky-soft)}.s-geometry .card-figure{background-color:var(--coral-soft)}.s-algebra .card-subject{color:var(--amber)}.s-physics .card-subject{color:var(--sky)}.s-geometry .card-subject{color:var(--coral)}.lesson-card{transition:box-shadow .2s,transform .2s}.lesson-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.card-eq{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.card-eq .mathline:not(.lg){color:var(--blue);font-size:var(--math-md)}.card-body{display:flex;flex-direction:column;flex:1 1;padding:var(--sp-5) var(--sp-6) var(--sp-6)}.card-subject{margin:0 0 4px;font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--amber)}.card-body h2{font-size:var(--fs-xl);letter-spacing:-.012em;margin:0 0 8px}.card-goal{color:var(--ink-2);font-size:var(--fs-base);line-height:var(--lh)}.card-goal,.card-meta{margin:0 0 var(--sp-4)}.card-meta{display:flex;gap:var(--sp-6)}.card-meta div{display:flex;flex-direction:column}.card-meta dt{font-size:var(--fs-xs);color:var(--ink-3)}.card-meta dd{margin:0;font-size:var(--fs-sm);font-weight:var(--w-semibold)}.card-progress{margin:0 0 var(--sp-4);font-size:var(--fs-sm);color:var(--blue-ink);padding-left:10px;border-left:2px solid var(--blue-line)}.card-progress.done{color:var(--ok);border-color:var(--ok-line)}.card-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.home-foot{margin-top:clamp(32px,6vh,56px);padding-top:var(--sp-5);border-top:1px solid var(--line);max-width:760px}.home-foot p{margin:0 0 6px;font-size:var(--fs-sm);color:var(--ink-3)}.home-foot .welcome-capability{color:var(--ink-2)}@media (max-width:1000px){.lesson-cards{grid-template-columns:minmax(0,1fr);max-width:620px}.card-figure{height:180px}}@media (max-width:560px){.home-bar,.home-main{padding-left:var(--sp-4);padding-right:var(--sp-4)}.card-body{padding:var(--sp-4) var(--sp-5) var(--sp-5)}}.fig{display:block;width:100%;height:auto;max-width:380px;margin:0 auto;overflow:visible}.fig-shape{fill:rgba(79,91,234,.06);stroke:var(--blue);stroke-width:2;stroke-linejoin:round}.fig-arc{stroke:var(--blue);stroke-width:1.5}.fig-arc.unknown{stroke:var(--amber-mid);stroke-width:2.2}.fig-tick{stroke:var(--blue);stroke-width:1.6}.fig-label{font-family:KaTeX_Main,Times New Roman,serif;font-size:17px;fill:var(--ink)}.fig-label.unknown{fill:var(--amber);font-weight:700;font-size:19px}.fig-force{stroke:var(--blue);stroke-width:3;stroke-linecap:round}.fig-force.unknown{stroke:var(--amber-mid);stroke-dasharray:5 5}.fig-head{fill:var(--blue)}.fig-head.unknown{fill:var(--amber-mid)}.fig-floor{stroke:var(--line-2);stroke-width:2}.fig-motion line{stroke:var(--ink-3);stroke-width:1.6}.fig-note{font-size:13px;fill:var(--ink-3)}.fig-handle{fill:var(--surface);stroke:var(--amber-mid);stroke-width:2.5;cursor:-webkit-grab;cursor:grab;touch-action:none}.fig-handle:focus-visible{outline:none;stroke:var(--focus);stroke-width:3.5}.fig-corner.tappable{cursor:pointer}.fig-corner.tappable:focus-visible{outline:none}.fig-corner.tappable:focus-visible .fig-label{fill:var(--focus);text-decoration:underline}.fig-wedge{fill:rgba(159,124,240,.28);stroke:none;animation:wedge-in .35s ease-out both}.fig-corner.lit .fig-arc{stroke:var(--amber);stroke-width:2.6}.fig-corner.lit .fig-label{fill:var(--amber);font-weight:700}@keyframes wedge-in{0%{opacity:0}to{opacity:1}}.sum-strip{display:flex;align-items:center;gap:10px;margin:6px auto 4px;max-width:360px}.sum-bar{position:relative;flex:1 1;height:26px;border-radius:8px;background:var(--surface-3);border:1px solid var(--line-2);overflow:hidden}.sum-part{position:absolute;top:0;bottom:0;display:grid;place-items:center;font-size:12.5px;font-weight:600;color:#fff;animation:grow-in .45s ease-out both;transform-origin:left}.sum-part.k0{background:var(--blue)}.sum-part.k1{background:var(--amber-mid);border-left:2px solid #fff;animation-delay:.15s}.sum-part.rest{background:repeating-linear-gradient(135deg,var(--amber-soft) 0 6px,#fff 6px 12px);color:var(--amber);font-size:15px;border-left:2px dashed var(--amber-mid);animation:none}.sum-total{font-family:KaTeX_Main,Times New Roman,serif;font-size:16px;color:var(--ink-2)}@keyframes grow-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.fig-push.tappable{cursor:pointer}.fig-hit{fill:transparent;stroke:var(--amber-line);stroke-width:1.5;stroke-dasharray:4 4}.fig-push.tappable .fig-force{animation:arrow-pulse 1.6s ease-in-out infinite}.fig-push.tappable:focus-visible .fig-hit,.fig-push.tappable:hover .fig-hit{fill:var(--amber-soft);stroke:var(--amber-mid)}.fig-push.tappable:focus-visible{outline:none}.fig-push.glow .fig-force{stroke:var(--amber)}@keyframes arrow-pulse{0%,to{stroke-width:3}50%{stroke-width:5}}.fig-box{transition:transform .7s cubic-bezier(.22,1,.36,1)}.fig-net line{stroke:var(--amber-mid);stroke-width:2.5;stroke-dasharray:5 4}.tap-hint{margin:2px 0 0;text-align:center;font-size:14px;font-weight:600;color:var(--amber)}.force-wrap.cue-arrows .fig,.force-wrap.cue-tug .fig{animation:settle .35s ease-out both}.board-aids{padding:var(--sp-4) var(--sp-6) var(--sp-2);display:grid;grid-gap:var(--sp-4);gap:var(--sp-4)}.board-balance{margin:0;padding:var(--sp-3) var(--sp-4);background:rgba(255,255,255,.92);border:1px solid var(--amber-line);border-radius:var(--r-md);animation:settle .35s ease-out both}.board-balance .fig{max-width:420px;display:block;margin:0 auto}.board-balance figcaption{text-align:center;font-size:14px;color:var(--ink-2);margin-top:4px}.bal-beam{stroke:var(--ink-2);stroke-width:4;stroke-linecap:round}.bal-pivot{fill:var(--surface);stroke:var(--ink-2);stroke-width:2}.bal-stand{fill:var(--surface-3);stroke:var(--line-2)}.bal-string{stroke:var(--line-2);stroke-width:1.5}.bal-pan{stroke:var(--ink-2);stroke-width:3;stroke-linecap:round}.bal-bag rect{fill:var(--blue-soft);stroke:var(--blue);stroke-width:1.6}.bal-bag text{font-family:KaTeX_Main,Times New Roman,serif;font-style:italic;font-size:16px;fill:var(--blue-ink)}.bal-block{fill:var(--surface-3);stroke:var(--ink-3);stroke-width:1}.bal-block.marked{fill:var(--amber-soft);stroke:var(--amber);stroke-width:1.6;animation:block-glow 1.8s ease-in-out 2}@keyframes block-glow{50%{fill:var(--amber-line)}}.move-choices{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.move-q{flex-basis:100%;font-size:14px;font-weight:600;color:var(--ink-2)}.move-chip{background:var(--surface);border:1.5px solid var(--blue-line);color:var(--blue-ink);border-radius:999px;padding:7px 14px;font-size:14.5px;font-weight:500;cursor:pointer;transition:background .15s,transform .15s}.move-chip:hover:not(:disabled){background:var(--blue-soft);transform:translateY(-1px)}.move-chip:disabled{opacity:.55;cursor:default}.serif{font-family:KaTeX_Main,Times New Roman,serif;font-size:19px}.sp{padding:var(--sp-5) var(--sp-6) 0}.sp-step{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--sp-3);margin:0 0 var(--sp-3);font-size:15px;font-weight:var(--w-semibold)}.sp-step span{font-weight:var(--w-regular);font-size:var(--fs-sm);color:var(--ink-2)}.sp-prompt{margin:0 0 var(--sp-4);font-size:var(--fs-lg);line-height:1.45;max-width:60ch}.sp-prompt.small{font-size:var(--fs-base)}.sp-figure{margin:0 0 var(--sp-4);padding:var(--sp-4) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}.sp-figure.small .fig{max-width:300px}.sp-empty{color:var(--ink-3);font-size:var(--fs-sm)}.sp-answers,.sp-empty{margin:0 0 var(--sp-4)}.sp-answers{list-style:none;padding:0;border-top:1px solid var(--line)}.sp-answer{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:baseline;grid-gap:var(--sp-2);gap:var(--sp-2);padding:10px 0;border-bottom:1px solid var(--line);animation:settle .3s ease-out both}.sp-mark{font-weight:var(--w-semibold)}.sp-text{color:var(--blue-ink);font-size:var(--fs-md);overflow-wrap:anywhere}.sp-verdict{font-size:13.5px;color:var(--ink-3)}.sp-answer.ok .sp-mark,.sp-answer.ok .sp-verdict{color:var(--ok)}.sp-answer.part .sp-mark,.sp-answer.part .sp-verdict{color:var(--amber)}.sp-answer.bad .sp-mark,.sp-answer.bad .sp-verdict{color:var(--bad)}.sp-past{border-bottom:1px solid var(--line);margin:0 calc(-1 * var(--sp-6))}.sp-past:first-child{margin-top:calc(-1 * var(--sp-5))}.sp-past>summary{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);padding:14px var(--sp-6);cursor:pointer;color:var(--ink-2)}.sp-past>summary::-webkit-details-marker{display:none}.sp-past>summary:hover{background:var(--surface-2)}.sp-past-answer{font-family:KaTeX_Main,Times New Roman,serif;font-size:18px;color:var(--ink)}.sp-past .evidence-tag{margin-left:auto}.sp-past-body{padding:0 var(--sp-6) var(--sp-4)}.sp+.sp-past{margin-top:0}.sp-current{padding-bottom:var(--sp-2)}.sp-past~.sp-current{padding-top:var(--sp-5)}.sp-figure .fig{max-height:250px}.sp-explore{margin:var(--sp-2) 0 var(--sp-5);border:1px solid var(--line);border-radius:var(--r-md)}.sp-explore>summary{padding:11px var(--sp-4);cursor:pointer;font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--ink-2)}.sp-explore[open]>summary{border-bottom:1px solid var(--line)}.sp-explore-note{margin:0;padding:0 var(--sp-4) var(--sp-4);font-size:var(--fs-sm);color:var(--ink-3)}.explore{padding:var(--sp-4)}.explore-sum{margin:var(--sp-3) 0 0;text-align:center;color:var(--ink-2);font-size:var(--fs-sm)}.explore-sliders{display:grid;grid-gap:var(--sp-2);gap:var(--sp-2);margin-top:var(--sp-3)}.explore-sliders label{display:grid;grid-template-columns:84px minmax(0,1fr) 48px;align-items:center;grid-gap:var(--sp-3);gap:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2)}.explore-sliders input{accent-color:var(--blue);width:100%}.explore-sliders output{font-family:KaTeX_Main,Times New Roman,serif;font-size:17px;color:var(--ink);text-align:right}.sp .result{margin:var(--sp-4) 0 var(--sp-5)}.result-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.welcome-capability{font-size:var(--fs-sm)!important;color:var(--ink-2)!important;margin:var(--sp-3) 0 0;padding-left:12px;border-left:2px solid var(--line-2)}a.rail-brand{text-decoration:none;border-radius:var(--r-sm)}a.rail-brand:hover b{color:var(--blue-ink)}a.menu-item{text-decoration:none}@media (max-width:560px){.sp{padding:var(--sp-4) var(--sp-4) 0}.sp-past{margin:0 calc(-1 * var(--sp-4))}.sp-past-body,.sp-past>summary{padding-left:var(--sp-4);padding-right:var(--sp-4)}.sp-prompt{font-size:var(--fs-md)}}.ev{min-height:100vh;flex-direction:column;background:var(--bg);color:var(--ink)}.ev,.ev-bar{display:flex}.ev-bar{flex-wrap:wrap;align-items:center;gap:var(--sp-3) var(--sp-6);padding:14px var(--sp-6);background:var(--surface);border-bottom:1px solid var(--line)}.ev-brand{display:flex;align-items:baseline;gap:var(--sp-3)}.ev-brand a{color:inherit;text-decoration:none}.ev-brand a:hover b{color:var(--blue-ink)}.ev-brand b{font-size:18px;font-weight:700;letter-spacing:-.01em}.ev-brand span{font-size:var(--fs-sm);color:var(--ink-3)}.ev-sessions{display:flex;gap:2px;padding:3px;background:var(--surface-3);border-radius:var(--r-md)}.ev-session{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;background:none;border:none;border-radius:8px;padding:6px 14px;font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--ink-2)}.ev-session small{font-size:11.5px;font-weight:var(--w-regular);color:var(--ink-3)}.ev-session[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(27,31,59,.08)}.ev-nav{margin-left:auto;display:flex;gap:2px}.ev-back{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink-2);text-decoration:none;padding:7px 10px;border-radius:var(--r-sm)}.ev-back:hover{background:var(--surface-3);color:var(--ink)}.ev-tabs{display:flex;gap:var(--sp-5);padding:0 var(--sp-6);background:var(--surface);border-bottom:1px solid var(--line-2);overflow-x:auto}.ev-tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:12px 0 11px;font-size:15px;font-weight:var(--w-medium);color:var(--ink-3);white-space:nowrap}.ev-tabs button:hover{color:var(--ink)}.ev-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.ev-main{flex:1 1;width:100%;max-width:1240px;margin:0 auto;padding:var(--sp-7) var(--sp-6) var(--sp-8)}.ev-main h1{font-size:clamp(26px,1.4vw + 18px,34px);letter-spacing:-.018em;line-height:1.15;margin:0 0 10px}.ev-main h2{font-size:var(--fs-md);margin:0 0 var(--sp-4)}.ev-empty{padding:var(--sp-6);border:1px dashed var(--line-2);border-radius:var(--r-lg);color:var(--ink-2);background:var(--surface)}.ev-empty p{margin:0 0 6px;max-width:64ch}.ev-link{background:none;border:none;padding:0;color:var(--blue);font-size:var(--fs-sm);font-weight:var(--w-medium);text-decoration:underline;text-underline-offset:3px}.muted{color:var(--ink-3)}.mono,.stage-v .mono{font-family:var(--font-mono);font-size:12.5px}.ok{color:var(--ok)}.bad,.ok{font-weight:var(--w-semibold)}.bad{color:var(--bad)}.hscroll{overflow-x:auto;max-width:100%}.ov-lesson{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,400px);grid-gap:var(--sp-2) var(--sp-8);gap:var(--sp-2) var(--sp-8);padding-bottom:var(--sp-7);margin-bottom:var(--sp-7);border-bottom:1px solid var(--line)}.ov-subject{margin:0 0 6px;font-size:var(--fs-sm);font-weight:var(--w-semibold);color:var(--amber)}.ov-lesson h1,.ov-subject{grid-column:1}.ov-objective{grid-column:1;margin:0;font-size:var(--fs-md);color:var(--ink-2);max-width:60ch}.ov-facts{grid-column:2;grid-row:1/span 3;margin:0;display:flex;flex-direction:column;gap:var(--sp-4)}.ov-facts dt{font-size:var(--fs-xs);color:var(--ink-3)}.ov-facts dd{margin:2px 0 0;font-size:var(--fs-sm);line-height:var(--lh-snug)}.ov-block{margin-bottom:var(--sp-8)}.ov-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4)}.ov-stops{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--line-2)}.ov-stop{padding:var(--sp-4) var(--sp-5) 0 0;position:relative;display:flex;flex-direction:column;gap:2px}.ov-stop:before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--line-2)}.ov-stop.done:before{background:var(--ok);border-color:var(--ok)}.ov-stop.now:before{background:var(--blue);border-color:var(--blue)}.ov-stop-label{font-weight:var(--w-semibold);font-size:15px}.ov-stop-state{font-size:var(--fs-sm);color:var(--ink-2)}.ov-stop.done .ov-stop-state{color:var(--ok)}.ov-stop-detail{font-size:13px;color:var(--ink-3);line-height:var(--lh-snug);max-width:34ch}.ov-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:0;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ov-figure{padding:var(--sp-5) var(--sp-5) var(--sp-5) 0}.ov-figure+.ov-figure{padding-left:var(--sp-5);border-left:1px solid var(--line)}.ov-figure-label{margin:0;font-size:var(--fs-sm);color:var(--ink-2)}.ov-figure-value{margin:4px 0 8px;font-size:34px;font-weight:var(--w-semibold);letter-spacing:-.02em;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ov-figure-note{margin:8px 0 0;font-size:13px;color:var(--ink-3);line-height:var(--lh-snug)}.splitbar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--surface-3);max-width:180px}.splitbar i{display:block;height:100%}.splitbar i.ok{background:var(--ok)}.splitbar i.part{background:var(--amber-mid)}.splitbar i.bad{background:var(--bad)}.ov-recent{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.tl{max-width:880px}.tl-intro{margin:0 0 var(--sp-6);color:var(--ink-2);max-width:70ch}.tl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sp-4)}.tl-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-6);scroll-margin:120px}.tl-item[aria-current=true]{border-color:var(--line-2);box-shadow:inset 3px 0 0 var(--amber-mid)}.tl-item.compact{padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column}.tl-item.compact .ev-link{margin-top:auto;align-self:flex-start;padding-top:var(--sp-3)}.tl-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px var(--sp-3);margin-bottom:var(--sp-3)}.tl-n{font-weight:var(--w-semibold);font-size:15px}.tl-time{font-size:13px;color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tl-tag{font-size:12.5px;color:var(--ink-2);padding-left:10px;border-left:1px solid var(--line-2)}.tl-tag.model{color:var(--blue-ink)}.tl-tag.warn{color:var(--bad)}.tl-rows{display:grid;grid-template-columns:104px minmax(0,1fr);grid-gap:10px var(--sp-4);gap:10px var(--sp-4);margin:0}.tl-item.compact .tl-rows{grid-template-columns:minmax(0,1fr);gap:2px}.tl-item.compact .tl-rows dt{margin-top:8px}.tl-rows dt{font-size:13px;color:var(--ink-3);padding-top:2px}.tl-rows dd{margin:0;font-size:15px;line-height:var(--lh);overflow-wrap:anywhere}.tl-by{display:block;font-size:13px;color:var(--ink-3);margin-top:2px}.tl-rule{font-family:var(--font-mono);font-size:12px}.tl-student{color:var(--blue-ink)}.tl-tutor{color:var(--ink);padding-left:12px;border-left:2px solid var(--amber-mid)}.tl-check{display:flex;gap:10px;align-items:baseline}.tl-check b{font-weight:var(--w-semibold)}.tl-check.ok b{color:var(--ok)}.tl-check.part b{color:var(--amber)}.tl-check.bad b{color:var(--bad)}.tl-check-text{display:block;color:var(--ink-2);font-size:14px}.tl-check i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--line-2);transform:translateY(-1px)}.tl-check.ok i{background:var(--ok)}.tl-check.part i{background:var(--amber-mid)}.tl-check.bad i{background:var(--bad)}.tl-details-btn{margin-top:var(--sp-4);background:none;border:1px solid var(--line-2);border-radius:var(--r-pill);padding:5px 14px;font-size:13.5px;font-weight:var(--w-medium);color:var(--ink-2)}.tl-details-btn:hover{background:var(--surface-3);color:var(--ink)}.tl-details{margin-top:var(--sp-4);border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4)}.tl-evidence{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.stages{list-style:none;margin:0;padding:0}.stage{display:grid;grid-template-columns:128px minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4);padding:11px 0;border-bottom:1px solid var(--line)}.stage-k{font-size:13px;font-weight:var(--w-semibold);color:var(--ink-3);display:flex;gap:var(--sp-2);align-items:flex-start}.stage-k i{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--line-2)}.stage.s-ok .stage-k i{background:var(--ok)}.stage.s-bad .stage-k i{background:var(--bad)}.stage.s-hyp .stage-k i{background:transparent;border:1.5px dashed var(--amber-mid);width:9px;height:9px}.stage.s-key .stage-k i{background:var(--amber-mid)}.stage-v{font-size:var(--fs-sm);line-height:var(--lh);min-width:0;overflow-wrap:anywhere}.sub{font-size:13px;color:var(--ink-2);margin-top:4px;line-height:var(--lh-snug)}.sub-3{color:var(--ink-3)}.sub-ink{color:var(--ink)}.fact{font-weight:var(--w-semibold)}.flag{font-size:12px;color:var(--amber);padding-left:8px;border-left:1px solid var(--amber-line);margin-right:6px}.hyp{border-left:2px dashed var(--amber-mid);padding:4px 0 4px 12px}.hyp .label{font-weight:var(--w-semibold)}.hyp .strength{font-family:var(--font-mono);font-size:12px;color:var(--amber)}.hyp .alts{font-size:13px;color:var(--ink-2);margin:4px 0 0}.cands{display:flex;flex-direction:column;gap:4px}.cand{display:grid;grid-template-columns:16px minmax(0,1fr) auto auto;grid-gap:var(--sp-2);gap:var(--sp-2);align-items:center;font-family:var(--font-mono);font-size:12px;padding:5px 10px;border:1px solid var(--line);border-radius:var(--r-sm);overflow-wrap:anywhere}.cand.chosen{border-color:var(--amber-line);background:var(--amber-soft);font-weight:var(--w-semibold)}.act{font-family:var(--font-mono);font-size:11.5px;color:var(--amber)}.perms{display:flex;gap:4px var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-2)}.perm{font-size:12.5px}.perm.blocked{color:var(--bad)}.perm.allowed{color:var(--ok)}.delta{display:grid;grid-template-columns:auto auto auto;grid-gap:2px var(--sp-3);gap:2px var(--sp-3);font-family:var(--font-mono);font-size:12px;justify-content:start}.etabs{display:flex;border-bottom:1px solid var(--line)}.etabs button{flex:1 1;background:none;padding:10px 6px;font-size:13px;font-weight:var(--w-medium);color:var(--ink-3);border:none;border-bottom:2px solid transparent;white-space:nowrap}.etabs button[aria-selected=true]{color:var(--ink);border-color:var(--ink)}.ebody{padding:var(--sp-4);font-size:13.5px}.ebody h4{font-size:13px;color:var(--ink-3);margin:var(--sp-5) 0 6px;font-weight:var(--w-semibold)}.ebody h4:first-child{margin-top:0}.kvt{width:100%;border-collapse:collapse;font-size:13px}.kvt td{padding:6px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.kvt td:first-child{color:var(--ink-2);width:40%}pre.json{font-family:var(--font-mono);font-size:12px;line-height:1.5;padding:var(--sp-3);overflow:auto;max-height:520px;margin:0;white-space:pre-wrap;word-break:break-word}.call,pre.json{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)}.call{padding:10px 12px;margin-bottom:var(--sp-2)}.call-h{gap:var(--sp-2);font-family:var(--font-mono);font-size:12px}.call-h,.lab-intro{display:flex;justify-content:space-between;flex-wrap:wrap}.lab-intro{gap:var(--sp-5);align-items:flex-start;margin-bottom:var(--sp-7)}.lab-intro>div{max-width:72ch}.lab-intro p{margin:0 0 10px;color:var(--ink-2);line-height:var(--lh)}.lab-honest{font-size:var(--fs-sm);padding-left:12px;border-left:2px solid var(--line-2)}.runbtn{white-space:nowrap}.lab-suites{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:2px solid var(--ink);margin-bottom:var(--sp-8)}.suite{padding:var(--sp-4) var(--sp-4) var(--sp-5) 0;display:flex;flex-direction:column;min-width:0}.suite+.suite{padding-left:var(--sp-4);border-left:1px solid var(--line)}.suite h2{font-size:15px;margin:0 0 4px}.suite header p{margin:0;font-size:13px;color:var(--ink-3);line-height:var(--lh-snug);min-height:5.4em}.suite-score{margin:var(--sp-4) 0 var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2)}.suite-score b{display:block;font-size:34px;color:var(--ink);letter-spacing:-.02em;line-height:1.05;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.suite-facts{margin:var(--sp-4) 0 0;display:grid;grid-gap:6px;gap:6px}.suite-facts div{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:13px;border-bottom:1px solid var(--line);padding-bottom:5px}.suite-facts dt{color:var(--ink-3)}.suite-facts dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.suite.notrun .suite-notrun{margin:var(--sp-4) 0 0;font-size:var(--fs-sm);color:var(--ink-3);line-height:var(--lh-snug)}.dots{display:flex;flex-wrap:wrap;gap:4px}.dot{width:11px;height:11px;padding:0;border-radius:2px;border:1.5px solid var(--ok);background:var(--ok)}.dot.fail{background:transparent;border-color:var(--bad)}.dot:hover{outline:2px solid var(--amber-mid);outline-offset:1px}.lab-detail>h2{margin-bottom:4px}.lab-sub{margin-top:var(--sp-7)!important}.matrix-wrap{display:grid;grid-template-columns:minmax(0,1fr) 440px;grid-gap:var(--sp-5);gap:var(--sp-5);margin-top:var(--sp-4);align-items:start}.matrix{border-top:1px solid var(--line-2)}.mx-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 82px 82px;align-items:stretch;border-bottom:1px solid var(--line)}.mx-row.sub{grid-template-columns:minmax(0,1fr) 96px}.mx-row.sub,.mx-subject{max-width:760px}.mx-row.head{font-size:12.5px;font-weight:var(--w-semibold);color:var(--ink-3)}.mx-row .sc{padding:9px 12px 9px 0;font-size:14px;line-height:var(--lh-snug);overflow-wrap:anywhere}.mx-row .sc small{display:block;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.cell{display:grid;place-items:center;border:none;background:none;font-size:13px;font-weight:var(--w-medium);padding:8px 4px}.cell.pass{color:var(--ok)}.cell.fail{color:var(--bad);font-weight:var(--w-semibold);background:var(--bad-soft)}.cell.na{color:var(--ink-3);font-weight:var(--w-regular)}.cell[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--amber-mid)}.inspector{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);position:-webkit-sticky;position:sticky;top:16px;max-height:calc(100vh - 40px);overflow:auto}.inspector .ev-empty{border:none}.inspector .ih{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.inspector .ih h3{margin:0;font-size:15px;line-height:var(--lh-snug)}.inspector .ih p{margin:6px 0 0;font-size:13px;color:var(--ink-2)}.inspector-sub{margin:var(--sp-4) var(--sp-5) 4px;font-size:13px;color:var(--ink-3)}.asr{padding:9px var(--sp-5);border-bottom:1px solid var(--line);font-size:13.5px}.asr .cat{font-size:12px;color:var(--ink-3);margin-left:8px}.asr .det{font-size:12.5px;color:var(--ink-2);margin-top:3px;word-break:break-word}.asr.fail{background:var(--bad-soft)}.tturn{padding:9px var(--sp-5);border-bottom:1px solid var(--line);font-size:13.5px}.tturn.hot{background:var(--bad-soft);box-shadow:inset 3px 0 0 var(--bad)}.tturn .ev-in{color:var(--blue-ink)}.tturn .mono{color:var(--ink-3)}.tturn .ut{color:var(--ink-2);margin-top:2px;line-height:var(--lh-snug)}.arch-intro{max-width:64ch;margin-bottom:var(--sp-6)}.arch-intro p{margin:0;color:var(--ink-2);font-size:var(--fs-md)}.pipeline{list-style:none;margin:0 0 var(--sp-8);padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:var(--sp-5);gap:var(--sp-5);counter-reset:none}.pipe{position:relative;padding:var(--sp-4) 0 0;border-top:2px solid var(--ink)}.pipe.key{border-top-color:var(--ok)}.pipe:not(:last-child):after{content:"";position:absolute;top:-7px;right:calc(-1 * var(--sp-5) + 2px);width:0;height:0;border-left:8px solid var(--ink);border-top:6px solid transparent;border-bottom:6px solid transparent}.pipe.key:not(:last-child):after{border-left-color:var(--ok)}.pipe-n{font-size:13px;color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pipe h2{font-size:var(--fs-md);margin:2px 0 6px!important}.pipe p{margin:0 0 8px;font-size:var(--fs-sm);color:var(--ink-2);line-height:var(--lh-snug)}.pipe .pipe-who{color:var(--ink);font-size:13px;padding-left:10px;border-left:2px solid var(--line-2)}.pipe.key .pipe-who{border-left-color:var(--ok-line)}.arch-block{margin-bottom:var(--sp-8)}.arch-verifiers{margin:0 0 var(--sp-3);border-top:1px solid var(--line)}.arch-verifiers div{display:grid;grid-template-columns:220px minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4);padding:10px 0;border-bottom:1px solid var(--line)}.arch-verifiers dt{font-weight:var(--w-semibold);font-size:15px}.arch-verifiers dd{margin:0;color:var(--ink-2);font-size:15px}.safety{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--sp-6) var(--sp-8);gap:var(--sp-6) var(--sp-8)}.safety h3{font-size:15px;margin:0 0 6px}.safety p{color:var(--ink-2);line-height:var(--lh)}.config,.safety p{margin:0;font-size:var(--fs-sm)}.config{display:grid;grid-template-columns:140px minmax(0,1fr);grid-gap:6px var(--sp-4);gap:6px var(--sp-4)}.config dt{color:var(--ink-3)}.config dd{margin:0;overflow-wrap:anywhere}.ref{border-top:1px solid var(--line)}.ref:last-child{border-bottom:1px solid var(--line)}.ref>summary{padding:12px 0;cursor:pointer;font-weight:var(--w-semibold);font-size:15px}.ref>p,.ref>ul{margin:0 0 var(--sp-4);color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh);max-width:80ch}.ref>.hscroll{margin-bottom:var(--sp-4)}table.t{width:100%;min-width:560px;border-collapse:collapse;font-size:13.5px}table.t th{text-align:left;font-size:12.5px;font-weight:var(--w-semibold);color:var(--ink-3);padding:7px 8px 7px 0;border-bottom:1px solid var(--line-2)}table.t td{padding:8px 8px 8px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:var(--lh-snug)}@media (max-width:1100px){.lab-suites{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--sp-5)}.suite:nth-child(4){padding-left:0;border-left:none}.matrix-wrap{grid-template-columns:minmax(0,1fr)}.inspector{position:static;max-height:none}.pipeline{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.pipe:not(:last-child):after{display:none}.ov-recent{grid-template-columns:minmax(0,1fr)}}@media (max-width:820px){.ev-bar,.ev-tabs{padding-left:var(--sp-4);padding-right:var(--sp-4)}.ev-main{padding:var(--sp-5) var(--sp-4) var(--sp-8)}.ev-nav{margin-left:0}.ov-lesson{grid-template-columns:minmax(0,1fr)}.ov-facts{grid-column:1;grid-row:auto;margin-top:var(--sp-4)}.ov-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-figure:nth-child(3){padding-left:0;border-left:none}.ov-figure:nth-child(n+3){border-top:1px solid var(--line)}.ov-stops{grid-template-columns:minmax(0,1fr);border-top:none;border-left:2px solid var(--line-2);padding-left:var(--sp-4);gap:var(--sp-4)}.ov-stop{padding-top:0}.ov-stop:before{top:5px;left:calc(-1 * var(--sp-4) - 6px)}.lab-suites{grid-template-columns:minmax(0,1fr);border-top:none}.suite,.suite+.suite{padding:var(--sp-4) 0;border-left:none;border-top:1px solid var(--line-2)}.suite header p{min-height:0}.tl-rows{grid-template-columns:minmax(0,1fr);gap:2px}.tl-rows dt{margin-top:10px}.tl-item{padding:var(--sp-4)}.stage{gap:4px}.arch-verifiers div,.safety,.stage{grid-template-columns:minmax(0,1fr)}.arch-verifiers div{gap:2px}.mx-row{grid-template-columns:minmax(0,1fr) 64px 64px 64px}}.signin{position:relative;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4);overflow:hidden;background:radial-gradient(1200px 600px at 15% -10%,var(--blue-soft),transparent 60%),radial-gradient(900px 520px at 110% 110%,var(--amber-soft),transparent 60%),var(--bg)}.signin-grid{position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse 70% 60% at 50% 45%,#000 30%,transparent 78%);opacity:.9;pointer-events:none}.signin-card{position:relative;width:100%;max-width:408px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:36px 32px 28px;box-shadow:0 1px 2px rgba(27,31,59,.05),0 24px 60px -28px rgba(53,62,160,.38);animation:signin-rise .52s cubic-bezier(.2,.7,.2,1) both}.signin-card[data-shake=a]{animation:signin-shake .38s cubic-bezier(.36,.07,.19,.97) both}.signin-card[data-shake=b]{animation:signin-shake-b .38s cubic-bezier(.36,.07,.19,.97) both}.signin-head{text-align:center;margin-bottom:var(--sp-6)}.signin-mark{display:inline-flex;margin-bottom:var(--sp-3);filter:drop-shadow(0 8px 16px rgba(79,91,234,.28));animation:signin-mark .7s cubic-bezier(.2,.7,.2,1) .12s both}.signin-head h1{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.025em;margin:0 0 4px;color:var(--ink)}.signin-tag{margin:0;color:var(--ink-2);font-size:var(--fs-md)}.signin-form{display:grid;grid-gap:var(--sp-4);gap:var(--sp-4)}.signin-field{display:grid;grid-gap:6px;gap:6px}.signin-field>span:first-child{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink-2)}.signin-field input,.signin-pass{width:100%;height:48px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface-2);transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}.signin-field input{padding:0 14px;font-size:var(--fs-base);color:var(--ink)}.signin-field input:hover,.signin-pass:hover{border-color:var(--blue-line)}.signin-field input:focus{outline:none;border-color:var(--blue);background:var(--surface);box-shadow:0 0 0 4px var(--blue-soft)}.signin-field input[aria-invalid=true],.signin-pass:has(input[aria-invalid=true]){border-color:var(--bad-line)}.signin-field input:disabled{opacity:.7}.signin-pass{display:flex;align-items:center;gap:4px;padding-right:4px}.signin-pass:focus-within{border-color:var(--blue);background:var(--surface);box-shadow:0 0 0 4px var(--blue-soft)}.signin-field .signin-pass input{flex:1 1;min-width:0;height:100%;border:none}.signin-field .signin-pass input,.signin-field .signin-pass input:focus{background:transparent;box-shadow:none}.signin-eye{flex:none;width:40px;height:40px;display:grid;place-items:center;border:none;background:transparent;border-radius:8px;color:var(--ink-3)}.signin-eye:hover{color:var(--blue-ink);background:var(--blue-soft)}.signin-error{min-height:1.4em;margin:-4px 0 0;font-size:var(--fs-sm);color:var(--bad)}.signin-error:empty{min-height:0;margin:0}.signin-submit{width:100%;height:50px;border-radius:12px;transition:background-color .14s ease,transform .12s ease,box-shadow .14s ease;box-shadow:0 10px 24px -14px rgba(79,91,234,.8)}.signin-submit:not(:disabled):hover{transform:translateY(-1px)}.signin-submit:not(:disabled):active{transform:translateY(0)}.signin-submit:disabled{opacity:.85}.signin-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:signin-spin .7s linear infinite}.signin-foot{margin:var(--sp-5) 0 0;text-align:center;font-size:var(--fs-xs);color:var(--ink-3)}@keyframes signin-rise{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes signin-mark{0%{opacity:0;transform:translateY(6px) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes signin-shake{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}@keyframes signin-shake-b{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}@keyframes signin-spin{to{transform:rotate(1turn)}}@media (max-width:480px){.signin{padding:var(--sp-4);align-items:start;padding-top:12vh}.signin-card{padding:28px 20px 22px;border-radius:16px}}@media (prefers-reduced-motion:reduce){.signin-card,.signin-card[data-shake],.signin-mark{animation:none}.signin-spinner{animation-duration:1.6s}.signin-submit:not(:disabled):hover{transform:none}}.home-signout{font-size:var(--fs-sm)}