@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff)format("woff")}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vazirmatn-arabic-400-normal-DMZFCm7K.woff2)format("woff2"),url(/assets/vazirmatn-arabic-400-normal-C4W5XURk.woff)format("woff")}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/vazirmatn-arabic-700-normal-Dge_DOjm.woff2)format("woff2"),url(/assets/vazirmatn-arabic-700-normal-B5nPuCFv.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff")}:root{--bg:#edf0f4;--surface:#fff;--surface-2:#e3e8ef;--ink:#132033;--muted:#4d5a6e;--line:#c4ccd8;--accent:#1d4ed8;--accent-ink:#fff;--accent-soft:#dce5fb;--focus:#1d4ed8;--good:#146c43;--good-soft:#dbf0e4;--bad:#b42318;--bad-soft:#fbe3e0;--warn:#7a4f00;--warn-soft:#fbeacb;--code-bg:#f6f8fb;--wire:#3b4a63;--grid:#13203312;--tok-kw:#7c3aed;--tok-str:#0f766e;--tok-num:#b45309;--tok-com:#5f6b7d;--tok-fn:#1d4ed8;--brand-plum:#211a38;--brand-plum-hover:#34284f;--brand-plum-deep:#171229;--brand-mint:#c7f36b;--brand-apricot:#ffb86b;--brand-violet:#7967e8;--brand-paper:#fbf9f4;--brand-surface:#fff;--brand-ink:#34313f;--brand-muted:#645d72;--brand-border:#e7e0d4;--brand-plum-rgb:33 26 56;--brand-violet-rgb:121 103 232;--brand-paper-rgb:251 249 244;--brand-white-rgb:255 255 255;--brand-dark-paper:#1c1928;--brand-dark-surface:#292536;--brand-dark-ink:#f1eef8;--brand-dark-muted:#bbb3cb;--cosmos-plum:var(--brand-plum);--cosmos-plum-hover:var(--brand-plum-hover);--cosmos-mint:var(--brand-mint);--cosmos-apricot:var(--brand-apricot);--cosmos-violet:var(--brand-violet);--cosmos-paper:var(--brand-paper);--cosmos-surface:var(--brand-surface);--cosmos-ink:var(--brand-ink);--cosmos-muted:#665f73;--cosmos-border:var(--brand-border);--font-display:"Bricolage Grotesque", "Vazirmatn", system-ui, sans-serif;--font-body:"IBM Plex Sans", "Vazirmatn", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius:8px;--radius-lg:14px;--shadow:0 1px 2px #13203314, 0 4px 14px #1320330f;--user-font-scale:1;--line-height:1.6;--space:16px;--gutter:max(16px, env(safe-area-inset-left,0px));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0d121a;--surface:#151c27;--surface-2:#1e2735;--ink:#e8edf4;--muted:#a3afc0;--line:#2c3748;--accent:#86a8ff;--accent-ink:#0a1330;--accent-soft:#1d2b52;--focus:#9db9ff;--good:#5bd197;--good-soft:#12301f;--bad:#ff8a80;--bad-soft:#3a1715;--warn:#f2c265;--warn-soft:#3a2c0e;--code-bg:#101722;--wire:#9db0cc;--grid:#ffffff0d;--tok-kw:#c4a5ff;--tok-str:#5eddc9;--tok-num:#f3b568;--tok-com:#8a98ad;--tok-fn:#86a8ff;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d121a;--surface:#151c27;--surface-2:#1e2735;--ink:#e8edf4;--muted:#a3afc0;--line:#2c3748;--accent:#86a8ff;--accent-ink:#0a1330;--accent-soft:#1d2b52;--focus:#9db9ff;--good:#5bd197;--good-soft:#12301f;--bad:#ff8a80;--bad-soft:#3a1715;--warn:#f2c265;--warn-soft:#3a2c0e;--code-bg:#101722;--wire:#9db0cc;--grid:#ffffff0d;--tok-kw:#c4a5ff;--tok-str:#5eddc9;--tok-num:#f3b568;--tok-com:#8a98ad;--tok-fn:#86a8ff;--shadow:0 1px 2px #0006, 0 4px 14px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=contrast]{--bg:#fff;--surface:#fff;--surface-2:#ececec;--ink:#000;--muted:#1a1a1a;--line:#000;--accent:#00e;--accent-ink:#fff;--accent-soft:#e6e6ff;--focus:#000;--good:#004d00;--good-soft:#e6ffe6;--bad:#a00000;--bad-soft:#ffe6e6;--warn:#5c3b00;--warn-soft:#fff1d6;--code-bg:#fff;--wire:#000;--grid:transparent;--tok-kw:#5b00b5;--tok-str:#005050;--tok-num:#7a3500;--tok-com:#3d3d3d;--tok-fn:#00e;--shadow:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-palette=cb]{--good:#0b5cad;--good-soft:#dbeafe;--bad:#b45309;--bad-soft:#ffedd5}:root[data-theme=dark][data-palette=cb]{--good:#7ab8ff;--good-soft:#10304f;--bad:#ffb454;--bad-soft:#3d2608}@media (prefers-color-scheme:dark){:root:not([data-theme])[data-palette=cb]{--good:#7ab8ff;--good-soft:#10304f;--bad:#ffb454;--bad-soft:#3d2608}}:root[data-dyslexia="1"]{--font-body:"Atkinson Hyperlegible", "Vazirmatn", system-ui, sans-serif;--font-display:"Atkinson Hyperlegible", "Vazirmatn", system-ui, sans-serif}:root[data-spacing=relaxed]{--line-height:1.85}:root[data-spacing=wide]{--line-height:2.1}*,:before,:after{box-sizing:border-box}html{font-size:calc(100% * var(--user-font-scale));-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:radial-gradient(var(--grid) 1px, transparent 1px);color:var(--ink);font-family:var(--font-body);font-size:.9375rem;line-height:var(--line-height);background-size:22px 22px;min-height:100vh;margin:0;overflow-x:hidden}:root[dir=rtl] body{font-family:"Vazirmatn", var(--font-body)}h1,h2,h3{font-family:var(--font-display);margin:1.4em 0 .5em;line-height:1.25}h1{margin-top:.4em;font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.12rem}p{margin:.7em 0}a{color:var(--accent);text-underline-offset:3px}code,kbd,pre{font-family:var(--font-mono)}code{background:var(--surface-2);direction:ltr;unicode-bidi:isolate;border-radius:4px;padding:.08em .35em;font-size:.92em;display:inline-block}pre code{background:0 0;padding:0;display:inline}pre,.code-ltr,.editor,.outbox{text-align:left;direction:ltr;unicode-bidi:isolate}table{border-collapse:collapse;width:100%;font-size:.92em}th,td{border:1px solid var(--line);text-align:start;vertical-align:top;padding:6px 10px}th{background:var(--surface-2)}blockquote{border-inline-start:4px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius);margin:1em 0;padding:.4em 1em}hr{border:0;border-top:1px solid var(--line);margin:1.6em 0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{inset-inline-start:8px;background:var(--accent);color:var(--accent-ink);border-radius:var(--radius);z-index:100;padding:8px 14px;position:absolute;top:-60px}.skip-link:focus{top:8px}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.wrap{padding-inline:var(--gutter);margin-inline:auto}.app-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;position:sticky;top:0}.app-header .wrap{flex-wrap:wrap;align-items:center;gap:12px;min-height:56px;padding-block:6px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);align-items:center;gap:8px;font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.brand svg{width:28px;height:28px}.spacer{flex:auto}.nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.nav a,.nav button.linklike{color:var(--ink);border-radius:var(--radius);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;min-height:44px;padding:8px 12px;text-decoration:none;display:inline-flex}.nav a:hover,.nav button.linklike:hover{background:var(--surface-2)}.nav a[aria-current=page]{background:var(--accent-soft);font-weight:600}.btn{font:inherit;border-radius:var(--radius);border:2px solid var(--accent);background:var(--accent);min-height:44px;color:var(--accent-ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn.alt{color:var(--accent);background:0 0}.btn.quiet{border-color:var(--line);color:var(--ink);background:0 0;font-weight:500}.btn.danger{background:var(--bad);border-color:var(--bad);color:var(--surface)}.btn.small{min-height:36px;padding:4px 12px;font-size:.9em}.card{overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px 20px}.card+.card{margin-top:16px}.chip{background:var(--accent-soft);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.chip.good{background:var(--good-soft);color:var(--good)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.field{gap:4px;margin:14px 0;display:grid}.field label,.field .label{font-weight:600}.field .hint{color:var(--muted);font-size:.88rem}.field .err{color:var(--bad);font-weight:600}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font:inherit;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:44px;color:var(--ink);width:100%;padding:8px 12px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--focus)}.notice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);border-inline-start-width:5px;margin:12px 0;padding:10px 14px}.notice.info{border-inline-start-color:var(--accent)}.notice.good{border-inline-start-color:var(--good);background:var(--good-soft)}.notice.bad{border-inline-start-color:var(--bad);background:var(--bad-soft)}.notice.warn{border-inline-start-color:var(--warn);background:var(--warn-soft)}.auth-card{max-width:460px;margin:32px auto}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.switch{align-items:center;gap:10px;min-height:44px;display:inline-flex}.switch input{width:22px;height:22px}.hero{padding:36px 0 12px}.hero h1{margin:0 0 8px;font-size:clamp(1.8rem,5vw,2.8rem)}.hero p.lead{color:var(--muted);max-width:46ch;font-size:1.1rem}.lesson-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px;padding:0;list-style:none;display:grid}.lesson-list li .card{flex-direction:column;gap:8px;height:100%;display:flex}.lesson-list .num{font-family:var(--font-display);color:var(--accent);font-size:1.6rem;font-weight:700}.lesson-list .planned{box-shadow:none;background:0 0;border-style:dashed}.lesson-list .planned .num{color:var(--muted)}.layout{grid-template-columns:260px minmax(0,1fr);gap:28px;padding-block:20px;display:grid}.rail{align-self:start;max-height:calc(100vh - 90px);position:sticky;top:72px;overflow:auto}.rail ol{margin:0;padding:0;list-style:none}.rail a{border-radius:var(--radius);color:var(--ink);padding:6px 10px;text-decoration:none;display:block}.rail a[aria-current=true],.rail a:hover{background:var(--accent-soft)}@media (width<=860px){.layout{grid-template-columns:minmax(0,1fr)}.rail{max-height:none;position:static}}.prose{overflow-wrap:break-word}.table-wrap{max-width:100%;margin:1em 0;overflow-x:auto}.table-wrap table{min-width:36rem}.table-wrap:focus-visible{outline-offset:-3px}.codeblock{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--code-bg);margin:14px 0;overflow:hidden}.codeblock .bar{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;display:flex}.codeblock .bar .grow{flex:1}.editor{display:grid;position:relative}.editor textarea,.editor pre{white-space:pre;tab-size:4;background:0 0;border:0;border-radius:0;grid-area:1/1;min-height:3.2em;margin:0;padding:12px 14px;font-size:.88rem;line-height:1.55;overflow:auto}.editor textarea{color:#0000;caret-color:var(--ink);resize:none;z-index:1;outline:none;width:100%;min-height:0}.editor:focus-within{box-shadow:inset 0 0 0 3px var(--focus)}.editor pre{pointer-events:none;color:var(--ink)}.tok-kw{color:var(--tok-kw);font-weight:600}.tok-str{color:var(--tok-str)}.tok-num{color:var(--tok-num)}.tok-com{color:var(--tok-com);font-style:italic}.tok-fn{color:var(--tok-fn)}.outbox{border-top:1px solid var(--line);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;background:var(--surface);max-height:360px;padding:10px 14px;font-size:.86rem;overflow:auto}.outbox .in{color:var(--accent)}.outbox .err{color:var(--bad)}.outbox .note{color:var(--muted);font-style:italic}.outbox.dim{color:var(--muted)}.errorcoach{border-top:1px solid var(--line);background:var(--bad-soft);padding:10px 14px}.mem{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);margin:14px 0;padding:12px}.mem-help{color:var(--muted);margin:0 0 8px;font-size:.9rem}.mem-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.mem-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:16px;display:grid;position:relative}.mem-grid h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:.82rem}.mem-code{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);counter-reset:l;max-height:340px;margin:0;padding:6px 0;font-size:.82rem;list-style:none;overflow:auto}.mem-code li{white-space:pre;border-inline-start:4px solid #0000;padding:0 8px 0 40px;display:block;position:relative}.mem-code li:before{content:attr(value);text-align:right;width:24px;color:var(--muted);position:absolute;left:6px}.mem-code li.cur{background:var(--accent-soft);border-inline-start-color:var(--accent)}.mem-code code{font-family:inherit}.mem-frames,.mem-heap{z-index:1;flex-direction:column;gap:10px;min-width:0;display:flex;position:relative}.mem-frame,.mem-obj{border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:6px 8px}.mem-frame.top{border-color:var(--accent)}.mem-frame-h,.mem-obj-h{font-family:var(--font-mono);color:var(--ink);margin-bottom:4px;font-size:.8rem;font-weight:600}.mem-pairs{border-collapse:collapse;font-family:var(--font-mono);font-size:.84rem}.mem-pairs th{text-align:left;padding:2px 10px 2px 0;font-weight:600}.mem-pairs td{padding:2px 4px}.mem-prim{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:6px;padding:1px 6px}.mem-ref{font-family:var(--font-mono);color:var(--accent-ink);background:var(--wire);border-radius:999px;padding:1px 9px;font-size:.8rem;font-weight:700;display:inline-block}.mem-items{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mem-items li{padding-top:14px;position:relative}.mem-items li[data-i]:before{content:attr(data-i);color:var(--muted);font-size:.68rem;font-family:var(--font-mono);position:absolute;top:0;left:2px}.mem-obj.new{animation:.45s ease-out mem-in}.mem-obj.changed{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.mem-obj.gone{opacity:.8;border-style:dashed}.mem-ghost{opacity:.85}.mem-note,.mem-empty,.mem-more,.mem-returned{color:var(--muted);margin:4px 0 0;font-size:.84rem}.mem-returned{color:var(--good);font-weight:600}.mem-exc{color:var(--bad);font-family:var(--font-mono);margin:8px 0 0;font-size:.86rem}.mem-arrows{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}@keyframes mem-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (width<=760px){.mem-grid{grid-template-columns:minmax(0,1fr)}.mem-code{max-height:220px}}.labs{border-top:2px solid var(--line);margin-top:36px;padding-top:8px}.labs h3{margin:24px 0 6px}.lab{margin-top:14px}.lab-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.lab-head h2,.lab-head h4{margin:0}.lab-code{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);white-space:pre;margin:10px 0;padding:12px 14px;font-size:.88rem;overflow:auto}.lab .field textarea{width:100%}.muted-line{color:var(--muted);margin:6px 0;font-size:.88rem}.verdict{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);border-inline-start-width:5px;margin-top:12px;padding:10px 14px}.verdict.good{border-inline-start-color:var(--good);background:var(--good-soft)}.verdict.bad{border-inline-start-color:var(--bad);background:var(--bad-soft)}.verdict p{margin:8px 0}.cmp{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0;display:grid}.cmp pre{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:2px 0 0;padding:6px 10px;font-size:.86rem}.cmp-h{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.78rem;font-weight:700}.quiz{border:0;margin:10px 0;padding:0}.quiz legend{margin-bottom:8px;padding:0;font-weight:600}.opt{border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--surface);align-items:flex-start;gap:10px;min-height:44px;margin:6px 0;padding:8px 10px;display:flex}.opt input{flex:none;width:20px;height:20px;margin-top:4px}.opt.right{border-color:var(--good);background:var(--good-soft)}.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.tests{margin:8px 0;padding:0;list-style:none}.tests li{padding:4px 0}.tests li.ok{color:var(--good)}.tests li.no{color:var(--bad)}.hints{margin-top:12px}.hint-box{border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);margin:8px 0;padding:8px 12px}.attempts{margin:6px 0;padding-inline-start:22px}.code-inline{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--line);border-radius:5px;padding:0 4px;font-size:.92em}.streak{margin:8px 0 16px;font-weight:600}.chapter-progress,.concepts{margin:0;padding:0;list-style:none}.chapter-progress li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.chapter-progress li a{flex:220px}.concepts li{border-bottom:1px solid var(--line);padding:10px 0}.concept-h{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.meter{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;height:12px;margin-bottom:4px;overflow:hidden}.meter span{background:var(--accent);border-radius:999px;height:100%;display:block}.badge{background:var(--accent);min-width:1.4em;color:var(--accent-ink);text-align:center;border-radius:999px;margin-inline-start:6px;padding:0 6px;font-size:.78rem;font-weight:700;display:inline-block}.blk{border-radius:var(--radius);position:relative}.blk.marked{box-shadow:-4px 0 0 var(--warn);padding-inline-start:10px}.blk-tools{top:0;opacity:0;gap:2px;transition:opacity .15s;display:flex;position:absolute;inset-inline-end:-4px}.blk:hover>.blk-tools,.blk:focus-within>.blk-tools,.blk.marked>.blk-tools{opacity:1}@media (hover:none){.blk-tools{display:none}.blk.marked>.blk-tools{display:flex}.tools-on .blk-tools{opacity:1;justify-content:flex-end;margin-top:-6px;display:flex;position:static}}.tools-on .blk-tools{opacity:1}.icon-btn{min-width:44px;min-height:44px;color:var(--muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:0;font-size:1.1rem}.icon-btn:hover,.icon-btn[aria-pressed=true]{color:var(--ink);background:var(--surface-2)}.note-box{border-inline-start:4px solid var(--warn);background:var(--warn-soft);border-radius:var(--radius);margin:6px 0 14px;padding:8px 12px;font-size:.95rem}.note-edit{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:8px 0 16px;padding:10px 12px}.note-edit textarea{width:100%}.blk.flash{animation:1.6s ease-out flash}@keyframes flash{0%{background:var(--accent-soft)}to{background:0 0}}.results,.notes-list{margin:0;padding:0;list-style:none}.results li+li,.notes-list li+li{margin-top:10px}mark{background:var(--warn-soft);color:var(--ink);outline:1px solid var(--warn);border-radius:3px;padding:0 2px}dialog.shortcuts{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);max-width:min(92vw,460px);padding:18px 22px}dialog.shortcuts::backdrop{background:#00000073}dialog.shortcuts table{border-collapse:collapse;width:100%;margin:8px 0}dialog.shortcuts th{text-align:start;white-space:nowrap;padding:6px 12px 6px 0}kbd{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 7px}.plain-list{gap:10px;margin:8px 0;padding:0;list-style:none;display:grid}.plain-list>li{border-block-end:1px solid var(--line);padding-block:4px}.plain-list>li:last-child{border-block-end:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:16px;display:grid}.grid-2>.card+.card{margin-top:0}button.linklike{font:inherit;color:var(--accent);cursor:pointer;text-align:start;background:0 0;border:0;min-height:32px;padding:0;font-weight:600;text-decoration:underline}.tabs{border-block-end:2px solid var(--line);flex-wrap:wrap;gap:4px;margin-block:12px 16px;display:flex}.tab{font:inherit;min-height:44px;color:var(--ink);cursor:pointer;border-radius:var(--radius) var(--radius) 0 0;background:0 0;border:2px solid #0000;border-block-end:0;padding:8px 14px;font-weight:600}.tab[aria-selected=true]{background:var(--surface);border-color:var(--line);color:var(--accent);border-block-end:2px solid var(--surface);margin-block-end:-2px}.stats{flex-wrap:wrap;gap:24px;padding:0;list-style:none;display:flex}.stats strong{font-size:1.5rem;display:block}.heat{border-collapse:separate;border-spacing:2px;min-width:0}.heat th,.heat td{text-align:center;padding:6px 8px;font-size:.88rem}.heat thead th{vertical-align:bottom;max-inline-size:7rem}.heat .heat-h{overflow-wrap:anywhere;line-height:1.2;display:block}.heat tbody th{text-align:start;white-space:nowrap;background:var(--surface);position:sticky;inset-inline-start:0}.heat td{border-radius:4px;min-inline-size:3.2rem;font-weight:600}.heat .h-none{background:var(--surface-2);color:var(--muted)}.heat .h-a{color:#fff;background:#1f7a4d}.heat .h-b{background:var(--good-soft);color:var(--good)}.heat .h-c{background:var(--warn-soft);color:var(--warn)}.heat .h-d{background:var(--bad-soft);color:var(--bad)}.heat tr.avg th,.heat tr.avg td{border-block-end:2px solid var(--line)}:root[data-theme=dark] .heat .h-a{color:#04140b;background:#2f9461}@media (prefers-color-scheme:dark){:root:not([data-theme]) .heat .h-a{color:#04140b;background:#2f9461}}.bars{gap:4px;margin:8px 0;padding:0;list-style:none;display:grid}.bars li{grid-template-columns:4.5rem 1fr 2rem;align-items:center;gap:8px;font-size:.88rem;display:grid}.bars .bar{background:var(--accent);border-radius:3px;block-size:16px;min-inline-size:2px;display:block}.bars .bar-n{text-align:end;font-weight:600}.gradebook th,.gradebook td{vertical-align:top}.gradebook td{min-inline-size:7rem}.gradebook .gb-missing{background:var(--bad-soft)}.gradebook .gb-late{background:var(--warn-soft)}.gradebook .gb-graded{background:var(--accent-soft)}.rv-item{border-block-end:1px solid var(--line);padding-block:10px}.rv-item:last-child{border-block-end:0}.announce+.announce{border-block-start:1px solid var(--line);margin-block-start:12px;padding-block-start:12px}.notes-list li.unread{border-inline-start:4px solid var(--accent);padding-inline-start:10px}.print-only{display:none}@media print{.app-header,.skip-link,.no-print,.tabs,#main>p:last-child,.notice{display:none!important}.print-only{display:block}body{color:#000;background:#fff}.card{box-shadow:none;border:0;padding:0}.table-wrap{overflow:visible}.gradebook a{color:#000;text-decoration:none}}.flow-wrap{margin:8px 0}.flow-fig{margin:8px 0 14px}.flow-fig figcaption{color:var(--muted);margin-bottom:4px;font-size:.92rem;font-weight:600}.flow-scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);max-width:100%;padding:6px;overflow-x:auto}.flow-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:2px}svg.flow{font-family:var(--font-body);height:auto;margin-inline:auto;display:block}.flow-edge{fill:none;stroke:var(--wire);stroke-width:1.6px}.flow-edge.dashed{stroke-dasharray:6 4}.flow-edge.back{stroke-width:1.4px}.flow-arrow{fill:var(--wire)}.flow-elabel{fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font-size:12px;font-weight:600}.flow-node>:is(rect,polygon,circle){fill:var(--surface-2);stroke:var(--wire);stroke-width:1.6px}.flow-node line{stroke:var(--wire);stroke-width:1.2px}.flow-node.k-start>rect,.flow-node.k-end>rect{fill:var(--accent-soft)}.flow-node.k-decision>polygon,.flow-node.k-loop>polygon{fill:var(--warn-soft)}.flow-node.k-io>polygon{fill:var(--good-soft)}.flow-node.k-return>rect,.flow-node.k-break>rect,.flow-node.k-continue>rect{fill:var(--accent-soft)}.flow-node.k-error>rect{fill:var(--bad-soft)}.flow-node.k-merge>circle{fill:var(--wire)}.flow-node.seen>:is(rect,polygon,circle){fill:var(--accent-soft)}.flow-node.on>:is(rect,polygon,circle){fill:var(--accent);stroke:var(--accent);stroke-width:3px}.flow-node.on .flow-text,.flow-node.on .flow-code{fill:var(--accent-ink)}.flow-text{fill:var(--ink);font-size:13px}.flow-code{fill:var(--ink);font-size:12px;font-family:var(--font-mono)}.flow-count{fill:var(--ink);font-size:11px;font-weight:700}.flow-node.on .flow-count{fill:var(--accent-ink)}.flow-outline{margin-top:6px;font-size:.92rem}.flow-outline summary{cursor:pointer;font-weight:600}.flow-outline ol{margin:6px 0;padding-inline-start:1.4em}.flow-legend{margin:4px 0 0;padding-inline-start:1.2em;font-size:.9rem}@media (forced-colors:active){.flow-node>:is(rect,polygon,circle){fill:canvas;stroke:canvastext}.flow-node.on>:is(rect,polygon,circle){fill:highlight;stroke:highlight}.flow-node.on .flow-text{fill:highlighttext}}.app-header{--header-ink:var(--brand-plum);--header-muted:var(--brand-muted);--header-violet:var(--brand-violet);--header-mint:var(--brand-mint);--header-paper:var(--brand-paper);z-index:40;border-bottom:1px solid rgb(var(--brand-plum-rgb) / 9%);background:rgb(var(--brand-paper-rgb) / 92%);color:var(--header-ink);box-shadow:0 4px 18px rgb(var(--brand-plum-rgb) / 5%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0}.app-header-inner{align-items:center;gap:clamp(16px,2vw,30px);width:min(100% - 50px,1440px);min-height:76px;margin-inline:auto;display:flex;position:relative}.app-brand{color:var(--header-ink);flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.app-brand-mark{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:var(--header-mint);border-radius:10px;place-items:center;width:39px;height:39px;transition:transform .18s;display:grid}.app-brand:hover .app-brand-mark{transform:rotate(-5deg)}.app-brand-mark svg{width:27px;height:27px}.app-brand-name{font:800 16px/1 var(--font-display);gap:4px;display:grid}.app-brand-name small{color:var(--header-muted);font:700 8px/1.2 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.app-header-panel{flex:1;justify-content:space-between;align-items:center;gap:clamp(12px,1.5vw,22px);min-width:0;display:flex}.app-nav{align-items:center;gap:3px;min-width:0;display:flex}.app-icon{flex:0 0 18px;width:18px;height:18px;display:block}.app-nav a{min-height:40px;color:var(--header-muted);white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:7px;padding:7px 10px;font-size:11px;font-weight:650;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:inline-flex;position:relative}.app-nav a .app-icon{flex-basis:16px;width:16px;height:16px}.app-nav a:hover{color:var(--header-ink);background:rgb(var(--brand-plum-rgb) / 5%)}.app-nav a[aria-current=page]{border-color:rgb(var(--brand-plum-rgb) / 8%);background:var(--header-mint);color:var(--header-ink);font-weight:750}.app-nav a:focus-visible,.app-header-action:focus-visible,.app-signout:focus-visible,.app-menu-toggle:focus-visible,.app-brand:focus-visible{outline:3px solid var(--header-violet);outline-offset:3px}.app-nav .badge{color:#923a31;background:#f8ded9;border-radius:999px;place-items:center;min-width:18px;height:18px;padding-inline:4px;font-size:9px;font-weight:800;display:inline-grid}.app-header-actions{border-inline-start:1px solid rgb(var(--brand-plum-rgb) / 12%);flex:none;align-items:center;gap:7px;padding-inline-start:13px;display:flex}.app-sync-status{border:1px solid rgb(var(--brand-plum-rgb) / 10%);min-height:31px;color:var(--header-muted);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:6px;padding-inline:9px;font-size:9px;font-weight:700;display:inline-flex}.app-sync-status .app-icon{width:15px;height:15px;color:var(--header-violet);flex-basis:15px}.app-sync-status.good .app-icon{color:#397a43}.app-sync-status.warn .app-icon{color:#a55b19}.app-header-action,.app-signout{border:1px solid rgb(var(--brand-plum-rgb) / 12%);min-height:38px;color:var(--header-ink);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:6px 11px;font-size:10px;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.app-header-action .app-icon,.app-signout .app-icon{flex-basis:16px;width:16px;height:16px}.app-header-action:hover{border-color:rgb(var(--brand-violet-rgb) / 35%);background:rgb(var(--brand-violet-rgb) / 8%)}.app-signout{border-color:var(--header-ink);background:var(--header-ink);color:var(--brand-surface)}.app-signout:hover{background:var(--brand-plum-hover);transform:translateY(-1px)}.app-account-menu{position:relative}.app-account-panel{z-index:5;top:calc(100% + 10px);border:1px solid rgb(var(--brand-plum-rgb) / 13%);background:var(--header-paper);width:min(320px,100vw - 28px);box-shadow:0 18px 48px rgb(var(--brand-plum-rgb) / 18%);border-radius:18px;gap:12px;padding:14px;display:grid;position:absolute;inset-inline-end:0}.app-account-summary{border-bottom:1px solid rgb(var(--brand-plum-rgb) / 12%);align-items:center;gap:12px;min-width:0;padding:2px 2px 14px;display:flex}.app-account-avatar{border:1px dashed rgb(var(--brand-violet-rgb) / 55%);background:linear-gradient(145deg, var(--header-mint), rgb(var(--brand-violet-rgb) / 14%));width:52px;height:52px;color:var(--header-ink);border-radius:16px;flex:0 0 52px;place-items:center;display:grid;overflow:hidden}.app-account-avatar .app-icon{width:25px;height:25px}.app-account-identity{gap:4px;min-width:0;display:grid}.app-account-identity strong{color:var(--header-ink);font:750 14px/1.3 var(--font-display);text-overflow:ellipsis;overflow:hidden}.app-account-identity span,.app-account-classes>span:not(.app-account-section-title){color:var(--header-muted);text-overflow:ellipsis;font-size:11px;overflow:hidden}.app-account-classes{gap:7px;min-width:0;display:grid}.app-account-section-title{color:var(--header-muted);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.app-account-class-list{gap:5px;max-height:112px;display:grid;overflow-y:auto}.app-account-class{border:1px solid rgb(var(--brand-plum-rgb) / 8%);background:rgb(var(--brand-plum-rgb) / 3%);min-width:0;color:var(--header-ink);border-radius:10px;align-items:center;gap:8px;padding:7px 9px;font-size:11px;font-weight:650;display:flex}.app-account-class .app-icon{width:15px;height:15px;color:var(--header-violet);flex-basis:15px}.app-account-class>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-account-preferences{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.app-account-preferences .app-header-action{justify-content:flex-start;min-width:0}.app-account-panel>.app-header-action,.app-account-panel>.app-signout{justify-content:flex-start;width:100%}.app-account-panel>.app-signout{justify-content:center}.app-menu-toggle{display:none}@media (width<=1320px){.app-header-inner{justify-content:space-between;min-height:68px}.app-menu-toggle{border:1px solid rgb(var(--brand-plum-rgb) / 12%);width:42px;height:42px;color:var(--header-ink);cursor:pointer;background:0 0;border-radius:13px;flex:none;place-items:center;transition:background .15s,border-color .15s;display:grid}.app-menu-toggle .app-icon{width:20px;height:20px}.app-menu-toggle:hover{border-color:var(--header-violet);background:rgb(var(--brand-violet-rgb) / 8%)}.app-header-panel{z-index:2;top:calc(100% + 9px);border:1px solid rgb(var(--brand-plum-rgb) / 12%);background:var(--header-paper);box-shadow:0 20px 48px rgb(var(--brand-plum-rgb) / 14%);border-radius:19px;align-items:stretch;gap:14px;padding:14px;display:none;position:absolute;inset-inline:0}.app-header-panel.is-open{flex-direction:column;display:flex}.app-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.app-nav a{border:1px solid #0000;min-height:44px;padding-inline:12px;font-size:12px}.app-nav a[aria-current=page]{border-color:rgb(var(--brand-plum-rgb) / 9%)}.app-header-actions{border-inline-start:0;border-top:1px solid rgb(var(--brand-plum-rgb) / 10%);flex-wrap:wrap;gap:8px;padding:12px 0 0}.app-header-actions .app-sync-status{margin-inline-end:auto}.app-header-action,.app-signout{min-height:40px;padding-inline:13px;font-size:11px}.app-account-menu{flex:1}.app-account-menu>.app-header-action{width:100%}.app-account-panel{inset-inline-end:0}}@media (width<=520px){.app-header-inner{width:calc(100% - 28px);min-height:62px}.app-brand-mark{border-radius:12px;width:36px;height:36px}.app-brand-name{font-size:15px}.app-menu-toggle{width:40px;height:40px}.app-header-panel{border-radius:16px;padding:11px;inset-inline:-2px}.app-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.app-nav a{min-width:0;font-size:11px}.app-header-actions{gap:6px}.app-header-actions .app-sync-status{flex-basis:100%;width:fit-content;margin:0}.app-header-action,.app-signout{flex:1;padding-inline:8px;font-size:10px}}:root[data-theme=dark] .app-header{--header-ink:var(--brand-dark-ink);--header-muted:var(--brand-dark-muted);--header-paper:var(--brand-dark-paper);border-bottom-color:rgb(var(--brand-white-rgb) / 10%);background:#1c1928f0}:root[data-theme=dark] .app-brand-mark{border-color:rgb(var(--brand-white-rgb) / 12%)}:root[data-theme=dark] .app-nav a:hover{background:rgb(var(--brand-white-rgb) / 7%)}:root[data-theme=dark] .app-nav a[aria-current=page]{color:var(--brand-plum)}:root[data-theme=dark] .app-sync-status{border-color:rgb(var(--brand-white-rgb) / 11%);background:var(--brand-dark-surface)}:root[data-theme=dark] .app-header-action,:root[data-theme=dark] .app-menu-toggle{border-color:rgb(var(--brand-white-rgb) / 13%);color:var(--header-ink)}:root[data-theme=dark] .app-signout{border-color:var(--header-mint);background:var(--header-mint);color:var(--brand-plum)}:root[data-theme=dark] .app-account-panel{border-color:rgb(var(--brand-white-rgb) / 13%)}:root[data-theme=dark] .app-account-class{border-color:rgb(var(--brand-white-rgb) / 11%);background:rgb(var(--brand-white-rgb) / 4%)}:root[data-theme=contrast] .app-header{border:2px solid var(--ink);background:var(--surface);color:var(--ink);box-shadow:none}:root[data-theme=contrast] .app-header .app-nav a[aria-current=page],:root[data-theme=contrast] .app-header .app-brand-mark,:root[data-theme=contrast] .app-account-panel{border:2px solid var(--ink)}@media (prefers-reduced-motion:reduce){.app-header *,.app-header :before,.app-header :after{transition-duration:.001ms!important}}.auth-page{width:calc(100% + var(--gutter) * 2);min-height:calc(100vh - 56px);margin:-1px calc(var(--gutter) * -1) 0;background:radial-gradient(circle at 7% 36%, #c7f36b2e 0 100px, transparent 102px), radial-gradient(circle at 96% 72%, #8a7ce81c 0 160px, transparent 162px), var(--cosmos-paper);color:var(--cosmos-ink);overflow:hidden}.auth-header{z-index:2;border-bottom:1px solid rgb(var(--brand-plum-rgb) / 9%);background:rgb(var(--brand-paper-rgb) / 88%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:relative}.auth-header-inner{justify-content:space-between;align-items:center;gap:20px;width:min(100% - 48px,1240px);min-height:76px;margin-inline:auto;display:flex}.auth-brand{color:var(--cosmos-plum);font-family:var(--font-display);align-items:center;gap:10px;font-size:19px;font-weight:800;text-decoration:none;display:inline-flex}.auth-brand svg{width:36px;height:36px}.auth-header-nav{align-items:center;gap:24px;display:flex}.auth-locale,.auth-home-link{min-height:42px;color:var(--cosmos-ink);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 0;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.auth-home-link span{color:var(--cosmos-violet);font-size:17px;transition:transform .16s}.auth-home-link:hover span{transform:translate(-3px)}.auth-main{align-items:center;min-height:calc(100vh - 158px);padding:50px 24px;display:grid}.auth-shell{border:1px solid rgb(var(--brand-plum-rgb) / 10%);width:min(100%,1050px);min-height:570px;box-shadow:0 26px 80px rgb(var(--brand-plum-rgb) / 11%), 0 3px 12px rgb(var(--brand-plum-rgb) / 5%);background:#fff;border-radius:22px;grid-template-columns:minmax(280px,.83fr) minmax(0,1fr);align-items:stretch;margin-inline:auto;display:grid;overflow:hidden}.auth-story{isolation:isolate;background:radial-gradient(circle at 83% 18%, #c7f36b30 0 72px, transparent 74px), radial-gradient(circle at 2% 92%, #8a7ce863 0 120px, transparent 122px), linear-gradient(148deg, var(--brand-plum-hover), var(--brand-plum) 62%, var(--brand-plum-deep));color:#fff;flex-direction:column;justify-content:center;min-width:0;padding:clamp(30px,5vw,58px);display:flex;position:relative;overflow:hidden}.auth-story:before,.auth-story:after{z-index:-1;content:"";pointer-events:none;border:1px solid #ffffff1f;border-radius:50%;position:absolute}.auth-story:before{width:330px;height:330px;top:-110px;right:-120px}.auth-story:after{width:340px;height:340px;bottom:-175px;right:-70px}.auth-story-decoration span{color:var(--cosmos-mint);font-size:24px;position:absolute}.auth-story-decoration span:first-child{top:12%;right:16%}.auth-story-decoration span:nth-child(2){color:var(--cosmos-apricot);font-size:30px;bottom:15%;right:13%}.auth-story-decoration span:last-child{color:#bcb1ff;font-size:38px;top:38%;left:9%}.auth-story-kicker{color:var(--cosmos-mint);letter-spacing:.15em;text-transform:uppercase;margin:0 0 18px;font-size:11px;font-weight:800}.auth-story h2{color:#fff;max-width:390px;font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(32px,4vw,47px);font-weight:800;line-height:1.08}.auth-story-lead{color:#d0cbdd;max-width:36ch;margin:18px 0 0;font-size:14px;line-height:1.8}.auth-story-code{font-family:var(--font-mono);background:#0d0a1b5e;border:1px solid #ffffff1f;border-radius:12px;gap:12px;margin-top:34px;padding:20px;font-size:12px;display:grid}.auth-story-code>span{align-items:center;gap:14px;display:flex}.auth-story-code i{color:#85809a;font-style:normal}.auth-story-code code{color:#f4f1ff;font-size:inherit;background:0 0;padding:0}.auth-story-code code b{color:var(--cosmos-apricot);font-weight:500}.auth-story-code .auth-story-output{border-top:1px solid #ffffff1f;margin-top:3px;padding-top:12px}.auth-story-code .auth-story-output i,.auth-story-code .auth-story-output code{color:var(--cosmos-mint)}.auth-story-caption{color:#d0cbdd;align-items:center;gap:9px;margin-top:24px;font-size:11px;font-weight:650;display:flex}.auth-story-caption span{color:var(--cosmos-mint)}.auth-card{width:100%;min-width:0;max-width:none;box-shadow:none;color:var(--cosmos-ink);background:#fff;border:0;border-radius:0;flex-direction:column;justify-content:center;align-self:stretch;gap:9px;margin:0;padding:clamp(30px,5vw,62px);display:flex}.auth-card>*{min-width:0}.auth-card h1{color:var(--cosmos-plum);font-family:var(--font-display);letter-spacing:-.04em;margin:0 0 12px;font-size:clamp(28px,3vw,36px);font-weight:800;line-height:1.15}.auth-card p{color:var(--cosmos-muted);margin:4px 0;font-size:13px;line-height:1.7}.auth-card a:not(.btn){color:#6555c8;font-weight:700;text-decoration:none}.auth-card a:not(.btn):hover{color:var(--cosmos-plum-hover);text-decoration:underline}.auth-card form{flex-direction:column;gap:4px;width:100%;display:flex}.auth-card .field{gap:6px;margin:8px 0}.auth-card .field label,.auth-card label:not(.switch){color:var(--cosmos-ink);font-size:12px;font-weight:700}.auth-card input:not([type=checkbox]),.auth-card select,.auth-card textarea{box-sizing:border-box;border:1px solid var(--cosmos-border);width:100%;min-height:48px;color:var(--cosmos-ink);font:inherit;background:#fffefa;border-radius:10px;outline:none;padding:11px 13px;font-size:14px;transition:border-color .16s,box-shadow .16s}.auth-card input:focus,.auth-card select:focus,.auth-card textarea:focus{border-color:var(--cosmos-violet);box-shadow:0 0 0 3px rgb(var(--brand-violet-rgb) / 16%)}.auth-card input::placeholder{color:#9b94a8}.auth-card .btn{border:1px solid var(--cosmos-plum);background:var(--cosmos-plum);color:#fff;min-height:48px;font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:750;text-decoration:none;transition:background .16s,transform .16s,box-shadow .16s;display:inline-flex}.auth-card .btn:hover:not(:disabled){background:var(--cosmos-plum-hover);box-shadow:0 7px 16px rgb(var(--brand-plum-rgb) / 16%);transform:translateY(-1px)}.auth-card .btn:disabled{opacity:.55;cursor:not-allowed}.auth-card .btn.quiet{border-color:var(--cosmos-border);color:var(--cosmos-plum);background:#fff;font-weight:650}.auth-card .btn.quiet:hover:not(:disabled){border-color:var(--cosmos-violet);background:#f4f1ff}.auth-card form>.row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:9px;display:grid}.auth-card>.row{flex-wrap:wrap;gap:10px;display:flex}.auth-card>.row .btn{flex:1}.auth-card .hint{color:var(--cosmos-muted);font-size:11px}.auth-card .switch{min-height:42px;color:var(--cosmos-ink);cursor:pointer;align-items:center;gap:9px;font-size:12px;font-weight:650;display:flex}.auth-card input[type=checkbox]{width:17px;height:17px;accent-color:var(--cosmos-violet)}.auth-card [role=alert],.auth-card [aria-live]{overflow-wrap:anywhere}.auth-card :focus-visible,.auth-header :focus-visible{outline:3px solid rgb(var(--brand-violet-rgb) / 58%);outline-offset:3px}.auth-footer{min-height:58px;color:var(--cosmos-muted);text-align:center;justify-content:center;align-items:center;padding-inline:20px;font-size:11px;display:flex}@media (width<=820px){.auth-main{min-height:0;padding-block:34px}.auth-shell{grid-template-columns:minmax(0,1fr);max-width:620px}.auth-story{min-height:230px;padding:28px 32px}.auth-story h2{max-width:520px;font-size:clamp(30px,6vw,40px)}.auth-story-lead{max-width:52ch;margin-top:11px}.auth-story-code{gap:7px;width:180px;margin:0;padding:12px;font-size:10px;position:absolute;bottom:24px;right:28px}.auth-story-caption{display:none}.auth-card{padding:34px clamp(24px,7vw,56px)}}@media (width<=520px){.auth-header-inner{width:calc(100% - 32px);min-height:64px}.auth-brand{gap:8px;font-size:17px}.auth-brand svg{width:32px;height:32px}.auth-header-nav{gap:16px}.auth-locale,.auth-home-link{font-size:12px}.auth-main{padding:20px 14px 28px}.auth-shell{border-radius:17px}.auth-story{min-height:0;padding:24px 22px}.auth-story-kicker{margin-bottom:10px;font-size:9px}.auth-story h2{max-width:330px;font-size:30px}.auth-story-lead{max-width:40ch;margin-top:9px;font-size:12px}.auth-story-code{display:none}.auth-card{gap:6px;padding:28px 22px}.auth-card h1{margin-bottom:6px;font-size:29px}.auth-card form{gap:0}.auth-card form>.row{grid-template-columns:minmax(0,1fr)}.auth-footer{min-height:48px}}@media (prefers-reduced-motion:reduce){.auth-page *,.auth-page :before,.auth-page :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.landing-page{--landing-ink:var(--brand-plum);--landing-muted:var(--brand-muted);--landing-violet:var(--brand-violet);--landing-mint:var(--brand-mint);width:calc(100% + var(--gutter) * 2);min-height:calc(100vh - 56px);margin:-1px calc(var(--gutter) * -1) 0;background:var(--brand-paper);color:var(--landing-ink);font-family:var(--font-body);overflow:hidden}.landing-header{z-index:30;border-bottom:1px solid rgb(var(--brand-plum-rgb) / 9%);background:rgb(var(--brand-paper-rgb) / 92%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0}.landing-header-inner{justify-content:space-between;align-items:center;gap:28px;width:min(100% - 50px,1440px);min-height:78px;margin-inline:auto;display:flex}.landing-brand{color:var(--landing-ink);font-family:var(--font-display);flex:none;align-items:center;gap:10px;font-size:19px;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.landing-brand svg{width:38px;height:38px}.landing-brand>span{gap:4px;display:grid}.landing-brand small{color:var(--landing-muted);font-family:var(--font-body);letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:650}.landing-nav{align-items:center;gap:clamp(16px,2.6vw,36px);display:flex}.landing-nav>a:not(.landing-join){color:var(--landing-muted);font-size:13px;font-weight:650;text-decoration:none;transition:color .16s}.landing-nav>a:not(.landing-join):hover,.landing-login:hover{color:var(--landing-violet)}.landing-language,.landing-login{color:var(--landing-ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:13px;font-weight:700;text-decoration:none}.landing-join{border:1px solid var(--landing-ink);background:var(--landing-ink);color:#fff;border-radius:999px;justify-content:center;align-items:center;gap:14px;min-height:42px;padding:0 18px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .16s,background .16s,box-shadow .16s;display:inline-flex}.landing-join span{font-size:16px;transition:transform .16s}.landing-join:hover{background:var(--brand-plum-hover);box-shadow:0 8px 18px rgb(var(--brand-plum-rgb) / 18%);transform:translateY(-2px)}.landing-join:hover span{transform:translate(2px,-2px)}.landing-menu-toggle{display:none}.landing-main{width:min(100% - 100px,1440px);margin-inline:auto}.landing-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(26px,5vw,88px);min-height:min(690px,100vh - 78px);padding-block:72px 90px;display:grid}.landing-copy{z-index:2;padding-block:24px;position:relative}.landing-eyebrow{color:var(--landing-violet);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 24px;font-size:12px;font-weight:800;display:flex}.landing-live-dot{background:#75b744;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #75b74421}.landing-copy h1{max-width:670px;color:var(--landing-ink);font-family:var(--font-display);letter-spacing:-.065em;margin:0;font-size:clamp(48px,6.6vw,82px);font-weight:800;line-height:.99}.landing-copy h1 span{width:fit-content;color:var(--landing-violet);display:block;position:relative}.landing-copy h1 span:after{z-index:-1;background:var(--landing-mint);content:"";border-radius:50%;height:15px;position:absolute;bottom:0;left:-2px;right:-6px;transform:rotate(-2deg)}.landing-lead{max-width:470px;color:var(--landing-muted);margin:26px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.75}.landing-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px;display:flex}.landing-join-large{min-height:54px;padding-inline:24px;font-size:14px}.landing-demo-link{color:var(--landing-ink);align-items:center;gap:9px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.landing-demo-link span{border:1px solid rgb(var(--brand-plum-rgb) / 20%);border-radius:50%;place-items:center;width:28px;height:28px;transition:transform .16s;display:grid}.landing-demo-link:hover span{transform:translateY(3px)}.landing-proof{color:var(--landing-muted);align-items:center;gap:12px;margin-top:42px;font-size:11px;font-weight:650;display:flex}.landing-proof-avatars{padding-inline-start:4px;display:flex}.landing-proof-avatars span{border:2px solid var(--brand-paper);width:27px;height:27px;color:var(--landing-ink);background:#f2bba7;border-radius:50%;place-items:center;margin-inline-start:-5px;font-size:10px;font-weight:800;display:grid}.landing-proof-avatars span:nth-child(2){background:#c7bafa}.landing-proof-avatars span:nth-child(3){background:var(--landing-mint)}.landing-visual{isolation:isolate;place-items:center;min-width:0;min-height:460px;scroll-margin-top:100px;display:grid;position:relative}.landing-visual:before{z-index:-2;aspect-ratio:1;content:"";background:#eeebff;border-radius:44% 56% 57% 43%/47% 43% 57% 53%;width:min(90%,450px);animation:12s ease-in-out infinite alternate landing-blob;position:absolute;transform:rotate(-14deg)}.landing-visual:after{z-index:-1;aspect-ratio:1;border:1px dashed rgb(var(--brand-violet-rgb) / 28%);content:"";border-radius:50%;width:78%;animation:42s linear infinite landing-spin;position:absolute}.landing-orbit{z-index:-1;background:var(--landing-violet);width:12px;height:12px;box-shadow:0 0 0 7px rgb(var(--brand-violet-rgb) / 12%);border-radius:50%;position:absolute}.landing-orbit-one{top:15%;right:16%}.landing-orbit-two{background:#f1a37e;width:8px;height:8px;bottom:17%;left:13%;box-shadow:0 0 0 6px #f1a37e29}.landing-star{color:var(--landing-violet);font-size:27px;animation:4s ease-in-out infinite landing-float;position:absolute}.landing-star-one{top:12%;left:14%}.landing-star-two{color:#eaa66f;animation-delay:-2s;bottom:18%;right:10%}.landing-terminal{background:var(--brand-plum);color:#f8f6ff;border:1px solid #ffffffb3;border-radius:18px;width:min(100%,460px);transition:transform .26s,box-shadow .26s;overflow:hidden;transform:rotate(2deg);box-shadow:0 32px 80px #261d4f40,0 8px 18px #261d4f1f}.landing-terminal:hover{transform:rotate(0)translateY(-4px);box-shadow:0 38px 90px #261d4f4d,0 8px 18px #261d4f1f}.terminal-bar{color:#aaa3bf;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid #ffffff1a;grid-template-columns:1fr auto 1fr;align-items:center;min-height:48px;padding-inline:16px;font-size:10px;font-weight:700;display:grid}.terminal-lights{gap:5px;display:flex}.terminal-lights i{background:#f17f75;border-radius:50%;width:7px;height:7px}.terminal-lights i:nth-child(2){background:#f2c36c}.terminal-lights i:nth-child(3){background:#82cc85}.terminal-python{color:var(--landing-mint);justify-self:end}.demo-tabs{gap:6px;padding:14px 18px 0;display:flex}.demo-tabs button{color:#aaa3bf;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 10px;font-size:10px;font-weight:700;transition:background .16s,color .16s}.demo-tabs button[aria-pressed=true]{color:var(--landing-mint);background:#c7f36b1a;border-color:#c7f36b3d}.demo-panel{min-height:190px;padding:18px 24px 14px}.demo-prompt{color:#c8c2d8;margin:0 0 16px;font-size:12px}.demo-code{font-family:var(--font-mono);gap:8px;font-size:13px;display:grid}.demo-code>span{gap:15px;display:flex}.demo-code i{color:#77708d;-webkit-user-select:none;user-select:none;font-style:normal}.demo-code code{color:#f3efff;font-size:inherit;background:0 0;padding:0}.demo-code b{color:#c4b5fd;font-weight:500}.demo-code em{color:#ffbd82;font-style:normal}.demo-output{border-inline-start:2px solid var(--landing-mint);color:#b8b1cc;background:#ffffff0d;align-items:center;gap:12px;min-height:42px;margin-top:18px;padding:8px 11px;font-size:10px;transition:border-color .18s,opacity .18s;display:flex}.demo-output.is-muted{border-inline-start-color:#77708d}.demo-output code{color:var(--landing-mint);font-family:var(--font-mono);background:0 0;padding:0;font-size:12px}.demo-run{background:var(--landing-mint);min-height:34px;color:var(--brand-plum);font:inherit;cursor:pointer;border:0;border-radius:7px;align-items:center;gap:8px;margin:0 24px 22px;padding:0 12px;font-size:11px;font-weight:800;transition:transform .16s,background .16s;display:inline-flex}.demo-run:hover{background:#d7ff8b;transform:translateY(-2px)}.landing-float-card{border:1px solid rgb(var(--brand-plum-rgb) / 7%);box-shadow:0 12px 28px rgb(var(--brand-plum-rgb) / 12%);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:12px 15px;animation:5s ease-in-out infinite landing-float;display:flex;position:absolute;bottom:36px;right:-12px;transform:rotate(-3deg)}.landing-float-card>span{width:31px;height:31px;color:var(--landing-violet);background:#f1eeff;border-radius:9px;place-items:center;display:grid}.landing-float-card div{gap:3px;display:grid}.landing-float-card b{font-size:10px}.landing-float-card small{color:var(--landing-muted);font-size:9px}.landing-how{padding-block:34px 88px;scroll-margin-top:95px}.landing-section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;display:flex}.landing-section-heading .landing-eyebrow{margin-bottom:8px}.landing-section-heading h2,.landing-bottom-cta h2{color:var(--landing-ink);font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(29px,4vw,44px);font-weight:800;line-height:1.1}.landing-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.landing-steps li{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:#ffffffa6;border-radius:14px;grid-template-columns:1fr auto;align-content:space-between;gap:24px;min-height:174px;padding:21px;transition:transform .2s,box-shadow .2s,background .2s;display:grid;position:relative}.landing-steps li:hover{box-shadow:0 16px 32px rgb(var(--brand-plum-rgb) / 8%);background:#fff;transform:translateY(-5px)}.landing-steps li>span{color:var(--landing-violet);letter-spacing:.1em;font-size:11px;font-weight:800}.landing-steps li>div{grid-column:1/-1}.landing-steps h3{color:var(--landing-ink);margin:0;font-size:16px;font-weight:750}.landing-steps p{color:var(--landing-muted);margin:7px 0 0;font-size:12px;line-height:1.6}.landing-steps li>b{width:30px;height:30px;color:var(--landing-violet);background:#efedff;border-radius:9px;place-items:center;font-size:13px;display:grid}.landing-steps li:nth-child(2)>b{color:#486d1e;background:#eff8d8}.landing-steps li:nth-child(3)>b{color:#bc7041;background:#fff0e6}.landing-bottom-cta{background:radial-gradient(circle at 14% 80%, #c7f36b21 0 90px, transparent 92px), radial-gradient(circle at 88% 18%, #8a7ce833 0 110px, transparent 112px), var(--brand-plum);color:#fff;text-align:center;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:240px;margin-bottom:48px;padding:36px 24px;display:flex}.landing-bottom-cta>p{color:var(--landing-mint);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.landing-bottom-cta h2{color:#fff;max-width:600px}.landing-bottom-cta .landing-join{border-color:var(--landing-mint);background:var(--landing-mint);color:var(--landing-ink)}.landing-footer{border-top:1px solid rgb(var(--brand-plum-rgb) / 10%);min-height:72px;color:var(--landing-muted);justify-content:space-between;align-items:center;gap:20px;font-size:11px;display:flex}.landing-footer .landing-brand{font-size:15px}.landing-footer .landing-brand svg{width:28px;height:28px}.landing-page :focus-visible{outline:3px solid var(--landing-violet);outline-offset:4px}.landing-nav a,.landing-language,.landing-menu-toggle,.demo-tabs button,.demo-run{-webkit-tap-highlight-color:transparent}@keyframes landing-blob{to{border-radius:57% 43% 42% 58%/42% 57% 43% 58%;transform:rotate(8deg)scale(1.04)}}@keyframes landing-spin{to{transform:rotate(360deg)}}@keyframes landing-float{50%{translate:0 -7px}}@media (width<=900px){.landing-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}.landing-copy h1{font-size:clamp(46px,7vw,68px)}.landing-visual{min-height:400px}.landing-float-card{right:-4px}}@media (width<=700px){.landing-header-inner,.landing-main{width:calc(100% - 36px)}.landing-header-inner{min-height:66px;position:relative}.landing-brand{font-size:17px}.landing-brand svg{width:34px;height:34px}.landing-menu-toggle{border:1px solid rgb(var(--brand-plum-rgb) / 15%);cursor:pointer;background:0 0;border-radius:50%;align-content:center;justify-items:center;gap:5px;width:42px;height:42px;display:grid}.landing-menu-toggle span{background:var(--landing-ink);border-radius:2px;width:16px;height:2px}.landing-nav{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--brand-paper);box-shadow:0 16px 38px rgb(var(--brand-plum-rgb) / 12%);border-radius:14px;align-items:stretch;gap:4px;padding:12px;display:none;position:absolute;top:calc(100% + 8px);left:0;right:0}.landing-nav.is-open{flex-direction:column;display:flex}.landing-nav>a:not(.landing-join),.landing-language,.landing-login{text-align:start;min-height:40px;padding:10px 12px}.landing-nav>.landing-join{margin-top:4px}.landing-main{width:calc(100% - 36px)}.landing-hero{grid-template-columns:minmax(0,1fr);gap:6px;padding-block:52px 54px}.landing-copy{padding:0}.landing-copy .landing-eyebrow{margin-bottom:18px}.landing-copy h1{font-size:clamp(48px,13vw,72px)}.landing-copy h1 span:after{height:10px}.landing-lead{margin-top:20px;font-size:16px}.landing-proof{margin-top:28px}.landing-visual{min-height:390px;margin-top:20px}.landing-terminal{width:min(100%,450px);transform:rotate(1deg)}.landing-float-card{bottom:12px;right:0}.landing-how{padding-block:24px 60px}.landing-section-heading{margin-bottom:20px}.landing-steps{grid-template-columns:minmax(0,1fr);gap:10px}.landing-steps li{min-height:138px}.landing-bottom-cta{border-radius:14px;min-height:220px;margin-bottom:28px}.landing-footer{min-height:64px}.landing-footer>span{text-align:end;max-width:45%}}@media (width<=380px){.landing-header-inner,.landing-main{width:calc(100% - 28px)}.landing-copy h1{font-size:46px}.landing-actions{gap:16px}.landing-visual{min-height:350px}.demo-tabs{gap:2px;padding-inline:10px}.demo-tabs button{padding-inline:7px;font-size:9px}}@media (prefers-reduced-motion:reduce){.landing-page *,.landing-page :before,.landing-page :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.course-home{width:min(100%,1120px);margin-inline:auto;padding-block:28px 56px}.course-welcome{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:radial-gradient(circle at 84% 15%, rgb(var(--brand-violet-rgb) / 12%), transparent 15rem), linear-gradient(140deg, rgb(var(--brand-violet-rgb) / 8%), rgb(var(--brand-paper-rgb) / 90%) 45%, var(--surface));min-height:280px;box-shadow:0 18px 36px rgb(var(--brand-plum-rgb) / 7%);border-radius:24px;grid-template-columns:minmax(0,1.2fr) minmax(210px,.8fr);align-items:center;gap:24px;padding:clamp(24px,5vw,52px);display:grid;position:relative;overflow:hidden}.course-welcome:after{inset-inline-start:0;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint), var(--brand-plum));content:"";width:min(42%,360px);height:4px;position:absolute;bottom:0}.course-welcome-copy{z-index:1;position:relative}.course-kicker{color:var(--brand-violet);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:9px;margin:0 0 16px;font-size:11px;font-weight:800;display:flex}.course-kicker-spark{color:var(--brand-plum);font-size:17px}.course-welcome h1{max-width:650px;font-family:var(--font-display);letter-spacing:-.055em;margin:0;font-size:clamp(36px,6vw,64px);line-height:1}.course-lead{max-width:52ch;color:var(--brand-muted);margin:17px 0 0;font-size:1.05rem;line-height:1.7}.course-start{border:1px solid var(--brand-plum);background:var(--brand-plum);color:var(--brand-surface);border-radius:14px;align-items:center;gap:13px;margin-top:24px;padding:8px 17px 8px 9px;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.course-start:hover{background:var(--brand-plum-hover);box-shadow:0 12px 24px rgb(var(--brand-plum-rgb) / 18%);transform:translateY(-2px)}.course-start:focus-visible,.course-path-link:focus-visible,.course-chapter-list a:focus-visible,.course-expand:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.course-start-icon{background:rgb(var(--brand-white-rgb) / 18%);border-radius:9px;place-items:center;width:37px;height:37px;font-size:17px;display:grid}.course-start>span:last-child{gap:2px;font-weight:750;display:grid}.course-start small{max-width:32ch;color:inherit;opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;overflow:hidden}.course-welcome-art{min-height:220px;color:var(--brand-violet);font-family:var(--font-mono);place-items:center;display:grid;position:relative}.course-art-orbit{aspect-ratio:1;border:1px dashed rgb(var(--brand-violet-rgb) / 42%);border-radius:50%;width:min(88%,230px);animation:45s linear infinite course-orbit;position:absolute}.course-art-bracket{inset-inline-start:13%;color:var(--brand-mint);opacity:.8;font-size:clamp(90px,15vw,150px);font-weight:700;position:absolute;top:2%}.course-art-number{z-index:1;border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);width:126px;height:126px;box-shadow:0 18px 32px rgb(var(--brand-plum-rgb) / 9%);border-radius:28px;place-items:center;font-size:50px;font-weight:700;display:grid;position:relative;transform:rotate(5deg)}.course-art-dot{top:18%;background:var(--brand-apricot);width:15px;height:15px;box-shadow:0 0 0 8px rgb(var(--brand-apricot) / 20%);border-radius:50%;position:absolute;inset-inline-end:11%}.course-art-caption{bottom:3%;border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);color:var(--brand-plum);border-radius:8px;padding:9px 12px;font-size:12px;position:absolute;inset-inline-end:7%;transform:rotate(-4deg)}.course-overview{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(150px,.7fr));gap:12px;margin-top:17px;display:grid}.course-progress-summary,.course-stat{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);min-width:0;box-shadow:0 10px 24px rgb(var(--brand-plum-rgb) / 6%);border-radius:15px;padding:17px 19px}.course-progress-heading{color:var(--brand-muted);justify-content:space-between;align-items:baseline;gap:12px;font-size:11px;font-weight:700;display:flex}.course-progress-heading strong{color:var(--brand-plum);font-family:var(--font-display);font-size:19px}.course-progress-heading i{color:var(--brand-muted);font-family:var(--font-body);font-size:11px;font-style:normal;font-weight:500}.course-progress-track{background:rgb(var(--brand-plum-rgb) / 5%);border-radius:999px;height:7px;margin-top:15px;overflow:hidden}.course-progress-track>span{border-radius:inherit;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint), var(--brand-plum));height:100%;transition:width .35s;display:block}.course-stat{align-items:center;gap:12px;display:flex}.course-stat-icon{background:rgb(var(--brand-violet-rgb) / 10%);width:38px;height:38px;color:var(--brand-violet);border-radius:11px;flex:none;place-items:center;font-weight:800;display:grid}.course-stat-icon-mint{color:var(--brand-plum);background:#c7f36b3d}.course-stat>span:last-child{gap:2px;display:grid}.course-stat strong{font-family:var(--font-display);font-size:20px;line-height:1}.course-stat small{color:var(--brand-muted);font-size:10px}.course-lessons{margin-top:42px}.course-section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:17px;display:flex}.course-section-heading p{color:var(--brand-violet);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:10px;font-weight:800}.course-section-heading h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(25px,4vw,35px)}.course-lesson-count{border:1px solid rgb(var(--brand-plum-rgb) / 10%);color:var(--brand-muted);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700}.course-controls{justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;display:flex}.course-filters{flex-wrap:wrap;gap:6px;display:flex}.course-filters button{min-height:39px;color:var(--brand-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.course-filters button:hover{background:rgb(var(--brand-plum-rgb) / 4%);color:var(--brand-plum)}.course-filters button[aria-pressed=true]{border-color:rgb(var(--brand-plum-rgb) / 10%);background:var(--brand-paper);color:var(--brand-plum);box-shadow:0 10px 18px rgb(var(--brand-plum-rgb) / 8%)}.course-filters button span{background:rgb(var(--brand-plum-rgb) / 5%);min-width:20px;height:20px;color:var(--brand-muted);border-radius:999px;place-items:center;padding-inline:5px;font-size:9px;display:grid}.course-search{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);min-width:min(240px,100%);height:40px;color:var(--brand-muted);border-radius:12px;align-items:center;gap:8px;padding-inline:11px;display:flex}.course-search>span:first-child{font-size:18px;line-height:1}.course-search input{width:100%;min-width:0;height:100%;min-height:0;color:var(--brand-plum);font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:11px}.course-search input:focus-visible{outline:0}.course-search:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px rgb(var(--brand-violet-rgb) / 16%)}.course-path-list{gap:12px;margin:0;padding:0;list-style:none;display:grid;position:relative}.course-path-item{min-width:0;padding-inline-start:28px;position:relative}.course-path-connector{inset-inline-start:8px;background:rgb(var(--brand-plum-rgb) / 9%);width:2px;position:absolute;top:31px;bottom:-20px}.course-path-item:last-child .course-path-connector{display:none}.course-path-connector:before{top:17px;border:2px solid var(--brand-violet);background:var(--surface);content:"";border-radius:50%;width:10px;height:10px;position:absolute;inset-inline-start:-5px}.course-path-item.is-planned .course-path-connector:before{border-color:rgb(var(--brand-plum-rgb) / 18%)}.course-path-card{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);box-shadow:0 14px 30px rgb(var(--brand-plum-rgb) / 7%);border-radius:18px;transition:border-color .16s,transform .16s,box-shadow .16s;overflow:hidden}.course-path-card:hover{border-color:rgb(var(--brand-violet-rgb) / 48%);box-shadow:0 18px 36px rgb(var(--brand-plum-rgb) / 10%);transform:translateY(-2px)}.course-path-item.is-planned .course-path-card{background:rgb(var(--brand-paper-rgb) / 65%);box-shadow:none;border-style:dashed}.course-path-card-main{min-width:0}.course-path-link{min-height:88px;color:var(--brand-plum);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:15px 19px;text-decoration:none;display:grid}.course-path-link:hover .course-path-title strong{color:var(--brand-violet)}.course-path-link:focus-visible{outline-offset:-4px}.course-path-number{background:rgb(var(--brand-violet-rgb) / 12%);width:47px;height:47px;color:var(--brand-violet);font-family:var(--font-mono);border-radius:13px;place-items:center;font-size:13px;font-weight:700;transition:transform .18s;display:grid}.course-path-link:hover .course-path-number{transform:rotate(-7deg)scale(1.05)}.course-path-title{gap:4px;min-width:0;display:grid}.course-path-title small{color:var(--brand-muted);font-size:10px;font-weight:700}.course-path-title strong{overflow-wrap:anywhere;font-family:var(--font-display);font-size:16px;transition:color .15s}.course-path-arrow{border:1px solid rgb(var(--brand-plum-rgb) / 10%);width:35px;height:35px;color:var(--brand-violet);border-radius:50%;place-items:center;transition:transform .15s,background .15s,color .15s,border-color .15s;display:grid}.course-path-link:hover .course-path-arrow{border-color:var(--brand-violet);background:var(--brand-violet);color:var(--brand-surface);transform:translate(2px,-2px)}.course-coming-soon{color:#8b5d13;background:#ffb86b2e;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700}.course-path-footer{border-top:1px solid rgb(var(--brand-plum-rgb) / 9%);align-items:center;gap:14px;min-height:48px;padding:8px 19px;display:flex}.course-path-chapters{color:var(--brand-muted);white-space:nowrap;font-size:10px;font-weight:700}.course-path-completion{color:var(--brand-muted);white-space:nowrap;align-items:center;gap:7px;font-size:9px;display:inline-flex}.course-mini-track{background:rgb(var(--brand-plum-rgb) / 7%);border-radius:999px;width:52px;height:5px;overflow:hidden}.course-mini-track i{border-radius:inherit;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint));height:100%;display:block}.course-expand{min-height:32px;color:var(--brand-violet);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;margin-inline-start:auto;padding:4px 8px;font-size:10px;font-weight:750;display:inline-flex}.course-expand:hover{background:rgb(var(--brand-violet-rgb) / 10%)}.course-expand span{font-size:17px;line-height:1}.course-chapter-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:6px;margin:0;padding:0 19px 16px;list-style:none;animation:.16s ease-out course-reveal;display:grid}.course-chapter-list li{min-width:0}.course-chapter-list a{border:1px solid rgb(var(--brand-plum-rgb) / 10%);min-height:39px;color:var(--brand-plum);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:11px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:flex}.course-chapter-list a:hover{border-color:var(--brand-violet);background:rgb(var(--brand-violet-rgb) / 8%);transform:translateY(-1px)}.course-chapter-list a span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-chapter-list a span:last-child{color:var(--brand-violet);flex:none}.course-empty{border:1px dashed rgb(var(--brand-plum-rgb) / 12%);min-height:190px;color:var(--brand-muted);text-align:center;border-radius:15px;align-content:center;justify-items:center;gap:10px;display:grid}.course-empty>span{background:rgb(var(--brand-violet-rgb) / 10%);width:42px;height:42px;color:var(--brand-violet);border-radius:50%;place-items:center;font-size:24px;display:grid}.course-empty p{margin:0;font-size:13px}.course-empty button{color:var(--brand-violet);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 10px;font-size:11px;font-weight:700}.course-empty button:hover{background:rgb(var(--brand-violet-rgb) / 10%)}@keyframes course-orbit{to{transform:rotate(360deg)}}@keyframes course-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.course-home{padding-block:14px 40px}.course-welcome{grid-template-columns:minmax(0,1fr) 180px;gap:8px;min-height:0;padding:26px}.course-welcome-art{min-height:180px}.course-art-number{width:100px;height:100px;font-size:42px}.course-art-bracket{font-size:104px}.course-overview{grid-template-columns:minmax(0,1fr) minmax(120px,.7fr)}.course-progress-summary{grid-column:1/-1}.course-lessons{margin-top:32px}}@media (width<=520px){.course-welcome{grid-template-columns:minmax(0,1fr);padding:23px}.course-welcome-art{min-height:135px}.course-art-orbit{width:140px}.course-art-number{border-radius:19px;width:80px;height:80px;font-size:34px}.course-art-bracket{inset-inline-start:25%;font-size:82px;top:-2%}.course-art-dot{top:8%;width:12px;height:12px;box-shadow:0 0 0 6px var(--warn-soft);inset-inline-end:25%}.course-art-caption{bottom:0;inset-inline-end:18%}.course-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.course-progress-summary{grid-column:1/-1;padding:14px}.course-stat{gap:8px;padding:12px}.course-stat-icon{width:32px;height:32px}.course-stat strong{font-size:17px}.course-stat small{font-size:9px}.course-controls{flex-direction:column-reverse;align-items:stretch}.course-search{width:100%}.course-filters{flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.course-filters button{flex:none}.course-path-item{padding-inline-start:20px}.course-path-connector{inset-inline-start:5px}.course-path-link{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;min-height:78px;padding:12px}.course-path-number{border-radius:11px;width:39px;height:39px;font-size:11px}.course-path-title strong{font-size:14px}.course-path-arrow{width:31px;height:31px}.course-coming-soon{padding:5px 7px;font-size:9px}.course-path-footer{flex-wrap:wrap;gap:8px;padding:7px 12px}.course-path-completion{margin-inline-start:auto}.course-expand{border-top:1px solid var(--line);border-radius:0;justify-content:space-between;width:100%}.course-chapter-list{grid-template-columns:minmax(0,1fr);padding-inline:12px}}@media (width<=360px){.course-welcome{padding:18px}.course-path-link{grid-template-columns:auto minmax(0,1fr)}.course-path-arrow,.course-coming-soon{grid-area:1/2;justify-self:end}.course-path-title{padding-inline-end:35px}.course-coming-soon{padding-inline-end:6px}.course-path-footer{align-items:flex-start}.course-path-completion{width:100%;margin-inline-start:0}}@media (prefers-reduced-motion:reduce){.course-home *,.course-home :before,.course-home :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.progress-page{width:min(100% - 40px,1120px);color:var(--brand-plum);margin:30px auto 64px}.progress-hero{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:radial-gradient(circle at 87% 16%, rgb(var(--brand-violet-rgb) / 13%), transparent 15rem), linear-gradient(135deg, rgb(var(--brand-violet-rgb) / 8%), var(--brand-paper) 52%, var(--surface));min-height:270px;box-shadow:0 18px 38px rgb(var(--brand-plum-rgb) / 7%);border-radius:25px;grid-template-columns:minmax(0,1fr) minmax(190px,.55fr);align-items:center;gap:28px;padding:clamp(24px,5vw,48px);display:grid;position:relative;overflow:hidden}.progress-hero:after{inset-inline-start:0;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint), var(--brand-plum));content:"";width:min(40%,350px);height:4px;position:absolute;bottom:0}.progress-hero-copy{z-index:1;max-width:660px;position:relative}.progress-eyebrow{color:var(--brand-violet);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:9px;margin:0 0 13px;font-size:10px;font-weight:800;display:flex}.progress-eyebrow span{color:var(--brand-plum);font-size:16px}.progress-hero h1{font:700 clamp(36px, 5.5vw, 58px)/1.03 var(--font-display);letter-spacing:-.05em;margin:0}.progress-hero-copy>p:not(.progress-eyebrow){max-width:56ch;color:var(--brand-muted);margin:14px 0 0;font-size:14px;line-height:1.7}.progress-hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.progress-primary-action,.progress-secondary-action{border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:43px;padding:8px 15px;font-size:12px;font-weight:750;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.progress-primary-action{border:1px solid var(--brand-plum);background:var(--brand-plum);color:var(--brand-surface);box-shadow:0 8px 18px rgb(var(--brand-plum-rgb) / 12%)}.progress-primary-action:hover{background:var(--brand-plum-hover);box-shadow:0 12px 22px rgb(var(--brand-plum-rgb) / 17%);transform:translateY(-2px)}.progress-primary-action>span{font-size:16px}.progress-secondary-action{border:1px solid rgb(var(--brand-plum-rgb) / 12%);background:rgb(var(--brand-white-rgb) / 55%);color:var(--brand-plum)}.progress-secondary-action:hover{background:var(--surface);transform:translateY(-2px)}.progress-secondary-action>span{color:var(--brand-violet)}.progress-primary-action:focus-visible,.progress-secondary-action:focus-visible,.progress-chapter-list a:focus-visible,.progress-concept-footer a:focus-visible,.progress-about summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.progress-hero-visual{min-height:196px;color:var(--brand-violet);place-items:center;display:grid;position:relative}.progress-orbit{aspect-ratio:1;border:1px dashed rgb(var(--brand-violet-rgb) / 45%);border-radius:50%;width:min(90%,205px);animation:50s linear infinite progress-spin;position:absolute}.progress-visual-spark{inset-inline-start:13%;color:var(--brand-mint);font-size:38px;position:absolute;top:7%}.progress-visual-number{z-index:1;border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);width:120px;height:120px;box-shadow:0 18px 32px rgb(var(--brand-plum-rgb) / 10%);font:700 43px/1 var(--font-display);border-radius:31px;justify-content:center;align-items:baseline;padding-top:30px;display:flex;position:relative;transform:rotate(4deg)}.progress-visual-number small{font:700 16px/1 var(--font-body);margin-inline-start:3px}.progress-visual-caption{z-index:2;inset-inline-end:2%;border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);color:var(--brand-plum);border-radius:9px;padding:8px 12px;font-size:11px;font-weight:700;position:absolute;bottom:3%;transform:rotate(-4deg)}.progress-streak{justify-content:flex-end;margin:12px 4px 18px;display:flex}.progress-streak .streak{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:var(--surface);color:var(--brand-muted);box-shadow:0 5px 14px rgb(var(--brand-plum-rgb) / 4%);border-radius:999px;margin:0;padding:8px 12px;font-size:11px}.progress-summary{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:12px;display:grid}.progress-metric{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);min-width:0;min-height:142px;box-shadow:0 10px 24px rgb(var(--brand-plum-rgb) / 6%);border-radius:17px;grid-template-columns:auto 1fr;align-content:center;align-items:center;gap:5px 12px;padding:18px;display:grid;position:relative}.progress-metric-featured{grid-template-columns:auto 1fr}.progress-metric-icon{width:39px;height:39px;color:var(--brand-plum);background:#c7f36b42;border-radius:12px;grid-row:span 2;place-items:center;font-size:17px;font-weight:800;display:grid}.progress-metric-violet{background:rgb(var(--brand-violet-rgb) / 12%);color:var(--brand-violet)}.progress-metric-apricot{color:#895510;background:#ffb86b38}.progress-metric-mint{color:var(--brand-plum);background:#c7f36b47}.progress-metric-value{min-width:0;color:var(--brand-plum);font:700 26px/1.1 var(--font-display)}.progress-metric-value small{color:var(--brand-muted);font:600 12px/1 var(--font-body)}.progress-metric-label{color:var(--brand-muted);grid-column:2;font-size:10px;font-weight:650}.progress-meter{background:rgb(var(--brand-plum-rgb) / 7%);border-radius:999px;grid-column:1/-1;height:6px;margin-top:9px;display:block;overflow:hidden}.progress-meter>span{border-radius:inherit;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint));height:100%;transition:width .35s;display:block}.progress-section,.progress-concepts{margin-top:42px}.progress-section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.progress-section-heading p{max-width:64ch;color:var(--brand-violet);margin:0 0 5px;font-size:10px;font-weight:750;line-height:1.5}.progress-section-heading h2{font:700 clamp(25px, 4vw, 34px)/1.1 var(--font-display);letter-spacing:-.04em;margin:0}.progress-count{border:1px solid rgb(var(--brand-plum-rgb) / 10%);color:var(--brand-muted);border-radius:999px;flex:none;padding:6px 10px;font-size:10px;font-weight:700}.progress-lesson-list{gap:12px;display:grid}.progress-lesson-card{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);min-width:0;box-shadow:0 12px 28px rgb(var(--brand-plum-rgb) / 6%);border-radius:18px;padding:20px}.progress-lesson-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.progress-lesson-heading>div>span{color:var(--brand-muted);font-size:10px;font-weight:700}.progress-lesson-heading h3{font:700 19px/1.25 var(--font-display);overflow-wrap:anywhere;margin:4px 0 0}.progress-lesson-completion{color:var(--brand-violet);font:700 17px/1 var(--font-display);flex:none}.progress-lesson-completion small{color:var(--brand-muted);font:600 10px/1 var(--font-body)}.progress-lesson-meter{background:rgb(var(--brand-plum-rgb) / 6%);border-radius:999px;height:5px;margin:15px 0 12px;overflow:hidden}.progress-lesson-meter>span{border-radius:inherit;background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint));height:100%;transition:width .3s;display:block}.progress-chapter-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:7px;margin:0;padding:0;list-style:none;display:grid}.progress-chapter-list li{min-width:0}.progress-chapter-list a{border:1px solid rgb(var(--brand-plum-rgb) / 9%);min-height:52px;color:var(--brand-plum);border-radius:11px;grid-template-columns:34px minmax(0,1fr) auto 24px;align-items:center;gap:9px;padding:7px 10px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:grid}.progress-chapter-list a:hover{border-color:rgb(var(--brand-violet-rgb) / 45%);background:rgb(var(--brand-violet-rgb) / 5%);transform:translateY(-1px)}.progress-chapter-number{background:rgb(var(--brand-violet-rgb) / 11%);width:30px;height:30px;color:var(--brand-violet);font:700 11px/1 var(--font-mono);border-radius:9px;place-items:center;display:grid}.progress-chapter-title{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;overflow:hidden}.progress-chapter-detail{color:var(--brand-muted);white-space:nowrap;font-size:9px}.progress-chapter-status{border:1px solid rgb(var(--brand-plum-rgb) / 11%);width:23px;height:23px;color:var(--brand-violet);border-radius:50%;place-items:center;font-size:12px;display:grid}.progress-chapter-status.is-read{color:var(--brand-plum);background:#c7f36b52;border-color:#0000;font-weight:800}.progress-concepts{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:linear-gradient(145deg, rgb(var(--brand-violet-rgb) / 5%), var(--surface) 45%);box-shadow:0 14px 32px rgb(var(--brand-plum-rgb) / 6%);border-radius:20px;padding:clamp(18px,3vw,28px)}.progress-concepts>.progress-section-heading{margin-bottom:10px}.progress-concept-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.progress-concept-list li{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:var(--surface);border-radius:14px;min-width:0;padding:15px}.progress-concept-heading{flex-wrap:wrap;align-items:center;gap:7px;min-height:24px;display:flex}.progress-concept-heading strong{min-width:0;color:var(--brand-plum);flex:auto;font-size:12px}.progress-level,.progress-review-flag{background:rgb(var(--brand-violet-rgb) / 10%);color:var(--brand-violet);border-radius:999px;padding:4px 8px;font-size:9px;font-weight:750}.progress-level.solid{color:var(--brand-plum);background:#c7f36b4d}.progress-level.growing{color:#80500c;background:#ffb86b38}.progress-review-flag{color:#80500c;background:#ffb86b33}.progress-concept-meter{background:rgb(var(--brand-plum-rgb) / 7%);border-radius:999px;height:6px;margin-top:12px;overflow:hidden}.progress-concept-meter>span{border-radius:inherit;background:var(--brand-violet);height:100%;transition:width .3s;display:block}.progress-concept-meter>span.growing{background:linear-gradient(90deg, var(--brand-violet), var(--brand-apricot))}.progress-concept-meter>span.solid{background:linear-gradient(90deg, var(--brand-violet), var(--brand-mint))}.progress-concept-footer{color:var(--brand-muted);justify-content:space-between;align-items:center;gap:8px;margin-top:9px;font-size:9px;display:flex}.progress-concept-footer a{color:var(--brand-violet);align-items:center;gap:5px;font-size:9px;font-weight:700;text-decoration:none;display:inline-flex}.progress-concept-footer a:hover{text-decoration:underline}.progress-about{border-top:1px solid rgb(var(--brand-plum-rgb) / 9%);color:var(--brand-muted);margin-top:18px}.progress-about summary{width:fit-content;color:var(--brand-plum);cursor:pointer;padding:14px 0 4px;font-size:11px;font-weight:700}.progress-about p{max-width:75ch;margin:8px 0 0;font-size:11px;line-height:1.75}@keyframes progress-spin{to{transform:rotate(360deg)}}@media (width<=760px){.progress-page{width:min(100% - 28px,1120px);margin-top:20px}.progress-hero{grid-template-columns:minmax(0,1fr) 120px;gap:8px;min-height:240px;padding:25px}.progress-hero-visual{min-height:140px}.progress-orbit{width:125px}.progress-visual-number{border-radius:23px;width:83px;height:83px;padding-top:23px;font-size:31px}.progress-visual-number small{font-size:12px}.progress-visual-spark{inset-inline-start:3%;font-size:25px;top:0}.progress-visual-caption{inset-inline-end:-3%;padding:6px 8px;font-size:9px;bottom:0}.progress-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-metric{min-height:124px;padding:14px}}@media (width<=500px){.progress-page{width:calc(100% - 24px);margin-top:14px}.progress-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding:22px}.progress-hero-visual{inset-inline-end:4px;opacity:.28;width:94px;min-height:94px;position:absolute;top:8px}.progress-orbit{width:82px}.progress-visual-number{border-radius:17px;width:58px;height:58px;padding-top:17px;font-size:22px}.progress-visual-number small{font-size:9px}.progress-visual-spark,.progress-visual-caption{display:none}.progress-hero-copy{padding-inline-end:30px}.progress-hero h1{font-size:36px}.progress-hero-copy>p:not(.progress-eyebrow){font-size:12px}.progress-hero-actions{gap:7px}.progress-primary-action,.progress-secondary-action{min-height:40px;padding-inline:11px;font-size:10px}.progress-streak{justify-content:flex-start;margin:10px 0 14px}.progress-streak .streak{border-radius:12px}.progress-summary{gap:8px}.progress-metric{column-gap:8px;min-height:112px;padding:12px}.progress-metric-icon{border-radius:10px;width:32px;height:32px}.progress-metric-value{font-size:22px}.progress-metric-label{font-size:9px}.progress-section,.progress-concepts{margin-top:30px}.progress-lesson-card{padding:14px}.progress-chapter-list{grid-template-columns:minmax(0,1fr)}.progress-chapter-list a{grid-template-columns:30px minmax(0,1fr) auto 22px;gap:7px;padding-inline:7px}.progress-chapter-detail{font-size:8px}.progress-concepts{padding:16px}}@media (prefers-reduced-motion:reduce){.progress-orbit{animation:none}.progress-primary-action,.progress-secondary-action,.progress-chapter-list a,.progress-meter>span,.progress-lesson-meter>span,.progress-concept-meter>span{transition:none}}:root[data-theme=dark] .progress-page{color:var(--brand-dark-ink)}:root[data-theme=dark] .progress-hero{background:radial-gradient(circle at 87% 16%, rgb(var(--brand-violet-rgb) / 18%), transparent 15rem), linear-gradient(135deg, rgb(var(--brand-violet-rgb) / 12%), var(--brand-dark-paper) 52%, var(--brand-dark-surface))}:root[data-theme=dark] .progress-hero-copy>p:not(.progress-eyebrow),:root[data-theme=dark] .progress-metric-label,:root[data-theme=dark] .progress-metric-value small,:root[data-theme=dark] .progress-lesson-heading>div>span,:root[data-theme=dark] .progress-chapter-detail,:root[data-theme=dark] .progress-concept-footer{color:var(--brand-dark-muted)}:root[data-theme=dark] .progress-streak .streak,:root[data-theme=dark] .progress-metric,:root[data-theme=dark] .progress-lesson-card,:root[data-theme=dark] .progress-concepts,:root[data-theme=dark] .progress-concept-list li,:root[data-theme=dark] .progress-chapter-list a{border-color:rgb(var(--brand-white-rgb) / 11%);background-color:var(--brand-dark-surface)}:root[data-theme=dark] .progress-hero h1,:root[data-theme=dark] .progress-metric-value,:root[data-theme=dark] .progress-lesson-heading h3,:root[data-theme=dark] .progress-chapter-list a,:root[data-theme=dark] .progress-concept-heading strong,:root[data-theme=dark] .progress-about summary{color:var(--brand-dark-ink)}:root[data-theme=dark] .progress-secondary-action{border-color:rgb(var(--brand-white-rgb) / 15%);background:var(--brand-dark-surface);color:var(--brand-dark-ink)}:root[data-theme=dark] .progress-count,:root[data-theme=dark] .progress-visual-caption{border-color:rgb(var(--brand-white-rgb) / 14%);background:var(--brand-dark-surface);color:var(--brand-dark-ink)}:root[data-theme=dark] .progress-visual-number{border-color:rgb(var(--brand-white-rgb) / 12%);background:var(--brand-dark-surface)}:root[data-theme=dark] .progress-about,:root[data-theme=dark] .progress-about summary{border-color:rgb(var(--brand-white-rgb) / 11%)}:root[data-theme=dark] .progress-chapter-list a:hover{background:rgb(var(--brand-violet-rgb) / 13%)}:root[data-theme=contrast] .progress-hero,:root[data-theme=contrast] .progress-metric,:root[data-theme=contrast] .progress-lesson-card,:root[data-theme=contrast] .progress-concepts,:root[data-theme=contrast] .progress-concept-list li{border:2px solid var(--ink);box-shadow:none}:root[data-theme=contrast] .progress-chapter-list a,:root[data-theme=contrast] .progress-secondary-action{border-color:var(--ink)}.teach-workspace{width:min(100% - 40px,1120px);color:var(--brand-plum);margin:30px auto 64px}.teach-page-heading,.teach-section-heading,.teach-review-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.teach-page-heading{margin-bottom:24px}.teach-page-heading h1,.teach-class-hero h1,.teach-review-heading h1{font:700 clamp(32px, 5vw, 48px)/1.05 var(--font-display);letter-spacing:-.045em;margin:0}.teach-eyebrow{color:var(--brand-violet);letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:800}.teach-heading-action,.teach-class-hero-action{border:1px solid var(--brand-plum);background:var(--brand-plum);min-height:43px;color:var(--brand-surface);border-radius:13px;justify-content:center;align-items:center;gap:9px;padding:8px 15px;font-size:11px;font-weight:750;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.teach-heading-action:hover,.teach-class-hero-action:hover{background:var(--brand-plum-hover);transform:translateY(-1px)}.teach-heading-action>span{font-size:17px}.teach-heading-action:focus-visible,.teach-class-hero-action:focus-visible,.teach-back-link:focus-visible,.teach-class-link:focus-visible,.teach-org-manage:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.teach-section{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:var(--surface);box-shadow:0 12px 28px rgb(var(--brand-plum-rgb) / 6%);border-radius:19px;margin-top:16px;padding:clamp(18px,3vw,26px)}.teach-section-heading{margin-bottom:16px}.teach-section-heading h2{font:700 clamp(21px, 3vw, 26px)/1.15 var(--font-display);letter-spacing:-.03em;margin:0}.teach-section-icon{background:rgb(var(--brand-violet-rgb) / 11%);width:38px;height:38px;color:var(--brand-violet);border-radius:12px;place-items:center;font-size:20px;display:grid}.teach-section-description{color:var(--brand-muted);margin:-4px 0 16px;font-size:12px;line-height:1.7}.teach-checkbox{color:var(--brand-muted);cursor:pointer;align-items:center;gap:8px;font-size:11px;font-weight:650;display:inline-flex}.teach-checkbox input{width:17px;height:17px;accent-color:var(--brand-violet);margin:0}.teach-class-list,.teach-org-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.teach-class-list li,.teach-org-list li{min-width:0}.teach-class-link{border:1px solid rgb(var(--brand-plum-rgb) / 9%);min-height:72px;color:var(--brand-plum);border-radius:14px;grid-template-columns:42px minmax(0,1fr) auto 30px;align-items:center;gap:13px;padding:11px 14px;text-decoration:none;transition:transform .15s,border-color .15s,background .15s;display:grid}.teach-class-link:hover{border-color:rgb(var(--brand-violet-rgb) / 42%);background:rgb(var(--brand-violet-rgb) / 4%);transform:translateY(-1px)}.teach-class-mark{width:40px;height:40px;color:var(--brand-plum);font:700 16px/1 var(--font-display);background:#c7f36b4d;border-radius:13px;place-items:center;display:grid}.teach-class-copy{gap:4px;min-width:0;display:grid}.teach-class-copy strong{overflow-wrap:anywhere;font:700 14px/1.25 var(--font-display)}.teach-class-copy small{color:var(--brand-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.teach-class-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.teach-tag{background:rgb(var(--brand-violet-rgb) / 10%);min-height:24px;color:var(--brand-violet);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 9px;font-size:9px;font-weight:750;display:inline-flex}.teach-tag.is-archived{color:#80500c;background:#ffb86b3b}.teach-class-arrow{border:1px solid rgb(var(--brand-plum-rgb) / 10%);width:29px;height:29px;color:var(--brand-violet);border-radius:50%;place-items:center;transition:transform .15s,background .15s,color .15s;display:grid}.teach-class-link:hover .teach-class-arrow{background:var(--brand-violet);color:#fff;transform:translate(2px,-2px)}.teach-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.teach-workspace .field{min-width:0;margin:10px 0 14px}.teach-workspace .field label,.teach-workspace .field .label{color:var(--brand-plum);font-size:11px}.teach-workspace .field .hint{color:var(--brand-muted);font-size:10px}.teach-workspace input:not([type=checkbox]),.teach-workspace select,.teach-workspace textarea{border:1px solid rgb(var(--brand-plum-rgb) / 14%);background:var(--brand-paper);min-height:42px;color:var(--brand-plum);border-radius:11px;font-size:12px}.teach-workspace input:not([type=checkbox]):focus-visible,.teach-workspace select:focus-visible,.teach-workspace textarea:focus-visible{border-color:var(--brand-violet);outline:3px solid rgb(var(--brand-violet-rgb) / 15%)}.teach-form-actions{justify-content:flex-end;margin-top:2px;display:flex}.teach-workspace .btn{border-width:1px;border-radius:11px;min-height:40px;font-size:11px}.teach-workspace .btn.small{min-height:36px}.teach-org-list{margin:4px 0 18px}.teach-org-list li{border:1px solid rgb(var(--brand-plum-rgb) / 9%);border-radius:12px;align-items:center;gap:10px;min-height:51px;padding:8px 10px;display:flex}.teach-org-symbol{background:rgb(var(--brand-violet-rgb) / 10%);width:31px;height:31px;color:var(--brand-violet);border-radius:10px;flex:none;place-items:center;font-size:16px;display:grid}.teach-org-list li>strong{overflow-wrap:anywhere;flex:1;min-width:0;font-size:12px}.teach-org-manage{color:var(--brand-violet);align-items:center;gap:5px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.teach-org-manage:hover{text-decoration:underline}.teach-org-forms{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.teach-org-forms form{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:rgb(var(--brand-paper-rgb) / 65%);border-radius:14px;min-width:0;padding:16px}.teach-org-forms h3{font:700 15px/1.3 var(--font-display);margin:0 0 8px}.teach-back-link{color:var(--brand-muted);align-items:center;gap:8px;margin-bottom:15px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.teach-back-link:hover{color:var(--brand-violet)}.teach-class-hero{border:1px solid rgb(var(--brand-plum-rgb) / 10%);background:radial-gradient(circle at 95% 10%, rgb(var(--brand-violet-rgb) / 10%), transparent 14rem), linear-gradient(135deg, rgb(var(--brand-violet-rgb) / 5%), var(--surface) 55%);box-shadow:0 12px 28px rgb(var(--brand-plum-rgb) / 5%);border-radius:21px;align-items:center;gap:18px;padding:24px;display:flex}.teach-class-hero-mark{background:var(--brand-mint);width:58px;height:58px;color:var(--brand-plum);font:700 23px/1 var(--font-display);border-radius:18px;flex:none;place-items:center;display:grid}.teach-class-hero-copy{flex:1;min-width:0}.teach-class-hero h1{overflow-wrap:anywhere;font-size:clamp(27px,4vw,38px)}.teach-class-meta{color:var(--brand-muted);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:9px;font-size:10px;display:flex}.teach-class-meta>span:not(.teach-tag)+span:not(.teach-tag):before{content:"·";color:rgb(var(--brand-plum-rgb) / 35%);margin-inline-end:12px}.teach-class-hero-action{border-color:rgb(var(--brand-plum-rgb) / 12%);background:var(--surface);color:var(--brand-plum);flex:none}.teach-class-hero-action:hover{background:var(--brand-paper)}.teach-class-page>.tabs{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:var(--surface);scrollbar-width:thin;border-radius:14px;gap:5px;margin:20px 0 16px;padding:5px;display:flex;overflow-x:auto}.teach-class-page .tab{min-height:39px;color:var(--brand-muted);border:0;border-radius:10px;flex:none;padding:7px 12px;font-size:10px;font-weight:700}.teach-class-page .tab:hover{background:rgb(var(--brand-plum-rgb) / 4%);color:var(--brand-plum)}.teach-class-page .tab.on{background:var(--brand-plum);color:var(--brand-surface)}.teach-class-page .teach-tab-panel{outline:none;min-width:0}.teach-tab-panel .card{border-color:rgb(var(--brand-plum-rgb) / 10%);box-shadow:0 10px 24px rgb(var(--brand-plum-rgb) / 5%);border-radius:16px}.teach-tab-panel .card+.card{margin-top:12px}.teach-tab-panel .card h2,.teach-tab-panel .card h3{color:var(--brand-plum);font-family:var(--font-display)}.teach-tab-panel .muted-line{color:var(--brand-muted)}.teach-not-found{max-width:680px}.teach-review-heading{border:1px solid rgb(var(--brand-plum-rgb) / 9%);background:linear-gradient(120deg, rgb(var(--brand-violet-rgb) / 7%), var(--surface) 64%);border-radius:19px;margin:2px 0 20px;padding:22px 24px}.teach-review-heading h1{font-size:clamp(24px,4vw,34px)}.teach-review-heading>div>p:last-child{color:var(--brand-muted);margin:7px 0 0;font-size:13px}.teach-review-avatar{width:50px;height:50px;color:var(--brand-plum);font:700 19px/1 var(--font-display);background:#c7f36b52;border-radius:16px;flex:none;place-items:center;display:grid}.teach-review-page>.card{border-color:rgb(var(--brand-plum-rgb) / 10%);box-shadow:0 10px 24px rgb(var(--brand-plum-rgb) / 5%);border-radius:16px}.teach-review-page>.card+.card{margin-top:12px}.teach-review-page>.card h3{color:var(--brand-plum);font-family:var(--font-display)}@media (width<=680px){.teach-workspace{width:min(100% - 28px,1120px);margin-top:20px}.teach-class-link{grid-template-columns:38px minmax(0,1fr) 26px;gap:10px;padding:10px}.teach-class-mark{width:36px;height:36px}.teach-class-badges{grid-area:2/2;justify-content:flex-start}.teach-class-arrow{grid-area:1/3/span 2}.teach-class-copy{grid-column:2}.teach-org-forms,.teach-form-grid{grid-template-columns:minmax(0,1fr);gap:0}.teach-class-hero{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:18px}.teach-class-hero-mark{border-radius:14px;width:45px;height:45px;font-size:19px}.teach-class-hero-copy{flex-basis:calc(100% - 60px)}.teach-class-hero-action{margin-inline-start:57px}.teach-class-page>.tabs{margin-top:14px}.teach-page-heading{align-items:flex-end}.teach-heading-action{min-height:39px;padding-inline:11px;font-size:10px}}@media (width<=420px){.teach-page-heading,.teach-section-heading{flex-direction:column;align-items:flex-start}.teach-checkbox{align-self:flex-end}.teach-org-list li{flex-wrap:wrap}.teach-org-list li>strong{flex-basis:calc(100% - 48px)}.teach-review-heading{padding:17px}}:root[data-theme=dark] .teach-workspace{color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-section,:root[data-theme=dark] .teach-class-hero,:root[data-theme=dark] .teach-review-heading,:root[data-theme=dark] .teach-class-page>.tabs,:root[data-theme=dark] .teach-tab-panel .card,:root[data-theme=dark] .teach-review-page>.card{border-color:rgb(var(--brand-white-rgb) / 11%);background-color:var(--brand-dark-surface)}:root[data-theme=dark] .teach-page-heading h1,:root[data-theme=dark] .teach-class-hero h1,:root[data-theme=dark] .teach-review-heading h1,:root[data-theme=dark] .teach-section-heading h2,:root[data-theme=dark] .teach-tab-panel .card h2,:root[data-theme=dark] .teach-tab-panel .card h3,:root[data-theme=dark] .teach-review-page>.card h3,:root[data-theme=dark] .teach-class-copy strong,:root[data-theme=dark] .teach-org-list li>strong,:root[data-theme=dark] .teach-org-forms h3{color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-class-copy small,:root[data-theme=dark] .teach-section-description,:root[data-theme=dark] .teach-class-meta,:root[data-theme=dark] .teach-review-heading>div>p:last-child,:root[data-theme=dark] .teach-workspace .field label,:root[data-theme=dark] .teach-workspace .field .label,:root[data-theme=dark] .teach-workspace .field .hint{color:var(--brand-dark-muted)}:root[data-theme=dark] .teach-class-link,:root[data-theme=dark] .teach-org-list li{border-color:rgb(var(--brand-white-rgb) / 10%);background:rgb(var(--brand-white-rgb) / 3%);color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-class-link:hover{background:rgb(var(--brand-violet-rgb) / 13%)}:root[data-theme=dark] .teach-workspace input:not([type=checkbox]),:root[data-theme=dark] .teach-workspace select,:root[data-theme=dark] .teach-workspace textarea{border-color:rgb(var(--brand-white-rgb) / 15%);background:var(--brand-dark-paper);color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-org-forms form{border-color:rgb(var(--brand-white-rgb) / 10%);background:rgb(var(--brand-white-rgb) / 3%)}:root[data-theme=dark] .teach-class-hero-action{border-color:rgb(var(--brand-white-rgb) / 15%);background:var(--brand-dark-paper);color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-class-page .tab{color:var(--brand-dark-muted)}:root[data-theme=dark] .teach-class-page .tab:hover{background:rgb(var(--brand-white-rgb) / 6%);color:var(--brand-dark-ink)}:root[data-theme=dark] .teach-class-page .tab.on{background:var(--brand-mint);color:var(--brand-plum)}:root[data-theme=contrast] .teach-section,:root[data-theme=contrast] .teach-class-hero,:root[data-theme=contrast] .teach-review-heading,:root[data-theme=contrast] .teach-class-page>.tabs,:root[data-theme=contrast] .teach-class-link,:root[data-theme=contrast] .teach-org-list li,:root[data-theme=contrast] .teach-org-forms form{border:2px solid var(--ink);box-shadow:none}@media (prefers-reduced-motion:reduce){.teach-heading-action,.teach-class-hero-action,.teach-class-link,.teach-class-arrow{transition:none}}.lesson-page{width:min(1420px,100%);padding:18px var(--gutter) 48px;margin-inline:auto}.lesson-toolbar,.lesson-toolbar-actions,.lesson-sidebar-heading,.lesson-reading-meta,.lesson-footer-nav,.lesson-nav-link,.lesson-continue{align-items:center;display:flex}.lesson-toolbar{justify-content:space-between;gap:12px;margin-bottom:18px}.lesson-toolbar-actions{gap:8px}.lesson-back-link{min-height:44px;color:var(--muted);align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.lesson-back-link:hover,.lesson-back-link span{color:var(--accent)}.lesson-workspace{grid-template-columns:minmax(240px,285px) minmax(0,1fr);align-items:start;gap:clamp(18px,3vw,38px);min-width:0;transition:grid-template-columns .18s,gap .18s;display:grid}.lesson-sidebar{border:1px solid var(--line);background:radial-gradient(ellipse at top left, var(--accent-soft), transparent 62%), var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:20px;padding:20px 14px 14px;position:sticky;top:78px}.lesson-sidebar-heading{justify-content:space-between;gap:10px;margin:0 4px 14px}.lesson-sidebar-title{min-width:0}.lesson-sidebar-heading h2{font:700 1.3rem/1.1 var(--font-display);margin:2px 0 0}.lesson-sidebar-toggle{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--muted);font:700 1.2rem var(--font-body);cursor:pointer;border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.lesson-sidebar-toggle:hover{border-color:var(--accent);color:var(--accent)}.lesson-kicker{color:var(--muted);letter-spacing:.12em;margin:0;font-size:.68rem;font-weight:700}.lesson-completion-count{border:1px solid var(--line);background:var(--surface);min-width:48px;min-height:42px;color:var(--accent);font:700 .9rem var(--font-mono);border-radius:14px;place-items:center;display:grid}.lesson-progress-track{background:var(--surface-2);border-radius:999px;height:7px;overflow:hidden}.lesson-progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--good));height:100%;transition:width .24s;display:block}.lesson-progress-caption{color:var(--muted);margin:8px 2px 16px;font-size:.82rem}.lesson-chapter-search{border:1px solid var(--line);background:var(--surface);min-height:42px;color:var(--muted);border-radius:12px;align-items:center;gap:8px;padding-inline:11px;display:flex}.lesson-chapter-search>span:not(.sr-only){font-size:1.35rem;line-height:1}.lesson-chapter-search input{min-width:0;min-height:38px;box-shadow:none;font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:.88rem}.lesson-chapter-search input:focus-visible{outline:0}.lesson-chapter-search:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb, var(--focus) 20%, transparent)}.lesson-toc{gap:4px;margin:14px 0 0;padding:0;list-style:none;display:grid}.lesson-toc a{min-height:44px;color:var(--ink);border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:7px 9px;text-decoration:none;transition:background .14s,border-color .14s,transform .14s;display:flex}.lesson-toc a:hover{background:var(--surface);border-color:var(--line);transform:translate(2px)}.lesson-toc a[aria-current=page]{border-color:color-mix(in srgb, var(--accent) 32%, var(--line));background:var(--accent-soft)}.lesson-toc-overview{font-weight:700}.lesson-toc-symbol{width:27px;color:var(--accent);place-items:center;font-size:1.12rem;display:grid}.lesson-toc-label{min-width:0}.lesson-toc-arrow{color:var(--muted);margin-inline-start:auto}.lesson-toc-chapter{text-align:left;direction:ltr}.lesson-toc-number{background:var(--surface-2);width:28px;height:28px;color:var(--muted);font:600 .72rem var(--font-mono);border-radius:9px;flex:0 0 28px;place-items:center;display:grid}.lesson-toc-number.is-read{background:var(--good-soft);color:var(--good)}.lesson-toc-title{text-overflow:ellipsis;font-size:.84rem;overflow:hidden}.lesson-no-results{color:var(--muted);margin:14px 4px;font-size:.86rem}.lesson-continue{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:var(--surface);color:var(--ink);border-radius:15px;align-items:center;gap:10px;margin-top:18px;padding:12px;text-decoration:none}.lesson-continue:hover{background:var(--accent-soft)}.lesson-continue-icon{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);border-radius:11px;flex:0 0 34px;place-items:center;display:grid}.lesson-continue small,.lesson-continue strong{display:block}.lesson-continue small{color:var(--muted);letter-spacing:.08em;margin-bottom:3px;font-size:.65rem;font-weight:700}.lesson-continue strong{text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.lesson-main{min-width:0}.lesson-mobile-toc-toggle{display:none}.lesson-reading-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:22px;padding:clamp(20px,4vw,48px)}.lesson-reading-meta{color:var(--muted);justify-content:space-between;gap:12px;margin:0 0 24px;font-size:.78rem;font-weight:700}.lesson-reading-meta>:first-child{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 11px}.lesson-reading-card .prose{margin-inline:auto}.lesson-reading-card .prose>.chip{display:none}.lesson-reading-card .prose>h1{font:700 clamp(2rem, 5vw, 3.3rem)/1.08 var(--font-display);letter-spacing:-.035em;margin-top:0}.lesson-footer-nav{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:36px;padding-top:20px}.lesson-nav-link{min-width:0;max-width:40%;color:var(--ink);gap:10px;text-decoration:none}.lesson-nav-link:hover strong{color:var(--accent)}.lesson-nav-link>span:first-child:not(:last-child){color:var(--accent);font-size:1.2rem}.lesson-nav-link small,.lesson-nav-link strong{display:block}.lesson-nav-link small{color:var(--muted);font-size:.74rem}.lesson-nav-link strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.lesson-nav-next{text-align:end}.lesson-mark-read{flex:none}.lesson-workspace.is-sidebar-collapsed{grid-template-columns:68px minmax(0,1fr);gap:16px}.lesson-sidebar.is-collapsed{padding:12px 8px}.lesson-sidebar.is-collapsed .lesson-sidebar-heading{justify-content:center;margin:0 0 12px}.lesson-sidebar.is-collapsed .lesson-sidebar-title,.lesson-sidebar.is-collapsed .lesson-completion-count,.lesson-sidebar.is-collapsed .lesson-progress-caption,.lesson-sidebar.is-collapsed .lesson-chapter-search,.lesson-sidebar.is-collapsed .lesson-continue,.lesson-sidebar.is-collapsed .lesson-toc-label,.lesson-sidebar.is-collapsed .lesson-toc-arrow,.lesson-sidebar.is-collapsed .lesson-toc-title{display:none}.lesson-sidebar.is-collapsed .lesson-progress-track{margin:0 2px 12px}.lesson-sidebar.is-collapsed .lesson-toc{gap:6px;margin-top:0}.lesson-sidebar.is-collapsed .lesson-toc a{justify-content:center;gap:0;min-height:42px;padding:5px}.lesson-sidebar.is-collapsed .lesson-toc-number{flex-basis:30px;width:30px;height:30px}.lesson-sidebar.is-collapsed .lesson-toc-symbol{width:30px;height:30px}.lesson-sidebar.is-collapsed .lesson-no-results{display:none}@media (width<=820px){.lesson-page{padding-top:12px}.lesson-workspace{grid-template-columns:minmax(0,1fr);gap:12px}.lesson-workspace.is-sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.lesson-sidebar{display:none;position:static}.lesson-sidebar.is-open{display:block}.lesson-sidebar-toggle{display:none}.lesson-sidebar.is-collapsed .lesson-sidebar-title{display:block}.lesson-sidebar.is-collapsed .lesson-completion-count,.lesson-sidebar.is-collapsed .lesson-progress-caption,.lesson-sidebar.is-collapsed .lesson-chapter-search,.lesson-sidebar.is-collapsed .lesson-continue,.lesson-sidebar.is-collapsed .lesson-toc-label,.lesson-sidebar.is-collapsed .lesson-toc-arrow,.lesson-sidebar.is-collapsed .lesson-toc-title{display:initial}.lesson-sidebar.is-collapsed{padding:20px 14px 14px}.lesson-sidebar.is-collapsed .lesson-sidebar-heading{justify-content:space-between;margin:0 4px 14px}.lesson-sidebar.is-collapsed .lesson-toc{gap:4px;margin-top:14px}.lesson-sidebar.is-collapsed .lesson-toc a{justify-content:flex-start;gap:10px;min-height:44px;padding:7px 9px}.lesson-sidebar.is-collapsed .lesson-toc-number{flex-basis:28px;width:28px;height:28px}.lesson-sidebar.is-collapsed .lesson-toc-symbol{width:27px;height:auto}.lesson-sidebar.is-collapsed .lesson-progress-track{margin:0}.lesson-sidebar.is-collapsed .lesson-no-results{display:block}.lesson-mobile-toc-toggle{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:600 .95rem var(--font-body);cursor:pointer;border-radius:13px;align-items:center;gap:9px;margin-bottom:12px;padding:8px 13px;display:flex}.lesson-mobile-toc-toggle>span:first-child{color:var(--accent);font-size:1.2rem}.lesson-mobile-progress{color:var(--muted);font:600 .8rem var(--font-mono);margin-inline-start:auto}.lesson-reading-card{border-radius:18px;padding:clamp(18px,5vw,32px)}}@media (width<=520px){.lesson-toolbar{align-items:flex-start}.lesson-toolbar-actions{gap:5px}.lesson-toolbar-actions .btn{padding-inline:9px;font-size:.82rem}.lesson-back-link{max-width:46%;font-size:.86rem}.lesson-reading-meta{margin-bottom:20px;font-size:.7rem}.lesson-footer-nav{flex-wrap:wrap}.lesson-footer-nav>span{display:none}.lesson-nav-link{max-width:calc(50% - 6px)}.lesson-mark-read{order:1;width:100%}}@media (prefers-reduced-motion:reduce){.lesson-workspace,.lesson-progress-track span,.lesson-toc a{transition:none}}
