@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&family=Inter:wght@300;400;500;600;700&display=swap";#root{min-height:100vh}body,p{margin:0}code{font-family:inherit}:root{--bg:#07110e;--card:#0d1b16;--muted:#9bb8ad;--text:#edf7f3;--line:#ffffff1a;--brand:#18e299;--purple:#a78bfa;--amber:#fbbf24}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 50% 0%,#18e2992e,transparent 34%),var(--bg);color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.nav{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#07110ec7;justify-content:space-between;align-items:center;padding:18px 32px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-weight:700;display:flex}.logo{background:var(--brand);color:#07110e;border-radius:10px;place-items:center;width:34px;height:34px;font-family:Geist Mono,monospace;display:grid}.nav nav{color:var(--muted);gap:22px;font-size:14px;display:flex}.nav a:hover{color:var(--brand)}.hero{text-align:center;max-width:1080px;margin:0 auto;padding:100px 24px 60px;position:relative;overflow:hidden}.hero-bg{filter:blur(20px);z-index:-1;background:radial-gradient(circle,#18e29938,#0000 60%);position:absolute;inset:30px 10%}.eyebrow{color:var(--brand);letter-spacing:.12em;font-family:Geist Mono,monospace;font-size:12px;font-weight:600}.hero h1{letter-spacing:-2px;max-width:940px;margin:12px auto;font-size:clamp(42px,7vw,76px);line-height:1.05}.lead{max-width:790px;color:var(--muted);margin:0 auto;font-size:18px;line-height:1.75}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px;display:flex}.btn,.controls button,.filter button{border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:10px 18px}.primary{background:var(--brand);color:#07110e;border-color:#0000;font-weight:700}.secondary{color:var(--text);background:#ffffff0a}.stats{grid-template-columns:repeat(3,1fr);gap:14px;max-width:980px;margin:0 auto 50px;padding:0 24px;display:grid}.stats div,.road-card,.problem-card,.lesson,.step-panel,.state-panel,.idea{border:1px solid var(--line);background:#0d1b16b8;border-radius:24px;box-shadow:0 20px 80px #00000038}.stats div{text-align:center;padding:22px}.stats b{color:var(--brand);font-size:34px;display:block}.stats span{color:var(--muted)}.layout{grid-template-columns:360px minmax(0,1fr);gap:20px;max-width:1380px;margin:0 auto;padding:24px;display:grid}.sidebar{align-self:start;max-height:calc(100vh - 104px);padding-right:4px;position:sticky;top:86px;overflow:auto}.sidebar-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.sidebar-head h2{margin:0 0 4px}.sidebar-head p{color:var(--muted);font-size:13px;line-height:1.4}.tag-toggle{color:#b8f8df;cursor:pointer;white-space:nowrap;background:#18e2991a;border:1px solid #18e29947;border-radius:999px;padding:8px 12px;font-size:12px}.active-filter{border:1px solid var(--line);color:var(--muted);background:#ffffff0a;border-radius:14px;margin-bottom:12px;padding:10px 12px}.active-filter b{color:var(--brand)}.active-filter em{color:#d8eee5;font-style:normal}.search-box{gap:7px;margin:12px 0;display:grid}.search-box span{color:var(--muted);font-family:Geist Mono,monospace;font-size:12px}.search-box input{border:1px solid var(--line);width:100%;color:var(--text);background:#06100d;border-radius:15px;outline:none;padding:12px 13px}.search-box input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #18e2991f}.filter{flex-wrap:wrap;gap:8px;max-height:142px;margin-bottom:16px;padding-bottom:2px;display:flex;overflow:auto}.filter button{color:var(--muted);background:#ffffff0a}.filter .selected{background:var(--brand);color:#07110e;border-color:#0000}.cards{gap:10px;display:grid}.problem-card{text-align:left;color:var(--text);cursor:pointer;border-radius:18px;padding:16px}.problem-card span{color:var(--brand);font:12px Geist Mono,monospace}.problem-card b{margin:5px 0;display:block}.problem-card small{color:var(--muted);line-height:1.45}.problem-card.active{outline:2px solid var(--brand);background:#18e29914}.lesson{padding:26px}.lesson-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.lesson h2{letter-spacing:-1px;margin:5px 0 8px;font-size:42px}.lesson-head p{color:var(--muted)}.tags{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tags span{color:#b8f8df;background:#18e29914;border:1px solid #18e29942;border-radius:999px;padding:6px 10px;font-size:12px}.idea{margin:18px 0;padding:20px}.idea li{color:#cfe4dc;margin:9px 0}.complexity{color:var(--amber);font-family:Geist Mono}.dryrun{grid-template-columns:1.25fr .75fr;gap:18px;display:grid}.step-panel,.state-panel{padding:20px}.step-top span{color:var(--brand);font-family:Geist Mono;font-size:13px}.step-top h3{margin:8px 0;font-size:28px}.step-top p{color:#cfe4dc;line-height:1.65}.visual{border:1px solid var(--line);background:linear-gradient(#ffffff0e,#ffffff06);border-radius:20px;flex-direction:column;justify-content:center;min-height:310px;padding:22px;display:flex;overflow:auto}.cells{justify-content:center;gap:12px;display:flex}.cell-wrap{text-align:center;min-width:68px;position:relative}.cell{border:1px solid var(--line);background:#12251e;border-radius:16px;place-items:center;height:58px;font-size:22px;font-weight:700;display:grid}.cell.active,.list-node.active{outline:3px solid var(--brand);box-shadow:0 0 30px #18e29940}.index{color:var(--muted);margin-top:6px;font:12px Geist Mono;display:block}.pointer{margin-top:4px;display:block}.notes{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:28px;display:flex}.notes span{border:1px solid var(--line);color:#d8eee5;background:#ffffff12;border-radius:999px;padding:7px 12px;font-size:13px}.linked-row{align-items:center;gap:8px;min-width:max-content;display:flex}.node-wrap{align-items:center;gap:8px;padding-bottom:26px;display:flex;position:relative}.list-node{border:1px solid var(--line);text-align:center;background:#12251e;border-radius:16px;min-width:82px;min-height:66px;padding:10px}.list-node span{font-size:20px;font-weight:700;display:block}.list-node small{color:var(--muted);font-family:Geist Mono;font-size:11px}.list-node.faded{opacity:.58}.arrow{color:var(--brand);font-size:24px}.node-pointers{text-align:center;height:20px;color:var(--brand);font:12px Geist Mono;position:absolute;bottom:0;left:0;right:0}.tree-viz svg{width:100%;height:260px}.edge{stroke:#ffffff59;stroke-width:1.2px}.tree-node{fill:#12251e;stroke:#ffffff8c;stroke-width:1.4px}.tree-node.active{fill:var(--brand);stroke:#b8f8df}.tree-viz text{fill:var(--text);font-size:4px;font-weight:700}.tree-viz .active+text{fill:#07110e}.tree-pointer{font-family:Geist Mono;fill:var(--brand)!important;font-size:3px!important}.stack-box{flex-direction:column-reverse;align-items:center;gap:8px;display:flex}.stack-item,.stack-empty{text-align:center;border:1px solid var(--line);background:#12251e;border-radius:14px;width:160px;padding:14px;font-size:22px}.stack-empty{color:var(--muted);font-size:16px}.controls{justify-content:space-between;margin-top:16px;display:flex}.controls button{background:var(--brand);color:#07110e;border:0;font-weight:700}.controls button:disabled{opacity:.35;cursor:not-allowed}.vars{gap:10px;margin-bottom:20px;display:grid}.vars div{border:1px solid var(--line);background:#ffffff0a;border-radius:14px;justify-content:space-between;gap:12px;padding:11px 13px;display:flex}.vars span{color:var(--muted);font-family:Geist Mono}.vars b{text-align:right}pre{border:1px solid var(--line);background:#06100d;border-radius:16px;margin:0;padding:14px;overflow:auto}.line{color:#adc8bd;white-space:pre;font-family:Geist Mono;font-size:12px;line-height:1.8;display:block}.line.active{color:#dbfff1;border-left:3px solid var(--brand);background:#18e29929;padding-left:8px}.roadmap{max-width:1180px;margin:40px auto 80px;padding:24px}.roadmap h2{letter-spacing:-1px;max-width:780px;font-size:42px}.roadmap-grid{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.road-card{padding:20px}.road-card p{color:var(--muted);line-height:1.6}.timeline h3{margin:0 0 10px}.timeline-scroll{border:1px solid var(--line);background:#06100d;border-radius:16px;max-height:220px;overflow:auto}.timeline table{border-collapse:collapse;width:100%;font-size:12px}.timeline th,.timeline td{text-align:left;white-space:nowrap;border-bottom:1px solid #ffffff14;padding:9px 10px}.timeline th{color:var(--brand);background:#0d1b16;font-family:Geist Mono;position:sticky;top:0}.timeline tr.active td{color:#eafff6;background:#18e29924}.timeline td:first-child{color:var(--muted);font-weight:600}.sidebar{border:1px solid var(--line);background:#07110ec2;border-radius:22px;padding:16px;box-shadow:0 16px 60px #0003}.sidebar-head{border-bottom:1px solid var(--line);padding-bottom:12px}.sidebar-head h2{letter-spacing:-.3px;font-size:22px}.sidebar-head p{font-size:12px}.active-filter{margin:12px 0;font-size:13px}.filter{border-bottom:1px solid var(--line);max-height:118px;margin-bottom:14px;padding:0 0 14px}.filter button{padding:7px 12px;font-size:13px}.cards{gap:8px}.problem-card{background:#ffffff09;border-radius:15px;padding:12px 13px}.problem-card span{letter-spacing:.08em;font-size:10px}.problem-card b{margin:4px 0;font-size:15px;line-height:1.25}.problem-card small{font-size:12px;line-height:1.45}.lesson{overflow:hidden}.dryrun{grid-template-columns:minmax(0,1fr) minmax(360px,.78fr)}.state-panel{min-width:0}.timeline-scroll,pre{max-width:100%}.hero.compact{padding-bottom:34px}.tracks,.track-page{max-width:1180px;margin:22px auto;padding:24px}.tracks h2,.track-page h2{letter-spacing:-1px;margin:8px 0 16px;font-size:42px}.track-grid{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.track-card,.track-lessons button,.category-grid button,.db-modules article{border:1px solid var(--line);color:var(--text);background:#0d1b16b8;border-radius:22px;box-shadow:0 20px 80px #00000038}.track-card{text-align:left;cursor:pointer;padding:20px}.track-card:hover,.track-lessons button:hover,.category-grid button:hover{border-color:#18e2998c;transform:translateY(-1px)}.track-card span,.track-lessons span{color:var(--brand);font:12px Geist Mono,monospace}.track-card h3{margin:10px 0 8px}.track-card p,.track-page p,.db-modules p{color:var(--muted);line-height:1.6}.track-card b{color:#b8f8df}.track-page{border:1px solid var(--line);background:#0d1b167a;border-radius:28px}.back-btn{margin-bottom:12px;display:inline-block}.track-actions{flex-wrap:wrap;gap:10px;margin:14px 0 20px;display:flex}.track-actions span{color:#b8f8df;background:#18e29914;border:1px solid #18e29942;border-radius:999px;padding:7px 11px;font-size:13px}.track-lessons{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:18px;display:grid}.track-lessons button{text-align:left;cursor:pointer;padding:14px}.track-lessons b{margin:5px 0;display:block}.track-lessons small{color:var(--muted);line-height:1.45}.category-grid,.db-modules{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:18px;display:grid}.category-grid button{text-align:left;cursor:pointer;padding:16px}.category-grid b{display:block}.category-grid span{color:var(--muted);font:12px Geist Mono,monospace}.tag-index{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.db-modules article{padding:18px}.db-modules h3{margin:0 0 8px}@media (width<=980px){.layout,.dryrun{grid-template-columns:1fr}.sidebar{max-height:none;position:static}.roadmap-grid,.stats,.track-grid{grid-template-columns:1fr}.lesson-head{display:block}.tags{justify-content:flex-start}.nav nav{display:none}}.dryrun{align-items:start}.step-panel,.state-panel{min-width:0}.step-top h3{font-size:clamp(21px,2.2vw,28px);line-height:1.18}.step-top p{margin:0 0 14px;line-height:1.48}.visual{min-height:220px;padding:16px;overflow:visible}.array-viz{justify-content:center}.array-viz .cells{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));align-items:start;gap:8px;width:100%;display:grid}.array-viz .cell-wrap{min-width:0}.array-viz .cell{border-radius:12px;height:44px;padding:0 4px;font-size:clamp(14px,1.25vw,18px)}.array-viz .index{margin-top:3px;font-size:10px}.array-viz .pointer{white-space:normal;min-height:13px;margin-top:3px;font-size:11px;line-height:1.15}.notes{margin-top:14px}.notes span{padding:5px 9px;font-size:12px}.controls{margin-top:12px}.timeline-scroll{max-height:145px;overflow:auto}.vars{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}.vars div{grid-template-columns:minmax(0,1fr);align-content:space-between;gap:5px;min-width:0;min-height:40px;padding:6px 7px;display:grid}.vars span,.vars b{overflow-wrap:anywhere;min-width:0;max-width:100%;line-height:1.05}.vars span{font-size:10px}.vars b{text-align:right;word-break:break-word;font-family:Geist Mono,monospace;font-size:clamp(11px,.9vw,13px)}.timeline{margin:8px 0}.timeline h3,.state-panel h3{margin:0 0 6px;font-size:15px}.state-panel pre{max-height:200px;overflow:auto}@media (width>=1180px){.dryrun{grid-template-columns:minmax(520px,1.05fr) minmax(360px,.95fr)}.array-viz .cells{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}}@media (width<=980px){.sidebar{max-height:min(52vh,360px);overflow:auto}.state-panel{order:-1}}@media (width<=760px){.visual{padding:12px}.array-viz .cells{grid-template-columns:repeat(auto-fit,minmax(36px,1fr));gap:6px}.array-viz .cell{height:38px;font-size:13px}.notes{justify-content:flex-start}.lesson{padding:18px}.step-panel,.state-panel{padding:14px}.vars{grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}}.linked-row{flex-wrap:wrap;justify-content:center;row-gap:12px;min-width:0}.node-wrap{padding-bottom:20px}.list-node{border-radius:13px;min-width:62px;min-height:52px;padding:8px}.list-node span{font-size:17px}.list-node small{font-size:10px}.arrow{font-size:18px}.node-pointers{font-size:10px}.solutions{margin-top:10px}.solution-toggle{border:1px solid var(--line);width:100%;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.solution-toggle span{font-weight:700}.solution-toggle b{color:var(--brand);font-size:12px}.solution-body{margin-top:8px}.solution-tabs{gap:6px;margin-bottom:8px;display:flex}.solution-tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#ffffff0a;border-radius:999px;padding:6px 10px;font-size:12px}.solution-tabs button.active{background:var(--brand);color:#07110e;border-color:#0000;font-weight:700}.solution-code{max-height:280px;overflow:auto}.problem-bank{margin-top:18px}.bank-summary{grid-template-columns:repeat(3,auto 1fr);align-items:center;gap:8px 10px;margin-bottom:14px;display:grid}.bank-summary b{color:var(--brand);font-size:24px}.bank-summary span{color:var(--muted)}.bank-controls{grid-template-columns:1.4fr repeat(2,.7fr) 1fr;gap:10px;margin-bottom:14px;display:grid}.bank-controls label{color:var(--muted);gap:6px;font-size:12px;display:grid}.bank-controls input,.bank-controls select{border:1px solid var(--line);color:var(--text);background:#06100d;border-radius:14px;outline:none;padding:10px}.bank-results{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;max-height:680px;display:grid;overflow:auto}.bank-results a{border:1px solid var(--line);color:var(--text);background:#0d1b16b8;border-radius:18px;padding:13px;display:block}.bank-results span{color:var(--brand);font:11px Geist Mono,monospace}.bank-results b{margin:5px 0;display:block}.bank-results small{color:var(--muted);line-height:1.45}@media (width<=760px){.bank-controls{grid-template-columns:1fr}.bank-summary{grid-template-columns:auto 1fr}}
