@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f6f4f1;--surface: #ffffff;--surface-2: #f1eee9;--surface-3: #e9e5df;--text: #1b1e23;--text-2: #3b4048;--muted: #6d727a;--border: #e5e0d8;--border-strong: #d6d0c6;--accent: #e2703a;--accent-hover: #cf6230;--accent-ink: #b4521f;--accent-soft: rgba(226, 112, 58, .12);--on-accent: #ffffff;--ok: #18915f;--ok-soft: rgba(24, 145, 95, .11);--warn: #b7791f;--warn-soft: rgba(214, 152, 40, .14);--err: #c9443a;--err-soft: rgba(201, 68, 58, .1);--code-bg: #faf9f6;--code-border: #e7e2da;--console-bg: #1a1d22;--console-text: #e6e8eb;--ring-bg: #ebe6df;--shadow-sm: 0 1px 2px rgba(30, 25, 20, .05), 0 1px 1px rgba(30, 25, 20, .03);--shadow: 0 1px 3px rgba(30, 25, 20, .06), 0 6px 20px rgba(30, 25, 20, .06);--shadow-lg: 0 10px 40px rgba(30, 25, 20, .12);--lv1: #18915f;--lv2: #2f8fb0;--lv3: #c98a12;--lv4: #c9443a;--tok-keyword: #a3388f;--tok-string: #2f7d32;--tok-number: #b4521f;--tok-comment: #8a8f97;--tok-def: #1f6fb2;--tok-prop: #6b4fbb;--tok-bool: #b4521f;--tok-op: #5b6068;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--font: "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar-h: 64px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1216;--surface: #171b21;--surface-2: #1d222a;--surface-3: #262c35;--text: #e9ebee;--text-2: #c5cad1;--muted: #949ba5;--border: #262c35;--border-strong: #343b46;--accent: #f0864d;--accent-hover: #f59a67;--accent-ink: #f59a67;--accent-soft: rgba(240, 134, 77, .15);--on-accent: #1a0f08;--ok: #3ccb8b;--ok-soft: rgba(60, 203, 139, .12);--warn: #e5b04a;--warn-soft: rgba(229, 176, 74, .12);--err: #f07a70;--err-soft: rgba(240, 122, 112, .12);--code-bg: #12161b;--code-border: #262c35;--console-bg: #0b0d10;--ring-bg: #262c35;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 1px 3px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--lv1: #3ccb8b;--lv2: #56b6d9;--lv3: #e5b04a;--lv4: #f07a70;--tok-keyword: #e08bd2;--tok-string: #8fd18f;--tok-number: #f5a875;--tok-comment: #7c838d;--tok-def: #7cb7f0;--tok-prop: #b9a2f2;--tok-bool: #f5a875;--tok-op: #aab1ba;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1216;--surface: #171b21;--surface-2: #1d222a;--surface-3: #262c35;--text: #e9ebee;--text-2: #c5cad1;--muted: #949ba5;--border: #262c35;--border-strong: #343b46;--accent: #f0864d;--accent-hover: #f59a67;--accent-ink: #f59a67;--accent-soft: rgba(240, 134, 77, .15);--on-accent: #1a0f08;--ok: #3ccb8b;--ok-soft: rgba(60, 203, 139, .12);--warn: #e5b04a;--warn-soft: rgba(229, 176, 74, .12);--err: #f07a70;--err-soft: rgba(240, 122, 112, .12);--code-bg: #12161b;--code-border: #262c35;--console-bg: #0b0d10;--ring-bg: #262c35;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 1px 3px rgba(0, 0, 0, .35), 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--lv1: #3ccb8b;--lv2: #56b6d9;--lv3: #e5b04a;--lv4: #f07a70;--tok-keyword: #e08bd2;--tok-string: #8fd18f;--tok-number: #f5a875;--tok-comment: #7c838d;--tok-def: #7cb7f0;--tok-prop: #b9a2f2;--tok-bool: #f5a875;--tok-op: #aab1ba;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overflow-x:hidden}h1,h2,h3{line-height:1.2;letter-spacing:-.02em;margin:0}h1{font-size:1.65rem;font-weight:750}h2{font-size:1.25rem;font-weight:700}p{margin:0 0 .75em}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}code,kbd,pre{font-family:var(--mono)}kbd{font-size:.8em;padding:.1em .45em;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;background:var(--surface)}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-soft)}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.mono{font-family:var(--mono)}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.main{flex:1;width:100%}.app:not(.is-focus) .main{padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;padding:calc(10px + var(--safe-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:750;letter-spacing:-.02em}.brand:hover{text-decoration:none}.brand-mark{display:flex}.brand-text{font-size:1.05rem}.brand-text span{color:var(--muted);font-weight:550}.topnav{display:none;margin-left:auto;gap:4px}.nav-link{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:600;font-size:.93rem;padding:8px 12px;border-radius:10px}.nav-link:hover{text-decoration:none;color:var(--text);background:var(--surface-2)}.nav-link.is-active{color:var(--accent-ink);background:var(--accent-soft)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--border)}.tabbar .nav-link{flex-direction:column;gap:2px;font-size:.7rem;padding:6px 14px;min-width:76px;background:none!important}.tabbar .nav-link.is-active{color:var(--accent)}@media(min-width:900px){.topnav{display:flex}.tabbar{display:none}.app:not(.is-focus) .main{padding-bottom:48px}}.page{max-width:780px;margin:0 auto;padding:20px max(16px,env(safe-area-inset-left)) 24px max(16px,env(safe-area-inset-right))}.page-head{margin:8px 0 20px}.page-head p{color:var(--muted);margin-top:6px}.center-msg{text-align:center;padding-top:80px;display:flex;flex-direction:column;align-items:center;gap:12px}.section-title{margin:32px 0 14px;font-size:1.1rem}.eyebrow{font-size:.78rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid transparent;font-weight:650;font-size:.95rem;cursor:pointer;text-decoration:none!important;transition:background .15s,border-color .15s,transform .08s,opacity .15s;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--err);color:#fff}.btn-small{min-height:36px;padding:0 12px;font-size:.875rem;border-radius:10px}.btn-large{min-height:50px;padding:0 22px;font-size:1rem;border-radius:14px}.btn-icon{width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;animation:spin .7s linear infinite}.spinner.big{width:32px;height:32px;border-width:3px;color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:650;background:var(--surface-3);color:var(--text-2);vertical-align:middle}.pill-accent{background:var(--accent-soft);color:var(--accent-ink)}.pill-ok{background:var(--ok-soft);color:var(--ok)}.hero{display:flex;align-items:center;gap:20px;margin:12px 0 20px}.hero-text{flex:1}.hero h1{font-size:2rem;margin-bottom:8px}.hero p{color:var(--text-2);font-size:1.02rem;max-width:52ch;margin:0}.hero-ring{display:flex;flex-direction:column;align-items:center;gap:2px}.hero-ring-label{font-size:.75rem;color:var(--muted)}.ring-text{fill:var(--text);font-weight:750;font-family:var(--font)}.continue-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius-lg);color:var(--text);background:linear-gradient(135deg,var(--accent-soft),transparent 70%),var(--surface);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.continue-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.continue-icon{font-size:2rem;width:56px;height:56px;display:grid;place-items:center;background:var(--surface-2);border-radius:16px;flex-shrink:0}.continue-body{flex:1;min-width:0}.continue-eyebrow{font-size:.78rem;font-weight:650;color:var(--accent-ink)}.continue-title{font-size:1.1rem;font-weight:700;margin:2px 0}.continue-meta{font-size:.85rem;color:var(--muted)}.continue-go{width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex-shrink:0}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:2px;color:var(--text)}.stat .icon{color:var(--accent);margin-bottom:4px}.stat strong{font-size:1.2rem}.stat span{color:var(--muted)}.stat small{color:var(--muted);font-size:.78rem}.stat-link:hover{text-decoration:none;border-color:var(--accent)}.stat-link strong{font-size:.98rem}.path{list-style:none;margin:0;padding:0}.path-item{display:flex;gap:12px}.path-rail{display:flex;flex-direction:column;align-items:center;width:32px;flex-shrink:0;padding-top:18px}.path-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:750;background:var(--surface);color:var(--muted);border:2px solid var(--border-strong);z-index:1}.path-line{flex:1;width:2px;background:var(--border);margin:4px 0 -18px}.path-item.is-done .path-dot{background:var(--ok);border-color:var(--ok);color:#fff}.path-item.is-done .path-line{background:color-mix(in srgb,var(--ok) 50%,var(--border))}.path-item.is-next .path-dot{border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}.chapter-card{flex:1;min-width:0;display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s}.chapter-card:hover{text-decoration:none;border-color:var(--border-strong);transform:translate(2px)}.path-item.is-next .chapter-card{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.chapter-emoji{font-size:1.6rem;width:46px;height:46px;display:grid;place-items:center;background:var(--surface-2);border-radius:13px;flex-shrink:0}.chapter-body{flex:1;min-width:0}.chapter-title{font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chapter-summary{font-size:.88rem;color:var(--muted);margin-top:1px}.chapter-meta{display:flex;gap:12px;font-size:.78rem;color:var(--muted);margin-top:6px}.chapter-chev{color:var(--muted);flex-shrink:0}.bar{height:5px;border-radius:9px;background:var(--ring-bg);margin-top:8px;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent);border-radius:9px;transition:width .5s ease}.home-foot{text-align:center;color:var(--muted);font-size:.85rem;margin-top:24px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;font-size:.9rem;margin-bottom:12px}.back-link:hover{color:var(--text);text-decoration:none}.chapter-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.chapter-head-emoji{font-size:2.2rem;width:64px;height:64px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-shrink:0}.chapter-head-text{flex:1;min-width:0}.chapter-head-text p{color:var(--muted);margin:4px 0 0;font-size:.95rem}.tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:14px;margin-bottom:16px}.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:11px;color:var(--muted);font-weight:650;font-size:.93rem}.tab:hover{text-decoration:none;color:var(--text)}.tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.tab-count{font-size:.75rem;font-weight:600;color:var(--muted);background:var(--surface-3);padding:1px 7px;border-radius:99px}.lesson-list,.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.lesson-item,.task-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);transition:border-color .15s}.lesson-item:hover,.task-item:hover{text-decoration:none;border-color:var(--border-strong)}.lesson-item.is-next{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px var(--accent-soft)}.lesson-num{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--surface-2);font-weight:750;font-size:.85rem;color:var(--muted)}.lesson-item.is-done .lesson-num{background:var(--ok);color:#fff}.lesson-item.is-next .lesson-num{background:var(--accent);color:var(--on-accent)}.lesson-item-cta{border-style:dashed}.lesson-item-cta .lesson-num{background:var(--accent-soft);color:var(--accent-ink)}.lesson-body,.task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.lesson-title,.task-title{font-weight:650;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lesson-meta,.task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:.8rem;color:var(--muted)}.lesson-meta>span{display:inline-flex;align-items:center;gap:4px}.lesson-started{color:var(--accent-ink);font-weight:600}.device{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.8rem}.task-check{width:24px;height:24px;border-radius:8px;border:2px solid var(--border-strong);display:grid;place-items:center;flex-shrink:0}.task-check.on{background:var(--ok);border-color:var(--ok);color:#fff}.task-item.is-done .task-title{color:var(--text-2)}.level{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:650}.level-bars{display:inline-flex;gap:2px;align-items:flex-end}.level-bars i{width:4px;border-radius:2px;background:var(--surface-3)}.level-bars i:nth-child(1){height:6px}.level-bars i:nth-child(2){height:9px}.level-bars i:nth-child(3){height:12px}.level-bars i:nth-child(4){height:15px}.level.lv1{color:var(--lv1)}.level.lv1 .on{background:var(--lv1)}.level.lv2{color:var(--lv2)}.level.lv2 .on{background:var(--lv2)}.level.lv3{color:var(--lv3)}.level.lv3 .on{background:var(--lv3)}.level.lv4{color:var(--lv4)}.level.lv4 .on{background:var(--lv4)}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:99px;border:1px solid var(--border-strong);background:var(--surface);font-weight:600;font-size:.86rem;cursor:pointer;color:var(--text-2)}.chip.is-active{background:var(--text);color:var(--bg);border-color:var(--text)}.chip-count{font-size:.75rem;opacity:.7}.chapter-nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.chapter-nav-link{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:650;font-size:.92rem;max-width:48%}.chapter-nav-link small{display:block;font-size:.75rem;color:var(--muted);font-weight:600}.chapter-nav-link.is-next{margin-left:auto;text-align:right}.chapter-nav-link:hover{text-decoration:none;border-color:var(--border-strong)}.player{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.player-head{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:calc(8px + var(--safe-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.player-progress{flex:1;height:10px;border-radius:99px;background:var(--ring-bg);overflow:hidden}.player-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#ffd29a));border-radius:99px;transition:width .45s cubic-bezier(.2,.8,.2,1)}.player-chapter{font-size:1.3rem;width:44px;text-align:center}.player-steps{flex:1;width:100%;max-width:760px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) 32px max(16px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:14px}.player-intro{padding:8px 2px 4px}.player-intro h1{margin-top:4px}.step-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm);scroll-margin-top:calc(70px + var(--safe-top));animation:stepIn .35s cubic-bezier(.2,.8,.2,1)}.step-card.step-text{background:transparent;border-color:transparent;box-shadow:none;padding:4px 2px}.step-card.step-tip{padding:0;background:transparent;border:none;box-shadow:none}@keyframes stepIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.player-bar{position:sticky;bottom:0;z-index:25;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--border);padding:10px max(16px,env(safe-area-inset-left)) calc(10px + var(--safe-bottom)) max(16px,env(safe-area-inset-right))}.player-bar-inner{max-width:760px;margin:0 auto;display:flex;align-items:center;gap:10px}.player-hint{font-size:.85rem;color:var(--muted)}.codebox-spacer{flex:1}.finish{max-width:560px;margin:0 auto;padding:48px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;animation:stepIn .4s ease}.finish-badge{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;margin-bottom:12px;background:var(--accent-soft);color:var(--accent);animation:pop .6s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.finish h1{font-size:2rem}.finish p{color:var(--text-2)}.finish-actions{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:16px}.finish-actions .btn{white-space:normal;text-align:center}.finish-note{font-size:.85rem;color:var(--muted)!important;margin-top:16px}.md{color:var(--text);font-size:1.04rem}.md p:last-child{margin-bottom:0}.md ul,.md ol{padding-left:1.3em;margin:.4em 0 .75em}.md li{margin:.2em 0}.md strong{font-weight:700}.md code{font-size:.88em;padding:.12em .4em;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--accent-ink);white-space:break-spaces}.md pre.md-code{margin:.6em 0}.md pre code{background:none;border:none;padding:0;color:inherit}.step-text .md,.step-text{font-size:1.08rem;line-height:1.6}.step-question{font-weight:550;margin-bottom:12px}.step-note{margin-top:10px;font-size:.95rem;color:var(--text-2)}pre.md-code,.codeview{background:var(--code-bg);border:1px solid var(--code-border);border-radius:12px;padding:12px 14px;overflow-x:auto;font-size:.9rem;line-height:1.6;margin:0 0 12px;-webkit-overflow-scrolling:touch}.codeview code{white-space:pre}.tok-keyword{color:var(--tok-keyword);font-weight:550}.tok-string,.tok-string2{color:var(--tok-string)}.tok-number{color:var(--tok-number)}.tok-bool,.tok-atom{color:var(--tok-bool);font-weight:550}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-definition,.tok-className,.tok-typeName{color:var(--tok-def)}.tok-propertyName{color:var(--tok-prop)}.tok-operator{color:var(--tok-op)}.tok-invalid{color:var(--err)}.tip{border-radius:var(--radius);padding:14px 16px;border:1px solid}.tip-head{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.tip-merke{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.tip-merke .tip-head{color:var(--accent-ink)}.tip-profi{background:color-mix(in srgb,var(--tok-prop) 10%,transparent);border-color:color-mix(in srgb,var(--tok-prop) 28%,transparent)}.tip-profi .tip-head{color:var(--tok-prop)}.tip-achtung{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.tip-achtung .tip-head{color:var(--warn)}.tip-info{background:color-mix(in srgb,var(--lv2) 10%,transparent);border-color:color-mix(in srgb,var(--lv2) 28%,transparent)}.tip-info .tip-head{color:var(--lv2)}.editor{border:1px solid var(--code-border);border-radius:14px;overflow:hidden;background:var(--code-bg)}.editor:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--code-border));box-shadow:0 0 0 3px var(--accent-soft)}.editor.is-readonly:focus-within{box-shadow:none;border-color:var(--code-border)}.editor-host .cm-editor{background:transparent;color:var(--text)}.editor-host .cm-editor.cm-focused{outline:none}.editor-host .cm-scroller{font-family:var(--mono);line-height:1.6}.editor-host .cm-content{padding:10px 0;caret-color:var(--accent)}.editor-host .cm-line{padding:0 12px 0 6px}.editor-host .cm-gutters{background:transparent;border-right:1px solid var(--code-border);color:var(--muted);opacity:.7}.editor-host .cm-lineNumbers .cm-gutterElement{padding:0 8px 0 10px;min-width:32px}.editor-host .cm-activeLine{background:color-mix(in srgb,var(--accent) 5%,transparent)}.editor-host .cm-activeLineGutter{background:transparent;color:var(--text)}.editor-host .cm-cursor{border-left:2px solid var(--accent)}.editor-host .cm-selectionBackground,.editor-host .cm-focused .cm-selectionBackground{background:color-mix(in srgb,var(--accent) 22%,transparent)!important}.editor-host .cm-matchingBracket{background:var(--accent-soft);outline:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.editor-host .cm-placeholder{color:var(--muted)}.is-readonly .cm-activeLine{background:transparent}@media(pointer:coarse){.editor-host .cm-editor{font-size:max(16px,1em)!important}}.keybar{display:none;gap:6px;padding:8px;overflow-x:auto;border-top:1px solid var(--code-border);background:var(--surface-2);scrollbar-width:none;-webkit-overflow-scrolling:touch}.keybar::-webkit-scrollbar{display:none}.keybar-key{flex-shrink:0;min-width:42px;height:38px;padding:0 10px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface);font-family:var(--mono);font-size:.95rem;font-weight:600;cursor:pointer;color:var(--text);box-shadow:0 1px 0 var(--border-strong)}.keybar-key:active{background:var(--accent-soft);transform:translateY(1px)}@media(pointer:coarse){.keybar{display:flex}}.codebox{display:flex;flex-direction:column;gap:10px}.codebox-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pybadge{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}.pybadge-error{color:var(--err)}.console{border-radius:14px;overflow:hidden;background:var(--console-bg);color:var(--console-text);border:1px solid color-mix(in srgb,var(--console-bg) 70%,var(--border))}.console-head{display:flex;align-items:center;gap:10px;padding:7px 12px;font-size:.75rem;color:#9aa1ab;border-bottom:1px solid rgba(255,255,255,.07)}.console-title{display:inline-flex;align-items:center;gap:6px;font-weight:650;letter-spacing:.03em;text-transform:uppercase}.console-running{display:inline-flex;align-items:center;gap:6px;color:#7ee2a8}.console-clear{margin-left:auto;background:none;border:none;color:#9aa1ab;cursor:pointer;font-size:.75rem;padding:2px 6px;border-radius:6px}.console-clear:hover{background:#ffffff14}.dot-pulse{width:7px;height:7px;border-radius:50%;background:#7ee2a8;animation:pulse 1s ease infinite}@keyframes pulse{50%{opacity:.3}}.console-body{padding:10px 14px 12px;font-family:var(--mono);font-size:.9rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow-y:auto;min-height:44px;-webkit-overflow-scrolling:touch}.console-empty{color:#6f7680;font-family:var(--font);font-size:.85rem;white-space:normal}.console-in{color:#ffcf8a}.console-info{color:#9aa1ab}.console-input{display:flex;align-items:center;gap:8px;margin-top:4px;white-space:normal}.console-input-caret{color:#ffcf8a;font-weight:700}.console-input input{flex:1;min-width:0;background:#ffffff12;border:1px solid rgba(255,207,138,.45);border-radius:9px;color:#fff;font-family:var(--mono);font-size:16px;padding:8px 10px;outline:none}.console-input input:focus{border-color:#ffcf8a;box-shadow:0 0 0 3px #ffcf8a26}.errorbox{margin-top:8px;padding:10px 12px;border-radius:10px;font-family:var(--font);white-space:normal;background:#f07a701f;border:1px solid rgba(240,122,112,.35);color:#ffd9d5}.errorbox-head{display:flex;align-items:center;gap:8px;color:#ff9e95;font-size:.9rem}.errorbox-line{margin-left:auto;font-size:.75rem;background:#ffffff1a;padding:1px 8px;border-radius:99px;color:#ffd9d5}.errorbox-msg{margin-top:4px;font-size:.92rem;line-height:1.5}.errorbox-msg p{margin:0}.errorbox-msg code{background:#ffffff1a;padding:.1em .35em;border-radius:5px;font-size:.88em}.errorbox-toggle{background:none;border:none;color:#c9a5a1;font-size:.78rem;cursor:pointer;padding:6px 0 0;text-decoration:underline}.errorbox-orig{margin:6px 0 0;font-size:.78rem;color:#c9a5a1;white-space:pre-wrap}.feedback .errorbox{background:var(--err-soft);border-color:color-mix(in srgb,var(--err) 30%,transparent);color:var(--text)}.feedback .errorbox-head{color:var(--err)}.feedback .errorbox-line{background:var(--surface-2);color:var(--text-2)}.feedback .errorbox-msg code{background:var(--surface-2)}.feedback .errorbox-toggle,.feedback .errorbox-orig{color:var(--muted)}.feedback{display:flex;gap:12px;padding:14px;border-radius:14px;border:1px solid;animation:stepIn .3s ease}.feedback-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.feedback-body{flex:1;min-width:0;font-size:.95rem}.feedback-body>strong{display:block;margin-bottom:2px;font-size:1rem}.feedback-body p{margin:0 0 4px}.feedback-ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.feedback-ok .feedback-icon{background:var(--ok);color:#fff;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.feedback-ok strong{color:var(--ok)}.feedback-fail{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.feedback-fail .feedback-icon{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.feedback-fail>.feedback-body>strong{color:var(--warn)}.feedback-next{margin-top:8px}.diff{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.diff.single{grid-template-columns:1fr}.diff-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px}.diff-box{margin:0;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.82rem;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}@media(max-width:520px){.diff{grid-template-columns:1fr}}.helpers{display:flex;flex-direction:column;gap:8px}.helpers-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.hint{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface-2);font-size:.95rem;animation:stepIn .3s ease}.hint p{margin:0}.hint-badge{flex-shrink:0;font-size:.72rem;font-weight:750;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent-ink);margin-top:2px}.confirm-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.88rem;color:var(--text-2)}.solution{border:1px dashed var(--border-strong);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;animation:stepIn .3s ease}.solution-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700;font-size:.85rem}.solution-note{font-size:.82rem;color:var(--muted);margin:0}.choice-options{display:flex;flex-direction:column;gap:8px}.choice-option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;padding:12px 14px;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--surface);transition:border-color .15s,background .15s,transform .08s;min-height:50px}.choice-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.choice-option:active:not(:disabled){transform:scale(.99)}.choice-option:disabled{cursor:default;opacity:.55}.choice-letter{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:var(--surface-2);font-weight:750;font-size:.8rem;color:var(--muted)}.choice-text{flex:1;white-space:pre-wrap;word-break:break-word}.choice-option.is-mono .choice-text{font-family:var(--mono);font-size:.92rem}.choice-option.is-correct{border-color:var(--ok);background:var(--ok-soft);opacity:1}.choice-option.is-correct .choice-letter{background:var(--ok);color:#fff}.choice-option.is-correct .icon{color:var(--ok)}.choice-option.is-wrong{border-color:var(--err);background:var(--err-soft);animation:shake .35s}.choice-option.is-wrong .choice-letter{background:var(--err);color:#fff}.choice-option.is-wrong .icon{color:var(--err)}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.choice-retry{color:var(--warn);font-weight:600;font-size:.92rem;margin:10px 0 0}.choice-explain{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--surface-2);font-size:.97rem;animation:stepIn .3s ease}.choice-explain>strong{display:block;margin-bottom:2px}.choice-explain.is-good{background:var(--ok-soft)}.choice-explain.is-good>strong{color:var(--ok)}.choice-explain .md{font-size:.97rem}.predict-run{margin-top:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.predict-run .console{width:100%}.step-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.parsons-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 6px}.parsons-target{min-height:56px;padding:8px;border-radius:12px;border:2px dashed var(--border-strong);background:var(--code-bg);display:flex;flex-direction:column;gap:6px;transition:border-color .2s}.parsons-target.is-ok{border-style:solid;border-color:var(--ok)}.parsons-target.is-wrong{border-color:var(--warn)}.parsons-empty{color:var(--muted);font-size:.88rem;padding:8px;text-align:center}.parsons-pool{display:flex;flex-direction:column;gap:6px}.parsons-line{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:0;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:.9rem;box-shadow:var(--shadow-sm);animation:stepIn .2s ease}button.parsons-line{padding:10px 12px}.parsons-line code{white-space:pre;overflow-x:auto}.parsons-line.is-placed{cursor:default}.parsons-code{flex:1;min-width:0;text-align:left;background:none;border:none;padding:10px 12px;cursor:pointer;overflow-x:auto}.parsons-line.is-first-wrong{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.parsons-move{display:flex;gap:2px;padding-right:6px}.parsons-move button{width:34px;height:34px;border-radius:8px;border:none;background:var(--surface-2);color:var(--muted);cursor:pointer;font-size:.75rem}.parsons-move button:disabled{opacity:.3}.fill-code{line-height:2.1;white-space:pre}.fill-input{font-family:var(--mono);font-size:16px;padding:2px 6px;margin:0 2px;border-radius:7px;border:1.5px solid var(--accent);background:var(--accent-soft);color:var(--text);outline:none;text-align:center}.fill-input:focus{box-shadow:0 0 0 3px var(--accent-soft)}.fill-input.is-ok{border-color:var(--ok);background:var(--ok-soft)}.fill-input.is-wrong{border-color:var(--err);background:var(--err-soft)}.fill-input:disabled{opacity:1}.try-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-ink);background:var(--accent-soft);padding:3px 10px;border-radius:99px;margin-bottom:10px}.step-card.step-try{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.task-head-title{flex:1;min-width:0;font-size:.85rem;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-head-nav{display:flex;gap:2px}.task-wrap{width:100%;max-width:820px;margin:0 auto;padding:18px max(16px,env(safe-area-inset-left)) calc(40px + var(--safe-bottom)) max(16px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:14px}.task-badges{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}.task-intro h1{margin-bottom:8px}.task-story{color:var(--muted);font-style:italic;margin-bottom:8px}.task-md{font-size:1.04rem}.collapse{border:1px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden}.collapse-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:none;border:none;cursor:pointer;font-weight:650;text-align:left}.collapse-head span{flex:1}.collapse-chev{transition:transform .2s;color:var(--muted)}.collapse.is-open .collapse-chev{transform:rotate(180deg)}.collapse-body{padding:0 14px 12px}.guide-steps{margin:0 0 8px;padding-left:1.4em}.guide-steps li{margin:6px 0;animation:stepIn .25s ease}.guide-steps .md{font-size:.97rem}.task-done{display:flex;flex-direction:column;gap:12px;animation:stepIn .35s ease}.explain{padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.explain-head{display:flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-ink);margin-bottom:6px}.task-done-actions{display:flex;justify-content:flex-end}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.card p{color:var(--text-2);font-size:.95rem}.card-title{display:flex;align-items:center;gap:8px;font-weight:700;margin-bottom:10px}.card-title .icon{color:var(--accent)}.card-danger .card-title .icon{color:var(--err)}.segmented{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:12px;margin-bottom:14px}.segmented button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:none;border-radius:9px;background:none;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--muted)}.segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:8px;font-size:.93rem;color:var(--text-2)}.field input[type=range]{accent-color:var(--accent);width:100%}.text-input{flex:1;min-width:180px;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-size:16px;outline:none}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sync-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 10px}.sync-code code{font-size:1.35rem;font-weight:700;letter-spacing:.06em;padding:8px 14px;border-radius:10px;background:var(--surface-2);border:1px dashed var(--border-strong)}.msg{margin:10px 0 0;font-size:.9rem;font-weight:600}.msg-error{color:var(--err)}.msg-ok{color:var(--ok)}.playground .codebox{margin-bottom:12px}@media(min-width:700px){h1{font-size:1.9rem}.hero h1{font-size:2.4rem}.page{padding-top:32px}.step-card{padding:22px 24px}.finish-actions{align-items:center}.finish-actions .btn{min-width:320px}}@media(max-width:420px){.hero{flex-direction:column-reverse;align-items:flex-start;gap:10px}.hero h1{font-size:1.75rem}.stat{padding:10px}.stat small{font-size:.72rem}.player-bar .btn-large{padding:0 16px}.device-label{display:none}.chapter-head-emoji{width:52px;height:52px;font-size:1.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
