:root{--ease:cubic-bezier(.32, .72, 0, 1);--sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--display:"Martian Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0f12;--panel:#15171b;--panel-2:#1c1f24;--border:#262a31;--border-strong:#363b44;--text:#eceef2;--muted:#a7adb8;--subtle:#868d99;--muted-2:#5b626e;--selection:#2b3a55;--accent:#f3b74f;--accent-text:#f3b74f;--accent-ink:#1b1406;--accent-soft:#382d18;--active:#6fa8ff;--active-soft:#18243a;--done:#52c98f;--done-text:#52c98f;--done-ink:#06210f;--done-soft:#142c20;--pointer:#b9a2ff;--pointer-ink:#160f2b;--pointer-soft:#251f3a;--error:#ff7b7b;--error-soft:#3a1b1b;--easy:#52c98f;--medium:#f3b74f;--hard:#ff8080;--node-fill:#1c1f24;--node-stroke:#3a404a;--node-text:#eceef2;--edge:#363b44;--ov0:#c08cff;--ov1:#3cc7d4;--ov2:#ff6fa6;--ov3:#ffa14f;--ov4:#94c95a;--cat0:#172638;--cat1:#173022;--cat2:#33281a;--cat3:#2c1d33;--cat4:#351c1c;--syn-keyword:#9aa8c0;--syn-func:#7fd1c7;--syn-class:#7fd1c7;--syn-string:#b8d99a;--syn-number:#f0a3b5;--syn-comment:#737a86;--syn-self:#a7adb8;--syn-prop:#eceef2;--syn-punct:#a7adb8;--line-cur:#f3b74f24;--line-prev:#ffffff0a;--callsite:#6fa8ff29;--track:#ffffff14;--dot:#1d2026;--shadow:none;--node-shadow:0 1px 0 #0006;--shadow-pop:0 16px 48px #00000080;--drawer-shadow:-24px 0 48px #00000059}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f8;--panel:#fff;--panel-2:#f1f3f6;--border:#e3e6eb;--border-strong:#cdd2da;--text:#15171b;--muted:#4b5260;--subtle:#687080;--muted-2:#a9b0bb;--selection:#cfe0ff;--accent:#f2b13e;--accent-text:#8a5300;--accent-ink:#1b1406;--accent-soft:#fdf0d5;--active:#2f6fe0;--active-soft:#e7effd;--done:#1f9d5c;--done-text:#167a45;--done-ink:#fff;--done-soft:#e2f4ea;--pointer:#6f4ff0;--pointer-ink:#fff;--pointer-soft:#eee9fe;--error:#c93434;--error-soft:#fbe5e5;--easy:#17804b;--medium:#9a5d00;--hard:#c93434;--node-fill:#fff;--node-stroke:#c3c9d3;--node-text:#15171b;--edge:#c9ced6;--ov0:#8a4fd8;--ov1:#0f9ba8;--ov2:#d6457f;--ov3:#d9822b;--ov4:#5d8f2a;--cat0:#e3eefb;--cat1:#d7efd2;--cat2:#f6e3c7;--cat3:#efdcf5;--cat4:#f6d9d9;--syn-keyword:#55658a;--syn-func:#0b7a74;--syn-class:#0b7a74;--syn-string:#3d7a2a;--syn-number:#b2335b;--syn-comment:#8a919c;--syn-self:#5d6573;--syn-prop:#15171b;--syn-punct:#5d6573;--line-cur:#f2b13e38;--line-prev:#14171b0a;--callsite:#2f6fe01c;--track:#14171b14;--dot:#dde1e7;--shadow:0 1px 2px #1018280d;--node-shadow:0 1px 2px #1018280f;--shadow-pop:0 16px 48px #10182824;--drawer-shadow:-24px 0 48px #1018281a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}code{font-family:var(--mono);background:var(--panel-2);border-radius:5px;padding:1px 5px;font-size:.9em}button,select,input,textarea{font:inherit;color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--active);outline-offset:2px}kbd{font:500 12px/1 var(--mono);border:1px solid var(--border);color:var(--subtle);background:0 0;border-radius:5px;padding:3px 6px}.muted{color:var(--muted)}.small{font-size:13px}.link-btn{color:var(--active);cursor:pointer;background:0 0;border:none;padding:0 2px;font-weight:500}.link-btn:hover{text-decoration:underline}.bar{background:var(--track);border-radius:2px;height:3px;display:block;overflow:hidden}.bar>span{background:var(--accent);border-radius:2px;height:100%;display:block}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;place-items:center;text-decoration:none;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-sm{border-radius:8px;width:30px;height:30px}.help-q{font:600 16px/1 var(--sans)}.play-btn,.primary-btn,.small-primary{background:var(--accent);height:36px;color:var(--accent-ink);font:600 14px/1 var(--sans);cursor:pointer;white-space:nowrap;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.play-btn{border-radius:10px;min-width:96px;height:40px;padding:0 16px 0 12px}.play-btn:hover:not(:disabled),.primary-btn:hover:not(:disabled),.small-primary:hover:not(:disabled){filter:brightness(1.06)}.play-btn:disabled,.primary-btn:disabled{opacity:.5;cursor:default}.secondary-btn,.small-btn{border:1px solid var(--border-strong);height:36px;color:var(--text);font:500 14px/1 var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.small-btn,.small-primary{height:32px;padding:0 12px;font-size:13px}.secondary-btn:hover:not(:disabled),.small-btn:hover:not(:disabled){background:var(--panel-2)}.small-btn:disabled,.secondary-btn:disabled{opacity:.45;cursor:default}.ghost-btn{height:32px;color:var(--muted);font:500 13px/1 var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 10px;text-decoration:none;display:inline-flex}.ghost-btn:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.ghost-btn:disabled{opacity:.4;cursor:default}.live-figure .ghost-btn{border:1px solid var(--border-strong);color:var(--text)}.pill-btn,.chip{border:1px solid var(--border);height:30px;color:var(--muted);font:500 13px/1 var(--sans);cursor:pointer;white-space:nowrap;background:0 0;border-radius:99px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.pill-btn:hover,.chip:hover{color:var(--text);border-color:var(--border-strong)}.pill-btn .count{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);font:600 11px/1 var(--mono);border-radius:9px;place-items:center;padding:0 5px;display:inline-grid}.chip-on{border-color:var(--accent);color:var(--text)}.seg{background:var(--panel-2);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{height:30px;color:var(--muted);font:500 13px/1 var(--sans);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 14px}.seg button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 2px #0000002e}.tool-btn{min-width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;padding:0 6px;display:inline-grid}.tool-btn:hover{background:var(--panel-2);color:var(--text)}.tool-pct{min-width:44px;font:500 12px/1 var(--mono)}.menu-anchor{position:relative}.menu{z-index:40;border:1px solid var(--border);background:var(--panel);min-width:260px;max-width:360px;box-shadow:var(--shadow-pop);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-up{top:auto;bottom:calc(100% + 10px)}.menu>button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;display:flex}.menu>button:hover{background:var(--panel-2)}.check-row{cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;display:flex}.check-row input{accent-color:var(--accent);margin-top:3px}.check-row .muted{font-size:13px;display:block}.diff{white-space:nowrap;font-size:13px;font-weight:500}.diff-easy{color:var(--easy)}.diff-medium{color:var(--medium)}.diff-hard{color:var(--hard)}.topbar{z-index:20;background:var(--bg);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:12px;height:56px;padding:0 16px 0 20px;display:flex;position:relative}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.brand-icon{border-radius:9px;justify-content:center;width:34px;height:34px;margin-left:-6px}.brand-icon:hover{background:var(--panel-2)}.topnav{gap:4px;margin-left:16px;display:flex}.topnav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none}.topnav a:hover{color:var(--text)}.topnav a[aria-current]{background:var(--panel-2);color:var(--text)}.topbar-end{align-items:center;gap:8px;margin-left:auto;display:flex}.crumbs{align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.crumbs a{color:var(--muted);white-space:nowrap;font-weight:500;text-decoration:none}.crumbs a:hover{color:var(--text)}.crumbs>span[aria-hidden]{color:var(--subtle)}.crumbs .crumb-title{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;overflow:hidden}.crumb-id{font-family:var(--mono);color:var(--subtle);margin-right:8px;font-weight:500}.sibling-nav{gap:2px;display:flex}.search{border:1px solid var(--border);background:var(--panel);width:min(300px,30vw);height:36px;color:var(--subtle);border-radius:9px;align-items:center;gap:8px;padding:0 8px 0 12px;display:flex;position:relative}.search:focus-within{border-color:var(--border-strong)}.search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:14px}.search input::placeholder{color:var(--subtle)}.search-results{border:1px solid var(--border);background:var(--panel);width:min(420px,90vw);box-shadow:var(--shadow-pop);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.search-results button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:2px;padding:9px 12px;font-size:14px;display:flex}.search-results button .muted{font-size:12.5px}.search-results .is-active{background:var(--panel-2)}.app{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid}.workspace{grid-template-columns:minmax(340px,520px) 0 minmax(0,1fr);min-height:0;display:grid}.left{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}.right{flex-direction:column;min-width:0;min-height:0;padding:14px 16px;display:flex}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;min-width:0}.panel-title{color:var(--subtle);align-items:center;gap:10px;padding:12px 16px 6px;font-size:13px;font-weight:600;display:flex}.solved-toggle{border:1px solid var(--border);height:32px;color:var(--muted);font:500 13px/1 var(--sans);cursor:pointer;background:0 0;border-radius:9px;align-items:center;gap:8px;padding:0 12px 0 10px;transition:border-color .15s,color .15s,background-color .15s;display:inline-flex}.solved-toggle:hover{border-color:var(--border-strong);color:var(--text)}.solved-box-mini{border:2px solid var(--border-strong);width:16px;height:16px;color:var(--done-ink);border-radius:4px;place-items:center;display:grid}.solved-box-mini svg{stroke-width:3.4px}.solved-toggle.is-on{color:var(--done-text);border-color:color-mix(in srgb, var(--done) 45%, transparent);background:var(--done-soft)}.solved-toggle.is-on .solved-box-mini{background:var(--done);border-color:var(--done)}.tabs{border-bottom:1px solid var(--border);flex:0 0 44px;align-items:stretch;gap:24px;padding:0 20px;display:flex}.tab{color:var(--subtle);font:500 14px/1 var(--sans);cursor:pointer;background:0 0;border:0;padding:0;box-shadow:inset 0 -2px #0000}.tab:hover{color:var(--text)}.tab-on{color:var(--text);box-shadow:inset 0 -2px 0 var(--text)}.code-body{flex:1;min-height:0;position:relative;overflow:auto}.code-tools{z-index:3;background:var(--panel);border-radius:8px;align-items:center;gap:4px;font-size:13px;display:flex;position:absolute;top:8px;right:10px}.code-tools .muted{padding:0 6px}.code-host{height:100%}.code-host.is-editing{box-shadow:inset 0 0 0 2px var(--accent-soft)}.cm-indent-hidden{display:none}.cm-step-errline{background:var(--error-soft)}.cm-steplayer{pointer-events:none}.cm-stepbar{background:var(--line-cur);transition:transform var(--step,.3s) var(--ease), height var(--step,.3s) var(--ease), background-color var(--step,.3s) var(--ease);border-radius:7px;position:absolute;top:0}.cm-stepbar-call{background:var(--callsite)}.cm-stepbar-return,.cm-stepbar-resume{background:var(--done-soft)}.cm-stepbar-error{background:var(--error-soft)}.cm-stepbar-dot{top:50%;left:calc(var(--dot-x) - 4px);background:var(--accent);width:8px;height:8px;transition:background-color var(--step,.3s) var(--ease);border-radius:50%;margin-top:-4px;position:absolute}.cm-stepbar-call .cm-stepbar-dot{background:var(--active)}.cm-stepbar-return .cm-stepbar-dot,.cm-stepbar-resume .cm-stepbar-dot{background:var(--done)}.cm-stepbar-error .cm-stepbar-dot{background:var(--error)}.cm-step-prev{background:var(--line-prev)}.cm-step-callsite{background:var(--callsite);border-radius:4px}.cm-step-resultsite{background:var(--done-soft);border-radius:4px}.cm-step-result,.cm-step-retval{font:500 13px/20px var(--mono);color:var(--done-text);background:var(--done-soft);white-space:nowrap;border-radius:6px;margin-left:12px;padding:0 8px}.cm-gutterElement.cm-gutter-cur{color:var(--accent-text);font-weight:600}.cm-gutterElement.cm-gutter-wait{color:var(--active)}.cm-step-arrow{background:var(--accent);border-radius:50%;width:8px;height:8px;display:inline-block}.cm-step-arrow-call{background:var(--active)}.cm-step-arrow-return,.cm-step-arrow-resume{background:var(--done)}.cm-step-arrow-error{background:var(--error)}.cm-step-arrow-prev{display:none}.cm-bp-dot{background:var(--error);border-radius:50%;width:9px;height:9px;display:inline-block}.guide-tab{flex:1;min-height:0;padding:0 28px 40px;font-size:15px;line-height:24px;overflow-y:auto}.guide-jump{z-index:2;background:var(--panel);flex-wrap:wrap;gap:6px;padding:14px 0 10px;display:flex;position:sticky;top:0}.guide-section{border-top:1px solid var(--border);padding:20px 0 8px;scroll-margin-top:54px}.guide-jump+.guide-section{border-top:0}.guide-section>h2{margin:0 0 6px;font-size:17px;font-weight:600;line-height:24px}.guide-section .tab-pad,.guide-tab>.tab-pad{padding:0}.guide-tab>.tab-pad{padding-top:20px}.tab-pad{padding:10px 18px 18px}.idea{font-size:15px}.idea h3,.tab-pad h3{color:var(--subtle);margin:20px 0 6px;font-size:14px;font-weight:600}.idea-summary{margin-top:0;font-size:16px}.idea ol,.idea ul,.tab-pad ul,.tab-pad ol{margin:0;padding-left:20px}.idea li,.tab-pad li{margin:6px 0}.idea-chips{flex-wrap:wrap;gap:6px;display:flex}.pattern-chip,.prereq-chip{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:99px;padding:3px 10px;font-size:13px;font-weight:500}.prereq-chip{color:var(--text);border-color:var(--border-strong);cursor:pointer}.prereq-chip:hover{background:var(--panel-2)}.hints p{margin-top:4px}.hint-card{text-align:left;border:1px solid var(--border);background:var(--panel);border-radius:10px;width:100%;margin:8px 0;padding:10px 14px;display:block}.hint-num{font:600 13px var(--sans);color:var(--accent-text);margin-bottom:3px;display:block}.hint-open{background:var(--panel-2);border-color:#0000}.hint-locked{color:var(--muted);background:var(--panel-2);cursor:default;border-style:dashed}.hint-locked .hint-num{color:var(--muted)}.hint-next{cursor:pointer;color:var(--text);border-style:solid}.hint-next:hover{border-color:var(--accent)}.hint-actions{gap:8px;margin-top:12px;display:flex}.notes{padding-top:18px}.notes-head{justify-content:space-between;align-items:center;min-height:32px;margin-bottom:10px;display:flex}.notes-head h2{margin:0;font-size:17px;font-weight:600;line-height:24px}.notes-text{border:1px solid var(--border);background:var(--panel-2);width:100%;min-height:260px;color:var(--text);font:15px/24px var(--sans);resize:none;border-radius:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:block;overflow:hidden}.notes-text::placeholder{color:var(--subtle)}.notes-text:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.notes-help{color:var(--subtle);margin:10px 2px 0;font-size:12.5px;line-height:20px}.notes-help code,.notes-help kbd{font:500 12px var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.notes-view{padding:2px 0 8px}.md{font-size:15px;line-height:24px}.md>:first-child{margin-top:0}.md p,.md ul,.md ol,.md blockquote{margin:0 0 12px}.md ul,.md ol{padding-left:22px}.md li{margin:4px 0}.md h3{margin:20px 0 8px;font-size:16px;font-weight:600}.md h4{color:var(--muted);margin:16px 0 6px;font-size:14px;font-weight:600}.md blockquote{border-left:3px solid var(--border-strong);color:var(--muted);padding:2px 0 2px 14px}.md code{font:500 13.5px var(--mono);background:var(--panel-2);border-radius:5px;padding:1px 5px}.md .static-code{margin:0 0 12px}.quiz{border:1px solid var(--border);border-radius:12px;margin:12px 0;padding:14px 16px}.quiz-q{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.quiz-opts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.quiz-opt{font:500 14px var(--mono);border:1px solid var(--border);background:var(--panel-2);cursor:pointer;border-radius:9px;padding:7px 12px}.quiz-opt:hover:not(:disabled){border-color:var(--accent)}.quiz-opt:disabled{cursor:default;opacity:.6}.quiz-right{border-color:var(--done);background:var(--done-soft);color:var(--done-text);opacity:1!important}.quiz-wrong{border-color:var(--error);background:var(--error-soft);color:var(--error);opacity:1!important}.quiz-why{margin-top:10px;font-size:14px}.quiz-why-ok strong{color:var(--done-text)}.quiz-why-bad strong{color:var(--error)}.growth{margin-top:24px}.growth-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.growth-head h3{margin:0 auto 0 0!important}.seg-sm button{height:28px;padding:0 10px;font-size:12.5px}.chart-wrap{width:100%;margin-top:6px}.chart-loading{place-items:center;height:240px;font-size:13px;display:grid}.chart{display:block;overflow:visible}.chart .grid{stroke:var(--border)}.chart .axis{stroke:var(--border-strong)}.chart .tick{font:500 11px var(--mono);fill:var(--subtle)}.chart .tick-axis{font-style:italic}.chart .series{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linejoin:round}.chart .dot{fill:currentColor;stroke:var(--panel);stroke-width:2px}.chart .ref polyline{fill:none;stroke:var(--muted-2);stroke-width:1.5px;stroke-dasharray:3 4}.chart .ref-lead{stroke:var(--border)}.chart .ref text{font:500 11px var(--mono);fill:var(--subtle)}.series-keys{color:var(--muted);gap:16px;margin-top:8px;font-size:13px;display:flex}.series-keys i{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.growth-verdict{margin:8px 0 0;font-size:14px;font-weight:500;line-height:21px}.slider{align-items:center;gap:12px;display:flex}.slider input{accent-color:var(--accent);flex:1}.ctable{border-collapse:collapse;width:100%;margin-top:6px;font-size:12.5px}.ctable td{border-bottom:1px solid var(--border);padding:4px 8px}.ctable td:first-child{font:600 12.5px var(--mono)}.crow-ok td:last-child{color:var(--done);font-weight:600}.crow-meh td:last-child{color:var(--accent);font-weight:600}.crow-bad td:last-child{color:var(--error);font-weight:600}.crow-mine{background:var(--accent-soft)}.timer{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;align-items:center;gap:12px;margin:8px 0;padding:10px 14px;display:flex}.timer>div:first-child{flex:1}.timer-running{border-color:var(--accent)}.timer-main{flex:1;min-width:0}.timer-bar{background:var(--border);border-radius:3px;height:6px;margin:6px 0 4px;overflow:hidden}.timer-fill{background:var(--done);height:100%;transition:width .5s linear}.timer-fill.timer-over{background:var(--error)}.timer-goal{font-size:12px}.timer-btns{flex-direction:column;gap:6px;display:flex}.timer-splits{flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:12px;display:flex}.split-over{color:var(--error)}.split-ok{color:var(--done)}.iv-phases{border-top:1px solid var(--border);list-style:none;margin:8px 0 0!important;padding:0!important}.iv-phase{border-bottom:1px solid var(--border);margin:0!important}.iv-phase-head{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:12px 2px;display:flex}.iv-phase-head strong{font-weight:600}.iv-phase-head .muted{font-size:13px}.iv-phase-body{padding:0 2px 14px;font-size:15px}.iv-phase-body p:first-child{margin-top:0}.iv-examples{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.narration-slot{z-index:5;flex:none;height:46px;position:relative}.narration{border-bottom:1px solid var(--border);background:var(--panel);border-radius:14px 14px 0 0;align-items:center;gap:12px;min-height:100%;padding:10px 16px;display:flex;position:absolute;top:0;left:0;right:0}.narr-measure{visibility:hidden;pointer-events:none;height:0;position:absolute;top:0;left:0;right:0;overflow:hidden}.narr-measure .narration{min-height:46px;position:static}.narr-chip{background:var(--panel-2);color:var(--muted);font:600 12px/18px var(--mono);white-space:nowrap;border-radius:6px;flex:none;padding:2px 8px}.chip-line{background:var(--line-cur);color:var(--accent-text)}.chip-call{background:var(--callsite);color:var(--active)}.chip-return,.chip-back,.chip-done{background:var(--done-soft);color:var(--done-text)}.chip-error{background:var(--error-soft);color:var(--error)}.narr-text{letter-spacing:-.005em;text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;margin:0;font-size:17px;font-weight:500;line-height:25px;display:-webkit-box;overflow:hidden}.narr-text.is-fresh{animation:narr-in var(--step,.2s) var(--ease)}@keyframes narr-in{0%{opacity:.35;transform:translateY(3px)}}.narr-changes{flex-wrap:nowrap;flex:0 auto;justify-content:flex-end;gap:6px;max-width:42%;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 24px),#0000)}.change{white-space:nowrap;font:500 13px/20px var(--mono);background:var(--panel-2);color:var(--muted);border-radius:6px;flex:none;padding:1px 8px;animation:.35s ease-out pop-in}.change-add,.change-set{background:var(--done-soft);color:var(--done-text)}.change-remove{background:var(--error-soft);color:var(--error)}.change-change{background:var(--line-cur);color:var(--accent-text)}@keyframes pop-in{0%{opacity:.2;transform:scale(.85)}}.inputs{border-top:1px solid var(--border);flex-direction:column;flex:none;gap:10px;padding:14px 20px 16px;display:flex}.fields{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field{flex:220px;align-items:center;gap:8px;min-width:0;display:flex}.field-name{min-width:36px;font:500 14px/1 var(--mono);color:var(--muted);flex:none}.field input{border:1px solid var(--border);background:var(--panel-2);min-width:0;height:38px;color:var(--text);font:400 14px/1 var(--mono);border-radius:9px;flex:1;padding:0 12px}.field input:focus{border-color:var(--border-strong);box-shadow:0 0 0 3px var(--line-cur);outline:none}.input-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.input-actions select{border:1px solid var(--border);background:var(--panel);height:38px;color:var(--muted);font:500 13px/1 var(--sans);border-radius:9px;padding:0 8px}.input-actions .primary-btn,.input-actions .secondary-btn{height:38px}.result{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;display:flex}.result code{color:var(--text);font:500 13px var(--mono);background:0 0;padding:0}.result-ok{color:var(--done-text);align-items:center;gap:5px;font-weight:500;display:inline-flex}.result-bad,.result-err{color:var(--error);font-weight:500}.tests{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.test{border-radius:6px;padding:2px 8px;font-weight:500}.test-ok{background:var(--done-soft);color:var(--done-text)}.test-bad{background:var(--error-soft);color:var(--error)}.test-detail{font-weight:400;font-family:var(--mono);margin-left:6px;font-size:12px}.canvas{flex-direction:column;flex:60%;min-height:260px;display:flex;overflow:hidden}.canvas-body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden auto}.empty-note{color:var(--muted);text-align:center;margin:auto;padding:24px}.stdout{background:var(--panel-2);max-height:120px;font:13px/1.5 var(--mono);border-radius:10px;margin:0 12px 12px;padding:8px 12px;overflow:auto}.view-block{flex:none}.view-inner{flex-direction:column;min-width:0;display:flex}.view-head{align-items:baseline;gap:10px;padding:2px 4px 6px;font-size:13px;display:flex}.view-title{color:var(--muted);font-weight:600}.view-note{color:var(--subtle)}.zoom-box{touch-action:none;border-radius:10px;position:relative;overflow:hidden}.zoom-pannable{cursor:grab}.zoom-pannable:active{cursor:grabbing}.zoom-content{position:absolute;top:0;left:0}.view-svg{display:block;overflow:visible}.view-tools{z-index:2;border:1px solid var(--border);background:var(--panel);opacity:0;border-radius:9px;align-items:center;gap:1px;padding:2px;transition:opacity .2s;display:flex;position:absolute;bottom:6px;right:6px}.view-block:hover .view-tools,.view-tools:focus-within{opacity:1}@media (hover:none){.view-tools{opacity:.85}}.view-expanded{z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.view-backdrop{background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);position:absolute;inset:0}.view-expanded .view-inner{background:var(--panel);border:1px solid var(--border);width:min(1400px,100vw - 48px);box-shadow:var(--shadow-pop);border-radius:16px;padding:12px;position:relative}.edge{stroke:var(--edge);stroke-width:2px;transition:stroke var(--step,.25s) var(--ease), stroke-width var(--step,.25s) var(--ease), opacity var(--step,.25s) var(--ease)}.edge-null{stroke-dasharray:3 4;opacity:.55;stroke-width:1.5px}.edge-hot{stroke:var(--active);stroke-width:3px;opacity:1}.node-circle{fill:var(--node-fill);stroke:var(--node-stroke);stroke-width:2px;transition:fill var(--step,.25s) var(--ease), stroke var(--step,.25s) var(--ease), stroke-width var(--step,.25s) var(--ease)}.node-val{fill:var(--node-text);font:600 14px var(--mono);pointer-events:none}.node-info{fill:var(--muted);font:600 10px var(--mono);paint-order:stroke;stroke:var(--panel);stroke-width:4px;stroke-linejoin:round}.node-active .node-circle{fill:var(--active-soft);stroke:var(--active);stroke-width:3px}.node-current .node-circle{fill:var(--accent);stroke:var(--accent);stroke-width:3px;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 65%, transparent))}.node-current .node-val{fill:var(--accent-ink)}.node-done .node-circle{fill:var(--done-soft);stroke:var(--done)}.inlist-ring{fill:none;stroke:var(--pointer);stroke-width:2px;stroke-dasharray:4 3}.null circle{fill:var(--panel);stroke:var(--muted-2);stroke-width:1.5px;stroke-dasharray:3 3}.null-current circle{stroke:var(--accent);stroke-width:2.5px;fill:var(--accent-soft)}.null-active circle{stroke:var(--active);stroke-width:2.5px;fill:var(--active-soft)}.null-text{font:600 7.5px var(--sans);fill:var(--muted)}.pointer rect{fill:var(--pointer)}.pointer text{fill:var(--pointer-ink);font:700 11px var(--mono)}.badge rect{fill:var(--done-soft);stroke:var(--done);stroke-width:1.2px}.badge text{fill:var(--done);font:700 11px var(--mono)}.badge-fresh rect{fill:var(--done)}.badge-fresh text{fill:var(--done-ink)}.sublabel rect{fill:var(--panel);stroke:var(--accent);stroke-width:1.2px}.sublabel text{fill:var(--text);font:600 11px var(--mono)}.tree-title{fill:var(--muted);font:700 12px var(--mono);paint-order:stroke;stroke:var(--panel);stroke-width:4px;stroke-linejoin:round}.ll-arrow{fill:none;stroke:var(--muted-2);stroke-width:2px}.ll-hot{stroke:var(--active);stroke-width:2.5px}.ll-prev{stroke-dasharray:4 3;stroke-width:1.5px}.ll-random{stroke:var(--ov2);stroke-dasharray:5 4;stroke-width:1.6px}.ll-none{stroke-dasharray:2 3}.ll-none-text{font:600 10.5px var(--mono);fill:var(--muted)}.arrow-head{fill:var(--muted-2)}.arrow-head-hot{fill:var(--active)}.arrow-head-random{fill:var(--ov2)}.call-box{fill:var(--panel-2);stroke:var(--node-stroke);stroke-width:1.5px;transition:fill var(--step,.25s) var(--ease), stroke var(--step,.25s) var(--ease)}.call-text{font:600 11.5px var(--mono);fill:var(--text)}.call-current .call-box{fill:var(--accent);stroke:var(--accent)}.call-current .call-text{fill:var(--accent-ink)}.call-active .call-box{fill:var(--active-soft);stroke:var(--active);stroke-width:2.5px}.call-done .call-box{fill:var(--done-soft);stroke:var(--done)}.call-error .call-box{fill:var(--error-soft);stroke:var(--error)}.edge-label-bg{fill:var(--panel);stroke:var(--border)}.edge-label{font:700 11px var(--mono);fill:var(--pointer)}.end-ring{fill:none;stroke:var(--pointer);stroke-width:2px}.g-edge{fill:none;stroke:var(--edge);stroke-width:2px}.g-edge-hot{stroke:var(--active);stroke-width:3px}.ov-ring{fill:none;stroke-width:2.5px;stroke-dasharray:4 3}.ov-0{--ov:var(--ov0)}.ov-1{--ov:var(--ov1)}.ov-2{--ov:var(--ov2)}.ov-3{--ov:var(--ov3)}.ov-4{--ov:var(--ov4)}.ov-ring.ov-0,.ov-ring.ov-1,.ov-ring.ov-2,.ov-ring.ov-3,.ov-ring.ov-4{stroke:var(--ov)}.node-circle.ov-fill{fill:color-mix(in srgb, var(--ov) 28%, var(--node-fill));stroke:var(--ov)}.node-current .node-circle.ov-fill{fill:var(--accent);stroke:var(--accent)}.ov-legend{flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:11.5px;display:flex}.ov-key{align-items:center;gap:5px;display:inline-flex}.ov-key i{background:color-mix(in srgb, var(--ov) 30%, transparent);border:1.5px solid var(--ov);border-radius:3px;width:12px;height:12px;display:inline-block}.ov-key-ring i{background:0 0;border-style:dashed;border-radius:50%}.views-col{flex-direction:column;gap:12px;min-width:0;display:flex}.panels-area{flex:none;overflow:hidden auto}.canvas-body.is-side{flex-direction:row;align-items:flex-start}.canvas-body.is-side .views-col{flex:1;justify-content:center;align-self:stretch}.canvas-body.is-side .panels-area{max-height:100%;padding-right:2px;overflow-y:auto}.panels-area.has-more{-webkit-mask-image:linear-gradient(#000 calc(100% - 36px),#0000);mask-image:linear-gradient(#000 calc(100% - 36px),#0000)}.canvas-body.is-side .panels{flex-flow:column}.canvas-body:not(.is-side) .panels{justify-content:center}.canvas-body.is-panels-only .panels-area{margin-block:auto}.panel-slot{min-width:0;max-width:100%}.panels{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.panel{border:1px solid var(--border);background:var(--panel);border-radius:12px;min-width:150px;max-width:100%;padding:8px 14px 12px}.panel-missing{opacity:.4;background:0 0;border-style:dashed}.panel-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.panel-name{background:0 0;padding:0;font-size:14px;font-weight:600}.role{font:500 13px var(--sans);color:var(--muted)}.panel-meta{color:var(--subtle);font-size:12.5px}.arr-empty{color:var(--muted);border:1px dashed var(--border);border-radius:6px;padding:6px 10px;font-size:12px;display:inline-block}.cells-wrap{padding:16px 2px 2px;position:relative;overflow-x:auto}.cells{align-items:flex-start;gap:4px;display:flex;position:relative}.cell,.gcell,.tile,.set-chip,.bit{transition:background-color var(--step,.25s) var(--ease), border-color var(--step,.25s) var(--ease), color var(--step,.25s) var(--ease), box-shadow var(--step,.25s) var(--ease)}.null circle,.pointer rect,.badge rect{transition:fill var(--step,.25s) var(--ease), stroke var(--step,.25s) var(--ease)}.frame{transition:background-color var(--step,.25s) var(--ease), border-color var(--step,.25s) var(--ease)}.cell{border:1.5px solid var(--node-stroke);background:var(--panel-2);width:46px;height:42px;font:600 14.5px var(--mono);z-index:1;border-radius:7px;flex:none;justify-content:center;align-items:center;margin-bottom:14px;display:flex;position:relative}.cell-v{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 6px);overflow:hidden}.cell-i{font:500 10px var(--mono);color:var(--muted);position:absolute;bottom:-16px}.cell-node{border-color:var(--pointer);border-radius:50%}.cell-more{color:var(--muted);border-style:dashed}.mark-read{box-shadow:0 0 0 2px color-mix(in srgb, var(--active) 30%, transparent);border-color:var(--active)!important}.mark-write{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent);border-color:var(--accent)!important;background:var(--accent-soft)!important}.mark-check{box-shadow:0 0 0 2px color-mix(in srgb, var(--pointer) 25%, transparent);border-color:var(--pointer)!important;border-style:dashed!important}.mark-del{box-shadow:0 0 0 2px color-mix(in srgb, var(--error) 25%, transparent);border-color:var(--error)!important}.is-changed,.is-fresh{animation:1.1s ease-out flash-green}@keyframes flash-green{0%{background:color-mix(in srgb, var(--done) 45%, var(--panel))}}.window-band{background:color-mix(in srgb, var(--accent) 20%, transparent);border:1.5px solid color-mix(in srgb, var(--accent) 55%, transparent);z-index:0;border-radius:9px;height:50px;position:absolute;top:-4px;left:0}.window-label{font:700 10px var(--mono);color:var(--accent);white-space:nowrap;position:absolute;top:-15px;left:4px}.end-tag{font:700 10px var(--sans);text-transform:uppercase;color:var(--active);letter-spacing:.05em;white-space:nowrap;align-self:center;margin-bottom:14px}.end-top:before{content:"◀ "}.queue-tags{font:700 10px var(--sans);text-transform:uppercase;color:var(--active);letter-spacing:.05em;justify-content:space-between;margin-top:-10px;margin-bottom:4px;display:flex}.ptrs{margin-top:5px;position:relative}.ptr{font:700 11px/1.25 var(--mono);color:var(--pointer);white-space:nowrap;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:0}.ptr-arrow{margin-bottom:1px;font-size:9px;line-height:1}.ptr-label{color:var(--pointer-ink);background:var(--pointer);border-radius:99px;padding:0 6px;line-height:15px}.heap-tree{margin-top:4px;display:block}.heap-node rect{fill:var(--panel-2);stroke:var(--node-stroke);stroke-width:1.5px;transition:fill var(--step,.25s) var(--ease), stroke var(--step,.25s) var(--ease)}.heap-node text{font:600 13px var(--mono);fill:var(--text)}.heap-node .heap-idx{font:500 9.5px var(--mono);fill:var(--muted-2)}.heap-top rect{stroke:var(--done);stroke-width:2.5px}.heap-node.mark-read rect{stroke:var(--active);stroke-width:2.5px}.heap-node.mark-write rect{stroke:var(--accent);fill:var(--accent-soft);stroke-width:2.5px}.heap-node.is-changed rect{stroke:var(--done);fill:var(--done-soft)}.heap-node.mark-read,.heap-node.mark-write{box-shadow:none}.rows{flex-direction:column;gap:4px;display:flex}.row{border:1.5px solid #0000;border-radius:8px;align-items:flex-start;gap:8px;padding:3px 6px 0;display:flex}.row-marked{border-color:var(--pointer);background:color-mix(in srgb, var(--pointer) 8%, transparent)}.row-ghost{border-style:dashed;align-items:center;min-height:30px}.row-i{font:500 11px var(--mono);color:var(--muted);width:14px;padding-top:11px}.row-ptr{font:700 11px var(--mono);color:var(--pointer);white-space:nowrap;padding-top:11px}.row .cell{margin-bottom:16px}.intervals-svg{max-width:100%;display:block}.iv-grid{stroke:var(--border)}.iv-tick,.iv-index{font:10px var(--mono);fill:var(--muted)}.iv-bar{fill:color-mix(in srgb, var(--ov1) 30%, var(--panel));stroke:var(--ov1);stroke-width:1.5px}.iv.mark-read .iv-bar{stroke:var(--active);stroke-width:2.5px}.iv.mark-write .iv-bar{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.5px}.iv.is-changed .iv-bar,.iv.is-fresh .iv-bar{fill:var(--done-soft);stroke:var(--done)}.iv.mark-read,.iv.mark-write,.iv.is-changed,.iv.is-fresh{box-shadow:none;animation:none}.iv-pointed .iv-bar{stroke:var(--pointer);stroke-width:2.5px}.iv-label{font:600 10.5px var(--mono);fill:var(--text)}.iv-ptr{font:700 10px var(--mono);fill:var(--pointer)}.grid-wrap{padding:8px 0 2px;overflow-x:auto}.grid{align-items:center;gap:4px;padding-top:6px;display:grid}.grid-ci,.grid-ri{font:500 10px var(--mono);color:var(--muted);text-align:center;white-space:nowrap}.grid-ci{padding-bottom:4px}.grid-marked{color:var(--pointer);font-weight:700}.gcell{border:1.5px solid var(--node-stroke);background:var(--panel-2);height:42px;font:600 14px var(--mono);border-radius:6px;justify-content:center;align-items:center;display:flex;position:relative}.gcell-none{background:0 0;border:none}.gcell-v{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 4px);overflow:hidden}.cat-0{background:var(--cat0)}.cat-1{background:var(--cat1)}.cat-2{background:var(--cat2)}.cat-3{background:var(--cat3)}.cat-4{background:var(--cat4)}.gcell.ov-fill{background:color-mix(in srgb, var(--ov) 30%, var(--panel))}.gcell.ov-ringed{outline:2px dashed var(--ov);outline-offset:-5px}.gcell-ptr{border-color:var(--pointer);z-index:2;border-width:2.5px}.gcell-tag{z-index:1;font:700 9.5px/13px var(--mono);color:var(--pointer-ink);background:var(--pointer);white-space:nowrap;border-radius:99px;padding:0 4px;position:absolute;top:-7px;left:50%;transform:translate(-50%)}.gcell-sub{font:700 10px var(--mono);color:var(--ov1);position:absolute;bottom:1px;right:3px}.tiles,.chips{flex-wrap:wrap;gap:4px;display:flex}.tile{border:1.5px solid var(--node-stroke);background:var(--panel-2);border-radius:7px;flex-direction:column;align-items:center;min-height:40px;padding:2px 6px 3px;display:flex}.tile-k{font:600 10.5px var(--mono);color:var(--pointer);white-space:nowrap;text-overflow:ellipsis;max-width:180px;overflow:hidden}.tile-v{font:700 13px var(--mono);white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.tile-node .tile-v{color:var(--pointer)}.tile-ghost,.set-ghost{opacity:.85;background:0 0;border-style:dashed}.set-chip{font:600 12.5px var(--mono);border:1.5px solid var(--node-stroke);background:var(--panel-2);border-radius:99px;padding:3px 10px}.set-node{border-color:var(--pointer)}.bits{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bits-dec{font:700 17px var(--mono);text-align:right;min-width:2ch}.bit-row{flex-wrap:wrap;gap:18px 4px;min-width:0;display:flex}.bit-byte{gap:2px;display:flex}.bit{width:28px;height:34px;font:700 14.5px var(--mono);border:1.5px solid var(--node-stroke);border-radius:5px;justify-content:center;align-items:center;margin-bottom:14px;display:flex;position:relative}.bit-1{background:var(--accent-soft);border-color:var(--accent)}.bit-0{color:var(--muted-2)}.bit-gap{margin-right:6px}.bit i{font:400 9.5px var(--mono);color:var(--muted);font-style:normal;position:absolute;bottom:-15px}.stdout{background:var(--panel-2);font:12px var(--mono);white-space:pre-wrap;border-radius:6px;max-height:90px;margin:0 14px 12px;padding:8px 10px;overflow:auto}.stack-card{flex:0 30%;min-height:60px;overflow:auto}.splitter{z-index:4;touch-action:none;outline:none;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.splitter-row{cursor:row-resize;height:14px}.splitter-row span{background:var(--border-strong);border-radius:2px;width:36px;height:4px;transition:background .15s,width .15s}.splitter-col{cursor:col-resize;width:0}.splitter-col:before{content:"";width:12px;position:absolute;top:0;bottom:0;left:-6px}.splitter-col span{background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:-1px}.splitter-row:hover span,.splitter-row.is-active span,.splitter-row:focus-visible span{background:var(--subtle);width:52px}.splitter-col:hover span,.splitter-col.is-active span,.splitter-col:focus-visible span{background:var(--accent)}body:has(.splitter-col.is-active){cursor:col-resize;-webkit-user-select:none;user-select:none}body:has(.splitter-row.is-active){cursor:row-resize;-webkit-user-select:none;user-select:none}.stack-title{color:var(--subtle);margin:0;padding:12px 20px 6px;font-size:13px;font-weight:600;line-height:18px}.frames{flex-direction:column;gap:2px;padding:0 8px 10px;display:flex}.frame{border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:44px;padding:5px 12px;display:flex}.frame.is-running{background:var(--line-cur)}.frame-dot{border:2px solid var(--active);border-radius:50%;flex:none;width:10px;height:10px}.frame.is-running .frame-dot{background:var(--accent);border-color:var(--accent)}.frame.is-main .frame-dot{border-color:var(--muted-2)}.frame.is-main.is-running .frame-dot{background:var(--accent);border-color:var(--accent)}.frame-fn{text-overflow:ellipsis;white-space:nowrap;min-width:92px;max-width:100%;font:500 14px/20px var(--mono);color:var(--text);background:0 0;flex:0 auto;padding:0;overflow:hidden}.frame.is-main .frame-fn{color:var(--muted)}.frame-vars{flex-wrap:wrap;flex:160px;align-items:center;gap:6px 22px;min-width:0;padding:0 4px;display:flex}.var{min-width:0;max-width:100%;font:14px/20px var(--mono);border-radius:6px;align-items:center;gap:8px;margin:-1px -4px;padding:1px 4px;display:inline-flex}.var-n{color:var(--muted)}.var-v{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:460px;font-weight:500;overflow:hidden}.var-old{color:var(--subtle);text-decoration:line-through}.var-old:after{content:" →";text-decoration:none;display:inline-block}.var.is-free{opacity:.7}.var-ref{border:1px dashed var(--border-strong);color:var(--muted);font:500 12.5px/20px var(--mono);white-space:nowrap;border-radius:6px;padding:0 7px}.var.is-changed{animation:1.2s ease-out var-flash}@keyframes var-flash{0%{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}}.var-node{border:2px solid var(--node-stroke);background:var(--panel-2);min-width:28px;height:28px;color:var(--text);font:600 13px/1 var(--mono);transition:background-color var(--step,.25s) var(--ease), border-color var(--step,.25s) var(--ease), color var(--step,.25s) var(--ease);border-radius:14px;place-items:center;padding:0 6px;display:inline-grid}.var-node.state-current{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.var-node.state-active{background:var(--panel);border-color:var(--active)}.var-node.state-done{background:var(--done-soft);border-color:var(--done)}.frame-where{color:var(--subtle);white-space:nowrap;flex:none;font-size:13px}.frame.is-running .frame-where{color:var(--accent-text)}.frame-ret{background:var(--done-soft);color:var(--done-text);font:500 13px/20px var(--mono);border-radius:6px;padding:1px 8px}.footer{border-top:1px solid var(--border);background:var(--bg);padding:10px 20px}.controls{align-items:center;gap:14px;display:flex}.ctl-group{align-items:center;gap:4px;display:flex}.scrub{min-width:80px;height:24px;accent-color:var(--accent);cursor:pointer;flex:1;margin:0 6px}.step-count{text-align:right;min-width:72px;font:500 13px/1 var(--mono);color:var(--muted);white-space:nowrap}.speed{border:1px solid var(--border);background:var(--panel);height:34px;color:var(--muted);font:500 13px/1 var(--mono);border-radius:8px;padding:0 6px}.overlay{z-index:60;background:color-mix(in srgb, var(--bg) 65%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.overlay-card{background:var(--panel);border:1px solid var(--border);width:min(880px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-pop);border-radius:16px;padding:20px 24px 24px;overflow:auto}.overlay-head{justify-content:space-between;align-items:center;display:flex}.overlay-head h2{margin:0;font-size:19px;font-weight:600}.help-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}.help-grid h3{color:var(--subtle);margin:18px 0 8px;font-size:14px;font-weight:600}.help-grid ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.help-grid li{align-items:flex-start;gap:12px;display:flex}.keys{border-collapse:collapse}.keys td{vertical-align:top;padding:4px 12px 4px 0;font-size:14px}.swatch{border:2px solid var(--node-stroke);background:var(--panel-2);border-radius:50%;flex:none;width:22px;height:22px;margin-top:1px}.swatch-now{background:var(--accent);border-color:var(--accent)}.swatch-wait{background:var(--panel);border-color:var(--active)}.swatch-done{background:var(--done-soft);border-color:var(--done)}.swatch-ptr{background:var(--pointer);width:auto;height:20px;color:var(--pointer-ink);font:600 12px/20px var(--mono);border:0;border-radius:10px;padding:0 8px}.swatch-null{border-style:dashed;border-color:var(--muted-2);background:0 0;width:16px;height:16px;margin:4px 3px 0}.swatch-cell{border-radius:6px}.swatch-read{border-color:var(--active);background:0 0}.swatch-write{border-color:var(--accent);background:0 0}.swatch-changed{border-color:var(--done);background:var(--done-soft)}.home{--tile:#1a1d22;--tile-hot:var(--border-strong);--tile-lesson:var(--border);--tile-read:#1d3a2b;--tile-solved-hot:#7fe0b0;--road:#1d2026;--road-next:var(--subtle);--flow:#fff1d4;flex-direction:column;height:100%;display:flex}:root[data-theme=light] .home{--tile:#e3e6eb;--tile-hot:#c3c9d3;--tile-lesson:#d3d8df;--tile-read:#cbead8;--tile-solved-hot:#2fb36e;--road:#d7dbe1;--road-next:#a9b0bb;--flow:#fff}.rm-main{flex:1;min-height:0;position:relative;overflow:hidden}.rm-canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:var(--bg);position:absolute;inset:0;overflow:hidden}.rm-canvas.is-dragging{cursor:grabbing}.rm-world{transform-origin:0 0;position:absolute;top:0;left:0}.rm-roads{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.rm-road{fill:none;stroke:var(--road);stroke-width:2px;stroke-linecap:round;transition:stroke .35s,stroke-width .35s,opacity .3s}.rm-road.is-route{stroke:var(--accent);stroke-width:2.5px}.rm-road.is-next{stroke:var(--road-next)}.rm-road.is-dim{opacity:.35}.rm-flow{fill:none;stroke:var(--flow);stroke-width:2px;stroke-linecap:round;stroke-dasharray:.1 14;animation:rm-flow 1.1s linear infinite, rm-fade .35s var(--ease) backwards}@keyframes rm-flow{to{stroke-dashoffset:-14.1px}}@keyframes rm-fade{0%{opacity:0}}.rm-tile{clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--tile);cursor:pointer;width:23px;height:26px;transition:transform .3s var(--ease), background-color .3s, opacity .3s;border:0;justify-content:center;align-items:center;margin:-13px 0 0 -11.5px;padding:0;display:flex;position:absolute}.is-intro .rm-tile{animation:rm-pop .6s var(--ease) backwards}@keyframes rm-pop{0%{opacity:0;transform:scale(0)}}.rm-tile.is-hot{z-index:2;background:var(--tile-hot);transform:scale(1.3)}@media (hover:hover){.rm-tile:hover{z-index:2;background:var(--tile-hot);transform:scale(1.3)}.rm-tile.is-solved:hover{background:var(--tile-solved-hot)}}.rm-tile.is-solved{background:var(--done)}.rm-tile.is-solved.is-hot{background:var(--tile-solved-hot)}.rm-tile.is-lesson{background:var(--tile-lesson)}.rm-tile.is-lesson:before{content:"";background:var(--subtle);clip-path:polygon(0 0,100% 50%,0 100%);width:7px;height:8px;margin-left:2px}.rm-tile.is-read{background:var(--tile-read)}.rm-tile.is-read:before{background:var(--done)}.rm-tile.is-faded{opacity:.35}.rm-tid{font:500 7px/1 var(--mono);color:var(--muted);opacity:0;transition:opacity .3s}.rm-tile.is-solved .rm-tid{color:var(--done-ink)}.is-near .rm-tid{opacity:1}.rm-region{color:var(--muted);font:500 13px/18px var(--sans);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:3px 8px;transition:color .3s,opacity .3s,background-color .2s;display:flex;position:absolute;transform:translate(-50%)}.rm-region:hover{background:var(--panel);color:var(--text)}.rm-region small{font:400 11px/1 var(--mono);color:var(--subtle)}.rm-region i{background:var(--accent);border-radius:50%;width:7px;height:7px;display:none}.rm-region.is-now{color:var(--accent-text);font-weight:600}.rm-region.is-now i{display:block}.rm-region.is-on{color:var(--text)}.rm-region.is-faded{opacity:.35}.rm-head{z-index:2;pointer-events:none;flex-direction:column;gap:6px;transition:opacity .3s;display:flex;position:absolute;top:20px;left:24px}.is-near~.rm-head,.has-drawer .rm-head{opacity:0}.rm-head h1{font:500 24px/1.2 var(--display);letter-spacing:-.03em;margin:0;font-stretch:87.5%}.rm-head p{color:var(--muted);margin:0;font-size:14px;line-height:20px}.rm-head b{font:400 14px/1 var(--mono);color:var(--text)}.rm-inspect{z-index:3;border:1px solid var(--border-strong);background:var(--panel-2);max-width:calc(100% - 40px);height:48px;box-shadow:var(--node-shadow);white-space:nowrap;pointer-events:none;transition:opacity .25s, transform .35s var(--ease), left .5s var(--ease);border-radius:12px;align-items:center;gap:12px;padding:0 16px;font-size:14px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.rm-inspect.is-off{opacity:0;transform:translate(-50%,8px)}.rm-inspect-id{font-family:var(--mono);color:var(--subtle)}.rm-inspect-title{text-overflow:ellipsis;min-width:0;overflow:hidden}.rm-inspect-tag{color:var(--muted);font-size:13px}.rm-inspect-tag.is-done{color:var(--done-text)}.has-drawer .rm-inspect{left:calc(50% - 206px)}.rm-continue{z-index:2;border:1px solid var(--border);background:var(--panel);max-width:min(440px,100% - 200px);height:48px;box-shadow:var(--node-shadow);color:var(--text);cursor:pointer;transition:border-color .2s, opacity .3s, transform .3s var(--ease);border-radius:12px;align-items:center;gap:12px;padding:0 14px 0 16px;font-size:14px;display:flex;position:absolute;bottom:20px;left:20px}.rm-continue:hover{border-color:var(--border-strong);transform:translateY(-1px)}.rm-continue.is-off{opacity:0;pointer-events:none;transform:translateY(8px)}.rm-continue-kicker{color:var(--subtle)}.rm-continue-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rm-continue>svg{color:var(--muted);flex:none}.rm-tools{z-index:2;transition:transform .5s var(--ease);gap:6px;display:flex;position:absolute;bottom:20px;right:20px}.rm-tools .icon-btn{border:1px solid var(--border);background:var(--panel);width:40px;height:40px;color:var(--muted);border-radius:10px;transition:color .2s,border-color .2s,background-color .2s}.rm-tools .icon-btn:hover{border-color:var(--border-strong);background:var(--panel-2);color:var(--text)}.has-drawer .rm-tools{transform:translate(-396px)}.rm-drawer{z-index:10;overscroll-behavior:contain;border:1px solid var(--border);background:var(--panel);width:380px;box-shadow:var(--shadow-pop);transition:transform .5s var(--ease);border-radius:16px;flex-direction:column;gap:20px;padding:22px 22px 24px;display:flex;position:absolute;top:16px;bottom:16px;right:16px;overflow-y:auto;transform:translate(calc(100% + 32px))}.rm-drawer.is-open{transform:none}.rm-dhead{align-items:flex-start;gap:12px;display:flex}.rm-dtitles{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.rm-dhead h2{font:500 25px/1.2 var(--display);letter-spacing:-.03em;text-wrap:balance;margin:0;font-stretch:87.5%}.rm-dhead .icon-btn{margin:-6px -8px 0 0}.rm-kicker,.rm-section h3{font:500 11px/16px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);align-items:center;gap:8px;margin:0;display:flex}.rm-kicker i{background:var(--muted-2);border-radius:50%;width:8px;height:8px}.rm-kicker.is-now{color:var(--accent-text)}.rm-kicker.is-now i{background:var(--accent)}.rm-kicker.is-started{color:var(--active)}.rm-kicker.is-started i{background:var(--active)}.rm-kicker.is-done{color:var(--done-text)}.rm-kicker.is-done i{background:var(--done)}.rm-blurb{color:var(--muted);text-wrap:pretty;margin:0;font-size:15px;line-height:23px}.rm-section{flex-direction:column;gap:2px;display:flex}.rm-section h3{margin-bottom:4px}.rm-lrow{min-height:44px;color:var(--text);border-radius:10px;grid-template-columns:26px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:6px 10px;font-size:14px;line-height:19px;text-decoration:none;transition:background-color .2s;display:grid}.rm-lrow:hover{background:var(--panel-2)}.rm-lnum{font:400 12px/1 var(--display);color:var(--subtle)}.rm-read{color:var(--done-text);display:grid}.rm-prow{border-radius:10px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:0 8px 0 4px;transition:background-color .2s;display:grid}.rm-prow:hover{background:var(--panel-2)}.rm-box{width:28px;height:28px;color:var(--done-ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.rm-box:before{content:"";border:1.5px solid var(--muted-2);border-radius:5px;grid-area:1/1;width:18px;height:18px;transition:background-color .15s,border-color .15s}.rm-box svg{stroke-width:3.4px;grid-area:1/1}.rm-box:hover:before{border-color:var(--done)}.rm-box.is-on:before{background:var(--done);border-color:var(--done)}.rm-pmain{color:var(--text);grid-template-columns:40px minmax(0,1fr) 50px 13px;align-self:stretch;align-items:center;gap:8px;font-size:14px;text-decoration:none;display:grid}.rm-pid{font:400 13px/1 var(--mono);color:var(--subtle)}.rm-ptitle{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rm-prow.is-solved .rm-ptitle{color:var(--muted)}.rm-pnote{color:var(--subtle);margin-left:6px;font-size:12px}.rm-pmain .diff{text-align:right;font-size:12px}.rm-pend{color:var(--subtle);display:grid}@media (width<=760px){.rm-drawer{width:auto;height:64%;inset:auto 8px 8px;transform:translateY(calc(100% + 16px))}.rm-continue,.rm-inspect{bottom:84px}.rm-continue{max-width:calc(100% - 40px)}.has-drawer .rm-inspect{left:50%}.has-drawer .rm-tools{transform:none}}@media (prefers-reduced-motion:reduce){.rm-world{transition:none!important}.rm-flow,.is-intro .rm-tile{animation:none}.rm-tile{transition-property:background-color,opacity}.rm-drawer,.rm-tools{transition:none}.rm-inspect,.rm-continue{transition-property:opacity,border-color}}.lesson-num{border:1px solid var(--border);background:var(--panel);height:26px;color:var(--muted);font:600 12px/1 var(--mono);border-radius:13px;flex:0 0 26px;place-items:center;display:grid}.seen{color:var(--done-text);display:grid}.prob-id{font:500 13px/1 var(--mono);color:var(--subtle);flex:0 0 40px}.prob-title{flex:1;min-width:0;padding:13px 0;font-size:15px;line-height:21px}.menu .prob-id{flex-basis:36px}.lessons-page{min-height:100%}.lessons-body{max-width:1120px;margin:0 auto;padding:48px 24px 96px}.lessons-head h1{letter-spacing:-.025em;margin:0;font-size:40px;font-weight:650;line-height:46px}.lessons-head .lede{max-width:620px;color:var(--muted);margin:12px 0 0;font-size:18px;line-height:28px}.lessons-count{max-width:320px;color:var(--muted);align-items:center;gap:12px;margin-top:20px;font-size:13px;display:flex}.lessons-count .bar{flex:1;height:4px}.lessons-group{border-top:1px solid var(--border);grid-template-columns:220px 1fr;gap:24px;padding:28px 0;display:grid}.lessons-group:first-of-type{margin-top:40px}.lessons-group-head{flex-direction:column;gap:6px;padding-top:4px;display:flex}.lessons-group-head h2{margin:0;font-size:17px;font-weight:600;line-height:24px}.lessons-group-head a{color:var(--subtle);align-items:center;gap:2px;font-size:13px;text-decoration:none;display:inline-flex}.lessons-group-head a:hover{color:var(--text)}.lessons-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.lesson-card{border:1px solid var(--border);background:var(--panel);min-height:150px;color:var(--text);border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px 18px;text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.lesson-card:hover{border-color:var(--border-strong);box-shadow:var(--node-shadow);transform:translateY(-1px)}.lesson-card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lesson-card-title{font-size:16px;font-weight:600;line-height:22px}.lesson-card-sub{color:var(--muted);font-size:13.5px;line-height:19px}.lesson-card-blurb{color:var(--subtle);text-wrap:pretty;flex:1;margin-top:8px;font-size:13.5px;line-height:20px}.lesson-card-uses{color:var(--subtle);margin-top:12px;font-size:12px;font-weight:500}@media (width<=760px){.lessons-body{padding:28px 16px 64px}.lessons-head h1{font-size:32px;line-height:38px}.lessons-group{grid-template-columns:1fr;gap:12px}}.lesson-page{min-height:100%}.lp-layout{gap:56px;max-width:1280px;margin:0 auto;padding:0 32px;display:flex}.lp-kick{font:500 11px/16px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle)}.lp-rail{flex-direction:column;flex:0 0 200px;align-self:flex-start;gap:12px;max-height:100vh;padding:56px 0 32px;display:flex;position:sticky;top:0;overflow-y:auto}.lp-rail>.lp-kick{padding-left:10px}.lp-rail-list{flex-direction:column;display:flex;position:relative}.lp-rail-bar{background:var(--line-cur);height:34px;transition:transform .45s var(--ease);pointer-events:none;border-radius:8px;position:absolute;top:0;left:0;right:0}.lp-rail-bar:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:13px;left:10px}.lp-rail-list a{height:34px;color:var(--subtle);border-radius:8px;align-items:center;padding-left:26px;font-size:14px;text-decoration:none;transition:color .25s;display:flex;position:relative}.lp-rail-list a:hover{color:var(--text)}.lp-rail-list a.is-current{color:var(--accent-text)}.lp-rail-num{font:500 11px var(--display);flex:0 0 26px}.lp-rail .lp-rail-more{margin-top:20px}.lp-rail-lessons{flex-direction:column;gap:2px;display:flex}.lp-rail-lessons a{color:var(--muted);border-radius:8px;align-items:baseline;padding:7px 10px;font-size:14px;line-height:20px;text-decoration:none;display:flex}.lp-rail-lessons a:hover{color:var(--text);background:var(--panel-2)}.lp-rail-lessons a[aria-current]{color:var(--text);background:var(--panel-2);font-weight:600}.lp-rail-lessons .lp-rail-num{flex-basis:18px}.lp-rail-problems{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;margin-top:4px;padding:10px;font-size:14px;text-decoration:none;display:flex}.lp-rail-problems:hover{color:var(--text)}.lp-main{flex-direction:column;flex:1 1 0;gap:88px;min-width:0;max-width:1000px;padding:56px 0 120px;display:flex}.lp-sec{flex-direction:column;gap:22px;scroll-margin-top:24px;display:flex}.lp-main :where(p,dd,li,td,figcaption,.lp-step-text,.lp-step-title,.lp-fb,.lp-cost-text) code{font:500 .88em var(--mono);background:var(--panel-2);color:var(--text);border-radius:5px;padding:1px 5px}.lp-hero{gap:28px}.lp-eyebrow{color:var(--subtle);font-size:14px}.lp-titles{flex-direction:column;gap:12px;display:flex}.lp-eyebrow+.lp-titles{margin-top:-12px}.lp-hero h1{max-width:860px;font:500 54px/1.08 var(--display);letter-spacing:-.045em;text-wrap:balance;margin:0;font-stretch:87.5%}.lp-sub{color:var(--muted);margin:0;font-size:22px;line-height:30px}.lp-prose{text-wrap:pretty;max-width:720px;margin:0;font-size:18px;line-height:30px}.lp-h2{font:500 26px/34px var(--display);letter-spacing:-.03em;align-items:baseline;gap:14px;margin:0;font-stretch:87.5%;display:flex}.lp-h2>span{font:500 13px var(--display);letter-spacing:0;color:var(--subtle)}.lp-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:20px;max-width:820px;padding:26px 28px;display:flex}.lp-statement{text-wrap:pretty;margin:0;font-size:20px;line-height:30px}.lp-example{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px 18px;display:grid}.lp-example-row{display:contents}.lp-example-name{font:500 13px var(--mono);color:var(--subtle)}.lp-cells{flex-wrap:wrap;gap:6px;display:flex}.lp-cell{border:1.5px solid var(--border-strong);background:var(--panel-2);min-width:44px;height:40px;font:500 16px var(--mono);color:var(--text);border-radius:10px;justify-content:center;align-items:center;padding:0 8px;display:inline-flex}.lp-cell.is-char{min-width:34px}.lp-cell.is-done{border-color:color-mix(in srgb, var(--done) 50%, transparent);background:var(--done-soft);color:var(--done-text)}.lp-cell.is-blank{background:0 0;border-style:dashed}.lp-gridval{justify-self:start;gap:4px;display:inline-grid}.lp-gridval .lp-cell{border-radius:8px;min-width:36px;height:34px;font-size:14px}.lp-example .lp-lit{font:500 14px/22px var(--mono);white-space:pre-wrap;word-break:break-all;justify-self:start;padding:4px 8px}.lp-primary{background:var(--accent);height:46px;color:var(--accent-ink);cursor:pointer;transition:transform .3s var(--ease), filter .2s;border:0;border-radius:12px;align-items:center;gap:10px;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}.lp-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.lp-terms{max-width:820px;margin:0;display:grid}.lp-terms>div{border-top:1px solid var(--border);grid-template-columns:minmax(140px,200px) minmax(0,1fr);gap:4px 28px;padding:16px 0;display:grid}.lp-terms>div:last-child{border-bottom:1px solid var(--border)}.lp-terms dt{font-size:17px;font-weight:600;line-height:27px}.lp-terms dd{color:var(--muted);margin:0;font-size:17px;line-height:27px}.lp-terms.is-stacked>div{grid-template-columns:minmax(0,1fr)}.lp-method{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:28px;display:grid}.lp-steps{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.lp-step{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;grid-template-columns:34px minmax(0,1fr);gap:4px 10px;width:100%;padding:16px 18px 18px;transition:background .3s,border-color .3s;display:grid}.lp-step:hover{background:color-mix(in srgb, var(--panel) 60%, transparent)}.lp-step.is-active{background:var(--panel);border-color:var(--border)}.lp-step-num{font:500 13px/26px var(--display);color:var(--subtle);transition:color .3s}.lp-step.is-active .lp-step-num{color:var(--accent-text)}.lp-step-title{color:var(--muted);font-size:17px;font-weight:600;line-height:26px;transition:color .3s}.lp-step.is-active .lp-step-title{color:var(--text)}.lp-step-text{color:var(--subtle);grid-column:2;font-size:15.5px;line-height:25px;transition:color .3s}.lp-step.is-active .lp-step-text{color:var(--muted)}.lp-figure{min-width:0;position:sticky;top:16px}.live-figure:focus-visible{outline:2px solid var(--active);outline-offset:2px}.live-figure{border:1px solid var(--border);background:var(--panel);border-radius:16px;margin:0;overflow:hidden}.lf-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 20px;display:flex}.lf-input{min-width:0;color:var(--subtle);font:500 13px var(--mono);white-space:pre;text-overflow:ellipsis;background:0 0;padding:0;overflow:hidden}.lf-head .ghost-btn{flex:none}.lf-canvas{flex-direction:column;height:clamp(300px,100vh - 290px,520px);display:flex}.lf-caption{align-items:baseline;gap:10px;min-height:72px;padding:12px 20px 0;font-size:15px;font-weight:500;line-height:23px;display:flex}.lf-code{text-overflow:ellipsis;white-space:nowrap;background:var(--line-cur);flex:none;max-width:45%;font-size:13px;font-weight:500;overflow:hidden}.lf-controls{align-items:center;gap:8px;padding:10px 16px 16px;display:flex}.lp-quiz{border:1px solid var(--border);background:var(--panel);border-radius:18px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid;overflow:hidden}.lp-quiz-wait{color:var(--subtle);padding:28px;display:block}.lp-quiz-canvas{border-right:1px solid var(--border);flex-direction:column;min-width:0;height:400px;display:flex}.lp-quiz-body{flex-direction:column;gap:14px;min-width:0;padding:24px 26px 26px;display:flex}.lp-quiz-q{margin:0;font-size:18px;line-height:27px}.lp-quiz-line{background:var(--line-cur);font:500 14.5px/22px var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:10px;padding:10px 12px;display:block}.lp-vals{flex-wrap:wrap;gap:6px;display:flex}.lp-vals code{background:var(--pointer-soft);max-width:100%;color:var(--pointer);font:500 13px/20px var(--mono);overflow-wrap:anywhere;border-radius:7px;padding:3px 8px}.lp-quiz-hint{color:var(--subtle);margin:0;font-size:15px;line-height:23px}.lp-opts{grid-template-columns:1fr 1fr;gap:10px;display:grid}.lp-opt{border:1.5px solid var(--border-strong);background:var(--panel-2);height:50px;font:600 16px var(--mono);cursor:pointer;transition:border-color .25s, background .25s, opacity .25s, transform .3s var(--ease);border-radius:12px}.lp-opt:not(:disabled):hover{border-color:var(--subtle);transform:translateY(-1px)}.lp-opt:disabled{cursor:default}.lp-opt.is-right{border-color:var(--done);background:var(--done-soft);color:var(--done-text)}.lp-opt.is-wrong{border-color:var(--error);background:var(--error-soft);color:var(--error)}.lp-opt.is-muted{opacity:.45}.lp-fb{animation:lp-in .45s var(--ease);border-radius:12px;align-items:flex-start;gap:10px;padding:14px 16px;font-size:15.5px;line-height:24px;display:flex}.lp-fb>svg{flex:none;margin-top:3px}.lp-fb.is-right{background:var(--done-soft)}.lp-fb.is-right>svg{color:var(--done-text)}.lp-fb.is-wrong{background:var(--error-soft)}.lp-fb.is-wrong>svg{color:var(--error)}@keyframes lp-in{0%{opacity:0;transform:translateY(6px)}}.lp-trace{flex-direction:column;gap:12px;margin:0;display:flex}.lp-trace figcaption{max-width:720px;color:var(--muted);font-size:16px;line-height:25px}.lp-trace-scroll{border:1px solid var(--border);border-radius:16px;overflow-x:auto}.lp-trace table{border-collapse:collapse;width:100%;font:400 14.5px/22px var(--mono)}.lp-trace th{text-align:left;font:500 13px/18px var(--sans);color:var(--subtle);white-space:nowrap;border-bottom:1px solid var(--border);padding:12px 16px}.lp-trace td{border-bottom:1px solid var(--border);vertical-align:top;padding:11px 16px}.lp-trace tbody tr{transition:background .2s}.lp-trace tbody tr:hover{background:var(--panel-2)}.lp-trace tr:last-child td{border-bottom:0}.lp-trace td:first-child{color:var(--accent-text);white-space:nowrap;font-weight:500}.lp-main .lp-trace td code,.lp-main .lp-trace th code{background:0 0;padding:0;font-size:1em}.lp-trace-note{color:var(--subtle);margin:0;font-size:15px;line-height:24px}.lp-cost-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px;display:grid}.lp-cost{background:var(--panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:12px;padding:22px 24px;display:flex}.lp-cost-big{font:500 40px/1 var(--display);letter-spacing:-.04em;font-stretch:87.5%}.lp-cost-text{color:var(--muted);font-size:15.5px;line-height:24px}.lp-two{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:48px;display:grid}.lp-two>div{flex-direction:column;gap:18px;display:flex}.lp-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.lp-list li{grid-template-columns:30px minmax(0,1fr);gap:10px;font-size:16px;line-height:26px;display:grid}.lp-list li>span:first-child{font:500 12px/26px var(--display);color:var(--subtle)}.lp-takeaway{max-width:800px;font:400 26px/1.45 var(--display);letter-spacing:-.025em;text-wrap:pretty;margin:0;font-stretch:87.5%}.lp-main .lp-takeaway code{font:inherit;color:var(--accent-text);background:0 0;padding:0}.lp-practice{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));column-gap:24px;display:grid}.lp-prob{min-height:52px;color:var(--text);border-radius:12px;grid-template-columns:48px minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:0 14px;font-size:15.5px;text-decoration:none;transition:background .2s;display:grid}.lp-prob:hover{background:var(--panel-2)}.lp-prob-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lp-prob.is-todo .lp-prob-title{color:var(--muted)}.lp-prob>svg{color:var(--subtle)}.lp-next{border:1px solid var(--border);color:var(--text);transition:border-color .2s, transform .3s var(--ease);border-radius:16px;justify-content:space-between;align-items:center;gap:20px;margin-top:-32px;padding:22px 26px;text-decoration:none;display:flex}.lp-next:hover{border-color:var(--border-strong);transform:translateY(-1px)}.lp-next>span{flex-direction:column;gap:6px;min-width:0;display:flex}.lp-next-title{font:500 21px/1.3 var(--display);letter-spacing:-.03em;font-stretch:87.5%}@media (width<=1100px){.lp-method,.lp-quiz{grid-template-columns:minmax(0,1fr)}.lp-figure{order:-1;position:static}.lp-quiz-canvas{border-right:0;border-bottom:1px solid var(--border);height:320px}}@media (width<=980px){.lp-rail{display:none}.lp-layout{padding:0 20px}}@media (width<=720px){.lp-main{gap:64px;padding-top:32px}.lp-hero h1{font-size:36px}.lp-sub{font-size:19px}.lp-card{padding:20px}.lp-terms>div{grid-template-columns:minmax(0,1fr)}.lp-takeaway{font-size:21px}.lf-canvas{height:320px}}@media (prefers-reduced-motion:reduce){.lp-rail-bar,.sc-bar{transition:none}}.static-code{border:1px solid var(--border);background:var(--panel);font:400 15px/26px var(--mono);border-radius:14px;padding:16px 0;overflow-x:auto}.sc-line{min-height:26px;display:flex}.sc-num{text-align:right;color:var(--subtle);-webkit-user-select:none;user-select:none;flex:0 0 52px;padding-right:18px;transition:color .25s}.sc-text{white-space:pre;padding-right:20px}.static-code.no-numbers .sc-text{padding-left:18px}.md .static-code{background:var(--panel-2);padding:10px 0;font-size:13.5px;line-height:22px}.md .sc-line{min-height:22px}.has-notes .sc-line{grid-template-columns:52px calc(var(--code-ch,40ch) + 32px) minmax(200px, 1fr);align-items:baseline;display:grid}.has-notes .sc-text{padding-right:32px}.sc-note{font:400 13.5px/20px var(--sans);color:var(--subtle);text-wrap:pretty;padding:3px 20px 3px 0;transition:color .25s}.sc-note code{font:500 12.5px var(--mono);color:var(--muted)}.static-code.is-follow,.is-follow .sc-line{position:relative}.sc-bar{background:var(--line-cur);opacity:0;pointer-events:none;height:26px;transition:transform .4s var(--ease), height .4s var(--ease), opacity .3s;position:absolute;top:0;left:0;right:0}.sc-bar.is-on{opacity:1}.sc-bar:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;margin-top:-4px;position:absolute;top:50%;left:12px}.is-follow .sc-line.is-hot .sc-num{color:var(--accent-text)}.is-follow .sc-line.is-hot .sc-note{color:var(--text)}@media (width<=720px){.has-notes .sc-line{grid-template-columns:40px max-content}.has-notes .sc-num{padding-right:12px}.sc-note{display:none}}.tok-keyword{color:var(--syn-keyword)}.tok-definition{color:var(--syn-func)}.tok-className{color:var(--syn-class)}.tok-string{color:var(--syn-string)}.tok-number,.tok-bool,.tok-atom,.tok-literal{color:var(--syn-number)}.tok-comment{color:var(--syn-comment);font-style:italic}.tok-operator,.tok-punctuation{color:var(--syn-punct)}.guide{min-height:100%}.guide-body{flex-direction:column;gap:20px;max-width:880px;margin:0 auto;padding:48px 24px 72px;font-size:16px;line-height:26px;display:flex}.guide-body>h1{letter-spacing:-.02em;margin:0 0 4px;font-size:40px;font-weight:600;line-height:48px}.guide-intro,.guide-clues{padding:20px 24px}.guide-intro p{margin-top:0}.guide-clues h2{margin:6px 0 8px;font-size:20px}.guide-phases{flex-direction:column;gap:12px;display:flex}.guide-phase{padding:18px 24px 20px}.gp-head{align-items:center;gap:12px;display:flex}.gp-head h2{margin:0;font-size:18px;font-weight:600}.gp-num{background:var(--panel-2);width:28px;height:28px;color:var(--muted);font:600 13px/1 var(--mono);border-radius:50%;justify-content:center;align-items:center;display:flex}.gp-goal{margin:10px 0;font-weight:500}.gp-cols{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:6px 28px;display:grid}.gp-cols h3{color:var(--subtle);margin:6px 0 4px;font-size:14px;font-weight:600}.gp-cols ul{margin:0;padding-left:18px;font-size:15px}.gp-cols li{margin:4px 0}.gp-say li{font-style:italic}.gp-avoid li::marker{content:"✗  ";color:var(--error)}.clues{border-collapse:collapse;width:100%;font-size:15px}.clues td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px}.clues td:last-child{white-space:nowrap}@media (width<=1100px){.search{width:220px}}@media (width<=980px){.app{height:auto;min-height:100%}.workspace{grid-template-columns:minmax(0,1fr)}.left{border-right:0;border-bottom:1px solid var(--border)}.code-body{min-height:300px}.guide-tab{max-height:70vh}.right{padding:0 12px 12px}.canvas{min-height:380px}.footer{z-index:5;position:sticky;bottom:0}}@media (width<=720px){.topbar{flex-wrap:wrap;row-gap:6px;height:auto;min-height:56px;padding:8px 12px}.topnav{scrollbar-width:none;gap:0;min-width:0;margin-left:4px;overflow-x:auto}.topnav a{padding:7px 8px;font-size:13px}.brand span{display:none}.search{width:160px}.search kbd{display:none}.crumbs{flex:100%;order:10}.narr-text{font-size:17px;line-height:25px}}@media (width<=560px){.footer{padding:8px 12px}.controls{flex-wrap:wrap;gap:8px 10px}.scrub{flex:100%;order:10;margin:0}.step-count{min-width:0;margin-left:auto}.frame-fn{min-width:0}.input-actions{flex-wrap:wrap;margin-left:0}}.play-bar{align-items:center;gap:10px;padding:0 12px 0 20px}.play-call{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.play-call code{color:var(--text);font:500 13px/1 var(--mono)}.play-select{border:1px solid var(--border);background:var(--panel);min-width:0;max-width:60%;height:30px;color:var(--text);font:500 13px/1 var(--mono);border-radius:8px;padding:0 8px}.play-edit,.play-editing{white-space:nowrap;flex:none;margin-left:auto;font-size:13px}.play-templates{color:var(--muted);font-family:var(--sans);flex:none}.crash{max-width:560px;margin:18vh auto 0;padding:0 16px}.crash h1{font-size:22px}
