@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0f1115;--bg2: #161922;--card: #1b1f2a;--line: #2a3040;--text: #e6e8ee;--muted: #8b93a7;--red: #ff2d20;--red2: #ff5a4f;--ok: #2fbf71;--okbg: rgba(47, 191, 113, .1);--bad: #ff5a4f;--badbg: rgba(255, 90, 79, .1);--warn: #f5a524;--code: #12151c;--accent: #7cb7ff;--line2: #4a5470;--mono: "JetBrains Mono Variable", "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #f2f4f8;--bg2: #e8ecf2;--card: #ffffff;--line: #d9dfe9;--text: #1c2333;--muted: #5c6b83;--red: #ff2d20;--red2: #e03a2e;--ok: #1e9e5a;--okbg: rgba(30, 158, 90, .1);--bad: #d84337;--badbg: rgba(216, 67, 55, .08);--warn: #d98f00;--code: #f0f2f7;--accent: #2f6fd8;--line2: #9aa6bc;color-scheme:light}:root[data-theme=light] .card{box-shadow:0 1px 3px #10182812}:root[data-theme=light] .code{color:var(--text)}:root[data-theme=light] .modal-bg{background:#10182859}:root[data-theme=light] .fb-item{background:#1018280a}:root[data-theme=light] .fb-oklist{color:#1a7f4e}:root[data-theme=light] .fb-explain{border-top-color:var(--line)}:root[data-theme=light] .slot{color:var(--accent)}:root[data-theme=light] .slot.right,:root[data-theme=light] .slot-input.right{color:var(--ok)}:root[data-theme=light] .slot.wrong,:root[data-theme=light] .slot-input.wrong{color:var(--bad)}:root[data-theme=light] .tag.hint{color:var(--warn)}:root[data-theme=light] .field-error{color:var(--bad)}:root[data-theme=light] .gutter .lint-line{color:#1c2333}:root[data-theme=light] .hljs-keyword,:root[data-theme=light] .hljs-built_in,:root[data-theme=light] .hljs-meta .hljs-keyword{color:#d73a49}:root[data-theme=light] .hljs-string,:root[data-theme=light] .hljs-attr+.hljs-string{color:#032f62}:root[data-theme=light] .hljs-variable,:root[data-theme=light] .hljs-template-variable{color:#e36209}:root[data-theme=light] .hljs-title,:root[data-theme=light] .hljs-title.class_,:root[data-theme=light] .hljs-title.function_{color:#6f42c1}:root[data-theme=light] .hljs-comment{color:#6a737d}:root[data-theme=light] .hljs-number,:root[data-theme=light] .hljs-literal{color:#005cc5}:root[data-theme=light] .hljs-tag,:root[data-theme=light] .hljs-name{color:#22863a}:root[data-theme=light] .hljs-attr,:root[data-theme=light] .hljs-attribute{color:#005cc5}:root[data-theme=light] .hljs-meta{color:#6a737d}:root[data-theme=light] .hljs-operator,:root[data-theme=light] .hljs-punctuation{color:#24292e}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 Inter Variable,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{transition:background-color .3s ease,color .3s ease;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(600px 400px at 85% -5%,rgba(255,45,32,.14),transparent 60%),radial-gradient(700px 500px at -10% 30%,rgba(124,90,255,.1),transparent 60%),radial-gradient(500px 400px at 60% 110%,rgba(255,45,32,.07),transparent 60%)}:root[data-theme=light] body:before{background:radial-gradient(600px 400px at 85% -5%,rgba(255,45,32,.08),transparent 60%),radial-gradient(700px 500px at -10% 30%,rgba(124,90,255,.07),transparent 60%),radial-gradient(500px 400px at 60% 110%,rgba(255,45,32,.05),transparent 60%)}button{font:inherit;color:inherit}a{color:var(--red2)}h1,h2,h3{margin:.2em 0 .4em;line-height:1.25}h1{font-size:1.7rem}h2{font-size:1.3rem}h3{font-size:1.08rem}hr{border:0;border-top:1px solid var(--line);margin:16px 0}.app{max-width:860px;margin:0 auto;padding:16px 16px 80px}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.row{display:flex;align-items:center}.row.between{justify-content:space-between;gap:16px}.row.gap{gap:12px;justify-content:center}.row.wrap{flex-wrap:wrap;justify-content:flex-start}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 1px #ffffff0a inset;transition:background-color .3s ease,border-color .3s ease}.card.center{text-align:center;padding:40px 20px}.btn{border:0;border-radius:12px;padding:11px 20px;font-weight:600;cursor:pointer;transition:transform .05s,filter .15s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--red);color:#fff;box-shadow:0 3px #b81d14}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent;border:1px solid var(--line)}.btn.ghost:hover{background:var(--bg2)}.btn.danger{background:transparent;border:1px solid var(--bad);color:var(--bad)}.btn.wide{width:100%;margin-top:18px}.icon-btn{background:transparent;border:0;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:8px}.icon-btn:hover{color:var(--text);background:var(--bg2)}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:8px}.top-stats{flex-wrap:wrap;justify-content:flex-end}.account-btn{max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logo{font-weight:800;font-size:1.25rem;display:flex;align-items:center;gap:10px}.logo-mark{background:var(--red);color:#fff;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;box-shadow:inset 0 1px #ffffff47,inset 0 -2px 3px #0003}.top-stats{display:flex;gap:8px;align-items:center}.stat-chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-weight:600;font-size:.9rem}.flame{color:var(--warn)}.bar{flex:1;height:10px;background:var(--bg2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}.bar.big{margin:8px 0 14px}.bar-fill{height:100%;background:linear-gradient(90deg,var(--red),var(--red2));transition:width .45s cubic-bezier(.3,.9,.35,1)}.hero{display:grid;grid-template-columns:1fr 200px;gap:24px;margin-bottom:14px}.goal{border-left:1px solid var(--line);padding-left:20px;display:flex;flex-direction:column;justify-content:center;gap:6px}.goal-v{font-weight:700;font-size:1.2rem}.goal .bar{flex:none}.practice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}.action{display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;padding:14px 16px;transition:border-color .15s,transform .15s,background-color .3s}.action:hover:not(:disabled){border-color:var(--red);transform:translateY(-2px)}.action:disabled{opacity:.55;cursor:default}.action-v{font-size:1.6rem;font-weight:800;min-width:34px;text-align:center;color:var(--red2)}.action-v.warn{color:var(--warn)}.action-t{font-weight:700}.module{margin-bottom:28px}.module-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.module-head p{margin:0 0 12px}.module-count{font-weight:700;color:var(--muted);padding-top:18px}.lessons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.lesson-card{display:flex;gap:12px;align-items:center;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;cursor:pointer}.lesson-card:hover:not(:disabled){border-color:var(--red)}.lesson-card.current{border-color:var(--red);box-shadow:0 0 0 3px #ff2d2026}.lesson-card.locked{opacity:.5;cursor:not-allowed}.lesson-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--bg2);border:1px solid var(--line);flex:none;font-size:.9rem}.exam-card{grid-column:1 / -1;border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.exam-card:hover:not(:disabled){border-color:var(--warn)}.exam-card .exam-num{border-color:color-mix(in srgb,var(--warn) 55%,var(--line));color:var(--warn)}.exam-card.done .exam-num{color:#fff}.exam-card.current{border-color:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 18%,transparent)}.exam-intro{max-width:560px;margin:30px auto}.exam-intro-icon{width:60px;height:60px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;font-size:1.6rem;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));background:color-mix(in srgb,var(--warn) 10%,var(--card))}.center-row{justify-content:center}.lesson-card.done .lesson-num{background:var(--ok);border-color:var(--ok);color:#fff}.lesson-title{font-weight:600}.dots{display:inline-flex;gap:3px;vertical-align:middle}.dots i{width:6px;height:6px;border-radius:50%;background:var(--line);display:inline-block;transition:background .3s}.dots i.on{background:var(--red2)}.player{max-width:760px;margin:0 auto;scroll-margin-top:0}.player-top{display:flex;align-items:center;gap:12px;margin-bottom:4px}.player-title{margin:0 0 14px 44px}.step h2{margin-top:0}.ex-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.pill{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:999px;background:var(--bg2);color:var(--muted);border:1px solid var(--line)}.pill.review{color:var(--accent);border-color:#2c4870}.pill.retry{color:var(--warn);border-color:#6b4e17}.q{font-size:1.05rem;font-weight:500}.q .md p{margin:0 0 8px}.ex-context{margin:0 0 14px}.ex-context-toggle{color:var(--muted);font-size:.85rem;cursor:pointer;margin-bottom:8px;padding:0;background:none;border:none;font-family:inherit}.ex-context-toggle:before{content:"▸";display:inline-block;margin-right:6px;transition:transform .15s}.ex-context-toggle.open:before{transform:rotate(90deg)}.ex-context .code{margin-bottom:0}.hint{color:var(--muted);font-size:.85rem;margin-top:10px}.md p{margin:0 0 12px}.md ul,.md ol{margin:0 0 12px;padding-left:22px}.md li{margin-bottom:4px}.ic{font-family:var(--mono);font-size:.88em;background:var(--code);border:1px solid var(--line);padding:1px 6px;border-radius:6px;white-space:pre-wrap}.callout{background:#ff2d2012;border-left:3px solid var(--red);padding:10px 14px;border-radius:0 10px 10px 0;margin:0 0 12px}.code{background:var(--code);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow-x:auto;font-family:var(--mono);font-size:.88rem;line-height:1.6;margin:0 0 14px}.code.fill{line-height:2.3;white-space:pre-wrap}.options{display:flex;flex-direction:column;gap:10px;margin-top:8px}.option{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--bg2);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.option:hover:not(:disabled){border-color:var(--line2)}.option:active:not(:disabled){transform:scale(.985)}.option.picked{border-color:var(--accent);background:#7cb7ff14}.option.right{border-color:var(--ok);background:var(--okbg)}.option.wrong{border-color:var(--bad);background:var(--badbg)}.option:disabled{cursor:default}.radio,.box{width:18px;height:18px;border:2px solid var(--muted);flex:none;border-radius:50%}.box{border-radius:5px}.option.picked .radio,.option.picked .box{border-color:var(--accent);background:radial-gradient(var(--accent) 45%,transparent 50%)}.option.picked .box{background:var(--accent)}.slot{font-family:var(--mono);font-size:.88rem;display:inline-block;vertical-align:middle;padding:0 8px;height:28px;line-height:26px;border-radius:7px;background:#7cb7ff1f;border:1.5px solid var(--accent);color:#cfe3ff;cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.slot.empty{background:transparent;border-style:dashed;border-color:var(--line2)}.slot-num{color:var(--muted);font-size:.75rem}.slot.right,.slot-input.right{border-color:var(--ok);background:var(--okbg);color:#bff0d4}.slot.wrong,.slot-input.wrong{border-color:var(--bad);background:var(--badbg);color:#ffd0cc}.slot-input{font-family:var(--mono);font-size:.88rem;background:var(--bg2);color:var(--text);border:1.5px solid var(--line2);border-radius:7px;padding:2px 6px;height:28px;vertical-align:middle;outline:none}.slot-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7cb7ff33}.bank{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.chip{font-family:var(--mono);font-size:.88rem;padding:7px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg2);cursor:grab;box-shadow:0 2px 0 var(--line)}.chip:hover:not(:disabled){border-color:var(--accent)}.chip.used{opacity:.25;cursor:default;box-shadow:none}.order-target{min-height:60px;border:2px dashed var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;margin:8px 0 12px}.order-target .placeholder{color:var(--muted);text-align:center;padding:12px;font-size:.9rem}.order-pool{display:flex;flex-direction:column;gap:6px}.line{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg2);cursor:pointer;font-family:var(--mono);font-size:.86rem;white-space:pre;overflow-x:auto}.line:hover:not(:disabled){border-color:var(--accent)}.line.right{border-color:var(--ok);background:var(--okbg)}.line.wrong{border-color:var(--bad);background:var(--badbg)}.ln{color:var(--muted);font-size:.75rem;min-width:16px}.editor{display:flex;background:var(--code);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #7cb7ff26}.gutter{padding:12px 8px;color:var(--line2);font-family:var(--mono);font-size:.88rem;line-height:1.6;text-align:right;-webkit-user-select:none;user-select:none;background:#00000026}:root[data-theme=light] .gutter{background:#1018280d}.gutter .cur{color:var(--text)}.gutter .lint-line{color:#fff;background:var(--warn);border-radius:4px;padding:0 3px}.editor-area{position:relative;flex:1;min-width:0}.editor-hl,.editor textarea{margin:0;font-family:var(--mono);font-size:.88rem;line-height:1.6;padding:12px;white-space:pre;-moz-tab-size:4;tab-size:4;font-variant-ligatures:normal}.editor-hl{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;color:var(--text);pointer-events:none}.editor-hl code{font-family:inherit;font-size:inherit;font-variant-ligatures:inherit}.editor textarea{position:relative;display:block;width:100%;background:transparent;border:0;outline:none;resize:none;color:transparent;caret-color:var(--text);overflow-x:auto}.editor textarea::selection{background:#7cb7ff47}.editor textarea:disabled{cursor:default}.editor-marks{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;font-family:var(--mono);font-size:.88rem}.curline{position:absolute;left:0;right:0;height:1.6em;background:#7cb7ff12;pointer-events:none;font-size:.88rem}.brack{position:absolute;width:calc(1ch + 4px);margin-left:-2px;height:1.6em;background:#7cb7ff1f;outline:1.5px solid var(--accent);border-radius:3px}.symbar{display:none;flex-wrap:wrap;gap:6px;margin-top:8px}@media (pointer: coarse),(hover: none){.symbar{display:flex}}.symbar button{font-family:var(--mono);font-size:.85rem;padding:5px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);color:var(--text);cursor:pointer;transition:border-color .15s,transform .1s}.symbar button:hover{border-color:var(--accent)}.symbar button:active{transform:scale(.94)}.editor-foot{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:.8rem;color:var(--muted)}.editor-foot .spacer{flex:1}.feedback{margin-top:18px;border-radius:14px;padding:16px 18px;border:1px solid;animation:pop .18s ease-out}.feedback.ok{border-color:#2fbf7180;background:var(--okbg)}.feedback.bad{border-color:#ff5a4f80;background:var(--badbg)}@keyframes pop{0%{transform:translateY(6px);opacity:0}}.fb-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}.fb-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;flex:none}.ok .fb-icon{background:var(--ok)}.bad .fb-icon{background:var(--bad)}.fb-title{font-weight:800;font-size:1.1rem}.fb-sub{font-size:.85rem;color:var(--muted)}.fb-item{background:#0000002e;border-radius:10px;padding:10px 12px;margin:8px 0}.fb-label{font-weight:700;font-size:.9rem;margin-bottom:4px}.fb-compare{display:flex;flex-direction:column;gap:4px;margin:4px 0 6px;font-size:.9rem}.fb-note{margin:4px 0;font-size:.93rem}.fb-oklist{font-size:.85rem;color:#9be3bb;margin:6px 0}.tag{font-size:.7rem;text-transform:uppercase;font-weight:700;padding:1px 7px;border-radius:6px;letter-spacing:.03em}.tag.bad{background:var(--badbg);color:var(--bad);border:1px solid rgba(255,90,79,.4)}.tag.ok{background:var(--okbg);color:var(--ok);border:1px solid rgba(47,191,113,.4)}.fb-solution{margin-top:10px}.fb-explain{margin-top:10px;font-size:.95rem;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}.fb-explain .md p:last-child{margin-bottom:0}.fb-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.summary{text-align:center;max-width:560px;margin:30px auto}.big-check{width:70px;height:70px;margin:0 auto 10px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:800}.big-check.bad{background:var(--bad)}.stats-row{display:flex;justify-content:center;gap:12px;margin:18px 0}.stat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 16px;min-width:110px}.stat-v{font-size:1.4rem;font-weight:800}.stat-l{font-size:.8rem;color:var(--muted)}.missed{text-align:left;background:var(--bg2);border-radius:12px;padding:12px 16px;margin-bottom:18px}.missed ul{padding-left:18px;margin:6px 0 0}.missed .md p{margin:0}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--card);border:1px solid var(--line);border-radius:16px;max-width:760px;width:100%;max-height:88vh;overflow-y:auto;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;position:sticky;top:-20px;background:var(--card);padding:4px 0 8px}.modal-section{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}.settings-menu{display:flex;flex-direction:column;gap:10px}.settings-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;transition:border-color .15s,transform .15s,background-color .3s}.settings-item:hover{border-color:var(--red);transform:translateY(-1px)}.settings-item-ico{width:40px;height:40px;flex:none;border-radius:11px;display:grid;place-items:center;background:var(--bg2);border:1px solid var(--line);color:var(--red2)}.settings-item-body{flex:1;min-width:0}.settings-item-t{display:block;font-weight:700}.settings-item-d{display:block;margin-top:2px}.settings-item .chev{color:var(--muted);font-size:1.3rem;flex:none}.set-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.set-row-text{flex:1;min-width:0}.set-row-t{font-weight:600;margin-bottom:2px}.set-row-c{flex:none}.switch{position:relative;width:46px;height:26px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);cursor:pointer;padding:0;transition:background .2s,border-color .2s;flex:none}.switch:hover:not(:disabled){border-color:var(--line2)}.switch:disabled{opacity:.45;cursor:not-allowed}.switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .2s cubic-bezier(.3,1.4,.5,1),background .2s}.switch.on{background:var(--red);border-color:var(--red)}.switch.on .switch-knob{transform:translate(20px);background:#fff}.select-wrap{position:relative}.select-btn{display:flex;align-items:center;gap:8px;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:inherit;cursor:pointer;min-width:90px;justify-content:space-between;transition:border-color .15s}.select-btn:hover:not(:disabled){border-color:var(--line2)}.select-btn:disabled{opacity:.45;cursor:not-allowed}.select-wrap.open .select-btn{border-color:var(--accent)}.select-chev{color:var(--muted);font-size:.8rem;transition:transform .15s}.select-wrap.open .select-chev{transform:rotate(180deg)}.select-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;min-width:100%;max-height:240px;overflow-y:auto;z-index:40;box-shadow:0 10px 28px #00000059;animation:menuIn .15s ease-out;transform-origin:top right}.select-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap}.select-opt:hover{background:var(--bg2)}.select-opt.active{color:var(--red2);font-weight:600}.select-opt-t{flex:1}.select-opt-h{color:var(--muted);font-size:.8rem}.select-check{color:var(--red2);font-weight:700}.time-select{display:flex;align-items:center;gap:6px}.time-select .select-btn{min-width:66px;justify-content:center}.time-sep{font-weight:700;color:var(--muted)}.seg{display:inline-flex;gap:4px;background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:4px}.seg-btn{border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:.9rem;padding:6px 14px;cursor:pointer;transition:background .15s,color .15s}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--card);color:var(--text);box-shadow:0 1px 4px #00000040}.goal-block{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.goal-block-head{margin-bottom:8px}.goal-reward{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--warn);flex:none}.goal-bar{flex:none;height:8px}.goal-note{margin:0 0 8px;font-size:.9rem;font-weight:600}.goal-note.ok{color:var(--ok)}.goal-note.bad{color:var(--bad)}.goal-pick-label{margin-bottom:8px}.goal-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.goal-opt{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;border-radius:11px;border:1.5px solid var(--line);background:var(--bg2);color:var(--text);font:inherit;cursor:pointer;transition:border-color .15s,transform .1s}.goal-opt:hover{border-color:var(--warn);transform:translateY(-1px)}.goal-opt-days{font-weight:700;font-size:.88rem}.goal-opt-reward{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;font-weight:700;color:var(--warn)}@media (max-width: 680px){.goal-options{grid-template-columns:repeat(2,1fr)}}.coin-chip{display:inline-flex;align-items:center;gap:6px}.coins-celebrate{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--warn) 10%,var(--bg2));border:1px solid color-mix(in srgb,var(--warn) 45%,var(--line));border-radius:14px;padding:12px 16px;margin:14px 0;text-align:left;animation:cardIn .3s ease-out}.stat-coins{display:inline-flex;align-items:center;gap:5px;color:var(--warn)}.avatar-btn{position:relative;display:block;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--card);cursor:pointer;overflow:hidden;transition:border-color .15s,transform .15s}.avatar-btn:hover{border-color:var(--line2);transform:translateY(-1px)}.avatar-btn svg{display:block;width:100%;height:100%}.avatar-btn .sync-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid var(--bg)}.user-menu{position:relative}.user-drop{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px;z-index:45;box-shadow:0 12px 32px #0006;animation:menuIn .15s ease-out;transform-origin:top right}.user-drop-head{display:flex;align-items:center;gap:12px;padding:8px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.user-drop-head svg{flex:none;border-radius:50%;border:1px solid var(--line)}.user-drop-id{min-width:0}.user-drop-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-drop-item{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;cursor:pointer}.user-drop-item:hover{background:var(--bg2)}.user-drop-item.danger{color:var(--bad)}.no-access p{margin:8px 0}.no-access-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.admin-users{display:flex;flex-direction:column;gap:10px}.admin-user{padding:14px 16px}.profile-page{display:flex;flex-direction:column}.av-editor{display:flex;flex-direction:column;flex:1;min-height:0;height:calc(100dvh - 150px);padding:0;overflow:hidden}.av-preview{position:relative;flex:0 0 78%;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);min-height:0}.av-preview-body{filter:drop-shadow(0 14px 24px rgba(0,0,0,.35))}.av-preview-id{position:absolute;left:18px;top:14px}.av-preview-id h3{margin:0 0 2px}.av-preview-actions{position:absolute;right:14px;top:14px}.av-preview-stats{position:absolute;left:18px;bottom:12px}.av-panel{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 16px 12px}.av-panel-body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.av-panel .av-tabs{margin-bottom:8px}.profile-head{display:flex;align-items:center;gap:20px;margin-bottom:14px}.profile-avatar{flex:none}.profile-avatar svg{display:block;border-radius:50%;border:2px solid var(--line)}.profile-id{min-width:0}.profile-id h3{margin:0 0 2px}.profile-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.profile-stats .stat-chip{display:inline-flex;align-items:center;gap:6px}.profile-av-title{margin:0}.av-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.av-tabs{display:flex;gap:4px;background:var(--bg2);border:1px solid var(--line);border-radius:11px;padding:4px;overflow-x:auto}.av-tab{border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-weight:600;font-size:.88rem;padding:6px 14px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.av-tab:hover{color:var(--text)}.av-tab.on{background:var(--card);color:var(--text);box-shadow:0 1px 4px #00000040}.av-rnd{padding:7px 14px;font-size:.88rem}.av-group{margin-top:16px}.av-group-t{font-weight:700;margin-bottom:6px}.av-part{margin-bottom:10px}.av-part-label{margin-bottom:5px}.av-opts{display:flex;flex-wrap:wrap;gap:8px}.av-swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);cursor:pointer;padding:0;transition:transform .12s,border-color .15s,box-shadow .15s}.av-swatch:hover{transform:scale(1.1)}.av-swatch.on{border-color:var(--text);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.av-variant{width:56px;height:56px;border-radius:50%;border:2px solid var(--line);background:var(--bg2);padding:0;cursor:pointer;overflow:hidden;transition:transform .12s,border-color .15s,box-shadow .15s}.av-variant svg{display:block;width:100%;height:100%}.av-variant:hover{transform:translateY(-2px);border-color:var(--line2)}.av-variant.on{border-color:var(--red2);box-shadow:0 0 0 3px #ff2d202e}@media (max-width: 680px){.profile-head{flex-direction:column;text-align:center;gap:12px}.profile-stats{justify-content:center}.user-drop{max-width:84vw}}.mascot{display:block;overflow:visible}.m-shadow{fill:#00000040}.m-antenna{stroke:var(--line2);stroke-width:3;stroke-linecap:round}.m-antenna-tip{fill:var(--warn)}.m-arm,.m-leg{fill:#d42418}.m-face{fill:#ffffffeb}:root[data-theme=light] .m-face{fill:#fffffff2}.m-eye{fill:#1b1f2a}.m-glint{fill:#fff}.m-mouth{fill:none;stroke:#1b1f2a;stroke-width:3;stroke-linecap:round}.m-star{fill:var(--warn)}.m-eyes{transform-box:fill-box;transform-origin:center;animation:mascotBlink 4.4s ease-in-out infinite}@keyframes mascotBlink{0%,91%,98%,to{transform:scaleY(1)}94%{transform:scaleY(.08)}}@keyframes mascotBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.m-idle .m-figure,.m-wave .m-figure{animation:mascotBob 3s ease-in-out infinite}.m-arm-l{transform-box:fill-box;transform-origin:right center}.m-arm-r{transform-box:fill-box;transform-origin:left center}@keyframes mascotWave{0%,to{transform:rotate(0)}25%{transform:rotate(-32deg)}60%{transform:rotate(14deg)}}.m-wave .m-arm-r{animation:mascotWave 1.1s ease-in-out infinite}@keyframes mascotJump{0%,to{transform:translateY(0) scaleY(1)}35%{transform:translateY(-15px) scaleY(1.05)}55%{transform:translateY(-13px) scaleY(1.02)}75%{transform:translateY(1px) scaleY(.92)}90%{transform:translateY(0) scaleY(1.04)}}.m-celebrate .m-figure{animation:mascotJump .9s cubic-bezier(.3,.9,.4,1) infinite}.m-celebrate .m-arm-l{transform:rotate(38deg)}.m-celebrate .m-arm-r{transform:rotate(-38deg)}@keyframes mascotTwinkle{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}}.m-star{transform-box:fill-box;transform-origin:center;animation:mascotTwinkle .9s ease-in-out infinite}.m-star.s2{animation-delay:.25s}.m-star.s3{animation-delay:.5s}.m-sad .m-figure{transform:rotate(-4deg) translateY(2px);transform-origin:center bottom;transform-box:fill-box}.notify-modal{max-width:420px;text-align:center}.notify-modal .mascot{margin:0 auto 6px}.notify-pluses{list-style:none;margin:14px 0 18px;padding:0;text-align:left;display:flex;flex-direction:column;gap:9px}.notify-pluses li{position:relative;padding-left:26px;font-size:.93rem}.notify-pluses li:before{content:"✓";position:absolute;left:2px;top:0;color:var(--ok);font-weight:800}.notify-later{display:block;margin:12px auto 2px;background:none;border:0;color:var(--muted);font:inherit;font-size:.9rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.notify-later:hover{color:var(--text)}.notify-modal .time-select{justify-content:center;margin:6px 0 4px}.notify-modal .select-wrap{text-align:left}.modal-mascot{display:flex;justify-content:center;margin:-6px 0 4px}.bug-head{gap:10px}.bug-head .mascot{flex:none}.summary-top{display:flex;align-items:flex-end;justify-content:center;gap:4px;margin-bottom:6px}.summary-top .big-check{margin:0 0 8px}.hljs-keyword,.hljs-built_in,.hljs-meta .hljs-keyword{color:#ff7b72}.hljs-string,.hljs-attr+.hljs-string{color:#a5d6ff}.hljs-variable,.hljs-template-variable{color:#ffa657}.hljs-title,.hljs-title.class_,.hljs-title.function_{color:#d2a8ff}.hljs-comment{color:#6e7681;font-style:italic}.hljs-number,.hljs-literal{color:#79c0ff}.hljs-tag,.hljs-name{color:#7ee787}.hljs-attr,.hljs-attribute{color:#79c0ff}.hljs-meta{color:#8b949e}.hljs-operator,.hljs-punctuation{color:#c9d1d9}@media (max-width: 680px){.hero{grid-template-columns:1fr}.goal{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:14px}.practice-row,.lessons{grid-template-columns:1fr}.app{padding:10px 10px 60px}.card{padding:16px}.stats-row{flex-wrap:wrap}.stat{flex:1;min-width:96px}.goal-wrap{align-self:center}.fb-actions{flex-wrap:wrap}.fb-actions .btn{flex:1}.sort-menu{max-width:88vw}.toolbar .search{min-width:0}.lesson-num{width:32px;height:32px}.logo{font-size:1.1rem}.hero{gap:14px}.top-stats{gap:6px}.stat-chip{font-size:.82rem;padding:3px 9px}.account-btn{font-size:.8rem;padding:3px 9px;max-width:34vw}.icon-btn{font-size:1.3rem}.logo-mark{width:28px;height:28px}.modal{padding:16px}.summary,.exam-intro{margin:16px auto}.drawer{width:min(320px,94vw)}}@media (max-width: 420px){.set-row{flex-wrap:wrap}.set-row-c{margin-left:auto}.select-menu{max-width:86vw}}code,pre,textarea,.code,.ic,.slot,.slot-input,.chip,.line,.gutter{font-variant-ligatures:none}.feedback.warn{border-color:#e0a84a;background:#e0a84a12}.warn .fb-icon{background:#e0a84a}.tag.hint{background:#e0a84a29;color:#f3c97a}.fb-hint{margin-top:6px}.fb-line{color:var(--muted);font-weight:400}.gutter .bad-line{color:#fff;background:var(--bad);border-radius:4px;padding:0 3px}.line.empty{border-style:dashed;min-height:40px;cursor:default}.auth{display:flex;flex-direction:column;gap:14px;max-width:420px;margin:0 auto}.tabs{display:flex;gap:6px;background:var(--bg2);padding:4px;border-radius:12px}.tabs button{flex:1;padding:8px;border-radius:9px;border:0;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.tabs button.active{background:var(--card, #1c212c);color:var(--text)}.tabs.catalog-tabs{gap:8px;overflow-x:auto;background:transparent;padding:0 0 10px;border-radius:0;border-bottom:1px solid var(--line)}.tabs.catalog-tabs button{flex:0 0 auto;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg2);color:var(--muted);white-space:nowrap}.tabs.catalog-tabs button.active{border-color:var(--text);color:var(--text)}.tabs.catalog-tabs button span{color:inherit;opacity:.7}.field{display:flex;flex-direction:column;gap:6px;font-size:.9rem}.field input{background:var(--bg2);color:var(--text);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font-size:1rem;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent)}.field-error{color:#ff8a80;font-size:.85rem}.account-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font-size:.85rem;cursor:pointer}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.sync-dot.saved{background:var(--ok)}.sync-dot.saving{background:#e0a84a}.sync-dot.error,.sync-dot.offline{background:var(--bad)}.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit}.auth-head{text-align:center;margin:40px auto 20px;max-width:420px}.auth-head .logo{justify-content:center;font-size:1.5rem;margin-bottom:8px}.sync-banner{background:#ff5a501f;border:1px solid var(--bad);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:.9rem}.catalog-title{margin:24px 0 12px}.catalog-sub{margin:14px 0 8px;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px}.course-card{display:flex;gap:14px;text-align:left;color:var(--text);font:inherit;cursor:pointer;align-items:flex-start}.course-card:disabled{opacity:.5;cursor:default}.course-card:not(:disabled):hover{border-color:var(--accent)}.course-card h3{margin:0 0 4px}.course-body{flex:1;min-width:0}.course-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:1.3rem;color:#fff;flex-shrink:0;box-shadow:inset 0 1px #ffffff47,inset 0 -2px 4px #0003}.course-mark.multi{font-size:.95rem}.course-mark svg,.logo-mark svg{display:block}.soon{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.course-bar{height:6px;border-radius:3px;background:var(--bg2);margin-top:10px;overflow:hidden}.course-bar>div{height:100%}.live-preview{margin-top:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.live-label{background:var(--bg2);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;padding:6px 12px;border-bottom:1px solid var(--line)}.live-preview iframe{display:block;width:100%;border:0;background:#fff}.live-example{margin:12px 0}.live-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.75rem;margin-bottom:4px}.live-code{width:100%;margin-bottom:8px;box-sizing:border-box;background:var(--code);color:var(--text);border:1px solid var(--line);border-radius:12px;font-family:var(--mono);font-size:.88rem;line-height:1.6;padding:10px 12px;resize:vertical;white-space:pre;-moz-tab-size:4;tab-size:4}.live-code:focus{outline:none;border-color:var(--accent)}.link-btn{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0}.toolbar{display:flex;gap:10px;margin-bottom:12px;align-items:center;flex-wrap:wrap}.toolbar.chips{gap:8px}.search{flex:1;min-width:180px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:10px 14px;font:inherit;transition:border-color .15s}.search:focus{outline:none;border-color:var(--red2)}.select{background:var(--bg2);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:10px 12px;font:inherit;cursor:pointer;transition:border-color .15s}.select:focus{outline:none;border-color:var(--red2)}.chip{background:var(--bg2);border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:7px 14px;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.chip:hover{border-color:var(--line2);color:var(--text)}.chip.active{border-color:var(--red);color:var(--text);background:#ff2d201a}.toggle{display:inline-flex;align-items:center;gap:8px}.toggle-dot{width:26px;height:14px;border-radius:999px;background:var(--line);position:relative;transition:background .15s;flex:none}.toggle-dot:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.toggle.active .toggle-dot{background:var(--red)}.toggle.active .toggle-dot:after{transform:translate(12px);background:#fff}.done-mark{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ok);flex:none}.theme-btn{display:grid;place-items:center}.auth-theme{position:absolute;top:16px;right:16px}.auth-head{position:relative}.sort-wrap{position:relative;margin-left:auto}.sort-btn{display:flex;align-items:center;gap:4px}.sort-dir-mark{color:var(--muted)}.sort-menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px;min-width:220px;z-index:20;box-shadow:0 8px 24px #00000040}.sort-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;cursor:pointer}.sort-menu button:hover{background:var(--bg2)}.sort-menu button.active{color:var(--red2);font-weight:600}.sort-dir{border-top:1px solid var(--line);margin-top:6px;padding-top:6px;display:flex;gap:6px}.sort-dir button{flex:1;font-size:.85rem}.filter-btn{display:inline-flex;align-items:center}.filter-badge{background:var(--red);color:#fff;border-radius:999px;font-size:.75rem;padding:1px 7px;margin-left:8px}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:30;animation:fade .15s}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(320px,88vw);background:var(--card);border-right:1px solid var(--line);z-index:31;padding:18px;overflow-y:auto;animation:slidein .2s ease-out}@keyframes slidein{0%{transform:translate(-100%)}to{transform:none}}@keyframes fade{0%{opacity:0}}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head h3{margin:0}.drawer h4{margin:18px 0 8px;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.drawer .toggle{margin-bottom:8px}.check-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;cursor:pointer;color:var(--text);background:var(--bg2);font:inherit;transition:border-color .15s}.check-box{width:18px;height:18px;border:2px solid var(--line2);border-radius:5px;flex:none;position:relative}.check-row.on{border-color:var(--red)}.check-row.on .check-box{background:var(--red);border-color:var(--red)}.check-row.on .check-box:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-size:.75rem;font-weight:700}@media (prefers-reduced-motion: reduce){.drawer,.drawer-bg{animation:none}}@keyframes stepIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.step{animation:stepIn .22s ease-out}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.catalog .course-card{animation:cardIn .3s ease-out backwards}.lesson-card{animation:cardIn .25s ease-out backwards;transition:border-color .15s,transform .15s,background-color .3s}.lesson-card:hover:not(:disabled){transform:translateY(-2px)}.course-card{transition:transform .15s,border-color .15s,background-color .3s}.course-card:not(:disabled):hover{transform:translateY(-2px)}.options .option{animation:cardIn .25s ease-out backwards}.options .option:nth-child(2){animation-delay:.05s}.options .option:nth-child(3){animation-delay:.1s}.options .option:nth-child(4){animation-delay:.15s}.options .option:nth-child(5){animation-delay:.2s}.options .option:nth-child(n+6){animation-delay:.25s}.order-target .line,.order-pool .line{animation:chipIn .18s ease-out both}.line{transition:border-color .15s,transform .15s}.line:hover:not(:disabled){transform:translateY(-1px)}@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.fb-icon{animation:pop .3s ease-out}@keyframes halo{0%{box-shadow:0 0 #2fbf7180}to{box-shadow:0 0 0 22px transparent}}.big-check{animation:pop .45s ease-out,halo .8s ease-out .15s backwards}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.option.wrong{animation:shake .4s}@keyframes flamePulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.85}}.flame{animation:flamePulse 1.6s ease-in-out infinite;display:inline-block}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.bar-fill{background-image:linear-gradient(90deg,var(--red),var(--red2),var(--red));background-size:200px 100%;animation:shimmer 2.4s linear infinite}@keyframes chipIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.bank .chip{animation:chipIn .18s ease-out both}.bank .chip:nth-child(2){animation-delay:.03s}.bank .chip:nth-child(3){animation-delay:.06s}.bank .chip:nth-child(4){animation-delay:.09s}.bank .chip:nth-child(5){animation-delay:.12s}.bank .chip:nth-child(n+6){animation-delay:.15s}@keyframes popPulse{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.stat-chip.pop{animation:popPulse .4s ease-out}.btn.primary{box-shadow:0 3px #b81d14,0 0 18px #ff2d2038}.topbar{position:sticky;top:0;z-index:15;padding:8px 0;margin:-8px 0 18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bug-btn{position:fixed;right:18px;bottom:18px;z-index:8;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:1.15rem;cursor:pointer;box-shadow:0 2px 10px #0000004d;transition:border-color .15s,color .15s,transform .15s}.bug-btn:hover{border-color:var(--accent);color:var(--text);transform:translateY(-2px)}.bug-modal{max-width:520px}.bug-ctx{margin:0 0 10px}.bug-text{width:100%;box-sizing:border-box;background:var(--bg2);color:var(--text);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.95rem;resize:vertical;outline:none}.bug-text:focus{border-color:var(--accent)}.bug-thanks{text-align:center;font-weight:600;padding:20px 0 8px}.confirm-modal{max-width:440px}.goal-ring{transform:rotate(-90deg)}.goal-ring .ring-bg{stroke:var(--line)}.goal-ring .ring-val{stroke:var(--red);stroke-linecap:round;transition:stroke-dashoffset .6s ease-out}.goal{align-items:center;text-align:center}.goal-wrap{position:relative;width:110px;height:110px;flex:none;align-self:center}.goal-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}.goal-num span{font-weight:800;font-size:1.35rem}.goal-num small{font-size:.68rem;font-weight:600;color:var(--muted)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}@keyframes screenIn{0%{opacity:0;transform:translateY(12px)}}.screen{animation:screenIn .28s ease-out}.modal-bg{animation:fade .18s}@keyframes modalUp{0%{opacity:0;transform:translateY(16px) scale(.97)}}.modal{animation:modalUp .24s cubic-bezier(.2,.9,.3,1.05)}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}}.sort-menu{animation:menuIn .15s ease-out;transform-origin:top right}@keyframes rightPulse{0%{box-shadow:0 0 #2fbf7173}to{box-shadow:0 0 0 12px transparent}}.slot:not(.empty){animation:chipIn .18s ease-out}.options .option.right,.order-target .line.right,.slot.right,.slot-input.right{animation:rightPulse .5s ease-out}.options .option.wrong,.order-target .line.wrong,.slot.wrong,.slot-input.wrong{animation:shake .4s}.active-filters .chip{animation:chipIn .16s ease-out}.check-row.on .check-box:after{animation:chipIn .16s ease-out}.summary .stat{animation:cardIn .3s ease-out backwards}.summary .stat:nth-child(2){animation-delay:.09s}.summary .stat:nth-child(3){animation-delay:.18s}.fb-item{animation:cardIn .25s ease-out .05s backwards}@keyframes iconIn{0%{opacity:0;transform:rotate(-90deg) scale(.6)}}.theme-btn svg{animation:iconIn .3s ease-out}.btn.primary{transition:transform .05s,filter .15s,box-shadow .08s}.btn.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #b81d14}.tabs button{transition:background .15s,color .15s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.ring-val{transition:none}}.landing{min-height:100vh;overflow-x:clip}.l-aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none}.l-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}.l-blob-1{width:600px;height:420px;top:-12%;right:-8%;background:radial-gradient(closest-side,rgba(255,45,32,.5),transparent);animation:l-drift1 26s ease-in-out infinite alternate}.l-blob-2{width:680px;height:480px;top:26%;left:-16%;background:radial-gradient(closest-side,rgba(124,90,255,.38),transparent);animation:l-drift2 32s ease-in-out infinite alternate}.l-blob-3{width:520px;height:400px;bottom:-14%;left:40%;background:radial-gradient(closest-side,rgba(255,45,32,.3),transparent);animation:l-drift3 38s ease-in-out infinite alternate}@keyframes l-drift1{to{transform:translate(-9vw,7vh) scale(1.12)}}@keyframes l-drift2{to{transform:translate(10vw,-6vh) scale(.92)}}@keyframes l-drift3{to{transform:translate(-7vw,-8vh) scale(1.15)}}:root[data-theme=light] .l-blob{opacity:.4}.l-grad{background:linear-gradient(100deg,var(--red2) 5%,#ff8a6b 55%,#ffb37a 95%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:l-grad 6s ease-in-out infinite alternate}@keyframes l-grad{to{background-position:100% 0}}:root[data-theme=light] .l-grad{background-image:linear-gradient(100deg,var(--red) 5%,#e0502e 55%,#c2703d 95%)}.l-kicker{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--red2);padding:.4em 1.1em;border:1px solid rgba(255,90,79,.35);border-radius:999px;margin-bottom:1.1rem;background:#ff2d2014}.l-sub{color:var(--muted);max-width:540px;margin:.9rem auto 0}.l-btn-sm{padding:.55em 1.3em;font-size:.88rem}.l-btn-lg{padding:1em 2.4em;font-size:1.02rem}.l-nav{position:fixed;top:0;left:0;right:0;z-index:40;height:68px;display:flex;align-items:center;gap:2rem;padding:0 clamp(1.2rem,4vw,3rem);border-bottom:1px solid transparent;transition:background .3s,border-color .3s,backdrop-filter .3s}.l-nav.scrolled{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line)}.l-logo{font-weight:800;font-size:1.15rem;color:var(--text);text-decoration:none}.l-links{display:flex;gap:1.6rem;margin-left:auto}.l-links a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600;position:relative;transition:color .2s}.l-links a:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;border-radius:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}.l-links a:hover,.l-links a.active{color:var(--text)}.l-links a:hover:after,.l-links a.active:after{transform:scaleX(1)}.l-nav-right{display:flex;align-items:center;gap:.6rem;margin-left:auto}.l-burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:8px}.l-burger span{width:20px;height:2px;background:var(--text);border-radius:2px;transition:.25s}.l-hero{max-width:1200px;margin:0 auto;min-height:100svh;display:flex;align-items:center;padding:calc(68px + 2rem) clamp(1.2rem,4vw,3rem) 4rem}.l-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);align-items:center;gap:clamp(2rem,5vw,4.5rem);width:100%}.l-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.5rem}.l-badge{font-size:.78rem;font-weight:600;padding:.45em 1em;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#ffffff05}.l-badge.live{color:var(--ok);border-color:#2fbf7159}.l-badge.live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:.5em;animation:l-blink 1.6s ease-in-out infinite}@keyframes l-blink{50%{opacity:.3}}.l-hero-title{font-size:clamp(1.9rem,8.6vw,4.1rem);font-weight:800;letter-spacing:-.02em;line-height:1.12;margin:0 0 1.3rem;overflow-wrap:break-word}.l-hero-sub{color:var(--muted);max-width:32rem;margin:0 0 2.1rem;font-size:1.05rem}.l-hero-actions{display:flex;flex-wrap:wrap;gap:.9rem}.l-hero-demo{position:relative}.l-demo-card{position:relative;z-index:2;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 1px #ffffff0a inset,0 30px 70px -30px #000000e6;animation:l-float 6s ease-in-out infinite}@keyframes l-float{0%,to{transform:translateY(0) rotate(.4deg)}50%{transform:translateY(-10px) rotate(-.4deg)}}.l-demo-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:.8rem}.l-demo-course{font-weight:700;color:var(--accent)}.l-demo-step{color:var(--muted)}.l-demo-step b{color:var(--text)}.l-demo-bar{height:6px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);overflow:hidden;margin-bottom:16px}.l-demo-fill{height:100%;background:linear-gradient(90deg,var(--red),var(--red2));border-radius:999px;transition:width .5s cubic-bezier(.3,.9,.35,1)}.l-demo-q{font-weight:700;margin:0 0 14px}.l-demo-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.l-demo-opt{font-family:var(--mono);font-size:.9rem;padding:10px 12px;text-align:left;background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s,transform .15s}.l-demo-opt:hover:not(:disabled){border-color:var(--line2);transform:translateY(-1px)}.l-demo-opt.wrong{border-color:var(--bad);color:var(--bad);background:var(--badbg);animation:shake .4s}.l-demo-opt.right{border-color:var(--ok);color:var(--ok);background:var(--okbg);animation:rightPulse .5s ease-out}.l-demo-opt:disabled{cursor:default}.l-demo-hint{margin:14px 0 0;font-size:.8rem;color:var(--muted);min-height:1.3em;transition:color .3s}.l-demo-hint.ok{color:var(--ok)}.l-chip-coin{position:absolute;top:-18px;right:8%;z-index:3;display:inline-flex;align-items:center;gap:4px;font-size:.8rem;font-weight:700;padding:.5em 1em;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--warn);box-shadow:0 12px 30px -10px #000000b3;opacity:0;transform:scale(.5) translateY(8px);transition:opacity .3s,transform .4s cubic-bezier(.2,.9,.3,1.6)}.l-chip-coin.show{opacity:1;transform:scale(1) translateY(0);animation:popPulse .9s ease .35s}.l-chip-streak{position:absolute;bottom:-14px;left:-4%;z-index:3;font-size:.8rem;font-weight:700;padding:.5em 1em;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--warn);box-shadow:0 12px 30px -10px #000000b3;animation:l-chip 5s ease-in-out infinite}@keyframes l-chip{50%{transform:translateY(-8px)}}.l-code-window{position:relative;z-index:1;width:88%;margin:-34px auto 0;background:var(--code);border:1px solid var(--line);border-radius:14px;transform:rotate(-1.6deg);box-shadow:0 24px 60px -24px #000000d9}.l-code-head{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line)}.l-code-head i{width:10px;height:10px;border-radius:50%;background:var(--line2)}.l-code-head i:nth-child(1){background:#ff5f57}.l-code-head i:nth-child(2){background:#febc2e}.l-code-head i:nth-child(3){background:#28c840}.l-code-head span{margin-left:8px;font-family:var(--mono);font-size:.72rem;color:var(--muted)}.l-code-body{padding:16px 18px;font-family:var(--mono);font-size:.82rem;line-height:1.7;min-height:9.5em;white-space:pre-wrap;color:var(--text)}.l-caret{display:inline-block;width:8px;height:1.05em;background:var(--accent);vertical-align:-.15em;animation:l-caret .9s steps(1) infinite}@keyframes l-caret{50%{opacity:0}}.l-stats{max-width:1080px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem) 4rem}.l-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#ffffff08,#ffffff01);overflow:hidden}:root[data-theme=light] .l-stats-grid{background:var(--card)}.l-stat{padding:1.9rem 1rem;text-align:center;border-right:1px solid var(--line);transition:background .25s}.l-stat:last-child{border-right:0}.l-stat:hover{background:#ff2d200d}.l-stat-num{display:block;font-weight:800;font-size:clamp(2rem,4vw,2.9rem);letter-spacing:-.02em;background:linear-gradient(120deg,#ff8a6b,var(--red2));-webkit-background-clip:text;background-clip:text;color:transparent}:root[data-theme=light] .l-stat-num{background-image:linear-gradient(120deg,#e0502e,var(--red))}.l-stat-label{color:var(--muted);font-size:.85rem;font-weight:600}.l-section{max-width:1150px;margin:0 auto;padding:5rem clamp(1.2rem,4vw,3rem)}.l-head{text-align:center;margin-bottom:3rem}.l-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800;letter-spacing:-.01em}.l-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem}.l-course{--c: var(--red);position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.5rem;text-decoration:none;color:var(--text);overflow:hidden;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),border-color .3s,box-shadow .3s}.l-course:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(110% 80% at 50% -10%,color-mix(in srgb,var(--c) 16%,transparent),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none}.l-course:hover{transform:translateY(-7px);border-color:color-mix(in srgb,var(--c) 50%,transparent);box-shadow:0 24px 55px -24px color-mix(in srgb,var(--c) 55%,black)}.l-course:hover:before{opacity:1}.l-course-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.l-course-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:1.05rem;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}.l-course-mark svg{width:60%;height:60%;fill:currentColor;display:block}.l-course-mods{font-size:.78rem;font-weight:700;color:var(--muted)}.l-course h3{font-size:1.3rem;margin:0 0 .5rem}.l-course p{color:var(--muted);font-size:.92rem;flex:1;margin:0}.l-course-go{margin-top:1.1rem;font-size:.88rem;font-weight:700;color:var(--c);opacity:0;transform:translate(-6px);transition:opacity .3s,transform .3s}.l-course:hover .l-course-go{opacity:1;transform:none}.l-course-soon{border-style:dashed;cursor:default}.l-course-soon:hover{transform:none;border-color:var(--line2);box-shadow:none}.l-course-soon:before{display:none}.l-course-soon p{margin-top:1rem;flex:0}.l-soon{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.l-soon span{font-size:.78rem;font-weight:700;padding:.4em .9em;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent)}.l-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}.l-method{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.7rem 1.5rem;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),border-color .3s}.l-method:hover{transform:translateY(-7px);border-color:var(--line2)}.l-method-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.25rem;background:#ff2d201a;color:var(--red2);margin-bottom:1rem}.l-method h3{font-size:1.1rem;margin:0 0 .5rem}.l-method p{color:var(--muted);font-size:.92rem;margin:0}.l-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:2.4rem}.l-steps span{font-size:.82rem;color:var(--muted);padding:.5em 1.1em;border-radius:999px;border:1px solid var(--line);background:var(--bg2);transition:border-color .25s,color .25s,transform .25s}.l-steps b{font-family:var(--mono);font-weight:600;color:var(--accent);margin-right:.35em}.l-steps span:hover{border-color:var(--line2);color:var(--text);transform:translateY(-2px)}.l-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem}.l-feature{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.7rem 1.5rem;position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),border-color .3s}.l-feature:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--red2),transparent);transform:scaleX(0);transition:transform .4s}.l-feature:hover{transform:translateY(-6px);border-color:var(--line2)}.l-feature:hover:after{transform:scaleX(1)}.l-feature h3{font-size:1.12rem;margin:0 0 .55rem}.l-feature p{color:var(--muted);font-size:.92rem;margin:0}.l-cta{max-width:1150px;margin:0 auto;padding:3rem clamp(1.2rem,4vw,3rem) 6rem}.l-cta-box{position:relative;text-align:center;border-radius:24px;padding:clamp(2.5rem,6vw,4.5rem) 2rem;background:radial-gradient(90% 140% at 50% -30%,rgba(255,45,32,.22),transparent 60%),var(--card);border:1px solid rgba(255,90,79,.25);overflow:hidden}.l-cta-box h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800;margin-bottom:.8rem}.l-cta-box p{color:var(--muted);margin:0 0 2rem}.l-footer{border-top:1px solid var(--line);max-width:1150px;margin:0 auto;padding:2.6rem clamp(1.2rem,4vw,3rem) 2rem}.l-footer-inner{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;align-items:center}.l-footer-links{display:flex;gap:1.4rem;flex-wrap:wrap}.l-footer-links a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:600;transition:color .2s}.l-footer-links a:hover{color:var(--red2)}.l-footer-copy{color:var(--line2);font-size:.8rem;margin:1.8rem 0 0;text-align:center}.l-reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.3,1);transition-delay:var(--l-d, 0s)}.l-reveal.l-visible{opacity:1;transform:none}@media (max-width: 960px){.l-hero-inner{grid-template-columns:1fr}.l-hero-text{text-align:center}.l-badges,.l-hero-actions{justify-content:center}.l-hero-sub{margin-inline:auto}.l-hero-demo{max-width:480px;margin:0 auto;width:100%}}@media (max-width: 720px){.l-links,.l-nav-right .btn{display:none}.l-burger{display:flex}.l-nav.open .l-links{display:flex;flex-direction:column;position:absolute;top:68px;left:0;right:0;background:color-mix(in srgb,var(--bg) 97%,transparent);padding:1.2rem clamp(1.2rem,4vw,3rem) 1.6rem;border-bottom:1px solid var(--line);gap:1rem}.l-nav.open .l-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.l-nav.open .l-burger span:nth-child(2){opacity:0}.l-nav.open .l-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.l-stats-grid{grid-template-columns:repeat(2,1fr)}.l-stat:nth-child(2){border-right:0}.l-stat:nth-child(1),.l-stat:nth-child(2){border-bottom:1px solid var(--line)}.l-chip-streak{left:0}}@media (prefers-reduced-motion: reduce){.l-reveal{opacity:1;transform:none}}.streak-chip{animation:chipIn .25s ease-out}.streak-chip .flame{color:var(--warn);display:inline-flex;vertical-align:-2px;margin-right:2px}.streak-chip.off .flame{color:var(--muted);animation:none}.streak-freezes{margin-left:6px;font-size:.72rem;letter-spacing:-2px}.streak-chip.frozen{border-color:var(--accent)}.streak-chip.frozen .flame{color:var(--accent);animation:none}.streak-panel{margin-bottom:26px}.streak-panel-head{margin-bottom:14px}.streak-panel-title{display:flex;align-items:center;gap:8px;font-weight:600}.streak-panel-title .flame{color:var(--warn);display:inline-flex}.streak-frozen-tag{font-size:.72rem;font-weight:700;padding:2px 10px;border-radius:999px;margin-left:8px;color:var(--accent);border:1px solid var(--accent);background:#7cb7ff14}.streak-panel-freezes{white-space:nowrap}.streak-days{display:grid;grid-template-columns:repeat(14,1fr);gap:6px}.streak-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:10px;background:var(--bg2);border:1px solid var(--line);animation:cardIn .3s ease-out backwards}.streak-day-wd{font-size:.65rem;text-transform:uppercase;color:var(--muted);font-weight:700}.streak-day-num{font-size:.85rem;font-weight:700}.streak-day.part{border-color:var(--accent)}.streak-day.part .streak-day-num{color:var(--accent)}.streak-day.met{background:linear-gradient(135deg,var(--red),var(--red2));border-color:transparent}.streak-day.met .streak-day-wd,.streak-day.met .streak-day-num{color:#fff}.streak-day.today{box-shadow:0 0 0 2px var(--accent)}:root[data-theme=light] .streak-day.met .streak-day-wd{color:#ffffffd9}.streak-celebrate{display:flex;align-items:center;gap:16px;margin:4px auto 16px;padding:14px 22px;border-radius:16px;background:linear-gradient(120deg,#f5a52424,#ff5a4f1f);border:1px solid rgba(245,165,36,.45);animation:cardIn .35s ease-out .15s backwards}.streak-celebrate.milestone{border-color:var(--warn);animation:cardIn .35s ease-out .15s backwards,halo .9s ease-out .4s backwards}.streak-fire{color:var(--warn);display:inline-flex;animation:flamePulse 1.6s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(245,165,36,.55))}.streak-celebrate-body{text-align:left}.streak-celebrate-title{font-weight:800;font-size:1.1rem}.streak-celebrate-title b{font-size:1.35rem;color:var(--warn)}.streak-celebrate-sub{font-size:.85rem;color:var(--muted);margin-top:2px}@media (max-width: 680px){.streak-days{grid-template-columns:repeat(7,1fr)}.streak-panel-head{flex-wrap:wrap}}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:var(--bg);transition:opacity .3s ease,visibility .3s}.preloader.out{opacity:0;visibility:hidden}.preloader-inner{display:flex;flex-direction:column;align-items:center;gap:18px;padding:24px}.preloader-logo{font-size:1.6rem;animation:cardIn .4s ease-out}.preloader-bar{width:min(260px,60vw);height:6px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);overflow:hidden}.preloader-fill{height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--red),var(--red2));animation:preloader-fill 3.7s cubic-bezier(.25,.8,.3,1) forwards}@keyframes preloader-fill{0%{width:4%}to{width:100%}}.preloader-phrase{color:var(--muted);font-size:.92rem;min-height:1.4em;text-align:center;animation:phraseIn .35s ease-out}@keyframes phraseIn{0%{opacity:0;transform:translateY(6px)}}
