:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fff;--color-surface:#f6f8fa;--color-surface-2:#eef1f4;--color-fg:#1f2328;--color-fg-muted:#59636e;--color-line:#d1d9e0;--color-accent:#0969da;--color-accent-bg:#0969da;--color-accent-line:#0757ba;--color-accent-fg:#fff;--color-ok:#116329;--color-warn:#7d4e00;--color-danger:#cf222e;--color-danger-bg:#cf222e;--color-danger-line:#a40e26;--color-focus:#0969da;--color-selection:#add6ff;--color-scrollbar:#818b98;--color-scrollbar-track:transparent;--color-tint:#7f7f7f1a;--color-track:#7f7f7f40;--color-code-bg:#fff;--color-code-fg:#1f2328;--color-code-strong:#0d1117;--color-code-muted:#59636e;--color-code-faint:#6e7781;--color-code-chrome:#f6f8fa;--color-code-line:#d1d9e0;--color-code-hover:#eaeef2;--color-code-active:#dde4ec;--color-code-error:#cf222e;--color-code-warn:#9a6700;--color-code-line-highlight:#eee;--color-term-bg:#fff;--color-term-fg:#1f2328;--color-term-cursor:#1f2328;--color-term-selection:#0969da33;--color-ansi-black:#24292f;--color-ansi-red:#cf222e;--color-ansi-green:#116329;--color-ansi-yellow:#7d4e00;--color-ansi-blue:#0969da;--color-ansi-magenta:#8250df;--color-ansi-cyan:#1b7c83;--color-ansi-white:#6e7781;--color-ansi-bright-black:#59636e;--color-ansi-bright-red:#a40e26;--color-ansi-bright-green:#1a7f37;--color-ansi-bright-yellow:#633c01;--color-ansi-bright-blue:#0550ae;--color-ansi-bright-magenta:#6639ba;--color-ansi-bright-cyan:#136061;--color-ansi-bright-white:#8c959f;--shadow-toast:0 4px 14px #1f23282e;--shadow-popover:0 8px 24px #1f232833;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono", monospace;--text-xs:11px;--text-sm:12px;--text-ui:13px;--text-md:14px;--text-body:16px;--leading-tight:1.25;--leading-ui:1.45;--leading-body:1.6;--space-1:.125rem;--space-2:.25rem;--space-3:.5rem;--space-4:.75rem;--space-5:1rem;--space-6:1.5rem;--space-7:2rem;--space-8:3rem;--radius-1:3px;--radius-2:5px;--radius-3:6px;--radius-4:8px;--radius-pill:999px;--focus-ring:2px solid var(--color-focus);--duration-fast:.12s;--duration-base:.2s}@media not all and (prefers-color-scheme:light){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0b0e11;--color-surface:#11161b;--color-surface-2:#161b22;--color-fg:#d7dde3;--color-fg-muted:#8a96a3;--color-line:#2b3138;--color-accent:#4aa3ff;--color-accent-bg:#1f6feb;--color-accent-line:#2f81f7;--color-accent-fg:#fff;--color-ok:#3fb950;--color-warn:#e3b341;--color-danger:#f85149;--color-danger-bg:#b62324;--color-danger-line:#da3633;--color-focus:#4aa3ff;--color-selection:#264f78;--color-scrollbar:#6e7681;--color-scrollbar-track:transparent;--color-tint:#7f7f7f1a;--color-track:#7f7f7f40;--color-code-bg:#1e1e1e;--color-code-fg:#d4d4d4;--color-code-strong:#e8e8e8;--color-code-muted:#9da5ad;--color-code-faint:#6b737b;--color-code-chrome:#181818;--color-code-line:#333;--color-code-hover:#2a2d2e;--color-code-active:#37373d;--color-code-error:#f48771;--color-code-warn:#cca700;--color-code-line-highlight:#282828;--color-term-bg:#101418;--color-term-fg:#fff;--color-term-cursor:#fff;--color-term-selection:#ffffff4d;--color-ansi-black:#484f58;--color-ansi-red:#ff7b72;--color-ansi-green:#3fb950;--color-ansi-yellow:#d29922;--color-ansi-blue:#58a6ff;--color-ansi-magenta:#bc8cff;--color-ansi-cyan:#39c5cf;--color-ansi-white:#b1bac4;--color-ansi-bright-black:#888a8c;--color-ansi-bright-red:#ffa198;--color-ansi-bright-green:#56d364;--color-ansi-bright-yellow:#e3b341;--color-ansi-bright-blue:#79c0ff;--color-ansi-bright-magenta:#d2a8ff;--color-ansi-bright-cyan:#56d4dd;--color-ansi-bright-white:#fff;--shadow-toast:0 4px 14px #00000080;--shadow-popover:0 8px 24px #00000080}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0b0e11;--color-surface:#11161b;--color-surface-2:#161b22;--color-fg:#d7dde3;--color-fg-muted:#8a96a3;--color-line:#2b3138;--color-accent:#4aa3ff;--color-accent-bg:#1f6feb;--color-accent-line:#2f81f7;--color-accent-fg:#fff;--color-ok:#3fb950;--color-warn:#e3b341;--color-danger:#f85149;--color-danger-bg:#b62324;--color-danger-line:#da3633;--color-focus:#4aa3ff;--color-selection:#264f78;--color-scrollbar:#6e7681;--color-scrollbar-track:transparent;--color-tint:#7f7f7f1a;--color-track:#7f7f7f40;--color-code-bg:#1e1e1e;--color-code-fg:#d4d4d4;--color-code-strong:#e8e8e8;--color-code-muted:#9da5ad;--color-code-faint:#6b737b;--color-code-chrome:#181818;--color-code-line:#333;--color-code-hover:#2a2d2e;--color-code-active:#37373d;--color-code-error:#f48771;--color-code-warn:#cca700;--color-code-line-highlight:#282828;--color-term-bg:#101418;--color-term-fg:#fff;--color-term-cursor:#fff;--color-term-selection:#ffffff4d;--color-ansi-black:#484f58;--color-ansi-red:#ff7b72;--color-ansi-green:#3fb950;--color-ansi-yellow:#d29922;--color-ansi-blue:#58a6ff;--color-ansi-magenta:#bc8cff;--color-ansi-cyan:#39c5cf;--color-ansi-white:#b1bac4;--color-ansi-bright-black:#888a8c;--color-ansi-bright-red:#ffa198;--color-ansi-bright-green:#56d364;--color-ansi-bright-yellow:#e3b341;--color-ansi-bright-blue:#79c0ff;--color-ansi-bright-magenta:#d2a8ff;--color-ansi-bright-cyan:#56d4dd;--color-ansi-bright-white:#fff;--shadow-toast:0 4px 14px #00000080;--shadow-popover:0 8px 24px #00000080}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s}}:root{scrollbar-color:var(--color-scrollbar) var(--color-scrollbar-track)}*{scrollbar-width:thin}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-muted)}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-corner{background:var(--color-scrollbar-track)}.theme-pick{width:1.6rem;height:1.6rem;color:var(--color-fg-muted);border-radius:var(--radius-2);cursor:pointer;background:0 0;border:0;flex:none;align-self:center;place-items:center;margin-left:auto;padding:0;display:inline-grid}.theme-pick:hover{color:var(--color-fg);background:var(--color-surface-2)}.theme-pick svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;width:1rem;height:1rem;display:none}.theme-pick .fill{fill:currentColor;stroke:none}:root:not([data-theme]) .theme-pick .i-system,:root[data-theme=light] .theme-pick .i-light,:root[data-theme=dark] .theme-pick .i-dark{display:block}html{background:var(--color-bg)}body{background:var(--color-bg);color:var(--color-fg);font:var(--text-body)/var(--leading-body) var(--font-sans);margin:0}a{color:var(--color-accent)}:is(a,button,summary):focus-visible{outline:var(--focus-ring);outline-offset:2px}code,pre{font-family:var(--font-mono)}code{background:var(--color-surface-2);border-radius:var(--radius-1);padding:.1em .3em;font-size:.9em}pre{background:var(--color-surface-2);border-radius:var(--radius-3);padding:.75rem 1rem;font-size:14px;line-height:1.45;overflow-x:auto}pre code{font-size:inherit;background:0 0;padding:0}header.site{border-bottom:1px solid var(--color-line);flex-wrap:wrap;align-items:baseline;gap:.25rem 1.5rem;padding:.6rem max(1rem,50% - 30rem);display:flex}header.site .brand{color:var(--color-fg);letter-spacing:.02em;font-weight:700;text-decoration:none}.crumbs>ol{align-items:baseline;margin:0;padding:0;list-style:none;display:flex}.crumbs>ol>li>a{color:var(--color-fg);letter-spacing:.02em;font-weight:700;text-decoration:none}.crumbs>ol>li+li:before{content:"›";color:var(--color-fg-muted);margin:0 .21em 0 .22em;font-weight:700}header.site a.brand:hover,.crumbs>ol>li>a:hover{text-decoration:underline}header.site{position:relative}.outline-btn{font:inherit;font-size:var(--text-md);color:var(--color-fg-muted);border:1px solid var(--color-line);border-radius:var(--radius-2);padding:0 var(--space-3);cursor:pointer;background:0 0;align-self:center}.outline-btn:hover,.outline-btn[aria-expanded=true]{color:var(--color-fg);background:var(--color-surface-2)}.outline-btn:after{content:" ▾";font-size:var(--text-xs)}body:not([data-ws]) .outline-btn{pointer-events:none;border-color:#0000}body:not([data-ws]) .outline-btn:after{content:none}.outline:not([hidden]){z-index:40;box-sizing:border-box;width:min(24rem,100vw - 2rem);max-height:min(32rem,75vh);padding:var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-4);box-shadow:var(--shadow-popover);font:var(--text-md)/var(--leading-ui) var(--font-sans);position:absolute;top:calc(100% - 4px);overflow:auto}.outline ol{margin:0;padding:0;list-style:none}.outline .ol-steps{padding-left:var(--space-6)}.outline a,.outline button{gap:var(--space-2);box-sizing:border-box;width:100%;padding:var(--space-2) var(--space-3);color:var(--color-fg);border-radius:var(--radius-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.outline a:hover,.outline button:hover{background:var(--color-tint)}.outline [aria-current]{font-weight:600}.ol-mark{min-width:2.2em;color:var(--color-ok);font-variant-numeric:tabular-nums;display:inline-block}.ol-steps .ol-mark{min-width:1.2em;color:var(--color-fg-muted)}.ol-foot{margin:var(--space-2) 0 0;padding-top:var(--space-2);border-top:1px solid var(--color-line);flex-wrap:wrap;display:flex}.outline .ol-foot a{width:auto;color:var(--color-accent)}footer.site{color:var(--color-fg-muted);border-top:1px solid var(--color-line);margin-top:2rem;padding:1rem max(1rem,50% - 30rem) 2rem;font-size:14px}footer.site p{margin:0}.foot-row{justify-content:space-between;align-items:baseline;gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.foot-about{flex:24rem;max-width:44rem}.foot-about strong{color:var(--color-fg)}.foot-links{gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}footer.site .foot-copy{margin-top:var(--space-4);font-size:var(--text-sm)}main{padding:0 max(1rem,50% - 30rem)}h1{margin:1rem 0 .75rem;font-size:1.9rem;line-height:1.25}h2{margin:2rem 0 .5rem;font-size:1.35rem}h3{margin:1.5rem 0 .4rem;font-size:1.1rem}blockquote{border-left:3px solid var(--color-accent);color:var(--color-fg-muted);margin:1rem 0;padding:.25rem 1rem}.env-bar{z-index:5;background:var(--color-bg);padding:.4rem max(1rem,50% - 30rem);position:sticky;top:0}.env-bar xvm-progress[hidden]{display:none}.env-bar p{color:var(--color-warn);margin:.25rem 0 0;font-size:14px}.env-bar button{font:inherit}xvm-block{display:block}xvm-block.linked{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-4)}xvm-block>template,xvm-block>script{display:none}.intro>:first-child{margin-top:0}.intro>:last-child{margin-bottom:0}xvm-block>xvm-editor,xvm-block>xvm-runner{display:flex}.tools{flex-direction:column;gap:.75rem;margin-top:2rem;display:flex}.terminal-box summary,.tools summary{cursor:pointer;color:var(--color-fg-muted)}.terminal-box xvm-terminal{border-radius:var(--radius-3);height:16rem;margin-top:.4rem;display:block;overflow:hidden}.pager{justify-content:space-between;gap:1rem;margin:2rem 0 0;display:flex}.step-bar,.step-marks,.ws-split,.ws-chip,.ws-footer,.ws-x,.lesson-btn,.ws-head,.ws-menu,.ws-keys,.ws-csplit,.ws-cbar,.ws-max-ed,.ws-unsolo,xvm-block::part(dismiss),xvm-block::part(next){display:none}@media screen and (min-width:768px) and (pointer:fine){body.lesson-page .lesson-btn{display:inline-grid}}body.lesson-page[data-layout=workspace] .lesson-btn{display:inline-grid}body.lesson-page .lesson-btn[hidden]{display:none}body.lesson-page:not([data-ws]) .lesson-btn{visibility:hidden}.lesson-btn{width:1.6rem;height:1.6rem;color:var(--color-fg-muted);border-radius:var(--radius-2);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;align-self:center;place-items:center;margin:0 -.75rem 0 -.3rem;padding:0}.lesson-btn:hover{color:var(--color-fg);background:var(--color-surface-2)}.lesson-btn svg{fill:none;stroke:currentColor;stroke-width:1.25px;width:1rem;height:1rem}.lesson-btn .lp{stroke:none}.lesson-btn[aria-expanded=true] .lp{fill:currentColor;fill-opacity:.4}.step>.intro{border:1px solid var(--color-line);border-radius:var(--radius-4) var(--radius-4) 0 0;background:var(--color-surface);font:var(--text-ui)/var(--leading-ui) var(--font-sans);border-bottom:0;margin:1.25rem 0 0;padding:10px 10px 4px}.step:has(>.intro)+xvm-block{border-radius:0 0 var(--radius-4) var(--radius-4);border-top:0;margin-top:0}@media screen and (min-width:1100px) and (pointer:fine){body.lesson-page:not([data-layout=column]){--ws-w:clamp(28rem, var(--ws-split,46vw), calc(100vw - 34rem - 6px));--ws-top:2.875rem;--ws-l:clamp(28rem, var(--ws-split,46vw), calc(100vw - 34rem - 6px));--ws-head-h:2.5rem;--ws-sep:6px;--ws-tabs-h:2rem;--con:var(--console-h,12rem);overflow:hidden}body.lesson-page:not([data-layout=column])[data-max=editor]{--con:0px}body.lesson-page:not([data-layout=column])[data-max=console]{--con:calc(100vh - var(--ws-top) - var(--ws-head-h) - 2rem - var(--ws-sep) - var(--ws-tabs-h))}body.lesson-page:not([data-layout=column])[data-solo]{--ws-w:calc(100vw - 6px)}body.lesson-page:not([data-layout=column])[data-solo] main.lesson{visibility:hidden}body.lesson-page:not([data-layout=column])[data-solo] main.lesson :is(xvm-block[data-active],.ws-head,.ws-cbar,.ws-csplit,.ws-max-ed,.ws-unsolo,.ws-split,.ws-menu,.ws-keys){visibility:visible}body.lesson-page:not([data-layout=column])[data-solo] .ws-split{pointer-events:none}body.lesson-page:not([data-layout=column]) header.site{padding-inline:1.5rem}body.lesson-page:not([data-layout=column])>footer.site{display:none}body.lesson-page:not([data-layout=column]) main.lesson{top:var(--ws-top);bottom:0;left:0;right:calc(var(--ws-l) + 6px);outline:0;padding:0 1.5rem;position:fixed;overflow-y:auto}body.lesson-page:not([data-layout=column]):not([data-ws]) main.lesson{animation:0s .4s backwards ws-wait}body.lesson-page:not([data-layout=column]) main.lesson>:is(article,section,nav,footer){max-width:72ch;margin-inline:auto}body.lesson-page:not([data-layout=column]) .ws-footer{padding-inline:0;display:block}body.lesson-page:not([data-layout=column]) .step{border:1px solid var(--color-line);border-radius:var(--radius-4);background:var(--color-surface);margin:1.25rem 0;padding:.6rem .8rem;scroll-margin-top:.75rem;font-size:15px}body.lesson-page:not([data-layout=column]) .step[data-near]:not([aria-current]){border-left-color:var(--color-fg-muted)}body.lesson-page:not([data-layout=column]) .step[aria-current]{border-color:var(--color-accent);box-shadow:inset 3px 0 var(--color-accent)}body.lesson-page:not([data-layout=column]) .step>.intro{font:inherit;background:0 0;border:0;margin:0 0 .5rem;padding:0}body.lesson-page:not([data-layout=column]) .step-bar{cursor:pointer;white-space:nowrap;flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;margin:0;display:flex}.step-bar>*{flex:none}.step-bar>.step-title{white-space:normal;flex:0 auto;min-width:0}.step-bar>.step-files{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.step-act{align-items:baseline;gap:.6rem;margin-left:auto;display:flex}.step-no{text-align:center;border-radius:var(--radius-pill);background:var(--color-line);min-width:1.5em;font-size:13px;font-weight:600}.step-title{font-weight:600}.step-files{color:var(--color-fg-muted);font:13px var(--font-mono)}.step-mark{text-align:right;min-width:10.5em;color:var(--color-fg-muted);font-size:14px}.step-bar .step-stop[hidden]{visibility:hidden;display:inline-block}.step-mark[data-state=active],.step-marks [data-state=active]{color:var(--color-accent)}.step-mark[data-state=done],.step-marks [data-state=done]{color:var(--color-ok)}.step-mark[data-state=running],.step-marks [data-state=running]{color:var(--color-warn)}.step-bar button,.ws-chip{font:inherit;color:var(--color-fg);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-2);cursor:pointer;padding:1px 10px;font-size:14px}.step-bar .step-open,.step-bar .step-next{border-color:var(--color-accent)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block{z-index:1;top:var(--ws-top);width:var(--ws-w);box-sizing:border-box;padding:var(--ws-head-h) 0 0;border-width:0 0 0 1px;border-radius:0;outline:0;flex-direction:column;gap:0;margin:0;display:flex;position:fixed;bottom:0;right:0}body.lesson-page:not([data-layout=column]) main.lesson xvm-block[data-active]{z-index:2}body.lesson-page:not([data-layout=column]) main.lesson xvm-block:not([data-active]){visibility:hidden}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(head){display:none}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-editor{flex:1 1 0;min-height:8rem}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-editor::part(head){padding-right:2rem}body.lesson-page:not([data-layout=column])[data-max=console] main.lesson xvm-block>xvm-editor{flex:0 0 2rem;min-height:0;overflow:hidden}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner{padding-top:calc(var(--ws-sep) + var(--ws-tabs-h));gap:0}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(output){height:var(--con);min-height:0}body.lesson-page:not([data-layout=column])[data-tab] main.lesson xvm-block>xvm-runner::part(output){visibility:hidden}body.lesson-page:not([data-layout=column])[data-max=editor] main.lesson xvm-block>xvm-runner::part(output){visibility:hidden;width:calc(var(--ws-w) - 1px);height:var(--console-h,12rem);position:fixed;bottom:0;right:0}body.lesson-page:not([data-layout=column]) .tools{margin:0}body.lesson-page:not([data-layout=column]) .terminal-box>summary{display:none}body.lesson-page:not([data-layout=column]) .terminal-box xvm-terminal,body.lesson-page:not([data-layout=column]) xvm-env-panel{z-index:3;width:calc(var(--ws-w) - 1px);height:var(--con);box-sizing:border-box;visibility:hidden;border-radius:0;min-height:0;margin:0;position:fixed;bottom:0;right:0}body.lesson-page:not([data-layout=column])[data-tab=term] .terminal-box xvm-terminal,body.lesson-page:not([data-layout=column])[data-tab=env] xvm-env-panel{visibility:visible}body.lesson-page:not([data-layout=column])[data-max=editor] .terminal-box xvm-terminal,body.lesson-page:not([data-layout=column])[data-max=editor] xvm-env-panel{visibility:hidden;height:var(--console-h,12rem)}body.lesson-page:not([data-layout=column]) xvm-env-panel{padding:var(--space-2) var(--space-4);background:var(--color-surface);outline:0;overflow:auto}body.lesson-page:not([data-layout=column]):not([data-tab=env]) xvm-env-panel,body.lesson-page:not([data-layout=column])[data-max=editor] xvm-env-panel,body.lesson-page:not([data-layout=column]) xvm-env-panel::part(summary){display:none}body.lesson-page:not([data-layout=column]) .ws-head{z-index:4;top:var(--ws-top);width:var(--ws-w);height:var(--ws-head-h);box-sizing:border-box;align-items:center;gap:var(--space-2);padding:0 6px 0 var(--space-3);border:solid var(--color-line);font:var(--text-ui)/var(--leading-ui) var(--font-sans);border-width:0 0 1px 1px;display:flex;position:fixed;right:0}body.lesson-page:not([data-layout=column]) :is(.ws-head,.ws-cbar){pointer-events:none}:is(.ws-head,.ws-cbar)>*,.ws-cbar [role=tab]{pointer-events:auto}.ws-pos{color:var(--color-fg-muted);white-space:nowrap}.ws-pos:after{content:" ·"}.ws-title{min-width:0;max-width:calc(var(--ws-w) - 22rem);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ws-head .ws-more{margin-left:auto}.ws-head button,.ws-cbar button,.ws-max-ed,.ws-unsolo{font:inherit;color:var(--color-fg-muted);border-radius:var(--radius-2);padding:0 var(--space-2);cursor:pointer;background:0 0;border:1px solid #0000;min-width:1.75rem;height:1.75rem}.ws-head :is(.ws-prev,.ws-next){font-size:var(--text-body)}:is(.ws-head,.ws-cbar) button:hover:not(:disabled),.ws-max-ed:hover,.ws-unsolo:hover{color:var(--color-fg);background:var(--color-surface-2)}.ws-head button:disabled{opacity:.4;cursor:default}.ws-max[aria-pressed=true]{color:var(--color-accent);border-color:var(--color-accent)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(bar){z-index:5;top:var(--ws-top);height:var(--ws-head-h);position:fixed;right:2.6rem}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(run){white-space:nowrap;padding:3px 12px}xvm-runner::part(key){font-weight:400;font-size:var(--text-sm)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(status){z-index:5;right:2.5rem;bottom:var(--con);height:var(--ws-tabs-h);line-height:var(--ws-tabs-h);max-width:calc(var(--ws-w) - 20rem);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);position:fixed;overflow:hidden}body.lesson-page:not([data-layout=column]) .ws-csplit{z-index:4;width:var(--ws-w);right:0;bottom:calc(var(--con) + var(--ws-tabs-h));height:var(--ws-sep);cursor:row-resize;background:var(--color-line);touch-action:none;display:block;position:fixed}body.lesson-page:not([data-layout=column])[data-max] .ws-csplit{display:none}.ws-csplit:hover,.ws-csplit:focus-visible,.ws-dragging-row .ws-csplit{background:var(--color-accent);outline:0}.ws-dragging-row,.ws-dragging-row *{-webkit-user-select:none;user-select:none;cursor:row-resize}body.lesson-page:not([data-layout=column]) .ws-cbar{z-index:4;width:var(--ws-w);right:0;bottom:var(--con);height:var(--ws-tabs-h);box-sizing:border-box;padding:0 4px 0 var(--space-2);border-left:1px solid var(--color-line);font:var(--text-ui)/1 var(--font-sans);align-items:center;display:flex;position:fixed}.ws-cbar [role=tablist]{flex:1;align-self:stretch;gap:2px;display:flex}.ws-cbar [role=tab]{border-width:0 0 2px;border-radius:0;height:auto;position:relative}.ws-cbar [role=tab][aria-selected=true]{color:var(--color-fg);border-bottom-color:var(--color-accent)}.ws-cbar [role=tab][data-dot]:after{content:"";border-radius:var(--radius-pill);background:var(--color-accent);width:6px;height:6px;position:absolute;top:6px;right:1px}.ws-cbar [role=tab][data-dot=err]:after{background:var(--color-danger)}body.lesson-page:not([data-layout=column]) .ws-max-ed{z-index:4;top:calc(var(--ws-top) + var(--ws-head-h) + 2px);height:1.5rem;display:block;position:fixed;right:4px}body.lesson-page:not([data-layout=column])[data-solo] .ws-unsolo{z-index:5;height:2rem;color:var(--color-fg);background:var(--color-surface-2);border-color:var(--color-line);border-radius:0 var(--radius-2) var(--radius-2) 0;padding:0;display:block;position:fixed;top:calc(50vh - 1rem);left:0}body.lesson-page:not([data-layout=column]) .ws-menu:not([hidden]){z-index:31;top:calc(var(--ws-top) + var(--ws-head-h) - 2px);min-width:13rem;padding:var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-3);box-shadow:var(--shadow-popover);font:var(--text-ui)/var(--leading-ui) var(--font-sans);flex-direction:column;display:flex;position:fixed;right:4px}.ws-menu button{font:inherit;text-align:left;color:var(--color-fg);border-radius:var(--radius-1);padding:var(--space-2) var(--space-3);cursor:pointer;background:0 0;border:0}.ws-menu button:hover{background:var(--color-tint)}body.lesson-page:not([data-layout=column]) .ws-keys:not([hidden]){outline:0;display:block}.ws-keys table{border-collapse:collapse}.ws-keys th{padding:1px var(--space-4) 1px 0;text-align:left;color:var(--color-fg-muted);font-weight:400}.ws-keys td{font-family:var(--font-mono);font-size:var(--text-sm);padding:1px 0}body.lesson-page:not([data-layout=column]) .ws-split{z-index:3;top:var(--ws-top);bottom:0;right:var(--ws-w);cursor:col-resize;background:var(--color-line);touch-action:none;width:6px;display:block;position:fixed}.ws-split:hover,.ws-split:focus-visible,.ws-dragging .ws-split{background:var(--color-accent);outline:0}.ws-dragging,.ws-dragging *{-webkit-user-select:none;user-select:none;cursor:col-resize}body.lesson-page:not([data-layout=column]) .ws-chip:not([hidden]){z-index:3;top:calc(var(--ws-top) + .5rem);right:calc(var(--ws-w) + 2rem);display:block;position:fixed}body.lesson-page:not([data-layout=column]) .step-marks{z-index:6;height:var(--ws-top);pointer-events:auto;align-items:center;gap:4px;display:flex;position:fixed;top:0;right:3.6rem}.step-marks button{font:inherit;min-width:1.9em;color:var(--color-fg-muted);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-2);cursor:pointer;font-size:14px}.step-marks button[aria-current]{border-color:var(--color-accent)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(feedback),body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(note),body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(confirm),body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(shared),body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(restart),body.lesson-page:not([data-layout=column]) .ws-keys,body.lesson-page:not([data-layout=column]) .env-bar>p{z-index:30;right:16px;bottom:calc(var(--con) + var(--ws-tabs-h) + var(--ws-sep) + var(--stack-y,0px));max-width:min(34rem, calc(var(--ws-w) - 32px));box-sizing:border-box;font:var(--text-ui)/var(--leading-ui) var(--font-sans);color:var(--color-fg);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-3);box-shadow:var(--shadow-toast);pointer-events:auto;margin:0;padding:6px 2rem 6px 10px;position:fixed}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(confirm),body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(shared),body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(restart),body.lesson-page:not([data-layout=column]) .env-bar>p{border-left:3px solid var(--color-warn)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(next){display:revert;font:inherit;color:var(--color-accent-fg);background:var(--color-accent-bg);border:1px solid var(--color-accent-line);border-radius:var(--radius-2);cursor:pointer;margin-left:auto;padding:1px 10px;font-weight:600}body.lesson-page:not([data-layout=column]) .env-bar>p{color:var(--color-warn)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(note){cursor:pointer;color:var(--color-fg-muted)}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(note):after{content:"×";font:16px/1 var(--font-sans);position:absolute;top:3px;right:9px}body.lesson-page:not([data-layout=column]) main.lesson xvm-block::part(dismiss),body.lesson-page:not([data-layout=column]) main.lesson xvm-block>xvm-runner::part(dismiss),body.lesson-page:not([data-layout=column]) .ws-x{font:16px/1 var(--font-sans);color:var(--color-fg-muted);cursor:pointer;background:0 0;border:0;padding:2px 5px;display:block;position:absolute;top:3px;right:4px}body.lesson-page:not([data-layout=column]) .env-bar{pointer-events:none;width:0;height:0;padding:0;position:fixed;overflow:visible}body.lesson-page:not([data-layout=column]) .env-bar xvm-progress{z-index:6;top:calc(var(--ws-top) + (var(--ws-head-h) - 1.3rem) / 2);left:calc(100vw - var(--ws-w) + 1px);height:1.3rem;padding-left:var(--space-3);white-space:nowrap;pointer-events:none;background:var(--color-surface);position:fixed;right:12.5rem;overflow:hidden}body.lesson-page:not([data-layout=column]):not([data-ws]) .env-bar xvm-progress{animation:0s .4s backwards ws-wait}body.lesson-page:not([data-layout=column]) .env-bar xvm-progress::part(label){min-width:17em;display:inline-block}body.lesson-page:not([data-layout=column]) .env-bar xvm-progress::part(detail){text-overflow:ellipsis;flex:1 1 0;min-width:0;overflow:hidden}body.lesson-page:not([data-layout=column]) .env-bar xvm-progress::part(bar){top:var(--ws-top);width:var(--ws-w);border-radius:0;height:3px;margin:0;position:fixed;right:0}}@keyframes ws-wait{0%{visibility:hidden}}@media print{.ws-footer{display:none}xvm-block{visibility:visible!important}.outline-btn{border:0}.outline-btn:after{content:none}}ol.lessons{flex-direction:column;gap:.75rem;margin:1.5rem 0;padding:0;list-style:none;display:flex}ol.lessons li{border:1px solid var(--color-line);border-radius:var(--radius-4);background:var(--color-surface);padding:.75rem 1rem;position:relative}ol.lessons li:hover{border-color:var(--color-accent)}ol.lessons li a{font-size:1.1rem;font-weight:600;text-decoration:none}ol.lessons li a:after{content:"";border-radius:inherit;position:absolute;inset:0}ol.lessons li .no{min-width:1.6em;color:var(--color-fg-muted);display:inline-block}ol.lessons li p{color:var(--color-fg-muted);margin:.25rem 0 0 1.6em}ol.lessons li .mark{color:var(--color-ok);pointer-events:none;font-weight:600;position:absolute;top:.8rem;right:1rem}ol.lessons li.here{outline:2px solid var(--color-accent);outline-offset:-1px}ol.lessons li.here .mark{color:var(--color-accent)}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hero,.course .summary{color:var(--color-fg-muted);margin:0 0 1rem;font-size:1.1rem}.cards{grid-template-columns:repeat(auto-fill,minmax(min(22rem,100%),1fr));gap:1rem;margin:1.5rem 0 1rem;display:grid}.card{align-items:flex-start;gap:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-4);background:var(--color-surface);flex-direction:column;padding:1rem 1.25rem;display:flex;position:relative}.card:hover{border-color:var(--color-accent)}.card h2{margin:0;font-size:1.35rem}.card-link{text-decoration:none}.card-link:after{content:"";border-radius:inherit;position:absolute;inset:0}.card p{margin:0}.card .meta,.card .progress{color:var(--color-fg-muted)}.cards-soon{grid-template-columns:repeat(auto-fill,minmax(min(13rem,100%),1fr));margin-top:0}.card-soon{background:var(--color-bg);color:var(--color-fg-muted);border-style:dashed}.card-soon:hover{border-color:var(--color-line)}.card-soon h2{align-items:flex-start;gap:var(--space-2);color:var(--color-fg-muted);flex-direction:column;font-size:1.1rem;display:flex}.soon{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-2);font-size:var(--text-sm);font-weight:600}.p-marks{letter-spacing:.15em}.env{padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-fg);font-size:var(--text-md);margin:0;display:inline-block}.cta{z-index:1;padding:var(--space-3) var(--space-5);border-radius:var(--radius-3);background:var(--color-accent-bg);color:var(--color-accent-fg);font-weight:600;text-decoration:none;display:inline-block;position:relative}.cta:hover{text-decoration:underline}.cta[hidden]{display:none}.acts{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.play{z-index:1;padding:calc(var(--space-3) - 1px) var(--space-5);border:1px solid var(--color-accent);border-radius:var(--radius-3);color:var(--color-accent);font-weight:600;text-decoration:none;display:inline-block;position:relative}.play:hover{background:var(--color-tint);text-decoration:underline}.course .env{margin-top:.25rem}.course-head{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;margin:1rem 0 0;display:flex}.course-head p{color:var(--color-fg-muted);margin:0}ul.versions{padding-left:1.2em}@media (max-width:600px){body{font-size:15px}h1{font-size:1.5rem}}
