:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--gray-0:#fff;--gray-25:#f7f8f9;--gray-50:#eef0f3;--gray-100:#dfe3e9;--gray-200:#c7ccd6;--gray-300:#a3aab8;--gray-400:#767f91;--gray-500:#545c6d;--gray-600:#3a4050;--gray-700:#272b37;--gray-800:#191c24;--gray-900:#101218;--gray-950:#08090c;--blue-50:#eaf2ff;--blue-100:#cfe1ff;--blue-200:#9dc4ff;--blue-300:#64a3ff;--blue-400:#2f7dff;--blue-500:#1c5de0;--blue-600:#1547b3;--blue-700:#123a90;--blue-800:#102f72;--blue-900:#0f2757;--amber-50:#fff4ea;--amber-100:#ffe1c2;--amber-200:#ffc385;--amber-300:#ffa04d;--amber-400:#ff7a1a;--amber-500:#e35f00;--amber-600:#b34900;--teal-100:#c9f3ea;--teal-300:#5fd9c4;--teal-500:#14b39c;--teal-700:#0b7568;--green-500:#2fd66b;--green-100:#d3f7e0;--red-500:#ff4d4f;--red-100:#ffdbdb;--yellow-500:#ff7a1a;--yellow-100:#ffe1c2;--text-strong:var(--gray-0);--text-body:var(--gray-100);--text-muted:var(--gray-400);--text-subtle:var(--gray-600);--text-inverse:var(--gray-950);--text-link:var(--blue-300);--text-on-accent:var(--gray-950);--surface-page:var(--gray-950);--surface-card:var(--gray-900);--surface-sunken:#050606;--surface-raised:var(--gray-800);--surface-inverse:var(--gray-0);--surface-hover:var(--gray-800);--border-subtle:var(--gray-800);--border-default:var(--gray-700);--border-strong:var(--gray-500);--border-focus:var(--blue-400);--brand:var(--blue-400);--brand-hover:var(--blue-300);--brand-active:var(--blue-200);--brand-subtle:var(--blue-900);--accent:var(--amber-400);--accent-hover:var(--amber-300);--accent-subtle:#1f0f00;--success:var(--green-500);--success-subtle:#072016;--danger:var(--red-500);--danger-subtle:#2a0e0e;--warning:var(--yellow-500);--warning-subtle:#1f0f00;--info:var(--blue-400);--ring:0 0 0 3px color-mix(in srgb, var(--blue-400) 45%, transparent);--glow-amber:0 0 0 1px var(--amber-500), 0 0 1px var(--amber-400), 0 8px 32px -6px color-mix(in srgb, var(--amber-400) 75%, transparent);--glow-signal:0 0 0 1px var(--blue-500), 0 6px 24px -6px color-mix(in srgb, var(--blue-400) 60%, transparent);--panel-brushed:repeating-linear-gradient(115deg, color-mix(in srgb, var(--gray-0) 3%, transparent) 0px, color-mix(in srgb, var(--gray-0) 3%, transparent) 1px, transparent 1px, transparent 3px);--bezel-groove:inset 0 1px 0 color-mix(in srgb, var(--gray-0) 4%, transparent), inset 0 -1px 2px #0009, inset 0 0 0 1px var(--border-subtle)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--accent:var(--amber-500);--text-strong:var(--gray-950);--text-body:var(--gray-800);--text-muted:var(--gray-500);--text-subtle:var(--gray-400);--text-inverse:var(--gray-0);--text-link:var(--blue-600);--surface-page:var(--gray-25);--surface-card:var(--gray-0);--surface-sunken:var(--gray-50);--surface-raised:var(--gray-0);--surface-inverse:var(--gray-950);--surface-hover:var(--gray-50);--border-subtle:var(--gray-100);--border-default:var(--gray-200);--border-strong:var(--gray-300);--border-focus:var(--blue-500);--brand:var(--blue-500);--brand-hover:var(--blue-600);--brand-active:var(--blue-700);--brand-subtle:var(--blue-50);--accent-hover:var(--amber-500);--accent-subtle:var(--amber-50);--success-subtle:var(--green-100);--danger-subtle:var(--red-100);--warning-subtle:var(--yellow-100);--info:var(--blue-500);--ring:0 0 0 3px color-mix(in srgb, var(--blue-500) 35%, transparent);--glow-amber:0 0 0 1px var(--amber-300), 0 0 1px var(--amber-400), 0 8px 28px -8px color-mix(in srgb, var(--amber-400) 55%, transparent);--glow-signal:0 0 0 1px var(--blue-300), 0 6px 20px -8px color-mix(in srgb, var(--blue-400) 40%, transparent);--panel-brushed:repeating-linear-gradient(115deg, #00000008 0px, #00000008 1px, transparent 1px, transparent 3px);--bezel-groove:inset 0 1px 0 #00000008, inset 0 -1px 2px #0000001a, inset 0 0 0 1px var(--border-default)}
@font-face{font-family:Cousine Nerd Font Mono;src:url(/fonts/cousine-nerd/CousineNerdFontMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cousine Nerd Font Mono;src:url(/fonts/cousine-nerd/CousineNerdFontMono-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Cousine Nerd Font Mono;src:url(/fonts/cousine-nerd/CousineNerdFontMono-Bold.woff2)format("woff2");font-weight:500 700;font-style:normal;font-display:swap}@font-face{font-family:Libertinus Serif;src:url(/fonts/libertinus-serif/LibertinusSerif-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libertinus Serif;src:url(/fonts/libertinus-serif/LibertinusSerif-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Libertinus Serif;src:url(/fonts/libertinus-serif/LibertinusSerif-Semibold.woff2)format("woff2");font-weight:500 600;font-style:normal;font-display:swap}@font-face{font-family:Libertinus Serif;src:url(/fonts/libertinus-serif/LibertinusSerif-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Libertinus Serif;src:url(/fonts/libertinus-serif/LibertinusSerif-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--font-cousine:"Cousine Nerd Font Mono", "Cousine", ui-monospace, "SF Mono", Menlo, monospace;--font-libertinus:"Libertinus Serif", "STIX Two Text", Cambria, Georgia, serif;--font-mono:var(--font-cousine);--font-label:var(--font-cousine);--font-display:var(--font-cousine);--font-data:var(--font-cousine);--font-serif:var(--font-libertinus);--font-body:var(--font-libertinus);--text-2xs:.6875rem;--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;--text-4xl:2.875rem;--text-5xl:3.75rem;--text-6xl:4.5rem;--text-7xl:6rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.01em;--tracking-snug:-.005em;--tracking-normal:0em;--tracking-wide:.04em;--tracking-caps:.08em;--tracking-panel:.12em;--display-font:var(--font-display);--display-weight:var(--weight-semibold);--display-tracking:var(--tracking-tight);--heading-font:var(--font-display);--heading-weight:var(--weight-semibold);--body-font:var(--font-body);--body-weight:var(--weight-regular);--body-leading:var(--leading-relaxed);--label-font:var(--font-label);--label-weight:var(--weight-medium);--eyebrow-font:var(--font-mono);--eyebrow-weight:var(--weight-medium);--eyebrow-tracking:var(--tracking-panel);--eyebrow-size:var(--text-xs);--code-font:var(--font-mono);--data-font:var(--font-data)}
:root{--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--space-9:4rem;--space-10:6rem;--space-11:8rem;--radius-xs:3px;--radius-sm:5px;--radius-md:7px;--radius-lg:9px;--radius-xl:14px;--radius-2xl:20px;--radius-pill:999px;--radius-card:var(--radius-lg);--border-hairline:1px;--border-thick:1.5px;--shadow-xs:0 1px 2px #02030452;--shadow-sm:0 1px 3px #02030466, 0 1px 2px #02030447;--shadow-md:0 4px 14px -2px #02030475, 0 2px 7px -2px #0203044d;--shadow-lg:0 14px 32px -10px #02030485, 0 4px 12px -4px #02030457;--shadow-xl:0 30px 60px -18px #02030499;--shadow-inset:inset 0 1px 2px #02030466;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-snap:cubic-bezier(.5, 0, .15, 1);--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--duration-warmup:.42s;--transition-base:all var(--duration-base) var(--ease-out);--container-sm:640px;--container-md:840px;--container-lg:1080px;--container-xl:1280px;--container-2xl:1440px;--gutter:var(--space-5);--section-y:var(--space-10);--header-height:64px}
.lab-grid{position:relative}.lab-grid>*{z-index:1;position:relative}.lab-grid:before{content:"";z-index:0;pointer-events:none;background-image:var(--panel-brushed);position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 85% at 50% 0,#000 30%,#0000 100%);mask-image:radial-gradient(90% 85% at 50% 0,#000 30%,#0000 100%)}.bay{transition:box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);position:relative}.bay:hover{border-color:color-mix(in srgb, var(--course-color,var(--border-strong)) 55%, var(--border-default));box-shadow:0 14px 32px -10px color-mix(in srgb, var(--course-color,var(--gray-950)) 35%, transparent), var(--shadow-lg);transform:translateY(-2px)}.bay-rivet{background:var(--border-strong);width:4px;height:4px;box-shadow:inset 0 1px 1px #00000080, 0 .5px 0 color-mix(in srgb, var(--gray-0) 8%, transparent);pointer-events:none;border-radius:50%;position:absolute}.bay-rivet.tl{top:8px;left:8px}.bay-rivet.tr{top:8px;right:8px}.bay-rivet.bl{bottom:8px;left:8px}.bay-rivet.br{bottom:8px;right:8px}.lamp{background:var(--lamp-color,var(--accent));width:7px;height:7px;box-shadow:0 0 0 1px color-mix(in srgb, var(--lamp-color,var(--accent)) 40%, transparent), 0 0 7px 1px color-mix(in srgb, var(--lamp-color,var(--accent)) 70%, transparent);border-radius:50%;flex-shrink:0;display:inline-block}@keyframes lamp-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--lamp-color,var(--accent)) 55%, transparent), 0 0 7px 1px color-mix(in srgb, var(--lamp-color,var(--accent)) 70%, transparent)}50%{box-shadow:0 0 0 5px transparent, 0 0 7px 1px color-mix(in srgb, var(--lamp-color,var(--accent)) 70%, transparent)}}.lamp-live{animation:2.2s ease-in-out infinite lamp-pulse}.bezel{box-shadow:var(--bezel-groove)}.tube-readout{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-weight:var(--weight-medium);color:var(--accent);text-shadow:0 0 14px color-mix(in srgb, var(--accent) 55%, transparent), 0 0 2px color-mix(in srgb, var(--accent) 80%, transparent);animation:tube-warmup var(--duration-warmup) var(--ease-snap) both}@keyframes tube-warmup{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur()}}.telemetry-chip{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-muted);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);align-items:center;gap:7px;padding:4px 12px;font-size:11px;display:inline-flex}.status-dot{background:var(--amber-400);width:7px;height:7px;box-shadow:0 0 6px 1px color-mix(in srgb, var(--amber-400) 65%, transparent);--lamp-color:var(--amber-400);border-radius:50%;flex-shrink:0;animation:2.2s ease-in-out infinite lamp-pulse}.cta-primary{transition:box-shadow var(--duration-base) var(--ease-snap), transform var(--duration-fast) var(--ease-snap);position:relative}.cta-primary:hover{box-shadow:var(--glow-amber);transform:translateY(-1px)}.cta-primary:active{transition-duration:60ms;transform:translateY(0)}.toggle-switch{border-radius:var(--radius-pill);background:var(--surface-sunken);width:44px;height:24px;box-shadow:var(--bezel-groove);border:1px solid var(--border-default);cursor:pointer;flex-shrink:0;position:relative}.toggle-switch-knob{background:var(--surface-raised);border:1px solid var(--border-strong);width:18px;height:18px;transition:transform var(--duration-base) var(--ease-snap), background var(--duration-base) var(--ease-out);color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0006}.toggle-switch[data-on=true] .toggle-switch-knob{background:var(--accent-subtle);color:var(--accent);transform:translate(20px)}@keyframes draw-stroke{to{stroke-dashoffset:0}}.draw-in path,.draw-in circle,.draw-in line,.draw-in rect,.draw-in polyline{stroke-dasharray:1;stroke-dashoffset:1px;animation:draw-stroke 1.1s var(--ease-out) forwards}.draw-in .fade{stroke-dasharray:0;stroke-dashoffset:0;animation:fadeUp .5s var(--ease-out) both}.draw-in .dashed{stroke-dasharray:.02 .025;stroke-dashoffset:0;animation:fadeUp .5s var(--ease-out) both}html[data-js] .reveal{opacity:0;transition:opacity .48s var(--ease-out), transform .48s var(--ease-out);transform:translateY(12px)}html[data-js] .reveal.is-visible{opacity:1;transform:none}.hero-art{display:none}@media (min-width:900px){.hero-art{flex:0 0 360px;width:360px;height:auto;display:block}}@media (prefers-reduced-motion:reduce){.bay{transition:none}.bay:hover{transform:none}.path-node{transition:none}.path-node:hover,.path-node:focus-visible{transform:none}.cta-primary{transition:none}.cta-primary:hover,.cta-primary:active{transform:none}.toggle-switch-knob{transition:none}.tube-readout,.lamp-live,.status-dot{animation:none}.draw-in path,.draw-in circle,.draw-in line,.draw-in rect,.draw-in polyline,.draw-in .fade,.draw-in .dashed{stroke-dashoffset:0;opacity:1;animation:none}.draw-in .dashed{stroke-dasharray:.02 .025}.draw-in .fade{stroke-dasharray:0}html[data-js] .reveal{opacity:1;transition:none;transform:none}}.path-pipeline{align-items:stretch;gap:0;display:flex}@media (min-width:721px){.path-pipeline{overscroll-behavior-x:contain;scroll-snap-type:x proximity;margin:-2px -2px 0;padding:2px 2px 10px;scroll-padding-left:4px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 0% 94%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 94%,#0000 100%)}}.path-node{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);scroll-snap-align:start;width:156px;transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;flex:none;align-items:flex-start;gap:4px;padding:16px 16px 18px;text-decoration:none;display:flex}.path-node:hover,.path-node:focus-visible{border-color:color-mix(in srgb, var(--course-color) 55%, var(--border-default));box-shadow:0 10px 24px -10px color-mix(in srgb, var(--course-color) 35%, transparent);transform:translateY(-2px)}.path-node-glyph{margin-bottom:4px;display:block}.path-node-step{font-family:var(--font-mono);letter-spacing:var(--tracking-panel);color:var(--text-subtle);font-size:10px}.path-node-title{font-family:var(--font-display);color:var(--text-strong);font-size:14px;font-weight:600;line-height:1.3}@media (min-width:721px){.path-node-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:36.4px;display:-webkit-box;overflow:hidden}}.path-node-meta{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:11px}.path-connector{background:repeating-linear-gradient(90deg, var(--border-strong) 0 4px, transparent 4px 8px);flex:0 0 24px;align-self:center;height:1px}@media (max-width:720px){.path-pipeline{flex-direction:column}.path-node{width:auto}.path-connector{background:repeating-linear-gradient(180deg, var(--border-strong) 0 4px, transparent 4px 8px);flex-basis:20px;width:1px;height:20px;margin-left:32px}}.lesson-row{border-bottom:1px solid var(--border-subtle);transition:background var(--duration-fast) var(--ease-out);align-items:center;gap:16px;padding:14px;text-decoration:none;display:flex}.lesson-row:first-child{border-top:1px solid var(--border-subtle)}.lesson-row:hover,.lesson-row:focus-visible{background:var(--surface-hover)}.lesson-row:hover .lesson-row-num,.lesson-row:focus-visible .lesson-row-num{color:var(--course-color,var(--brand));text-shadow:0 0 8px color-mix(in srgb, var(--course-color,var(--brand)) 55%, transparent)}.lesson-row-num{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-subtle);width:38px;transition:color var(--duration-fast) var(--ease-out), text-shadow var(--duration-fast) var(--ease-out);flex-shrink:0;font-size:12px}.guided-eyebrow{font-family:var(--font-label);letter-spacing:var(--tracking-panel);text-transform:uppercase;color:var(--text-subtle);font-size:11px}.guided-facts{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-subtle);flex-wrap:wrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.guided-board{flex-direction:column;display:flex}.guided-next{background:var(--surface-card);border:1px solid color-mix(in srgb, var(--step-color) 45%, var(--border-default));border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 18px;display:flex}.guided-next-title{font-family:var(--font-display);color:var(--text-strong);margin-top:4px;font-size:16px;font-weight:600;line-height:1.3}.guided-next-meta{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-muted);margin-top:6px;font-size:11.5px}.guided-next-note{font-family:var(--font-serif);color:var(--text-subtle);margin-top:6px;font-size:12.5px;line-height:1.5}.guided-next-cta{font-family:var(--font-label);letter-spacing:.02em;color:#fff;background:var(--brand);border-radius:var(--radius-md);flex-shrink:0;align-items:center;gap:8px;padding:11px 22px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.guided-readout{font-family:var(--font-label);letter-spacing:var(--tracking-panel);text-transform:uppercase;color:var(--text-subtle);justify-content:space-between;align-items:baseline;gap:12px;margin:26px 0 8px;font-size:11px;display:flex}.guided-bar{border-radius:var(--radius-sm);background:var(--surface-sunken);gap:3px;padding:4px;display:flex}.guided-bar-seg{background:var(--border-subtle);height:7px;transition:background var(--duration-base) var(--ease-out);border-radius:1px;flex:1}.guided-bar-seg[data-state=done]{background:var(--step-color);box-shadow:0 0 5px color-mix(in srgb, var(--step-color) 60%, transparent)}.guided-bar-seg[data-state=next]{background:color-mix(in srgb, var(--step-color) 40%, transparent)}.guided-bar-seg[data-state=forthcoming]{background:color-mix(in srgb, var(--border-subtle) 45%, transparent)}.guided-steps{margin:22px 0 0;padding:0;list-style:none}.guided-step{align-items:stretch;gap:14px;display:flex}.guided-step-rail{flex-direction:column;flex-shrink:0;align-items:center;width:28px;padding-top:14px;display:flex}.guided-step-num{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);width:28px;height:28px;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.guided-step-trace{background:repeating-linear-gradient(180deg, var(--border-strong) 0 4px, transparent 4px 8px);flex:1;width:1px;margin:6px 0 0}.guided-step:last-child .guided-step-trace{background:linear-gradient(180deg, var(--border-strong), transparent);opacity:.4}.guided-step-surface{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);min-width:0;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);flex:1;margin-bottom:8px;padding:14px 16px;text-decoration:none;display:block}a.guided-step-surface:hover,a.guided-step-surface:focus-visible{border-color:color-mix(in srgb, var(--step-color) 45%, var(--border-default));background:var(--surface-hover);transform:translateY(-1px)}.guided-step-head{align-items:baseline;gap:12px;display:flex}.guided-step-title{font-family:var(--font-display);color:var(--text-strong);font-size:14px;font-weight:600;line-height:1.35}.guided-step-time{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-subtle);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:11px}.guided-step-outcome{font-family:var(--font-serif);color:var(--text-muted);margin:8px 0 0;font-size:13px;line-height:1.6}.guided-step-meta{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:10px;font-size:10.5px;display:flex}.guided-step-course{color:var(--text-subtle);opacity:.8}.guided-step-pill{border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;margin-left:auto;padding:3px 9px;font-size:10px}.guided-step-pill[data-status=done]{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, transparent);background:var(--success-subtle)}.guided-step-pill[data-status=next]{color:var(--step-color);border-color:color-mix(in srgb, var(--step-color) 50%, transparent);background:color-mix(in srgb, var(--step-color) 12%, transparent)}.guided-step-pill[data-status=forthcoming]{color:var(--text-subtle);background:0 0;border-style:dashed}.guided-step[data-state=done] .guided-step-num{color:var(--success);border-color:color-mix(in srgb, var(--success) 55%, transparent)}.guided-step[data-state=done] .guided-step-title{color:var(--text-muted)}.guided-step[data-state=next] .guided-step-num{color:var(--step-color);border-color:var(--step-color);box-shadow:0 0 8px color-mix(in srgb, var(--step-color) 45%, transparent)}.guided-step[data-state=next] .guided-step-surface{border-color:color-mix(in srgb, var(--step-color) 55%, var(--border-default));box-shadow:0 10px 24px -16px color-mix(in srgb, var(--step-color) 55%, transparent)}.guided-step[data-state=forthcoming] .guided-step-surface{background:var(--surface-sunken);border-style:dashed}.guided-step[data-state=forthcoming] .guided-step-title{color:var(--text-muted)}.guided-step[data-state=forthcoming] .guided-step-num{color:var(--text-subtle);background:0 0;border-style:dashed}.guided-callout{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken);font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-muted);transition:border-color var(--duration-fast) var(--ease-out);flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;padding:11px 14px;font-size:11.5px;text-decoration:none;display:flex}a.guided-callout:hover,a.guided-callout:focus-visible{border-color:var(--border-strong)}.guided-callout-steps{color:var(--text-subtle)}@media (max-width:640px){.guided-step{gap:10px}.guided-step-surface{padding:12px 13px}.guided-step-head{flex-wrap:wrap;gap:2px 12px}.guided-step-time{margin-left:0}}@media (prefers-reduced-motion:reduce){.guided-step-surface,a.guided-step-surface:hover,a.guided-step-surface:focus-visible{transition:none;transform:none}.guided-bar-seg{transition:none}}
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:focus-visible{outline:2px solid var(--border-focus,var(--brand));outline-offset:2px;border-radius:3px}.skip-link{z-index:400;background:var(--surface-card);color:var(--text-strong);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:var(--font-body);transition:transform var(--duration-fast) var(--ease-out);padding:10px 16px;font-size:14px;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}body{background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);min-height:100vh;line-height:var(--leading-relaxed);margin:0}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.katex-display{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin:1.5em 0;padding:1.25em 1.5em;overflow:auto hidden}.katex-display>.katex{max-width:100%}.hljs{color:var(--gray-100);background:0 0}.hljs-keyword,.hljs-built_in{color:var(--amber-300)}.hljs-string,.hljs-literal{color:var(--teal-300)}.hljs-number{color:var(--blue-200)}.hljs-comment{color:var(--gray-500);font-style:italic}.hljs-function,.hljs-title,.hljs-class,.hljs-type{color:var(--blue-300)}.hljs-variable,.hljs-name{color:var(--gray-100)}.hljs-attr{color:var(--amber-200)}.hljs-selector-tag{color:var(--amber-300)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-up{animation:.22s cubic-bezier(.22,1,.36,1) both fadeUp}@media (prefers-reduced-motion:reduce){.fade-up{animation:none}}@media (max-width:640px){.pad-x{padding-left:20px!important;padding-right:20px!important}}@media (max-width:600px){.site-header{gap:14px!important;padding-left:16px!important;padding-right:16px!important}}@media (max-width:720px){.search-trigger-label,.search-trigger-kbd{display:none}.search-trigger{padding:0 10px!important}}.codeblock{margin-bottom:1.5em}.codeblock-bar{background:var(--gray-900);border:1px solid var(--border-subtle);border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none;align-items:center;gap:10px;padding:7px 14px;display:flex}.codeblock-lang{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray-400);font-size:10.5px}.codeblock-copy{font-family:var(--font-mono);letter-spacing:.04em;color:var(--gray-400);background:var(--gray-800);border:1px solid var(--gray-700);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast), border-color var(--duration-fast);margin-left:auto;padding:3px 10px;font-size:11px}.codeblock-copy:hover{color:var(--gray-100);border-color:var(--gray-600)}.codeblock-copy:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@keyframes live-pulse-dot{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--amber-400) 45%, transparent)}50%{box-shadow:0 0 0 5px #0000}}.live-dot{background:var(--amber-400);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.2s ease-in-out infinite live-pulse-dot}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.heading-linked .anchor-link{color:var(--text-subtle);opacity:0;transition:opacity var(--duration-fast) var(--ease-out), color var(--duration-fast);margin-left:.4em;font-weight:400;text-decoration:none}.heading-linked:hover .anchor-link,.heading-linked:focus-within .anchor-link{opacity:1}.anchor-link:hover{color:var(--brand)}.anchor-link:focus-visible{opacity:1;outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-xs)}.lesson-nav-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 18px;transition:border-color .12s}.lesson-nav-card:hover{border-color:var(--border-strong)}.lesson-nav-card-next{text-align:right}.lesson-nav-card-next:hover{border-color:var(--brand)}.reading-progress{top:var(--header-height);z-index:90;pointer-events:none;height:3px;position:fixed;left:0;right:0}.reading-progress-fill{background:var(--brand);transform-origin:0;will-change:transform;width:100%;height:100%;transform:scaleX(0)}.lesson-shell{min-height:calc(100vh - var(--header-height));display:flex}.lesson-sidebar{background:var(--surface-card);border-right:1px solid var(--border-subtle);width:280px;height:calc(100vh - var(--header-height));top:var(--header-height);z-index:1;flex-direction:column;flex-shrink:0;display:flex;position:sticky;overflow-y:auto}.lesson-mobilebar,.lesson-overlay{display:none}.lesson-head{padding:32px 48px 28px}.lesson-body{align-items:flex-start;gap:44px;padding:40px 48px 60px;display:flex}.lesson-article{flex:1;min-width:0;max-width:800px}.lesson-article h2:not(:first-child){border-top:1px solid var(--border-subtle);padding-top:28px}.lesson-toc{display:none}@media (min-width:1280px){.lesson-toc{flex-shrink:0;width:200px;max-height:calc(100vh - 110px);display:block;position:sticky;top:88px;overflow-y:auto}}@media (max-width:1023px){.lesson-shell{display:block}.lesson-sidebar{width:min(84vw,320px);height:100dvh;transition:transform var(--duration-base) var(--ease-out);box-shadow:var(--shadow-xl);z-index:200;position:fixed;top:0;left:0;transform:translate(-100%)}.lesson-sidebar[data-open=true]{transform:translate(0)}.lesson-overlay[data-open=true]{background:color-mix(in srgb, var(--gray-950) 62%, transparent);z-index:150;animation:fadeUp var(--duration-fast) var(--ease-out) both;display:block;position:fixed;inset:0}.lesson-mobilebar{top:var(--header-height);z-index:80;background:var(--surface-card);border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky}.lesson-drawer-close{display:inline-flex!important}.lesson-head{padding:24px 20px 20px}.lesson-body{padding:28px 20px 56px}}@media (max-width:600px){.lesson-head{padding:20px 16px 18px}.lesson-body{padding:22px 16px 48px}}@media (prefers-reduced-motion:reduce){.lesson-sidebar{transition:none}.lesson-overlay[data-open=true]{animation:none}}@keyframes pyodide-sweep{0%{transform:translate(-100%)}to{transform:translate(500%)}}.pyodide-progress-bar{background:var(--brand);border-radius:2px;width:20%;height:100%;animation:1.4s ease-in-out infinite pyodide-sweep}
