@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;font-stretch:75% 100%;src:url(/assets/instrument-sans-latin-wdth-normal-BVScPF0l.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;font-stretch:75% 100%;src:url(/assets/instrument-sans-latin-ext-wdth-normal-C5E2Gvlv.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:Instrument Sans Fallback;src:local(Arial),local(Helvetica Neue),local(Helvetica);size-adjust:103.25%;ascent-override:93.95%;descent-override:24.21%;line-gap-override:0%}@font-face{font-family:"Source Serif 4 Fallback";src:local(Georgia),local(Times New Roman);size-adjust:101.7%;ascent-override:101.87%;descent-override:32.94%;line-gap-override:0%}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-normal-DIwfbPUE.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-normal-C0olyEE-.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-normal-DrHU7SY7.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-normal-BOyYyU_V.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-normal-HoL-AExg.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-normal-BpEBLj1O.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-opsz-italic-Bl6DJqma.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-opsz-italic-Dibx14aP.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-opsz-italic-CMW9dfKg.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-opsz-italic-C-k5pZlm.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-opsz-italic-BhUEwDRF.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:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-opsz-italic-BOLXpvkj.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}:root{--paper:#f4f6f9;--surface:#fff;--surface-2:#eef1f5;--surface-3:#e1e6ed;--ink:#0d1321;--ink-2:#3d4657;--ink-3:#5b6579;--rule:#e0e4eb;--rule-2:#cdd3dd;--code-bg:#0d1320;--code-ink:#e8ecf4;--code-muted:#8f9bb0;--stage:#0b1120;--stage-rule:#1c2740;--blue:#2f54eb;--amber:#955600;--red:#c23434;--violet:#6d45d9;--success:#127a4b;--danger:#c23434;--accent:var(--blue);--accent-ink:#fff;--accent-soft:color-mix(in srgb, var(--accent) 8%, var(--surface));--accent-line:color-mix(in srgb, var(--accent) 38%, var(--rule));--sans:"Instrument Sans Variable", "Instrument Sans Fallback", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--serif:"Source Serif 4 Variable", "Source Serif 4 Fallback", Charter, "Iowan Old Style", Georgia, serif;--mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--max:1200px;--gutter:clamp(16px, 4vw, 40px);--radius:16px;--radius-sm:10px;--shadow-sm:0 1px 2px #0d13210f, 0 1px 1px #0d13210a;--shadow:0 1px 2px #0d13210d, 0 12px 32px -12px #0d132129;--header-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#090d16;--surface:#0f1522;--surface-2:#151c2b;--surface-3:#202939;--ink:#edf1f8;--ink-2:#b2bccc;--ink-3:#939eb2;--rule:#1b2231;--rule-2:#2a3345;--code-bg:#060a12;--stage:#070b15;--stage-rule:#182238;--blue:#8aa4ff;--amber:#eeaa45;--red:#f47a7a;--violet:#b69bff;--success:#4fcb85;--danger:#f47a7a;--accent-ink:#090d16;--accent-soft:color-mix(in srgb, var(--accent) 12%, var(--surface));--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #0000004d, 0 16px 40px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#090d16;--surface:#0f1522;--surface-2:#151c2b;--surface-3:#202939;--ink:#edf1f8;--ink-2:#b2bccc;--ink-3:#939eb2;--rule:#1b2231;--rule-2:#2a3345;--code-bg:#060a12;--stage:#070b15;--stage-rule:#182238;--blue:#8aa4ff;--amber:#eeaa45;--red:#f47a7a;--violet:#b69bff;--success:#4fcb85;--danger:#f47a7a;--accent-ink:#090d16;--accent-soft:color-mix(in srgb, var(--accent) 12%, var(--surface));--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #0000004d, 0 16px 40px -16px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.accent-cyan,.accent-blue{--accent:var(--blue)}.accent-amber{--accent:var(--amber)}.accent-coral,.accent-red{--accent:var(--red)}.accent-violet{--accent:var(--violet)}*{box-sizing:border-box}html{background:var(--paper);scroll-padding-top:calc(var(--header-h) + 16px)}body{color:var(--ink);background:var(--paper);font:16px/1.6 var(--sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,h4,p,dl,dd,figure{margin:0}h1,h2,h3,h4{font-family:var(--sans);letter-spacing:-.018em;text-wrap:balance;font-weight:620;line-height:1.15}h1{letter-spacing:-.032em;font-size:clamp(2.125rem,4vw,3rem);font-weight:640;line-height:1.05}h2{letter-spacing:-.024em;font-size:clamp(1.4rem,2.3vw,1.75rem)}h3{font-size:1.0625rem}h4{font-size:1rem}p{text-wrap:pretty}code,pre,kbd{font-family:var(--mono);font-feature-settings:"calt" 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}main:focus{outline:none}main{flex:1 0 auto;overflow-x:clip}#app{flex-direction:column;min-height:100dvh;display:flex}#app>*{flex-shrink:0}::selection{background:color-mix(in srgb, var(--blue) 24%, transparent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;color:var(--paper);background:var(--ink);border-radius:var(--radius-sm);padding:10px 14px;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus{transform:none}.icon{vertical-align:-.16em;flex:none;width:1.05em;height:1.05em}.page{width:min(var(--max), 100% - 2 * var(--gutter));margin-inline:auto;padding-block:32px 112px}.section-head{max-width:660px;margin-bottom:28px}.section-head h2{margin-bottom:10px}.section-head p{color:var(--ink-2);font-size:1rem}.section-head.compact{margin-bottom:20px}.kicker{color:var(--accent);margin-bottom:10px;font-size:.875rem;font-weight:600}.lede{max-width:60ch;color:var(--ink-2);font-size:clamp(1.0625rem,1.4vw,1.1875rem);line-height:1.6}.meta{color:var(--ink-2);flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;font-size:.8125rem;list-style:none;display:flex}.meta li{background:var(--surface);border:1px solid var(--rule);border-radius:999px;align-items:center;gap:7px;padding:4px 11px 4px 9px;display:inline-flex}.meta .icon{color:var(--ink-3)}.button{min-height:42px;color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);box-shadow:var(--shadow-sm);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.9375rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}.button:hover{border-color:var(--ink-3);background:var(--surface-2)}.button:active{transform:translateY(1px)}.button.primary{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);box-shadow:0 1px 0 #ffffff2e inset, 0 6px 18px -8px color-mix(in srgb, var(--accent) 80%, transparent)}.button.primary:hover{background:color-mix(in srgb, var(--accent) 88%, var(--ink));border-color:color-mix(in srgb, var(--accent) 88%, var(--ink))}.button.small{min-height:36px;padding:7px 14px;font-size:.875rem}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button .icon{transition:transform .15s}.button:hover .icon{transform:translate(2px)}.text-button{color:var(--ink-3);text-underline-offset:3px;background:0 0;border:0;padding:6px 2px;font-size:.875rem;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .12s,text-decoration-color .12s}.text-button:hover{color:var(--ink);text-decoration-color:currentColor}.card-link{color:var(--accent);align-items:center;gap:6px;font-size:.9375rem;font-weight:600;text-decoration:none;display:inline-flex}.card-link:hover{text-decoration:underline}.progress-label{color:var(--ink-3);justify-content:space-between;margin-bottom:6px;font-size:.8125rem;display:flex}.progress-label strong{color:var(--ink);font-weight:600}.progress-track{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.progress-track i{border-radius:inherit;background:var(--accent);height:100%;transition:width .25s;display:block}.unit-rail{gap:4px;margin:0;padding:0;list-style:none;display:flex}.unit-rail li{flex:1 1 0;min-width:10px;height:8px}.unit-rail li>a,.unit-rail li>span{background:var(--surface-3);border:1px solid #0000;border-radius:3px;height:100%;transition:transform .12s;display:block}.unit-rail li.done>a,.unit-rail li.done>span{background:var(--accent)}.unit-rail li.current>a,.unit-rail li.current>span{background:var(--accent-soft);border-color:var(--accent)}.unit-rail li>a:hover{transform:scaleY(1.5)}.unit-rail li>a:focus-visible{outline-offset:2px}.panel-head{border-bottom:1px solid var(--rule);padding:24px 28px 22px}.panel-head h2{margin-bottom:8px;font-size:1.375rem}.panel-head>p:last-child{max-width:68ch;color:var(--ink-2);font-size:.9375rem}.callout{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--accent-soft);padding:14px 16px}.callout strong{color:var(--accent);margin-bottom:4px;font-size:.8125rem;display:block}.callout p{color:var(--ink-2);font-size:.9375rem}pre{color:var(--code-ink);background:var(--code-bg);border:1px solid var(--stage-rule);border-radius:var(--radius-sm);tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:18px 20px;font-size:.8125rem;line-height:1.65;overflow:auto}.toast{z-index:100;max-width:calc(100vw - 32px);color:var(--paper);background:var(--ink);border-radius:var(--radius-sm);box-shadow:var(--shadow);opacity:0;pointer-events:none;padding:12px 18px;font-size:.875rem;transition:opacity .15s,transform .15s;position:fixed;bottom:20px;right:20px;transform:translateY(8px)}.toast.visible{opacity:1;transform:none}noscript{color:var(--danger);text-align:center;padding:30px;display:block}.not-found{max-width:620px;min-height:60vh;padding-top:80px}.not-found h1{margin-bottom:14px}.not-found>p:not(.kicker){color:var(--ink-2);margin-bottom:24px;font-size:1.0625rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.app-header{z-index:40;background:color-mix(in srgb, var(--paper) 78%, transparent);border-bottom:1px solid color-mix(in srgb, var(--rule) 85%, transparent);-webkit-backdrop-filter:blur(16px)saturate(140%);position:sticky;top:0}.app-header-inner{width:min(var(--max), 100% - 2 * var(--gutter));min-height:var(--header-h);grid-template-columns:auto 1fr auto;align-items:center;gap:20px;margin-inline:auto;display:grid}.wordmark{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark-mark{place-items:center;width:30px;height:30px;display:grid}.wordmark-mark svg{width:100%;height:100%;display:block}.wordmark-text{flex-direction:column;line-height:1.1;display:flex}.wordmark-text strong{letter-spacing:-.015em;font-size:.9375rem;font-weight:650}.wordmark-text span{color:var(--ink-3);font-size:.75rem;font-weight:500}.primary-nav{background:color-mix(in srgb, var(--surface-2) 70%, transparent);border:1px solid var(--rule);border-radius:999px;justify-self:center;align-items:center;gap:1px;padding:3px;display:flex}.primary-nav a{color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:6px 11px;font-size:.84375rem;font-weight:520;text-decoration:none;transition:color .12s,background .12s;position:relative}.primary-nav a:hover{color:var(--ink)}.primary-nav>a[aria-current=page]{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600}.nav-menu{position:relative}.nav-menu>summary{color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:6px 11px;font-size:.84375rem;font-weight:520;list-style:none;display:flex}.nav-menu>summary::-webkit-details-marker{display:none}.nav-menu>summary:hover{color:var(--ink)}.nav-menu>summary.active{color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm);font-weight:600}.nav-menu>summary .icon{transition:transform .15s;transform:rotate(90deg)}.nav-menu[open]>summary .icon{transform:rotate(-90deg)}.nav-menu>div{background:var(--surface);border:1px solid var(--rule);min-width:200px;box-shadow:var(--shadow);border-radius:14px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 10px);left:50%;translate:-50%}.primary-nav .nav-menu>div:before{content:"";height:12px;position:absolute;top:-12px;left:0;right:0}.nav-menu a{white-space:nowrap;border-radius:9px;padding:9px 12px;display:block}.nav-menu a:hover{background:var(--surface-2)}.nav-menu a[aria-current=page]{color:var(--ink);background:var(--surface-2);font-weight:600}.primary-nav a.nav-practice{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line);align-items:center;gap:6px;margin-left:6px;padding-inline:12px 14px;font-weight:620;display:inline-flex}.primary-nav a.nav-practice:hover{color:var(--accent-ink);background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.primary-nav a.nav-practice[aria-current=page]{color:var(--accent-ink);background:var(--accent);box-shadow:0 4px 14px -6px color-mix(in srgb, var(--accent) 70%, transparent)}.nav-practice .icon{width:16px;height:16px}.mobile-nav a.nav-practice{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line);align-items:center;gap:10px;margin-block:4px;font-weight:620;display:flex}.mobile-nav a.nav-practice:hover,.mobile-nav a.nav-practice[aria-current=page]{color:var(--accent-ink);background:var(--accent)}.header-actions,.mobile-actions{justify-self:end;align-items:center;gap:8px;display:flex}.mobile-actions{display:none}.theme-toggle{width:36px;height:36px;color:var(--ink-2);background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;padding:0;transition:color .12s,background .12s,border-color .12s;display:grid}.theme-toggle:hover{color:var(--ink);background:var(--surface-2);border-color:var(--rule)}.theme-toggle .icon{width:18px;height:18px}.account-link{min-height:36px;color:var(--ink-2);background:var(--surface);border:1px solid var(--rule-2);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.account-link:hover,.account-link[aria-current=page]{color:var(--ink);border-color:var(--ink-3)}.account-link.signed-in{padding-left:5px}.account-link>span{width:26px;height:26px;color:var(--accent-ink);background:var(--blue);border-radius:999px;place-items:center;font-size:.75rem;display:grid}.mobile-nav{display:none;position:relative}.mobile-nav>summary{cursor:pointer;border:1px solid var(--rule);background:var(--surface);border-radius:999px;place-content:center;gap:5px;width:40px;height:40px;list-style:none;display:grid}.mobile-nav>summary::-webkit-details-marker{display:none}.mobile-nav>summary span{background:var(--ink);border-radius:2px;width:16px;height:1.75px;transition:transform .15s,opacity .15s;display:block}.mobile-nav[open]>summary span:first-child{transform:translateY(6.75px)rotate(45deg)}.mobile-nav[open]>summary span:nth-child(2){opacity:0}.mobile-nav[open]>summary span:nth-child(3){transform:translateY(-6.75px)rotate(-45deg)}.mobile-nav>summary:hover{background:var(--surface-2)}.mobile-nav>div{width:min(340px,100vw - 32px);max-height:calc(100dvh - var(--header-h) - 16px);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);gap:2px;padding:8px;display:grid;position:absolute;top:calc(100% + 12px);right:0;overflow-y:auto}.mobile-nav a,.mobile-nav .text-button{color:var(--ink);text-align:left;border-radius:var(--radius-sm);padding:11px 14px;font-size:.9375rem;text-decoration:none}.mobile-nav a:hover{background:var(--surface-2)}.mobile-nav a[aria-current=page]{background:var(--surface-2);font-weight:600}.mobile-nav .nav-menu>summary{border-radius:var(--radius-sm);color:var(--ink);box-shadow:none;padding:11px 14px;font-size:.9375rem}.mobile-nav .nav-menu>summary.active{background:0 0}.mobile-nav .nav-menu>div{min-width:0;box-shadow:none;background:0 0;border:0;padding:0 0 0 14px;position:static;translate:none}.mobile-nav .mobile-resume{color:var(--accent);border-top:1px solid var(--rule);border-radius:0;margin-top:4px;font-weight:600}.account-link.start-learning,.mobile-nav .start-learning{color:var(--paper);background:var(--ink);border-color:var(--ink);font-weight:600}.account-link.start-learning:hover,.account-link.start-learning[aria-current=page],.mobile-nav .start-learning:hover{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.mobile-nav .start-learning{text-align:center;margin-top:6px}.crumbs{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:.875rem;display:flex}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink);text-decoration:underline}.crumbs [aria-current=page]{color:var(--ink-2)}.app-footer{border-top:1px solid var(--rule);background:var(--surface)}.app-footer-inner{width:min(var(--max), 100% - 2 * var(--gutter));color:var(--ink-3);grid-template-columns:1fr auto 1fr;align-items:baseline;gap:8px 24px;margin-inline:auto;padding:40px 0 48px;font-size:.875rem;display:grid}.app-footer strong{color:var(--ink);letter-spacing:-.01em;font-weight:650}.app-footer a{color:var(--ink-2);text-decoration:none}.app-footer a:hover{color:var(--ink);text-decoration:underline}.footer-credit{text-align:center}.app-footer .footer-credit a{text-decoration:underline;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2);text-underline-offset:3px}.app-footer .footer-credit a:hover{text-decoration-color:currentColor}.app-footer nav{flex-wrap:wrap;justify-self:end;align-items:baseline;gap:18px;display:flex}@media (width<=1239px){.wordmark-text span{display:none}}@media (width<=1139px){.app-header-inner{grid-template-columns:1fr auto auto;gap:8px}.primary-nav,.header-actions{display:none}.mobile-nav,.mobile-actions{display:flex}.mobile-nav{display:block}}@media (width<=960px){.app-footer-inner{text-align:center;grid-template-columns:1fr;gap:12px}.app-footer nav{justify-content:center;justify-self:center}}.home{padding-top:56px}.home-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:56px;padding-bottom:88px;display:grid}.hero-copy h1{letter-spacing:-.03em;word-spacing:.04em;max-width:13ch;margin-bottom:22px;font-size:clamp(2.5rem,5.4vw,4.25rem);font-weight:630;line-height:1.02}.hero-copy .lede{margin-bottom:30px}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.hero-actions .button{min-height:46px;padding-inline:22px}.hero-facts{border-top:1px solid var(--rule);margin:44px 0 0;padding-top:22px}.hero-facts div{gap:6px;display:grid}.hero-facts dt{color:var(--ink-3);font-size:.8125rem}.hero-facts dd{color:var(--ink);flex-wrap:wrap;gap:4px 18px;margin:0;font-size:.9375rem;font-weight:560;display:flex}.hero-fact-text span{align-items:center;gap:6px;display:inline-flex}.hero-fact-text .icon{color:var(--blue)}.hero-visual{isolation:isolate;height:540px;margin:0;position:relative}.hero-visual:before{content:"";z-index:-1;background:radial-gradient(50% 50% at 52% 46%, color-mix(in srgb, var(--blue) 8%, transparent), transparent 72%);pointer-events:none;position:absolute;inset:-10% -20% -10% -10%}.hero-scene{pointer-events:none;position:absolute;inset:-70px -150px -20px -90px;-webkit-mask-image:radial-gradient(60% 60%,#000 50%,#0000 100%);mask-image:radial-gradient(60% 60%,#000 50%,#0000 100%)}.hero-scene canvas{display:block;width:100%!important;height:100%!important}.catalog{padding-top:24px}.course-path{gap:14px;margin:0;padding:0;list-style:none;display:grid;position:relative}.course-path:before{content:"";background:linear-gradient(var(--rule-2), var(--rule-2));border-radius:2px;width:2px;position:absolute;top:28px;bottom:28px;left:19px}.path-step{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:20px;display:grid;position:relative}.path-marker{z-index:1;width:40px;height:40px;color:var(--ink-2);background:var(--paper);border:2px solid var(--rule-2);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;margin-top:22px;font-size:.9375rem;font-weight:650;display:grid;position:relative}.path-step.is-active .path-marker{color:var(--accent);border-color:var(--accent)}.path-step.is-complete .path-marker{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.path-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1fr) 280px;gap:36px;padding:24px 28px;transition:border-color .15s,box-shadow .15s;display:grid}.path-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow)}.path-card-meta{color:var(--ink-3);flex-wrap:wrap;gap:6px 12px;margin-bottom:8px;font-size:.8125rem;display:flex}.path-card-meta span:first-child{color:var(--accent);font-weight:600}.path-card h3,.library-card h3{letter-spacing:-.028em;margin-bottom:10px;font-size:1.5rem}.path-card h3 a,.library-card h3 a{text-decoration:none}.path-card h3 a:after,.library-card h3 a:after{content:"";position:absolute;inset:0}.path-card,.library-card{position:relative}.path-card h3 a:hover,.library-card h3 a:hover{color:var(--accent)}.path-card-description{max-width:64ch;color:var(--ink-2);font-size:.9375rem;line-height:1.6}.path-card-side{border-left:1px solid var(--rule);align-content:space-between;justify-items:start;gap:18px;padding-left:28px;display:grid}.path-card-side img,.path-card-logo{object-fit:contain;width:44px;height:44px}.path-card-side .button,.library-card .card-link{z-index:1;position:relative}.course-card-progress{gap:10px;width:100%;display:grid}.course-card-progress span{color:var(--ink-3);font-size:.8125rem}.library{padding-top:72px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.library-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;padding:24px 28px;transition:border-color .15s,box-shadow .15s;display:flex}.library-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow)}.library-card-foot{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;margin-top:auto;padding-top:24px;display:grid}.home-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:72px;display:grid}.tool-card{color:inherit;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-content:start;gap:8px;padding:22px 22px 24px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}.tool-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow)}.tool-card h3{letter-spacing:-.02em;font-size:1.25rem}.tool-card p{color:var(--ink-2);font-size:.9375rem}.tool-card .card-link{margin-top:8px}.tool-card-code,.tool-card-table{height:132px;color:var(--code-ink);background:var(--code-bg);border:1px solid var(--stage-rule);border-radius:12px;align-content:center;margin-bottom:14px;padding:16px 18px;font-size:.8125rem;display:grid;overflow:hidden}.tool-card-code code{white-space:pre;color:var(--code-muted);line-height:1.7}.tool-card-code code:first-child{color:#9fb4ff}.tool-card-code .cursor{color:var(--code-ink)}.tool-card-code .cursor:after{content:"";vertical-align:-.2em;background:#9fb4ff;width:7px;height:1.05em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.tool-card-table{font-family:var(--sans);gap:0}.tool-card-table>span{border-bottom:1px solid var(--stage-rule);grid-template-columns:1fr 56px 56px;align-items:center;padding:6px 0;display:grid}.tool-card-table>span:last-child{border-bottom:0}.tool-card-table b{color:var(--code-muted);font-size:.75rem;font-weight:500}.tool-card-table i{font-style:normal}.tool-card-table em{background:#4fcb85;border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 3px #4fcb8529}.home-blog{margin-top:88px}.home-blog-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px;display:flex}.home-blog-head .section-head{margin-bottom:0}.home-blog-list{border-top:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.home-blog-list li{border-bottom:1px solid var(--rule)}.home-blog-list li:nth-child(odd){border-right:1px solid var(--rule)}.home-blog-list a{align-content:start;gap:6px;height:100%;padding:22px 24px 24px;text-decoration:none;transition:background .15s;display:grid}.home-blog-list li:nth-child(odd) a{padding-left:0}.home-blog-list a:hover strong{color:var(--accent)}.home-blog-category{color:var(--accent);font-size:.8125rem;font-weight:600}.home-blog-list strong{font-family:var(--serif);letter-spacing:-.01em;font-size:1.3125rem;font-weight:600;line-height:1.25;transition:color .15s}.home-blog-description{color:var(--ink-2);font-size:.9375rem;line-height:1.55}@media (width<=1040px){.home{padding-top:32px}.home-hero{grid-template-columns:1fr;gap:40px;padding-bottom:64px}.hero-copy h1{max-width:16ch}.hero-visual{height:440px}.path-card{grid-template-columns:1fr;gap:20px}.path-card-side{border-left:0;border-top:1px solid var(--rule);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;padding:20px 0 0}}@media (width<=720px){.hero-actions .button{flex:auto}.hero-visual{height:340px}.hero-scene{inset:-30px -40px 10px}.course-path:before{left:15px}.path-step{grid-template-columns:32px minmax(0,1fr);gap:12px}.path-marker{width:32px;height:32px;margin-top:20px;font-size:.8125rem}.path-card,.library-card{padding:20px}.path-card-side{grid-template-columns:1fr;justify-items:stretch}.path-card-side img,.path-card-logo{display:none}.library-grid,.home-tools,.home-blog-list,.library-card-foot{grid-template-columns:1fr}.home-blog-list li:nth-child(odd){border-right:0}.home-blog-list a,.home-blog-list li:nth-child(odd) a{padding:20px 0}.home-blog-head{flex-direction:column;align-items:start}}.course-header{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:start;gap:48px;margin-bottom:48px;padding:28px 0 48px;display:grid}.course-title{align-items:center;gap:18px;margin-bottom:16px;display:flex}.course-title img{object-fit:contain;flex:none}.course-title h1{margin:0}.course-header .meta{margin-top:20px}.course-status{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}.course-status-head{gap:12px;margin-bottom:18px;display:grid}.course-status-head strong{font-size:.9375rem;font-weight:600}.course-status .button{width:100%}.course-share{margin-top:10px}.course-study-guide{max-width:76ch;margin-bottom:48px}.course-study-guide h2{margin-bottom:16px}.course-study-guide p,.course-study-guide li{color:var(--ink-2);line-height:1.65}.course-study-guide strong{color:var(--ink)}.course-study-guide p+p{margin-top:10px}.course-study-guide ol{margin:20px 0;padding-left:1.4rem}.course-study-guide li+li{margin-top:12px}.course-study-guide li::marker{color:var(--accent);font-weight:600}.course-glossary{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);margin-top:16px}.course-glossary summary{cursor:pointer;padding:18px 24px;font-weight:600}.course-glossary dl{padding:0 24px 20px}.course-glossary dl>div{border-top:1px solid var(--rule);grid-template-columns:minmax(100px,1fr) minmax(0,3fr);gap:12px;padding:12px 0;display:grid}.course-glossary dt{font-weight:600}.course-glossary dd{color:var(--ink-2);margin:0;line-height:1.6}@media (width<=600px){.course-glossary dl>div{grid-template-columns:minmax(0,1fr);gap:4px}}.course-celebration{width:min(520px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);border-radius:16px;margin:auto;padding:0;overflow:auto;box-shadow:0 32px 100px #0009}.course-celebration::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#03060bcc}.celebration-content{position:relative}.celebration-header{justify-content:space-between;align-items:center;padding:24px 28px 0;display:flex}.celebration-brand{align-items:center;gap:10px;font-size:.75rem;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.celebration-brand small{color:var(--ink-3);font-size:.6875rem;font-weight:400;display:block}.celebration-dismiss{width:40px;height:40px;color:var(--ink-3);background:0 0;border:0;border-radius:50%;place-items:center;margin-right:-10px;display:grid}.celebration-dismiss:hover{color:var(--ink);background:var(--surface-2)}.celebration-record{padding:32px 32px 28px}.celebration-record h2{letter-spacing:-.035em;font-size:clamp(1.875rem,6vw,2.25rem);font-weight:600}.celebration-record h2:focus{outline:none}#celebration-description{color:var(--ink-2);margin-top:10px;font-size:.9375rem}.celebration-course{align-items:center;gap:14px;margin-top:30px;display:flex}.celebration-course img{object-fit:contain;flex:none}.celebration-course h3{letter-spacing:-.02em;text-wrap:initial;max-width:25ch;font-size:1.375rem;font-weight:600;line-height:1.3}.celebration-record .unit-rail{gap:4px;margin:22px 0 12px}.celebration-record .unit-rail li{min-width:0;height:4px}.celebration-proof{color:var(--ink-2);flex-wrap:wrap;gap:8px 20px;font-size:.75rem;display:flex}.celebration-proof span{align-items:center;gap:5px;display:inline-flex}.celebration-proof .icon{color:var(--accent)}.celebration-sharing{background:var(--paper);border-block:1px solid var(--rule);padding:24px 32px 14px}.celebration-sharing h3{font-size:.9375rem;font-weight:600}.celebration-sharing>p:not(.celebration-status){color:var(--ink-3);margin-top:6px;font-size:.8125rem}.celebration-share{grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;display:grid}.celebration-social{min-height:48px;color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:10px;font-size:.875rem;font-weight:600;text-decoration:none;display:flex}.celebration-social:hover{background:var(--surface-2);border-color:var(--ink-3)}.celebration-social img{flex:none}.celebration-linkedin{grid-column:1/-1}.celebration-share-tools{flex-wrap:wrap;justify-content:space-between;gap:0 12px;margin-top:6px;display:flex}.celebration-share-tools button,.celebration-footer button{min-height:44px;color:var(--ink-2);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:6px 0;font-size:.8125rem;display:inline-flex}.celebration-share-tools button:hover,.celebration-footer button:hover{color:var(--ink)}.celebration-status{color:var(--ink-2);font-size:.8125rem}.celebration-status:not(:empty){margin:6px 0 12px}.celebration-content textarea{border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:var(--surface);resize:vertical;width:100%;margin-bottom:16px;padding:12px}.celebration-footer{justify-content:flex-end;padding:8px 32px;display:flex}.celebration-footer button{color:var(--ink);font-weight:600}@media (width<=400px){.celebration-header{padding-inline:20px}.celebration-record{padding:24px 20px}.celebration-sharing{padding:20px 20px 12px}.celebration-footer{padding-inline:20px}.celebration-brand{font-size:.6875rem}.celebration-course{margin-top:24px}.celebration-course h3{font-size:1.25rem}}.celebration-confetti{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.celebration-confetti i{top:-20px;left:var(--left);background:var(--color);opacity:0;width:8px;height:14px;animation:course-confetti 2.8s var(--delay) ease-in forwards;position:absolute}.celebration-confetti i:nth-child(3n){border-radius:50%;width:9px;height:9px}@keyframes course-confetti{0%{opacity:1;transform:translate(0,0)rotate(0)}75%{opacity:.9}to{opacity:0;transform:translate3d(var(--drift), 600px, 0) rotate(var(--spin))}}@media (prefers-reduced-motion:reduce){.celebration-confetti{display:none}.celebration-confetti i{animation:none}}.syllabus{margin-bottom:64px}.unit-list{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.unit-row+.unit-row{border-top:1px solid var(--rule)}.unit-row>a,.unit-row>.unit-link{grid-template-columns:44px minmax(0,1fr) auto 110px;align-items:center;gap:18px;padding:18px 22px 18px 20px;text-decoration:none;transition:background .12s;display:grid}.unit-row>a:hover{background:var(--surface-2)}.unit-row.next>a{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.unit-number{width:32px;height:32px;color:var(--ink-2);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:.8125rem;font-weight:700;display:inline-grid}.unit-row.done .unit-number{color:var(--paper);background:var(--success)}.unit-row.next .unit-number{color:var(--accent-ink);background:var(--accent)}.unit-title{min-width:0}.unit-title strong{letter-spacing:-.005em;font-size:1rem;font-weight:600}.unit-meta{color:var(--ink-3);white-space:nowrap;gap:14px;font-size:.8125rem;display:flex}.unit-meta>span{align-items:center;gap:5px;display:inline-flex}.unit-status{color:var(--ink-3);justify-self:end;align-items:center;gap:4px;font-size:.8438rem;font-weight:600;display:inline-flex}.unit-row.done .unit-status{color:var(--success)}.unit-row.next .unit-status{color:var(--accent)}.unit-row.locked>.unit-link{opacity:.58}.final-assessment .unit-number{font-size:.72rem}.assessment-page{max-width:920px}.assessment-header{max-width:700px;padding:28px 0 38px}.assessment-header h1{margin:6px 0 14px}.assessment-header>p:last-child{color:var(--ink-2);font-size:1.05rem;line-height:1.6}.assessment-locked{text-align:center;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:56px;padding:clamp(30px,6vw,56px)}.assessment-locked>.icon{width:32px;height:32px;color:var(--accent);margin-bottom:18px}.assessment-locked h1{max-width:18ch;margin:8px auto 14px}.assessment-locked>p:not(.kicker){color:var(--ink-2);margin-bottom:24px}.assessment-result{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--danger);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:24px 26px;display:flex}.assessment-result.passed{border-left-color:var(--success)}.assessment-result h2{margin:5px 0;font-size:1.7rem}.assessment-result>div>p:last-child{color:var(--ink-2)}.assessment-form{gap:16px;display:grid}.assessment-question{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);overflow-wrap:anywhere;min-width:0;margin:0;padding:24px 26px 26px}.assessment-question:focus{outline:2px solid var(--accent);outline-offset:3px}.assessment-question legend{float:left;width:100%;color:var(--ink);padding:0 0 18px;font-size:1.08rem;font-weight:650;line-height:1.45}.assessment-question legend span{color:var(--accent);margin-bottom:5px;font-size:.8125rem;font-weight:600;display:block}.assessment-options{clear:both;gap:8px;display:grid}.assessment-options label{cursor:pointer;border:1px solid var(--rule);border-radius:var(--radius-sm);grid-template-columns:18px 28px minmax(0,1fr);align-items:start;gap:12px;padding:12px 14px;font-size:.94rem;display:grid}.assessment-options label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.assessment-options label.is-answer{border-color:var(--success);background:color-mix(in srgb, var(--success) 10%, var(--surface))}.assessment-options label.is-wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.assessment-options input{width:16px;height:16px;accent-color:var(--accent);margin:5px 0 0}.assessment-question:disabled label{cursor:default}.assessment-explanation{color:var(--ink-2);background:var(--surface-2);border-radius:var(--radius-sm);margin-top:16px;padding:13px 15px;font-size:.9rem;line-height:1.55}.assessment-explanation.correct strong{color:var(--success)}.assessment-explanation.incorrect strong{color:var(--danger)}.assessment-submit{background:var(--surface);border:1px solid var(--accent-line);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:20px;margin-top:8px;padding:18px 20px;display:flex}.assessment-back{text-align:right;margin-top:24px}.course-project{border-top:1px solid var(--rule);padding-top:48px}.project-summary{background:var(--surface);border:1px solid var(--accent-line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);gap:40px;padding:28px;display:grid}.project-summary .kicker{color:var(--accent);margin-bottom:7px}.project-summary h2{max-width:24ch;margin-bottom:10px}.project-summary>ol{align-content:center;gap:8px;margin:0;padding:0;list-style:none;display:grid}.project-summary>ol li{color:var(--ink-2);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;font-size:.875rem;font-weight:550;line-height:1.35;display:grid}.project-summary>ol span{width:24px;height:24px;color:var(--accent-ink);background:var(--accent);border-radius:50%;place-items:center;font-size:.6875rem;font-weight:750;display:inline-grid}.project-details{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin-top:12px;overflow:hidden}.project-details>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;font-size:.875rem;font-weight:650;list-style:none;display:flex}.project-details>summary::-webkit-details-marker{display:none}.project-details>summary .icon{color:var(--ink-3);transition:transform .15s}.project-details[open]>summary .icon{transform:rotate(180deg)}.project-details-body{border-top:1px solid var(--rule);padding:24px 28px 28px}.project-brief{max-width:76ch;color:var(--ink-2);line-height:1.6}.project-contract{background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--radius-sm);grid-template-columns:1fr 1fr;margin:22px 0 0;display:grid;overflow:hidden}.project-contract>div{padding:18px 20px}.project-contract>div+div{border-left:1px solid var(--rule)}.project-contract>div:last-child{border-top:1px solid var(--rule);border-left:0;grid-column:1/-1}.project-contract dt,.project-milestones>li>span,.project-milestones>li>strong{color:var(--ink-3);font-size:.8125rem;font-weight:600}.project-contract dd{color:var(--ink-2);margin-top:7px;font-size:.875rem;line-height:1.5}.project-milestones{border:1px solid var(--rule);border-radius:var(--radius-sm);grid-template-columns:repeat(2,minmax(0,1fr));margin:22px 0 0;padding:0;list-style:none;display:grid;overflow:hidden}.project-milestones>li{padding:20px}.project-milestones>li:nth-child(2n){border-left:1px solid var(--rule)}.project-milestones>li:nth-child(n+3){border-top:1px solid var(--rule)}.project-milestones h3{margin:7px 0 8px;font-size:1rem}.project-milestones p,.project-milestones ul{color:var(--ink-2);font-size:.8438rem;line-height:1.5}.project-milestones>li>strong{margin-top:14px;display:block}.project-milestones ul{margin:7px 0 0;padding-left:17px}.project-milestones li li+li{margin-top:5px}.project-milestones li li::marker{color:var(--accent)}.project-proof{border:1px solid var(--rule);border-radius:var(--radius-sm);grid-template-columns:1fr 1fr;margin-top:22px;display:grid;overflow:hidden}.project-proof section{padding:20px}.project-proof section+section{border-left:1px solid var(--rule)}.project-proof h3{font-size:1rem}.project-proof ul{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.project-proof li{color:var(--ink-2);align-items:start;gap:8px;font-size:.8438rem;line-height:1.45;display:flex}.project-proof .icon{color:var(--accent);flex:none;margin-top:.2em}.project-proof section:last-child .icon{color:var(--success)}.project-incidents{border:1px solid var(--rule);border-radius:var(--radius-sm);margin-top:22px;overflow:hidden}.project-incidents>header{border-bottom:1px solid var(--rule);padding:20px}.project-incidents>header h3{margin:5px 0 6px;font-size:1rem}.project-incidents>header>p:last-child{color:var(--ink-2);font-size:.8438rem;line-height:1.5}.project-incidents>div{overflow-x:auto}.project-incidents table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:820px}.project-incidents th,.project-incidents td{color:var(--ink-2);border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:13px 15px;font-size:.82rem;line-height:1.5}.project-incidents tr:last-child>*{border-bottom:0}.project-incidents thead th{color:var(--ink-3);background:var(--surface-2);font-size:.8125rem}.project-incidents tbody th{color:var(--ink);font-weight:650}.orientation{margin-bottom:64px}.orientation-head{max-width:76ch;margin-bottom:20px}.orientation-head h2{margin:6px 0 10px}.orientation-head>p:last-child,.orientation-problem>p{color:var(--ink-2);line-height:1.65}.orientation-problem,.orientation-architecture,.orientation-boundaries{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.orientation h3{color:var(--ink-3);margin-bottom:10px;font-size:.8125rem;font-weight:600}.orientation-problem{grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:8px 28px;padding:24px 28px;display:grid}.orientation-problem h3{grid-column:1/-1}.orientation-problem aside{border-left:1px solid var(--rule);grid-area:2/2;gap:6px;padding-left:24px;display:grid}.orientation-problem aside strong{color:var(--accent);font-size:.8125rem}.orientation-problem aside span{color:var(--ink-2);font:.95rem/1.5 var(--serif)}.orientation-architecture{margin-top:14px;padding:24px 28px}.orientation-architecture ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.orientation-architecture li{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:14px}.orientation-architecture li>span{width:23px;height:23px;color:var(--accent-ink);background:var(--accent);border-radius:50%;place-items:center;margin-bottom:9px;font-size:.7rem;font-weight:700;display:inline-grid}.orientation-architecture li strong{margin-bottom:5px;font-size:.88rem;display:block}.orientation-architecture li p{color:var(--ink-2);font-size:.84rem;line-height:1.5}.orientation-boundaries{grid-template-columns:1fr 1fr;margin-top:14px;display:grid;overflow:hidden}.orientation-boundaries section{padding:22px 28px}.orientation-boundaries section+section{border-left:1px solid var(--rule)}.orientation-boundaries ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.orientation-boundaries li{color:var(--ink-2);align-items:start;gap:9px;font-size:.88rem;line-height:1.5;display:flex}.orientation-boundaries .icon{color:var(--accent);flex:none;margin-top:.2em}@media (width<=960px){.course-header{grid-template-columns:1fr;gap:28px}.project-summary{grid-template-columns:1fr;gap:22px}.orientation-problem{grid-template-columns:1fr}.orientation-problem aside{border-left:0;border-top:1px solid var(--rule);grid-area:auto;padding:16px 0 0}.orientation-architecture ol{grid-template-columns:1fr 1fr}.unit-row>a,.unit-row>.unit-link{grid-template-columns:44px minmax(0,1fr)}.unit-meta,.unit-status{grid-column:2;justify-self:start}}@media (width<=640px){.unit-row>a,.unit-row>.unit-link{grid-template-columns:32px minmax(0,1fr) auto;gap:12px;padding:15px 16px}.unit-number{width:28px;height:28px}.unit-meta{grid-area:1/3}.unit-status{display:none}.project-summary,.project-details-body{padding-inline:18px}.project-contract,.project-milestones,.project-proof{grid-template-columns:1fr}.project-contract>div+div,.project-milestones>li:nth-child(2n),.project-proof section+section{border-left:0;border-top:1px solid var(--rule)}.project-milestones>li:nth-child(n+2){border-top:1px solid var(--rule)}.project-proof,.orientation-architecture ol,.orientation-boundaries{grid-template-columns:1fr}.orientation-boundaries section+section{border-left:0;border-top:1px solid var(--rule)}.assessment-result,.assessment-submit{flex-direction:column;align-items:stretch}.assessment-question{padding-inline:18px}}.lesson-page{padding-top:20px}.lesson-topbar{border-bottom:1px solid var(--rule);gap:14px;margin-bottom:8px;padding-bottom:20px;display:grid}.lesson-topbar .unit-rail li{height:6px}.lesson-layout{grid-template-columns:250px minmax(0,1fr) 200px;align-items:start;gap:48px;padding-top:24px;display:grid}.lesson-nav{top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);position:sticky;overflow:hidden}.lesson-nav-toggle{text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:14px 16px;display:flex}.lesson-nav-toggle>span{gap:2px;min-width:0;display:grid}.lesson-nav-toggle strong{letter-spacing:-.01em;font-size:.9375rem;font-weight:650}.lesson-nav-toggle small{color:var(--ink-3);font-size:.8125rem}.lesson-nav-toggle .icon{color:var(--ink-3);transition:transform .15s}.lesson-nav.open .lesson-nav-toggle .icon{transform:rotate(90deg)}.lesson-nav-body{max-height:calc(100vh - var(--header-h) - 100px);overscroll-behavior:contain;border-top:1px solid var(--rule);display:none;overflow-y:auto}.lesson-nav.open .lesson-nav-body{display:block}.lesson-nav .progress{padding:14px 16px 4px}.lesson-nav ol{margin:0;padding:8px;list-style:none}.lesson-nav li a{color:var(--ink-2);border-radius:var(--radius-sm);grid-template-columns:24px minmax(0,1fr);align-items:start;gap:10px;padding:9px 8px;font-size:.875rem;line-height:1.4;text-decoration:none;display:grid}.lesson-nav li a:hover{background:var(--surface-2);color:var(--ink)}.lesson-nav li.current a{color:var(--ink);background:var(--accent-soft);font-weight:600}.lesson-nav-index{width:22px;height:22px;color:var(--ink-3);background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;margin-top:1px;font-size:.6875rem;font-weight:700;display:inline-grid}.lesson-nav li.current .lesson-nav-index{color:var(--accent-ink);background:var(--accent)}.lesson-nav li.done .lesson-nav-index{color:var(--paper);background:var(--success)}.lesson-nav-back{color:var(--ink-2);border-top:1px solid var(--rule);align-items:center;gap:8px;padding:12px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.lesson-nav-back:hover{color:var(--ink);background:var(--surface-2)}.outline{top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);overscroll-behavior:contain;border-left:1px solid var(--rule);padding-left:16px;position:sticky;overflow-y:auto}.outline>p{color:var(--ink-3);margin-bottom:10px;font-size:.8125rem;font-weight:600}.outline ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.outline li{position:relative}.outline a{color:var(--ink-3);padding:5px 0;font-size:.8438rem;line-height:1.4;text-decoration:none;display:block}.outline a:hover{color:var(--ink)}.outline li.active a{color:var(--ink);font-weight:600}.outline li.active:before{content:"";background:var(--accent);border-radius:2px;width:2px;position:absolute;top:4px;bottom:4px;left:-17px}.lesson-article{min-width:0;max-width:720px}.lesson-video{margin:24px 0 0}.lesson-video iframe{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--surface);border:0;width:100%;height:auto;display:block}.lesson-video figcaption{font:.875rem/1.5 var(--sans);margin-top:10px}.lesson-header{border-bottom:1px solid var(--rule);margin-bottom:28px;padding-bottom:28px}.lesson-header h1{margin-bottom:8px}.lesson-header .meta{margin-top:14px}.objectives{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin-bottom:44px;padding:20px 24px}.objectives h2{color:var(--ink-3);margin-bottom:12px;font-size:.8125rem;font-weight:600}.objectives ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.objectives li{color:var(--ink);align-items:start;gap:10px;font-size:.9375rem;line-height:1.5;display:flex}.objectives .icon{color:var(--accent);margin-top:.22em}.objectives>p{color:var(--ink-2);margin-top:16px;font-size:.9375rem;line-height:1.6}.prose{font-family:var(--serif)}.lesson-section{margin-bottom:40px}.lesson-section h2{font-family:var(--sans);margin-bottom:14px}.lesson-section p{max-width:68ch;color:var(--ink);font-size:1.0938rem;line-height:1.72}.lesson-section p+p{margin-top:16px}.lesson-section ul{color:var(--ink);margin:14px 0 0;padding-left:1.25rem;font-size:1.0625rem;line-height:1.65}.lesson-section li+li{margin-top:6px}.lesson-section li::marker{color:var(--accent)}.practical-guide,.api-contracts,.workbench,.diagnostic-clinic,.walkthrough,.simulation,.quiz{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin:48px 0;overflow:hidden}.practical-guide{border-color:var(--accent-line);box-shadow:0 18px 48px -40px color-mix(in srgb, var(--accent) 55%, transparent)}.practical-guide>.panel-head{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 68%)}.practical-prerequisites{border-bottom:1px solid var(--rule);padding:22px 24px}.practical-prerequisites h3{margin-bottom:10px;font-size:1rem}.practical-prerequisites ul{color:var(--ink-2);margin:0;padding-left:1.25rem;font-size:.9375rem;line-height:1.6}.practical-prerequisites li+li{margin-top:6px}#library-practice>h2,#library-practice>p,#library-practice>.button,#library-practice>.run-locally{margin:20px 24px}#library-practice>p{color:var(--ink-2);line-height:1.6}.configuration-table>h3,.success-checks h3{color:var(--ink-3);margin-bottom:12px;font-size:.8125rem;font-weight:600}.success-checks ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.success-checks li{color:var(--ink-2);align-items:start;gap:9px;font-size:.9rem;line-height:1.5;display:flex}.success-checks .icon{color:var(--accent);margin-top:.22em}.practical-steps article{border-bottom:1px solid var(--rule);background:var(--paper)}.practical-steps article>header{padding:22px 24px 18px}.practical-steps article>header>span{color:var(--accent);margin-bottom:7px;font-size:.8125rem;font-weight:600;display:block}.practical-steps article h3{margin-bottom:7px;font-size:1.0625rem}.practical-steps article header p{max-width:68ch;color:var(--ink-2);font-size:.9375rem;line-height:1.6}.code-toolbar{min-height:38px;color:var(--code-muted);background:var(--code-bg);border-top:1px solid var(--stage-rule);border-bottom:1px solid #1c222a;justify-content:space-between;align-items:center;gap:16px;padding:6px 10px 6px 18px;display:flex}.code-toolbar>span{font:.75rem var(--mono)}.copy-button{min-height:27px;color:var(--code-ink);border:1px solid var(--stage-rule);background:#ffffff0f;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:600}.copy-button:hover{border-color:var(--accent);color:var(--accent)}.practical-steps pre{white-space:pre;overflow-wrap:normal;border:0;border-radius:0;max-height:440px}.expected-evidence{color:var(--ink-2);background:var(--surface-2);border-top:1px solid var(--rule);padding:13px 24px 15px;font-size:.8438rem;line-height:1.5}.expected-evidence strong{color:var(--ink);margin-bottom:4px;font-size:.8125rem;display:block}.configuration-table{border-bottom:1px solid var(--rule);padding:22px 24px 24px}.configuration-table>div{border:1px solid var(--rule);border-radius:var(--radius-sm);overflow-x:auto}.configuration-table table{border-collapse:collapse;width:100%;min-width:620px;font-size:.8438rem;line-height:1.45}.configuration-table th,.configuration-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:11px 12px}.configuration-table tr:last-child th,.configuration-table tr:last-child td{border-bottom:0}.configuration-table thead th{color:var(--ink-3);background:var(--surface-2);font-size:.8125rem}.configuration-table tbody th{width:26%;color:var(--ink);font-weight:600}.configuration-table tbody td{color:var(--ink-2)}.configuration-table code{color:var(--accent);font-size:.78rem}.success-checks{padding:22px 24px}.guided-lab{border-top:1px solid var(--rule);background:var(--accent-soft);padding:22px 24px 24px}.guided-lab header{margin-bottom:14px}.guided-lab h3{font-size:1.0625rem}.guided-lab ol{color:var(--ink-2);margin:0;padding-left:1.25rem;font-size:.9rem;line-height:1.55}.guided-lab li+li{margin-top:6px}.guided-lab dl{border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--accent-line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:18px;display:grid;overflow:hidden}.guided-lab dl>div{background:var(--surface);padding:14px}.guided-lab dt{color:var(--ink-3);margin-bottom:5px;font-size:.8125rem;font-weight:600}.guided-lab dd{color:var(--ink-2);font-size:.82rem;line-height:1.45}.guided-lab>.button{margin:20px 24px 24px}.guided-lab>.button.lab-recorded{color:var(--success)}.api-contracts>div{overscroll-behavior-inline:contain;overflow-x:auto}.api-contracts table{border-collapse:collapse;width:100%;min-width:900px}.api-contracts th,.api-contracts td{color:var(--ink-2);border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:13px 15px;font-size:.82rem;line-height:1.5}.api-contracts thead th{color:var(--ink-3);background:var(--surface-2);font-size:.8125rem}.api-contracts tbody th{color:var(--accent);font-weight:650}.feature-grid{border-bottom:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.feature-grid article{border-bottom:1px solid var(--rule);padding:18px 24px}.feature-grid article:nth-child(odd){border-right:1px solid var(--rule)}.feature-grid article:nth-last-child(-n+2){border-bottom:0}.feature-grid h3{margin-bottom:6px;font-size:.9375rem}.feature-grid p{color:var(--ink-2);font-size:.875rem;line-height:1.5}.workbench-body{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);display:grid}.workflow h3,.watchpoints h3{color:var(--ink-3);font-size:.8125rem;font-weight:600}.workflow{border-right:1px solid var(--rule);padding:20px 24px}.workflow ol{gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.workflow li{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;display:grid}.workflow li>span{width:22px;height:22px;color:var(--ink-2);background:var(--surface-2);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.workflow li p{color:var(--ink-2);padding-top:2px;font-size:.875rem;line-height:1.5}.recipe{background:var(--paper);min-width:0}.tabs{overscroll-behavior-inline:contain;border-bottom:1px solid var(--rule);background:var(--surface);display:flex;overflow-x:auto}.tabs button{min-height:44px;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;flex:1 0 auto;padding:8px 16px;font-size:.875rem;font-weight:600;position:relative}.tabs button:hover,.tabs button.active{color:var(--ink)}.tabs button.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.recipe-content{padding:20px 24px 24px}.recipe-content h4{margin-bottom:12px;font-size:1rem}.recipe-content .callout{margin-top:14px}.watchpoints{border-top:1px solid var(--rule);background:var(--surface);padding:18px 24px 20px}.watchpoints ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin:10px 0 0;padding:0;list-style:none;display:grid}.watchpoints li{color:var(--ink-2);padding-left:16px;font-size:.875rem;line-height:1.5;position:relative}.watchpoints li:before{content:"";background:var(--amber);border-radius:50%;width:7px;height:7px;position:absolute;top:.6em;left:0}.diagnostic-table{border-top:1px solid var(--rule);overflow-x:auto}.diagnostic-table table{border-collapse:collapse;table-layout:fixed;width:100%}.diagnostic-table th,.diagnostic-table td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:16px 20px;font-size:.875rem;line-height:1.55}.diagnostic-table thead th{color:var(--ink-3);background:var(--surface-2);font-size:.8125rem}.diagnostic-table tbody th{width:25%;color:var(--ink);font-weight:700}.diagnostic-table tbody td{width:37.5%;color:var(--ink-2)}.diagnostic-table tbody tr:last-child>*{border-bottom:0}.walkthrough-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.walkthrough-steps{border-right:1px solid var(--rule);align-content:start;gap:4px;margin:0;padding:12px;list-style:none;display:grid}.walkthrough-steps li{color:var(--ink-3);border-radius:var(--radius-sm);grid-template-columns:24px minmax(0,1fr);align-items:start;gap:12px;padding:10px 12px;transition:background .15s,color .15s;display:grid}.walkthrough-steps li>span{width:24px;height:24px;color:var(--ink-3);border:1px solid var(--rule-2);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.walkthrough-steps li p{padding-top:2px;font-size:.9375rem;line-height:1.45}.walkthrough-steps li.active{color:var(--ink);background:var(--accent-soft);font-weight:600}.walkthrough-steps li.active>span{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.walkthrough-steps li.done{color:var(--ink-2)}.walkthrough-steps li.done>span{color:var(--success);border-color:var(--success)}.trace{background:var(--paper);flex-direction:column;padding:20px 24px;display:flex}.trace-head{color:var(--ink-3);justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;font-size:.8125rem;font-weight:600;display:flex}.trace-head i{text-transform:none;letter-spacing:0;color:var(--ink-3);align-items:center;gap:6px;font-size:.8125rem;font-style:normal;font-weight:600;display:inline-flex}.trace-head i:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.trace-head i.running{color:var(--amber)}.trace-head i.complete{color:var(--success)}.trace strong{letter-spacing:-.01em;margin-bottom:8px;font-size:1.0625rem;display:block}.trace>p{color:var(--ink-2);font:.9688rem/1.6 var(--serif);flex:1}.trace-actions{align-items:center;gap:14px;margin-top:22px;display:flex}.run-locally{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);margin:32px 0;overflow:hidden}.run-locally summary{cursor:pointer;padding:14px 18px;list-style:none}.run-locally summary::-webkit-details-marker{display:none}.run-locally summary>span{align-items:center;gap:10px;display:flex}.run-locally summary .icon{color:var(--ink-3);transition:transform .15s}.run-locally[open] summary .icon{transform:rotate(90deg)}.run-locally summary strong{font-size:.9375rem}.run-locally summary small{color:var(--ink-3);font-size:.8438rem}.run-locally pre{border-top:1px solid var(--rule);border-radius:0}.quiz{padding:24px 26px 26px}.quiz h2{margin-bottom:18px;font-size:1.25rem}.quiz fieldset{border:0;gap:8px;margin:0 0 16px;padding:0;display:grid}.quiz label{cursor:pointer;color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius-sm);grid-template-columns:18px 28px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;font-size:.9688rem;transition:border-color .12s,background .12s;display:grid}.quiz label:hover{border-color:var(--rule-2);background:var(--surface-2)}.quiz label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.quiz label.is-answer{border-color:var(--success);background:color-mix(in srgb, var(--success) 10%, var(--surface))}.quiz input{width:16px;height:16px;accent-color:var(--accent);margin:0}.quiz-letter{width:26px;height:26px;color:var(--ink-2);background:var(--surface-2);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.quiz label:has(input:checked) .quiz-letter{color:var(--accent-ink);background:var(--accent)}.quiz-actions{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px;display:grid}.quiz-feedback{color:var(--ink-3);padding-top:9px;font-size:.9375rem;line-height:1.5}.quiz-feedback:empty{margin:0;padding:0}.quiz-feedback strong{font-weight:700}.quiz-feedback.correct{color:var(--success)}.quiz-feedback.incorrect{color:var(--danger)}.quiz-feedback.correct strong,.quiz-feedback.incorrect strong{color:inherit}.takeaway{background:var(--ink);color:var(--paper);border-radius:var(--radius);margin:40px 0;padding:22px 26px}.takeaway .kicker{color:color-mix(in srgb, var(--paper) 60%, transparent)}.takeaway p:last-child{font:1.1875rem/1.45 var(--serif)}.sources{margin:40px 0}.sources h2{margin-bottom:12px;font-size:1.125rem}.sources ul{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.sources li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;display:flex}.sources a{color:var(--ink);align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.sources a:hover{color:var(--accent);text-decoration:underline}.sources a .icon{color:var(--ink-3)}.sources small{color:var(--ink-3);white-space:nowrap;font-size:.8125rem}.finish{margin-top:48px}.finish-card{background:var(--surface);border:1px solid var(--accent-line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:24px;padding:22px 26px;display:flex}.finish-card h2{margin-bottom:4px;font-size:1.125rem}.pager{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.pager a{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);gap:6px;padding:16px 18px;text-decoration:none;transition:border-color .12s;display:grid}.pager a:hover{border-color:var(--accent-line)}.pager small{color:var(--ink-3);font-size:.8125rem;font-weight:600}.pager span{align-items:center;gap:8px;font-size:.9375rem;font-weight:600;line-height:1.35;display:flex}.pager a.next{text-align:right}.pager a.next span{justify-content:flex-end}.pager .icon{color:var(--accent)}@media (width<=1180px){.lesson-layout{grid-template-columns:240px minmax(0,1fr);gap:40px}.outline{display:none}}@media (width<=960px){.lesson-layout{grid-template-columns:1fr;gap:24px}.lesson-nav{position:static}.lesson-article{max-width:none}.workbench-body,.walkthrough-grid,.feature-grid,.watchpoints ul{grid-template-columns:1fr}.feature-grid article:nth-child(odd){border-right:0}.feature-grid article:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}.feature-grid article:last-child{border-bottom:0}.workflow,.walkthrough-steps{border-right:0;border-bottom:1px solid var(--rule)}}@media (width<=640px){.panel-head,.quiz,.recipe-content,.workflow,.watchpoints,.trace,.practical-steps article>header,.configuration-table,.success-checks,.guided-lab,.expected-evidence{padding-inline:18px}.guided-lab dl{grid-template-columns:1fr}.diagnostic-table{overflow:visible}.diagnostic-table table,.diagnostic-table tbody,.diagnostic-table tr,.diagnostic-table th,.diagnostic-table td{width:100%;display:block}.diagnostic-table thead{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.diagnostic-table tbody tr{border-bottom:1px solid var(--rule);padding:20px 18px}.diagnostic-table tbody tr:last-child{border-bottom:0}.diagnostic-table tbody th,.diagnostic-table tbody td{border:0;width:100%;padding:0}.diagnostic-table tbody th{margin-bottom:18px;font-size:1rem}.diagnostic-table tbody td+td{margin-top:18px}.diagnostic-table tbody td:before{content:attr(data-label);color:var(--ink-3);margin-bottom:5px;font-size:.8125rem;font-weight:600;display:block}.quiz-actions{grid-template-columns:1fr}.finish-card{flex-direction:column;align-items:stretch}.pager{grid-template-columns:1fr}.pager a.next{text-align:left}.pager a.next span{justify-content:flex-start}.sources li{flex-direction:column;gap:4px}.sources small{white-space:normal}}.instrument{grid-template-columns:240px minmax(0,1fr);display:grid}.controls{border-right:1px solid var(--rule);background:var(--paper);flex-direction:column;gap:16px;margin:0;padding:20px;display:flex}.controls label{flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;display:flex}.controls label span,.control-note,.controls p{color:var(--ink-3);font-size:.8125rem;font-weight:400;line-height:1.5}.controls .check{flex-direction:row;align-items:center;gap:8px;font-weight:500}.controls input,.controls select,.controls textarea,.prediction input,.prediction select{width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);border-radius:var(--radius-sm);font:.875rem/1.4 var(--mono);padding:8px 10px}.controls input:focus-visible,.controls select:focus-visible,.controls textarea:focus-visible,.prediction input:focus-visible,.prediction select:focus-visible{outline-offset:0;border-color:var(--accent)}.controls textarea{resize:vertical}.controls input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);margin:0}.controls input[type=range]{accent-color:var(--accent);padding:0}.controls output{color:var(--accent);font:600 .8125rem var(--mono)}.controls fieldset{border:1px solid var(--rule);border-radius:var(--radius-sm);margin:0;padding:10px 12px 4px}.controls legend{color:var(--ink-3);padding:0 4px;font-size:.8125rem;font-weight:600}.worker-loads label{font-family:var(--mono);grid-template-columns:26px 1fr 22px;align-items:center;gap:6px;margin:6px 0;font-weight:500;display:grid}.step-buttons{gap:8px;display:flex}.step-buttons .button{flex:1 1 0}.display{background:var(--surface);min-width:0;padding:20px 24px 24px}.display-top{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding-bottom:12px;display:flex}.display-top strong{font-size:.9375rem;font-weight:650}.display-top code{color:var(--ink-2);background:var(--surface-2);border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:.8125rem;display:inline-flex}.swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.swatch.stored{background:var(--accent)}.swatch.new{background:var(--amber)}.readout{color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-sm);font:.875rem/1.6 var(--mono);overflow-wrap:anywhere;margin:18px 0 0;padding:12px 14px}.readout>span{color:var(--ink-3);font:600 .8125rem var(--sans);margin-bottom:4px;display:block}.lab-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));border-radius:var(--radius-sm);margin-top:14px;padding:10px 12px;font-size:.875rem}.prediction{border-top:1px dashed var(--rule-2);margin-top:18px;padding-top:18px}.prediction-label{color:var(--ink-2);margin-bottom:10px;font-size:.9375rem}.prediction-label strong{color:var(--ink)}.prediction-row{gap:8px;display:flex}.prediction-row input,.prediction-row select{max-width:260px}.prediction-feedback{min-height:22px;color:var(--ink-3);margin-top:10px;font-size:.875rem}.prediction-feedback:empty{min-height:0;margin:0}.prediction-feedback.correct{color:var(--success);font-weight:600}.prediction-feedback.incorrect{color:var(--danger);font-weight:600}.matrix-scroll{margin:18px 0 0;overflow-x:auto}.matrix-scroll table{border-collapse:separate;border-spacing:4px;width:100%;font:.8438rem var(--mono)}.matrix-scroll th{color:var(--ink-3);text-align:center;padding:6px;font-weight:500}.matrix-scroll th[scope=row]{text-align:right}.matrix-scroll td{text-align:center;color:var(--ink);background:color-mix(in srgb, var(--accent) calc(var(--weight) * 55%), var(--surface-2));font-variant-numeric:tabular-nums;border:1px solid #0000;border-radius:4px;padding:16px 8px}.matrix-scroll tr.selected td{border-color:var(--ink)}.matrix-scroll td.masked{color:var(--ink-3);background:repeating-linear-gradient(135deg, var(--surface-2), var(--surface-2) 5px, var(--surface-3) 5px, var(--surface-3) 6px)}.shape-stages{gap:16px;margin:18px 0 0;display:grid}.stage-label{color:var(--ink-3);font:.8125rem var(--mono);margin:0 0 8px}.elements{flex-wrap:wrap;gap:4px;display:flex}.element{min-width:34px;min-height:34px;color:var(--ink);background:var(--surface);border:1px solid var(--rule-2);font:.8125rem var(--mono);border-radius:4px;padding:4px}.element:hover{border-color:var(--ink-3)}.element.tracked{color:var(--paper);border-color:var(--amber);background:var(--amber);font-weight:700}.element.group-start{margin-left:10px}.cache-grid{gap:10px;margin:18px 0 0;display:grid}.cache-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cache-row strong{width:24px;font:600 .875rem var(--mono)}.slot{text-align:center;min-width:34px;color:var(--paper);background:var(--accent);font:600 .8125rem var(--mono);border-radius:4px;padding:8px 6px}.slot.new{background:var(--amber)}.allocation-grid,.radix-grid{gap:14px;margin:18px 0 0;display:grid}.allocation-row,.radix-row{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:4px 12px;display:grid}.allocation-row>strong,.radix-row>strong{color:var(--ink-2);font:600 .8125rem var(--mono)}.allocation-row>div,.radix-row>div{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.allocation-row>em,.radix-row>em{color:var(--ink-3);grid-column:2;font-size:.8125rem;font-style:normal}.page-block{background:var(--surface-2);border:1px solid var(--rule-2);border-radius:4px;place-items:center;width:52px;height:32px;display:grid;position:relative;overflow:hidden}.page-block i{background:color-mix(in srgb, var(--accent) 55%, transparent);height:100%;position:absolute;top:0;left:0}.page-block small{z-index:1;font:600 .6875rem var(--mono);position:relative}.schedule-grid{margin:20px 0 0}.schedule-grid>div{gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.schedule-grid span{text-align:center;background:var(--surface-2);border:1px solid var(--rule);min-width:52px;font:.75rem var(--mono);border-radius:4px;gap:2px;padding:6px 8px;display:grid}.schedule-grid small{color:var(--ink-3);font-size:.6875rem}.radix-row span{border:1px solid var(--rule-2);font:.8125rem var(--mono);border-radius:4px;padding:4px 7px}.radix-row span.reused{color:var(--paper);border-color:var(--accent);background:var(--accent);font-weight:600}.radix-row span.new{border-style:dashed}.router-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 0;display:grid}.worker-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:14px}.worker-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.worker-card>div{font:600 .875rem var(--mono);justify-content:space-between;align-items:baseline;display:flex}.worker-card>div span{color:var(--ink-3);font:600 .75rem var(--sans)}.worker-card.selected>div span{color:var(--accent)}.worker-card>p{color:var(--ink-2);margin:8px 0 12px;font-size:.8438rem;line-height:1.5}.worker-card dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.worker-card dl div{border-top:1px solid var(--rule);padding-top:8px}.worker-card dt{color:var(--ink-3);font-size:.75rem;font-weight:600}.worker-card dd{font:600 .9375rem var(--mono);margin-top:2px}.worker-card.decode{grid-column:1/-1}.worker-card.decode>p{margin-bottom:0}@media (width<=720px){.instrument{grid-template-columns:1fr}.controls{border-right:0;border-bottom:1px solid var(--rule)}.display{padding:18px}.prediction-row{flex-wrap:wrap}.prediction-row input,.prediction-row select{max-width:none}.router-grid{grid-template-columns:1fr}.worker-card.decode{grid-column:auto}}.account-page{min-height:calc(100vh - var(--header-h));padding-top:clamp(48px,8vw,92px)}.auth-page{width:min(400px, calc(100% - 2 * var(--gutter)));padding-block:clamp(32px,4vw,40px) 64px}.auth-panel{gap:24px;display:grid}.auth-copy{text-align:center}.auth-copy>.logo-mark{margin:0 auto 16px;display:block}.auth-copy h1{letter-spacing:-.025em;margin-bottom:10px;font-size:1.875rem}.auth-copy p{color:var(--ink-2);font-size:.9375rem}.auth-controls{min-width:0}.google-auth{width:100%;min-height:46px;margin-bottom:16px}.auth-divider{color:var(--ink-3);align-items:center;gap:14px;margin-bottom:16px;font-size:.75rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--rule);flex:1;height:1px}.auth-controls>.form-message{margin-bottom:16px}.auth-password{gap:8px;display:grid}.auth-label-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.account-form{gap:20px;display:grid}.auth-controls .account-form{gap:16px}.account-form label{color:var(--ink-2);grid-template-columns:1fr auto;gap:8px;font-size:.875rem;font-weight:600;display:grid}.account-form input,.account-form textarea{width:100%;color:var(--ink);background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--radius-sm);grid-column:1/-1;padding:11px 12px;font-weight:400}.account-form input{min-height:44px}.auth-controls input{background:var(--surface);min-height:46px;font-size:1rem}.auth-controls input::placeholder{color:var(--ink-3);opacity:1}.account-form textarea{resize:vertical;line-height:1.5}.account-form input:hover,.account-form textarea:hover{border-color:var(--ink-3)}.account-form input:focus,.account-form textarea:focus{border-color:var(--blue);outline:2px solid color-mix(in srgb, var(--blue) 30%, transparent);outline-offset:1px}.account-form .button{justify-self:start;min-width:130px}.auth-page .account-form .button{width:100%;min-height:46px;margin-top:4px}.forgot-link{color:var(--blue);font-size:.8125rem;text-decoration:none}.forgot-link:hover,.quiet-link:hover{text-decoration:underline}.quiet-link{color:var(--ink-3);justify-self:start;font-size:.875rem;text-decoration:none}.auth-switch{color:var(--ink-2);flex-wrap:wrap;justify-content:center;gap:4px 6px;margin-top:26px;font-size:.875rem;display:flex}.auth-switch .text-button{color:var(--blue);padding:0}.field-hint{color:var(--ink-3);font-size:.75rem;font-weight:400}.form-message{border-radius:var(--radius-sm);padding:11px 13px;font-size:.875rem}.form-message.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--paper));border:1px solid color-mix(in srgb, var(--danger) 35%, var(--rule))}.form-message.success{color:var(--success);background:color-mix(in srgb, var(--success) 8%, var(--paper));border:1px solid color-mix(in srgb, var(--success) 35%, var(--rule))}.auth-success{justify-items:start;gap:13px;display:grid}.auth-success>.icon{color:var(--success)}.auth-success h2{font-size:1.375rem}.auth-success p{max-width:42ch;color:var(--ink-2)}.account-state{max-width:700px;min-height:64vh;display:block}.account-state h1{margin-bottom:14px}.account-state>p{max-width:58ch;color:var(--ink-2);margin-bottom:26px;font-size:1.0625rem}.account-state code{background:var(--surface-2);border-radius:3px;padding:2px 5px;font-size:.9em}.profile-page{max-width:1100px;padding-top:40px}.profile-header{border-bottom:1px solid var(--rule-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px 0 30px;display:grid}.profile-avatar{width:56px;height:56px;color:var(--accent-ink);background:var(--blue);font:700 1.0625rem/1 var(--sans);border-radius:13px;place-items:center;display:grid}.profile-header h1{margin-bottom:4px;font-size:clamp(1.65rem,3vw,2.25rem)}.profile-header p{color:var(--ink-3);overflow-wrap:anywhere;font-size:.9rem}.account-error{margin-top:24px}.learning-dashboard{border-bottom:1px solid var(--rule-2);padding-block:clamp(34px,5vw,56px)}.dashboard-title{justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px;display:flex}.dashboard-title .kicker{margin-bottom:5px}.dashboard-title>span{color:var(--ink-3);font-size:.875rem}.learning-queue{background:var(--surface);border:1px solid var(--accent-line);border-radius:var(--radius);min-height:142px;box-shadow:var(--shadow);grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:20px;padding:24px;display:grid}.queue-index{width:52px;height:68px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--radius-sm);font:650 1.25rem/1 var(--mono);place-items:center;display:grid}.learning-queue p{color:var(--accent);margin-bottom:5px;font-size:.8125rem;font-weight:650}.learning-queue h3{margin-bottom:8px;font-size:clamp(1.2rem,2.5vw,1.55rem)}.learning-queue div>span{color:var(--ink-3);font-size:.875rem}.dashboard-metrics{border-block:1px solid var(--rule);grid-template-columns:repeat(4,1fr);margin:28px 0 36px;display:grid}.dashboard-metrics>div{padding:22px 24px}.dashboard-metrics>div+div{border-left:1px solid var(--rule)}.dashboard-metrics dt{color:var(--ink-3);font-size:.8rem}.dashboard-metrics dd{letter-spacing:-.03em;margin-block:5px 3px;font-size:1.75rem;font-weight:650}.dashboard-metrics span{color:var(--ink-3);font-size:.8125rem}.course-ledger{border-top:1px solid var(--rule-2)}.ledger-heading,.course-progress-row{grid-template-columns:minmax(270px,1.3fr) minmax(130px,1fr) 130px 74px;align-items:center;gap:22px;display:grid}.ledger-heading{min-height:52px;color:var(--ink-3);border-bottom:1px solid var(--rule-2);font-size:.75rem}.ledger-heading h3{color:var(--ink);font-size:1rem}.ledger-heading span{grid-column:3/5}.course-progress-row{border-bottom:1px solid var(--rule);min-height:92px}.course-progress-name{align-items:center;gap:14px;min-width:0;display:flex}.course-progress-name>span{background:var(--accent-soft);border-radius:9px;flex:none;place-items:center;width:44px;height:44px;display:grid}.course-progress-name>span img{object-fit:contain;width:30px;height:30px}.course-progress-name h4{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;overflow:hidden}.course-progress-name h4 a{text-decoration:none}.course-progress-name h4 a:hover{text-decoration:underline}.course-progress-name p{color:var(--ink-3);font-size:.8rem}.course-progress-row .progress-track{height:7px}.course-progress-row>dl{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.course-progress-row>dl div{min-width:0}.course-progress-row>dl dt{color:var(--ink-3);font-size:.6875rem}.course-progress-row>dl dd{margin-top:2px;font-size:.875rem;font-weight:650}.ledger-link{color:var(--accent);justify-content:end;align-items:center;gap:5px;font-size:.8125rem;font-weight:650;text-decoration:none;display:inline-flex}.ledger-link:hover{text-decoration:underline}.account-sections{padding-top:16px}.account-section{border-bottom:1px solid var(--rule);grid-template-columns:minmax(210px,280px) minmax(0,1fr);gap:clamp(32px,6vw,76px);padding:38px 0;display:grid}.account-section-copy h2{margin-bottom:8px;font-size:1.2rem}.account-section-copy p{max-width:32ch;color:var(--ink-3);font-size:.875rem}.profile-form{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-form>label:last-of-type,.profile-form .form-message,.profile-form>.button{grid-column:1/-1}.profile-loading{color:var(--ink-3)}.account-actions{display:grid}.account-actions>div:not(.policy-links){border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:18px;min-height:72px;display:flex}.account-actions>div:first-child{border-top:1px solid var(--rule)}.account-actions strong,.account-actions span{display:block}.account-actions strong{margin-bottom:3px;font-size:.9rem}.account-actions span{color:var(--ink-3);font-size:.8125rem}.policy-links{gap:22px;padding-top:18px;display:flex}.policy-links a{color:var(--blue);font-size:.875rem;text-decoration:none}.policy-links a:hover{text-decoration:underline}.danger-button{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 55%, var(--rule));justify-self:start}.danger-button:hover{color:var(--paper);background:var(--danger);border-color:var(--danger)}.information-page{max-width:1040px;padding-top:clamp(54px,8vw,96px)}.information-hero{border-bottom:1px solid var(--rule-2);padding-bottom:38px}.information-hero h1{margin-bottom:14px;font-size:clamp(2.6rem,7vw,4.8rem)}.information-hero small{color:var(--ink-3);margin-top:18px;display:block}.information-layout{grid-template-columns:210px minmax(0,1fr);gap:clamp(40px,8vw,96px);padding-top:42px;display:grid}.information-layout>nav{top:calc(var(--header-h) + 24px);align-self:start;display:grid;position:sticky}.information-layout>nav a{color:var(--ink-3);border-bottom:1px solid var(--rule);padding:9px 0;font-size:.8125rem;text-decoration:none}.information-layout>nav a:hover{color:var(--ink)}.information-layout article{max-width:700px}.information-layout article section{scroll-margin-top:calc(var(--header-h) + 20px);padding-bottom:40px}.information-layout article h2{margin-bottom:13px;font-size:1.3rem}.information-layout article p{color:var(--ink-2);margin-bottom:12px;line-height:1.7}.information-layout article a{color:var(--blue)}.information-layout article .icon{width:.9em;height:.9em}.support-paths{border-block:1px solid var(--rule-2);grid-template-columns:repeat(3,1fr);margin-top:38px;display:grid}.support-paths.single{grid-template-columns:1fr;max-width:680px}.support-paths>article{flex-direction:column;align-items:flex-start;min-width:0;padding:30px 28px;display:flex}.support-paths>article+article{border-left:1px solid var(--rule-2)}.support-paths article>.icon{color:var(--blue);margin-bottom:20px}.support-paths h2{margin-bottom:12px;font-size:1.125rem}.support-paths p{color:var(--ink-2);flex:1;margin-bottom:24px;font-size:.9rem}.support-paths article>div{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.support-note{border-left:3px solid var(--blue);background:var(--surface);margin-top:30px;padding:20px 22px}.support-note strong{margin-bottom:5px;display:block}.support-note p{color:var(--ink-2);font-size:.875rem}@media (width<=880px){.ledger-heading,.course-progress-row{grid-template-columns:minmax(240px,1.2fr) minmax(110px,1fr) 110px}.ledger-heading span{grid-column:3}.course-progress-row .ledger-link{display:none}.support-paths{grid-template-columns:1fr}.support-paths>article+article{border-top:1px solid var(--rule-2);border-left:0}}@media (width<=680px){.account-page,.profile-page{padding-top:32px}.profile-header{grid-template-columns:auto minmax(0,1fr);padding-top:0}.profile-header .button{grid-column:1/-1;justify-self:start}.dashboard-title{flex-direction:column;align-items:start;gap:8px}.learning-queue{grid-template-columns:44px minmax(0,1fr);padding:20px 18px}.queue-index{width:40px;height:54px}.learning-queue .button{grid-column:1/-1;width:100%;margin-top:4px}.dashboard-metrics{grid-template-columns:1fr}.dashboard-metrics>div{padding-inline:0}.dashboard-metrics>div+div{border-top:1px solid var(--rule);border-left:0}.ledger-heading{justify-content:space-between;display:flex}.course-progress-row{grid-template-columns:1fr auto;gap:14px;padding:20px 0}.course-progress-row>.progress{grid-area:2/1/auto/-1}.course-progress-row>dl{grid-area:1/2}.course-progress-name>span{display:none}.account-section{grid-template-columns:1fr;gap:22px}.profile-form{grid-template-columns:1fr}.account-actions>div:not(.policy-links){flex-direction:column;align-items:flex-start;padding-block:18px}.information-layout{grid-template-columns:1fr;padding-top:28px}.information-layout>nav{position:static}.support-paths>article{padding-inline:0}}.account-practice-summary{border-block:1px solid var(--rule);justify-content:space-between;align-items:center;gap:24px;margin:24px 0 36px;padding:24px 0;display:flex}.account-practice-summary h2{margin-bottom:6px;font-size:1.1rem}.account-practice-summary p{color:var(--ink-3);font-size:.875rem}.resources-page{padding-top:clamp(52px,7vw,86px)}.resources-hero{max-width:800px;padding-bottom:clamp(42px,6vw,66px)}.resources-hero h1{max-width:12ch;margin-bottom:18px;font-size:clamp(2.5rem,5vw,4.25rem)}.resources-hero .lede{max-width:65ch}.resource-group{border-top:1px solid var(--rule);grid-template-columns:minmax(200px,.48fr) minmax(0,1.52fr);gap:clamp(32px,6vw,80px);padding:42px 0;display:grid}.resource-group>header{top:calc(var(--header-h) + 28px);align-self:start;position:sticky}.resource-group>header h2{margin-bottom:10px;font-size:1.25rem}.resource-group>header p{max-width:32ch;color:var(--ink-3);font-size:.9rem;line-height:1.55}.resource-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.resource-list li{border-bottom:1px solid var(--rule)}.resource-list a{grid-template-columns:minmax(0,1fr) 112px 18px;align-items:start;gap:22px;padding:20px 4px;text-decoration:none;display:grid}.resource-copy{gap:7px;min-width:0;display:grid}.resource-copy strong{color:var(--ink);font-size:1.04rem;font-weight:650;line-height:1.35}.resource-copy>span{max-width:66ch;color:var(--ink-2);font-size:.88rem;line-height:1.55}.resource-meta{text-align:right;justify-items:end;gap:4px;display:grid}.resource-meta>span{color:var(--blue);font-size:.78rem;font-weight:650}.resource-meta small{color:var(--ink-3);font-size:.72rem;line-height:1.4}.resource-list .icon{color:var(--ink-3);margin-top:2px}.resource-list a:hover .resource-copy strong,.resource-list a:hover .icon{color:var(--blue)}@media (width<=760px){.resources-page{padding-top:42px}.resource-group{grid-template-columns:1fr;gap:22px;padding:34px 0}.resource-group>header{position:static}.resource-group>header p{max-width:60ch}.resource-list a{grid-template-columns:minmax(0,1fr) 18px;gap:12px 18px}.resource-meta{text-align:left;grid-area:2/1;justify-items:start;gap:8px;display:flex}.resource-list .icon{grid-area:1/2}}.blog-index{padding-block:56px 80px}.blog-index-heading{max-width:820px;margin-bottom:44px}.blog-index-heading h1,.blog-post-heading h1{font-family:var(--serif);letter-spacing:-.03em;font-weight:600}.blog-index-heading h1{max-width:760px;font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.07}.blog-index-heading .lede{color:var(--ink);margin:22px 0 12px}.blog-index-heading>p:last-child,.blog-index-heading>p{max-width:660px;color:var(--ink-2)}.blog-feed{color:var(--blue);margin-top:18px;font-size:.875rem;display:inline-block}.blog-meta{color:var(--ink-3);flex-wrap:wrap;gap:6px 20px;font-size:.8125rem;display:flex}.blog-meta>span:first-child{color:var(--blue);font-weight:600}.blog-featured{border:1px solid var(--rule-2);border-radius:var(--radius);background:var(--surface);grid-template-columns:1.3fr 1fr;gap:52px;padding:clamp(24px,4vw,42px);display:grid}.blog-featured h2{font:600 clamp(1.7rem, 3vw, 2.5rem)/1.16 var(--serif);letter-spacing:-.02em;margin:20px 0 16px}.blog-featured h2 a,.blog-article-row h2 a{text-decoration:none}.blog-featured h2 a:hover,.blog-article-row h2 a:hover{text-decoration:underline;text-decoration-thickness:1px}.blog-featured p,.blog-article-row p{color:var(--ink-2);max-width:680px}.blog-read-link{color:var(--blue);gap:18px;margin-top:24px;font-weight:600;text-decoration:none;display:inline-flex}.blog-feature-visual{border-left:1px solid var(--rule-2);align-self:center;padding-left:36px}.blog-feature-visual>span{color:var(--ink-3);margin-bottom:18px;font-size:.8125rem;display:block}.blog-pipeline{grid-template-columns:repeat(4,1fr);gap:18px;margin:0;padding:0;list-style:none;display:grid}.blog-pipeline li{border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:var(--paper);padding:16px 12px;position:relative}.blog-pipeline li+li:before{content:"→";color:var(--blue);position:absolute;top:18px;left:-16px}.blog-pipeline strong{font:600 .9375rem/1.4 var(--sans);color:var(--ink);display:block}.blog-pipeline span{color:var(--ink-3);font:.8125rem/1.5 var(--sans);margin-top:6px;display:block}.blog-feature-visual .blog-pipeline{grid-template-columns:1fr;gap:18px}.blog-feature-visual .blog-pipeline li{grid-template-columns:86px 1fr;align-items:baseline;gap:10px;padding:12px 16px;display:grid}.blog-feature-visual .blog-pipeline span{margin:0}.blog-feature-visual .blog-pipeline li+li:before{content:"↓";top:-22px;left:16px}.blog-article-list{margin-top:20px}.blog-article-row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:32px;padding:32px 4px;display:flex}.blog-article-row h2{margin:12px 0;font-size:clamp(1.35rem,2vw,1.7rem)}.blog-row-link{color:var(--blue);flex:none;align-items:center;gap:16px;padding:12px 0 12px 16px;font-size:.9375rem;text-decoration:none;display:inline-flex}.blog-learning-note{border-left:2px solid var(--blue);margin-top:56px;padding-left:24px}.blog-learning-note h2{font-size:1.375rem}.blog-learning-note p{color:var(--ink-2);margin:10px 0 14px}.blog-learning-note a{color:var(--blue)}.blog-post{padding-block:30px 72px}.blog-post-heading{max-width:920px;margin:40px 0 48px}.blog-post-heading h1{margin:20px 0;font-size:clamp(2.25rem,4.7vw,3.75rem);line-height:1.1}.blog-post-heading .lede{max-width:780px;color:var(--ink-2);line-height:1.65}.blog-byline{color:var(--ink-3);flex-wrap:wrap;gap:8px 20px;margin-top:24px;font-size:.875rem;display:flex}.blog-byline a{color:var(--ink-2)}.blog-reading-layout{grid-template-columns:minmax(0,760px) minmax(200px,1fr);align-items:start;gap:clamp(32px,6vw,80px);display:grid}.blog-prose{min-width:0;font:1.125rem/1.85 var(--serif);color:var(--ink-2);overflow-wrap:break-word}.blog-prose>section{scroll-margin-top:calc(var(--header-h) + 24px);margin-bottom:42px}.blog-prose h2{color:var(--ink);margin-bottom:20px;font-size:clamp(1.5rem,2.3vw,1.875rem);line-height:1.25}.blog-prose h3{color:var(--ink);margin-bottom:12px;font-size:1.125rem}.blog-prose p+p,.blog-prose ul,.blog-prose ol{margin-top:18px}.blog-prose ul,.blog-prose ol{margin-bottom:22px;padding-left:26px}.blog-prose li+li{margin-top:9px}.blog-prose strong{color:var(--ink)}.blog-prose a{color:var(--blue)}.blog-prose :not(pre)>code{font:.84em/1.7 var(--mono);background:var(--surface-2);color:var(--ink);overflow-wrap:anywhere;border-radius:4px;padding:2px 5px}.blog-outline{top:calc(var(--header-h) + 28px);border-left:1px solid var(--rule-2);max-height:calc(100dvh - var(--header-h) - 56px);padding-left:22px;position:sticky;overflow-y:auto}.blog-outline strong{font-size:.875rem}.blog-outline ol{margin:14px 0 0;padding:0;list-style:none}.blog-outline li+li{margin-top:12px}.blog-outline a{color:var(--ink-3);font-size:.875rem;line-height:1.5;text-decoration:none;display:block}.blog-outline a:hover,.blog-outline a:focus-visible{color:var(--blue)}.blog-code{border:1px solid var(--stage-rule);border-radius:var(--radius-sm);background:var(--code-bg);margin:24px 0;overflow:hidden}.blog-code figcaption{background:color-mix(in srgb, var(--code-bg) 85%, #fff 4%);border-bottom:1px solid var(--stage-rule);font:.8125rem/1.5 var(--sans);color:var(--code-muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.blog-code button{border:1px solid var(--stage-rule);color:var(--code-ink);background:0 0;border-radius:999px;flex:none;padding:5px 11px;font-size:.75rem}.blog-code pre{color:var(--code-ink);font:.8125rem/1.8 var(--mono);white-space:pre;tab-size:4;border:0;border-radius:0;margin:0;padding:20px;overflow:auto}.blog-code>p{color:var(--code-muted);font:.875rem/1.5 var(--sans);padding:12px 16px}.blog-callout{border-left:3px solid var(--blue);background:var(--surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:24px 0;padding:22px 24px}.blog-callout>strong{font:600 .9375rem/1.5 var(--sans)}.blog-callout p{margin-top:8px}.blog-table-scroll{border:1px solid var(--rule-2);border-radius:var(--radius-sm);margin:26px 0;overflow-x:auto}.blog-table-scroll table{border-collapse:collapse;text-align:left;width:100%;font:.875rem/1.6 var(--sans)}.blog-table-scroll caption{text-align:left;color:var(--ink-2);background:var(--surface);padding:16px}.blog-table-scroll th,.blog-table-scroll td{border-top:1px solid var(--rule);vertical-align:top;min-width:115px;padding:14px 16px}.blog-table-scroll thead th{color:var(--ink);background:var(--surface-2);font-weight:600}.blog-table-scroll tbody th{color:var(--ink);font-weight:500}.blog-diagram{border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:var(--surface);margin:28px 0;padding:24px}.blog-diagram .blog-pipeline{margin:0;padding:0}.blog-diagram .blog-pipeline li{margin:0}.blog-diagram figcaption{color:var(--ink-3);font:.875rem/1.6 var(--sans);margin-top:18px}.blog-cache-row{font:.875rem/1.5 var(--sans);grid-template-columns:66px 1fr;align-items:center;gap:8px 16px;display:grid}.blog-cache-row+.blog-cache-row{margin-top:22px}.blog-cache-tokens{gap:6px;display:flex}.blog-cache-tokens span{text-align:center;border:1px solid var(--rule-2);background:var(--surface-2);min-width:44px;color:var(--ink-2);border-radius:5px;padding:9px 8px}.blog-cache-tokens .new-token{color:var(--ink);border-color:var(--blue);background:var(--accent-soft)}.blog-cache-note{color:var(--ink-3);grid-column:2;font-size:.8125rem}.blog-cache-diagram>p{font:.8125rem/1.6 var(--sans);color:var(--ink-3);margin-top:20px}.blog-calculator{border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface);font:.9375rem/1.7 var(--sans);margin:28px 0;padding:26px}.blog-calculator-fields{grid-template-columns:1fr 1fr;gap:18px;margin:20px 0;display:grid}.blog-calculator label{color:var(--ink-2);gap:7px;font-size:.875rem;display:grid}.blog-calculator input{border:1px solid var(--rule-2);background:var(--paper);width:100%;min-width:0;color:var(--ink);border-radius:6px;padding:10px 12px}.blog-calculator output{color:var(--blue);flex-wrap:wrap;align-items:baseline;gap:8px 20px;display:flex}.blog-calculator output strong{font:600 2rem/1.3 var(--sans);color:var(--blue)}.blog-calculator .blog-small{color:var(--ink-3);margin-top:14px;font-size:.8125rem}.blog-sources{border-top:1px solid var(--rule-2);font:.9375rem/1.7 var(--sans);padding-top:24px}.blog-sources li{overflow-wrap:anywhere}.blog-next{border-top:1px solid var(--rule-2);margin-top:30px;padding-top:36px}.blog-next h2{margin-bottom:24px;font-size:1.5rem}.blog-next>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px;display:grid}.blog-next>div a{border-left:2px solid var(--rule-2);padding-left:18px;text-decoration:none}.blog-next>div a:hover{border-color:var(--blue)}.blog-next span{color:var(--ink-3);margin-bottom:6px;font-size:.8125rem;display:block}.blog-next strong{font-size:1.05rem;line-height:1.6}.blog-back{color:var(--blue);margin-top:30px;display:inline-block}@media (width<=1000px){.blog-reading-layout{grid-template-columns:minmax(0,1fr)}.blog-outline{background:var(--surface);border-radius:var(--radius-sm);grid-row:1;max-height:none;padding:18px 22px;position:static}.blog-outline ol{columns:2;column-gap:24px}.blog-outline li{break-inside:avoid}.blog-post-heading{margin-bottom:30px}.blog-featured{gap:28px}.blog-feature-visual{padding-left:22px}}@media (width<=640px){.blog-index{padding-block:32px 52px}.blog-index-heading{margin-bottom:30px}.blog-featured{grid-template-columns:1fr;gap:26px}.blog-feature-visual{border-left:0;border-top:1px solid var(--rule-2);padding:22px 0 0}.blog-article-row{flex-direction:column;align-items:start;gap:8px;padding-block:28px}.blog-row-link{padding-left:0}.blog-post-heading{margin-top:28px}.blog-post-heading .lede{font-size:1.0625rem}.blog-reading-layout{gap:32px}.blog-prose{font-size:1.0625rem}.blog-outline ol{columns:1}.blog-diagram{padding:18px 14px}.blog-diagram .blog-pipeline{grid-template-columns:1fr;gap:18px}.blog-diagram .blog-pipeline li+li:before{content:"↓";top:-23px;left:12px}.blog-cache-row{grid-template-columns:1fr;gap:8px}.blog-cache-note{grid-column:1}.blog-cache-tokens span{min-width:40px}.blog-calculator{padding:20px}.blog-calculator-fields{grid-template-columns:1fr;gap:12px}.blog-code figcaption{padding-inline:12px}.blog-code pre{padding:16px 12px;font-size:.75rem}.blog-next>div{grid-template-columns:1fr}}
