.learn-shell{--l-canvas:#f4f6fc;--l-surface:#fff;--l-surface-2:#f7f9fe;--l-ink:#141b2e;--l-muted:#616a80;--l-border:#e3e7f1;--l-indigo:#5b5bd6;--l-indigo-soft:#eef;--l-violet:#8b5cf6;--l-teal:#14b8a6;--l-teal-soft:#e6f8f4;--l-coral:#ff6b57;--l-amber:#f5a524;--l-green:#16a34a;--l-shadow:0 14px 40px #18214217;--l-shadow-sm:0 4px 14px #1821420f;--l-radius:16px;background:var(--l-canvas);min-height:100vh;color:var(--l-ink);font-family:var(--font-geist-sans), Inter, ui-sans-serif, system-ui, sans-serif;line-height:1.6}.learn-shell[data-theme=dark]{--l-canvas:#0e1424;--l-surface:#161d31;--l-surface-2:#1c2338;--l-ink:#e8ecf6;--l-muted:#9aa4bd;--l-border:#2a3350;--l-indigo:#8b8bf0;--l-indigo-soft:#23294a;--l-violet:#a78bfa;--l-teal:#2dd4bf;--l-teal-soft:#16302e;--l-coral:#ff8570;--l-amber:#fbbf24;--l-green:#4ade80;--l-shadow:0 16px 44px #0006;--l-shadow-sm:0 4px 16px #0000004d}.learn-shell *{box-sizing:border-box}.learn-shell a{color:var(--l-indigo);text-decoration:none}.learn-shell a:hover{text-decoration:underline}.learn-shell :focus-visible{outline:3px solid color-mix(in srgb, var(--l-indigo) 45%, transparent);outline-offset:2px;border-radius:6px}.skip-link{z-index:100;background:var(--l-indigo);color:#fff;border-radius:8px;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:12px}.learn-topbar{z-index:30;background:color-mix(in srgb, var(--l-surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--l-border);align-items:center;gap:16px;padding:12px 22px;display:flex;position:sticky;top:0}.learn-menu-btn,.learn-close-btn{border:1px solid var(--l-border);background:var(--l-surface);cursor:pointer;width:40px;height:40px;color:var(--l-ink);border-radius:10px;font-size:1.2rem;display:none}.learn-brand{color:inherit;align-items:center;gap:11px;display:flex}.learn-brand:hover{text-decoration:none}.learn-brand-mark{background:linear-gradient(135deg, var(--l-indigo), var(--l-violet));color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;font-size:1.3rem;font-weight:700;display:grid}.learn-brand strong{font-size:1.02rem;display:block}.learn-brand small{color:var(--l-muted);font-size:.76rem}.learn-topbar-links{gap:6px;margin-left:auto;display:flex}.learn-topbar-links a{color:var(--l-muted);border-radius:10px;padding:8px 14px;font-size:.92rem;font-weight:500}.learn-topbar-links a:hover{background:var(--l-surface-2);text-decoration:none}.learn-topbar-links a.is-active{color:var(--l-indigo);background:var(--l-indigo-soft)}.theme-toggle{border:1px solid var(--l-border);background:var(--l-surface);cursor:pointer;width:40px;height:40px;color:var(--l-ink);border-radius:10px;font-size:1.05rem}.learn-body{grid-template-columns:272px minmax(0,1fr);align-items:start;display:grid}.learn-sidebar{border-right:1px solid var(--l-border);height:calc(100vh - 65px);padding:20px 14px 40px;position:sticky;top:65px;overflow-y:auto}.learn-sidebar-head{justify-content:space-between;align-items:center;padding:4px 8px 14px;display:none}.learn-nav-home{color:var(--l-ink);border-radius:10px;margin-bottom:8px;padding:9px 12px;font-weight:600;display:block}.learn-nav-home:hover{background:var(--l-surface-2);text-decoration:none}.learn-nav-home.is-active{background:var(--l-indigo-soft);color:var(--l-indigo)}.learn-nav-group{margin-bottom:14px}.learn-nav-label{letter-spacing:.06em;text-transform:uppercase;color:var(--l-muted);margin:12px 10px 6px;font-size:.71rem;font-weight:700}.learn-nav-link{color:var(--l-ink);border-radius:9px;align-items:center;gap:10px;padding:8px 11px;font-size:.9rem;display:flex}.learn-nav-link:hover{background:var(--l-surface-2);text-decoration:none}.learn-nav-link.is-active{background:var(--l-indigo-soft);color:var(--l-indigo);font-weight:600}.learn-nav-icon{text-align:center;flex:none;width:18px}.learn-nav-title{flex:1}.learn-nav-done{color:var(--l-green);font-weight:700}.learn-scrim{z-index:25;background:#0a0f1e80;border:none;display:none;position:fixed;inset:0}.learn-main{min-width:0;max-width:1080px;padding:30px 40px 60px}.learn-footer{border-top:1px solid var(--l-border);color:var(--l-muted);padding:24px 40px;font-size:.9rem}.btn{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);cursor:pointer;border-radius:11px;align-items:center;gap:7px;padding:10px 18px;font-size:.92rem;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--l-indigo);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--l-indigo), var(--l-violet));color:#fff;border:none}.btn-primary:hover{filter:brightness(1.05)}.btn-secondary{background:var(--l-surface-2)}.btn.is-on{border-color:var(--l-amber);color:var(--l-amber)}.chip-btn{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-muted);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:.85rem;font-weight:500}.chip-btn:hover{border-color:var(--l-indigo);color:var(--l-ink)}.chip-btn.is-active{background:var(--l-indigo);color:#fff;border-color:var(--l-indigo)}.icon-btn{border:1px solid var(--l-border);background:var(--l-surface);cursor:pointer;width:34px;height:34px;color:var(--l-muted);border-radius:9px;font-size:.95rem}.icon-btn.is-on{color:var(--l-amber);border-color:var(--l-amber)}.icon-btn.check.is-on{color:var(--l-green);border-color:var(--l-green)}.hub-hero{background:linear-gradient(150deg, var(--l-indigo-soft), var(--l-surface) 65%);border:1px solid var(--l-border);border-radius:24px;margin-bottom:34px;padding:40px 38px}.hub-hero h1{letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.12}.hub-hero-sub{color:var(--l-muted);max-width:60ch;margin:0 0 24px;font-size:1.08rem}.hub-hero-actions{flex-wrap:wrap;gap:12px;margin-bottom:26px;display:flex}.hub-search{border:1px solid var(--l-border);background:var(--l-surface);width:100%;max-width:420px;color:var(--l-ink);border-radius:12px;margin-bottom:26px;padding:12px 16px;font-size:1rem}.hero-stats{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.hero-stat{background:var(--l-surface);border:1px solid var(--l-border);box-shadow:var(--l-shadow-sm);border-radius:14px;padding:16px}.hero-stat strong{margin-bottom:5px;font-size:1.7rem;line-height:1;display:block}.hero-stat strong small{color:var(--l-muted);font-size:1rem;font-weight:500}.hero-stat span{color:var(--l-muted);font-size:.84rem}.hero-stat-bar{background:var(--l-border);border-radius:99px;height:6px;margin-top:9px;overflow:hidden}.hero-stat-bar>div{background:linear-gradient(90deg, var(--l-teal), var(--l-indigo));height:100%}.hub-section{margin:40px 0}.hub-section>h2{letter-spacing:-.01em;margin:0 0 6px;font-size:1.4rem}.hub-section-lead{color:var(--l-muted);max-width:65ch;margin:0 0 20px}.explorer-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.explorer-search{border:1px solid var(--l-border);background:var(--l-surface);min-width:240px;color:var(--l-ink);border-radius:11px;flex:1;padding:11px 15px;font-size:.95rem}.explorer-filters{flex-wrap:wrap;gap:7px;display:flex}.topic-category{margin-bottom:30px}.topic-category>h3{text-transform:uppercase;letter-spacing:.06em;color:var(--l-muted);margin:0 0 14px;font-size:.82rem}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px;display:grid}.topic-card{border-radius:var(--l-radius);border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);box-shadow:var(--l-shadow-sm);flex-direction:column;gap:8px;padding:20px;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.topic-card:hover{border-color:var(--l-indigo);box-shadow:var(--l-shadow);text-decoration:none;transform:translateY(-3px)}.topic-card.is-done{border-color:color-mix(in srgb, var(--l-green) 55%, var(--l-border))}.topic-card-head{justify-content:space-between;align-items:center;display:flex}.topic-card-icon{font-size:1.6rem}.topic-card-title{font-size:1.08rem}.topic-card-desc{color:var(--l-muted);flex:1;font-size:.88rem}.topic-card-meta{color:var(--l-muted);flex-wrap:wrap;gap:12px;font-size:.79rem;display:flex}.topic-card-progress{background:var(--l-border);border-radius:99px;height:6px;overflow:hidden}.topic-card-progress>div{background:linear-gradient(90deg, var(--l-teal), var(--l-indigo));height:100%}.topic-card-cta{color:var(--l-indigo);font-size:.88rem;font-weight:600}.level-badge,.difficulty{text-transform:uppercase;letter-spacing:.03em;border-radius:99px;padding:3px 9px;font-size:.72rem;font-weight:700}.level-badge.beginner,.difficulty.easy{background:var(--l-teal-soft);color:var(--l-teal)}.level-badge.intermediate,.difficulty.medium{background:color-mix(in srgb, var(--l-amber) 20%, transparent);color:var(--l-amber)}.level-badge.advanced,.difficulty.hard{background:color-mix(in srgb, var(--l-coral) 20%, transparent);color:var(--l-coral)}.continue-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px;display:grid}.continue-card{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);border-radius:14px;padding:16px 18px;display:block}.continue-card:hover{border-color:var(--l-indigo);text-decoration:none}.continue-card small{color:var(--l-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.74rem}.continue-card strong{margin:5px 0;font-size:1.02rem;display:block}.continue-card span{color:var(--l-indigo);font-size:.86rem}.continue-card.is-primary{background:linear-gradient(135deg, var(--l-indigo), var(--l-violet));color:#fff;border:none}.continue-card.is-primary small,.continue-card.is-primary span{color:#ffffffd9}.continue-card.is-static:hover{border-color:var(--l-border)}.bookmark-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.roadmap{margin:0;padding:0;list-style:none}.roadmap-stage{grid-template-columns:46px 1fr;gap:18px;padding-bottom:26px;display:grid;position:relative}.roadmap-stage:not(:last-child) .roadmap-marker:after{content:"";background:var(--l-border);width:2px;height:calc(100% - 22px);position:absolute;top:40px;left:19px}.roadmap-marker{border:2px solid var(--l-border);background:var(--l-surface);width:40px;height:40px;color:var(--l-muted);border-radius:50%;place-items:center;font-weight:700;display:grid;position:relative}.roadmap-stage.is-completed .roadmap-marker{background:var(--l-green);color:#fff;border-color:var(--l-green)}.roadmap-stage.is-active .roadmap-marker{border-color:var(--l-indigo);color:var(--l-indigo)}.roadmap-content{background:var(--l-surface);border:1px solid var(--l-border);border-radius:var(--l-radius);box-shadow:var(--l-shadow-sm);padding:18px 20px}.roadmap-stage.is-active .roadmap-content{border-color:var(--l-indigo)}.roadmap-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.roadmap-head h3{margin:0;font-size:1.12rem}.roadmap-status{background:var(--l-surface-2);color:var(--l-muted);border-radius:99px;padding:3px 10px;font-size:.74rem;font-weight:700}.roadmap-status.is-completed{background:var(--l-teal-soft);color:var(--l-teal)}.roadmap-status.is-active{background:var(--l-indigo-soft);color:var(--l-indigo)}.roadmap-content>p{color:var(--l-muted);margin:8px 0 12px}.roadmap-meta{color:var(--l-muted);flex-wrap:wrap;gap:14px;margin-bottom:12px;font-size:.82rem;display:flex}.roadmap-bar{background:var(--l-border);border-radius:99px;height:6px;margin-bottom:14px;overflow:hidden}.roadmap-bar>div{background:linear-gradient(90deg, var(--l-teal), var(--l-indigo));height:100%}.roadmap-topics{flex-wrap:wrap;gap:8px;display:flex}.roadmap-topic{background:var(--l-surface-2);color:var(--l-ink);border:1px solid var(--l-border);border-radius:9px;padding:6px 12px;font-size:.85rem}.roadmap-topic:hover{border-color:var(--l-indigo);text-decoration:none}.roadmap-topic.is-done{border-color:color-mix(in srgb, var(--l-green) 50%, var(--l-border))}.roadmap-topic small{color:var(--l-muted);margin-right:4px}.roadmap-topic.is-link{color:var(--l-indigo);font-weight:600}.topic-hero{background:linear-gradient(150deg, var(--l-indigo-soft), var(--l-surface) 70%);border:1px solid var(--l-border);border-radius:22px;margin-bottom:8px;padding:30px 32px}.topic-crumbs{color:var(--l-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:.84rem;display:flex}.topic-crumbs a{color:var(--l-muted)}.topic-hero h1{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(1.7rem,3.5vw,2.4rem)}.topic-badges{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px;display:flex}.topic-badges .pill{background:var(--l-surface);border:1px solid var(--l-border);color:var(--l-muted);border-radius:99px;padding:4px 11px;font-size:.78rem}.topic-hero-desc{color:var(--l-muted);max-width:66ch;margin:0;font-size:1.02rem}.topic-header-controls{background:var(--l-surface);border:1px solid var(--l-border);border-radius:var(--l-radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:16px 20px;display:flex}.topic-header-progress{flex:1;min-width:220px}.topic-header-progress>span{color:var(--l-muted);margin-top:7px;font-size:.84rem;display:block}.topic-header-progress .topic-card-progress{max-width:320px}.topic-header-buttons{flex-wrap:wrap;gap:10px;display:flex}.topic-pager{grid-template-columns:1fr 1fr;gap:14px;margin-top:36px;display:grid}.topic-pager a{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);border-radius:14px;padding:16px 18px;display:block}.topic-pager a:hover{border-color:var(--l-indigo);text-decoration:none}.topic-pager a span{color:var(--l-muted);font-size:.8rem}.topic-pager a strong{margin-top:4px;display:block}.topic-pager .next{text-align:right}.topic-section{margin:38px 0;scroll-margin-top:80px}.topic-section>h2{letter-spacing:-.01em;border-bottom:2px solid var(--l-border);margin:0 0 8px;padding-bottom:8px;font-size:1.35rem}.topic-section>.section-lead{color:var(--l-muted);max-width:68ch;margin:8px 0 20px}.intro-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:18px;display:grid}.intro-col{background:var(--l-surface);border:1px solid var(--l-border);border-radius:14px;padding:18px 20px}.intro-col h3{margin:0 0 10px;font-size:.96rem}.intro-col ul{margin:0;padding-left:18px}.intro-col li{color:var(--l-ink);margin-bottom:7px}.analogy-box{background:var(--l-teal-soft);border:1px solid color-mix(in srgb, var(--l-teal) 30%, transparent);border-radius:14px;padding:16px 20px}.analogy-box strong{color:var(--l-teal)}.lesson-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.lesson-item{border:1px solid var(--l-border);background:var(--l-surface);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.lesson-item.is-done{background:var(--l-surface-2)}.lesson-check{align-items:center;gap:10px;display:flex}.lesson-check input{width:18px;height:18px;accent-color:var(--l-indigo)}.lesson-num{color:var(--l-muted);font-variant-numeric:tabular-nums;font-weight:700}.lesson-item strong{font-size:.98rem}.lesson-item p{color:var(--l-muted);margin:3px 0 0;font-size:.86rem}.lesson-minutes{color:var(--l-muted);white-space:nowrap;font-size:.82rem}.op-list{flex-direction:column;gap:26px;display:flex}.op-item{border:1px solid var(--l-border);border-radius:var(--l-radius);background:var(--l-surface);padding:22px}.op-item>h3{margin:0 0 6px;font-size:1.12rem}.op-summary{color:var(--l-muted);margin:0 0 16px}.op-complexity{flex-wrap:wrap;gap:16px;margin:16px 0;font-size:.86rem;display:flex}.op-complexity span{color:var(--l-muted)}.op-complexity strong{color:var(--l-ink)}.edge-mistake-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px;display:grid}.edge-mistake-grid>div h4{text-transform:uppercase;letter-spacing:.04em;color:var(--l-muted);margin:0 0 8px;font-size:.86rem}.edge-mistake-grid ul{margin:0;padding-left:18px;font-size:.9rem}.edge-mistake-grid li{margin-bottom:6px}.insight-section{margin-bottom:18px}.insight-section h3{margin:0 0 10px;font-size:1rem}.insight-section ul{margin:0;padding-left:18px}.insight-section li{margin-bottom:8px}.mistake-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.mistake-card{background:color-mix(in srgb, var(--l-coral) 8%, var(--l-surface));border:1px solid color-mix(in srgb, var(--l-coral) 30%, transparent);border-radius:13px;padding:15px 17px}.mistake-card strong{color:var(--l-coral);margin-bottom:6px;display:block}.mistake-card p{margin:0;font-size:.9rem}.complexity-wrap{border:1px solid var(--l-border);border-radius:var(--l-radius);overflow-x:auto}.complexity-table{border-collapse:collapse;width:100%;min-width:520px;font-size:.9rem}.complexity-table th,.complexity-table td{text-align:left;border-bottom:1px solid var(--l-border);padding:11px 14px}.complexity-table thead th{background:var(--l-surface-2);text-transform:uppercase;letter-spacing:.03em;color:var(--l-muted);font-size:.78rem}.complexity-table tbody tr:last-child td{border-bottom:none}.complexity-table td:first-child{font-weight:600}.complexity-caption{color:var(--l-muted);margin-top:10px;font-size:.85rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.summary-card{background:var(--l-surface);border:1px solid var(--l-border);border-radius:14px;padding:18px 20px}.summary-card h3{margin:0 0 12px;font-size:1rem}.summary-card ul{margin:0;padding-left:18px}.summary-card li{margin-bottom:8px;font-size:.92rem}.checklist{margin:0;padding:0;list-style:none}.checklist li{margin-bottom:8px;padding-left:26px;font-size:.92rem;position:relative}.checklist li:before{content:"☐";color:var(--l-indigo);position:absolute;left:0}.faq-list{flex-direction:column;gap:10px;display:flex}.faq-item{border:1px solid var(--l-border);background:var(--l-surface);border-radius:12px;padding:16px 18px}.faq-item summary{cursor:pointer;font-weight:600}.faq-item p{color:var(--l-muted);margin:10px 0 0}.topic-notes{background:var(--l-surface);border:1px solid var(--l-border);border-radius:14px;padding:18px 20px}.topic-notes label{margin-bottom:10px;font-size:.92rem;display:block}.topic-notes textarea{border:1px solid var(--l-border);background:var(--l-surface-2);width:100%;color:var(--l-ink);resize:vertical;border-radius:10px;padding:11px 13px;font-family:inherit;font-size:.92rem}.topic-notes-foot{align-items:center;gap:12px;margin-top:10px;display:flex}.topic-notes-saved{color:var(--l-green);font-size:.85rem}.quiz-badge{background:var(--l-indigo-soft);color:var(--l-indigo);border-radius:99px;margin-bottom:14px;padding:4px 11px;font-size:.8rem;display:inline-block}.player{border:1px solid var(--l-border);border-radius:var(--l-radius);background:var(--l-surface);overflow:hidden}.player-with-code{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);display:grid}.player-stage{min-width:0;padding:20px}.player-caption{margin-top:16px}.player-caption strong{margin-bottom:5px;font-size:1rem;display:block}.player-caption p{color:var(--l-muted);margin:0;font-size:.92rem}.player-state{flex-wrap:wrap;gap:8px;margin:12px 0 0;display:flex}.player-state-chip{background:var(--l-surface-2);border:1px solid var(--l-border);border-radius:8px;align-items:baseline;gap:6px;padding:5px 10px;font-size:.82rem;display:flex}.player-state-chip dt{color:var(--l-muted);font-family:var(--font-geist-mono), monospace}.player-state-chip dd{font-weight:600;font-family:var(--font-geist-mono), monospace;margin:0}.player-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;display:flex}.player-btn{border:1px solid var(--l-border);background:var(--l-surface);cursor:pointer;width:38px;height:38px;color:var(--l-ink);border-radius:10px;font-size:.85rem}.player-btn:disabled{opacity:.4;cursor:not-allowed}.player-btn-primary{background:var(--l-indigo);color:#fff;border:none;width:46px}.player-scrub{min-width:120px;accent-color:var(--l-indigo);flex:1}.player-counter{color:var(--l-muted);font-variant-numeric:tabular-nums;font-size:.82rem}.player-code{border-left:1px solid var(--l-border);border-radius:0;max-height:460px;margin:0;overflow:auto}.player-code .code-line.is-active-line{background:color-mix(in srgb, var(--l-indigo) 16%, transparent)}.player-code .code-line.is-active-line .line-number{color:var(--l-indigo);font-weight:700}.viz{width:100%}.viz-array-row{flex-wrap:wrap;gap:6px;padding:26px 4px 8px;display:flex}.viz-cell{border:2px solid var(--l-border);background:var(--l-surface-2);text-align:center;border-radius:10px;min-width:46px;padding:12px 8px 6px;position:relative}.viz-cell.is-active{border-color:var(--l-indigo);background:var(--l-indigo-soft)}.viz-cell.in-window{border-color:var(--l-teal);background:var(--l-teal-soft)}.viz-cell.is-out{opacity:.4;text-decoration:line-through}.viz-cell-value{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700;display:block}.viz-cell-index{color:var(--l-muted);margin-top:3px;font-size:.68rem;display:block}.viz-cell-pointer{color:var(--l-coral);height:16px;font-size:.7rem;font-weight:700;position:absolute;top:-20px;left:0;right:0}.viz-bars{align-items:flex-end;gap:6px;height:200px;padding:10px 4px 4px;display:flex}.viz-bar-slot{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.viz-bar{background:var(--l-indigo);border-radius:6px 6px 0 0;width:100%;max-width:46px;transition:height .2s}.viz-bar.is-compare{background:var(--l-amber)}.viz-bar.is-swap{background:var(--l-coral)}.viz-bar.is-sorted{background:var(--l-teal)}.viz-bar.is-pivot{background:var(--l-violet)}.viz-bar-value{color:var(--l-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.viz-grid-wrap{padding:8px 0;overflow-x:auto}.viz-grid{border-collapse:collapse;font-variant-numeric:tabular-nums}.viz-grid th,.viz-grid td{border:1px solid var(--l-border);text-align:center;min-width:40px;padding:8px 12px;font-size:.9rem}.viz-grid th{background:var(--l-surface-2);color:var(--l-muted);font-size:.78rem}.viz-grid td.is-active{background:var(--l-indigo-soft);border-color:var(--l-indigo);font-weight:700}.viz-grid td.is-source{background:var(--l-teal-soft)}.viz-stack-wrap{align-items:flex-end;gap:20px;min-height:200px;padding:12px;display:flex}.viz-stack-side{flex-direction:column;gap:8px;font-size:.82rem;display:flex}.viz-op-label{color:var(--l-indigo);font-weight:700;font-family:var(--font-geist-mono), monospace}.viz-stack-incoming{color:var(--l-teal)}.viz-stack-outgoing{color:var(--l-coral)}.viz-stack{flex-direction:column-reverse;gap:5px;min-width:90px;display:flex}.viz-stack-top-label{color:var(--l-muted);text-align:center;font-size:.7rem}.viz-stack-item{text-align:center;border:2px solid var(--l-border);background:var(--l-surface-2);border-radius:8px;padding:11px;font-weight:600}.viz-stack-item.is-active{border-color:var(--l-indigo);background:var(--l-indigo-soft)}.viz-stack-empty{color:var(--l-muted);border:2px dashed var(--l-border);text-align:center;border-radius:8px;padding:20px}.viz-stack-base{background:var(--l-ink);border-radius:2px;height:4px;margin-top:2px}.viz-queue-wrap{flex-wrap:wrap;align-items:center;gap:12px;padding:16px 8px;display:flex}.viz-queue{gap:6px;display:flex}.viz-queue-item{border:2px solid var(--l-border);background:var(--l-surface-2);text-align:center;border-radius:9px;min-width:52px;padding:14px 10px;font-weight:600;position:relative}.viz-queue-item.is-active{border-color:var(--l-indigo);background:var(--l-indigo-soft)}.viz-queue-item small{color:var(--l-muted);font-size:.66rem;font-weight:700;position:absolute;bottom:-18px;left:0;right:0}.viz-queue-empty{color:var(--l-muted);border:2px dashed var(--l-border);border-radius:9px;padding:14px 24px}.viz-queue-in{color:var(--l-teal);font-size:.85rem;font-weight:600}.viz-queue-out{color:var(--l-coral);font-size:.85rem;font-weight:600}.viz-svg-wrap{width:100%;padding:10px 0;overflow-x:auto}.viz-svg{width:100%;max-width:100%;height:auto;display:block}.viz-svg-graph{max-width:560px;margin:0 auto}.viz-arrowhead{fill:var(--l-muted)}.viz-arrowhead.is-active{fill:var(--l-indigo)}.viz-edge{stroke:var(--l-muted);stroke-width:1.6px;fill:none}.viz-edge.is-active{stroke:var(--l-indigo);stroke-width:2.4px}.viz-edge-thin{stroke-width:.7px}.viz-node-rect{fill:var(--l-surface-2);stroke:var(--l-border);stroke-width:1.6px}.viz-node-rect.is-active{fill:var(--l-indigo-soft);stroke:var(--l-indigo)}.viz-node-text{fill:var(--l-ink);font-size:15px;font-weight:700}.viz-node-text.small{font-size:13px}.viz-pointer-label{fill:var(--l-coral);font-size:11px;font-weight:700}.viz-null-label{fill:var(--l-muted);font-size:14px}.viz-tree-node{fill:var(--l-surface-2);stroke:var(--l-border);stroke-width:1.6px}.viz-tree-node.is-active{fill:var(--l-indigo-soft);stroke:var(--l-indigo);stroke-width:2.4px}.viz-tree-node.is-visited{fill:var(--l-teal-soft);stroke:var(--l-teal)}.viz-tree-node.is-word-end{stroke:var(--l-violet);stroke-width:2.6px}.viz-tree-node.is-frontier{fill:color-mix(in srgb, var(--l-amber) 22%, var(--l-surface));stroke:var(--l-amber)}.viz-order-badge{fill:var(--l-indigo)}.viz-order-text{fill:#fff;font-size:9px;font-weight:700}.viz-annotation{fill:var(--l-muted);font-size:9px}.viz-graph-label{fill:var(--l-ink);font-size:5px;font-weight:700}.viz-graph-dist{fill:var(--l-indigo);font-size:4.4px;font-weight:700}.viz-weight-bg{fill:var(--l-surface);stroke:var(--l-border);stroke-width:.3px}.viz-weight-text{fill:var(--l-muted);font-size:3.4px;font-weight:600}.viz-bits{font-family:var(--font-geist-mono), monospace;flex-direction:column;gap:8px;padding:12px;display:flex}.viz-bits-row{align-items:center;gap:12px;display:flex}.viz-bits-label{min-width:110px;color:var(--l-muted);font-size:.85rem}.viz-bits-cells{gap:4px;display:flex}.viz-bit{border:1px solid var(--l-border);background:var(--l-surface-2);border-radius:7px;place-items:center;width:30px;height:34px;font-weight:700;display:grid}.viz-bit.is-one{background:var(--l-indigo-soft);color:var(--l-indigo);border-color:var(--l-indigo)}.viz-bit.is-active{outline:2px solid var(--l-coral)}.codeblock{border:1px solid var(--l-border);border-radius:var(--l-radius);overflow:hidden}.codeblock-bar{background:var(--l-surface-2);border-bottom:1px solid var(--l-border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.codeblock-title{font-size:.9rem;font-weight:600}.codeblock-tabs{gap:4px;margin-left:auto;display:flex}.codeblock-tab{color:var(--l-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:5px 11px;font-size:.82rem}.codeblock-tab.is-active{background:var(--l-surface);color:var(--l-indigo);box-shadow:var(--l-shadow-sm)}.codeblock-copy{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);cursor:pointer;border-radius:8px;padding:5px 12px;font-size:.8rem}.codeblock-expand{border:none;border-top:1px solid var(--l-border);background:var(--l-surface-2);width:100%;color:var(--l-indigo);cursor:pointer;padding:8px;font-size:.84rem;display:block}.codeblock-panel{margin:0;padding:16px 20px;font-size:.9rem}.codeblock-explanation{padding-left:40px}.codeblock-explanation li{margin-bottom:8px}.codeblock-output{font-family:var(--font-geist-mono), monospace;background:var(--l-surface-2);white-space:pre-wrap;color:var(--l-ink)}.codeblock-complexity{padding-left:38px}.learn-shell .code-block{background:var(--l-surface);font-family:var(--font-geist-mono), ui-monospace, monospace;margin:0;padding:14px 16px;font-size:.85rem;line-height:1.55;overflow-x:auto}.learn-shell[data-theme=dark] .code-block{background:#0b1020}.learn-shell .code-line{gap:14px;display:flex}.learn-shell .line-number{color:var(--l-muted);text-align:right;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;min-width:22px}.learn-shell .code-line code{white-space:pre}.learn-shell .tok-keyword{color:var(--l-violet)}.learn-shell .tok-string{color:var(--l-teal)}.learn-shell .tok-builtin{color:var(--l-indigo)}.learn-shell .tok-number{color:var(--l-amber)}.learn-shell .tok-comment{color:var(--l-muted);font-style:italic}.learn-shell .tok-operator{color:var(--l-muted)}.learn-shell[data-theme=dark] .tok-text{color:#d5dcf0}.quiz-result{background:var(--l-surface-2);border:1px solid var(--l-border);border-radius:var(--l-radius);margin-bottom:20px;padding:18px 20px}.quiz-score{align-items:baseline;gap:14px;margin-bottom:8px;display:flex}.quiz-score strong{color:var(--l-indigo);font-size:1.8rem}.quiz-revise{margin:8px 0;font-size:.9rem}.quiz-list{flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.quiz-question fieldset{border:1px solid var(--l-border);border-radius:14px;margin:0;padding:16px 18px}.quiz-question legend{padding:0 6px}.quiz-type{text-transform:uppercase;color:var(--l-teal);background:var(--l-teal-soft);border-radius:6px;margin-right:8px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.quiz-prompt{font-weight:600}.quiz-code{border:1px solid var(--l-border);border-radius:10px;margin:12px 0;font-size:.82rem}.quiz-options{flex-direction:column;gap:8px;margin-top:12px;display:flex}.quiz-option{border:1px solid var(--l-border);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.quiz-option input{accent-color:var(--l-indigo)}.quiz-option.is-chosen{border-color:var(--l-indigo);background:var(--l-indigo-soft)}.quiz-option.is-correct{border-color:var(--l-green);background:color-mix(in srgb, var(--l-green) 12%, transparent)}.quiz-option.is-wrong{border-color:var(--l-coral);background:color-mix(in srgb, var(--l-coral) 12%, transparent)}.quiz-mark{margin-left:auto;font-weight:700}.quiz-explanation{background:var(--l-surface-2);color:var(--l-muted);border-radius:10px;margin:12px 0 0;padding:10px 14px;font-size:.88rem}.quiz-footer{color:var(--l-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;font-size:.9rem;display:flex}.quiz-history{color:var(--l-muted);margin-top:14px;font-size:.88rem}.problem-groups{flex-direction:column;gap:26px;display:flex}.problem-group-title{margin:0 0 12px;font-size:1.05rem}.problem-group-title span{color:var(--l-muted);font-weight:400}.problem-group-title.easy{color:var(--l-teal)}.problem-group-title.medium{color:var(--l-amber)}.problem-group-title.hard{color:var(--l-coral)}.problem-group-list{flex-direction:column;gap:12px;display:flex}.problem-card{border:1px solid var(--l-border);background:var(--l-surface);border-radius:14px;padding:16px 18px}.problem-card.is-done{background:var(--l-surface-2)}.problem-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.problem-card-link{font-size:1rem;font-weight:600}.problem-card-tags{flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;display:flex}.tag-pattern,.tag-time{color:var(--l-muted);background:var(--l-surface-2);border-radius:99px;padding:3px 9px;font-size:.76rem}.problem-card-actions{flex-shrink:0;gap:7px;display:flex}.problem-card-companies{color:var(--l-muted);margin:10px 0 0;font-size:.82rem}.problem-card-reveals{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.problem-card-complexity{color:var(--l-muted);margin-left:auto;font-size:.8rem}.problem-card-panel{background:var(--l-surface-2);border-radius:10px;margin:12px 0 0;padding:12px 14px;font-size:.9rem}.problem-card-code{border:1px solid var(--l-border);border-radius:10px;margin-top:12px;font-size:.82rem}.problem-card-foot{flex-wrap:wrap;gap:16px;margin-top:12px;font-size:.88rem;display:flex}.empty-state{text-align:center;border:2px dashed var(--l-border);border-radius:var(--l-radius);color:var(--l-muted);padding:40px 20px}.empty-state p{margin:0 0 14px}.plan-tablist{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.plan-tab{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-muted);cursor:pointer;border-radius:11px;padding:9px 18px;font-weight:600}.plan-tab.is-active{background:var(--l-indigo);color:#fff;border-color:var(--l-indigo)}.plan-audience{color:var(--l-muted);margin-bottom:18px}.plan-audience strong{color:var(--l-ink)}.plan-phases{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.plan-phase{border:1px solid var(--l-border);background:var(--l-surface);border-radius:14px;padding:16px 18px}.plan-phase-head{justify-content:space-between;margin-bottom:6px;display:flex}.plan-phase-head strong{font-size:1rem}.plan-phase-head span{color:var(--l-indigo);font-size:.85rem;font-weight:600}.plan-phase-focus{margin:0 0 10px}.plan-phase-topics{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.plan-phase-note{color:var(--l-muted);margin:0;font-size:.86rem}.company-filters{margin-bottom:14px}.company-note{color:var(--l-muted);margin-bottom:16px;font-size:.88rem}.company-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.company-list a{border:1px solid var(--l-border);background:var(--l-surface);color:var(--l-ink);border-radius:11px;align-items:center;gap:12px;padding:12px 16px;display:flex}.company-list a:hover{border-color:var(--l-indigo);text-decoration:none}.company-list strong{flex:1;font-weight:600}.company-list small{color:var(--l-muted);font-size:.8rem}.company-more{color:var(--l-muted);margin-top:10px;font-size:.86rem}.mock-setup{flex-direction:column;gap:18px;max-width:560px;display:flex}.mock-field{flex-direction:column;gap:8px;display:flex}.mock-field>span{font-size:.9rem;font-weight:600}.mock-hint{color:var(--l-muted);font-size:.88rem}.mock-timer{font-variant-numeric:tabular-nums;text-align:center;background:var(--l-indigo-soft);color:var(--l-indigo);border-radius:14px;margin-bottom:18px;padding:14px;font-size:2rem;font-weight:700}.mock-timer.is-over{background:color-mix(in srgb, var(--l-coral) 18%, transparent);color:var(--l-coral)}.mock-problems{flex-direction:column;gap:12px;margin:0 0 18px;padding:0;list-style:none;display:flex}.mock-problem{border:1px solid var(--l-border);background:var(--l-surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.mock-problem small{color:var(--l-muted);align-items:center;gap:8px;margin-top:4px;font-size:.82rem;display:flex}.mock-actions{flex-wrap:wrap;gap:12px;display:flex}.mock-summary{background:var(--l-surface-2);border-radius:14px;padding:16px}.mock-history{margin-top:26px}.mock-history ul{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.mock-history li{border:1px solid var(--l-border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 14px;font-size:.86rem;display:flex}.revision-score{background:var(--l-surface);border:1px solid var(--l-border);border-radius:var(--l-radius);flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:22px;padding:22px;display:flex}.revision-dial{background:conic-gradient(var(--l-indigo) var(--pct), var(--l-border) 0);border-radius:50%;flex:none;place-items:center;width:96px;height:96px;display:grid}.revision-dial strong{background:var(--l-surface);border-radius:50%;place-items:center;width:74px;height:74px;font-size:1.5rem;display:grid}.revision-score h3{margin:0 0 6px}.revision-score p{color:var(--l-muted);max-width:55ch;margin:0;font-size:.9rem}.revision-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.revision-grid section{background:var(--l-surface);border:1px solid var(--l-border);border-radius:14px;padding:16px 18px}.revision-grid h3{margin:0 0 12px;font-size:.98rem}.revision-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.revision-list li{justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;display:flex}.revision-flag{color:var(--l-coral);white-space:nowrap;font-size:.78rem}.revision-empty{color:var(--l-muted);margin:0;font-size:.88rem}.pattern-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;display:grid}.pattern-card{border:1px solid var(--l-border);border-radius:var(--l-radius);background:var(--l-surface);padding:20px}.pattern-card h3{margin:0 0 6px;font-size:1.1rem}.pattern-oneliner{color:var(--l-muted);margin:0 0 14px;font-size:.92rem}.pattern-card h4{text-transform:uppercase;letter-spacing:.05em;color:var(--l-muted);margin:14px 0 6px;font-size:.76rem}.pattern-card ul{margin:0;padding-left:18px;font-size:.88rem}.pattern-card ul li{margin-bottom:4px}.pattern-meta{border-top:1px solid var(--l-border);justify-content:space-between;margin-top:14px;padding-top:12px;font-size:.82rem;display:flex}.pattern-meta a{font-weight:600}.pattern-meta code{color:var(--l-indigo)}@media (max-width:1024px){.learn-body{grid-template-columns:1fr}.learn-menu-btn{display:block}.learn-sidebar{z-index:40;background:var(--l-surface);width:280px;height:100vh;box-shadow:var(--l-shadow);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.learn-sidebar.is-open{transform:translate(0)}.learn-sidebar-head{display:flex}.learn-close-btn,.learn-scrim{display:block}.learn-topbar-links{display:none}.player-with-code{grid-template-columns:1fr}.player-code{border-left:none;border-top:1px solid var(--l-border)}}@media (max-width:720px){.learn-main{padding:20px 18px 50px}.learn-footer{padding:20px 18px}.hub-hero{padding:26px 20px}.hero-stats{grid-template-columns:repeat(2,1fr)}.topic-pager{grid-template-columns:1fr}.topic-hero{padding:22px 18px}.roadmap-stage{grid-template-columns:36px 1fr;gap:12px}.revision-score{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.learn-shell *,.learn-shell :before,.learn-shell :after{transition:none!important;animation:none!important}}
