:root,:root[data-theme=dark]{--bg: #0d0d0c;--surface: #141413;--raised: #1b1b19;--line: #2a2a26;--line-soft: #20201d;--text: #ecebe4;--muted: #8f8d82;--accent: #d4ff3a;--accent-ink: #141a00;--accent-soft: #d4ff3a1f;--ok: #5ee6a0;--bad: #ff7a6b;--easy: #5ee6a0;--medium: #ffc94d;--hard: #ff7a6b;--shadow: 0 1px 0 #ffffff08 inset, 0 12px 32px #00000066;--t-amber: #ffc94d;--t-blue: #6ea8ff;--t-green: #5ee6a0;--t-teal: #3fd0c2;--t-coral: #ff7a6b;--accent-text: #d4ff3a;color-scheme:dark}:root[data-theme=light]{--bg: #f3f1ea;--surface: #fffefa;--raised: #f7f5ee;--line: #dedbcf;--line-soft: #ebe8de;--text: #16160f;--muted: #6d6b60;--accent: #c6f031;--accent-ink: #16160f;--accent-soft: #8fb31a26;--ok: #138a55;--bad: #c9392b;--easy: #138a55;--medium: #b07600;--hard: #c9392b;--shadow: 0 1px 2px #16160f0d, 0 8px 24px #16160f0f;--t-amber: #7a5200;--t-blue: #1d52cc;--t-green: #0c6a40;--t-teal: #06645a;--t-coral: #a42b1b;--accent-text: #456200;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.55 Instrument Sans,ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}code,.mono,pre,kbd{font-family:JetBrains Mono,ui-monospace,monospace}.muted{color:var(--muted)}.small{font-size:12.5px}.grow{flex:1}.boot{display:grid;place-items:center;height:100%;color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:18px;height:52px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:9px;font:700 18px/1 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.topbar-mid{flex:1;min-width:0}.topbar-right{display:flex;align-items:center;gap:10px}.topbar-account{display:contents}.topbar .menu-btn{display:none;width:40px;height:40px}.phone-menu{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;gap:16px;padding:12px 16px 20px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 16px 32px #00000040}.phone-menu nav{display:flex;flex-direction:column}.phone-menu nav a{display:flex;align-items:center;min-height:46px;padding:0 4px;border-bottom:1px solid var(--line-soft);font-size:16px;font-weight:600;color:var(--muted)}.phone-menu nav a.active{color:var(--text)}.phone-menu-account{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.phone-menu-account .btn{height:42px;flex:1;justify-content:center}.phone-menu-account .hide-sm{display:inline-flex!important}@media(max-width:900px){.topbar{gap:10px}.topbar .topnav,.topbar-account{display:none}.topbar .menu-btn{display:inline-grid}.topbar-right .icon-btn{width:40px;height:40px}}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:18px;color:var(--muted)}.icon-btn:hover:not(:disabled){color:var(--text);background:var(--raised);border-color:var(--line)}.icon-btn:disabled{opacity:.35;cursor:default}.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--raised);font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;transition:transform .08s,background .15s,border-color .15s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:progress}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-accent:hover:not(:disabled){filter:brightness(1.05)}.btn-ghost:hover:not(:disabled){border-color:var(--muted)}.btn-quiet{height:28px;padding:0 10px;font-size:13px;font-weight:500;background:transparent;border-color:transparent;color:var(--muted)}.btn-quiet:hover{color:var(--text);background:var(--raised)}.select{height:36px;padding:0 32px 0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238f8d82' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.select-sm{height:30px;font-size:13px;font-weight:600}.pill{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid currentColor;white-space:nowrap}.diff-easy{color:var(--easy)}.diff-medium{color:var(--medium)}.diff-hard{color:var(--hard)}.bg-easy{background:var(--easy)}.bg-medium{background:var(--medium)}.bg-hard{background:var(--hard)}.solved-pill{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.mini-tag{font-size:12px;color:var(--muted);padding:2px 8px;border-radius:6px;background:var(--raised);border:1px solid var(--line-soft);white-space:nowrap}.status{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1.5px dashed var(--line);flex:none}.status.solved{border:none;background:var(--accent);color:var(--accent-ink)}.status.attempted{border:1.5px solid var(--medium);background:radial-gradient(circle,var(--medium) 0 3px,transparent 3.5px)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .7s linear infinite}.spinner.sm{width:12px;height:12px}.spinner.dark{border-color:#0003;border-top-color:var(--accent-ink)}@keyframes spin{to{transform:rotate(360deg)}}.list-page{width:100%;max-width:1080px;margin:0 auto;padding:40px 16px 80px}.hero{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;margin-bottom:36px}.eyebrow{margin:0 0 10px;font:600 12px/1 JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.hero h1{margin:0;font:800 clamp(34px,5vw,54px) / 1.02 "Bricolage Grotesque",sans-serif;letter-spacing:-.035em}.hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--accent-soft) 62%);box-shadow:inset 0 -.14em 0 var(--accent)}.lede{max-width:560px;margin:16px 0 24px;color:var(--muted);font-size:16.5px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.progress-card{display:flex;align-items:center;gap:22px;padding:20px 24px}.ring{transform:rotate(-90deg)}.ring-track,.ring-seg{fill:none;stroke-width:9}.ring-track{stroke:var(--raised)}.ring-seg{stroke:currentColor;stroke-linecap:butt;transition:stroke-dasharray .6s}.ring-num,.ring-sub{transform:rotate(90deg);transform-origin:50px 50px;text-anchor:middle;fill:var(--text)}.ring-num{font:800 24px Bricolage Grotesque,sans-serif}.ring-sub{font:500 11px JetBrains Mono,monospace;fill:var(--muted)}.progress-rows{display:grid;gap:10px;min-width:200px}.progress-row{display:grid;grid-template-columns:64px 1fr 40px;align-items:center;gap:10px;font-size:13px}.diff-text{font-weight:600}.bar{height:6px;border-radius:6px;background:var(--raised);overflow:hidden}.bar-fill{height:100%;border-radius:6px;transition:width .6s}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted)}.search:focus-within{border-color:var(--accent)}.search input{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--text)}.segmented{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.segmented button{height:28px;padding:0 12px;border:none;border-radius:7px;background:none;cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}.segmented button.on{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 22px}.chip{height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12.5px;cursor:pointer}.chip:hover{color:var(--text)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.ptable{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}.ptable-head,.ptable-row{display:grid;grid-template-columns:28px 48px minmax(0,1fr) minmax(0,300px) 84px;align-items:center;gap:14px;padding:0 18px}.ptable-head{height:40px;font:600 11px/1 JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:1px solid var(--line)}.ptable-row{height:52px;border-bottom:1px solid var(--line-soft);transition:background .12s}.ptable-row:last-child{border-bottom:none}.ptable-row:hover{background:var(--raised)}.ptable-row:hover .ptitle{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}.ptitle{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptags{display:flex;gap:6px;overflow:hidden}.ptable-row .pill{justify-self:start}.empty-rows{padding:28px;text-align:center}.empty-page{flex:1;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center}.empty-page h1{margin:0 0 16px;font:800 36px Bricolage Grotesque,sans-serif}.workspace{height:100%;overflow:hidden}.crumbs{display:flex;align-items:center;gap:10px;min-width:0;font-size:14px}.crumb-link{color:var(--muted)}.crumb-link:hover{color:var(--text)}.crumb-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-nav{display:flex;gap:2px}.panels{flex:1;min-height:0;padding:8px}.pane{height:100%;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.handle{position:relative;background:transparent}.handle-v{width:8px}.handle-h{height:8px}.handle:after{content:"";position:absolute;border-radius:2px;background:var(--line);transition:background .15s}.handle-v:after{top:50%;left:3px;width:2px;height:32px;transform:translateY(-50%)}.handle-h:after{left:50%;top:3px;height:2px;width:32px;transform:translate(-50%)}.handle[data-resize-handle-state=hover]:after,.handle[data-resize-handle-state=drag]:after{background:var(--accent)}.pane-tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--line);background:var(--raised);flex:none}.pane-tabs button{position:relative;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:none;background:none;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--muted)}.pane-tabs button.on{color:var(--text)}.pane-tabs button.on:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.count{font:600 11px/1 JetBrains Mono,monospace;padding:3px 6px;border-radius:6px;background:var(--line-soft);color:var(--muted)}.pane-body{flex:1;min-height:0;overflow:auto;padding:20px 22px}.statement{font-size:15px}.st-head h1{margin:2px 0 12px;font:800 28px/1.15 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.st-head p{margin:0;font-size:12px}.st-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.statement p,.statement li{line-height:1.7}.statement code{font-size:13px;padding:1px 6px;border-radius:5px;background:var(--raised);border:1px solid var(--line-soft)}.example{margin:18px 0;padding:14px 16px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background:var(--raised)}.example-title{margin:0 0 8px;font-weight:700}.example dl{display:grid;grid-template-columns:64px 1fr;gap:6px 12px;margin:0;font-size:13.5px}.example dt{color:var(--muted)}.example dd{margin:0;word-break:break-word}.st-sub{margin:26px 0 8px;font-size:15px}.constraints{padding-left:18px;font-size:13px}.hints details{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:8px}.hints summary{cursor:pointer;font-weight:600}.subs{list-style:none;padding:0;margin:0}.sub-row{width:100%;display:grid;grid-template-columns:1.4fr 1fr .7fr .8fr 1fr;gap:10px;align-items:center;padding:12px 6px;border:none;border-bottom:1px solid var(--line-soft);background:none;text-align:left;cursor:pointer;font-size:13px}.sub-row:hover{background:var(--raised)}.verdict-text{font-weight:700}.verdict-text.ok{color:var(--ok)}.verdict-text.bad{color:var(--bad)}.editor-pane{background:var(--surface)}.editor-bar{display:flex;align-items:center;gap:12px;height:44px;padding:0 10px;border-bottom:1px solid var(--line);background:var(--raised);flex:none}.editor-host{flex:1;min-height:0}.console-body{padding:14px 18px}.case-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.case-tab{display:inline-flex;align-items:center;border-radius:8px;background:transparent;border:1px solid var(--line)}.case-tab.on{background:var(--raised);border-color:var(--muted)}.case-tab button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:600}.case-tab .case-x{padding:0 8px 0 0;color:var(--muted)}.case-add{width:28px;height:28px;border-radius:8px;border:1px dashed var(--line);background:none;color:var(--muted);cursor:pointer}.case-dot{width:7px;height:7px;border-radius:50%}.case-dot.ok{background:var(--ok)}.case-dot.bad{background:var(--bad)}.vblock{display:block;margin-bottom:12px}.vlabel{display:block;margin:0 0 5px;font-size:12.5px;font-weight:600;color:var(--muted)}.vvalue,.vinput{display:block;width:100%;margin:0;padding:9px 12px;border-radius:9px;border:1px solid var(--line-soft);background:var(--raised);font-size:13px;white-space:pre-wrap;word-break:break-all}.vinput{resize:vertical;min-height:38px;field-sizing:content;outline:none}.vinput:focus{border-color:var(--accent)}.vvalue.ok{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.vvalue.bad{border-color:color-mix(in srgb,var(--bad) 45%,transparent);color:var(--bad)}.verdict{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin-bottom:14px}.verdict h2{margin:0;font:800 22px Bricolage Grotesque,sans-serif;letter-spacing:-.01em}.verdict.ok h2{color:var(--ok)}.verdict.bad h2{color:var(--bad)}.verdict span{font-size:12.5px}.error-box{margin:0;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--bad) 10%,transparent);color:var(--bad);font-size:12.5px;white-space:pre-wrap;word-break:break-word}.running{display:flex;align-items:center;gap:10px;color:var(--muted)}.console-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 10px;border-top:1px solid var(--line);background:var(--raised);flex:none}.kbd-hint{margin-right:auto}kbd{display:inline-block;min-width:18px;padding:1px 4px;margin:0 1px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;font-size:10.5px;text-align:center}.btn-sm{height:30px;padding:0 12px;font-size:13px}.ok-text{color:var(--ok)}.bad-text{color:var(--bad)}.topnav{display:flex;gap:4px}.topnav a{padding:6px 10px;border-radius:8px;font-size:14px;font-weight:500;color:var(--muted)}.topnav a:hover,.topnav a.active{color:var(--text);background:var(--raised)}.account{display:inline-flex;align-items:center;gap:8px}.avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 13px/1 Bricolage Grotesque,sans-serif}.account-name{font-size:14px;font-weight:600}.auth-page{flex:1;display:grid;place-items:center;padding:40px 16px 80px}.auth-card{width:100%;max-width:400px;padding:28px;display:flex;flex-direction:column;gap:16px}.auth-card h1{margin:0;font:800 28px/1.1 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.auth-sub{margin:-8px 0 4px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.field input{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--raised);font-size:15px;font-weight:400;outline:none}.field input:focus{border-color:var(--accent)}.field small{font-weight:400;font-size:12px}.auth-error{margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);font-size:13.5px}.auth-submit{justify-content:center;height:40px}.auth-switch{margin:0;text-align:center}.auth-switch a{color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.auth-google{justify-content:center;gap:10px;height:40px;width:100%}.auth-or,.auth-legal{margin:0;text-align:center}.auth-legal a{color:var(--text);text-decoration:underline;text-underline-offset:3px}.legal{max-width:760px;margin:0 auto;padding:48px 16px 80px;line-height:1.65}.legal h1{margin-bottom:4px}.legal h2{margin:28px 0 8px;font-size:18px}.legal ul{padding-left:20px}.legal li{margin:6px 0}.legal a{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:1200px;margin:0 auto;padding:24px 16px 40px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.site-footer nav{display:flex;gap:18px}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--text)}.home{width:100%;max-width:1080px;margin:0 auto;padding:72px 16px 96px;display:flex;flex-direction:column;gap:40px}.home-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center}.hero-note{margin:14px 0 0}.btn-lg{height:46px;padding:0 22px;font-size:15px}.hero-preview{padding:0;overflow:hidden}.hero-preview-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line)}.hero-dot{width:9px;height:9px;border-radius:50%;background:var(--line)}.hero-preview-title{margin-left:8px;font-size:12px;color:var(--muted)}.hero-preview-svg{display:block;width:100%;height:auto;padding:10px 8px 0}.hero-node{fill:var(--raised);stroke:var(--line);stroke-width:1.5}.hero-node-active{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.5}.hero-ink{fill:var(--muted)}.hero-node-active+.hero-ink{fill:var(--accent)}.hero-link{fill:none;stroke:var(--line);stroke-width:2}.hero-link-live{stroke:var(--accent);stroke-width:3;stroke-dasharray:80;stroke-dashoffset:80;animation:hero-trail 1.4s .4s ease-out forwards}.hero-packet{fill:var(--accent);animation:hero-packet 1.4s .4s ease-in-out both}@keyframes hero-trail{to{stroke-dashoffset:0}}@keyframes hero-packet{0%{transform:translate(-40px);opacity:0}20%{opacity:1}to{transform:translate(40px);opacity:0}}.hero-label{font:600 12px Inter,sans-serif;fill:var(--muted);text-anchor:middle}.hero-label-active{fill:var(--accent-text)}.hero-caption{margin:0;padding:10px 16px 14px;font-size:14px;line-height:1.5}.hero-progress{height:4px;background:var(--line-soft)}.hero-progress span{display:block;width:38%;height:100%;background:var(--accent)}.home-section{display:flex;flex-direction:column;gap:20px}.home-section-head h2{margin:6px 0 0;font:800 clamp(24px,3.4vw,34px) / 1.1 "Bricolage Grotesque",sans-serif;letter-spacing:-.02em}.home-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-tracks-skeleton{height:220px;border-radius:16px;background:linear-gradient(90deg,var(--surface),var(--raised),var(--surface))}.home-track{display:flex;flex-direction:column;gap:10px;padding:22px;transition:border-color .15s,transform .15s}.home-track:hover{border-color:var(--accent);transform:translateY(-2px)}.home-track h3{margin:0;font:800 22px/1.15 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.home-track p{margin:0;flex:1;font-size:14.5px;line-height:1.55}.home-track-tag{align-self:flex-start;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:11.5px}.home-track-stat{font-size:12.5px;color:var(--muted)}.home-track-go{font-weight:700;font-size:14px}.welcome-pick{margin-top:14px}@media(max-width:900px){.home{padding-top:36px;gap:48px}.home-hero{grid-template-columns:1fr;gap:28px}.home-tracks{grid-template-columns:1fr}}@media(max-width:480px){.home-hero .hero-actions .btn{flex:1 1 100%;justify-content:center}.welcome-card,.cta-card{padding:20px}.cta-card .hero-actions,.cta-card .hero-actions .btn{width:100%;justify-content:center}.home-plans-head{flex-wrap:wrap}}.home-hero h1{margin:0;font:800 clamp(38px,6.4vw,72px) / 1 "Bricolage Grotesque",sans-serif;letter-spacing:-.04em}.home-hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--accent-soft) 62%);box-shadow:inset 0 -.12em 0 var(--accent)}.home-hero .lede{max-width:620px;margin:22px 0 28px}.welcome-card,.cta-card{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;padding:24px 28px}.welcome-card h2,.cta-card h2{margin:0 0 6px;font:800 26px/1.1 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.welcome-card p,.cta-card p{margin:0}.recent{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-width:min(100%,320px);font-size:14px}.recent li{display:flex;justify-content:space-between;gap:16px}.recent a:hover{text-decoration:underline}.lang-strip{display:flex;flex-wrap:wrap;gap:8px}.lang-chip{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.step{padding:22px 24px}.step-n{color:var(--accent);font-size:13px;font-weight:600}.step h3{margin:10px 0 6px;font:700 19px/1.2 Bricolage Grotesque,sans-serif}.step p{margin:0;font-size:14.5px}:root[data-theme=light] .step-n{color:var(--text)}.plans-page{width:100%;max-width:1080px;margin:0 auto;padding:48px 16px 96px}.plans-hero h1{margin:0;font:800 clamp(34px,5.4vw,60px) / 1.02 "Bricolage Grotesque",sans-serif;letter-spacing:-.035em}.plans-hero h1 em,.lesson-title em{font-style:normal;background:linear-gradient(transparent 62%,var(--accent-soft) 62%);box-shadow:inset 0 -.12em 0 var(--accent)}.path{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 28px}.path-step{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px;font-weight:600;position:relative}.path-step:hover{border-color:var(--muted)}.path-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--raised);font:700 12px JetBrains Mono,monospace}.path-step.done .path-num{background:var(--accent);color:var(--accent-ink)}.path-meta{font-size:12px;color:var(--muted)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.plan-card{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);transition:transform .12s,border-color .15s}.plan-card:hover{transform:translateY(-2px);border-color:var(--muted)}.plan-art{flex:none;border-radius:22%;display:block}.plan-card-text{display:grid;gap:4px;min-width:0}.plan-card-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px}.plan-card-tag{color:var(--muted);font-size:13.5px}.plan-lock{color:var(--t-amber);display:inline-flex}.plan-done{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--accent);color:var(--accent-ink)}.plan-card-bar{display:block;height:5px;border-radius:3px;background:var(--raised);overflow:hidden;margin-top:4px}.plan-card-bar i{display:block;height:100%;background:var(--accent)}.home-track-head{margin-top:40px}.track-switch{margin:0 0 14px}.track-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;margin-bottom:36px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.track-tabs a{display:grid;gap:2px;padding:9px 16px;border-radius:12px;color:var(--muted);transition:background .15s,color .15s}.track-tabs a b{font-size:15px}.track-tabs a span{font-size:11.5px}.track-tabs a:hover{color:var(--text)}.track-tabs a.on{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.track-tabs a.on span{color:var(--accent-text)}.sd-page{max-width:1180px}.sd-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:end}.sd-hero h1{margin:0;font:800 clamp(34px,5.4vw,60px) / 1.02 "Bricolage Grotesque",sans-serif;letter-spacing:-.035em}.sd-hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--accent-soft) 62%);box-shadow:inset 0 -.12em 0 var(--accent)}.sd-progress{display:grid;gap:12px;padding:18px}.sd-progress-top{display:flex;align-items:center;gap:14px}.sd-progress p{margin:0}.sd-continue{justify-content:center}.sd-steps{list-style:none;margin:36px 0 12px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sd-steps li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px dashed var(--line);border-radius:14px}.sd-steps li>span:last-child{display:grid;gap:3px}.sd-step-num{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700}.sd-part{margin-top:44px}.sd-part-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.sd-part-head>div{flex:1}.sd-part-head h2{margin:0;font:750 26px/1.15 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.sd-part-head p{margin:4px 0 0}.sd-part-num{font-size:13px;font-weight:700;color:var(--accent-text);padding-top:8px}.sd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.sd-card{display:grid;grid-template-rows:1fr auto;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;transition:transform .12s,border-color .15s}.sd-card:hover{transform:translateY(-2px);border-color:var(--muted)}.sd-card.learned{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.sd-card-main{display:grid;align-content:start;gap:6px;padding:16px 16px 14px}.sd-card-top{display:flex;align-items:center;gap:10px}.sd-card-num{font-size:12px;font-weight:700;color:var(--accent-text)}.sd-card-title{font-weight:750;font-size:18px;line-height:1.25}.sd-card-play{margin-top:6px;font-size:13px;font-weight:700;color:var(--accent-text)}.sd-card-problems{list-style:none;margin:0;padding:6px 8px 8px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--raised) 55%,var(--surface))}.sd-card-problems a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;font-size:13.5px}.sd-card-problems a:hover{background:var(--raised)}.sd-problem-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-foot{display:flex;align-items:center;gap:14px;margin-top:48px;padding:16px;border:1px solid var(--line);border-radius:16px}.sd-foot p{margin:0}@media(max-width:860px){.sd-hero{grid-template-columns:1fr;gap:20px}.sd-steps,.sd-grid{grid-template-columns:1fr}}.plan-page{width:100%;max-width:1180px;margin:0 auto;padding:24px 16px 96px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start}.back-link{display:inline-block;color:var(--muted);font-weight:600;font-size:14px;margin-bottom:18px}.back-link:hover{color:var(--text)}.plan-hero{display:flex;gap:28px;align-items:center;margin-bottom:22px}.plan-hero h1{margin:4px 0 8px;font:800 clamp(30px,4.4vw,46px) / 1.05 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em}.plan-kicker,.lesson-kicker{margin:0;font:600 12px/1.4 JetBrains Mono,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.plan-desc{margin:0 0 16px;max-width:560px}.plan-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.plan-lock-note{display:block;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--t-amber) 45%,var(--line));background:color-mix(in srgb,var(--t-amber) 8%,var(--surface));font-size:14px}.plan-lock-note svg{color:var(--t-amber);vertical-align:-2px;margin-right:6px}.plan-lock-note a{font-weight:700;text-decoration:underline}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.check{display:inline-flex;gap:8px;align-items:center;font-size:13.5px;color:var(--muted);cursor:pointer}.plan-section{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;margin-bottom:16px}.plan-section-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--raised);border-bottom:1px solid var(--line)}.plan-section-head h2{flex:1;margin:0;font-size:15px;font-weight:700}.plan-section-num{color:var(--accent-text);font-weight:700;font-size:13px}.plan-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line-soft);font-size:14.5px}.plan-section-head+.plan-row{border-top:none}.plan-row:hover{background:var(--raised)}.plan-row-title{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.plan-row-tags{display:inline-flex;flex-wrap:wrap;gap:6px}.lesson-row{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.lesson-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-ink);flex:none}.lesson-summary{flex-basis:100%}.lesson-state{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.lesson-state.on{border-color:var(--t-green);color:var(--t-green)}.plan-side{position:sticky;top:72px;display:grid;gap:22px}.side-card{padding:16px}.progress-side{display:flex;align-items:center;gap:14px}.progress-side p{margin:0}.ring-accent{stroke:var(--accent);stroke-linecap:round}.side-big{font:800 30px/1 Bricolage Grotesque,sans-serif}.side-block h3{margin:0 0 10px;font-size:15px}.side-list{margin:0;padding-left:18px;color:var(--muted);font-size:14px;display:grid;gap:4px}.award{display:flex;gap:12px;align-items:center}.award .plan-art{filter:grayscale(1);opacity:.55}.award.earned .plan-art{filter:none;opacity:1}.award p{margin:0}.award-title{font-weight:700}.related{display:flex;align-items:center;gap:12px;padding:6px 0}.related>span{display:grid}.related:hover b{text-decoration:underline}.side-tip{margin:0}.lesson-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 270px;gap:32px;width:100%;max-width:1480px;margin:0 auto;padding:28px 16px 96px;align-items:start}.rail-label{margin:0 0 8px;font:700 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.lesson-videos{position:sticky;top:72px;max-height:calc(100vh - 90px);overflow:auto}.lesson-videos .lp-playlist{margin:0}.lesson-videos-inline{display:none}.lesson-part{scroll-margin-top:80px;margin-top:28px}.lesson-part-title{display:flex;align-items:center;gap:12px;margin:0 0 4px;font:800 22px/1.25 Bricolage Grotesque,sans-serif}.lesson-part-n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#111;font-size:14px}.lesson-part-min{margin-left:auto;font-family:inherit;font-weight:500}@media(max-width:1200px){.lesson-layout{grid-template-columns:240px minmax(0,1fr)}.lesson-videos{display:none}.lesson-videos-inline{display:block;margin-bottom:18px}}.lesson-rail{position:sticky;top:72px;max-height:calc(100vh - 90px);overflow:auto}.rail-plan{display:flex;gap:10px;align-items:center;margin-bottom:14px}.rail-plan>span{display:grid}.rail-sections{list-style:none;margin:0;padding:0;display:grid;gap:2px}.rail-sections a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:14px}.rail-sections a:hover{background:var(--raised)}.rail-sections li.on a{background:color-mix(in srgb,var(--accent) 12%,transparent);font-weight:700}.rail-dot{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);font:600 11px JetBrains Mono,monospace;flex:none}.rail-dot.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.rail-title{flex:1}.lesson{max-width:820px;min-width:0}.lesson-title{margin:8px 0 10px;font:800 clamp(30px,4.6vw,48px) / 1.04 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em}.lesson-summary-lede{margin:0;font-size:18px;color:var(--muted)}.lesson-meta{margin:10px 0 28px}.lesson-written{margin:18px 0 8px;font-size:16px;line-height:1.7}.lesson-written-title{margin:0 0 8px;font:800 19px/1.3 Bricolage Grotesque,sans-serif}.lesson-written h3{margin:18px 0 6px;font:700 16px/1.3 Bricolage Grotesque,sans-serif}.lesson-written p{margin:0 0 12px}.lesson-written ul,.lesson-written ol{margin:0 0 12px;padding-left:22px;display:grid;gap:6px}.lesson-text{font-size:16.5px;line-height:1.7}.lesson-text p,.callout p{margin:0 0 14px}.lesson-text ul,.callout ul{margin:0 0 14px;padding-left:20px;display:grid;gap:6px}.lesson code,.stepper-caption code{font-size:.88em;padding:1px 6px;border-radius:6px;background:var(--raised);border:1px solid var(--line-soft)}.lesson-h2{margin:36px 0 12px;font:800 26px/1.15 Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.callout{margin:22px 0;padding:16px 18px 4px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--t-blue);background:color-mix(in srgb,var(--t-blue) 6%,var(--surface));font-size:15.5px}.callout-tip{border-left-color:var(--t-green);background:color-mix(in srgb,var(--t-green) 6%,var(--surface))}.callout-warning{border-left-color:var(--t-coral);background:color-mix(in srgb,var(--t-coral) 6%,var(--surface))}.callout-title{font-weight:800;margin-bottom:6px!important}.signals,.pitfalls{margin:22px 0;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.signals-title,.pitfalls-title{margin:0 0 8px;font-weight:800}.signals ul,.pitfalls ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.signals li,.pitfalls li{position:relative;padding-left:26px}.signals li:before{content:"✓";position:absolute;left:0;color:var(--t-green);font-weight:800}.pitfalls li:before{content:"!";position:absolute;left:4px;color:var(--t-coral);font-weight:900}.complexity{margin:22px 0;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.complexity>div{display:grid}.complexity b{font-size:22px;color:var(--accent-text)}.complexity p{margin:0;flex:1;min-width:200px}.stepper{margin:26px 0;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.stepper:focus-visible{outline-offset:3px}.stepper-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}.stepper-kicker{font:700 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text)}.stepper-title{flex:1;font-weight:700}.stepper-body{display:grid;gap:16px;padding:18px 16px 4px}.stepper-body.with-code{grid-template-columns:minmax(0,1fr) minmax(0,360px)}.stepper-stage{display:grid;gap:14px;align-content:start;min-height:150px}.viz-fig{margin:0;display:grid;justify-items:center;gap:4px}.viz-fig:has(>.viz-arch),.viz-fig:has(>.viz-ring){width:100%}.viz-label{font-size:12px;font-weight:700;color:var(--muted)}.stepper-visuals{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;justify-content:center}.viz{width:100%;height:auto;overflow:visible;font-family:JetBrains Mono,monospace}.viz-cell rect,.viz-node circle{fill:var(--raised);stroke:var(--line);stroke-width:1.5;transition:fill .45s ease,stroke .45s ease,stroke-width .3s ease}.viz-cell,.viz-node,.viz-link,.viz-range{transition:opacity .45s ease}.viz-link path{fill:none;stroke:var(--line);stroke-width:2}.viz-link line{transition:stroke .45s ease,stroke-width .3s ease}.viz-move{transition:transform .55s cubic-bezier(.22,.8,.24,1),x .55s cubic-bezier(.22,.8,.24,1),width .55s cubic-bezier(.22,.8,.24,1),opacity .3s ease}.viz-pointer path{transition:opacity .3s ease}.viz-val{transform-box:fill-box;transform-origin:center;animation:viz-pop .42s cubic-bezier(.2,.9,.3,1.3)}@keyframes viz-pop{0%{opacity:0;transform:scale(.55)}}.viz-cell text,.viz-node text{fill:var(--text);font-weight:600}.viz-index{fill:var(--muted);font-size:11px}.viz-edge,.viz-link line{stroke:var(--line);stroke-width:2}.viz-arrowhead{fill:var(--muted)}.viz-edge-label,.viz-note{fill:var(--muted);font-size:11px;font-weight:600}.viz-note{fill:var(--t-blue)}.viz-range rect{fill:color-mix(in srgb,var(--t-teal) 10%,transparent);stroke:var(--t-teal);stroke-width:2;stroke-dasharray:5 4}.viz-range-label{fill:var(--t-teal);font-size:11px;font-weight:700}.viz-pointer path{fill:none;stroke:var(--t-amber);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.viz-pointer text{fill:var(--t-amber);font-size:12px;font-weight:700}.tone-active rect,.tone-active circle{fill:color-mix(in srgb,var(--t-amber) 18%,var(--surface));stroke:var(--t-amber);stroke-width:2.5}.tone-visited rect,.tone-visited circle{fill:color-mix(in srgb,var(--t-blue) 14%,var(--surface));stroke:var(--t-blue)}.tone-done rect,.tone-done circle{fill:color-mix(in srgb,var(--accent) 22%,var(--surface));stroke:var(--accent-text)}.tone-found rect,.tone-found circle{fill:color-mix(in srgb,var(--t-green) 22%,var(--surface));stroke:var(--t-green);stroke-width:3}.tone-discard{opacity:.35}.tone-range rect,.tone-range circle{fill:color-mix(in srgb,var(--t-teal) 16%,var(--surface));stroke:color-mix(in srgb,var(--t-teal) 60%,var(--line));stroke-dasharray:5 3}.tone-muted text{fill:var(--muted)}.viz-link.tone-active line,.viz-link.tone-active path{stroke:var(--t-amber);stroke-width:3}.viz-link.tone-visited line,.viz-link.tone-visited path{stroke:var(--t-blue);stroke-width:2.5}.viz-link.tone-found line,.viz-link.tone-found path,.viz-link.tone-done line,.viz-link.tone-done path{stroke:var(--t-green);stroke-width:3.5}.viz-link.tone-discard line,.viz-link.tone-discard path{stroke-dasharray:4 4}.viz-link.tone-muted line,.viz-link.tone-muted path{opacity:.35}.viz-pointer.tone-found path{stroke:var(--t-green)}.viz-pointer.tone-found text{fill:var(--t-green)}.viz-pointer.tone-visited path,.viz-pointer.tone-muted path{stroke:var(--t-blue)}.viz-pointer.tone-visited text,.viz-pointer.tone-muted text{fill:var(--t-blue)}.viz-arch{overflow:hidden;border-radius:12px}.viz-camera{transform-origin:0 0;transition:transform .9s cubic-bezier(.45,.05,.25,1)}.viz-arch-label{fill:var(--text);font-family:Instrument Sans,ui-sans-serif,system-ui,sans-serif;font-weight:650;transition:fill .45s ease}.viz-arch-ring{fill:transparent;stroke:transparent;stroke-width:2.5;transition:fill .45s ease,stroke .45s ease}.viz-arch-copy{opacity:.45}.viz-arch-node.arch-active .viz-arch-ring{fill:color-mix(in srgb,var(--t-amber) 16%,transparent);stroke:var(--t-amber);animation:arch-pulse 1.6s ease-in-out 1}.viz-arch-node.arch-visited .viz-arch-ring{fill:color-mix(in srgb,var(--t-blue) 13%,transparent);stroke:var(--t-blue)}.viz-arch-node.arch-found .viz-arch-ring,.viz-arch-node.arch-done .viz-arch-ring{fill:color-mix(in srgb,var(--t-green) 16%,transparent);stroke:var(--t-green);stroke-width:3}.viz-arch-node.arch-range .viz-arch-ring{fill:color-mix(in srgb,var(--t-teal) 12%,transparent);stroke:var(--t-teal);stroke-dasharray:6 4}.viz-arch-node.arch-active .viz-arch-label{fill:var(--t-amber)}.viz-arch-node.arch-visited .viz-arch-label{fill:var(--t-blue)}.viz-arch-node.arch-found .viz-arch-label,.viz-arch-node.arch-done .viz-arch-label{fill:var(--t-green)}.viz-arch-node.arch-muted .viz-arch-label{fill:var(--muted)}.viz-arch-node.arch-discard{opacity:.35;filter:grayscale(1)}@keyframes arch-pulse{50%{stroke-width:4.5;fill:color-mix(in srgb,var(--t-amber) 26%,transparent)}}.lp-still .viz,.lp-still .viz *{animation-play-state:paused!important}.viz-arch-node.arch-said .viz-arch-ring{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:var(--accent);stroke-width:2.5;animation:arch-spot 1.8s ease-in-out 1}.viz-arch-node.arch-said .viz-arch-label{fill:var(--accent-text)}@keyframes arch-spot{50%{stroke-width:4;fill:color-mix(in srgb,var(--accent) 18%,transparent)}}@keyframes link-flow{to{stroke-dashoffset:-24}}.viz-flow-trail{fill:none;stroke:var(--t-amber);stroke-width:3.5;stroke-linecap:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--t-amber) 70%,transparent))}.viz-flow-trail.tone-visited{stroke:var(--t-blue);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--t-blue) 70%,transparent))}.viz-flow-trail.tone-found,.viz-flow-trail.tone-done{stroke:var(--t-green);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--t-green) 70%,transparent))}.viz-flow-trail.tone-discard{stroke:var(--muted);stroke-dasharray:4 4;filter:none}.viz-flow-ripple{fill:none;stroke:var(--t-amber);stroke-width:2.5}.viz-flow-ripple.tone-visited{stroke:var(--t-blue)}.viz-flow-ripple.tone-found,.viz-flow-ripple.tone-done{stroke:var(--t-green)}.viz-flow-ripple.tone-discard{stroke:var(--muted)}.ic-spin,.ic-spin-slow,.ic-slide,.ic-bob,.ic-flash,.ic-led,.ic-glint,.ic-dash{transform-box:fill-box;transform-origin:center}.arch-active .ic-spin{animation:ic-spin 3.2s linear 1}.arch-active .ic-spin-slow{transform-origin:0% 66.67%;animation:ic-spin 2.4s steps(12) 1}.arch-active .ic-led{animation:ic-led .9s steps(2) 2}.arch-active .ic-slide{animation:ic-slide 1.1s ease-in-out 1}.arch-active .ic-bob{animation:ic-bob 1.4s ease-in-out 1}.arch-active .ic-flash{animation:ic-flash 1.2s ease-in-out 1}.arch-active .ic-glint{animation:ic-glint 1.3s ease-in-out 1}.arch-active .ic-dash{stroke-dasharray:6 4;animation:link-flow .9s linear 1}@keyframes ic-spin{to{transform:rotate(360deg)}}@keyframes ic-led{50%{opacity:.25}}@keyframes ic-slide{50%{transform:translate(4px)}}@keyframes ic-bob{50%{transform:translate(3px,-3px) scale(1.06)}}@keyframes ic-flash{50%{opacity:.45;transform:scale(1.12)}}@keyframes ic-glint{50%{opacity:1}}.viz-arch-count rect{fill:var(--surface);stroke:var(--line);stroke-width:1.5}.viz-arch-count text{fill:var(--text);font-size:11px;font-weight:700}.viz-arch-in{transform-box:fill-box;transform-origin:center;animation:viz-pop .5s cubic-bezier(.2,.9,.3,1.2)}.viz-arch-link path{fill:none;stroke:var(--line);stroke-width:2;transition:d .55s cubic-bezier(.22,.8,.24,1),stroke .45s ease,stroke-width .3s ease}.viz-arch-link.dashed path{stroke-dasharray:6 5}.viz-zone rect{fill:color-mix(in srgb,var(--muted) 5%,transparent);stroke:var(--line);stroke-width:1.5;stroke-dasharray:6 5}.viz-zone-label{fill:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.viz-zone.tone-active rect{stroke:var(--t-amber)}.viz-zone.tone-visited rect{stroke:var(--t-blue)}.viz-zone.tone-found rect,.viz-zone.tone-done rect{stroke:var(--t-green)}.viz-flow circle{fill:var(--t-amber);stroke:var(--surface);stroke-width:2.5;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--t-amber) 60%,transparent))}.viz-flow rect{fill:var(--surface);stroke:var(--t-amber);stroke-width:1.5}.viz-flow text{fill:var(--t-amber);font-size:11.5px;font-weight:700}.viz-flow.tone-visited circle{fill:var(--t-blue);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--t-blue) 60%,transparent))}.viz-flow.tone-visited rect{stroke:var(--t-blue)}.viz-flow.tone-visited text{fill:var(--t-blue)}.viz-flow.tone-found circle,.viz-flow.tone-done circle{fill:var(--t-green);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--t-green) 60%,transparent))}.viz-flow.tone-found rect,.viz-flow.tone-done rect{stroke:var(--t-green)}.viz-flow.tone-found text,.viz-flow.tone-done text{fill:var(--t-green)}.viz-flow.tone-discard circle{fill:var(--muted);filter:none}.viz-flow.tone-discard rect{stroke:var(--muted)}.viz-flow.tone-discard text{fill:var(--muted)}.viz-ring-track{fill:none;stroke:var(--line);stroke-width:3}.viz-ring-arc{fill:none;stroke:var(--t-teal);stroke-width:12;stroke-linecap:round;opacity:.4;transition:opacity .45s ease}.viz-ring-arc.tone-active{stroke:var(--t-amber)}.viz-ring-arc.tone-visited{stroke:var(--t-blue)}.viz-ring-arc.tone-found,.viz-ring-arc.tone-done{stroke:var(--t-green)}.viz-ring-point rect,.viz-ring-point circle{fill:var(--raised);stroke:var(--muted);stroke-width:2;transition:fill .45s ease,stroke .45s ease}.viz-ring-tick{stroke:var(--muted);stroke-width:1.5}.viz-ring-point.key circle{fill:var(--surface)}.viz-ring-point.tone-active rect,.viz-ring-point.tone-active circle{fill:color-mix(in srgb,var(--t-amber) 18%,var(--surface));stroke:var(--t-amber)}.viz-ring-point.tone-visited rect,.viz-ring-point.tone-visited circle{fill:color-mix(in srgb,var(--t-blue) 14%,var(--surface));stroke:var(--t-blue)}.viz-ring-point.tone-found rect,.viz-ring-point.tone-found circle,.viz-ring-point.tone-done rect,.viz-ring-point.tone-done circle{fill:color-mix(in srgb,var(--t-green) 22%,var(--surface));stroke:var(--t-green)}.viz-ring-point text{fill:var(--text);font-size:12px;font-weight:700}.viz-ring-point.key text{font-size:11px;font-weight:600;fill:var(--muted)}.viz-ring-point.tone-active text{fill:var(--t-amber)}.viz-ring-point.tone-found text,.viz-ring-point.tone-done text{fill:var(--t-green)}.viz-ring-point.tone-visited text{fill:var(--t-blue)}.viz-ring-point.tone-discard{opacity:.35}.stepper-vars{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}@keyframes caption-in{0%{opacity:0;transform:translateY(5px)}}.var-flash{display:inline-block;animation:var-flash .7s ease}@keyframes var-flash{0%{color:var(--accent-text);transform:scale(1.25)}}@media(prefers-reduced-motion:reduce){.viz-move,.viz-cell,.viz-node,.viz-link,.viz-range,.viz-cell rect,.viz-node circle,.viz-link line,.viz-arch-link path,.viz-camera,.stepper-code-bar{transition:none}.viz-val,.viz-arch-in,.viz-arch-node .viz-arch-ring,.viz-arch.idle .viz-arch-link path,[class^=ic-],.stepper-caption,.var-flash{animation:none}}.var-chip{font:500 13px JetBrains Mono,monospace;padding:3px 10px;border-radius:8px;background:var(--raised);border:1px solid var(--line-soft)}.stepper-code{position:relative;list-style:none;margin:0;padding:10px 0;border-radius:12px;background:var(--raised);border:1px solid var(--line-soft);font-size:12px;align-self:start;overflow-x:auto}.stepper-code li{position:relative;display:flex;gap:10px;height:22px;line-height:22px;padding:0 12px;white-space:pre;color:var(--muted);transition:color .35s ease}.stepper-code li.on{color:var(--text)}.stepper-code-bar{position:absolute;left:0;right:0;top:10px;height:22px;background:color-mix(in srgb,var(--accent) 18%,transparent);box-shadow:inset 3px 0 0 var(--accent);transition:transform .4s cubic-bezier(.22,.8,.24,1)}.stepper-code .ln{color:var(--muted);opacity:.6;-webkit-user-select:none;user-select:none;min-width:14px;text-align:right}.stepper-caption{animation:caption-in .4s ease;margin:0;padding:12px 18px;min-height:3.6em;font-size:15.5px;border-top:1px dashed var(--line)}.stepper-controls{display:flex;align-items:center;gap:8px;padding:10px 16px 14px}.stepper-play{min-width:82px;justify-content:center}.stepper-sound.on{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent-text) 50%,var(--line))}.stepper-scrub{flex:1;accent-color:var(--accent);min-width:80px}.quiz{margin:22px 0;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}.quiz-kicker{margin:0;font:700 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text)}.quiz-q{margin:6px 0 12px;font-weight:700;font-size:16.5px}.quiz-choices{display:grid;gap:8px}.quiz-choice{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--raised);cursor:pointer;font-size:15px}.quiz-choice:hover:not(:disabled){border-color:var(--accent-text)}.quiz-choice:disabled{cursor:default}.quiz-letter{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--surface);border:1px solid var(--line);font:700 12px JetBrains Mono,monospace;flex:none}.quiz-choice.right{border-color:var(--t-green);background:color-mix(in srgb,var(--t-green) 12%,var(--raised))}.quiz-choice.wrong{border-color:var(--t-coral);background:color-mix(in srgb,var(--t-coral) 10%,var(--raised))}.quiz-why{margin:12px 0 0;font-size:15px}.quiz.is-right .quiz-why b{color:var(--t-green)}.quiz.is-wrong .quiz-why b{color:var(--t-coral)}.link-btn{border:none;background:none;padding:0;font-weight:700;text-decoration:underline;cursor:pointer}.code-tabs{margin:22px 0;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}.code-tabs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px 8px 16px;border-bottom:1px solid var(--line)}.code-tabs-title{flex:1;font-weight:700}.code-tabs-body{margin:0;padding:16px 18px;overflow-x:auto;font-size:13.5px;line-height:1.6;background:var(--raised)}.code-tabs-body code{padding:0;border:0;background:none;font-size:inherit}.code-tabs-note{margin:0;padding:10px 16px;border-top:1px solid var(--line-soft)}.practice{margin:40px 0 0;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}.practice-head{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:18px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-bottom:1px solid var(--line)}.practice-head h2{margin:4px 0;font:800 24px Bricolage Grotesque,sans-serif}.practice-head p{margin:0}.practice-actions{display:flex;gap:8px;align-items:center}.lesson-pager{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.pager-link{display:grid;gap:2px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;min-width:200px}.pager-link.right{text-align:right}.pager-link:hover{border-color:var(--muted)}.theory-link{display:flex;flex-direction:column;gap:2px;margin:0 0 16px;padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface));font-size:14px}.theory-link:hover{border-color:var(--accent-text)}.theory-link-kicker{font:600 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-text)}.company-title{margin:4px 0 6px;font:800 clamp(30px,4.4vw,46px) / 1.05 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em}.company-row{grid-template-columns:26px 46px minmax(0,1fr) 90px}.empty-card{margin-top:22px;padding:24px;display:grid;gap:10px;justify-items:start}.empty-card h2,.empty-card p{margin:0}.company-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:22px}.company-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.company-card>span:last-child{display:grid}.company-card:hover{border-color:var(--muted)}.company-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--raised);border:1px solid var(--line);font:800 18px Bricolage Grotesque,sans-serif}.company-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px}.company-chip,.company-tag{font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--t-blue) 45%,var(--line));color:var(--t-blue);background:color-mix(in srgb,var(--t-blue) 8%,var(--surface))}.company-chip:hover{text-decoration:underline}.home-plans h2{margin:0 0 4px;font:800 28px Bricolage Grotesque,sans-serif;letter-spacing:-.02em}.home-plans-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px}.home-plans-head p{margin:0}.explain{display:grid;gap:4px}.explain-title{margin:2px 0 10px;font:800 22px/1.2 Bricolage Grotesque,sans-serif}.explain-parts{flex-wrap:wrap;justify-self:start;max-width:100%}.explain-length{margin:6px 0 0}.explain-empty{padding:24px 0}.explain .lp-stage{min-height:240px}.explain .lp-frame.with-code{grid-template-columns:1fr}.lp-playlist{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:4px}.lp-playlist a,.lp-playlist button{width:100%;display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease}.lp-playlist a:hover,.lp-playlist button:hover{border-color:color-mix(in srgb,var(--accent-text) 50%,var(--line))}.lp-playlist a.on,.lp-playlist button.on{border-color:var(--accent-text);background:color-mix(in srgb,var(--accent-text) 8%,var(--surface));font-weight:700}.lp-playlist-n{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--raised);font-size:12px}.lp-playlist a.on .lp-playlist-n,.lp-playlist button.on .lp-playlist-n{background:var(--accent-text);color:var(--surface)}.lp-key-idea{margin:10px 0 4px;padding:10px 14px;border-left:3px solid var(--t-blue);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--t-blue) 8%,var(--surface));line-height:1.55}.lp-key-idea-label{display:block;margin-bottom:2px;font:700 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--t-blue)}.lp{margin:8px 0 26px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.lp:focus-visible{outline-offset:3px}.lp-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.lp-chapter{font-weight:700}.lp-stage{position:relative;min-height:300px;display:grid;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--muted) 18%,transparent) 1px,transparent 0) 0 0 / 22px 22px,var(--surface)}.lp-stage-inner{display:grid;padding:22px 18px;animation:lp-in .45s ease}@keyframes lp-in{0%{opacity:0;transform:translateY(8px)}}.lp-frame{display:grid;gap:16px;align-items:start}.lp-frame.with-code{grid-template-columns:minmax(0,1fr) minmax(0,340px)}.lp-frame-main{display:grid;gap:14px}.lp-slide{display:grid;place-content:center;justify-items:center;text-align:center;gap:18px;min-height:256px}.lp-slide-kicker{margin:0;font:700 12px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-text)}.lp-terms{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:640px}.lp-term{font:800 clamp(20px,3.2vw,32px) / 1.15 "Bricolage Grotesque",sans-serif;padding:10px 18px;border-radius:14px;background:var(--raised);border:1px solid var(--line);animation:lp-term .5s cubic-bezier(.2,.9,.3,1.2) both}.lp-terms-small{justify-content:flex-start;gap:8px}.lp-terms-small .lp-term{font-size:15px;padding:6px 12px;border-radius:10px}@keyframes lp-term{0%{opacity:0;transform:translateY(10px) scale(.92)}}.lp-tone-insight .lp-term{border-color:color-mix(in srgb,var(--t-blue) 50%,var(--line));color:var(--t-blue)}.lp-tone-tip .lp-term{border-color:color-mix(in srgb,var(--t-green) 50%,var(--line));color:var(--t-green)}.lp-tone-warning .lp-term{border-color:color-mix(in srgb,var(--t-coral) 50%,var(--line));color:var(--t-coral)}.lp-list ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;text-align:left;max-width:620px}.lp-list li{padding:10px 14px 10px 40px;border-radius:12px;background:var(--raised);border:1px solid var(--line-soft);position:relative;opacity:.55;transition:opacity .4s ease;animation:lp-in .4s ease}.lp-list li.now{opacity:1;border-color:var(--line)}.lp-list li:before{position:absolute;left:14px;font-weight:900}.lp-list-signals li:before{content:"✓";color:var(--t-green)}.lp-list-pitfalls li:before{content:"!";color:var(--t-coral);left:18px}.lp-cost-row{display:flex;gap:40px}.lp-cost-row>div{display:grid;gap:4px}.lp-cost-row b{font-size:clamp(28px,4.4vw,44px);color:var(--accent-text)}.lp-quiz{justify-items:stretch;text-align:left;max-width:640px;margin:0 auto;width:100%}.lp-quiz .lp-slide-kicker{text-align:center}.lp-quiz-q{margin:0;font:700 19px/1.35 Bricolage Grotesque,sans-serif;text-align:center}.lp-voice{display:inline-flex;align-items:center;gap:3px;height:22px}.lp-voice i{width:4px;height:6px;border-radius:2px;background:var(--accent-text);opacity:.35}.lp-voice.on i{opacity:1;animation:lp-voice .9s ease-in-out infinite}@keyframes lp-voice{0%,to{height:6px}50%{height:20px}}.lp-slide .lp-voice{height:48px;gap:6px}.lp-slide .lp-voice i{width:8px}.lp-slide .lp-voice.on i{animation-name:lp-voice-big}@keyframes lp-voice-big{0%,to{height:10px}50%{height:46px}}.lp-poster{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:14px;border:0;cursor:pointer;background:color-mix(in srgb,var(--surface) 72%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.lp-poster b{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:28px;padding-left:5px;box-shadow:0 10px 40px #0000004d;transition:transform .15s}.lp-poster:hover b{transform:scale(1.06)}.lp-poster span{padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font:600 13px JetBrains Mono,monospace}.lp-caption{margin:0;padding:12px 18px;min-height:3.4em;border-top:1px dashed var(--line);font-size:16px;animation:caption-in .4s ease}.lp-caption code{font-size:.88em;padding:1px 6px;border-radius:6px;background:var(--raised);border:1px solid var(--line-soft)}.lp-chapters{display:flex;gap:3px;padding:0 16px}.lp-seg{position:relative;display:block;height:8px;transition:height .15s ease;padding:0;border:0;border-radius:4px;background:var(--raised);cursor:pointer;overflow:hidden}.lp-seg i{position:absolute;inset:0 auto 0 0;background:var(--accent);transition:width .35s ease}.lp-seg.on{outline:1px solid var(--line)}.lp-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px 14px}.lp-icon{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text);cursor:pointer;transition:background .15s ease}.lp-icon:hover:not(:disabled){background:var(--raised)}.lp-icon:disabled{opacity:.35;cursor:default}.lp-play{width:44px;height:44px;background:var(--accent);color:#111}.lp-play:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 85%,#fff)}.lp-stage,.lp-stage .quiz-choice{cursor:pointer}.lp-flash{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:#0000008c;color:#fff;pointer-events:none;animation:lp-flash .6s ease forwards}.lp-flash svg{width:34px;height:34px}@keyframes lp-flash{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}.lp-chapters{cursor:pointer;padding-top:6px;padding-bottom:6px}.lp-chapters:hover .lp-seg{height:10px}.lp.lp-full{display:flex;flex-direction:column;border-radius:0;background:var(--surface)}.lp.lp-full .lp-stage{flex:1;align-content:center}.lp.lp-full .lp-stage-inner{zoom:1.6}.lp.lp-full .lp-caption{font-size:22px}.lp-on{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent-text) 50%,var(--line))}.lesson-notes{margin:26px 0 0;border:1px solid var(--line);border-radius:16px;padding:0 18px;background:var(--surface)}.lesson-notes>summary{cursor:pointer;padding:14px 0;font-weight:700;color:var(--muted)}.lesson-notes[open]>summary{border-bottom:1px solid var(--line);margin-bottom:8px}@media(prefers-reduced-motion:reduce){.lp-stage-inner,.lp-term,.lp-list li,.lp-caption,.lp-voice.on i{animation:none}}@media(max-width:760px){.hero{grid-template-columns:1fr}.progress-card{justify-content:center}.hide-sm{display:none!important}.ptable-head,.ptable-row{grid-template-columns:22px 38px minmax(0,1fr) 74px;gap:10px;padding:0 12px}.kbd-hint{display:none}.steps,.plan-page,.lesson-layout,.stepper-body.with-code,.lp-frame.with-code{grid-template-columns:1fr}.plan-side,.lesson-rail{position:static;max-height:none}.lesson-rail,.lesson-videos{display:none}.lesson-videos-inline{display:block;margin-bottom:18px}.plan-hero{flex-direction:column;align-items:flex-start;gap:16px}.pager-link{min-width:0}.home{padding-top:40px}.crumb-link,.crumbs>.muted{display:none}.workspace{height:auto;overflow:visible}}.lesson-toc-m,.toc-m-plan{display:none}.pane-tabs{overflow-x:auto;scrollbar-width:none}.pane-tabs::-webkit-scrollbar{display:none}.pane-tabs button{flex:none;white-space:nowrap}@media(pointer:coarse){.path-step,.sd-card-problems a,.rail-sections a,.lp-playlist a{min-height:40px}.pane-tabs button,.case-tab button,.segmented button{height:40px}.case-add{width:40px;height:40px}.lp-icon{width:44px;height:44px}.page>:not(.topbar):not(.site-footer) :is(.btn,.select){height:auto;min-height:40px}}@media(max-width:1200px){.lesson-toc-m{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;position:sticky;top:52px;z-index:5;margin:-12px -16px 20px;padding:8px 16px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft)}.toc-m{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.toc-m>summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;cursor:pointer;list-style:none;font-size:14.5px}.toc-m>summary::-webkit-details-marker{display:none}.toc-m>summary:after{content:"";flex:none;width:8px;height:8px;margin-left:auto;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .15s}.toc-m[open]>summary:after{transform:translateY(2px) rotate(-135deg)}.toc-m-label{flex:none;font:700 11px JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.toc-m-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.toc-m-body{max-height:min(60vh,460px);overflow:auto;padding:4px 8px 10px;border-top:1px solid var(--line-soft)}.toc-m-body .lp-playlist{margin:0}.lesson-part{scroll-margin-top:124px}.toc-m-home{display:flex;align-items:center;min-height:40px;padding:0 10px;color:var(--muted);font-size:14px}}@media(max-width:760px){.page>:not(.topbar):not(.site-footer) :is(.btn,.select){height:auto;min-height:40px}.page>:not(.topbar):not(.site-footer) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea):not(.inputarea){font-size:16px}.segmented button,.chip,.case-tab button,.pane-tabs button{height:40px}.case-add{width:40px;height:40px}.case-tab .case-x{width:36px;padding:0;justify-content:center}.back-link{display:inline-flex;align-items:center;min-height:40px}:not(pre)>code{overflow-wrap:anywhere}.path-step{min-height:40px}.plan-row{min-height:48px;gap:12px}.lesson-row>.mono{display:none}.sd-card-problems a{min-height:44px}.toc-m-plan{display:block;margin:-8px 0 8px}.lesson-toc-m{margin-top:0}.lesson-part-title{font-size:20px}.lesson-notes{padding:0 12px}.lesson-part-min{white-space:nowrap}.rail-sections a,.lp-playlist a{min-height:44px}.lp-icon{width:44px;height:44px}.stepper-controls{flex-wrap:wrap;padding:10px 12px 14px}.stepper-controls .btn{flex:1 1 auto;justify-content:center;padding:0 10px}.stepper-controls .btn:first-child,.stepper-controls .stepper-sound{flex:none}.stepper-scrub{flex-basis:100%;order:9;height:32px}.code-tabs-head{padding:8px 10px}.code-tabs-body{padding:14px;font-size:13px}.lesson-pager{flex-direction:column}.lesson-pager>span:empty{display:none}.practice-head{flex-direction:column;align-items:stretch}.list-page{padding-top:28px}.list-page .hero{grid-template-columns:minmax(0,1fr);gap:20px}.list-page .progress-card{padding:16px;gap:16px}.list-page .progress-card .ring{width:88px;height:88px;flex:none}.progress-rows{flex:1;min-width:0}.track-switch{display:flex}.track-switch button{flex:1 1 0;height:auto;min-height:44px;padding:6px 8px;line-height:1.25}.filters .search{flex-basis:100%;min-width:0;height:44px}.filters .search input{align-self:stretch}.filters .segmented{flex:1}.filters .segmented button{flex:1;padding:0 8px}.tag-row{flex-wrap:nowrap;overflow-x:auto;margin:14px -16px 18px;padding:0 16px 4px;scrollbar-width:none}.tag-row::-webkit-scrollbar{display:none}.chip{flex:none;font-size:13.5px}.ptable-row{min-height:52px}.workspace{height:100vh;height:100dvh;overflow:hidden}.crumbs .crumb-title,.crumbs>.status{display:none}.crumb-nav .icon-btn{width:40px;height:40px}.m-work{flex:1;min-height:0;display:flex;flex-direction:column}.m-work-tabs{display:flex;flex:none;border-bottom:1px solid var(--line);background:var(--raised)}.m-work-tabs button{position:relative;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;border:none;background:none;color:var(--muted);font-size:14.5px;font-weight:600;cursor:pointer}.m-work-tabs button.on{color:var(--text)}.m-work-tabs button.on:after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.m-work-body{flex:1;min-height:0}.m-work-body[hidden]{display:none}.m-work-body>.pane{border:none;border-radius:0}.pane-body{padding:16px}.explain-parts{display:grid;width:100%}.explain-parts button{height:auto;min-height:40px;padding:8px 12px;text-align:left}.editor-bar{height:52px}.console-body{padding:14px 16px}.console-actions .btn{flex:1;justify-content:center}.lp.lp-full{overflow-y:auto}.lp.lp-full .lp-stage-inner{zoom:1}.lp.lp-full .lp-caption{font-size:17px}}@media(max-height:500px){.lp.lp-full{overflow-y:auto}.lp.lp-full .lp-stage-inner{zoom:1}.lp.lp-full .lp-caption{font-size:16px}}
