:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eceae3;background:#17191a;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}.shell{min-height:100vh}.header{height:66px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid #353a3a;gap:10px}.brand{display:flex;gap:14px;align-items:center;font-size:13px;font-weight:750;letter-spacing:.13em}.brand-mark{background:#c4473a;padding:8px;border-radius:7px;color:#fff;letter-spacing:0}.header-right{display:flex;gap:28px;align-items:center;font-size:12px;color:#aaa}.header-right a:hover{color:#fff}.private-label{letter-spacing:.12em}.layout{display:grid;grid-template-columns:312px minmax(0,1fr);max-width:1500px;margin:auto;min-height:calc(100vh - 66px)}.sidebar{padding:30px 19px;border-right:1px solid #353a3a}.aside-title{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.14em;font-weight:700;color:#a0a5a4;margin-bottom:19px}.aside-title span{font-weight:400;letter-spacing:0}.sidebar input{width:100%;background:#232728;border:1px solid #3e4444;color:#eee;padding:12px;border-radius:8px;outline:none}.sidebar input:focus{border-color:#c4473a}.topics{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}.topics button{padding:6px 10px;border-radius:99px;background:transparent;border:1px solid #414545;color:#b0b5b4;font-size:12px}.topics .chosen{background:#c4473a;color:#fff;border-color:#c4473a}.problem-list{display:grid;gap:4px}.item{border:0;text-align:left;border-radius:7px;padding:11px;background:transparent;color:#bfc5c2;font-size:13px;display:flex;justify-content:space-between;gap:8px;line-height:1.45}.item:hover{background:#292c2d}.item.active{background:#3a2929;color:#fff}.problem-number{color:#87918e;font-variant-numeric:tabular-nums}.done-mark{color:#84bc9d}.aside-footer{border-top:1px solid #343a3a;margin-top:26px;padding-top:20px;color:#8e9995;font-size:12px}.main{max-width:950px;width:100%;padding:55px min(5vw,60px);margin:auto}.eyebrow,.section-label{font-size:11px;font-weight:700;letter-spacing:.16em;color:#c4776b}.eyebrow{margin-bottom:14px}.title-row{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:29px}h1{font-size:clamp(27px,3.2vw,40px);letter-spacing:-.045em;line-height:1.15;margin:0 0 20px}h2{font-size:19px;line-height:1.45;font-weight:650;margin:13px 0}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{border:1px solid #3c4141;color:#acb5b1;border-radius:5px;font-size:11px;padding:5px 8px}.review,.outline,.demo-actions button{border:1px solid #555b59;background:transparent;color:#e7e8e2;padding:10px 13px;border-radius:7px;font-size:12px;white-space:nowrap}.review.checked{border-color:#507d71;color:#a3d3bc}.panel{border:1px solid #363c3c;background:#1e2223;border-radius:12px;padding:27px;margin-bottom:19px}.panel p{line-height:1.7}.muted{color:#9ca8a3}.small{font-size:12px}.outline:hover,.demo-actions button:hover:not(:disabled){border-color:#c4473a}.answer{padding:16px;border-left:3px solid #507d71;background:#25302d;color:#cbdcd4}.insight{background:#252322}.insight p:not(.muted){color:#e9cec8}pre{white-space:pre;overflow-x:auto;background:#121516;padding:21px;color:#d6e1da;border-radius:9px;line-height:1.7;font-size:12.5px;tab-size:4;margin-top:15px}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.complexity{font-size:13px;color:#b6c5bc}.demo{margin-top:16px}.demo-top{display:flex;justify-content:space-between;align-items:center;font-size:14px}.demo-top small{color:#9ba4a2}.course-visual{max-width:480px;margin:5px auto}.course-visual svg{width:100%;display:block}.course-visual p{text-align:center;font-size:12px}.step-note{font-size:13px;color:#c0c9c5;min-height:46px}.demo-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.demo-actions .primary{background:#c4473a;border-color:#c4473a;color:#fff}.grid-visual{margin:23px auto;width:max-content;max-width:100%}.grid-row{display:flex;gap:5px;margin-bottom:5px}.grid-row span{width:44px;height:39px;display:grid;place-items:center;border-radius:5px;font-family:monospace}.land{background:#507d71;color:#fff}.water{background:#313f47;color:#9aa9b2}.grid-visual p{text-align:center;font-size:12px;color:#ccc}footer{margin-top:35px;font-size:11px;line-height:1.6;color:#7c8984}@media(max-width:850px){.layout{display:block}.header{padding:0 18px}.private-label{display:none}.sidebar{border-right:0;border-bottom:1px solid #353a3a;padding:20px 16px}.problem-list{max-height:170px;overflow-y:auto}.aside-footer{margin:12px 0 0}.main{padding:30px 16px}.panel{padding:20px}.title-row{flex-wrap:wrap}.grid-row span{width:40px;height:35px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.code-window{margin-top:19px;border:1px solid #343a3a;border-radius:11px;overflow:hidden;background:#131718;box-shadow:0 14px 45px #0002}.code-bar{height:45px;display:flex;align-items:center;justify-content:space-between;background:#252a2b;border-bottom:1px solid #374041;padding:0 16px;font:600 12px ui-monospace,monospace;color:#d6dbd7}.code-status{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#c4473a}.code-filename{color:#86938f;font-weight:400;margin-left:12px}.code-bar button{border:1px solid #4e5957;color:#dce3df;background:#303738;border-radius:6px;padding:5px 10px;font-size:11px}.code-bar button:hover{border-color:#c4473a}.code-window pre[class*=language-],.code-window code[class*=language-]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:13px;line-height:1.85;text-shadow:none!important}.code-window pre[class*=language-]{background:#131718!important;margin:0;padding:20px 22px;max-width:100%;overflow-x:auto;tab-size:4}.code-window code[class*=language-]{color:#dfebe5!important}.code-window .token.keyword{color:#d99cd3!important}.code-window .token.class-name{color:#8cc9e8!important}.code-window .token.function{color:#ddc18b!important}.code-window .token.operator,.code-window .token.punctuation{color:#aeb9b4!important}.code-window .token.number,.code-window .token.boolean{color:#dba68d!important}.code-window .token.string,.code-window .token.char{color:#a6cb9f!important}.code-window .token.comment{color:#778d83!important}.tree-viz{margin-top:15px}.tree-svg{width:100%;max-height:365px;display:block;margin:4px auto}.tree-edge{stroke:#65716f;stroke-width:2;opacity:.58;transition:all .45s ease}.tree-edge.path{stroke:#c4473a;stroke-width:3;opacity:1}.tree-edge.visited{stroke:#507d71;opacity:.8}.tree-node{transition:transform .7s cubic-bezier(.22,1,.36,1)}.tree-dot{fill:#343b3d;stroke:#65706d;stroke-width:1.5;transition:fill .4s ease,stroke .4s ease}.tree-node text{font:600 16px ui-monospace,monospace;fill:#e5ebe7;pointer-events:none}.tree-node.focused .tree-dot{fill:#c4473a;stroke:#ed998c}.tree-node.finished .tree-dot{fill:#507d71;stroke:#8dc7a9}.tree-node.invalid .tree-dot{fill:#b73737;stroke:#f5a0a0}.tree-halo{fill:#c4473a;fill-opacity:.15;animation:tree-pulse 1.8s ease-in-out infinite;transform-origin:center}@keyframes tree-pulse{0%,to{opacity:.35;transform:scale(.95)}50%{opacity:1;transform:scale(1.15)}}.tree-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:2px 0 15px;color:#abb8b2;font-size:12px}.tree-legend span{display:flex;align-items:center;gap:7px}.tree-legend i{display:inline-block;width:9px;height:9px;border-radius:50%}.legend-focus{background:#c4473a}.legend-done{background:#507d71}.legend-idle{background:#596260}@media(max-width:560px){.code-window pre[class*=language-]{padding:15px 12px}.code-window pre[class*=language-],.code-window code[class*=language-]{font-size:11.5px}.demo-actions{gap:6px}.demo-actions button{padding:9px}}@media(prefers-reduced-motion:reduce){.tree-node,.tree-dot,.tree-edge{transition:none}.tree-halo{animation:none}}:root{--color-espresso:#714329;--color-clay:#B08463;--color-sand:#B9937B;--color-blush:#D0B9A7;--color-taupe:#B5A192;--color-paper:#F1E8DB;--color-cream:#E8E0D1;--color-ink:#241D19;--color-ink-muted:#67564C;--color-border:rgba(113,67,41,.2);--color-code-bg:#271F1A;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-ink);background:var(--color-paper)}body,.shell{background:var(--color-paper);color:var(--color-ink)}.header{background:var(--color-cream);border-bottom:1px solid var(--color-border)}.brand-mark{background:var(--color-espresso);color:#fff}.header-right{color:var(--color-ink-muted)}.header-right a:hover{color:var(--color-espresso)}.sidebar{background:#e9dfd2;border-right:1px solid var(--color-border)}.aside-title,.aside-title span,.private-label{color:var(--color-espresso)}.sidebar input{background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-taupe)}.sidebar input::placeholder{color:#847368}.sidebar input:focus{outline:2px solid var(--color-clay);outline-offset:1px;border-color:var(--color-espresso)}.topics button{border-color:var(--color-taupe);background:transparent;color:var(--color-espresso)}.topics .chosen{background:var(--color-espresso);color:#fff;border-color:var(--color-espresso)}.item{color:var(--color-ink)}.item:hover{background:#b0846329}.item.active{background:var(--color-blush);color:var(--color-espresso);font-weight:650}.problem-number,.aside-footer{color:var(--color-ink-muted)}.aside-footer{border-color:var(--color-border)}.done-mark,.eyebrow,.section-label{color:var(--color-espresso)}.tags span{border-color:var(--color-taupe);color:var(--color-espresso);background:#d0b9a733}.panel{background:#f8f2e9;border-color:var(--color-border);box-shadow:0 7px 25px #71432909}.panel.insight{background:#ead9ca}.muted,footer{color:var(--color-ink-muted)}.insight p:not(.muted){color:var(--color-espresso)}.review,.outline,.demo-actions button{background:transparent;border-color:var(--color-clay);color:var(--color-espresso)}.review.checked{background:#e5d2bf;border-color:var(--color-espresso);color:var(--color-espresso)}.outline:hover,.demo-actions button:hover:not(:disabled){border-color:var(--color-espresso);background:#b084631f}.answer{background:var(--color-cream);border-left:3px solid var(--color-espresso);color:var(--color-ink)}.complexity,.demo-top small,.step-note,.tree-legend{color:var(--color-ink-muted)}.demo-actions .primary{background:var(--color-espresso);border-color:var(--color-espresso);color:#fff}.demo-actions .primary:hover:not(:disabled){background:#54321f;color:#fff}.grid-row .land{background:var(--color-espresso);color:#fff}.grid-row .water{background:var(--color-blush);color:var(--color-ink)}.grid-visual p,.course-visual p{color:var(--color-ink-muted)}.code-window{background:var(--color-code-bg);border-color:var(--color-clay);box-shadow:0 9px 28px #7143291f}.code-bar{background:#382a22;border-bottom-color:#624a3a;color:#f7f0e9}.code-status{background:var(--color-sand)}.code-filename{color:#d0b9a7}.code-bar button{background:#4c382c;color:#f7f0e9;border-color:#a17d63}.code-bar button:hover{border-color:#f1d6be}.code-window pre[class*=language-]{background:var(--color-code-bg)!important}.code-window code[class*=language-]{color:#f4e9da!important}.code-window .token.keyword{color:#eabda4!important}.code-window .token.class-name{color:#e4c18f!important}.code-window .token.function{color:#d9aa83!important}.code-window .token.operator,.code-window .token.punctuation{color:#d8c9bb!important}.code-window .token.number,.code-window .token.boolean{color:#f0b88e!important}.code-window .token.string,.code-window .token.char{color:#d8c49b!important}.code-window .token.comment{color:#b09a88!important}.tree-edge{stroke:var(--color-taupe)}.tree-edge.path{stroke:var(--color-espresso)}.tree-edge.visited{stroke:var(--color-clay)}.tree-dot{fill:var(--color-taupe);stroke:var(--color-clay)}.tree-node text{fill:#fff}.tree-node.focused .tree-dot{fill:var(--color-espresso);stroke:var(--color-clay)}.tree-node.finished .tree-dot{fill:var(--color-clay);stroke:var(--color-espresso)}.tree-node.invalid .tree-dot{fill:#714329;stroke:#d0b9a7;stroke-dasharray:4 2}.tree-halo{fill:var(--color-sand)}.legend-focus{background:var(--color-espresso)}.legend-done{background:var(--color-clay)}.legend-idle{background:var(--color-taupe)}.course-visual circle[fill="#507d71"]{fill:var(--color-clay)}.course-visual circle[fill="#c4473a"]{fill:var(--color-espresso)}.course-visual circle[fill="#464c50"]{fill:var(--color-taupe)}.course-visual line[stroke="#507d71"]{stroke:var(--color-clay)}.course-visual line[stroke="#9aa4a7"]{stroke:var(--color-taupe)}.course-visual svg text[fill="#9aa4a7"]{fill:var(--color-ink-muted)}@media(max-width:850px){.sidebar{border-right:0;border-bottom:1px solid var(--color-border)}}:root{--viz-active:#D84343;--viz-active-dark:#A92323;--viz-done:#25834D;--viz-pending:#777C80;--viz-edge:#9AA0A3}.tree-node.focused .tree-dot{fill:var(--viz-active);stroke:var(--viz-active-dark);stroke-width:2.6}.tree-node.finished .tree-dot{fill:var(--viz-done);stroke:#17653a;stroke-width:2.4}.tree-node.invalid .tree-dot{fill:var(--viz-active-dark);stroke:#7f1515;stroke-width:3;stroke-dasharray:4 2}.tree-dot{fill:var(--viz-pending);stroke:#5c6367;stroke-width:1.8}.tree-edge{stroke:var(--viz-edge);stroke-width:2.2;opacity:.85}.tree-edge.path{stroke:var(--viz-active);stroke-width:3.6;opacity:1}.tree-edge.visited{stroke:var(--viz-done);stroke-width:3;opacity:1}.tree-halo{fill:var(--viz-active);fill-opacity:.18}.legend-focus{background:var(--viz-active)}.legend-done{background:var(--viz-done)}.legend-idle{background:var(--viz-pending)}.course-visual circle[fill="#507d71"]{fill:var(--viz-done)}.course-visual circle[fill="#c4473a"]{fill:var(--viz-active)}.course-visual circle[fill="#464c50"]{fill:var(--viz-pending)}.course-visual line[stroke="#507d71"]{stroke:var(--viz-done)}.course-visual line[stroke="#9aa4a7"]{stroke:var(--viz-edge)}.grid-row .land{background:var(--viz-active);color:#fff}.grid-row .water{background:#adb1b3;color:#303438}.grid-visual p{color:var(--viz-done);font-weight:700}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
