@property --c1{syntax:"<color>";inherits:true;initial-value:#7c5cff}@property --c2{syntax:"<color>";inherits:true;initial-value:#22d3ee}@property --c3{syntax:"<color>";inherits:true;initial-value:#3b2a9e}:root{--bg:#070814;--bg-2:#0d0f22;--glass:#ffffff0b;--glass-strong:#ffffff14;--line:#ffffff17;--line-strong:#ffffff29;--text:#f2f3ff;--muted:#9ea3c8;--faint:#6b7099;--violet:#8b6cff;--cyan:#38d6f5;--pink:#f472b6;--grad:linear-gradient(120deg, #8b6cff 0%, #5b8cff 50%, #38d6f5 100%);--wrong:#ff7a90;--wrong-bg:#ff7a901f;--right:#4ee0a6;--right-bg:#4ee0a61f;--radius:20px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(60rem 40rem at 15% -10%, #7c5cff38, transparent 60%), radial-gradient(50rem 36rem at 110% 20%, #38d6f51f, transparent 60%), radial-gradient(40rem 30rem at 50% 120%, #f472b61a, transparent 60%), var(--bg);background-attachment:fixed;min-height:100dvh;margin:0}h1,h2,h3,p{margin:0}button,input{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.muted{color:var(--faint);font-weight:500}.gradient-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px #ffffff0d,0 20px 50px #00000059}.btn-primary,.btn-ghost{cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:11px 20px;font-weight:700;transition:transform .15s,box-shadow .2s,background .2s,opacity .2s;display:inline-flex}.btn-primary{background:var(--grad);color:#fff;box-shadow:0 10px 30px #6e64ff59,inset 0 1px #ffffff40}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 38px #6e64ff73,inset 0 1px #ffffff40}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:var(--glass-strong);border:1px solid var(--line-strong)}.btn-ghost:hover{background:#ffffff1f}.large{border-radius:16px;padding:15px 26px;font-size:1.02rem}.small{padding:8px 16px;font-size:.9rem}.orb{--level:0;--orb-size:min(64vw, 300px, 33dvh);--spin:14s;--c1:#7c5cff;--c2:#38d6f5;--c3:#2b1d86;width:var(--orb-size);aspect-ratio:1;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:--c1 .8s,--c2 .8s,--c3 .8s;display:grid;position:relative}button.orb{cursor:pointer}.orb>span,.orb-breath>span{grid-area:1/1}.orb-glow{background:radial-gradient(circle, var(--c1) 0%, var(--c2) 35%, transparent 70%);filter:blur(40px);width:100%;height:100%;opacity:calc(.35 + var(--level) * .55);scale:calc(1.05 + var(--level) * .45);border-radius:50%;transition:opacity .2s}.orb-breath{place-items:center;width:100%;height:100%;animation:4.5s ease-in-out infinite breathe;display:grid;position:relative}.orb-blob{mix-blend-mode:screen;opacity:.85;filter:blur(2px);width:86%;height:86%;scale:calc(1 + var(--level) * .28);animation:morph 9s ease-in-out infinite, spin var(--spin) linear infinite}.orb-blob.b1{background:radial-gradient(circle at 30% 30%, var(--c2), transparent 70%), var(--c1);border-radius:43% 57% 62% 38%/45% 42% 58% 55%}.orb-blob.b2{background:radial-gradient(circle at 70% 60%, var(--c1), transparent 70%), var(--c2);animation-duration:11s, calc(var(--spin) * 1.3);opacity:.6;scale:calc(.96 + var(--level) * .36);border-radius:60% 40% 35% 65%/55% 60% 40% 45%;animation-direction:alternate,reverse}.orb-blob.b3{background:conic-gradient(from 90deg, var(--c1), var(--c2), var(--c3), var(--c1));animation-duration:7s, calc(var(--spin) * .8);opacity:.55;scale:calc(.92 + var(--level) * .2);border-radius:50% 50% 45% 55%/60% 40%}.orb-core{background:radial-gradient(circle at 32% 26%, #ffffff8c, transparent 32%), radial-gradient(circle at 70% 80%, var(--c2), transparent 55%), radial-gradient(circle at 50% 50%, var(--c1), var(--c3) 85%);width:72%;height:72%;scale:calc(1 + var(--level) * .07);border-radius:50%;place-items:center;display:grid;position:relative;box-shadow:inset 0 -12px 30px #0000004d,inset 0 8px 24px #fff3,0 24px 60px #00000073}.orb-label{font-size:calc(var(--orb-size) * .12);letter-spacing:-.02em;color:#fff;text-shadow:0 2px 14px #0000004d;-webkit-user-select:none;user-select:none;font-weight:800}.orb[data-phase=idle],.orb[data-phase=connecting]{--c1:#7c5cff;--c2:#38d6f5;--c3:#25197a}.orb[data-phase=listening]{--c1:#4f7bff;--c2:#38d6f5;--c3:#172a8a;--spin:16s}.orb[data-phase=user]{--c1:#16c7d9;--c2:#4ee0a6;--c3:#0b5a74;--spin:6s}.orb[data-phase=thinking]{--c1:#8b6cff;--c2:#c084fc;--c3:#2f1a8f;--spin:3s}.orb[data-phase=thinking] .orb-breath{animation-duration:1.4s}.orb[data-phase=ai]{--c1:#8b5cf6;--c2:#f472b6;--c3:#4c1d95;--spin:7s}.orb[data-phase=muted],.orb[data-phase=ended],.orb[data-phase=error]{--c1:#4a4f73;--c2:#6b7099;--c3:#1d2040;--spin:30s}.orb[data-phase=error]{--c1:#9f3a55;--c2:#ff7a90}@keyframes spin{to{rotate:360deg}}@keyframes morph{0%,to{border-radius:43% 57% 62% 38%/45% 42% 58% 55%}33%{border-radius:58% 42% 40% 60%/60% 55% 45% 40%}66%{border-radius:38% 62% 55% 45%/42% 60% 40% 58%}}@keyframes breathe{0%,to{transform:scale(.97)}50%{transform:scale(1.03)}}@media (prefers-reduced-motion:reduce){.orb-blob,.orb-breath{animation:none}}.setup{max-width:620px;margin:0 auto;padding:36px 16px 56px}.hero{text-align:center;justify-items:center;gap:14px;margin-bottom:28px;display:grid}.hero h1{letter-spacing:-.035em;margin-top:6px;font-size:clamp(2rem,6.5vw,2.9rem);font-weight:800;line-height:1.1}.hero p{color:var(--muted);max-width:440px;font-size:1.02rem}.setup-form{gap:26px;padding:26px;display:grid}fieldset{border:0;min-width:0;margin:0;padding:0}legend{align-items:center;gap:10px;margin-bottom:12px;padding:0;font-weight:700;display:flex}.step{background:var(--glass-strong);border:1px solid var(--line-strong);width:24px;height:24px;color:var(--muted);border-radius:8px;place-items:center;font-size:.78rem;display:inline-grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.small{margin-top:12px}.chip{border:1px solid var(--line-strong);background:var(--glass);cursor:pointer;border-radius:999px;padding:9px 18px;font-weight:600;transition:background .2s,border-color .2s,color .2s}.chip:hover{border-color:#8b6cff99}.chip.active{background:var(--grad);color:#fff;border-color:#0000;box-shadow:0 6px 20px #6e64ff4d}.chips.small .chip{color:var(--muted);padding:5px 13px;font-size:.85rem}.chips.small .chip.active{color:#fff}.custom-duration{color:var(--muted);align-items:center;gap:12px;margin-top:12px;display:flex}.text-input,.custom-duration input{border:1px solid var(--line-strong);background:#00000040;border-radius:14px;outline:none;width:100%;padding:12px 14px;transition:border-color .2s,box-shadow .2s}.custom-duration input{width:96px}.text-input::placeholder{color:var(--faint)}.text-input:focus,.custom-duration input:focus{border-color:var(--violet);box-shadow:0 0 0 4px #8b6cff2e}.segmented{border:1px solid var(--line);background:#00000040;border-radius:16px;grid-template-columns:repeat(3,1fr);gap:8px;padding:5px;display:grid}.segmented.two{grid-template-columns:repeat(2,1fr)}.segmented button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:12px;gap:1px;padding:10px 6px;transition:background .2s,color .2s;display:grid}.segmented button small{color:var(--faint);font-size:.75rem}.segmented button.active{background:var(--glass-strong);color:var(--text);box-shadow:0 0 0 1px var(--line-strong) inset, 0 6px 16px #00000040}.segmented button.active small{color:var(--cyan)}.tip{text-align:center;color:var(--faint);margin-top:-10px;font-size:.86rem}.voice{max-width:720px;height:100dvh;padding:14px 16px calc(18px + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto auto;margin:0 auto;display:grid;position:relative;overflow:hidden}.voice-top{z-index:3;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;display:grid;position:relative}.icon-btn{border:1px solid var(--line);background:var(--glass);cursor:pointer;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.icon-btn:hover{background:var(--glass-strong)}.topic-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-overflow:ellipsis;white-space:nowrap;background:var(--glass);border:1px solid var(--line);max-width:100%;color:var(--muted);border-radius:999px;justify-self:center;padding:7px 16px;font-size:.9rem;font-weight:600;overflow:hidden}.timer-pill{--p:0;background:var(--glass);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:7px 14px 7px 8px;font-weight:700;display:flex}.timer-ring{background:radial-gradient(circle, var(--bg-2) 55%, transparent 57%), conic-gradient(var(--cyan) calc((1 - var(--p)) * 360deg), #ffffff1a 0);border-radius:50%;width:22px;height:22px}.timer-pill.low{color:#ffc46b;animation:1s ease-in-out infinite blink}.timer-pill.low .timer-ring{background:radial-gradient(circle, var(--bg-2) 55%, transparent 57%), conic-gradient(#ffc46b calc((1 - var(--p)) * 360deg), #ffffff1a 0)}@keyframes blink{50%{opacity:.6}}.stage{place-content:center;justify-items:center;gap:26px;min-height:0;display:grid}.phase-text{text-align:center;justify-items:center;gap:6px;min-height:64px;display:grid}.phase-text h2{letter-spacing:-.02em;font-size:1.45rem;font-weight:800}.phase-text p{color:var(--muted);max-width:340px;font-size:.95rem}.phase-text .fatal{color:var(--wrong)}.phase-text .btn-primary{margin-top:8px}.feedback-zone{scrollbar-width:thin;align-items:end;min-height:0;max-height:34dvh;margin-bottom:14px;display:grid;overflow-y:auto}.feedback-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);background:#12142ab8;border-radius:18px;padding:16px 18px;animation:.45s cubic-bezier(.2,.9,.3,1.2) rise}.feedback-card.ok{color:var(--right);background:var(--right-bg);border-color:#4ee0a640;border-radius:999px;justify-self:center;align-items:center;gap:10px;padding:10px 18px;font-weight:700;display:flex}.feedback-head{text-transform:uppercase;letter-spacing:.08em;color:var(--wrong);align-items:center;gap:8px;margin-bottom:12px;font-size:.78rem;font-weight:800;display:flex}.dot{border-radius:50%;width:8px;height:8px}.dot.bad{background:var(--wrong);box-shadow:0 0 10px var(--wrong)}.dot.good{background:var(--right);box-shadow:0 0 10px var(--right)}.feedback-correct{border-top:1px dashed var(--line-strong);color:var(--text);margin-top:12px;padding-top:12px}.feedback-correct span{color:var(--right);margin-right:4px;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.98)}}.voice-controls{justify-content:center;align-items:center;gap:22px;display:flex}.control{cursor:pointer;border:1px solid var(--line-strong);background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;width:62px;height:62px;transition:transform .15s,background .2s;display:grid}.control:hover:not(:disabled){transform:scale(1.05)}.control:disabled{opacity:.4;cursor:not-allowed}.control.off{color:#111;background:#fff}.control.end{color:#fff;background:linear-gradient(135deg,#ff5f7e,#e11d48);border-color:#0000;box-shadow:0 10px 28px #e11d4866}.mistake-counter{justify-items:center;min-width:64px;line-height:1.1;display:grid}.mistake-counter strong{font-size:1.6rem;font-weight:800}.mistake-counter span{color:var(--muted);font-size:.78rem}.toast{z-index:5;color:#ffd1da;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#3c1220e6;border:1px solid #ff7a904d;border-radius:14px;align-items:flex-start;gap:12px;width:min(92%,480px);padding:12px 14px 12px 16px;font-size:.92rem;animation:.3s ease-out rise;display:flex;position:absolute;top:70px;left:50%;translate:-50%}.toast span{flex:1}.toast button{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:0;font-size:1.3rem;line-height:1}.time-up-sheet{text-align:center;border:1px solid var(--line-strong);background:#14162e;border-radius:24px;gap:8px;padding:22px;animation:.45s cubic-bezier(.2,.9,.3,1.2) rise;display:grid;box-shadow:0 -10px 60px #00000080}.time-up-sheet h3{font-size:1.3rem;font-weight:800}.time-up-sheet p{color:var(--muted)}.sheet-actions{justify-content:center;gap:10px;margin-top:10px;display:flex}.correction-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.correction-diff{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wrong,.right{border-radius:8px;padding:3px 10px;font-weight:600}.wrong{background:var(--wrong-bg);color:var(--wrong);text-decoration:line-through;text-decoration-thickness:1.5px}.right{background:var(--right-bg);color:var(--right)}.arrow{color:var(--faint)}.tag{color:var(--muted);border:1px solid var(--line-strong);border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:600}.correction-why{color:var(--muted);margin-top:6px;font-size:.92rem}mark.mistake{color:var(--wrong);-webkit-text-decoration:underline wavy var(--wrong);text-decoration:underline wavy var(--wrong);text-underline-offset:4px;background:0 0;text-decoration-thickness:1.5px}.summary{gap:16px;max-width:680px;margin:0 auto;padding:40px 16px 56px;display:grid}.summary-hero{text-align:center;justify-items:center;gap:10px;margin-bottom:10px;display:grid}.summary-hero h1{letter-spacing:-.03em;margin-top:8px;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:800}.summary-hero p{color:var(--muted);max-width:420px}.score-ring{--score:0;aspect-ratio:1;background:radial-gradient(circle, var(--bg-2) 62%, transparent 63%), conic-gradient(from -90deg, #8b6cff, #38d6f5 calc(var(--score) * 3.6deg), #ffffff14 0);border-radius:50%;place-items:center;width:150px;display:grid;box-shadow:0 0 60px #6e64ff40}.score-ring div{justify-items:center;line-height:1.1;display:grid}.score-ring strong{font-size:2.2rem;font-weight:800}.score-ring span{color:var(--muted);font-size:.85rem}.stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.stat{text-align:center;justify-items:center;gap:2px;padding:18px 10px;display:grid}.stat-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.stat-label{color:var(--muted);font-size:.82rem}.panel{padding:22px}.panel h2{margin-bottom:16px;font-size:1.05rem;font-weight:800}.type-bars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.type-bars li{grid-template-columns:120px 1fr 28px;align-items:center;gap:12px;font-size:.92rem;display:grid}.bar{background:#ffffff12;border-radius:999px;height:10px;overflow:hidden}.bar span{border-radius:inherit;background:linear-gradient(90deg,#f472b6,#ff7a90);height:100%;display:block}.count{text-align:right;font-weight:700}.review-list{gap:18px;margin:0;padding:0;list-style:none;display:grid}.review-list>li{border-bottom:1px solid var(--line);padding-bottom:18px}.review-list>li:last-child{border-bottom:0;padding-bottom:0}.said,.should{gap:2px;margin-bottom:10px;display:grid}.should{color:var(--right);margin-bottom:14px}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:.72rem;font-weight:700}.summary-actions{justify-content:center;gap:12px;margin-top:8px;display:flex}@media (width<=560px){.setup-form{padding:20px 16px}.segmented button strong{font-size:.9rem}.stats{gap:8px}.stat-value{font-size:1.3rem}.type-bars li{grid-template-columns:96px 1fr 24px}.summary-actions{flex-direction:column-reverse}.voice-controls{gap:16px}}.auth{max-width:460px;margin:0 auto;padding:48px 16px 56px}.auth-form{gap:18px;padding:24px;display:grid}.field{gap:6px;display:grid}.field>span{color:var(--muted);font-size:.9rem;font-weight:600}.text-input.invalid{border-color:var(--wrong)}.field-error{color:var(--wrong);font-size:.85rem}.form-error{background:var(--wrong-bg);color:var(--wrong);border-radius:12px;padding:10px 14px;font-size:.9rem}.boot{place-items:center;min-height:100dvh;display:grid}.user-bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.avatar{background:var(--grad);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.memory{gap:18px;margin-bottom:16px;padding:22px;display:grid}.memory.empty{color:var(--muted);align-items:center;gap:14px;font-size:.93rem;display:flex}.memory-icon{font-size:1.6rem}.memory-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.memory-head h2{margin:0;font-size:1.05rem;font-weight:800}.level-badge{background:var(--grad);color:#fff;border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:800}.memory-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.memory-stats div{border:1px solid var(--line);background:#00000038;border-radius:14px;justify-items:center;padding:10px 6px;line-height:1.2;display:grid}.memory-stats strong{font-size:1.3rem;font-weight:800}.memory-stats span{color:var(--muted);font-size:.78rem}.memory-block h3{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:8px;font-size:.75rem;font-weight:800}.memory-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.memory-list li{padding-left:18px;font-size:.92rem;position:relative}.memory-list li:before{content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:.6em;left:2px}.memory-list.weak li:before{background:var(--wrong);box-shadow:0 0 8px var(--wrong)}.memory-list.strong li:before{background:var(--right);box-shadow:0 0 8px var(--right)}.chip.static{cursor:default}.chip.static:hover{border-color:var(--line-strong)}.tags{margin-top:-4px}.segmented button{position:relative}.recommended{background:var(--right);color:#062a1d;border-radius:999px;padding:0 7px;font-size:.66rem;font-weight:800;line-height:1.5;position:absolute;top:-8px;right:6px}.muted-text{color:var(--muted);margin-bottom:10px}.memory-status{color:var(--muted);align-items:center;gap:12px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--cyan);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.type-bars li>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home{max-width:640px;margin:0 auto;padding:24px 16px 56px}.home .setup{max-width:none;padding:0}.hero.compact{gap:8px;margin-bottom:20px}.hero.compact h1{font-size:clamp(1.7rem,5.5vw,2.3rem)}.home-tabs{margin-bottom:20px}.home-tabs button{padding:12px 8px}.units-loading{place-items:center;padding:48px 0;display:grid}.units{gap:22px;display:grid}.course-progress{gap:12px;padding:18px 20px;display:grid}.course-progress h2{font-size:1rem;font-weight:800}.course-progress p{color:var(--muted);font-size:.9rem}.progress-track{background:#ffffff12;border-radius:999px;height:10px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--grad);height:100%;transition:width .6s;display:block}.level-title{align-items:center;gap:10px;margin-bottom:12px;font-size:1rem;font-weight:800;display:flex}.unit-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.unit-card{text-align:left;cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;padding:14px 16px;transition:transform .15s,border-color .2s,background .2s;display:grid}.unit-card:hover{border-color:#8b6cff80;transform:translateY(-1px)}.unit-card.next{border-color:#38d6f58c;box-shadow:0 0 0 1px #38d6f540,0 14px 40px #38d6f51f}.unit-number{background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:14px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.unit-card.next .unit-number{background:var(--grad);color:#fff;border-color:#0000}.unit-card.done .unit-number{background:var(--right-bg);color:var(--right);border-color:#4ee0a659}.unit-text{min-width:0;display:grid}.unit-text strong{font-weight:700}.unit-text small{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.next-badge{color:var(--cyan);white-space:nowrap;background:#38d6f51f;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800}.stars{color:#ffffff24;gap:1px;font-size:1rem;display:inline-flex}.stars .on{color:#ffc84a;text-shadow:0 0 10px #ffc84a80}.stars.big{font-size:1.9rem}.lesson{gap:16px;max-width:680px;margin:0 auto;padding:20px 16px 56px;display:grid}.lesson-head{align-items:center;gap:12px;display:flex}.lesson-kicker{color:var(--muted);align-items:center;gap:8px;font-weight:700;display:flex}.lesson-hero{gap:4px;padding:6px 2px 4px;display:grid}.lesson-hero h1{letter-spacing:-.03em;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:800}.lesson-en{color:var(--cyan);font-weight:600}.lesson-goal{color:var(--muted);margin-top:8px}.panel h2{align-items:center;gap:10px;display:flex}.vocab-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.vocab-grid li,.examples li{border:1px solid var(--line);background:#00000038;border-radius:14px;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex}.vocab-grid span,.examples li>span:last-child{min-width:0;display:grid}.vocab-grid small,.examples small{color:var(--muted);font-size:.85rem}.speak{cursor:pointer;border:1px solid var(--line-strong);background:var(--glass-strong);width:34px;height:34px;color:var(--cyan);border-radius:50%;flex:none;place-items:center;transition:background .2s,transform .15s;display:grid}.speak:hover{transform:scale(1.06)}.speak.active{background:var(--grad);color:#fff;border-color:#0000;animation:1s ease-in-out infinite blink}.speak.placeholder{visibility:hidden}.grammar-text{color:var(--text);margin-bottom:14px;line-height:1.65}.patterns{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.patterns li{border-left:3px solid var(--violet);background:#8b6cff1a;border-radius:12px;padding:10px 14px;font-weight:700}.sub-title{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:10px;font-size:.75rem;font-weight:800}.examples{gap:8px;margin:0;padding:0;list-style:none;display:grid}.practice-cta{border-color:#8b6cff59;gap:14px;display:grid}.practice-cta h2{margin-bottom:0}.practice-cta .muted-text{margin:0}.control.hint{font-size:1.4rem}.control.hint.on{background:#ffc84a2e;border-color:#ffc84a73}.hint-panel{gap:12px;display:grid}.hint-head{color:#ffd67a;justify-content:space-between;align-items:center;font-weight:800;display:flex}.hint-head button{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:1.4rem;line-height:1}.hint-phrases{gap:8px;margin:0;padding:0;list-style:none;display:grid}.hint-phrases li{display:grid}.hint-phrases small{color:var(--muted)}.unit-result{justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.unit-result h2{margin:2px 0 4px;font-size:1.15rem;font-weight:800}.unit-result p{color:var(--muted)}.unit-result.done{border-color:#4ee0a659}.unit-result.done p{color:var(--right)}@media (width<=560px){.vocab-grid{grid-template-columns:1fr}}.logo{--logo-size:56px;width:var(--logo-size);height:var(--logo-size);flex:none;place-items:center;display:grid;position:relative}.logo:before{content:"";filter:blur(12px);background:radial-gradient(circle,#7c5cff80,#38d6f529 45%,#0000 72%);border-radius:50%;position:absolute;inset:-20%}.logo>img{object-fit:cover;background:#0b1730;border:1px solid #ffffff29;border-radius:50%;width:100%;height:100%;position:relative;box-shadow:0 0 0 1px #7c5cff52,0 10px 30px #00000073,0 0 40px #7c5cff38}.auth{grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;gap:48px;max-width:1040px;min-height:100dvh;margin:0 auto;padding:40px 20px 64px;display:grid}.auth-brand{align-content:center;gap:20px;max-width:520px;display:grid}.brand-lockup{align-items:center;gap:16px;display:flex}.brand-text{gap:2px;display:grid}.brand-name{letter-spacing:-.03em;font-size:1.75rem;font-weight:800;line-height:1}.brand-tag{text-transform:uppercase;letter-spacing:.14em;color:var(--cyan);font-size:.76rem;font-weight:800}.auth-brand h2{letter-spacing:-.035em;font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:800;line-height:1.12}.brand-points{gap:14px;margin:0;padding:0;list-style:none;display:grid}.brand-points li{color:var(--muted);align-items:center;gap:12px;font-size:.97rem;display:flex}.point-icon{background:var(--glass-strong);border:1px solid var(--line-strong);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-size:1.05rem;display:grid}.brand-foot{color:var(--faint);font-size:.86rem}.auth-card{gap:16px;min-width:0;display:grid}.auth-head h2{letter-spacing:-.02em;font-size:1.45rem;font-weight:800}.auth-head p{color:var(--muted);margin-top:4px;font-size:.94rem}.auth-form .btn-primary.large{width:100%}.auth-note{text-align:center;color:var(--faint);font-size:.84rem}.field>label{color:var(--muted);font-size:.9rem;font-weight:600}.password-field{position:relative}.password-field .text-input{padding-right:48px}.reveal{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;transition:color .2s,background .2s;display:grid;position:absolute;top:50%;right:6px;translate:0 -50%}.reveal:hover{color:var(--text);background:var(--glass-strong)}.reveal[aria-pressed=true]{color:var(--cyan)}.caps-hint{color:#ffc46b;font-size:.85rem}.strength{align-items:center;gap:12px;margin-top:2px;display:flex}.strength-track{flex:1;gap:5px;display:flex}.strength-track i{background:#ffffff1a;border-radius:999px;flex:1;height:5px;transition:background .25s}.strength[data-level="1"] .strength-track i:first-child{background:var(--wrong)}.strength[data-level="2"] .strength-track i:nth-child(-n+2){background:#ffc46b}.strength[data-level="3"] .strength-track i{background:var(--right)}.strength small{text-align:right;min-width:84px;color:var(--faint);flex:none;font-size:.8rem}.strength[data-level="3"] small{color:var(--right)}.user-bar{background:var(--glass);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;margin-bottom:22px;padding:8px 12px 8px 10px;display:flex}.app-name{letter-spacing:-.02em;white-space:nowrap;font-weight:800}.user-chip{border-left:1px solid var(--line);flex:1;align-items:center;gap:8px;min-width:0;margin-left:2px;padding-left:10px;display:flex}.user-bar .avatar{flex:none;width:30px;height:30px;font-size:.85rem}.user-bar .user-name{color:var(--muted);font-size:.94rem;font-weight:600}.boot-splash{justify-items:center;gap:14px;display:grid}.boot-splash .logo{animation:2s ease-in-out infinite boot-pulse}.boot-name{letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.boot-dots{gap:6px;display:flex}.boot-dots i{background:var(--violet);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite boot-dot}.boot-dots i:nth-child(2){animation-delay:.15s}.boot-dots i:nth-child(3){animation-delay:.3s}@keyframes boot-pulse{50%{scale:1.06}}@keyframes boot-dot{0%,to{opacity:.3}50%{opacity:1;translate:0 -3px}}@media (width<=900px){.auth{grid-template-columns:minmax(0,1fr);gap:26px;max-width:480px;min-height:0;padding:36px 16px 56px}.auth-brand{gap:0;max-width:none}.auth-brand h2,.auth-brand .brand-points,.auth-brand .brand-foot{display:none}}@media (width<=560px){.user-bar{border-radius:18px}.app-name{display:none}}@media (prefers-reduced-motion:reduce){.boot-splash .logo,.boot-dots i{animation:none}}
