:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#110e0b;--color-surface:#1d1915;--color-surface-2:#26211b;--color-code-bg:#0b0907;--color-border:#3a3229;--color-border-strong:#7a6a56;--color-overlay:#080604b8;--color-rail:#b89a40;--color-text:#f1e9dc;--color-text-muted:#b9aa95;--color-accent:#e8ad54;--color-accent-fill:#d99a3c;--color-accent-fill-hover:#e7a947;--color-on-accent:#1b1206;--color-accent-bg:#3a2a14;--color-focus:#f5c270;--color-success:#7fd69c;--color-success-bg:#173222;--color-danger:#f38b7c;--color-danger-bg:#3a1c17;--color-info:#8cc2f5;--color-info-bg:#162b40;--color-warning:#f2c867;--color-warning-bg:#3a2e12;--color-mastery-low:#8a6a3a;--color-mastery-high:#f0b85e;--color-code-keyword:#f0a868;--color-code-string:#a8d08d;--color-code-number:#d7a8f0;--color-code-comment:#948672;--color-code-function:#8cc2f5;--color-piece:#2e2214;--color-piece-hover:#3a2b18;--color-piece-lift:#4a3720;--color-socket:#0c0a07;--color-screen:#08110b;--color-phosphor:#8fe3a8;--ambient-glow-1:#e8963c24;--ambient-glow-2:#7850282e;--ambient-ember:#ffb45a8c;--font-body:ui-sans-serif, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "TeX Gyre Pagella", "URW Palladio L", P052, Georgia, serif;--font-prose:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "TeX Gyre Pagella", "URW Palladio L", P052, Georgia, serif;--font-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--leading-tight:1.25;--leading-body:1.6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--shadow-1:0 1px 2px #00000059, 0 4px 16px #00000040;--shadow-2:0 2px 6px #0006, 0 12px 32px #00000059;--motion-fast:.15s;--motion-base:.22s;--motion-slow:.3s;--motion-ease:cubic-bezier(.2, .8, .2, 1);--motion-ambient:28s;--motion-pulse:1.6s}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f6f1e8;--color-surface:#fffdf9;--color-surface-2:#efe7da;--color-code-bg:#f3ede3;--color-border:#dccfbc;--color-border-strong:#8a7a64;--color-overlay:#281e1473;--color-rail:#7a5a2a;--color-text:#271d12;--color-text-muted:#5b4c3a;--color-accent:#8a5410;--color-accent-fill:#96590f;--color-accent-fill-hover:#844e0c;--color-on-accent:#fff;--color-accent-bg:#f6e6cc;--color-focus:#a8620f;--color-success:#1d6f3d;--color-success-bg:#e3f3e8;--color-danger:#a8281c;--color-danger-bg:#fbe6e2;--color-info:#1b5a9e;--color-info-bg:#e3eefa;--color-warning:#7a5500;--color-warning-bg:#f8eed3;--color-mastery-low:#c9a877;--color-mastery-high:#96590f;--color-code-keyword:#9c3d00;--color-code-string:#3d6b1f;--color-code-number:#7a2e9e;--color-code-comment:#6e604e;--color-code-function:#1b5a9e;--color-piece:#f3e3c4;--color-piece-hover:#ecd6ad;--color-piece-lift:#e6cc9a;--color-socket:#ebe3d5;--color-screen:#dfe8d3;--color-phosphor:#1f4a2b;--ambient-glow-1:#d6964629;--ambient-glow-2:#aa783c1a;--ambient-ember:#be782859;--shadow-1:0 1px 2px #3c281414, 0 4px 14px #3c281414;--shadow-2:0 2px 6px #3c28141f, 0 12px 32px #3c28141f}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]){--motion-fast:0s;--motion-base:0s;--motion-slow:0s}}[data-motion=reduced]{--motion-fast:0s;--motion-base:0s;--motion-slow:0s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--leading-tight);margin:0 0 var(--space-3);letter-spacing:.005em;font-weight:600}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:.2em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--color-accent-bg);color:var(--color-text)}.gfe-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.gfe-muted{color:var(--color-text-muted)}.gfe-prose{max-width:72ch}.gfe-prose>:last-child{margin-bottom:0}.gfe-prose ul,.gfe-prose ol{margin:0 0 var(--space-3);padding-left:1.4em}.gfe-prose li+li{margin-top:var(--space-1)}.gfe-prose strong{color:var(--color-text);font-weight:650}.gfe-prose table{border-collapse:collapse;margin:0 0 var(--space-4);font-size:var(--text-sm);max-width:100%;display:block;overflow-x:auto}.gfe-prose th,.gfe-prose td{border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top}.gfe-prose th{background:var(--color-surface-2);font-weight:600}.gfe-prose :not(pre)>code,.gfe-inline code{font-family:var(--font-mono);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:4px;padding:.05em .35em;font-size:.92em}.gfe-code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-code-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4);tab-size:4;line-height:1.55;overflow-x:auto}.gfe-code code{font:inherit;background:0 0;border:0;padding:0}.tok-keyword,.tok-operatorKeyword,.tok-controlKeyword,.tok-definitionKeyword,.tok-moduleKeyword{color:var(--color-code-keyword)}.tok-string,.tok-string2{color:var(--color-code-string)}.tok-number,.tok-bool,.tok-atom{color:var(--color-code-number)}.tok-comment{color:var(--color-code-comment);font-style:italic}.tok-variableName.tok-definition,.tok-function{color:var(--color-code-function)}*{scrollbar-color:var(--color-border-strong) transparent;scrollbar-width:thin}.gfe-btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-2);color:var(--color-text);cursor:pointer;white-space:nowrap;transition:transform var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease);font-weight:600;line-height:1;display:inline-flex}.gfe-btn--md{min-height:2.5rem;padding:0 var(--space-4);font-size:var(--text-sm)}.gfe-btn--sm{min-height:2rem;padding:0 var(--space-3);font-size:var(--text-xs)}.gfe-btn:hover:not(:disabled){border-color:var(--color-accent)}.gfe-btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.gfe-btn:disabled{opacity:.55;cursor:not-allowed}.gfe-btn--primary{background:var(--color-accent-fill);border-color:var(--color-accent-fill);color:var(--color-on-accent)}.gfe-btn--primary:hover:not(:disabled){background:var(--color-accent-fill-hover);border-color:var(--color-accent-fill-hover)}.gfe-btn--ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.gfe-btn--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-2);border-color:var(--color-border)}.gfe-btn--danger{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger)}.gfe-btn__icon{font-size:1.1em;display:inline-flex}.gfe-btn .gfe-spinner{margin-right:0}.gfe-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);position:relative}.gfe-card--padded{padding:var(--space-5)}.gfe-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.gfe-card__eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-1);font-weight:600}.gfe-card__heading{font-size:var(--text-xl);margin:0}.gfe-card__actions{gap:var(--space-2);flex-shrink:0;display:flex}.gfe-badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.02em;border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted);white-space:nowrap;padding:.15rem .55rem;font-weight:650;display:inline-flex}.gfe-badge--accent{background:var(--color-accent-bg);color:var(--color-accent);border-color:#0000}.gfe-badge--success{background:var(--color-success-bg);color:var(--color-success);border-color:#0000}.gfe-badge--danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#0000}.gfe-badge--info{background:var(--color-info-bg);color:var(--color-info);border-color:#0000}.gfe-badge--warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:#0000}.gfe-callout{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);display:flex}.gfe-callout__icon{flex-shrink:0;padding-top:.15rem;font-size:1.25rem;line-height:1}.gfe-callout__title{margin-bottom:var(--space-1);font-weight:700}.gfe-callout__body>:last-child{margin-bottom:0}.gfe-callout--success{background:var(--color-success-bg);border-color:#0000}.gfe-callout--success .gfe-callout__icon,.gfe-callout--success .gfe-callout__title{color:var(--color-success)}.gfe-callout--danger{background:var(--color-danger-bg);border-color:#0000}.gfe-callout--danger .gfe-callout__icon,.gfe-callout--danger .gfe-callout__title{color:var(--color-danger)}.gfe-callout--info{background:var(--color-info-bg);border-color:#0000}.gfe-callout--info .gfe-callout__icon,.gfe-callout--info .gfe-callout__title{color:var(--color-info)}.gfe-callout--warning{background:var(--color-warning-bg);border-color:#0000}.gfe-callout--warning .gfe-callout__icon,.gfe-callout--warning .gfe-callout__title{color:var(--color-warning)}.gfe-callout--accent{background:var(--color-accent-bg);border-color:#0000}.gfe-callout--accent .gfe-callout__icon,.gfe-callout--accent .gfe-callout__title{color:var(--color-accent)}.gfe-spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:.8s linear infinite gfe-spin;display:inline-block}.gfe-spinner--sm{width:.9rem;height:.9rem}.gfe-spinner--md{width:1.4rem;height:1.4rem}@keyframes gfe-spin{to{transform:rotate(360deg)}}.gfe-pulse{background:var(--color-accent);width:.55rem;height:.55rem;animation:gfe-pulse var(--motion-pulse) ease-in-out infinite;border-radius:50%;display:inline-block}.gfe-pulse--success{background:var(--color-success)}.gfe-pulse--info{background:var(--color-info)}.gfe-pulse--warning{background:var(--color-warning)}@keyframes gfe-pulse{0%,to{opacity:.55;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.gfe-kbd{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--color-border-strong);background:var(--color-surface-2);border-bottom-width:2px;border-radius:4px;padding:0 .3rem}.gfe-mastery__label{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);justify-content:space-between;font-weight:600;display:flex}.gfe-mastery__value{font-variant-numeric:tabular-nums;color:var(--color-text)}.gfe-mastery__track{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);position:relative;overflow:hidden}.gfe-mastery--md .gfe-mastery__track{height:.6rem}.gfe-mastery--sm .gfe-mastery__track{height:.35rem}.gfe-mastery__fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-mastery-low), var(--color-mastery-high));height:100%}.gfe-mastery__threshold{background:var(--color-text-muted);opacity:.6;width:2px;position:absolute;top:-1px;bottom:-1px}.gfe-ring{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.gfe-ring>svg{position:absolute;inset:0}.gfe-ring__track{stroke:var(--color-border)}.gfe-ring__fill{stroke:var(--color-accent);transition:stroke-dashoffset var(--motion-slow) var(--motion-ease)}.gfe-ring__content{font-size:.8em;display:inline-flex;position:relative}.gfe-timer{align-items:center;gap:var(--space-3);display:flex}.gfe-timer__track{border-radius:var(--radius-pill);background:var(--color-surface-2);flex:1;height:.35rem;overflow:hidden}.gfe-timer__fill{transform-origin:0;background:var(--color-accent);width:100%;height:100%;transition:transform 1s linear}.gfe-timer--warning .gfe-timer__fill{background:var(--color-warning)}.gfe-timer--danger .gfe-timer__fill{background:var(--color-danger)}.gfe-timer__label{font-variant-numeric:tabular-nums;font-size:var(--text-sm);text-align:right;min-width:4.5ch;font-weight:700}.gfe-timer--danger .gfe-timer__label{color:var(--color-danger)}.gfe-choices{gap:var(--space-3);display:grid}.gfe-choice{all:unset;box-sizing:border-box;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);display:flex}.gfe-choice:hover:not([data-disabled]){border-color:var(--color-accent);transform:translate(2px)}.gfe-choice:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-choice[data-state=checked]{border-color:var(--color-accent);background:var(--color-accent-bg)}.gfe-choice[data-disabled]{cursor:default}.gfe-choice--correct,.gfe-choice--correct[data-state=checked]{border-color:var(--color-success);background:var(--color-success-bg)}.gfe-choice--incorrect,.gfe-choice--incorrect[data-state=checked]{border-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-choice__letter{border:1px solid var(--color-border-strong);width:1.75rem;height:1.75rem;font-weight:700;font-size:var(--text-sm);color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.gfe-choice[data-state=checked] .gfe-choice__letter{border-color:var(--color-accent);color:var(--color-accent)}.gfe-choice--correct .gfe-choice__letter{border-color:var(--color-success);color:var(--color-success)}.gfe-choice--incorrect .gfe-choice__letter{border-color:var(--color-danger);color:var(--color-danger)}.gfe-choice__content{flex:1;min-width:0;padding-top:.15rem}.gfe-choice__content .gfe-prose{max-width:none}.gfe-choice__content .gfe-code{margin:0}.gfe-switch-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;display:flex}.gfe-switch-row__label{font-weight:600}.gfe-switch-row__desc{font-size:var(--text-sm);color:var(--color-text-muted)}.gfe-switch{all:unset;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border-strong);cursor:pointer;flex-shrink:0;width:2.6rem;height:1.5rem;position:relative}.gfe-switch:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-switch[data-state=checked]{background:var(--color-accent-fill);border-color:var(--color-accent-fill)}.gfe-switch__thumb{background:var(--color-text);width:1.1rem;height:1.1rem;transition:transform var(--motion-fast) var(--motion-ease);border-radius:50%;display:block;transform:translate(.18rem)}.gfe-switch[data-state=checked] .gfe-switch__thumb{background:var(--color-on-accent);transform:translate(1.3rem)}.gfe-segmented{border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border);gap:2px;padding:3px;display:inline-flex}.gfe-segmented__item{all:unset;border-radius:calc(var(--radius-md) - 3px);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;padding:.35rem .8rem;font-weight:600}.gfe-segmented__item:hover{color:var(--color-text)}.gfe-segmented__item:focus-visible{outline:2px solid var(--color-focus)}.gfe-segmented__item[data-state=checked]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-1)}.gfe-model{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.gfe-model__icon{font-size:1.15rem;display:inline-flex}.gfe-model--ready .gfe-model__icon,.gfe-model--thinking .gfe-model__icon{color:var(--color-accent)}.gfe-model--thinking .gfe-model__icon{animation:gfe-pulse var(--motion-pulse) ease-in-out infinite}.gfe-model--downloading .gfe-model__icon,.gfe-model--loading .gfe-model__icon{color:var(--color-info)}.gfe-model--loading .gfe-model__icon svg:last-child{animation:3s linear infinite gfe-spin}.gfe-model--error .gfe-model__icon{color:var(--color-danger)}.gfe-model--unsupported .gfe-model__icon,.gfe-model--off .gfe-model__icon{opacity:.6}.gfe-ambient{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.gfe-ambient__glow{filter:blur(40px);width:70vmax;height:70vmax;animation:gfe-drift var(--motion-ambient) ease-in-out infinite alternate;border-radius:50%;position:absolute}.gfe-ambient__glow--1{background:radial-gradient(circle, var(--ambient-glow-1), transparent 65%);top:-25vmax;left:-20vmax}.gfe-ambient__glow--2{background:radial-gradient(circle, var(--ambient-glow-2), transparent 65%);animation-delay:calc(var(--motion-ambient) / -2);bottom:-30vmax;right:-25vmax}@keyframes gfe-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(4vmax,3vmax)scale(1.08)}}.gfe-ember{bottom:-10px;left:var(--x);width:var(--size);height:var(--size);background:var(--ambient-ember);box-shadow:0 0 6px var(--ambient-ember);opacity:0;animation:gfe-rise var(--dur) linear var(--delay) infinite;border-radius:50%;position:absolute}@keyframes gfe-rise{0%{opacity:0;transform:translate(0,0)}10%{opacity:.8}80%{opacity:.35}to{transform:translate3d(var(--drift), -105vh, 0);opacity:0}}[data-test-mode=on] .gfe-ambient__embers,[data-motion=reduced] .gfe-ambient__embers{display:none}[data-test-mode=on] .gfe-ambient__glow,[data-motion=reduced] .gfe-ambient__glow{opacity:.5;animation:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .gfe-ambient__embers{display:none}:root:not([data-motion=full]) .gfe-ambient__glow,:root:not([data-motion=full]) .gfe-pulse,:root:not([data-motion=full]) .gfe-model__icon{animation:none}}[data-motion=reduced] .gfe-pulse,[data-motion=reduced] .gfe-model__icon,[data-motion=reduced] .gfe-spinner{animation-duration:0s;animation-iteration-count:1}.gfe-check{align-items:flex-start;gap:var(--space-3);display:flex}.gfe-check__input{width:1.125rem;height:1.125rem;accent-color:var(--color-accent-fill);cursor:pointer;flex-shrink:0;margin:.2rem 0 0}.gfe-check__input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-check__text{gap:var(--space-1);min-width:0;display:grid}.gfe-check__label{font-size:var(--text-sm);cursor:pointer;font-weight:600}.gfe-check__desc{font-size:var(--text-xs);color:var(--color-text-muted)}.gfe-status-dot{background:var(--color-text-muted);border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem;display:inline-block}.gfe-status-dot--ring{background:0 0;width:auto;height:auto;display:inline-flex}.gfe-status-dot--ring .gfe-ring__fill{stroke:var(--color-info)}.gfe-status-dot--ready{background:var(--color-success)}.gfe-status-dot--thinking{background:var(--color-accent);animation:gfe-pulse var(--motion-pulse) ease-in-out infinite}.gfe-status-dot--loading{background:var(--color-info);animation:gfe-pulse var(--motion-pulse) ease-in-out infinite}.gfe-status-dot--error{background:var(--color-danger)}.gfe-status-dot--not-downloaded,.gfe-status-dot--off,.gfe-status-dot--unsupported{border:1.5px solid var(--color-border-strong);background:0 0}.gfe-tutor-pill-wrap{display:inline-flex;position:relative}:where(.gfe-tutor-pill__main,.gfe-tutor-pill__stop,button.gfe-tutor-pill){all:unset;box-sizing:border-box;cursor:pointer}.gfe-tutor-pill{border-radius:var(--radius-pill);min-height:2rem;color:var(--color-text-muted);font-size:var(--text-xs);white-space:nowrap;align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.gfe-tutor-pill--busy{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.gfe-tutor-pill__main{align-items:center;gap:var(--space-2);min-height:calc(2rem - 2px);padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-pill);display:inline-flex}.gfe-tutor-pill__main:hover,.gfe-tutor-pill__stop:hover{background:var(--color-surface-2)}.gfe-tutor-pill__ring{display:inline-flex}.gfe-tutor-pill__ring .gfe-ring__fill{stroke:var(--color-info)}.gfe-tutor-pill--loading .gfe-tutor-pill__ring svg{animation:1.1s linear infinite gfe-spin}.gfe-tutor-pill__pct{font-variant-numeric:tabular-nums;min-width:3.5ch;display:inline-block}.gfe-tutor-pill__stop{border-left:1px solid var(--color-border);border-radius:0 var(--radius-pill) var(--radius-pill) 0;width:calc(2rem - 2px);height:calc(2rem - 2px);color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.gfe-tutor-pill__stop:hover{color:var(--color-text)}.gfe-tutor-pill__main:focus-visible,.gfe-tutor-pill__stop:focus-visible,.gfe-tutor-pill--icon:focus-visible,.gfe-tutor-pill--error:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-tutor-pill--icon{justify-content:center;width:2rem;font-size:1.15rem;position:relative}.gfe-tutor-pill--icon:hover,.gfe-tutor-pill--error:hover{color:var(--color-text);background:var(--color-surface-2)}.gfe-tutor-pill--ready,.gfe-tutor-pill--thinking{color:var(--color-accent)}.gfe-tutor-pill--off,.gfe-tutor-pill--unsupported{opacity:.7}.gfe-tutor-pill__badge{background:var(--color-bg);border-radius:50%;padding:2px;line-height:0;display:inline-flex;position:absolute;bottom:3px;right:2px}.gfe-tutor-pill__badge .gfe-status-dot{width:.45rem;height:.45rem}.gfe-tutor-pill--error{gap:var(--space-1);padding:0 var(--space-2);font-size:var(--text-xs)}.gfe-tutor-pill--error svg{color:var(--color-danger);font-size:1rem}.gfe-toast{top:calc(100% + var(--space-2));z-index:20;align-items:flex-start;gap:var(--space-2);width:max-content;max-width:min(18rem,100vw - 2rem);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-2);color:var(--color-text);pointer-events:none;animation:gfe-toast-in var(--motion-base) var(--motion-ease);display:flex;position:absolute;right:0}.gfe-toast__icon{color:var(--color-success);padding-top:.15rem;display:inline-flex}.gfe-toast__title{font-size:var(--text-sm);font-weight:700;display:block}.gfe-toast__body{font-size:var(--text-xs);color:var(--color-text-muted);display:block}@keyframes gfe-toast-in{0%{opacity:0;transform:translateY(-4px)}}.gfe-learn{--gfe-dock-w:clamp(320px, 27vw, 400px);--gfe-dock-rail-w:46px;flex:1;min-width:0;display:flex}.gfe-learn__stage{min-width:0;padding-inline:var(--space-5);flex:1;justify-content:center;display:flex}.gfe-column{--gfe-column-pad:var(--space-6);width:100%;max-width:calc(72ch + 2 * var(--gfe-column-pad) + 2px);min-width:0;padding:var(--space-6) var(--gfe-column-pad) var(--space-8);border-inline:1px solid var(--color-rail);background:var(--color-bg)}.gfe-column .gfe-prose{max-width:none;font-family:var(--font-prose);font-size:1.0625rem;line-height:1.7}.gfe-column .gfe-prose th,.gfe-column .gfe-prose td{font-family:var(--font-body)}.gfe-column .gfe-prose :not(pre)>code{font-size:.85em}.gfe-dock{width:var(--gfe-dock-w);border-left:1px solid var(--color-rail);background:var(--color-surface);transition:width var(--motion-base) var(--motion-ease);flex:none;overflow:clip}.gfe-dock[data-state=collapsed]{width:var(--gfe-dock-rail-w)}.gfe-dock__sticky{top:var(--gfe-dock-top,0px);height:calc(100dvh - var(--gfe-dock-top,0px));flex-direction:column;display:flex;position:sticky}.gfe-dock__panel{width:var(--gfe-dock-w);flex-direction:column;flex:1;min-height:0;display:flex}.gfe-dock__panel[hidden]{display:none}.gfe-dock__header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:3.25rem;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.gfe-dock__header-main{align-items:center;gap:var(--space-2);min-width:0;display:flex}.gfe-dock__toggle{all:unset;box-sizing:border-box;border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.gfe-dock__toggle:hover{color:var(--color-text);background:var(--color-surface-2)}.gfe-dock__toggle:focus-visible,.gfe-dock__rail:focus-visible,.gfe-dock-fab:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gfe-dock__body{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.gfe-dock__rail{all:unset;box-sizing:border-box;align-items:center;gap:var(--space-3);width:var(--gfe-dock-rail-w);height:100%;padding:var(--space-3) 0;color:var(--color-text-muted);cursor:pointer;flex-direction:column;display:flex}.gfe-dock__rail:hover{color:var(--color-text);background:var(--color-surface-2)}.gfe-dock__rail-chevron{font-size:1rem;display:inline-flex;transform:rotate(180deg)}.gfe-dock__rail-icon{color:var(--color-accent);font-size:1.15rem;display:inline-flex}.gfe-dock__rail-label{writing-mode:vertical-rl;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700}.gfe-dock-fab{all:unset;box-sizing:border-box;right:var(--space-4);bottom:var(--space-4);z-index:6;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:0 var(--space-4) 0 var(--space-3);border:1px solid var(--color-rail);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-2);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;font-weight:650;display:inline-flex;position:fixed}.gfe-dock-fab:hover{background:var(--color-surface-2)}.gfe-dock-fab__icon{color:var(--color-accent);font-size:1.1rem;display:inline-flex}.gfe-sheet-overlay{z-index:30;background:var(--color-overlay);animation:gfe-fade-in var(--motion-base) var(--motion-ease);position:fixed;inset:0}.gfe-sheet{z-index:31;border-top:1px solid var(--color-rail);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);height:min(86dvh,46rem);box-shadow:var(--shadow-2);animation:gfe-sheet-up var(--motion-slow) var(--motion-ease);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.gfe-sheet:focus{outline:none}@media (min-width:640px){.gfe-sheet{border-top:0;border-left:1px solid var(--color-rail);border-radius:0;width:min(420px,92vw);height:auto;animation-name:gfe-sheet-in;top:0;left:auto}}@keyframes gfe-fade-in{0%{opacity:0}}@keyframes gfe-sheet-up{0%{opacity:0;transform:translateY(24px)}}@keyframes gfe-sheet-in{0%{opacity:0;transform:translate(24px)}}@media (max-width:1079px){.gfe-learn__stage{padding-inline:var(--space-2)}.gfe-column{--gfe-column-pad:var(--space-4);padding-top:var(--space-5);padding-bottom:calc(var(--space-8) + 2rem)}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .gfe-status-dot,:root:not([data-motion=full]) .gfe-tutor-pill--loading .gfe-tutor-pill__ring svg,:root:not([data-motion=full]) .gfe-toast,:root:not([data-motion=full]) .gfe-sheet,:root:not([data-motion=full]) .gfe-sheet-overlay{animation:none}}[data-motion=reduced] .gfe-status-dot,[data-motion=reduced] .gfe-tutor-pill--loading .gfe-tutor-pill__ring svg,[data-motion=reduced] .gfe-toast,[data-motion=reduced] .gfe-sheet,[data-motion=reduced] .gfe-sheet-overlay{animation:none}.gfe-learn{--gfe-refdock-w:clamp(272px, 21vw, 340px)}.gfe-dock--start{width:var(--gfe-refdock-w);border-left:0;border-right:1px solid var(--color-rail)}.gfe-dock--start .gfe-dock__panel{width:var(--gfe-refdock-w)}.gfe-dock__rail-chevron--start{transform:none}.gfe-dock__toggle--start svg{transform:rotate(180deg)}.gfe-refdock__icon{color:var(--color-accent);font-size:1.1rem;display:inline-flex}.gfe-refdock__title{font-weight:650;font-size:var(--text-sm)}.gfe-refdock__tabs{gap:var(--space-1);flex-wrap:wrap;display:flex}.gfe-refdock__tab{all:unset;box-sizing:border-box;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;font-weight:650}.gfe-refdock__tab[aria-selected=true]{color:var(--color-text);background:var(--color-surface-2)}.gfe-refdock__tab:focus-visible{outline:2px solid var(--color-focus)}.gfe-refdock__body{padding:var(--space-3) var(--space-4) var(--space-6)}.gfe-refmodal{z-index:31;border-top:1px solid var(--color-rail);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);height:min(88dvh,52rem);box-shadow:var(--shadow-2);animation:gfe-sheet-up var(--motion-slow) var(--motion-ease);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.gfe-refmodal:focus{outline:none}@media (min-width:640px){.gfe-refmodal{border:1px solid var(--color-rail);border-radius:var(--radius-lg);width:min(560px,92vw);height:min(80dvh,46rem);animation-name:gfe-fade-in;inset:50% auto auto 50%;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .gfe-refmodal{animation:none}}[data-motion=reduced] .gfe-refmodal{animation:none}.gfe-refbtn{all:unset;box-sizing:border-box;align-items:center;gap:var(--space-1);min-height:2rem;padding:0 var(--space-2);border:1px solid var(--color-rail);border-radius:var(--radius-pill);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;font-weight:700;display:inline-flex}.gfe-refbtn svg{color:var(--color-accent);font-size:1rem}.gfe-refbtn:hover{background:var(--color-surface-2)}.gfe-refbtn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-reflink{all:unset;color:var(--color-accent);text-underline-offset:3px;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.gfe-reflink:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.gfe-ascii{gap:var(--space-3);font-size:var(--text-sm);display:grid}.gfe-ascii__intro,.gfe-ascii__note{color:var(--color-text-muted);margin:0;line-height:1.5}.gfe-ascii__tools{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.gfe-ascii__search{align-items:center;gap:var(--space-2);flex:10rem;display:flex}.gfe-ascii__search-label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.gfe-ascii__input{min-width:0;min-height:2.5rem;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font:inherit;font-family:var(--font-mono);flex:1}.gfe-ascii__input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-ascii__toggle{align-items:center;gap:var(--space-1);min-height:2.5rem;color:var(--color-text-muted);cursor:pointer;display:inline-flex}.gfe-ascii__toggle input{width:1.1rem;height:1.1rem;accent-color:var(--color-accent)}.gfe-ascii__result{min-height:1.4em;color:var(--color-text);margin:0;font-weight:600}.gfe-ascii__pinned{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-piece);display:flex}.gfe-ascii__pinned-glyph{font-family:var(--font-mono);text-align:center;min-width:1.5ch;font-size:1.6rem;font-weight:700}.gfe-ascii__pinned-bits{color:var(--color-text-muted);font-family:var(--font-mono)}.gfe-ascii__unpin{all:unset;border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;place-items:center;margin-left:auto;display:inline-grid}.gfe-ascii__unpin:hover{background:var(--color-surface-2)}.gfe-ascii__unpin:focus-visible{outline:2px solid var(--color-focus)}.gfe-ascii__group{gap:var(--space-2);display:grid}.gfe-ascii__heading{margin:var(--space-2) 0 0;padding-bottom:var(--space-1);border-bottom:1px solid var(--color-rail);font-family:var(--font-prose);font-size:var(--text-md);justify-content:space-between;display:flex}.gfe-ascii__span{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:400}.gfe-ascii__grid{gap:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(2.9rem,1fr));margin:0;padding:0;list-style:none;display:grid}.gfe-ascii--binary .gfe-ascii__grid{grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr))}.gfe-ascii__cell--wide{grid-column:span 2}.gfe-ascii__btn{all:unset;box-sizing:border-box;width:100%;min-height:2.9rem;padding:var(--space-1) 2px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;text-align:center;align-content:center;justify-items:center;gap:1px;display:grid}.gfe-ascii__btn:hover{border-color:var(--color-rail)}.gfe-ascii__btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-ascii__btn.is-hit{border-color:var(--color-accent);background:var(--color-accent-bg)}.gfe-ascii__btn.is-pinned{border-color:var(--color-rail);background:var(--color-piece-lift);box-shadow:0 0 0 2px var(--color-rail)}.gfe-ascii__glyph{font-family:var(--font-mono);color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.1}.gfe-ascii__code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.gfe-ascii__btn.is-hit .gfe-ascii__code,.gfe-ascii__btn.is-pinned .gfe-ascii__code{color:var(--color-text);font-weight:700}.gfe-ascii__name{font-size:var(--text-xs);color:var(--color-text-muted)}.gfe-ascii__bits{font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.02em;font-size:.7rem;display:none}.gfe-ascii--binary .gfe-ascii__bits{display:block}.gfe-ascii__control summary{cursor:pointer;align-items:center;min-height:2rem;font-weight:650;display:flex}.gfe-ascii__control p{margin:var(--space-1) 0 var(--space-2);color:var(--color-text-muted)}.gfe-calc{gap:var(--space-3);display:grid}.gfe-calc__intro{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.gfe-calc__screen{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);gap:2px;display:grid}.gfe-calc__previous,.gfe-calc__result{min-height:1.25rem;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.gfe-calc__result.is-error{color:var(--color-danger);text-align:left;font-family:inherit}.gfe-calc__input{width:100%;min-width:0;min-height:2.75rem;padding:0 var(--space-1);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-family:var(--font-mono);font-size:var(--text-xl);text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0}.gfe-calc__input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-calc__keys{gap:var(--space-1);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.gfe-calc__key{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);min-height:2.75rem;color:var(--color-text);font:inherit;font-family:var(--font-mono);font-size:var(--text-lg);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);font-weight:600}.gfe-calc__key:hover{border-color:var(--color-rail)}.gfe-calc__key:active{transform:translateY(1px)}.gfe-calc__key:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-calc__key--op{background:var(--color-accent-bg);color:var(--color-accent)}.gfe-calc__key--fn{background:var(--color-bg);color:var(--color-text-muted);font-size:var(--text-md)}.gfe-calc__key--eq{background:var(--color-accent-fill);border-color:var(--color-accent-fill);color:var(--color-on-accent)}.gfe-calc__key--eq:hover{background:var(--color-accent-fill-hover)}.gfe-calc__heading{margin:0 0 var(--space-1);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-rail);font-family:var(--font-prose);font-size:var(--text-md)}.gfe-calc__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.gfe-calc__past{justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:flex}.gfe-calc__past:hover{border-color:var(--color-border-strong)}.gfe-calc__past:focus-visible{outline:2px solid var(--color-focus)}.gfe-calc__past-calc{color:var(--color-text-muted);overflow-wrap:anywhere}.gfe-calc__past-result{white-space:nowrap;font-weight:700}.gfe-mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.95rem;line-height:1;display:inline-flex}.gfe-mark--right{color:var(--color-success);background:var(--color-success-bg)}.gfe-mark--wrong{color:var(--color-danger);background:var(--color-danger-bg)}.gfe-mark--missed{color:var(--color-success);border:1.5px dashed var(--color-success)}.gfe-solution-toggle{margin-bottom:var(--space-3);justify-content:flex-end;display:flex}.gfe-solution-toggle .gfe-segmented__item{align-items:center;min-height:2.75rem;display:inline-flex}.gfe-option-face{display:contents}.gfe-order,.gfe-match,.gfe-bucket,.gfe-blanks,.gfe-trace,.gfe-machine,.gfe-lines,.gfe-select-chips{min-width:0;max-width:100%}.gfe-legend{gap:var(--space-1) var(--space-4);margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.gfe-legend li{align-items:center;gap:var(--space-1);display:inline-flex}.gfe-legend .gfe-mark{width:1.1rem;height:1.1rem;font-size:.7rem}@keyframes gfe-ix-snap{0%{transform:translate(-14px)scale(1.04)}65%{transform:translate(2px)scale(1)}to{transform:none}}@keyframes gfe-ix-pop{0%{opacity:.5;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes gfe-ix-flash{0%{opacity:.45}to{opacity:0}}@keyframes gfe-ix-led{0%{opacity:.2}}@keyframes gfe-ix-blink{50%{opacity:0}}.gfe-piece{--piece-tip:.875rem;--piece-edge:var(--color-rail);--piece-fill:var(--color-piece);--piece-shape:polygon(.3rem 0, calc(100% - var(--piece-tip)) 0, 100% 50%, calc(100% - var(--piece-tip)) 100%, .3rem 100%, 0 calc(100% - .3rem), 0 .3rem);isolation:isolate;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) calc(var(--piece-tip) + var(--space-2)) var(--space-2) var(--space-3);color:var(--color-text);font:inherit;text-align:left;-webkit-tap-highlight-color:transparent;transition:transform var(--motion-fast) var(--motion-ease);background:0 0;border:0;border-radius:0;margin:0;font-weight:650;line-height:1.3;display:flex;position:relative}.gfe-piece:before,.gfe-piece:after{content:"";z-index:-1;pointer-events:none;clip-path:var(--piece-shape);position:absolute}.gfe-piece:before{background:var(--piece-edge);inset:0}.gfe-piece:after{background:var(--piece-fill);inset:2px 2.5px 2px 2px}.gfe-piece__text{overflow-wrap:break-word;flex:1;min-width:0}.gfe-piece__mark{margin-left:auto}button.gfe-piece{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button.gfe-piece--item{cursor:grab}button.gfe-piece:hover{--piece-fill:var(--color-piece-hover)}button.gfe-piece:focus-visible{outline:none}button.gfe-piece:focus-visible:before{background:var(--color-focus);inset:-3px}.gfe-piece.is-selected,.gfe-piece.is-lifted{--piece-edge:var(--color-accent);--piece-fill:var(--color-piece-lift);filter:drop-shadow(0 6px 8px var(--color-overlay));transform:translateY(-2px)}.gfe-piece.is-lifted{cursor:grabbing;transform:rotate(-1.5deg)scale(1.03)}.gfe-piece.is-selected:before{inset:-2px}.gfe-piece.is-ghost{opacity:.3}.gfe-piece.is-snapped{animation:gfe-ix-snap var(--motion-slow) var(--motion-ease)}.gfe-piece.is-right{--piece-edge:var(--color-success);--piece-fill:var(--color-success-bg)}.gfe-piece.is-wrong{--piece-edge:var(--color-danger);--piece-fill:var(--color-danger-bg)}.gfe-piece--target{--piece-fill:var(--color-surface);--piece-shape:polygon(0 0, calc(100% - var(--piece-tip)) 0, 100% 50%, calc(100% - var(--piece-tip)) 100%, 0 100%, var(--piece-tip) 50%);padding-left:calc(var(--piece-tip) + var(--space-3));font-family:var(--font-prose);font-size:1.0625rem;font-weight:400;line-height:1.4}.gfe-piece--target:after{inset:2px 2.5px 2px 3px}button.gfe-piece--target:hover{--piece-fill:var(--color-surface-2)}.gfe-piece--hole{--piece-edge:var(--color-border-strong);--piece-fill:var(--color-socket);color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;justify-content:center;font-weight:600}.gfe-match{--match-chip-w:11rem;container-type:inline-size}.gfe-match__grid{grid-template-columns:var(--match-chip-w) minmax(0, 1fr);gap:var(--space-4) var(--space-5);align-items:start;display:grid}.gfe-match__heading,.gfe-bucket__heading{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:700}.gfe-match__pool-head,.gfe-bucket__pool-head{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:1.75rem;margin-bottom:var(--space-2);display:flex}.gfe-match__targets .gfe-match__heading{min-height:1.75rem;margin-bottom:var(--space-2);padding-left:calc(var(--match-chip-w) + var(--space-2));align-items:center;display:flex}.gfe-match__grid.is-pool-empty{grid-template-columns:minmax(0,1fr)}.gfe-match__grid.is-pool-empty .gfe-match__pool{display:none}.gfe-match__grid.is-pool-empty .gfe-match__targets .gfe-match__heading{padding-left:0}.gfe-match__pool{margin:calc(var(--space-2) * -1);padding:var(--space-2);border-radius:var(--radius-md);transition:border-color var(--motion-fast) var(--motion-ease);border:1px dashed #0000;align-self:stretch}.gfe-match__pool.is-over{border-color:var(--color-focus);background:var(--color-accent-bg)}.gfe-match__pool-list,.gfe-match__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.gfe-match__pool-item{display:flex}.gfe-match__pool-item>.gfe-piece{flex:1}.gfe-match__empty,.gfe-bucket__empty{padding:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.gfe-match__return{min-height:2.75rem;padding:0 var(--space-3);border:1px dashed var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent-bg);color:var(--color-accent);font-size:var(--text-xs);cursor:pointer;font-weight:700}.gfe-match__return:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-match__row{grid-template-columns:var(--match-chip-w) minmax(0, 1fr);align-items:stretch;display:grid}.gfe-match__socket{z-index:1;min-height:2.75rem;display:flex;position:relative}.gfe-match__socket>.gfe-piece,.gfe-match__hole{flex:1}.gfe-match__row>.gfe-piece--target{margin-left:calc(var(--piece-tip) * -1 + 3px)}.gfe-match__hole{color:#0000}.gfe-match.is-placing .gfe-piece--hole{--piece-edge:var(--color-accent);color:var(--color-text-muted)}.gfe-match__row.is-over .gfe-piece--hole,.gfe-match__row.is-over .gfe-piece--target{--piece-edge:var(--color-focus);--piece-fill:var(--color-accent-bg)}.gfe-match__fix{align-items:center;gap:var(--space-1) var(--space-2);margin:var(--space-1) 0 var(--space-1) calc(var(--piece-tip) + var(--space-1));font-size:var(--text-sm);color:var(--color-success);flex-wrap:wrap;grid-column:2;display:flex}.gfe-match__fix svg{flex-shrink:0}.gfe-match__fix-label{font-weight:700}.gfe-match__ghost{padding:.05rem var(--space-2);border:1.5px dashed var(--color-success);border-radius:var(--radius-sm);color:var(--color-text);font-weight:650}.gfe-match__overlay{width:100%;height:100%;display:flex}.gfe-match__overlay>.gfe-piece{flex:1}@container (width<=34rem){.gfe-match__grid{--match-chip-w:36%;grid-template-columns:minmax(0,1fr)}.gfe-match__pool{padding:var(--space-3);border:1px dashed var(--color-border-strong);background:var(--color-surface);margin:0}.gfe-match__pool-list{flex-wrap:wrap;display:flex}.gfe-match__pool-item>.gfe-piece{min-width:7.5rem}.gfe-match__targets .gfe-match__heading{padding-left:0}.gfe-piece--target{font-size:1rem}}.gfe-order{gap:var(--space-2);display:grid;container-type:inline-size}.gfe-order__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.gfe-order__row{align-items:center;gap:var(--space-2);min-height:3.25rem;padding:var(--space-1);border:1px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-piece);color:var(--color-text);cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;position:relative}.gfe-order__row:hover{background:var(--color-piece-hover)}.gfe-order__row.is-lifted{z-index:2;border-color:var(--color-accent);background:var(--color-piece-lift);box-shadow:var(--shadow-2);cursor:grabbing}.gfe-order.is-locked .gfe-order__row{padding-left:var(--space-3);cursor:default;-webkit-user-select:text;user-select:text}.gfe-order.is-locked .gfe-order__row:hover{background:var(--color-piece)}.gfe-order__handle,.gfe-order__move{border-radius:var(--radius-sm);width:2.75rem;height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.15rem;display:inline-flex}.gfe-order__handle{cursor:grab;touch-action:none}.gfe-order__handle:hover,.gfe-order__move:hover:not(:disabled){color:var(--color-text);background:var(--color-piece-lift)}.gfe-order__move:disabled{color:var(--color-border-strong);cursor:default}.gfe-order__handle:focus-visible,.gfe-order__move:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gfe-order__pos{border:1px solid var(--color-rail);width:1.75rem;height:1.75rem;color:var(--color-accent);font-size:var(--text-sm);font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.gfe-order__content{min-width:0;padding:calc(var(--space-2) + 2px) 0 calc(var(--space-2) - 2px);font-family:var(--font-prose);overflow-wrap:anywhere;flex:1;font-size:1.0625rem;line-height:1.4}.gfe-order__moves{gap:2px;display:flex}.gfe-order__end{align-items:center;gap:var(--space-1);padding-left:var(--space-2);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-weight:700;display:flex}.gfe-order__row.is-right{border-color:var(--color-success);background:var(--color-success-bg)}.gfe-order__row.is-right .gfe-order__pos{border-color:var(--color-success);color:var(--color-success)}.gfe-order__row.is-wrong{border-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-order__row.is-wrong .gfe-order__pos{border-color:var(--color-danger);color:var(--color-danger)}.gfe-order.is-locked .gfe-order__row.is-right:hover{background:var(--color-success-bg)}.gfe-order.is-locked .gfe-order__row.is-wrong:hover{background:var(--color-danger-bg)}.gfe-order__row>.gfe-mark{margin-right:var(--space-2)}.gfe-order__fix{margin-left:var(--space-2);padding:0 var(--space-2);border:1.5px dashed var(--color-success);border-radius:var(--radius-pill);font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-success);white-space:nowrap;font-weight:700;display:inline-block}@container (width<=26rem){.gfe-order__row{gap:var(--space-1)}.gfe-order__pos{width:1.5rem;height:1.5rem;font-size:var(--text-xs)}.gfe-order__content{font-size:1rem}.gfe-order__moves{gap:0}}.gfe-bucket{gap:var(--space-4);display:grid;container:bucket/inline-size}.gfe-bucket__pool{padding:var(--space-3);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--motion-fast) var(--motion-ease)}.gfe-bucket__pool.is-over{border-color:var(--color-focus);background:var(--color-accent-bg)}.gfe-bucket__chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.gfe-bucket__chips--in{padding:var(--space-3)}.gfe-bucket__grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));display:grid}.gfe-bucket__bin{border:1px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;min-height:9rem;display:flex;overflow:hidden}.gfe-bucket__bin.is-over{border-color:var(--color-focus);box-shadow:inset 0 0 0 2px var(--color-focus)}.gfe-bucket__head{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:0;border-bottom:1px solid var(--color-rail);background:var(--color-piece);color:var(--color-text);font:inherit;text-align:left;font-weight:700;display:flex}button.gfe-bucket__head{cursor:pointer}button.gfe-bucket__head:hover{background:var(--color-piece-hover)}button.gfe-bucket__head:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gfe-bucket.is-placing button.gfe-bucket__head{background:var(--color-accent-bg);color:var(--color-accent)}.gfe-bucket__name{min-width:0}.gfe-bucket__count{min-width:1.6rem;height:1.6rem;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-shrink:0;place-items:center;display:inline-grid}.gfe-bucket__drop{min-height:4rem;margin:var(--space-3);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-socket);color:var(--color-text-muted);font-size:var(--text-sm);flex:1;place-items:center;display:grid}.gfe-bucket.is-placing .gfe-bucket__drop{border-color:var(--color-accent)}.gfe-chip{align-items:center;gap:var(--space-1) var(--space-2);max-width:100%;min-height:2.75rem;padding:var(--space-1) var(--space-3);border:1.5px solid var(--color-rail);border-radius:var(--radius-pill);background:var(--color-piece);color:var(--color-text);font:inherit;text-align:left;transition:transform var(--motion-fast) var(--motion-ease);-webkit-tap-highlight-color:transparent;flex-wrap:wrap;font-weight:650;line-height:1.3;display:inline-flex}.gfe-chip__text{overflow-wrap:break-word;min-width:0}button.gfe-chip{cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none}button.gfe-chip:hover{background:var(--color-piece-hover)}button.gfe-chip:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-pill)}.gfe-chip.is-selected,.gfe-chip.is-lifted{border-color:var(--color-accent);background:var(--color-piece-lift);box-shadow:var(--shadow-2);transform:translateY(-2px)}.gfe-chip.is-lifted{cursor:grabbing;transform:rotate(-2deg)scale(1.04)}.gfe-chip.is-ghost{opacity:.3}.gfe-chip.is-snapped{animation:gfe-ix-pop var(--motion-slow) var(--motion-ease)}.gfe-chip.is-right{border-color:var(--color-success);background:var(--color-success-bg)}.gfe-chip.is-wrong{border-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-chip__mark{width:1.25rem;height:1.25rem;margin-right:calc(var(--space-2) * -1);font-size:.8rem}@container bucket (width<=26rem){.gfe-bucket__chips--in,.gfe-bucket__head{padding:var(--space-2)}}.gfe-chip__fix{padding-left:var(--space-2);border-left:1px solid var(--color-danger);color:var(--color-success);font-size:var(--text-xs);align-items:center;gap:.2rem;font-weight:700;display:inline-flex}.gfe-blanks__body{min-width:0}.gfe-blanks--prose .gfe-blanks__body{font-family:var(--font-prose);font-size:var(--text-lg);line-height:2.7}.gfe-blanks--prose .gfe-blanks__body :not(pre)>code{font-size:.85em}.gfe-blanks--code .gfe-blanks__body{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-code-bg);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre;tab-size:4;line-height:3.5;position:relative;overflow-x:auto}.gfe-blanks--code .gfe-blank__field{background-color:var(--color-surface-2);font-size:1em}.gfe-blanks__break{height:var(--space-2);display:block}.gfe-blank{align-items:center;gap:var(--space-1);vertical-align:baseline;white-space:nowrap;max-width:100%;margin:0 .15em;line-height:1.2;display:inline-flex}.gfe-blank__field{box-sizing:content-box;width:calc(var(--gfe-blank-ch,6) * 1ch);min-width:1.75rem;max-width:calc(100vw - 6rem);min-height:2.75rem;padding:0 var(--space-2);border:0;border-bottom:2px solid var(--color-rail);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-socket);color:var(--color-text);font-family:var(--font-mono);font-size:.92em;line-height:1.2}.gfe-blank__field::placeholder{color:var(--color-text-muted);opacity:1}.gfe-blank__field:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-blank__field:read-only,.gfe-blank__field:disabled{cursor:default;opacity:1;color:var(--color-text)}.gfe-blank__select{box-sizing:border-box;width:calc(var(--gfe-blank-ch,6) * 1ch + 2.5rem);appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - .95rem) 55%,calc(100% - .6rem) 55%;background-repeat:no-repeat;background-size:.35rem .35rem;padding-right:1.75rem}.gfe-blank__select:disabled{padding-right:var(--space-2);background-image:none}.gfe-blank__select option{background:var(--color-surface);color:var(--color-text)}.gfe-blank.is-right .gfe-blank__field{border-bottom-color:var(--color-success);background-color:var(--color-success-bg)}.gfe-blank.is-wrong .gfe-blank__field{border-bottom-color:var(--color-danger);background-color:var(--color-danger-bg)}.gfe-blank.is-wrong:has(.gfe-blank__fix) .gfe-blank__field{text-decoration:line-through;-webkit-text-decoration-color:var(--color-danger);text-decoration-color:var(--color-danger)}.gfe-blank__mark{width:1.25rem;height:1.25rem;font-size:.8rem}.gfe-blank__fix{border:1.5px dashed var(--color-success);border-radius:var(--radius-sm);color:var(--color-success);font-family:var(--font-mono);white-space:pre;padding:.1rem .4rem;font-size:.9em;font-weight:700}.gfe-trace__scroll{border:1px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-surface);position:relative;overflow-x:auto}.gfe-trace__scroll:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.gfe-trace__table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.gfe-trace__table th,.gfe-trace__table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);text-align:center;vertical-align:middle}.gfe-trace__table tbody tr:last-child>*{border-bottom:0}.gfe-trace__table thead th{border-bottom:1px solid var(--color-rail);background:var(--color-piece);font-size:var(--text-sm);white-space:nowrap;font-weight:700}.gfe-trace__col-label{font-family:var(--font-mono)}.gfe-trace__col.is-output .gfe-trace__col-label{font-family:var(--font-body)}.gfe-trace__col-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500;display:block}.gfe-trace__table .gfe-trace__step-head,.gfe-trace__table .gfe-trace__step{z-index:1;text-align:left;border-right:1px solid var(--color-border);position:sticky;left:0}.gfe-trace__table .gfe-trace__step{background:var(--color-surface);white-space:nowrap;font-weight:500}.gfe-trace__num{width:1.5rem;height:1.5rem;margin-right:var(--space-2);border:1px solid var(--color-rail);color:var(--color-accent);font-size:var(--text-xs);border-radius:50%;place-items:center;font-weight:700;display:inline-grid}.gfe-trace__step-text code{font-family:var(--font-mono);font-size:var(--text-sm)}.gfe-trace__table .gfe-trace__start>*{background:var(--color-surface-2);color:var(--color-text-muted)}.gfe-trace__start .gfe-trace__step{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.gfe-trace__value{font-family:var(--font-mono);white-space:pre;font-weight:650}.gfe-trace__empty{color:var(--color-text-muted)}.gfe-trace__cell.is-output .gfe-trace__value{border-radius:var(--radius-sm);background:var(--color-screen);color:var(--color-phosphor);padding:.1rem .5rem}.gfe-trace__cell .gfe-blank{margin:0}.gfe-trace__cell .gfe-blank__field{width:calc(max(var(--gfe-blank-ch,4), 4) * 1ch);text-align:center;font-size:var(--text-md);font-weight:650}.gfe-machine{border:1px solid var(--color-rail);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden;container-type:inline-size}.gfe-machine__top{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-rail);background:var(--color-piece);flex-wrap:wrap;display:flex}.gfe-machine__leds{gap:5px;display:inline-flex}.gfe-machine__led{background:var(--color-border-strong);border-radius:50%;width:9px;height:9px}.gfe-machine__led--busy{background:var(--color-success);animation:gfe-ix-led calc(var(--motion-slow) * 2) var(--motion-ease)}.gfe-machine__title{font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);font-weight:700}.gfe-machine__timeline{flex-wrap:wrap;gap:4px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.gfe-machine__tick{min-width:2.75rem;min-height:2.75rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-weight:700;line-height:1;display:inline-flex}.gfe-machine__tick svg{font-size:.75rem}.gfe-machine__tick:hover{color:var(--color-text);border-color:var(--color-accent)}.gfe-machine__tick:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.gfe-machine__tick.is-current{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent)}.gfe-machine__dot{border:1.5px solid;border-radius:50%;width:6px;height:6px}.gfe-machine__tick.is-filled .gfe-machine__dot{background:currentColor}.gfe-machine__tick.is-right{color:var(--color-success);border-color:var(--color-success)}.gfe-machine__tick.is-wrong{color:var(--color-danger);border-color:var(--color-danger)}.gfe-machine__tick.is-current.is-right{background:var(--color-success-bg)}.gfe-machine__tick.is-current.is-wrong{background:var(--color-danger-bg)}.gfe-machine__body{gap:var(--space-4);padding:var(--space-4);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);display:grid}.gfe-machine__label{margin:0 0 var(--space-2);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.gfe-machine__when{letter-spacing:.04em;text-transform:none;color:var(--color-accent)}.gfe-machine__listing-wrap{padding:var(--space-2) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-code-bg);position:relative}.gfe-machine__listing{font-family:var(--font-mono);font-size:var(--text-sm);margin:0;padding:0;list-style:none}.gfe-machine__line{align-items:center;gap:var(--space-3);min-height:2.25rem;padding:var(--space-1) var(--space-3) var(--space-1) 2.25rem;display:flex;position:relative}.gfe-machine__ln{text-align:right;width:1.25rem;color:var(--color-text-muted);flex-shrink:0}.gfe-machine__instr{overflow-wrap:anywhere;min-width:0}.gfe-machine__instr code{background:0 0;border:0;padding:0;font-size:1em}.gfe-machine__line.is-done .gfe-machine__instr{color:var(--color-text-muted)}.gfe-machine__line.is-ran{background:var(--color-accent-bg)}.gfe-machine__line.is-next .gfe-machine__instr{font-weight:700}.gfe-machine__tag{padding-left:var(--space-2);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin-left:auto;font-size:.6875rem;font-weight:700}.gfe-machine__tag--next{color:var(--color-text-muted)}.gfe-machine__line--end .gfe-machine__instr{font-family:var(--font-body);font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.gfe-machine__line--end.is-next .gfe-machine__instr{color:var(--color-text);font-weight:700}.gfe-machine__ip{color:var(--color-accent);pointer-events:none;transition:transform var(--motion-base) var(--motion-ease);align-items:center;font-size:1.1rem;display:flex;position:absolute;top:0;left:.5rem}.gfe-machine__cells{gap:var(--space-3) var(--space-2);grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}.gfe-machine__cell{flex-direction:column;align-items:center;gap:3px;min-width:0;display:flex}.gfe-machine__cell-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);font-weight:700}.gfe-machine__box{border:2px solid var(--color-rail);border-radius:var(--radius-sm);background:var(--color-socket);place-items:center;width:100%;min-height:3.25rem;display:grid;position:relative}.gfe-machine__box:after{content:"";border-radius:inherit;background:var(--color-accent);opacity:0;pointer-events:none;position:absolute;inset:0}.gfe-machine__cell.is-written .gfe-machine__box:after{animation:gfe-ix-flash calc(var(--motion-slow) * 2.5) var(--motion-ease)}.gfe-machine__cell.is-blank .gfe-machine__box{border-style:dashed;border-color:var(--color-accent)}.gfe-machine__cell.is-right .gfe-machine__box{border-style:solid;border-color:var(--color-success);background:var(--color-success-bg)}.gfe-machine__cell.is-wrong .gfe-machine__box{border-style:solid;border-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-machine__value{font-family:var(--font-mono);font-size:var(--text-lg);white-space:pre;font-weight:700}.gfe-machine__nothing{color:var(--color-text-muted)}.gfe-machine__addr{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.6875rem}.gfe-machine__addr:before{content:"addr "}.gfe-blank--cell{flex-direction:column;gap:2px;width:100%;margin:0}.gfe-blank--cell .gfe-blank__field{box-sizing:border-box;border-radius:var(--radius-sm);width:100%;min-height:3rem;font-size:var(--text-lg);text-align:center;background-color:#0000;border:0;font-weight:700}.gfe-blank--cell.is-right .gfe-blank__field,.gfe-blank--cell.is-wrong .gfe-blank__field{background-color:#0000}.gfe-blank--cell .gfe-blank__mark{position:absolute;top:-.6rem;right:-.5rem}.gfe-blank--cell .gfe-blank__fix{margin-bottom:var(--space-1);font-size:var(--text-sm)}.gfe-machine__screens{gap:var(--space-3);padding:0 var(--space-4) var(--space-4);display:grid}.gfe-machine__crt{align-items:center;gap:var(--space-2);min-height:3.25rem;padding:var(--space-2) var(--space-4);border:2px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-screen);color:var(--color-phosphor);font-family:var(--font-mono);font-size:var(--text-lg);flex-wrap:wrap;display:flex;position:relative;overflow:hidden}.gfe-machine__crt:before{content:"";background:repeating-linear-gradient(to bottom, var(--color-phosphor) 0 1px, transparent 1px 4px);opacity:.05;pointer-events:none;position:absolute;inset:0}.gfe-machine__crt:after{content:"";background:var(--color-phosphor);opacity:0;pointer-events:none;position:absolute;inset:0}.gfe-machine__crt.is-written:after{animation:gfe-ix-flash calc(var(--motion-slow) * 2.5) var(--motion-ease)}.gfe-machine__prompt{opacity:.7}.gfe-machine__crt .gfe-machine__value,.gfe-machine__crt .gfe-machine__nothing{color:var(--color-phosphor)}.gfe-machine__cursor{background:var(--color-phosphor);width:.6em;height:1.1em;animation:1.1s step-end infinite gfe-ix-blink}.gfe-blank--screen{flex-wrap:wrap;margin:0}.gfe-blank--screen .gfe-blank__field{border-bottom-color:var(--color-phosphor);color:var(--color-phosphor);font-size:var(--text-lg);background-color:#0000}.gfe-blank--screen.is-right .gfe-blank__field{border-bottom-color:var(--color-success)}.gfe-blank--screen.is-wrong .gfe-blank__field{border-bottom-color:var(--color-danger)}.gfe-blank--screen .gfe-blank__fix{border-color:var(--color-phosphor);color:var(--color-phosphor)}.gfe-machine__controls{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface-2);flex-wrap:wrap;display:flex}.gfe-machine__controls .gfe-btn{min-height:2.75rem}.gfe-machine__status{font-size:var(--text-sm);color:var(--color-text);font-weight:650}.gfe-machine__todo{color:var(--color-text-muted);font-weight:500}.gfe-machine__spacer{flex:1}@container (width<=36rem){.gfe-machine__body{padding:var(--space-3);grid-template-columns:minmax(0,1fr)}.gfe-machine__screens{padding:0 var(--space-3) var(--space-3)}.gfe-machine__cells{grid-template-columns:repeat(4,minmax(0,1fr))}.gfe-machine__timeline{width:100%;margin-left:0}.gfe-machine__controls{padding:var(--space-3)}.gfe-machine__spacer{display:none}.gfe-machine__status{flex-basis:100%;order:-1}}.gfe-select-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.gfe-select-chip{align-items:center;gap:var(--space-2);max-width:100%;min-height:2.75rem;padding:var(--space-1) var(--space-4) var(--space-1) var(--space-3);border:1.5px solid var(--color-rail);border-radius:var(--radius-pill);background:var(--color-piece);color:var(--color-text);font:inherit;text-align:left;-webkit-tap-highlight-color:transparent;font-weight:600;line-height:1.3;display:inline-flex}button.gfe-select-chip{cursor:pointer;touch-action:manipulation}button.gfe-select-chip:hover{background:var(--color-piece-hover)}button.gfe-select-chip:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-pill)}.gfe-select-chip__box{border:1.5px solid var(--color-rail);border-radius:4px;flex-shrink:0;place-items:center;width:1.25rem;height:1.25rem;font-size:.85rem;display:inline-grid}.gfe-select-chip__text{overflow-wrap:anywhere;min-width:0}.gfe-select-chip.is-picked{border-color:var(--color-accent);background:var(--color-accent-bg)}.gfe-select-chip.is-picked .gfe-select-chip__box{border-color:var(--color-accent-fill);background:var(--color-accent-fill);color:var(--color-on-accent)}.gfe-select-chip.is-right{border-color:var(--color-success);background:var(--color-success-bg)}.gfe-select-chip.is-wrong{border-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-select-chip.is-missed{border-style:dashed;border-color:var(--color-success)}.gfe-select-chip .gfe-mark{width:1.25rem;height:1.25rem;margin-right:calc(var(--space-2) * -1);font-size:.8rem}.gfe-lines{border:1px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-code-bg);overflow:hidden}.gfe-lines__scroll{padding:var(--space-1) 0;position:relative;overflow-x:auto}.gfe-lines__line{align-items:center;gap:var(--space-3);width:100%;min-width:max-content;min-height:2.75rem;padding:0 var(--space-3) 0 0;color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-left:3px solid #0000;margin:0;display:flex}button.gfe-lines__line{cursor:pointer}button.gfe-lines__line:hover{background:var(--color-surface-2)}button.gfe-lines__line:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.gfe-lines__num{text-align:right;width:2.25rem;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.gfe-lines__code{white-space:pre;flex:1}.gfe-lines__line.is-picked{border-left-color:var(--color-accent);background:var(--color-accent-bg)}.gfe-lines__line.is-picked .gfe-lines__num{color:var(--color-accent);font-weight:700}.gfe-lines__line.is-right{border-left-color:var(--color-success);background:var(--color-success-bg)}.gfe-lines__line.is-wrong{border-left-color:var(--color-danger);background:var(--color-danger-bg)}.gfe-lines__line.is-missed{border-left-style:dashed;border-left-color:var(--color-success)}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .gfe-machine__cursor,:root:not([data-motion=full]) .gfe-machine__led--busy{animation:none}}[data-motion=reduced] .gfe-machine__cursor,[data-motion=reduced] .gfe-machine__led--busy{animation:none}.gfe-machine__history{margin:0 0 calc(-1 * var(--radius-md));padding:var(--space-2) var(--space-4) calc(var(--space-2) + var(--radius-md));border:2px solid var(--color-rail);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--color-screen);color:var(--color-phosphor);font-family:var(--font-mono);font-size:var(--text-sm);opacity:.85;border-bottom:0;gap:2px;list-style:none;display:grid}.gfe-bucket__chips--in .gfe-chip{border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.gfe-bucket__chips--in button.gfe-chip:focus-visible{border-radius:var(--radius-md)}.page-center{place-items:center;min-height:60vh;display:grid}.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);margin:0 0 var(--space-2);font-weight:700}.skip-link{left:var(--space-3);z-index:10;background:var(--color-surface);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);position:absolute;top:-3rem}.skip-link:focus{top:var(--space-3)}.shell{--shell-header-h:3.875rem;--gfe-dock-top:var(--shell-header-h);flex-direction:column;min-height:100vh;display:flex}.shell__header{z-index:5;align-items:center;gap:var(--space-5);min-height:var(--shell-header-h);padding:var(--space-2) var(--space-5);background:var(--color-bg);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-2);color:var(--color-text);text-decoration:none;display:inline-flex}.brand__mark{color:var(--color-accent);display:inline-flex}.brand__name{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.01em;font-weight:700}.shell__nav{gap:var(--space-1);display:flex}.shell__nav a{color:var(--color-text-muted);font-weight:600;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-decoration:none}.shell__nav a:hover{color:var(--color-text);background:var(--color-surface-2)}.shell__nav a.active{color:var(--color-text);background:var(--color-surface-2);box-shadow:inset 0 -2px 0 var(--color-accent)}.shell__right{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.shell__user{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:inline-flex}.shell__name{font-weight:600}.shell__main{width:100%;max-width:1320px;padding:var(--space-6) var(--space-5) var(--space-7);flex:1;margin:0 auto}.shell__main--bleed{max-width:none;min-height:calc(100dvh - var(--shell-header-h));flex-direction:column;padding:0;display:flex}.shell__footer{justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);font-size:var(--text-xs);color:var(--color-text-muted);border-top:1px solid var(--color-border);display:flex}.field{gap:var(--space-2);display:grid}.field__label{font-weight:600;font-size:var(--text-sm)}.field__input{min-height:2.5rem;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-bg)}.field__input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.field__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.field__error{color:var(--color-danger);font-size:var(--text-sm)}.chip{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;transition:border-color var(--motion-fast) var(--motion-ease);padding:.3rem .75rem;font-weight:600}.chip:hover:not(:disabled){border-color:var(--color-accent)}.signin{min-height:100vh;padding:var(--space-6) var(--space-4);place-items:center;display:grid}.signin__panel{gap:var(--space-5);width:min(460px,100%);display:grid}.signin__intro h1{font-size:var(--text-3xl);margin-bottom:var(--space-2)}.signin__tagline{color:var(--color-text-muted);font-size:var(--text-lg)}.signin__form{gap:var(--space-4);display:grid}.signin__sso{gap:var(--space-2);display:grid}.signin__sso .gfe-btn{text-decoration:none}.signin__note{font-size:var(--text-sm);margin:var(--space-3) 0 0}.signin__tutor{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);margin:0;display:flex}.dashboard{gap:var(--space-5);display:grid}.dashboard__hero{justify-content:space-between;align-items:flex-end;gap:var(--space-5);flex-wrap:wrap;display:flex}.dashboard__hero h1{margin-bottom:var(--space-1)}.dashboard__hero p{margin:0}.dashboard__grid{gap:var(--space-5);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;display:grid}.dashboard__side{gap:var(--space-5);display:grid}.progress-list{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.progress-list__item.is-locked .progress-list__title{color:var(--color-text-muted)}.progress-list__head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.progress-list__title{font-weight:650}.progress-list__badges{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:inline-flex}.progress-list__summary{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-2)}.progress-list__none{font-size:var(--text-xs);color:var(--color-text-muted);margin:0;font-style:italic}.howto{gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin:0;padding-left:1.2em;display:grid}.howto strong{color:var(--color-text)}.tutor-card__reason{font-size:var(--text-sm);margin:var(--space-2) 0 var(--space-3)}.skillmap{padding:var(--space-2) var(--space-1) var(--space-3);overflow-x:auto}.skillmap__canvas{margin:0 auto;position:relative}.skillmap__edges{position:absolute;inset:0;overflow:visible}.skillmap__edge{fill:none;stroke:var(--color-border-strong);stroke-width:1.5px;stroke-dasharray:4 5}.skillmap__edge--done{stroke:var(--color-accent);stroke-dasharray:none;opacity:.8}.skillnode{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);text-align:left;cursor:pointer;box-shadow:var(--shadow-1);transition:border-color var(--motion-fast) var(--motion-ease);display:flex;position:absolute}.skillnode:hover:not(:disabled){border-color:var(--color-accent)}.skillnode:disabled{cursor:default;opacity:.55;box-shadow:none}.skillnode__text{min-width:0;display:grid}.skillnode__title{font-weight:650;font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.skillnode__phase{font-size:var(--text-xs);color:var(--color-text-muted)}.skillnode__pct{font-variant-numeric:tabular-nums;font-size:.7rem;font-weight:700}.skillnode--mastered{border-color:var(--color-accent);background:var(--color-accent-bg)}.skillnode--mastered .gfe-ring__content{color:var(--color-accent);font-size:1.1rem}.skillnode--current{outline:2px solid var(--color-accent);outline-offset:3px}.skillnode--remediate{border-color:var(--color-danger)}.skillnode--check{border-color:var(--color-warning)}.skillnode--glow{box-shadow:0 0 0 4px var(--color-accent-bg), var(--shadow-2)}.skillnode__dot{background:var(--color-info);width:8px;height:8px;animation:gfe-pulse var(--motion-pulse) ease-in-out infinite;border-radius:50%;position:absolute;top:6px;right:6px}.gfe-column .lesson{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.gfe-column .lesson .gfe-prose{max-width:none}.gfe-column .lesson--example{padding:var(--space-4) var(--space-5) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.gfe-column .activity{gap:var(--space-5)}.gfe-column .activity__header{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.activity{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.activity__header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.activity__title{font-size:var(--text-2xl);margin:0}.activity__title:focus{outline:none}.activity__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.why-toggle{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:0 0;border:0;font-weight:600;display:inline-flex}.why-toggle:hover{color:var(--color-text)}.activity__reason{font-size:var(--text-sm);color:var(--color-text-muted);border-left:2px solid var(--color-accent);padding:var(--space-1) var(--space-3);margin:0}.activity__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lesson .gfe-prose{max-width:75ch}.lesson--example{background:var(--color-surface-2)}.item{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.item__prompt{font-size:var(--text-lg)}.item__prompt .gfe-code{font-size:var(--text-sm)}.hints{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.hints__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.hints__list li{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-warning-bg)}.hints__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-warning);margin-bottom:var(--space-1);font-weight:700;display:block}.hints__row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.hints__note{font-size:var(--text-xs)}.hints__off{font-size:var(--text-sm);margin:0}.result{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.result__explanation h2,.result__explanation h3{font-size:var(--text-md);font-family:var(--font-body);margin-bottom:var(--space-2);font-weight:700}.result__mastery{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.code-area{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-code-bg);overflow:hidden}.code-area__bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-xs);display:flex}.code-area__file{font-family:var(--font-mono);font-weight:600}.code-area__status{align-items:center;gap:var(--space-2);display:inline-flex}.editor .cm-editor{background:var(--color-code-bg);min-height:12rem;max-height:60vh;color:var(--color-text);font-size:var(--text-sm)}.editor .cm-editor.cm-focused{outline:none}.editor .cm-scroller{font-family:var(--font-mono);line-height:1.6}.editor .cm-content{caret-color:var(--color-accent);padding:var(--space-3) 0}.editor .cm-cursor{border-left-color:var(--color-accent)}.editor .cm-gutters{background:var(--color-code-bg);color:var(--color-text-muted);border-right:1px solid var(--color-border)}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:var(--color-surface)}.editor .cm-selectionBackground,.editor .cm-focused .cm-selectionBackground{background:var(--color-accent-bg)!important}.editor .cm-content ::selection{background:var(--color-accent-bg)!important}.editor .cm-matchingBracket{background:var(--color-accent-bg);outline:1px solid var(--color-accent)}.editor .cm-placeholder{color:var(--color-text-muted)}.editor .cm-tooltip{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text)}.tests{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.tests__caption{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600;display:flex}.tests__score{color:var(--color-danger)}.tests__score--pass{color:var(--color-success)}.tests__list{padding:var(--space-2) 0;margin:0;list-style:none}.test{gap:var(--space-3);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);display:flex}.test__icon{width:1.2rem;color:var(--color-text-muted);flex-shrink:0;justify-content:center;padding-top:.2rem;display:inline-flex}.test--passed .test__icon{color:var(--color-success)}.test--failed .test__icon{color:var(--color-danger)}.test__dot{border:1.5px solid var(--color-border-strong);border-radius:50%;width:.5rem;height:.5rem;margin-top:.2rem}.test__body{gap:var(--space-1);min-width:0;display:grid}.test__name code{font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-word}.test__hidden{color:var(--color-text-muted);font-size:var(--text-xs)}.test__message{color:var(--color-danger);font-size:var(--text-xs);font-family:var(--font-mono)}.test--passed .test__message{color:var(--color-text-muted)}.test__printed{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-muted);white-space:pre-wrap;border-left:2px solid var(--color-border-strong);padding-left:var(--space-2);margin:0}.solution{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface)}.solution summary{cursor:pointer;font-weight:600}.solution .gfe-code{margin:var(--space-3) 0 0}.done{text-align:center;padding:var(--space-7) var(--space-5)}.done__icon{color:var(--color-accent);font-size:2.5rem}.done .activity__actions{justify-content:center}.tutor{gap:var(--space-3);min-height:0;padding:var(--space-4);flex-direction:column;flex:1;display:flex}.tutor__note{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-left:2px solid var(--color-rail);background:var(--color-surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.tutor__consent p{font-size:var(--text-sm)}.tutor__reason{font-size:var(--text-xs)}.tutor__progress{gap:var(--space-2);font-size:var(--text-sm);display:grid}.tutor__progress p{margin:0}.tutor__progress-text{font-size:var(--text-xs);font-family:var(--font-mono);word-break:break-word}.tutor__bar{border-radius:var(--radius-pill);background:var(--color-surface-2);height:.5rem;overflow:hidden}.tutor__bar-fill{transform-origin:0;background:var(--color-info);width:100%;height:100%;transition:transform var(--motion-slow) var(--motion-ease)}.tutor__messages{gap:var(--space-3);min-height:12rem;padding-right:var(--space-1);-webkit-mask-image:linear-gradient(to bottom, transparent 0, var(--color-bg) 2.5rem);mask-image:linear-gradient(to bottom, transparent 0, var(--color-bg) 2.5rem);-webkit-mask-image:linear-gradient(to bottom, transparent 0, var(--color-bg) 2.5rem);flex-direction:column;flex:1;padding-top:2rem;display:flex;overflow-y:auto}.tutor__empty{font-size:var(--text-sm);margin:auto 0 0}.msg{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);max-width:95%}.msg .gfe-prose{max-width:none}.msg .gfe-code{font-size:var(--text-xs);margin-bottom:var(--space-2)}.msg--user{background:var(--color-accent-bg);align-self:flex-end}.msg--assistant{background:var(--color-surface-2);align-self:flex-start}.msg--error{background:var(--color-danger-bg);color:var(--color-danger)}.tutor__suggestions{gap:var(--space-2);flex-wrap:wrap;display:flex}.tutor__form{gap:var(--space-2);align-items:flex-end;display:flex}.tutor__input{resize:vertical;min-height:2.5rem;max-height:10rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-bg);font-size:var(--text-sm);flex:1}.tutor__input:focus-visible{outline:2px solid var(--color-focus)}.tutor__locked{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin:0;display:flex}.settings{gap:var(--space-5);max-width:820px;display:grid}.setting{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);display:flex}.setting:last-of-type{border-bottom:0}.setting__label{font-weight:650}.setting__desc{font-size:var(--text-sm);color:var(--color-text-muted);max-width:48ch}.setting__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:flex}.setting--switch .gfe-switch-row{flex:1;padding:0}.setting--switch .gfe-switch-row__label{font-weight:650}.setting--switch .gfe-switch-row__desc{max-width:48ch}.capability{margin-top:var(--space-3);font-size:var(--text-sm)}.capability summary{cursor:pointer;font-weight:600}.capability__list{gap:var(--space-1) var(--space-4);margin:var(--space-3) 0 0;font-family:var(--font-mono);font-size:var(--text-xs);grid-template-columns:max-content 1fr;display:grid}.capability__row{display:contents}.capability dt{color:var(--color-text-muted)}.capability dd{word-break:break-word;margin:0}@media (max-width:1080px){.dashboard__grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:960px){.shell__name{display:none}}@media (max-width:720px){.shell__header{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.shell__nav{order:3;width:100%}.shell__main{padding:var(--space-5) var(--space-4) var(--space-6)}.shell__main--bleed{padding:0}.setting{flex-direction:column;align-items:flex-start}.setting--switch{align-items:stretch}}@media (max-width:480px){.shell__header:has(.gfe-tutor-pill--busy) .brand__name{display:none}}.milestones{gap:var(--space-5);counter-reset:milestone;margin:0;padding:0;list-style:none;display:grid}.milestone{gap:var(--space-3);padding-left:var(--space-4);border-left:1px solid var(--color-rail);display:grid}.milestone--upcoming{border-left-color:var(--color-border)}.milestone__header{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.milestone__num{border:1px solid var(--color-rail);width:2rem;height:2rem;color:var(--color-rail);font-family:var(--font-prose);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.milestone--upcoming .milestone__num{border-color:var(--color-border-strong);color:var(--color-text-muted)}.milestone--done .milestone__num{background:var(--color-accent-bg);color:var(--color-accent);border-color:var(--color-accent)}.milestone__titles{flex:16rem;min-width:0}.milestone__title{font-family:var(--font-prose);font-size:var(--text-lg);margin:0}.milestone__summary{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.milestone__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.milestone__count{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.milestone .skillmap__canvas{margin:0}.progress-group+.progress-group{margin-top:var(--space-5)}.progress-group__title{margin:0 0 var(--space-3);font-family:var(--font-prose);font-size:var(--text-md);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-rail)}.lede{font-size:var(--text-lg)}.placement-topics{margin:var(--space-4) 0;gap:var(--space-3);padding:0;list-style:none;display:grid}.placement-topics__item{gap:var(--space-3);align-items:baseline;display:flex}.placement-topics__num{text-align:right;width:1.6rem;font-family:var(--font-prose);color:var(--color-rail);flex:none;font-weight:700}.placement-topics__title{font-weight:650;display:block}.placement-topics__summary{font-size:var(--text-sm);color:var(--color-text-muted);display:block}.placement-offer{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-left:3px solid var(--color-rail);border-radius:var(--radius-md);background:var(--color-surface)}.placement-offer__title{margin:0 0 var(--space-2);font-family:var(--font-prose);font-size:var(--text-lg)}.placement-tiers{margin:var(--space-3) 0;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);padding:0;list-style:none;display:grid}.placement-tiers .gfe-badge{margin-right:var(--space-1)}.placement-offer__actions{flex-wrap:wrap}.placement-offer__actions .gfe-btn,.section-skip .gfe-btn{white-space:normal;max-width:100%;line-height:var(--leading-tight);padding-block:var(--space-2);text-align:left}.placement-offer__note{font-size:var(--text-xs);margin:var(--space-2) 0 0}.placement-strip{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.placement-strip__text{gap:var(--space-2);display:grid}.placement-strip__label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.placement-strip__steps{gap:6px;display:flex}.placement-strip__step{background:var(--color-border-strong);border-radius:2px;width:28px;height:4px}.placement-strip__step.is-done{background:var(--color-rail)}.placement-strip__step.is-current{background:var(--color-accent)}.placement-results{margin:var(--space-4) 0;gap:var(--space-3);padding:0;list-style:none;display:grid}.placement-results__item{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface)}.placement-results__item--known{border-left-color:var(--color-success)}.placement-results__item--fast-track{border-left-color:var(--color-accent)}.placement-results__item--learn{border-left-color:var(--color-info)}.placement-results__head{justify-content:space-between;gap:var(--space-3);align-items:center;display:flex}.placement-results__title{font-weight:650}.placement-results__text{margin:var(--space-1) 0 0;font-size:var(--text-sm)}.placement-results__score{margin:var(--space-1) 0 0;font-size:var(--text-xs)}.placement-results__ok,.placement-results__no{align-items:center;gap:2px;display:inline-flex}.placement-results__ok svg,.placement-results__no svg{width:.9em;height:.9em}.placement-results__ok{color:var(--color-success)}.placement-saved{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-4);display:flex}.test__rule{font-size:var(--text-sm)}.link-button{font:inherit;color:var(--color-accent);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-button:disabled{cursor:default}.placement-strip__error{flex-basis:100%;margin:0}.gfe-column .placement-topics__summary,.gfe-column .placement-results__text{font-family:var(--font-prose)}.ix-instruction{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);margin:0;display:flex}.ix-instruction svg{color:var(--color-accent);flex-shrink:0;margin-top:.2rem}.ix-body{min-width:0}.ix-actions .gfe-btn{min-height:2.75rem}.ix-actions__note{font-size:var(--text-sm)}.ix-actions__reset{margin-left:auto}@media (max-width:480px){.ix-actions>.gfe-btn--primary{flex:100%}.ix-actions__reset{margin-left:0}}.section-skip{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.section-skip__title{margin:0 0 var(--space-2);font-family:var(--font-prose);font-size:var(--text-lg)}.section-skip-note{margin:0 0 var(--space-4)}.section-skip-note__text{align-items:center;gap:0 var(--space-1);font-size:var(--text-sm);color:var(--color-text);flex-wrap:wrap;margin:0;display:flex}.section-skip-note__text svg{color:var(--color-info)}.milestone--skipped{border-left-style:dashed;border-left-color:var(--color-border-strong)}.milestone--skipped .milestone__num{border-style:dashed;border-color:var(--color-border-strong);color:var(--color-text-muted)}.milestone__skip{font-size:var(--text-xs)}.skillnode--skipped{box-shadow:none;background:0 0;border-style:dashed}.skillnode--skipped .skillnode__title{color:var(--color-text-muted)}.dashboard__cta{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.revisit-strip{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.revisit-strip__text{align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin:0;display:inline-flex}.revisit-strip__text svg{color:var(--color-info)}.revisit-strip__label{font-weight:650}.revisit-strip__where{color:var(--color-text-muted)}.revisit-strip__error{flex-basis:100%;margin:0}.revisit-topics{margin:var(--space-4) 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.revisit-topics__item{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-left:3px solid var(--color-info);border-radius:var(--radius-md);background:var(--color-surface);flex-wrap:wrap;display:flex}.revisit-topics__title{font-weight:650}.revisit-topics__score{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.result__practice-only{margin:var(--space-2) 0 0;font-size:var(--text-sm)}.dashboard__hero>*{min-width:0;max-width:100%}.dashboard__cta .gfe-btn{white-space:normal;max-width:100%;line-height:var(--leading-tight);padding-block:var(--space-2);text-align:left}.msg__tools{margin-top:var(--space-1);justify-content:flex-end;display:flex}.msg__tools:has(.reply-flag){justify-content:stretch}.reply-flag__toggle{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);transition:color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.reply-flag__toggle:hover{color:var(--color-warning);border-color:var(--color-border-strong)}.reply-flag__toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.reply-flag{gap:var(--space-2);width:100%;padding-top:var(--space-2);border-top:1px solid var(--color-border);display:grid}.reply-flag__label{font-size:var(--text-xs);font-weight:600}.reply-flag__note{resize:vertical;width:100%;min-height:2.5rem;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-bg);font-size:var(--text-sm)}.reply-flag__note:focus-visible{outline:2px solid var(--color-focus)}.reply-flag__privacy{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.reply-flag__error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.reply-flag__actions{gap:var(--space-2);display:flex}.reply-flag__done{font-size:var(--text-xs);color:var(--color-success);margin:0}.looked-up{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-info);border-radius:var(--radius-sm);background:var(--color-info-bg)}.looked-up--pointer{border-left-color:var(--color-accent);background:var(--color-accent-bg)}.looked-up__label{margin:0 0 var(--space-1);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-weight:700}.looked-up__list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.looked-up__fact .gfe-prose p{margin:0}.looked-up__open{align-items:center;gap:var(--space-1);margin-top:var(--space-1);color:var(--color-accent);font:inherit;font-size:var(--text-xs);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline;display:inline-flex}.looked-up__open:hover{color:var(--color-text)}.looked-up__open:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-sm)}.lab,.lab__section,.lab-cases,.lab-case,.lab-result{grid-template-columns:minmax(0,1fr)}.lab{gap:var(--space-5);max-width:1200px;margin:0 auto;display:grid}.lab__header h1{margin:0 0 var(--space-2)}.lab__header p{max-width:70ch}.lab__section{gap:var(--space-5);display:grid}.lab-controls{gap:var(--space-4);flex-wrap:wrap;align-items:flex-end;display:flex}.lab-field{gap:var(--space-1);display:grid}.lab-field__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:700}.lab-input{min-height:2.25rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm)}.lab-input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.lab-check{gap:var(--space-2);min-height:2.25rem;font-size:var(--text-sm);align-items:center;display:flex}.lab-actions{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.lab-running{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-left:2px solid var(--color-info);background:var(--color-info-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--text-sm)}.lab-running p{margin:0}.lab-model{gap:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;display:flex}.lab-problems{padding-left:var(--space-5);font-size:var(--text-sm);margin:0}.lab-table-wrap{overflow-x:auto}.lab-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.lab-table th,.lab-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);white-space:nowrap}.lab-table thead th{color:var(--color-text-muted);font-weight:600}.lab-table tbody th{font-weight:600}.lab-fails{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-text-muted);padding:0;list-style:none}.lab-cases{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.lab-case{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.lab-case__header{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.lab-case__id{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700}.lab-case__topic{font-size:var(--text-xs)}.lab-case__question{font-size:var(--text-lg);font-family:var(--font-prose);margin:0}.lab-case__results{gap:var(--space-3);display:grid}.lab-case__results--2{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-case__results--3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:1100px){.lab-case__results--3{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.lab-case__results--2{grid-template-columns:minmax(0,1fr)}}.lab-history{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-left:2px solid var(--color-border-strong);font-size:var(--text-sm);color:var(--color-text-muted);margin:0;list-style:none;display:grid}.lab-history__learner{margin:0;font-weight:600}.lab-history__tutor .gfe-prose p{margin:0 0 var(--space-1)}.lab-result{gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:var(--text-sm);align-content:start;display:grid}.lab-result__head{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.lab-result__reply .gfe-prose{max-width:none}.lab-result__error{color:var(--color-danger);margin:0}.lab-result__empty{margin:0}.lab-checks{gap:var(--space-1) var(--space-3);font-size:var(--text-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.lab-checks li{gap:var(--space-1);align-items:center;display:inline-flex}.lab-checks__pass{color:var(--color-success)}.lab-checks__fail{color:var(--color-danger)}.lab-checks__detail{color:var(--color-text)}.lab-review{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.lab-review__buttons{gap:var(--space-1);display:flex}.lab-review__note{flex:1;min-width:10rem}.lab-details summary{cursor:pointer;font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600}.lab-details summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.lab-expect{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;font-size:var(--text-sm);grid-template-columns:max-content 1fr;display:grid}.lab-expect dt{color:var(--color-text-muted);font-weight:600}.lab-expect dd{margin:0}@media (max-width:600px){.lab-expect{grid-template-columns:minmax(0,1fr)}}.lab-prompt pre,.lab-yaml{margin:var(--space-1) 0 var(--space-2);padding:var(--space-2);white-space:pre-wrap;word-break:break-word;max-height:24rem;font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-code-bg);color:var(--color-text);border-radius:var(--radius-sm);overflow:auto}.lab-flag__note{margin:0}.lab-flag__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
