@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.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:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.10u7vx61f1ie7.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:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_6c7b9128-module__w1Om8q__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_6c7b9128-module__w1Om8q__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--ink:#15112e;--primary:#6247f5;--primary-600:#5036e0;--primary-50:#f0edff;--accent:#ffb547;--success:#12b76a;--bg:#f7f6fc;--surface:#fff;--border:#e8e5f4;--text:#1c1840;--muted:#6c6990;--radius-lg:20px;--radius-md:14px;--shadow-lg:0 22px 44px -22px #3622a066}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;font-family:var(--font-jakarta), "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}body{color:var(--text);background:var(--bg)}a{color:inherit;text-decoration:none}pre{white-space:pre-wrap}::selection{background:var(--primary);color:#fff}:focus-visible{outline-offset:2px;outline:3px solid #6247f573}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{height:46px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:15px;font-weight:700;transition:transform .15s,background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--sm{height:38px;padding:0 16px;font-size:14px}.btn--primary{background:var(--primary);color:#fff;box-shadow:0 12px 24px -12px #6247f5e6}.btn--primary:hover{background:var(--primary-600)}.btn--ghost{color:#fff;background:#ffffff14;border-color:#ffffff38}.btn--ghost:hover{background:#ffffff29}.btn--outline{color:var(--text);border-color:var(--border);background:#fff}.btn--outline:hover{border-color:var(--primary);color:var(--primary)}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:28px;padding:0 12px;font-size:12.5px;font-weight:700;display:inline-flex}.pill--glass{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff38}.pill--soft{background:var(--primary-50);color:var(--primary)}.pill--success{color:#0a8f54;background:#e7f8ef}.pill--warm{color:#b26a00;background:#fff4de}.site-header{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--border);background:#f7f6fcd9;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:800;display:flex}.brand__mark{color:#fff;background:linear-gradient(135deg, var(--primary), #9b6bff);border-radius:10px;place-items:center;width:34px;height:34px;font-size:17px;display:grid;box-shadow:0 8px 16px -8px #6247f5cc}.nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.nav a:hover,.nav a[aria-current=page]{background:var(--primary-50);color:var(--primary)}.hero,.page-banner{background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero:before,.page-banner:before{content:"";background-image:radial-gradient(#ffffff17 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 25%,#0000 100%);mask-image:linear-gradient(#000 25%,#0000 100%)}.hero:after,.page-banner:after{content:"";background:radial-gradient(circle,#8264ff8c,#0000 65%);border-radius:50%;width:620px;height:620px;position:absolute;top:-260px;right:-180px}.hero{padding:88px 0 96px}.hero__inner,.page-banner__inner{z-index:1;position:relative}.hero h1{letter-spacing:-.04em;max-width:760px;font-size:clamp(38px,6vw,68px);font-weight:800;line-height:1.04}.hero p{color:#ffffffb8;max-width:580px;margin-top:22px;font-size:18px;line-height:1.65}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.hero__stats{flex-wrap:wrap;gap:44px;margin-top:60px;display:flex}.stat strong{letter-spacing:-.03em;color:var(--accent);font-size:34px;font-weight:800;display:block}.stat span{color:#ffffff9e;font-size:14px}.page-banner{padding:26px 0 44px}.page-banner h1{letter-spacing:-.03em;max-width:860px;margin-top:20px;font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.15}.page-banner p{color:#ffffffb3;max-width:600px;margin-top:12px;line-height:1.65}.page-banner .ant-breadcrumb{color:#ffffff8c}.page-banner .ant-breadcrumb a{color:#ffffffb8}.page-banner .ant-breadcrumb a:hover{color:#fff;background:0 0}.page-banner .ant-breadcrumb-separator{color:#ffffff4d}.page-banner .ant-breadcrumb li:last-child{color:#fff}.section{padding:56px 0 88px}.section__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.section__title{letter-spacing:-.03em;font-size:28px;font-weight:800}.section__sub{max-width:560px;color:var(--muted);margin-top:6px;line-height:1.6}.course-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.page-body{padding:36px 0 88px}.layout-grid{grid-template-columns:minmax(0, 1fr) var(--side,340px);align-items:start;gap:28px;display:grid}.layout-grid--exercise{--side:300px}.sticky{position:sticky;top:88px}@media (max-width:992px){.layout-grid{grid-template-columns:1fr}.sticky{position:static}}@media (max-width:576px){.container{padding:0 16px}.hero{padding:56px 0 64px}.hero__stats{gap:28px;margin-top:40px}}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;height:100%;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-lg);border-color:#0000;transform:translateY(-4px)}.course-card__cover{align-items:flex-start;height:150px;padding:18px;display:flex;position:relative;overflow:hidden}.course-card__cover:before{content:"";border:18px solid #ffffff24;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-64px;right:56px}.course-card__cover:after{content:"";background:#ffffff29;border-radius:50%;width:160px;height:160px;position:absolute;top:-44px;right:-34px}.course-card__initial{z-index:1;color:#ffffff4d;font-size:104px;font-weight:800;line-height:1;position:absolute;bottom:-10px;right:22px}.course-card__cover .pill{z-index:2;position:relative}.course-card__body{flex-direction:column;flex:1;padding:20px 20px 18px;display:flex}.course-card__title{letter-spacing:-.015em;font-size:18px;font-weight:700;line-height:1.35}.course-card__desc{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:8px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.course-card__meta{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:18px;font-size:13px;font-weight:600;display:flex}.course-card__meta span{align-items:center;gap:6px;display:inline-flex}.course-card__cta{border-top:1px solid var(--border);color:var(--primary);justify-content:space-between;align-items:center;padding:14px 20px;font-size:14px;font-weight:700;display:flex}.course-card__cta .anticon{transition:transform .2s}.course-card:hover .course-card__cta .anticon{transform:translate(4px)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px}@media (max-width:576px){.panel{padding:20px}}.panel__title{letter-spacing:-.01em;font-size:16px;font-weight:800}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.lesson-title{letter-spacing:-.03em;margin-bottom:18px;font-size:28px;font-weight:800;line-height:1.2}.exercises{border-top:1px solid var(--border);margin-top:36px;padding-top:28px}.exercises h3{align-items:center;gap:10px;margin-bottom:16px;font-size:18px;font-weight:800;display:flex}.exercise-list{gap:12px;list-style:none;display:grid}.exercise-link{background:var(--bg);border-radius:var(--radius-md);border:1px solid #0000;align-items:center;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s,transform .15s;display:flex}.exercise-link:hover{border-color:var(--primary);background:#fff;transform:translate(2px)}.exercise-link__index{width:34px;height:34px;color:var(--primary);background:var(--primary-50);border-radius:10px;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.exercise-link__text{flex:1;min-width:0}.exercise-link__text strong{font-size:15px;display:block}.exercise-link__text span{color:var(--muted);margin-top:2px;font-size:13.5px;display:block}.exercise-link .anticon{color:var(--muted)}.progress-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.progress-head span{color:var(--primary);font-size:13px;font-weight:700}.progress-bar{background:var(--primary-50);border-radius:999px;height:8px;overflow:hidden}.progress-bar>div{background:linear-gradient(90deg, var(--primary), #9b6bff);border-radius:999px;height:100%;transition:width .4s}.steps{margin-top:22px;list-style:none}.step{gap:14px;padding-bottom:20px;display:flex;position:relative}.step:last-child{padding-bottom:0}.step:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:28px;bottom:2px;left:13px}.step--done:not(:last-child):before{background:var(--success)}.step__dot{width:28px;height:28px;color:var(--muted);border:2px solid var(--border);background:#fff;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.step--done .step__dot{color:#fff;background:var(--success);border-color:var(--success)}.step--current .step__dot{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 5px var(--primary-50)}.step__text a{font-size:14.5px;font-weight:600;line-height:1.35}.step--wait .step__text a{color:var(--muted)}.step--current .step__text a{color:var(--primary);font-weight:800}.step__text a:hover{color:var(--primary)}.step__text small{color:var(--muted);margin-top:2px;font-size:12.5px;display:block}.exercise-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.exercise-head h2{letter-spacing:-.025em;font-size:24px;font-weight:800}.exercise-desc{color:var(--muted);margin-bottom:22px;line-height:1.7}.choice-group{gap:10px;width:100%;display:grid}.choice-group .ant-radio-wrapper{border:1.5px solid var(--border);border-radius:12px;width:100%;margin:0;padding:14px 16px;font-size:15px;font-weight:500;transition:border-color .15s,background .15s}.choice-group .ant-radio-wrapper:hover{border-color:var(--primary)}.choice-group .ant-radio-wrapper-checked{border-color:var(--primary);background:var(--primary-50)}.code-label{color:var(--muted);margin:16px 0 8px;font-size:13px;font-weight:700}.code-block{color:#e9e6ff;background:#1a1635;border-radius:12px;padding:16px 18px;font-family:ui-monospace,JetBrains Mono,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.7;overflow-x:auto}.info-list{gap:14px;margin-top:16px;display:grid}.info-list dt{color:var(--muted);font-size:12.5px;font-weight:600}.info-list dd{margin-top:2px;font-weight:700;line-height:1.4}.not-found{text-align:center;max-width:480px;margin:96px auto;padding:40px 28px}.not-found__icon{width:64px;height:64px;color:var(--primary);background:var(--primary-50);border-radius:20px;place-items:center;margin:0 auto 20px;font-size:28px;display:grid}.not-found h1{letter-spacing:-.02em;margin-bottom:22px;font-size:24px;font-weight:800}.markdown-content{font-size:16px;line-height:1.8}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{letter-spacing:-.02em;margin:1.6em 0 .5em;font-weight:800;line-height:1.25}.markdown-content h1{font-size:1.7em}.markdown-content h2{font-size:1.4em}.markdown-content h3{font-size:1.15em}.markdown-content>:first-child{margin-top:0}.markdown-content p{margin-bottom:1em}.markdown-content ul,.markdown-content ol{margin-bottom:1em;padding-left:1.5em}.markdown-content ul{list-style:outside}.markdown-content li::marker{color:var(--primary)}.markdown-content a{color:var(--primary);text-underline-offset:3px;font-weight:600;text-decoration:underline}.markdown-content code{color:var(--primary-600);background:var(--primary-50);border-radius:6px;padding:.15em .4em;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em}.markdown-content pre{color:#e9e6ff;background:#1a1635;border-radius:12px;margin:1.2em 0;padding:16px 18px;overflow-x:auto}.markdown-content pre code{color:inherit;background:0 0;padding:0}.markdown-content blockquote{color:var(--text);background:var(--primary-50);border-radius:12px;margin:1.2em 0;padding:14px 18px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
