@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-mono-latin-ext-wght-normal-CXgNM06D.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-mono-latin-wght-normal-CoA7y8X5.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Atkinson Hyperlegible Next Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Atkinson Hyperlegible Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--leading-prose:1.6;--leading-tight:1.25;--measure:68ch;--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;--header-h:3.5rem;--bottombar-h:4.5rem;--header-offset:var(--header-h);--bottombar-offset:var(--bottombar-h);--target-min:2.75rem;--bg:#fbfaf7;--surface:#fff;--surface-2:#f3f1ec;--surface-3:#e9e6df;--border:#d6d1c7;--border-strong:#8a8478;--text:#1d1b18;--text-muted:#57534b;--accent:#1f56b3;--accent-hover:#17468f;--accent-contrast:#fff;--accent-soft:#e6eefb;--accent-text:#1a4c9f;--brand-yellow:#ffd43b;--focus:#1f56b3;--focus-halo:#fff;--success:#17692f;--success-soft:#e5f4ea;--success-border:#2f8a4a;--warning:#7a4a00;--warning-soft:#fff3d6;--warning-border:#b7791f;--danger:#a1231b;--danger-soft:#fdecea;--danger-border:#c8453b;--info-soft:#eef3fb;--code-bg:#f7f6f2;--code-border:#dedad1;--code-text:#1d1b18;--code-gutter:#6b665c;--code-active-line:#efede6;--code-selection:#cddcf6;--line-next-bg:#fff1bf;--line-next-mark:#8a5a00;--line-prev-bg:#e3ecfa;--line-error-bg:#fde4e1;--line-error-mark:#a1231b;--tok-keyword:#7d1ea0;--tok-string:#17692f;--tok-number:#9a3f08;--tok-comment:#5c636c;--tok-definition:#1a4c9f;--tok-builtin:#0a6570;--tok-operator:#3d3a35;--shadow-1:0 1px 2px #1d1b180f, 0 1px 3px #1d1b1814;--shadow-2:0 4px 12px #1d1b1814, 0 2px 4px #1d1b180f;--dur-fast:.12s;--dur-med:.22s;--ease:cubic-bezier(.2, 0, 0, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131519;--surface:#1b1e23;--surface-2:#23272e;--surface-3:#2c313a;--border:#3b414b;--border-strong:#7f8794;--text:#ecebe7;--text-muted:#b6b2aa;--accent:#8db4ff;--accent-hover:#a9c6ff;--accent-contrast:#0b1a33;--accent-soft:#1d2a42;--accent-text:#9dbfff;--focus:#9dbfff;--focus-halo:#131519;--success:#74d18f;--success-soft:#16291d;--success-border:#3f9a5a;--warning:#f3c560;--warning-soft:#2e2512;--warning-border:#b8892a;--danger:#ff9a90;--danger-soft:#34191a;--danger-border:#d0584f;--info-soft:#1a2232;--code-bg:#16181d;--code-border:#333943;--code-text:#e6e4df;--code-gutter:#9098a3;--code-active-line:#1f232a;--code-selection:#2b4372;--line-next-bg:#3a3214;--line-next-mark:#f3c560;--line-prev-bg:#1d2a42;--line-error-bg:#3d1d1d;--line-error-mark:#ff9a90;--tok-keyword:#d7a8ff;--tok-string:#9fe0a6;--tok-number:#ffb88f;--tok-comment:#9aa3ad;--tok-definition:#9dbfff;--tok-builtin:#72d4de;--tok-operator:#d5d2cc;--shadow-1:0 1px 2px #0006;--shadow-2:0 4px 14px #00000073}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131519;--surface:#1b1e23;--surface-2:#23272e;--surface-3:#2c313a;--border:#3b414b;--border-strong:#7f8794;--text:#ecebe7;--text-muted:#b6b2aa;--accent:#8db4ff;--accent-hover:#a9c6ff;--accent-contrast:#0b1a33;--accent-soft:#1d2a42;--accent-text:#9dbfff;--focus:#9dbfff;--focus-halo:#131519;--success:#74d18f;--success-soft:#16291d;--success-border:#3f9a5a;--warning:#f3c560;--warning-soft:#2e2512;--warning-border:#b8892a;--danger:#ff9a90;--danger-soft:#34191a;--danger-border:#d0584f;--info-soft:#1a2232;--code-bg:#16181d;--code-border:#333943;--code-text:#e6e4df;--code-gutter:#9098a3;--code-active-line:#1f232a;--code-selection:#2b4372;--line-next-bg:#3a3214;--line-next-mark:#f3c560;--line-prev-bg:#1d2a42;--line-error-bg:#3d1d1d;--line-error-mark:#ff9a90;--tok-keyword:#d7a8ff;--tok-string:#9fe0a6;--tok-number:#ffb88f;--tok-comment:#9aa3ad;--tok-definition:#9dbfff;--tok-builtin:#72d4de;--tok-operator:#d5d2cc;--shadow-1:0 1px 2px #0006;--shadow-2:0 4px 14px #00000073}:root[data-text-size=large]{font-size:112.5%}:root[data-text-size=larger]{font-size:125%}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]){--dur-fast:0s;--dur-med:0s}}:root[data-motion=reduce]{--dur-fast:0s;--dur-med:0s}.btn.btn[aria-disabled=true]:hover{background:var(--btn-bg)}.btn.btn-primary[aria-disabled=true]:hover{background:var(--btn-bg);border-color:var(--btn-border)}.btn.btn[aria-disabled=true]:active{transform:none}.pblock-focus{cursor:pointer}.parsons-list[data-list=program]{padding-left:2rem}.parsons-list[data-list=program]>.pblock{position:relative}.pblock-num{top:50%;left:calc(-2rem - var(--indent,0) * 2rem - 2px);text-align:right;width:1.5rem;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);pointer-events:none;position:absolute;transform:translateY(-50%)}.pblock.is-wrong{box-shadow:inset 4px 0 0 var(--warning);flex-wrap:wrap}.pblock-flag{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--warning);white-space:nowrap;font-weight:700;display:inline-flex}.pblock-flag-icon{background:var(--warning);width:1.25rem;height:1.25rem;color:var(--surface);font-size:var(--text-xs);border-radius:50%;place-items:center;line-height:1;display:inline-grid}.parsons-tools{margin-top:var(--space-3);justify-content:flex-end;display:flex}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-offset) + var(--space-4));scroll-padding-bottom:calc(var(--bottombar-offset) + var(--space-4))}body{background:var(--bg);min-height:100vh;font-size:var(--text-md);line-height:var(--leading-prose);margin:0}img,svg{max-width:100%}h1,h2,h3,h4,h5,h6{line-height:var(--leading-tight);margin:0 0 var(--space-3);font-weight:700}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4,h5,h6{font-size:var(--text-md)}p{margin:0 0 var(--space-4)}a{color:var(--accent-text);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}code,kbd,pre{font-family:var(--font-mono)}:not(pre)>code{background:var(--surface-2);border:1px solid var(--border);white-space:break-spaces;border-radius:4px;padding:.05em .35em;font-size:.92em}kbd{border:1px solid var(--border-strong);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:0 .35em;font-size:.85em}ul,ol{margin:0 0 var(--space-4);padding-left:1.4em}li+li{margin-top:var(--space-1)}hr{border:0;border-top:1px solid var(--border);margin:var(--space-6) 0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 5px var(--focus-halo);border-radius:4px}.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}.skip-link{left:var(--space-4);z-index:100;background:var(--accent);color:var(--accent-contrast);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:700;position:absolute;top:-100px}.skip-link:focus{top:var(--space-2)}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-border:var(--border-strong);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-4);font:inherit;font-weight:700;font-size:var(--text-sm);color:var(--btn-fg);background:var(--btn-bg);border:2px solid var(--btn-border);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--accent-contrast);--btn-border:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-success{--btn-bg:var(--success);--btn-fg:var(--surface);--btn-border:var(--success)}.btn-ghost{--btn-border:transparent;--btn-bg:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-sm{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-lg{min-height:3.25rem;padding:0 var(--space-6);font-size:var(--text-md)}.btn .kbd-hint{opacity:.85;font-weight:400;font-size:var(--text-xs)}.btn-icon{width:var(--target-min);padding:0}.link-btn{font:inherit;color:var(--accent-text);cursor:pointer;background:0 0;border:0;min-height:24px;padding:0;text-decoration:underline}.app-header{z-index:20;align-items:center;gap:var(--space-3);min-height:var(--header-h);padding:var(--space-1) var(--space-4);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-2);font-weight:800;font-size:var(--text-md);color:var(--text);min-height:var(--target-min);text-decoration:none;display:inline-flex}.brand-mark{width:1.75rem;height:1.75rem}.header-title{min-width:0;font-size:var(--text-md);font-weight:400;line-height:var(--leading-prose);flex-direction:column;flex:1;justify-content:center;margin:0;display:flex}.header-title .eyebrow{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.header-title .title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.header-actions{align-items:center;gap:var(--space-2);display:flex}.runtime-pill{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);white-space:nowrap;font-weight:700;display:inline-flex}.runtime-dot{border:2px solid var(--border-strong);width:.875rem;height:.875rem;color:var(--surface);background:0 0;border-radius:50%;flex:none;place-items:center;font-size:.625rem;font-weight:900;line-height:1;display:grid;position:relative}.runtime-pill[data-status=busy] .runtime-dot{border-color:var(--warning-border)}.runtime-pill[data-status=loading] .runtime-dot{border-color:var(--warning-border);animation:pulse 1.2s infinite var(--ease)}.runtime-pill[data-status=ready] .runtime-dot{border-color:var(--success-border);background:var(--success-border)}.runtime-pill[data-status=ready] .runtime-dot:after{content:"";border:solid var(--surface);border-width:0 2px 2px 0;width:.28rem;height:.5rem;margin-top:-.12rem;transform:rotate(45deg)}.runtime-pill[data-status=error] .runtime-dot{border-color:var(--danger-border);background:var(--danger-border);border-radius:2px}.runtime-pill[data-status=error] .runtime-dot:after{content:"!";font-family:var(--font-sans)}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.runtime-pill .runtime-dot{animation:none!important}}:root[data-motion=reduce] .runtime-dot{animation:none!important}.step-progress{align-items:center;gap:3px;height:12px;margin:0;padding:0;list-style:none;display:flex}.step-progress li{border:1px solid var(--border-strong);background:0 0;border-radius:3px;flex:1;height:6px;margin:0}.step-progress li.is-done{background:var(--success-border);border-color:var(--success-border)}.step-progress li.is-current{background:var(--accent);border-color:var(--accent);border-radius:4px;height:12px}.lesson-progress-wrap{padding:var(--space-2) var(--space-4) 0;max-width:1400px;margin:0 auto}.lesson-progress-meta{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1);justify-content:space-between;display:flex}.settings-dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);padding:var(--space-5);width:min(28rem,100vw - 2rem);box-shadow:var(--shadow-2)}.settings-dialog::backdrop{background:#0006}.settings-dialog fieldset{margin:0 0 var(--space-5);border:0;padding:0}.settings-dialog legend{margin-bottom:var(--space-2);font-weight:700}.segmented{gap:var(--space-2);flex-wrap:wrap;display:flex}.segmented label{align-items:center;gap:var(--space-2);min-height:var(--target-min);padding:0 var(--space-3);border:2px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;display:inline-flex}.segmented input{accent-color:var(--accent);width:1.1rem;height:1.1rem}.segmented label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.dialog-actions{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;display:flex}.page{max-width:64rem;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.hero{gap:var(--space-5);margin-bottom:var(--space-7);grid-template-columns:1fr;align-items:center;display:grid}@media (min-width:52rem){.hero{grid-template-columns:1.3fr 1fr}}.hero h1{font-size:clamp(2rem, 4vw, var(--text-3xl));letter-spacing:-.01em}.hero .lede{font-size:var(--text-lg);color:var(--text-muted);max-width:40ch}.hero-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-1)}.hero-card .stat{font-size:var(--text-sm);color:var(--text-muted)}.hero-card .stat strong{color:var(--text);font-size:var(--text-lg)}.meter{background:var(--surface-3);height:10px;margin:var(--space-3) 0;border-radius:5px;overflow:hidden}.meter>span{background:var(--success-border);height:100%;transition:width var(--dur-med) var(--ease);border-radius:5px;display:block}.method{gap:var(--space-3);margin:0 0 var(--space-7);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));padding:0;list-style:none;display:grid}.method li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);margin:0}.method .method-step{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text);font-weight:800}.method h3{font-size:var(--text-md);margin:var(--space-1) 0}.method p{font-size:var(--text-sm);color:var(--text-muted);margin:0}.module-list{gap:var(--space-3);counter-reset:mod;margin:0;padding:0;list-style:none;display:grid}.module-card{gap:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);grid-template-columns:auto 1fr auto;align-items:center;margin:0;display:grid;position:relative}.module-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1)}.module-card.is-current{border:2px solid var(--accent)}.module-status{flex:none;width:2.75rem;height:2.75rem;position:relative}.module-status svg{width:100%;height:100%;transform:rotate(-90deg)}.module-status .ring-bg{stroke:var(--surface-3)}.module-status .ring-fg{stroke:var(--success-border);transition:stroke-dashoffset var(--dur-med) var(--ease)}.module-status .num{font-weight:800;font-size:var(--text-sm);place-items:center;display:grid;position:absolute;inset:0}.module-status.is-done .num{color:var(--success)}.module-title{margin:0 0 var(--space-1);font-size:var(--text-lg)}.module-title a{color:var(--text);text-decoration:none}.module-title a:after{content:"";border-radius:var(--radius-lg);position:absolute;inset:0}.module-title a:focus-visible{box-shadow:none;outline:none}.module-card:has(.module-title a:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.module-body p{color:var(--text-muted);font-size:var(--text-sm);margin:0}.module-meta{text-align:right;font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap}.module-meta .tag{font-size:var(--text-xs);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);margin-bottom:var(--space-1);padding:.1rem .55rem;font-weight:800;display:inline-block}.module-meta .tag.done{background:var(--success-soft);color:var(--success)}@media (max-width:36rem){.module-card{grid-template-columns:auto 1fr}.module-meta{text-align:left;grid-column:2}}.section-title{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.site-footer{margin-top:var(--space-8);font-size:var(--text-sm);color:var(--text-muted);border-top:1px solid var(--border);padding-top:var(--space-5)}.lesson-main{min-height:calc(100vh - var(--header-offset) - var(--bottombar-offset));padding-bottom:calc(var(--bottombar-offset) + var(--space-6))}.step{max-width:46rem;padding:var(--space-6) var(--space-4);margin:0 auto}.step-kicker{align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin-bottom:var(--space-2);font-weight:800;display:inline-flex}.step h2{font-size:var(--text-2xl);margin-bottom:var(--space-4)}.step h2:focus{outline:none}.step h2:focus-visible{outline:3px solid var(--focus)}.prose{max-width:var(--measure)}.prose>:last-child{margin-bottom:0}.prose h3{margin-top:var(--space-5)}.prose blockquote{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-left:4px solid var(--accent);background:var(--info-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.prose blockquote>:last-child{margin-bottom:0}.prose table{border-collapse:collapse;margin:0 0 var(--space-4);font-size:var(--text-sm)}.prose th,.prose td{border:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top}.prose th{background:var(--surface-2)}.code-block{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);border-radius:var(--radius-md);tab-size:4;font-size:.95rem;line-height:1.55;overflow-x:auto}.output-block{border-style:dashed}.output-block:before{content:"Output";font-family:var(--font-sans);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-1);font-weight:800;display:block}.tok-keyword,.tok-bool{color:var(--tok-keyword);font-weight:600}.tok-string,.tok-string2{color:var(--tok-string)}.tok-number,.tok-atom,.tok-literal{color:var(--tok-number)}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-definition,.tok-className,.tok-typeName{color:var(--tok-definition);font-weight:600}.tok-variableName2,.tok-self{color:var(--tok-builtin)}.tok-operator{color:var(--tok-operator)}.tok-invalid{color:var(--danger);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.bottom-bar{z-index:20;min-height:var(--bottombar-h);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);background:color-mix(in srgb, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);flex-wrap:wrap;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-bar .counter{color:var(--text-muted);font-size:var(--text-sm);margin-left:auto;font-weight:700}.bottom-bar .primary-slot{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;align-items:center;min-width:0;max-width:100%;margin-left:auto;display:flex}.bottom-bar .btn,.btn-lg{white-space:normal;text-align:center;padding-block:var(--space-1);max-width:100%}@media (max-width:30rem){.bottom-bar .counter{display:none}.bottom-bar .primary-slot,.bottom-bar .primary-slot .btn{flex:auto}}.feedback{gap:var(--space-3);border:2px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0;background:var(--surface);grid-template-columns:auto 1fr;align-items:start;display:grid}.feedback:focus{outline:none}.feedback .fb-icon{border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;font-size:1rem;font-weight:900;display:grid}.feedback .fb-title{font-weight:800;font-size:var(--text-md);margin:0 0 var(--space-1)}.feedback .fb-body>:last-child{margin-bottom:0}.feedback.is-success{border-color:var(--success-border);background:var(--success-soft)}.feedback.is-success .fb-icon{background:var(--success);color:var(--surface)}.feedback.is-success .fb-title{color:var(--success)}.feedback.is-warning{border-color:var(--warning-border);background:var(--warning-soft)}.feedback.is-warning .fb-icon{background:var(--warning);color:var(--surface)}.feedback.is-warning .fb-title{color:var(--warning)}.feedback.is-error{border-color:var(--danger-border);background:var(--danger-soft)}.feedback.is-error .fb-icon{background:var(--danger);color:var(--surface)}.feedback.is-error .fb-title{color:var(--danger)}.feedback.is-info{border-color:var(--accent);background:var(--info-soft)}.feedback.is-info .fb-icon{background:var(--accent);color:var(--accent-contrast)}.choices{margin:var(--space-4) 0;gap:var(--space-2);border:0;padding:0;display:grid}.choices legend{font-weight:700;font-size:var(--text-lg);margin-bottom:var(--space-3);padding:0}.choice{gap:var(--space-3);min-height:var(--target-min);padding:var(--space-3) var(--space-4);background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.choice:hover{border-color:var(--border-strong)}.choice input{width:1.25rem;height:1.25rem;accent-color:var(--accent);margin:0}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.choice .choice-text pre{white-space:pre-wrap;margin:0;font-size:.95rem}.choice .choice-mark{font-weight:800;font-size:var(--text-sm)}.choice.is-correct{border-color:var(--success-border);background:var(--success-soft)}.choice.is-correct .choice-mark{color:var(--success)}.choice.is-wrong{border-color:var(--warning-border);background:var(--warning-soft)}.choice.is-wrong .choice-mark{color:var(--warning)}.choice-feedback{font-size:var(--text-sm);grid-column:2/-1;margin:0}.choice-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:0 .35rem}.primm{gap:var(--space-2);margin:0 0 var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.primm li{font-size:var(--text-xs);letter-spacing:.04em;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-muted);margin:0;padding:.15rem .6rem;font-weight:800}.primm li.is-active{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.primm li.is-done{border-color:var(--success-border);color:var(--success)}.workspace-step{max-width:1400px;padding:var(--space-5) var(--space-4);gap:var(--space-5);grid-template-columns:1fr;margin:0 auto;display:grid}@media (min-width:60rem){.workspace-step{grid-template-columns:minmax(20rem,2fr) minmax(0,3fr);align-items:start}.task-pane{top:calc(var(--header-offset) + var(--space-4));max-height:calc(100vh - var(--header-offset) - var(--bottombar-offset) - var(--space-6));padding-right:var(--space-2);position:sticky;overflow:auto}}.task-pane h2{font-size:var(--text-xl)}.checklist{margin:var(--space-3) 0 var(--space-4);gap:var(--space-2);padding:0;list-style:none;display:grid}.checklist li{gap:var(--space-2);font-size:var(--text-sm);grid-template-columns:1.5rem 1fr;align-items:start;margin:0;display:grid}.check-icon{border:2px solid var(--border-strong);border-radius:50%;place-items:center;width:1.4rem;height:1.4rem;font-size:.8rem;font-weight:900;line-height:1;display:grid}.checklist li.is-pass .check-icon{background:var(--success);border-color:var(--success);color:var(--surface)}.checklist li.is-fail .check-icon{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.checklist .check-state{font-size:var(--text-xs);color:var(--text-muted);margin-left:var(--space-1);font-weight:800}.checklist li.is-pass .check-state{color:var(--success)}.checklist li.is-fail .check-state{color:var(--warning)}.hint-box{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin:var(--space-4) 0}.hint-box h3{font-size:var(--text-sm);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin:0;display:flex}.hint-list{margin:0;padding:0;list-style:none}.hint-list li{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--text-sm);margin:0}.hint-list li .hint-label{color:var(--accent-text);font-weight:800;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;display:block}.hint-list li>:last-child{margin-bottom:0}.hint-actions{padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-wrap:wrap;display:flex}.workspace{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);min-width:0;overflow:hidden}.ws-toolbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;display:flex}.ws-toolbar .file-name{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);padding-left:var(--space-2);margin-right:auto}.editor-host{background:var(--code-bg);min-height:12rem}.editor-help{font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-1) var(--space-3);border-top:1px solid var(--border);background:var(--surface-2);margin:0}.console{border-top:1px solid var(--border)}.console-tabs{gap:var(--space-1);padding:var(--space-1) var(--space-2) 0;background:var(--surface-2);border-bottom:1px solid var(--border);display:flex}.console-tab{font:inherit;font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-2) var(--space-3);min-height:var(--target-min);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;font-weight:700}.console-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.console-tab .badge{font-size:var(--text-xs);margin-left:var(--space-1);border-radius:var(--radius-pill);background:var(--surface-3);padding:0 .4rem}.console-panel{padding:var(--space-3) var(--space-4);max-height:26rem;overflow:auto}.console-panel[hidden]{display:none}.console-panel:focus-visible,.viz-code:focus-visible{outline-offset:-3px;box-shadow:none}.console-out{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;min-height:3rem;color:var(--code-text);margin:0;font-size:.95rem}.console-out .stdin-echo{color:var(--accent-text);font-weight:700}.console-out .sys-line{color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-sm);display:block}.console-placeholder{color:var(--text-muted);font-size:var(--text-sm);margin:0}.input-row{gap:var(--space-2);margin-top:var(--space-2);align-items:center;display:flex}.input-row input{min-height:var(--target-min);font:inherit;font-family:var(--font-mono);padding:0 var(--space-3);border:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);flex:1}.stdin-panel{border-top:1px solid var(--border);padding:var(--space-3) var(--space-4);background:var(--surface)}.stdin-panel label{font-weight:700;font-size:var(--text-sm);margin-bottom:var(--space-1);display:block}.stdin-panel textarea{width:100%;min-height:4rem;font-family:var(--font-mono);padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--code-text);resize:vertical;font-size:.95rem}.stdin-panel .help{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-1) 0 0}.error-card{border:2px solid var(--danger-border);background:var(--danger-soft);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-3) 0}.error-card .err-head{gap:var(--space-3);align-items:start;display:flex}.error-card .err-icon{background:var(--danger);width:1.75rem;height:1.75rem;color:var(--surface);border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid}.error-card h3{font-size:var(--text-md);margin:0 0 var(--space-1);color:var(--danger)}.error-card .err-type{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted);margin:0 0 var(--space-2)}.error-card .err-fix{margin:var(--space-2) 0}.error-card .err-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.error-card details{margin-top:var(--space-3)}.error-card summary{cursor:pointer;font-weight:700;font-size:var(--text-sm);min-height:24px}.error-card pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);padding:var(--space-3);margin:var(--space-2) 0 0;color:var(--code-text);font-size:.875rem;overflow-x:auto}.results-summary{margin:0 0 var(--space-3);font-weight:800}.result-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.result-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);margin:0}.result-item.is-pass{border-color:var(--success-border)}.result-item.is-fail{border-color:var(--warning-border);background:var(--warning-soft)}.result-item .res-head{gap:var(--space-2);font-weight:700;font-size:var(--text-sm);align-items:baseline;display:flex}.result-item .res-state{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;font-weight:800}.result-item.is-pass .res-state{color:var(--success)}.result-item.is-fail .res-state{color:var(--warning)}.result-item .res-msg{margin:var(--space-2) 0 0;font-size:var(--text-sm)}.diff{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:1fr 1fr;display:grid}@media (max-width:40rem){.diff{grid-template-columns:1fr}}.diff figure{margin:0}.diff figcaption{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:800}.diff pre{margin:var(--space-1) 0 0;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);padding:var(--space-2);white-space:pre-wrap;color:var(--code-text);font-size:.875rem}.ws{color:var(--text-muted)}.cm-editor{background:var(--code-bg);color:var(--code-text);font-size:.98rem}.cm-editor .cm-content{font-family:var(--font-mono);padding:var(--space-3) 0;caret-color:var(--text);line-height:1.6}.cm-editor .cm-scroller{font-family:var(--font-mono)}.cm-editor .cm-gutters{background:var(--code-bg);color:var(--code-gutter);border-right:1px solid var(--code-border)}.cm-editor .cm-activeLine{background:var(--code-active-line)}.cm-editor .cm-activeLineGutter{background:var(--code-active-line);color:var(--text)}.cm-editor.cm-focused{outline:3px solid var(--focus);outline-offset:-3px}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground{background:var(--code-selection)!important}.cm-editor ::selection{background:var(--code-selection)!important}.cm-editor .cm-cursor{border-left:2px solid var(--text)}.cm-editor .cm-matchingBracket{background:var(--accent-soft);outline:1px solid var(--accent)}.cm-editor .cm-marked-line--error{background:var(--line-error-bg)}.cm-editor .cm-marked-line--current{background:var(--line-next-bg)}.cm-line-marker{font-weight:900;font-family:var(--font-sans);padding:0 4px}.cm-line-marker--error{color:var(--line-error-mark)}.cm-line-marker--current{color:var(--line-next-mark)}.cm-marker-gutter{min-width:1.1rem}.example{margin:var(--space-4) 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.example .code-block{border:0;border-radius:0;margin:0}.example-toolbar{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;align-items:center;display:flex}.example-output{border-top:1px solid var(--border);padding:var(--space-3) var(--space-4)}.example-output[hidden]{display:none}.viz{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface);margin:var(--space-4) 0}.viz-title{font-size:var(--text-md);margin:0 0 var(--space-1)}.viz-help{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 var(--space-3)}.viz-legend{border-radius:3px;padding:0 .3rem}.viz-legend--next{background:var(--line-next-bg);color:var(--code-text)}.viz-legend--prev{background:var(--line-prev-bg);color:var(--code-text)}.viz-controls{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.viz-slider-label{flex:1;min-width:8rem;display:flex}.viz-slider{width:100%;accent-color:var(--accent);min-height:24px}.viz-counter{font-size:var(--text-sm);color:var(--text-muted);font-weight:700}.viz-body{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (min-width:44rem){.viz-body{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}.viz-code{padding:var(--space-2) 0;background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius-sm);font-family:var(--font-mono);margin:0;font-size:.92rem;list-style:none;overflow-x:auto}.viz-line{padding:0 var(--space-2) 0 0;white-space:pre;color:var(--code-text);grid-template-columns:1.3rem 2rem 1fr;margin:0;display:grid}.viz-line code{font-family:inherit}.viz-lineno{color:var(--code-gutter);text-align:right;padding-right:var(--space-2);-webkit-user-select:none;user-select:none}.viz-line.is-next{background:var(--line-next-bg)}.viz-line.is-next .viz-gutter{color:var(--line-next-mark);padding-left:4px}.viz-line.is-prev{background:var(--line-prev-bg)}.viz-subtitle{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 var(--space-2)}.viz-frames{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.viz-frame{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.viz-frame.is-active{border:2px solid var(--accent)}.viz-frame-name{font-size:var(--text-sm);margin:0 0 var(--space-2);font-family:var(--font-mono)}.viz-badge{font-family:var(--font-sans);font-size:var(--text-xs);background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-pill);padding:0 .4rem}.viz-vars,.viz-dict{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.viz-vars th,.viz-vars td,.viz-dict th,.viz-dict td{border-bottom:1px solid var(--border);padding:var(--space-1) var(--space-2);text-align:left;vertical-align:top}.viz-vars th{width:30%;font-weight:700}.viz-container{flex-direction:column;gap:2px;max-width:100%;display:inline-flex}.viz-container-type{font-size:var(--text-xs);color:var(--text-muted);font-weight:700}.viz-cells{flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.viz-cell{border:1px solid var(--border-strong);background:var(--code-bg);flex-direction:column;align-items:center;min-width:2.2rem;margin:0 0 0 -1px;display:flex}.viz-index{color:var(--text-muted);border-bottom:1px solid var(--border);text-align:center;width:100%;font-size:.7rem}.viz-cell-value{padding:2px 6px}.viz-alias{font-size:var(--text-xs);color:var(--accent-text);font-weight:700}.viz-return{font-size:var(--text-sm);background:var(--line-next-bg);color:var(--code-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0}.viz-output{background:var(--code-bg);border:1px dashed var(--code-border);border-radius:var(--radius-sm);min-height:2.5rem;padding:var(--space-2) var(--space-3);white-space:pre-wrap;color:var(--code-text);margin:0;font-size:.92rem}.viz-status{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-3) 0 0}.viz-empty{color:var(--text-muted);font-size:var(--text-sm);margin:0;font-style:italic}.viz-note{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-2) 0 0}.parsons-help{font-size:var(--text-sm);color:var(--text-muted)}.parsons-areas{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (min-width:48rem){.parsons-areas{grid-template-columns:1fr 1.2fr}}.parsons-area{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface);min-height:8rem}.parsons-program{border-style:solid;border-color:var(--border-strong);background:var(--code-bg)}.parsons-area-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 var(--space-2)}.parsons-list{gap:var(--space-2);border-radius:var(--radius-sm);min-height:4rem;margin:0;padding:0;list-style:none;display:grid}.parsons-list.is-drop-target{outline:3px dashed var(--accent);outline-offset:4px}.pblock{align-items:center;gap:var(--space-2);background:var(--surface);border:2px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);margin:0;margin-left:calc(var(--indent,0) * 2rem);cursor:grab;display:flex}.pblock.is-dragging{opacity:.5}.pblock.is-wrong{border-color:var(--warning-border);background:var(--warning-soft)}.pblock-focus{min-width:0;padding:var(--space-1) 0;border-radius:4px;flex:1}.pblock-code{font-family:var(--font-mono);white-space:pre;color:var(--code-text);background:0 0;border:0;padding:0;font-size:.95rem}.pb-tools{gap:2px;display:flex}.pb-btn{font:inherit;font-size:var(--text-sm);border:1px solid var(--border);background:var(--surface-2);min-width:2.25rem;min-height:2.25rem;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:0 var(--space-2);font-weight:700}.pb-btn:hover:not(:disabled){border-color:var(--border-strong)}.pb-btn:disabled{opacity:.4;cursor:not-allowed}.parsons-empty{color:var(--text-muted);font-style:italic;font-size:var(--text-sm);padding:var(--space-3);margin:0}.diagram{margin:var(--space-4) 0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.diagram figcaption{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2)}.diagram svg text{font-family:var(--font-mono);fill:var(--text)}.diagram .d-box{fill:var(--code-bg);stroke:var(--border-strong);stroke-width:1.5px}.diagram .d-label{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5px}.diagram .d-arrow{stroke:var(--accent);stroke-width:2px;fill:none;marker-end:url(#d-arrowhead)}.diagram .d-muted{fill:var(--text-muted);font-size:12px}.diagram .d-hi{fill:var(--line-next-bg);stroke:var(--line-next-mark);stroke-width:2px}.diagram-controls{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.complete{text-align:center;max-width:40rem;padding:var(--space-7) var(--space-4);margin:0 auto}.complete .badge-big{width:5rem;height:5rem;margin:0 auto var(--space-4);background:var(--success-soft);border:3px solid var(--success-border);color:var(--success);border-radius:50%;place-items:center;font-size:2.2rem;font-weight:900;display:grid}.complete ul{text-align:left;display:inline-block}.stat-tiles{gap:var(--space-3);margin:var(--space-5) 0;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.stat-tile{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface)}.stat-tile .v{font-size:var(--text-xl);font-weight:800;display:block}.stat-tile .k{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.next-card{text-align:left;border:2px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-5) 0;background:var(--surface)}.ref-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));display:grid}.ref-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface)}.ref-card h3{font-size:var(--text-md)}.ref-card .code-block{font-size:.875rem}.sr-status{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition-duration:0s!important;animation-duration:0s!important}@media print{.app-header,.bottom-bar,.ws-toolbar,.console{display:none!important}}.site-nav{gap:var(--space-1);margin-left:var(--space-3);flex-wrap:wrap;display:flex}.nav-link{min-height:var(--target-min);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--text);font-weight:700;font-size:var(--text-sm);align-items:center;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--surface-2)}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-text)}.app-header .header-actions{margin-left:auto}@media (max-width:40rem){.site-nav{order:3;width:100%;margin-left:0}.app-header{flex-wrap:wrap}.runtime-pill:not([data-status=error]) [data-runtime-text]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.runtime-pill:not([data-status=error]){padding:var(--space-1) var(--space-2)}.hide-narrow{display:none}.sr-only-narrow{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (max-height:30rem){.app-header,.bottom-bar{position:static}:root{--header-offset:0px;--bottombar-offset:0px}}.eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);margin:0 0 var(--space-2);font-weight:800}.lesson-header .eyebrow{color:var(--text-muted);margin:0}.hero-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.h-small{font-size:var(--text-md);margin-bottom:var(--space-2)}.plain-list{margin:0 0 var(--space-4);font-size:var(--text-sm);padding:0;list-style:none}.hint-card{background:var(--accent-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);margin:0}.session-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:var(--space-5) 0 var(--space-2);font-weight:800}.section-title p{color:var(--text-muted);font-size:var(--text-sm);margin:0}.muted{color:var(--text-muted)}.small{font-size:var(--text-sm)}.lede{font-size:var(--text-lg);color:var(--text-muted);max-width:60ch}.page-wide{max-width:72rem}.step-wide{max-width:64rem}.diagram-title{font-size:var(--text-md);margin-bottom:var(--space-2)}.diagram-stage svg{width:100%;height:auto;display:block}.diagram figcaption{min-height:3em}.diagram-count{font-size:var(--text-sm);color:var(--text-muted);align-self:center;font-weight:700}.diagram-text{margin-top:var(--space-2);font-size:var(--text-sm)}.diagram-text summary{cursor:pointer;min-height:24px}.console-head{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.console-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 auto 0 0}.console-meta{font-size:var(--text-xs);color:var(--text-muted)}.input-row{flex-wrap:wrap}.input-label{width:100%;font-weight:700;font-size:var(--text-sm)}.results:empty{display:none}.results{margin-top:var(--space-3)}.all-checks{margin-top:var(--space-2)}.all-checks summary{cursor:pointer;font-weight:700;font-size:var(--text-sm);min-height:24px;color:var(--accent-text)}.all-checks .result-list{margin-top:var(--space-2)}.res-name{margin-bottom:var(--space-1)}.reset-note{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);background:var(--info-soft);border-top:1px solid var(--border);margin:0}.solution-box{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--surface);margin-top:var(--space-4)}.free-predict textarea,.predict-input{width:100%;font-family:var(--font-mono);padding:var(--space-2);border:2px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--code-bg);color:var(--code-text);margin-top:var(--space-2);font-size:.95rem}.parsons-result,.viz-host{margin-top:var(--space-4)}.can-now{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:var(--space-4) 0}.can-now ul{margin:0}.next-card{color:var(--text);text-decoration:none;display:block}.next-card .next-eyebrow{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);font-weight:800;display:block}.next-card strong{font-size:var(--text-lg);display:block}.next-card .next-sum{font-size:var(--text-sm);color:var(--text-muted);display:block}.docs-list{text-align:left;margin-top:var(--space-5);font-size:var(--text-sm)}.ref-toc ul{gap:var(--space-2) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.ref-toc li{margin:0}.ref-module{margin-top:var(--space-6)}.ref-module h2:focus{outline:none}.ref-docs{font-size:var(--text-sm);margin-top:var(--space-3)}.editor-tall .cm-editor{min-height:18rem}.complete h1{font-size:var(--text-2xl)}.choice .choice-text p{margin:0}.choices legend .code-block{font-weight:400}@media print{.ref-toc,.site-footer{display:none}.ref-card{break-inside:avoid}}.console-out{font-family:var(--font-sans);white-space:normal;font-size:var(--text-sm);min-height:2.5rem}.table-wrap{margin:var(--space-2) 0 var(--space-3);min-width:0}.table-scroll{border:1px solid var(--code-border);border-radius:var(--radius-sm);background:var(--surface);max-width:100%;max-height:24rem;overflow:auto}.table-scroll:focus-visible{outline-offset:-3px}.result-table{border-collapse:separate;border-spacing:0;font-family:var(--font-mono);color:var(--code-text);min-width:100%;font-size:.875rem}.result-table caption{caption-side:top;text-align:left;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.04em;color:var(--text-muted);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--code-border);font-weight:800}.result-table th,.result-table td{border-bottom:1px solid var(--code-border);text-align:left;white-space:nowrap;vertical-align:top;padding:.3rem .75rem}.result-table thead th{background:var(--surface-2);color:var(--text);z-index:1;border-bottom:2px solid var(--border-strong);font-weight:800;position:sticky;top:0}.result-table td.num,.result-table th.num{text-align:right;font-variant-numeric:tabular-nums}.result-table th.rownum{color:var(--code-gutter);text-align:right;background:var(--code-bg);width:1%;font-weight:400}.result-table thead th.rownum{background:var(--surface-2)}.result-table tbody tr:nth-child(2n) td{background:var(--code-bg)}.null{color:var(--text-muted);font-style:italic;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.04em}.empty-cell{color:var(--text-muted);font-style:italic;font-family:var(--font-sans)}.table-note{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-1) 0 0}.result-table .mark-cell{font-family:var(--font-sans);font-size:var(--text-xs);white-space:nowrap;font-weight:700}.mark-icon{text-align:center;min-width:1rem;font-weight:900;display:inline-block}.result-table .row-removed td:not(.mark-cell){color:var(--text-muted);text-decoration:line-through;text-decoration-thickness:2px}.result-table .row-removed .mark-cell,.result-table .row-missing .mark-cell{color:var(--danger)}.result-table .row-kept .mark-cell{color:var(--success)}.result-table .row-new td{background:var(--success-soft)}.result-table .row-new .mark-cell{color:var(--success)}.result-table .row-changed td,.result-table .row-different td{background:var(--warning-soft)}.result-table .row-changed .mark-cell,.result-table .row-different .mark-cell,.result-table .row-moved .mark-cell,.result-table .row-extra .mark-cell{color:var(--warning)}.result-table .row-unmatched td{background:var(--info-soft)}.result-table .row-unmatched .mark-cell{color:var(--accent-text)}.result-table .row-missing td{background:var(--danger-soft)}.result-table .row-extra td{background:var(--warning-soft)}.result-table td.is-diff{background:var(--warning-soft);box-shadow:inset 0 0 0 2px var(--warning-border);font-weight:800}.result-table .group-head th{text-align:left;font-family:var(--font-sans);font-size:var(--text-xs);background:var(--accent-soft);color:var(--accent-text);border-top:3px solid var(--accent);padding:.3rem .75rem;font-weight:800;position:static}.result-table tbody.group-odd tr:not(.group-head) td{background:var(--surface-2)}.result-table tbody.group-even tr:not(.group-head) td{background:var(--surface)}.stmt-message{gap:var(--space-2);font-size:var(--text-sm);margin:var(--space-2) 0;align-items:baseline;display:flex}.stmt-icon{color:var(--success);font-weight:900}.notes-card{border:1px solid var(--accent);background:var(--info-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;font-size:var(--text-sm)}.notes-card h3{gap:var(--space-2);margin:0 0 var(--space-2);align-items:center;display:flex}.note-icon{background:var(--accent);width:1.3rem;height:1.3rem;color:var(--accent-contrast);border-radius:50%;place-items:center;font-size:.8rem;font-weight:900;display:inline-grid}.notes-card ul{margin:0;padding-left:1.2rem}.notes-card li{margin:0 0 var(--space-1)}.note-line{font-weight:700}.err-excerpt pre{font-family:var(--font-mono);background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:var(--space-2) 0;white-space:pre;font-size:.875rem;overflow-x:auto}.diff-side{min-width:0}@media (max-width:48rem){.diff{grid-template-columns:1fr}}.schema-panel{margin:var(--space-4) 0}.schema-title{font-size:var(--text-md);margin:0 0 var(--space-2)}.schema-table{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:var(--space-2)}.schema-table>summary{cursor:pointer;padding:var(--space-2) var(--space-3);min-height:var(--target-min);font-weight:700}.schema-table>summary code{font-size:.95rem}.schema-meta{font-weight:400;font-size:var(--text-xs);color:var(--text-muted);margin-left:var(--space-1)}.schema-body{padding:0 var(--space-3) var(--space-3)}.schema-body .result-table{font-size:.8125rem}.playground-grid{gap:var(--space-5);grid-template-columns:1fr;display:grid}@media (min-width:64rem){.playground-grid{grid-template-columns:minmax(0,3fr) minmax(16rem,1fr);align-items:start}}.side-panel{min-width:0}.side-panel .schema-panel{margin-top:0}.db-picker{align-items:center;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;margin-right:auto;font-weight:700;display:inline-flex}.db-picker select{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:2.25rem;color:var(--text);padding:0 var(--space-2);max-width:100%;font-weight:400}.clause-mark{background:var(--line-next-bg);color:var(--code-text);box-shadow:0 0 0 1px var(--line-next-mark);border-radius:3px}.viz-help .clause-mark{padding:0 .2rem}.viz-left,.viz-state{min-width:0}@media (min-width:60rem){.viz-body{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}}.viz-order{margin-top:var(--space-3)}.clause-strip{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.clause-strip li{font-family:var(--font-mono);font-size:var(--text-xs);border-radius:var(--radius-pill);border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface);margin:0;padding:.15rem .5rem;font-weight:700}.clause-strip li.is-done{color:var(--text);background:var(--surface-2)}.clause-strip li.is-current{background:var(--line-next-bg);color:var(--code-text);border:2px solid var(--line-next-mark)}.viz-stmt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0;font-weight:800}.viz-stmt:empty{display:none}.viz-step-title{margin:0 0 var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm)}.viz-caption p{font-size:var(--text-sm);margin:0 0 var(--space-2)}.choices-tables .choice-text{max-width:100%;overflow-x:auto}.mini-table{border-collapse:collapse;font-family:var(--font-mono);color:var(--code-text);background:var(--code-bg);font-size:.85rem}.mini-table th,.mini-table td{border:1px solid var(--code-border);text-align:left;white-space:nowrap;padding:.15rem .5rem}.mini-table th{background:var(--surface-2);font-weight:800}.mini-table td.num{text-align:right}.choice-plain{font-family:var(--font-mono)}.diagram .d-head{font-weight:800}.diagram .d-null{fill:var(--text-muted);font-style:italic}.diagram .d-code{font-weight:700}.diagram .d-strike{stroke:var(--danger);stroke-width:2.5px}.diagram .d-arrow-faint{opacity:.55}.diagram-stage svg text{font-size:13px}.diff-merged{margin-top:var(--space-2)}.diff-summary{font-size:var(--text-sm);margin:0 0 var(--space-2)}.diff-only{align-items:center;gap:var(--space-2);font-size:var(--text-sm);min-height:24px;margin-bottom:var(--space-2);cursor:pointer;font-weight:700;display:inline-flex}.diff-only input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.diff-merged:has(.diff-only input:checked) tr.row-same{display:none}.diff-yours{text-decoration:line-through;text-decoration-thickness:2px}.diff-expected{font-weight:800}.result-table .row-same .mark-cell{color:var(--text-muted);font-weight:400}.result-table .row-moved td{background:var(--warning-soft)}.clause-strip .chip-count{font-family:var(--font-sans);margin-left:.35rem;font-weight:400}.empty-text{color:var(--text-muted);font-style:italic;font-family:var(--font-sans)}.rowhead-num{text-align:right;min-width:1.5rem;color:var(--code-gutter);font-weight:400;font-family:var(--font-mono);display:inline-block}.result-table th.mark-cell{text-align:left}.err-excerpt pre{tab-size:4}.err-where{font-size:var(--text-sm);margin:0 0 var(--space-2)}.err-head>div{min-width:0}.console-panel{max-height:none;overflow:visible}.table-scroll{max-height:none;overflow:auto hidden}.result-table thead th{position:static}.viz-stmt{text-transform:none;letter-spacing:0;font-size:var(--text-sm);color:var(--text)}.diagram .d-dim text{fill:var(--text-muted)}.diagram-data{color:var(--text-muted);margin-top:var(--space-1);display:block}
