@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-400-normal-EA1o-u_Q.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-500-normal-DPXcppbm.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-600-normal-MJZ0liF5.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-arabic-700-normal-9rXc6cUL.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-arabic-latin-400-normal-Bo5KPYvw.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-latin-400-normal-CFZh1unN.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-arabic-latin-500-normal-Cd6jVIg7.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-latin-500-normal-BletK1Hp.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-arabic-latin-600-normal-KrqB56Mw.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-latin-600-normal-Dk5eISD_.woff)format("woff")}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-arabic-latin-700-normal-BzSf6GNr.woff2)format("woff2"),url(/assets/ibm-plex-sans-arabic-latin-700-normal-Cl4F7CZR.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-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: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");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.plot{direction:ltr;width:100%}.plot svg{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:auto;display:block}.plot canvas{max-width:100%;display:block}.wk-grid{stroke:var(--grid);stroke-width:1px}.wk-axis{stroke:var(--muted);stroke-width:1px;opacity:.6}.wk-tick{fill:var(--muted);font-size:11px;font-family:var(--font-mono)}.wk-label{fill:var(--muted);font-size:12px;font-weight:600;font-family:var(--font)}.wk-controls{flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin:14px 0;display:flex}.wk-controls>.wk-slider{flex:180px}.wk-slider{min-width:150px;color:var(--text);flex-direction:column;gap:6px;font-size:13.5px;display:flex}.wk-slider-top{color:var(--muted);justify-content:space-between;gap:8px;display:flex}.wk-slider-top b{font-family:var(--font-mono);color:var(--text);direction:ltr;unicode-bidi:isolate;font-weight:600}.wk-slider input[type=range]{appearance:none;background:linear-gradient(to right, var(--thumb,var(--accent)) var(--pct), var(--border) var(--pct));cursor:pointer;border-radius:99px;outline:none;width:100%;height:4px;margin:6px 0}.wk-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--card);border:2px solid var(--thumb,var(--accent));border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0003}.wk-slider input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent)}.wk-slider input[type=range]::-moz-range-thumb{background:var(--card);border:2px solid var(--thumb,var(--accent));border-radius:50%;width:12px;height:12px}.wk-btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13.5px;font-weight:600;line-height:1.5;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.wk-btn:disabled{opacity:.45;cursor:not-allowed}.wk-small{padding:4px 10px;font-size:12.5px}.wk-primary{background:var(--accent);color:var(--on-accent,#fff)}.wk-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, #000)}.wk-success{background:var(--good);color:#fff}.wk-danger{background:var(--bad);color:#fff}.wk-warn{background:var(--warn);color:#1a1a1a}.wk-ghost{background:var(--card);color:var(--text);border-color:var(--border)}.wk-ghost:hover:not(:disabled){background:var(--card-2)}.wk-seg{background:var(--card-2);border:1px solid var(--border);border-radius:9px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.wk-seg button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 11px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.wk-seg button:hover{color:var(--text)}.wk-seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 2px #00000014, 0 0 0 1px var(--border);font-weight:600}.wk-stats{background:var(--border);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;margin:14px 0;display:grid;overflow:hidden}.wk-stat{background:var(--card);text-align:start;padding:10px 12px}.wk-stat-val{font-size:18px;font-weight:600;font-family:var(--font-mono);text-align:end;color:var(--text);direction:ltr}.wk-stat-lbl{color:var(--muted);margin-top:2px;font-size:12px}.wk-tone-good .wk-stat-val{color:var(--good)}.wk-tone-bad .wk-stat-val{color:var(--bad)}.wk-tone-warn .wk-stat-val{color:var(--warn)}.wk-tone-accent .wk-stat-val{color:var(--accent)}.wk-note{background:var(--card-2);border-inline-start:3px solid var(--accent);color:var(--text);border-radius:8px;align-items:flex-start;gap:10px;margin:12px 0;padding:10px 14px;font-size:14px;line-height:1.8;display:flex}.wk-note>span{display:none}.wk-missions{border:1px solid var(--border);background:var(--card);border-radius:10px;margin:0 0 16px}.wk-missions-head{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:10px;padding:9px 14px;font-size:13px;font-weight:600;display:flex}.wk-missions-count{font-family:var(--font-mono);color:var(--muted);direction:ltr;margin-inline-start:auto;font-size:12px}.wk-missions-reset{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:2px;display:grid}.wk-missions-reset:hover{color:var(--text);background:var(--card-2)}.wk-missions ol{gap:2px;margin:0;padding:8px 10px;list-style:none;display:grid}.wk-step{color:var(--muted);border-radius:7px;grid-template-columns:22px 1fr;align-items:start;gap:10px;padding:6px;font-size:14px;line-height:1.75;display:grid}.wk-step-mark{width:22px;height:22px;font-family:var(--font-mono);border:1px solid var(--border-strong,var(--border));border-radius:50%;place-items:center;margin-top:2px;font-size:11.5px;font-weight:600;display:grid}.wk-step-current{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text)}.wk-step-current .wk-step-mark{border-color:var(--accent);color:var(--accent)}.wk-step-done{color:var(--text-2,var(--text))}.wk-step-done .wk-step-mark{background:var(--good);border-color:var(--good);color:#fff}.wk-missions-takeaway{background:var(--good-soft,color-mix(in srgb, var(--good) 12%, transparent));color:var(--text);border-radius:8px;margin:0 10px 10px;padding:10px 12px;font-size:14px;line-height:1.8}.wk-missions.is-done{border-color:color-mix(in srgb, var(--good) 40%, var(--border))}html[dir=ltr] .wk-stat-val{text-align:start}:root{--font:"IBM Plex Sans Arabic", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--bg:#fafaf8;--card:#fff;--card-2:#f4f4f1;--border:#e4e3de;--border-strong:#d3d1ca;--text:#1b1b18;--text-2:#3d3c37;--muted:#6b6a64;--accent:#0b6e6e;--accent-soft:#e3f1f0;--on-accent:#fff;--accent-2:#d9480f;--good:#2b8a3e;--good-soft:#ebf6ee;--bad:#c92a2a;--bad-soft:#fceded;--warn:#e67700;--warn-soft:#fff4e5;--grid:#0000000f;--mark:#ffe8a3;--code-bg:#f7f7f4;--shadow-sm:0 1px 2px #14140f0d;--shadow:0 1px 2px #14140f0a, 0 4px 16px #14140f0d;--shadow-lg:0 12px 40px #14140f1f;--radius:12px;--radius-sm:8px;--topbar-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111312;--card:#181b1a;--card-2:#202423;--border:#2e3331;--border-strong:#3b413e;--text:#ecedea;--text-2:#c9ccc7;--muted:#9ba19d;--accent:#3fb8af;--accent-soft:#15302e;--on-accent:#0c1a19;--accent-2:#ff8a4c;--good:#51cf66;--good-soft:#15291a;--bad:#ff6b6b;--bad-soft:#321818;--warn:#ffa94d;--warn-soft:#33240f;--grid:#ffffff12;--mark:#5c4a12;--code-bg:#151817;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--shadow-lg:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111312;--card:#181b1a;--card-2:#202423;--border:#2e3331;--border-strong:#3b413e;--text:#ecedea;--text-2:#c9ccc7;--muted:#9ba19d;--accent:#3fb8af;--accent-soft:#15302e;--on-accent:#0c1a19;--accent-2:#ff8a4c;--good:#51cf66;--good-soft:#15291a;--bad:#ff6b6b;--bad-soft:#321818;--warn:#ffa94d;--warn-soft:#33240f;--grid:#ffffff12;--mark:#5c4a12;--code-bg:#151817;--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--shadow-lg:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.75}h1,h2,h3,h4{color:var(--text);letter-spacing:0;margin:0;font-weight:700;line-height:1.4}p{margin:0}a{color:inherit;text-decoration:none}button{color:inherit;font-family:inherit}img{max-width:100%}strong,b{font-weight:600}mark{background:var(--mark);color:inherit;border-radius:3px;padding:0 3px}::selection{background:color-mix(in srgb, var(--accent) 25%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.muted{color:var(--muted)}.mono,.num{font-family:var(--font-mono)}.num{direction:ltr;unicode-bidi:isolate}.inline-code{font-family:var(--font-mono);background:var(--card-2);border:1px solid var(--border);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;border-radius:5px;padding:.05em .4em;font-size:.86em}.katex{font-size:1.05em}.katex-display{margin:0;padding:4px 0;overflow:auto hidden}.app{flex-direction:column;min-height:100vh;display:flex}.main{flex:1}.container{max-width:1160px;margin:0 auto;padding:0 24px}.page{padding-top:40px;padding-bottom:80px}.page-head{margin-bottom:32px}.page-head h1{font-size:30px}.page-head p{color:var(--muted);max-width:640px;margin-top:6px}.eyebrow{color:var(--accent);letter-spacing:.02em;font-size:13px;font-weight:600}.section{margin-top:56px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;display:flex}.section-head h2{font-size:21px}.section-head a{color:var(--accent);font-size:14px;font-weight:500}.btn{cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:14.5px;font-weight:600;line-height:1.5;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{flex-shrink:0}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 86%, #000)}.btn-secondary{background:var(--card);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--card-2)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--card-2);color:var(--text)}.btn-run{background:var(--text);color:var(--bg)}.btn-run:hover:not(:disabled){background:color-mix(in srgb, var(--text) 85%, var(--bg))}.btn-danger{background:var(--bad);color:#fff}.btn-sm{gap:6px;padding:5px 11px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15.5px}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--card-2);color:var(--text)}.input{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;width:100%;padding:9px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text-2);cursor:pointer;border-radius:99px;padding:5px 12px;font-size:13.5px;font-weight:500;transition:all .15s}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.on{background:var(--text);border-color:var(--text);color:var(--bg)}.tag{background:var(--card-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.tag-accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.tag-good{background:var(--good-soft);color:var(--good);border-color:#0000}.tag-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.bar{background:var(--card-2);border-radius:99px;height:6px;overflow:hidden}.bar>span{background:var(--c,var(--accent));border-radius:99px;height:100%;transition:width .5s;display:block}.bar.thin{height:4px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:.25s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}}.topbar{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{height:var(--topbar-h);align-items:center;gap:28px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-name{letter-spacing:0;font-size:19px;font-weight:700}.brand-sub{color:var(--muted);border-inline-start:1px solid var(--border);padding-inline-start:10px;font-size:12px}.nav{gap:2px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--muted);white-space:nowrap;align-items:center;gap:7px;padding:6px 12px;font-size:14.5px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.nav-link:hover{color:var(--text);background:var(--card-2)}.nav-link.active{color:var(--text);font-weight:600}.nav-link.active:after{content:"";inset-inline:12px;background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-13px}.nav-badge{background:var(--accent-2);color:#fff;min-width:18px;height:18px;font-size:11px;font-weight:700;font-family:var(--font-mono);border-radius:99px;place-items:center;padding:0 5px;display:inline-grid}.topbar-side{align-items:center;gap:6px;margin-inline-start:auto;display:flex}.stat-pill{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:6px;padding:5px 10px;font-size:13.5px;font-weight:600;display:inline-flex}.stat-pill b{font-family:var(--font-mono);font-weight:600}.stat-pill.streak svg{color:var(--accent-2)}.stat-pill.points svg{color:var(--accent)}.avatar{background:var(--accent);width:34px;height:34px;color:var(--on-accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar.lg{width:72px;height:72px;font-size:28px}.mobile-nav{display:none}.footer{border-top:1px solid var(--border);color:var(--muted);padding:28px 0;font-size:13.5px}.footer .container{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.modal-backdrop{z-index:150;background:#0a0c0b73;place-items:center;padding:20px;animation:.2s both fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);width:min(480px,100%);box-shadow:var(--shadow-lg);border-radius:16px;max-height:92vh;padding:28px;overflow-y:auto}.modal h2{font-size:22px}.modal p{color:var(--text-2)}.modal-icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:12px;place-items:center;margin-bottom:16px;display:grid}.modal-icon.good{background:var(--good-soft);color:var(--good)}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.toasts{bottom:24px;z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;inset-inline-start:24px}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:10px;align-items:center;gap:12px;max-width:360px;padding:10px 16px;font-size:14px;font-weight:500;animation:.3s both toastIn;display:flex}.toast-icon{background:color-mix(in srgb, var(--bg) 15%, transparent);border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.toast small{opacity:.7;font-size:12px;display:block}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}}.onboard{width:min(520px,100%)}.onboard-steps{gap:12px;margin:20px 0 24px;display:grid}.onboard-step{color:var(--text-2);align-items:flex-start;gap:12px;font-size:14.5px;display:flex}.onboard-step .ico{background:var(--card-2);width:32px;height:32px;color:var(--accent);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.onboard-step b{color:var(--text);display:block}.field-label{margin-bottom:6px;font-size:13.5px;font-weight:600;display:block}.hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;padding:56px 0 24px;display:grid}.hero h1{margin:14px 0 18px;font-size:clamp(32px,4.4vw,50px);line-height:1.25}.hero h1 em{color:var(--accent);font-style:normal}.hero .lead{color:var(--text-2);max-width:540px;font-size:18px;line-height:1.85}.hero-cta{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.hero-facts{flex-wrap:wrap;gap:32px;margin-top:36px;display:flex}.hero-facts div{flex-direction:column;display:flex}.hero-facts b{font-size:26px;font-weight:600;font-family:var(--font-mono);line-height:1.2}.hero-facts span{color:var(--muted);font-size:13px}.hero-visual{position:relative}.method{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);grid-template-columns:repeat(4,1fr);gap:0;display:grid;overflow:hidden}.method-item{border-inline-start:1px solid var(--border);padding:22px}.method-item:first-child{border-inline-start:0}.method-item .ico{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:9px;place-items:center;margin-bottom:14px;display:grid}.method-item h3{margin-bottom:6px;font-size:16px}.method-item p{color:var(--muted);font-size:14px;line-height:1.75}.method-item .n{font-family:var(--font-mono);color:var(--muted);float:inline-end;font-size:12px}.syllabus{grid-template-columns:repeat(2,1fr);gap:0 32px;display:grid}.syl-row{border-bottom:1px solid var(--border);grid-template-columns:44px 1fr auto;align-items:center;gap:14px;padding:14px 0;display:grid}.syl-row:hover .syl-title{color:var(--accent)}.syl-num{font-family:var(--font-mono);color:var(--muted);font-size:13px}.syl-title{font-size:15.5px;font-weight:600;transition:color .15s}.syl-sub{color:var(--muted);font-size:13px}.syl-meta{color:var(--muted);text-align:end;white-space:nowrap;font-size:12.5px}.dash-grid{grid-template-columns:1.6fr 1fr;gap:20px;display:grid}.continue{flex-direction:column;gap:14px;padding:24px;display:flex}.continue-top{align-items:center;gap:14px;display:flex}.continue h2{font-size:22px}.continue .meta{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:13.5px;display:flex}.review-card{flex-direction:column;gap:10px;padding:24px;display:flex}.review-card .big{font-size:40px;font-weight:600;font-family:var(--font-mono);line-height:1.1}.kpis{grid-template-columns:repeat(4,1fr);gap:0;margin-top:20px;display:grid}.kpi{border-inline-start:1px solid var(--border);padding:18px 20px}.kpi:first-child{border-inline-start:0}.kpi b{font-size:24px;font-weight:600;font-family:var(--font-mono);text-align:end;direction:ltr;display:block}.kpi span{color:var(--muted);font-size:13px}.unit-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin-bottom:14px;overflow:hidden}.unit-head{cursor:pointer;text-align:start;width:100%;font:inherit;background:0 0;border:0;grid-template-columns:112px 1fr 180px 28px;align-items:center;gap:20px;padding:16px 20px;display:grid}.unit-head:hover{background:color-mix(in srgb, var(--card-2) 60%, transparent)}.unit-art{background:var(--card-2);border-radius:8px;width:112px;height:72px;display:block}.unit-num{font-family:var(--font-mono);color:var(--c);font-size:12px;font-weight:600}.unit-title{margin:2px 0;font-size:18px;font-weight:700}.unit-sub{color:var(--muted);font-size:14px}.unit-prog{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.unit-chevron{color:var(--muted);transition:transform .2s}.unit-block.open .unit-chevron{transform:rotate(180deg)}.unit-body{border-top:1px solid var(--border);padding:6px 0 10px}.unit-goal{color:var(--text-2);gap:10px;padding:12px 20px 8px;font-size:14px;display:flex}.unit-goal svg{color:var(--c);flex-shrink:0;margin-top:4px}.lesson-row{grid-template-columns:28px 1fr auto auto;align-items:center;gap:14px;padding:10px 20px;transition:background .15s;display:grid}.lesson-row:hover:not(.locked){background:var(--card-2)}.lesson-row .status{color:var(--border-strong);place-items:center;display:grid}.lesson-row.done .status{color:var(--good)}.lesson-row.current .status{color:var(--accent)}.lesson-row .t{font-size:15px;font-weight:500}.lesson-row .s{color:var(--muted);font-size:13px}.lesson-row .m{color:var(--muted);font-size:12.5px;font-family:var(--font-mono);white-space:nowrap}.lesson-row.locked{color:var(--muted);cursor:not-allowed}.lesson-row.current{background:var(--accent-soft)}.read-progress{top:0;z-index:60;pointer-events:none;height:2px;position:fixed;inset-inline:0}.read-progress span{background:var(--accent);height:100%;transition:width .1s linear;display:block}.lesson-shell{grid-template-columns:260px minmax(0,1fr) 220px;gap:48px;max-width:1360px;margin:0 auto;padding:0 24px;display:grid}.lesson-side{top:calc(var(--topbar-h) + 24px);max-height:calc(100vh - var(--topbar-h) - 48px);align-self:start;padding:28px 0 24px;position:sticky;overflow-y:auto}.side-unit{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:14px}.side-unit small{font-family:var(--font-mono);color:color-mix(in srgb, var(--c) 60%, var(--text));font-size:11.5px;font-weight:600}.side-unit b{margin-top:2px;font-size:15px;line-height:1.5;display:block}.side-lesson{color:var(--text-2);border-radius:7px;grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:7px 10px;font-size:13.5px;line-height:1.6;display:grid}.side-lesson svg{color:var(--border-strong);margin-top:3px}.side-lesson.done svg{color:var(--good)}.side-lesson:hover:not(.locked){background:var(--card-2);color:var(--text)}.side-lesson.active{background:var(--card-2);color:var(--text);font-weight:600}.side-lesson.active svg{color:var(--accent)}.side-lesson.locked{color:var(--muted);cursor:not-allowed}.side-lesson.locked svg{color:var(--muted)}.lesson-main{min-width:0;padding:36px 0 96px}.lesson-article{max-width:740px;margin:0 auto}.crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.crumbs a:hover{color:var(--text)}.lesson-title{margin:14px 0 12px;font-size:clamp(28px,3.6vw,38px);line-height:1.3}.lesson-lead{color:var(--text-2);font-size:18px;line-height:1.85}.lesson-meta{color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:18px;margin-top:18px;padding-bottom:26px;font-size:13.5px;display:flex}.lesson-meta span{align-items:center;gap:6px;display:inline-flex}.toc{top:calc(var(--topbar-h) + 24px);align-self:start;padding:36px 0 24px;font-size:13px;position:sticky}.toc-title{color:var(--muted);letter-spacing:.02em;margin-bottom:10px;font-size:12px;font-weight:600}.toc a{color:var(--muted);border-inline-start:2px solid var(--border);padding:4px 12px;line-height:1.6;transition:color .15s,border-color .15s;display:block}.toc a:hover{color:var(--text)}.toc a.on{color:var(--text);border-inline-start-color:var(--accent);font-weight:500}.toc-progress{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.toc-progress .row{color:var(--muted);justify-content:space-between;margin-bottom:8px;display:flex}.toc-progress b{font-family:var(--font-mono);color:var(--text);font-weight:600}.blocks>*+*{margin-top:22px}.b-h{padding-top:4px;scroll-margin-top:90px;font-size:23px;margin-top:48px!important}.b-p{color:var(--text);font-size:17px;line-height:1.95}.b-list{margin:0;padding-inline-start:22px;font-size:17px;line-height:1.9}.b-list li+li{margin-top:6px}.b-list li::marker{color:var(--muted)}.objectives{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:20px 22px}.objectives-head{color:var(--accent);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.objectives ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.objectives li{grid-template-columns:20px 1fr;gap:10px;font-size:15.5px;line-height:1.75;display:grid}.objectives li svg{color:var(--accent);margin-top:5px}.callout{border-radius:var(--radius-sm);background:var(--card-2);border-inline-start:3px solid var(--tone,var(--accent));grid-template-columns:22px 1fr;gap:12px;padding:16px 18px;display:grid}.callout svg{color:var(--tone,var(--accent));margin-top:3px}.callout-title{color:var(--text);margin-bottom:2px;font-size:14.5px;font-weight:600}.callout-text{color:var(--text-2);font-size:15.5px;line-height:1.9}.callout-insight{--tone:var(--accent)}.callout-example{--tone:#1971c2}.callout-tip{--tone:var(--good)}.callout-warning{--tone:var(--warn)}.callout-pitfall{--tone:var(--bad)}.callout-history{--tone:#7950f2}.callout-remember{--tone:var(--accent-2)}.steps{gap:0;display:grid}.step{grid-template-columns:32px 1fr;gap:14px;padding-bottom:18px;display:grid;position:relative}.step:not(:last-child):before{content:"";top:32px;bottom:0;background:var(--border-strong);width:1px;position:absolute;inset-inline-start:15px}.step-num{border:1px solid var(--border-strong);background:var(--card);width:32px;height:32px;font-family:var(--font-mono);color:var(--text-2);z-index:1;border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.step-title{padding-top:3px;font-size:15.5px;font-weight:600}.step-text{color:var(--text-2);margin-top:2px;font-size:15.5px;line-height:1.85}.cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.mini-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:18px}.mini-card .ico{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:8px;place-items:center;margin-bottom:12px;display:grid}.mini-card h3{margin-bottom:4px;font-size:15.5px}.mini-card p{color:var(--text-2);font-size:14.5px;line-height:1.8}.flashcards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.flashcard{perspective:1000px;cursor:pointer;text-align:start;font:inherit;color:inherit;background:0 0;border:0;min-height:140px;padding:0}.flashcard-inner{height:100%;min-height:140px;transform-style:preserve-3d;transition:transform .45s;position:relative}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;justify-content:space-between;padding:18px;display:flex;position:absolute;inset:0}.flashcard-face.front{background:var(--card);font-size:16px;font-weight:600}.flashcard-face.front small{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.flashcard-face.back{background:var(--accent-soft);color:var(--text);border-color:#0000;font-size:14.5px;line-height:1.8;overflow-y:auto;transform:rotateY(180deg)}.compare{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.compare-side{padding:18px 20px}.compare-side+.compare-side{border-inline-start:1px solid var(--border)}.compare-title{border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:10px;font-size:15.5px;font-weight:600}.compare-side ul{color:var(--text-2);margin:0;padding-inline-start:18px;font-size:15px;line-height:1.85}.compare-side li+li{margin-top:4px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow-x:auto}.b-table{border-collapse:collapse;width:100%;font-size:14.5px}.b-table th{text-align:start;background:var(--card-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-weight:600}.b-table td{border-top:1px solid var(--border);color:var(--text-2);vertical-align:top;padding:10px 14px}.b-table tr:first-child td{border-top:0}.b-math{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);text-align:center;padding:18px 20px}.b-math .katex-display{font-size:1.15em}.math-caption{color:var(--text-2);text-align:start;border-top:1px dashed var(--border);margin-top:10px;padding-top:10px;font-size:14.5px;line-height:1.9}.flow{align-items:stretch;gap:0;padding-bottom:4px;display:flex;overflow-x:auto}.flow-item{background:var(--card);border:1px solid var(--border);border-inline-start:0;flex:1 1 0;min-width:120px;padding:14px 22px 14px 14px;position:relative}.flow-item:first-child{border-inline-start:1px solid var(--border);border-start-start-radius:var(--radius);border-end-start-radius:var(--radius)}.flow-item:last-child{border-start-end-radius:var(--radius);border-end-end-radius:var(--radius)}.flow-item .n{font-family:var(--font-mono);color:var(--accent);font-size:11.5px;font-weight:600}.flow-item .l{margin-top:2px;font-size:14.5px;font-weight:600;line-height:1.5}.flow-item .d{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.6}.flow-item:not(:last-child):after{content:"";top:50%;background:var(--card);border-bottom:1px solid var(--border);border-left:1px solid var(--border);z-index:1;width:12px;height:12px;position:absolute;inset-inline-end:-7px;transform:translateY(-50%)rotate(45deg)}.keyterms{border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.keyterms-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:600;display:flex}.keyterm{grid-template-columns:180px 1fr;gap:16px;padding:12px 18px;display:grid}.keyterm+.keyterm{border-top:1px solid var(--border)}.keyterm b{font-size:15px}.keyterm .en{font-family:var(--font-mono);color:var(--muted);text-align:end;direction:ltr;font-size:12px;display:block}.keyterm p{color:var(--text-2);font-size:14.5px;line-height:1.85}.summary{border-radius:var(--radius);background:var(--card-2);padding:20px 22px}.summary-head{align-items:center;gap:8px;margin-bottom:10px;font-size:14px;font-weight:600;display:flex}.summary ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.summary li{grid-template-columns:20px 1fr;gap:10px;font-size:15.5px;line-height:1.8;display:grid}.summary li svg{color:var(--good);margin-top:5px}.b-divider{border:0;border-top:1px solid var(--border);margin:36px 0!important}.check{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);padding:20px 22px}.check.is-done{border-color:color-mix(in srgb, var(--good) 40%, var(--border))}.check-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.check-kind{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.check-done{color:var(--good);align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.check-q{margin-bottom:14px;font-size:16.5px;font-weight:600;line-height:1.8}.check-hint{color:var(--muted);margin:-8px 0 12px;font-size:13.5px}.options{gap:8px;display:grid}.option{text-align:start;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:26px 1fr;align-items:start;gap:12px;padding:10px 14px;font-size:15.5px;line-height:1.75;transition:border-color .15s,background .15s;display:grid}.option:hover:not(:disabled){border-color:var(--text-2);background:var(--card-2)}.option:disabled{cursor:default}.option .key{border:1px solid var(--border-strong);width:24px;height:24px;color:var(--muted);border-radius:6px;place-items:center;margin-top:2px;font-size:12.5px;font-weight:600;display:grid}.option.right{border-color:var(--good);background:var(--good-soft)}.option.right .key{background:var(--good);border-color:var(--good);color:#fff}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.option.wrong .key{background:var(--bad);border-color:var(--bad);color:#fff}.option.dim{opacity:.55}.why{color:var(--text-2);margin-top:6px;font-size:14px;line-height:1.75}.feedback{border-radius:var(--radius-sm);grid-template-columns:20px 1fr;gap:10px;margin-top:14px;padding:12px 16px;font-size:15px;line-height:1.85;display:grid}.feedback svg{margin-top:4px}.feedback.good{background:var(--good-soft);color:var(--text)}.feedback.good svg{color:var(--good)}.feedback.bad{background:var(--bad-soft);color:var(--text)}.feedback.bad svg{color:var(--bad)}.feedback b{display:block}.feedback p{color:var(--text-2)}.others{margin-top:10px;font-size:14px}.others summary{cursor:pointer;color:var(--muted);font-weight:500}.others ul{color:var(--text-2);margin:8px 0 0;padding-inline-start:18px;line-height:1.8}.others li+li{margin-top:6px}.tf-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tf-btn{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:11px;font-size:15.5px;font-weight:600;transition:all .15s;display:flex}.tf-btn:hover:not(:disabled){background:var(--card-2);border-color:var(--text-2)}.tf-btn.right{border-color:var(--good);background:var(--good-soft);color:var(--good)}.tf-btn.wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}.tf-btn:disabled{cursor:default}.order-list{gap:8px;margin-bottom:14px;display:grid}.order-item{font:inherit;text-align:start;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);cursor:pointer;grid-template-columns:28px 1fr;align-items:center;gap:12px;padding:9px 14px;font-size:15px;line-height:1.7;transition:all .15s;display:grid}.order-item:hover:not(:disabled){background:var(--card-2)}.order-item .pos{border:1px dashed var(--border-strong);width:26px;height:26px;font-family:var(--font-mono);color:var(--muted);border-radius:50%;place-items:center;font-size:12.5px;font-weight:600;display:grid}.order-item.picked{border-color:var(--accent)}.order-item.picked .pos{background:var(--accent);color:var(--on-accent);border:0}.order-item.right{border-color:var(--good);background:var(--good-soft)}.order-item.right .pos{background:var(--good);color:#fff;border:0}.order-item:disabled{cursor:default}.match-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.match-col{align-content:start;gap:8px;display:grid}.match-item{font:inherit;text-align:start;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;min-height:46px;padding:9px 12px;font-size:14.5px;line-height:1.7;transition:all .15s;display:flex}.match-item:hover:not(:disabled){background:var(--card-2)}.match-item .dot{background:var(--pair,transparent);border:1px solid var(--pair,var(--border-strong));border-radius:50%;flex-shrink:0;width:10px;height:10px}.match-item.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.match-item.paired{border-color:var(--pair)}.match-item.bad{border-color:var(--bad);background:var(--bad-soft)}.check.is-done .match-item{border-color:color-mix(in srgb, var(--good) 50%, var(--border))}.check-actions{align-items:center;gap:8px;display:flex}.shake{animation:.35s shake}@keyframes shake{25%,75%{transform:translate(-4px)}50%{transform:translate(4px)}}.code-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.code-head{border-bottom:1px solid var(--border);background:var(--card);justify-content:space-between;align-items:center;gap:10px;padding:7px 8px 7px 12px;display:flex}.code-title{color:var(--text-2);align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:600;display:flex}.code-title span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.code-title svg{color:var(--muted);flex-shrink:0}.code-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.kbd{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:11px}.editor{background:var(--code-bg);direction:ltr;font-size:14px}.editor .cm-editor{background:var(--code-bg)!important;outline:none!important}.editor .cm-gutters{background:var(--code-bg)!important;color:var(--muted)!important;border-right:0!important}.editor .cm-scroller{line-height:1.7;font-family:var(--font-mono)!important}.editor .cm-content{padding:12px 0}.editor .cm-activeLine,.editor .cm-activeLineGutter{background:color-mix(in srgb, var(--text) 4%, transparent)!important}.out{border-top:1px solid var(--border);background:var(--card)}.out-head{color:var(--muted);justify-content:space-between;align-items:center;padding:7px 14px;font-size:12.5px;font-weight:600;display:flex}.out-head .ok{color:var(--good);align-items:center;gap:6px;display:inline-flex}.out-head .err{color:var(--bad);align-items:center;gap:6px;display:inline-flex}.out pre,.expected pre{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;text-align:left;max-height:420px;color:var(--text);direction:ltr;margin:0;padding:4px 16px 14px;font-size:13.5px;line-height:1.65;overflow:auto}.out pre.trace{color:var(--bad)}.out-img{border:1px solid var(--border);background:#fff;border-radius:6px;max-width:calc(100% - 28px);margin:4px 14px 14px;display:block}.out .empty{color:var(--muted);padding:0 16px 12px;font-size:13.5px}.out.running .out-head{justify-content:flex-start;gap:8px}.err-hint{border-radius:var(--radius-sm);background:var(--warn-soft);grid-template-columns:18px 1fr;gap:8px;margin:0 14px 14px;padding:10px 12px;font-size:14px;line-height:1.8;display:grid}.err-hint svg{color:var(--warn);margin-top:4px}.offline-note{color:var(--text-2);background:var(--warn-soft);border-top:1px solid var(--border);padding:10px 16px;font-size:13.5px}.expected{border-top:1px solid var(--border)}.expected summary{color:var(--muted);cursor:pointer;padding:8px 14px;font-size:12.5px;font-weight:500}.challenge{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);overflow:hidden}.challenge.is-solved{border-color:color-mix(in srgb, var(--good) 45%, var(--border))}.challenge-body{padding:18px 20px}.challenge-label{color:var(--accent-2);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12.5px;font-weight:600;display:flex}.challenge-label span{align-items:center;gap:6px;display:inline-flex}.challenge-label .solved{color:var(--good)}.challenge h3{margin-bottom:6px;font-size:17px}.challenge-text{color:var(--text-2);font-size:15.5px;line-height:1.9}.challenge-expected{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);margin-top:12px}.challenge-expected .lbl{color:var(--muted);padding:6px 12px 0;font-size:12px;font-weight:600}.challenge-expected pre{font-family:var(--font-mono);text-align:left;white-space:pre-wrap;direction:ltr;margin:0;padding:4px 12px 10px;font-size:13px}.challenge .editor{border-top:1px solid var(--border)}.challenge-bar{border-top:1px solid var(--border);background:var(--card);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;display:flex}.challenge-bar .spacer{flex:1}.hints{gap:8px;padding:0 14px 12px;display:grid}.hint{border-radius:var(--radius-sm);background:var(--card-2);grid-template-columns:56px 1fr;gap:8px;padding:10px 12px;font-size:14.5px;line-height:1.8;display:grid}.hint span{color:var(--muted);padding-top:3px;font-size:12px;font-weight:600}.verdict{margin:0 14px 12px}.solution{border-top:1px solid var(--border)}.solution-head{justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.widget{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.widget-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 16px;display:flex}.widget-kind{color:var(--accent);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.widget-title{color:var(--text);font-size:14px;font-weight:600}.widget-body{padding:18px 18px 14px}.widget-cap{border-top:1px solid var(--border);background:var(--card-2);color:var(--text-2);grid-template-columns:18px 1fr;gap:10px;padding:12px 18px;font-size:14px;line-height:1.85;display:grid}.widget-cap svg{color:var(--muted);margin-top:4px}.widget-loading,.widget-fallback{text-align:center;color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:40px;font-size:14px;display:flex}.finish{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:24px;margin-top:56px!important}.finish-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.finish h3{font-size:18px}.finish p{color:var(--muted);margin-top:4px;font-size:14.5px}.finish .bar{margin-top:16px}.pager{grid-template-columns:1fr 1fr;gap:12px;display:grid;margin-top:16px!important}.pager a{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);flex-direction:column;gap:2px;padding:14px 16px;transition:border-color .15s;display:flex}.pager a:hover{border-color:var(--border-strong)}.pager small{color:var(--muted);align-items:center;gap:4px;font-size:12.5px;display:flex}.pager b{font-size:14.5px;font-weight:600}.pager .next{text-align:end;grid-column:2;align-items:flex-end}.test-intro{border:1px solid var(--border);border-radius:var(--radius);background:var(--card-2);color:var(--text-2);grid-template-columns:22px 1fr;gap:12px;padding:18px 20px;font-size:15px;line-height:1.85;display:grid}.test-intro svg{color:var(--accent);margin-top:4px}.qnum{font-family:var(--font-mono);color:var(--muted);font-size:12px;font-weight:600}.score{align-items:center;gap:22px;display:flex}.score-ring{--p:0;--c:var(--accent);background:conic-gradient(var(--c) calc(var(--p) * 360deg), var(--card-2) 0);border-radius:50%;flex-shrink:0;place-items:center;width:84px;height:84px;display:grid}.score-ring span{background:var(--card);width:68px;height:68px;font-family:var(--font-mono);direction:ltr;border-radius:50%;place-items:center;font-size:18px;font-weight:600;display:grid}.review-shell{max-width:720px;margin:0 auto}.review-progress{color:var(--muted);align-items:center;gap:14px;margin-bottom:20px;font-size:13.5px;display:flex}.review-progress .bar{flex:1}.review-source{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.boxes{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.box-col{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);padding:12px}.box-col b{font-family:var(--font-mono);font-size:22px;font-weight:600;display:block}.box-col span{color:var(--muted);font-size:12.5px}.empty-state{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);padding:56px 20px}.empty-state svg{color:var(--good);margin-bottom:12px}.empty-state h3{color:var(--text);margin-bottom:6px;font-size:18px}.pg-grid{grid-template-columns:1.1fr 1fr;align-items:start;gap:16px;display:grid}.pg-grid .editor .cm-editor{min-height:460px}.pg-out{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-height:200px;overflow:hidden}.pg-out .out{border-top:0}.pg-empty{text-align:center;color:var(--muted);padding:56px 20px;font-size:14px}.gl-tools{flex-direction:column;gap:14px;margin-bottom:24px;display:flex}.gl-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.gl-item{grid-template-columns:220px 1fr;gap:20px;padding:16px 20px;display:grid}.gl-item+.gl-item{border-top:1px solid var(--border)}.gl-item h3{font-size:16px}.gl-item .en{font-family:var(--font-mono);color:var(--muted);text-align:end;direction:ltr;margin-top:2px;font-size:12.5px;display:block}.gl-item p{color:var(--text-2);font-size:15px;line-height:1.85}.gl-item .ex{color:var(--muted);margin-top:4px;font-size:14px}.profile-head{align-items:center;gap:20px;display:flex}.profile-head h1{align-items:center;gap:8px;font-size:26px;display:flex}.level-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:14px;display:flex}.level-line .bar{width:220px}.stat-grid{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);grid-template-columns:repeat(6,1fr);margin-top:28px;display:grid}.stat-grid>div{border-inline-start:1px solid var(--border);padding:16px 18px}.stat-grid>div:first-child{border-inline-start:0}.stat-grid b{font-family:var(--font-mono);text-align:end;direction:ltr;font-size:22px;font-weight:600;display:block}.stat-grid span{color:var(--muted);font-size:12.5px}.badges{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.badge{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);grid-template-columns:40px 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.badge .ico{background:var(--card-2);width:40px;height:40px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.badge.on .ico{background:var(--accent-soft);color:var(--accent)}.badge b{font-size:14px;line-height:1.5;display:block}.badge small{color:var(--muted);font-size:12.5px;line-height:1.5;display:block}.badge:not(.on){opacity:.6}.settings{border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.setting{justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;display:flex}.setting+.setting{border-top:1px solid var(--border)}.setting b{font-size:15px;display:block}.setting small{color:var(--muted);font-size:13.5px}.switch{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:var(--border-strong);cursor:pointer;border-radius:99px;transition:background .2s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;right:3px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:before{transform:translate(-18px)}.unit-progress-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.upl-row{grid-template-columns:40px 1fr 200px 56px;align-items:center;gap:14px;padding:12px 18px;font-size:14.5px;display:grid}.upl-row+.upl-row{border-top:1px solid var(--border)}.upl-row .n{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.upl-row .v{font-family:var(--font-mono);color:var(--muted);text-align:end;direction:ltr;font-size:12.5px}.cert{color:#1b1b18;max-width:960px;box-shadow:var(--shadow);background:#fffefb;border:1px solid #e4e3de;margin:0 auto;padding:14px}.cert-inner{text-align:center;border:1px solid #c9b98a;padding:56px 64px;position:relative}.cert-inner:before{content:"";pointer-events:none;border:1px solid #e6dcc0;position:absolute;inset:6px}.cert-brand{color:#0b6e6e;justify-content:center;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.cert-kicker{letter-spacing:.08em;color:#8a7a4c;margin-top:36px;font-size:14px;font-weight:600}.cert-title{margin-top:6px;font-size:40px;font-weight:700}.cert-text{color:#55544e;margin-top:22px;font-size:16px}.cert-name{border-bottom:1px solid #c9b98a;margin:10px auto 0;padding:0 40px 8px;font-size:38px;font-weight:700;display:inline-block}.cert-course{color:#0b6e6e;margin-top:8px;font-size:22px;font-weight:600}.cert-units{color:#6b6a64;max-width:680px;margin:26px auto 0;font-size:13px;line-height:2}.cert-foot{grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;margin-top:48px;display:grid}.cert-foot>div{color:#6b6a64;font-size:13px}.cert-foot b{color:#1b1b18;border-bottom:1px solid #c9b98a;margin-bottom:6px;padding-bottom:6px;font-size:15px;display:block}.cert-id{font-family:var(--font-mono);color:#8a877d;direction:ltr;margin-top:18px;font-size:11px}.page-loading,.lesson-loading{color:var(--muted);text-align:center;padding:48px 0}.account{gap:12px;display:grid}.account-row{align-items:flex-start;gap:12px;display:flex}.account-row>svg{color:var(--accent);flex-shrink:0;margin-top:3px}.account-row b{display:block}.account-row small{color:var(--muted);font-size:13.5px}.account-actions{flex-wrap:wrap;gap:6px;display:flex}.account-google{justify-content:center;width:100%}.account-or{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.account-or:before,.account-or:after{content:"";border-top:1px solid var(--border);flex:1}.account-email{flex-wrap:wrap;gap:8px;display:flex}.account-email .input{flex:200px}.account-error{color:var(--bad);margin:0;font-size:13.5px}.account small a,.legal a{color:var(--accent)}.onboard-signin{color:var(--muted);margin:16px 0 0;font-size:14px}.account-code{flex-wrap:wrap;gap:8px;display:flex}.code-input{font-family:var(--font-mono);letter-spacing:.45em;text-align:center;flex:180px;padding-block:10px;font-size:24px}.signin-btn{white-space:nowrap}.welcome{gap:8px;margin-top:24px;padding:22px 24px;display:grid;position:relative}.welcome h2{font-size:20px}.welcome p{margin:0}.welcome-close{top:10px;position:absolute;inset-inline-end:10px}.welcome-form{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.welcome-form .input{flex:220px}.report-open{color:var(--muted);margin-top:18px}.report{gap:8px;margin-top:18px;padding:16px;display:grid}.report textarea{resize:vertical;min-height:84px;font:inherit}.report-done{color:var(--good);margin-top:18px;font-size:14px}.verify-result{margin-top:20px}.verify-bad{color:var(--bad);align-items:center;gap:10px;display:flex}.verify-bad p{color:var(--text-2);margin:0}.captcha{min-height:0}.login-card{max-width:460px;margin:24px auto;padding:28px}.login-head{text-align:center;justify-items:center;gap:8px;margin-bottom:22px;display:grid}.login-head h1{margin:4px 0 0;font-size:24px}.login-head p{margin:0}.login-done{text-align:center;color:var(--good);justify-items:center;gap:10px;display:grid}.login-done p{color:var(--text-2);margin:0}.link-btn{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.footer-links{flex-wrap:wrap;gap:16px;display:flex}.footer-links a{color:inherit}.footer-links a:hover{color:var(--text)}.legal{max-width:720px;line-height:1.9}.legal h1{margin-bottom:4px;font-size:30px}.legal h2{margin:32px 0 8px;font-size:19px}.legal p,.legal ul{color:var(--text-2);margin:8px 0}.legal ul{padding-inline-start:22px}@media print{.topbar,.mobile-nav,.footer,.no-print,.toasts,.read-progress{display:none!important}body{background:#fff}.page{padding:0}.cert{box-shadow:none;border:0}}@media (width<=1240px){.lesson-shell{grid-template-columns:240px minmax(0,1fr);gap:36px}.toc{display:none}}@media (width<=980px){.hero{grid-template-columns:1fr;gap:36px;padding-top:32px}.method{grid-template-columns:1fr 1fr}.method-item:nth-child(3){border-inline-start:0}.method-item:nth-child(n+3){border-top:1px solid var(--border)}.syllabus,.dash-grid{grid-template-columns:1fr}.lesson-shell{grid-template-columns:minmax(0,1fr)}.lesson-side{display:none}.stat-grid{grid-template-columns:repeat(3,1fr)}.stat-grid>div:nth-child(4){border-inline-start:0}.stat-grid>div:nth-child(n+4){border-top:1px solid var(--border)}.pg-grid{grid-template-columns:1fr}.brand-sub{display:none}}@media (width<=760px){.signin-label{display:none}.login-card{margin-top:8px;padding:22px 16px}body{font-size:15.5px}.container,.lesson-shell{padding:0 16px}.nav,.topbar-side .stat-pill.points{display:none}.topbar-inner{gap:12px}.mobile-nav{bottom:0;z-index:60;background:var(--card);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset-inline:0}.mtab{color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:11px;font-weight:500;display:flex;position:relative}.mtab.active{color:var(--accent)}.mtab .nav-badge{top:0;min-width:16px;height:16px;font-size:10px;position:absolute;inset-inline-end:22%}.app{padding-bottom:64px}.page{padding-top:24px}.hero h1{font-size:30px}.hero .lead{font-size:16px}.hero-facts{gap:20px}.method{grid-template-columns:1fr}.method-item{border-top:1px solid var(--border);border-inline-start:0!important}.method-item:first-child{border-top:0}.kpis{grid-template-columns:1fr 1fr}.kpi:nth-child(3){border-inline-start:0}.kpi:nth-child(n+3){border-top:1px solid var(--border)}.unit-head{grid-template-columns:1fr 24px;gap:12px;padding:14px 16px}.unit-art{display:none}.unit-prog{grid-area:2/1/auto/-1}.lesson-row{grid-template-columns:24px 1fr auto;padding:10px 16px}.lesson-row .tag{display:none}.lesson-main{padding-top:22px}.b-p,.b-list{font-size:16px}.b-h{font-size:20px}.compare{grid-template-columns:1fr}.compare-side+.compare-side{border-inline-start:0;border-top:1px solid var(--border)}.keyterm,.gl-item{grid-template-columns:1fr;gap:4px}.keyterm .en,.gl-item .en{text-align:start}.match-grid{gap:6px}.match-item{padding:8px 10px;font-size:13.5px}.flow{flex-direction:column}.flow-item{border-top:0;padding:12px 14px;border-inline-start:1px solid var(--border)!important;border-radius:0!important}.flow-item:first-child{border-top:1px solid var(--border);border-start-start-radius:var(--radius)!important;border-start-end-radius:var(--radius)!important}.flow-item:last-child{border-end-end-radius:var(--radius)!important;border-end-start-radius:var(--radius)!important}.flow-item:not(:last-child):after{display:none}.stat-grid{grid-template-columns:1fr 1fr}.stat-grid>div{border-top:1px solid var(--border);border-inline-start:0!important}.stat-grid>div:nth-child(2n){border-inline-start:1px solid var(--border)!important}.stat-grid>div:nth-child(-n+2){border-top:0}.upl-row{grid-template-columns:32px 1fr 48px}.upl-row .bar{grid-column:1/-1}.boxes{grid-template-columns:repeat(3,1fr)}.cert-inner{padding:32px 18px}.cert-title{font-size:28px}.cert-name{padding:0 12px 6px;font-size:26px}.cert-foot{grid-template-columns:1fr}.toasts{bottom:76px;inset-inline:16px}.widget-body{padding:14px 12px 10px}.pager{grid-template-columns:1fr}.pager .next{grid-column:1}}.side-unit small,.unit-num,.lesson-row .m,.syl-meta,.qnum,.upl-row .n,.syl-num{font-family:var(--font);font-variant-numeric:tabular-nums}html[dir=ltr] .flow-item:not(:last-child):after{border-bottom:0;border-left:0;border-top:1px solid var(--border);border-right:1px solid var(--border)}html[dir=ltr] .switch span:before{left:3px;right:auto}html[dir=ltr] .switch input:checked+span:before{transform:translate(18px)}.lang-btn{width:auto;color:var(--text-2);grid-auto-flow:column;gap:6px;padding:0 10px;font-size:13.5px;font-weight:600;text-decoration:none}.footer-lang{color:inherit;font-weight:600}@media (width<=760px){.lang-btn span{display:none}.lang-btn{width:36px;padding:0}}@media (width<=420px){.topbar-side{gap:4px}.brand{gap:8px}html[lang=en] .brand-name{font-size:17px}}@media (width<=370px){html[lang=en] .brand-name{display:none}}
