:root{--bg: #0f1220;--surface: #191d33;--surface-2: #222749;--text: #eef0ff;--text-dim: #9aa0c3;--accent: #7c5cff;--accent-2: #00d4ff;--good: #2ecc71;--bad: #e74c3c;--radius: 14px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:radial-gradient(900px 600px at 85% -10%,rgba(124,92,255,.18),transparent 60%),radial-gradient(700px 500px at -10% 25%,rgba(0,212,255,.12),transparent 55%),radial-gradient(800px 700px at 50% 115%,rgba(124,92,255,.1),transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh;color:var(--text)}.header,.card,.hq-card,.vocab-item{background:#191d33d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app{max-width:860px;margin:0 auto;padding:16px}.header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;background:var(--surface);border-radius:var(--radius)}.header-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px}.header-xp{display:flex;align-items:center;gap:10px;flex:1;min-width:220px}.level-chip{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;font-size:12px;padding:4px 10px;border-radius:999px;white-space:nowrap}.xp-bar{flex:1;height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;transition:width .4s ease}.xp-total{position:relative;font-size:13px;color:var(--text-dim);white-space:nowrap}.xp-gain{position:absolute;top:-18px;right:0;color:var(--good);font-weight:700;animation:rise 1.2s ease-out forwards}@keyframes rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-14px)}}.header-meta{display:flex;align-items:center;gap:12px;font-size:15px}.badges{display:flex;gap:4px;font-size:17px;cursor:default}.nav{display:flex;align-items:center;gap:12px;margin:14px 0}.nav-btn{background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:10px;padding:8px 14px;font-size:14px;cursor:pointer}.nav-btn:hover{background:var(--surface-2)}.nav-current{color:var(--text-dim);font-size:14px}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;background:var(--surface);border:1px solid var(--surface-2);border-radius:var(--radius);color:var(--text);text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease;font-family:inherit}.card:hover:not(:disabled){transform:translateY(-3px);border-color:var(--accent)}.card-icon{font-size:32px}.card-title{font-size:17px;font-weight:700}.card-desc{font-size:13px;color:var(--text-dim)}.card-lock{font-size:12px;color:var(--accent-2);margin-top:4px}.card-locked,.card-soon{opacity:.55;cursor:default}.vocab-empty{color:var(--text-dim)}.vocab-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.vocab-item{background:var(--surface);border-radius:var(--radius);padding:12px 16px}.vocab-term{font-weight:700}.vocab-audio{background:none;border:none;font-size:15px;cursor:pointer;margin-left:6px;opacity:.75}.vocab-audio:hover{opacity:1}.vocab-due{margin-left:10px;font-size:11px;font-weight:600;color:#ffb020;border:1px solid #ffb020;border-radius:999px;padding:1px 8px}.vocab-context{color:var(--text-dim);font-size:13px;font-style:italic;margin-top:2px}.vocab-meta{color:var(--text-dim);font-size:12px;margin-top:4px}.module-host{display:block}.hq-card{background:var(--surface);border-radius:var(--radius);padding:22px;max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.hq-progress{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.hq-question{margin:0;font-size:20px}.hq-options{display:flex;flex-direction:column;gap:10px}.hq-option,.hq-next,.hq-collect{font-family:inherit;font-size:15px;border-radius:10px;padding:12px 16px;cursor:pointer;text-align:left}.hq-option{background:var(--surface-2);border:1px solid transparent;color:var(--text)}.hq-option:hover:not(:disabled){border-color:var(--accent)}.hq-option:disabled{cursor:default}.hq-correct{background:#2ecc712e;border-color:var(--good)!important}.hq-wrong{background:#e74c3c2e;border-color:var(--bad)!important}.hq-explanation{margin:0;color:var(--text-dim);font-size:14px}.hq-collect{background:transparent;border:1px dashed var(--accent-2);color:var(--accent-2)}.hq-collect:disabled{border-style:solid;opacity:.7;cursor:default}.hq-next{background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#fff;font-weight:700;text-align:center}.hq-score{font-size:17px;margin:0}.hq-best{color:var(--text-dim);margin:0}.vr-context{margin:0;font-size:17px;font-style:italic;line-height:1.5}.vr-hint{margin:0;color:var(--text-dim);font-size:13px;letter-spacing:.04em}.vr-input{font-family:inherit;font-size:16px;padding:12px 16px;border-radius:10px;border:1px solid var(--surface-2);background:var(--surface-2);color:var(--text);outline:none}.vr-input:focus{border-color:var(--accent)}.vr-input-correct{border-color:var(--good);background:#2ecc711f}.vr-input-wrong{border-color:var(--bad);background:#e74c3c1f}.vr-actions{display:flex;gap:10px}.vr-actions .hq-next{flex:1}.vr-giveup{font-family:inherit;font-size:14px;padding:12px 16px;border-radius:10px;border:1px solid var(--surface-2);background:transparent;color:var(--text-dim);cursor:pointer}.vr-giveup:hover{border-color:var(--text-dim)}.fs-player{position:relative;width:min(300px,100%);aspect-ratio:9 / 16;margin:0 auto;background:#000;border-radius:12px;overflow:hidden}.fs-player iframe{width:100%;height:100%}.fs-player-broken{aspect-ratio:auto;background:var(--surface-2);padding:14px}.fs-transcript{margin-top:8px}.fs-transcript-line{margin:6px 0;font-size:14px;line-height:1.5}.fs-deck-list{display:flex;flex-direction:column;gap:8px}.fs-deck-item{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:10px;padding:10px 14px}.fs-deck-num{font-weight:700;color:var(--accent-2)}.fs-deck-title{flex:1}.fs-level-chip{font-size:11px;font-weight:700;color:var(--accent-2);border:1px solid var(--accent-2);border-radius:999px;padding:2px 8px}.fs-ex-title{margin:0;font-size:18px}.fs-cloze-line{margin:0;font-size:17px;line-height:2.2}.fs-cloze-input{font-family:inherit;font-size:16px;padding:4px 8px;margin:0 4px;border-radius:8px;border:1px solid var(--accent);background:var(--surface-2);color:var(--text);outline:none;width:auto}.fs-order-answer{min-height:46px;display:flex;flex-wrap:wrap;gap:8px;padding:8px;border:1px dashed var(--surface-2);border-radius:10px}.fs-order-correct{border-color:var(--good)}.fs-order-wrong{border-color:var(--bad)}.fs-order-pool{display:flex;flex-wrap:wrap;gap:8px}.fs-chip{font-family:inherit;font-size:15px;padding:8px 14px;border-radius:999px;border:1px solid var(--surface-2);background:var(--surface-2);color:var(--text);cursor:pointer}.fs-chip:hover:not(:disabled){border-color:var(--accent)}.fs-chip-used{opacity:.35;pointer-events:none}.fs-chip-selected{border-color:var(--accent);background:#7c5cff40}.fs-match-board{display:flex;gap:14px}.fs-match-col{flex:1;display:flex;flex-direction:column;gap:8px}.fs-vocab-row{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:10px;padding:10px 14px}.fs-vocab-info{flex:1}.fs-vocab-term{font-weight:600}.fs-vocab-known{font-size:12px;color:var(--good);white-space:nowrap}.fs-speak-target{margin:0;font-size:19px;font-style:italic;line-height:1.5}.fs-speak-result{margin:0;line-height:1.8}.fs-word-hit{color:var(--good);margin-right:2px}.fs-word-miss{color:var(--bad);text-decoration:underline wavy;margin-right:2px}.fs-mic{font-size:26px;width:64px;height:64px;border-radius:50%;border:2px solid var(--accent);background:var(--surface-2);cursor:pointer;align-self:center}.fs-mic:disabled{opacity:.6;cursor:default}.fs-mic-listening{animation:pulse 1.2s ease-in-out infinite;border-color:var(--bad)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.anim-shake{animation:shake .35s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}.module-host{position:relative}.fx-pop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:72px;font-weight:700;color:var(--good);text-shadow:0 0 24px rgba(46,204,113,.55);pointer-events:none;animation:pop .7s cubic-bezier(.2,1.4,.4,1) forwards;z-index:5}@keyframes pop{0%{transform:scale(0);opacity:0}40%{transform:scale(1.25);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:0}}.fx-fly-chip{position:fixed;transform:translate(-50%,-50%);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;white-space:nowrap;pointer-events:none;z-index:95}.fx-bump{display:inline-block;animation:bump .4s cubic-bezier(.2,1.6,.4,1)}@keyframes bump{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.fx-confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:92}.fx-confetti i{position:absolute;top:-16px;width:8px;height:13px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.3,.4,.6,1);animation-fill-mode:forwards}@keyframes confetti-fall{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),105vh) rotate(var(--rot));opacity:.5}}.fx-levelup{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(124,92,255,.3),transparent 65%);pointer-events:none;z-index:90;animation:levelup-fade 2.4s ease forwards}.fx-levelup-inner{text-align:center;animation:levelup-pop .6s cubic-bezier(.2,1.5,.4,1)}.fx-levelup-label{font-size:20px;font-weight:700;letter-spacing:.35em;color:var(--accent-2)}.fx-levelup-num{font-size:110px;font-weight:800;line-height:1.1;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 48px rgba(124,92,255,.45)}@keyframes levelup-pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1)}}@keyframes levelup-fade{0%,75%{opacity:1}to{opacity:0}}.fx-toasts{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;z-index:94;pointer-events:none}.badge-toast{position:relative;display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--accent);border-radius:14px;padding:12px 18px;box-shadow:0 8px 30px #00000073;overflow:hidden;animation:toast-in .45s cubic-bezier(.2,1.4,.4,1)}.badge-toast:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translate(-100%);animation:shine 1.4s ease .3s}.badge-toast-icon{font-size:28px}.badge-toast-text{display:flex;flex-direction:column}.badge-toast-text small{color:var(--text-dim);font-size:12px}@keyframes toast-in{0%{transform:translateY(40px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes shine{to{transform:translate(100%)}}.skills-card{max-width:560px;margin:0 auto}.skills-radar{width:min(300px,100%);margin:0 auto;display:block}.radar-ring{fill:none;stroke:var(--surface-2);stroke-width:1}.radar-axis{stroke:var(--surface-2);stroke-width:1}.radar-shape{fill:#7c5cff4d;stroke:var(--accent-2);stroke-width:2;stroke-linejoin:round}.radar-label{fill:var(--text);font-size:13px;font-weight:600}.skills-list{display:flex;flex-direction:column;gap:10px}.skills-row{display:flex;align-items:center;gap:10px}.skills-name{width:118px;font-size:14px;white-space:nowrap}.skills-bar{position:relative;flex:1;height:10px;background:var(--surface-2);border-radius:999px}.skills-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:999px;transition:width .4s ease}.skills-bar-peak{position:absolute;top:-3px;width:2px;height:16px;background:var(--text-dim);border-radius:1px}.skills-score{width:28px;text-align:right;font-weight:700;font-size:14px}.skills-delta{width:60px;font-size:12px;color:var(--text-dim)}.skills-up{color:var(--good)}.skills-down{color:var(--bad)}.skills-idle{font-size:11px;color:#ffb020;white-space:nowrap}.skill-decay-warn{cursor:help;animation:pulse 1.4s ease-in-out infinite}.ft-chat{display:flex;flex-direction:column;height:min(72vh,640px);max-width:560px;margin:0 auto;background:#191d33d1;border-radius:var(--radius);overflow:hidden}.ft-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.ft-row{display:flex}.ft-row-bot{justify-content:flex-start}.ft-row-user{justify-content:flex-end}.ft-user-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:80%}.ft-bubble{padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.45;max-width:100%}.ft-bubble-bot{background:var(--surface-2);border-bottom-left-radius:4px;max-width:80%}.ft-bubble-user{background:linear-gradient(135deg,var(--accent),#5a43c9);color:#fff;border-bottom-right-radius:4px}.ft-typing{opacity:.6}.ft-speak{background:none;border:none;cursor:pointer;font-size:13px;margin-left:6px;opacity:.7}.ft-speak:hover{opacity:1}.ft-chip{font-family:inherit;font-size:11px;border-radius:999px;border:1px solid var(--surface-2);background:transparent;color:var(--text-dim);padding:2px 10px;cursor:pointer}.ft-chip-ok{color:var(--good);border-color:transparent}.ft-chip-warn{color:#ffb020;border-color:#ffb020}.ft-errors{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:8px;text-align:left}.ft-error s{color:var(--bad)}.ft-error b{color:var(--good)}.ft-error-why{color:var(--text-dim);font-size:12px;margin-top:2px}.ft-error-saved{color:var(--text-dim);font-size:11px}.ft-input-row{display:flex;gap:8px;padding:10px;border-top:1px solid var(--surface-2)}.ft-input{flex:1;font-family:inherit;font-size:15px;resize:none;border:1px solid var(--surface-2);border-radius:12px;background:var(--surface-2);color:var(--text);padding:10px 14px;outline:none}.ft-input:focus{border-color:var(--accent)}.ft-mic,.ft-send{width:44px;border:none;border-radius:12px;font-size:17px;cursor:pointer}.ft-mic{background:var(--surface-2);color:var(--text)}.ft-send{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.ip-answer{min-height:110px}.ip-score{font-size:52px;font-weight:800;text-align:center;line-height:1.1}.ip-score small{font-size:18px;color:var(--text-dim);font-weight:600}.ip-score-ok{color:var(--good)}.ip-score-bad{color:var(--bad)}.ip-point{font-size:13px;line-height:1.45}.ip-covered{color:var(--good)}.ip-missed{color:var(--bad)}.ip-factual{color:#ffb020}.ip-sample summary{cursor:pointer;color:var(--accent-2);font-size:14px}.ed-original{margin:0;font-style:italic;color:var(--bad);text-decoration:line-through;text-decoration-color:#e74c3c80}.gr-map{max-width:560px;margin:0 auto}.gr-band-title{margin:14px 0 4px;font-size:13px;color:var(--accent-2);letter-spacing:.08em}.gr-topic{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-family:inherit;font-size:15px;color:var(--text);background:var(--surface-2);border:1px solid transparent;border-radius:10px;padding:10px 14px;cursor:pointer}.gr-topic:hover{border-color:var(--accent)}.gr-topic-status{width:20px}.gr-topic-title{flex:1}.gr-recommend{font-family:inherit;font-size:14px;text-align:left;color:var(--text);background:#ffb0201f;border:1px solid #ffb020;border-radius:10px;padding:10px 14px;cursor:pointer}.gr-theory-text{margin:0;font-size:16px;line-height:1.6}.gr-example{background:var(--surface-2);border-radius:10px;padding:10px 14px}.gr-example-en{font-size:15px}.gr-example-ru{color:var(--text-dim);font-size:13px;margin-top:2px}.gr-pitfall{background:#e74c3c1a;border:1px solid rgba(231,76,60,.4);border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.5}.ob-main{display:grid;place-items:center;min-height:80vh}.ob-card{max-width:440px;width:100%;text-align:center;align-items:center}.ob-icon{font-size:52px;line-height:1}.ob-dots{display:flex;gap:8px;justify-content:center}.ob-dot{width:8px;height:8px;border-radius:50%;background:var(--surface-2)}.ob-dot-active{background:var(--accent-2)}.ob-card .hq-options,.ob-card .vr-input,.ob-card .hq-next{width:100%;text-align:center}.skills-band-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--surface-2);padding-top:12px}.account-card{max-width:460px;margin:0 auto}.account-devlink{color:var(--accent-2);font-weight:600}.account-error{color:var(--bad)}.streak-risk{display:inline-block;animation:pulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
