@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Outfit:wght@400;500;600;700;800&display=swap";
:root,[data-theme=dark]{--bg-primary:#0a0a12;--bg-secondary:#12121f;--bg-card:#1a1a2e;--bg-card-hover:#222240;--bg-glass:#1a1a2eb3;--border-subtle:#ffffff0f;--border-glow:#6366f14d;--accent-primary:#6366f1;--accent-secondary:#8b5cf6;--accent-gradient:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#a855f7 100%);--accent-glow:#6366f126;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--english-primary:#3b82f6;--english-gradient:linear-gradient(135deg,#3b82f6,#6366f1);--spanish-primary:#f97316;--spanish-gradient:linear-gradient(135deg,#f97316,#ef4444);--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--navbar-bg:#0a0a12d9;--shadow-card:0 8px 40px #0000004d;--shadow-hover:0 12px 50px #00000073}[data-theme=light]{--bg-primary:#f0f4ff;--bg-secondary:#e8eef8;--bg-card:#fff;--bg-card-hover:#f5f8ff;--bg-glass:#ffffffd1;--border-subtle:#00000014;--border-glow:#6366f159;--accent-primary:#4f46e5;--accent-secondary:#7c3aed;--accent-gradient:linear-gradient(135deg,#4f46e5 0%,#7c3aed 50%,#9333ea 100%);--accent-glow:#4f46e51f;--success:#059669;--warning:#d97706;--error:#dc2626;--english-primary:#2563eb;--english-gradient:linear-gradient(135deg,#2563eb,#4f46e5);--spanish-primary:#ea580c;--spanish-gradient:linear-gradient(135deg,#ea580c,#dc2626);--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--navbar-bg:#f0f4ffe0;--shadow-card:0 4px 24px #4f46e514;--shadow-hover:0 8px 32px #4f46e524}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;max-width:100vw;min-height:100vh;font-family:Inter,-apple-system,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.navbar{z-index:100;background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-brand{letter-spacing:-.5px;color:var(--text-primary);align-items:center;gap:10px;font-family:Outfit,sans-serif;font-size:1.75rem;font-weight:900;text-decoration:none;display:flex}.navbar-brand span{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.navbar-links{gap:8px;display:flex}.navbar-link{border-radius:var(--radius-sm);color:var(--text-secondary);padding:8px 16px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s}.navbar-link:hover{background:var(--bg-card);color:var(--text-primary)}.navbar-link.active{background:var(--accent-glow);color:var(--accent-primary)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6366f14d}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border-subtle);background:0 0}.btn-ghost:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-glow)}.btn-icon{border-radius:50%;width:48px;height:48px;padding:0}.btn-lg{padding:16px 32px;font-size:1.05rem}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;transition:all .3s}.card:hover{border-color:var(--border-glow);box-shadow:0 8px 40px #0000004d}.card-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px}.landing-hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:80px 24px 40px;display:flex;position:relative;overflow:hidden}.landing-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#6366f126 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:10%;left:50%;transform:translate(-50%)}.landing-hero h1{margin-bottom:20px;font-family:Outfit,sans-serif;font-size:4rem;font-weight:800;line-height:1.1}.landing-hero h1 .gradient{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.landing-hero p{color:var(--text-secondary);max-width:520px;margin-bottom:40px;font-size:1.2rem;line-height:1.6}.lang-cards{flex-wrap:wrap;justify-content:center;gap:20px;margin-bottom:40px;display:flex}.lang-card{text-align:center;cursor:pointer;width:240px;padding:32px 24px;transition:all .3s}.lang-card:hover{transform:translateY(-4px)}.lang-card .emoji{margin-bottom:12px;font-size:3rem;display:block}.lang-card h3{margin-bottom:8px;font-family:Outfit,sans-serif;font-size:1.3rem}.lang-card p{color:var(--text-muted);margin-bottom:0;font-size:.85rem}.lang-card.english{border-color:#3b82f64d}.lang-card.english:hover{border-color:var(--english-primary);box-shadow:0 0 30px #3b82f626}.lang-card.spanish{border-color:#f973164d}.lang-card.spanish:hover{border-color:var(--spanish-primary);box-shadow:0 0 30px #f9731626}@media (max-width:767px){.navbar-hidden-mobile{display:none!important}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.lesson-v2{background:var(--bg-primary);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.lesson-avatar-zone{background:radial-gradient(ellipse at 50% 45%,#6366f12e 0%,transparent 55%),linear-gradient(180deg,#0a0a18 0%,#14142a 60%,var(--bg-primary)100%);flex:0 0 58dvh;position:relative;overflow:hidden}.lesson-avatar-zone canvas{display:block;width:100%!important;height:100%!important}.lesson-avatar-zone:after{content:"";background:linear-gradient(to top,var(--bg-primary)0%,#0a0a1866 50%,transparent 100%);pointer-events:none;z-index:1;height:120px;position:absolute;bottom:0;left:0;right:0}.lesson-topbar{z-index:10;background:linear-gradient(#0000008c 0%,#0000 100%);justify-content:space-between;align-items:center;height:52px;padding:0 12px;display:flex;position:absolute;top:0;left:0;right:0}.lesson-back-btn{color:#ffffffeb;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:100px;padding:6px 14px;font-size:.78rem;transition:background .15s}.lesson-back-btn:hover{background:#ffffff38}.lesson-topbar-title{color:#fffffff2;text-shadow:0 1px 4px #0009;text-align:center;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:.88rem;font-weight:600;display:flex}.lesson-topbar-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse}.lesson-call-btn{color:#ffffffeb;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;transition:all .2s;display:flex}.lesson-call-btn:hover{background:#ffffff40}.lesson-call-btn.call-active{background:var(--danger,#ef4444);border-color:var(--danger,#ef4444);box-shadow:0 0 16px #ef444466}.lesson-call-btn.recording{animation:1s infinite pulse}.lesson-call-btn:disabled{opacity:.5;cursor:not-allowed}.lesson-chat-zone{background:var(--bg-primary);border-top:1px solid var(--border-subtle);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}@media (min-width:768px){.lesson-v2{flex-direction:row;top:64px}.lesson-topbar{background:linear-gradient(#00000061 0%,#0000 100%)}.lesson-avatar-zone{flex:1;min-width:0;height:100%}.lesson-avatar-zone:after{background:linear-gradient(#0000 0%,#0a0a1899 100%);height:80px}.lesson-chat-zone{border-top:none;border-left:1px solid var(--border-subtle);flex:0 0 420px;height:100%}}@media (min-width:1280px){.lesson-chat-zone{flex:0 0 480px}}.chat-panel{background:var(--bg-primary);flex-direction:column;height:calc(100vh - 64px);display:flex}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--border-subtle)transparent;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.message{gap:10px;max-width:90%;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.teacher{align-self:flex-start}.message.user{flex-direction:row-reverse;align-self:flex-end;margin-left:auto}.message-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:flex}.message.teacher .message-avatar{background:var(--accent-glow)}.message.user .message-avatar{background:#10b98126}.message-bubble{border-radius:var(--radius-md);padding:12px 16px;font-size:.95rem;line-height:1.5}.message.teacher .message-bubble{background:var(--bg-card);border:1px solid var(--border-subtle);border-top-left-radius:4px}.message.user .message-bubble{background:var(--accent-primary);color:#fff;border-top-right-radius:4px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.streaming-cursor{color:var(--accent-primary);vertical-align:baseline;margin-left:2px;font-size:1em;line-height:1;animation:.8s step-end infinite blink;display:inline-block}.message-bubble.streaming{min-width:40px}.coaching-feedback{border-radius:var(--radius-md);color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b33;align-self:flex-start;max-width:90%;padding:12px 16px;font-size:.85rem;animation:.3s fadeIn}.coaching-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);max-width:85%;padding:10px 14px;animation:.4s fadeIn;box-shadow:0 1px 4px #0000000f}.coaching-card-header{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:6px;margin-bottom:0;font-size:.72rem;font-weight:700;display:flex}.coaching-card-body{color:var(--text-secondary);margin-top:8px;font-size:.84rem;line-height:1.55}.pronunciation-badge{border-radius:100px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.pronunciation-badge.good{color:var(--success);background:#10b98126}.pronunciation-badge.ok{color:var(--warning);background:#f59e0b26}.pronunciation-badge.improve{color:var(--error);background:#ef444426}.chat-input-bar{border-top:1px solid var(--border-subtle);background:var(--bg-secondary);align-items:center;gap:10px;padding:16px 20px;display:flex}.chat-input{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);outline:none;flex:1;padding:12px 16px;font-family:Inter,sans-serif;font-size:.95rem;transition:border-color .2s}.chat-input:focus{border-color:var(--accent-primary)}.chat-input::placeholder{color:var(--text-muted)}.mic-btn{border:2px solid var(--border-subtle);background:var(--bg-card);width:48px;height:48px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.3rem;transition:all .2s;display:flex}.mic-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.mic-btn.recording{border-color:var(--error);color:var(--error);background:#ef444426;animation:1s infinite pulse}@media (max-width:768px){.landing-hero h1{font-size:2.5rem}.lang-cards{flex-direction:column;align-items:center}.navbar-links{display:none}.drill-cards{grid-template-columns:1fr}.drill-session-header{padding:12px 16px}.drill-question-area{padding:16px}.choices-grid{grid-template-columns:1fr}.result-stats{gap:16px}}.practice-hub{flex-direction:column;align-items:center;min-height:100vh;padding:100px 24px 60px;display:flex;position:relative}.practice-hub:before{content:"";pointer-events:none;background:radial-gradient(circle,#8b5cf61f 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;top:5%;left:50%;transform:translate(-50%)}.practice-header{text-align:center;margin-bottom:48px}.practice-header h1{margin-bottom:16px;font-family:Outfit,sans-serif;font-size:3.2rem;font-weight:800;line-height:1.1}.practice-header p{color:var(--text-secondary);max-width:480px;margin:0 auto 24px;font-size:1.1rem;line-height:1.6}.lang-toggle{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.toggle-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:10px 20px;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500;transition:all .2s}.toggle-btn.active{background:var(--accent-gradient);color:#fff}.toggle-btn:hover:not(.active){background:var(--bg-card-hover);color:var(--text-primary)}.drill-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;width:100%;max-width:1000px;margin-bottom:32px;display:grid}.drill-hub-card{text-align:center;cursor:pointer;padding:32px 24px;transition:all .3s;position:relative;overflow:hidden}.drill-hub-card:hover{box-shadow:0 12px 40px var(--hover-shadow);transform:translateY(-6px);border-color:var(--hover-border)!important}.drill-hub-emoji{margin-bottom:16px;font-size:3rem;display:block}.drill-hub-card h3{margin-bottom:8px;font-family:Outfit,sans-serif;font-size:1.2rem}.drill-hub-card p{color:var(--text-muted);margin-bottom:12px;font-size:.85rem}.review-badge{color:var(--warning);background:#f59e0b26;border-radius:100px;padding:4px 12px;font-size:.75rem;font-weight:600;animation:2s infinite pulse;display:inline-block}.practice-stats-bar{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);gap:32px;padding:16px 32px;display:flex}.stat-item{color:var(--text-secondary);align-items:center;gap:8px;font-size:.9rem;display:flex}.stat-icon{font-size:1.2rem}.drill-session{flex-direction:column;min-height:100vh;padding-top:64px;display:flex}.drill-session-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);align-items:center;gap:16px;padding:16px 24px;display:flex}.progress-bar-wrapper{flex:1;align-items:center;gap:12px;display:flex}.progress-bar{background:var(--bg-card);border-radius:100px;flex:1;height:8px;overflow:hidden}.progress-fill{background:var(--accent-gradient);border-radius:100px;height:100%;transition:width .4s cubic-bezier(.34,1.56,.64,1)}.progress-text{color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:600}.drill-type-label{color:var(--text-secondary);white-space:nowrap;font-size:.85rem;font-weight:500}.drill-question-area{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.drill-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:560px;margin:16px auto;padding:40px 32px}.drill-card-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.drill-badge{border-radius:100px;align-items:center;gap:4px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.drill-badge.vocab{color:var(--english-primary);background:#3b82f626}.drill-badge.grammar{color:var(--accent-primary);background:#6366f126}.drill-badge.pronunciation{color:var(--spanish-primary);background:#f9731626}.drill-hint{color:var(--text-muted);font-size:.8rem}.drill-word{text-align:center;background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:8px;font-family:Outfit,sans-serif;font-size:2.5rem;font-weight:700}.drill-sentence{text-align:center;color:var(--text-secondary);margin-bottom:24px;font-size:1rem;line-height:1.6}.grammar-sentence{color:var(--text-primary);font-size:1.2rem}.grammar-blank{border-bottom:2px solid var(--accent-primary);min-width:80px;color:var(--accent-primary);text-align:center;padding:2px 12px;font-weight:600;transition:all .3s;display:inline-block}.grammar-blank.filled{border-bottom-color:var(--success);color:var(--success)}.drill-prompt{text-align:center;color:var(--text-muted);margin-bottom:20px;font-size:.9rem}.choices-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice-btn{background:var(--bg-secondary);border:2px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:10px;padding:14px 18px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.choice-btn:hover:not(:disabled){border-color:var(--accent-primary);background:#6366f11a;transform:translateY(-1px)}.choice-index{background:var(--bg-card);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.choice-btn.correct{border-color:var(--success);background:#10b98126;animation:.4s correctPop}.choice-btn.correct .choice-index{background:var(--success);color:#fff;border-color:var(--success)}.choice-btn.incorrect{border-color:var(--error);background:#ef444426;animation:.4s shake}.choice-btn.incorrect .choice-index{background:var(--error);color:#fff;border-color:var(--error)}.choice-btn.dimmed{opacity:.4}@keyframes correctPop{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.drill-card-area-wrapper{width:100%;max-width:560px;padding-top:20px;position:relative}.drill-corner-badge{z-index:10;filter:drop-shadow(0 2px 8px #0003);animation:.35s cubic-bezier(.34,1.56,.64,1) cornerBadgePop;position:absolute;top:0;left:12px}.drill-corner-badge.correct{color:#10b981}.drill-corner-badge.incorrect{color:#ef4444}@keyframes cornerBadgePop{0%{opacity:0;transform:scale(0)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}.drill-answered-correct .drill-card{background:#10b98114;border-color:#10b9814d;transition:background .3s,border-color .3s}.drill-answered-incorrect .drill-card{background:#ef44440f;border-color:#ef444433;transition:background .3s,border-color .3s}@keyframes drillSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-30vw)}}@keyframes drillSlideIn{0%{opacity:0;transform:translate(30vw)}to{opacity:1;transform:translate(0)}}.drill-slide-out .drill-card{pointer-events:none;animation:.24s ease-in forwards drillSlideOut}.drill-slide-in .drill-card{animation:.24s ease-out forwards drillSlideIn}.pronunciation-target{text-align:center;margin-bottom:32px}.pronunciation-text{margin-bottom:8px;font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:600;line-height:1.4}.pronunciation-translation{color:var(--text-muted);margin-bottom:16px;font-size:.9rem}.listen-btn{font-size:.85rem;padding:8px 16px!important}.recording-area{flex-direction:column;align-items:center;gap:12px;display:flex}.record-btn{border:3px solid var(--border-subtle);background:var(--bg-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;transition:all .3s;display:flex}.record-btn:hover{border-color:var(--accent-primary)}.record-btn.recording{border-color:var(--error);background:#ef44441a;animation:1.5s infinite recordPulse}.record-btn.processing{border-color:var(--warning);background:#f59e0b1a}.record-icon{font-size:2rem}.record-icon.pulse{animation:1s infinite pulse}@keyframes recordPulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 16px #ef444400}}.recording-hint{color:var(--text-muted);font-size:.85rem}.score-result{flex-direction:column;align-items:center;gap:8px;animation:.4s fadeIn;display:flex}.score-circle{border-radius:50%;justify-content:center;align-items:center;gap:2px;width:100px;height:100px;display:flex}.score-circle.good{border:3px solid var(--success);background:#10b98126}.score-circle.ok{border:3px solid var(--warning);background:#f59e0b26}.score-circle.improve{border:3px solid var(--error);background:#ef444426}.score-number{font-family:Outfit,sans-serif;font-size:2rem;font-weight:800}.score-circle.good .score-number{color:var(--success)}.score-circle.ok .score-number{color:var(--warning)}.score-circle.improve .score-number{color:var(--error)}.score-label{color:var(--text-muted);font-size:.8rem}.score-message{color:var(--text-secondary);font-size:.9rem}.next-btn{margin-top:24px}.session-result{flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 64px);padding:40px 24px;animation:.5s fadeIn;display:flex}.result-emoji{margin-bottom:8px;font-size:4rem}.result-title{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:32px;font-family:Outfit,sans-serif;font-size:2rem;font-weight:700}.result-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);text-align:center;width:100%;max-width:400px;margin-bottom:32px;padding:40px}.result-type{color:var(--text-muted);margin-bottom:24px;font-size:.85rem}.result-score-ring{width:120px;height:120px;margin:0 auto 24px;position:relative}.ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--bg-secondary);stroke-width:8px}.ring-fill{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dasharray 1s}.ring-label{align-items:baseline;gap:2px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ring-number{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:2.2rem;font-weight:800}.ring-percent{color:var(--text-muted);font-size:1rem;font-weight:600}.result-stats{justify-content:center;gap:32px;margin-bottom:20px;display:flex}.result-stat{text-align:center}.stat-value{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700}.stat-value.correct{color:var(--success)}.stat-value.incorrect{color:var(--error)}.stat-label{color:var(--text-muted);margin-top:4px;font-size:.75rem}.result-srs-note{color:var(--text-muted);border-radius:var(--radius-md);background:#6366f114;padding:12px;font-size:.8rem}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.drill-loading{min-height:calc(100vh - 64px);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.loading-spinner{border:3px solid var(--border-subtle);border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dashboard{max-width:1440px;min-height:100vh;margin:0 auto;padding:100px 24px 60px}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;display:flex}.dashboard-header h1{font-family:Outfit,sans-serif;font-size:3rem;font-weight:800;line-height:1.1}.dashboard-stats-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px;margin-bottom:16px;display:grid}.dashboard-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;transition:all .3s}.dashboard-card:hover{border-color:var(--border-glow)}.card-title{color:var(--text-secondary);margin-bottom:16px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:600}.card-title-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-title-row .card-title{margin-bottom:0}.streak-card{text-align:center;background:linear-gradient(135deg,var(--bg-card)0%,#6366f114 100%);flex-direction:column;justify-content:center;align-items:center;display:flex}.streak-flame{align-items:baseline;gap:4px;margin-bottom:4px;display:flex}.flame-emoji{font-size:2.2rem;animation:2s ease-in-out infinite flamePulse}@keyframes flamePulse{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.15)translateY(-3px)}}.streak-number{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:3rem;font-weight:900;line-height:1}.streak-label{color:var(--text-secondary);margin-bottom:8px;font-size:.9rem;font-weight:600}.streak-sub{color:var(--text-muted);font-size:.75rem}.today-stats-grid{justify-content:center;gap:20px;display:flex}.today-stat{text-align:center}.today-stat-value{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:2rem;font-weight:800;line-height:1.2}.today-stat-label{color:var(--text-muted);margin-top:2px;font-size:.75rem}.heatmap-card{margin-bottom:16px}.heatmap-container{overflow-x:auto}.heatmap-grid{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;width:max-content;min-width:100%;display:grid}.heatmap-cell{border:1px solid #ffffff08;border-radius:3px;width:14px;height:14px;transition:all .2s}.heatmap-cell:hover{border-color:var(--accent-primary);transform:scale(1.3)}.heatmap-legend{justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;display:flex}.heatmap-legend-label{color:var(--text-muted);padding:0 4px;font-size:.7rem}.heatmap-legend .heatmap-cell{width:12px;height:12px}.heatmap-legend .heatmap-cell:hover{border-color:#ffffff08;transform:none}.dashboard-bottom-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.drill-stats-list{flex-direction:column;gap:16px;display:flex}.drill-stat-row{align-items:center;gap:12px;display:flex}.drill-stat-info{align-items:center;gap:8px;min-width:80px;display:flex}.drill-stat-emoji{font-size:1.3rem}.drill-stat-name{color:var(--text-secondary);font-size:.9rem;font-weight:600}.drill-stat-bar-wrapper{flex:1}.drill-stat-bar{background:var(--bg-secondary);border-radius:100px;height:8px;margin-bottom:4px;overflow:hidden}.drill-stat-bar-fill{border-radius:100px;height:100%;transition:width .6s}.drill-stat-numbers{justify-content:space-between;font-size:.72rem;font-weight:600;display:flex}.goal-form{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:16px;padding:16px;animation:.3s fadeIn}.goal-input{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);outline:none;margin-bottom:10px;padding:10px 14px;font-family:Inter,sans-serif;font-size:.9rem;transition:border-color .2s}.goal-input:focus{border-color:var(--accent-primary)}.goal-input::placeholder{color:var(--text-muted)}.goal-form-row{align-items:center;gap:8px;display:flex}.goal-select{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;outline:none;flex:1;padding:8px 12px;font-family:Inter,sans-serif;font-size:.85rem}.goal-number-input{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:80px;color:var(--text-primary);text-align:center;outline:none;padding:8px 12px;font-family:Inter,sans-serif;font-size:.85rem}.goals-list{flex-direction:column;gap:12px;display:flex}.goals-empty{text-align:center;color:var(--text-muted);padding:24px}.goals-empty span{margin-bottom:8px;font-size:2rem;display:block}.goals-empty p{font-size:.85rem}.goal-item{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;transition:all .2s}.goal-item:hover{border-color:var(--border-glow)}.goal-item-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.goal-item-title{color:var(--text-primary);font-size:.9rem;font-weight:500}.goal-delete-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:all .2s;display:flex}.goal-delete-btn:hover{color:var(--error);background:#ef444426}.goal-progress-bar{background:var(--bg-card);border-radius:100px;height:6px;margin-bottom:6px;overflow:hidden}.goal-progress-fill{background:var(--accent-gradient);border-radius:100px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.goal-progress-label{color:var(--text-muted);align-items:center;gap:8px;font-size:.75rem;display:flex}.goal-complete-badge{color:var(--success);font-weight:600}.session-table-wrapper{overflow-x:auto}.session-table{border-collapse:collapse;width:100%;font-size:.88rem}.session-table thead th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle);padding:10px 12px;font-size:.75rem;font-weight:600}.session-table tbody tr{transition:background .2s}.session-table tbody tr:hover{background:var(--bg-card-hover)}.session-table tbody td{color:var(--text-secondary);border-bottom:1px solid #ffffff05;padding:10px 12px}.session-date{white-space:nowrap}.accuracy-badge{border-radius:100px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.accuracy-badge.good{color:var(--success);background:#10b98126}.accuracy-badge.ok{color:var(--warning);background:#f59e0b26}.accuracy-badge.improve{color:var(--error);background:#ef444426}@media (max-width:768px){.dashboard-header h1{font-size:2.2rem}.dashboard-stats-row{grid-template-columns:1fr 1fr}.streak-card{flex-direction:row;justify-content:flex-start;gap:16px}.dashboard-bottom-grid{grid-template-columns:1fr}}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:80px 24px 40px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#6366f11a 0%,#0000 70%);border-radius:50%;width:800px;height:800px;position:absolute;top:-200px;right:-200px}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#8b5cf614 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;bottom:-100px;left:-100px}.login-container{z-index:1;grid-template-columns:380px 1fr;align-items:center;gap:60px;width:100%;max-width:900px;display:grid;position:relative}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);text-align:center;padding:40px 32px}.login-logo{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.login-logo-icon{font-size:2.4rem}.login-logo-text{font-family:Outfit,sans-serif;font-size:2rem;font-weight:800}.login-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:.95rem;line-height:1.6}.login-google-btn{color:#333;border-radius:var(--radius-md);cursor:pointer;background:#fff;border:none;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px 24px;font-family:Inter,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.login-google-btn:hover{background:#f1f5f9;transform:translateY(-2px);box-shadow:0 8px 30px #0003}.login-divider{color:var(--text-muted);align-items:center;gap:16px;margin:24px 0;font-size:.8rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.login-guest-btn{width:100%;color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:12px 24px;font-family:Inter,sans-serif;font-size:.9rem;font-weight:500;transition:all .2s}.login-guest-btn:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-glow)}.login-note{color:var(--text-muted);margin-top:20px;font-size:.75rem;line-height:1.5}.login-features h2{margin-bottom:32px;font-family:Outfit,sans-serif;font-size:2.5rem;font-weight:800;line-height:1.15}.login-features-grid{flex-direction:column;gap:20px;display:flex}.login-feature-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:flex-start;gap:16px;padding:16px;transition:all .2s;display:flex}.login-feature-item:hover{border-color:var(--border-glow);transform:translate(4px)}.login-feature-emoji{flex-shrink:0;font-size:1.6rem}.login-feature-item h3{margin-bottom:4px;font-family:Outfit,sans-serif;font-size:1rem;font-weight:600}.login-feature-item p{color:var(--text-muted);font-size:.82rem;line-height:1.4}.navbar-auth{align-items:center;gap:8px;display:flex}.navbar-auth-skeleton{background:var(--bg-card);border-radius:50%;width:36px;height:36px;animation:2s infinite pulse}.user-menu-wrapper{position:relative}.user-avatar-btn{border:2px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:all .2s;display:flex;overflow:hidden}.user-avatar-btn:hover{border-color:var(--accent-primary);box-shadow:0 0 16px var(--accent-glow)}.user-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.user-avatar-fallback{color:var(--text-primary);font-size:1rem;font-weight:600}.user-dropdown{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);z-index:200;min-width:220px;animation:.2s fadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 12px 40px #0006}.user-dropdown-header{padding:14px 16px}.user-dropdown-name{color:var(--text-primary);margin-bottom:2px;font-size:.9rem;font-weight:600}.user-dropdown-email{color:var(--text-muted);font-size:.75rem}.user-dropdown-divider{background:var(--border-subtle);height:1px}.user-dropdown-item{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:10px 16px;font-family:Inter,sans-serif;font-size:.85rem;text-decoration:none;transition:all .15s;display:flex}.user-dropdown-item:hover{background:var(--bg-card-hover);color:var(--text-primary)}.user-dropdown-logout:hover{color:var(--error)}@media (max-width:768px){.login-container{grid-template-columns:1fr;gap:32px}.login-features{text-align:center;order:-1}.login-features h2{font-size:2rem}.login-feature-item{text-align:center;flex-direction:column;align-items:center}}.streak-week-card{margin-bottom:16px}.streak-week-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.streak-week-info{align-items:center;gap:12px;display:flex}.streak-flame-big{font-size:2.2rem}.streak-week-number{color:var(--text-primary);font-size:2rem;font-weight:800;line-height:1}.streak-week-unit{color:var(--text-secondary);margin-left:4px;font-size:1rem;font-weight:500}.streak-week-sub{color:var(--text-muted);margin-top:2px;font-size:.8rem}.streak-days-row{align-items:center;gap:8px;display:flex}.streak-day-item{flex-direction:column;align-items:center;gap:4px;display:flex}.streak-day-dot{background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:50%;width:28px;height:28px;transition:all .2s}.streak-day-dot.studied{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-color:var(--accent-primary);box-shadow:0 0 10px var(--accent-glow)}.streak-day-dot.today{border-color:var(--warning);box-shadow:0 0 0 2px #f59e0b4d}.streak-day-dot.studied.today{box-shadow:0 0 10px var(--accent-glow),0 0 0 2px #f59e0b66}.streak-day-label{color:var(--text-muted);font-size:.7rem;font-weight:500}.streak-day-item.today .streak-day-label{color:var(--warning);font-weight:700}.cta-card{margin-bottom:16px;transition:transform .2s,box-shadow .2s}.cta-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #00000026}.cta-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.cta-texts{flex:1;min-width:200px}.cta-title{color:var(--text-primary);margin-bottom:4px;font-size:1rem;font-weight:700}.cta-sub{color:var(--text-secondary);margin-bottom:4px;font-size:.82rem}.cta-accuracy{color:var(--text-muted);font-size:.8rem}.cta-btn{white-space:nowrap;flex-shrink:0}.today-stat-mini{text-align:center;flex:1;min-width:120px;padding:16px 12px}.today-stat-mini-value{color:var(--text-primary);margin-bottom:6px;font-size:2rem;font-weight:800;line-height:1}.today-stat-mini-label{color:var(--text-muted);font-size:.75rem;line-height:1.3}.vocab-coverage-card{margin-bottom:16px}.vocab-coverage-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.vocab-coverage-sub{color:var(--text-muted);margin-top:2px;font-size:.8rem}.vocab-coverage-pct{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2.2rem;font-weight:800}.vocab-coverage-bar-bg{background:var(--bg-card);border-radius:999px;width:100%;height:12px;margin-bottom:8px;overflow:hidden}.vocab-coverage-bar-fill{background:linear-gradient(90deg,var(--english-primary),var(--accent-primary));border-radius:999px;height:100%;transition:width .6s}.vocab-coverage-count{color:var(--text-muted);font-size:.82rem}.weekly-chart-card{margin-bottom:16px}.weekly-chart-legend{color:var(--text-secondary);align-items:center;gap:12px;margin-bottom:16px;font-size:.78rem;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.weekly-chart{align-items:flex-end;gap:8px;padding:0 4px;display:flex}.weekly-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.weekly-bar-stack{flex-direction:column-reverse;justify-content:flex-start;align-items:center;gap:1px;width:100%;display:flex}.weekly-bar-seg{border-radius:4px 4px 0 0;width:100%;min-height:4px;transition:height .4s}.weekly-bar-empty{background:var(--border-subtle);opacity:.4;border-radius:4px;width:100%;height:4px}.weekly-bar-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.weekly-bar-label.today{color:var(--accent-primary);font-weight:700}.weekly-bar-minutes{color:var(--text-muted);font-size:.65rem}@media (max-width:640px){.streak-week-header{flex-direction:column;align-items:flex-start}.streak-days-row{justify-content:space-between;align-self:stretch}.streak-day-dot{width:22px;height:22px}.today-stat-mini-value{font-size:1.5rem}.vocab-coverage-pct{font-size:1.8rem}.weekly-chart{gap:4px}}.db-top-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.db-streak-wide{grid-column:1/-1}.db-kpi{text-align:center;padding:20px 16px}.db-kpi-val{color:var(--text-primary);margin-bottom:8px;font-size:2.2rem;font-weight:800;line-height:1}.db-kpi-label{color:var(--text-muted);font-size:.75rem;line-height:1.4}.streak-kpi-inner{flex-direction:column;gap:16px;display:flex}.streak-kpi-left{align-items:center;gap:12px;display:flex}.streak-kpi-num{font-size:2.2rem;font-weight:800;line-height:1}.streak-kpi-unit{color:var(--text-secondary);margin-left:4px;font-size:1rem;font-weight:500}.streak-kpi-sub{color:var(--text-muted);margin-top:4px;font-size:.8rem}.streak-dots-row{flex-wrap:wrap;gap:8px;display:flex}.sdot-wrap{flex-direction:column;align-items:center;gap:4px;display:flex}.sdot{background:var(--bg-card);border:2px solid var(--border-subtle);border-radius:50%;width:28px;height:28px;transition:all .2s}.sdot.on{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-color:var(--accent-primary);box-shadow:0 0 10px var(--accent-glow)}.sdot.cur{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b4d}.sdot.on.cur{box-shadow:0 0 10px var(--accent-glow),0 0 0 2px #f59e0b66}.sdot-label{color:var(--text-muted);font-size:.68rem}.sdot-wrap.today .sdot-label{color:#f59e0b;font-weight:700}.db-middle-grid{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.db-left-panel{flex-direction:column;gap:16px;display:flex}.db-cta{border-left-width:4px}.db-cta-title{color:var(--text-primary);margin-bottom:6px;font-size:1rem;font-weight:700}.db-cta-sub{color:var(--text-secondary);margin-bottom:4px;font-size:.82rem}.db-cta-acc{color:var(--text-muted);font-size:.78rem}.db-weekly-chart{flex-direction:column;display:flex}.db-weekly-bars{flex:1;align-items:flex-end;gap:8px;padding:8px 0;display:flex}.db-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.db-bar-value{color:var(--text-muted);align-items:center;height:14px;font-size:.65rem;display:flex}.db-bar-stack{flex-direction:column-reverse;align-items:center;gap:1px;width:100%;display:flex}.db-bar-stack>div{width:100%}.db-bar-day{font-size:.75rem}.db-bottom-grid{grid-template-columns:1fr;gap:16px;margin-top:16px;display:grid}@media (min-width:1024px){.dashboard{padding:90px 48px 60px}.dashboard-header h1{font-size:2.6rem}.db-top-row{grid-template-columns:2fr 1fr 1fr 1fr 1fr}.db-streak-wide{grid-column:auto}.streak-kpi-inner{flex-direction:row;justify-content:space-between;align-items:center}.db-middle-grid{flex-direction:row;align-items:stretch}.db-left-panel{flex:2;min-width:0}.db-weekly-chart{flex:3;min-width:0}.db-weekly-bars{height:160px}.db-bar-stack{height:140px!important}.db-bottom-grid{grid-template-columns:1fr 1fr}.db-kpi-val{font-size:2.6rem}.db-kpi-label{font-size:.8rem}.sdot{width:34px;height:34px}.streak-dots-row{gap:10px}}@media (min-width:1280px){.dashboard{padding:90px 64px 60px}.db-kpi-val{font-size:3rem}.db-weekly-bars{height:180px}.db-bar-stack{height:160px!important}}.drill-hub-icon{background:color-mix(in srgb,currentColor 10%,transparent);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;transition:transform .2s;display:flex}.drill-hub-card:hover .drill-hub-icon{transform:scale(1.08)}.result-icon-wrap{filter:drop-shadow(0 0 20px);justify-content:center;margin-bottom:12px;display:flex}.drill-stat-icon{background:color-mix(in srgb,currentColor 12%,transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.combo-badge{color:#fff;z-index:200;pointer-events:none;background:linear-gradient(135deg,#f59e0b,#ef4444);border-radius:999px;padding:8px 24px;font-size:1rem;font-weight:800;animation:.3s cubic-bezier(.34,1.56,.64,1) comboIn;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #f59e0b80}@keyframes comboIn{0%{opacity:0;transform:translate(-50%)scale(.7)}to{opacity:1;transform:translate(-50%)scale(1)}}.retry-notice{color:var(--text-secondary);border:1px solid var(--border-subtle);z-index:200;pointer-events:none;background:#1e1e2df2;border-radius:999px;align-items:center;padding:8px 20px;font-size:.82rem;animation:.25s ease-out noticeIn,.25s ease-in 1.75s forwards noticeOut;display:flex;position:fixed;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}@keyframes noticeIn{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes noticeOut{0%{opacity:1}to{opacity:0}}@media (max-width:640px){.db-top-row{grid-template-columns:1fr 1fr}.db-streak-wide{grid-column:1/-1}.streak-kpi-inner{gap:12px}.sdot{width:24px;height:24px}.db-kpi-val{font-size:1.8rem}}.theme-toggle-group{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;gap:2px;padding:3px;display:flex}.theme-toggle-btn{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:all .18s;display:flex}.theme-toggle-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.theme-toggle-btn.active{background:var(--accent-glow);color:var(--accent-primary)}.virtual-keyboard{z-index:200;background:var(--bg-secondary);border-top:1px solid var(--border-subtle);padding:0 4px env(safe-area-inset-bottom,8px);-webkit-user-select:none;user-select:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #00000024}.vkb-toolbar{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:8px 8px 6px;display:flex}.vkb-hint-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:4px 8px;font-size:.78rem;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.vkb-hint-btn:hover:not(:disabled){background:var(--bg-card);color:var(--accent-primary)}.vkb-hint-btn.used{opacity:.38;cursor:default}.vkb-toolbar-divider{flex:1}.vkb-special-row{justify-content:center;gap:4px;padding:4px 4px 0;display:flex}.vkb-key-special{min-width:32px;font-size:.88rem;background:var(--accent-glow)!important;color:var(--accent-primary)!important;border-color:var(--border-glow)!important}.vkb-keys{flex-direction:column;gap:12px;padding:12px 6px 14px;display:flex}.vkb-row{justify-content:center;gap:6px;display:flex}.vkb-row-center{padding:0 22px}.vkb-key-pad{background:0 0;border-radius:8px;flex:1;max-width:50px;height:54px}.vkb-key-pad-bottom{flex:1.6!important;max-width:100px!important}.vkb-key{background:var(--bg-card);min-width:30px;max-width:52px;height:54px;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;font-family:Inter,sans-serif;font-size:1.35rem;font-weight:400;transition:filter 80ms,transform 60ms;display:flex;box-shadow:0 1px #00000042}.vkb-key:active:not(:disabled){box-shadow:none;filter:brightness(.92);transform:translateY(1px)}.vkb-key:disabled{opacity:.35;cursor:default}.vkb-key-delete{background:var(--bg-card-hover);flex:1;max-width:50px;box-shadow:0 1px #0003}.vkb-key-space{background:var(--bg-card);max-width:none;color:var(--text-muted);flex:5;font-size:1.1rem;box-shadow:0 1px #00000042}.vkb-space-icon{font-size:1.4rem;line-height:1;transform:translateY(-4px)}.vkb-key-ok{background:var(--bg-card-hover);max-width:100px;color:var(--text-primary);flex:1.6;gap:5px;font-size:.92rem;font-weight:600;transition:background .15s,color .15s,box-shadow .1s;box-shadow:0 1px #0003}.vkb-key-ok.ready{background:var(--accent-primary);color:#fff;box-shadow:0 1px #4f46e580}.spelling-card{margin-bottom:16px}.drill-badge.spelling{color:#10b981;background:#10b9811f;border:1px solid #10b98140}.spelling-translation{color:var(--text-primary);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent-primary);margin:12px 0 20px;padding:14px 16px;font-size:1.15rem;font-weight:600;line-height:1.5}.spelling-sentence{color:var(--text-primary);flex-wrap:wrap;align-items:baseline;gap:4px;font-size:1.1rem;line-height:1.8;display:flex}.spelling-context{font-size:1.05rem}.spelling-blank{border-radius:var(--radius-sm);border-bottom:2px solid var(--accent-primary);background:var(--accent-glow);min-width:80px;color:var(--accent-primary);letter-spacing:.1em;text-align:center;padding:3px 10px;font-weight:700;transition:background .2s,color .2s,border-color .2s;display:inline-block}.spelling-blank.typing{border-color:var(--accent-secondary);background:#6366f126}.spelling-blank.correct{color:#10b981;background:#10b9812e;border-color:#10b981}.spelling-blank.incorrect{color:var(--error);border-color:var(--error);background:#ef44442e;text-decoration:line-through}.blank-placeholder{visibility:hidden;min-width:48px;display:inline-block}.spelling-correct-reveal{border-radius:var(--radius-sm);color:#10b981;background:#10b9811a;margin-top:12px;padding:8px 14px;font-size:.88rem}.spelling-hint-reveal{border-radius:var(--radius-sm);color:var(--warning);background:#f59e0b1a;margin-top:8px;padding:7px 12px;font-size:.85rem}.spelling-blank-input{border:none;border-bottom:2px solid var(--accent-primary);border-radius:var(--radius-sm)var(--radius-sm)0 0;background:var(--accent-glow);color:var(--accent-primary);font-family:inherit;font-size:inherit;letter-spacing:.1em;text-align:center;vertical-align:baseline;outline:none;width:auto;min-width:48px;padding:3px 10px;font-weight:700;transition:background .2s,border-color .2s}.spelling-blank-input:focus{border-color:var(--accent-secondary);background:#6366f133}.spelling-blank-input.typing{border-color:var(--accent-secondary);background:#6366f126}.spelling-pc-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;display:flex}.spelling-pc-hint-btn{border-radius:var(--radius-sm);color:var(--warning);cursor:pointer;background:#f59e0b14;border:1px solid #f59e0b59;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;transition:background .2s,opacity .2s;display:inline-flex}.spelling-pc-hint-btn:hover:not(:disabled){background:#f59e0b29}.spelling-pc-hint-btn.used,.spelling-pc-hint-btn:disabled{opacity:.45;cursor:not-allowed}.spelling-pc-submit-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:9px 20px;font-size:.9rem;font-weight:600;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;display:inline-flex}.spelling-pc-submit-btn.ready{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 10px var(--accent-glow)}.spelling-pc-submit-btn.ready:hover{filter:brightness(1.1)}.spelling-pc-submit-btn:disabled{opacity:.45;cursor:not-allowed}.has-keyboard{padding-bottom:340px!important}[data-theme=light] .virtual-keyboard{background:#cfd8e8;border-top-color:#0000001a;box-shadow:0 -3px 14px #0000001a}[data-theme=light] .vkb-toolbar{background:#cfd8e8;border-bottom-color:#0000001a}[data-theme=light] .vkb-key{background:#fff;border:0;box-shadow:0 1px #00000042}[data-theme=light] .vkb-key-delete,[data-theme=light] .vkb-key-pad{background:#adb9cc;box-shadow:0 1px #0003}[data-theme=light] .vkb-key-space{background:#fff;box-shadow:0 1px #00000042}[data-theme=light] .vkb-key-ok{color:#1e293b;background:#adb9cc;box-shadow:0 1px #0003}[data-theme=light] .vkb-key-ok.ready{background:var(--accent-primary);color:#fff;box-shadow:0 1px #4f46e580}.bottom-tab-bar{display:none}@media (max-width:767px){.bottom-tab-bar{z-index:1200;background:var(--bg-card);border-top:1px solid var(--border-color);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 10px #0000001a}.bottom-tab-item{color:var(--text-muted);letter-spacing:.01em;-webkit-tap-highlight-color:transparent;touch-action:manipulation;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:10px 4px 8px;font-size:.62rem;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.bottom-tab-item.active{color:var(--accent-primary)}.bottom-tab-label{white-space:nowrap;line-height:1}body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important}.navbar-links{display:none!important}.navbar{padding:0 14px;overflow:hidden}.theme-toggle-group{display:none!important}.navbar-brand{gap:6px;font-size:1.15rem}}.upgrade-banner{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text-primary);background:linear-gradient(90deg,#6366f126,#a855f726);border-bottom:1px solid #6366f159;align-items:center;gap:12px;padding:10px 18px;font-size:.85rem;display:flex;position:sticky;top:0}.upgrade-banner-icon{color:var(--accent-primary);flex-shrink:0;align-items:center;display:inline-flex}.upgrade-banner-text{flex:1;min-width:0}.upgrade-banner-text strong{color:var(--accent-primary);font-weight:700}.upgrade-banner-cta{background:var(--gradient-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:999px;flex-shrink:0;padding:6px 14px;font-size:.8rem;font-weight:600;transition:transform .15s,box-shadow .15s}.upgrade-banner-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.upgrade-banner-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:inline-flex}.upgrade-banner-dismiss:hover{color:var(--text-primary);background:#ffffff14}@media (max-width:640px){.upgrade-banner{flex-wrap:wrap;padding:10px 12px;font-size:.78rem}.upgrade-banner-text{flex-basis:100%;order:2}.upgrade-banner-cta{flex:1;order:3}.upgrade-banner-dismiss{order:1;margin-left:auto}}.upgrade-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000a6;justify-content:center;align-items:center;padding:20px;animation:.18s ease-out upgradeFadeIn;display:flex;position:fixed;inset:0}@keyframes upgradeFadeIn{0%{opacity:0}to{opacity:1}}.upgrade-modal{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:18px;width:100%;max-width:440px;padding:32px 28px 24px;animation:.22s ease-out upgradeSlideUp;position:relative;box-shadow:0 24px 60px #00000073}@keyframes upgradeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.upgrade-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:inline-flex;position:absolute;top:12px;right:12px}.upgrade-modal-close:hover{color:var(--text-primary);background:#ffffff14}.upgrade-modal-icon{background:var(--gradient-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex}.upgrade-modal-title{text-align:center;margin:0 0 8px;font-size:1.3rem;font-weight:700;line-height:1.35}.upgrade-modal-sub{text-align:center;color:var(--text-secondary);margin:0 0 22px;font-size:.88rem;line-height:1.55}.upgrade-modal-benefits{flex-direction:column;gap:10px;margin:0 0 22px;padding:0;list-style:none;display:flex}.upgrade-modal-benefits li{color:var(--text-primary);align-items:flex-start;gap:10px;font-size:.88rem;line-height:1.45;display:flex}.upgrade-modal-check{color:var(--success);flex-shrink:0;margin-top:2px}.upgrade-modal-google{color:#1f2937;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 18px;font-size:.92rem;font-weight:600;transition:box-shadow .15s,transform .15s;display:flex}.upgrade-modal-google:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.upgrade-modal-later{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:10px;padding:10px;font-size:.85rem;display:block}.upgrade-modal-later:hover{color:var(--text-primary);background:#ffffff0d}[data-theme=light] .bottom-tab-bar{background:#fff;border-top-color:#e2e8f0;box-shadow:0 -1px 8px #00000014}.courses-page,.course-detail-page,.lesson-session-page{max-width:880px;margin:0 auto;padding:24px 20px 100px}.courses-title-row h1{color:var(--text-primary);margin:0;font-size:1.8rem;font-weight:800}.courses-lang-tabs{background:var(--bg-card);border-radius:var(--radius-md);gap:8px;width:fit-content;padding:4px;display:flex}.courses-lang-tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.courses-lang-tab:hover{color:var(--text-primary)}.courses-lang-tab.active{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 12px var(--accent-glow)}.courses-grid{grid-template-columns:1fr;gap:16px;display:grid}.course-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left;align-items:center;gap:20px;padding:24px;transition:all .2s;display:flex}.course-card:hover{background:var(--bg-card-hover);border-color:var(--border-glow);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.course-card-icon{background:var(--accent-gradient);border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.course-card-level{background:var(--accent-glow);color:var(--accent-primary);border-radius:10px;margin-bottom:8px;padding:2px 10px;font-size:.72rem;font-weight:600;display:inline-block}.course-card-body h2{color:var(--text-primary);margin:0 0 4px;font-size:1.15rem;font-weight:700}.course-card-progress{color:var(--text-muted);align-items:center;gap:12px;font-size:.78rem;display:flex}.course-progress-bar{background:#ffffff0f;border-radius:3px;flex:1;height:6px;overflow:hidden}[data-theme=light] .course-progress-bar{background:#00000014}.course-progress-fill{background:var(--accent-gradient);height:100%;transition:width .4s}.course-back-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:4px;margin-bottom:12px;padding:6px 10px;font-size:.9rem;display:inline-flex}.course-back-btn:hover{color:var(--text-primary);background:var(--bg-card)}.course-detail-header{text-align:center;margin-bottom:36px}.course-detail-header h1{color:var(--text-primary);margin:0 0 8px;font-size:2rem;font-weight:800}.course-detail-header p{color:var(--text-secondary);margin:0 0 16px}.course-detail-progress{max-width:360px;color:var(--text-secondary);align-items:center;gap:12px;margin:0 auto;font-size:.85rem;display:flex}.lesson-roadmap{flex-direction:column;gap:20px;padding-left:20px;display:flex;position:relative}.lesson-roadmap:before{content:"";background:linear-gradient(180deg,var(--border-subtle),transparent);border-radius:3px;width:3px;position:absolute;top:30px;bottom:30px;left:35px}.lesson-node{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;z-index:1;align-items:flex-start;gap:16px;padding:16px;transition:all .2s;display:flex;position:relative}.lesson-node:hover:not(.lesson-locked){border-color:var(--border-glow);transform:translate(4px)}.lesson-node.lesson-locked{opacity:.5;cursor:not-allowed}.lesson-node-circle{background:var(--bg-secondary);width:36px;height:36px;color:var(--text-muted);border:2px solid var(--border-subtle);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lesson-node.lesson-completed .lesson-node-circle{background:var(--success);color:#fff;border-color:var(--success)}.lesson-node.lesson-available .lesson-node-circle,.lesson-node.lesson-in_progress .lesson-node-circle{background:var(--accent-gradient);color:#fff;border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-glow)}.lesson-node-body{flex:1;min-width:0}.lesson-node-meta{align-items:center;gap:10px;margin-bottom:4px;display:flex}.lesson-node-num{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.lesson-node-score{color:var(--success);font-size:.7rem;font-weight:600}.lesson-node-body h3{color:var(--text-primary);margin:0 0 2px;font-size:1rem;font-weight:700}.lesson-node-body p{color:var(--text-secondary);margin:0;font-size:.82rem}.lesson-session-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.lesson-session-close{background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.lesson-session-close:hover{color:var(--text-primary);background:var(--bg-card-hover)}.lesson-session-counter{color:var(--text-muted);text-align:right;min-width:50px;font-size:.85rem;font-weight:600}.lesson-session-meta{background:var(--bg-card);border-radius:var(--radius-md);flex-direction:column;gap:4px;margin-bottom:24px;padding:16px;display:flex}.lesson-session-title{color:var(--text-primary);font-size:1rem;font-weight:700}.lesson-session-focus{color:var(--text-secondary);font-size:.82rem}.lesson-feedback{border-radius:var(--radius-md);align-items:center;gap:12px;margin-top:20px;padding:16px 20px;font-weight:600;display:flex}.lesson-feedback.correct{color:var(--success);background:#10b98126}.lesson-feedback.incorrect{color:var(--error);background:#ef444426}.lesson-feedback strong{color:var(--text-primary)}.lesson-result-card{text-align:center;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);margin-top:40px;padding:48px 32px}.lesson-result-icon{border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin:0 auto 24px;display:flex}.lesson-result-icon.passed{background:var(--accent-gradient);color:#fff}.lesson-result-icon.failed{color:var(--error);background:#ef444426}.lesson-result-card h2{color:var(--text-primary);margin:0 0 16px;font-size:1.6rem;font-weight:800}.lesson-result-summary{color:var(--text-secondary);margin:0 0 20px;font-size:1.05rem}.lesson-result-summary strong{color:var(--text-primary);font-size:1.4rem}.lesson-result-threshold{color:var(--text-muted);font-size:.85rem}.lesson-result-xp{background:var(--accent-glow);color:var(--accent-primary);border-radius:24px;margin-bottom:28px;padding:8px 20px;font-size:1.1rem;font-weight:700;display:inline-block}.lesson-result-bonus{margin-left:6px;font-size:.78rem}.lesson-result-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn-primary,.btn-secondary{border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:6px;padding:12px 22px;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover{box-shadow:0 6px 20px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-card-hover);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:var(--bg-card)}.lesson-error{text-align:center;padding:60px 20px}.lesson-error p{color:var(--text-secondary);margin:16px 0 24px}.lp{width:100%;overflow-x:hidden}.lp .gradient{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.lp-eyebrow{background:var(--accent-glow);color:var(--accent-primary);letter-spacing:.04em;border-radius:24px;align-items:center;gap:6px;margin-bottom:16px;padding:6px 14px;font-size:.78rem;font-weight:600;display:inline-flex}.lp-hero{max-width:1200px;margin:0 auto;padding:80px 24px 60px;position:relative;overflow:hidden}.lp-hero-bg{pointer-events:none;z-index:0;position:absolute;inset:0}.lp-hero-orb{filter:blur(80px);opacity:.4;border-radius:50%;position:absolute}.lp-hero-orb-1{background:radial-gradient(circle,var(--accent-primary),transparent 70%);width:400px;height:400px;top:-100px;right:-100px}.lp-hero-orb-2{background:radial-gradient(circle,var(--accent-secondary),transparent 70%);width:500px;height:500px;bottom:-200px;left:-150px}.lp-hero-content{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:60px;display:grid;position:relative}.lp-hero-text h1{color:var(--text-primary);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(2.4rem,6vw,4.5rem);font-weight:900;line-height:1.05}.lp-hero-sub{color:var(--text-secondary);margin-bottom:32px;font-size:1.1rem;line-height:1.7}.lp-hero-sub strong{color:var(--accent-primary)}.lp-hero-cta{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.btn-cta-primary,.btn-cta-secondary{border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:8px;padding:16px 28px;font-size:1rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.btn-cta-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 8px 28px var(--accent-glow)}.btn-cta-primary:hover{box-shadow:0 12px 36px var(--accent-glow);transform:translateY(-2px)}.btn-cta-secondary{color:var(--text-primary);border:1.5px solid var(--border-subtle);background:0 0}.btn-cta-secondary:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.lp-hero-trust{color:var(--text-muted);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.lp-hero-trust span{align-items:center;gap:4px;display:inline-flex}.lp-hero-trust svg{color:var(--success)}.lp-hero-avatar{justify-content:center;align-items:center;height:480px;display:flex;position:relative}.lp-avatar-frame{border-radius:var(--radius-xl);background:linear-gradient(180deg,transparent,var(--accent-glow));border:1px solid var(--border-glow);width:100%;height:100%;position:relative;overflow:hidden}.lp-avatar-placeholder{border-radius:var(--radius-xl);background:var(--bg-card);width:100%;height:100%}.lp-avatar-bubble{background:var(--bg-card);border:1px solid var(--border-glow);box-shadow:var(--shadow-card);color:var(--text-primary);z-index:5;border-radius:20px 20px 4px;flex-direction:column;gap:2px;padding:14px 18px;font-size:.92rem;font-weight:500;animation:3s ease-in-out infinite lp-bubble-float;display:flex;position:absolute;top:30px;right:20px}@keyframes lp-bubble-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.lp-stats{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(4,1fr);gap:16px;max-width:1100px;margin:0 auto;padding:40px 24px;display:grid}.lp-stat{text-align:center;padding:20px 12px}.lp-stat-number{color:#0000;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;align-items:center;gap:6px;margin-bottom:4px;font-size:1.8rem;font-weight:800;display:inline-flex}.lp-stat-number svg{color:var(--accent-primary)}.lp-stat-label{color:var(--text-muted);font-size:.85rem}.lp-section{max-width:1100px;margin:0 auto;padding:80px 24px}.lp-section-head{text-align:center;margin-bottom:56px}.lp-section-head h2{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:clamp(1.8rem,4vw,3rem);font-weight:900;line-height:1.2}.lp-problems{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.lp-problem-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:32px 24px}.lp-problem-card.lp-problem-solution{background:linear-gradient(180deg,var(--bg-card),var(--accent-glow));border-color:var(--accent-primary);box-shadow:0 16px 48px var(--accent-glow);transform:scale(1.04)}.lp-problem-icon{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;transition:transform .25s;display:inline-flex}.lp-problem-icon-muted{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border-subtle)}.lp-problem-icon-brand{background:var(--accent-gradient);color:#fff;box-shadow:0 8px 28px var(--accent-glow)}.lp-problem-card:hover .lp-problem-icon{transform:scale(1.06)rotate(-2deg)}.lp-problem-card h3{color:var(--text-primary);margin:0 0 16px;font-size:1.2rem;font-weight:800}.lp-problem-card ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.lp-problem-card li{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:.92rem;line-height:1.5;display:flex}.lp-problem-card li svg{color:var(--text-muted);flex-shrink:0;margin-top:4px}.lp-problem-solution li svg{color:var(--success)}.lp-features{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.lp-feature{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:32px 24px;transition:all .3s}.lp-feature:hover{border-color:var(--border-glow);box-shadow:var(--shadow-hover);transform:translateY(-4px)}.lp-feature-icon{border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;display:flex}.lp-feature-primary .lp-feature-icon{background:var(--accent-gradient)}.lp-feature-english .lp-feature-icon{background:var(--english-gradient)}.lp-feature-spanish .lp-feature-icon{background:var(--spanish-gradient)}.lp-feature h3{color:var(--text-primary);margin:0 0 8px;font-size:1.1rem;font-weight:800}.lp-feature p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.65}.lp-table-wrap{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-card);overflow-x:auto}.lp-table{border-collapse:collapse;width:100%;min-width:700px;font-size:.95rem}.lp-table th,.lp-table td{text-align:center;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:16px 20px}.lp-table thead th{background:var(--bg-secondary);color:var(--text-primary);font-size:.95rem;font-weight:700}.lp-table tbody th{text-align:left;color:var(--text-primary);background:var(--bg-secondary);font-size:.92rem;font-weight:600}.lp-table-highlight{font-weight:700;background:var(--accent-glow)!important;color:var(--accent-primary)!important}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.lp-step{text-align:center;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:28px 20px;position:relative}.lp-step-num{background:var(--accent-gradient);color:#fff;width:44px;height:44px;box-shadow:0 4px 16px var(--accent-glow);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:1.2rem;font-weight:800;display:flex}.lp-step h3{color:var(--text-primary);margin:0 0 8px;font-size:1.05rem;font-weight:700}.lp-step p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.5}.lp-section-pricing{background:linear-gradient(180deg,transparent,var(--accent-glow),transparent)}.lp-pricing{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:760px;margin:0 auto;display:grid}.lp-price-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;padding:36px 28px;position:relative}.lp-price-card.lp-price-featured{border-color:var(--accent-primary);background:linear-gradient(180deg,var(--bg-card),var(--accent-glow));transform:scale(1.05)}.lp-price-badge{background:var(--accent-gradient);color:#fff;letter-spacing:.04em;border-radius:12px;padding:4px 14px;font-size:.75rem;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.lp-price-card h3{color:var(--text-primary);margin:0 0 12px;font-size:1.1rem;font-weight:700}.lp-price-amount{color:#0000;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:2.6rem;font-weight:900}.lp-price-sub{color:var(--text-muted);margin:0 0 24px;font-size:.85rem}.lp-price-card ul{text-align:left;flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.lp-price-card li{color:var(--text-secondary);align-items:flex-start;gap:8px;font-size:.9rem;display:flex}.lp-price-card li svg{color:var(--success);flex-shrink:0;margin-top:4px}.lp-price-btn{justify-content:center;width:100%}.lp-faq{flex-direction:column;gap:12px;max-width:760px;margin:0 auto;display:flex}.lp-faq-item{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.lp-faq-item summary{cursor:pointer;color:var(--text-primary);justify-content:space-between;align-items:center;padding:18px 24px;font-size:.95rem;font-weight:600;list-style:none;display:flex}.lp-faq-item summary::-webkit-details-marker{display:none}.lp-faq-item summary:after{content:"+";color:var(--accent-primary);font-size:1.5rem;transition:transform .2s}.lp-faq-item[open] summary:after{transform:rotate(45deg)}.lp-faq-item p{color:var(--text-secondary);margin:0;padding:0 24px 20px;font-size:.92rem;line-height:1.7}.lp-final-cta{text-align:center;max-width:800px;margin:0 auto;padding:80px 24px}.lp-final-cta h2{color:var(--text-primary);margin:0 0 16px;font-size:clamp(2rem,5vw,3.5rem);font-weight:900}.lp-final-cta p{color:var(--text-secondary);margin-bottom:32px;font-size:1.1rem}.lp-final-btn{padding:20px 36px;font-size:1.1rem}.lp-footer{border-top:1px solid var(--border-subtle);max-width:1100px;color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:32px 24px;font-size:.85rem;display:flex}.lp-footer-links{gap:20px;display:flex}.lp-footer-links a{color:var(--text-muted);text-decoration:none}.lp-footer-links a:hover{color:var(--accent-primary)}@media (max-width:880px){.lp-hero{padding:56px 20px 40px}.lp-hero-content{grid-template-columns:1fr;gap:40px}.lp-hero-avatar{order:-1;height:360px}.lp-stats{grid-template-columns:repeat(2,1fr)}.lp-section{padding:56px 20px}.lp-problem-card.lp-problem-solution,.lp-price-card.lp-price-featured{transform:none}}.courses-page{max-width:900px;margin:0 auto;padding:80px 24px 40px}.courses-header{margin-bottom:32px}.courses-title-row{align-items:center;gap:12px;margin-bottom:20px;display:flex}.courses-title-row h1{margin:0;font-size:1.6rem;font-weight:800}.courses-title-row p{color:var(--text-secondary);margin:4px 0 0;font-size:.95rem}.courses-lang-tabs{gap:8px;display:flex}.courses-lang-tab{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;padding:8px 18px;font-size:.95rem;transition:all .2s;display:flex}.courses-lang-tab.active{background:var(--accent-glow);color:var(--accent-primary);border-color:var(--accent-primary);font-weight:700}.courses-grid{flex-direction:column;gap:16px;display:flex}.course-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:left;cursor:pointer;align-items:center;gap:16px;width:100%;padding:20px;transition:all .2s;display:flex}.course-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.course-card-icon{border-radius:var(--radius-md);background:var(--accent-glow);width:52px;height:52px;color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.course-card-body{flex:1;min-width:0}.course-card-level{background:var(--accent-glow);color:var(--accent-primary);border-radius:20px;padding:2px 8px;font-size:.75rem;font-weight:700}.course-card-body h2{margin:6px 0 4px;font-size:1.1rem;font-weight:700}.course-card-body p{color:var(--text-secondary);margin:0 0 10px;font-size:.88rem}.course-card-progress{flex-direction:column;gap:4px;display:flex}.course-progress-bar{background:var(--border-subtle);border-radius:2px;height:4px;overflow:hidden}.course-progress-fill{background:var(--accent-primary);border-radius:2px;height:100%;transition:width .3s}.course-card-progress span{color:var(--text-secondary);font-size:.78rem}.course-card-chevron{color:var(--text-secondary);flex-shrink:0}.courses-loading,.courses-empty{text-align:center;color:var(--text-secondary);padding:60px 0}.lesson-session-page{background:var(--bg-primary);flex-direction:column;min-height:100vh;padding-top:64px;display:flex}.lesson-session-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-primary);z-index:10;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:64px}.lesson-session-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;align-items:center;padding:4px;display:flex}.lesson-session-close:hover{color:var(--text-primary)}.lesson-session-progress{flex:1}.lesson-session-counter{color:var(--text-secondary);white-space:nowrap;font-size:.85rem}.lesson-session-meta{width:100%;max-width:760px;margin:0 auto;padding:16px 24px 8px}.lesson-session-title{font-size:1.05rem;font-weight:700;display:block}.lesson-session-focus{color:var(--text-secondary);margin-top:2px;font-size:.88rem;display:block}.lesson-feedback{border-radius:var(--radius-md);align-items:center;gap:12px;width:calc(100% - 48px);max-width:760px;margin:12px auto;padding:16px 24px;font-weight:600;display:flex}.lesson-feedback.correct{color:#22c55e;background:#22c55e1f;border:1px solid #22c55e4d}.lesson-feedback.incorrect{color:#ef4444;background:#ef44441f;border:1px solid #ef44444d}.lesson-feedback-next{margin-left:auto}.lesson-result-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;max-width:480px;margin:60px auto;padding:40px 32px}.lesson-result-icon{margin-bottom:16px;font-size:3rem}.lesson-result-icon.passed{color:#f59e0b}.lesson-result-icon.failed{color:var(--text-secondary)}.lesson-result-summary{color:var(--text-secondary);margin:8px 0}.lesson-result-threshold{font-size:.85rem}.lesson-result-xp{color:#f59e0b;margin:12px 0;font-size:1.4rem;font-weight:800}.lesson-result-bonus{color:var(--text-secondary);font-size:.85rem}.lesson-result-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.lesson-error{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:60px 24px;display:flex}.lesson-conv-transition{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px 24px;display:flex}.lesson-conv-transition h2{margin:0;font-size:1.5rem;font-weight:800}.lesson-conv-transition p{color:var(--text-secondary);max-width:420px}.lesson-conv-wrap{flex-direction:column;flex:1;gap:0;width:100%;max-width:760px;margin:0 auto;padding:0 16px 16px;display:flex}.lesson-conv-messages{flex-direction:column;flex:1;gap:12px;min-height:200px;max-height:calc(100vh - 340px);padding:16px 0;display:flex;overflow-y:auto}.lesson-conv-bubble{border-radius:var(--radius-md);max-width:80%;padding:10px 14px;font-size:.95rem;line-height:1.5}.lesson-conv-bubble.alex{background:var(--bg-card);border:1px solid var(--border-subtle);align-self:flex-start}.lesson-conv-bubble.user{background:var(--accent-primary);color:#fff;align-self:flex-end}.lesson-conv-bubble.typing{color:var(--text-secondary);font-style:italic}.lesson-conv-input-row{border-top:1px solid var(--border-subtle);gap:8px;padding-top:12px;display:flex}.lesson-conv-input{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);outline:none;flex:1;padding:10px 14px;font-size:.95rem}.lesson-conv-input:focus{border-color:var(--accent-primary)}.lesson-conv-finish-row{text-align:center;padding:12px 0 0}
