@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/77d9a04c69f7b11b-s.p.1uklb5el4zgvl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d81b50f8e1aba043-s.05i4gb4p0piv4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/dd018b41519c2d93-s.p.2g-0we2o5_ngd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b4fb5dfe9580f890-s.p.1zvg0ggiaivzo.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1f6c95fdd7b08cc8-s.0jaqhc1tb-5xm.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7f1976624c2b6255-s.p.1hvvd1t-trplq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ac706d910f2bd04-s.p.25pbmqxk8u2s7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3c61b7007b1b2764-s.0n_ln9vqskgts.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/25d341d5876d8ede-s.p.2wu4yy186g04j.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6bf0d8dd0c866b9f-s.p.10uaeld2xxvpt.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/341181aba0db3eca-s.2bbpeapf-lbjw.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/83940f62350fcaa7-s.p.13y-iz2lazqtb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/7d827713c9830e8a-s.p.1ubek13yfcpkr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/8ff72baa89522a13-s.0t1_atrj_pkiu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/851ce0e34689f040-s.p.0unco9n87mni8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.WEiw9a_className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.WEiw9a_variable{--font-ui:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/414b392d21b53e19-s.22p_0ylkoncz5.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/75aafe82ced0d5b3-s.p.0boakaoig61zc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/48a122e95c1f7bd7-s.30caf5l8lnaou.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8965491f5dc76b7a-s.p.28qcf_2c5gqpd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e33ebfb09f8e5e26-s.42c5w67lj_gb-.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8dfd5744c99775a1-s.p.2fanwxz0cveg0.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7e31195e7d9139ba-s.0sezovpwhbsg3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b7ee15237e33b88f-s.p.38exmclhe5n0o.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mali Fallback;src:local(Arial);ascent-override:93.81%;descent-override:22.33%;line-gap-override:0.0%;size-adjust:111.93%}.rS58LW_className{font-family:Mali,Mali Fallback;font-style:normal}.rS58LW_variable{--font-hand:"Mali", "Mali Fallback"}
:root{--bg:#f1f4f9;--surface:#fff;--soft:#f5f7fb;--ink:#101a2c;--muted:#64738b;--line:#dde4ef;--brand:#2f62ff;--brand-soft:#e5ecff;--t1:#ff6a3d;--t2:#0fb3d6;--good:#14a874;--good-soft:#dcf5ea;--warn:#e59a0a;--bad:#e1464d;--bad-soft:#fde4e5;--paper:#fffdf6;--rule:#d8e3f3;--margin:#f2a3a6;--cover:#23345e;--shadow:0 1px 2px #101a2c0d, 0 18px 40px -18px #101a2c38;--ease:cubic-bezier(.2, .8, .2, 1);--font-hand-stack:var(--font-hand), var(--font-ui), sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b1120;--surface:#131c31;--soft:#18223b;--ink:#edf1fa;--muted:#96a4bd;--line:#26324e;--brand:#7092ff;--brand-soft:#1c2950;--t1:#ff8a63;--t2:#3fd0ef;--good:#36c990;--good-soft:#12342a;--warn:#f3b33c;--bad:#ff6b72;--bad-soft:#3d1b1e;--paper:#1b2235;--rule:#2a3550;--margin:#6e3a43;--cover:#0e1830;--shadow:0 1px 2px #0006, 0 20px 44px -18px #000000bf;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{min-height:100dvh;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow-x:hidden}button{font:inherit;color:inherit}a{color:var(--brand)}:focus-visible{outline:3px solid var(--brand);outline-offset:3px;border-radius:10px}.ipa{font-family:"Noto Sans", var(--font-ui), sans-serif;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--bad)}.page{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;padding:24px 16px 40px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:8px;font-size:19px;font-weight:800;display:inline-flex}.brand b{color:var(--brand)}.hero{text-align:center;flex-direction:column;flex:1;justify-content:center;gap:16px;display:flex}.hero h1{letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(32px,8vw,48px);line-height:1.05}.hero p{color:var(--muted);text-wrap:pretty;margin:0;font-size:17px}.cta{background:var(--brand);color:#fff;cursor:pointer;box-shadow:0 12px 34px -12px var(--brand);transition:transform .15s var(--ease);border:0;border-radius:999px;align-self:center;padding:18px 30px;font-size:19px;font-weight:800}.cta:active{transform:scale(.97)}.cta[disabled]{opacity:.6;cursor:default}.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:10px 18px}.card{background:var(--surface);text-align:left;box-shadow:var(--shadow);border-radius:22px;padding:20px}.card h2{margin:0 0 8px;font-size:20px}.meter{background:var(--soft);border-radius:99px;height:10px;margin:12px 0;overflow:hidden}.meter>i{background:linear-gradient(90deg, var(--brand), var(--good));height:100%;transition:width 80ms;display:block}.progress{top:env(safe-area-inset-top,0px);z-index:5;height:3px;position:fixed;left:0;right:0}.progress i{background:linear-gradient(90deg, var(--brand), var(--t2));width:0;height:100%;transition:width .8s var(--ease);border-radius:0 3px 3px 0;display:block}.room{max-width:760px;min-height:100dvh;padding:48px max(16px, env(safe-area-inset-right,0px)) 28px calc(max(16px, env(safe-area-inset-left,0px)) + 56px);flex-direction:column;justify-content:center;gap:22px;margin:0 auto;display:flex}.coach{align-items:flex-start;gap:14px;min-height:86px;display:flex}.av{flex:none;width:52px;height:52px;position:relative}.av svg{border-radius:50%;width:100%;height:100%;display:block}.av:after{content:"";border:2.5px solid var(--accent,var(--t1));opacity:0;border-radius:50%;position:absolute;inset:-5px}.talking .av:after{animation:ring 1.3s var(--ease) infinite}@keyframes ring{0%{opacity:.9;transform:scale(.94)}to{opacity:0;transform:scale(1.22)}}.said{min-width:0}.said .who{letter-spacing:.06em;text-transform:uppercase;color:var(--accent,var(--t1));font-size:12px;font-weight:700}.said .text{letter-spacing:-.01em;text-wrap:pretty;font-size:clamp(19px,2.8vw,24px);font-weight:600;line-height:1.35}.said .text .en{color:var(--brand)}.caret{background:var(--accent,var(--t1));vertical-align:-2px;width:2px;height:.95em;margin-left:2px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.status{color:var(--muted);text-align:center;min-height:21px;font-size:14px}.stage{min-height:360px;position:relative}.scene{background:var(--surface);box-shadow:var(--shadow);transition:opacity .5s var(--ease), transform .6s var(--ease), filter .5s var(--ease);border-radius:26px;flex-direction:column;gap:16px;padding:clamp(18px,3.4vw,32px);display:flex;position:absolute;inset:0;overflow:auto}.scene.enter{opacity:0;filter:blur(6px);transform:translateY(22px)scale(.98)}.scene.leave{opacity:0;filter:blur(6px);pointer-events:none;transform:translateY(-16px)scale(.98)}.scene.quiet{box-shadow:none;background:0 0}.label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.wave{flex:1;place-items:center;display:grid}.wave .bars{align-items:center;gap:7px;height:140px;display:flex}.wave .bars i{background:linear-gradient(var(--brand), var(--t2));opacity:.35;border-radius:10px;width:10px;height:16px;transition:opacity .4s}.wave.live .bars i{animation:eq 1.2s var(--ease) infinite;opacity:.9}.wave .bars i:nth-child(2n){animation-delay:-.35s}.wave .bars i:nth-child(3n){animation-delay:-.7s}.wave .bars i:nth-child(5n){animation-delay:-.9s}@keyframes eq{0%,to{height:16px}50%{height:128px}}.word{text-align:center;place-items:center;gap:8px;margin:auto 0;display:grid}.word .w{letter-spacing:-.03em;font-size:clamp(34px,6vw,52px);font-weight:800}.word .vi{font-size:18px}.word .ex{color:var(--muted)}.dots{justify-content:center;gap:6px;display:flex}.dots i{background:var(--line);border-radius:50%;width:7px;height:7px;transition:all .3s}.dots i.on{background:var(--brand);border-radius:4px;width:20px}.pill{border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}.pill.good{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.advert{gap:10px;max-width:60ch;margin:0 auto;font-size:16.5px;line-height:1.65;display:grid}.advert h3{letter-spacing:-.02em;margin:0;font-size:24px}.advert p{margin:0}.gloss{background:linear-gradient(transparent 64%, color-mix(in srgb, var(--warn) 35%, transparent) 0);cursor:help;font:inherit;border:0;padding:0;position:relative}.gloss[data-open="1"]:after,.gloss:hover:after{content:attr(data-vi);background:var(--ink);color:var(--surface);white-space:nowrap;z-index:2;border-radius:8px;padding:4px 8px;font-size:12px;position:absolute;bottom:125%;left:0}.q{letter-spacing:-.01em;text-align:center;text-wrap:balance;margin-top:auto;font-size:clamp(20px,3vw,26px);font-weight:700}.opts{gap:10px;width:100%;max-width:460px;margin:0 auto auto;display:grid}.opt{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;transition:transform .2s var(--ease), border-color .25s, background .25s;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;font-size:17px;display:flex}.opt:hover:not([disabled]){border-color:var(--brand);transform:translateY(-2px)}.opt .k{background:var(--soft);border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.opt.right{border-color:var(--good);background:var(--good-soft)}.opt.right .k{background:var(--good);color:#fff}.opt.wrong{border-color:var(--bad);background:var(--bad-soft);animation:.4s shake}.hint{text-align:center;color:var(--muted);font-size:13px}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.dialog{gap:12px;max-width:60ch;margin:auto;font-size:16.5px;display:grid}.dl{grid-template-columns:64px 1fr;align-items:baseline;gap:10px;display:grid}.dl b{color:var(--muted);font-size:13px;font-weight:600}.blank{border:0;border-bottom:2px dashed var(--brand);text-align:center;min-width:96px;color:var(--brand);cursor:pointer;background:0 0;padding:0 4px;font-weight:700;transition:all .3s;display:inline-block}.blank.filled{border-bottom-style:solid}.blank.ok{color:var(--good);border-color:var(--good)}.blank.no{color:var(--bad);border-color:var(--bad);text-decoration:line-through}.blank .fix{color:var(--good);margin-left:6px;text-decoration:none}.bank{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chipbtn{border:1.5px solid var(--line);background:var(--soft);cursor:pointer;transition:transform .2s var(--ease), opacity .3s;border-radius:999px;padding:7px 16px;font-weight:600}.chipbtn:hover{border-color:var(--brand);transform:translateY(-2px)}.chipbtn.used{opacity:.25;pointer-events:none}.btn{background:var(--ink);color:var(--surface);cursor:pointer;transition:transform .2s var(--ease);border:0;border-radius:999px;place-self:center;padding:10px 20px;font-weight:700}.btn:hover{transform:translateY(-1px)}.btn[disabled]{opacity:.4;cursor:default}.drill{text-align:center;justify-items:center;gap:14px;margin:auto 0;display:grid}.target{letter-spacing:-.025em;flex-wrap:wrap;justify-content:center;gap:2px 12px;font-size:clamp(26px,5vw,42px);font-weight:800;line-height:1.25;display:flex}.tw{padding-bottom:18px;transition:color .4s;position:relative}.tw .s{opacity:0;transition:all .35s var(--ease);font-size:11px;font-weight:700;position:absolute;bottom:0;left:0;right:0;transform:translateY(4px)}.tw.scored .s{opacity:1;transform:none}.tw.ok{color:var(--good)}.tw.miss{color:var(--bad);-webkit-text-decoration:underline wavy color-mix(in srgb, var(--bad) 60%, transparent);text-decoration:underline wavy color-mix(in srgb, var(--bad) 60%, transparent);text-underline-offset:7px}.ring-score{font-variant-numeric:tabular-nums;background:conic-gradient(var(--sc,var(--good)) calc(var(--p,0) * 1%), var(--soft) 0);border-radius:50%;place-items:center;width:72px;height:72px;font-weight:800;transition:background .6s;display:grid;position:relative}.ring-score:before{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:7px}.ring-score span{position:relative}.prompt-vi{text-wrap:balance;font-size:clamp(20px,3vw,26px);font-weight:700}.call{text-align:center;justify-items:center;gap:14px;margin:auto 0;display:grid}.callee{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.live-dot{background:var(--good);border-radius:50%;width:9px;height:9px;animation:1.6s infinite live}@keyframes live{0%{box-shadow:0 0 0 0 var(--good)}70%{box-shadow:0 0 0 10px #0000}}.timer{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.goals{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.goals li{background:var(--soft);border:1px solid var(--line);color:var(--muted);transition:all .4s var(--ease);border-radius:999px;padding:6px 12px;font-size:13.5px}.goals li.met{background:var(--good-soft);color:var(--good);border-color:#0000}.task{color:var(--muted);font-size:14.5px}.checklist{flex-wrap:wrap;gap:6px;display:flex}.checklist span{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12.5px}.scene textarea{resize:none;border:1.5px solid var(--line);background:var(--soft);width:100%;min-height:160px;color:var(--ink);font:inherit;border-radius:18px;flex:1;padding:16px;font-size:16.5px;line-height:1.6;transition:border-color .25s,background .25s}.scene textarea:focus{border-color:var(--brand);background:var(--surface);outline:none}.wbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.count.ok{color:var(--good)}.marked{white-space:pre-wrap;font-size:16.5px;line-height:1.95}.marked .fix{background:var(--bad-soft);text-decoration:line-through;-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad);border-radius:4px;padding:0 2px}.marked .ins{background:var(--good-soft);color:var(--good);border-radius:4px;padding:0 3px;font-weight:700}.sum{text-align:center;gap:18px;margin:auto 0;display:grid}.sum .big{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(44px,8vw,64px);font-weight:800}.dock{justify-items:center;gap:8px;display:grid}.mic{cursor:pointer;color:#fff;background:var(--brand);width:72px;height:72px;box-shadow:0 12px 30px -10px var(--brand);transition:background .3s, color .3s, box-shadow .3s, transform .2s var(--ease);border:0;border-radius:50%;place-items:center;display:grid;position:relative}.mic:hover{transform:scale(1.05)}.mic:before,.mic:after{content:"";border:2px solid var(--brand);opacity:0;border-radius:50%;position:absolute;inset:0}.mic.listening:before{animation:halo 2s var(--ease) infinite}.mic.listening:after{animation:halo 2s var(--ease) .7s infinite}@keyframes halo{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.75)}}.mic.hearing{background:var(--good);box-shadow:0 12px 30px -10px var(--good)}.mic.coach{background:var(--surface);color:var(--muted);box-shadow:var(--shadow)}.mic.paused{background:var(--soft);color:var(--muted);box-shadow:inset 0 0 0 2px var(--line)}.mini-eq{align-items:center;gap:3px;height:22px;display:flex}.mini-eq i{background:currentColor;border-radius:4px;width:4px;height:6px;animation:.9s ease-in-out infinite eq2}.mini-eq i:nth-child(2){animation-delay:-.3s}.mini-eq i:nth-child(3){animation-delay:-.6s}@keyframes eq2{50%{height:20px}}.you{color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:21px;font-size:14px;overflow:hidden}.you b{color:var(--good);font-weight:600}.spine{top:50%;left:max(10px, env(safe-area-inset-left,0px));z-index:6;gap:8px;display:grid;position:fixed;transform:translateY(-50%)}.tab{cursor:pointer;background:var(--surface);width:48px;height:48px;box-shadow:var(--shadow);color:var(--muted);transition:transform .25s var(--ease), color .25s;border:0;border-radius:14px;place-items:center;display:grid;position:relative}.tab:hover{color:var(--ink);transform:translate(3px)}.tab .dot{background:var(--t1);color:#fff;min-width:18px;height:18px;transition:transform .35s var(--ease);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px;transform:scale(0)}.tab .dot.on{transform:scale(1)}.tab .tip{white-space:nowrap;background:var(--ink);color:var(--surface);opacity:0;pointer-events:none;border-radius:8px;padding:4px 9px;font-size:12px;transition:all .2s;position:absolute;left:58px;transform:translate(-4px)}.tab:hover .tip,.tab:focus-visible .tip{opacity:1;transform:none}.scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .45s var(--ease);z-index:8;background:#080e1c61;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.book{z-index:9;top:50%;left:max(12px, env(safe-area-inset-left,0px));perspective:1800px;pointer-events:none;width:min(560px,100vw - 24px);height:min(640px,86dvh);position:fixed;transform:translateY(-50%)}.pages{background:repeating-linear-gradient(var(--paper) 0 31px, var(--rule) 31px 32px), var(--paper);transform-origin:0;opacity:0;transition:transform .75s var(--ease), opacity .3s;border-radius:6px 18px 18px 6px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden;transform:rotateY(-88deg);box-shadow:0 30px 70px -20px #00000073,inset 10px 0 18px -12px #00000059}.pages:before{content:"";background:var(--margin);opacity:.7;width:2px;position:absolute;top:0;bottom:0;left:46px}.cover{background:linear-gradient(135deg, var(--cover), color-mix(in srgb, var(--cover) 70%, var(--brand)));transform-origin:0;transition:transform .9s var(--ease) 50ms;backface-visibility:hidden;color:#fff;border-radius:6px 18px 18px 6px;place-items:center;display:grid;position:absolute;inset:0}.cover b{font-family:var(--font-hand-stack);font-size:26px}.book{visibility:hidden;transition:visibility 0s linear .9s}.book.open{pointer-events:auto;visibility:visible;transition:visibility}.book.open .pages{opacity:1;transform:rotateY(0)}.book.open .cover{transform:rotateY(-178deg)}.bm{flex-wrap:wrap;gap:6px;padding:14px 52px 0 62px;display:flex;position:relative}.bm button{cursor:pointer;background:color-mix(in srgb, var(--paper) 80%, var(--line));color:var(--muted);border:0;border-radius:10px 10px 0 0;padding:7px 12px;font-size:13px;font-weight:700;transition:transform .2s;transform:translateY(4px)}.bm button[aria-selected=true]{background:var(--surface);color:var(--ink);transform:none}.leaf{flex:1;padding:14px 22px 22px 62px;position:relative;overflow:auto}.leaf h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;line-height:32px}.close{cursor:pointer;color:var(--muted);z-index:2;background:0 0;border:0;border-radius:50%;width:36px;height:36px;font-size:22px;position:absolute;top:10px;right:12px}.close:hover{background:var(--soft)}.filters{flex-wrap:wrap;gap:6px;padding:6px 0 10px;display:flex}.fchip{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:999px;padding:3px 11px;font-size:12.5px;font-weight:600}.fchip[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.row{border-bottom:1px dashed var(--rule);animation:ink .5s var(--ease);grid-template-columns:minmax(0,1fr);gap:4px;padding:9px 0;display:grid}.row .main{font-family:var(--font-hand-stack);font-size:16.5px}.row .main s{color:var(--bad)}.row .main .ok{color:var(--good)}.row .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;display:flex}.pill2{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-weight:600}.cnt{color:var(--bad);font-weight:800}.empty{color:var(--muted);font-size:14px}@keyframes ink{0%{opacity:0;transform:translate(-8px)}}@media (max-width:640px){.room{gap:16px;padding:64px 16px 24px}.spine{top:calc(12px + env(safe-area-inset-top,0px));transform:none}.tab{border-radius:12px;width:40px;height:40px}.tab .tip{display:none}.stage{min-height:400px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.act{background:var(--ink);color:var(--surface);cursor:pointer;transition:transform .2s var(--ease);border:0;border-radius:999px;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:700}.act:hover{transform:translateY(-1px)}.pill2.st-open{color:var(--bad)}.pill2.st-improving{color:var(--warn)}.pill2.st-fixed{color:var(--good)}.center{text-align:center}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em}.tag{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700}.cta.wide{align-self:stretch;width:100%}.cta.small{box-shadow:0 8px 20px -12px var(--brand);padding:11px 20px;font-size:15px}.ghost.small{padding:7px 14px}.ghost.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}.ghost[disabled]{opacity:.5;cursor:default}.linkbtn{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0}.okmsg{color:var(--good)}.form{text-align:left;flex-direction:column;gap:14px;display:flex}.form h2{margin:0}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field input,.field textarea,.a-add select,.adm-tools input,.a-due input{font:inherit;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:12px;width:100%;padding:11px 13px;font-size:16px;font-weight:500;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.a-add select:focus,.adm-tools input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.pw{display:block;position:relative}.pw input{padding-right:64px}.eye{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:13px;font-weight:600;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.check{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--brand)}.auth .hero{gap:22px}.auth .hero h1{font-size:clamp(28px,7vw,40px)}.auth .card{width:100%;max-width:400px;animation:rise .45s var(--ease) both;align-self:center}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.chip{background:var(--brand-soft);color:var(--brand);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.chip.good{background:var(--good-soft);color:var(--good)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.quiet{background:var(--soft);color:var(--muted)}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.toplinks{gap:16px;font-size:14px;display:flex}.toplinks a{text-decoration:none}.mine{flex-direction:column;gap:14px;padding-top:28px;display:flex}.mine h1{letter-spacing:-.03em;margin:0;font-size:clamp(28px,7vw,38px)}.today{color:var(--muted);flex-direction:column;gap:8px;margin:0;display:flex}.today.over{color:var(--warn);font-weight:600}.today .bar,.minibar{background:var(--soft);border-radius:99px;height:6px;display:block;overflow:hidden}.today .bar>i,.minibar>i{background:linear-gradient(90deg, var(--brand), var(--good));border-radius:inherit;height:100%;display:block}.lessons{flex-direction:column;gap:12px;margin:6px 0 0;padding:0;list-style:none;display:flex}.lesson{background:var(--surface);box-shadow:var(--shadow);animation:rise .45s var(--ease) both;border-radius:20px;grid-template-columns:1fr auto;grid-template-areas:"meta btn""title btn""state btn";align-items:center;gap:4px 14px;padding:16px 18px;display:grid}.lesson:nth-child(2){animation-delay:50ms}.lesson:nth-child(3){animation-delay:.1s}.lesson .meta{color:var(--muted);grid-area:meta;gap:8px;font-size:12px;font-weight:700;display:flex}.lesson .lvl{color:var(--brand)}.lesson .due{color:var(--warn)}.lesson h2{grid-area:title;margin:0;font-size:17px;line-height:1.3}.lesson .state{grid-area:state;align-items:center;gap:10px;margin-top:4px;display:flex}.lesson .minibar{flex:1;max-width:140px}.lesson>button{grid-area:btn}.lesson.active{box-shadow:inset 0 0 0 2px var(--brand-soft), var(--shadow)}@media (max-width:420px){.lesson{grid-template-columns:1fr;grid-template-areas:"meta""title""state""btn"}.lesson>button{justify-self:stretch;margin-top:8px}}.empty-home{text-align:center}.admin{min-height:100dvh}.adm-top{z-index:5;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:12px 24px;display:flex;position:sticky;top:0}.adm-top .brand{color:var(--ink);text-decoration:none}.adm-top nav{flex:1;gap:16px;display:flex}.adm-top nav a{font-weight:600;text-decoration:none}.adm-top .who{align-items:center;gap:12px;display:flex}.adm-main{max-width:1080px;margin:0 auto;padding:24px 24px 60px}.adm-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.adm-head h1{letter-spacing:-.02em;align-items:center;gap:10px;margin:0;font-size:26px;display:flex}.adm-head p{margin:4px 0 0}.back{margin-bottom:10px;text-decoration:none;display:inline-block}.adm-card{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;padding:18px 20px}.adm-card h2{margin:0 0 12px;font-size:16px}.adm-grid{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}.adm-grid .span2{grid-column:1/-1}.adm-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.adm-tools input{max-width:320px;padding:9px 12px;font-size:15px}.seg{background:var(--soft);border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #101a2c1f}.tbl-wrap{margin:0 -20px;padding:0 20px;overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:700}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr{cursor:pointer;transition:background .12s}.tbl tbody tr:hover{background:var(--soft)}.tbl .who{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:0 6px;text-decoration:none;display:flex}.modal{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#101a2c59;place-items:center;padding:16px;animation:.2s both fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal-card{background:var(--surface);width:100%;max-width:440px;box-shadow:var(--shadow);animation:rise .3s var(--ease) both;border-radius:20px;flex-direction:column;gap:14px;padding:22px;display:flex}.modal-card h2{margin:0}.row-btns{justify-content:flex-end;align-items:center;gap:10px;display:flex}.row-btns>span{margin-right:auto}.creds{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.creds p{margin:0}.creds dl{background:var(--soft);border-radius:12px;grid-template-columns:auto 1fr;gap:6px 14px;width:100%;margin:0;padding:12px 14px;display:grid}.creds dt{color:var(--muted);font-size:13px}.creds dd{margin:0;font-weight:700}.creds .big{letter-spacing:.04em;font-size:18px}.acct{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.acct p{margin:-4px 0 4px}.assign{counter-reset:a;margin:0 0 14px;padding:0;list-style:none}.assign li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 0;display:grid}.assign li:last-child{border-bottom:0}.a-main{flex-direction:column;gap:4px;display:flex}.a-due{align-items:center;gap:6px;display:flex}.a-due input{width:auto;padding:6px 8px;font-size:14px}.a-btns{gap:4px;display:flex}.icon{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;width:32px;height:32px}.icon[disabled]{opacity:.35;cursor:default}.icon.bad{color:var(--bad)}.a-add{align-items:center;gap:10px;display:flex}.a-add select{flex:1;padding:9px 12px;font-size:15px}@media (max-width:760px){.adm-top{flex-wrap:wrap;gap:8px 16px;padding:10px 16px}.adm-top .who{justify-content:space-between;width:100%}.adm-main{padding:16px 16px 48px}.adm-grid{grid-template-columns:1fr}.adm-head{flex-direction:column;align-items:stretch}.assign li{grid-template-columns:1fr}.tbl-wrap{margin:0 -20px}}@media (max-width:640px){.home .topbar{min-height:40px;padding-left:52px}}.modal-card>.cta{align-self:flex-end}.nowrap{white-space:nowrap}.top0{margin-top:-6px}.adm-top nav{flex-wrap:wrap}.adm-top nav a{color:var(--muted);padding:4px 0}.adm-top nav a:hover{color:var(--brand)}.adm-card.narrow{max-width:620px}.tbl.static tbody tr{cursor:default}.tbl .meta{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.adm-tools select,.field select{font:inherit;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:15px}.field select{border-radius:12px;padding:11px 13px;font-size:16px;font-weight:500}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:480px){.field-row{grid-template-columns:1fr}}.seg a{color:var(--muted);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.seg a[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #101a2c1f}.sub{margin:16px 0 4px;font-size:14px;font-weight:600}.assign.inherited li{opacity:.85}.a-add input[type=date]{width:auto;padding:8px 10px;font-size:14px}.members{margin:0 0 12px;padding:0;list-style:none}.members li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:7px 0;display:flex}.members li form{margin-left:auto}.archive{align-items:center;gap:10px;margin-top:18px;display:flex}.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none;display:grid}.tile{flex-direction:column;gap:2px;padding:14px 16px;display:flex}.tile b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;line-height:1.15}.bars{border-bottom:1px solid var(--line);grid-template-columns:repeat(14,1fr);align-items:end;gap:2px;height:160px;margin-bottom:10px;padding-bottom:20px;display:grid;position:relative}.bar{outline:none;align-items:flex-end;height:100%;display:flex;position:relative}.bar>i{background:var(--brand);border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:opacity .15s;display:block}.bar>span{color:var(--muted);white-space:nowrap;font-size:10px;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.bar:nth-child(odd)>span{visibility:hidden}.bars:hover .bar>i{opacity:.45}.bars .bar:hover>i,.bars .bar:focus-visible>i{opacity:1}.bar:hover:after,.bar:focus-visible:after{content:attr(data-tip);background:var(--ink);color:var(--surface);white-space:nowrap;z-index:2;pointer-events:none;border-radius:8px;padding:5px 8px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.bar:first-child:hover:after{left:0;transform:none}.bar:last-child:hover:after{left:auto;right:0;transform:none}.mistakes{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.mistakes li>span:first-child{display:block}.mistakes s{color:var(--bad);text-decoration-thickness:1px}.pgrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.pcard{color:var(--ink);transition:transform .15s var(--ease);flex-direction:column;gap:4px;text-decoration:none;display:flex}.pcard:hover{transform:translateY(-2px)}.pcard b{font-size:17px}.switch{border:1px solid var(--line);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.switch input{width:20px;height:20px;accent-color:var(--brand);flex:none;margin-top:2px}.switch>span{flex-direction:column;gap:2px;display:flex}.consent ul{color:var(--ink);flex-direction:column;gap:8px;margin:0;padding-left:18px;display:flex}.doc{max-width:720px}.doc .brand{color:var(--ink);text-decoration:none}.doc article h1{letter-spacing:-.02em;margin:28px 0 0}.doc article h2{margin:24px 0 6px;font-size:18px}.doc article li{margin:4px 0}
