@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-cyrillic-wght-normal-DayYxulF.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-math-wght-normal-Bl4ZGkZl.woff2) format("woff2-variations");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-symbols-wght-normal-DxQzqQfC.woff2) format("woff2-variations");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-vietnamese-wght-normal-BBxOatbv.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-ext-wght-normal-QAhDxQuo.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/onest-latin-wght-normal-Dun_Rd-l.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:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-cyrillic-ext-600-normal-DDEJyoof.woff2) format("woff2"),url(/assets/caveat-cyrillic-ext-600-normal-BLVNc-Ct.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-cyrillic-600-normal-Ba_MyzgW.woff2) format("woff2"),url(/assets/caveat-cyrillic-600-normal-CqH0c_uj.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-ext-600-normal-DDJRD6ps.woff2) format("woff2"),url(/assets/caveat-latin-ext-600-normal-shBvSnoU.woff) format("woff");unicode-range:U+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:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2) format("woff2"),url(/assets/caveat-latin-600-normal-DUjB8dgm.woff) format("woff");unicode-range:U+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{--paper: #f4f3ef;--surface: #ffffff;--ink: #1b2030;--ink-2: #454a57;--muted: #646873;--line: #e6e3dc;--line-strong: #d3cfc5;--blue: #1d3fd1;--blue-press: #1733b0;--blue-soft: #eaeffd;--blue-ink: #1a36b5;--on-blue: #ffffff;--green: #22744a;--green-soft: #e6f4ec;--amber: #9a5b06;--amber-soft: #fbf1df;--red: #b42318;--red-soft: #fdecea;--track: #eae7e0;--doodle-acc: #e0661c;--hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--gutter: 16px;--tabbar-h: 60px;--font: "Onest Variable", "Onest", -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}:root[data-theme=dark]{--paper: #0f1420;--surface: #171d2b;--ink: #e7ecf6;--ink-2: #b4bdd2;--muted: #8690a8;--line: #252d3f;--line-strong: #34405a;--blue: #7d99ff;--blue-press: #9bb0ff;--blue-soft: #1d2745;--blue-ink: #a9bbff;--on-blue: #0f1420;--green: #6fd29b;--green-soft: #15291f;--amber: #f0b45a;--amber-soft: #2e2413;--red: #ff8a80;--red-soft: #33191a;--track: #252d3f;--doodle-acc: #ff9a57;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper)}body{font-family:var(--font);color:var(--ink);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-feature-settings:"tnum" 0}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--blue);text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{min-height:100vh;min-height:100dvh}.page{max-width:600px;margin:0 auto;padding:20px var(--gutter) calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}.page.no-tabs{padding-bottom:calc(32px + env(safe-area-inset-bottom))}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:4px 0 20px}.page-head h1{font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:650;margin:0}.page-head .sub{color:var(--muted);font-size:15px;margin-top:4px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);background:none;border:0;padding:6px 0;margin-bottom:4px;cursor:pointer;font-size:15px}.section{margin-top:28px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.section-head h2{font-size:17px;font-weight:600;margin:0;letter-spacing:-.01em}.section-head a,.section-head button.linkish{font-size:15px}.muted{color:var(--muted)}.small{font-size:14px}.row{display:flex;align-items:center;gap:10px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack>*+*{margin-top:12px}.tnum{font-variant-numeric:tabular-nums}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.list-row{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);cursor:pointer;color:inherit}.list-row:first-child{border-top:0}.list-row:active{background:var(--blue-soft)}.list-row .main{flex:1;min-width:0}.list-row .title{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .meta{color:var(--muted);font-size:14px;margin-top:2px;display:flex;flex-wrap:wrap;gap:4px 12px}.chev{color:var(--line-strong);flex:none}.nextup{background:var(--blue);color:var(--on-blue);border-radius:22px;padding:20px 20px 18px;position:relative;overflow:hidden}.nextup .label{opacity:.8;font-size:14px}.nextup .name{font-size:24px;line-height:1.2;font-weight:650;letter-spacing:-.02em;margin:6px 0 16px}.nextup .track{height:6px;border-radius:3px;background:#ffffff40;overflow:hidden}.nextup .track>span{display:block;height:100%;background:currentColor;border-radius:3px;transform-origin:left;animation:grow .9s cubic-bezier(.2,.7,.2,1) both}.nextup .when{display:flex;justify-content:space-between;font-size:14px;margin-top:8px;opacity:.92}.nextup .actions{margin-top:18px;display:flex;gap:10px;align-items:center}.nextup .btn{background:var(--on-blue);color:var(--blue)}.nextup .btn:active{opacity:.85}.nextup.calm{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.nextup.calm .name{margin-bottom:4px;font-size:20px}:root[data-theme=dark] .nextup{background:#263572;color:#eef2ff}:root[data-theme=dark] .nextup .btn{background:#eef2ff;color:#1f2d63}:root[data-theme=dark] .nextup.calm{background:var(--surface);color:var(--ink)}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:13px;border:0;cursor:pointer;background:var(--blue);color:var(--on-blue);font-weight:600;font-size:16px;transition:background .12s ease,opacity .12s ease}.btn:active{background:var(--blue-press)}.btn[disabled]{opacity:.45;cursor:default}.btn.block{width:100%}.btn.secondary{background:var(--blue-soft);color:var(--blue-ink)}.btn.ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line-strong)}.btn.danger{background:var(--red-soft);color:var(--red)}.btn.sm{min-height:36px;padding:0 12px;font-size:15px;border-radius:10px}.linkish{background:none;border:0;padding:0;color:var(--blue);cursor:pointer;font-weight:500}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2)}.tag{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:550;padding:3px 9px 3px 8px;border-radius:999px;white-space:nowrap;background:var(--track);color:var(--ink-2)}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.tag.blue{background:var(--blue-soft);color:var(--blue-ink)}.tag.green{background:var(--green-soft);color:var(--green)}.tag.amber{background:var(--amber-soft);color:var(--amber)}.tag.red{background:var(--red-soft);color:var(--red)}.tag.plain:before{display:none}.field{display:block;margin-top:18px}.field:first-child{margin-top:0}.field>.lbl{display:flex;justify-content:space-between;font-size:14px;font-weight:550;color:var(--ink-2);margin-bottom:6px}.field>.lbl .opt{font-weight:400;color:var(--muted)}.field .hint{font-size:13px;color:var(--muted);margin-top:6px}.field .error{font-size:13px;color:var(--red);margin-top:6px}.input,.textarea{width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:12px 14px;font-size:16px;outline:none;transition:border-color .12s}.input:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.input.invalid,.textarea.invalid{border-color:var(--red)}.textarea{min-height:120px;resize:vertical;line-height:1.5}.textarea.tall{min-height:220px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:15px;cursor:pointer;color:var(--ink-2)}.chip[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.segmented{display:flex;background:var(--track);border-radius:12px;padding:3px;gap:3px}.segmented button{flex:1;border:0;background:transparent;padding:9px 10px;border-radius:9px;cursor:pointer;font-weight:550;color:var(--ink-2);font-size:15px;white-space:nowrap;padding-inline:6px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #14213d1f}.segmented .count{color:var(--muted);font-weight:450;margin-left:4px}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0;cursor:pointer}.switch input{appearance:none;width:46px;height:28px;border-radius:14px;background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s;flex:none}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}.switch input:checked{background:var(--blue)}.switch input:checked:after{transform:translate(18px)}.check-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line);cursor:pointer}.check-row:first-child{border-top:0}.check-row input{width:20px;height:20px;accent-color:var(--blue);flex:none}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar nav{max-width:600px;margin:0 auto;display:flex;height:var(--tabbar-h)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:12px;font-weight:550;position:relative}.tabbar a.active{color:var(--blue)}.tabbar .badge{position:absolute;top:6px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--blue);color:var(--on-blue);font-size:11px;font-weight:650;display:flex;align-items:center;justify-content:center}.empty{text-align:center;padding:18px 12px 8px;display:flex;flex-direction:column;align-items:center}.empty .doodle{color:var(--ink-2);margin-bottom:10px}.empty p{max-width:34ch}.empty h3{margin:0 0 4px;font-size:17px;font-weight:600}.empty p{margin:0;color:var(--muted);font-size:15px}.empty .btn{margin-top:14px}.error-box{background:var(--red-soft);color:var(--red);border-radius:var(--r-md);padding:12px 14px;font-size:15px}.error-box .linkish{color:inherit;text-decoration:underline;margin-left:6px}.note{background:var(--blue-soft);color:var(--blue-ink);border-radius:var(--r-md);padding:12px 14px;font-size:15px}.note.amber{background:var(--amber-soft);color:var(--amber)}.skel{background:linear-gradient(90deg,var(--track) 0%,var(--line) 50%,var(--track) 100%);background-size:200% 100%;animation:shimmer 1.3s infinite linear;border-radius:10px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.center-screen{min-height:70vh;display:flex;flex-direction:column;justify-content:center}.center-screen h1{font-size:26px;margin:18px 0 8px;letter-spacing:-.02em}.center-screen p{color:var(--ink-2);margin:0}.mark{width:52px;height:52px;border-radius:16px;background:var(--blue);color:var(--on-blue);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:24px}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 20px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper);padding:11px 16px;border-radius:12px;font-size:15px;z-index:50;max-width:calc(100% - 32px);animation:toastIn .18s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}}.sheet-backdrop{position:fixed;inset:0;background:#0f142073;z-index:40;display:flex;align-items:flex-end;justify-content:center;animation:fade .16s}.sheet{background:var(--surface);width:100%;max-width:600px;border-radius:22px 22px 0 0;padding:22px var(--gutter) calc(20px + env(safe-area-inset-bottom));animation:up .2s cubic-bezier(.2,.7,.2,1);max-height:90vh;overflow:auto}.sheet h2{margin:0 0 12px;font-size:20px;letter-spacing:-.01em}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(40px);opacity:.6}}.prose{white-space:pre-wrap;word-wrap:break-word;line-height:1.55}.prose.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:15px}.kv dt{color:var(--muted)}.kv dd{margin:0}.item-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line)}.item-row:first-child{border-top:0}.item-row .ic{width:36px;height:36px;border-radius:10px;background:var(--blue-soft);color:var(--blue-ink);display:flex;align-items:center;justify-content:center;flex:none}.item-row .main{flex:1;min-width:0}.item-row .name{font-weight:550;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-row .meta{color:var(--muted);font-size:13px}.media-img{display:block;width:100%;max-height:480px;object-fit:contain;background:var(--track);border-radius:var(--r-md)}audio{width:100%;height:40px}.attempt{border-top:1px solid var(--line);padding:16px 0}.attempt:first-child{border-top:0;padding-top:0}.feedback{border-left:3px solid var(--blue);padding:2px 0 2px 14px;margin-top:12px}.feedback.redo{border-left-color:var(--amber)}.feedback h4{margin:12px 0 2px;font-size:14px;font-weight:600;color:var(--ink-2)}.feedback h4:first-child{margin-top:0}.score{font-size:28px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.score small{font-size:15px;color:var(--muted);font-weight:450}.stats{display:grid;grid-template-columns:1fr 1fr;gap:0}.stats>div{padding:14px 16px;border-top:1px solid var(--line)}.stats>div:nth-child(-n+2){border-top:0}.stats>div:nth-child(2n){border-left:1px solid var(--line)}.stats .v{font-size:24px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stats .k{color:var(--muted);font-size:14px}.attn{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.attn button{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;cursor:pointer}.attn button.hot{border-color:var(--blue);background:var(--blue-soft)}.attn .v{font-size:28px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.attn .k{color:var(--ink-2);font-size:13px;margin-top:4px}.savebar{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:6px}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.3}}.avatar{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);color:var(--blue-ink);display:flex;align-items:center;justify-content:center;font-weight:650;flex:none;font-size:15px}.sticky-actions{padding-top:14px;background:linear-gradient(to bottom,transparent,var(--paper) 45%);position:sticky;bottom:calc(var(--tabbar-h) + 10px + env(safe-area-inset-bottom));margin-top:20px;z-index:5}.page.no-tabs .sticky-actions{bottom:calc(12px + env(safe-area-inset-bottom))}details>summary{cursor:pointer;list-style:none;color:var(--blue);font-weight:500}details>summary::-webkit-details-marker{display:none}hr.sep{border:0;border-top:1px solid var(--line);margin:18px 0}@media (min-width: 720px){.page{padding-top:36px}.page-head h1{font-size:32px}}@media (max-width: 360px){.attn{grid-template-columns:1fr 1fr}.nextup .name{font-size:21px}}[data-color=blue]{--c: #1d3fd1;--c-soft: #eaeffd;--c-deep: #1733b0}[data-color=violet]{--c: #7a4fe0;--c-soft: #f1ecfd;--c-deep: #5a34b8}[data-color=teal]{--c: #0e9384;--c-soft: #e3f6f3;--c-deep: #0a6e63}[data-color=orange]{--c: #e0661c;--c-soft: #fdefe5;--c-deep: #b04d10}[data-color=pink]{--c: #d63f78;--c-soft: #fceaf1;--c-deep: #a82c5b}[data-color=green]{--c: #2a9a4b;--c-soft: #e7f6eb;--c-deep: #1e7537}[data-color=gray]{--c: #6b7690;--c-soft: #eef1f6;--c-deep: #4a5672}[data-color=amber]{--c: #b7740a;--c-soft: #fbf1df;--c-deep: #8a5506}:root[data-theme=dark] [data-color=blue]{--c: #7d99ff;--c-soft: #1d2745;--c-deep: #a9bbff}:root[data-theme=dark] [data-color=violet]{--c: #a98bff;--c-soft: #271e45;--c-deep: #c8b6ff}:root[data-theme=dark] [data-color=teal]{--c: #3fcfbd;--c-soft: #123330;--c-deep: #7fe3d6}:root[data-theme=dark] [data-color=orange]{--c: #ff9a57;--c-soft: #3a2414;--c-deep: #ffbf93}:root[data-theme=dark] [data-color=pink]{--c: #ff7aab;--c-soft: #3a1828;--c-deep: #ffb0cc}:root[data-theme=dark] [data-color=green]{--c: #5fd283;--c-soft: #15301e;--c-deep: #96e6ae}:root[data-theme=dark] [data-color=gray]{--c: #8f99b2;--c-soft: #222a3a;--c-deep: #b4bdd2}:root[data-theme=dark] [data-color=amber]{--c: #f0b45a;--c-soft: #2e2413;--c-deep: #f6cd8e}.skill-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;background:var(--c-soft);color:var(--c-deep);font-size:13px;font-weight:600}.skill-chip .dot{width:20px;height:20px;border-radius:50%;background:var(--c);color:#fff;display:flex;align-items:center;justify-content:center}.skill-chip .dot svg{width:12px;height:12px}.skill-bar{width:4px;align-self:stretch;border-radius:2px;background:var(--c);flex:none}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.stat-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;white-space:nowrap;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-weight:650;font-size:15px;font-variant-numeric:tabular-nums}.stat-chip .ic{display:flex}.stat-chip.fire .ic{color:#f0802a}.stat-chip.xp .ic{color:#e2a300}.stat-chip.book .ic{color:var(--blue)}.stat-chip.off{color:var(--muted)}.stat-chip.off .ic{color:var(--line-strong)}.week{display:flex;gap:6px;margin-top:10px}.week span{flex:1;height:6px;border-radius:3px;background:var(--track)}.week span.on{background:#f0802a}.course-card{border-radius:22px;padding:18px;background:var(--c-soft);color:var(--ink);position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--c) 18%,transparent)}.course-card .k{color:var(--c-deep);font-size:14px;font-weight:600}.course-card .t{font-size:20px;font-weight:650;letter-spacing:-.015em;margin:4px 0 2px}.course-card .btn{background:var(--c);color:#fff;margin-top:14px}:root[data-theme=dark] .course-card .btn{color:#0f1420}.mini-path{display:flex;gap:6px;margin-top:12px}.mini-path span{flex:1;height:8px;border-radius:4px;background:color-mix(in srgb,var(--c) 18%,transparent)}.mini-path span.done{background:var(--c)}.mini-path span.open{background:color-mix(in srgb,var(--c) 55%,transparent)}.path{position:relative;padding:8px 0 24px;display:flex;flex-direction:column;align-items:center;gap:26px}.path-node{display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:0;cursor:pointer;color:inherit;width:160px;transform:translate(var(--x, 0))}.path-node .disc{width:76px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--c);color:#fff;box-shadow:0 6px 0 var(--c-deep);font-weight:750;font-size:24px;transition:transform 90ms ease,box-shadow 90ms ease;position:relative}:root[data-theme=dark] .path-node .disc{color:#0f1420}.path-node:active .disc{transform:translateY(4px);box-shadow:0 2px 0 var(--c-deep)}.path-node.locked .disc{background:var(--track);color:var(--muted);box-shadow:0 6px 0 var(--line-strong)}.path-node.current .disc:after{content:"";position:absolute;inset:-9px;border-radius:50%;border:3px solid var(--c);opacity:.45;animation:ring 1.8s ease-out infinite}@keyframes ring{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.18);opacity:0}}.path-node .label{font-weight:600;font-size:14px;text-align:center;line-height:1.25;max-width:170px}.path-node.locked .label{color:var(--muted)}.stars{display:flex;gap:2px;color:#f2b100}.stars .off{color:var(--line-strong)}.bubble{background:var(--c);color:#fff;font-weight:700;font-size:13px;padding:5px 10px;border-radius:10px;position:relative;margin-bottom:-2px}.bubble:after{content:"";position:absolute;left:50%;bottom:-5px;transform:translate(-50%) rotate(45deg);width:10px;height:10px;background:var(--c);border-radius:2px}:root[data-theme=dark] .bubble{color:#0f1420}.player{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;max-width:600px;margin:0 auto;padding:14px var(--gutter) 0}.player-top{display:flex;align-items:center;gap:12px}.player-top .icon-btn{border:0;background:transparent}.progress{flex:1;height:14px;border-radius:7px;background:var(--track);overflow:hidden}.progress>span{display:block;height:100%;border-radius:7px;background:var(--c);transition:width .38s cubic-bezier(.2,.7,.2,1);position:relative}.progress>span:after{content:"";position:absolute;left:8px;right:8px;top:3px;height:4px;border-radius:2px;background:#ffffff59}.player-body{flex:1;padding:28px 0 24px}.player-body h2{font-size:22px;line-height:1.3;letter-spacing:-.015em;margin:0 0 6px}.player-body .instr{color:var(--muted);font-size:15px;margin-bottom:18px}.ex-media{margin-bottom:18px}.ex-media img{max-width:100%;max-height:240px;border-radius:16px;display:block}.opt-list{display:grid;gap:10px}.ans{text-align:left;padding:16px 18px;border-radius:16px;background:var(--surface);border:2px solid var(--line);box-shadow:0 3px 0 var(--line);font-size:17px;font-weight:550;cursor:pointer;color:inherit}.ans[aria-pressed=true]{border-color:var(--c);background:var(--c-soft);box-shadow:0 3px 0 var(--c);color:var(--c-deep)}.ans.good{border-color:var(--green);background:var(--green-soft);box-shadow:0 3px 0 var(--green);color:var(--green)}.ans.bad{border-color:var(--red);background:var(--red-soft);box-shadow:0 3px 0 var(--red);color:var(--red)}.gap-line{font-size:21px;line-height:1.6;font-weight:550}.gap-input{display:inline-block;min-width:120px;font-size:20px;font-weight:600;border:0;border-bottom:3px solid var(--c);background:var(--c-soft);color:var(--c-deep);border-radius:8px 8px 0 0;padding:2px 10px;outline:none;width:100%;margin-top:14px}.answer-area{min-height:64px;border-bottom:2px solid var(--line-strong);padding:8px 0;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;margin-bottom:22px}.bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.word{padding:10px 14px;border-radius:12px;border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--line);font-size:17px;font-weight:600;cursor:pointer;color:inherit}.word.used{visibility:hidden}.match-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.match-col{display:grid;gap:10px;align-content:start}.match-col .ans{padding:12px 14px;font-size:15px;min-height:54px}.match-col .ans.paired{border-style:dashed}.pair-tag{display:inline-flex;width:20px;height:20px;border-radius:50%;background:var(--c);color:#fff;font-size:12px;font-weight:700;align-items:center;justify-content:center;margin-right:8px;vertical-align:2px}.player-foot{position:sticky;bottom:0;padding:14px 0 calc(16px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);margin:0 calc(-1 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}.player-foot.good{background:var(--green-soft);border-top-color:transparent}.player-foot.bad{background:var(--red-soft);border-top-color:transparent}.player-foot .verdict{font-size:20px;font-weight:750;margin-bottom:4px;display:flex;align-items:center;gap:8px}.player-foot.good .verdict{color:var(--green)}.player-foot.bad .verdict{color:var(--red)}.player-foot .sol{font-size:16px;margin-bottom:4px}.player-foot .expl{font-size:14px;color:var(--ink-2);margin-bottom:10px}.btn.big{min-height:54px;font-size:17px;border-radius:16px;box-shadow:0 4px 0 var(--c-deep, var(--blue-press));background:var(--c, var(--blue))}.btn.big:active{transform:translateY(2px);box-shadow:0 2px 0 var(--c-deep, var(--blue-press))}.btn.big.green{background:var(--green);box-shadow:0 4px color-mix(in srgb,var(--green) 70%,black);color:#fff}.btn.big.red{background:var(--red);box-shadow:0 4px color-mix(in srgb,var(--red) 70%,black);color:#fff}.btn.big[disabled]{background:var(--track);color:var(--muted);box-shadow:0 4px 0 var(--line-strong);opacity:1}.shake{animation:shake .32s}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.result{text-align:center;padding-top:10vh}.result h1{font-size:30px;letter-spacing:-.02em;margin:18px 0 6px}.result .big-stars{display:flex;justify-content:center;gap:8px;color:#f2b100}.result .big-stars .off{color:var(--line-strong)}.result .big-stars svg{animation:pop .5s cubic-bezier(.2,1.6,.4,1) both}.result .big-stars svg:nth-child(2){animation-delay:.12s}.result .big-stars svg:nth-child(3){animation-delay:.24s}@keyframes pop{0%{transform:scale(0) rotate(-30deg)}to{transform:scale(1) rotate(0)}}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0}.result-stats>div{border-radius:16px;padding:12px 8px;border:2px solid var(--line)}.result-stats .v{font-size:22px;font-weight:750}.result-stats .k{font-size:13px;color:var(--muted)}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:60}.confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;animation:fall 2.4s cubic-bezier(.3,.6,.5,1) forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:.9}}.howto{border-radius:20px;padding:16px 18px;background:var(--blue-soft);border:1px solid var(--line)}.howto h3{margin:0 0 10px;font-size:17px}.howto ol{margin:0;padding:0;list-style:none;display:grid;gap:10px}.howto li{display:flex;gap:10px;align-items:flex-start;font-size:15px}.howto li b{flex:none;width:24px;height:24px;border-radius:50%;background:var(--blue);color:var(--on-blue);display:flex;align-items:center;justify-content:center;font-size:13px}.materials{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.mat{border-radius:14px;border:1px solid var(--line);background:var(--surface);overflow:hidden;text-align:left;padding:0;cursor:pointer;color:inherit;display:flex;flex-direction:column}.mat .thumb{height:96px;background:var(--c-soft, var(--blue-soft));color:var(--c, var(--blue));display:flex;align-items:center;justify-content:center}.mat .thumb img{width:100%;height:100%;object-fit:cover}.mat .nm{padding:8px 10px;font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer{position:fixed;inset:0;background:#080a10eb;z-index:70;display:flex;align-items:center;justify-content:center;padding:16px}.viewer img{max-width:100%;max-height:100%;border-radius:8px}.viewer .icon-btn{position:absolute;top:14px;right:14px;background:#ffffff1f;color:#fff;border:0}.timeline{position:relative;padding-left:22px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--line)}.tl-item{position:relative;padding-bottom:14px}.tl-item:before{content:"";position:absolute;left:-20px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--c, var(--blue));border:3px solid var(--paper)}.tl-item .list-row{border:1px solid var(--line);border-radius:16px;background:var(--surface)}.kind-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kind-grid button{text-align:left;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:inherit}.kind-grid button b{display:block;font-size:15px;margin:8px 0 2px}.kind-grid button span{font-size:13px;color:var(--muted)}.kind-ic{width:24px;height:24px;flex:none;color:var(--c, var(--muted));display:flex;align-items:center;justify-content:center}.opt-edit{display:flex;gap:8px;align-items:center;margin-top:8px}.opt-edit input[type=radio]{width:22px;height:22px;accent-color:var(--green);flex:none}.opt-edit .input{flex:1}.swatches{display:flex;gap:10px}.swatch{width:34px;height:34px;border-radius:50%;border:3px solid transparent;background:var(--c);cursor:pointer}.swatch[aria-pressed=true]{border-color:var(--ink)}.reorder{display:flex;flex-direction:column;gap:2px}.reorder button{width:30px;height:24px;border:0;background:var(--track);border-radius:6px;cursor:pointer;color:var(--ink-2);display:flex;align-items:center;justify-content:center}.reorder button[disabled]{opacity:.3}.fab-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-tile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:var(--surface);border:1px solid var(--line);cursor:pointer;color:inherit;text-align:left;font-weight:600}.action-tile .kind-ic{flex:none}html.big-text .app{zoom:1.13}.daystrip{display:flex;align-items:center;gap:6px;margin-bottom:14px}.daystrip .icon-btn{width:34px;height:54px;flex:none}.daystrip .icon-btn[disabled]{opacity:.3}.daystrip .days{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 0 5px;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;color:inherit}.day .wd{font-size:11px;color:var(--muted);text-transform:capitalize}.day .dn{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.day .mk{width:5px;height:5px;border-radius:50%;background:transparent}.day .mk.free{background:var(--green)}.day .mk.busy{background:var(--blue)}.day .mk.both{background:linear-gradient(90deg,var(--blue) 50%,var(--green) 50%)}.day.today .dn{color:var(--blue)}.day.on{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.day.on .wd,.day.on .dn{color:var(--on-blue)}.day.on .mk{background:var(--on-blue)!important}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.slot{border:1.5px solid var(--green);background:var(--green-soft);color:var(--green);border-radius:12px;padding:12px 0;font-weight:650;font-size:16px;cursor:pointer;font-variant-numeric:tabular-nums}.slot.busy{border-color:var(--line);background:var(--track);color:var(--muted);cursor:default;text-decoration:line-through}.slot.mine{border-color:var(--blue);background:var(--blue-soft, var(--c-soft));color:var(--blue);cursor:default;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0}.slot.mine small{font-size:11px;font-weight:600;opacity:.85}.agenda{display:grid;gap:8px}.ag{display:flex;align-items:stretch;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:pointer;color:inherit;text-align:left;width:100%}.ag .tm{width:52px;flex:none;font-variant-numeric:tabular-nums;font-weight:650;font-size:15px;line-height:1.3}.ag .tm small{display:block;color:var(--muted);font-weight:450;font-size:12px}.ag .bar{width:4px;border-radius:2px;background:var(--line-strong);flex:none}.ag .body{flex:1;min-width:0}.ag .body .t1{font-weight:600}.ag .body .t2{font-size:13px;color:var(--muted)}.ag.free{border-style:dashed;background:transparent}.ag.free .bar{background:var(--green)}.ag.free .t1{color:var(--green)}.ag.booking .bar{background:var(--blue)}.ag.booking.missed .bar{background:var(--amber)}.ag.booking.done .bar{background:var(--green)}.ag.off,.ag.time_off{background:repeating-linear-gradient(135deg,var(--track) 0 8px,transparent 8px 16px);border-style:dashed}.ag.off .t1,.ag.time_off .t1{color:var(--muted)}.next-lesson{border-radius:20px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);display:flex;gap:14px;align-items:center}.next-lesson .when{width:58px;height:58px;border-radius:16px;background:var(--blue-soft);color:var(--blue-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}.next-lesson .when b{font-size:20px;line-height:1}.next-lesson .when small{font-size:13.5px;letter-spacing:0}.alert-card{border-radius:18px;padding:14px 16px;display:flex;gap:12px;align-items:center;border:1px solid}.alert-card.amber{background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 30%,transparent);color:var(--ink)}.alert-card.red{background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.alert-card .ic{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex:none}.alert-card.amber .ic{color:var(--amber)}.alert-card.red .ic{color:var(--red)}.words-card{border-radius:20px;padding:16px 18px;background:#fff3e8;border:1px solid #f5dcc6;display:flex;align-items:center;gap:14px;cursor:pointer;color:var(--ink);width:100%;text-align:left}:root[data-theme=dark] .words-card{background:#2e2214;border-color:#3e2c24}.words-card .big{font-size:30px;font-weight:750;font-variant-numeric:tabular-nums;color:#e0661c;min-width:40px;text-align:center}.flash{border-radius:24px;background:var(--surface);border:2px solid var(--line);box-shadow:0 6px 0 var(--line);padding:28px 20px;text-align:center;min-height:240px;display:flex;flex-direction:column;justify-content:center;gap:12px}.flash .term{font-size:32px;font-weight:750;letter-spacing:-.02em}.flash .def{font-size:19px;line-height:1.4}.flash .ex{color:var(--muted);font-style:italic}.stage-dots{display:inline-flex;gap:3px}.stage-dots i{width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.stage-dots i.on{background:var(--green)}.card-num{font-size:18px;letter-spacing:.06em;font-weight:650;font-variant-numeric:tabular-nums}.pay-method{border-radius:18px;padding:16px;background:linear-gradient(135deg,#1d3fd1,#0b2a9a);color:#fff;position:relative;overflow:hidden}.pay-method .lbl2{opacity:.8;font-size:13px}.pay-method .holder{opacity:.9;font-size:14px;margin-top:4px}.pay-method .btn{position:absolute;right:12px;top:12px;background:#ffffff2e;color:#fff}.balance-big{font-size:44px;font-weight:750;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.receipt-img{max-width:100%;max-height:360px;border-radius:12px;display:block;margin-top:10px}.window-row{display:flex;gap:8px;align-items:center;margin-top:8px}.window-row .input{padding:10px}.wd-block{border-top:1px solid var(--line);padding:12px 16px}.wd-block:first-child{border-top:0}.import-area{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px;min-height:260px;white-space:pre;overflow-x:auto}.code-help{margin:0;display:grid;gap:2px 0}.code-help dt{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;background:var(--track);border-radius:8px;padding:4px 8px;justify-self:start;margin-top:8px;color:var(--ink)}.code-help dt:first-child{margin-top:0}.code-help dd{margin:3px 0 0 2px;font-size:13.5px;color:var(--muted)}.code-sample{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;background:var(--track);border-radius:12px;padding:12px;margin:14px 0 0;white-space:pre-wrap;line-height:1.55;overflow-x:auto}.textarea.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:14px}.today-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:4px 0 16px}.today-head h1{margin:2px 0 0;font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:750}.streak-chip{display:inline-flex;align-items:center;gap:4px;background:#fdefe4;color:#b44c0b;font-weight:750;font-size:15px;padding:7px 11px;border-radius:999px}:root[data-theme=dark] .streak-chip{background:#3a2414;color:#ffbf93}.goal-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px 16px;margin-bottom:14px}.goal-card .ring{transition:stroke-dasharray .7s cubic-bezier(.2,.8,.2,1)}.hero{position:relative;overflow:hidden;background:var(--blue);color:#fff;border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:8px}:root[data-theme=dark] .hero{background:#2b4ae0}.hero-glow{display:none}.hero-label{font-size:13.5px;font-weight:600;letter-spacing:0;opacity:.85}.hero-badge{font-size:12px;font-weight:650;background:#ffffff29;padding:4px 10px;border-radius:999px;white-space:nowrap}.hero-title{font-size:22px;font-weight:800;line-height:1.2;letter-spacing:-.01em;position:relative}.hero-meta{font-size:14px;opacity:.88;display:flex;align-items:center;gap:6px}.hero-track{height:6px;border-radius:3px;background:#ffffff38}.hero-track span{display:block;height:100%;border-radius:3px;background:#fff}.hero-when{font-size:14px;font-weight:500;opacity:.95}.hero-btn{border:0;background:#fff;color:#1d3fd1;font-weight:700;font-size:15px;padding:11px 20px;border-radius:14px;min-height:44px;cursor:pointer}.hero-btn:active{transform:translateY(1px)}.hero.calm{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none}.hero.calm .hero-meta{color:var(--muted);opacity:1}.todo-row{width:100%;background:none;border:0;border-top:1px solid var(--line);text-align:left;font:inherit;color:inherit;cursor:pointer}.todo-row .kind-ic{width:24px;height:24px;flex:none}.todo-row .title{white-space:normal;overflow-wrap:anywhere}.todo-row .mini-btn{flex-shrink:0}.mini-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--blue-soft);color:var(--blue-ink);font:inherit;font-weight:700;font-size:14px;padding:8px 13px;border-radius:12px;min-height:38px;white-space:nowrap;cursor:pointer;text-decoration:none;flex:none}.mini-btn.orange{background:#fdefe4;color:#b44c0b}:root[data-theme=dark] .mini-btn.orange{background:#3a2414;color:#ffbf93}.mini-btn.ghost{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}.course-progress .pct{font-size:13px;font-weight:750;color:var(--c);background:var(--c-soft);padding:5px 10px;border-radius:999px}.course-progress .bar{height:8px;border-radius:4px;background:var(--track);margin-top:12px}.course-progress .bar span{display:block;height:100%;border-radius:4px;background:var(--c)}.upath{position:relative;margin-top:16px;padding-left:2px}.upath:before{content:"";position:absolute;left:23px;top:26px;bottom:26px;width:3px;border-radius:2px;background:var(--line)}.unode{position:relative;display:flex;align-items:center;gap:14px;padding:8px 0;color:inherit;text-decoration:none}.unode .dot{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;background:var(--c-soft);color:var(--c-deep);border:2px solid var(--surface);z-index:1}.unode.done .dot{background:var(--green);color:#fff}.unode.locked .dot{background:var(--track);color:var(--muted)}.unode.open .dot{background:var(--c);color:#fff}.unode .body{flex:1;min-width:0;display:flex;flex-direction:column}.unode .t{font-weight:650;font-size:15px}.unode .m{font-size:13px;color:var(--muted)}.unode.locked .t{color:var(--muted)}.unode.current{align-items:flex-start}.unode.current .dot{background:var(--c);color:#fff;box-shadow:0 0 0 6px var(--c-soft)}.ucard{flex:1;min-width:0;background:var(--surface);border:2px solid var(--c);border-radius:20px;padding:14px;display:flex;flex-direction:column;gap:10px;color:inherit;text-decoration:none}.ucard .now-label{font-size:12px;font-weight:750;color:var(--c);letter-spacing:.6px}.ucard .t{font-weight:750;font-size:17px;margin-top:-6px}.ucard .chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ucard .go{background:var(--c);color:#fff;font-weight:700;text-align:center;padding:11px;border-radius:14px}.step-chip{font-size:12px;font-weight:650;padding:6px 8px;border-radius:10px;background:var(--track);color:var(--muted)}.step-chip.done{background:var(--green-soft);color:var(--green)}.step-chip.now{background:var(--c-soft);color:var(--c-deep)}.unit-band{position:relative;overflow:hidden;background:var(--c, var(--blue));color:#fff;padding:14px 20px 22px;display:flex;flex-direction:column;gap:8px}.unit-band>*{max-width:600px;width:100%;margin-left:auto;margin-right:auto;position:relative}.unit-band-glow{display:none}.band-back{display:inline-flex;align-items:center;gap:4px;color:#fff;font-size:15px;min-height:32px;opacity:.95}.band-kicker{font-size:13px;font-weight:700;letter-spacing:0;opacity:.85}.unit-band h1{margin:0;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.band-progress{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650}.band-progress .bar{flex:1;height:8px;border-radius:4px;background:#ffffff40}.band-progress .bar span{display:block;height:100%;border-radius:4px;background:#fff;transition:width .5s ease}.page.no-top{padding-top:16px}.steps{display:flex;flex-direction:column;gap:10px}.step-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:14px}.step-card.now{border:2px solid var(--c, var(--blue))}.step-card.locked{opacity:.75}.step-top{display:flex;gap:12px;align-items:flex-start}.step-dot{width:40px;height:40px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;background:var(--track);color:var(--muted);border:2px dashed var(--line-strong)}.step-card.done .step-dot{background:var(--green);color:#fff;border:0}.step-card.now .step-dot{background:var(--c, var(--blue));color:#fff;border:0;box-shadow:0 0 0 5px var(--c-soft, var(--blue-soft))}.step-card.locked .step-dot{border-style:solid}.step-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.step-title{font-weight:750;font-size:16px}.step-meta{font-size:13px;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.check-badge{align-self:flex-start;font-size:12px;font-weight:650;padding:3px 9px;border-radius:999px}.check-badge.auto{background:#e1f4f1;color:#0b6e62}.check-badge.teacher{background:#f0ebfd;color:#5530b8}:root[data-theme=dark] .check-badge.auto{background:#123330;color:#7fe3d6}:root[data-theme=dark] .check-badge.teacher{background:#271e45;color:#c8b6ff}.step-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.step-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--paper);color:inherit;text-decoration:none}.step-item .main{flex:1;min-width:0;display:flex;flex-direction:column}.step-item .title{font-weight:600;font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.step-item .tag{flex-shrink:0}.step-item .meta{font-size:13px;color:var(--muted)}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:14px;font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:50%}.legend i.auto{background:#0b7a6e}.legend i.teacher{background:#6a3fd6}.pending{display:flex;flex-direction:column;gap:18px;padding-top:36px}.pending h1,.paywall h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.lead{font-size:16px;line-height:1.45;margin:-8px 0 0}.vsteps{display:flex;flex-direction:column;gap:0}.vstep{display:flex;gap:12px;align-items:flex-start;position:relative;padding-bottom:18px}.vstep:last-child{padding-bottom:0}.vstep .d{width:28px;height:28px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--track);border:2px solid var(--line-strong);position:relative;z-index:1}.vstep:not(:last-child):after{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line)}.vstep.done .d{background:var(--green);border-color:var(--green);color:#fff}.vstep.done:after{background:var(--green)!important}.vstep.now .d{background:var(--blue-soft);border-color:var(--blue)}.vstep.now .d i{width:10px;height:10px;border-radius:50%;background:var(--blue);animation:pulse 1.6s ease-in-out infinite}.vstep.now b{color:var(--blue)}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.5}}.spin-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--blue);animation:spin 1s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.trial-card{background:var(--blue);color:#fff;border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:8px}.trial-card .kicker{font-size:13.5px;font-weight:600;letter-spacing:0;opacity:.85}.trial-card .big{font-size:20px;font-weight:800;line-height:1.2}.trial-card .sub{font-size:14px;opacity:.9}.trial-card.booked{background:var(--green-soft);color:var(--ink)}.trial-card.booked .kicker{color:var(--green);opacity:1}.trial-card.booked .sub{color:var(--muted)}.paywall{display:flex;flex-direction:column;gap:14px;padding-top:36px;min-height:100dvh}.kind-ic.big{width:40px;height:40px}.kind-ic.big svg{width:30px;height:30px}.paywall .amount{font-size:28px;font-weight:800}.alert-card.blue{background:var(--blue-soft);border-color:transparent}.col-btns{display:flex;flex-direction:column;gap:6px}.combo{display:inline-flex;align-items:center;gap:4px;background:#fdefe4;color:#b44c0b;font-weight:800;font-size:14px;padding:6px 10px;border-radius:999px;white-space:nowrap;animation:pop-in .38s cubic-bezier(.2,1.6,.4,1) both}:root[data-theme=dark] .combo{background:#3a2414;color:#ffbf93}.player-top .progress span{transition:width .4s cubic-bezier(.2,.8,.2,1)}.ans{transition:transform .12s ease,background .15s ease}.ans:active:not([disabled]){transform:translateY(2px)}.ans.good{animation:bounce .42s ease}.ans.bad{animation:shake .36s ease}@keyframes bounce{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.player-foot{border-top-left-radius:22px;border-top-right-radius:22px}.player-foot.good,.player-foot.bad{animation:slide-up .22s ease both}@keyframes slide-up{0%{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}.result-screen .result{display:flex;flex-direction:column;align-items:center;padding-top:7vh;min-height:calc(100dvh - 20px);padding-bottom:calc(18px + env(safe-area-inset-bottom))}.result-screen .result .btn{width:100%}.record-chip{font-size:13px;font-weight:750;color:#5530b8;background:#f0ebfd;padding:5px 12px;border-radius:999px;margin-top:4px}:root[data-theme=dark] .record-chip{background:#271e45;color:#c8b6ff}.result-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0 14px;text-align:left}.result-grid>div{background:var(--c-soft);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:2px;animation:pop-in .42s cubic-bezier(.2,1.4,.4,1) both}.result-grid>div:nth-child(2){animation-delay:80ms}.result-grid>div:nth-child(3){animation-delay:.16s}.result-grid>div:nth-child(4){animation-delay:.24s}.result-grid .k{font-size:13.5px;font-weight:600;letter-spacing:0;color:var(--c-deep)}.result-grid .v{font-size:24px;font-weight:800}.goal-done-line{width:100%;display:flex;align-items:center;gap:8px;justify-content:center;font-weight:650;color:var(--green);background:var(--green-soft);border-radius:14px;padding:10px}.pop svg{animation:pop .5s cubic-bezier(.2,1.6,.4,1) both}.pop svg:nth-child(2){animation-delay:.11s}.pop svg:nth-child(3){animation-delay:.22s}.hw-kicker{font-size:13px;font-weight:600;letter-spacing:0;color:var(--c-deep, var(--blue-ink));margin-top:4px}.status-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:-6px 0 18px}.status-track>div{display:flex;flex-direction:column;gap:6px}.status-track .bar{height:5px;border-radius:3px;background:var(--line)}.status-track .lbl{font-size:12px;font-weight:550;color:var(--muted)}.status-track .done .bar{background:var(--green)}.status-track .done .lbl{color:var(--green)}.status-track .now .bar{background:var(--blue)}.status-track .now .lbl{color:var(--blue);font-weight:750}.status-track.redo .now .bar{background:var(--amber)}.status-track.redo .now .lbl{color:var(--amber)}.q-dots{display:inline-flex;gap:6px;align-items:center}.q-dots button{width:8px;height:8px;border-radius:4px;border:0;padding:0;background:var(--line-strong);cursor:pointer;transition:width .2s ease}.q-dots button.ok{background:var(--green)}.q-dots button.on{width:22px;background:var(--blue)}.feedback{border-left:0;padding:0;margin-top:12px;display:flex;flex-direction:column;gap:10px}.fb-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.fb-verdict{font-size:14px;font-weight:750;padding:5px 12px;border-radius:999px}.fb-verdict.ok{background:var(--green-soft);color:var(--green)}.fb-verdict.redo{background:var(--amber-soft);color:var(--amber)}.fb-block{border-radius:16px;padding:12px 14px}.fb-block h4{margin:0 0 4px!important;font-size:13.5px;font-weight:600;letter-spacing:0}.fb-block.good{background:var(--green-soft)}.fb-block.good h4{color:var(--green)}.fb-block.fix{background:var(--amber-soft)}.fb-block.fix h4{color:var(--amber)}.fb-block.next{background:var(--blue-soft)}.fb-block.next h4{color:var(--blue-ink)}.fb-block.note{background:var(--track)}.fb-block.note h4{color:var(--ink-2)}.tag.violet{background:#f0ebfd;color:#5530b8}@keyframes pop-in{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}:root[data-theme=dark] .unit-band{background:var(--c-soft);color:var(--c-deep)}:root[data-theme=dark] .band-back{color:var(--c-deep)}:root[data-theme=dark] .band-progress .bar{background:#ffffff1f}:root[data-theme=dark] .band-progress .bar span{background:var(--c)}:root[data-theme=dark] .unit-band-glow{background:#ffffff0a}:root[data-theme=dark] .ucard .go,:root[data-theme=dark] .unode.open .dot,:root[data-theme=dark] .unode.current .dot,:root[data-theme=dark] .step-card.now .step-dot,:root[data-theme=dark] .btn.big,:root[data-theme=dark] .unode.done .dot,:root[data-theme=dark] .step-card.done .step-dot{color:#0f1420}.regular-card .reg-kicker{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:650;color:var(--blue);letter-spacing:0}.regular-card .reg-title{font-size:19px;font-weight:700;margin-top:4px;letter-spacing:-.01em}.reg-wd{font-weight:650;margin-bottom:8px}.slot.pick{border-color:var(--line);background:var(--surface);color:var(--ink)}.slot.pick.on{border-color:var(--blue);background:var(--blue);color:#fff}.slot.pick.busy{text-decoration:line-through}.lesson-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.lesson-tags .tag{font-size:12px;padding:2px 8px}.tag.repeat{background:var(--blue-soft);color:var(--blue);display:inline-flex;align-items:center;gap:4px}.tag.repeat:before{display:none}.paid-until{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--blue-soft);color:var(--blue-ink, var(--blue));font-weight:600;font-size:15px}.series-mark{display:inline-flex;vertical-align:-1px;margin-left:6px;color:var(--blue)}.tap-w{cursor:pointer;border-radius:4px}.tap-w:active{background:color-mix(in srgb,var(--c, var(--blue)) 14%,transparent)}@media (hover: hover){.tap-w:hover{text-decoration:underline dotted color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:4px}}.tap-w:active{background:var(--blue-soft)}.speak-btn{width:40px;height:40px;border-radius:50%;border:0;background:var(--blue-soft);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.speak-btn:active{transform:scale(.94)}.speak-btn.big{width:84px;height:84px}.word-pop{padding-bottom:8px}.word-pop .wp-term{font-size:28px;font-weight:750;letter-spacing:-.02em}.word-pop .wp-ipa{color:var(--muted);margin-top:2px;font-size:15px}.word-pop .wp-tr{font-size:18px;margin-top:14px;line-height:1.45}.word-pop .wp-src{margin-top:12px;font-size:13.5px;color:var(--muted);letter-spacing:0}.flash .tr{margin-top:10px;color:var(--muted);font-size:16px}.flash .term-row{display:flex;align-items:center;justify-content:center;gap:10px}.flash .ipa{color:var(--muted);font-size:15px;margin-top:2px}.match-grid.words .ans{font-size:14px;line-height:1.3;min-height:56px}.listen-box{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 0}.unode.cp .dot{background:var(--orange-soft, #fdecdc);color:var(--orange, #e0661e);border:2px dashed color-mix(in srgb,var(--orange, #e0661e) 45%,transparent)}.unode.cp.open{background:var(--surface);border:1.5px solid var(--orange, #e0661e);border-radius:18px;padding:10px 12px 10px 0;margin:4px 0}.unode.cp.open .dot{background:var(--orange, #e0661e);color:#fff;border-style:solid;border-color:var(--surface);margin-left:0}.unode.cp.passed .dot,.unode.cp.waived .dot{background:var(--green);color:#fff;border:2px solid var(--surface)}.unode.cp.waiting .t{color:var(--muted)}.step-card.blocked .step-meta{color:var(--orange, #e0661e)}.pass-note{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--amber-soft);color:var(--amber);font-weight:600;font-size:14px;text-align:center}:root{--orange: #e0661c;--orange-soft: #fdefe5}:root[data-theme=dark]{--orange: #ff9a57;--orange-soft: #3a2414}.avatar.photo{object-fit:cover;padding:0;background:var(--track)}.photo-pick{position:relative;border:0;background:none;padding:0;cursor:pointer;flex:none;border-radius:16px}.photo-pick .cam{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.block-label{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--c);margin:-10px 0 14px}.block-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:12px 16px 6px;font-weight:700;font-size:14px;color:var(--c, var(--blue));background:var(--paper);border-top:1px solid var(--line)}.block-head:first-child{border-top:0}.block-dots{display:flex;gap:8px;justify-content:center;margin:14px 0 4px}.block-dots span{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--track);color:var(--muted)}.block-dots span.done{background:var(--green);color:#fff}.block-dots span.now{background:var(--c-soft, var(--blue-soft));color:var(--c, var(--blue));box-shadow:inset 0 0 0 2px var(--c, var(--blue))}.block-item{width:100%;text-align:left;font:inherit;color:inherit;border:0;cursor:pointer}.block-item .block-no{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--track);color:var(--muted)}.block-item.done .block-no{background:var(--green);color:#fff}.block-item.now .block-no{background:var(--c);color:#fff}.block-item .mini-btn{pointer-events:none}.inline-check{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}.inline-check input{width:20px;height:20px;accent-color:var(--blue);flex:none}.text-ex{font-size:17px;line-height:2.05;padding-bottom:8px}.blank{display:inline-flex;align-items:center;gap:6px;min-width:92px;min-height:34px;padding:0 10px;margin:0 3px;vertical-align:middle;line-height:1.2;border-radius:10px;border:2px dashed var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-weight:650;cursor:pointer}.blank .blank-no,.sol .blank-no{flex:none;display:inline-flex;width:18px;height:18px;border-radius:50%;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--track);color:var(--muted)}.blank.active{border-style:solid;border-color:var(--c);background:var(--c-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}.blank.active .blank-no{background:var(--c);color:#fff}.blank.filled{border-style:solid;border-color:var(--c);color:var(--c-deep);background:var(--c-soft)}.blank.good{border-style:solid;border-color:var(--green);background:var(--green-soft);color:var(--green)}.blank.bad{border-style:solid;border-color:var(--red);background:var(--red-soft);color:var(--red);text-decoration:line-through}.blank:disabled{cursor:default;opacity:1}.sticky-bank{position:sticky;bottom:calc(var(--foot-h, 88px) - 1px);z-index:2;margin:6px calc(-1 * var(--gutter)) 0;padding:12px var(--gutter);background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -10px 20px -14px #14213d40}.sticky-bank .word.used{visibility:visible;opacity:.3}.sheet-passage{max-height:62vh;overflow-y:auto;line-height:1.6;white-space:pre-wrap}.block-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.passage-card{width:100%;display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer}.passage-card .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.passage-peek{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.block-head .small{white-space:nowrap}.unode.skipped .dot{background:var(--track);color:var(--muted)}.unode.skipped .t{color:var(--muted)}.band-editor{padding:14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.band-grid{display:grid;gap:8px;margin-top:12px}.band-row{display:grid;grid-template-columns:1fr 92px;align-items:center;gap:10px}.band-row .input{padding:8px 10px}.band-overall-line{margin-top:12px;font-size:16px}.band-overall-line b{font-size:22px;color:var(--blue);margin-left:4px}.band-view{display:flex;align-items:center;gap:14px;padding:12px 14px;margin:4px 0 12px;border-radius:var(--r-lg);background:var(--blue-soft)}.band-big{display:flex;flex-direction:column;align-items:center;min-width:74px;font-size:34px;font-weight:800;color:var(--blue);line-height:1}.band-big small{font-size:13.5px;font-weight:700;letter-spacing:0;color:var(--blue-ink);margin-bottom:6px}.band-crit{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.band-crit div{display:flex;flex-direction:column;align-items:center;padding:6px 2px;border-radius:10px;background:var(--surface)}.band-crit span{font-size:11px;font-weight:700;color:var(--muted)}.band-crit b{font-size:17px}.band-progress{padding:14px 16px;margin-bottom:14px}.band-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:8px}.band-col{display:flex;flex-direction:column;gap:2px;color:var(--c)}.band-col .muted{color:var(--muted)}.band-num{font-size:30px;font-weight:800;line-height:1.1;color:var(--ink)}.band-num small{font-size:13px;font-weight:700;margin-left:8px}.band-num small.up{color:var(--green)}.band-num small.down{color:var(--red)}.band-spark{display:block;margin:4px 0}.passage-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.passage-chip:active{transform:scale(.97)}.chart{padding:14px 12px 12px}.chart-title{font-weight:700;font-size:15px;line-height:1.3;margin-bottom:2px}.chart-unit{margin-bottom:6px}.chart-svg{width:100%;height:auto;display:block}.chart-svg.pie{max-width:220px}.chart-grid{stroke:var(--line);stroke-width:1}.chart-axis{stroke:var(--line-strong);stroke-width:1.2}.chart-tick{fill:var(--muted);font-size:10.5px;font-family:var(--font)}.chart-pie-label{fill:#fff;font-size:12px;font-weight:700;font-family:var(--font)}.chart-slice{stroke:var(--surface);stroke-width:1.5}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px;color:var(--ink-2)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend.col{flex-direction:column;gap:6px;margin:0}.chart-pie{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.chart-pie .chart-svg{flex:0 1 200px}.chart-src{margin-top:8px}.chart-table-wrap{overflow-x:auto}.chart-table{border-collapse:collapse;width:100%;font-size:13.5px}.chart-table th,.chart-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.chart-table thead th{font-weight:700;color:var(--ink-2)}.chart-table tbody th{text-align:left;font-weight:600;white-space:normal}.chart.big .chart-tick{font-size:11px}.visuals{padding:14px 12px 12px;display:flex;flex-direction:column;gap:22px}.visuals .chart{padding:0}.chart-axis-title{fill:var(--ink-2);font-size:10.5px;font-weight:600;font-family:var(--font)}.chart-legend.center{justify-content:center}.chart-pies{display:grid;gap:10px}.chart-pies.n2,.chart-pies.n4{grid-template-columns:1fr 1fr}.chart-pies.n3{grid-template-columns:1fr 1fr 1fr}.chart-pie-one{margin:0;display:flex;flex-direction:column;align-items:center}.chart-pie-one figcaption{font-weight:700;font-size:13.5px;margin-bottom:6px;text-align:center}.chart-pies.n1 .chart-svg.pie{max-width:230px}.chart-table{border:1px solid var(--line-strong)}.chart-table thead th{background:#3d6fb6;color:#fff;text-align:center}.chart-table tbody th{background:#4a7cc4;color:#fff}.chart-table tbody td{background:var(--blue-soft);text-align:center}.chart-table th,.chart-table td{border:1px solid var(--surface)}.chart-maps{display:flex;flex-direction:column;gap:14px}.chart-map{margin:0}.chart-map figcaption{font-weight:700;font-size:13.5px;margin-bottom:6px}.chart-svg.map{border-radius:4px}.map-label{font:600 11px var(--font);fill:#2b2620}.map-label.light{fill:#fff}.map-glyph{font:800 20px var(--font);fill:#3b5f8f}.map-glyph.small{font-size:11px;fill:#333}.proc-node{fill:var(--surface);stroke:var(--ink-2);stroke-width:1.4}.proc-icon{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.proc-num{font:700 9px var(--font);fill:var(--muted)}.proc-label{font:600 10.5px var(--font);fill:var(--ink)}.proc-note{font:500 9.5px var(--font);fill:var(--muted)}.proc-arrow{stroke:var(--ink-2);stroke-width:2.2}.proc-head{fill:var(--ink-2)}.chart-map figcaption{display:flex;justify-content:space-between;align-items:flex-end;color:var(--ink)}.chart-map figcaption .map-glyph.small{fill:currentColor}.timed-cover{padding:22px 18px 18px;text-align:center}.timed-ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--blue-soft);color:var(--blue)}.timed-min{font-size:20px;font-weight:800;margin:12px 0 10px}.timed-rules{text-align:left;margin:0 0 18px;padding-left:20px;color:var(--ink-2);line-height:1.5;font-size:14.5px}.timed-rules li+li{margin-top:6px}.countdown{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;margin:14px calc(-1 * var(--gutter)) 0;padding:10px var(--gutter);background:var(--paper);border-bottom:1px solid var(--line);color:var(--ink)}.countdown b{font-size:17px;min-width:52px}.countdown .bar{flex:1;height:6px;border-radius:3px;background:var(--track);overflow:hidden}.countdown .bar span{display:block;height:100%;background:var(--blue);transition:width 1s linear}.countdown.warn{color:var(--red)}.countdown.warn .bar span{background:var(--red)}.unode.mock .dot{background:var(--amber-soft);color:var(--amber)}.unode.mock.done .dot{background:var(--green-soft);color:var(--green)}.unode.mock.locked{opacity:.75}.mock-part{display:flex;align-items:center;gap:12px}.mock-part .min{margin-left:auto;color:var(--muted);font-size:13.5px;white-space:nowrap}.tr-chip{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:3px 9px;border-radius:999px;border:1px dashed var(--line-strong);background:transparent;color:var(--muted);font:inherit;font-size:12.5px;cursor:pointer}.flash .tr-chip{margin-top:10px}.q-dots button{position:relative}.q-dots button:after{content:"";position:absolute;inset:-14px -4px}.audiobar{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:0 4px 14px #0000000f}.ab-play{flex:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--blue);color:var(--on-blue);display:grid;place-items:center;cursor:pointer}.ab-play:active{transform:scale(.95)}.ab-play:disabled{opacity:.5}.ab-mid{flex:1;min-width:0}.ab-seek{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0}.ab-seek::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--blue) var(--p),var(--track) var(--p))}.ab-seek::-moz-range-track{height:6px;border-radius:3px;background:var(--track)}.ab-seek::-moz-range-progress{height:6px;border-radius:3px;background:var(--blue)}.ab-seek::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:var(--blue);border:3px solid var(--surface)}.ab-time{font-size:12.5px;color:var(--ink-2);display:flex;gap:6px;margin-top:-2px}.ab-small{flex:none;min-width:44px;height:36px;padding:0 8px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.ab-small.on{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.tag.listen{background:var(--blue-soft);color:var(--blue)}.rt-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.rt-tabs button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;font-weight:650;font-size:14.5px;cursor:pointer}.rt-tabs button small{font-weight:500;color:var(--muted);font-size:12px}.rt-tabs button.on{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink)}.rt-passage{margin-top:12px;padding:16px}.rt-passage h2{font-size:18px;margin:0 0 12px;line-height:1.3}.rt-text p{margin:0 0 12px;line-height:1.6;font-size:16px}.rt-letter{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-right:8px;border-radius:6px;background:var(--ink);color:var(--surface);font-size:13px;vertical-align:1px}.rt-group{padding:14px;display:grid;gap:14px}.rt-instr{font-size:14px;line-height:1.45;color:var(--ink-2);font-style:italic;white-space:pre-line;border-left:3px solid var(--blue);padding-left:10px}.rt-q{display:flex;gap:10px;align-items:flex-start}.rt-n{flex:none;display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border-radius:8px;background:var(--track);font-weight:700;font-size:13px}.rt-prompt{font-weight:550;line-height:1.45;margin:2px 0 8px}.rt-opts{display:grid;gap:6px}.rt-opts.short{display:flex;flex-wrap:wrap}.rt-opts.short button{flex:1 1 auto;padding:9px 10px}.rt-opts button{text-align:left;padding:9px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:15px;line-height:1.35;cursor:pointer}.rt-opts.short button{text-align:center}.rt-opts button[aria-pressed=true]{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink);font-weight:650}.rt-gap{flex:1;min-width:0;line-height:2.1}.rt-input{display:inline-block;width:150px;max-width:100%;min-height:34px;height:34px;padding:0 8px;margin:0 4px;font-size:16px;vertical-align:middle}.rt-foot{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:4;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px calc(-1 * var(--gutter)) 0;padding:10px var(--gutter);background:var(--paper);border-top:1px solid var(--line)}.rt-foot .btn{white-space:nowrap;flex:none}.rt-foot .muted{min-width:0}.rt-raw{display:flex;flex-direction:column;gap:2px}.rt-raw b{font-size:24px}.rt-check{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.rt-check li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:6px 8px;border-radius:10px;font-size:14.5px}.rt-check li.ok{background:var(--green-soft)}.rt-check li.bad{background:var(--red-soft)}.rt-check .rt-given{font-weight:600}.rt-check li.bad .rt-given{text-decoration:line-through;color:var(--red)}.rt-check .rt-right{color:var(--green);font-weight:650}.ex-enter{animation:ex-in .32s cubic-bezier(.2,.8,.2,1) both}@keyframes ex-in{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:none}}.match-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:10px;margin-top:6px}.mt{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;padding:10px 12px;border-radius:16px;border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--line);color:var(--ink);font:inherit;font-size:15.5px;font-weight:600;line-height:1.3;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .3s ease,color .16s ease}.mt-text{overflow-wrap:anywhere}.match-board.wide .mt{font-size:15px}.mt:active:not([disabled]){transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.mt.sel{border-color:var(--c);background:var(--c-soft);color:var(--c-deep);box-shadow:0 3px 0 var(--c);transform:translateY(-2px)}.mt.good{border-color:var(--green);background:var(--green-soft);color:var(--green);box-shadow:0 3px 0 var(--green);animation:mt-good .42s ease;opacity:1}.mt.bad{border-color:var(--red);background:var(--red-soft);color:var(--red);box-shadow:0 3px 0 var(--red);animation:shake .38s ease}.mt.done{opacity:.38;background:var(--track);border-color:transparent;box-shadow:none;color:var(--muted)}.mt[disabled]{cursor:default}.mt-ok{position:absolute;top:5px;right:6px;color:var(--green);display:inline-flex}@keyframes mt-good{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}.ans.opt{display:flex;align-items:center;gap:12px;padding:14px}.opt-no{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;border:2px solid var(--line-strong);color:var(--muted);font-size:13px;font-weight:750;transition:border-color .15s,color .15s,background .15s}.opt-text{flex:1;min-width:0}.ans.opt[aria-pressed=true] .opt-no{border-color:var(--c);color:var(--c)}.ans.opt.good .opt-no{border-color:var(--green);color:var(--green)}.ans.opt.bad .opt-no{border-color:var(--red);color:var(--red)}.ans[aria-pressed=true]:not(.good):not(.bad){transform:translateY(-1px)}.answer-area{min-height:112px;border-bottom:0;padding:4px 0 8px;background:linear-gradient(var(--line-strong),var(--line-strong)) 0 52px / 100% 2px no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) 0 104px / 100% 2px no-repeat}.answer-area .word{animation:word-in .2s cubic-bezier(.2,1.4,.4,1) both}@keyframes word-in{0%{transform:scale(.6) translateY(14px);opacity:0}to{transform:none;opacity:1}}.bank .word.used{visibility:visible;background:var(--track);border-color:transparent;box-shadow:none;color:transparent}.word{transition:transform .12s ease,background .15s ease}.word:active:not([disabled]){transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.gap-input{border:2px solid var(--line);border-bottom-width:4px;border-radius:14px;background:var(--surface);color:var(--ink);padding:12px 14px;transition:border-color .15s}.gap-input:focus{border-color:var(--c)}.verdict-ic{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface);flex:none;animation:pop .38s cubic-bezier(.2,1.6,.4,1) both}.player-foot.good,.player-foot.bad{animation:foot-up .26s cubic-bezier(.2,.9,.3,1) both}@keyframes foot-up{0%{transform:translateY(100%)}to{transform:none}}.progress{height:16px;border-radius:8px}.progress>span{border-radius:8px;box-shadow:0 0 0 0 transparent}.result .big-stars .stars>span svg{animation:pop .52s cubic-bezier(.2,1.6,.4,1) both}.result .big-stars .stars>span:nth-child(2) svg{animation-delay:.16s}.result .big-stars .stars>span:nth-child(3) svg{animation-delay:.32s}.result h1{animation:pop-in .42s .2s cubic-bezier(.2,1.2,.4,1) both}:root[data-theme=dark] .btn.big[disabled]{color:color-mix(in srgb,var(--ink) 45%,transparent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .btn.big[disabled]{color:color-mix(in srgb,var(--ink) 45%,transparent)}}.mt{overflow:visible}.burst{position:absolute;right:14px;top:12px;width:0;height:0;pointer-events:none;z-index:3}.burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--green);animation:spark .56s cubic-bezier(.2,.7,.3,1) forwards}.burst i:nth-child(3n){background:#f2b100;width:6px;height:6px}.burst i:nth-child(4n){background:var(--c)}@keyframes spark{0%{transform:rotate(var(--a)) translate(4px) scale(.6);opacity:0}20%{opacity:1;transform:rotate(var(--a)) translate(10px) scale(1)}to{transform:rotate(var(--a)) translate(var(--d)) scale(.2);opacity:0}}.mt.good:after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:3px solid var(--green);animation:ring-out .56s ease-out forwards;pointer-events:none}.mt.good{animation:mt-good .46s cubic-bezier(.2,1.6,.4,1)}@keyframes mt-good{0%{transform:scale(1)}35%{transform:scale(1.09)}to{transform:scale(1)}}.mt.done{animation:mt-fade .36s ease both}@keyframes mt-fade{0%{opacity:1;filter:saturate(1.4)}to{opacity:.38}}.mt:active:not([disabled]){transform:translateY(2px) scale(.97)}.progress>span{overflow:hidden}.pg-sheen{position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.65) 50%,transparent 80%);transform:translate(-100%);animation:sheen .75s ease-out}@keyframes sheen{to{transform:translate(100%)}}.progress>span{transition:width .52s cubic-bezier(.3,1.4,.5,1)}.cheer{position:fixed;left:50%;top:38%;z-index:70;display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 26px;border-radius:24px;background:#fff3e8;color:#b44c0b;font-size:22px;font-weight:850;box-shadow:0 18px 40px #b44c0b40;pointer-events:none;animation:cheer 1.5s cubic-bezier(.2,1.4,.4,1) both}.cheer-fire{color:#f06a1d;animation:fire .6s ease-in-out infinite alternate;display:inline-flex}:root[data-theme=dark] .cheer{background:#3a2414;color:#ffbf93}@keyframes cheer{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}18%{transform:translate(-50%,-50%) scale(1.08);opacity:1}28%{transform:translate(-50%,-50%) scale(1)}80%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-62%) scale(.9);opacity:0}}@keyframes fire{0%{transform:scale(1) rotate(-4deg)}to{transform:scale(1.15) rotate(4deg)}}.ans.good{position:relative}.ans.good:after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:3px solid var(--green);animation:ring-out .62s ease-out forwards;pointer-events:none}@keyframes ring-out{0%{transform:scale(1);opacity:.8}to{transform:scale(1.08);opacity:0}}.verdict-ic svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .38s .14s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}.player-foot.good .verdict{animation:verdict-in .42s cubic-bezier(.2,1.5,.4,1) both}@keyframes verdict-in{0%{transform:translateY(8px) scale(.94);opacity:0}to{transform:none;opacity:1}}.ans:active:not([disabled]){transform:translateY(2px) scale(.985)}.result .big-stars{position:relative}.stars-glow{position:absolute;left:50%;top:50%;width:260px;height:160px;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(242,177,0,.35),transparent);animation:glow 2.4s ease-in-out infinite alternate;z-index:-1}@keyframes glow{0%{transform:translate(-50%,-50%) scale(.85);opacity:.6}to{transform:translate(-50%,-50%) scale(1.1);opacity:1}}.result .big-stars .stars>span:not(.off) svg{filter:drop-shadow(0 4px 0 rgba(180,120,0,.35))}.result .big-stars{isolation:isolate}.player{overflow-x:clip}.ans.good{animation:none}.page,.unit-page{animation:page-in .3s cubic-bezier(.2,.8,.2,1) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.list>*,.steps>*,.unode,.goal-card,.hero,.result-grid>*,.chips>*,.band-cols>*,.stack>.panel{animation:item-in .38s cubic-bezier(.2,.8,.2,1) backwards}@keyframes item-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.list>:nth-child(2),.steps>:nth-child(2),.unode:nth-child(2){animation-delay:40ms}.list>:nth-child(3),.steps>:nth-child(3),.unode:nth-child(3){animation-delay:80ms}.list>:nth-child(4),.steps>:nth-child(4),.unode:nth-child(4){animation-delay:.12s}.list>:nth-child(5),.steps>:nth-child(5),.unode:nth-child(5){animation-delay:.16s}.list>:nth-child(6),.unode:nth-child(6){animation-delay:.2s}.list>:nth-child(7),.unode:nth-child(7){animation-delay:.24s}.list>:nth-child(n+8),.unode:nth-child(n+8){animation-delay:.28s}.hero{animation-delay:60ms}.course-progress .bar span,.band-progress .bar span,.status-track .bar{transform-origin:left;animation:grow .9s .12s cubic-bezier(.2,.8,.2,1) both}.goal-card .ring{animation:ring-fill 1s .15s cubic-bezier(.2,.8,.2,1) both}@keyframes ring-fill{0%{stroke-dasharray:0 200}}.goal-card svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .42s .9s ease-out forwards}.streak-chip svg{animation:fire .9s ease-in-out infinite alternate;transform-origin:50% 80%}.unode.done .dot svg path,.step-card.done .step-dot svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .42s .25s ease-out forwards}.tabbar a.active svg{animation:tab-pop .38s cubic-bezier(.2,1.6,.4,1)}@keyframes tab-pop{0%{transform:scale(.8)}60%{transform:scale(1.15) translateY(-2px)}to{transform:none}}.sheet{animation:sheet-up .3s cubic-bezier(.2,1.1,.3,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.btn,.chip,.list-row,.mini-btn,.action-tile,.unode{transition:transform .12s ease,background .15s ease,box-shadow .15s ease}.btn:active:not([disabled]),.chip:active,.mini-btn:active,.action-tile:active{transform:translateY(1px) scale(.98)}.list-row:active{transform:scale(.99)}.unode:active{transform:scale(.98)}.tag{transition:background .2s ease,color .2s ease}.slot{display:inline-flex;align-items:center;justify-content:center;text-align:center}.lesson-hero{position:relative;overflow:hidden;border-radius:24px;padding:18px;color:#fff;background:#1d3fd1;animation:item-in .38s cubic-bezier(.2,.8,.2,1) backwards}:root[data-theme=dark] .lesson-hero{background:#2b4ae0}.lh-glow{display:none}.lh-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative}.lh-k{font-size:13.5px;font-weight:600;letter-spacing:0;opacity:.85}.lh-pill{font-size:12.5px;font-weight:700;padding:5px 10px;border-radius:999px;background:#ffffff2e;white-space:nowrap}.lh-when{font-size:23px;font-weight:800;letter-spacing:-.01em;margin-top:6px;position:relative}.lh-sub{font-size:14.5px;opacity:.9;margin-top:2px;position:relative;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.lh-actions{display:flex;gap:10px;margin-top:14px;position:relative}.lh-btn{flex:1;border:0;border-radius:12px;padding:10px 0;font:inherit;font-weight:700;font-size:15px;background:#fff;color:#2b4ae0;cursor:pointer;transition:transform .12s ease}.lh-btn.ghost{background:#ffffff29;color:#fff}.lh-btn:active{transform:scale(.97)}.sp-head{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 8px}.sp-month{font-size:14px;color:var(--muted);font-weight:600}.sp-nav{display:flex;gap:4px}.sp-nav .icon-btn{width:36px;height:36px}.sp-nav .icon-btn[disabled]{opacity:.3}.sp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.sp-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 0 7px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;min-width:0;transition:transform .12s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;animation:item-in .32s cubic-bezier(.2,.8,.2,1) backwards}.sp-day:nth-child(2){animation-delay:25ms}.sp-day:nth-child(3){animation-delay:50ms}.sp-day:nth-child(4){animation-delay:75ms}.sp-day:nth-child(5){animation-delay:.1s}.sp-day:nth-child(6){animation-delay:125ms}.sp-day:nth-child(7){animation-delay:.15s}.sp-day .wd{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted)}.sp-day .dn{font-size:20px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}.sp-day .cnt{font-size:10.5px;font-weight:700;color:var(--green);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 2px}.sp-day .cnt.mine{color:var(--blue)}.sp-day.empty .dn,.sp-day.empty .cnt{color:var(--muted)}.sp-day.today:not(.on){border-color:var(--line-strong)}.sp-day.on{background:var(--blue);border-color:var(--blue);color:var(--on-blue);box-shadow:0 4px 0 var(--blue-press);transform:translateY(-2px)}.sp-day.on .wd,.sp-day.on .cnt,.sp-day.on .dn{color:var(--on-blue)}.sp-day:active{transform:scale(.95)}.sp-day-body{animation:page-in .26s cubic-bezier(.2,.8,.2,1) backwards}.sp-date{color:var(--muted);font-size:14px;margin:16px 0 10px}.sp-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sp-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1px;padding:10px 0;border-radius:14px;border:2px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;min-height:62px}.sp-slot b{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2}.sp-slot small{font-size:11.5px;font-weight:600;opacity:.85}.sp-slot.free{cursor:pointer;border-color:color-mix(in srgb,var(--green) 55%,transparent);background:var(--green-soft);color:var(--green);box-shadow:0 3px color-mix(in srgb,var(--green) 35%,transparent);transition:transform .12s ease,box-shadow .12s ease}.sp-slot.free:active{transform:translateY(2px);box-shadow:0 1px color-mix(in srgb,var(--green) 35%,transparent)}.sp-slot.mine{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink)}.sp-slot.busy b{text-decoration:line-through}.sp-slot.busy{background:var(--track);border-color:transparent}.reg-row{padding:12px 14px}.reg-row-main{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.reg-ic{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}.reg-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.reg-act{color:var(--blue);font-weight:750;font-size:15px}.lt-audio{position:sticky;top:0;z-index:5;padding:8px 0 6px;background:var(--bg)}.lt-audio[hidden]{display:none}.lt-audio .audiobar{margin:0;box-shadow:0 6px 18px -12px #00000059}.lt-part-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.lt-part-head h2{margin:0;font-size:17px;line-height:1.3}.lt-img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:#fff}.rt-n.wide{min-width:44px}.rt-pick{margin:-4px 0 8px}.rt-check .rt-note{flex-basis:100%;font-size:13px;line-height:1.4;color:var(--ink-2);padding-left:34px}.audiobar.once .ab-track{height:6px;border-radius:3px;background:var(--track);overflow:hidden;margin:6px 0 4px}.audiobar.once .ab-track span{display:block;height:100%;background:var(--blue);border-radius:inherit;transition:width .25s linear}.audiobar.once.ended .ab-play{background:var(--green)}.practice-list{margin-top:8px}.lt-part-head .muted{white-space:nowrap}.lt-img-btn{position:relative;display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.lt-zoom-hint{position:absolute;right:-6px;top:-6px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blue);color:var(--on-blue);box-shadow:0 2px 8px #00000040}.lt-zoom{position:fixed;inset:0;z-index:60;background:#0a0c14eb;display:flex;flex-direction:column}.lt-zoom-scroll{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:56px 12px 24px}.lt-zoom-img{display:block;width:max(100%,860px);max-width:none;height:auto;border-radius:8px;background:#fff}.lt-zoom-close{position:absolute;top:calc(10px + env(safe-area-inset-top));right:12px;z-index:1;width:40px;height:40px;border-radius:50%;border:0;background:#ffffff29;color:#fff;display:grid;place-items:center;cursor:pointer}.ls-audio{position:sticky;top:0;z-index:5;background:var(--bg);padding-bottom:4px}.ls-audio .audiobar{margin-bottom:8px}.ls-list{display:grid;gap:14px;padding-bottom:12px}.ls-q{padding:12px;border-radius:14px;background:var(--surface);border:1.5px solid var(--line);transition:border-color .2s,background .2s}.ls-q.good{border-color:var(--green);background:var(--green-soft)}.ls-q.good .rt-n{background:var(--green);color:#fff}.ls-q.bad{border-color:var(--red)}.ls-q.bad .rt-n{background:var(--red);color:#fff}.ls-q .rt-opts button.good{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:650}.ls-q .rt-opts button.right{border-color:var(--green);border-style:dashed;color:var(--green)}.ls-note{margin-top:8px;font-size:14px;line-height:1.4;color:var(--ink-2)}.ls-note.bad{color:var(--red)}.block-no.kind{background:var(--c-soft, var(--blue-soft));color:var(--c, var(--blue))}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.extra-group{margin-top:14px}.extra-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 8px}.extra-head span{font-weight:700;font-size:14px}.extra-head small{color:var(--muted);font-size:12.5px}.mini-btn.soft{background:var(--blue-soft);color:var(--blue-ink);border-color:transparent}.gate-bar{height:6px;border-radius:3px;background:var(--track);overflow:hidden;margin-top:8px}.gate-bar span{display:block;height:100%;background:var(--orange, #f97316);border-radius:inherit;transition:width .4s ease}.lesson-link{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 0 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);color:inherit;font-size:14px}.lesson-link>span:first-of-type{flex:1;min-width:0}.rp-tools{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;margin-bottom:6px;background:var(--surface)}.rp-tool{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:inherit;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.rp-tool.on{border-color:#e9b100;background:#fff3b0;color:#6b4e00}.rp-tool.ghost{border-color:transparent;color:var(--muted)}.rp-hint{flex:1 1 140px;min-width:0}.rp-title{font-size:18px;margin:4px 0 10px;line-height:1.3}.rp-text p{margin:0 0 12px;line-height:1.65;font-size:16px;white-space:pre-wrap}.rp .hl{background:#fff1a6;color:#2b2100;box-shadow:0 0 0 1px #fff1a6}:root[data-theme=dark] .rp .hl{background:#6b5a12;color:#fff8d6;box-shadow:0 0 0 1px #6b5a12}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .rp .hl{background:#6b5a12;color:#fff8d6;box-shadow:0 0 0 1px #6b5a12}}.rp.marking .tap-w{text-decoration:none;cursor:cell}.rp.marking .tap-w:active{background:#fff1a6}.rp-box{max-height:62vh;overflow-y:auto}.rt-split{position:sticky;top:0;z-index:4;margin-top:10px;padding:0 12px 4px;max-height:44vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg, 16px);box-shadow:0 8px 18px -14px #0006}.rt-split .rp-text p{font-size:15px}.countdown~.section .rt-split,.countdown~.section .lt-audio{top:50px}.band-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:3px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-ink);font-weight:700;font-variant-numeric:tabular-nums;font-size:14px;flex:none}.band-pill.small{min-width:32px;font-size:13px;padding:2px 7px}.mock-result{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:stretch;margin-top:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px}.mr-overall{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:104px;padding:10px 12px;border-radius:14px;background:var(--blue);color:#fff;text-align:center;gap:2px}.mr-overall small{font-size:13.5px;letter-spacing:0;opacity:.85}.mr-overall b{font-size:40px;line-height:1.05;font-weight:800}.mr-overall .muted{color:#ffffffd9;font-size:11px;max-width:120px;line-height:1.3}.mr-skills{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mr-skill{display:flex;flex-direction:column;justify-content:center;padding:8px 10px;border-radius:12px;border:1px solid var(--line);min-width:0}.mr-skill b{font-size:22px;font-weight:700}.mr-skill.wait b{opacity:.45}@media (max-width: 360px){.mock-result{grid-template-columns:1fr}}:root[data-theme=dark] .mr-overall{background:#2b47d6}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .mr-overall{background:#2b47d6}}.note.ok-note{display:flex;align-items:center;gap:8px;color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 30%,transparent)}.tl-item.missed:before{background:var(--line-strong)}.tl-item.missed .list-row{background:transparent;border-style:dashed}.tl-item.missed .title{color:var(--ink-2);font-weight:600}.note.ok-note svg{flex:none}.transcript{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--paper, #f5f7fc);border:1px solid var(--line)}.transcript .tr-head{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:4px}.transcript p{margin:0;font-size:15px;line-height:1.5;white-space:pre-wrap;user-select:text;-webkit-user-select:text}.transcript.wait{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.tr-redo{margin-left:auto;background:none;border:0;color:var(--muted);cursor:pointer;padding:2px;display:inline-flex}.tr-btn{margin-top:10px}.lv-text{max-height:48vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;margin-bottom:4px;-webkit-overflow-scrolling:touch}.lv-text .rp-tools{position:sticky;top:-12px;background:var(--surface);padding-top:4px;z-index:1}.sec-bars{display:flex;flex-direction:column;gap:10px;margin-top:12px}.sec-bar .spread span{color:var(--ink-2)}.sec-track{height:8px;border-radius:999px;background:var(--paper);margin-top:5px;overflow:hidden}.sec-track i{display:block;height:100%;border-radius:inherit;background:var(--blue)}.sec-track i.ok{background:var(--green)}.sec-track i.mid{background:var(--amber)}.sec-track i.low{background:var(--red, #d9493c)}.pts-view,.pts-row{display:flex;flex-direction:column;gap:6px;margin-top:10px}.pts-seg{display:grid;grid-template-columns:repeat(6,1fr)}.final-intro ul.final-rules{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.45}.final-lock{display:flex;gap:8px;align-items:flex-start;color:var(--amber);background:var(--amber-soft);border-radius:var(--r-md);padding:10px 12px;margin-bottom:12px;font-size:14px}.final-lock svg{flex:none;margin-top:1px}.final-result{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-top:8px}.final-result.ok{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.fr-top{display:flex;gap:16px;align-items:center}.fr-pct{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:104px;padding:10px 12px;border-radius:14px;background:var(--blue);color:#fff}.final-result.ok .fr-pct{background:var(--green)}.final-result.bad .fr-pct{background:var(--ink-2)}.fr-pct small{font-size:13.5px;letter-spacing:0;opacity:.85}.fr-pct b{font-size:36px;font-weight:800;line-height:1.1}.fr-verdict{display:flex;flex-direction:column;gap:6px;min-width:0}.fr-badge{align-self:flex-start;font-weight:700;font-size:14px;padding:4px 12px;border-radius:999px}.fr-badge.ok{background:var(--green-soft);color:var(--green)}.fr-badge.bad{background:var(--red-soft);color:var(--red)}.cert-preview{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f6f1e6;cursor:zoom-in}.cert-preview img{display:block;width:100%;aspect-ratio:1123 / 794;object-fit:cover}.unode.final .dot{background:var(--amber-soft);color:var(--amber);border:2px solid color-mix(in srgb,var(--amber) 45%,transparent)}.unode.final.passed .dot{background:var(--green);color:#fff;border-color:var(--surface)}.unode.final{margin-top:6px}.final-settings{border-top:1px solid var(--line);padding-top:14px}.list-row .title.wrap{white-space:normal;overflow:visible;text-overflow:clip}.rt-tabs.many{grid-auto-columns:minmax(92px,1fr);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:0 var(--gutter) 2px;scroll-padding:0 var(--gutter)}.rt-tabs.many::-webkit-scrollbar{display:none}.rt-tabs.many button span{white-space:nowrap}.tr-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.flash .tr-wrap{align-items:center}.tr-chip.on{border-style:solid;color:var(--blue-ink);background:var(--blue-soft);border-color:transparent}.name-confirm .nc-title{font-weight:700;font-size:17px}.name-confirm .nc-preview{margin-top:12px;text-align:center;font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:30px;line-height:1.2;padding:12px;border-radius:12px;background:#f6f1e6;color:#14213d;border:1px solid #e6dcc3}.pf-hero{padding:20px;background:var(--surface)}.pf-id{display:flex;gap:16px;align-items:center}.pf-id .photo-pick .avatar{border-radius:22px;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--blue)}.pf-id .photo-pick .cam{right:-4px;bottom:-4px}.pf-name{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}.pf-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.tag.pf-fire{background:#fdefe5;color:#c4520f;gap:3px}:root[data-theme=dark] .tag.pf-fire{background:#3a2414;color:#ff9a57}.pf-label{font-weight:600;font-size:15px}.pf-journey{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.pf-jhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;gap:8px}.pf-track{position:relative;display:flex;justify-content:space-between}.pf-track:before,.pf-track:after{content:"";position:absolute;left:16px;top:14px;height:4px;border-radius:4px}.pf-track:before{right:16px;background:var(--track)}.pf-track:after{width:calc((100% - 32px) * var(--fill, 0));background:var(--blue);transform-origin:left;animation:grow .9s cubic-bezier(.2,.7,.2,1) both}.pf-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;width:32px;font-size:12.5px;color:var(--muted);font-weight:500}.pf-node i{width:32px;height:32px;border-radius:50%;background:var(--surface);border:3px solid var(--line-strong);display:grid;place-items:center;font-style:normal;font-weight:750;font-size:11px}.pf-node.done i{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.pf-node.now i{border-color:var(--blue);color:var(--blue-ink);background:var(--blue-soft);box-shadow:0 0 0 5px color-mix(in srgb,var(--blue) 18%,transparent)}.pf-node.now span{color:var(--ink);font-weight:700}.pf-course{display:block;margin-top:18px;padding:14px;border-radius:14px;background:var(--paper);border:1px solid var(--line);color:inherit}.pf-course:active{background:var(--blue-soft)}.pf-course-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.pf-course-top b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-course-top .small{white-space:nowrap}.pf-bar{height:8px;border-radius:99px;background:var(--track);margin-top:10px;overflow:hidden}.pf-bar i{display:block;height:100%;background:var(--blue);border-radius:99px;transform-origin:left;animation:grow .9s cubic-bezier(.2,.7,.2,1) both}.pf-bar.thin{height:5px;margin-top:8px}.pf-next{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:14px;color:var(--blue-ink);font-weight:550}.pf-next span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-next svg{flex:none}.pf-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.pf-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 14px 13px;color:inherit;display:block;transition:transform .12s ease}a.pf-tile:active{transform:scale(.98)}.pf-tile .kind-ic{width:34px;height:34px}.pf-tile .v{font-size:28px;font-weight:750;letter-spacing:-.03em;margin-top:12px;line-height:1;font-variant-numeric:tabular-nums}.pf-tile .l{color:var(--ink-2);font-size:13.5px;margin-top:5px;line-height:1.25}.pf-tile .s{color:var(--muted);font-size:12.5px;margin-top:3px;display:flex;align-items:center;gap:3px}.pf-star svg{color:#f5a524}.pf-heat-wrap{padding:14px 16px 12px}.pf-months,.pf-heat{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;max-width:420px;margin:0 auto}.pf-months{font-size:11px;color:var(--muted);height:16px;margin-bottom:4px}.pf-months span{white-space:nowrap;overflow:visible}.pf-week{display:grid;grid-template-rows:repeat(7,1fr);gap:4px}.pf-heat i,.pf-legend i{display:block;aspect-ratio:1;border-radius:4px;background:var(--track)}.pf-heat i.on,.pf-legend i.on{background:var(--blue)}.pf-heat i.today{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--blue)}.pf-heat i.future{visibility:hidden}.pf-heat-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.pf-legend{display:flex;gap:4px;flex:none}.pf-legend i{width:12px}.pf-weak .btn.sm{flex:none;min-height:32px;font-size:14px;padding:0 12px;pointer-events:none}.pf-weak .title{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pf-clear{display:flex;gap:12px;align-items:center;padding:14px 16px}.pf-mock{display:block;color:inherit}.pf-mock-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.pf-band{text-align:right;flex:none}.pf-band b{display:block;font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.pf-band .up,.pf-band .down{font-size:12.5px;font-weight:700}.pf-band .up{color:var(--green)}.pf-band .down{color:var(--red)}.pf-skills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:14px}.pf-skills span{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:7px 4px;text-align:center;display:flex;flex-direction:column;gap:1px}.pf-skills em{font-style:normal;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-skills b{font-size:15px;font-variant-numeric:tabular-nums}.pf-final,.pf-feedback,.pf-cert{display:flex;align-items:center;gap:12px;padding:14px 16px;color:inherit;width:100%;text-align:left;font:inherit;cursor:pointer}.pf-final .main,.pf-feedback .main,.pf-cert .main{flex:1;min-width:0}.pf-feedback .title{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.pf-score{font-size:22px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;flex:none}.pf-score.passed{color:var(--green)}.pf-score.failed{color:var(--amber)}.pf-cert-img{width:66px;height:47px;border-radius:6px;overflow:hidden;flex:none;border:1px solid var(--line);background:#f6f1e6}.pf-cert-img img{width:100%;height:100%;object-fit:cover;display:block}.pf-final:active,.pf-feedback:active,.pf-cert:active,.pf-mock:active{background:var(--blue-soft)}.set-grp{font-size:13.5px;letter-spacing:0;color:var(--muted);font-weight:650;margin:26px 4px 8px}.page-head+.set-grp{margin-top:4px}.set-label{font-weight:600;font-size:15px;margin-bottom:8px}.set-toggle .switch{padding:0}.set-toggle .meta span,.set-toggle .title{white-space:normal}.set-note{margin:8px 4px 0}.pf-kicker{font-size:12px;color:var(--muted);font-weight:550;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-go{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue-ink);padding-left:2px}.pf-go svg{fill:currentColor}.pf-first{margin-top:12px;padding:20px}.term-hint{color:var(--muted);font-weight:500;font-style:italic;font-size:.78em;letter-spacing:0}.pl-hero{padding:20px;background:var(--surface)}.pl-hero h2{margin:12px 0 6px;font-size:20px;letter-spacing:-.02em}.pl-hero p{margin:0 0 14px}.pl-steps{display:flex;flex-direction:column;gap:8px}.pl-step{display:flex;align-items:center;gap:10px;font-weight:550;font-size:15px}.pl-step .kind-ic{width:30px;height:30px;border-radius:9px}.pl-tip .kind-ic{width:28px;height:28px;border-radius:50%}.pl-tip .meta span{white-space:normal;color:var(--ink-2);font-size:14.5px}.pl-prompt{white-space:pre-line;margin-bottom:12px;color:var(--ink-2)}.pl-done-note{display:flex;align-items:center;gap:8px;color:var(--green);font-weight:600}.pl-result{text-align:center;padding:26px 20px;background:var(--surface)}.pl-level{font-size:64px;font-weight:850;letter-spacing:-.04em;line-height:1;margin-top:8px;color:var(--blue-ink)}.pl-level-name{font-weight:650;font-size:17px;margin-top:4px}.pl-course{display:flex;gap:12px;align-items:center}.pl-card{display:flex;gap:12px;align-items:center;color:inherit;padding:14px 16px}.pl-card .main{flex:1;min-width:0}.trial-card.pl-card-big{background:var(--surface);color:var(--ink);border:1px solid var(--line);margin-bottom:12px;background-image:none}.trial-card.pl-card-big .kicker{color:var(--blue-ink);opacity:1}.trial-card.pl-card-big .sub{color:var(--muted);opacity:1}.trial-card.pl-card-big .hero-btn{background:var(--blue);color:var(--on-blue);text-decoration:none;display:inline-flex;align-items:center}.pl-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:12px}.pl-levels span{border-radius:10px;padding:7px 4px;text-align:center;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column}.pl-levels span.ok{background:var(--green-soft);border-color:transparent}.pl-levels em{font-style:normal;font-size:11px;color:var(--muted)}.pl-levels b{font-size:14px;font-variant-numeric:tabular-nums}.pl-writing{white-space:pre-wrap;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:15px}.page.no-tabs .rt-foot{bottom:env(safe-area-inset-bottom)}.learn-foot{display:flex;gap:10px}.learn-foot>.btn.secondary{flex:none;width:58px;padding:0;justify-content:center;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 3px 0 var(--line)}.learn-foot>.btn.block{flex:1;width:auto}.um-head h2{display:flex;align-items:center;gap:6px;font-size:16px}.um-clean{display:flex;align-items:center;gap:6px}.um-ex{align-items:flex-start;cursor:default}.um-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.um-prompt{font-weight:550;white-space:pre-line;margin-bottom:8px}.um-answers{display:flex;flex-direction:column;gap:5px}.um-given,.um-right{display:flex;gap:7px;align-items:flex-start;font-size:15px;line-height:1.35}.um-given svg,.um-right svg{flex:none;margin-top:3px}.um-given{color:var(--red)}.um-given span{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--red) 55%,transparent)}.um-right{color:var(--green);font-weight:600}.msg-compose textarea{width:100%;resize:vertical}.msg-compose-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}.msg-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2)}.msg-check input{width:18px;height:18px;accent-color:var(--blue)}.msg-compose .hint{margin-top:8px;font-size:13px;color:var(--muted)}.fab-row>.action-tile:nth-child(3):last-child{grid-column:1 / -1}.msg-list{margin-top:12px}.msg-row{align-items:flex-start}.msg-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:4px}.msg-meta b{color:var(--ink);font-weight:650}.msg-row.mine .msg-meta b{color:var(--blue-ink)}.msg-row.in .msg-meta b{color:var(--green)}.msg-row.in{background:color-mix(in srgb,var(--green-soft) 55%,var(--surface))}.msg-text{white-space:pre-line;font-size:14.5px;line-height:1.4;color:var(--ink-2)}.rp.notap .tap-w{text-decoration:none;cursor:text}.rp.notap .tap-w:active{background:none}.art{font-weight:inherit}.art-der{color:#2257d6}.art-die{color:#d0335f}.art-das{color:#1f8a4c}:root[data-theme=dark] .art-der{color:#86a6ff}:root[data-theme=dark] .art-die{color:#ff8db0}:root[data-theme=dark] .art-das{color:#6fd29b}.pos-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:var(--c-soft, var(--blue-soft));color:var(--c-deep, var(--blue-ink));font-size:12px;font-weight:650;letter-spacing:.01em;vertical-align:middle;white-space:nowrap}.wplayer .player-body{padding-top:14px}.w-label-top{font-size:13px;font-weight:700;color:var(--c);margin:10px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wcard{background:var(--surface);border:2px solid var(--line);box-shadow:0 5px 0 var(--line);border-radius:24px;padding:18px 20px 20px}.wcard-kicker{font-size:13.5px;font-weight:600;letter-spacing:0;color:var(--c);margin-bottom:6px}.w-head-top{display:flex;align-items:center;justify-content:space-between;min-height:28px;gap:8px}.w-say{width:44px;height:44px;border-radius:50%;border:0;background:var(--c-soft);color:var(--c);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.w-say:active{transform:scale(.94)}.w-term{font-size:34px;line-height:1.12;font-weight:800;letter-spacing:-.025em;margin-top:4px;overflow-wrap:anywhere}.w-term .term-hint{font-size:.62em;font-weight:600}.w-ipa{color:var(--muted);font-size:15px;margin-top:4px}.w-forms{margin-top:8px;font-size:15px;color:var(--ink-2)}.w-forms>span{color:var(--muted);font-size:13px;margin-right:2px}.w-forms b{font-weight:650}.w-meaning{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-strong)}.w-main{font-size:19px;font-weight:650;line-height:1.35}.w-meaning.big .w-main{font-size:22px}.w-sub{margin-top:6px;font-size:15px;color:var(--ink-2);line-height:1.45}.w-tr{margin-top:6px;font-size:16px;color:var(--ink-2)}.w-meaning .tr-chip{margin-top:8px}.w-exs{margin-top:14px;display:grid;gap:8px}.w-label{font-size:13.5px;font-weight:600;letter-spacing:0;color:var(--muted);margin-bottom:2px}.w-ex{display:flex;align-items:flex-start;gap:8px;background:var(--paper);border-radius:14px;padding:10px 10px 10px 14px;font-size:16px;line-height:1.45}.w-ex-text{flex:1}.w-ex mark{background:none;color:var(--c-deep);font-weight:700;box-shadow:inset 0 -.42em 0 var(--c-soft);padding:0 1px}.w-ex-say{flex:none;width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-top:-3px}.w-ex-say:active{background:var(--c-soft);color:var(--c)}.learn-foot>.btn.w-know{flex:0 0 34%;width:auto;padding:0 12px;justify-content:center}.wq-prompt{background:var(--surface);border:2px solid var(--line);border-radius:22px;padding:22px 18px;min-height:112px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:10px}.wq-prompt.term{flex-direction:row;gap:12px}.wq-prompt.term .w-term{margin:0;font-size:30px}.wq-meaning{font-size:21px;font-weight:650;line-height:1.35}.wq-hint{font-size:15px;color:var(--muted)}.w-sentence{font-size:19px;line-height:1.6;text-align:left;align-self:stretch}.w-blank{display:inline-block;min-width:72px;border-bottom:3px solid var(--c);color:var(--c-deep);font-weight:700;text-align:center;padding:0 6px;margin:0 2px;line-height:1.25}.wq-answer{margin-top:18px}.ans.dim{opacity:.45}.ans.long{font-size:16px;font-weight:500;line-height:1.35}.wq-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.wq-links .linkish{display:inline-flex;align-items:center;gap:4px}.wq-links .linkish:only-child{margin-left:auto}.wq-links .linkish[disabled]{opacity:.4;cursor:default}.wq-hint-letters{margin-top:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:18px;letter-spacing:.05em;color:var(--c-deep);white-space:pre-wrap;text-align:center}.tile-slots{display:flex;flex-wrap:wrap;justify-content:center;column-gap:18px;row-gap:10px;min-height:52px;padding:4px 0 8px;--box: 34px}.tile-word{display:inline-flex;gap:4px;white-space:nowrap}.tile-slot{width:var(--box);height:44px;border-bottom:3px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:750;color:var(--ink)}.tile-slot.on{border-bottom-color:var(--c);color:var(--c-deep);animation:pop-in .18s ease both}.tile-fixed{width:12px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;font-weight:750;color:var(--muted)}.tile-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.tile{width:46px;height:50px;border-radius:12px;border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 var(--line);font-size:21px;font-weight:700;color:var(--ink);cursor:pointer;transition:transform .1s ease,opacity .15s ease}.tile:active:not([disabled]){transform:translateY(2px);box-shadow:0 1px 0 var(--line)}.tile[disabled]{opacity:.25;box-shadow:none;cursor:default}.w-reveal{margin:4px 0 12px;font-size:16px;line-height:1.4}.w-reveal-term b{font-weight:750}.w-reveal-ex .w-ex{background:#ffffff8c;margin-top:8px;font-size:15px}:root[data-theme=dark] .w-reveal-ex .w-ex{background:#0000002e}.w-reveal-note{margin-top:6px;font-size:14px;color:var(--ink-2)}.w-given{font-size:15px;color:var(--red);margin-bottom:2px}.w-result{display:flex;flex-direction:column;align-items:center;min-height:calc(100dvh - 20px);padding:6vh 0 calc(18px + env(safe-area-inset-bottom))}.w-result .btn{width:100%}.w-result-ic{display:flex;justify-content:center;color:var(--ink-2);animation:pop-in .42s cubic-bezier(.2,1.4,.4,1) both}.result-doodle{display:flex;justify-content:center;color:var(--ink-2)}.w-result-grid{display:flex;justify-content:center;gap:10px;margin:18px 0 8px;width:100%}.w-result-grid>div{flex:1;max-width:140px;background:var(--c-soft);border-radius:18px;padding:12px 8px;display:flex;flex-direction:column;gap:2px;animation:pop-in .42s cubic-bezier(.2,1.4,.4,1) both}.w-result-grid b{font-size:24px;font-weight:800;color:var(--c-deep)}.w-result-grid span{font-size:13px;color:var(--ink-2)}.w-missed{width:100%;text-align:left;margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px}.w-missed-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:15px}.w-missed-row:first-of-type{border-top:0}.w-missed-row span{color:var(--ink-2);text-align:right}.dict-next{width:100%;display:flex;align-items:center;gap:14px;text-align:left;border:0;cursor:pointer;border-radius:22px;padding:16px 16px 16px 18px;background:var(--c);color:#fff;box-shadow:0 5px 0 var(--c-deep)}.dict-next:active{transform:translateY(3px);box-shadow:0 2px 0 var(--c-deep)}.dict-next-n{font-size:34px;font-weight:800;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.dict-next-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.dict-next-text b{font-size:18px}.dict-next-text span{font-size:14px;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dict-next-go{width:44px;height:44px;border-radius:50%;background:#ffffff38;display:inline-flex;align-items:center;justify-content:center;flex:none}.dict-next.calm{cursor:default;background:var(--green-soft);color:var(--green);box-shadow:none;font-weight:600;padding:14px 16px}:root[data-theme=dark] .dict-next:not(.calm){color:#0f1420}.dict-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.dict-stats>div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 12px;display:flex;flex-direction:column}.dict-stats b{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.dict-stats span{font-size:13px;color:var(--muted)}.dict-stats .ok b{color:var(--green)}.dict-search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;padding:0 6px 0 12px;color:var(--muted)}.dict-search input{flex:1;border:0;outline:none;background:transparent;font:inherit;font-size:16px;color:var(--ink);height:46px;min-width:0}.dict-search .icon-btn{width:34px;height:34px}.dict-tabs{margin:14px 0 10px;flex-wrap:nowrap}.dict-tabs .chip{display:inline-flex;align-items:center;gap:6px}.dict-tabs .chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip-n{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--red);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.dict-units{display:grid;gap:10px}.dict-unit{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.dict-unit-head{width:100%;display:flex;align-items:center;gap:10px;padding:14px 14px 14px 16px;background:none;border:0;text-align:left;cursor:pointer;color:inherit}.dict-unit-head .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.dict-unit-head .title{font-weight:700;font-size:16px}.dict-unit-head .meta{font-size:13px;color:var(--muted)}.dict-unit-head .chev{color:var(--muted);transition:transform .16s ease}.dict-unit.open .dict-unit-head .chev{transform:rotate(90deg)}.dict-bar{display:flex;height:6px;border-radius:999px;background:var(--track);overflow:hidden}.dict-bar i{display:block;height:100%;background:var(--green)}.dict-bar i.met{background:var(--c);opacity:.55}.dict-unit-body{padding:0 12px 12px}.dict-unit-body .two .btn{gap:6px}.dict-unit-body .two .btn:only-child{grid-column:1 / -1}.dict-unit-body .dict-list{border-radius:14px}.dict-row{width:100%;background:var(--surface);border-left:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.dict-row .title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:650}.dict-row .title .pos-chip{height:19px;font-size:11px;padding:0 7px}.dict-row .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.dict-row .main{min-width:0;display:flex;flex-direction:column;gap:2px}.dict-row-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.w-strength{display:inline-flex;gap:3px}.w-strength i{width:7px;height:14px;border-radius:3px;background:var(--track)}.w-strength i.on{background:var(--c, var(--blue))}.w-strength.s5 i.on{background:var(--green)}.w-new-tag{font-size:12px;font-weight:700;color:var(--c-deep, var(--blue-ink));background:var(--c-soft, var(--blue-soft));border-radius:999px;padding:2px 8px}.w-lapses{font-size:12px;color:var(--red);font-weight:600}.w-sheet .w-meaning{margin-top:14px}.w-sheet .w-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;font-size:14px;color:var(--ink-2)}.w-sheet .w-term{font-size:30px}.step-card.open .step-dot{background:var(--c-soft, var(--blue-soft));color:var(--c, var(--blue));border:0}.block-item.locked{opacity:.55}.block-item.locked .mini-btn{display:inline-flex;align-items:center;gap:4px}.gate-sheet h2{margin:6px 0}.gate-sheet .gate-bar{margin:14px 0 6px}.dict-page .section .btn:not(.secondary):not(.ghost),.dict-unit-body .btn:not(.secondary):not(.ghost){background:var(--c);color:#fff}.dict-page .section .btn.secondary,.dict-unit-body .btn.secondary{background:var(--c-soft);color:var(--c-deep)}:root[data-theme=dark] .dict-page .section .btn:not(.secondary):not(.ghost),:root[data-theme=dark] .dict-unit-body .btn:not(.secondary):not(.ghost){color:#0f1420}:root[data-theme=dark] .learn-foot>.btn.secondary{color:var(--ink)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .learn-foot>.btn.secondary{color:var(--ink)}}.sd-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:18px calc(-1 * var(--gutter)) 4px;padding:8px var(--gutter);background:var(--paper);border-bottom:1px solid var(--line)}.sd-tabs::-webkit-scrollbar{display:none}.sd-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:15px;font-weight:600;padding:8px 12px;border-radius:999px;cursor:pointer}.sd-tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}.sd-dot{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.sd-summary{margin-top:12px}.sd-summary .list-row{width:100%;text-align:left;background:var(--surface);border-left:0;border-right:0;border-bottom:0;font:inherit;color:inherit;cursor:pointer}.sd-summary .list-row:first-child{border-top:0}.sd-kpis{display:flex;gap:10px;color:var(--ink-2);font-size:13px;font-weight:600;flex:none}.sd-kpis span{display:inline-flex;align-items:center;gap:3px}.goal-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;text-decoration:none}.goal-chip.done{color:var(--green)}.goal-chip .ring{transition:stroke-dasharray .7s cubic-bezier(.2,.8,.2,1)}.todo-row.quiet .title{font-weight:600;font-size:15px}.news-list .kind-ic{width:34px;height:34px}.fab-row.sd-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sd-actions .action-tile{flex-direction:column;align-items:flex-start;gap:8px;padding:12px;font-size:14px;line-height:1.25;min-height:0}.fab-row.sd-actions>.action-tile:nth-child(3):last-child{grid-column:auto}.sd-tabs button{font-size:14px;padding:7px 11px}.hero{--hero: #1d3fd1;background:var(--hero)}.hero[data-kind=words]{--hero: #d4571a;--hero-shadow: rgba(212,87,26,.7)}.hero[data-kind=practice]{--hero: #1d3fd1}.hero[data-kind=homework]{--hero: #6a3fd4;--hero-shadow: rgba(106,63,212,.7)}.hero[data-kind=revise]{--hero: #c32f6a;--hero-shadow: rgba(195,47,106,.7)}.hero[data-kind=checkpoint]{--hero: #0b7d71;--hero-shadow: rgba(11,125,113,.7)}.hero[data-kind=final]{--hero: #b0620a;--hero-shadow: rgba(176,98,10,.7)}:root[data-theme=dark] .hero{background:var(--hero)}:root[data-theme=dark] .hero:not([data-kind]),:root[data-theme=dark] .hero[data-kind=practice]{--hero: #2b4ae0}.hero .hero-btn{color:var(--hero)}.hero.calm{background:var(--surface)}.mini-btn.teal{background:#e3f6f3;color:#0a6e63}.mini-btn.violet{background:#f1ecfd;color:#5a34b8}.mini-btn.pink{background:#fceaf1;color:#a82c5b}:root[data-theme=dark] .mini-btn.teal{background:#123330;color:#7fe3d6}:root[data-theme=dark] .mini-btn.violet{background:#271e45;color:#c8b6ff}:root[data-theme=dark] .mini-btn.pink{background:#3a1828;color:#ffb0cc}.mt-tr{display:block;margin-top:3px;font-size:12.5px;font-weight:500;color:var(--muted)}.mt.good .mt-tr,.mt.sel .mt-tr{color:inherit;opacity:.8}.dict-modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.dict-mode{display:flex;align-items:center;gap:10px;text-align:left;padding:11px 12px;border-radius:16px;cursor:pointer;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);box-shadow:0 2px 0 var(--line);min-height:62px}.dict-mode:active:not([disabled]){transform:translateY(2px);box-shadow:none}.dict-mode[disabled]{opacity:.5;cursor:default}.dict-mode-ic{flex:none;width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--c-soft);color:var(--c)}.dict-mode-t{display:flex;flex-direction:column;min-width:0;line-height:1.2}.dict-mode-t b{font-size:15px;font-weight:700}.dict-mode-t small{font-size:12px;color:var(--muted);margin-top:2px}.dict-learn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;margin-bottom:8px;border:0;border-radius:14px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;background:var(--c);color:#fff}.dict-learn:active{opacity:.9}:root[data-theme=dark] .dict-learn{color:#0f1420}.fc-primary{background:var(--c)!important;color:#fff!important;box-shadow:0 3px 0 var(--c-deep)}:root[data-theme=dark] .fc-primary{color:#0f1420!important}.btn .icon,.btn svg{flex:none}.learn-foot .btn{gap:6px}.fc-count{flex:none;font-size:13px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;min-width:38px;text-align:right}.fc{-webkit-perspective:1400px;perspective:1400px;cursor:pointer}.fc.flipped{cursor:default}.fc-inner{display:grid;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:transform .46s cubic-bezier(.2,.8,.2,1)}.fc.flipped .fc-inner{transform:rotateY(180deg)}.fc-face{grid-area:1 / 1;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column}.fc-back{transform:rotateY(180deg)}.fc.flipped .fc-front,.fc:not(.flipped) .fc-back{pointer-events:none}.fc-front{min-height:340px}.fc-word{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-size:40px;font-weight:800;letter-spacing:-.025em;line-height:1.1;padding:24px 0 6px;overflow-wrap:anywhere}.fc-word .term-hint{font-size:.55em;font-weight:600}.fc-center{text-align:center}.fc-tap{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:12px;border-radius:14px;background:var(--c-soft);color:var(--c-deep);font-size:14px;font-weight:600}.fc:not(.flipped):active .fc-inner{transform:scale(.985)}@media (prefers-reduced-motion: reduce){.fc-inner{transition:none}}.teacher-strip{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;margin-bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;color:inherit}.teacher-strip .main{flex:1;min-width:0;display:flex;flex-direction:column}.teacher-strip .who{font-weight:600}.teacher-strip .what{color:var(--muted);font-size:14px}.teacher-note{position:relative;margin:6px 4px 18px;padding:16px 18px 14px;background:#fffaf0;border:1px solid #efe4cc;border-radius:4px 4px 14px;transform:rotate(-.6deg);box-shadow:0 1px #efe4cc,0 10px 18px -16px #3c280073}.teacher-note .tape{position:absolute;top:-9px;left:50%;width:74px;height:18px;margin-left:-37px;background:#d6c9aa8c;border-left:1px dashed rgba(150,130,90,.35);border-right:1px dashed rgba(150,130,90,.35);transform:rotate(2deg)}.teacher-note .tn-head{display:flex;align-items:center;gap:10px}.teacher-note .who{font-weight:650}.teacher-note .when{color:var(--muted);font-size:13.5px;margin-left:auto;text-align:right}.teacher-note .tn-text{margin:10px 0 0;font-family:var(--hand);font-size:23px;line-height:1.22;color:#1f3a9e;white-space:pre-line;overflow-wrap:anywhere}.teacher-note .tn-lesson{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:14px;font-weight:600;color:var(--ink-2)}:root[data-theme=dark] .teacher-note{background:#26231b;border-color:#3a3426;box-shadow:none}:root[data-theme=dark] .teacher-note .tape{background:#786e5573}:root[data-theme=dark] .teacher-note .tn-text{color:#b9c8ff}.doodle{display:block;flex:none}.hero{--doodle-acc: rgba(255, 255, 255, .5)}.hero-doodle{position:absolute;right:-14px;top:-6px;color:#ffffff4d;pointer-events:none;transform:rotate(-6deg)}.hero>:not(.hero-doodle){position:relative}.hero-title{padding-right:76px}.hero-meta{padding-right:40px}.hero.calm{align-items:flex-start}.hero.calm .calm-doodle{color:var(--ink-2);margin:-4px 0 2px -6px}.dict-summary{display:flex;flex-direction:column;gap:6px;margin:14px 2px 16px;color:var(--muted);font-size:14px}.dict-summary .dict-bar{height:6px}.dict-next{box-shadow:none!important}.dict-next:active{transform:none;opacity:.92}.dict-next-go{width:auto;height:38px;padding:0 16px;border-radius:12px;background:#fff;color:var(--c-deep);font-weight:700;font-size:15px}:root[data-theme=dark] .dict-next-go{background:#ffffffeb;color:#6b2a06}.pf-ledger{margin-top:12px}.pf-ledger .pf-n{min-width:40px;font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}.pf-ledger .main{display:flex;flex-direction:column}.pf-ledger .title{white-space:normal}.pf-hero{background:var(--surface)!important}.t-actions{display:flex;gap:10px}.t-actions>.btn{flex:1;min-width:0}.t-actions>.btn.icon-only{flex:none;width:48px;padding:0}.attn-row .attn-n{min-width:34px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--blue)}.attn-row .attn-n.late{color:var(--red)}.note-preview{display:block;width:100%;text-align:left;border:1px solid #efe4cc;background:#fffaf0;border-radius:4px 4px 14px;padding:12px 16px 14px;cursor:pointer;color:inherit}.note-preview .np-head{display:flex;justify-content:space-between;gap:10px;font-weight:600;font-size:15px}.note-preview .np-head .muted{font-weight:400;font-size:13.5px}.note-preview .np-text{display:block;margin-top:6px;font-family:var(--hand);font-size:21px;line-height:1.2;color:#1f3a9e;white-space:pre-line;overflow-wrap:anywhere}:root[data-theme=dark] .note-preview{background:#26231b;border-color:#3a3426}:root[data-theme=dark] .note-preview .np-text{color:#b9c8ff}.note-empty{border-radius:var(--r-lg)}.note-empty .main{display:flex;flex-direction:column}.note-input{min-height:120px;font-family:var(--hand);font-size:21px;line-height:1.25}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.step-list .step-item{background:none;border-radius:0;padding:11px 2px;border-top:1px solid var(--line)}.step-list .step-item:first-child{border-top:0}.t-actions>.btn{white-space:nowrap;padding:0 12px;gap:8px}.signature{display:flex;align-items:center;gap:8px;margin-top:12px}.signature .sig-name{font-family:var(--hand);font-size:22px;line-height:1;color:#1f3a9e}:root[data-theme=dark] .signature .sig-name{color:#b9c8ff}.signature .sig-when{color:var(--muted);font-size:13px;margin-left:2px}.ex-q{line-height:1.45}.slot{display:inline-block;min-width:64px;padding:0 8px;margin:0 2px;border-radius:8px;text-align:center;border-bottom:2.5px solid var(--line-strong);line-height:1.3;vertical-align:baseline}.slot.empty{background:var(--track);border-bottom-color:var(--c, var(--blue))}.slot.pick{background:color-mix(in srgb,var(--c, var(--blue)) 12%,transparent);border-bottom-color:var(--c, var(--blue));color:var(--c-deep, var(--blue-ink))}.slot.good{background:var(--green-soft);border-bottom-color:var(--green);color:var(--green)}.gap-line .slot{font-weight:650}@media (hover: none){.opt-no{display:none}}.need-line{margin:-14px 0 14px;font-size:13.5px;color:var(--muted)}.answer-area .word.good{border-color:var(--green);color:var(--green)}.answer-area .word.bad{border-color:var(--red);color:var(--red);background:var(--red-soft)}.rule-chip{color:var(--amber)}.rule-box{display:block;width:100%;text-align:left;border:0;cursor:pointer;margin:2px 0 12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink);font:inherit}.rule-box .rule-text{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.rule-box.short .rule-text{-webkit-line-clamp:2}.rule-k{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:650;color:var(--amber);margin-bottom:4px}.rule-text{font-size:15px;line-height:1.45}.rule-text p{margin:0 0 4px}.rule-text b{font-weight:650}.rule-sheet h2{margin:2px 0 10px}.rule-sheet .rule-text{font-size:16.5px;line-height:1.5}.rule-sheet .rule-text p{margin-bottom:8px}.my-mistakes{width:100%;text-align:left;margin-top:18px}.my-mistakes .mm-row{padding:10px 0;border-top:1px solid var(--line)}.my-mistakes .mm-right{font-weight:600}.my-mistakes .mm-given{color:var(--red);font-size:14px;margin-top:2px}.my-mistakes .mm-why{color:var(--muted);font-size:14px;margin-top:2px}.block-label{color:var(--muted);font-weight:600;font-size:14px}.need-line.over{color:var(--red)}
