:root{--font-scale:1;--editor-size:13.5px;--sans:"Segoe UI Variable Text", "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--serif:ui-serif, Georgia, "Iowan Old Style", "Times New Roman", serif;--display:ui-serif, Georgia, "Iowan Old Style", "Times New Roman", serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, monospace;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:14px;--r-pill:999px;--label-size:calc(10.5px * var(--font-scale));--label-track:.1em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--t-fast:.11s cubic-bezier(.2, 0, .2, 1);--t-base:.18s cubic-bezier(.2, 0, .2, 1);--sidebar-w:272px;--sidebar-w-collapsed:60px;--row-h:34px;--row-px:10px;--row-gap:10px;--row-font:calc(14px * var(--font-scale));--group-font:calc(12px * var(--font-scale));--leading-slot:20px;--row-radius:8px}:root,:root[data-theme=light]{--bg:#f6f6f3;--bg-sidebar:#f6f6f3;--surface:#fff;--surface-2:#efefeb;--surface-3:#e6e6e1;--surface-inset:#f1f1ed;--border:#e0e0d9;--border-soft:#e9e9e3;--border-strong:#cfcfc6;--text:#14130f;--text-2:#2b2a25;--text-muted:#5d5b52;--text-faint:#8d8a80;--shadow-sm:0 1px 2px #28261e0f;--shadow-md:0 2px 8px #28261e14, 0 1px 2px #28261e0d;--shadow-lg:0 12px 32px #28261e1f, 0 2px 8px #28261e0f;--pass:#2f8f5b;--pass-bg:#eaf6ee;--fail:#c4443a;--fail-bg:#fbeceb;--info:#3b6fb5;--info-bg:#ecf2fa;--warn:#9a6b12;--warn-bg:#fbf3e2;--code-bg:#f6f5ef;--overlay:#1e1d1852;--btn-primary:#1f1e1d;--btn-primary-hover:#34322e;--btn-primary-fg:#faf9f5;--hover:#1c1a140b;--selected:#1c1a1413}:root[data-theme=dark]{--bg:#1b1b1d;--bg-sidebar:#1b1b1d;--surface:#232326;--surface-2:#2b2b2e;--surface-3:#323236;--surface-inset:#151517;--border:#383836;--border-soft:#2e2e2c;--border-strong:#4a4a47;--text:#f5f4ef;--text-2:#dedbd3;--text-muted:#a8a49c;--text-faint:#7d7a72;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 10px #00000057;--shadow-lg:0 16px 40px #00000073;--pass:#5cc98a;--pass-bg:#17291f;--fail:#e8756a;--fail-bg:#2e1a18;--info:#7bacea;--info-bg:#17222e;--warn:#d9a65a;--warn-bg:#2a2114;--code-bg:#1d1d1c;--overlay:#0009;--btn-primary:#f5f4ef;--btn-primary-hover:#e6e4dd;--btn-primary-fg:#1f1e1d;--hover:#fffdf50e;--selected:#fffdf517}:root,:root[data-accent=ochre]{--accent:#a86a12;--accent-hover:#945d0d;--accent-fg:#fff;--accent-soft:#a86a121f;--accent-line:#a86a1257}:root[data-accent=coral]{--accent:#c96442;--accent-hover:#b5573a;--accent-fg:#fff;--accent-soft:#c964421c;--accent-line:#c9644252}:root[data-accent=blue]{--accent:#3b76d9;--accent-hover:#3167c2;--accent-fg:#fff;--accent-soft:#3b76d91c;--accent-line:#3b76d952}:root[data-accent=violet]{--accent:#7c5cd6;--accent-hover:#6c4dc4;--accent-fg:#fff;--accent-soft:#7c5cd61f;--accent-line:#7c5cd652}:root[data-accent=emerald]{--accent:#2f9668;--accent-hover:#28825a;--accent-fg:#fff;--accent-soft:#2f96681f;--accent-line:#2f966852}:root[data-accent=amber]{--accent:#b7791f;--accent-hover:#a26a18;--accent-fg:#fff;--accent-soft:#b7791f21;--accent-line:#b7791f57}:root[data-accent=rose]{--accent:#c2456b;--accent-hover:#ac3b5e;--accent-fg:#fff;--accent-soft:#c2456b1f;--accent-line:#c2456b52}:root[data-theme=dark],:root[data-theme=dark][data-accent=ochre]{--accent:#d9a441;--accent-hover:#e3b45c;--accent-fg:#241a08}:root[data-theme=dark][data-accent=coral]{--accent:#d97757;--accent-hover:#e08a6e;--accent-fg:#241009}:root[data-theme=dark][data-accent=blue]{--accent:#6ba1ef;--accent-hover:#83b1f3;--accent-fg:#0b1727}:root[data-theme=dark][data-accent=violet]{--accent:#a58af0;--accent-hover:#b49df3;--accent-fg:#17102a}:root[data-theme=dark][data-accent=emerald]{--accent:#4fbf8b;--accent-hover:#66cb9c;--accent-fg:#082016}:root[data-theme=dark][data-accent=amber]{--accent:#dfa64f;--accent-hover:#e7b667;--accent-fg:#241a08}:root[data-theme=dark][data-accent=rose]{--accent:#e8749b;--accent-hover:#ee8bab;--accent-fg:#2a0d18}:root{--panel:var(--surface);--panel-2:var(--surface-2);--line:var(--border);--muted:var(--text-muted);--dim:var(--text-faint);--accent-dim:var(--accent-line)}:root[data-motion=reduced] *{transition-duration:.01ms!important;animation-duration:.01ms!important}:root[data-density=compact]{--sp-4:12px;--sp-5:18px;--sp-6:24px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:calc(15px * var(--font-scale));-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:450;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.019em;margin:0;font-weight:600;line-height:1.25}h1{font-size:calc(28px * var(--font-scale))}h2{font-size:calc(20px * var(--font-scale))}h3{font-size:calc(16px * var(--font-scale))}a{color:var(--accent);text-decoration:none}code{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--r-xs);color:var(--text-2);padding:.1em .36em;font-size:.87em}pre{font-family:var(--mono);font-size:calc(13px * var(--font-scale));background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--r-md);margin:14px 0;padding:13px 15px;line-height:1.65;overflow-x:auto}pre code{color:var(--text-2);font-size:inherit;background:0 0;border:none;padding:0}hr{border:none;border-top:1px solid var(--border-soft);margin:var(--sp-5) 0}button{font:inherit;color:var(--text);cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:7px 13px;font-weight:500;display:inline-flex}button:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}button:active:not(:disabled){transform:translateY(.5px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--btn-primary);border-color:var(--btn-primary);color:var(--btn-primary-fg);font-weight:550}button.primary:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}button.ghost{color:var(--text-muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:#0000}button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}button.danger{color:var(--fail);border-color:var(--border)}button.danger:hover:not(:disabled){background:var(--fail-bg);border-color:var(--fail)}button.small{font-size:calc(13px * var(--font-scale));padding:5px 10px}button.tiny{font-size:calc(12px * var(--font-scale));border-radius:var(--r-xs);padding:3px 8px}button.icon{width:32px;height:32px;padding:6px}input[type=text],input[type=number],input.answer,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;padding:7px 11px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input.answer{width:100%;font-family:var(--mono);font-size:calc(14px * var(--font-scale));padding:11px 13px}select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:26px}.switch{border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface-3);width:38px;height:22px;transition:background var(--t-base), border-color var(--t-base);flex-shrink:0;padding:0;position:relative}.switch:after{content:"";background:var(--surface);width:16px;height:16px;box-shadow:var(--shadow-sm);transition:transform var(--t-base);border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true]:after{transform:translate(16px)}.switch:hover{border-color:var(--accent-line)}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:160px;height:20px}input[type=range]::-webkit-slider-runnable-track{background:var(--surface-3);border-radius:2px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--surface);width:15px;height:15px;box-shadow:var(--shadow-sm);border-radius:50%;margin-top:-5.5px}.shell{height:100%;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border-soft);transition:width var(--t-base);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-head{align-items:center;gap:2px;padding:14px 14px 10px;display:flex}.wordmark{font-family:var(--display);font-size:calc(23px * var(--font-scale));letter-spacing:-.012em;color:var(--text);flex:1;font-weight:500;line-height:1}.sidebar-head button{color:var(--text-muted);background:0 0;border-color:#0000;width:30px;height:30px;padding:0}.sidebar-head button:hover{background:var(--surface-3);color:var(--text)}.sidebar-head .brand-home{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;justify-content:flex-start;width:auto;height:34px;padding:0}.brand-home:hover:not(:disabled){background:0 0;border-color:#0000}.mode-switch{background:var(--surface-3);isolation:isolate;border-radius:11px;gap:0;margin:8px 12px 12px;padding:3px;display:flex;position:relative}.mode-indicator{z-index:-1;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform var(--t-base), width var(--t-base);border-radius:8px;position:absolute;top:3px;bottom:3px;left:0}:root[data-theme=dark] .mode-indicator{background:var(--surface-2);box-shadow:none}.mode-switch button{height:32px;color:var(--text-muted);font-size:var(--row-font);transition:color var(--t-fast);background:0 0;border:none;border-radius:8px;flex:1;gap:8px;padding:0 10px;font-weight:500}.mode-switch button:hover:not(.on){color:var(--text-2);background:0 0}.mode-switch button.on{color:var(--text);background:0 0}.sidebar.collapsed .mode-switch{background:0 0;flex-direction:column;padding:0}.sidebar.collapsed .mode-indicator{display:none}.sidebar.collapsed .mode-switch button.on{background:var(--selected)}.recent-item.done .ico{color:var(--text-muted)}.recent-item .label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.user-chip{justify-content:flex-start;align-items:center;gap:var(--row-gap);width:100%;height:var(--row-h);padding:0 var(--row-px);border-radius:var(--row-radius);color:var(--text-2);background:0 0;border:none;display:flex}.user-chip:hover{background:var(--hover)}.avatar{background:var(--surface-3);width:22px;height:22px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:500;display:grid}.user-name{text-align:left;font-size:var(--row-font);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:450;overflow:hidden}.user-name span{color:var(--text-faint)}.sidebar-scroll{flex:1;padding:0 12px 12px;overflow-y:auto}.sidebar-foot{border-top:1px solid var(--border-soft);padding:10px 12px}.sidebar-today{border:1px solid var(--border-soft);border-radius:var(--r-md);background:color-mix(in srgb, var(--surface) 62%, transparent);margin-bottom:7px;padding:9px 10px 8px}.sidebar-today-title{font-weight:650;font-size:calc(12.5px * var(--font-scale))}.sidebar-today-copy{color:var(--text-faint);font-size:calc(10.5px * var(--font-scale));margin-top:4px}.sidebar-today .nav-progress{margin:7px 0 8px}.sidebar-today .heatmap{margin:0;padding:0}.sidebar-utilities{gap:4px;margin-bottom:5px;display:flex}.sidebar-utilities button{height:29px;color:var(--text-muted);font-size:calc(11px * var(--font-scale));background:0 0;border-color:#0000;flex:1;padding:0 7px}.sidebar-utilities button:hover:not(:disabled){background:var(--hover);color:var(--text);border-color:#0000}.sidebar-utilities kbd{padding:1px 4px;font-size:9px}.nav-label{color:var(--text-faint);padding:18px var(--row-px) 6px;line-height:1.35}.nav-label-secondary{padding-top:11px}.sidebar.collapsed .nav-label{opacity:0;height:12px;padding:0}.nav-item,.recent-item{justify-content:flex-start;gap:var(--row-gap);width:100%;height:var(--row-h);padding:0 var(--row-px);color:var(--text-2);border-radius:var(--row-radius);font-weight:500;font-size:var(--row-font);background:0 0;border:1px solid #0000;margin-bottom:1px}.nav-item:hover:not(:disabled),.recent-item:hover:not(:disabled){background:var(--hover);color:var(--text);border-color:#0000}.nav-item.active{background:var(--selected);color:var(--text);border-color:#0000;font-weight:500}.nav-item .ico,.recent-item .ico{width:var(--leading-slot);color:var(--text-muted);flex-shrink:0}.nav-item:hover .ico,.recent-item:hover .ico,.nav-item.active .ico{color:var(--text)}.nav-item .label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.nav-item .count{font-size:calc(11.5px * var(--font-scale));color:var(--text-faint);font-variant-numeric:tabular-nums}.sidebar.collapsed .sidebar-head,.sidebar.collapsed .sidebar-scroll,.sidebar.collapsed .sidebar-foot{padding-left:0;padding-right:0}.sidebar.collapsed .brand-lockup{display:none}.sidebar.collapsed .sidebar-head{justify-content:center;padding:10px 0 8px}.sidebar.collapsed .sidebar-head button{border-radius:10px;width:36px;height:36px}.sidebar.collapsed .mode-switch{padding:0 0 10px}.sidebar.collapsed .nav-item,.sidebar.collapsed .recent-item,.sidebar.collapsed .user-chip,.sidebar.collapsed .mode-switch button{border-radius:10px;flex:none;justify-content:center;gap:0;width:36px;min-width:36px;height:36px;margin:0 auto 2px;padding:0;display:flex}.sidebar.collapsed .nav-item .ico,.sidebar.collapsed .recent-item .ico,.sidebar.collapsed .mode-switch button .ico{width:auto}.sidebar.collapsed .label,.sidebar.collapsed .count,.sidebar.collapsed .brand-name,.sidebar.collapsed .user-name,.sidebar.collapsed .nav-progress{display:none}.sidebar.collapsed .mode-switch{border-bottom:1px solid var(--border-soft);border-radius:0;width:36px;margin:0 auto 10px;padding-bottom:10px}.nav-progress{background:var(--surface-3);border-radius:2px;height:3px;margin:6px 10px 2px;overflow:hidden}.nav-progress>i{background:var(--accent);height:100%;transition:width var(--t-base);border-radius:2px;display:block}.main{flex-direction:column;flex:1;display:flex;overflow-y:auto}.topbar{z-index:20;align-items:center;gap:var(--sp-3);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft);min-height:54px;padding:10px 22px;display:flex;position:sticky;top:0}.topbar .crumb{font-size:calc(13.5px * var(--font-scale));color:var(--text-muted)}.topbar .crumb b{color:var(--text);font-weight:550}.page{width:100%;max-width:1080px;padding:var(--sp-6) var(--sp-5) 96px;flex:1;margin:0 auto}.page.wide{max-width:1320px}.page.narrow{max-width:760px}.page-head{margin-bottom:var(--sp-5)}.page-head h1{font-family:var(--display);font-weight:500;font-size:calc(32px * var(--font-scale));letter-spacing:-.015em;margin-bottom:7px}.page-head p{color:var(--text-muted);font-size:calc(14.5px * var(--font-scale));max-width:66ch;margin:0}.card{border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-4);background:0 0;min-width:0;overflow:hidden}.card.flush{padding:0;overflow:hidden}h2.section,.nav-label,.step-kind,.badge,.stat .label,.stage-section,.settings-group,.hint .rung,.statement-label,.recall-box .label,.pane-eyebrow{font-family:var(--mono);font-size:var(--label-size);text-transform:uppercase;letter-spacing:var(--label-track);font-weight:500}h2.section{color:var(--text-faint);margin:0 0 var(--sp-3)}.stat-grid{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(148px,1fr));display:grid}.stat{border:1px solid var(--border-soft);border-radius:var(--r-md);background:0 0;padding:14px 16px}.stat .value{font-size:calc(25px * var(--font-scale));letter-spacing:-.028em;font-variant-numeric:tabular-nums;font-weight:620;line-height:1.15}.stat .label{color:var(--text-muted);margin-top:5px}.stat .note{font-size:calc(11.5px * var(--font-scale));color:var(--text-faint);margin-top:5px}.bar{background:var(--surface-3);border-radius:var(--r-pill);height:6px;overflow:hidden}.bar>i{background:var(--accent);border-radius:var(--r-pill);height:100%;transition:width var(--t-base);display:block}.badge{border-radius:var(--r-xs);border:1px solid var(--border);color:var(--text-muted);background:0 0;align-items:center;gap:5px;padding:3px 7px;display:inline-flex}.badge.accent{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft)}.badge.cold{border-color:var(--info);color:var(--info);background:var(--info-bg)}.badge.pass{border-color:var(--pass);color:var(--pass);background:var(--pass-bg)}.row{align-items:center;gap:var(--sp-2);display:flex}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.muted{color:var(--text-muted)}.dim{color:var(--text-faint)}.small{font-size:calc(13px * var(--font-scale))}.tiny{font-size:calc(12px * var(--font-scale))}.empty{text-align:center;color:var(--text-muted);padding:72px 20px}.settings-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:min(1000px,94vw);height:min(760px,90vh);box-shadow:var(--shadow-lg);grid-template-columns:244px 1fr;animation:.18s cubic-bezier(.2,0,.2,1) both pop;display:grid;overflow:hidden}@media (width<=780px){.settings-dialog{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.settings-rail{background:var(--bg-sidebar);border-right:1px solid var(--border-soft);padding:16px 12px;overflow-y:auto}.settings-rail>div+div{border-top:1px solid var(--border-soft);margin-top:18px;padding-top:10px}.settings-rail>div+div .settings-group{padding-top:0}.settings-search{width:100%;margin-bottom:14px}.settings-group{font-size:calc(12px * var(--font-scale));color:var(--text-faint);padding:14px 10px 6px;font-weight:500}.settings-group:first-child{padding-top:0}.settings-rail button.nav{width:100%;color:var(--text-2);font-size:calc(14px * var(--font-scale));border-radius:var(--r-md);background:0 0;border-color:#0000;justify-content:flex-start;gap:11px;margin-bottom:1px;padding:8px 10px;font-weight:450}.settings-rail button.nav:hover{background:var(--surface-3);color:var(--text)}.settings-rail button.nav.active{background:var(--surface-3);color:var(--text);font-weight:550}.settings-rail button.nav .ico{color:var(--text-faint)}.settings-rail button.nav.active .ico{color:var(--text)}.settings-body{padding:22px 30px 40px;position:relative;overflow-y:auto}.settings-rail,.settings-body{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable}.settings-rail::-webkit-scrollbar{width:8px}.settings-body::-webkit-scrollbar{width:8px}.settings-rail::-webkit-scrollbar-track{background:0 0;margin-block:12px}.settings-body::-webkit-scrollbar-track{background:0 0;margin-block:12px}.settings-rail::-webkit-scrollbar-thumb{border-radius:var(--r-pill);background:var(--border-strong);background-clip:content-box;border:2px solid #0000}.settings-body::-webkit-scrollbar-thumb{border-radius:var(--r-pill);background:var(--border-strong);background-clip:content-box;border:2px solid #0000}.settings-rail::-webkit-scrollbar-button{width:0;height:0;display:none}.settings-body::-webkit-scrollbar-button{width:0;height:0;display:none}.settings-close{z-index:2;position:absolute;top:16px;right:18px}.settings-body h2.pane-title{font-size:calc(17px * var(--font-scale));margin:0 0 4px}.settings-body .pane-sub{color:var(--text-muted);font-size:calc(13.5px * var(--font-scale));max-width:58ch;margin:0 0 20px}.settings-body .group-title{font-size:calc(15px * var(--font-scale));margin:28px 0 2px;font-weight:600}.settings-body .group-title:first-of-type{margin-top:8px}.icon-choice{background:var(--surface-3);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.icon-choice button{width:34px;height:30px;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:none;padding:0}.icon-choice button:hover:not(.on){color:var(--text);background:0 0}.icon-choice button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .icon-choice button.on{background:var(--surface-2)}.field{justify-content:space-between;align-items:center;gap:var(--sp-5);border-bottom:1px solid var(--border-soft);padding:15px 0;display:flex}.field:last-child{border-bottom:none;padding-bottom:0}.field:first-of-type{padding-top:0}.field-text{min-width:0}.field-title{font-size:calc(14px * var(--font-scale));font-weight:520}.field-help{font-size:calc(12.5px * var(--font-scale));color:var(--text-muted);max-width:58ch;margin-top:2px;line-height:1.5}.field-control{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.segmented{background:var(--surface-3);border-radius:var(--r-sm);border:1px solid var(--border-soft);gap:2px;padding:2px;display:inline-flex}.segmented button{border-radius:var(--r-xs);font-size:calc(13px * var(--font-scale));color:var(--text-muted);background:0 0;border:none;padding:4px 11px;font-weight:500}.segmented button:hover:not(.on){color:var(--text);background:0 0}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);border:none}.swatches{gap:7px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0;box-shadow:inset 0 0 0 1px #0000001f}.swatch:hover{transform:scale(1.08)}.swatch.on{border-color:var(--text)}kbd{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--text-2);border-bottom-width:2px;padding:2px 6px;font-size:11.5px}.progress-strip{margin-bottom:var(--sp-5);gap:3px;display:flex}.progress-strip>i{background:var(--surface-3);height:3px;transition:background var(--t-base);border-radius:2px;flex:1}.progress-strip>i.done{background:var(--accent-line)}.progress-strip>i.current{background:var(--accent)}.step-kind{font-size:calc(11px * var(--font-scale));letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:650}.lesson-row{text-align:left;border-radius:var(--r-sm);background:0 0;border:1px solid #0000;justify-content:flex-start;align-items:flex-start;gap:11px;width:100%;max-width:100%;margin-bottom:3px;padding:10px 12px;display:flex;overflow:hidden}.lesson-row>*{min-width:0}.lesson-title,.lesson-goal{overflow-wrap:anywhere}.row-main{flex:1;min-width:0;overflow:hidden}.lesson-row .meta{flex-shrink:0;justify-content:flex-end;gap:14px}.lesson-row:has(.lesson-open:hover){background:var(--surface-2);border-color:var(--border-soft)}.lesson-row .tick{width:26px;height:26px;color:var(--text-faint);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);background:0 0;border:1px solid #0000;border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-size:13px;line-height:1;display:grid}.lesson-row .tick:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.lesson-row.complete .tick{color:var(--pass);border-color:color-mix(in srgb, var(--pass) 42%, transparent);background:color-mix(in srgb, var(--pass) 12%, transparent)}.lesson-open{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:0;display:block}.lesson-count{flex-shrink:0;align-self:center}.lesson-open:focus-visible,.lesson-row .tick:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.lesson-title{font-size:calc(14px * var(--font-scale));font-weight:520;display:block}.lesson-goal{font-size:calc(12.5px * var(--font-scale));color:var(--text-muted);margin-top:1px;display:block}.concept-row{gap:var(--sp-3);border-bottom:1px solid var(--border-soft);grid-template-columns:1fr 120px 46px;align-items:center;padding:8px 0;display:grid}.concept-row:last-child{border-bottom:none}.atom{max-width:68ch;margin:0 auto}.atom h1{font-family:var(--display);font-weight:500;font-size:calc(34px * var(--font-scale));letter-spacing:-.015em;margin:6px 0 4px}.stage-title{font-family:var(--display);font-weight:500}.prose{font-size:calc(16.5px * var(--font-scale));color:var(--text-2);line-height:1.72}:root[data-reading=serif] .prose,:root[data-reading=serif] .stage-text{font-family:var(--serif)}.prose p{margin:0 0 18px}.prose h2{font-size:calc(15px * var(--font-scale));letter-spacing:.01em;color:var(--accent);margin:32px 0 12px;font-weight:650}.prose strong{color:var(--text);font-weight:600}.prose em{color:var(--text)}.prose ul,.prose ol{margin:0 0 18px;padding-left:1.4em}.prose li{margin-bottom:8px}.prose li::marker{color:var(--accent)}.table-scroll{border:1px solid var(--line);border-radius:var(--r-md);margin:0 0 18px;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;font-size:calc(14.5px * var(--font-scale))}.table-scroll th{text-align:left;font-family:var(--mono);font-size:calc(11.5px * var(--font-scale));letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);background:var(--bg-2);white-space:nowrap;padding:9px 14px;font-weight:500}.table-scroll td{border-top:1px solid var(--line);color:var(--text-2);vertical-align:top;padding:10px 14px}.table-scroll tr td:first-child{color:var(--text)}.table-scroll code{white-space:nowrap}.preparing{font-family:var(--mono);font-size:calc(11px * var(--font-scale));letter-spacing:.04em;color:var(--text-3);white-space:nowrap;margin-left:10px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.dl-bar{background:var(--line);border-radius:999px;height:4px;margin:-4px 0 14px;overflow:hidden}.dl-bar>div{background:var(--accent);border-radius:999px;height:100%;transition:width .25s}.voice-note{font-size:calc(12.5px * var(--font-scale));color:var(--text-2);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);margin:0 0 14px;padding:11px 13px;line-height:1.65}.voice-note strong{color:var(--text);font-weight:600}.recall-box{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-md);margin-top:var(--sp-6);padding:16px 18px}.recall-box .label{font-size:calc(11px * var(--font-scale));letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-weight:700}.watch{max-width:900px;margin:0 auto}.watch-toolbar{margin-bottom:14px}.watch-toolbar-actions{gap:6px}.fullscreen-toggle{gap:7px}.watch-help{text-align:center;margin-top:10px}.watch-actions{justify-content:center;margin-top:24px}.stage{border:1px solid var(--border-soft);border-radius:var(--r-xl);background:0 0;flex-direction:column;justify-content:center;min-height:420px;padding:52px 52px 44px;display:flex;position:relative}.stage-meta{display:contents}@media (width<=700px){.stage{min-height:340px;padding:30px 22px}}.stage-section{font-size:calc(11px * var(--font-scale));letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-weight:650;position:absolute;top:18px;left:26px}.stage-focus{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font:650 10px var(--mono);letter-spacing:.03em;border-radius:999px;padding:5px 9px;position:absolute;top:14px;right:22px}.stage-body{animation:.38s cubic-bezier(.2,0,.2,1) both sceneIn}@keyframes sceneIn{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}.stage-title{font-size:calc(44px * var(--font-scale));letter-spacing:-.035em;text-align:center;line-height:1.1}.stage-heading{font-size:calc(28px * var(--font-scale));letter-spacing:-.028em;color:var(--accent);text-align:center;line-height:1.25}.stage-heading p{margin:0}.stage-text{font-size:calc(22px * var(--font-scale));letter-spacing:-.011em;color:var(--text);line-height:1.5}.stage-text p{margin:0 0 14px}.stage-text p:last-child{margin-bottom:0}.stage-text code{padding:2px 7px;font-size:.85em}.stage-text ul,.stage-text ol{margin:0;padding-left:1.3em}.stage-text li{margin-bottom:10px}.stage-text li::marker{color:var(--accent)}@media (width<=700px){.stage-title{font-size:calc(30px * var(--font-scale))}.stage-text{font-size:calc(18px * var(--font-scale))}}.stage-code{background:var(--surface-inset);border:1px solid var(--border-soft);border-radius:var(--r-md);font-size:calc(15px * var(--font-scale));margin:24px 0 0;padding:17px 19px;line-height:1.75;overflow-x:auto}.stage-line{white-space:pre;border-radius:4px;grid-template-columns:24px 13px 1fr;min-height:1.75em;margin:0 -9px;padding:0 9px;transition:opacity .24s,transform .24s,background-color .18s,box-shadow .18s;display:grid}.stage-line.context{opacity:.52!important}.stage-line.focused{background:color-mix(in srgb, var(--accent) 13%, transparent);box-shadow:inset 2px 0 var(--accent);opacity:1!important}.stage-line-number{color:var(--text-faint);-webkit-user-select:none;user-select:none;text-align:right;padding-right:8px}.stage-line-arrow{color:var(--accent);-webkit-user-select:none;user-select:none;font-weight:800}.stage-line.focused .stage-line-arrow{animation:.2s ease-out both lineFocusIn}@keyframes lineFocusIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.stage-line.focused .stage-line-arrow{animation:none}}.stage-terms,.stage-trace{flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px;font-size:11px;display:flex}.stage-terms>span,.stage-trace>span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font:650 9px var(--mono)}.stage-terms code{border:1px solid var(--border-soft);background:var(--surface-2);padding:3px 7px}.stage-trace i{color:var(--text-muted);border-left:2px solid var(--accent-line);padding:3px 7px;font-style:normal}.guided-visual{border:1px dashed var(--border-strong);border-radius:var(--r-md);background:color-mix(in srgb, var(--surface-2) 82%, transparent);min-height:58px;font:650 11px var(--mono);margin-top:14px;padding:10px 12px;position:relative}.guided-visual.array{justify-content:center;gap:4px;padding-bottom:25px;display:flex}.guided-visual.array i{border:1px solid var(--border-strong);background:var(--surface-1);place-items:center;width:35px;height:32px;font-style:normal;display:grid}.guided-visual.array i.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.guided-visual.array b{color:var(--accent);font-size:9px;position:absolute;bottom:5px}.guided-visual.array .left{left:calc(50% - 116px)}.guided-visual.array .right{right:calc(50% - 116px)}.guided-visual.array .window-label{left:50%;transform:translate(-50%)}.guided-visual.hash{justify-content:center;align-items:center;gap:12px;display:flex}.guided-visual.hash i{color:var(--text-faint)}.guided-visual.hash b{border:1px solid var(--accent);background:var(--accent-soft);padding:8px 14px}.guided-visual.hash em{color:var(--pass);font-style:normal}.guided-visual.stack{justify-content:center;align-items:flex-end;gap:3px;padding-top:20px;display:flex}.guided-visual.stack small{color:var(--accent);margin-right:8px}.guided-visual.stack b{border:1px solid var(--border-strong);place-items:center;width:35px;height:31px;display:grid}.guided-visual.nodes{height:88px}.guided-visual.nodes b{z-index:2;border:1px solid var(--accent);background:var(--surface-1);border-radius:50%;place-items:center;width:34px;height:27px;display:grid;position:absolute}.guided-visual.nodes .n1{top:7px;left:calc(50% - 17px)}.guided-visual.nodes .n2{top:49px;left:calc(50% - 76px)}.guided-visual.nodes .n3{top:49px;left:calc(50% + 42px)}.guided-visual.nodes .n4{top:49px;left:calc(50% - 17px)}.guided-visual.nodes i{background:var(--border-strong);transform-origin:0;width:55px;height:1px;position:absolute;top:42px;left:50%}.guided-visual.nodes .e1{transform:rotate(145deg)}.guided-visual.nodes .e2{transform:rotate(35deg)}.guided-visual.nodes .e3{width:28px;transform:rotate(90deg)}.guided-visual.nodes>span{color:var(--accent);position:absolute;bottom:6px;right:10px}.guided-visual.dp{grid-template-columns:repeat(6,31px);justify-content:center;gap:3px;display:grid}.guided-visual.dp i{border:1px solid var(--border-soft);place-items:center;height:25px;font-style:normal;display:grid}.guided-visual.dp i.known{background:var(--surface-3)}.guided-visual.dp i.now{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.guided-visual.intervals{height:65px}.guided-visual.intervals i,.guided-visual.intervals b{border-radius:4px;height:10px;position:absolute}.guided-visual.intervals i{background:var(--surface-3);border:1px solid var(--border-strong);top:12px}.guided-visual.intervals i:nth-child(2){top:28px}.guided-visual.intervals b{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:8px;display:grid;top:47px}.guided-visual.variable,.guided-visual.function{justify-content:center;align-items:center;gap:10px;display:flex}.guided-visual.variable b,.guided-visual.function b{border:1px solid var(--border-strong);background:var(--surface-1);place-items:center;min-width:46px;height:32px;padding:0 10px;font-style:normal;display:grid}.guided-visual.variable b.val,.guided-visual.function b.out{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.guided-visual.variable span,.guided-visual.function span{color:var(--accent);font-size:15px}.guided-visual.function b.fn{border-style:dashed;border-color:var(--accent);color:var(--accent);border-radius:40px}.guided-visual.list,.guided-visual.string{justify-content:center;gap:4px;padding-bottom:22px;display:flex}.guided-visual.list i,.guided-visual.string i{border:1px solid var(--border-strong);background:var(--surface-1);place-items:center;width:34px;height:32px;font-style:normal;display:grid;position:relative}.guided-visual.list i:after,.guided-visual.string i:after{content:attr(data-i);text-align:center;color:var(--text-faint);font-size:9px;position:absolute;bottom:-17px;left:0;right:0}.guided-visual.list i.active,.guided-visual.string i.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.guided-visual.loop{justify-content:center;align-items:center;gap:4px;padding-bottom:22px;display:flex}.guided-visual.loop i{border:1px solid var(--border-strong);background:var(--surface-1);place-items:center;width:30px;height:30px;font-style:normal;display:grid;position:relative}.guided-visual.loop i.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.guided-visual.loop i.active:after{content:"↑";text-align:center;color:var(--accent);position:absolute;bottom:-16px;left:0;right:0}.guided-visual.loop b{border:1px solid var(--accent);background:var(--accent-soft);height:30px;color:var(--accent);place-items:center;margin-left:12px;padding:0 12px;font-style:normal;display:grid}.guided-visual.boolean{justify-content:center;align-items:center;gap:12px;display:flex}.guided-visual.boolean b{border:1px solid var(--border-strong);border-radius:40px;padding:7px 20px;font-style:normal}.guided-visual.boolean b.t{border-color:var(--pass);color:var(--pass);background:color-mix(in srgb, var(--pass) 14%, transparent)}.guided-visual.boolean b.f{color:var(--text-faint)}.c-keyword{color:#c586c0}.c-atom{color:#569cd6}.c-string{color:#ce9178}.c-number{color:#b5cea8}.c-comment{color:#6a9955;font-style:italic}.c-fn{color:#dcdcaa}.c-class{color:#4ec9b0}.c-op{color:var(--text-2)}.c-punct{color:var(--text-muted)}:root[data-theme=light]{--hl-keyword:#a626a4;--hl-atom:#0b6fc4;--hl-string:#a3622a;--hl-number:#2e7d32;--hl-comment:#6b7c5e;--hl-fn:#8a6d1a;--hl-class:#167b73}:root[data-theme=light] .c-keyword{color:var(--hl-keyword)}:root[data-theme=light] .c-atom{color:var(--hl-atom)}:root[data-theme=light] .c-string{color:var(--hl-string)}:root[data-theme=light] .c-number{color:var(--hl-number)}:root[data-theme=light] .c-comment{color:var(--hl-comment)}:root[data-theme=light] .c-fn{color:var(--hl-fn)}:root[data-theme=light] .c-class{color:var(--hl-class)}.scene-rail{flex-wrap:wrap;gap:3px;margin:14px 0 16px;display:flex}.scene-rail .pip{background:var(--surface-3);min-width:7px;height:4px;transition:background var(--t-fast);border:none;border-radius:2px;flex:1;padding:0}.scene-rail .pip.seen{background:var(--accent-line)}.scene-rail .pip.on{background:var(--accent)}.scene-rail .pip:hover{background:var(--border-strong)}.controls{align-items:center;gap:var(--sp-2);display:flex}.controls .play{min-width:108px}.rate-picker{flex:none;width:86px;min-width:0;position:relative}.rate-trigger{border-color:var(--border);font-variant-numeric:tabular-nums;background:0 0;justify-content:space-between;width:100%;min-width:0;height:36px;padding:6px 9px}.rate-trigger .ico{color:var(--text-faint);transition:transform var(--t-base);flex:none}.rate-trigger.open{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.rate-trigger.open .ico{transform:rotate(180deg)}.rate-menu{z-index:1300;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);max-height:min(300px,100dvh - 16px);box-shadow:var(--shadow-lg);padding:6px;animation:.14s cubic-bezier(.2,0,.2,1) both pop;position:fixed;overflow-y:auto}.rate-menu-label{color:var(--text-faint);font:650 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding:5px 7px 7px}.rate-option{font-variant-numeric:tabular-nums;background:0 0;border-color:#0000;justify-content:space-between;width:100%;min-height:38px;padding:7px 9px}.rate-option:hover:not(:disabled){background:var(--hover);border-color:#0000}.rate-option.active{color:var(--accent);background:var(--accent-soft)}.rate-option.active .ico{color:var(--accent)}.main:fullscreen{background:var(--bg);width:100vw;height:100dvh;overflow-y:auto}.main:fullscreen .topbar{display:none}.main:fullscreen .route{min-height:100%}.main:fullscreen .page{max-width:1440px;min-height:100%;padding:max(18px, env(safe-area-inset-top)) max(clamp(18px, 3vw, 52px), env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(clamp(18px, 3vw, 52px), env(safe-area-inset-left))}html.lesson-focus-active,html.lesson-focus-active body{overflow:hidden}.main.lesson-fullscreen-fallback{z-index:160;background:var(--bg);width:100vw;height:100dvh;margin:0;position:fixed;inset:0;overflow-y:auto}.main.lesson-fullscreen-fallback .topbar{display:none}.main.lesson-fullscreen-fallback .route{min-height:100%}.main.lesson-fullscreen-fallback .page{max-width:1440px;min-height:100%;padding:max(18px, env(safe-area-inset-top)) max(clamp(18px, 3vw, 52px), env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(clamp(18px, 3vw, 52px), env(safe-area-inset-left))}.lesson-workspace.is-fullscreen{min-height:calc(100dvh - 66px)}.lesson-workspace-actions{gap:6px}.lesson-workspace.is-fullscreen>.lesson-workspace-bar{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 0;position:sticky;top:0}:is(.watch:fullscreen,.watch.watch-fullscreen){z-index:1000;box-sizing:border-box;width:100vw;max-width:none;height:100dvh;padding:max(12px, env(safe-area-inset-top)) max(clamp(14px, 2.4vw, 42px), env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(clamp(14px, 2.4vw, 42px), env(safe-area-inset-left));background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:clamp(7px,1.2vh,14px);margin:0;display:grid;position:fixed;inset:0;overflow:hidden}:is(.watch:fullscreen .watch-toolbar,.watch.watch-fullscreen .watch-toolbar,.watch:fullscreen .scene-rail,.watch.watch-fullscreen .scene-rail,.watch:fullscreen .watch-help,.watch.watch-fullscreen .watch-help){margin:0}:is(.watch:fullscreen .stage,.watch.watch-fullscreen .stage){border-radius:clamp(12px,1.5vw,24px);align-self:stretch;width:100%;height:auto;min-height:0;padding:clamp(46px,7vh,76px) clamp(24px,6vw,100px) clamp(24px,4vh,52px);overflow:hidden}:is(.watch:fullscreen .stage-body,.watch.watch-fullscreen .stage-body){scrollbar-width:none;-ms-overflow-style:none;width:min(1280px,100%);max-height:100%;margin:auto;overflow:hidden auto}.watch:fullscreen .stage-body::-webkit-scrollbar{display:none}.watch.watch-fullscreen .stage-body::-webkit-scrollbar{display:none}:is(.watch:fullscreen .stage-body.title,.watch.watch-fullscreen .stage-body.title){overflow:hidden}:is(.watch:fullscreen .stage-title,.watch.watch-fullscreen .stage-title){font-size:clamp(38px,6vmin,82px)}:is(.watch:fullscreen .stage-heading,.watch.watch-fullscreen .stage-heading){font-size:clamp(30px,4.5vmin,62px)}:is(.watch:fullscreen .stage-text,.watch.watch-fullscreen .stage-text){font-size:clamp(19px,2.65vmin,34px);line-height:1.42}:is(.watch:fullscreen .stage-code,.watch.watch-fullscreen .stage-code){max-height:min(44vh,420px);margin-top:clamp(14px,2.5vh,28px);padding:clamp(13px,2vmin,22px);font-size:clamp(13px,1.7vmin,20px);overflow:auto}:is(.watch:fullscreen .stage-section,.watch.watch-fullscreen .stage-section){top:clamp(14px,2vh,24px);left:clamp(18px,2.5vw,38px)}:is(.watch:fullscreen .stage-focus,.watch.watch-fullscreen .stage-focus){top:clamp(11px,1.7vh,20px);right:clamp(16px,2.5vw,36px)}:is(.watch:fullscreen .scene-rail .pip,.watch.watch-fullscreen .scene-rail .pip){height:clamp(4px,.65vh,7px)}:is(.watch:fullscreen .watch-actions,.watch.watch-fullscreen .watch-actions){display:none}@media (height<=650px){:is(.watch:fullscreen,.watch.watch-fullscreen){gap:6px;padding-top:8px;padding-bottom:8px}:is(.watch:fullscreen .stage,.watch.watch-fullscreen .stage){padding-top:40px;padding-bottom:16px}:is(.watch:fullscreen .watch-help,.watch.watch-fullscreen .watch-help){display:none}}@media (width<=600px){:is(.watch:fullscreen .watch-help,.watch.watch-fullscreen .watch-help),:is(.watch:fullscreen .fullscreen-toggle span,.watch.watch-fullscreen .fullscreen-toggle span){display:none}:is(.watch:fullscreen .controls,.watch.watch-fullscreen .controls){grid-template-columns:1fr 1.35fr 1fr;gap:6px;display:grid}:is(.watch:fullscreen .controls>button,.watch.watch-fullscreen .controls>button){width:100%;min-width:0}:is(.watch:fullscreen .controls>span[style],.watch.watch-fullscreen .controls>span[style]){display:none}:is(.watch:fullscreen .controls>.preparing,.watch.watch-fullscreen .controls>.preparing){text-align:center;grid-column:1/-1}:is(.watch:fullscreen .controls>.tiny,.watch.watch-fullscreen .controls>.tiny){grid-column:2}:is(.watch:fullscreen .controls>.rate,.watch.watch-fullscreen .controls>.rate){grid-column:3}}.lecture-check{max-width:760px;margin:0 auto}.lecture-choices{gap:9px;margin-top:12px;display:grid}.lecture-choices button{text-align:left;border:1px solid var(--border-soft);border-radius:var(--r-md);white-space:normal;grid-template-columns:24px minmax(0,1fr);justify-content:stretch;align-items:flex-start;gap:11px;width:100%;min-width:0;padding:12px 14px;line-height:1.45;display:grid}.lecture-choices button>.lecture-choice-marker{background:var(--surface-3);width:24px;height:24px;font:700 11px var(--mono);border-radius:50%;flex:none;place-items:center;display:grid}.lecture-choice-copy{overflow-wrap:anywhere;min-width:0}.lecture-choices.compact button{justify-content:flex-start;display:flex}.lecture-choices button.on{border-color:var(--accent);background:var(--accent-soft)}.review-reference-row,.exercise-reference-row{flex-wrap:wrap;align-items:center;gap:12px}.exercise-reference-row{border-bottom:1px solid var(--border-soft);margin:0 0 14px;padding:10px 0}.review-lesson-button{flex:none;align-items:center;gap:7px;display:inline-flex}.learning-score{border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--surface-2);grid-template-columns:auto 1fr;align-items:center;gap:18px;margin-top:16px;padding:17px;display:grid}.learning-score p{margin:4px 0}.score-ring{text-align:center;border:5px solid var(--accent);border-radius:50%;place-content:center;width:82px;height:82px;display:grid}.score-ring strong{font:750 25px var(--mono);line-height:1}.score-ring span{font:10px var(--mono);color:var(--text-faint)}.learning-score.strong .score-ring{border-color:var(--pass)}.learning-score.partial .score-ring{border-color:var(--warn)}.learning-score.weak .score-ring{border-color:var(--fail)}.prep-profile-strip,.prep-inline{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.prep-profile-strip{border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface-2);margin-bottom:13px;padding:10px 13px}.prep-profile-strip>div{align-items:center;gap:9px;display:flex}.prep-inline{justify-content:flex-start;margin-top:10px}.role-fit{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.track-mix{border:1px solid var(--border-soft);background:var(--surface-3);border-radius:7px;height:28px;margin-top:16px;display:flex;overflow:hidden}.track-mix i{border-right:1px solid var(--border-soft);background:color-mix(in srgb, var(--accent) 9%, var(--surface-2));place-items:center;min-width:40px;font-style:normal;display:grid}.track-mix i:nth-child(2n){background:color-mix(in srgb, var(--accent) 16%, var(--surface-2))}.track-mix span{font:650 8px var(--mono);text-transform:uppercase;color:var(--text-muted)}.analysis-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.analysis-grid>div{border:1px solid var(--border-soft);border-radius:var(--r-md);background:var(--surface-2);padding:12px}.analysis-grid span{color:var(--text-faint);font:650 9px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px;display:block}.analysis-grid p{margin:0;font-size:13px;line-height:1.5}.analysis-grid strong{font:700 14px var(--mono);color:var(--accent)}@media (width<=650px){.analysis-grid{grid-template-columns:1fr}}.drill{max-width:62ch;margin:0 auto}.choices{flex-direction:column;gap:8px;margin:18px 0;display:flex}.choice{text-align:left;font-family:var(--mono);font-size:calc(13.5px * var(--font-scale));border-radius:var(--r-md);white-space:normal;justify-content:flex-start;padding:12px 15px}.choice.correct{border-color:var(--pass);background:var(--pass-bg);color:var(--pass)}.choice.wrong{border-color:var(--fail);background:var(--fail-bg);color:var(--fail)}.explain{border-left:2px solid var(--info);color:var(--text-2);font-size:calc(14.5px * var(--font-scale));margin:18px 0;padding:3px 0 3px 14px}.statement{border:1px solid var(--border);border-left:2px solid var(--info);background:var(--surface);border-radius:var(--r-md);font-size:calc(15.5px * var(--font-scale));padding:15px 18px;line-height:1.6}.statement p{margin:0}.statement-label{font-size:calc(11px * var(--font-scale));letter-spacing:.1em;text-transform:uppercase;color:var(--info);margin-bottom:6px;font-weight:700}.diff{font-family:var(--mono);font-size:calc(13px * var(--font-scale));background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-word;padding:10px 12px}.diff .ok{color:var(--pass)}.diff .bad{color:var(--fail);-webkit-text-decoration:underline wavy var(--fail);text-decoration:underline wavy var(--fail)}.problem-grid{gap:var(--sp-4);grid-template-columns:minmax(320px,42%) 1fr;align-items:start;display:grid}@media (width<=940px){.problem-grid{grid-template-columns:1fr}}.pane{border:1px solid var(--border-soft);border-radius:var(--r-lg);background:0 0;padding:18px 20px}.pane.flush{padding:0;overflow:hidden}.editor-head{justify-content:space-between;align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--border-soft);background:var(--surface-2);padding:9px 12px;display:flex}.cm-editor{height:400px}.cm-editor .cm-scroller{font-family:var(--mono);font-size:var(--editor-size);line-height:1.65}.cm-editor.cm-focused{outline:none}.rep-editor .cm-editor{height:200px}.results{border-top:1px solid var(--border-soft);max-height:320px;padding:13px 15px;overflow-y:auto}.test-line{font-size:calc(13.5px * var(--font-scale));align-items:flex-start;gap:9px;padding:5px 0;display:flex}.test-line .mark{font-family:var(--mono);flex-shrink:0;width:14px}.test-line.pass .mark{color:var(--pass)}.test-line.fail .mark{color:var(--fail)}.test-line pre{font-size:calc(12.5px * var(--font-scale));background:var(--fail-bg);border-color:var(--fail);color:var(--fail);white-space:pre-wrap;margin:6px 0 2px}.fatal{background:var(--fail-bg);border:1px solid var(--fail);border-radius:var(--r-sm);color:var(--fail);font-family:var(--mono);font-size:calc(12.5px * var(--font-scale));white-space:pre-wrap;padding:12px 14px}.hint{border:1px solid var(--border);border-left:2px solid var(--accent);background:var(--surface-2);border-radius:var(--r-sm);font-size:calc(14.5px * var(--font-scale));margin-top:10px;padding:12px 15px}.hint .rung{font-size:calc(11px * var(--font-scale));letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:700}.walk-step{border-bottom:1px solid var(--border-soft);font-size:calc(14.5px * var(--font-scale));gap:12px;padding:10px 0;display:flex}.walk-step:last-child{border-bottom:none}.walk-step .n{color:var(--accent);font-family:var(--mono);padding-top:3px;font-size:12px}.rep{max-width:62ch;margin:0 auto}.rep-prompt{font-size:calc(16.5px * var(--font-scale));line-height:1.6}.rep-prompt p{margin:0 0 10px}.rep-pass{color:var(--pass);font-weight:620;font-size:calc(16px * var(--font-scale));margin-top:14px}.rep-fail{margin-top:14px}.lesson-review-overlay{z-index:180;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:clamp(12px,3vw,32px);animation:.15s both fade;display:grid;position:fixed;inset:0}.lesson-review-modal{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);width:min(1080px,100%);max-height:calc(100dvh - clamp(24px,6vw,64px));box-shadow:var(--shadow-lg);padding:18px 22px 24px;animation:.18s cubic-bezier(.2,0,.2,1) both pop;overflow:auto}.lesson-review-header{z-index:3;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:12px;margin:-18px -22px 16px;padding:16px 22px 13px;position:sticky;top:-18px}.lesson-review-header .label{margin-bottom:3px}.lesson-review-modal .watch{max-width:none}.overlay{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;justify-content:center;align-items:center;padding:24px;animation:.15s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:560px;max-height:88vh;box-shadow:var(--shadow-lg);padding:26px 28px;animation:.18s cubic-bezier(.2,0,.2,1) both pop;overflow-y:auto}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.985)}}.modal h3{font-size:calc(19px * var(--font-scale));margin:0 0 6px}.mode-btn{text-align:left;border-radius:var(--r-md);width:100%;margin-bottom:8px;padding:12px 15px;display:block}.mode-btn strong{font-size:calc(14.5px * var(--font-scale));font-weight:570;display:block}.mode-btn em{font-style:normal;font-size:calc(12.5px * var(--font-scale));color:var(--text-muted);margin-top:2px;display:block}.mode-btn.selected{border-color:var(--accent);background:var(--accent-soft)}.predict-row{gap:8px;margin:14px 0 4px;display:flex}.predict-row button{flex:1}.brand-lockup{min-width:0;color:var(--accent);flex:1;align-items:center;gap:9px;display:flex}.brand-lockup .wordmark{color:var(--text)}.heatmap{padding:0 var(--row-px);grid-template-rows:repeat(7,1fr);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;margin-bottom:10px;display:grid}.heatmap>i{aspect-ratio:1;background:var(--surface-3);transition:background var(--t-fast);border-radius:2px}.heatmap>i[data-level="1"]{background:color-mix(in srgb, var(--accent) 26%, var(--surface-3))}.heatmap>i[data-level="2"]{background:color-mix(in srgb, var(--accent) 52%, var(--surface-3))}.heatmap>i[data-level="3"]{background:color-mix(in srgb, var(--accent) 76%, var(--surface-3))}.heatmap>i[data-level="4"]{background:var(--accent)}.heatmap.compact{grid-template-rows:repeat(2,1fr);grid-auto-columns:1fr;gap:3px}.heatmap.compact>i{border-radius:2px;min-height:7px}.day-ring{flex-shrink:0;place-items:center;display:grid;position:relative}.day-ring svg{position:absolute;inset:0}.day-ring-inner{place-items:center;display:grid}.day-ring .avatar{width:21px;height:21px;font-size:9.5px}.forecast{align-items:flex-end;gap:4px;height:84px;display:flex}.forecast-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:stretch;gap:6px;min-width:0;height:100%;display:flex}.forecast-bar{background:var(--accent);min-height:2px;transition:height var(--t-base);border-radius:3px 3px 0 0}.forecast-bar.overdue{background:var(--fail)}.forecast-tick{font-family:var(--mono);font-size:calc(10px * var(--font-scale));color:var(--text-faint);text-align:center;flex-shrink:0}.mastery-bar{border-radius:var(--r-xs);background:var(--surface-3);gap:2px;height:10px;display:flex;overflow:hidden}.mastery-bar>i{transition:width var(--t-base);display:block}.next-action{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-lg);margin-bottom:var(--sp-4);padding:18px 20px}.next-action .headline{font-size:calc(17px * var(--font-scale));letter-spacing:-.012em;margin-bottom:4px;font-weight:600}.next-action .why{color:var(--text-2);font-size:calc(14px * var(--font-scale));max-width:62ch;line-height:1.6}.module-head{align-items:center;gap:12px;margin-bottom:4px;display:flex}.module-ring{flex-shrink:0}.decay{width:100%;height:72px;overflow:visible}.sparkline{opacity:.85;width:100%;height:26px;margin-top:8px;overflow:visible}.streak{font-family:var(--mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;color:var(--accent)}.nav-count{font-family:var(--mono);font-size:calc(10.5px * var(--font-scale));letter-spacing:.04em;border-radius:var(--r-xs);background:var(--accent-soft);min-width:18px;height:18px;color:var(--accent);flex-shrink:0;place-items:center;margin-left:auto;padding:0 5px;display:grid}.sidebar.collapsed .nav-count{display:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}.nav-item:focus-visible,.recent-item:focus-visible,.lesson-row:focus-visible,.palette-item:focus-visible{outline-offset:-2px}.toast-viewport{z-index:200;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{pointer-events:auto;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);min-width:260px;max-width:380px;box-shadow:var(--shadow-lg);align-items:flex-start;gap:10px;padding:12px 14px;animation:.22s cubic-bezier(.2,0,.2,1) both toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)scale(.98)}}.toast.leaving{animation:.16s both toastOut}@keyframes toastOut{to{opacity:0;transform:translateY(6px)}}.toast .ico{flex-shrink:0;margin-top:1px}.toast.success .ico{color:var(--pass)}.toast.error .ico{color:var(--fail)}.toast .body{flex:1;min-width:0}.toast .title{font-size:calc(14px * var(--font-scale));font-weight:550}.toast .detail{font-size:calc(13px * var(--font-scale));color:var(--text-muted);margin-top:1px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:64px 24px;display:flex}.empty-state .mark{border-radius:var(--r-md);border:1px solid var(--border);width:44px;height:44px;color:var(--text-faint);place-items:center;margin-bottom:12px;display:grid}.empty-state h3{font-size:calc(16px * var(--font-scale));font-weight:550}.empty-state p{color:var(--text-muted);font-size:calc(13.5px * var(--font-scale));max-width:42ch;margin:0;line-height:1.6}.empty-state .actions{gap:8px;margin-top:16px;display:flex}.palette-overlay{background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:300;justify-content:center;align-items:flex-start;padding:12vh 24px 24px;animation:.12s both fade;display:flex;position:fixed;inset:0}.palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:min(620px,100%);max-height:62vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.16s cubic-bezier(.2,0,.2,1) both pop;display:flex;overflow:hidden}.palette-input{border-bottom:1px solid var(--border-soft);color:var(--text-faint);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-input input{min-width:0;font-size:calc(16px * var(--font-scale));color:var(--text);background:0 0;border:none;flex:1;padding:0}.palette-input input:focus,.palette-input input:focus-visible{box-shadow:none;border:none;outline:none}.palette-input kbd{color:var(--text-faint);border-color:var(--border-soft);background:0 0;flex-shrink:0}.palette-list{padding:6px;overflow-y:auto}.palette-group{color:var(--text-faint);font-family:var(--mono);font-size:var(--label-size);text-transform:uppercase;letter-spacing:var(--label-track);padding:12px 10px 4px}.palette-list>div:first-child .palette-group{padding-top:4px}.palette-item[aria-selected=true]{position:relative}.palette-item[aria-selected=true]:before{content:"";background:var(--accent);border-radius:1px;width:2px;position:absolute;top:6px;bottom:6px;left:0}.palette-item{border-radius:var(--r-sm);text-align:left;width:100%;color:var(--text-2);font-size:calc(14px * var(--font-scale));background:0 0;border:none;justify-content:flex-start;align-items:center;gap:11px;min-width:0;padding:8px 10px;font-weight:500;display:flex}.palette-item>span:not(.sub){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette-item .ico{color:var(--text-faint);flex-shrink:0}.palette-item[aria-selected=true]{background:var(--selected);color:var(--text)}.palette-item[aria-selected=true] .ico{color:var(--accent)}.palette-item .sub{color:var(--text-faint);font-weight:450;font-size:calc(12px * var(--font-scale));flex-shrink:0;margin-left:auto}.palette-foot{border-top:1px solid var(--border-soft);color:var(--text-faint);font-size:calc(11.5px * var(--font-scale));align-items:center;gap:14px;padding:9px 14px;display:flex}.palette-foot kbd{border-bottom-width:1px;padding:1px 5px;font-size:10.5px}.page-head .pane-eyebrow{color:var(--accent);margin-bottom:8px;display:block}.route{animation:.16s both routeIn}@keyframes routeIn{0%{opacity:0;transform:translateY(4px)}}.spinner{border:1.75px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tour-layer{z-index:1000;pointer-events:auto;position:fixed;inset:0}.tour-dimmer{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f0e0ca8;animation:.18s both fade;position:absolute;inset:0}.tour-spotlight{z-index:1;border:2px solid color-mix(in srgb, var(--accent) 78%, white);box-shadow:0 0 0 9999px #0f0e0cad, 0 0 0 5px var(--accent-soft), 0 12px 36px #0000003d;pointer-events:none;background:0 0;border-radius:12px;transition:left .22s,top .22s,width .22s,height .22s;position:fixed}.tour-card{z-index:2;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);width:min(360px,100vw - 32px);padding:20px;animation:.2s cubic-bezier(.2,0,.2,1) both tourCardIn;position:fixed;box-shadow:0 20px 60px #00000052}.tour-card.centered{width:min(510px,100vw - 32px);top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes tourCardIn{0%{opacity:0;translate:0 7px}}.tour-topline{color:var(--text-faint);font:650 var(--label-size) var(--mono);letter-spacing:var(--label-track);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:14px;display:flex}.tour-topline>span{flex:1}.tour-topline .ghost{color:var(--text-faint);font-family:var(--sans);letter-spacing:0;text-transform:none}.tour-mark{background:var(--accent-soft);width:29px;height:29px;color:var(--accent);border-radius:8px;place-items:center;display:grid}.tour-card h2{font-size:calc(21px * var(--font-scale));line-height:1.2}.tour-card p{color:var(--text-muted);font-size:calc(13.5px * var(--font-scale));margin:9px 0 20px;line-height:1.65}.tour-footer{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:14px;padding-top:14px;display:flex}.tour-dots{align-items:center;gap:4px;display:flex}.tour-dots i{background:var(--surface-3);width:5px;height:5px;transition:width var(--t-base), background var(--t-base);border-radius:50%}.tour-dots i.done{background:var(--accent-line)}.tour-dots i.active{border-radius:var(--r-pill);background:var(--accent);width:17px}@media (width<=560px){.tour-card.anchored,.tour-card.centered{width:auto;bottom:12px;right:12px;transform:none;top:auto!important;left:12px!important}.tour-card{padding:17px}.tour-card h2{font-size:calc(19px * var(--font-scale))}.tour-footer{align-items:flex-end}}.fatal-screen{background:var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.fatal-card{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);width:min(560px,100%);box-shadow:var(--shadow-lg);padding:28px}.fatal-mark{width:42px;height:42px;color:var(--accent);background:var(--accent-soft);border-radius:11px;place-items:center;margin-bottom:16px;display:grid}.fatal-card h1{margin-top:10px}.fatal-card p{color:var(--text-muted);margin:9px 0 20px;line-height:1.7}.fatal-card details{color:var(--text-faint);font-size:calc(12px * var(--font-scale));margin-top:20px}.fatal-card details code{overflow-wrap:anywhere;margin-top:8px;padding:9px;display:block}.scrim{background:var(--overlay);z-index:40;border:0;border-radius:0;width:100%;height:100%;padding:0;animation:.15s both fade;position:fixed;inset:0}.sidebar.drawer{z-index:50;width:min(300px,84vw);transition:transform var(--t-base);box-shadow:var(--shadow-lg);border-right:1px solid var(--border);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.drawer.open{transform:none}.sidebar.drawer .sidebar-head .sidebar-toggle{display:inline-flex}@media (width<=860px){.page{padding:var(--sp-5) var(--sp-4) max(40px, env(safe-area-inset-bottom))}.topbar{gap:8px;min-height:50px;padding:8px 12px}.topbar .crumb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-head h1{font-size:calc(26px * var(--font-scale))}.card{padding:var(--sp-4)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:8px}.concept-row{grid-template-columns:1fr 78px;row-gap:6px}.concept-row .bar{order:3;grid-column:1/-1}.settings-dialog{border:none;border-radius:0;grid-template-rows:auto 1fr;grid-template-columns:1fr;width:100vw;height:100dvh;max-height:none}.settings-rail{border-right:none;border-bottom:1px solid var(--border-soft);scrollbar-gutter:auto;gap:4px;padding:12px;display:flex;overflow:auto hidden}.settings-rail>div{display:contents}.settings-group{display:none}.settings-rail button.nav{white-space:nowrap;flex-shrink:0;width:auto}.settings-body{padding:20px 16px 48px}.field{flex-direction:column;align-items:flex-start;gap:10px}.field-control{width:100%}.palette-overlay{align-items:stretch;padding:0}.palette{border:none;border-radius:0;width:100%;height:100dvh;max-height:none}.atom h1,.stage-title{font-size:calc(26px * var(--font-scale))}.prose{font-size:calc(15.5px * var(--font-scale))}.controls{flex-wrap:wrap}.controls .play{min-width:88px}.watch{flex-direction:column;min-height:calc(100dvh - 168px);display:flex}.watch>.stage{flex:auto}.modal{border-radius:var(--r-lg);padding:20px}.cm-editor{height:300px}}@media (width<=660px){.lesson-row{flex-wrap:wrap;row-gap:3px}.lesson-count{text-align:left;width:100%;padding-left:37px}}@media (width<=460px){.page{padding:var(--sp-4) 12px 72px}.stat-grid{grid-template-columns:1fr 1fr}.segmented{width:100%}.segmented button{flex:1;padding:6px 4px}.stage{min-height:300px;padding:24px 16px}.lesson-row{padding:10px 8px}}@media (width<=700px){.page{padding-bottom:max(32px, env(safe-area-inset-bottom))}.lesson-workspace-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lesson-workspace-actions{flex:none}.lesson-workspace-bar>.fullscreen-toggle span,.lesson-workspace-actions>.fullscreen-toggle span{display:none}.lesson-workspace-bar>.fullscreen-toggle,.lesson-workspace-actions>.fullscreen-toggle{padding-inline:6px}.watch{flex-direction:column;min-height:calc(100dvh - 168px);display:flex}.watch-toolbar{align-items:center;gap:8px;min-width:0}.watch-toolbar>.step-kind{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.watch-toolbar-actions{flex:none;gap:2px}.watch-toolbar-actions .ghost.tiny{padding:5px 6px}.stage{flex:auto;width:100%;min-width:0;min-height:320px;padding:88px 18px 26px}.stage-meta{flex-direction:column;align-items:flex-start;gap:7px;min-width:0;display:flex;position:absolute;inset:15px 16px auto}.stage-section,.stage-focus{min-width:0;max-width:100%;position:static}.stage-section{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage-focus{text-overflow:ellipsis;white-space:nowrap;padding:4px 8px;font-size:9px;overflow:hidden}.stage-body{width:100%;min-width:0}.stage-heading{font-size:calc(23px * var(--font-scale))}.stage-text{font-size:clamp(16px, calc(17px * var(--font-scale)), 19px);line-height:1.48}.stage-text ul,.stage-text ol{padding-left:1.15em}.stage-text li{margin-bottom:8px}.stage-code{font-size:calc(12.5px * var(--font-scale));margin-top:16px;padding:12px 10px;line-height:1.65}.stage-line{grid-template-columns:20px 10px minmax(max-content,1fr);min-height:1.65em;margin:0 -5px;padding:0 5px}.stage-line-number{padding-right:5px}.stage-terms,.stage-trace{align-items:flex-start;gap:5px;margin-top:11px}.stage-terms code,.stage-trace i{overflow-wrap:anywhere;max-width:100%}.scene-rail{flex-wrap:nowrap;gap:3px;margin:10px 0 12px}.scene-rail .pip{min-width:3px}.controls{grid-template-columns:minmax(0,1fr) minmax(88px,1.2fr) minmax(0,1fr);gap:7px;width:100%;display:grid}.controls .control-back,.controls .control-play,.controls .control-next{width:100%;min-width:0;padding-inline:7px}.controls .control-spacer{display:none}.controls .preparing{text-align:center;grid-column:1/-1;margin:0}.controls .control-voice{grid-column:2;min-width:0;padding-inline:6px}.controls .control-rate{grid-column:3;width:100%;min-width:0}.controls .control-rate .rate-trigger{width:100%}.watch-help{margin-top:8px;padding:0 8px;line-height:1.45}.watch-actions{margin-top:16px}.lecture-check h1{font-size:calc(27px * var(--font-scale))}.lecture-check>.muted{line-height:1.55}.lecture-choices button{padding:11px}.learning-score{grid-template-columns:1fr;align-items:start}.problem-solve-bar,.rep-headline{flex-wrap:wrap;align-items:flex-start;gap:9px}.problem-level-meta{flex-wrap:wrap;flex:180px;min-width:0}.problem-clock-actions{flex:none;margin-left:auto}.rep-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:70%;overflow:hidden}.pane{padding:15px}.editor-head{flex-wrap:wrap;align-items:center}.editor-file{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.editor-actions{flex-wrap:wrap;flex:none;margin-left:auto}.cm-editor{height:min(360px,52dvh)}.rep-editor .cm-editor{height:min(260px,42dvh)}}@media (width<=460px){.page{padding-inline:10px;padding-bottom:max(24px, env(safe-area-inset-bottom))}.lesson-workspace-bar{gap:6px}.lesson-workspace-actions>.ghost:not(.fullscreen-toggle){padding-inline:7px}.watch-toolbar .fullscreen-toggle span{display:none}.stage{min-height:300px;padding-inline:14px}.stage-meta{inset-inline:13px}.stage-terms>span,.stage-trace>span{flex-basis:100%}.controls{grid-template-columns:minmax(0,1fr) minmax(80px,1.15fr) minmax(0,1fr)}.controls button,.controls select{font-size:calc(12px * var(--font-scale))}.watch-actions{margin-top:12px}.watch-actions button{width:100%}.editor-actions{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-left:0;display:grid}.editor-actions button{width:100%;min-width:0;padding-inline:5px}.lecture-check .card{padding:14px}.review-reference-row,.exercise-reference-row{align-items:flex-start}.review-reference-row .review-lesson-button,.exercise-reference-row .review-lesson-button{justify-content:center;width:100%}.lesson-review-overlay{padding:0}.lesson-review-modal{width:100%;height:100dvh;max-height:none;padding:12px 10px max(18px, env(safe-area-inset-bottom));border:0;border-radius:0}.lesson-review-header{margin:-12px -10px 12px;padding:12px 10px 10px;top:-12px}}.prose,.stage-text,.lesson-goal,.field-help,.rep-prompt{overflow-wrap:anywhere}pre,.stage-code,.diff{max-width:100%}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}::-webkit-scrollbar-track{background:0 0}.course-hero-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.course-eyebrow{font-size:calc(11px * var(--font-scale));letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);font-weight:700}.course-hero-top .language-picker{flex-direction:row;align-items:center;width:auto;margin:0}.course-hero-top .language-label{display:none}.course-hero-top .language-trigger{border-color:var(--border-soft);background:color-mix(in srgb, var(--surface-2) 65%, transparent);width:auto;height:32px;box-shadow:none;border-radius:999px;gap:8px;padding:0 11px}.course-hero-top .language-trigger:hover:not(:disabled),.course-hero-top .language-trigger.open{background:var(--surface-2);border-color:var(--border-strong)}.course-hero-top .language-monogram{display:none}.course-hero-top .language-name{font-size:calc(13px * var(--font-scale));letter-spacing:0;font-weight:600}.course-hero-top .language-trigger .ico{color:var(--text-faint)}.course-hero-main{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.course-hero-copy{flex:1;min-width:0}.course-hero-cta{flex-shrink:0}.project-gallery{border:1px solid var(--accent-line);border-radius:var(--r-md);background:color-mix(in srgb, var(--accent) 6%, transparent);margin:12px 2px 10px;padding:14px 14px 12px}.project-gallery-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.project-gallery-title{font-weight:700;font-size:calc(13px * var(--font-scale));letter-spacing:-.01em}.project-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.project-card{border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--surface-1);transition:border-color var(--t-fast), transform var(--t-fast);flex-direction:column;gap:6px;padding:12px;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-card-title{font-weight:680;font-size:calc(14px * var(--font-scale));letter-spacing:-.01em}.project-card-hook{color:var(--accent);font-size:calc(12px * var(--font-scale));font-weight:600}.project-card-build{color:var(--text-2);font-size:calc(12.5px * var(--font-scale));margin:2px 0 0;line-height:1.45}.project-card-uses{flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:8px;display:flex}.project-card-uses span{background:var(--surface-3);color:var(--text-faint);font:600 10px var(--mono);border-radius:999px;padding:2px 7px}.project-card-stretch{font-size:calc(11.5px * var(--font-scale));color:var(--text-faint);line-height:1.4}.project-card-stretch b{color:var(--accent);margin-right:3px;font-weight:700}@media (width<=720px){.project-grid{grid-template-columns:1fr}}.language-picker{flex-direction:column;gap:5px;width:170px;margin-bottom:14px;display:flex;position:relative}.language-label{color:var(--text-faint);font-size:calc(11px * var(--font-scale))}.language-trigger{border-color:var(--border);background:var(--surface);width:100%;height:39px;box-shadow:var(--shadow-sm);justify-content:flex-start;gap:9px;padding:5px 9px}.language-trigger:hover:not(:disabled),.language-trigger.open{border-color:var(--border-strong);background:var(--surface-2)}.language-trigger.open{box-shadow:0 0 0 3px var(--accent-soft)}.language-trigger .ico{color:var(--text-faint);transition:transform var(--t-base);margin-left:auto}.language-trigger.open .ico{transform:rotate(180deg)}.language-name{letter-spacing:-.01em;font-weight:650}.language-monogram{--language-color:var(--accent);border:1px solid color-mix(in srgb, var(--language-color) 36%, var(--border));background:color-mix(in srgb, var(--language-color) 14%, var(--surface));width:26px;height:26px;color:color-mix(in srgb, var(--language-color) 82%, var(--text));font:750 10px var(--mono);letter-spacing:-.03em;border-radius:7px;flex:0 0 26px;place-items:center;display:grid}.language-picker.compact{width:36px;margin:0 auto}.language-picker.compact .language-trigger{width:36px;height:36px;box-shadow:none;background:0 0;border-color:#0000;border-radius:10px;justify-content:center;padding:0}.language-picker.compact .language-trigger:hover,.language-picker.compact .language-trigger.open{background:var(--selected);border-color:#0000}.language-picker.compact .language-monogram{background:0 0;border:none;flex-basis:28px;width:28px;height:28px;font-size:11px}.language-menu{z-index:600;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg);padding:7px;animation:.14s cubic-bezier(.2,0,.2,1) both pop;position:fixed}.language-menu-head{color:var(--text-faint);font:650 var(--label-size) var(--mono);letter-spacing:var(--label-track);text-transform:uppercase;padding:5px 7px 7px}.language-option{text-align:left;white-space:normal;background:0 0;border:1px solid #0000;justify-content:flex-start;gap:10px;width:100%;min-height:61px;padding:8px}.language-option:hover:not(:disabled){background:var(--hover);border-color:#0000}.language-option.active{border-color:var(--accent-line);background:var(--accent-soft)}.language-option-copy{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.language-option-copy strong{font-size:calc(13.5px * var(--font-scale));font-weight:650}.language-option-copy small{color:var(--text-muted);font-size:calc(11px * var(--font-scale));line-height:1.35}.language-option>.ico{color:var(--accent);flex-shrink:0}.language-menu>p{color:var(--text-faint);font-size:calc(10.5px * var(--font-scale));margin:6px 7px 3px}
