:root{--bg:#f6f6f9;--surface:#fff;--surface-2:#f0f1f6;--text:#13151f;--muted:#5f6475;--faint:#8d92a3;--border:#e3e5ec;--accent:#4f46e5;--accent-ink:#fff;--accent-soft:#eceafe;--accent-text:#4338ca;--warm:#f59e0b;--warm-soft:#fff4dc;--ok:#15803d;--ok-soft:#e3f6e8;--bad:#c2261d;--bad-soft:#fde8e6;--info-soft:#e6f0ff;--code-bg:#f3f4f8;--shadow:0 1px 2px #1014280a, 0 4px 16px #1014280d;--radius:14px;--font:"Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d0f16;--surface:#151823;--surface-2:#1c2030;--text:#e8e9f0;--muted:#a3a8ba;--faint:#7a8093;--border:#272c3d;--accent:#7c74ff;--accent-ink:#0d0f16;--accent-soft:#252347;--accent-text:#b3adff;--warm:#fbbf24;--warm-soft:#3a2e12;--ok:#4ade80;--ok-soft:#13301f;--bad:#f87171;--bad-soft:#3a1717;--info-soft:#172440;--code-bg:#10131c;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d0f16;--surface:#151823;--surface-2:#1c2030;--text:#e8e9f0;--muted:#a3a8ba;--faint:#7a8093;--border:#272c3d;--accent:#7c74ff;--accent-ink:#0d0f16;--accent-soft:#252347;--accent-text:#b3adff;--warm:#fbbf24;--warm-soft:#3a2e12;--ok:#4ade80;--ok-soft:#13301f;--bad:#f87171;--bad-soft:#3a1717;--info-soft:#172440;--code-bg:#10131c;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0 0 .5em;line-height:1.2}h1{font-size:clamp(28px,4vw,40px);font-weight:800}h2{font-size:clamp(22px,2.6vw,28px);font-weight:800}h3{font-size:19px;font-weight:700}p{margin:0 0 .8em}button,input,select,textarea{font:inherit;color:inherit}code,pre,kbd{font-family:var(--mono);font-size:.9em}code,pre,kbd,textarea,.cm-editor{font-variant-ligatures:none;font-feature-settings:"calt" 0, "liga" 0}.container{max-width:1180px;margin:0 auto;padding:0 16px}.narrow{max-width:820px}.header{z-index:30;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{align-items:center;gap:18px;height:60px;display:flex}.logo{color:var(--text);letter-spacing:-.02em;align-items:center;gap:9px;font-size:20px;font-weight:800;display:flex}.logo:hover{text-decoration:none}.logo-mark{background:var(--accent);border-radius:8px;flex:none;width:28px;height:28px;position:relative}.logo-mark:before{content:"";border:3.5px solid #fff;border-radius:50%;position:absolute;inset:7px}.logo-mark:after{content:"";background:#fbbf24;border-radius:50%;width:7px;height:7px;position:absolute;top:4px;right:4px}.nav{flex:1;align-items:center;gap:2px;display:flex}.nav a,.nav-drop>button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:7px 11px;font-size:15px;font-weight:600}.nav a:hover,.nav-drop>button:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav a.active{color:var(--text);background:var(--surface-2)}.nav-drop{position:relative}.nav-menu{background:var(--surface);border:1px solid var(--border);min-width:260px;box-shadow:var(--shadow);border-radius:12px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.nav-menu a{color:var(--text);padding:9px 11px;display:block}.nav-menu small{color:var(--faint);font-size:13px;font-weight:500;display:block}.header-right{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--muted);border-radius:10px;place-items:center;display:grid}.burger,.mobile-nav{display:none}@media (width<=960px){.nav{display:none}.burger{display:grid}.header-inner{justify-content:space-between}.mobile-nav.open{border-top:1px solid var(--border);background:var(--bg);max-height:calc(100vh - 60px);padding:8px 16px 16px;display:grid;overflow:auto}.mobile-nav a{color:var(--text);border-bottom:1px solid var(--border);padding:11px 4px;font-weight:600}.mobile-nav .sub{color:var(--muted);padding-left:18px;font-weight:500}}main{min-height:calc(100vh - 160px);padding:28px 0 60px}.footer{border-top:1px solid var(--border);color:var(--faint);padding:28px 0 40px;font-size:14px}.footer-grid{flex-wrap:wrap;justify-content:space-between;gap:20px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card.flat{box-shadow:none}.card-link{color:inherit;transition:border-color .15s,transform .15s;display:block}.card-link:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=960px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.stack{gap:12px;display:grid}.stack>*,.mcq>*,.mcq-options>*{min-width:0}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:14px}.tiny{font-size:12.5px}.mt{margin-top:24px}.mt-s{margin-top:12px}.mb{margin-bottom:24px}.section{margin-top:40px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.section-head h2{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:6px;font-size:12px;font-weight:700}.btn{border:1px solid var(--border);background:var(--surface);height:40px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--faint);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .btn.primary,:root:not([data-theme=light]) .btn.primary{color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.sm{border-radius:8px;height:32px;padding:0 11px;font-size:14px}.btn.ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.btn.bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.btn.warm{background:var(--warm-soft);color:var(--text);border-color:#0000}.chip{background:var(--surface-2);height:26px;color:var(--muted);white-space:nowrap;border:1px solid #0000;border-radius:99px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}button.chip{cursor:pointer}.btn.nav{white-space:normal;max-width:100%;height:auto;min-height:40px;padding-block:8px}.chip.wrap{white-space:normal;border-radius:10px;height:auto;min-height:26px;padding-block:3px}.chip.on{background:var(--accent-soft);color:var(--accent-text);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.chip.easy{background:var(--ok-soft);color:var(--ok)}.chip.medium{background:var(--warm-soft);color:color-mix(in srgb, var(--warm) 70%, var(--text))}.chip.hard{background:var(--bad-soft);color:var(--bad)}.chip.official{background:var(--ok-soft);color:var(--ok)}.chips{flex-wrap:wrap;gap:6px;display:flex}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:700}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:10px;outline:none;width:100%;height:42px;padding:0 12px}textarea.input{resize:vertical;height:auto;min-height:120px;padding:10px 12px;line-height:1.5}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.progress{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.progress>div{background:var(--accent);border-radius:99px;height:100%;transition:width .3s}.progress.ok>div{background:var(--ok)}.badge-logo{color:#fff;letter-spacing:-.02em;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:17px;font-weight:800;display:grid}.badge-logo.lg{border-radius:18px;width:64px;height:64px;font-size:24px}.stat{gap:2px;display:grid}.stat b{letter-spacing:-.02em;font-size:28px;font-weight:800}.stat span{color:var(--muted);font-size:14px}.notice{background:var(--info-soft);border-radius:12px;padding:14px 16px;font-size:15px}.notice.warm{background:var(--warm-soft)}.notice.ok{background:var(--ok-soft)}.notice.bad{background:var(--bad-soft)}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-weight:700}.tabs button.on{color:var(--text);border-color:var(--accent)}.list{display:grid}.list>*{border-bottom:1px solid var(--border);padding:13px 0}.list>:last-child{border-bottom:0}.checkbox{border:2px solid var(--border);cursor:pointer;background:var(--surface);color:#fff;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;padding:0;font-size:13px;font-weight:800;display:inline-grid}.checkbox.on{background:var(--ok);border-color:var(--ok)}.table-wrap{border:1px solid var(--border);border-radius:12px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14.5px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}th{background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:700}tr:last-child td{border-bottom:0}.md{font-size:16.5px;line-height:1.65}.md h3{margin-top:1.6em;font-size:19px}.md h3:first-child{margin-top:0}.md h4{margin-top:1.3em}.md ul,.md ol{margin:0 0 1em;padding-left:1.3em}.md li{margin:.25em 0}.md code{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:.12em .38em}.md pre{background:var(--code-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.5;overflow-x:auto}.md pre code{background:0 0;border:0;padding:0}.md :not(pre)>code,.md a{overflow-wrap:anywhere}.md table{border:1px solid var(--border);border-radius:10px;margin:0 0 1em;display:block;overflow:auto hidden}.md blockquote{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0;margin:0 0 1em;padding:10px 16px}.md p:last-child{margin-bottom:0}.md.compact{font-size:15.5px}.hero{padding:36px 0 12px}.hero h1{letter-spacing:-.03em;max-width:900px;font-size:clamp(32px,5.4vw,56px);line-height:1.05}.hero .lead{color:var(--muted);max-width:720px;font-size:clamp(17px,2vw,20px)}.picker{grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;max-width:860px;margin-top:26px;display:grid}@media (width<=720px){.picker{grid-template-columns:1fr}}.steps{counter-reset:s;gap:0;display:grid}.step{grid-template-columns:34px 1fr;gap:14px;padding-bottom:18px;display:grid;position:relative}.step:before{counter-increment:s;content:counter(s);background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid}.step:after{content:"";background:var(--border);width:2px;position:absolute;top:34px;bottom:4px;left:15px}.step:last-child:after{display:none}.step-body b{display:block}.months{grid-template-columns:repeat(12,1fr);gap:3px;display:grid}.months span{background:var(--surface-2);height:22px;color:var(--faint);border-radius:5px;place-items:center;font-size:11px;font-weight:600;display:grid}.months span.on{background:var(--accent);color:#fff}.months span.now{outline:2px solid var(--warm);outline-offset:1px}.split{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:16px;display:grid}@media (width<=1000px){.split{grid-template-columns:minmax(0,1fr)}}.sticky{position:sticky;top:76px}@media (width<=1000px){.sticky{position:static}}.editor{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.editor .cm-editor{min-height:280px;max-height:560px;font-size:14px}.editor .cm-editor.cm-focused{outline:none}.editor .cm-scroller{font-family:var(--mono)}.editor .cm-gutters{background:var(--surface-2);border-right:1px solid var(--border);color:var(--faint)}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:color-mix(in srgb, var(--accent-soft) 45%, transparent)}.editor .cm-content{caret-color:var(--text)}.editor .cm-cursor{border-left-color:var(--text)}.editor .cm-selectionBackground,.editor .cm-focused .cm-selectionBackground{background:color-mix(in srgb, var(--accent) 25%, transparent)!important}.editor-bar{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:8px 10px;display:flex}.results{gap:6px;margin-top:12px;display:grid}.result{font-family:var(--mono);background:var(--surface-2);white-space:pre-wrap;word-break:break-word;border-radius:9px;padding:8px 10px;font-size:13px;overflow-x:auto}.result.pass{background:var(--ok-soft)}.result.fail{background:var(--bad-soft)}.qa{border:1px solid var(--border);background:var(--surface);border-radius:12px}.qa+.qa{margin-top:10px}.qa-q{text-align:left;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;font-weight:700;display:flex}.qa-q .n{color:var(--faint);min-width:22px;font-weight:700}.qa-a{padding:0 16px 16px 50px}@media (width<=620px){.qa-a{padding-left:16px}}.flash{align-content:space-between;gap:18px;min-height:340px;display:grid}.flash-q{font-size:clamp(19px,2.4vw,24px);font-weight:700;line-height:1.35}.timer{font-family:var(--mono);background:var(--surface-2);border-radius:10px;padding:4px 12px;font-size:22px;font-weight:700}.timer.low{background:var(--bad-soft);color:var(--bad)}.kbd{border:1px solid var(--border);background:var(--surface);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:12px}.pill-nav{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.topic-row{align-items:center;gap:12px;display:flex}.topic-row a{color:var(--text);font-weight:600}.topic-row .meta{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}@media (width<=620px){.topic-row{flex-wrap:wrap}.topic-row .meta{margin-left:34px}}.breadcrumbs{color:var(--faint);flex-wrap:wrap;gap:6px;margin-bottom:14px;font-size:14px;display:flex}.breadcrumbs a{color:var(--muted)}@media (width<=620px){.hide-mobile{display:none!important}}.empty{text-align:center;color:var(--muted);padding:40px 16px}.ring{--p:0;background:conic-gradient(var(--accent) calc(var(--p) * 1%), var(--surface-2) 0);border-radius:50%;flex:none;place-items:center;width:64px;height:64px;display:grid}.ring span{background:var(--surface);border-radius:50%;place-items:center;width:50px;height:50px;font-size:14px;font-weight:800;display:grid}.cal{grid-template-columns:170px repeat(12,minmax(34px,1fr));gap:3px;min-width:640px;font-size:13px;display:grid}.cal .h{color:var(--faint);text-align:center;font-size:12px;font-weight:700}.cal .name{align-items:center;gap:8px;font-weight:700;display:flex}.cal .cell{background:var(--surface-2);border-radius:6px;height:30px}.cal .cell.on{background:var(--accent)}.cal .cell.now{outline:2px solid var(--warm);outline-offset:-2px}.masonry{columns:2;column-gap:16px}.masonry>*{break-inside:avoid;margin-bottom:16px}@media (width<=760px){.masonry{columns:1}}.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);align-items:center;gap:32px;display:grid}.hero-grid h1{font-size:clamp(32px,4.4vw,52px)}.hero-card{background:linear-gradient(160deg, color-mix(in srgb, var(--accent-soft) 60%, var(--surface)) 0%, var(--surface) 55%);gap:4px;display:grid}.hero-card .chips{margin-top:4px}.hero-card .chip{white-space:normal;height:auto;padding:4px 10px}@media (width<=960px){.hero-grid{grid-template-columns:minmax(0,1fr)}}.hero-grid .picker{grid-template-columns:1fr 1fr}.hero-grid .picker .btn{grid-column:1/-1}@media (width<=720px){.hero-grid .picker{grid-template-columns:1fr}}.mcq{gap:10px;display:grid}.mcq-q{align-items:flex-start;gap:10px;display:flex}.mcq-q .n,.task .n{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.mcq-options{gap:6px;display:grid}.mcq-opt{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;border-radius:10px;padding:8px 12px}.mcq-opt:hover:not(:disabled){border-color:var(--accent)}.mcq-opt:disabled{cursor:default}.mcq-opt.right{border-color:var(--ok);background:var(--ok-soft)}.mcq-opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.mcq-opt.dim{opacity:.6}.mcq-opt.picked{border-color:var(--accent);background:var(--accent-soft)}.mcq-opt .md p:last-child,.notice .md p:last-child{margin-bottom:0}.notice .md{display:inline}.task{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.task:last-child{border-bottom:0}.task-body{flex:1;gap:4px;min-width:0;display:grid}.task.done .task-body a{color:var(--faint);text-decoration:line-through}.nowrap{white-space:nowrap}.chip.kind-lesson{background:var(--accent-soft);color:var(--accent-text)}.chip.kind-coderun{color:#b3290f;background:#fde7e1}:root[data-theme=dark] .chip.kind-coderun{color:#ff9a80;background:#3a1d16}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chip.kind-coderun{color:#ff9a80;background:#3a1d16}}.chip.kind-contest,.chip.kind-virtual,.chip.kind-milestone{background:var(--warm-soft);color:var(--text)}.countdown{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.countdown .stat b{font-size:28px}.day{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.day.today{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.day.past{opacity:.75}.day-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.phase{text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-size:12px;font-weight:700}.module-card{align-content:start;gap:8px;display:grid}.module-card h3{margin:0;font-size:17px}.lesson-body{font-size:16.5px;line-height:1.7}.lesson-body h3{margin-top:28px}.io{grid-template-columns:1fr 1fr;gap:8px;display:grid}.io pre{background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-all;border-radius:10px;max-height:260px;margin:0;padding:10px 12px;font-size:13px;overflow:auto}.io .lbl{color:var(--faint);margin-bottom:4px;font-size:12px}textarea.input.mono{font-family:var(--mono);resize:vertical;min-height:90px;font-size:13px}.diag-bar{z-index:5;background:var(--bg);padding:10px 0;position:sticky;top:64px}.table-wrap table td.num{text-align:right;font-variant-numeric:tabular-nums}@media (width<=700px){.io{grid-template-columns:1fr}}
