@font-face{font-family:Trace Mono;src:local("IBM Plex Mono"),local("SFMono-Regular"),local("Menlo");font-display:swap}:root{color-scheme:light;--bg: #f4f7f6;--surface: #fbfdfc;--surface-2: #eef3f1;--surface-3: #e5edeb;--text: #182321;--text-2: #4d5d59;--text-3: #6f7e7a;--border: #cfdbd7;--border-strong: #a9bbb5;--accent: #087f6d;--accent-hover: #066b5c;--accent-soft: #d9eee8;--accent-ink: #064b42;--danger: #b33c35;--danger-soft: #f9e5e2;--warning: #8d5d05;--warning-soft: #f7edd3;--syntax-keyword: #693276;--syntax-boolean: #913f34;--syntax-string: #745300;--syntax-number: #185f7c;--syntax-operator: #52635e;--syntax-field: #066c5e;--syntax-function: #4e568f;--syntax-comment: #6b7975;--syntax-placeholder: #815506;--shadow: 0 18px 48px rgba(36, 67, 59, .1);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=dark]{color-scheme:dark;--bg: #111715;--surface: #161e1c;--surface-2: #1d2825;--surface-3: #26332f;--text: #e5eeeb;--text-2: #aebdb8;--text-3: #899a95;--border: #31413c;--border-strong: #4b5e58;--accent: #51b9a4;--accent-hover: #6ec8b6;--accent-soft: #193d35;--accent-ink: #a7e1d4;--danger: #ec8a82;--danger-soft: #462523;--warning: #e0b75d;--warning-soft: #40351c;--syntax-keyword: #d6a7df;--syntax-boolean: #efaa9a;--syntax-string: #e2bd72;--syntax-number: #86c2dc;--syntax-operator: #b8c6c1;--syntax-field: #75cdb9;--syntax-function: #b7bcea;--syntax-comment: #899a95;--syntax-placeholder: #e0b75d;--shadow: 0 18px 48px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,select,input{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button,a,input,select,summary{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{margin-bottom:10px;font-size:clamp(2rem,4vw,3.4rem);line-height:1.02;letter-spacing:-.045em}h2{margin-bottom:8px;letter-spacing:-.025em}h3{margin-bottom:8px;font-size:.94rem}p{color:var(--text-2);line-height:1.65}code,pre,kbd,.metric-value{font-family:Trace Mono,ui-monospace,monospace}.syntax-token{font:inherit}.syntax-keyword{color:var(--syntax-keyword);font-weight:750}.syntax-boolean{color:var(--syntax-boolean);font-weight:700}.syntax-string{color:var(--syntax-string)}.syntax-number{color:var(--syntax-number);font-weight:650}.syntax-operator{color:var(--syntax-operator);font-weight:700}.syntax-field{color:var(--syntax-field);font-weight:700}.syntax-function{color:var(--syntax-function);font-weight:700}.syntax-comment{color:var(--syntax-comment);font-style:italic}.syntax-placeholder{color:var(--syntax-placeholder);font-weight:700}.inline-pseudocode{display:inline;padding:.08em .3em;border:1px solid var(--border);border-radius:5px;background:var(--surface-3);color:var(--text);font-size:.88em;line-height:inherit;white-space:break-spaces;box-decoration-break:clone;-webkit-box-decoration-break:clone}kbd{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--text-2);font-size:.68rem}.app-shell{min-height:100dvh;display:grid;grid-template:64px 1fr / 224px minmax(0,1fr)}.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:9px 12px;border-radius:8px;background:var(--text);color:var(--bg);font-size:.78rem;font-weight:750;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.topbar{position:sticky;top:0;z-index:20;grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;color:var(--text);text-align:left}.brand-mark{display:grid;width:36px;height:36px;place-items:center;border-radius:var(--radius-sm);background:var(--accent);color:#f5fffc}.brand strong,.brand small{display:block}.brand strong{font-size:.92rem;letter-spacing:-.02em}.brand small{color:var(--text-3);font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topbar-actions,.trust-row,.icon-label,.mock-bar>div,.data-controls>div,.answer-review>div:first-child{display:flex;align-items:center;gap:8px}.privacy-note{color:var(--text-3);font-size:.78rem}.icon-button{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);transition:transform .12s var(--ease-out),border-color .16s ease}.tooltip{z-index:60;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--text);color:var(--bg);box-shadow:var(--shadow);font-size:.75rem;transform-origin:var(--radix-tooltip-content-transform-origin);transition:opacity 125ms var(--ease-out),transform 125ms var(--ease-out)}.tooltip-arrow{fill:var(--text)}.sidebar{position:sticky;top:64px;height:calc(100dvh - 64px);padding:18px 12px;border-right:1px solid var(--border);background:var(--bg)}.sidebar nav{display:grid;gap:3px}.nav-item{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:.84rem;font-weight:650;text-align:left;transition:transform .12s var(--ease-out),background-color .16s ease,color .16s ease}.nav-item[data-active=true]{background:var(--accent-soft);color:var(--accent-ink)}.main-content{min-width:0;padding:34px clamp(20px,3vw,46px) 72px}.main-content>*{width:min(100%,1540px);margin:0 auto}.mobile-nav,.mobile-more-menu{display:none}.primary-button,.secondary-button,.danger-button{min-height:40px;padding:0 15px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:750;white-space:nowrap;transition:transform .12s var(--ease-out),background-color .16s ease,border-color .16s ease}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#f4fffc}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.secondary-button{border:1px solid var(--border);background:var(--surface);color:var(--text)}.secondary-button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.danger-button{border:1px solid var(--danger);background:var(--danger);color:#fff8f7}.kicker{display:block;margin-bottom:7px;color:var(--accent);font-family:Trace Mono,ui-monospace,monospace;font-size:.67rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading>div{max-width:720px}.page-heading p{max-width:650px;margin-bottom:0;font-size:.97rem}.welcome-panel{min-height:min(650px,calc(100dvh - 110px));display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);align-items:center;gap:clamp(36px,6vw,96px);padding:clamp(30px,6vw,82px) 0}.welcome-copy h1{max-width:650px;font-size:clamp(3rem,7vw,6.8rem)}.welcome-copy>p{max-width:590px;font-size:1.07rem}.welcome-actions{display:flex;gap:10px;margin:26px 0 24px}.trust-row{flex-wrap:wrap;color:var(--text-3);font-size:.78rem}.trust-row span{display:inline-flex;align-items:center;gap:5px}.causal-preview{position:relative;padding:clamp(22px,4vw,40px);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.causal-preview:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.preview-label{color:var(--text-3);font-family:Trace Mono,monospace;font-size:.68rem;font-weight:750;text-transform:uppercase}.causal-preview>code{display:block;margin:24px 0;padding:18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:clamp(.9rem,2vw,1.15rem)}.causal-preview>code b{margin-right:18px;color:var(--accent)}.causal-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px}.causal-flow span{min-height:72px;padding:12px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-ink);font-size:.73rem}.causal-flow strong{display:block;margin-top:4px;font-family:Trace Mono,monospace}.causal-preview>p{margin:18px 0 0;font-size:.85rem}.diagnostic-panel{padding:clamp(24px,4vw,42px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.section-intro{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:22px}.section-intro p{margin-bottom:0}.score-chip{padding:8px 11px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:.76rem;font-weight:750;white-space:nowrap}.diagnostic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.diagnostic-grid fieldset{min-width:0;margin:0;padding:18px;border:1px solid var(--border);border-radius:var(--radius-md)}.diagnostic-grid legend{min-height:58px;padding:0 4px;font-weight:700;line-height:1.4}.diagnostic-grid legend span{display:inline-grid;width:24px;height:24px;place-items:center;margin-right:8px;border-radius:7px;background:var(--surface-2);color:var(--text-3);font:700 .7rem Trace Mono,monospace}.diagnostic-grid label{display:flex;gap:8px;margin:8px 0;padding:9px 10px;border:1px solid transparent;border-radius:8px;color:var(--text-2);font-size:.83rem}.diagnostic-grid label[data-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.diagnostic-result{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-ink)}.diagnostic-result p{margin:3px 0 0;color:inherit;font-size:.82rem}.diagnostic-submit{display:flex;align-items:center;gap:11px}.diagnostic-submit small{color:var(--text-3);font-size:.68rem}.learn-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px;align-items:start}.module-list{position:sticky;top:84px;align-self:start;display:grid;max-height:calc(100dvh - 110px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.module-list button{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:start;padding:13px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left}.module-list button:last-child{border-bottom:0}.module-list button[data-active=true]{background:var(--accent-soft)}.module-list button>span{color:var(--text-3);font:.7rem Trace Mono,monospace}.module-list strong,.module-list small{display:block}.module-list strong{font-size:.81rem}.module-list small{margin-top:3px;color:var(--text-3);font-size:.68rem;line-height:1.35}.lesson-surface{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.lesson-surface>header{padding:clamp(24px,4vw,48px);border-bottom:1px solid var(--border)}.lesson-surface>header p{max-width:850px;margin-bottom:0}.worked-example{display:grid;grid-template-columns:minmax(280px,.85fr) 1fr;gap:28px;padding:28px;background:var(--surface-2)}.worked-example pre{display:grid;margin:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);white-space:pre-wrap}.worked-example pre code{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:baseline;gap:10px;padding:6px;font-size:.82rem}.worked-example .code-line-number{color:var(--text-3);font-variant-numeric:tabular-nums;text-align:right}.worked-example .code-line-content{min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}.worked-example ol{margin:31px 0 0;padding-left:24px;color:var(--text-2)}.worked-example li{padding:5px 0 5px 5px;line-height:1.5}.lesson-two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:28px}.misconception{display:flex;align-items:flex-start;gap:8px;padding:12px;border-left:3px solid var(--warning);background:var(--warning-soft);color:var(--text);font-size:.84rem}details{margin:8px 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}summary{padding:11px 13px;cursor:pointer;color:var(--text);font-size:.83rem;font-weight:700}details p{margin:0;padding:0 13px 13px;font-size:.82rem}.lesson-footer{display:flex;align-items:center;gap:10px;padding:18px 28px;border-top:1px solid var(--border);background:var(--surface-2)}.lesson-footer>div{min-width:0;margin-right:auto}.lesson-footer>div>span,.lesson-footer>div>small,.lesson-footer>div>strong{display:block}.lesson-footer>div>span,.lesson-footer>div>small{color:var(--text-3);font-size:.69rem}.lesson-footer>div>strong{margin:3px 0;font-size:.8rem}.trace-heading{margin-bottom:18px}.program-picker,.practice-picker{display:grid;gap:5px;color:var(--text-3);font-size:.7rem;font-weight:750}select,input[type=number],.numeric-answer input{min-height:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:0 10px}.program-picker select{min-width:270px}.trace-desktop{display:grid;grid-template-columns:1.08fr .94fr .8fr;min-height:690px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.trace-pane{min-width:0;padding:18px;border-right:1px solid var(--border);background:var(--surface)}.trace-pane:last-child{border-right:0}.pane-heading{min-height:48px;display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}.pane-heading .kicker{margin-bottom:4px}.pane-heading h2{margin:0;font-size:1rem}.step-count,.guard-result{padding:5px 7px;border-radius:6px;background:var(--surface-2);color:var(--text-3);font:700 .67rem Trace Mono,monospace;white-space:nowrap}.guard-result[data-result=true]{background:var(--accent-soft);color:var(--accent-ink)}.guard-result[data-result=false]{background:var(--warning-soft);color:var(--warning)}.code-list{display:grid;gap:2px;margin:0 0 18px;padding:0;list-style:none;counter-reset:none}.code-list li{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;min-height:34px;padding:4px 8px;border-left:3px solid transparent;border-radius:5px}.code-list li>span{color:var(--text-3);font:.66rem Trace Mono,monospace}.code-list code{overflow-wrap:anywhere;font-size:.76rem}.code-list li[data-active=true]{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.code-list li[data-just-ran=true]:not([data-active=true]){background:var(--surface-2)}.trace-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.trace-controls button{justify-content:center;padding-inline:8px}.control-guidance{margin:8px 0 0;padding:8px 9px;border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);font-size:.69rem;line-height:1.45}.control-strip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px;color:var(--text-3);font-size:.7rem}.control-strip label{display:inline-flex;align-items:center;gap:6px}.control-strip select{min-height:30px;padding:0 6px;font-size:.7rem}.shortcuts{margin-left:auto}.state-section{margin-bottom:20px}.state-section h3,.state-grid h3,.timeline h3{color:var(--text-3);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.variable-table{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);border-spacing:0;overflow:hidden}.variable-row th,.variable-row td{height:34px;padding:5px 9px;border-bottom:1px solid var(--border);font-size:.72rem;text-align:left}.variable-row:last-child th,.variable-row:last-child td{border-bottom:0}.variable-row.header th{background:var(--surface-2);color:var(--text-3);font-size:.64rem;font-weight:750}.variable-row[data-changed=true]{background:var(--accent-soft);color:var(--accent-ink)}.variable-row th,.variable-row td{max-width:130px;overflow:hidden;text-overflow:ellipsis}.empty-inline{margin:0;color:var(--text-3);font-size:.76rem}.empty-inline.large{display:flex;align-items:center;gap:8px;padding:28px}.pile{margin:8px 0;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.pile>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.72rem}.pile>div:first-child span{color:var(--text-3)}.record-stack{display:flex;flex-wrap:wrap;gap:5px}.record-card,.empty-pile{max-width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font:.64rem Trace Mono,monospace;overflow-wrap:anywhere}.empty-pile{border-style:dashed;color:var(--text-3)}.state-grid{display:grid;grid-template-columns:1fr .65fr 1fr;gap:8px}.state-grid>div{min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm)}.stack-frame{display:block;font-size:.66rem;overflow-wrap:anywhere}.metric-value{margin:0;color:var(--text);font-size:.8rem;overflow-wrap:anywhere}.event-explanation{min-height:150px;padding:14px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.event-explanation p{color:inherit;font-size:.83rem}.event-explanation dl{margin:0}.event-explanation dl>div{display:grid;grid-template-columns:75px 1fr;gap:7px;padding:5px 0;border-top:1px solid color-mix(in srgb,var(--accent) 22%,transparent)}.event-explanation dt{font-size:.67rem;font-weight:750}.event-explanation dd{margin:0;min-width:0;font-size:.7rem;overflow-wrap:anywhere}.prediction{display:grid;gap:6px;margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.prediction legend{padding:0 5px;font-size:.75rem;font-weight:750}.prediction label{display:flex;align-items:center;gap:7px;padding:7px;border-radius:7px;color:var(--text-2);font-size:.74rem}.prediction label[data-selected=true]{background:var(--accent-soft);color:var(--accent-ink)}.feedback-line{padding:9px;border-radius:7px;background:var(--surface-2);color:var(--text);font-size:.74rem}.feedback-line[data-tone=correct]{background:var(--accent-soft);color:var(--accent-ink)}.feedback-line[data-tone=incorrect]{background:var(--danger-soft);color:var(--danger)}.timeline{margin-top:18px}.timeline ol{display:flex;gap:5px;margin:0;padding:0 0 7px;overflow:auto;list-style:none}.timeline button{display:grid;width:118px;min-width:118px;gap:2px;padding:7px;border:1px solid var(--border);border-radius:7px;background:var(--surface);text-align:left}.timeline li[data-current=true] button{border-color:var(--accent);background:var(--accent-soft)}.timeline button span,.timeline button small{color:var(--text-3);font:.59rem Trace Mono,monospace}.timeline button strong{overflow:hidden;text-overflow:ellipsis;font-size:.64rem}.trace-mobile{display:none}.trace-lab.compact .trace-desktop{min-height:570px;box-shadow:none}.trace-lab.compact .trace-pane{padding:13px}.practice-picker{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:-62px 0 26px auto}.practice-picker select{min-width:300px}.question-lab{min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.question-header{display:flex;align-items:start;justify-content:space-between;gap:24px;padding:26px 28px 12px}.question-header h2{font-size:1.45rem}.question-prompt{max-width:1000px;margin:0;padding:0 28px 22px;font-size:.95rem}.question-program{margin:0 28px 24px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.question-program>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:11px 13px;border-bottom:1px solid var(--border)}.question-program h3{margin:0}.question-program>div span{color:var(--text-3);font-size:.69rem}.question-program ol{display:grid;max-height:min(43dvh,430px);margin:0;padding:10px 0;overflow:auto;list-style:none}.question-program li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:4px 13px}.question-program li>span{color:var(--text-3);font:.63rem Trace Mono,monospace}.question-program code{color:var(--text);font-size:.75rem;line-height:1.5;white-space:pre}.concept-chips{display:flex;flex-wrap:wrap;justify-content:end;gap:5px}.concept-chips span{padding:5px 7px;border:1px solid var(--border);border-radius:6px;color:var(--text-3);font-size:.66rem;white-space:nowrap}.question-tabs>[role=tablist],.trace-mobile>[role=tablist]{display:flex;gap:3px;padding:0 28px;border-bottom:1px solid var(--border)}[role=tab]{min-height:40px;padding:0 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-3);font-size:.78rem;font-weight:750}[role=tab][data-state=active]{border-bottom-color:var(--accent);color:var(--accent)}.question-work{padding:24px 28px}.answer-area h3{margin-bottom:13px}.option-list{display:grid;gap:7px}.option-list label{display:grid;grid-template-columns:auto max-content minmax(0,1fr) auto;align-items:start;gap:9px;width:100%;min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:.84rem;line-height:1.45}.option-list label[data-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.option-list label[data-result=correct],.option-list label[data-result=missed]{border-color:var(--accent)}.option-list label[data-result=incorrect]{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.option-list input{margin-top:3px}.option-key{display:grid;width:max-content;min-width:24px;height:24px;place-items:center;padding:0 6px;border-radius:6px;background:var(--surface-2);color:var(--text-3);font:700 .68rem Trace Mono,monospace;white-space:nowrap}.option-text{min-width:0;overflow-wrap:anywhere}.option-result{align-self:center;padding:3px 6px;border-radius:999px;background:var(--surface);color:inherit;font-size:.62rem;font-weight:750;white-space:nowrap}.numeric-answer{display:grid;max-width:220px;gap:6px;color:var(--text-3);font-size:.72rem}.answer-actions{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:18px}.answer-actions label{display:grid;gap:4px;color:var(--text-3);font-size:.68rem}.submit-group{display:grid;justify-items:end;gap:4px}.control-reason{max-width:270px;color:var(--text-3);font-size:.65rem;text-align:right}.hint-panel{margin-top:18px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.hint-panel>div{display:flex;align-items:center;gap:7px}.hint-panel h3{margin:0}.hint-panel>div span{margin-left:auto;color:var(--text-3);font-size:.7rem}.hint-panel p{display:grid;grid-template-columns:24px 1fr;gap:8px;margin:8px 0;font-size:.8rem}.hint-panel p strong{display:grid;width:22px;height:22px;place-items:center;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink)}.trace-embed{display:grid;gap:24px}.answer-review{padding:24px 28px;border-top:1px solid var(--border);background:var(--surface-2)}.answer-review[data-correct=true]>div:first-child{color:var(--accent)}.answer-review[data-correct=false]>div:first-child{color:var(--danger)}.answer-review h3{margin:0}.answer-review>p{margin:8px 0;font-size:.84rem}.option-explanations{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.option-explanations p{margin:0;padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:.75rem}.option-explanations strong,.option-explanations span{display:block}.option-explanations span{margin-top:4px;color:var(--text-3)}.variants{margin-top:18px}.assignment-strip{display:grid;grid-template-columns:1fr 1.2fr 1.45fr;gap:9px;margin-bottom:18px}.assignment-strip button{display:grid;gap:4px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);text-align:left}.assignment-strip button[data-active=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.assignment-strip span,.assignment-strip small{color:var(--text-3);font-size:.7rem}.sequence-control,.review-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0;color:var(--text-3);font-size:.76rem}.sequence-control>div{display:flex;gap:7px}.paper-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}.paper-index{position:sticky;top:84px;display:grid;max-height:calc(100dvh - 110px);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:auto}.paper-index>div{padding:14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.paper-index>div strong,.paper-index>div span{display:block}.paper-index>div span{color:var(--text-3);font-size:.69rem}.paper-index button{display:grid;grid-template-columns:34px 1fr;gap:7px;padding:11px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left}.paper-index button[data-active=true]{background:var(--accent-soft);color:var(--accent-ink)}.paper-index button>span{font:700 .7rem Trace Mono,monospace}.paper-index button strong,.paper-index button small{display:block}.paper-index button strong{font-size:.76rem}.paper-index button small{margin-top:2px;color:var(--text-3);font-size:.65rem}.mock-setup,.empty-state{width:min(100%,620px);margin:70px auto 0;padding:34px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.mock-setup>svg,.empty-state>svg{color:var(--accent)}.mock-setup label{display:grid;max-width:280px;gap:5px;margin:12px auto;color:var(--text-3);font-size:.72rem;text-align:left}.mock-setup .toggle-line{display:flex;justify-content:center}.mock-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:12px 15px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:.76rem}.mock-bar span{color:var(--text-3)}.mock-bar strong{margin-left:8px}.mock-sequence>div{align-items:center}.mock-sequence>div span{font-size:.7rem}.mock-result-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.mock-result-summary>div{padding:17px;border-right:1px solid var(--border)}.mock-result-summary>div:last-child{border-right:0}.mock-result-summary span,.mock-result-summary strong{display:block}.mock-result-summary span{color:var(--text-3);font-size:.68rem}.mock-result-summary strong{margin-top:4px;font:750 1.1rem Trace Mono,monospace}.mock-review-list{display:grid;gap:12px}.mock-review-list>article{padding:20px;border:1px solid var(--border);border-left:4px solid var(--danger);border-radius:var(--radius-md);background:var(--surface)}.mock-review-list>article[data-correct=true]{border-left-color:var(--accent)}.mock-review-list article>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px;color:var(--text-3);font-size:.7rem}.mock-review-list article>header strong{color:var(--danger)}.mock-review-list article[data-correct=true]>header strong{color:var(--accent)}.mock-review-list article>h2{font-size:1.05rem}.mock-review-list article>p{margin:5px 0;font-size:.8rem}.mock-review-list pre{display:grid;margin:0 13px 12px;padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);overflow:auto}.mock-review-list pre code{display:grid;grid-template-columns:30px max-content;gap:8px;padding:3px;font-size:.69rem;white-space:pre}.mock-review-list pre span{color:var(--text-3)}.mock-result-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.review-summary{padding:10px 13px;border-radius:var(--radius-sm);background:var(--surface-2)}.progress-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.progress-summary>div{padding:18px;border-right:1px solid var(--border)}.progress-summary>div:last-child{border-right:0}.progress-summary span,.progress-summary strong{display:block}.progress-summary span{color:var(--text-3);font-size:.7rem}.progress-summary strong{margin-top:6px;font:750 1.25rem Trace Mono,monospace}.recommendation{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:18px 0;padding:22px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-ink)}.recommendation h2{margin:0}.recommendation p{margin:4px 0 0;color:inherit;font-size:.82rem}.mastery-table{padding:22px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.mastery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.mastery-grid article{padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm)}.mastery-grid article>div{display:flex;justify-content:space-between;gap:12px}.mastery-grid article>div span{color:var(--text-3);font-size:.68rem}.mastery-grid article>div span[data-band=Independent]{color:var(--accent)}.mastery-grid dl{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0 0}.mastery-grid dl div{padding:7px;border-radius:6px;background:var(--surface-2)}.mastery-grid dt{color:var(--text-3);font-size:.61rem}.mastery-grid dd{margin:3px 0 0;font:750 .8rem Trace Mono,monospace}.data-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.data-controls strong,.data-controls p{display:block;margin:0}.data-controls p{font-size:.75rem}.reset-confirm{display:flex;align-items:center;gap:7px}.reset-confirm span{color:var(--danger);font-size:.74rem}@media(hover:hover)and (pointer:fine){.nav-item:hover,.module-list button:hover,.paper-index button:hover{background:var(--surface-2)}.icon-button:hover{border-color:var(--border-strong)}button:active:not(:disabled){transform:scale(.97)}}@media(max-width:1180px){.app-shell{grid-template-columns:78px minmax(0,1fr)}.sidebar{padding-inline:9px}.nav-item{justify-content:center;padding:0}.nav-item span{display:none}.welcome-panel{grid-template-columns:1fr 420px;gap:38px}}@media(max-width:880px){.app-shell{display:block;padding-bottom:66px}.topbar{position:sticky}.sidebar,.trace-desktop{display:none}.trace-mobile{display:block;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}.trace-mobile .trace-pane{border-right:0;border-bottom:1px solid var(--border)}.trace-mobile .trace-pane:last-child{border-bottom:0}.trace-lab.compact .trace-mobile{box-shadow:none}.mobile-nav{position:fixed;z-index:30;inset:auto 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-nav button{display:grid;min-width:0;place-items:center;align-content:center;gap:3px;padding:5px 1px;border:0;background:transparent;color:var(--text-3);font-size:.58rem}.mobile-nav button[data-active=true]{color:var(--accent)}.mobile-more-menu{position:fixed;z-index:29;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));display:grid;width:min(330px,calc(100vw - 20px));padding:9px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow)}.mobile-more-menu>div{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 9px 9px}.mobile-more-menu>button{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:9px;padding:10px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left}.mobile-more-menu>button[data-active=true]{background:var(--accent-soft);color:var(--accent-ink)}.mobile-more-menu>button span,.mobile-more-menu>button strong,.mobile-more-menu>button small{display:block}.mobile-more-menu>button strong{font-size:.78rem}.mobile-more-menu>button small{margin-top:2px;color:var(--text-3);font-size:.64rem}.main-content{padding:26px 18px 42px}.welcome-panel{min-height:auto;grid-template-columns:1fr;padding:30px 0 50px}.welcome-copy h1{font-size:clamp(3rem,12vw,5.6rem)}.diagnostic-grid{grid-template-columns:1fr}.diagnostic-grid legend{min-height:auto}.learn-layout,.paper-layout{grid-template-columns:1fr}.module-list,.paper-index{position:static;display:flex;max-height:none;overflow:auto;scroll-snap-type:x mandatory}.module-list button,.paper-index button{min-width:245px;border-right:1px solid var(--border);border-bottom:0;scroll-snap-align:start}.paper-index>div{min-width:160px;border-right:1px solid var(--border);border-bottom:0}.lesson-two-col,.worked-example{grid-template-columns:1fr}.worked-example ol{margin-top:0}.lesson-footer{flex-wrap:wrap}.lesson-footer>div{width:100%}.practice-picker{margin:0 0 18px;justify-content:stretch}.practice-picker select{min-width:0;width:100%}.assignment-strip{grid-template-columns:1fr}.assignment-strip button{grid-template-columns:1fr auto}.assignment-strip small{grid-column:1 / -1}.progress-summary{grid-template-columns:1fr 1fr}.progress-summary>div:nth-child(2){border-right:0}.progress-summary>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.recommendation{grid-template-columns:auto 1fr}.recommendation button{grid-column:1 / -1}}@media(max-width:620px){.privacy-note{display:none}.main-content{padding-inline:12px}.page-heading{margin-bottom:22px}.welcome-copy h1{font-size:3.25rem}.welcome-actions,.answer-actions,.data-controls,.reset-confirm{align-items:stretch;flex-direction:column}.welcome-actions button{justify-content:center}.causal-preview{padding:20px}.causal-flow{grid-template-columns:1fr}.causal-flow>svg{transform:rotate(90deg);justify-self:center}.diagnostic-panel{padding:18px}.diagnostic-result{grid-template-columns:auto 1fr}.diagnostic-result button{grid-column:1 / -1}.program-picker{width:100%}.program-picker select{width:100%;min-width:0}.trace-heading{align-items:stretch;flex-direction:column}.trace-pane{padding:12px}.trace-controls{grid-template-columns:1fr 1fr}.shortcuts{width:100%;margin-left:0}.state-grid{grid-template-columns:1fr}.question-header{flex-direction:column;padding:20px 16px 10px}.concept-chips{justify-content:start}.question-prompt{padding:0 16px 18px}.question-program{margin:0 16px 18px}.question-program>div{align-items:flex-start;flex-direction:column;gap:2px}.question-program ol{max-height:360px}.question-tabs>[role=tablist]{padding-inline:16px}.question-work,.answer-review{padding:18px 16px}.option-explanations,.mastery-grid{grid-template-columns:1fr}.option-list label{grid-template-columns:auto max-content minmax(0,1fr);padding:10px}.option-result{grid-column:2 / -1;justify-self:start}.paper-index button{min-width:220px}.mock-bar{align-items:flex-start;flex-wrap:wrap}.mock-result-summary{grid-template-columns:1fr}.mock-result-summary>div{border-right:0;border-bottom:1px solid var(--border)}.mock-result-summary>div:last-child{border-bottom:0}.mock-sequence{align-items:stretch;flex-direction:column}.mock-sequence>div{align-items:stretch;flex-direction:column}.mock-result-actions{align-items:stretch;flex-direction:column}.progress-summary{grid-template-columns:1fr}.progress-summary>div{border-right:0;border-bottom:1px solid var(--border)}.recommendation{grid-template-columns:1fr}.mastery-table{padding:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
