@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/46a9e2f250689b4a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.p.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6131cbbf5549afa2-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/45462fd7b7c12654-s.0k62hbripvv8p.woff2)format("woff2");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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/46a9e2f250689b4a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.p.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6131cbbf5549afa2-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/45462fd7b7c12654-s.0k62hbripvv8p.woff2)format("woff2");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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/46a9e2f250689b4a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.p.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6131cbbf5549afa2-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/45462fd7b7c12654-s.0k62hbripvv8p.woff2)format("woff2");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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}._4nOpSa_className{font-family:Inter,Inter Fallback;font-style:normal}._4nOpSa_variable{--font-sans:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c64053b510252f55-s.1kd-r_s9smv5m.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/733da6bd8dac84c8-s.p.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/784318cea1dfcfa4-s.0-oo9_1x_xmvg.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e114457660b62ed-s.36fqqi66-3tjb.woff2)format("woff2");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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3_z45zcoc-xoz.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1bkzbscqrt8rl.woff2)format("woff2");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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c64053b510252f55-s.1kd-r_s9smv5m.woff2)format("woff2");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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/733da6bd8dac84c8-s.p.3hlisc-pwq13z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/784318cea1dfcfa4-s.0-oo9_1x_xmvg.woff2)format("woff2");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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/7e114457660b62ed-s.36fqqi66-3tjb.woff2)format("woff2");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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9fecbd3e5ea9bccb-s.3_z45zcoc-xoz.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9a321a2c78eff0b5-s.p.1bkzbscqrt8rl.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.ndd4pq_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.ndd4pq_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#05070a;--bg-top:#121a26;--card:#0e141d;--card-line:#1d2735;--code-bg:#0d1117;--code-line:#222b36;--text:#f5f7fa;--body:#d5dbe3;--muted:#9aa6b5;--dim:#6b7685;--green:#7ee787;--yellow:#ffd33d;--red:#ff7b72;--blue:#79c0ff;--radius:14px;--radius-lg:20px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg)}body{min-height:100vh;color:var(--body);background:radial-gradient(ellipse 120% 60% at 50% 0%, var(--bg-top) 0%, var(--bg) 70%) no-repeat, var(--bg);font:400 16.5px/1.65 var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{color:var(--text);letter-spacing:-.02em;font-weight:800;line-height:1.15}h1{margin:.2em 0 .4em;font-size:clamp(2rem,5vw,2.9rem)}h2{margin:2em 0 .6em;font-size:1.55rem}h3{letter-spacing:-.01em;margin:0 0 .6em;font-size:1.15rem}strong{color:var(--text);font-weight:600}a{color:var(--green);text-underline-offset:3px;text-decoration-color:#7ee78759}a:hover{-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}::selection{background:#7ee78740}.muted{color:var(--muted)}.accent{color:var(--yellow)}.eyebrow{font:700 .85rem/1.4 var(--font-mono);color:var(--green);letter-spacing:.01em;margin:0}.num{font-family:var(--font-mono);color:var(--green);margin-right:.35em;font-weight:700}.lead{color:var(--muted);max-width:40em;margin:0 0 1.5em;font-size:1.15rem}.header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--card-line);background:#05070ac7;justify-content:space-between;align-items:center;gap:16px;padding:14px max(16px,50vw - 520px);display:flex;position:sticky;top:0}.header nav{align-items:center;gap:16px;display:flex}.who{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:.9rem;text-decoration:none;overflow:hidden}.wordmark{font:700 1.4rem/1 var(--font-mono);letter-spacing:-.04em;color:var(--text);text-decoration:none}.wordmark:after{content:"";vertical-align:-.18em;background:var(--green);border-radius:2px;width:.5em;height:1.05em;margin-left:.08em;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.wordmark:after{animation:none}}.main{max-width:820px;margin:0 auto;padding:32px 16px 64px}.footer{border-top:1px solid var(--card-line);max-width:820px;font:.85rem var(--font-mono);color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:12px;margin:0 auto;padding:24px 16px 40px;display:flex}.footer a{color:var(--dim)}.footer a:hover{color:var(--muted)}.inline{align-items:center;gap:14px;margin:0;display:flex}.link,button.link{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.link:hover,button.link:hover{color:var(--text)}.btn{border:1px solid var(--card-line);color:var(--text);font:600 .95rem/1.2 var(--font-sans);cursor:pointer;background:#161d27;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:hover{background:#1b2430;border-color:#2f3a48}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--green);border-color:var(--green);color:#05070a}.btn.primary:hover{background:#95eda0}.btn.ghost{color:var(--muted);background:0 0}.btn.ghost:hover{color:var(--text)}.btn.small{padding:6px 12px;font-size:.9rem}.btn:focus-visible,.link:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:2px}.card{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius-lg);padding:22px 24px}.hero{padding:24px 0 40px}.hero h1{margin:.15em 0 .3em;font-size:clamp(2.4rem,7vw,3.8rem)}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:12px 0 0;padding:0;list-style:none;display:grid}.card-link{height:100%;color:var(--body);flex-direction:column;gap:8px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.card-link:hover{border-color:#7ee78780;transform:translateY(-2px)}.card-title{letter-spacing:-.02em;color:var(--text);font-size:1.35rem;font-weight:800}.lang{font:600 .85rem var(--font-mono);color:var(--green)}.tags{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px;display:flex}.tag{border:1px solid var(--card-line);font:.8rem var(--font-mono);color:var(--muted);border-radius:999px;padding:2px 10px}.note{margin-top:28px}.module h2{margin-top:1.6em}.lesson-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.lesson-row{background:var(--card);border:1px solid var(--card-line);border-radius:var(--radius);color:var(--text);align-items:center;gap:14px;padding:14px 18px;text-decoration:none;transition:border-color .15s;display:flex}.lesson-row:hover{border-color:#7ee78780}.step{border:2px solid var(--card-line);width:32px;height:32px;font:700 .85rem var(--font-mono);color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.lesson-row.done .step{border-color:var(--green);color:var(--green);background:#7ee78714}.lesson-title{flex:1;font-weight:600}.lesson-meta{font:.8rem var(--font-mono);color:var(--dim);white-space:nowrap}.lesson-row.done .lesson-meta{color:var(--green)}.crumbs{color:var(--dim);flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:.9rem;display:flex}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text)}.crumbs .sep{color:var(--card-line)}.prose{color:var(--body)}.prose p,.prose ul,.prose ol{margin:0 0 1em}.prose li{margin:.25em 0}.prose ul{padding-left:1.2em;list-style:none}.prose ul>li:before{content:"›";color:var(--green);width:1em;margin-left:-1em;font-weight:700;display:inline-block}.prose h2{font-size:1.45rem}.prose blockquote{border-left:3px solid var(--green);background:#7ee7870f;border-radius:0 10px 10px 0;margin:1.2em 0;padding:10px 18px}.prose pre{border:1px solid var(--code-line);border-radius:var(--radius);margin:1.2em 0 1.4em;padding:18px 22px;font-size:.92rem;line-height:1.6;overflow-x:auto;background:var(--code-bg)!important}.prose code{font-family:var(--font-mono);font-variant-ligatures:none}.prose :not(pre)>code{color:var(--text);border:1px solid var(--card-line);background:#161d27;border-radius:6px;padding:1px 6px;font-size:.88em}.tasks-heading{margin-top:2.4em}.task{margin-bottom:20px}.task .prose{font-size:.98rem}.pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:40px;display:grid}.pager-link{border:1px solid var(--card-line);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:2px;padding:14px 18px;font-weight:600;text-decoration:none;display:flex}.pager-link .muted{font:.8rem var(--font-mono)}.pager-link:hover{border-color:#7ee78780}.pager-link.next{text-align:right}.editor{border:1px solid var(--code-line);border-radius:var(--radius);margin:14px 0 12px;overflow:hidden}.editor .cm-editor{min-height:150px}.runner-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badges{gap:8px;margin:4px 0 0;display:flex}.badge{font:700 .8rem var(--font-mono);border-radius:999px;padding:3px 10px}.badge.ok{color:var(--green);background:#7ee7871f;border:1px solid #7ee78766}.output{background:var(--code-bg);border:1px solid var(--code-line);border-radius:var(--radius);margin-top:14px;padding:12px 16px}.tests{gap:4px;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}.tests .mark{font-family:var(--font-mono);width:1.2em;font-weight:700;display:inline-block}.tests .passed{color:var(--body)}.tests .passed .mark{color:var(--green)}.tests .failed{color:var(--text)}.tests .failed .mark{color:var(--red)}.test-message{font:.85rem/1.5 var(--font-mono);color:var(--muted);white-space:pre-wrap;margin:2px 0 6px 1.2em}.logs{border-top:1px solid var(--code-line);font:.88rem/1.55 var(--font-mono);color:var(--green);white-space:pre-wrap;margin:10px 0 0;padding-top:10px;overflow-x:auto}.output>.error+.tests,.output>.error+.error{margin-top:8px}.auth{max-width:420px;margin:24px auto 0;padding:32px}.auth h1{font-size:2rem}.form{gap:14px;margin:16px 0;display:grid}.form label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}.form input{background:var(--code-bg);color:var(--text);border:1px solid var(--card-line);font:1rem var(--font-sans);border-radius:10px;padding:11px 12px}.form input:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #7ee78726}.form .btn{justify-content:center;margin-top:4px;padding:12px}.error{color:var(--red);margin:0}@media (max-width:560px){.card{padding:18px}.auth{padding:24px 20px}.who{display:none}.pager{grid-template-columns:1fr}.lesson-meta{display:none}}.progress{gap:8px;display:grid}.progress-label{font:.85rem var(--font-mono);color:var(--muted);justify-content:space-between;display:flex}.progress-pct{color:var(--green);font-weight:700}.progress-track{background:#f5f7fa1a;border-radius:3px;height:6px;overflow:hidden}.progress-fill{background:var(--green);border-radius:3px;height:100%;transition:width .4s}.course-progress{gap:18px;margin:0 0 8px;display:grid}.course-progress .btn{justify-self:start}.done-note{color:var(--green);margin:0;font-weight:600}.course-card{flex-direction:column;gap:8px;transition:border-color .15s,transform .15s;display:flex;position:relative}.course-card:hover{border-color:#7ee78780;transform:translateY(-2px)}.course-card .card-title{text-decoration:none}.stretched:after{content:"";border-radius:inherit;position:absolute;inset:0}.course-card .progress{margin-top:8px}.continue{z-index:1;font-weight:600;text-decoration:none;position:relative}.continue:hover{text-decoration:underline}.lesson-done{border:1.5px solid var(--green);border-radius:var(--radius);color:var(--text);background:linear-gradient(135deg,#7ee78724,#7ee78708);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;padding:14px 18px;font-weight:600;display:flex}.draft-note{font:.8rem var(--font-mono);color:var(--yellow);margin:10px 0 -6px}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.how,.demo,.program{margin:56px 0 0}.steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:12px 0 0;padding:0;list-style:none;display:grid}.steps li{flex-direction:column;gap:8px;display:flex}.steps strong{font-size:1.1rem}.demo-card .prose pre{margin:12px 0 0}.demo-card .output{margin-top:12px}.program h2{margin-top:.3em}.program-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.program-module{color:var(--text);margin:0 0 8px;font-weight:700}.program-grid ul{color:var(--muted);gap:4px;margin:0;padding:0;font-size:.95rem;list-style:none;display:grid}.program-grid li:before{content:"› ";color:var(--green);font-weight:700}.main:has(.lesson-layout){max-width:1120px}.lesson-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:40px;display:grid}.lesson-main{min-width:0;max-width:820px}.lesson-aside{max-height:calc(100vh - 92px);padding-right:4px;position:sticky;top:76px;overflow-y:auto}.course-nav-mobile{display:none}.course-nav-module{margin-bottom:18px}.course-nav-title{font:700 .8rem var(--font-mono);color:var(--muted);margin:0 0 6px}.course-nav ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.course-nav-link{border-left:2px solid var(--card-line);color:var(--muted);padding:5px 10px 5px 12px;font-size:.9rem;line-height:1.35;text-decoration:none;display:block}.course-nav-link:hover{color:var(--text)}.course-nav-link.done{color:var(--body)}.course-nav-link.done:after{content:" ✓";color:var(--green);font-weight:700}.course-nav-link.current{color:var(--text);border-left-color:var(--green);background:#7ee7870f;font-weight:600}@media (max-width:900px){.lesson-layout{grid-template-columns:1fr;gap:0}.lesson-aside{max-height:none;padding:0;position:static;overflow:visible}.course-nav-desktop{display:none}.course-nav-mobile{border:1px solid var(--card-line);border-radius:var(--radius);background:var(--card);margin-bottom:20px;padding:10px 14px;display:block}.course-nav-mobile summary{cursor:pointer;color:var(--text);font-weight:600}.course-nav-mobile .course-nav{margin-top:12px}}.kbd{font:600 .7rem var(--font-mono);color:var(--dim);border:1px solid var(--card-line);border-radius:5px;margin-left:4px;padding:1px 5px}@media (hover:none){.kbd{display:none}}.hints{justify-items:start;gap:10px;margin-top:14px;display:grid}.hint{border-left:3px solid var(--yellow);background:#ffd33d0f;border-radius:0 10px 10px 0;width:100%;padding:10px 16px}.hint .prose p{margin:0}.hint-label{font:700 .75rem var(--font-mono);color:var(--yellow)}.hint-locked{font:.8rem var(--font-mono);color:var(--dim);margin:0}.account-section{margin-top:36px}.account-section h2{margin:0 0 12px;font-size:1.25rem}.account-course{gap:12px;margin-bottom:10px;display:grid}.narrow{max-width:420px}.danger-zone h2{color:var(--red)}.btn.danger{color:var(--red);background:0 0;border-color:#ff7b7299;justify-content:center}.btn.danger:hover{background:#ff7b721a}.ok-note{color:var(--green);margin:0}.check{color:var(--muted);flex-direction:row;grid-template-columns:none;align-items:flex-start;gap:10px;display:flex!important}.check input{accent-color:var(--green);flex:none;width:16px;height:16px;margin-top:4px}.legal{max-width:720px}.legal h2{margin-top:1.6em;font-size:1.2rem}.status-page{padding:40px 0}.status-code{background:var(--code-bg);border:1px solid var(--code-line);border-radius:var(--radius);font:.95rem/1.6 var(--font-mono);color:var(--body);padding:16px 20px;overflow-x:auto}.page-loading{background:var(--green);z-index:20;width:30%;height:3px;animation:1.1s ease-in-out infinite loading;position:fixed;top:0;left:0}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(400%)}}@media (prefers-reduced-motion:reduce){.page-loading{opacity:.6;width:100%;animation:none}}.section-gap{margin-top:56px}.verify-banner{text-align:center;color:var(--yellow);background:#ffd33d12;border-bottom:1px solid #ffd33d33;margin:0;padding:8px 16px;font-size:.9rem}.verify-banner a{color:var(--yellow)}.solution,.history{border-top:1px solid var(--card-line);margin-top:14px;padding-top:10px}.solution summary,.history summary{cursor:pointer;font:700 .85rem var(--font-mono);color:var(--muted);list-style-position:inside}.solution summary{color:var(--green)}.answer{border:1px solid var(--card-line);background:var(--card);border-radius:10px;margin:0 0 1.2em;padding:8px 14px}.answer summary{cursor:pointer;color:var(--green);font-weight:600}.answer[open] summary{margin-bottom:6px}.solution summary:hover,.history summary:hover{color:var(--text)}.solution .small{margin:8px 0;font-size:.9rem}.history ol{gap:4px;margin:10px 0 0;padding:0;font-size:.92rem;list-style:none;display:grid}.history li{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.history time{font-family:var(--font-mono);color:var(--body);min-width:9em;font-size:.85rem}.history .mark{font:700 1em var(--font-mono)}.history .passed .mark{color:var(--green)}.history .failed .mark{color:var(--red)}.history button.link{margin-left:auto;font-size:.85rem}.output .code-error{white-space:pre-wrap;font-family:var(--font-mono);font-size:.88rem}.course-hero{padding:8px 0}.facts{color:var(--muted);flex-wrap:wrap;gap:10px 28px;margin:0 0 24px;padding:0;list-style:none;display:flex}.facts strong{font:800 1.5rem var(--font-mono);color:var(--text);margin-right:6px}.hero-actions .hero-note{flex-basis:100%;margin:4px 0 0;font-size:.9rem}.about-block{margin:48px 0 0}.outcomes{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.outcomes li{color:var(--body);align-items:flex-start;gap:10px;padding:16px 18px;display:flex}.outcomes .mark{font:700 1rem var(--font-mono);color:var(--green)}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:28px;display:grid}.audience{color:var(--body);gap:8px;margin:12px 0 0;padding-left:1.2em;display:grid}.audience li::marker{color:var(--green)}.about-side{gap:12px;display:grid}.about-side p{margin:0}.about-label{color:var(--text);font-weight:700;margin-bottom:6px!important}.project-card{border-color:#7ee78759}.free-badge{font:600 .75rem var(--font-mono);color:var(--green);white-space:nowrap;border:1px solid #7ee78766;border-radius:999px;padding:1px 8px}.cta-card{margin-top:48px}.cta-card h2{margin-top:0}@media (max-width:640px){.about-grid{grid-template-columns:1fr}}.locked{margin-top:12px}.locked-title{color:var(--text);margin:0 0 8px;font-size:1.2rem;font-weight:700}.locked-sub{color:var(--text);margin:16px 0 6px;font-weight:600}.locked-tasks{color:var(--muted);gap:4px;margin:0 0 20px;padding-left:1.4em;display:grid}.lock{opacity:.7;font-size:.8em}.btn s{opacity:.7;margin-right:.25em}.consent{align-items:center;gap:.5em;display:flex}.main:has(.home-hero){max-width:1040px}.btn.big,.hero-actions .btn.primary{border-radius:12px;padding:13px 22px;font-size:1.05rem}.land-facts{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:20px 0 0;padding:0;font-size:.92rem;list-style:none;display:flex}.land-facts li:before{content:"✓ ";color:var(--green);font-weight:700}.land-block{margin-top:64px}.land-block h2{margin:.25em 0 .5em}.land-block .outcomes{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.chat{border:1px solid var(--card-line);background:#0f1621;border-radius:22px;margin:0;overflow:hidden;box-shadow:0 24px 60px -20px #000000b3,0 0 0 1px #7ee78714}.chat-head{background:#17212b;border-bottom:1px solid #0b1118;align-items:center;gap:10px;padding:12px 16px;display:flex}.chat-head strong{font-size:.95rem;display:block}.chat-status{color:var(--dim);font-size:.78rem;display:block}.chat-avatar{background:var(--green);color:#05070a;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.chat-body{background:radial-gradient(circle at 30% 20%,#142030 0%,#0e1621 70%);flex-direction:column;gap:6px;margin:0;padding:14px 12px;list-style:none;display:flex}.msg{color:#e9edf2;background:#182533;border-radius:14px 14px 14px 4px;flex-wrap:wrap;align-self:flex-start;align-items:flex-end;gap:2px 10px;max-width:82%;padding:7px 11px;font-size:.93rem;line-height:1.4;display:flex}.msg.mine{background:#2b5278;border-radius:14px 14px 4px;align-self:flex-end}.msg-text{white-space:pre-line}.msg-time{color:#e9edf280;margin-left:auto;font-size:.7rem}.msg-card{width:82%}.mini-card{flex-direction:column;flex:100%;gap:4px;font-size:.82rem;display:flex}.mini-bar,.mini-line{background:#232e3c;border-radius:3px;height:6px;display:block;overflow:hidden}.mini-bar span{background:#34c759;height:100%;display:block}.mini-line span{background:#5288c1;border-radius:3px;height:100%;display:block}.mini-hint{color:#708499;font-size:.76rem}.mini-row{grid-template-columns:26% 1fr auto;align-items:center;gap:8px;display:grid}.mini-keys{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px;display:grid}.mini-keys span{text-align:center;background:#232e3c;border-radius:6px;padding:3px 0;font-size:.76rem}.mini-keys .ok{color:#fff;background:#5288c1}.chat-keys{background:#17212b;grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px 10px;display:grid}.chat-keys span{text-align:center;color:#e9edf2;background:#22303f;border-radius:8px;padding:8px;font-size:.88rem}.faq summary{cursor:pointer;color:var(--text);align-items:baseline;gap:6px;font-weight:700;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font:700 1.1rem var(--font-mono);color:var(--green);margin-left:auto;padding-left:12px}.faq details[open] summary:after{content:"−"}.home-hero{max-width:860px;padding:24px 0 36px}.home-hero h1{margin:.2em 0 .35em;font-size:clamp(2.1rem,5.6vw,3.4rem)}.flagship{background:radial-gradient(ellipse 80% 90% at 0% 0%, #7ee7871a, transparent 60%), var(--card);border-color:#7ee78773;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:36px;padding:32px;scroll-margin-top:80px;display:grid;box-shadow:0 30px 80px -40px #7ee78759}.flagship h2{margin:.4em 0;font-size:clamp(1.6rem,3.6vw,2.2rem)}.flagship h2 a{color:var(--text);text-decoration:none}.flagship h2 a:hover{color:var(--green)}.flagship-badge{background:var(--yellow);color:#05070a;font:700 .8rem var(--font-mono);border-radius:999px;padding:3px 12px;display:inline-block}.flagship-lead{color:var(--body);margin:0;font-size:1.08rem}.flagship .land-facts{margin:16px 0 0}.flagship-meta{font:.85rem var(--font-mono);margin:14px 0 18px}.flagship-more{margin-top:14px;font-size:.95rem;display:inline-block}#courses{scroll-margin-top:80px}.track{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:16px 0 0;padding:0;list-style:none;display:grid}.track-step{align-items:baseline;gap:4px;display:flex}.paths{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}.path{flex-direction:column;gap:4px;display:flex}.path h3{margin:4px 0 8px;font-size:1.25rem}.path p{margin:0 0 8px}.path .btn{align-self:flex-start;margin-top:auto}.path-main{border-color:#7ee78773}.author{align-items:flex-start;gap:20px;margin-top:12px;display:flex}.author-photo{object-fit:cover;background:var(--green);color:#05070a;width:72px;height:72px;font:800 1.8rem var(--font-sans);border-radius:50%;flex:none;place-items:center;display:grid}.author p{margin:0 0 8px}.author-name{color:var(--text);font-size:1.15rem;font-weight:800}.author-role{font-size:.9rem}.faq{gap:10px;display:grid}.faq details{padding:16px 20px}.faq details p{color:var(--muted);margin:10px 0 0}.land-final{text-align:center;background:linear-gradient(180deg, #7ee7870f, var(--card));border-color:#7ee78759;margin-top:64px}.land-final h2{margin-top:0}.land-final .hero-actions{justify-content:center}.price-tag{color:var(--text);border-color:#7ee78766}.buy-bar{display:none}@media (max-width:760px){.land-block{margin-top:48px}.flagship{grid-template-columns:1fr;gap:24px;padding:22px 18px}.paths,.land-block .steps{grid-template-columns:1fr}.buy-bar{z-index:20;padding:10px 16px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--card-line);background:#05070ae6;display:flex;position:fixed;bottom:0;left:0;right:0}.buy-bar .btn{flex:1;justify-content:center}.main:has(.buy-bar){padding-bottom:96px}.hero-actions .btn{flex:auto;justify-content:center}}@media (max-width:560px){.author{flex-direction:column}.track{grid-template-columns:1fr}}.author-stack{margin:4px 0 0;padding:0;list-style:none}.main:has(.admin){max-width:1072px}.admin h1{margin:.4em 0 .6em;font-size:1.9rem}.admin h2{margin:0 0 12px;font-size:1.15rem}.admin .card{margin-bottom:18px;overflow-x:auto}.admin .card:has(>table){padding:4px 0}.admin .card>h2+table{margin-top:4px}.admin-nav{border:1px solid var(--card-line);background:var(--card);border-radius:12px;flex-wrap:wrap;gap:4px;width:fit-content;margin:4px 0 8px;padding:4px;display:flex}.admin-nav a{color:var(--muted);border-radius:9px;padding:7px 14px;font-size:.92rem;font-weight:600;text-decoration:none}.admin-nav a:hover{color:var(--text);background:#161d27}.admin-nav a.active{color:#05070a;background:var(--green)}.admin table{border-collapse:collapse;width:100%;font-size:.92rem}.admin th{text-align:left;font:700 .72rem var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--dim);border-bottom:1px solid var(--card-line);white-space:nowrap;padding:10px 14px}.admin td{vertical-align:middle;border-bottom:1px solid #1d273599;padding:10px 14px}.admin tbody tr:last-child td{border-bottom:none}.admin tbody tr:hover td{background:#ffffff04}.admin td .link,.admin td a{word-break:break-all}.admin input:not([type=checkbox]):not([type=hidden]),.admin select{border:1px solid var(--card-line);background:var(--code-bg);color:var(--text);font:400 .95rem var(--font-sans);border-radius:10px;padding:8px 12px}.admin input:focus,.admin select:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #7ee78726}.admin input[type=search]{min-width:260px}.admin input[type=number]{width:120px}.admin form.inline{flex-wrap:wrap;gap:8px;margin-bottom:14px}.admin label{color:var(--muted);gap:6px;font-size:.88rem;display:grid}.admin label.check{color:var(--body);gap:8px;display:flex}.admin fieldset{border:1px solid var(--card-line);border-radius:10px;gap:6px;padding:10px 14px;display:grid}.admin .error{color:var(--red)}.admin code{font:.88rem var(--font-mono);color:var(--yellow)}.admin .form{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:end;max-width:760px}.admin .form fieldset,.admin .form .btn,.admin .form [role=alert],.admin .form .error{grid-column:1/-1}.admin .form .btn{justify-self:start;padding:10px 28px}.admin .form input[type=number]{width:100%}.admin td .btn.small{white-space:nowrap;margin:0 6px 6px 0}.admin td form.inline{flex-wrap:nowrap;margin:0}.prose .lesson-img{border-radius:var(--radius);border:1px solid var(--card-line);background:var(--code-bg);cursor:zoom-in;margin:18px 0;display:block;overflow:hidden}.prose .lesson-img img{width:100%;height:auto;display:block}.prose .lesson-img:hover{border-color:#7ee78773}
