:root{--bg: #ffffff;--bg-soft: #f2f6fd;--bg-softer: #f8fafe;--surface: #ffffff;--surface-2: #f5f8fe;--border: #d9e3f2;--border-strong: #b9cbe6;--text: #0e1626;--text-2: #334155;--muted: #5b6b84;--primary: #1a5fe0;--primary-hover: #154fc0;--primary-bg: #1a5fe0;--primary-bg-hover: #154fc0;--primary-soft: #e5eefd;--primary-text: #ffffff;--link: #1553c9;--ok: #157f3b;--ok-soft: #e6f6ec;--bad: #c42b2b;--bad-soft: #fdecec;--warn: #a45a00;--warn-soft: #fff4e0;--code-bg: #f6f9ff;--code-gutter: #eef3fc;--code-text: #10203a;--out-bg: #0f172a;--out-text: #e5edf9;--shadow: 0 1px 2px rgba(16, 32, 64, .06), 0 4px 14px rgba(16, 32, 64, .06);--radius: 12px;--radius-sm: 8px;--focus: 0 0 0 3px rgba(26, 95, 224, .35);--header-h: 60px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;--syn-keyword: #7c3aed;--syn-def: #1a5fe0;--syn-builtin: #0b6e99;--syn-string: #0f7b3d;--syn-number: #b54708;--syn-comment: #566782;--syn-atom: #c026d3;--syn-meta: #9333ea;--syn-operator: #334155;--syn-property: #0e1626;--dg-box: #ffffff;--dg-stroke: #9fb6da;--dg-accent: #e3edfd;--dg-accent-stroke: #1a5fe0;--dg-muted: #f1f4f9;--dg-text: #0e1626;--dg-label: #5b6b84;--dg-arrow: #1a5fe0;color-scheme:light}:root[data-theme=dark]{--bg: #04060a;--bg-soft: #0a0f19;--bg-softer: #070b12;--surface: #0b1019;--surface-2: #0f1522;--border: #1b2537;--border-strong: #2a3a57;--text: #e7eef9;--text-2: #c3cfe2;--muted: #8d9db7;--primary: #3b82f6;--primary-hover: #60a5fa;--primary-bg: #2563eb;--primary-bg-hover: #1d4ed8;--primary-soft: #0f1e3a;--primary-text: #ffffff;--link: #6aa8ff;--ok: #3ccf7f;--ok-soft: #0c2618;--bad: #ff7a7a;--bad-soft: #2c1010;--warn: #f5b04b;--warn-soft: #2b1d06;--code-bg: #070b13;--code-gutter: #0b1120;--code-text: #dfe8f7;--out-bg: #000000;--out-text: #e5edf9;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 6px 20px rgba(0, 0, 0, .35);--focus: 0 0 0 3px rgba(96, 165, 250, .45);--syn-keyword: #c792ea;--syn-def: #82aaff;--syn-builtin: #5cc8ff;--syn-string: #a5e075;--syn-number: #f9a35c;--syn-comment: #6c7f9d;--syn-atom: #ff8fd8;--syn-meta: #d5a6ff;--syn-operator: #b8c6dc;--syn-property: #e7eef9;--dg-box: #0b1019;--dg-stroke: #2f4466;--dg-accent: #10203f;--dg-accent-stroke: #3b82f6;--dg-muted: #0f1522;--dg-text: #e7eef9;--dg-label: #8d9db7;--dg-arrow: #60a5fa;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16.5px;line-height:1.65;text-rendering:optimizeLegibility}img,svg{max-width:100%}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--primary-hover)}h1,h2,h3,h4{line-height:1.25;margin:1.6em 0 .6em;letter-spacing:-.01em}h1{font-size:clamp(1.8rem,3.6vw,2.5rem);margin-top:.3em}h2{font-size:1.5rem}h3{font-size:1.18rem}p{margin:0 0 1em}code,kbd,pre{font-family:var(--mono);font-size:.92em}:not(pre)>code{background:var(--primary-soft);color:var(--text);padding:.1em .35em;border-radius:5px;font-size:.88em}kbd{border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0 .35em;font-size:.8em}hr{border:0;border-top:1px solid var(--border);margin:2rem 0}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}[hidden]{display:none!important}a.badge{text-decoration:none}.skip-link{position:absolute;left:-999px;top:8px;background:var(--primary-bg);color:#fff;padding:8px 12px;z-index:100;border-radius:6px}.skip-link:focus{left:8px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.small{font-size:.88rem}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}.container-narrow{max-width:820px}.stack>*+*{margin-top:1rem}.center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-height:40px;padding:.5em 1em;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:600 .95rem/1.2 var(--font);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .05s}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn:active{transform:translateY(1px)}.btn[disabled],.btn.is-disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-text)}.btn-primary:hover{background:var(--primary-bg-hover);border-color:var(--primary-bg-hover);color:var(--primary-text)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--primary-soft);border-color:transparent}.btn-danger{color:var(--bad)}.btn-danger:hover{border-color:var(--bad);color:var(--bad)}.btn-sm{min-height:34px;padding:.35em .7em;font-size:.86rem;border-radius:8px}.btn-lg{min-height:50px;padding:.7em 1.4em;font-size:1.05rem}.btn .icon{width:1.05em;height:1.05em;flex:none}.btn-run{background:var(--primary-bg);border-color:var(--primary-bg);color:#fff;min-width:86px}.btn-run:hover{background:var(--primary-bg-hover);color:#fff}.btn-run.is-running{background:var(--surface);color:var(--primary)}.icon-btn{width:40px;padding:0}.badge{display:inline-flex;align-items:center;gap:.3em;font-size:.75rem;font-weight:700;letter-spacing:.02em;padding:.2em .6em;border-radius:999px;background:var(--primary-soft);color:var(--primary);text-transform:uppercase}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-bad{background:var(--bad-soft);color:var(--bad)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-muted{background:var(--surface-2);color:var(--muted)}.chip{display:inline-block;padding:.3em .8em;border:1px solid var(--border);border-radius:999px;font-size:.88rem;color:var(--text-2);text-decoration:none;background:var(--surface);margin:0 .3em .4em 0}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip[aria-pressed=true]{background:var(--primary-bg);border-color:var(--primary-bg);color:#fff}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;gap:12px;height:var(--header-h)}.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.12rem;color:var(--text);text-decoration:none;letter-spacing:-.02em}.brand:hover{color:var(--text)}.brand-mark{width:40px;height:auto;flex:none}.main-nav{display:flex;gap:2px;margin-left:10px}.main-nav a{padding:.45em .75em;border-radius:8px;color:var(--text-2);text-decoration:none;font-weight:600;font-size:.95rem}.main-nav a:hover,.main-nav a[aria-current=page]{background:var(--primary-soft);color:var(--primary)}.header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.nav-toggle{display:none}.search{position:relative}.search input{width:230px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:0 12px 0 34px;font:inherit;font-size:.92rem}.search input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus)}.search .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.search-results{position:absolute;right:0;top:calc(100% + 6px);width:min(420px,92vw);max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:none;z-index:60}.search-results.is-open{display:block}.search-results a{display:block;padding:9px 11px;border-radius:8px;text-decoration:none;color:var(--text)}.search-results a:hover,.search-results a.is-active{background:var(--primary-soft)}.search-results .sr-title{font-weight:650}.search-results .sr-meta{font-size:.8rem;color:var(--muted)}.search-results .sr-empty{padding:10px;color:var(--muted);font-size:.9rem}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}.user-menu{position:relative}.user-menu-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;display:none}.user-menu.is-open .user-menu-panel{display:block}.user-menu-panel a,.user-menu-panel button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}.user-menu-panel a:hover,.user-menu-panel button:hover{background:var(--primary-soft)}.messages{margin:16px auto 0}.alert{padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);margin-bottom:10px}.alert-success{background:var(--ok-soft);border-color:transparent;color:var(--ok)}.alert-error{background:var(--bad-soft);border-color:transparent;color:var(--bad)}.alert-info{background:var(--primary-soft);border-color:transparent}.alert-warning{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);margin-top:64px;padding:40px 0 28px;font-size:.92rem}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:24px}.footer-grid .footer-h{margin:0 0 .6em;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.footer-grid ul{list-style:none;margin:0;padding:0}.footer-grid li{margin:.3em 0}.footer-grid a{color:var(--text-2);text-decoration:none}.footer-grid a:hover{color:var(--primary)}.footer-note{margin-top:28px;padding-top:18px;border-top:1px solid var(--border);color:var(--muted);font-size:.82rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.card h3{margin-top:0}.card-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.card-link:hover{border-color:var(--primary);color:inherit;transform:translateY(-2px)}.grid{display:grid;gap:16px}.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))}.page-head{padding:28px 0 8px}.page-head .lead{font-size:1.12rem;color:var(--text-2);max-width:70ch}.breadcrumbs{font-size:.86rem;color:var(--muted);margin:18px 0 0}.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.breadcrumbs li+li:before{content:"\203a";margin:0 6px 0 2px;color:var(--border-strong)}.breadcrumbs a{color:var(--muted);text-decoration:none}.breadcrumbs a:hover{color:var(--primary)}.hero{padding:48px 0 24px;background:linear-gradient(180deg,var(--bg-soft),var(--bg));border-bottom:1px solid var(--border)}.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}.hero h1{font-size:clamp(2.1rem,5vw,3.3rem);margin:.2em 0 .35em;letter-spacing:-.03em}.hero h1 .accent{color:var(--primary)}.hero .lead{font-size:1.15rem;color:var(--text-2)}.hero-ctas{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 14px}.hero-note{font-size:.86rem;color:var(--muted)}.loop-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:36px 0 8px;counter-reset:step}.loop-step{padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);position:relative}.loop-step strong{display:block;color:var(--primary)}.loop-step span{font-size:.86rem;color:var(--muted);line-height:1.45;display:block;margin-top:4px}.loop-step:before{counter-increment:step;content:counter(step);position:absolute;top:10px;right:12px;font-size:.75rem;color:var(--border-strong);font-weight:800}.section{padding:40px 0 8px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.section-title h2{margin:0 0 .6em}.level-block+.level-block{margin-top:28px}.level-block h3{display:flex;gap:10px;align-items:center;margin:0 0 12px}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;align-items:start}.lesson-main{min-width:0;max-width:800px}.lesson-aside{position:sticky;top:calc(var(--header-h) + 20px);font-size:.9rem}.lesson-head .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0 0}.lesson-head h1{margin-bottom:0}.lesson-head+.lesson-section{margin-top:18px}.lesson-head .concept{font-size:1.18rem;color:var(--text-2);margin:.3em 0 .6em}.objective{display:flex;gap:10px;padding:12px 14px;background:var(--primary-soft);border-radius:10px;font-size:.97rem}.objective strong{color:var(--primary);white-space:nowrap}.prereq{font-size:.92rem;color:var(--muted);margin-top:12px}.lesson-section{padding-top:8px;border-top:1px solid var(--border);margin-top:36px}.lesson-section:first-of-type{border-top:0}.lesson-section>h2{display:flex;align-items:center;gap:12px;margin-top:22px}.sec-num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary-soft);color:var(--primary);font-size:.9rem;font-weight:800;flex:none}.toc{border-left:2px solid var(--border);padding-left:2px}.toc a{display:block;padding:5px 12px;color:var(--muted);text-decoration:none;border-left:2px solid transparent;margin-left:-4px}.toc a:hover{color:var(--primary)}.toc a.is-active{color:var(--primary);border-left-color:var(--primary);font-weight:650}.aside-box{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;background:var(--surface)}.aside-box h4,.aside-title{margin:0 0 .6em;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;border:1px solid var(--border)}.progress>span{display:block;height:100%;width:0;background:var(--primary);border-radius:99px;transition:width .4s ease}.progress-label{display:flex;justify-content:space-between;font-size:.82rem;color:var(--muted);margin-top:6px}.diagram-figure{margin:8px 0 0;padding:18px;background:var(--bg-softer);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.diagram-figure figcaption{margin-top:12px;font-size:.93rem;color:var(--text-2)}.prose{overflow-wrap:break-word}.prose h3{margin-top:1.5em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.25em 0}.prose table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.95rem}.prose th,.prose td{border:1px solid var(--border);padding:7px 10px;text-align:left}.prose th{background:var(--surface-2)}.what-happened{list-style:none;padding:0;margin:0}.what-happened li{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:10px 12px;border-radius:10px;cursor:default;border:1px solid transparent;transition:background .15s,border-color .15s}.what-happened li:hover,.what-happened li:focus-within,.what-happened li.is-active{background:var(--primary-soft);border-color:var(--border)}.line-tag{font:700 .78rem/1.8 var(--mono);color:var(--primary);background:var(--surface);border:1px solid var(--border);border-radius:6px;text-align:center;height:fit-content}.mistake{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:14px 0;background:var(--surface)}.mistake h3{margin:0 0 10px;font-size:1.05rem}.mistake-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mistake-col h4{margin:0 0 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.mistake-col.bad h4{color:var(--bad)}.mistake-col.good h4{color:var(--ok)}.mistake .err{font:.85rem/1.45 var(--mono);color:var(--bad);background:var(--bad-soft);padding:6px 10px;border-radius:8px;margin:6px 0 0;white-space:pre-wrap}.mistake .fix{margin:10px 0 0;font-size:.95rem}.next-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--radius);background:var(--primary-bg);color:#fff;text-decoration:none}.next-card:hover{color:#fff;background:var(--primary-bg-hover)}.next-card .small{opacity:1!important}.next-card small{display:block;opacity:1;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.next-card strong{font-size:1.2rem}.complete-box{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px 18px;border:1px dashed var(--border-strong);border-radius:var(--radius);margin:20px 0}.complete-box.is-done{border-style:solid;border-color:var(--ok);background:var(--ok-soft)}.faq details{border:1px solid var(--border);border-radius:10px;padding:0 14px;margin:8px 0;background:var(--surface)}.faq summary{cursor:pointer;padding:12px 0;font-weight:650}.faq details[open] summary{border-bottom:1px solid var(--border);margin-bottom:10px}.lesson-list{list-style:none;margin:0;padding:0}.lesson-list li{border-bottom:1px solid var(--border)}.lesson-list a{display:flex;align-items:center;gap:12px;padding:12px 6px;text-decoration:none;color:var(--text)}.lesson-list a:hover{color:var(--primary)}.lesson-list .num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);font-size:.82rem;font-weight:700;color:var(--muted);flex:none}.lesson-list .is-done .num,.is-done>.num{background:var(--ok);color:#fff;border-color:var(--ok)}.lesson-list .desc{display:block;font-size:.88rem;color:var(--muted)}.lesson-list .grow{flex:1;min-width:0}.tick{color:var(--ok);font-weight:800}pre.code-static,.syntax-block pre,pre.code{background:var(--code-bg);color:var(--code-text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;overflow-x:auto;line-height:1.55;font-size:.9rem;margin:0 0 1em;tab-size:4}pre.code-static code,pre.code code{background:none;padding:0;font-size:1em}.cm-s-pyl .cm-keyword,.cm-keyword{color:var(--syn-keyword);font-weight:600}.cm-s-pyl .cm-def,.cm-def{color:var(--syn-def)}.cm-s-pyl .cm-builtin,.cm-builtin{color:var(--syn-builtin)}.cm-s-pyl .cm-string,.cm-string,.cm-string-2{color:var(--syn-string)}.cm-s-pyl .cm-number,.cm-number{color:var(--syn-number)}.cm-s-pyl .cm-comment,.cm-comment{color:var(--syn-comment);font-style:italic}.cm-s-pyl .cm-atom,.cm-atom{color:var(--syn-atom)}.cm-s-pyl .cm-meta,.cm-meta{color:var(--syn-meta)}.cm-s-pyl .cm-operator,.cm-operator{color:var(--syn-operator)}.cm-s-pyl .cm-variable-2,.cm-variable-2{color:var(--syn-def)}.cm-s-pyl .cm-property,.cm-property{color:var(--syn-property)}.cm-error{color:var(--bad)}.CodeMirror{height:auto;font-family:var(--mono);font-size:14.5px;line-height:1.55;background:var(--code-bg);color:var(--code-text);border-radius:0}.CodeMirror-gutters{background:var(--code-gutter);border-right:1px solid var(--border)}.CodeMirror-linenumber{color:var(--muted);padding:0 8px 0 6px;min-width:22px}.CodeMirror-cursor{border-left:2px solid var(--primary)}.CodeMirror-selected,.CodeMirror-focused .CodeMirror-selected{background:color-mix(in srgb,var(--primary) 22%,transparent)!important}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:color-mix(in srgb,var(--primary) 28%,transparent)}.CodeMirror-activeline-background{background:color-mix(in srgb,var(--primary) 7%,transparent)}.CodeMirror-matchingbracket{color:var(--ok)!important;outline:1px solid color-mix(in srgb,var(--ok) 60%,transparent)}.CodeMirror-placeholder{color:var(--muted)!important}.CodeMirror .cm-line-highlight{background:color-mix(in srgb,var(--warn) 18%,transparent)}.CodeMirror .cm-line-error{background:color-mix(in srgb,var(--bad) 16%,transparent)}.CodeMirror-hints{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);font-family:var(--mono);font-size:13px;z-index:200}.CodeMirror-hint{color:var(--text);padding:3px 8px}li.CodeMirror-hint-active{background:var(--primary-bg);color:#fff}.snippet{border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;margin:14px 0 22px;background:var(--code-bg);box-shadow:var(--shadow)}.snippet-head{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);min-height:44px}.snippet-title{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:auto;display:flex;align-items:center;gap:8px}.snippet-title .dot{width:8px;height:8px;border-radius:50%;background:var(--primary)}.snippet-tools{display:flex;gap:2px}.snippet-tools .btn{min-height:32px;padding:.3em .55em;font-size:.8rem;font-weight:600;color:var(--muted)}.snippet-tools .btn:hover{color:var(--primary)}.snippet-body pre.snippet-code{margin:0;padding:12px 14px 12px 50px;border:0;border-radius:0;background:var(--code-bg);overflow-x:auto;font-size:14.5px;line-height:1.55;min-height:48px}.snippet-body .CodeMirror{min-height:48px}.snippet-actions{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.snippet-status{font-size:.84rem;color:var(--muted);display:flex;align-items:center;gap:8px;margin-left:4px}.snippet-stdin{padding:8px 12px;background:var(--surface);border-top:1px solid var(--border)}.snippet-stdin label{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.snippet-stdin textarea,.stdin-box textarea{width:100%;margin-top:4px;font:13.5px/1.45 var(--mono);padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--code-bg);color:var(--text);resize:vertical;min-height:40px}.network-note{font-size:.82rem;color:var(--muted);padding:6px 12px;border-top:1px solid var(--border);background:var(--surface)}.snippet.is-fullscreen{position:fixed;inset:12px;z-index:300;margin:0;display:flex;flex-direction:column}.snippet.is-fullscreen .snippet-body{flex:1;overflow:auto}.snippet.is-fullscreen .CodeMirror{height:100%;min-height:50vh}.snippet.is-fullscreen .output{max-height:35vh}.fullscreen-backdrop{position:fixed;inset:0;background:#0000008c;z-index:299}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--primary);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.output{background:var(--out-bg);color:var(--out-text);font:13.8px/1.5 var(--mono);padding:12px 14px;margin:0;white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;border-top:1px solid var(--border);position:relative}.output:empty{display:none}.output .out-label{display:block;font:700 .7rem/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:#c3d0e6;margin-bottom:8px}.output.is-expected{opacity:.78}.output .stderr{color:#ffb4a8}.output .err-block{display:block;margin-top:8px;padding:10px 12px;border-radius:8px;background:#ff5a5a1a;border:1px solid rgba(255,110,110,.35);color:#ffc9c3}.output .err-title{font-weight:700;color:#ff9a9a}.output .hint{display:block;margin-top:8px;font-family:var(--font);font-size:.88rem;color:#cfe0ff}.output .hint a{color:#8ec5ff}.output .sys{color:#8fa5c8;font-family:var(--font);font-size:.84rem}.output .ok-line{color:#7ee2a8;font-family:var(--font);font-size:.84rem}.output img.plot{display:block;max-width:100%;background:#fff;border-radius:8px;margin:8px 0}.exercise{border:1px solid var(--border);border-radius:var(--radius);padding:18px 18px 6px;margin:18px 0;background:var(--surface)}.exercise.is-done{border-color:var(--ok);box-shadow:inset 4px 0 0 var(--ok)}.exercise-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.exercise-head h3{margin:0 auto 0 0;font-size:1.08rem}.exercise .prompt{margin:10px 0 4px}.exercise .snippet{margin-top:10px}.exercise-result{margin:10px 0 14px;padding:10px 12px;border-radius:10px;font-size:.95rem;display:none}.exercise-result.is-pass{display:block;background:var(--ok-soft);color:var(--ok);font-weight:650}.exercise-result.is-fail{display:block;background:var(--bad-soft);color:var(--bad)}.exercise-hint,.exercise-solution{margin:10px 0 14px;padding:10px 12px;border-radius:10px;background:var(--warn-soft);font-size:.95rem}.exercise-solution{background:var(--surface-2)}.prediction textarea{width:100%;font:14px/1.5 var(--mono);border-radius:10px;border:1px solid var(--border-strong);background:var(--code-bg);color:var(--text);padding:10px;min-height:80px}.compare-out{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.compare-out pre{margin:4px 0 0;padding:8px 10px;border-radius:8px;background:var(--code-bg);border:1px solid var(--border);white-space:pre-wrap;font-size:.85rem;color:var(--text)}.filter-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 20px}.dg{display:block;height:auto;font-family:var(--mono)}.dg text{white-space:pre}.dg .dg-box{fill:var(--dg-box);stroke:var(--dg-stroke);stroke-width:1.5}.dg .dg-accent{fill:var(--dg-accent);stroke:var(--dg-accent-stroke)}.dg .dg-muted{fill:var(--dg-muted)}.dg .dg-hl{fill:color-mix(in srgb,var(--dg-accent) 70%,var(--dg-box));stroke:var(--dg-accent-stroke)}.dg .dg-ok{fill:color-mix(in srgb,var(--ok) 12%,var(--dg-box));stroke:var(--ok)}.dg .dg-bad{fill:color-mix(in srgb,var(--bad) 12%,var(--dg-box));stroke:var(--bad)}.dg .dg-text{fill:var(--dg-text)}.dg .dg-strong{font-weight:700}.dg .dg-label{fill:var(--dg-label)}.dg .dg-good{fill:var(--ok);font-weight:700}.dg .dg-badtext{fill:var(--bad);font-weight:700}.dg .dg-arrow{stroke:var(--dg-arrow);stroke-width:1.8;fill:none}.dg .dg-loop{stroke-dasharray:5 4}.dg .dg-ah{fill:var(--dg-arrow)}.form{max-width:460px}.form-wide{max-width:640px}.field{margin-bottom:14px}.field label{display:block;font-weight:650;margin-bottom:4px;font-size:.94rem}.field input[type=text],.field input[type=email],.field input[type=password],.field textarea,.field select,input.input,textarea.input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit}.field input:focus,.field textarea:focus,input.input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus)}.field .helptext,.field .help{display:block;font-size:.84rem;color:var(--muted);margin-top:4px}.errorlist{list-style:none;padding:0;margin:4px 0 0;color:var(--bad);font-size:.88rem}.auth-card{max-width:460px;margin:40px auto}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.table{width:100%;border-collapse:collapse;font-size:.93rem}table.table th,table.table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}table.table th{background:var(--surface-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}table.table tr:last-child td{border-bottom:0}table.table td.num,table.table th.num{text-align:right;font-variant-numeric:tabular-nums}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 28px}.kpi{padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.kpi .v{font-size:1.6rem;font-weight:800;color:var(--primary)}.kpi .l{font-weight:650}.kpi .s{font-size:.8rem;color:var(--muted)}.ad{margin:36px 0;padding-top:6px;border-top:1px solid var(--border);clear:both}.ad-label{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.ad-placeholder{display:grid;place-items:center;min-height:120px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--muted);font-size:.82rem;background:repeating-linear-gradient(45deg,transparent,transparent 8px,var(--bg-soft) 8px,var(--bg-soft) 16px)}.ad--sidebar{margin:20px 0 0}.ad--sidebar .ad-placeholder{min-height:250px}body.app-layout{overflow:hidden}body.app-layout .site-footer{display:none}.ide{display:flex;flex-direction:column;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h))}.ide-toolbar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}.ide-toolbar .sep{width:1px;height:24px;background:var(--border);margin:0 4px}.ide-toolbar .spacer{flex:1}.ide-title{font-weight:700;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-context{padding:10px 14px;background:var(--primary-soft);border-bottom:1px solid var(--border);font-size:.93rem;display:flex;gap:10px;align-items:center}.ide-banner{padding:8px 14px;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--border);font-size:.9rem;display:flex;gap:10px;align-items:center}.ide-main{flex:1;display:grid;grid-template-columns:minmax(0,var(--ide-a, 1.15fr)) 9px minmax(0,var(--ide-b, 1fr));min-height:0}.ide-editor-pane{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}.ide-tabs{display:flex;align-items:stretch;gap:2px;padding:6px 8px 0;background:var(--surface-2);border-bottom:1px solid var(--border);overflow-x:auto}.ide-tab{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;font:600 .85rem var(--mono);color:var(--muted);background:transparent;cursor:pointer;white-space:nowrap}.ide-tab.is-active{background:var(--code-bg);border-color:var(--border);color:var(--text);margin-bottom:-1px}.ide-tab .x{border:0;background:none;color:var(--muted);cursor:pointer;padding:0 2px;font-size:1rem;line-height:1}.ide-tab .x:hover{color:var(--bad)}.ide-editor{flex:1;min-height:0;position:relative}.ide-editor .CodeMirror{position:absolute;inset:0;height:100%}.ide-output-pane{display:flex;flex-direction:column;min-height:0;background:var(--out-bg)}.pane-head{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8fa5c8;background:color-mix(in srgb,var(--out-bg) 85%,#1a2a44);border-bottom:1px solid #1c2840}.pane-head .btn{color:#b7c6de;border-color:transparent;background:transparent;min-height:28px;font-size:.78rem}.pane-head .btn:hover{color:#fff;background:#ffffff0f}.ide-output{flex:1;max-height:none;border:0}.ide-output:empty{display:block}.ide-output:empty:before{content:"Output appears here. Press Run (Ctrl + Enter).";color:#6c7f9d;font-family:var(--font);font-size:.9rem}.stdin-box{border-top:1px solid #1c2840;padding:8px 10px;background:color-mix(in srgb,var(--out-bg) 92%,#1a2a44)}.stdin-box label{color:#8fa5c8;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.stdin-box textarea{background:#050a14;color:#e5edf9;border-color:#1c2840}.ide-status{display:flex;gap:16px;align-items:center;padding:4px 12px;font-size:.78rem;color:var(--muted);border-top:1px solid var(--border);background:var(--surface-2);white-space:nowrap;overflow:hidden}.ide-status .state:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:6px;vertical-align:middle}.ide-status .state[data-state=ready]:before{background:var(--ok)}.ide-status .state[data-state=loading]:before,.ide-status .state[data-state=running]:before{background:var(--warn)}.ide-status .state[data-state=error]:before,.ide-status .state[data-state=unsupported]:before{background:var(--bad)}.ide-mobile-bar{display:none}.drawer{position:fixed;top:var(--header-h);right:0;bottom:0;width:min(420px,100%);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow);z-index:80;transform:translate(105%);transition:transform .2s ease;display:flex;flex-direction:column}.drawer.is-open{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.drawer-head h2{margin:0;font-size:1.1rem}.drawer-body{padding:14px 16px;overflow:auto;flex:1;font-size:.93rem}.pkg{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border)}.pkg .grow{flex:1}.pkg code{font-weight:700}.dropdown{position:relative}.dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:90;display:none}.dropdown.is-open .dropdown-panel{display:block}.dropdown-panel button,.dropdown-panel a{display:flex;gap:8px;width:100%;padding:8px 10px;background:none;border:0;border-radius:8px;color:var(--text);font:inherit;font-size:.92rem;text-align:left;cursor:pointer;text-decoration:none}.dropdown-panel button:hover,.dropdown-panel a:hover{background:var(--primary-soft)}.dropdown-panel hr{margin:6px 0}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:.92rem;opacity:0;transition:opacity .2s,transform .2s;z-index:400;pointer-events:none}.toast.is-show{opacity:1;transform:translate(-50%) translateY(0)}.checks{list-style:none;padding:0}.checks li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}.checks .st{font-weight:800}.checks .st.ok{color:var(--ok)}.checks .st.bad{color:var(--bad)}.checks .st.wait{color:var(--muted)}@media(max-width:1100px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-aside{display:none}.lesson-main{max-width:none}.footer-grid{grid-template-columns:1fr 1fr}.loop-strip{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.main-nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;background:var(--surface);border-bottom:1px solid var(--border);padding:8px 12px 14px;margin:0;box-shadow:var(--shadow)}.main-nav.is-open{display:flex}.main-nav a{padding:.7em .8em}.nav-toggle{display:inline-flex}.search input{width:150px}.hero-grid{grid-template-columns:1fr}.grid-3,.grid-4,.kpis{grid-template-columns:1fr 1fr}.ide-main{grid-template-columns:1fr;grid-template-rows:minmax(0,var(--ide-a, 1.3fr)) 9px minmax(0,var(--ide-b, 1fr))}.ide-editor-pane{border-right:0;border-bottom:0}.ide-toolbar .hide-sm,.ide-status{display:none}.ide-mobile-bar{display:flex;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}.ide-mobile-bar .btn{flex:1;min-height:46px}}@media(max-width:640px){body{font-size:16px}.brand-text{display:none}.search input{width:120px}.search input:focus{width:180px}.grid-2,.grid-3,.grid-4,.kpis,.mistake-grid,.compare-out{grid-template-columns:1fr}.loop-strip,.footer-grid{grid-template-columns:1fr 1fr}.what-happened li{grid-template-columns:1fr;gap:4px}.line-tag{width:fit-content;padding:0 8px}.snippet-tools .label{display:none}.snippet-actions .btn-run{flex:1;min-height:46px}.snippet-body pre.snippet-code{padding-left:14px}.CodeMirror{font-size:14px}.hero{padding-top:28px}.ad{margin:40px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:.01ms!important}}.section>h2:first-child,.level-block>h2:first-child{margin-top:0}.page-head+.section{padding-top:24px}:root{--side-w: 250px;--side-bg: #eef1f6;--side-hover: #dfe5ee;--side-active: #d4dceb;--side-text: #1b2433;--side-head: #5b6b84}:root[data-theme=dark]{--side-bg: #0a0e16;--side-hover: #131a27;--side-active: #1a2436;--side-text: #d6dfed;--side-head: #8394b1}.tut-layout{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);align-items:start}.tut-side{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;background:var(--side-bg);border-right:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.side-nav{padding:4px 0 28px;font-size:15px;line-height:1.5}.side-close-row{display:none}.side-head{display:block;padding:16px 16px 4px;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--side-head);text-decoration:none}a.side-head-link:hover,.side-head-link.is-active{color:var(--primary)}.side-row{display:flex;align-items:stretch}.side-link{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:3px 8px 3px 14px;color:var(--side-text);text-decoration:none;border-left:4px solid transparent}.side-row:hover,a.side-link:hover{background:var(--side-hover);color:var(--side-text)}.side-link.is-active{background:var(--side-active);border-left-color:var(--primary);font-weight:700}.side-row:has(.side-link.is-active){background:var(--side-active)}.side-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-nav .tick{margin-left:auto;font-size:.82rem;padding-left:6px}.side-caret{width:30px;flex:none;border:0;background:transparent;color:var(--side-head);cursor:pointer;display:grid;place-items:center;padding:0;border-radius:0}.side-caret:hover{color:var(--primary)}.side-caret svg{width:11px;height:11px;transition:transform .15s ease}.side-item.is-open .side-caret svg{transform:rotate(180deg)}.side-sub{display:none;list-style:none;margin:0;padding:2px 0 6px}.side-item.is-open>.side-sub{display:block}.side-sublink{display:flex;align-items:center;gap:8px;padding:2px 12px 2px 30px;font-size:14px;color:var(--side-text);text-decoration:none;border-left:4px solid transparent}.side-sublink:hover{background:var(--side-hover);color:var(--side-text)}.side-sublink.is-active{background:var(--side-active);border-left-color:var(--primary);font-weight:650}.side-sublink.muted{color:var(--side-head)}.side-sublink .count{margin-left:auto;font-size:.74rem;color:var(--side-head);background:var(--side-hover);border-radius:99px;padding:0 7px}.dot{width:7px;height:7px;border-radius:50%;flex:none}.dot-easy{background:var(--ok)}.dot-medium{background:var(--warn)}.dot-hard{background:var(--bad)}.side-spacer{height:24px}.tut-main{min-width:0}.tut-container{padding:0 36px;max-width:1260px}.tut-narrow{max-width:920px}.tut-mobilebar{display:none}.tut-backdrop{position:fixed;inset:0;background:#00000073;z-index:69}.has-sidebar .site-footer{margin-top:0}.has-sidebar .lesson-layout{grid-template-columns:minmax(0,1fr) 240px;gap:40px}.has-sidebar .lesson-main{max-width:820px}.pn-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 10px}.pn-bar .btn{min-height:38px;padding:.45em 1.15em}.lesson-main>.pn-bar,.tut-container>.pn-bar{margin:32px 0 8px}.home-intro{background:var(--primary-soft);border-radius:var(--radius);padding:20px 24px 24px;margin:8px 0 28px}.home-intro h2{margin-top:0}.home-block{margin:28px 0}.home-block>h2{margin-top:0}.home-cards h3{margin:0 0 6px}.outline-level{margin:26px 0 10px;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.outline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.outline-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;background:var(--surface)}.outline-title{font-weight:750;color:var(--text);text-decoration:none}.outline-title:hover{color:var(--primary)}.outline-list{margin:6px 0 0;padding-left:1.4em;font-size:.94rem}.outline-list li{margin:2px 0}.outline-list a{text-decoration:none}.outline-list a:hover{text-decoration:underline}.outline-list li.is-done a{color:var(--ok)}@media(max-width:1399px){.has-sidebar .lesson-layout{grid-template-columns:minmax(0,1fr)}.has-sidebar .lesson-aside{display:none}.has-sidebar .lesson-main{max-width:860px}}@media(max-width:1000px){.tut-layout{display:block}.tut-side{position:fixed;top:0;left:0;bottom:0;height:100vh;height:100dvh;width:min(310px,86vw);z-index:70;transform:translate(-102%);transition:transform .2s ease;box-shadow:var(--shadow);border-right:1px solid var(--border)}.tut-side.is-open{transform:none}.side-close-row{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:1;padding:12px 10px 8px 18px;background:var(--side-bg);border-bottom:1px solid var(--border)}.side-title{font-weight:800}.side-close{border:0;background:none;color:var(--text);font-size:1.1rem;width:36px;height:36px;cursor:pointer;border-radius:8px}.side-close:hover{background:var(--side-hover)}.side-link,.side-sublink{padding-top:6px;padding-bottom:6px}.tut-mobilebar{display:flex;align-items:center;gap:10px;position:sticky;top:var(--header-h);z-index:40;padding:8px 16px;background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.tut-mobilebar-title{font-weight:650;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.tut-container{padding:0 16px}body.side-open{overflow:hidden}}.has-sidebar .site-header .container{max-width:none;padding:0 16px}body.app-layout{--header-h: 46px}body.app-layout .site-header .container{max-width:none;padding:0 14px}body.app-layout .brand{font-size:1.02rem}body.app-layout .brand-mark{width:32px;height:auto}body.app-layout .main-nav a{padding:.3em .65em;font-size:.92rem}body.app-layout .header-actions .btn,body.app-layout .header-actions .icon-btn{min-height:32px}body.app-layout .site-header .search input{min-height:32px;height:32px}.ide-toolbar{padding:4px 10px;gap:4px}.ide-toolbar .btn{min-height:30px;padding:.2em .65em;font-size:.85rem;white-space:nowrap}.ide-toolbar .btn-run{min-width:74px}.ide-toolbar .sep{height:20px}.ide-toolbar .dropdown{position:relative}.ide-title{font-size:.92rem}.ide-tabs{padding:4px 8px 0}.ide-tab{padding:4px 10px}.pane-head .run-info{margin-left:12px;font-size:.78rem;color:#8ea2c3;font-weight:500;text-transform:none;letter-spacing:0}.ide-gutter{position:relative;background:var(--surface-2);border-left:1px solid var(--border);border-right:1px solid var(--border);cursor:col-resize;touch-action:none;user-select:none;z-index:2}.ide-gutter:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:38px;border-radius:3px;background:var(--border-strong);transform:translate(-50%,-50%);transition:background .12s}.ide-gutter:hover:after,.ide-gutter:focus-visible:after,body.ide-dragging .ide-gutter:after{background:var(--primary)}.ide-gutter:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ide-gutter:before{content:"";position:absolute;inset:0 -5px}@media(max-width:900px){.ide-gutter{cursor:row-resize;border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.ide-gutter:after{width:38px;height:3px}.ide-gutter:before{inset:-6px 0}}body.ide-dragging{user-select:none;-webkit-user-select:none}body.ide-dragging.ide-dragging-h{cursor:col-resize}body.ide-dragging.ide-dragging-v{cursor:row-resize}body.ide-dragging .ide-editor,body.ide-dragging .ide-output{pointer-events:none}.path-sub{color:var(--muted);margin:-.2em 0 26px;max-width:640px}.stage{--accent: var(--primary);--accent-soft: var(--primary-soft)}.stage-1{--accent: #158a52;--accent-soft: color-mix(in srgb, #158a52 13%, var(--surface))}.stage-2{--accent: var(--primary);--accent-soft: var(--primary-soft)}.stage-3{--accent: #7a45d6;--accent-soft: color-mix(in srgb, #7a45d6 13%, var(--surface))}.stage-4{--accent: #d4690a;--accent-soft: color-mix(in srgb, #d4690a 13%, var(--surface))}.stage+.stage{margin-top:34px}.stage-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.stage-num{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.stage-head h3{margin:0;font-size:1.15rem;letter-spacing:-.01em}.stage-head p{margin:1px 0 0;color:var(--muted);font-size:.92rem}.path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-left:48px;position:relative}.path-grid:before{content:"";position:absolute;left:-32px;top:-8px;bottom:8px;width:2px;background:linear-gradient(var(--accent-soft),transparent);border-radius:2px}.path-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 18px 14px;min-height:176px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);color:var(--text);text-decoration:none;overflow:hidden;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.path-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent);opacity:.85}.path-card:hover,.path-card:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 10px 26px #1020401f;color:var(--text)}.path-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.path-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.path-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}.path-icon svg{width:22px;height:22px}.path-no{font:800 .85rem var(--mono);color:var(--border-strong);letter-spacing:.04em}.path-title{font-size:1.08rem;letter-spacing:-.01em}.path-text{color:var(--text-2);font-size:.92rem;line-height:1.5;flex:1}.path-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:10px;border-top:1px solid var(--border);font-size:.82rem;color:var(--muted);font-weight:600}.path-arrow{color:var(--accent);font-size:1.05rem;transition:transform .16s ease}.path-card:hover .path-arrow{transform:translate(4px)}@media(max-width:1000px){.path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.path-grid{grid-template-columns:1fr;margin-left:0}.path-grid:before{display:none}.path-card{min-height:0}}@media(prefers-reduced-motion:reduce){.path-card,.path-arrow{transition:none}.path-card:hover{transform:none}}.hero-grid>*{min-width:0}@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}}#what-happened,#faq,#next{content-visibility:auto;contain-intrinsic-size:auto 520px}.entry-page{padding-top:8px;padding-bottom:40px;max-width:920px}.entry-main{min-width:0}.byline{margin:6px 0 0}.answer-box{margin:18px 0 22px;padding:16px 18px;border-left:4px solid var(--primary);background:var(--primary-soft);border-radius:10px}.answer-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin-bottom:4px}.answer-box .prose{font-size:1.05rem}.answer-box .prose p{margin:0}.facts-table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:.96rem}.facts-table th,.facts-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}.facts-table th{width:28%;color:var(--text-2);font-weight:600}.table-wrap{overflow-x:auto;margin:12px 0}.data-table{width:100%;border-collapse:collapse;font-size:.94rem}.data-table th,.data-table td{text-align:left;padding:9px 12px;border:1px solid var(--border);vertical-align:top}.data-table thead th{background:var(--surface-2)}.data-table tbody th{font-weight:600;background:var(--surface)}.data-table caption{text-align:left;color:var(--text-2);padding:0 0 6px;font-size:.9rem}.entry-example{margin:0 0 24px}.entry-example h3{margin:0 0 6px;font-size:1.08rem}.entry-grid .card strong{display:block;margin-bottom:4px}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 22px}.glossary{margin:0}.gloss-item{padding:12px 0;border-bottom:1px solid var(--border);scroll-margin-top:80px}.gloss-item dt{font-weight:700;font-size:1.05rem}.gloss-item dd{margin:4px 0 0;color:var(--text-2)}.quick-ref{padding-left:1.2rem}.quick-ref li{margin:.3rem 0}.topic-overview h3{font-size:1.05rem;margin-top:1rem}.ad--live{display:none}html[data-ads=on] .ad--live{display:block}.consent{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;max-width:640px;margin:0 auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 8px 30px #0000002e;font-size:.9rem}.consent[hidden]{display:none}.consent p{margin:0;flex:1 1 240px}.consent-actions{display:flex;gap:8px}.linklike{background:none;border:0;padding:0;font:inherit;color:var(--link, inherit);text-decoration:underline;cursor:pointer}.sponsor,.sponsor-pop-box{--sp-bg: var(--surface)}.sponsor-label{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.sponsor-card{display:flex;gap:14px;align-items:center;color:inherit;text-decoration:none}.sponsor-card img{display:block;max-width:100%;height:auto;border-radius:8px}.sponsor-body{display:flex;flex-direction:column;gap:4px;min-width:0}.sponsor-body strong{font-size:1rem;color:var(--text)}.sponsor-body>span:not(.sponsor-btn){font-size:.9rem;color:var(--text-2)}.sponsor-btn{align-self:flex-start;margin-top:4px;padding:6px 14px;border-radius:8px;background:var(--primary-bg, var(--link));color:#fff;font-weight:600;font-size:.88rem}.sponsor-card:hover .sponsor-btn,.sponsor-card:focus-visible .sponsor-btn{filter:brightness(1.1)}.sponsor-card:focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:8px}.sponsor--top_strip{background:var(--bg-soft);border-bottom:1px solid var(--border);padding:6px 16px}.sponsor--top_strip .sponsor-label{display:inline;margin:0 10px 0 0}.sponsor--top_strip .sponsor-card{display:inline-flex;gap:10px;vertical-align:middle}.sponsor--top_strip img{height:28px;width:auto}.sponsor--top_strip .sponsor-body{flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.sponsor--top_strip .sponsor-btn{margin:0;padding:3px 10px}.sponsor--top_strip{text-align:center}.sponsor--lesson_top,.sponsor--home_banner,.sponsor--footer_strip{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;background:var(--sp-bg);margin:16px 0}.sponsor--lesson_top img,.sponsor--home_banner img,.sponsor--footer_strip img{width:160px;height:auto;flex:none}.sponsor--home_banner{max-width:960px;margin:24px auto}.sponsor--home_banner img{width:260px}.sponsor--footer_strip{max-width:1100px;margin:0 auto 8px}.sponsor-pop[hidden]{display:none}.sponsor-pop--popup{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:#080f1e99}.sponsor-pop--popup .sponsor-pop-box{position:relative;width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);border-radius:14px;padding:18px;box-shadow:0 20px 60px #00000059}.sponsor-pop--popup .sponsor-card{flex-direction:column;align-items:stretch}.sponsor-pop--popup img{width:100%}.sponsor-pop--corner{position:fixed;right:14px;bottom:14px;z-index:80;width:min(340px,calc(100vw - 28px))}.sponsor-pop--corner .sponsor-pop-box{position:relative;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:14px;padding:14px;box-shadow:0 10px 40px #00000047}.sponsor-pop--corner .sponsor-card{flex-direction:column;align-items:stretch}.sponsor-pop--corner img{width:100%}.sponsor-close{position:absolute;top:6px;right:8px;width:34px;height:34px;border:0;border-radius:50%;background:var(--bg-soft);color:var(--text);font-size:1.4rem;line-height:1;cursor:pointer}.sponsor-close:hover{background:var(--border)}.sponsor-close:focus-visible{outline:3px solid var(--link)}html.sponsor-open{overflow:hidden}@media(max-width:720px){.sponsor--desktop-only{display:none!important}.sponsor--lesson_top .sponsor-card,.sponsor--home_banner .sponsor-card,.sponsor--footer_strip .sponsor-card{flex-direction:column;align-items:flex-start}.sponsor--lesson_top img,.sponsor--home_banner img,.sponsor--footer_strip img{width:100%}.sponsor-pop--corner{left:14px;right:14px;width:auto;bottom:72px}}@media(prefers-reduced-motion:no-preference){.sponsor-pop:not([hidden]) .sponsor-pop-box{animation:sponsor-in .25s ease-out}@keyframes sponsor-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}@media(min-width:721px){.sponsor--mobile-only{display:none!important}}
