@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.pro-badge{background:var(--sun-soft);color:var(--sun-ink);font-weight:var(--fw-heavy,800);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--sun);border-radius:999px;align-items:center;gap:4px;padding:2px 10px;display:inline-flex}.pro-badge svg{width:14px;height:14px}.paywall{gap:var(--sp-3);border:2px solid var(--sun);border-bottom-width:5px;flex-direction:column;display:flex}.paywall h2,.paywall h3{margin:0}.paywall-reason{margin:0;font-size:1.05rem}.paywall-benefits{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.paywall-benefits li{gap:var(--sp-2);align-items:flex-start;display:flex}.paywall-benefits svg{width:18px;height:18px;color:var(--ok-ink);flex:none;margin-top:3px}.paywall-inline{gap:var(--sp-2);padding:var(--sp-3);border:2px dashed var(--sun);border-radius:var(--r-md,14px);background:var(--sun-soft);color:var(--text);flex-direction:column;align-items:flex-start;display:flex}.paywall-inline p{margin:0}.plan-toggle{background:var(--surface-2);border:2px solid var(--border);border-radius:999px;flex-wrap:wrap;justify-content:center;align-self:center;gap:4px;padding:4px;display:inline-flex}.plan-toggle button{min-height:40px;color:var(--text-2);font:inherit;font-weight:var(--fw-strong,700);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 16px;display:inline-flex}.plan-toggle button.active{background:var(--surface-1);color:var(--text);box-shadow:0 2px 0 var(--border-strong)}.plan-toggle button:focus-visible{outline:3px solid var(--focus,var(--brand));outline-offset:2px}.plan-save{font-size:var(--fs-xs);color:var(--ok-ink);background:var(--ok-soft);border-radius:999px;padding:1px 8px}@media (max-width:520px){.plan-toggle{border-radius:20px;grid-template-columns:1fr 1fr;width:100%;max-width:420px;display:grid}.plan-toggle button{text-align:center;border-radius:16px;flex-direction:column;justify-content:center;gap:2px;padding:6px 8px;line-height:1.2}.plan-save{white-space:normal}}.plan-price{flex-direction:column;gap:2px;display:flex}.plan-price strong{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.1}.pricing{max-width:960px;margin:0 auto}.pricing-head{text-align:center}.pricing-head .lead{color:var(--text-2);max-width:40rem;margin:0 auto}.pricing>.plan-toggle{margin:0 auto}.pricing-cards{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));display:grid}.pricing-cards-single{grid-template-columns:minmax(0,420px);justify-content:center}.pricing-card{gap:var(--sp-3);padding:var(--sp-5);border:2px solid var(--border);background:var(--surface-1);border-bottom-width:5px;border-radius:20px;flex-direction:column;display:flex}.pricing-card h3{align-items:center;gap:var(--sp-2);margin:0;display:flex}.pricing-card p{margin:0}.pricing-card .btn{margin-top:auto}.pricing-card-pro{border-color:var(--sun)}.pricing-compare td,.pricing-compare th{vertical-align:middle}.pricing-compare td{text-align:center}.cmp-yes svg{color:var(--ok-ink);width:20px;height:20px}.cmp-no svg{color:var(--text-faint);width:20px;height:20px}.table-scroll{overflow-x:auto}.faq{gap:var(--sp-2);display:grid}.faq details{border:2px solid var(--border);padding:var(--sp-3) var(--sp-4);background:var(--surface-1);border-radius:14px}.faq summary{cursor:pointer;font-weight:var(--fw-strong,700);min-height:28px}.faq details p{margin:var(--sp-2) 0 0;color:var(--text-2)}.checkout-form h2{margin:0}.checkout-form .plan-toggle{align-self:flex-start}.consent-check{align-items:flex-start;gap:var(--sp-3);display:flex}.consent-check input{width:22px;height:22px;accent-color:var(--brand);flex:none;margin-top:11px}.consent-check label{min-height:var(--tap,44px);padding:10px 0;line-height:1.45;display:block}.legal-draft-inline{border:1px dashed var(--warning);background:var(--warning-bg);border-radius:10px;margin:0;padding:4px 10px}.subscription-status{gap:var(--sp-2);flex-direction:column;display:flex}.subscription-status h2{align-items:center;gap:var(--sp-2);margin:0;display:flex}.subscription-status p{margin:0}.notice{padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);background:var(--surface-2);border-radius:14px}.notice-ok{border-color:var(--ok);background:var(--ok-soft)}.notice-warn{border-color:var(--warning);background:var(--warning-bg)}.pricing-compare tbody th[scope=row]{text-transform:none;letter-spacing:normal;font-size:var(--fs-sm);font-weight:var(--fw-strong,700);color:var(--text)}.pricing-compare td{font-size:var(--fs-sm)}.analytics .admin-stats{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.analytics .admin-stat{border:2px solid var(--border);padding:var(--sp-4);border-radius:16px;flex-direction:column;gap:2px;display:flex}.analytics .admin-stat b{font-size:1.6rem;line-height:1.1;display:block}.analytics h2,.analytics h3{margin:0}.annual-challenge{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:2px solid var(--brand-line);background:var(--brand-soft);border-radius:14px}.annual-challenge strong{margin-bottom:4px;font-size:1.05rem;display:block}.annual-challenge p{color:var(--text);margin:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:#16a34a;--brand-d:#0e7a36;--brand-soft:#e3f7e9;--brand-line:#9fe3b6;--brand-strong:#127436;--brand-strong-d:#0e5e2c;--on-brand:#fff;--logo-ink:#127436;--logo-accent:#2fcb6a;--ok:#2fc47e;--ok-d:#1e9a5f;--ok-soft:#ddf8ea;--ok-ink:#11774a;--bad:#ff5b61;--bad-d:#d63b41;--bad-soft:#ffe4e5;--bad-ink:#b3262c;--sun:#ffc43d;--sun-d:#de9c00;--sun-soft:#fff4d6;--sun-ink:#8a5f00;--on-sun:#3a2a00;--flame:#ff8a1f;--flame-ink:#c2410c;--gem:#16a34a;--mem:#e0569b;--mem-ink:#b8307a;--sky:#1fa2f0;--lock:#e3e1ec;--lock-d:#c9c6d6;--lock-ink:#5c5972;--lock-icon:#a09db2;--shadow:#2a28381f;--bg:#fff;--surface-1:#fff;--surface-2:#f5f3fc;--surface-3:#edeaf6;--surface-hover:#f0eef8;--border:#e6e2f4;--border-strong:#d4cfe6;--text:#2a2838;--text-2:#45425a;--text-muted:#5f5c74;--text-faint:#6a677f;--text-read:#34324a;--accent:#127436;--accent-strong:#0e6b30;--accent-bg:#e3f7e9;--accent-contrast:#fff;--xp:#8a5f00;--xp-bg:#fff4d6;--success:#11774a;--success-bg:#ddf8ea;--warning:#b45309;--warning-bg:#fff1dc;--danger:#b3262c;--danger-bg:#ffe4e5;--info:#0369a1;--info-bg:#e3f2fc;--st-locked:#8c89a0;--st-not-started:#6f6c84;--st-learning:#b45309;--st-practicing:#0369a1;--st-competent:#11774a;--st-mastered:#7c3aed;--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-neg:#e34948;--viz-mid:#e6e2f4;--viz-grid:#efedf7;--viz-axis:#d4cfe6;--code-bg:#f7f6fb;--warm:#c2410c;--warm-bg:#fff1e3;--shadow-1:0 1px 2px #2a28380f;--shadow-2:0 10px 30px #2a28381f;--shadow-3:0 24px 64px #2a28382e;--overlay:#2a283873;--status-bar-bg:#0e5e2c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#2fcb6a;--brand-d:#1c9a4c;--brand-soft:#163a25;--brand-line:#237a45;--brand-strong:#127436;--brand-strong-d:#0b4a22;--logo-ink:#fff;--logo-accent:#4ade80;--ok-soft:#153828;--ok-ink:#7be3ae;--bad-soft:#3d1e22;--bad-ink:#ff9a9e;--sun-soft:#3a2f12;--sun-ink:#ffc43d;--flame-ink:#ff9f4a;--mem-ink:#f08cbf;--lock:#2c2a3b;--lock-d:#222030;--lock-ink:#a5a2ba;--lock-icon:#6b6882;--shadow:#0006;--bg:#15141d;--surface-1:#15141d;--surface-2:#1f1d2b;--surface-3:#282636;--surface-hover:#242232;--border:#2f2c40;--border-strong:#3d3a52;--text:#f2f0fa;--text-2:#d0cde0;--text-muted:#a5a2ba;--text-faint:#9290a8;--text-read:#dedbeb;--accent:#4ade80;--accent-strong:#86efac;--accent-bg:#163a25;--accent-contrast:#06240f;--xp:#ffc43d;--xp-bg:#ffc43d21;--success:#7be3ae;--success-bg:#153828;--warning:#ffb454;--warning-bg:#ffb45421;--danger:#ff9a9e;--danger-bg:#3d1e22;--info:#6cc4f5;--info-bg:#6cc4f521;--st-locked:#6b6882;--st-not-started:#a5a2ba;--st-learning:#ffb454;--st-practicing:#6cc4f5;--st-competent:#7be3ae;--st-mastered:#c4a1ff;--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70;--viz-neg:#e66767;--viz-mid:#2f2c40;--viz-grid:#232130;--viz-axis:#3d3a52;--code-bg:#111018;--warm:#ff9f4a;--warm-bg:#ff8a1f21;--shadow-1:0 1px 2px #0006;--shadow-2:0 10px 30px #00000073;--shadow-3:0 24px 64px #0000008c;--overlay:#06050ab3;--status-bar-bg:#15141d}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:#2fcb6a;--brand-d:#1c9a4c;--brand-soft:#163a25;--brand-line:#237a45;--brand-strong:#127436;--brand-strong-d:#0b4a22;--logo-ink:#fff;--logo-accent:#4ade80;--ok-soft:#153828;--ok-ink:#7be3ae;--bad-soft:#3d1e22;--bad-ink:#ff9a9e;--sun-soft:#3a2f12;--sun-ink:#ffc43d;--flame-ink:#ff9f4a;--mem-ink:#f08cbf;--lock:#2c2a3b;--lock-d:#222030;--lock-ink:#a5a2ba;--lock-icon:#6b6882;--shadow:#0006;--bg:#15141d;--surface-1:#15141d;--surface-2:#1f1d2b;--surface-3:#282636;--surface-hover:#242232;--border:#2f2c40;--border-strong:#3d3a52;--text:#f2f0fa;--text-2:#d0cde0;--text-muted:#a5a2ba;--text-faint:#9290a8;--text-read:#dedbeb;--accent:#4ade80;--accent-strong:#86efac;--accent-bg:#163a25;--accent-contrast:#06240f;--xp:#ffc43d;--xp-bg:#ffc43d21;--success:#7be3ae;--success-bg:#153828;--warning:#ffb454;--warning-bg:#ffb45421;--danger:#ff9a9e;--danger-bg:#3d1e22;--info:#6cc4f5;--info-bg:#6cc4f521;--st-locked:#6b6882;--st-not-started:#a5a2ba;--st-learning:#ffb454;--st-practicing:#6cc4f5;--st-competent:#7be3ae;--st-mastered:#c4a1ff;--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70;--viz-neg:#e66767;--viz-mid:#2f2c40;--viz-grid:#232130;--viz-axis:#3d3a52;--code-bg:#111018;--warm:#ff9f4a;--warm-bg:#ff8a1f21;--shadow-1:0 1px 2px #0006;--shadow-2:0 10px 30px #00000073;--shadow-3:0 24px 64px #0000008c;--overlay:#06050ab3;--status-bar-bg:#15141d}:root{--font-sans:"Nunito Variable", "Nunito", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.3125rem;--fs-xl:1.75rem;--fs-2xl:2.25rem;--lh-tight:1.2;--lh-base:1.55;--fw-body:600;--fw-strong:800;--fw-heavy:900;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:22px;--r-full:999px;--press:4px;--tap:44px;--sidebar-w:248px;--topbar-h:60px;--mobile-nav-h:66px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--topbar-total:calc(var(--topbar-h) + var(--safe-top));--content-max:1180px;--reading-max:760px;--focusbar-h:56px;--read-max:700px;--focus-wide-max:1240px;--ease:cubic-bezier(.2, .7, .2, 1);--ease-bounce:cubic-bezier(.3, 1.4, .5, 1);--dur:.16s}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{line-height:var(--lh-tight);font-weight:var(--fw-heavy);letter-spacing:-.01em;text-wrap:balance;margin:0}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}h4{font-size:var(--fs-base)}p{margin:0}a{color:var(--accent);font-weight:var(--fw-strong);text-decoration:none}a:hover{color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline}code,kbd,pre{font-family:var(--font-mono);font-size:.875em}:not(pre)>code{background:var(--surface-3);border:1px solid var(--border);border-radius:6px;padding:.08em .36em;font-weight:500}kbd{border:1px solid var(--border-strong);background:var(--surface-2);min-width:1.6em;color:var(--text-2);font-size:var(--fs-xs);text-align:center;border-bottom-width:2px;border-radius:5px;padding:0 .4em;line-height:1.6;display:inline-block}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--brand-soft)}strong,b{font-weight:var(--fw-strong)}:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:6px}[hidden]{display:none!important}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{left:var(--sp-4);z-index:1000;background:var(--brand-strong);color:var(--on-brand);font-weight:var(--fw-heavy);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--sp-3)}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.tabular{font-variant-numeric:tabular-nums}.stack{gap:var(--sp-4);flex-direction:column;display:flex}.stack-sm{gap:var(--sp-2);flex-direction:column;display:flex}.stack-lg{gap:var(--sp-6);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-3);display:flex}.row-sm{align-items:center;gap:var(--sp-2);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{--c:var(--surface-1);--cd:var(--border);--ink:var(--text);justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--tap);border-radius:var(--r-md);border:2px solid var(--cd);background:var(--c);color:var(--ink);box-shadow:0 var(--press) 0 var(--cd);font-size:var(--fs-sm);font-weight:var(--fw-heavy);letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:transform 70ms ease-out, box-shadow 70ms ease-out, filter var(--dur), background var(--dur);-webkit-user-select:none;user-select:none;padding:8px 18px;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn:hover{filter:brightness(1.04);color:var(--ink);background:var(--c);text-decoration:none}.btn:active:not(:disabled){transform:translateY(var(--press));box-shadow:0 0 0 var(--cd)}.btn:disabled{--c:var(--lock);--cd:var(--lock-d);--ink:var(--lock-ink);cursor:not-allowed;filter:none}.btn svg{flex:none;width:18px;height:18px}.btn-primary{--c:var(--brand-strong);--cd:var(--brand-strong-d);--ink:var(--on-brand);text-transform:uppercase;letter-spacing:.06em;border-color:#0000}.btn-primary:hover{color:var(--on-brand)}.btn-ghost{--c:transparent;--cd:transparent;--ink:var(--text-2);box-shadow:none}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-ghost:active:not(:disabled){transform:none}.btn-danger{--ink:var(--danger)}.btn-success{--c:var(--ok);--cd:var(--ok-d);--ink:#05301c;border-color:#0000}.btn-sun{--c:var(--sun);--cd:var(--sun-d);--ink:var(--on-sun);border-color:#0000}.btn-sm{min-height:36px;font-size:var(--fs-xs);--press:3px;border-radius:var(--r-sm);padding:4px 12px}.btn-lg{min-height:52px;font-size:var(--fs-base);padding:10px 24px}.btn-icon{width:var(--tap);padding:0}.btn-icon.btn-sm{width:36px}.btn-block{width:100%}.card{background:var(--surface-1);border:2px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5)}.card-tight{padding:var(--sp-4)}.card-flush{padding:0;overflow:hidden}.card-header{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.card-title{font-size:var(--fs-base);font-weight:var(--fw-heavy);color:var(--text)}.card-link{color:inherit;font-weight:inherit;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), transform 70ms;border-bottom-width:5px;display:block}.card-link:hover{border-color:var(--brand-line);background:var(--surface-1);color:inherit;text-decoration:none}.card-link:active{transform:translateY(2px)}.badge{border-radius:var(--r-full);min-height:24px;font-size:12px;font-weight:var(--fw-heavy);letter-spacing:.02em;background:var(--surface-2);color:var(--text-2);white-space:nowrap;border:2px solid #0000;align-items:center;gap:5px;padding:0 10px;display:inline-flex}.badge svg{width:13px;height:13px}.badge-accent{background:var(--brand-soft);color:var(--accent)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-xp{background:var(--xp-bg);color:var(--xp)}.badge-outline{border-color:var(--border);color:var(--text-muted);background:0 0}.state-badge{--c:var(--st-not-started);background:color-mix(in srgb, var(--c) 13%, transparent);color:var(--c)}.state-badge .dot{background:var(--c);border-radius:50%;width:7px;height:7px}.state-LOCKED{--c:var(--st-locked)}.state-NOT_STARTED{--c:var(--st-not-started)}.state-LEARNING{--c:var(--st-learning)}.state-PRACTICING{--c:var(--st-practicing)}.state-COMPETENT{--c:var(--st-competent)}.state-MASTERED{--c:var(--st-mastered)}.progress{border-radius:var(--r-full);background:var(--border);height:12px;position:relative;overflow:hidden}.progress>span{border-radius:inherit;background:var(--brand);transition:width .5s var(--ease-bounce);position:absolute;inset:0 auto 0 0}.progress>span:after{content:"";background:#ffffff59;border-radius:3px;height:25%;min-height:2px;position:absolute;top:25%;left:8px;right:8px}.progress-success>span{background:var(--ok)}.progress-xp>span{background:var(--sun)}.progress-lg{height:16px}.progress-sm{height:8px}.progress-sm>span:after{display:none}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--text-2)}.field .hint{font-size:var(--fs-xs);color:var(--text-muted)}.input,.textarea,.select{width:100%;min-height:var(--tap);border-radius:var(--r-md);border:2px solid var(--border);background:var(--surface-2);color:var(--text);font-weight:var(--fw-body);transition:border-color var(--dur), box-shadow var(--dur), background var(--dur);padding:9px 14px}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.textarea{resize:vertical;min-height:96px;line-height:1.5}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand);background:var(--surface-1);box-shadow:0 0 0 4px var(--brand-soft);outline:none}.form-error{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:2px solid color-mix(in srgb, var(--bad) 40%, transparent);background:var(--danger-bg);color:var(--danger);font-size:var(--fs-sm);font-weight:var(--fw-strong)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--brand)}.callout{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-lg);border:2px solid color-mix(in srgb, var(--info) 30%, transparent);background:var(--info-bg);display:flex}.callout>svg{width:20px;height:20px;color:var(--info);flex:none;margin-top:2px}.callout-tip{border-color:color-mix(in srgb, var(--success) 30%, transparent);background:var(--success-bg)}.callout-tip>svg{color:var(--success)}.callout-warning{border-color:color-mix(in srgb, var(--warning) 30%, transparent);background:var(--warning-bg)}.callout-warning>svg{color:var(--warning)}.tabs{gap:var(--sp-2);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2);scrollbar-width:none;padding:4px;display:flex;overflow-x:auto}.tab{border-radius:var(--r-md);min-height:40px;color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-heavy);cursor:pointer;white-space:nowrap;background:0 0;border:2px solid #0000;flex:none;padding:8px 16px;position:relative}.tab:hover{color:var(--text);background:var(--surface-hover)}.tab[aria-selected=true]{color:var(--accent);background:var(--surface-1);border-color:var(--brand-line)}.tab-count{background:var(--bad);color:#fff;text-align:center;border-radius:999px;min-width:20px;margin-left:6px;padding:0 6px;font-size:12px;line-height:20px;display:inline-block}.advanced-settings>summary{cursor:pointer;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)}.advanced-settings>p{padding:0 var(--sp-2)}.modal-backdrop{z-index:100;padding:12vh var(--sp-4) var(--sp-4);background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .12s var(--ease);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.modal{background:var(--surface-1);border:2px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:560px;max-height:76vh;box-shadow:var(--shadow-3);animation:pop-in .18s var(--ease-bounce);overflow:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.palette-input{width:100%;height:56px;padding:0 var(--sp-5);border:none;border-bottom:2px solid var(--border);font-size:var(--fs-md);font-weight:var(--fw-strong);background:0 0;outline:none}.palette-list{padding:var(--sp-2);margin:0;list-style:none}.palette-group{padding:var(--sp-2) var(--sp-3) 4px;font-size:11px;font-weight:var(--fw-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.palette-item{align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:8px var(--sp-3);border-radius:var(--r-md);cursor:pointer;color:var(--text-2);font-weight:var(--fw-strong);display:flex}.palette-item svg{width:18px;height:18px;color:var(--text-muted);flex:none}.palette-item[aria-selected=true]{background:var(--brand-soft);color:var(--text)}.palette-item[aria-selected=true] svg{color:var(--accent)}.palette-item .sub{font-size:var(--fs-xs);color:var(--text-faint);margin-left:auto}.palette-footer{gap:var(--sp-4);padding:var(--sp-2) var(--sp-4);border-top:2px solid var(--border);font-size:var(--fs-xs);color:var(--text-faint);display:flex}.toasts{right:calc(var(--sp-5) + var(--safe-right));bottom:calc(var(--sp-5) + var(--safe-bottom));z-index:200;gap:var(--sp-2);pointer-events:none;flex-direction:column;width:min(360px,100vw - 32px);display:flex;position:fixed}.toast{pointer-events:auto;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface-1);box-shadow:var(--shadow-2);font-size:var(--fs-sm);animation:toast-in .26s var(--ease-bounce);border-bottom-width:5px;align-items:center;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.toast>svg{background:var(--brand-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;flex:none;padding:8px}.toast-xp>svg{color:var(--sun-ink);background:var(--sun-soft)}.toast-skill>svg{color:var(--success);background:var(--success-bg)}.toast-unlock>svg{color:var(--accent)}.toast-achievement>svg{color:var(--sun-ink);background:var(--sun-soft)}.toast-error>svg{color:var(--danger);background:var(--danger-bg)}.toast-update>svg{color:var(--accent)}.toast-xp{border-color:color-mix(in srgb, var(--sun) 55%, var(--border))}.toast-error{border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.toast-title{font-weight:var(--fw-heavy)}.toast>div{flex:1;min-width:0}.toast-action{margin-top:var(--sp-2)}.toast-close{border-radius:var(--r-sm);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;margin:-4px -8px 0 0;display:grid}.toast-close:hover{background:var(--surface-2);color:var(--text)}.toast-close svg{width:18px;height:18px}.empty{align-items:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-6);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty .bit{width:96px;margin-bottom:var(--sp-2)}.empty-title{color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-heavy)}.empty>svg{width:28px;height:28px;color:var(--text-faint)}.error-state{align-items:center;gap:var(--sp-4);text-align:center;max-width:520px;margin:var(--sp-8) auto;flex-direction:column;display:flex}.error-state .bit{width:120px}.error-state h1{font-size:var(--fs-xl)}.error-state p{color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.flow{flex-direction:column;align-items:stretch;gap:0;max-width:460px;margin:0 auto;display:flex}.flow-step{align-items:center;gap:var(--sp-3);padding:10px var(--sp-4);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);animation:rise .24s var(--ease) both;display:flex;position:relative}.flow-step .n{background:var(--brand-soft);width:22px;height:22px;color:var(--accent);font-size:12px;font-weight:var(--fw-heavy);border-radius:50%;flex:none;place-items:center;display:grid}.flow-arrow{background:var(--border-strong);align-self:center;width:1px;height:18px;position:relative}.flow-arrow:after{content:"";border:4.5px solid #0000;border-top-color:var(--border-strong);border-bottom:0;position:absolute;bottom:-1px;left:-4px}.flow-caption{margin-top:var(--sp-3);text-align:center;font-size:var(--fs-sm);color:var(--text-muted)}.prose{color:var(--text-read);font-size:var(--fs-base);font-weight:500;line-height:1.7}.prose>*+*{margin-top:.9em}.prose h1,.prose h2,.prose h3{color:var(--text);margin-top:1.4em}.prose strong{color:var(--text);font-weight:var(--fw-strong)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.3em}.prose blockquote{padding:var(--sp-2) var(--sp-4);border-left:4px solid var(--brand);background:var(--brand-soft);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--text);margin-left:0;margin-right:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:8px 12px}.prose th{color:var(--text);font-weight:var(--fw-heavy)}.prose pre{padding:var(--sp-4);border-radius:var(--r-md);background:var(--code-bg);border:2px solid var(--border);line-height:1.55;overflow-x:auto}.prose .katex-display{padding:4px 0;overflow:auto hidden}.prose .katex{font-size:1.06em}.prose-sm{font-size:var(--fs-sm);line-height:1.6}.code-block{padding:var(--sp-4);border-radius:var(--r-md);background:var(--code-bg);border:2px solid var(--border);font-family:var(--font-mono);color:var(--text);margin:0;font-size:13px;line-height:1.6;overflow-x:auto}@media (max-width:900px){.toasts{right:calc(var(--sp-4) + var(--safe-right));bottom:calc(var(--mobile-nav-h) + var(--sp-3) + var(--safe-bottom))}.input,.textarea,.select,.term-input,.palette-input{font-size:16px}.tabs{padding-right:var(--sp-8);scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.tab{scroll-snap-align:start}}@media (pointer:coarse){.btn-sm{min-height:var(--tap)}.btn-icon.btn-sm{width:var(--tap)}.widget-controls input[type=range]{height:28px}.course-chip{min-width:var(--tap);justify-content:center}a.xs,.path-more-link,.btn-ghost.btn-icon{min-height:var(--tap);align-items:center;display:inline-flex}.btn{min-height:var(--tap)}a.xs,.btn{min-width:var(--tap);justify-content:center}:is(.widget label:has(>input[type=checkbox]),.widget label:has(>input[type=radio])){min-height:var(--tap);align-items:center;display:inline-flex}}.lang-picker{gap:6px;display:grid}.lang-picker-compact{justify-items:center}.lang-picker-control{align-items:center;gap:8px;display:inline-flex}.lang-picker-control>svg{width:18px;height:18px;color:var(--text-muted,currentColor);flex:none}.lang-picker-control select{width:auto;min-width:9rem}.lang-beta{font-size:.75rem}.lang-beta-notice{max-width:32rem;margin:0}@media (max-width:480px){.toasts{left:calc(12px + var(--safe-left,0px));right:calc(12px + var(--safe-right,0px));width:auto}.toast{padding-right:var(--sp-3)}.toast-close{width:44px;height:44px;margin:0}}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{gap:var(--sp-4);height:100vh;padding:calc(var(--sp-5) + var(--safe-top)) var(--sp-3) calc(var(--sp-4) + var(--safe-bottom)) calc(var(--sp-3) + var(--safe-left));border-right:2px solid var(--border);background:var(--bg);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{padding:4px var(--sp-3) var(--sp-2);color:var(--text);align-items:center;gap:10px;display:flex}.brand:hover{color:var(--text);text-decoration:none}.brand-mark{flex:none;width:38px;height:38px}.brand-name{font-size:19px;font-weight:var(--fw-heavy);color:var(--accent);letter-spacing:-.01em;line-height:1.05}.brand-name small{font-size:11px;font-weight:var(--fw-heavy);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:3px;display:block}.nav{flex-direction:column;gap:4px;display:flex}.nav-label{padding:var(--sp-4) var(--sp-3) 4px;font-size:12px;font-weight:var(--fw-heavy);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.nav-link{min-height:50px;padding:0 var(--sp-3);border-radius:var(--r-md);color:var(--text-muted);font-size:15px;font-weight:var(--fw-heavy);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:left;background:0 0;border:2px solid #0000;align-items:center;gap:14px;width:100%;display:flex}.nav-link svg{flex:none;width:30px;height:30px}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--brand-soft);border-color:var(--brand-line);color:var(--accent)}.nav-more{gap:12px;min-height:40px;font-size:13px}.nav-more svg{width:20px;height:20px;color:var(--text-muted);margin:0 5px}.nav-more.active svg{color:var(--accent)}.nav-link .count{border-radius:var(--r-full);background:var(--bad);color:#fff;min-width:24px;font-size:12px;font-weight:var(--fw-heavy);text-align:center;letter-spacing:0;margin-left:auto;padding:0 7px;line-height:22px}.sidebar-footer{gap:var(--sp-2);flex-direction:column;margin-top:auto;display:flex}.level-chip{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--bg);color:inherit;flex-direction:column;gap:8px;display:flex}.level-chip:hover{color:inherit;border-color:var(--brand-line);text-decoration:none}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;align-items:center;gap:var(--sp-3);height:var(--topbar-total);padding:var(--safe-top) calc(var(--sp-6) + var(--safe-right)) 0 var(--sp-6);border-bottom:2px solid var(--border);background:var(--bg);display:flex;position:sticky;top:0}.course-chip{color:var(--text);font-weight:var(--fw-heavy);min-height:var(--tap);align-items:center;gap:8px;font-size:17px;display:none}.course-chip:hover{color:var(--text);text-decoration:none}.course-chip svg{width:32px;height:32px}.search-trigger{align-items:center;gap:var(--sp-2);width:min(420px,100%);min-height:var(--tap);padding:0 var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-strong);cursor:pointer;display:flex}.search-trigger:hover{border-color:var(--border-strong);color:var(--text)}.search-trigger svg{flex:none;width:18px;height:18px}.search-trigger kbd{white-space:nowrap;margin-left:auto}.search-trigger span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar-stats{margin-left:auto}.page{width:100%;max-width:var(--content-max);padding:var(--sp-8) var(--sp-6) var(--sp-12);margin:0 auto}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.page-header h1{font-size:clamp(1.75rem,1.4rem + 1.2vw,2.25rem)}.page-header p{color:var(--text-muted);max-width:640px;margin-top:6px}.page-header .bit{width:72px;margin-right:var(--sp-2)}.eyebrow{font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.mobile-nav{display:none}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.topbar{gap:var(--sp-2);padding:var(--safe-top) calc(var(--sp-3) + var(--safe-right)) 0 calc(var(--sp-4) + var(--safe-left))}.course-chip{display:inline-flex}.search-trigger{width:var(--tap);background:0 0;border-color:#0000;flex:none;justify-content:center;padding:0}.search-trigger span,.search-trigger kbd{display:none}.search-trigger svg{width:22px;height:22px}.page{padding:var(--sp-5) calc(var(--sp-4) + var(--safe-right)) var(--sp-12) calc(var(--sp-4) + var(--safe-left))}.main>main{padding-bottom:calc(var(--mobile-nav-h) + var(--safe-bottom))}.mobile-nav{z-index:30;height:calc(var(--mobile-nav-h) + var(--safe-bottom));padding:6px calc(8px + var(--safe-right)) calc(6px + var(--safe-bottom)) calc(8px + var(--safe-left));border-top:2px solid var(--border);background:var(--bg);grid-template-columns:repeat(5,1fr);gap:4px;display:grid;position:fixed;inset:auto 0 0}.tabbar-item{border-radius:var(--r-md);min-width:0;color:var(--text-muted);font-size:11px;font-weight:var(--fw-heavy);letter-spacing:.02em;border:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex}.tabbar-item:hover{color:var(--text);text-decoration:none}.tabbar-icon{place-items:center;display:grid}.tabbar-item svg{width:28px;height:28px}.tabbar-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar-item.active{border-color:var(--brand-line);background:var(--brand-soft);color:var(--accent)}}@media (max-width:420px){.game-stat{gap:4px;padding:4px 5px;font-size:16px}.game-stat svg{width:22px;height:22px}.course-chip span{display:none}}.more-tile.theme-tile{display:none}@media (max-width:520px){.topbar>.theme-toggle{display:none}.more-tile.theme-tile{display:flex}.topbar{gap:4px}.topbar>*{flex-shrink:0}.topbar>.topbar-stats{flex-shrink:1;min-width:0}.topbar-stats .game-stat{min-width:0}.topbar-stats .game-stat span{text-overflow:ellipsis;overflow:hidden}}@media (max-width:380px){.topbar{padding-left:calc(var(--sp-3) + var(--safe-left));padding-right:calc(var(--sp-2) + var(--safe-right));gap:2px}.game-stat{gap:3px;padding:4px 3px}.topbar .forum-bell,.topbar-more,.topbar .search-trigger{width:40px;min-width:40px}}.shell,.shell>.main,.shell main{overflow-x:clip}.auth{background:var(--bg);grid-template-columns:1fr minmax(360px,520px);min-height:100vh;display:grid}.auth-aside{justify-content:space-between;gap:var(--sp-8);padding:var(--sp-12);background:var(--brand-strong);color:var(--on-brand);flex-direction:column;display:flex}.auth-aside .brand-name,.auth-aside .brand-name small{color:#fff}.auth-aside{--logo-ink:#fff;--logo-accent:#4ade80}.auth-aside h1{font-size:var(--fs-2xl);letter-spacing:-.02em;max-width:520px}.auth-aside ul{margin:var(--sp-8) 0 0;gap:var(--sp-4);max-width:480px;padding:0;list-style:none;display:grid}.auth-aside li{gap:var(--sp-3);font-size:var(--fs-md);display:flex}.auth-aside li svg{flex:none;width:22px;height:22px;margin-top:2px}.auth-aside .xs{color:#fff;opacity:.85}.auth-hero{align-items:flex-end;gap:var(--sp-4);display:flex}.auth-hero .bit{background:#ffffffeb;border-radius:50%;width:170px;padding:18px 20px 8px;box-shadow:0 6px #0000001f}.auth-main{padding:calc(var(--sp-10) + var(--safe-top)) calc(var(--sp-8) + var(--safe-right)) calc(var(--sp-10) + var(--safe-bottom)) var(--sp-8);flex-direction:column;justify-content:center;display:flex}.auth-aside{isolation:isolate;background:radial-gradient(900px 500px at 110% -10%, #ffffff24, transparent 60%), radial-gradient(700px 500px at -20% 110%, #00000038, transparent 60%), var(--brand-strong);position:relative;overflow:hidden}.auth-floats{z-index:-1;pointer-events:none;position:absolute;inset:0}.auth-floats span{font-family:var(--font-mono,ui-monospace, monospace);white-space:nowrap;color:#ffffff21;left:calc(6% + (var(--i) * 37 % 80) * 1%);top:calc(8% + (var(--i) * 53 % 84) * 1%);animation:auth-float calc(14s + var(--i) * 1.7s) ease-in-out calc(var(--i) * -2.3s) infinite alternate;border:1px solid #ffffff1f;border-radius:999px;padding:4px 10px;font-size:.95rem;position:absolute}@keyframes auth-float{0%{transform:translate(0,0)rotate(-3deg)}to{transform:translate(18px,-26px)rotate(3deg)}}.auth-brand{position:relative}.auth-aside-body{gap:var(--sp-6);max-width:560px;display:grid}.auth-intro{gap:var(--sp-5);grid-template-columns:150px minmax(0,1fr);align-items:center;display:grid}.auth-hero-bit .landing-bit-btn{width:150px}.auth-hero-bit .landing-bit-btn .bit{width:100%;transform:rotate(var(--bit-lean,0deg));transform-origin:50% 92%;background:#fffffff2;border-radius:50%;padding:14px 16px 6px;transition:transform .35s ease-out;box-shadow:0 6px #00000024}.auth-hero-bit .landing-bit-say{color:var(--text)}.auth-aside h1{margin:0}.auth-aside-lead{margin:var(--sp-2) 0 0;opacity:.92;font-size:var(--fs-md)}.auth-aside h2{font-size:var(--fs-md);margin:0 0 var(--sp-3);color:#fff}.auth-card{padding:var(--sp-4) var(--sp-5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000002e;border:1px solid #ffffff29;border-radius:18px}.auth-steps{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.auth-steps li{align-items:center;gap:var(--sp-3);display:flex}.auth-step-n,.auth-path-n{width:30px;height:30px;color:var(--brand-strong);background:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid;box-shadow:0 3px #0000002e}.auth-path{gap:10px;margin:0;padding:0 0 0 4px;list-style:none;display:grid;position:relative}.auth-path:before{content:"";border-left:3px dotted #ffffff73;position:absolute;top:14px;bottom:14px;left:18px}.auth-path li{align-items:center;gap:var(--sp-3);font-weight:700;display:flex;position:relative}.auth-path-n{width:28px;height:28px;font-size:.9rem}.auth-path li:first-child .auth-path-n{background:var(--sun,#facc15);color:#3b2f00}.auth-aside ul.auth-perks{max-width:none;font-size:var(--fs-sm,.92rem);gap:var(--sp-3) var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.auth-aside ul.auth-perks li{font-size:inherit}@media (prefers-reduced-motion:reduce){.auth-floats span{animation:none}.auth-hero-bit .landing-bit-btn .bit{transition:none;transform:none}}@media (max-width:1180px){.auth-aside ul.auth-perks{grid-template-columns:1fr}}.auth-form{gap:var(--sp-4);flex-direction:column;width:100%;max-width:380px;margin:0 auto;display:flex}.auth-greet{align-items:center;gap:var(--sp-2);text-align:center;flex-direction:column;display:flex}.auth-greet .bit-says{width:100%}.auth-greet h2{font-size:var(--fs-xl)}.auth-greet .bit-bubble{text-align:left}.auth-form .btn-lg{margin-top:var(--sp-2)}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-main{padding:calc(var(--sp-8) + var(--safe-top)) calc(var(--sp-4) + var(--safe-right)) calc(var(--sp-8) + var(--safe-bottom)) calc(var(--sp-4) + var(--safe-left));justify-content:flex-start}}body:before{content:"";z-index:150;height:var(--safe-top);background:var(--status-bar-bg);pointer-events:none;position:fixed;inset:0 0 auto}.theme-toggle{width:var(--tap);height:var(--tap);border:2px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.theme-toggle svg{width:20px;height:20px}.auth-prefs{justify-content:center}.auth-aside-grid{gap:var(--sp-10);grid-template-columns:minmax(0,560px);align-items:center;display:grid}.auth-showcase{display:none}@media (min-width:1240px){.auth-aside-grid{grid-template-columns:minmax(0,560px) minmax(300px,440px);justify-content:space-between}.auth-showcase{gap:var(--sp-4);display:grid}}.showcase-editor{background:#0f1a14;border:1px solid #ffffff24;border-radius:16px;animation:7s ease-in-out infinite alternate showcase-bob;overflow:hidden;transform:rotate(-1.5deg);box-shadow:0 18px 40px #00000047,0 6px #0000002e}.showcase-bar{background:#ffffff0f;align-items:center;gap:6px;padding:10px 14px;font-size:.8rem;display:flex}.showcase-bar span{background:#ff6b6b;border-radius:50%;width:10px;height:10px}.showcase-bar span:nth-child(2){background:#ffd43b}.showcase-bar span:nth-child(3){background:#51cf66}.showcase-bar b{color:#e7f5ec;margin-left:8px;font-weight:700}.showcase-bar em{color:#7fe0a0;opacity:.85;margin-left:auto;font-style:normal}.showcase-code{font:.9rem/1.6 var(--font-mono,ui-monospace, monospace);color:#e7f5ec;margin:0;padding:14px 16px 6px;display:grid}.showcase-code code{white-space:pre;opacity:0;clip-path:inset(0 100% 0 0);animation:12s steps(28,end) infinite showcase-type;animation-delay:calc(var(--l) * .9s)}.showcase-code .k{color:#c792ea;font-style:normal}.showcase-code .f{color:#82aaff;font-style:normal}.showcase-code .n{color:#f78c6c;font-style:normal}.showcase-code .s{color:#c3e88d;font-style:normal}.showcase-out{font:.9rem var(--font-mono,ui-monospace, monospace);color:#fff;opacity:0;background:#ffffff0f;border-radius:10px;margin:4px 16px 0;padding:8px 12px;animation:12s 5s infinite showcase-show}.showcase-prompt{color:#7fe0a0;margin-right:6px}.showcase-tests{color:#06281a;opacity:0;background:#2fcb6a;border-radius:999px;justify-self:start;margin:10px 16px 14px;padding:4px 12px;font-size:.85rem;font-weight:800;animation:12s 6s infinite showcase-pop;display:inline-block;transform:scale(.8)}.showcase-cards{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.showcase-card{color:#1d2b22;background:#fffffff2;border-radius:16px;align-items:center;gap:10px;padding:12px 14px;animation:6s ease-in-out infinite alternate showcase-bob;display:flex;box-shadow:0 6px #00000024}.showcase-xp{animation-delay:-3s;transform:rotate(1.5deg)}.showcase-streak{transform:rotate(-1deg)}.showcase-card strong{font-size:1rem;display:block}.showcase-card small{opacity:.75;font-size:.78rem;display:block}.showcase-emoji{font-size:1.7rem;animation:2.4s ease-in-out infinite showcase-pulse}.showcase-graph{background:#0000002e;border:1px solid #ffffff29;border-radius:16px;padding:12px 14px 6px}.showcase-graph-title{margin-bottom:4px;font-size:.9rem;font-weight:800}.showcase-graph svg{width:100%;height:auto;display:block}.showcase-graph line{stroke:#ffffff59;stroke-width:3px;stroke-dasharray:4 6}.showcase-graph circle{fill:#ffffff40;stroke:#fff;stroke-width:2.5px;animation:9s infinite showcase-node;animation-delay:calc(var(--n) * .8s)}@keyframes showcase-type{0%{opacity:1;clip-path:inset(0 100% 0 0)}8%,88%{opacity:1;clip-path:inset(0)}96%,to{opacity:0;clip-path:inset(0)}}@keyframes showcase-show{0%{opacity:0;transform:translateY(6px)}6%,80%{opacity:1;transform:none}90%,to{opacity:0}}@keyframes showcase-pop{0%{opacity:0;transform:scale(.8)}5%{opacity:1;transform:scale(1.08)}9%,72%{opacity:1;transform:scale(1)}82%,to{opacity:0;transform:scale(.9)}}@keyframes showcase-bob{0%{translate:0}to{translate:0 -8px}}@keyframes showcase-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes showcase-node{0%{fill:#ffffff40}8%,70%{fill:#facc15}80%,to{fill:#4ade80}}@media (prefers-reduced-motion:reduce){.showcase-editor,.showcase-card,.showcase-emoji,.showcase-graph circle{animation:none}.showcase-code code,.showcase-out,.showcase-tests{opacity:1;clip-path:none;animation:none;transform:none}.showcase-graph circle{fill:#4ade80}}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-accent{color:var(--accent)}.text-xp{color:var(--xp)}.btn-reset{cursor:pointer;text-align:left;color:inherit;background:0 0;border:none;padding:0}.plain-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bullet-list{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.guide-list{gap:var(--sp-2);color:var(--text-2);flex-direction:column;margin:0;padding-left:1.3em;display:flex}.topic-chips{flex-wrap:wrap;gap:6px;display:flex}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.grid-2{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.card-planned{background:var(--surface-2);border-style:dashed}.page-wide{max-width:1320px}.page-narrow{max-width:820px}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th,.table td{padding:10px var(--sp-4);text-align:left;border-bottom:1px solid var(--border)}.table th{font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.table tr:last-child td{border-bottom:none}.card-heading{font-size:var(--fs-md);color:var(--text);font-weight:800}h3.card-heading{font-size:var(--fs-base)}.stats-row{gap:var(--sp-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{padding:var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);min-width:0}.stat-label{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:6px;font-weight:700;display:flex}.stat-label svg{width:14px;height:14px}.stat-value{font-size:var(--fs-lg);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:4px 0 2px;font-weight:800;overflow:hidden}.rec-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rec{gap:var(--sp-3);padding:var(--sp-3);margin:0 calc(var(--sp-3) * -1);border-radius:var(--r-md);color:inherit;align-items:flex-start;display:flex}.rec:hover{background:var(--surface-2);color:inherit;text-decoration:none}.rec>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.rec-icon{background:var(--accent-bg);width:30px;height:30px;color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.rec-icon svg{width:16px;height:16px}.rec-misconception{background:var(--warning-bg);color:var(--warning)}.rec-review{background:var(--xp-bg);color:var(--xp)}.rec-lab{background:var(--success-bg);color:var(--success)}.module{gap:var(--sp-4);flex-direction:column;display:flex}.module-head{gap:var(--sp-4);flex-wrap:wrap;align-items:flex-start;display:flex}.level-num{border-radius:var(--r-md);background:var(--surface-3);border:2px solid var(--border-strong);width:44px;height:44px;font-family:var(--font-mono);color:var(--accent);flex:none;place-items:center;font-weight:800;display:grid}.module-meter{flex-direction:column;gap:6px;width:240px;display:flex}.lesson-list{border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);flex-direction:column;display:flex;overflow:hidden}.lesson-row{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);color:inherit;display:flex}.lesson-row:last-child{border-bottom:none}.lesson-row:hover{background:var(--surface-2);color:inherit;text-decoration:none}.lesson-icon{background:var(--surface-3);width:32px;height:32px;color:var(--text-muted);border-radius:8px;flex:none;place-items:center;display:grid}.lesson-completed{background:var(--success-bg)}.planned-grid{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.planned-item{padding:var(--sp-3);border:2px dashed var(--border-strong);border-radius:var(--r-md);flex-direction:column;gap:4px;display:flex}.rm-layout{gap:var(--sp-6);grid-template-columns:1fr;align-items:start;display:grid}.rm-layout.has-detail{grid-template-columns:minmax(0,1fr) 420px}.rm-path{flex-direction:column;align-items:center;margin:0;padding:0;list-style:none;display:flex}.rm-row{flex-direction:column;align-items:center;width:100%;display:flex}.rm-connector{background:var(--border-strong);width:2px;height:22px}.rm-row-nodes{gap:var(--sp-4);justify-content:center;width:100%;display:flex}.rm-row-nodes>div{flex:0 260px;min-width:0}.rm-node{width:100%;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);text-align:left;cursor:pointer;transition:border-color var(--dur), background var(--dur), transform var(--dur) var(--ease);flex-direction:column;gap:6px;display:flex;position:relative}.rm-node:hover{border-color:var(--border-strong);background:var(--surface-2)}.rm-level{font-family:var(--font-mono);color:var(--text-muted);font-size:11px;font-weight:800}.rm-title{font-size:var(--fs-sm);font-weight:800;line-height:1.3}.rm-badge{width:16px;height:16px;position:absolute;top:10px;right:10px}.rm-available,.rm-in_progress{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.rm-in_progress{box-shadow:0 0 0 3px var(--accent-bg)}.rm-completed{border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.rm-planned{background:0 0;border-style:dashed}.rm-planned .rm-title{color:var(--text-muted)}.rm-locked{border-style:dashed}.rm-detail{top:calc(var(--topbar-total) + var(--sp-4));max-height:calc(100vh - var(--topbar-total) - var(--sp-8));padding:var(--sp-5);border:2px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface-1);box-shadow:var(--shadow-2);animation:rise .16s var(--ease);position:sticky;overflow-y:auto}.rm-detail h4{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.skill-card{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:6px;scroll-margin-top:90px;display:flex}.skill-card:target{border-color:var(--accent)}.skill-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.learn-nav-list{margin:var(--sp-2) 0 0;flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.learn-nav-item{padding:7px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-2);align-items:flex-start;gap:8px;line-height:1.35;display:flex}.learn-nav-item svg{width:15px;height:15px;color:var(--text-faint);flex:none;margin-top:2px}.learn-nav-item:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.learn-nav-item.current{background:var(--accent-bg);color:var(--text);font-weight:700}.learn-nav-item.locked{color:var(--text-faint);cursor:not-allowed}.lesson-header{gap:var(--sp-3);margin-bottom:var(--sp-8);flex-direction:column;display:flex}.lesson-header h1{font-size:var(--fs-2xl);letter-spacing:-.025em}.lead{font-size:var(--fs-md);color:var(--text-2)}.objective{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface-1);border:2px solid var(--border);display:flex}.objective>svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:2px}.sections{gap:var(--sp-10);flex-direction:column;display:flex}.lesson-section{gap:var(--sp-4);scroll-margin-top:calc(var(--topbar-total) + var(--sp-4));flex-direction:column;display:flex}.section-title{font-size:var(--fs-lg)}.summary{padding:var(--sp-5);border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface-1)}.summary ul{margin:var(--sp-3) 0 0;flex-direction:column;gap:6px;padding-left:1.2em;display:flex}.note{padding:var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2);border:2px solid var(--border);flex-direction:column;align-items:flex-start;gap:4px;display:flex}.exercise{gap:var(--sp-4);padding:var(--sp-5);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);flex-direction:column;display:flex}.exercise-passed{border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.exercise-head{gap:var(--sp-2);flex-direction:column;display:flex}.ide{border:2px solid var(--border-strong);border-radius:var(--r-md);background:var(--code-bg);overflow:hidden}.ide-toolbar{align-items:center;gap:var(--sp-3);padding:6px var(--sp-2) 6px var(--sp-3);border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;display:flex}.runtime{color:var(--text-faint);font-size:11px}.runtime-ready{color:var(--success)}.runtime-loading,.runtime-packages{color:var(--warning)}.runtime-error{color:var(--danger)}.code-editor{width:100%}.ide-panels{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.ide-panel{border-right:1px solid var(--border);min-width:0}.ide-panel:last-child{border-right:none}.ide-panel-title{padding:6px var(--sp-3);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border);background:var(--surface-1);font-size:11px;font-weight:800}.output{min-height:90px;max-height:260px;padding:var(--sp-3);font-family:var(--font-mono);background:var(--code-bg);border-top:1px solid var(--border);font-size:12.5px;overflow:auto}.ide-panel .output{border-top:none}.output pre{white-space:pre-wrap;word-break:break-word;margin:0}.output-error{color:var(--danger)}.output-meta{color:var(--text-faint);margin-top:6px;font-size:11px}.test-list{max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.test{border-bottom:1px solid var(--border)}.test-head{width:100%;padding:8px var(--sp-3);font-size:var(--fs-sm);text-align:left;cursor:pointer;color:var(--text-2);background:0 0;border:none;align-items:center;gap:8px;display:flex}.test-head svg{width:15px;height:15px;color:var(--text-faint);flex:none}.test-head .chev{width:13px}.test-pass .test-head>svg:first-child{color:var(--success)}.test-fail .test-head>svg:first-child{color:var(--danger)}.test-msg{padding:0 var(--sp-3) 8px 34px;font-family:var(--font-mono);color:var(--danger);white-space:pre-wrap;word-break:break-word;font-size:12px}.test-code{margin:0 var(--sp-3) var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2);font-size:12px;overflow-x:auto}.exercise-help{gap:var(--sp-3);flex-direction:column;display:flex}.hint,.solution{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:2px solid var(--border);border-left:3px solid var(--xp);background:var(--surface-2)}.solution{border-left-color:var(--accent)}.hint-label{letter-spacing:.06em;text-transform:uppercase;color:var(--xp);margin-bottom:4px;font-size:11px;font-weight:800}.solution .hint-label{color:var(--accent)}.teacher{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);border:2px solid var(--border);background:var(--surface-2);flex-direction:column;display:flex}.teacher-icon{width:18px;height:18px;color:var(--accent)}.teacher-questions{font-size:var(--fs-sm);color:var(--text);flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.teacher-badge{white-space:nowrap}.teacher-reset{margin-left:auto}.teacher-thread{gap:var(--sp-3);flex-direction:column;min-width:0;max-height:420px;display:flex;overflow-y:auto}.teacher-thread:empty{display:none}.teacher-exchange+.teacher-exchange{border-top:1px solid var(--border);padding-top:var(--sp-3)}.teacher-user{border-radius:var(--r-md);background:var(--accent-bg);overflow-wrap:anywhere;align-self:flex-end;max-width:90%;padding:6px 10px}.teacher-notice{border-radius:var(--r-md);background:var(--warning-bg);color:var(--warning);padding:6px 10px}.teacher-thread p,.ai-feedback p{overflow-wrap:anywhere;margin:0}.ollama-help{padding:var(--sp-3);border-radius:var(--r-md);border:1px dashed var(--border);background:var(--surface-1)}.ollama-help summary{cursor:pointer}.ollama-help .stack-sm{margin-top:var(--sp-2)}.ollama-steps{flex-direction:column;gap:4px;margin:0;padding-left:1.2em;display:flex}.ollama-steps code{overflow-wrap:anywhere}.taller-ask-tutor{margin-top:var(--sp-2);align-self:flex-start}.ai-feedback{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:2px solid var(--border);background:var(--surface-2);flex-direction:column;min-width:0;display:flex}.ai-feedback ul{font-size:var(--fs-sm);margin:0;padding-left:1.2em}.ai-required{border-radius:var(--r-md);background:var(--warning-bg);color:var(--warning);padding:8px 12px}.quiz{gap:var(--sp-4);padding:var(--sp-5);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);flex-direction:column;display:flex}.question{padding:var(--sp-4) 0 0;border:none;border-top:1px solid var(--border);gap:var(--sp-3);flex-direction:column;min-width:0;margin:0;display:flex}.question-prompt{gap:var(--sp-3);color:var(--text);padding:0;font-weight:700;display:flex}.q-num{background:var(--surface-3);width:22px;height:22px;color:var(--text-2);font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;margin-top:2px;font-size:11px;font-weight:800;display:grid}.options{gap:var(--sp-2);flex-direction:column;display:flex}.option{align-items:flex-start;gap:var(--sp-3);padding:10px var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;transition:border-color var(--dur), background var(--dur);display:flex}.option:hover{border-color:var(--border-strong)}.option input{accent-color:var(--accent);margin-top:4px}.option-checked{border-color:var(--accent);background:var(--accent-bg)}.option-inline{padding:8px var(--sp-4);align-items:center}.option-inline input{margin-top:0}.question:disabled .option{cursor:default}.order-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.order-item{align-items:center;gap:var(--sp-2);padding:6px var(--sp-2) 6px var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);display:flex}.order-item .q-num{margin-top:0}.q-feedback{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);flex-direction:column;gap:6px;display:flex}.q-feedback svg{width:16px;height:16px}.q-feedback.ok{background:var(--success-bg)}.q-feedback.ok>.row-sm{color:var(--success)}.q-feedback.ko{background:var(--danger-bg)}.q-feedback.ko>.row-sm{color:var(--danger)}.quiz-result{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-md);flex-wrap:wrap;display:flex}.quiz-result.ok{background:var(--success-bg)}.quiz-result.ko{background:var(--warning-bg)}.widget{gap:var(--sp-4);flex-direction:column;display:flex}.widget-controls{gap:var(--sp-4) var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;display:grid}.range-with-input{align-items:center;gap:var(--sp-2);display:flex}.range-with-input input[type=range]{flex:1;min-width:0}.range-with-input .input{width:76px;min-height:32px;padding:4px 8px}.widget-controls .field span{font-size:var(--fs-xs);color:var(--text-muted)}.widget-controls input[type=range]{width:100%;accent-color:var(--accent)}.widget-body{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 220px;align-items:start;display:grid}.widget-readout{gap:var(--sp-2);font-size:var(--fs-sm);flex-direction:column;display:flex}.plot{border-radius:var(--r-md);background:var(--code-bg);border:2px solid var(--border);touch-action:none;width:100%;height:auto}.plot-square{max-width:340px}.plot .axis line,.plot line.axis{stroke:var(--border-strong);stroke-width:1px}.plot .grid line{stroke:var(--border);stroke-width:.5px}.plot .curve{fill:none;stroke:var(--text-muted);stroke-width:2px}.plot .step-line{stroke:var(--xp);stroke-width:1.5px;stroke-dasharray:3 3}.plot .pt{fill:var(--xp)}.plot .pt-current{fill:var(--accent);stroke:var(--bg);stroke-width:2px}.plot .tangent{fill:none;stroke:var(--success);stroke-width:1.5px;stroke-dasharray:5 4}.plot .secant{fill:none;stroke:var(--accent);stroke-width:2px}.plot-label{fill:var(--text-muted);font-size:12px;font-family:var(--font-mono)}.legend{vertical-align:middle;border-radius:2px;width:12px;height:3px;margin-right:6px;display:inline-block}.legend-secant{background:var(--accent)}.legend-tangent{background:var(--success)}.verdict{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm)}.verdict-ok{background:var(--success-bg);color:var(--success)}.verdict-warn{background:var(--warning-bg);color:var(--warning)}.verdict-bad{background:var(--danger-bg);color:var(--danger)}.vec line{stroke-width:3px}.vec text{font-family:var(--font-mono);font-size:14px;font-weight:700}.vec-a line{stroke:var(--accent)}.vec-a text,.head-a{fill:var(--accent)}.vec-b line{stroke:var(--xp)}.vec-b text,.head-b{fill:var(--xp)}.handle{fill:#0000;stroke:currentColor;cursor:grab}.vec-a .handle{stroke:var(--accent)}.vec-b .handle{stroke:var(--xp)}.matrices{align-items:center;gap:var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}.matrix-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.matrix-label{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:800}.matrix{border-collapse:separate;border-spacing:4px;border-left:2px solid var(--text-muted);border-right:2px solid var(--text-muted);border-radius:6px;padding:0 2px}.matrix td{text-align:center;min-width:38px;height:34px;font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--surface-2);transition:background var(--dur);border-radius:6px}.matrix td.hl{background:var(--accent-bg);color:var(--accent);font-weight:800}.op{font-size:var(--fs-lg);color:var(--text-muted)}.nn-canvas{aspect-ratio:1;border-radius:var(--r-md);border:2px solid var(--border);width:100%;max-width:340px;image-rendering:pixelated}.loss-chart{border-radius:var(--r-sm);background:var(--code-bg);border:2px solid var(--border);width:100%;height:90px}.loss-chart polyline{fill:none;stroke:var(--xp);stroke-width:1.5px}.latency-list{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.goals{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.goals li{gap:var(--sp-2);align-items:flex-start;display:flex}.goals svg{width:16px;height:16px;color:var(--text-faint);flex:none;margin-top:4px}.goals .goal-done svg{color:var(--success)}.goals .goal-done .prose{color:var(--text-muted);text-decoration:line-through}.terminal{height:260px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:2px solid var(--border-strong);font-family:var(--font-mono);color:#d7dbe4;cursor:text;background:#07090d;font-size:13px;line-height:1.6;overflow-y:auto}.term-prompt{color:#43c59e;white-space:nowrap}.term-out{white-space:pre-wrap;color:#aeb5c4}.term-line{gap:8px;display:flex}.term-input{color:#e7e9ef;min-width:0;font:inherit;caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1}.viz-legend{align-items:center;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;margin:0;display:flex}.viz-legend>span,.viz-legend>label{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.swatch-1{background:var(--viz-1)}.swatch-2{background:var(--viz-2)}.swatch-masked{background:repeating-linear-gradient(45deg, var(--border-strong) 0 2px, transparent 2px 5px);border:2px solid var(--border)}.dot{border-radius:50%;width:9px;height:9px;display:inline-block}.dot-1{background:var(--viz-1)}.dot-2{background:var(--viz-2)}.dot-hollow{border:2px solid var(--viz-2);background:0 0}.legend-fit{background:var(--text);height:2px}.legend-true{background:repeating-linear-gradient(90deg, var(--text-muted) 0 4px, transparent 4px 7px);height:2px}.check{align-items:center;gap:var(--sp-2);min-height:36px;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.bar{min-width:2px;height:100%;transition:width var(--dur) var(--ease);border-radius:0 4px 4px 0}.bar-1{background:var(--viz-1)}.bar-2{background:var(--viz-2)}.formula{padding:var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2);border:2px solid var(--border);overflow-x:auto}.formula p{margin:6px 0 0}.plot .hit{fill:#0000;stroke:none}.table-scroll{width:100%;max-width:100%;overflow-x:auto}.widget,.widget>*,.lab-layout>*{min-width:0}.sm-rows{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sm-row{gap:var(--sp-2);grid-template-columns:96px 76px minmax(60px,1fr) 72px 36px;align-items:center;display:grid}.sm-row .input{min-width:0;min-height:36px;padding:4px 8px}.sm-bars{flex-direction:column;gap:3px;min-width:0;display:flex}.sm-track{background:var(--surface-3);border-radius:0 4px 4px 0;height:14px;overflow:hidden}.sm-track-thin{height:8px}.sm-pct{text-align:right;white-space:nowrap}.sm-readout{gap:6px}.att-sentence{grid-column:1/-1}.att-body{grid-template-columns:minmax(0,1fr) 200px}.att-grid{font-variant-numeric:tabular-nums;gap:2px;display:grid}.att-row-contents{display:contents}.att-corner{align-self:end;padding:4px}.att-col{text-align:center;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);align-self:end;padding:2px;overflow:hidden}.att-rowhead{all:unset;box-sizing:border-box;cursor:pointer;border-radius:var(--r-sm);min-height:36px;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;justify-content:flex-end;align-items:center;max-width:110px;padding:0 6px;display:flex;overflow:hidden}.att-rowhead:focus-visible{outline:2px solid var(--accent)}.att-selected .att-rowhead{background:var(--accent-bg);color:var(--accent);font-weight:800}.att-cell{min-height:36px;color:var(--text);cursor:pointer;border-radius:4px;place-items:center;font-size:11px;display:grid}.att-strong{color:#fff}.att-masked{background:repeating-linear-gradient(45deg, var(--border) 0 2px, transparent 2px 6px)}.att-selected .att-cell{box-shadow:inset 0 0 0 2px var(--accent)}.att-scale i,.emb-scale i{vertical-align:middle;border-radius:3px;width:90px;height:10px;display:inline-block}.att-scale i{background:linear-gradient(90deg, var(--code-bg), var(--viz-1));border:2px solid var(--border)}.shape-list{color:var(--text-2);flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.att-detail{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-2);border:2px solid var(--border);flex-direction:column;min-width:0;display:flex}.att-table th,.att-table td{padding:6px var(--sp-3);white-space:nowrap}.bpe-text{resize:vertical;min-height:64px;font-family:var(--font-mono);font-size:var(--fs-sm)}.bpe-actions{flex-wrap:wrap}.viz-stats{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,2fr);display:grid}.viz-stat{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:2px;min-width:0;margin:0;display:flex}.viz-stat strong{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.bpe-spark svg{width:100%;height:64px}.spark-line{fill:none;stroke:var(--viz-1);stroke-width:2px;stroke-linejoin:round}.spark-dot{fill:var(--viz-1);stroke:var(--surface-2);stroke-width:2px}.bpe-grid{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 260px;align-items:start;display:grid}.bpe-tokens,.bpe-vocab{font-family:var(--font-mono);font-size:var(--fs-sm);flex-wrap:wrap;gap:6px 10px;margin:0;line-height:1.4;display:flex}.bpe-vocab{margin-top:var(--sp-2);gap:4px}.bpe-word{flex-wrap:wrap;gap:2px;display:inline-flex}.bpe-tok{white-space:pre;border:1px solid #0000;border-radius:4px;padding:2px 4px}.bpe-tok-0{background:color-mix(in oklab, var(--viz-1) 22%, transparent)}.bpe-tok-1{background:color-mix(in oklab, var(--viz-2) 22%, transparent)}.bpe-new{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.bpe-space{color:var(--text-faint)}.bpe-merges{gap:2px var(--sp-4);color:var(--text-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:0;padding-left:2.2em;display:grid}.bpe-pairs th,.bpe-pairs td{padding:6px var(--sp-3)}.bpe-next td{background:var(--accent-bg)}.emb-body{grid-template-columns:minmax(0,380px) minmax(0,1fr)}.emb-figure{margin:0}.emb-plot{touch-action:manipulation;max-width:380px}.emb-pt{cursor:pointer;outline:none}.emb-pt:focus-visible .emb-dot{stroke:var(--accent);stroke-width:3px}.emb-dot{stroke:var(--code-bg);stroke-width:2px}.emb-sel .emb-dot{stroke:var(--text);stroke-width:2px}.emb-label{fill:var(--text-2);font-size:11px;font-family:var(--font-sans);pointer-events:none}.emb-sel .emb-label{fill:var(--text);font-weight:700}.emb-vec{stroke:var(--text-muted);stroke-width:2px}.emb-head{fill:var(--text-muted)}.emb-vec-res{stroke:var(--text);stroke-width:2px;stroke-dasharray:5 4}.emb-head-res{fill:var(--text)}.emb-res{fill:var(--text);stroke:var(--code-bg);stroke-width:2px}.emb-res-label{fill:var(--text);font-weight:700}.emb-hit-ring{fill:none;stroke:var(--text);stroke-width:2px}.emb-scale i{background:linear-gradient(90deg, var(--viz-neg), var(--viz-mid), var(--viz-1))}.emb-neigh{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.emb-neigh li{gap:var(--sp-2);grid-template-columns:96px minmax(40px,1fr) 48px;align-items:center;display:grid}.emb-neigh .btn{justify-content:flex-start}.emb-bar{background:var(--surface-3);border-radius:0 4px 4px 0;height:8px;overflow:hidden}.emb-bar i{background:var(--viz-1);border-radius:0 4px 4px 0;height:100%;display:block}.emb-analogy{gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.emb-abc,.emb-presets{flex-wrap:wrap}.emb-abc .select{width:auto;min-width:0}.ll-stage{aspect-ratio:1;width:100%;max-width:380px;position:relative}.ll-canvas,.ll-overlay{border-radius:var(--r-md);width:100%;height:100%;position:absolute;inset:0}.ll-canvas{border:2px solid var(--border)}.ll-overlay{touch-action:none;cursor:crosshair}.ll-min{stroke:var(--text);stroke-width:2px}.ll-halo{fill:none;stroke:var(--code-bg);stroke-width:5px;stroke-linejoin:round;opacity:.85}.ll-path{fill:none;stroke-width:2px;stroke-linejoin:round}.ll-end{stroke:var(--code-bg);stroke-width:2px}.ll-start{fill:var(--text);stroke:var(--code-bg);stroke-width:2px}.ll-table th,.ll-table td{padding:6px var(--sp-2);white-space:nowrap}.of-true{fill:none;stroke:var(--text-muted);stroke-width:1.5px;stroke-dasharray:5 4}.of-train{fill:var(--viz-1);stroke:var(--code-bg);stroke-width:1.5px}.of-val{fill:none;stroke:var(--viz-2);stroke-width:1.5px;opacity:.8}.of-fit{fill:none;stroke:var(--text);stroke-width:2px}.of-bottom{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 220px;align-items:start;display:grid}.of-errors{margin:0}.of-noise{stroke:var(--text-muted);stroke-dasharray:4 3;stroke-width:1px}.of-group{cursor:pointer;opacity:.5;transition:opacity var(--dur)}.of-group:hover,.of-active{opacity:1}.of-bar-train{fill:var(--viz-1)}.of-bar-val{fill:var(--viz-2)}.of-active-label{fill:var(--text);font-weight:700}.lab-layout{gap:var(--sp-5);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.task{gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--border);align-items:flex-start;display:flex}.task svg{width:17px;height:17px}.criteria{color:var(--text-muted);margin:0;padding-left:1.1em}.task-detail .prose{color:var(--text-muted);font-size:var(--fs-xs);line-height:1.55}.task-detail .prose p{margin:0 0 .45em}.task-detail .prose p:last-child{margin-bottom:0}.task-state{width:32px;height:32px;color:var(--text-faint);flex:none;place-items:center;display:grid}.task-state.verified{color:var(--success)}.task-verify{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.task-verify code{font-size:var(--fs-xs);overflow-wrap:anywhere}.token-reveal{padding:var(--sp-3);border:1px solid color-mix(in srgb, var(--success) 40%, var(--border));border-radius:var(--r-md);background:var(--success-bg)}.token-reveal .code-block{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.token-value{overflow-wrap:anywhere;flex:1;min-width:0}.token-form{flex-wrap:wrap}.token-form .input{flex:220px;min-width:0}.token-list li{gap:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--border)}.token-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.stage-track{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.stage-track li{padding:6px var(--sp-3);border:2px solid var(--border);border-radius:var(--r-full);font-size:var(--fs-sm);background:var(--surface-1);align-items:center;gap:6px;display:flex}.stage-track li:not(:last-child):after{content:"→";margin-left:var(--sp-2);color:var(--text-faint)}.paper-layout{gap:var(--sp-6);grid-template-columns:minmax(0,1fr) 280px;display:grid}.misconception{padding:var(--sp-3);border-radius:var(--r-sm);background:var(--surface-2);flex-direction:column;gap:4px;display:flex}.achievement{gap:var(--sp-3);padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-1);opacity:.6;align-items:flex-start;display:flex}.achievement.earned{opacity:1;border-color:color-mix(in srgb, var(--st-mastered) 35%, var(--border))}.achievement-icon{background:var(--surface-3);width:34px;height:34px;color:var(--text-faint);border-radius:10px;flex:none;place-items:center;display:grid}.achievement-icon svg{width:17px;height:17px}.review-session{max-width:720px}.install-app h2{align-items:center;gap:var(--sp-2);display:flex}.install-app h2 svg{width:20px;height:20px;color:var(--accent)}.install-done{align-items:center;gap:var(--sp-2);color:var(--success);font-weight:700;display:flex}.install-done svg{width:18px;height:18px}.install-subtitle{font-size:var(--fs-sm);color:var(--text-2)}.install-steps{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding-left:1.4em;display:flex}.install-steps .inline-icon{vertical-align:-.18em;width:1.05em;height:1.05em;color:var(--accent)}.plan-today{border-color:var(--border-strong)}.plan-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plan-item{gap:var(--sp-3);border-bottom:1px solid var(--border);grid-template-columns:20px minmax(0,1fr) auto;align-items:start;padding:10px 0;display:grid}.plan-item:last-child{border-bottom:none}.plan-check{width:18px;height:18px;color:var(--text-faint);margin-top:1px}.plan-body{flex-direction:column;gap:4px;min-width:0;display:flex}.plan-title{font-size:var(--fs-sm);color:var(--text);overflow-wrap:anywhere;font-weight:700}.plan-title:hover{color:var(--accent)}.plan-item-done .plan-title{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint)}.plan-kind-icon{width:12px;height:12px}.plan-minutes{color:var(--text-muted);white-space:nowrap;padding-top:2px}.plan-session{padding:var(--sp-3) 0 2px;font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-weight:800}.plan-list-compact .plan-item{gap:var(--sp-2);grid-template-columns:16px minmax(0,1fr) auto;padding:6px 0}.plan-list-compact .plan-check{width:15px;height:15px}.plan-list-compact .plan-title{font-weight:500;font-size:var(--fs-xs);color:var(--text-2)}.nudges{gap:var(--sp-2);flex-direction:column;display:flex}.nudge{align-items:flex-start;gap:var(--sp-2);padding:10px var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);background:var(--surface-2);border:2px solid var(--border);display:flex}a.nudge:hover{border-color:var(--border-strong);color:var(--text);text-decoration:none}.nudge-icon{width:16px;height:16px;color:var(--info);flex:none;margin-top:2px}.nudge-streak{background:var(--warning-bg);border-color:color-mix(in srgb, var(--warning) 30%, var(--border))}.nudge-streak .nudge-icon{color:var(--warning)}.nudge-done{background:var(--success-bg);border-color:color-mix(in srgb, var(--success) 30%, var(--border))}.nudge-done .nudge-icon{color:var(--success)}.nudge-rest .nudge-icon{color:var(--text-muted)}.summary-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.summary-grid div{min-width:0}.summary-grid dt{font-size:var(--fs-xs);color:var(--text-muted)}.summary-grid dd{font-size:var(--fs-lg);margin:2px 0 0;font-weight:800}.plan-layout{gap:var(--sp-6);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.plan-week{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.plan-day{gap:var(--sp-3);padding:var(--sp-4);flex-direction:column;min-width:0;display:flex}.plan-day-name{text-transform:capitalize;font-weight:800}.plan-day-today{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));box-shadow:0 0 0 3px var(--accent-bg);grid-column:1/-1}.plan-day-past{opacity:.72;background:0 0}.plan-day-before-row{padding:var(--sp-2) var(--sp-4);grid-column:1/-1}.plan-day-before-row .plan-day-name{font-weight:700}.week-inputs{gap:var(--sp-2);border:none;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;margin:0;padding:0;display:grid}.week-input{min-width:0}.week-input label{text-align:center;font-family:var(--font-mono)}.week-input .input{text-align:center;width:100%;min-width:0;padding-left:6px;padding-right:6px}.insight-title{font-size:var(--fs-md);margin:0}.insights>*,.insights-pair>*{min-width:0}.insights .card-header{flex-wrap:wrap;margin-bottom:0}@media (max-width:1100px){.rm-layout.has-detail{grid-template-columns:1fr}.rm-detail{max-height:none;position:static}.lab-layout,.paper-layout,.plan-layout{grid-template-columns:1fr}}@media (max-width:900px){.grid-2,.widget-body,.att-body,.emb-body,.bpe-grid,.of-bottom,.ide-panels{grid-template-columns:1fr}.ide-panel{border-right:none;border-bottom:1px solid var(--border)}.module-meter{width:100%}.lesson-header h1{font-size:var(--fs-xl)}.hide-sm{display:none}}@media (max-width:640px){.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}:is(.widget-controls .field:has(select),.widget-controls>.row-sm,.widget-controls .field:has(.range-with-input)){grid-column:1/-1}.sm-row{grid-template-columns:minmax(0,1fr) 76px 64px 36px;grid-template-areas:"tok logit pct rm""bars bars bars bars";row-gap:4px}.sm-token{grid-area:tok}.sm-logit{grid-area:logit}.sm-pct{grid-area:pct}.sm-remove{grid-area:rm}.sm-bars{grid-area:bars}.viz-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.bpe-spark{grid-column:1/-1}}@media (max-width:520px){.hide-xs{display:none}.rm-row-nodes{gap:var(--sp-2)}.rm-row-nodes>div{flex:1 1 0;max-width:340px}.exercise,.quiz{padding:var(--sp-4)}.week-inputs{grid-template-columns:repeat(4,minmax(0,1fr))}.plan-week{grid-template-columns:1fr}}.lesson-list{border-radius:var(--r-lg);border-bottom-width:4px}.lesson-row{min-height:64px}.lesson-row:hover{background:var(--brand-soft)}.lesson-icon{background:var(--brand);color:#fff;width:40px;height:40px;box-shadow:0 3px 0 var(--brand-d);border-radius:50%}.lesson-icon svg{width:20px;height:20px}.lesson-icon.lesson-completed{background:var(--sun);color:#fff;box-shadow:0 3px 0 var(--sun-d)}.lesson-icon.lesson-completed svg{color:#fff!important}.lesson-icon.lesson-locked{background:var(--lock);color:var(--lock-icon);box-shadow:0 3px 0 var(--lock-d)}.lesson-available,.lesson-in_progress{background:var(--brand);color:#fff}.lesson-title{font-size:var(--fs-base);font-weight:var(--fw-heavy)}.lesson-row-locked{opacity:.75}.level-num{background:var(--brand-strong);color:#fff;width:52px;height:52px;box-shadow:0 4px 0 var(--brand-strong-d);font-family:var(--font-sans);font-weight:var(--fw-heavy);font-size:var(--fs-md);border:none;border-radius:50%}.module-head h2{font-size:var(--fs-lg)}.module-exam{min-height:32px;font-weight:var(--fw-heavy);padding:2px 12px}.rm-node{border-radius:var(--r-lg);min-height:var(--tap);border-bottom-width:5px}.rm-node:active{transform:translateY(2px)}.rm-level{font-family:var(--font-sans);font-weight:var(--fw-heavy);letter-spacing:.06em}.rm-title{font-size:var(--fs-base);font-weight:var(--fw-heavy)}.rm-available,.rm-in_progress{border-color:var(--brand-line);background:var(--brand-soft)}.rm-in_progress{box-shadow:none;border-color:var(--brand)}.rm-completed{border-color:color-mix(in srgb, var(--sun) 70%, var(--border));background:var(--sun-soft)}.rm-connector{background:var(--border);border-radius:2px;width:4px}.rm-selected{outline:3px solid var(--brand);outline-offset:3px}.rm-detail{border-width:2px;border-color:var(--border);border-radius:var(--r-xl)}.stat{border-radius:var(--r-lg);border-bottom-width:4px}.stat-value{font-weight:var(--fw-heavy);font-size:var(--fs-xl)}.skill-card{border-radius:var(--r-md)}.achievement{border-radius:var(--r-lg)}.achievement.earned{border-color:color-mix(in srgb, var(--sun) 60%, var(--border))}.achievement.earned .achievement-icon{background:var(--sun);color:#fff}.achievement-icon{border-radius:50%;width:40px;height:40px}.plan-day{border-radius:var(--r-lg)}.plan-day-today{border-color:var(--brand-line);box-shadow:none;background:var(--brand-soft)}.nudge{border-radius:var(--r-md);font-weight:var(--fw-strong)}.rec{border-radius:var(--r-md)}.rec:hover{background:var(--brand-soft)}.rec-icon{border-radius:50%;width:36px;height:36px}.table th,.summary-grid dd{font-weight:var(--fw-heavy)}.more-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.more-tile{min-height:88px;padding:var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);color:var(--text);font-weight:var(--fw-heavy);border-bottom-width:5px;flex-direction:column;align-items:flex-start;gap:8px;text-decoration:none;display:flex}.more-tile:hover{border-color:var(--brand-line);background:var(--brand-soft);color:var(--text);text-decoration:none}.more-tile:active{transform:translateY(2px)}.more-tile svg{width:26px;height:26px;color:var(--accent)}.more-group-title{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.chart{gap:var(--sp-3);flex-direction:column;min-width:0;margin:0;display:flex}.chart-wrap{width:100%;min-width:0;position:relative}.chart-wrap svg{display:block;overflow:visible}.chart-grid{stroke:var(--viz-grid);stroke-width:1px;shape-rendering:crispedges}.chart-axis{stroke:var(--viz-axis);stroke-width:1px;shape-rendering:crispedges}.chart-threshold{stroke:var(--text-faint);stroke-width:1px;shape-rendering:crispedges}.chart-tick{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-label{fill:var(--text-2);font-size:12px}.chart-value{fill:var(--text);font-variant-numeric:tabular-nums;font-size:11px;font-weight:800}.chart-mark-1{fill:var(--viz-1)}.chart-line-1{fill:none;stroke:var(--viz-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-dot-1{fill:var(--viz-1);stroke:var(--surface-1);stroke-width:2px}.chart-dot-2{fill:var(--viz-2);stroke:var(--surface-1);stroke-width:2px}.chart-link{stroke:var(--viz-axis);stroke-width:2px;stroke-linecap:round}.chart-goal{stroke:var(--text-muted);stroke-width:2px;stroke-linecap:round}.chart-hit{fill:#0000;cursor:default;outline:none}.chart-hit:hover,.chart-hit:focus-visible{fill:color-mix(in srgb, var(--text) 5%, transparent)}.chart-tooltip{z-index:5;border-radius:var(--r-sm);border:2px solid var(--border-strong);background:var(--surface-3);min-width:140px;max-width:176px;box-shadow:var(--shadow-2);pointer-events:none;font-size:var(--fs-xs);padding:8px 10px;position:absolute;transform:translateY(-100%)}.chart-tooltip-title{color:var(--text-muted);text-transform:capitalize;margin-bottom:4px}.chart-tooltip-row{color:var(--text-muted);align-items:center;gap:6px;display:flex}.chart-tooltip-row strong{color:var(--text);font-variant-numeric:tabular-nums}.chart-legend{gap:4px var(--sp-4);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:inline-flex}.chart-swatch{flex:none;display:inline-block}.chart-swatch-rect{border-radius:3px;width:10px;height:10px}.chart-swatch-line{border-radius:1px;width:14px;height:2px}.chart-swatch-dot{border-radius:50%;width:10px;height:10px}.chart-key{border-radius:1px;flex:none;width:12px;height:2px;display:inline-block}.chart-key-viz-1{background:var(--viz-1)}.chart-key-viz-2{background:var(--viz-2)}.chart-key-goal{background:var(--text-muted)}.chart-table summary{cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);width:-moz-fit-content;width:fit-content}.chart-table summary:hover{color:var(--text)}.chart-table-scroll{margin-top:var(--sp-2);max-width:100%;overflow-x:auto}.chart-table .table th,.chart-table .table td{padding:6px var(--sp-3);font-variant-numeric:tabular-nums;white-space:nowrap}.chart-table tbody th{text-transform:none;letter-spacing:0;font-weight:500;font-size:var(--fs-sm);color:var(--text-2)}.spark-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.spark-tile{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:6px;min-width:0;display:flex}.spark-tile .chart-dot-1{stroke:var(--surface-2)}.spark-head{gap:var(--sp-2)}.spark-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-2);overflow:hidden}.spark-value{font-size:var(--fs-md);font-weight:800}@media (forced-colors:active){.chart-mark-1,.chart-dot-1{fill:canvastext}.chart-dot-2{fill:highlight}}.exam-bar{top:var(--sp-2);z-index:5;gap:var(--sp-2);margin-bottom:var(--sp-6);flex-direction:column;display:flex;position:sticky}.exam-steps{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.exam-step{border:2px solid var(--border);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;align-items:center;gap:6px;padding:4px 10px 4px 4px;display:inline-flex}.exam-step:hover{background:var(--surface-hover)}.exam-step.done{border-color:var(--success);color:var(--success)}.exam-step.current{border-color:var(--accent);color:var(--text);background:var(--accent-bg)}.exam-step .q-num{width:20px;height:20px}.exam-part{margin-bottom:var(--sp-6)}.exam-nav{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border)}.exam-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.exam-outline li{border-bottom:1px solid var(--border);padding:6px 0}.exam-outline li:last-child{border-bottom:none}.exam-score.ok{border-color:var(--success)}.exam-score.ko{border-color:var(--warning)}.exam-score-icon{flex:none;width:40px;height:40px}.exam-score-value{font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.exam-breakdown .num{text-align:right;white-space:nowrap}.exam-card{align-items:flex-start}.module-exam{font-size:var(--fs-xs);color:var(--text-muted);border-radius:var(--r-full);border:2px solid var(--border);align-self:flex-start;align-items:center;gap:6px;padding:2px 8px;text-decoration:none;display:inline-flex}.module-exam svg{width:13px;height:13px}.module-exam:hover{background:var(--surface-hover)}.module-exam-available{color:var(--accent);border-color:var(--accent)}.module-exam-passed{color:var(--success);border-color:var(--success)}.placement-card{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:var(--surface-1)}.placement-card h2{margin:var(--sp-2) 0}.placement-skills li{border-bottom:1px solid var(--border);gap:var(--sp-3);flex-wrap:wrap;padding:8px 0}.placement-skills li:last-child{border-bottom:none}@media (max-width:640px){.exam-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-breakdown th:nth-child(2),.exam-breakdown td:nth-child(2){display:none}.exam-breakdown th,.exam-breakdown td{padding:8px var(--sp-2)}}.exam-part .quiz>.question:first-child,.exam-results .quiz>.question:first-child,.placement-mode .quiz>.question:first-child{border-top:none;padding-top:0}.shell.shell-focus{min-height:100vh;background:var(--bg);min-height:100dvh;display:block}.shell-focus>main:focus{outline:none}.focus{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}.focus-bar{z-index:40;padding-top:var(--safe-top);background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:saturate(1.2)blur(12px);position:sticky;top:0}.focus-action{height:36px;padding:0 var(--sp-3);border-radius:var(--r-full);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;align-items:center;gap:7px;font-weight:700;display:inline-flex;position:relative}.focus-action svg{flex:none;width:18px;height:18px}.focus-action:hover{background:var(--surface-3);color:var(--text)}.focus-action[aria-expanded=true]{background:var(--accent-bg);color:var(--accent)}.focus-count{border-radius:var(--r-full);background:var(--surface-3);min-width:16px;height:16px;color:var(--text-2);text-align:center;padding:0 4px;font-size:10px;font-weight:800;line-height:16px}.focus-page{padding:var(--sp-12) calc(var(--sp-6) + var(--safe-right)) var(--sp-12) calc(var(--sp-6) + var(--safe-left));flex:1}.focus-steps .focus-page{padding-bottom:var(--sp-10)}.focus-column{width:100%;max-width:var(--read-max);margin:0 auto}.focus-anchor{outline:none;height:0}.focus-anchor:focus-visible{outline:none}.focus .lesson-header{gap:var(--sp-4);margin-bottom:var(--sp-12)}.focus .lesson-header h1{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.875rem,1.25rem + 2.2vw,2.625rem);font-weight:800;line-height:1.12}.lesson-meta{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:6px 8px;font-weight:700;display:flex}.lesson-meta .badge{margin-left:4px}.focus .lead{color:var(--text-2);text-wrap:pretty;font-size:1.125rem;line-height:1.6}.focus .objective{margin-top:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border);border:none}.focus .objective strong{color:var(--text);margin-bottom:2px;display:block}.focus .sections{gap:var(--sp-12)}.focus .lesson-section{gap:var(--sp-5);scroll-margin-top:calc(var(--focusbar-h) + var(--safe-top) + var(--sp-6))}.focus .section-title{letter-spacing:-.02em;text-wrap:balance;font-size:1.375rem;font-weight:800}.focus .section-text .section-title,.focus .section-flow .section-title,.focus .section-code .section-title{margin-top:var(--sp-2)}.focus .prose:not(.prose-sm){color:var(--text-read);font-size:1.0625rem;line-height:1.78}.focus .prose-sm{font-size:.9375rem;line-height:1.65}.focus .exercise .badge-xp,.focus .quiz .badge-xp{display:none}.focus .prose>*+*{margin-top:1em}.focus .prose strong{color:var(--text)}.focus .callout{border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5)}.focus .flow-card{padding:var(--sp-6) var(--sp-5)}.focus .summary{padding:var(--sp-6);background:var(--surface-1)}.focus .summary ul{gap:var(--sp-3)}.focus .explain{margin-top:var(--sp-10)}.locked-card{margin-top:var(--sp-4)}.step-kicker{align-items:center;gap:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-6);font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.02em;flex-wrap:wrap;display:flex}.step-status{border-radius:var(--r-full);font-family:var(--font-sans);align-items:center;gap:5px;padding:2px 10px;font-weight:700;display:inline-flex}.step-status svg{width:13px;height:13px}.step-status.is-done{background:var(--success-bg);color:var(--success)}.step-status.is-pending{background:var(--warm-bg);color:var(--warm)}@media (min-width:1200px){.focus-wide .focus-column{max-width:var(--focus-wide-max)}.focus-wide .exercise{column-gap:var(--sp-8);padding:var(--sp-6);grid-template-rows:repeat(4,auto) 1fr;grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;row-gap:0;display:grid}.focus-wide .exercise>*{margin-bottom:var(--sp-4);grid-column:1;min-width:0}.focus-wide .exercise>.ide{top:calc(var(--focusbar-h) + var(--safe-top) + var(--sp-4));grid-area:1/2/-1;margin-bottom:0;position:sticky}.focus-wide .exercise .code-editor{height:min(42vh,420px)!important}.focus-wide .section-exercise>.section-title{max-width:var(--read-max)}}.step-count{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.lesson-finish{align-items:center;gap:var(--sp-5);margin-top:var(--sp-12);padding:var(--sp-10) var(--sp-6);border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface-1);text-align:center;animation:rise .36s var(--ease) both;flex-direction:column;display:flex}.focus-steps .lesson-finish{margin-top:var(--sp-6);padding-top:var(--sp-8);background:0 0;border:none}.lesson-finish h2{font-size:var(--fs-xl);letter-spacing:-.02em}.lesson-finish p{max-width:520px;margin:0 auto}.finish-copy{align-items:center}.finish-actions{justify-content:center}.finish-reflect{align-items:flex-start;gap:var(--sp-3);width:100%;max-width:520px;padding:var(--sp-4) var(--sp-5);border:2px dashed var(--border-strong);border-radius:var(--r-lg);text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;display:flex}.finish-reflect:hover{border-color:var(--warm);background:var(--warm-bg)}.finish-reflect>svg{width:18px;height:18px;color:var(--warm);flex:none;margin-top:2px}.finish-reflect>span{font-size:var(--fs-sm);flex-direction:column;gap:2px;display:flex}.finish-pending{gap:var(--sp-2);flex-direction:column;width:100%;max-width:460px;margin:0;padding:0;list-style:none;display:flex}.finish-pending .btn{width:100%;height:auto;min-height:44px;padding:var(--sp-2) var(--sp-4);white-space:normal;text-align:left;justify-content:flex-start}.finish-pending .btn svg:last-child{margin-left:auto}.lesson-finish-pending h2{font-size:var(--fs-lg)}body:has(.focus-steps) .toasts{bottom:calc(76px + var(--sp-3) + var(--safe-bottom))}.drawer-root{z-index:120;position:fixed;inset:0}.drawer-backdrop{background:var(--overlay);animation:fade-in .16s var(--ease);position:absolute;inset:0}.drawer{width:min(420px,100vw);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) 0;border-left:1px solid var(--border-strong);background:var(--surface-1);box-shadow:var(--shadow-3);animation:drawer-in .22s var(--ease);outline:none;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.drawer-grip{display:none}.drawer-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3) var(--sp-6);display:flex}.drawer-title{font-size:var(--fs-md);font-weight:800}.drawer-body{overscroll-behavior:contain;min-height:0;padding:var(--sp-2) var(--sp-6) var(--sp-8);flex:1;overflow-y:auto}.drawer-section-title{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.drawer .teacher{background:0 0;border:none;padding:0}.drawer .teacher-thread{max-height:none}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}.step-list{margin:var(--sp-2) 0 0;flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.step-link{align-items:center;gap:var(--sp-3);width:100%;min-height:40px;padding:6px var(--sp-2);border-radius:var(--r-sm);color:var(--text-2);font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.step-link:hover{background:var(--surface-3);color:var(--text)}.step-link.is-current{background:var(--accent-bg);color:var(--text);font-weight:700}.step-link svg{flex:none;width:16px;height:16px}.step-link-num{width:20px;color:var(--text-faint);text-align:right;flex:none;font-size:11px}.step-link-title{line-height:1.35}.step-link-pending{color:var(--warm)}.segmented{border-radius:var(--r-md);background:var(--surface-3);grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{border-radius:calc(var(--r-md) - 4px);height:36px;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.segmented button svg{width:15px;height:15px}.segmented button[aria-pressed=true]{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1), inset 0 0 0 1px var(--border)}.keys-hint svg{flex:none;width:14px;height:14px}.keys-hint kbd{font-size:10px}.note-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notes-panel .note{background:var(--surface-2);border-radius:var(--r-md);align-items:stretch}@media (max-width:900px){.focus-action{justify-content:center;width:40px;padding:0}.focus-count{background:var(--accent);min-width:14px;height:14px;color:var(--accent-contrast);font-size:9px;line-height:14px;position:absolute;top:3px;right:2px}.focus-page{padding:var(--sp-8) calc(var(--sp-5) + var(--safe-right)) var(--sp-10) calc(var(--sp-5) + var(--safe-left))}.focus .lesson-header{margin-bottom:var(--sp-10)}}@media (max-width:720px){.drawer{width:100%;max-height:min(86vh,86dvh);padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);border-left:none;border-top:1px solid var(--border-strong);animation:sheet-in .24s var(--ease);border-radius:20px 20px 0 0;top:auto;left:0}.drawer-grip{border-radius:var(--r-full);background:var(--border-strong);width:36px;height:4px;margin:8px auto 0;display:block}.drawer-head{padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-5)}.drawer-body{padding:var(--sp-2) var(--sp-5) var(--sp-6)}}@media (max-width:520px){.focus-page{padding:var(--sp-6) calc(var(--sp-4) + var(--safe-right)) var(--sp-8) calc(var(--sp-4) + var(--safe-left))}.focus .prose:not(.prose-sm){font-size:1.03rem;line-height:1.72}.focus .section-title{font-size:1.25rem}.focus .sections{gap:var(--sp-10)}.lesson-finish{padding:var(--sp-8) var(--sp-4)}.finish-actions{flex-direction:column;align-items:stretch;width:100%}.finish-actions .btn{white-space:normal;height:auto;min-height:44px;padding-top:var(--sp-2);padding-bottom:var(--sp-2);text-align:center}}.lesson-finish .finish-bit{width:150px}.lesson-finish-pending .finish-bit{width:110px}.lesson-finish .finish-tiles{max-width:460px}.complete-banner h2{color:var(--sun-ink);font-size:clamp(1.75rem,1.4rem + 1.4vw,2.25rem)}.bit{pointer-events:none;flex:none;width:110px;line-height:0;display:inline-block}.bit svg{width:100%;height:auto;display:block;overflow:visible}.bit .bit-body{transform-origin:60px 110px;animation:2.6s ease-in-out infinite bit-idle}.bit .bit-eyes{transform-origin:60px 56px;animation:4.2s infinite bit-blink}.bit .bit-antenna{animation:2.6s ease-in-out infinite bit-glow}.bit.bit-jump .bit-body{animation:.6s ease-out 2 bit-jump}@keyframes bit-idle{50%{transform:translateY(-3px)scale(1.01,.99)}}@keyframes bit-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes bit-glow{50%{opacity:.75}}@keyframes bit-jump{30%{transform:translateY(-16px)scale(.97,1.04)}60%{transform:translateY(0)scale(1.05,.95)}}.bit .bit-pupils{transform:translate(var(--bit-look-x,0px), var(--bit-look-y,0px));transition:transform .25s ease-out}.bit .bit-arm-wave{transform-origin:102px 72px;animation:.5s ease-in-out 4 alternate bit-wave}.bit.bit-live .bit-antenna-stalk{transform-origin:60px 19px;animation:3.4s ease-in-out infinite bit-antenna}@keyframes bit-wave{0%{transform:rotate(-14deg)}to{transform:rotate(16deg)}}@keyframes bit-antenna{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}60%{transform:rotate(6deg)}}.bit-says{align-items:flex-end;gap:var(--sp-3);min-width:0;display:flex}.bit-bubble{min-width:0;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);color:var(--text);font-size:var(--fs-base);flex:1;margin-bottom:18px;line-height:1.45;position:relative}.bit-bubble:before,.bit-bubble:after{content:"";border-style:solid;border-color:#0000;position:absolute;bottom:18px}.bit-bubble:before{border-width:8px 12px 8px 0;border-right-color:var(--border);left:-12px}.bit-bubble:after{border-width:6px 9px 6px 0;border-right-color:var(--surface-1);bottom:20px;left:-9px}.bit-bubble b,.bit-bubble strong{color:var(--accent)}.quiz-score.is-fail .bit-bubble b,.quiz-score.is-fail .bit-bubble strong{color:var(--bad-ink)}.bit-bubble p+p{margin-top:6px}.confetti{pointer-events:none;z-index:300;width:100%;height:100%;position:fixed;inset:0}.game-stats{align-items:center;gap:2px;display:flex}.game-stat{min-height:var(--tap);border-radius:var(--r-md);font-size:17px;font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;color:var(--text-muted);align-items:center;gap:6px;padding:4px 8px;text-decoration:none;display:inline-flex}a.game-stat:hover{background:var(--surface-2);text-decoration:none}.game-stat svg{flex:none;width:24px;height:24px}.game-stat.flame{color:var(--flame-ink)}.game-stat.flame.off svg{filter:grayscale();opacity:.55}.game-stat.flame.off{color:var(--text-faint)}.game-stat.gem{color:var(--accent)}.game-stat.gem svg{color:var(--brand)}.game-stat.mem{color:var(--mem-ink)}.game-stat.mem.off{color:var(--text-faint)}.game-stat.mem.off svg{filter:grayscale();opacity:.55}.side-card{gap:var(--sp-3);flex-direction:column;display:flex}.side-card h2,.side-card h3{font-size:var(--fs-md);font-weight:var(--fw-heavy)}.side-card>p,.side-card .muted{color:var(--text-muted);font-size:var(--fs-sm)}.side-card-row{align-items:center;gap:var(--sp-3);display:flex}.side-card-row>svg{flex:none;width:44px;height:44px}.finish-tiles{gap:var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.finish-tile{--c:var(--brand-strong);border:2px solid var(--c);border-radius:var(--r-lg);text-align:center;flex-direction:column;display:flex;overflow:hidden}.finish-tile>span{background:var(--c);color:#fff;font-size:12px;font-weight:var(--fw-heavy);letter-spacing:.08em;text-transform:uppercase;padding:5px}.finish-tile>b{font-size:22px;font-weight:var(--fw-heavy);color:var(--c);font-variant-numeric:tabular-nums;padding:12px 4px}.finish-tile.tile-xp{--c:var(--sun-d)}.finish-tile.tile-xp>span{color:var(--on-sun);background:var(--sun)}.finish-tile.tile-xp>b{color:var(--sun-ink)}.finish-tile.tile-ok{--c:var(--ok-d)}.finish-tile.tile-ok>b{color:var(--ok-ink)}.finish-tile.tile-ok>span{background:#11774a}.finish-tile.tile-time>b{color:var(--accent)}@media (prefers-reduced-motion:reduce){.bit .bit-body,.bit .bit-eyes,.bit .bit-antenna,.bit .bit-arm-wave,.bit .bit-antenna-stalk{animation:none!important}.bit .bit-pupils{transition:none}}.page-path{max-width:1120px;padding-top:var(--sp-6)}.path-layout{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}.path-main{gap:var(--sp-5);flex-direction:column;width:100%;min-width:0;max-width:620px;margin:0 auto;display:flex}.path-side{gap:var(--sp-4);flex-direction:column;min-width:0;display:flex}@media (min-width:980px){.path-layout{gap:var(--sp-8);grid-template-columns:minmax(0,1fr) 330px;align-items:start}}.path-hello .bit-bubble h1{font-size:var(--fs-lg);margin-bottom:4px}.path-hello .bit-bubble p{color:var(--text-2);font-size:var(--fs-sm)}.path-hello .bit-bubble .mentor-extra{color:var(--text-muted);margin-top:4px}.learning-path{gap:var(--sp-5);flex-direction:column;display:flex}.unit{content-visibility:auto;contain-intrinsic-size:auto 104px}.unit.is-expanded{content-visibility:visible}.unit-banner{justify-content:space-between;align-items:center;gap:var(--sp-3);border-radius:var(--r-xl);background:var(--brand-strong);color:var(--on-brand);box-shadow:0 4px 0 var(--brand-strong-d);padding:16px 18px;display:flex}.unit-text{min-width:0}.unit-banner small{letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:var(--fw-heavy);opacity:.9;display:block}.unit-banner h2{font-size:21px;font-weight:var(--fw-heavy);overflow-wrap:anywhere;margin-top:2px}.unit-sub{font-size:var(--fs-xs);font-weight:var(--fw-strong);opacity:.9;margin-top:2px;display:block}.unit-waiting{margin:var(--sp-2) 4px 0;border-radius:var(--r-lg,12px);background:var(--info-bg);color:var(--text);padding:10px 14px}.unit-guide{min-height:var(--tap);border-radius:var(--r-md);color:inherit;font-size:13px;font-weight:var(--fw-heavy);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:#ffffff29;border:2px solid #fff6;flex:none;align-items:center;gap:6px;padding:8px 12px;text-decoration:none;display:inline-flex}.unit-guide:hover{color:inherit;background:#ffffff42;text-decoration:none}.unit-guide svg{width:18px;height:18px}.unit-guide:focus-visible{outline-color:#fff}.unit-chev{transition:transform var(--dur) var(--ease)}.unit-guide[aria-expanded=true] .unit-chev{transform:rotate(180deg)}.unit-lock svg{width:28px;height:28px}.unit-banner-grey{background:var(--lock);color:var(--lock-ink);box-shadow:0 4px 0 var(--lock-d)}.unit-banner-grey .unit-guide{border-color:var(--lock-d);background:0 0}.unit-banner-grey .unit-guide:hover{background:var(--surface-hover)}.unit-banner-grey .unit-guide:focus-visible{outline-color:var(--brand)}.unit-done .unit-banner{background:var(--brand-strong)}.path{flex-direction:column;align-items:center;gap:22px;padding:72px 0 30px;display:flex;position:relative}.node-row{justify-content:center;width:100%;height:84px;display:flex;position:relative}.node-row.is-open{z-index:5}.node-anchor{position:relative}.node{--c:var(--brand);--cd:var(--brand-d);background:var(--c);color:#fff;width:74px;height:70px;box-shadow:0 7px 0 var(--cd);cursor:pointer;transition:transform 80ms, box-shadow 80ms, filter var(--dur);border:0;border-radius:50%;place-items:center;display:grid;position:relative}.node svg{width:34px;height:34px}.node:hover{filter:brightness(1.05)}.node:active{box-shadow:0 1px 0 var(--cd);transform:translateY(6px)}.node:focus-visible{outline:3px solid var(--brand);outline-offset:6px}.node-done{--c:var(--sun);--cd:var(--sun-d)}.node-locked{--c:var(--lock);--cd:var(--lock-d);color:var(--lock-icon)}.node-kind-chest.node-available{--c:var(--sun);--cd:var(--sun-d);color:#7a4b00}.node-kind-exam.node-available{--c:var(--brand);--cd:var(--brand-d)}.node-count{border-radius:var(--r-full);background:var(--bad);color:#fff;border:3px solid var(--bg);min-width:26px;height:26px;font-size:12px;font-weight:var(--fw-heavy);padding:0 6px;line-height:20px;position:absolute;top:-6px;right:-8px}.node-ring{pointer-events:none;width:calc(100% + 24px);height:calc(100% + 24px);position:absolute;inset:-12px}.start-bubble{z-index:1;background:var(--bg);color:var(--accent);border:2px solid var(--border);border-radius:var(--r-md);font-weight:var(--fw-heavy);letter-spacing:.06em;white-space:nowrap;pointer-events:none;padding:8px 14px;font-size:15px;animation:1.4s ease-in-out infinite bob;position:absolute;bottom:calc(100% + 18px);left:50%;transform:translate(-50%)}.start-bubble:after{content:"";border:8px solid #0000;border-top-color:var(--border);margin-left:-8px;position:absolute;top:100%;left:50%}@keyframes bob{50%{transform:translate(-50%,-6px)}}.path-bit{z-index:0;width:110px;position:absolute}.path-bit.is-left{left:calc(50% - 170px)}.path-bit.is-right{left:calc(50% + 62px)}.pop{transform:translateX(calc(-50% - var(--o,0px)));z-index:6;border-radius:var(--r-lg);background:var(--brand-strong);width:min(300px,100vw - 32px);color:var(--on-brand);box-shadow:0 10px 30px var(--shadow);text-align:left;scroll-margin-bottom:calc(var(--mobile-nav-h) + var(--safe-bottom) + 16px);scroll-margin-top:calc(var(--topbar-total) + 16px);flex-direction:column;gap:10px;padding:16px;animation:.18s ease-out popin;display:flex;position:absolute;top:calc(100% + 18px);left:50%}.pop:before{content:"";bottom:100%;left:calc(50% + var(--o,0px));border:10px solid #0000;border-bottom-color:var(--brand-strong);margin-left:-10px;position:absolute}.pop h3{font-size:19px;font-weight:var(--fw-heavy)}.pop p{font-size:15px;line-height:1.4}.pop .pop-meta{opacity:.92}.pop .btn{text-transform:uppercase;letter-spacing:.05em}.pop .pop-btn{--c:#fff;--cd:#bfe9cd;--ink:#0e5e2c;border-color:#0000}.pop .pop-btn:hover{color:#0e5e2c}.pop .pop-btn:focus-visible{outline-color:#fff}.pop-xp{opacity:.8;margin-left:4px}.pop-done{background:var(--sun);color:var(--on-sun)}.pop-done:before{border-bottom-color:var(--sun)}.pop-done .pop-btn{--cd:#efd28a;--ink:#7a5300}.pop-done .pop-btn:hover{color:#7a5300}.pop-locked{background:var(--lock);color:var(--lock-ink)}.pop-locked:before{border-bottom-color:var(--lock)}.pop-locked .btn:not(:disabled){--c:var(--surface-1);--cd:var(--lock-d);--ink:var(--text)}.pop-locked .btn:disabled{--c:var(--lock-d);--cd:var(--lock-d);box-shadow:none}@keyframes popin{0%{opacity:0;transform:translate(calc(-50% - var(--o,0px)), -6px) scale(.96)}}.path-side .card{border-radius:var(--r-lg)}.path-side .card-heading{font-size:var(--fs-md);font-weight:var(--fw-heavy)}.goal-bar .progress{height:14px}.streak-card .side-card-row strong{font-size:var(--fs-md)}.review-card.has-due{border-color:color-mix(in srgb, var(--mem) 40%, var(--border))}.review-list{font-size:var(--fs-sm);color:var(--text-2);flex-direction:column;gap:4px;margin:0;padding-left:1.2em;display:flex}.path-more-link{font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.path-more-link svg{width:16px;height:16px}.placement-card{gap:var(--sp-3);border-color:var(--brand-line);background:var(--brand-soft);flex-direction:column;display:flex}.placement-card h2{font-size:var(--fs-md)}.placement-card .bit-says{align-items:center}.placement-card .bit-bubble{margin-bottom:0}@media (max-width:420px){.unit-banner{padding:14px}.unit-banner h2{font-size:19px}.path-bit{width:92px}.path-bit.is-left{left:calc(50% - 160px)}}@media (max-width:979px){.path-hello .bit{width:72px}}.unit-text small,.unit-sub{opacity:1}.unit-guide{background:#0000002e}.unit-guide:hover{background:#00000047}.node-row.is-offpath:not(.is-open) .node{filter:saturate(.25);opacity:.55}.node-row.is-offpath:not(.is-open) .node:hover,.node-row.is-offpath:not(.is-open) .node:focus-visible{opacity:.9;filter:none}.unit-offpath .unit-banner:not(.unit-banner-grey){background:color-mix(in srgb, var(--brand-strong) 55%, var(--lock-ink));box-shadow:0 4px 0 color-mix(in srgb, var(--brand-strong-d) 55%, var(--lock-ink))}.unit-offpath-tag{font-weight:var(--fw-heavy)}.pop .pop-offpath{border-radius:var(--r-md);background:#ffffff29;padding:6px 10px;font-size:13px}.pop-done .pop-offpath{background:#00000014}.lesson-game{--read-max:640px}.lesson-top{border-bottom:2px solid var(--border);background:var(--bg);-webkit-backdrop-filter:none}.lesson-top-in{max-width:672px;height:64px;padding:0 calc(16px + var(--safe-right)) 0 calc(12px + var(--safe-left));align-items:center;gap:12px;margin:0 auto;display:flex}.lesson-icon-btn{width:var(--tap);height:var(--tap);color:var(--text-muted);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:0;border-radius:12px;flex:none;place-items:center;padding:0;display:grid;position:relative}.lesson-icon-btn svg{width:24px;height:24px}.lesson-exit svg{stroke-width:2.6px;width:28px;height:28px}.lesson-icon-btn:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.lesson-icon-btn[aria-expanded=true]{background:var(--accent-bg);color:var(--accent)}.lesson-icon-btn .focus-count{background:var(--brand-strong);color:#fff;min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:4px;right:3px}.lesson-pbar{background:var(--border);border-radius:10px;flex:1;min-width:60px;height:18px;position:relative;overflow:hidden}.lesson-pbar>i{background:var(--ok);height:100%;transition:width .5s var(--ease-bounce);border-radius:10px;display:block;position:relative}.lesson-pbar>i:after{content:"";background:#ffffff59;border-radius:3px;height:5px;position:absolute;top:4px;left:10px;right:10px}.lesson-combo{justify-content:center;align-items:center;min-width:44px;display:flex}.lesson-combo-in{color:var(--flame-ink);font-weight:var(--fw-heavy);font-variant-numeric:tabular-nums;animation:combo-pop .35s var(--ease-bounce);align-items:center;gap:3px;font-size:18px;display:inline-flex}.lesson-combo-in svg{width:24px;height:24px}@keyframes combo-pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:none}}.lesson-tools{align-items:center;gap:2px;display:flex}.lesson-more{display:none;position:relative}.lesson-menu{z-index:60;border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);min-width:190px;box-shadow:var(--shadow-2);animation:rise .16s var(--ease);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.lesson-menu-item{min-height:var(--tap);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-base);font-weight:var(--fw-strong);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;display:flex}.lesson-menu-item svg{width:20px;height:20px;color:var(--text-muted)}.lesson-menu-item:hover,.lesson-menu-item:focus-visible{background:var(--surface-2)}.lesson-menu-item .focus-count{margin-left:auto}@media (max-width:599px){.lesson-tools{display:none}.lesson-more{display:block}.lesson-top-in{gap:8px}}.lesson-page.focus-page{padding:var(--sp-6) calc(16px + var(--safe-right)) var(--sp-8) calc(16px + var(--safe-left))}.lesson-game .lesson-kicker{color:var(--accent);font-size:14px;font-weight:var(--fw-heavy);letter-spacing:.08em;text-transform:uppercase}.lesson-game .step-kicker{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;display:flex}.lesson-game .step-kicker .step-status{letter-spacing:.02em;text-transform:none;font-size:12px}.lesson-q{font-size:clamp(1.5rem,1.25rem + 1vw,1.75rem);font-weight:var(--fw-heavy);letter-spacing:-.01em;text-wrap:balance;color:var(--text);margin:0;line-height:1.2}.lesson-q-md .prose,.lesson-q-md .prose p{font-weight:inherit;font-size:inherit!important;color:inherit!important;line-height:1.25!important}.lesson-q-md .prose>*+*{margin-top:.4em!important}.lesson-q-md code{font-size:.85em}.step-head{gap:var(--sp-2);margin-bottom:var(--sp-6);flex-direction:column;display:flex}.focus-steps .sections{gap:var(--sp-8)}.focus-steps .lesson-section{gap:var(--sp-5)}.focus-steps .prose:not(.prose-sm){color:var(--text-read);font-size:1.125rem;line-height:1.7}.focus-steps .lesson-header{gap:var(--sp-3);margin-bottom:var(--sp-8)}.focus-steps .lesson-header h1{font-size:clamp(1.75rem,1.4rem + 1.4vw,2.125rem);font-weight:var(--fw-heavy);letter-spacing:-.02em}.lesson-game .lesson-header .lesson-meta{color:var(--accent)}.focus-steps .lead{font-size:1.125rem}.lesson-says{margin:var(--sp-1) 0}.lesson-says .bit-bubble{font-size:1.125rem;line-height:1.5;font-weight:var(--fw-strong);color:var(--text)}.lesson-says .bit-bubble .prose-sm{font-size:1rem;line-height:1.55}.lesson-says-sm .bit-bubble{font-size:1rem;font-weight:700}.lesson-hook .bit-bubble{font-size:1.1875rem}.lesson-hint{color:var(--text-muted);font-weight:var(--fw-strong);font-size:var(--fs-sm);margin-top:calc(-1 * var(--sp-2))}@media (max-width:520px){.lesson-says .bit{width:72px!important}.lesson-says-sm .bit{width:60px!important}.lesson-says .bit-bubble,.lesson-hook .bit-bubble{font-size:1.0625rem}}.lesson-game .widget-card{border:2px solid var(--border);background:var(--surface-2);padding:var(--sp-3);border-radius:20px}.focus-steps .lesson-widget-done{align-self:flex-start}.focus-steps .summary{padding:var(--sp-6);background:var(--surface-2);border:2px solid var(--border);border-radius:20px}.focus-steps .summary li{font-size:1.0625rem}.game-stage{outline:none;flex-direction:column;gap:18px;display:flex}.game-question{min-width:0}.opt-tiles{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.opt-tiles.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opt-tile{border:2px solid var(--border);background:var(--surface-1);min-height:60px;color:var(--text);font:inherit;font-size:1.0625rem;font-weight:var(--fw-strong);text-align:left;cursor:pointer;transition:transform 60ms ease-out, border-color var(--dur), background var(--dur);-webkit-tap-highlight-color:transparent;border-bottom-width:5px;border-radius:18px;align-items:center;gap:14px;padding:14px 16px;line-height:1.35;display:flex}.opt-tiles.is-grid .opt-tile{min-height:96px;font-size:1.25rem;font-weight:var(--fw-heavy);text-align:center;flex-direction:column;justify-content:center;gap:8px}.opt-tile:hover:not(:disabled){background:var(--surface-2)}.opt-tile:active:not(:disabled){transform:translateY(2px)}.opt-tile:disabled{cursor:default}.opt-tile .opt-text{overflow-wrap:anywhere;min-width:0}.opt-key{border:2px solid var(--border);min-width:24px;color:var(--text-muted);font-size:12px;font-weight:var(--fw-heavy);text-align:center;border-radius:8px;flex:none;padding:0 6px;line-height:20px}.opt-tile.is-sel{border-color:var(--brand-line);background:var(--brand-soft);color:var(--accent)}.opt-tile.is-sel .opt-key{border-color:var(--brand-line);color:var(--accent)}.opt-tile.is-right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-ink)}.opt-tile.is-wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}.opt-tile.is-right .opt-key,.opt-tile.is-wrong .opt-key{color:inherit;border-color:currentColor}.opt-tile code{font-size:.9em}.order-tiles{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.order-tile{border:2px solid var(--border);background:var(--surface-1);min-height:56px;font-weight:var(--fw-strong);border-bottom-width:5px;border-radius:16px;align-items:center;gap:12px;padding:8px 8px 8px 14px;display:flex}.order-tiles.is-right .order-tile{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-ink)}.order-tiles.is-wrong .order-tile{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}.game-input-row{display:flex}.game-input.input{width:100%;max-width:360px;height:60px;font-size:1.375rem;font-weight:var(--fw-heavy);border-width:2px 2px 5px;border-radius:16px;padding:0 18px}.game-input.is-right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-ink)}.game-input.is-wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}.match-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.match-col{flex-direction:column;gap:12px;min-width:0;display:flex}.pair-tile{border:2px solid var(--border);background:var(--surface-1);min-height:64px;color:var(--text);font:inherit;font-size:.9375rem;font-weight:var(--fw-strong);cursor:pointer;overflow-wrap:anywhere;transition:transform 60ms ease-out, border-color var(--dur), background var(--dur), opacity var(--dur);-webkit-tap-highlight-color:transparent;border-bottom-width:5px;border-radius:16px;flex:1;padding:12px 10px;line-height:1.3}.pair-tile.pair-left{font-size:1.0625rem;font-weight:var(--fw-heavy)}.pair-tile:active:not(:disabled){transform:translateY(2px)}.pair-tile.is-sel{border-color:var(--brand-line);background:var(--brand-soft);color:var(--accent)}.pair-tile.is-done{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-ink);opacity:.6;cursor:default}.pair-tile.is-nope{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}.question .match-board{margin-top:var(--sp-1)}.shake{animation:.35s shake}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.lesson-footer-slot{z-index:30;position:sticky;bottom:0}.lesson-footer{border-top:2px solid var(--border);background:var(--bg);padding:14px calc(16px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(16px + var(--safe-left));transition:background .2s,border-color .2s}.lesson-footer.tone-ok{background:var(--ok-soft);border-color:#0000}.lesson-footer.tone-bad{background:var(--bad-soft);border-color:#0000}.lesson-footer-in{flex-direction:column;gap:12px;max-width:640px;margin:0 auto;display:flex}.lesson-fb:empty{display:none}.lesson-fb-in{align-items:flex-start;gap:12px;animation:.25s ease-out rise;display:flex}.lesson-fb-badge{background:var(--bg);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}.lesson-fb-badge svg{stroke-width:3.4px;width:30px;height:30px}.tone-ok .lesson-fb-badge svg{color:var(--ok)}.tone-bad .lesson-fb-badge svg{color:var(--bad)}.lesson-fb-bit{width:64px;margin-top:-6px}.lesson-fb-text{flex:1;min-width:0;padding-top:4px}.lesson-fb-title{font-size:1.375rem;font-weight:var(--fw-heavy);margin:0;line-height:1.2}.lesson-fb-body{max-height:34vh;overscroll-behavior:contain;max-height:34dvh;margin-top:4px;font-size:.9375rem;font-weight:700;line-height:1.5;overflow-y:auto}.lesson-fb-body>*+*{margin-top:6px}.lesson-fb-body .prose,.lesson-fb-body .prose-sm{font-size:inherit;color:inherit;line-height:inherit}.lesson-fb-body .prose strong,.lesson-fb-body strong{color:inherit}.lesson-fb-note{opacity:.85;font-size:.875rem}.tone-ok .lesson-fb{color:var(--ok-ink)}.tone-bad .lesson-fb{color:var(--bad-ink)}.lesson-footer-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.lesson-footer-note{color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-strong);text-align:center;flex-basis:100%}.lesson-footer-note .step-status{font-size:var(--fs-sm)}.lesson-footer-nudge{padding:var(--sp-2) var(--sp-3);background:var(--info-bg);color:var(--text);font-weight:var(--fw-body);text-align:left;border-radius:12px;display:block}.lesson-cta.btn{letter-spacing:.06em;text-transform:uppercase;flex:200px;min-height:52px;font-size:1rem}.lesson-cta-2.btn{text-transform:uppercase;letter-spacing:.04em;flex:auto;min-height:52px}.lesson-back.btn{flex:none;width:52px;min-height:52px}.btn-bad{--c:var(--bad-d);--cd:#a8282d;--ink:#fff;border-color:#0000}.btn-bad:hover{color:#fff}@media (max-width:520px){.lesson-footer-row{gap:8px}.lesson-cta.btn{flex-basis:150px}.lesson-cta-2.btn{padding:8px 12px}.lesson-fb-title{font-size:1.25rem}.lesson-fb-bit{width:52px}}body:has(.lesson-game.focus-steps) .toasts{top:calc(64px + var(--safe-top) + var(--sp-3));bottom:auto}.focus-steps .exercise-game{background:0 0;border:0;padding:0}.focus-steps .exercise-game .exercise-head h3{display:none}.focus-steps .exercise-game .exercise-head .prose{font-size:1.0625rem}.exercise-game .ide{border-radius:18px}.test-chips-wrap{padding:10px var(--sp-3);flex-direction:column;gap:8px;display:flex}.test-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.test-chip.test{border:2px solid var(--border);border-radius:var(--r-full);background:var(--surface-2);max-width:100%;color:var(--text-2);font-size:13px;font-weight:var(--fw-strong);align-items:center;gap:6px;padding:5px 12px 5px 8px;display:inline-flex}.test-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.test-chip svg{flex:none;width:16px;height:16px}.test-chip.test-pass{border-color:var(--ok);background:var(--ok-soft);color:var(--ok-ink)}.test-chip.test-fail{border-color:var(--bad);background:var(--bad-soft);color:var(--bad-ink)}.test-chips-wrap .test-msg{padding:0}.hint.hint-bit{background:0 0;border:0;padding:0}.hint.hint-bit .bit-bubble{background:var(--sun-soft);border-color:var(--sun)}.hint.hint-bit .bit-bubble:before{border-right-color:var(--sun)}.hint.hint-bit .bit-bubble:after{border-right-color:var(--sun-soft)}.hint-bit .hint-label{color:var(--sun-ink)}.focus-steps .lesson-finish{padding-top:var(--sp-6)}.streak-card{width:100%;max-width:460px;padding:var(--sp-4);text-align:left;flex-direction:row;align-items:center;gap:14px}.streak-card h3{font-size:var(--fs-md);font-weight:var(--fw-heavy);margin:0}.streak-card p{color:var(--text-muted);font-size:var(--fs-sm);margin:2px 0 0}.streak-card-icon{flex:none;width:44px;height:44px}.lesson-game .finish-actions .btn-ghost{white-space:normal}@media (prefers-reduced-motion:reduce){.shake,.lesson-combo-in,.lesson-fb-in,.lesson-menu{animation:none!important}.lesson-pbar>i,.lesson-footer,.opt-tile,.pair-tile{transition:none!important}}.lesson-says{align-items:flex-start}.lesson-says .bit-bubble{margin-top:6px;margin-bottom:0}.lesson-says .bit-bubble:before{top:22px;bottom:auto}.lesson-says .bit-bubble:after{top:24px;bottom:auto}.lesson-hook .bit-bubble{font-weight:700}@media (max-width:720px){body:has(.lesson-game.focus-steps) .toasts .toast:not(:last-child){display:none}}.streak-card.card{display:flex}.lesson-figure,.fig-sheet{--fig-ink:var(--text);--fig-ink-2:var(--text-2);--fig-muted:var(--text-muted);--fig-line:var(--border-strong);--fig-surface:var(--surface-2);--fig-bg:var(--surface-1);--fig-accent:var(--brand);--fig-accent-ink:var(--accent);--fig-accent-soft:var(--brand-soft);--fig-accent-2:var(--viz-1);--fig-accent-2-ink:var(--info);--fig-accent-2-soft:var(--info-bg);--fig-accent-3:var(--flame);--fig-accent-3-ink:var(--warm);--fig-accent-3-soft:var(--warm-bg);--fig-bad:var(--bad-ink);--fig-bad-soft:var(--bad-soft);--fig-on-accent:var(--accent-contrast)}.lesson-figure{width:100%;margin:20px auto}.fig-frame{border:1px solid var(--border);background:var(--fig-bg);border-radius:16px;padding:8px;position:relative}.fig-art{cursor:zoom-in;line-height:0}.fig-art svg{width:100%;height:auto;display:block;overflow:visible}.fig-zoom{opacity:.7;position:absolute;top:6px;right:6px}.fig-zoom:hover,.fig-zoom:focus-visible{opacity:1}.lesson-figure figcaption{text-align:center;color:var(--text-muted);margin-top:8px;font-size:.9rem;line-height:1.45}.fig-viewer{z-index:1000;background:var(--bg);cursor:zoom-out;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:56px 12px 24px;display:flex;position:fixed;inset:0;overflow:auto}.fig-viewer .fig-art{cursor:zoom-out;width:100%;max-width:1100px}.fig-viewer-close{top:max(12px, env(safe-area-inset-top));position:fixed;right:12px}.fig-viewer-caption{color:var(--text-muted);text-align:center;max-width:60ch}.fig-art svg text{fill:var(--fig-ink);font-family:inherit}.fig-art .t-bold{font-weight:700}.fig-art .t-mono{font-family:var(--font-mono)}.fig-art .t-italic{font-style:italic}.fig-art .f-ink{fill:var(--fig-ink)}.fig-art .f-ink-2{fill:var(--fig-ink-2)}.fig-art .f-muted{fill:var(--fig-muted)}.fig-art .f-line{fill:var(--fig-line)}.fig-art .f-surface{fill:var(--fig-surface)}.fig-art .f-bg{fill:var(--fig-bg)}.fig-art .f-accent{fill:var(--fig-accent)}.fig-art .f-accent-ink{fill:var(--fig-accent-ink)}.fig-art .f-accent-soft{fill:var(--fig-accent-soft)}.fig-art .f-accent-2{fill:var(--fig-accent-2)}.fig-art .f-accent-2-ink{fill:var(--fig-accent-2-ink)}.fig-art .f-accent-2-soft{fill:var(--fig-accent-2-soft)}.fig-art .f-accent-3{fill:var(--fig-accent-3)}.fig-art .f-accent-3-ink{fill:var(--fig-accent-3-ink)}.fig-art .f-accent-3-soft{fill:var(--fig-accent-3-soft)}.fig-art .f-bad{fill:var(--fig-bad)}.fig-art .f-bad-soft{fill:var(--fig-bad-soft)}.fig-art .f-on-accent{fill:var(--fig-on-accent)}.fig-art .s-ink{stroke:var(--fig-ink)}.fig-art .s-ink-2{stroke:var(--fig-ink-2)}.fig-art .s-muted{stroke:var(--fig-muted)}.fig-art .s-line{stroke:var(--fig-line)}.fig-art .s-surface{stroke:var(--fig-surface)}.fig-art .s-bg{stroke:var(--fig-bg)}.fig-art .s-accent{stroke:var(--fig-accent)}.fig-art .s-accent-ink{stroke:var(--fig-accent-ink)}.fig-art .s-accent-2{stroke:var(--fig-accent-2)}.fig-art .s-accent-2-ink{stroke:var(--fig-accent-2-ink)}.fig-art .s-accent-3{stroke:var(--fig-accent-3)}.fig-art .s-accent-3-ink{stroke:var(--fig-accent-3-ink)}.fig-art .s-bad{stroke:var(--fig-bad)}.taller-page{max-width:1480px;padding-bottom:var(--sp-6)}.taller-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.taller-title h1{font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);line-height:1.1}.taller-title p{margin-top:4px}.taller-head-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.taller-count{border-radius:var(--r-full);background:var(--surface-3);min-width:22px;padding:0 6px;font-size:12px;line-height:20px}.taller-save{border-radius:var(--r-full);min-height:36px;font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--text-muted);background:var(--surface-2);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.taller-save svg{flex:none;width:16px;height:16px}.taller-save-saved{color:var(--success);background:var(--success-bg)}.taller-save-offline{color:var(--warning);background:var(--warning-bg)}.taller-save-error{color:var(--danger);background:var(--danger-bg)}.taller-save .btn{min-height:28px;padding:2px 8px}.taller-save-text{text-overflow:ellipsis;white-space:nowrap;max-width:44ch;overflow:hidden}.spin{animation:.9s linear infinite spin}.taller-banner{margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:2px solid var(--sun);background:var(--sun-soft);color:var(--text);font-size:var(--fs-sm)}.taller-layout{gap:var(--sp-4);height:max(520px, calc(100dvh - var(--topbar-total) - 150px));grid-template-columns:224px minmax(0,1.15fr) minmax(320px,1fr);display:grid}.taller-side,.taller-main,.taller-out{flex-direction:column;min-width:0;min-height:0;display:flex}.taller-files-btn{display:none}.taller-side{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);overflow-y:auto}.taller-filelist{gap:var(--sp-3);flex-direction:column;display:flex}.taller-filelist-actions{gap:var(--sp-2);flex-direction:column;display:flex}.taller-filelist-actions .btn{white-space:normal;text-align:left;justify-content:flex-start}.taller-files-ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.taller-file{border-radius:var(--r-sm);width:100%;min-height:40px;color:var(--text-2);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;align-items:center;gap:8px;padding:6px 10px;display:flex}.taller-file:hover{background:var(--surface-2)}.taller-file.active{border-color:var(--brand-line);background:var(--brand-soft);color:var(--text);font-weight:var(--fw-heavy)}.taller-file svg{width:18px;height:18px;color:var(--text-muted);flex:none}.taller-file.active svg{color:var(--accent)}.taller-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);flex:1;font-size:13px;overflow:hidden}.taller-file-dot{background:var(--flame);border-radius:50%;flex:none;width:8px;height:8px}.taller-files-count{margin-top:auto}.taller-newfile{flex-direction:column;gap:6px;display:flex}.taller-newfile .input{min-width:0;font-family:var(--font-mono);flex:1;font-size:13px}.taller-newfile-label{font-size:var(--fs-xs);font-weight:var(--fw-heavy);color:var(--text-muted)}.taller-field-error{color:var(--danger);font-size:var(--fs-xs);font-weight:var(--fw-strong);width:100%}.taller-main{gap:var(--sp-3)}.taller-ide{border-radius:var(--r-lg);flex-direction:column;flex:1;min-height:0;display:flex}.taller-toolbar{justify-content:space-between;min-height:48px}.taller-filebar{align-items:center;gap:2px;min-width:0;display:flex}.taller-filename{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-right:4px;font-size:13px;font-weight:700;overflow:hidden}.taller-rename{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.taller-rename .input{width:200px;max-width:100%;min-height:36px;padding:4px 10px;font-size:13px}.taller-editor-wrap{flex:1;min-height:0}.taller-editor-wrap .code-editor{height:100%}.taller-runbar{align-items:center;gap:var(--sp-3);display:flex}.taller-run.btn,.taller-stop.btn{min-width:170px;font-size:1rem}.taller-run.btn svg,.taller-stop.btn svg{width:20px;height:20px}.taller-stop.btn{--c:var(--bad);--cd:var(--bad-d);--ink:#fff;text-transform:uppercase;letter-spacing:.06em;border-color:#0000}.taller-out{gap:var(--sp-2)}.taller-out-head{justify-content:space-between;align-items:center;min-height:40px;display:flex}.taller-out-head h2{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:800}.taller-console{min-height:160px;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border-strong);border-radius:var(--r-lg);background:var(--code-bg);font-family:var(--font-mono);gap:var(--sp-2);flex-direction:column;flex:1;font-size:13px;line-height:1.55;display:flex;overflow:auto}.taller-console:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.taller-console-empty{font-family:var(--font-sans);color:var(--text-faint);font-size:var(--fs-sm)}.taller-console pre{white-space:pre-wrap;word-break:break-word;font:inherit;margin:0}.taller-stdout{color:var(--text)}.taller-stderr{color:var(--flame-ink)}.taller-meta{color:var(--text-faint);align-items:center;gap:6px;font-size:12px;display:flex}.taller-meta svg{width:12px;height:12px}.taller-running{color:var(--text-muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.taller-dot{background:var(--brand);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite taller-pulse}@keyframes taller-pulse{50%{opacity:.3;transform:scale(.8)}}.taller-error{gap:var(--sp-2);font-family:var(--font-sans);flex-direction:column;display:flex}.taller-error-bit .bit-bubble{border-color:var(--bad);background:var(--bad-soft);font-size:var(--fs-sm);margin-bottom:8px}.taller-error-bit .bit-bubble:before{border-right-color:var(--bad)}.taller-error-bit .bit-bubble:after{border-right-color:var(--bad-soft)}.taller-error-bit .bit-bubble p+p{margin-top:4px}.taller-error-title{flex-wrap:wrap;align-items:baseline;gap:0 6px;display:flex}.taller-error-title strong{color:var(--bad-ink)}.taller-console .taller-traceback{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border-left:3px solid var(--bad);background:var(--surface-1);color:var(--danger);font-family:var(--font-mono);font-size:12.5px}.taller-plot{padding:var(--sp-3);border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface-1);font-family:var(--font-sans);margin:0}.taller-plot-title{font-weight:var(--fw-heavy);font-size:var(--fs-sm);color:var(--text);margin-bottom:6px}.taller-plot-canvas{width:100%;position:relative}.taller-plot canvas{display:block}.taller-legend{color:var(--text-2);flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.taller-legend li{align-items:center;gap:6px;display:inline-flex}.taller-swatch{border-radius:2px;width:14px;height:4px;display:inline-block}.taller-swatch-scatter{border-radius:50%;width:9px;height:9px}.taller-keys{font-size:var(--fs-xs);color:var(--text-muted)}.taller-keys summary{cursor:pointer;min-height:32px;font-weight:var(--fw-strong);align-items:center;gap:6px;display:inline-flex}.taller-keys summary svg{width:16px;height:16px}.taller-keys dl{gap:4px;margin:4px 0 0;display:grid}.taller-keys dl>div{align-items:center;gap:10px;display:flex}.taller-keys dt{min-width:110px}.taller-keys dd{margin:0}.taller-welcome{gap:var(--sp-5);flex-direction:column;max-width:860px;display:flex}.taller-greet .bit-bubble{font-size:1.0625rem}.taller-greet .bit-bubble code{font-size:.9em}.taller-welcome .taller-template-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.taller-welcome-h{font-size:var(--fs-md);margin-top:var(--sp-2)}.taller-templates{gap:var(--sp-3);padding:var(--sp-6);flex-direction:column;display:flex}.taller-template-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:0;padding:0;list-style:none;display:grid}.taller-template{align-items:flex-start;gap:var(--sp-3);width:100%;height:100%;padding:var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--surface-1);color:var(--text);box-shadow:0 4px 0 var(--border);font:inherit;text-align:left;cursor:pointer;transition:transform 70ms ease-out, box-shadow 70ms ease-out, border-color var(--dur);display:flex}.taller-template:hover{border-color:var(--brand-line)}.taller-template:active:not(:disabled){box-shadow:0 0 0 var(--border);transform:translateY(4px)}.taller-template:disabled{opacity:.6;cursor:progress}.taller-template-text{flex-direction:column;gap:4px;min-width:0;display:flex}.taller-template-icon{color:#fff;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.taller-template-icon svg{width:22px;height:22px}.tt-0{background:var(--sky)}.tt-1{background:var(--brand-strong)}.tt-2{background:#8b5cf6}.tt-3{background:var(--flame)}.try-taller.btn{color:var(--accent)}@media (min-width:721px){.drawer.drawer-wide{width:min(680px,100vw)}}.mini-taller{gap:var(--sp-3);flex-direction:column;display:flex}.mini-taller .taller-console{min-height:140px;max-height:420px}.mini-taller-save{gap:var(--sp-2);flex-direction:column;align-items:flex-start;display:flex}.mini-taller-saved{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--success-bg);color:var(--success);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mini-taller-saved svg{vertical-align:-3px;width:16px;height:16px}.mini-taller-saved a{font-weight:var(--fw-heavy);align-items:center;gap:4px;display:inline-flex}@media (max-width:1280px){.taller-layout{grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr)}.taller-side{display:none}.taller-files-btn{display:inline-flex}}@media (max-width:1000px){.taller-layout{gap:var(--sp-3);flex-direction:column;height:auto;display:flex}.taller-page .taller-ide{flex:none;height:max(280px,min(52vh,52dvh))}.taller-run.btn,.taller-stop.btn{flex:1}.taller-console{flex:none;min-height:200px;max-height:70vh}.taller-out-head{min-height:32px}}@media (max-width:520px){.taller-head{margin-bottom:var(--sp-3)}.taller-save-text{max-width:20ch}.taller-runhint{display:none}.taller-templates{padding:var(--sp-4)}.taller-console{padding:var(--sp-3);font-size:12.5px}}.forum-back{min-height:var(--tap);font-weight:var(--fw-strong);font-size:var(--fs-sm);margin-bottom:var(--sp-2);align-items:center;gap:6px;display:inline-flex}.forum-back svg{width:18px;height:18px}.forum-layout{gap:var(--sp-6);grid-template-columns:240px minmax(0,1fr);align-items:start;display:grid}.forum-cats{min-width:0;top:calc(var(--topbar-total) + var(--sp-4));position:sticky}.forum-cat-list{flex-direction:column;gap:4px;display:flex}.forum-cat{justify-content:space-between;align-items:center;gap:var(--sp-2);min-height:var(--tap);border-radius:var(--r-md);color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-strong);text-align:left;cursor:pointer;background:0 0;border:2px solid #0000;padding:6px 12px;display:flex}.forum-cat:hover{background:var(--surface-2);color:var(--text)}.forum-cat.active{background:var(--brand-soft);border-color:var(--brand-line);color:var(--accent-strong)}.forum-level-pick{margin-top:var(--sp-3)}.forum-level-pick .input{min-height:var(--tap)}.forum-cat-label{font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 2px 12px}.forum-search{gap:var(--sp-2);display:flex}.forum-search .input{flex:1;min-width:0}.forum-toolbar{gap:var(--sp-3);flex-wrap:wrap;display:flex}.forum-select{flex:160px;max-width:240px}.forum-select .input{min-height:var(--tap)}.forum-list{gap:var(--sp-3);flex-direction:column;display:flex}.forum-row{align-items:flex-start;gap:var(--sp-3);color:var(--text);display:flex}.forum-row:hover{color:var(--text);text-decoration:none}.forum-row-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.forum-row-title{align-items:center;gap:6px var(--sp-2);flex-wrap:wrap;display:flex}.forum-row-title strong{font-size:var(--fs-md);font-weight:var(--fw-heavy);overflow-wrap:anywhere}.forum-row-excerpt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.forum-row-meta{flex-wrap:wrap;gap:4px 6px;display:flex}.forum-row-stats{font-weight:var(--fw-heavy);font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;flex:none;align-items:flex-end;gap:2px;display:flex}.forum-row-stats span{align-items:center;gap:4px;display:inline-flex}.forum-row-stats svg{width:16px;height:16px}.forum-tag{font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--info)}.forum-badges{flex-wrap:wrap;gap:4px;display:inline-flex}.forum-badges .badge svg{width:12px;height:12px}.forum-avatar{background:var(--surface-2);border:2px solid var(--border);border-radius:50%;flex:none;place-items:center;display:inline-grid;overflow:hidden}.forum-avatar[data-tone="1"]{--tone:#1fa2f0}.forum-avatar[data-tone="2"]{--tone:#8b5cf6}.forum-avatar[data-tone="3"]{--tone:#ff8a1f}.forum-avatar[data-tone="4"]{--tone:#e0569b}.forum-avatar[data-tone="5"]{--tone:#14b8a6}.forum-avatar[data-tone]:not([data-tone="0"]){border-color:var(--tone);background:color-mix(in srgb, var(--tone) 18%, var(--surface-2))}.forum-avatar .bit{margin-top:4px}.forum-avatar .bit .bit-body,.forum-avatar .bit .bit-eyes,.forum-avatar .bit .bit-antenna{animation:none}.forum-avatar-tutor{background:var(--sun-soft);width:40px;height:40px;color:var(--sun-ink)}.forum-avatar-tutor svg{width:22px;height:22px}.forum-user{font-weight:var(--fw-heavy);align-items:center;gap:6px;display:inline-flex}.forum-mod-badge{padding:1px 6px;font-size:11px}.forum-title{overflow-wrap:anywhere;font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem)}.forum-op{margin-bottom:var(--sp-4)}.forum-post-head{align-items:center;gap:var(--sp-3);min-width:0;display:flex}.forum-post-who{flex-direction:column;flex:1;min-width:0;display:flex}.forum-best{margin-left:auto}.forum-best svg{width:14px;height:14px}.forum-post{gap:var(--sp-3);scroll-margin-top:calc(var(--topbar-total) + var(--sp-4));flex-direction:column;display:flex}.forum-post.is-best{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.forum-post.is-tutor{background:color-mix(in srgb, var(--sun-soft) 45%, var(--surface-1))}.forum-post.is-hidden{opacity:.85;border-style:dashed}.forum-post-actions{margin:0 calc(-1 * var(--sp-2));flex-wrap:wrap;gap:4px;display:flex}.forum-post-actions .btn.is-on{color:var(--accent);background:var(--brand-soft)}.forum-placeholder{font-style:italic}.forum-replies-title{font-size:var(--fs-md);margin:var(--sp-6) 0 var(--sp-3)}.forum-posts{margin-bottom:var(--sp-4)}.forum-quote{padding:var(--sp-2) var(--sp-3);border-left:4px solid var(--brand-line);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--surface-2);overflow-wrap:anywhere;margin:0}.mod-preview{white-space:pre-wrap;max-height:220px;overflow:auto}.forum-md{overflow-wrap:anywhere}.forum-md .prose{font-size:var(--fs-base)}.forum-md pre{overflow-x:auto}.forum-code{flex-direction:column;gap:6px;display:flex}.forum-code pre,.forum-snippet pre{padding:var(--sp-3);border-radius:var(--r-md);background:var(--code-bg);border:2px solid var(--border);font-family:var(--font-mono,monospace);margin:0;font-size:13px;line-height:1.55;overflow-x:auto}.forum-code .forum-taller-btn{align-self:flex-start}.forum-snippet{flex-direction:column;gap:6px;margin:0;display:flex}.forum-snippet figcaption{gap:var(--sp-2);flex-wrap:wrap}.forum-snippet figcaption svg{width:16px;height:16px}.forum-img-off{color:var(--text-muted);font-style:italic}.forum-textarea{min-height:140px}.forum-composer-title{font-size:var(--fs-md)}.forum-modtools summary{min-height:var(--tap);cursor:pointer;font-weight:var(--fw-strong);font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:6px;display:inline-flex}.forum-modtools summary svg{width:16px;height:16px}.forum-modtools .row-sm{margin-top:var(--sp-2)}.forum-move{max-width:280px;min-height:var(--tap)}.forum-pager{margin:var(--sp-4) 0;justify-content:center}.forum-tutor-cta{gap:var(--sp-3);margin-bottom:var(--sp-3)}.spoiler-gate{align-items:center;gap:var(--sp-3);padding:var(--sp-4);border:2px dashed var(--sun-d);border-radius:var(--r-md);background:repeating-linear-gradient(135deg, var(--sun-soft) 0 12px, color-mix(in srgb, var(--sun-soft) 60%, var(--surface-1)) 12px 24px);color:var(--text);flex-wrap:wrap;display:flex}.spoiler-gate>svg{width:24px;height:24px;color:var(--sun-ink);flex:none}.spoiler-gate p{flex:200px;margin:0}.spoiler-banner{margin-bottom:var(--sp-3)}.forum-notif{align-items:center;gap:var(--sp-3);width:100%;min-height:var(--tap);text-align:left;font:inherit;color:var(--text);cursor:pointer;display:flex}.forum-notif.unread{border-color:var(--brand-line);background:var(--brand-soft)}.forum-notif .grow{overflow-wrap:anywhere;min-width:0}.forum-bell{min-width:var(--tap);justify-content:center;position:relative}.forum-bell.off{color:var(--text-faint)}.forum-bell:not(.off){color:var(--accent)}.forum-bell-count{background:var(--bad);color:#fff;text-align:center;min-width:20px;height:20px;font-size:12px;line-height:20px;font-weight:var(--fw-heavy);border-radius:10px;padding:0 5px;position:absolute;top:2px;right:0}.forum-profile{align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.forum-profile h1{align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem);display:flex}.forum-stats{gap:var(--sp-3);margin:var(--sp-4) 0;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.forum-stats dd{font-size:var(--fs-lg,1.4rem);font-weight:var(--fw-heavy);margin:0}.community-card-list li{overflow-wrap:anywhere}.community-card .btn{align-self:flex-start}.lesson-community-ex{text-align:left;justify-content:flex-start;width:100%}.admin-user{gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}@media (max-width:900px){.forum-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr)}.forum-cats .forum-cat-list{flex-wrap:nowrap;align-items:center;position:relative}.forum-level-pick .forum-cat-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.forum-level-pick{flex:none;min-width:200px;margin-top:0}.forum-cats{position:static}.forum-cat-list{scroll-snap-type:x proximity;flex-direction:row;padding-bottom:4px;overflow-x:auto}.forum-cat{white-space:nowrap;scroll-snap-align:start;border-color:var(--border);flex:none}.forum-select{max-width:none}}@media (max-width:520px){.forum-row .forum-avatar{width:32px!important;height:32px!important}.forum-row-stats{gap:var(--sp-2);flex-direction:row}.forum-row{flex-wrap:wrap}.forum-row-main{flex-basis:calc(100% - 48px)}.forum-row-stats{justify-content:flex-end;width:100%}}@media (pointer:coarse){.forum-user a,.forum-quote a,.forum-back,.community-card-list a{min-height:var(--tap);min-width:var(--tap);align-items:center;display:inline-flex}.forum .tab{min-height:var(--tap)}}.area-tab-count{border-radius:var(--r-full);background:var(--bad);color:#fff;min-width:20px;font-size:11px;font-weight:var(--fw-heavy);text-align:center;padding:0 6px;line-height:20px}.chat-layout{gap:var(--sp-5);grid-template-columns:300px minmax(0,1fr);align-items:start;display:grid}.chat-aside{top:calc(var(--topbar-total) + var(--sp-4));min-width:0;max-height:calc(100dvh - var(--topbar-total) - var(--sp-8));overscroll-behavior:contain;position:sticky;overflow-y:auto}.chat-main{min-width:0}.chat-list{flex-direction:column;gap:4px;display:flex}.chat-list-title{margin:var(--sp-3) 0 2px 10px;font-size:var(--fs-xs);font-weight:var(--fw-heavy);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.chat-list-title:first-child{margin-top:0}.chat-list-empty{padding:4px 10px}.chat-item{align-items:center;gap:var(--sp-3);border-radius:var(--r-md);min-height:56px;color:var(--text);border:2px solid #0000;padding:6px 10px;display:flex}.chat-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.chat-item.active{background:var(--brand-soft);border-color:var(--brand-line)}.chat-item-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.chat-item-top{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.chat-item-top strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);overflow:hidden}.chat-item-last{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-item.unread .chat-item-last{color:var(--text);font-weight:var(--fw-strong)}.chat-unread{border-radius:var(--r-full);background:var(--bad);color:#fff;min-width:22px;font-size:12px;font-weight:var(--fw-heavy);text-align:center;flex:none;padding:0 6px;line-height:22px}.chat-room-icon{border-radius:var(--r-md);background:var(--surface-2);border:2px solid var(--border);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:inline-grid}.chat-room-icon svg{width:20px;height:20px}.chat-placeholder{place-items:center;min-height:240px;display:grid}.chat-thread{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.chat-thread-head{top:var(--topbar-total);z-index:6;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;background:var(--bg);border-bottom:2px solid var(--border);display:flex;position:sticky}.chat-thread-who{min-width:0}.chat-thread-title{font-size:var(--fs-md);font-weight:var(--fw-heavy);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-thread-who p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-back{display:none}.chat-safety{border-radius:var(--r-md);background:var(--sun-soft);color:var(--text-2);align-items:flex-start;gap:8px;margin:0;padding:8px 12px;display:flex}.chat-safety svg{width:16px;height:16px;color:var(--warning);flex:none;margin-top:1px}.chat-older{align-self:center}.chat-messages{padding-bottom:var(--sp-2);flex-direction:column;gap:6px;display:flex}.chat-day{border-radius:var(--r-full);background:var(--surface-2);margin:var(--sp-2) 0;align-self:center;padding:2px 10px}.chat-msg{flex-direction:column;align-self:flex-start;align-items:flex-start;min-width:0;max-width:min(80%,640px);display:flex}.chat-msg.mine{align-self:flex-end;align-items:flex-end}.chat-msg-name{margin:4px 0 2px 12px}.chat-bubble{background:var(--surface-2);border:2px solid var(--border);overflow-wrap:anywhere;border-radius:16px 16px 16px 4px;min-width:0;max-width:100%;padding:8px 12px}.chat-msg.mine .chat-bubble{background:var(--brand-soft);border-color:var(--brand-line);border-radius:16px 16px 4px}.chat-msg.deleted .chat-bubble{background:0 0;border-style:dashed}.chat-bubble .forum-md{font-size:var(--fs-sm)}.chat-bubble .prose>:first-child{margin-top:0}.chat-bubble .prose>:last-child{margin-bottom:0}.chat-bubble pre{max-width:100%;overflow-x:auto}.chat-bubble .forum-code{max-width:100%}.chat-msg-meta{align-items:center;gap:4px;min-height:22px;margin:2px 8px 0;display:flex}.chat-msg-action{border-radius:var(--r-sm);width:26px;height:26px;color:var(--text-faint);cursor:pointer;opacity:0;background:0 0;border:0;place-items:center;padding:0;transition:opacity .15s;display:inline-grid}.chat-msg-action svg{width:14px;height:14px}.chat-msg:hover .chat-msg-action,.chat-msg-action:focus-visible{opacity:1}.chat-msg-action:hover{color:var(--danger);background:var(--surface-2)}@media (pointer:coarse){.chat-msg-action{opacity:.7;width:32px;height:32px}}.chat-composer{z-index:6;padding:var(--sp-3) 0 calc(var(--sp-3));background:var(--bg);border-top:2px solid var(--border);flex-direction:column;gap:4px;display:flex;position:sticky;bottom:0}.chat-composer-off{padding:var(--sp-3) 0}.chat-composer-row{align-items:flex-end;gap:var(--sp-2);display:flex}.chat-textarea{resize:vertical;field-sizing:content;flex:1;min-width:0;min-height:46px;max-height:40vh}.chat-send{flex:none;justify-content:center;width:46px;min-height:46px;padding:0}.chat-send svg{width:20px;height:20px}.chat-menu{position:relative}.chat-menu>summary{cursor:pointer;font-weight:var(--fw-heavy);letter-spacing:.1em;list-style:none}.chat-menu>summary::-webkit-details-marker{display:none}.chat-menu-pop{z-index:20;flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.chat-menu-item{min-height:var(--tap);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:6px 10px;display:flex}.chat-menu-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.chat-menu-item.danger{color:var(--danger)}.chat-menu-item svg{width:16px;height:16px}.chat-radio{cursor:pointer;align-items:flex-start}.chat-radio input{flex:none;margin-top:3px}.chat-report-reasons{border:0;margin:0;padding:0}.friends-h2{font-size:var(--fs-md);font-weight:var(--fw-heavy)}.person-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.person-main{flex-direction:column;min-width:0;display:flex}.person-main .forum-user{flex-wrap:wrap}.friend-badge{align-items:center;gap:4px;display:inline-flex}.friend-badge svg{width:12px;height:12px}.forum-post-friend{margin-left:auto}.forum-post-friend .btn{min-height:32px}.forum-profile-actions{margin-top:var(--sp-2)}.chat-mod-context{padding:var(--sp-2);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:6px;display:flex}.chat-mod-context li{border-left:3px solid var(--border);padding:4px 8px}.chat-mod-context li.reported{border-left-color:var(--danger);background:var(--bg);border-radius:var(--r-sm)}.chat-mod-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.chat-mod-days{max-width:160px;min-height:36px}.chat-mod-filter{max-width:240px}@media (max-width:900px){.chat-layout{grid-template-columns:minmax(0,1fr)}.chat-aside{max-height:none;position:static;overflow:visible}.chat-page.has-thread .chat-aside,.chat-page:not(.has-thread) .chat-main{display:none}.chat-page.has-thread{padding-top:var(--sp-2)}.chat-back{display:inline-flex}.chat-composer{bottom:calc(var(--mobile-nav-h) + var(--safe-bottom));padding-bottom:var(--sp-2)}.chat-msg{max-width:88%}.chat-end{scroll-margin-bottom:calc(var(--mobile-nav-h) + var(--safe-bottom))}}.chat-plain{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.admin-thread{max-height:420px;overflow-y:auto}.admin-thread-msg{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.admin-thread-msg.is-staff{background:var(--surface-1);margin-left:var(--sp-6)}.admin-thread-msg:not(.is-staff){margin-right:var(--sp-6);border-color:var(--brand-line)}@media (max-width:560px){.admin-thread-msg.is-staff,.admin-thread-msg:not(.is-staff){margin-left:0;margin-right:0}}.area-tabs{gap:var(--sp-2);width:100%;max-width:var(--content-max);padding:var(--sp-4) var(--sp-6) 0;scrollbar-width:none;margin:0 auto;display:flex;overflow-x:auto}.area-tabs::-webkit-scrollbar{display:none}.area-tab{min-height:var(--tap);padding:0 var(--sp-4);border:2px solid var(--border);border-radius:var(--r-full);color:var(--text-muted);font-size:var(--fs-sm);font-weight:var(--fw-heavy);background:var(--bg);white-space:nowrap;flex:none;align-items:center;gap:8px;display:inline-flex}.area-tab svg{width:18px;height:18px}.area-tab:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.area-tab.active{color:var(--accent);border-color:var(--brand-line);background:var(--brand-soft)}.area-tabs+.page{padding-top:var(--sp-5)}.nav-more-group>summary{cursor:pointer;border-radius:var(--r-md);align-items:center;min-height:40px;list-style:none;display:flex}.nav-more-group>summary::-webkit-details-marker{display:none}.nav-more-group>summary:after{content:"▾";margin-left:6px;font-size:11px}.nav-more-group[open]>summary:after{content:"▴"}.nav-more-group>summary:hover{color:var(--text)}.topbar-more{display:none}.tabbar-icon{position:relative}.tabbar-dot{border-radius:var(--r-full);background:var(--bad);color:#fff;text-align:center;min-width:18px;padding:0 5px;font-size:11px;line-height:18px;position:absolute;top:-4px;right:-10px}@media (max-width:900px){.topbar-more{width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--text-muted);flex:none;place-items:center;display:inline-grid}.topbar-more svg{width:22px;height:22px}.topbar-more:hover{color:var(--text);background:var(--surface-2)}.area-tabs{padding:var(--sp-3) calc(var(--sp-4) + var(--safe-right)) 0 calc(var(--sp-4) + var(--safe-left))}}.password-field{position:relative}.password-field .input{padding-right:52px}.password-toggle{width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.password-toggle svg{width:20px;height:20px}.password-toggle:hover{color:var(--text)}.password-toggle:focus-visible{outline:3px solid var(--brand);outline-offset:-3px}.terms-check{align-items:flex-start;gap:var(--sp-3);display:flex}.terms-check input{width:22px;height:22px;accent-color:var(--brand);flex:none;margin-top:11px}.terms-check label{min-height:var(--tap);padding:10px 0;line-height:1.45;display:block}.auth-forgot{min-height:var(--tap);min-width:var(--tap);align-self:flex-end;align-items:center;padding:0 4px;display:inline-flex}.path-continue{margin-top:var(--sp-3);white-space:normal;text-align:left;max-width:100%}.also-in-progress{margin-top:var(--sp-2)}.also-in-progress a{font-weight:var(--fw-strong)}.jump-to-lesson{left:50%;bottom:calc(var(--sp-6) + var(--safe-bottom));z-index:25;box-shadow:var(--shadow-lg,0 8px 24px #0000002e);position:fixed;transform:translate(-50%)}@media (max-width:900px){.jump-to-lesson{bottom:calc(var(--mobile-nav-h) + var(--safe-bottom) + var(--sp-3))}}@media (max-width:600px){.path-hello .bit{width:56px}.path-hello .bit-bubble h1{font-size:var(--fs-md)}.path-hello .bit-bubble .mentor-extra{display:none}.page-path{padding-top:var(--sp-3)}}.onboarding{gap:var(--sp-5);flex-direction:column;display:flex}.shell-focus .onboarding{padding-top:calc(var(--sp-8) + var(--safe-top))}.onboarding-top{align-items:center;gap:var(--sp-3);display:flex}.onboarding-top>:first-child{flex:1}.onboarding-bit h1{font-size:var(--fs-lg);margin-bottom:4px}.onboarding-options{gap:var(--sp-3);display:grid}.onboarding-hours{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.onboarding-option{align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) var(--sp-4);border:2px solid var(--border);border-radius:var(--r-lg);background:var(--bg);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 0 var(--border);display:flex}.onboarding-option>svg{width:22px;height:22px;color:var(--accent);flex:none}.onboarding-option>span{flex-direction:column;gap:2px;display:flex}.onboarding-option:hover{border-color:var(--brand-line)}.onboarding-option.is-on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 3px 0 var(--brand-line)}.onboarding-option:disabled{opacity:.6;cursor:default}.onboarding-placement h2 svg{width:22px;color:var(--accent)}.onboarding-points{gap:6px;margin:0;padding:0;list-style:none;display:grid}.onboarding-points li{align-items:flex-start;gap:8px;display:flex}.assessment-prompt{font-size:var(--fs-lg);margin:0;line-height:1.35}.assessment-code{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2,var(--bg));color:var(--text);font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--fs-sm);white-space:pre;margin:0;overflow-x:auto}.onboarding-option.assessment-idk{border-style:dashed}.onboarding-option.assessment-idk>svg{color:var(--text-muted,var(--muted))}.onboarding-points svg{width:18px;height:18px;color:var(--good,var(--brand));flex:none;margin-top:2px}.forum-invite{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.node-pro{border-radius:var(--r-full);background:var(--accent,#7c3aed);color:#fff;font-size:11px;font-weight:var(--fw-heavy);letter-spacing:.04em;padding:0 7px;line-height:18px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.pop .paywall-inline{gap:var(--sp-2);flex-direction:column;display:flex}@media (max-width:420px){.course-chip{display:none}}.how-details>summary{cursor:pointer;width:-moz-fit-content;width:fit-content;font-weight:var(--fw-heavy);color:var(--accent)}.how-details>p{margin-top:var(--sp-2);overflow-wrap:anywhere}.register-steps{counter-reset:rstep;font-size:var(--fs-sm);gap:6px;margin:0;padding:0;list-style:none;display:grid}.register-steps li{counter-increment:rstep;gap:var(--sp-2);color:var(--text-2);align-items:baseline;display:flex}.register-steps li:before{content:counter(rstep);background:var(--brand-soft);width:22px;height:22px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:800;display:inline-grid}.privacy-first-layer{border:1px solid var(--border);border-radius:var(--r-md,12px);padding:var(--sp-2) var(--sp-3);color:var(--text-muted)}.privacy-first-layer ul{gap:2px;margin:4px 0;padding-left:1.1em;display:grid}.privacy-first-layer p{margin:0}.privacy-first-layer-title{color:var(--text-2);font-weight:800}.field>.hint{background:0 0;border:0;border-radius:0;padding:0}
