@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kalam-devanagari-400-normal-Dy6c0U2e.woff2)format("woff2"),url(/assets/kalam-devanagari-400-normal-Dyzod-UE.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kalam-latin-ext-400-normal-DtcdGa4L.woff2)format("woff2"),url(/assets/kalam-latin-ext-400-normal-AcQmRO9z.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kalam-latin-400-normal-BthBl_aR.woff2)format("woff2"),url(/assets/kalam-latin-400-normal-Bl-H2BUA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-devanagari-700-normal-BeU_-hjz.woff2)format("woff2"),url(/assets/kalam-devanagari-700-normal-B52CSkpd.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-latin-ext-700-normal-CwgfRD_T.woff2)format("woff2"),url(/assets/kalam-latin-ext-700-normal-BA-KJHgr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Kalam;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kalam-latin-700-normal-D2H-9ISU.woff2)format("woff2"),url(/assets/kalam-latin-700-normal-7TSuSrjP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-cyrillic-ext-600-normal-DDEJyoof.woff2)format("woff2"),url(/assets/caveat-cyrillic-ext-600-normal-BLVNc-Ct.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-cyrillic-600-normal-Ba_MyzgW.woff2)format("woff2"),url(/assets/caveat-cyrillic-600-normal-CqH0c_uj.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-ext-600-normal-DDJRD6ps.woff2)format("woff2"),url(/assets/caveat-latin-ext-600-normal-shBvSnoU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2)format("woff2"),url(/assets/caveat-latin-600-normal-DUjB8dgm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-cyrillic-ext-700-normal-CrK2-ngJ.woff2)format("woff2"),url(/assets/caveat-cyrillic-ext-700-normal-DjFGiEhD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-cyrillic-700-normal-BIyejhEL.woff2)format("woff2"),url(/assets/caveat-cyrillic-700-normal-Bhcx9qBB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-ext-700-normal-DFbRgDry.woff2)format("woff2"),url(/assets/caveat-latin-ext-700-normal-DjJQd59I.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2)format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;--font-sans:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:20px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f6fc;--paper:#fff;--paper-2:#f6f8fd;--grid:#2447d612;--ink:#101935;--ink-2:#404b6b;--ink-3:#66718f;--line:#d9e0ef;--line-strong:#b6c3dd;--pen:#2447d6;--pen-soft:#2447d614;--pen-border:#2447d661;--on-solid:#fff;--hl:#ffe766;--hl-soft:#ffd60a6b;--margin:#e5484d;--ok:#0e7a52;--ok-soft:#0e7a521a;--warn:#8f5500;--warn-soft:#d9960024;--bad:#c23232;--bad-soft:#c2323217;--shadow:0 1px 0 #1019350a, 0 10px 28px #10193512;--shadow-pop:0 14px 40px #1019352e;--code-bg:#121c38;--code-bar:#1a2547;--code-line:#28345e}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1a16;--paper:#15231e;--paper-2:#1a2b25;--grid:#eaf2e60d;--ink:#edf3ea;--ink-2:#bdcbc2;--ink-3:#8da096;--line:#2a3d35;--line-strong:#44594e;--pen:#8ec5ff;--pen-soft:#8ec5ff1f;--pen-border:#8ec5ff6b;--on-solid:#0f1a16;--hl:#f4d35e;--hl-soft:#f4d35e4d;--margin:#f28b9b;--ok:#7fdca6;--ok-soft:#7fdca621;--warn:#f0c36a;--warn-soft:#f0c36a21;--bad:#ff9b9b;--bad-soft:#ff9b9b1f;--shadow:0 1px 0 #0000004d, 0 12px 30px #00000059;--shadow-pop:0 16px 44px #0000008c;--code-bg:#0c1512;--code-bar:#13211c;--code-line:#223630}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--ink);background-color:var(--bg);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-size:32px 32px;font-size:16px;line-height:1.6}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed}input,textarea,select{font:inherit;color:inherit}code,pre,kbd{font-family:var(--font-mono)}a{color:var(--pen);text-underline-offset:3px}mark{background:linear-gradient(transparent 52%, var(--hl-soft) 52%);color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .12em}:focus-visible{outline:2px solid var(--pen);outline-offset:2px}::selection{background:var(--hl-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.app{flex-direction:column;min-height:100vh;display:flex}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--ink);color:var(--paper);padding:8px 14px;position:absolute;top:-48px;left:12px}.skip-link:focus{top:10px}.topbar{z-index:30;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);align-items:center;gap:20px;height:62px;padding:0 28px;display:flex;position:sticky;top:0}.brand{color:var(--ink);flex:none;align-items:center;gap:10px;display:flex}.brand-mark{color:var(--ink);place-items:center;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:19px;font-weight:800}.topbar-search{flex:1;min-width:0;max-width:560px}.topbar-tools{align-items:center;gap:8px;margin-left:auto;display:flex}.stat{height:36px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:14px;font-weight:600;display:inline-flex}.stat b{color:var(--ink);font-weight:700}.stat svg{color:#e0702a}:root[data-theme=dark] .stat svg{color:#ffb067}.stat-level{padding-left:4px}.chip-btn{border:1px solid var(--line-strong);background:var(--paper);height:36px;color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.chip-btn:hover{border-color:var(--ink)}.chip-btn.attention{background:var(--hl);color:#1b1a10;border-color:#0000}:root[data-theme=dark] .chip-btn.attention{color:#1b1a10}.icon-btn{min-width:36px;height:36px;color:var(--ink-2);border-radius:10px;grid-auto-flow:column;place-items:center;gap:6px;padding:0 8px;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--pen-soft);color:var(--ink)}.icon-btn:disabled{opacity:.4}.icon-btn.is-live{background:var(--pen-soft);color:var(--pen)}.icon-btn-text{font-family:var(--font-mono);font-size:13px;font-weight:600}.popwrap{position:relative}.popover{z-index:50;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--paper);box-shadow:var(--shadow-pop);position:absolute;top:46px;right:0}.timer-pop{flex-direction:column;align-items:center;gap:14px;width:280px;padding:18px;display:flex}.timer-time{font-family:var(--font-mono);font-size:28px;font-weight:600}.timer-actions{gap:8px;display:flex}.main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:44px 28px 90px}.main-lesson{max-width:1340px;padding-top:28px}.form-error{border-radius:var(--radius-sm);background:var(--bad-soft);color:var(--bad);border:1px solid color-mix(in srgb, var(--bad) 40%, transparent);padding:10px 14px;font-size:14px}.muted{color:var(--ink-3);font-size:14px}.small{font-size:13px}.hide-sm{display:inline}.kbd{border:1px solid var(--line-strong);background:var(--paper);text-align:center;min-width:22px;color:var(--ink-2);border-bottom-width:2px;border-radius:6px;padding:0 6px;font-size:12px;line-height:20px;display:inline-block}.searchbar{background:var(--paper);border:1.5px solid var(--line-strong);width:100%;color:var(--ink-3);align-items:center;gap:10px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.searchbar:focus-within{border-color:var(--pen);box-shadow:0 0 0 4px var(--pen-soft)}.searchbar input{min-width:0;color:var(--ink);background:0 0;border:none;outline:none;flex:1}.searchbar input::placeholder{color:var(--ink-3)}.searchbar>button[type=submit]{background:var(--ink);color:var(--paper);flex:none;font-weight:700}.searchbar>button[type=submit]:hover:not(:disabled){background:var(--pen);color:var(--on-solid)}.searchbar>button[type=submit]:disabled{opacity:.35}.searchbar-large{max-width:680px;box-shadow:var(--shadow);border-radius:18px;margin-top:30px;padding:8px 8px 8px 20px}.searchbar-large input{height:46px;font-size:18px}.searchbar-large>button[type=submit]{border-radius:12px;height:46px;padding:0 24px;font-size:15px}.searchbar-small{border-radius:12px;padding:3px 3px 3px 14px}.searchbar-small input{height:34px;font-size:14.5px}.searchbar-small>button[type=submit]{border-radius:9px;height:34px;padding:0 16px;font-size:13px}.suggest{z-index:40;border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--paper);box-shadow:var(--shadow-pop);padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0}.suggest button{text-align:left;width:100%;color:var(--ink);border-radius:8px;padding:9px 12px;font-size:15px}.suggest li.on button,.suggest button:hover{background:var(--pen-soft)}.home{flex-direction:column;gap:64px;display:flex}.hero{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:48px;padding-top:20px;display:grid}.hero h1{font-family:var(--font-display);letter-spacing:-.04em;max-width:13ch;font-size:clamp(40px,5.6vw,72px);font-weight:800;line-height:1.01}.hero-sub{max-width:54ch;color:var(--ink-2);margin-top:20px;font-size:18px;line-height:1.55}.hero .chips{max-width:680px;margin-top:22px}.hero .form-error{max-width:680px;margin-top:14px}.today{border-radius:var(--radius-lg);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:22px;display:flex;position:relative}.today:before{content:"";background:var(--hl);opacity:.85;border-radius:3px;width:56px;height:18px;position:absolute;top:-9px;left:22px;transform:rotate(-3deg)}.today-title{font-family:var(--font-display);font-size:18px;font-weight:700}.today-stats{align-items:center;gap:16px;display:flex}.today-level{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.1}.today-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.today-grid>div{border-radius:var(--radius-sm);background:var(--paper-2);border:1px solid var(--line);padding:10px 12px}.today-grid dt{color:var(--ink-3);align-items:center;gap:6px;font-size:12.5px;display:flex}.today-grid dd{margin-top:2px;font-size:16px;font-weight:700}.today-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper-2);align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.today-card:hover:not(:disabled){border-color:var(--ink)}.today-card>span{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.today-card b{font-size:15px}.today-card small{color:var(--ink-3);font-size:12.5px}.today-emoji{font-size:22px;flex:none!important}.ring{flex:none;place-items:center;display:inline-grid;position:relative}.ring svg{position:absolute;inset:0}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--pen);transition:stroke-dashoffset .5s}.ring-center{place-items:center;display:grid;position:relative}.ring-num{font-size:12px;font-weight:700;font-family:var(--font-mono)}.ring-big{font-family:var(--font-display);font-size:28px;font-weight:800}.syllabus-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.syllabus-head h2,.shelf-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.15}.syllabus-list{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);list-style:none;overflow:hidden}.syllabus-list li+li{border-top:1px solid var(--line)}.syllabus-row{text-align:left;align-items:center;gap:14px;width:100%;padding:15px 20px;display:flex}.syllabus-row:hover:not(:disabled){background:var(--paper-2)}.syllabus-row.is-next{box-shadow:inset 5px 0 0 var(--hl)}.syllabus-num{border:1.5px solid var(--line-strong);width:30px;height:30px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.is-done .syllabus-num{background:var(--ok);border-color:var(--ok);color:var(--on-solid)}.syllabus-icon{font-size:24px}.syllabus-text{flex-direction:column;flex:1;min-width:0;line-height:1.35;display:flex}.syllabus-text b{font-size:16px}.syllabus-text small{color:var(--ink-3);font-size:13.5px}.syllabus-best{font-family:var(--font-mono);color:var(--ink-2);background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:2px 8px;font-size:12.5px}.up-next{background:var(--hl);color:#1b1a10;border-radius:6px;padding:2px 10px;font-size:12px;font-weight:700}.shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;display:grid}.shelf-title{align-items:center;gap:10px;margin-bottom:14px;font-size:20px;display:flex}.shortcuts{line-height:2}.btn{white-space:nowrap;border:1.5px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 18px;font-size:14.5px;font-weight:650;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.4}.btn-sm{border-radius:9px;height:34px;padding:0 12px;font-size:13.5px}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover:not(:disabled){background:var(--pen);color:var(--on-solid)}.btn-ghost{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--ink)}.btn-ghost.is-on{background:var(--pen-soft);border-color:var(--pen-border);color:var(--pen)}.btn-outline{border-color:var(--pen-border);color:var(--pen);background:0 0}.btn-outline:hover{background:var(--pen-soft)}.btn-done{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 45%, transparent);color:var(--ok)}.mini-btn{height:28px;color:var(--ink-2);border:1px solid var(--line);background:var(--paper);border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.mini-btn:hover:not(:disabled){border-color:var(--ink-2);color:var(--ink)}.segmented{background:var(--paper-2);border:1px solid var(--line);border-radius:11px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);border-radius:8px;padding:5px 12px;font-size:13.5px;font-weight:600}.segmented button:hover:not(:disabled){color:var(--ink)}.segmented button:disabled{opacity:.4}.segmented button.on{background:var(--ink);color:var(--paper)}.segmented-sm button{padding:3px 10px;font-size:12.5px}.lesson-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:28px;display:grid}.lesson-side{position:sticky;top:86px}.topic-view{flex-direction:column;gap:24px;min-width:0;display:flex}.lesson{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);position:relative;overflow:hidden}.lesson:before{content:"";background:var(--margin);opacity:.4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0;left:60px}.lesson:after{content:"";pointer-events:none;background-image:radial-gradient(circle at 8px 70px, var(--bg) 0 6px, var(--line-strong) 6.5px 7.5px, transparent 8px);background-size:16px 190px;width:16px;position:absolute;top:0;bottom:0;left:20px}.lesson-head,.lesson-body,.lesson-foot,.tabs{position:relative}.lesson-head{z-index:5;flex-direction:column;gap:6px;padding:34px 36px 26px 88px;display:flex}.lesson-kicker{color:var(--ink-3);font-size:14px;font-weight:500}.lesson h1{font-family:var(--font-display);letter-spacing:-.04em;margin-top:4px;font-size:clamp(36px,4.4vw,58px);font-weight:800;line-height:1.02}.lesson-icon{vertical-align:.04em;font-size:.72em}.lesson-subtitle{font-family:var(--font-display);color:var(--ink-2);font-size:20px;font-weight:600}.lesson-summary{color:var(--ink-2);max-width:62ch;margin-top:6px;font-size:17px}.meta-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.meta{color:var(--ink-3);align-items:center;gap:5px;font-size:13.5px;display:inline-flex}.meta-done{color:var(--ok);font-weight:600}.lesson-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.depth{align-items:center;gap:8px;margin-left:auto;display:flex}.level{border-radius:6px;flex:none;padding:2px 10px;font-size:12.5px;font-weight:650}.level-beginner{background:var(--ok-soft);color:var(--ok)}.level-intermediate{background:var(--warn-soft);color:var(--warn)}.level-advanced{background:var(--bad-soft);color:var(--bad)}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:2px;padding:0 28px 0 76px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-3);white-space:nowrap;border-bottom:2.5px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:12px 16px;font-size:15px;font-weight:650;display:inline-flex;position:relative}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--ink);background-image:linear-gradient(transparent 58%, var(--hl-soft) 58%)}.tab-count{background:var(--paper-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:0 7px;font-size:12px}.tab-dot{background:var(--margin);border-radius:50%;width:7px;height:7px}.lesson-body{min-height:380px;padding:30px 36px 34px 88px}.fade-in{animation:.22s fadeIn}.stack-lg{flex-direction:column;gap:22px;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:700}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.card h3{font-family:var(--font-display);margin-bottom:8px;font-size:18px;font-weight:700}.card h4,.callout h4{color:var(--ink);margin:18px 0 8px;font-size:14px;font-weight:700}.card p{color:var(--ink-2)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.grid-2:has(>:only-child){grid-template-columns:minmax(0,1fr)}.callout{border-radius:var(--radius);border:1.5px dashed var(--line-strong);background:0 0;padding:26px 28px}.callout-quote{font-family:var(--font-display);letter-spacing:-.01em;margin:8px 0 4px;font-size:clamp(21px,2.4vw,27px);font-weight:600;line-height:1.35}.callout-body{border-top:1px solid var(--line);margin-top:16px;padding-top:4px}.callout-body h4{margin-top:14px}.callout-body p{color:var(--ink-2);max-width:66ch}.lesson-thumb{float:right;border:1px solid var(--line-strong);background:#fff;width:128px;margin:2px 0 10px 18px;padding:6px 6px 4px;transform:rotate(2.5deg);box-shadow:0 6px 14px #10193529}.lesson-thumb img{object-fit:cover;width:100%;height:96px;display:block}.check-list,.warn-list{flex-direction:column;gap:10px;list-style:none;display:flex}.check-list li,.warn-list li{color:var(--ink-2);padding-left:28px;font-size:15px;position:relative}.check-list li:before,.warn-list li:before{border-radius:50%;place-items:center;width:19px;height:19px;font-size:11px;font-weight:800;display:grid;position:absolute;top:3px;left:0}.check-list li:before{content:"✓";background:var(--ok-soft);color:var(--ok)}.warn-list li:before{content:"!";background:var(--warn-soft);color:var(--warn)}.complexity{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);flex-direction:column;display:flex;overflow:hidden}.complexity-row{grid-template-columns:112px 1fr;gap:12px;padding:9px 12px;font-size:14px;display:grid}.complexity-row+.complexity-row{border-top:1px solid var(--line)}.complexity dt{font-weight:650}.complexity dd{font-family:var(--font-mono);color:var(--ink-2);font-size:12.5px}.tip{border-radius:var(--radius);background:var(--hl-soft);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.tip p{margin-top:2px;font-size:15px}.sources a+a:before{content:", ";color:var(--ink-3)}.related .chips{margin-top:10px}.next-row{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:15px;display:flex}.lesson-foot{border-top:1px solid var(--line);background:var(--paper-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 36px 16px 88px;display:flex}.walk-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.walk-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stage{background-color:var(--paper);border:1px solid var(--line);border-radius:var(--radius);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:22px 22px;place-items:center;min-height:260px;padding:30px 16px;display:grid;overflow-x:auto}.viz{display:flex}.viz-empty{border:2px dashed var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-3);background:var(--paper);padding:14px 18px;font-size:14px}.viz-caption{color:var(--ink-3);font-size:13px;font-weight:600}.step-card{background:var(--paper-2);border:1px solid var(--line);border-left:5px solid var(--hl);border-radius:var(--radius);padding:18px 22px}.step-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.step-badge{background:var(--ink);color:var(--paper);border-radius:6px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.step-card p{color:var(--ink)}.step-note{border-radius:var(--radius-sm);background:var(--warn-soft);margin-top:10px;padding:8px 12px;font-size:14.5px;font-weight:550;color:var(--warn)!important}.walk-nav{justify-content:space-between;align-items:center;gap:12px;display:flex}.dots{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.dot{background:var(--line-strong);border-radius:50%;width:11px;height:11px;transition:all .2s}.dot.past{background:var(--ink-3)}.dot.on{background:var(--ink);border-radius:99px;width:28px}.viz-array{flex-wrap:nowrap;gap:10px}.array-cell{flex-direction:column;align-items:center;gap:6px;width:78px;padding-top:16px;display:flex;position:relative}.array-addr{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.array-val{background:var(--paper);border:2px solid var(--ink-2);border-radius:10px;place-items:center;width:100%;height:62px;font-size:22px;font-weight:700;display:grid}.array-idx{font-family:var(--font-mono);color:var(--ink-2);font-size:12px}.cell-tag{background:var(--ink);color:var(--paper);border-radius:6px;padding:1px 8px;font-size:11px;font-weight:700;position:absolute;top:-2px}.array-cell.state-empty .array-val{border-style:dashed;border-color:var(--line-strong);color:var(--ink-3);background:0 0}.array-cell.state-shifted .array-val{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.array-cell.state-target .array-val{background:var(--pen-soft);border-color:var(--pen);color:var(--pen);border-style:dashed}.array-cell.state-inserted .array-val{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.viz-list{align-items:center;gap:0}.ll-item{align-items:center;display:flex}.ll-col{flex-direction:column;align-items:center;gap:6px;display:flex}.head-tag{height:18px;color:var(--pen);font-size:12px;font-weight:800}.ll-node{background:var(--paper);border:2px solid var(--ink-2);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.ll-part{flex-direction:column;align-items:center;min-width:62px;padding:8px 14px;line-height:1.3;display:flex}.ll-part+.ll-part{border-left:2px solid var(--ink-2);background:var(--paper-2)}.ll-part small{color:var(--ink-3);font-size:11px}.ll-part b{font-size:16px;font-family:var(--font-mono)}.ll-arrow{color:var(--ink-3);margin-top:24px;padding:0 8px;font-size:22px}.ll-node.state-new{border-color:var(--pen);border-style:dashed}.ll-node.state-linking{border-color:var(--warn)}.ll-node.state-inserted{border-color:var(--ok)}.ll-node.state-inserted .ll-part:first-child{background:var(--ok-soft)}.viz-stack{flex-direction:column;align-items:center;gap:12px}.stack-box{border:2px solid var(--ink-2);background:var(--paper);border-top:none;border-radius:0 0 14px 14px;flex-direction:column;justify-content:flex-end;gap:6px;width:200px;min-height:190px;padding:10px 10px 0;display:flex}.stack-box .viz-empty{text-align:center;margin-bottom:10px}.stack-item{background:var(--pen-soft);border:1.5px solid var(--pen-border);height:44px;color:var(--pen);border-radius:8px;place-items:center;font-size:18px;font-weight:700;display:grid;position:relative}.stack-item:last-child{margin-bottom:10px}.stack-item.top{background:var(--pen);border-color:var(--pen);color:var(--on-solid)}.stack-top-tag{color:var(--pen);white-space:nowrap;font-size:12.5px;font-weight:800;position:absolute;top:50%;left:calc(100% + 14px);transform:translateY(-50%)}.stack-top-tag:before{content:"← "}.viz-queue{flex-direction:column;align-items:center;gap:10px}.queue-end{color:var(--ink-3);font-size:13px;font-weight:650}.queue-row{border-top:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);background:var(--paper);justify-content:center;align-items:center;gap:10px;min-width:280px;min-height:84px;padding:12px;display:flex}.queue-item{background:var(--paper-2);border:1.5px solid var(--line-strong);border-radius:10px;flex-direction:column;align-items:center;width:74px;padding:8px 0;line-height:1.3;display:flex}.queue-item b{font-size:20px}.queue-item small{height:14px;color:var(--ink-3);font-size:10.5px;font-weight:800}.queue-item.front{background:var(--pen-soft);border-color:var(--pen-border)}.queue-item.front small{color:var(--pen)}.viz-calls{flex-direction:column;gap:8px;width:min(100%,460px)}.call-frame{background:var(--paper);border:1.5px solid var(--line-strong);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.call-frame.active{border-color:var(--pen);box-shadow:0 0 0 3px var(--pen-soft)}.call-frame code{font-size:14px;font-weight:700}.call-state{color:var(--ink-2);font-size:13.5px}.call-val{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:2px 10px;font-size:12.5px;font-weight:600}.call-frame.active .call-val{background:var(--pen);border-color:var(--pen);color:var(--on-solid)}.viz-bars{align-items:flex-end;gap:14px;min-height:190px}.sort-col{flex-direction:column;align-items:center;gap:6px;display:flex}.sort-bar{background:var(--line-strong);border-radius:8px 8px 0 0;justify-content:center;align-items:flex-start;width:62px;padding-top:8px;transition:height .3s,background .3s;display:flex}.sort-bar b{color:var(--on-solid);font-size:16px}.sort-col small{text-transform:capitalize;color:var(--ink-3);font-size:12px;font-weight:600}.sort-bar.state-swapped{background:var(--warn)}.sort-bar.state-sorted{background:var(--ok)}.sort-bar.state-normal{background:var(--pen)}.code-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.code-window,.code-output{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--code-line);overflow:hidden}.code-file{font-family:var(--font-mono);color:#9fb4a9;background:var(--code-bar);border-bottom:1px solid var(--code-line);padding:9px 16px;font-size:12px}.code-window pre,.code-output pre{color:#e8f0ea;tab-size:2;padding:16px 18px;font-size:13.5px;line-height:1.75;overflow-x:auto}.code-window code{counter-reset:line;display:block}.code-line{white-space:pre;counter-increment:line;display:block}.code-line:before{content:counter(line);text-align:right;color:#5d776a;-webkit-user-select:none;user-select:none;width:2.2em;margin-right:1.2em;display:inline-block}.tok-k{color:#f28b9b}.tok-s{color:#9be3b5}.tok-n{color:#f4d35e}.tok-c{color:#7f9a8d;font-style:italic}.tok-f{color:#8ec5ff}.code-output pre{color:#9be3b5;white-space:pre-wrap;min-height:48px}.code-output.has-error pre{color:#ff9b9b}.quiz{padding:26px}.quiz-top{color:var(--ink-3);justify-content:space-between;gap:12px;font-size:14px;display:flex}.quiz-title{color:var(--ink-2);font-weight:650}.quiz-bar{gap:6px;margin:12px 0 22px;display:flex}.quiz-bar span{background:var(--line);border-radius:4px;flex:1;height:6px}.quiz-bar .now{background:var(--ink-3)}.quiz-bar .ok{background:var(--ok)}.quiz-bar .miss{background:var(--bad)}.quiz-topic{color:var(--pen);margin-bottom:4px;font-size:13.5px;font-weight:650}.quiz .quiz-q{margin:0 0 18px;font-size:21px;line-height:1.35}.options{flex-direction:column;gap:10px;display:flex}.option{text-align:left;background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);align-items:flex-start;gap:14px;width:100%;padding:14px 16px;font-size:15.5px;transition:border-color .15s,background .15s;display:flex}.option:hover:not(:disabled){border-color:var(--ink);background:var(--pen-soft)}.option:disabled{cursor:default}.option-letter{background:var(--paper-2);border:1px solid var(--line-strong);width:27px;height:27px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.option.correct{border-color:var(--ok);background:var(--ok-soft)}.option.correct .option-letter{background:var(--ok);border-color:var(--ok);color:var(--on-solid)}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.option.wrong .option-letter{background:var(--bad);border-color:var(--bad);color:var(--on-solid)}.hint{margin-top:14px}.feedback{border-radius:var(--radius-sm);flex-direction:column;align-items:flex-start;gap:8px;margin-top:18px;padding:16px 18px;display:flex}.feedback p{color:var(--ink-2)}.feedback.ok{background:var(--ok-soft);border:1px solid color-mix(in srgb, var(--ok) 40%, transparent)}.feedback.ok strong{color:var(--ok)}.feedback.retry{background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent)}.feedback.retry strong{color:var(--warn)}.quiz .quiz-score{align-items:center;gap:18px;margin-bottom:12px;font-size:20px;display:flex}.quiz-score-num{font-family:var(--font-display);letter-spacing:-.03em;font-size:56px;font-weight:800;line-height:1}.quiz-score-num small{color:var(--ink-3);font-size:26px;font-weight:600}.review{flex-direction:column;gap:12px;margin:18px 0;list-style:none;display:flex}.review li{align-items:flex-start;gap:12px;display:flex}.review-mark{border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.review .ok .review-mark{background:var(--ok-soft);color:var(--ok)}.review .miss .review-mark{background:var(--bad-soft);color:var(--bad)}.review p{color:var(--ink);font-size:15px}.review .review-answer{color:var(--ink-2);margin-top:2px;font-size:14px}.quiz-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.flip{perspective:1400px;text-align:left;width:100%;height:290px;display:block}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s;display:block;position:relative}.is-flipped .flip-inner{transform:rotateY(180deg)}.flip-face{border-radius:var(--radius-lg);border:1.5px solid var(--line-strong);backface-visibility:hidden;flex-direction:column;justify-content:center;gap:12px;padding:28px 32px;display:flex;position:absolute;inset:0;overflow:auto}.flip-front{background:var(--paper);box-shadow:var(--shadow)}.flip-front b{font-family:var(--font-display);font-size:clamp(22px,2.6vw,30px);font-weight:700;line-height:1.25}.flip-front em{color:var(--ink-3);font-size:13.5px;font-style:normal}.flip-back{background:var(--pen-soft);border-color:var(--pen-border);font-size:17px;line-height:1.55;transform:rotateY(180deg)}.flip-face small{color:var(--ink-3);font-size:13.5px;font-weight:600}.flip-actions{justify-content:center;gap:12px;display:flex}.deck-done{text-align:center;padding:38px 22px}.deck-done .quiz-actions{justify-content:center}.notes-area{resize:vertical;border-radius:var(--radius);border:1.5px solid var(--line-strong);background-color:var(--paper);width:100%;min-height:200px;color:var(--ink);background-image:repeating-linear-gradient(transparent 0 31px, var(--line) 31px 32px);background-attachment:local;padding:16px 18px;font-size:16px;line-height:32px}.notes-area:focus{border-color:var(--pen);box-shadow:0 0 0 4px var(--pen-soft);outline:none}.point-list{flex-direction:column;gap:10px;list-style:none;display:flex}.point-list li{color:var(--ink-2);justify-content:space-between;align-items:flex-start;gap:14px;font-size:14.5px;display:flex}.point-list .mini-btn{flex:none}.challenge{flex-direction:column;gap:18px;max-width:760px;margin:0 auto;display:flex}.back-link{color:var(--ink-2);text-underline-offset:3px;align-self:flex-start;font-size:14px;font-weight:600;text-decoration:underline}.challenge-title{font-family:var(--font-display);letter-spacing:-.035em;align-items:center;gap:12px;font-size:clamp(34px,5vw,52px);font-weight:800;line-height:1.05;display:flex}.chat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:24px 28px;display:flex}.chat-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.chat-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:22px;font-weight:700}.chat-head p{color:var(--ink-3);font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--ink-2);background:var(--paper);border:1px solid var(--line-strong);border-radius:99px;padding:6px 14px;font-size:14px;font-weight:550}.chip:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--hl-soft)}.chip:disabled{opacity:.5}.chat-log{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:16px;max-height:360px;padding:18px;display:flex;overflow-y:auto}.msg{flex-direction:column;gap:4px;max-width:86%;display:flex}.msg.user{align-self:flex-end;align-items:flex-end}.msg-who{color:var(--ink-3);font-size:12.5px;font-weight:650}.msg-text{background:var(--paper);border:1px solid var(--line);border-radius:4px 14px 14px;padding:10px 14px;font-size:15px}.msg-text p{min-height:1em}.msg.user .msg-text{background:var(--ink);border-color:var(--ink);color:var(--paper);border-radius:14px 4px 14px 14px}.msg-actions{gap:6px;margin-top:2px;display:flex}.typing{background:var(--paper);border:1px solid var(--line);border-radius:14px;gap:5px;padding:14px 16px;display:inline-flex}.typing span{background:var(--ink-3);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite bounce}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.chat-form{align-items:center;gap:8px;display:flex}.chat-form input{border:1.5px solid var(--line-strong);background:var(--paper);border-radius:11px;outline:none;flex:1;min-width:0;height:44px;padding:0 14px}.chat-form input:focus{border-color:var(--pen);box-shadow:0 0 0 3px var(--pen-soft)}.chat-form .btn{height:44px}.chat-form .mic{border:1.5px solid var(--line-strong);width:44px;height:44px}.lang-btn{height:44px}.teacher{background:var(--paper);border:1px solid var(--line-strong);width:100%;box-shadow:var(--shadow);border-radius:22px;position:static;overflow:hidden}.teacher-stage{aspect-ratio:16/13;background:#1d3a31;position:relative;overflow:hidden}.teacher-stage .avatar{width:100%;height:100%;display:block}.teacher-status{color:#eaf2e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a14109e;border-radius:99px;align-items:center;gap:8px;padding:4px 11px;font-size:12.5px;font-weight:650;display:inline-flex;position:absolute;top:12px;left:12px}.teacher-winbtns{gap:4px;display:inline-flex;position:absolute;top:10px;right:10px}.teacher-winbtns button{color:#eaf2e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a14109e;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.teacher-winbtns button:hover{background:#0a1410e6}.teacher-wave{align-items:flex-end;gap:3px;height:18px;display:inline-flex;position:absolute;bottom:12px;left:14px}.teacher-wave i{background:#f4d35e;border-radius:2px;width:4px;animation:.9s ease-in-out infinite wave}.teacher-wave i:nth-child(2){animation-delay:.15s}.teacher-wave i:nth-child(3){animation-delay:.3s}.teacher-wave i:nth-child(4){animation-delay:.45s}.live-dot{background:#7fdca6;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse;display:inline-block}.live-dot.off{background:#8da096;animation:none}.avatar .av-head{transform-origin:100px 150px}.avatar.talking .av-head{animation:2.4s ease-in-out infinite bob}.avatar .av-eyes{transform-origin:100px 94px;animation:5s infinite blink}.avatar .av-mouth{transform-origin:100px 132px;animation:.3s ease-in-out infinite alternate talk}.teacher-caption{min-height:96px;padding:16px 20px 10px;font-size:16px;font-weight:500;line-height:1.5}.teacher-ticks{gap:5px;padding:0 20px;display:flex}.tick{background:var(--line);border-radius:4px;flex:1;height:8px;position:relative}.tick:after{content:"";position:absolute;inset:-8px 0}.tick.past{background:var(--ink-3)}.tick.on{background:var(--hl);box-shadow:0 0 0 1.5px var(--ink)}.teacher-controls{justify-content:center;align-items:center;gap:8px;padding:14px 16px 6px;display:flex}.teacher-options{flex-wrap:wrap;justify-content:center;gap:8px;padding:6px 16px 16px;display:flex}.teacher-note{color:var(--ink-3);padding:14px 20px;font-size:14px}.teacher-settings{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:12px 20px 18px;display:flex}.teacher-settings label{font-size:13px;font-weight:650}.teacher-settings select{border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--paper);width:100%;height:38px;padding:0 10px}.teacher-bubble{z-index:40;background:var(--paper);border:1.5px solid var(--line-strong);box-shadow:var(--shadow-pop);border-radius:999px;align-items:center;gap:10px;padding:6px 18px 6px 6px;font-size:14.5px;font-weight:700;display:flex;position:fixed;bottom:22px;right:22px}.teacher-bubble-face{border-radius:50%;width:42px;height:42px;display:block;overflow:hidden}.teacher-bubble-face .avatar{width:100%;height:100%}.toasts{z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:74px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);box-shadow:var(--shadow-pop);border-radius:99px;padding:8px 18px;font-size:14px;font-weight:650;animation:.25s toastIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes talk{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@keyframes bob{0%,to{transform:rotate(0)translateY(0)}50%{transform:rotate(-1.2deg)translateY(-1.5px)}}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes wave{0%,to{height:4px}50%{height:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=1160px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-side{display:contents}.teacher{z-index:40;width:min(380px,100vw - 32px);box-shadow:var(--shadow-pop);position:fixed;bottom:16px;right:16px}.teacher-stage{aspect-ratio:16/7}.teacher-caption{min-height:70px;padding-top:12px;font-size:15px}.main-lesson{padding-bottom:430px}.hero{grid-template-columns:minmax(0,1fr)}.today{max-width:680px}}@media (width<=760px){.topbar{gap:8px;padding:0 12px}.brand-name,.hide-sm,.searchbar-small>button[type=submit]{display:none}.searchbar-small{padding-right:12px}.stat{padding:0 6px}.main{padding:24px 14px 60px}.main-lesson{padding:16px 12px 400px}.home{gap:44px}.hero-sub{font-size:16px}.searchbar-large{padding-left:14px}.searchbar-large>button[type=submit]{padding:0 16px}.kbd{display:none}.shelf{grid-template-columns:minmax(0,1fr)}.syllabus-row{gap:10px;padding:13px 14px}.syllabus-best,.up-next,.lesson:before,.lesson:after{display:none}.lesson-head{padding:24px 18px 20px}.lesson-body{padding:22px 16px 26px}.lesson-foot{padding:14px 16px}.tabs{padding:0 6px}.lesson h1{font-size:32px}.depth{margin-left:0}.grid-2{grid-template-columns:minmax(0,1fr)}.complexity-row{grid-template-columns:1fr;gap:2px}.tip{flex-direction:column;align-items:flex-start}.walk-nav .btn{padding:0 12px}.stack-top-tag{top:-18px;left:auto;right:8px;transform:none}.stack-top-tag:before{content:""}.chat{padding:18px 16px}.msg{max-width:94%}.quiz{padding:18px 16px}.flip{height:330px}.flip-face{padding:22px 20px}.teacher{width:auto;bottom:8px;left:8px;right:8px}}.cv-stage{min-height:300px}.cv-svg{width:100%;max-width:560px;height:auto;overflow:visible}.cv-track{fill:none;stroke:var(--line-strong);stroke-width:2px;stroke-dasharray:5 6}.cv-center{fill:var(--ink)}.cv-center-text{font-family:var(--font-display);fill:var(--ink);font-size:15px;font-weight:700}.cv-center-text.on-fill{fill:var(--paper);font-size:13px}.cv-sub{fill:var(--ink-3);font-size:12px}.cv-node{cursor:pointer}.cv-node rect{fill:var(--paper);stroke:var(--ink-2);stroke-width:1.8px;transition:fill .2s}.cv-node text{fill:var(--ink);pointer-events:none;font-size:13.5px;font-weight:650}.cv-node.past rect{fill:var(--paper-2);stroke:var(--ink-3)}.cv-node.on rect{fill:var(--ink);stroke:var(--ink)}.cv-node.on text{fill:var(--paper)}.cv-node:focus-visible rect{stroke:var(--pen);stroke-width:3px}.cv-badge{fill:var(--hl)}.cv-node .cv-badge-text{fill:#1b1a10;font-size:11px;font-weight:800}.cv-node.on .cv-badge-text{fill:#1b1a10}.cv-flow{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 4px;list-style:none;display:flex}.cv-flow li{align-items:center;gap:4px;display:flex}.cv-step{border:1.8px solid var(--ink-2);background:var(--paper);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-size:15px;font-weight:650;display:inline-flex}.cv-step-num{background:var(--hl);color:#1b1a10;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.cv-step.past{background:var(--paper-2);border-color:var(--ink-3)}.cv-step.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.cv-arrow{color:var(--ink-3);padding:0 4px;font-size:20px}.cv-timeline{flex-direction:column;gap:6px;width:min(100%,520px);padding-left:12px;list-style:none;display:flex;position:relative}.cv-timeline:before{content:"";background:var(--line-strong);width:2px;position:absolute;top:14px;bottom:14px;left:21px}.cv-timeline button{text-align:left;align-items:center;gap:14px;width:100%;padding:6px 10px 6px 0;display:flex;position:relative}.cv-dot{z-index:1;background:var(--paper);border:2px solid var(--ink-2);border-radius:50%;flex:none;width:20px;height:20px;position:relative}.cv-tl-label{border-radius:8px;padding:3px 10px;font-size:15.5px;font-weight:650}.cv-timeline .past .cv-dot{background:var(--ink-3);border-color:var(--ink-3)}.cv-timeline .on .cv-dot{background:var(--hl);border-color:var(--ink);box-shadow:0 0 0 4px var(--hl-soft)}.cv-timeline .on .cv-tl-label{background:var(--ink);color:var(--paper)}.cv-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:100%;display:grid}.cv-col{border-radius:var(--radius);background:var(--paper);border:1.8px solid var(--ink-2);padding:18px 20px}.cv-col-1{border-style:dashed}.cv-col h4{font-family:var(--font-display);margin:0 0 10px;font-size:18px}.cv-col ul{flex-direction:column;gap:8px;list-style:none;display:flex}.cv-col li{color:var(--ink-2);padding-left:20px;font-size:15px;position:relative}.cv-col li:before{content:"";background:var(--hl);border:1.5px solid var(--ink-2);border-radius:2px;width:8px;height:8px;position:absolute;top:9px;left:2px}@media (width<=760px){.cv-compare{grid-template-columns:minmax(0,1fr)}.cv-arrow{display:none}}.section-heading{font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:18px;font-size:28px;font-weight:700;line-height:1.15}.ideas{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.idea-col{padding:20px 22px 22px}.idea-col+.idea-col{border-left:1px solid var(--line)}.idea-col h3{color:var(--ink-3);margin-bottom:10px;font-size:14px;font-weight:700}.idea-col ul{flex-direction:column;gap:2px;list-style:none;display:flex}.idea-col button{text-align:left;border-bottom:1px dashed var(--line);width:100%;padding:7px 0;font-size:16px;font-weight:550}.idea-col li:last-child button{border-bottom:none}.idea-col button:hover:not(:disabled){color:var(--pen)}@media (width<=1000px){.ideas{grid-template-columns:repeat(2,minmax(0,1fr))}.idea-col:nth-child(3){border-left:none}.idea-col:nth-child(n+3){border-top:1px solid var(--line)}}@media (width<=560px){.ideas{grid-template-columns:minmax(0,1fr)}.idea-col+.idea-col{border-left:none;border-top:1px solid var(--line)}}.subject-picker{position:relative}.subject-pop{z-index:30;background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--radius);width:min(340px,86vw);box-shadow:var(--shadow-pop);flex-direction:column;gap:10px;padding:14px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.subject-pop-title{font-size:14px;font-weight:700}.subject-pop-list{flex-direction:column;gap:4px;max-height:220px;list-style:none;display:flex;overflow:auto}.subject-opt{text-align:left;border:1px solid #0000;border-radius:9px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.subject-opt:hover{background:var(--pen-soft)}.subject-opt.on{border-color:var(--ok);background:var(--ok-soft);color:var(--ok);font-weight:650}.subject-opt-name{flex:1}.subject-opt-count{color:var(--ink-3);font-size:12px}.subject-dot{border-radius:50%;flex:none;width:12px;height:12px}.subject-new{align-items:center;gap:8px;display:flex}.subject-new input{border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--paper);flex:1;min-width:0;height:38px;padding:0 12px}.subject-new-big input{height:46px;font-size:16px}.subject-new-big .btn{height:46px}.subjects{flex-direction:column;align-items:flex-start;gap:18px;max-width:880px;margin:0 auto;display:flex}.subjects>.subject-new{width:100%}.subjects-head h1{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(32px,4vw,46px);font-weight:800;line-height:1.05}.subject-title-row{flex-wrap:wrap;align-items:center;gap:14px;width:100%;display:flex}.subject-tools{gap:4px;margin-left:auto;display:inline-flex}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;width:100%;display:grid}.subject-card{text-align:left;border-radius:var(--radius);background:var(--paper);border:1.5px solid var(--line-strong);border-top:5px solid var(--sc);box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;gap:6px;padding:18px;display:flex}.subject-card:hover{border-color:var(--sc);transform:translateY(-2px)}.subject-card b{font-family:var(--font-display);font-size:20px}.subject-card-icon{background:var(--sc);color:#fff;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.subject-bar{background:var(--line);border-radius:6px;width:100%;height:6px;margin-top:4px;overflow:hidden}.subject-bar i{background:var(--sc);height:100%;display:block}.subject-topics{flex-direction:column;gap:8px;width:100%;list-style:none;display:flex}.subject-topics li{align-items:center;gap:6px;display:flex}.subject-topic{border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line-strong);border-left:5px solid var(--sc);text-align:left;flex:1;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:flex}.subject-topic:hover:not(:disabled){background:var(--hl-soft)}.subject-topic-name{flex:1}.subject-topic-icon{font-size:20px}.empty-note{border:1.5px dashed var(--line-strong);border-radius:var(--radius);width:100%;color:var(--ink-3);text-align:center;padding:22px}.chip-subject{border-left:4px solid var(--sc);align-items:center;gap:6px;display:inline-flex}.hw-page{--hw-ink:#1d3fb8;--hw-red:#d6334a;--hw-hl:#ffe050bf;color:var(--hw-ink);background-color:#fffdf6;background-image:repeating-linear-gradient(#0000 0 31px,#3c6ec847 31px 32px);background-position:0 6px;border:1px solid #e8e2cf;border-radius:6px;padding:34px 30px 30px 62px;font-family:Kalam,Segoe Print,Bradley Hand,cursive;font-size:19px;line-height:32px;position:relative;box-shadow:0 2px #0000000d,0 14px 30px #10193524}:root[data-theme=dark] .hw-page{--hw-ink:#8fb6ff;--hw-red:#ff8da1;--hw-hl:#f4d35e52;background-color:#1a2b25;background-image:repeating-linear-gradient(#0000 0 31px,#8ec5ff29 31px 32px);border-color:#2e463c}.hw-page:before{content:"";background:var(--hw-red);opacity:.55;width:2px;position:absolute;top:0;bottom:0;left:44px}.hw-tape{background:#ffd65ab3;width:74px;height:22px;position:absolute;top:-10px;box-shadow:0 1px 3px #00000026}.hw-tape-l{left:38px;transform:rotate(-5deg)}.hw-tape-r{right:40px;transform:rotate(4deg)}.hw-page h2,.hw-page h3{font-family:Caveat,Kalam,cursive;font-weight:700;line-height:1.1}.hw-title{margin-bottom:4px;font-size:46px;display:inline-block;position:relative}.hw-title-text{background:linear-gradient(transparent 62%, var(--hw-hl) 62%);padding:0 6px}.hw-squiggle{width:100%;height:10px;margin-top:2px;display:block}.hw-sub{color:var(--hw-ink);opacity:.8;margin-bottom:10px;font-size:17px}.hw-page h3{color:var(--hw-red);margin-bottom:2px;font-size:28px}.hw-page p,.hw-page li,.hw-page dd,.hw-page dt{margin:0}.hw-row{grid-template-columns:minmax(0,1fr) 210px;align-items:start;gap:22px;margin:8px 0 14px;display:grid}.hw-def{border:2.5px solid var(--hw-ink);border-radius:255px 14px 225px/14px 225px 14px 255px;padding:8px 16px 10px}.hw-small{opacity:.9;font-size:16.5px;margin-top:4px!important}.hw-side{flex-direction:column;align-items:center;gap:12px;display:flex}.hw-sketch{text-align:center;width:100%;color:var(--hw-ink)}.hw-sketch svg{width:100%;height:auto;display:block}.hw-sketch figcaption{color:var(--hw-red);margin-top:2px;font-family:Caveat,cursive;font-size:20px;line-height:1}.hw-svg-text{fill:currentColor;font-family:Kalam,cursive;font-size:18px;font-weight:700}.hw-svg-small{fill:var(--hw-red);font-family:Caveat,cursive;font-size:19px;font-weight:700}.hw-photo{background:#fff;width:118px;padding:5px 5px 3px;line-height:0;transform:rotate(-3deg);box-shadow:0 5px 12px #00000038}.hw-photo img{object-fit:cover;width:100%;height:86px;display:block}.hw-chain{flex-wrap:wrap;justify-content:center;gap:6px 4px;line-height:1.1;list-style:none;display:flex}.hw-chain li{align-items:center;font-family:Caveat,cursive;font-size:19px;font-weight:700;display:inline-flex}.hw-chain li span{border:2px solid var(--hw-ink);border-radius:12px 4px;padding:3px 9px}.hw-chain li+li:before{content:"→";color:var(--hw-red);margin-right:4px}.hw-chain .hw-back{color:var(--hw-red);font-size:24px}.hw-compare{justify-content:center;align-items:center;gap:8px;font-family:Caveat,cursive;font-size:21px;font-weight:700;line-height:1.1;display:flex}.hw-compare span{border:2px solid var(--hw-ink);border-radius:12px 4px;padding:3px 9px}.hw-compare b{color:var(--hw-red)}.hw-sticky{color:#3b3a1c;background:#fff3a6;max-width:560px;margin:6px 0 14px 4px;padding:10px 16px 12px;font-size:17.5px;line-height:28px;transform:rotate(-.8deg);box-shadow:0 4px 10px #0000002e}.hw-sticky h3{color:#b4232f}:root[data-theme=dark] .hw-sticky{background:#e8d36a}.hw-block{margin:6px 0 12px}.hw-list{padding:0;list-style:none}.hw-list li{padding-left:28px;position:relative}.hw-list li:before{content:"★";color:var(--hw-red);font-size:16px;position:absolute;left:4px}.hw-list-red li:before{content:"⚠"}.hw-warn{color:var(--hw-red)}.hw-warn h3{text-underline-offset:5px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.hw-facts{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 20px;display:grid}.hw-facts div{border-bottom:2px dotted var(--hw-ink);align-items:baseline;gap:8px;display:flex}.hw-facts dt{flex:none;font-weight:700}.hw-facts dt:after{content:":"}.hw-takeaway{font-size:21px;margin-top:14px!important}.hw-takeaway span{color:var(--hw-red);font-family:Caveat,cursive;font-size:28px;font-weight:700}.hw-takeaway mark{background:var(--hw-hl);color:inherit}@media (width<=720px){.hw-page{padding:28px 16px 24px 40px;font-size:17px}.hw-page:before{left:28px}.hw-row{grid-template-columns:minmax(0,1fr)}.hw-side{flex-flow:wrap;justify-content:center}.hw-title{font-size:36px}.lesson-thumb{width:100px}}.ai-notice{flex-direction:column;align-items:flex-start;gap:8px;line-height:1.5;display:flex}.ai-notice p{margin:0}.tool{flex-direction:column;gap:18px;max-width:980px;margin:0 auto;display:flex}.tool-title{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(34px,5vw,52px);font-weight:800;line-height:1.05}.tool-sub{max-width:62ch;font-size:16px}.tool code{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.9em}.stack{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--ink-2);font-size:13px;font-weight:700}.field input,.field textarea{border:1.5px solid var(--line-strong);background:var(--paper);width:100%;height:46px;color:var(--ink);border-radius:11px;outline:none;padding:0 14px;font-size:16px}.field textarea{resize:vertical;height:auto;padding:12px 14px;line-height:1.55}.field input:focus,.field textarea:focus{border-color:var(--pen);box-shadow:0 0 0 3px var(--pen-soft)}.plain-list{flex-direction:column;gap:6px;margin:0;padding-left:20px;line-height:1.5;display:flex}.compare-form{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.compare-swap{border:1px solid var(--line-strong);border-radius:11px;width:46px;height:46px}.compare-go{height:46px;padding:0 22px}.compare-examples{margin-top:-4px}.cmp-title{font-size:24px}.cmp-heads,.cmp-use{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.cmp-head{border-radius:var(--radius);border:1px solid var(--line);background:var(--paper);padding:16px 18px}.cmp-head h3{font-family:var(--font-display);letter-spacing:-.02em;font-size:20px;font-weight:800}.cmp-head p{color:var(--ink-2);margin-top:4px;line-height:1.5}.cmp-head.cmp-a,.card.cmp-a{border-top:4px solid var(--pen)}.cmp-head.cmp-b,.card.cmp-b{border-top:4px solid var(--margin)}.cmp-table{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden}.cmp-row{grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:16px;padding:12px 16px;font-size:15px;line-height:1.5;display:grid}.cmp-row+.cmp-row{border-top:1px solid var(--line)}.cmp-row:nth-child(2n):not(.cmp-row-head){background:var(--paper-2)}.cmp-row b{color:var(--ink);font-weight:700}.cmp-row-head{background:var(--paper-2);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:12.5px;font-weight:800}.cmp-extra{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.dropzone{text-align:center;border:2px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--paper);color:var(--ink-2);flex-direction:column;align-items:center;gap:8px;padding:38px 20px;transition:border-color .15s,background .15s;display:flex}.dropzone.is-over{border-color:var(--pen);background:var(--pen-soft)}.dropzone .btn{margin-top:8px}.thumbs{flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none;display:flex}.thumbs li{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper);width:150px;position:relative;overflow:hidden}.thumbs img{object-fit:cover;width:100%;height:190px;display:block}.thumb-n{background:var(--ink);min-width:22px;color:var(--paper);text-align:center;border-radius:99px;padding:0 6px;font-size:12px;font-weight:700;line-height:22px;position:absolute;bottom:6px;left:6px}.thumb-x{background:var(--paper);width:26px;height:26px;color:var(--ink);border:1px solid var(--line-strong);border-radius:99px;place-items:center;display:grid;position:absolute;top:6px;right:6px}.thumb-x:hover:not(:disabled){background:var(--bad);color:#fff}.scan-grid{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:22px;display:grid}.thumbs-side{flex-flow:column;position:sticky;top:82px}.thumbs-side li{width:100%}.thumbs-side img{height:140px}.scan-title{flex:1;min-width:200px}.scan-text{font-family:var(--font-mono);min-height:280px;font-size:14.5px!important}.scan-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.scan-uncertain{border-left:4px solid var(--hl);background:var(--hl-soft)}.passage{border-left:4px solid var(--pen);background:var(--pen-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-2);margin:0 0 10px;padding:8px 14px;font-style:italic;line-height:1.5}.terms{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:0;display:grid}.terms>div{border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);padding:10px 12px}.terms dt{font-weight:700}.terms dd{color:var(--ink-2);margin:2px 0 0;font-size:14.5px;line-height:1.45}.home-tools{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.home-tool{text-align:left;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);align-items:center;gap:14px;padding:18px 20px;display:flex}.home-tool:hover{border-color:var(--pen)}.home-tool>svg:first-child{color:var(--pen);flex:none}.home-tool span{flex-direction:column;flex:1;gap:2px;display:flex}.home-tool b{font-family:var(--font-display);font-size:18px}.home-tool small{color:var(--ink-3);font-size:13.5px;line-height:1.4}@media (width<=760px){.compare-form{grid-template-columns:minmax(0,1fr)}.compare-swap{justify-self:start}.cmp-heads,.cmp-use{grid-template-columns:minmax(0,1fr)}.cmp-row{grid-template-columns:minmax(0,1fr);gap:4px}.cmp-row-head{display:none}.cmp-row span[data-label]:before{content:attr(data-label) ": ";color:var(--ink-3);font-weight:700}.scan-grid{grid-template-columns:minmax(0,1fr)}.thumbs-side{flex-flow:wrap;position:static}.thumbs-side li{width:110px}}@media print{.topbar,.teacher,.teacher-bubble,.chat,.lesson-head,.tabs,.lesson-foot,.walk-head,.toasts{display:none!important}.lesson-layout{display:block}.lesson,.lesson:before,.lesson:after{box-shadow:none;background:0 0;border:none}.lesson-body{padding:0}}.hw-tools{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}
