@media (prefers-reduced-motion:no-preference){.app-topbar,.app-sidenav,.app-bottombar,.app-shell :where(.card,.glass,.modal,.modal-content,.user-menu-popover,.signin-card){transition:background-color .22s,color .22s,border-color .22s,box-shadow .22s}}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.api-down-banner{animation:none}.app-shell *,.app-shell :before,.app-shell :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.app-shell .image-quest-option,.app-shell .sound-pop-bubble{will-change:auto;transition:none}.skill-node-current .skill-node-btn,.nav-pill,.streak-milestone,.streak-milestone-flame,.goal-ring.goal-ring-levelup{animation:none!important}.tav .tav-body,.tav-think circle,.tav-sparkle,.tav .tav-halo-outer,.tav .tav-halo-ring,.tav .tav-spark,.tav .tav-mouth-wrap{animation:none!important;transform:none!important}.caption-stream[data-state=speaking] .caption-now[data-role=assistant][data-tokenized="1"]:after{opacity:.7;animation:none}.caption-think span,.dock-cta-aura,.chat-loading-dot,.orb-ring,.orb-bg,.live-dot,.dot-pulse,.loader-orb,[class*=cinemaReady],[class*=auroraFloat],[class*=bargeinFlash]{animation:none!important}.app-shell .app-bottombar-2026{transition:none}.app-shell .app-bottombar-2026 .bb-fab-glow{opacity:.6;animation:none}.app-shell .blob-shape,.app-shell .gradient-mesh .blob-shape{animation:none!important}.caption-stream .word-token{transition:color .14s}.bubble-thinking-dots span{opacity:.7;animation:none}.composer .send-btn[data-liftoff="1"],.bubble.bubble-fresh,.chat-quick-replies .quick-reply,.ui-ripple[data-ripple="1"]:after{animation:none!important}.bubble.bubble-fresh,.chat-quick-replies .quick-reply{opacity:1!important;transform:none!important}.ui-magnetic,.composer .mic-btn,.composer .send-btn{translate:0!important}.ui-tilt{transform:none!important}body.app-shell .motion-rise{opacity:1!important;will-change:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation:none!important;transform:none!important}body.app-shell :where(.btn-primary,.btn-next-primary,.conv-list-new,.send-btn,.chat-switch-voice-fab,.dock-cta,.bb-fab,.loop-vocab-link.is-due,.skills-coldstart-cta):before{display:none}body.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.progress-grid .card,.you-tab){transition-duration:1ms;animation-duration:1ms}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.app-shell{--bg:var(--legacy-color-0a0e27);--bg-1:var(--legacy-color-111634);--bg-2:var(--legacy-color-1a2150);--bg-3:var(--legacy-color-232c66);--brand-1:var(--legacy-color-667eea);--brand-2:var(--legacy-color-764ba2);--brand-3:var(--legacy-color-4cc9f0);--accent-1:var(--legacy-color-f59e0b);--accent-2:var(--legacy-color-fbbf24);--warm:var(--legacy-color-f43f5e);--good:var(--legacy-color-22c55e);--text-1:var(--legacy-color-f8fafc);--text-2:var(--legacy-color-cbd5e1);--text-3:var(--legacy-color-94a3b8);--text-muted:var(--legacy-color-94a3b8);--app-action-gradient:linear-gradient(135deg, var(--legacy-color-3657d8) 0%, var(--legacy-color-0e7490) 48%, var(--legacy-color-be185d) 100%);--user-bubble:var(--app-action-gradient);--tutor-bubble:#ffffff0f;--glass-bg:#ffffff0f;--glass-stroke:1px solid #ffffff1a;--glass-blur:saturate(140%) blur(20px);--focus-ring:0 0 0 3px #667eea8c;--neural-glow:0 0 0 1px #667eea4d, 0 0 32px #667eea59, 0 0 80px #764ba240;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--s-12:48px;--s-16:64px;--r-1:8px;--r-2:12px;--r-3:16px;--r-4:24px;--r-pill:9999px;--ease:cubic-bezier(.22, 1, .36, 1);--t-fast:.18s var(--ease);--t-med:.28s var(--ease);--t-slow:.48s var(--ease);background:var(--bg);color:var(--text-1);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh;grid-template:"topbar topbar"56px"sidenav main"1fr"sidenav main"/240px minmax(0,1fr);min-height:100dvh;margin:0;display:grid}.app-shell ::-webkit-scrollbar{width:6px;height:6px}.app-shell ::-webkit-scrollbar-track{background:0 0}.app-shell ::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.app-shell ::-webkit-scrollbar-thumb:hover{background:#ffffff38}html[data-theme=light] .app-shell{scrollbar-color:#0f172a26 transparent}html[data-theme=light] .app-shell ::-webkit-scrollbar-thumb{background:#0f172a26}html[data-theme=light] .app-shell ::-webkit-scrollbar-thumb:hover{background:#0f172a47}html[data-theme=light] .app-shell{--bg:var(--legacy-color-f8fafc);--bg-1:var(--legacy-color-ffffff);--bg-2:var(--legacy-color-f1f5f9);--bg-3:var(--legacy-color-e2e8f0);--text-1:var(--legacy-color-0f172a);--text-2:var(--legacy-color-334155);--text-3:var(--legacy-color-64748b);--glass-bg:#ffffffb3;--glass-stroke:1px solid #0f172a0f;--tutor-bubble:#0f172a0d;--app-chrome-bg:#ffffffc7;--app-chrome-bg-strong:#ffffffeb;--app-chrome-bg-soft:#f8fafc99;--app-chrome-cutout:#fffffff2;--app-chrome-hover:#0f172a0d;--app-chrome-border:#0f172a14}:root .app-shell{--app-chrome-bg:#0a0e2799;--app-chrome-bg-strong:#0a0e27d9;--app-chrome-bg-soft:#0a0e2766;--app-chrome-cutout:#0a0e27d9;--app-chrome-hover:#ffffff0f;--app-chrome-border:#ffffff14}.app-shell .skip-link{top:-100px;background:var(--public-action-bg,var(--legacy-color-3657d8));color:var(--text-on-accent);z-index:var(--z-toast,2000);border-radius:8px;padding:8px 12px;position:absolute;inset-inline-start:8px}.app-shell .skip-link:focus{top:8px}.app-shell .gradient-mesh{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.app-shell .blob-shape{filter:blur(80px);opacity:.45;mix-blend-mode:screen;border-radius:50% 60% 40%/60% 40%;width:480px;height:480px;position:absolute}html[data-theme=light] .app-shell .blob-shape{opacity:.28;mix-blend-mode:multiply}.app-shell .blob-1{background:radial-gradient(circle, var(--legacy-color-667eea), transparent 70%);top:-120px;animation:22s ease-in-out infinite appBlob;inset-inline-start:-120px}.app-shell .blob-2{background:radial-gradient(circle, var(--legacy-color-764ba2), transparent 70%);inset-inline-end:-160px;animation:28s ease-in-out infinite reverse appBlob;top:30%}.app-shell .blob-3{background:radial-gradient(circle, var(--legacy-color-4cc9f0), transparent 70%);inset-inline-start:25%;animation:35s ease-in-out infinite appBlob;bottom:-180px}@keyframes appBlob{0%,to{transform:translate(0)scale(1)}50%{transform:translate(40px,-30px)scale(1.1)}}.app-shell .app-topbar{z-index:var(--z-sticky,50);padding-top:max(env(safe-area-inset-top), 0px);padding-bottom:0;background:var(--app-chrome-bg,#0a0e2799);-webkit-backdrop-filter:var(--glass-blur);border-bottom:var(--glass-stroke);grid-area:topbar;justify-content:space-between;align-items:center;padding-inline-start:max(env(safe-area-inset-left), var(--s-6));padding-inline-end:max(env(safe-area-inset-right), var(--s-6));display:flex;position:sticky;top:0}.app-shell .app-brand{align-items:center;gap:var(--s-2);color:var(--text-1);font-family:var(--font-display);transition:transform var(--t-fast), background var(--t-fast);border-radius:12px;padding:4px 6px;font-size:1.125rem;font-weight:800;text-decoration:none;display:inline-flex}.app-shell .app-brand-logo{width:118px;max-width:min(34vw,118px);height:auto}.app-shell .app-brand:hover{background:#ffffff0a}.app-shell .app-brand:active{transform:scale(.98)}.app-shell .app-brand:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-shell .topbar-actions{align-items:center;gap:var(--s-3);display:flex}.app-shell .icon-btn{min-width:44px;min-height:44px;padding:0 var(--s-3);border-radius:var(--r-pill);color:var(--text-1);cursor:pointer;transition:background var(--t-fast), transform var(--t-fast);background:#ffffff0a;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.app-shell .icon-btn:hover{background:#ffffff1a}.app-shell .icon-btn:active{transform:scale(.96)}.app-shell .icon-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-shell .user-chip{align-items:center;gap:var(--s-2);border-radius:var(--r-pill);background:var(--glass-bg);border:var(--glass-stroke);padding:4px 12px 4px 4px;display:flex}.app-shell .avatar{background:var(--app-action-gradient);width:32px;height:32px;color:var(--text-on-accent);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.app-shell .avatar-lg{width:56px;height:56px;font-size:1.5rem}.app-shell .app-sidenav{top:calc(56px + env(safe-area-inset-top,0px));height:calc(100dvh - 56px - env(safe-area-inset-top,0px));padding:var(--s-6) var(--s-3);border-inline-end:var(--glass-stroke);background:var(--app-chrome-bg-soft,#0a0e2766);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);grid-area:sidenav;align-self:start;position:sticky}.app-shell .app-sidenav ul{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app-shell .app-sidenav a{align-items:center;gap:var(--s-3);border-radius:var(--r-2);color:var(--text-2);transition:background var(--t-fast), color var(--t-fast);padding:12px 14px;font-weight:500;text-decoration:none;display:flex}.app-shell .app-sidenav a:hover{background:var(--app-chrome-hover,#ffffff0f);color:var(--text-1)}.app-shell .app-sidenav a.active{color:var(--text-1);background:linear-gradient(135deg,#667eea33,#764ba233);box-shadow:inset 0 0 0 1px #667eea4d}.app-shell .app-sidenav i{text-align:center;width:20px}.app-shell .app-bottombar{grid-area:unset;bottom:0;z-index:var(--z-overlay,60);padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:var(--app-chrome-bg-strong,#0a0e27d9);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-top:var(--glass-stroke);grid-template-columns:repeat(5,1fr);gap:2px;padding-inline-start:max(4px, env(safe-area-inset-left));padding-inline-end:max(4px, env(safe-area-inset-right));display:none;position:fixed;inset-inline:0}.app-shell .app-bottombar a{min-height:56px;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 2px;font-size:.7rem;font-weight:600;text-decoration:none;display:flex}.app-shell .app-bottombar a.active{color:var(--text-1)}.app-shell .app-bottombar a.active i{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#0000;-webkit-background-clip:text;background-clip:text}.app-shell .app-bottombar i{font-size:1.125rem}.app-shell .app-main{min-height:calc(100dvh - 56px);padding:var(--s-6);z-index:1;grid-area:main;min-width:0;position:relative}.app-shell .app-main:focus{outline:none}.app-shell .view{animation:viewFadeIn var(--t-med)}@keyframes viewFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-shell .glass{background:var(--glass-bg);border:var(--glass-stroke);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--r-3);box-shadow:var(--depth-1)}@supports not ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.app-shell .glass{background:#141831eb}:root[data-theme=light] .app-shell .glass{background:#fffffff0}}:root[data-theme=light] .app-shell .glass{background:#ffffffb8;border-color:#0f172a14}.app-shell .muted{color:var(--text-3)}.app-shell .btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-pill);cursor:pointer;min-height:44px;transition:transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), opacity var(--t-fast), color var(--t-fast);border:1px solid #0000;padding:10px 18px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.app-shell .btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-shell .btn-primary{background:var(--app-action-gradient);color:var(--text-on-accent);box-shadow:0 8px 24px -8px #667eeaa6}.app-shell .btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 32px -8px #667eeacc}.app-shell .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.app-shell .btn-ghost{color:var(--text-1);background:#ffffff0f;border-color:#ffffff1a}.app-shell .btn-ghost:hover{background:#ffffff1f}.app-shell .btn-danger{color:var(--legacy-color-fda4af);background:#f43f5e1f;border-color:#f43f5e59}.app-shell .btn-danger:hover{background:#f43f5e38}.app-shell .btn-sm{min-height:36px;padding:6px 14px;font-size:.85rem}.app-shell .btn-google{background:var(--legacy-color-fff);color:var(--legacy-color-1f1f1f);border-color:#3c404340}.app-shell .btn-google:hover{background:var(--legacy-color-f6f8fa);transform:translateY(-1px);box-shadow:0 8px 22px -10px #00000073}.app-shell .btn-google:disabled{opacity:.55;cursor:not-allowed;transform:none}.app-shell .btn-google .google-icon{flex:0 0 18px}.app-shell .link-google-cta{align-items:center;gap:var(--s-3);padding:var(--s-3);margin-bottom:var(--s-3);border-radius:var(--r-3);background:#ffffff0a;border:1px solid #ffffff1a;display:flex}.app-shell .link-google-cta .link-google-text{flex:1;min-width:0}.app-shell .link-google-cta h3{margin:0 0 4px;font-size:1rem}.app-shell .link-google-cta p{margin:0;font-size:.85rem}.app-shell .link-google-linked{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);margin-bottom:var(--s-3);color:var(--text-2);font-size:.9rem;display:flex}.app-shell .link-google-linked .google-icon{flex:0 0 18px}.app-shell .link-btn{color:var(--brand-1,var(--primary));cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.app-shell .link-btn:hover{color:var(--brand-2,var(--primary-light))}[data-theme=light] .app-shell .link-btn{color:var(--primary-dark,var(--legacy-color-3a0ca3))}[data-theme=light] .app-shell .link-btn:hover{color:var(--primary,var(--legacy-color-4361ee))}@keyframes mirrorPulse{0%,to{box-shadow:0 0 #f43f5e80}50%{box-shadow:0 0 0 10px #f43f5e00}}.app-shell .loader-orb{background:radial-gradient(circle, var(--brand-1), var(--brand-2) 60%, transparent 80%);width:96px;height:96px;box-shadow:var(--neural-glow);border-radius:50%;margin:80px auto 24px;animation:2.4s ease-in-out infinite orbBreath}.app-shell .loader-text{text-align:center;color:var(--text-2)}@keyframes orbBreath{0%,to{opacity:.85;transform:scale(.92)}50%{opacity:1;transform:scale(1.05)}}.app-shell .signin-card{max-width:460px;padding:var(--s-8);text-align:center;margin:80px auto}.app-shell .signin-card h1{font-family:var(--font-display);margin:0 0 var(--s-3);font-size:1.75rem}.app-shell .signin-card p{color:var(--text-3);margin:0 0 var(--s-6)}#toast-root{top:calc(56px + var(--s-3));z-index:var(--z-toast,2000);pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;inset-inline-end:24px}body:has(.api-down-banner:not([hidden])) #toast-root{top:calc(56px + 56px + var(--s-3))}.toast{pointer-events:auto;min-width:240px;color:var(--legacy-color-f8fafc);opacity:0;transition:transform .25s var(--ease), opacity .2s;background:#141831f2;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;display:flex;transform:translate(120%);box-shadow:0 16px 48px #0006}.toast-in{opacity:1;transform:translate(0)}.toast-out{opacity:0}.toast-info i{color:var(--secondary)}.api-down-banner{margin:0 0 var(--s-3);border-radius:var(--r-2);color:var(--legacy-color-fef2f2);background:linear-gradient(135deg,#f43f5e2e,#f59e0b2e);border:1px solid #f43f5e73;align-items:center;gap:12px;padding:12px 18px;font-size:.9375rem;animation:.32s cubic-bezier(.22,1,.36,1) bannerSlideIn;display:flex;box-shadow:0 8px 32px #f43f5e2e}.api-down-banner[hidden]{display:none}.api-down-icon{width:28px;height:28px;color:var(--legacy-color-fda4af);background:#f43f5e40;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.api-down-text{flex:1;min-width:0;line-height:1.4}.api-down-retry{appearance:none;color:var(--text-on-accent);font:inherit;cursor:pointer;background:#ffffff14;border:1px solid #ffffff40;border-radius:999px;flex-shrink:0;min-height:44px;padding:10px 18px;font-weight:600;transition:background .18s,border-color .18s,transform .18s}.api-down-retry:hover:not(:disabled){background:#ffffff29;border-color:#fff6}.api-down-retry:focus-visible{outline:none;box-shadow:0 0 0 3px #ffffff73}.api-down-retry:disabled{opacity:.6;cursor:wait}:root[data-theme=light] .api-down-banner{color:var(--legacy-color-7f1d1d);background:linear-gradient(135deg,#f43f5e1a,#f59e0b1a)}:root[data-theme=light] .api-down-icon{color:var(--legacy-color-b91c1c);background:#f43f5e26}:root[data-theme=light] .api-down-retry{color:var(--legacy-color-7f1d1d);background:#fff9;border-color:#7f1d1d4d}:root[data-theme=light] .api-down-retry:hover:not(:disabled){background:var(--legacy-color-fff);border-color:#7f1d1d80}@keyframes bannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.api-down-banner{grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;font-size:.82rem;display:grid}.api-down-icon{width:24px;height:24px}.api-down-text{flex-basis:auto;line-height:1.3}.api-down-retry{min-height:36px;margin-inline-start:0;padding:6px 10px;font-size:.82rem}body.app-shell .api-down-banner,.app-shell .api-down-banner{border-radius:12px;grid-template-columns:20px minmax(0,1fr) auto;gap:6px;padding:6px 8px;font-size:.76rem}body.app-shell .api-down-icon,.app-shell .api-down-icon{width:20px;height:20px;font-size:.72rem}body.app-shell .api-down-text,.app-shell .api-down-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.18;display:-webkit-box;overflow:hidden}body.app-shell .api-down-retry,.app-shell .api-down-retry{min-width:44px;min-height:44px;padding:6px 10px;font-size:.76rem}}@media (orientation:landscape) and (max-height:500px){body.app-shell .api-down-banner,.app-shell .api-down-banner{padding-block:6px;font-size:.78rem}}.app-shell .error-state{align-items:center;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-3);color:var(--text-2);margin:var(--s-4) 0;background:#f43f5e14;border:1px solid #f43f5e40;display:flex}.app-shell .error-state-icon{width:36px;height:36px;color:var(--legacy-color-fca5a5);background:#f43f5e2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.app-shell .error-state-body{flex:1;min-width:0}.app-shell .error-state-title{color:var(--text-1);font-size:.95rem;display:block}.app-shell .error-state-msg{color:var(--text-3);margin:4px 0 0;font-size:.875rem}.app-shell .error-state-retry{flex-shrink:0}:root[data-theme=light] .app-shell .error-state{color:var(--text);background:#f43f5e0f}:root[data-theme=light] .app-shell .error-state-icon{color:var(--legacy-color-be123c)}.app-shell .empty-state{align-items:center;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-3);color:var(--text-2);margin:var(--s-4) 0;background:#4ade8014;border:1px dashed #4ade804d;display:flex}.app-shell .empty-state-icon{width:36px;height:36px;color:var(--legacy-color-86efac);background:#4ade802e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.app-shell .empty-state-body{flex:1;min-width:0}.app-shell .empty-state-title{color:var(--text-1);font-size:.95rem;display:block}.app-shell .empty-state-msg{color:var(--text-3);margin:4px 0 0;font-size:.875rem}.app-shell .empty-state-cta{flex-shrink:0}:root[data-theme=light] .app-shell .empty-state{color:var(--text);background:#4ade800f}:root[data-theme=light] .app-shell .empty-state-icon{color:var(--legacy-color-15803d)}.app-shell .router-error{max-width:480px;margin:var(--s-12) auto;padding:var(--s-8);border-radius:var(--r-3);text-align:center;background:#f43f5e14;border:1px solid #f43f5e40}.app-shell .router-error-icon{width:56px;height:56px;margin:0 auto var(--s-3);color:var(--legacy-color-fca5a5);background:#f43f5e2e;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:inline-flex}.app-shell .router-error-title{margin:0 0 var(--s-2);font-size:1.15rem}.app-shell .router-error-msg{margin:0 0 var(--s-2);color:var(--text-3)}.app-shell .router-error-code{margin:0 0 var(--s-4)}.app-shell .router-error-actions{gap:var(--s-3);flex-wrap:wrap;justify-content:center;display:flex}.modal{background:0 0;border:0;max-width:92vw;padding:0}dialog.modal{width:fit-content;max-width:min(92vw,520px);height:fit-content;max-height:min(92dvh,760px);color:var(--text-1,var(--text));-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;margin:auto;animation:none;display:none;position:fixed;inset:0;overflow:visible}dialog.modal[open]{display:block}dialog.modal.modal-placement{max-width:min(96vw,680px)}.modal::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e27a6}[data-theme=light] .modal::backdrop{background:#0f172a73}dialog.modal .modal-form{box-sizing:border-box;overscroll-behavior:contain;width:min(100%,480px);min-width:min(320px,100vw - 32px);max-width:min(480px,100vw - 32px);max-height:calc(92dvh - 24px);padding:var(--s-6);position:relative;overflow-y:auto}dialog.modal.modal-placement .modal-form{width:min(640px,100vw - 24px);max-width:min(640px,100vw - 24px)}dialog.modal .modal-body p,dialog.modal .modal-body h3{text-align:inherit;color:inherit}dialog.modal .modal-body p{margin-bottom:0}.modal .modal-title{margin:0 0 var(--s-3);font-family:var(--font-display);padding-inline-end:44px;font-size:1.25rem}.modal .modal-body{color:var(--text-2);margin-bottom:var(--s-6)}.modal .modal-actions{gap:var(--s-3);flex-wrap:wrap;justify-content:end;align-items:stretch;display:flex}.modal .modal-actions .btn{white-space:normal;text-align:center;flex:116px;justify-content:center;min-width:min(100%,116px);max-width:100%;min-height:44px;line-height:1.2}.modal .modal-close{top:8px;min-width:44px;min-height:44px;color:var(--text-2,var(--legacy-color-cbd5e1));cursor:pointer;background:#ffffff0f;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;transition:background .15s,color .15s,transform .15s;display:inline-flex;position:absolute;inset-inline-end:8px}.modal .modal-close:hover,.modal .modal-close:focus-visible{color:var(--text-1,var(--legacy-color-f8fafc));background:#ffffff24;outline:none;transform:scale(1.06)}.modal .modal-close:focus-visible{box-shadow:0 0 0 2px var(--brand-1,var(--legacy-color-4361ee))}[data-theme=light] .modal .modal-close{color:#0f172ab3;background:#0f172a0f}[data-theme=light] .modal .modal-close:hover,[data-theme=light] .modal .modal-close:focus-visible{color:#0f172aeb;background:#0f172a1f}@media (max-width:520px){dialog.modal .modal-form{min-width:min(280px,100vw - 18px);max-width:calc(100vw - 18px);padding:clamp(18px,5vw,24px)}}@media (max-width:430px){.modal .modal-actions{grid-template-columns:minmax(0,1fr);justify-content:stretch;display:grid}.modal .modal-actions .btn{width:100%}}[data-act].is-busy,[data-act][aria-busy=true]{opacity:.55;pointer-events:none;transition:opacity .15s}.app-shell .lang-picker{gap:var(--s-3);margin-top:var(--s-4);flex-direction:column;display:flex}.app-shell .lang-picker-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.app-shell .lang-picker-filter{display:flex}.app-shell .lang-picker-search{border-radius:var(--r-pill);width:100%;color:var(--text-1);transition:border-color var(--t-fast), background var(--t-fast);background:#ffffff0a;border:1px solid #ffffff1f;padding:10px 14px;font-size:.95rem}.app-shell .lang-picker-search:focus-visible{background:#ffffff12;border-color:#667eea99}.app-shell .lang-picker-empty{text-align:center;padding:var(--s-3)}.app-shell .lang-tile{padding:var(--s-4);border-radius:var(--r-2);color:var(--text-1);cursor:pointer;transition:transform var(--t-fast), background var(--t-fast), border-color var(--t-fast);background:#ffffff0a;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.app-shell .lang-tile:hover:not([disabled]){background:#ffffff1a;transform:translateY(-2px)}.app-shell .lang-tile.active{box-shadow:var(--neural-glow);background:linear-gradient(135deg,#667eea2e,#764ba22e);border-color:#667eea8c}.app-shell .lang-tile[disabled]{opacity:.35;cursor:not-allowed}.app-shell .lang-flag{font-size:1.75rem}.app-shell .lang-flag .svg-icon{width:1.25em;height:1.25em}.app-shell .lang-labels{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.app-shell .lang-name{font-size:.92rem;font-weight:700;line-height:1.15}.app-shell .lang-english{color:var(--text-3);font-size:.72rem;line-height:1.1}.app-shell .lang-feature-row{flex-wrap:wrap;justify-content:center;gap:4px;min-height:18px;display:flex}.app-shell .lang-feature-badge{letter-spacing:0;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:2px 6px;font-size:.58rem;font-weight:800}.app-shell .lang-feature-voice{color:var(--legacy-color-86efac);background:#22c55e29;border:1px solid #22c55e47}.app-shell .lang-feature-tonal{color:var(--legacy-color-fbbf24);background:#f59e0b2e;border:1px solid #f59e0b59}.app-shell .lang-feature-course{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--theme-accent-text,var(--legacy-color-c7d2fe));border:1px solid color-mix(in srgb, var(--primary) 40%, transparent)}.app-shell .lang-feature-ai{background:color-mix(in srgb, var(--secondary) 14%, transparent);color:var(--text-2);border:1px solid color-mix(in srgb, var(--secondary) 30%, transparent)}.app-shell .lang-tile.is-locked{border-color:color-mix(in srgb, var(--legacy-color-38bdf8) 34%, #ffffff14);background:linear-gradient(135deg, color-mix(in srgb, var(--legacy-color-38bdf8) 10%, transparent), transparent 68%), #ffffff0a}.app-shell .lang-feature-locked{color:var(--legacy-color-7dd3fc);background:#38bdf829;border:1px solid #38bdf852;align-items:center;gap:4px;display:inline-flex}.app-shell .lang-picker-compact{z-index:15;min-width:190px;margin-top:0;position:relative}.app-shell .lang-picker-trigger{border:var(--glass-stroke);width:100%;min-height:42px;color:var(--text-1);cursor:pointer;text-align:start;background:#ffffff0f;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.app-shell .lang-picker-trigger .lang-flag{font-size:1.15rem}.app-shell .lang-picker-trigger .lang-flag .svg-icon{width:1.25em;height:1.25em}.app-shell .lang-trigger-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.app-shell .lang-trigger-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;line-height:1.1;overflow:hidden}.app-shell .lang-trigger-kicker{color:var(--text-3);text-transform:uppercase;letter-spacing:0;font-size:.62rem;font-weight:800;line-height:1}.app-shell .lang-picker-panel{top:calc(100% + 8px);background:color-mix(in srgb, var(--bg,var(--legacy-color-0c1424)) 92%, transparent);border:var(--glass-stroke);border-radius:16px;width:min(92vw,420px);max-height:min(70vh,520px);padding:12px;position:absolute;inset-inline-end:0;overflow:auto;box-shadow:0 24px 70px -30px #000000a6}.app-shell .lang-picker-panel[hidden]{display:none}.app-shell .lang-picker-panel .lang-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .lang-picker-panel .lang-tile{min-height:108px}.app-shell .chip-group{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.app-shell .chip{border-radius:var(--r-pill);color:var(--text-1);cursor:pointer;transition:background var(--t-fast), transform var(--t-fast);background:#ffffff0d;border:1px solid #ffffff1a;align-items:center;gap:8px;padding:10px 16px;display:inline-flex}.app-shell .chip.active{background:linear-gradient(135deg,#667eea4d,#764ba24d);border-color:#667eea99}.app-shell .hours-slider{align-items:center;gap:var(--s-4);margin-top:var(--s-4);display:flex}.app-shell .hours-slider input{accent-color:var(--brand-1);flex:1}.app-shell .hours-slider output{font-variant-numeric:tabular-nums;min-width:40px;font-weight:700}.app-shell .generating-orb{width:220px;height:220px;margin:var(--s-6) auto;background:radial-gradient(circle, var(--brand-1), var(--brand-2) 60%, transparent 80%);box-shadow:var(--neural-glow);border-radius:50%;animation:1.8s ease-in-out infinite orbBreath}.app-shell .generating-log{border-radius:var(--r-2);padding:var(--s-3);white-space:pre-wrap;max-height:180px;color:var(--text-2);background:#00000040;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;overflow:auto}.app-shell .chat-shell{gap:var(--s-3);max-width:900px;height:calc(100dvh - 56px - var(--s-12));grid-template-rows:auto 1fr auto;margin:0 auto;display:grid}.app-shell .chat-topbar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);flex-wrap:wrap;display:flex}.app-shell .chat-lang-picker{width:clamp(190px,22vw,260px);margin-top:0}.app-shell .chat-lang-picker .lang-picker-panel{z-index:30}.app-shell .chip-btn{border-radius:var(--r-pill);border:var(--glass-stroke);color:var(--text-1);cursor:pointer;background:#ffffff0f;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:inline-flex}.app-shell .message-stream{gap:var(--s-3);scrollbar-width:thin;overscroll-behavior:contain;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.app-shell .message-stream::-webkit-scrollbar{width:6px}.app-shell .message-stream::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.app-shell .chat-shell[data-target-dir=rtl] .message-stream{text-align:end}.app-shell .bubble{gap:var(--s-3);max-width:85%;animation:bubbleIn2026 var(--t-med);align-items:flex-start;display:flex}@media (max-width:480px){.app-shell .bubble{gap:var(--s-2);max-width:92%}}.app-shell .bubble-user{align-self:flex-end}.app-shell .bubble-assistant{align-self:flex-start}.app-shell .avatar-tutor{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));width:36px;height:36px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-shell .bubble-body{border-radius:18px;padding:12px 16px;font-size:.95rem;line-height:1.55}.app-shell .bubble-body.glass{border-top-left-radius:6px}.app-shell .bubble-user .bubble-body{background:var(--user-bubble);color:var(--text-on-accent);border-bottom-right-radius:6px}.app-shell .bubble-content :is(p,blockquote,ul){margin:0 0 8px}.app-shell .bubble-content :is(p,blockquote,ul):last-child{margin-bottom:0}.app-shell .bubble-content code{background:#00000040;border-radius:4px;padding:1px 5px;font-size:.85em}.app-shell .bubble-content blockquote{border-inline-start:2px solid var(--brand-1);color:var(--text-2);padding-inline-start:10px}.app-shell .bubble-streaming .bubble-content:after{content:"▍";color:var(--brand-3);margin-inline-start:2px;animation:.9s step-end infinite caret}@keyframes caret{50%{opacity:0}}.app-shell .bubble-footer{justify-content:space-between;gap:var(--s-3);align-items:center;margin-top:8px;display:flex}.app-shell .bubble-meta{color:var(--text-3);font-size:.72rem}.app-shell .bubble-actions button{color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:50%;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.app-shell .bubble-actions button:hover{color:var(--text-1);background:#ffffff14}.app-shell .composer{padding:var(--s-3);border-radius:var(--r-3);gap:var(--s-2);padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom));flex-direction:column;display:flex;position:sticky;bottom:0}.app-shell .quick-actions{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.app-shell .qa-chip{white-space:nowrap;border-radius:var(--r-pill);border:var(--glass-stroke);color:var(--text-1);cursor:pointer;background:#ffffff0d;padding:6px 12px;font-size:.78rem}.app-shell .composer-charcount{text-align:end;font-size:var(--fs-tiny,.75rem);font-variant-numeric:tabular-nums;color:var(--text-3,var(--text-secondary));padding:0 4px;line-height:1;display:block}.app-shell .composer-charcount.charcount-warn{color:var(--warning,var(--legacy-color-f59e0b))}.app-shell .composer-charcount.charcount-error{color:var(--error,var(--legacy-color-f43f5e));font-weight:600}.app-shell .composer-row{align-items:end;gap:var(--s-2);grid-template-columns:auto 1fr auto;display:grid}.app-shell .composer-input{border:var(--glass-stroke);border-radius:var(--r-3);color:var(--text-1);font:inherit;resize:none;background:#00000040;min-height:44px;padding:12px 14px;line-height:1.4}.app-shell .composer-input:focus{box-shadow:var(--focus-ring);border-color:#667eea99;outline:none}.app-shell .send-btn,.app-shell .mic-btn{cursor:pointer;width:44px;height:44px;color:var(--text-on-accent);transition:transform var(--t-fast);border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.app-shell .send-btn{background:var(--app-action-gradient)}.app-shell .mic-btn{background:#ffffff14}.app-shell .mic-btn.mic-active{background:linear-gradient(135deg, var(--good), var(--legacy-color-16a34a));animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #22c55e80}50%{box-shadow:0 0 0 14px #22c55e00}}.app-shell .orb{aspect-ratio:1;width:min(60vw,320px);margin-bottom:var(--s-6);filter:drop-shadow(0 0 60px #667eea80);position:relative}.app-shell .orb-svg{width:100%;height:100%}.app-shell .orb[data-state=idle] .orb-core{animation:4s ease-in-out infinite orbBreath}.app-shell .orb[data-state=thinking] .orb-core{animation:.8s ease-in-out infinite orbBreath}.app-shell .orb-status{text-align:center;color:var(--text-2);min-height:24px;display:block}.app-shell .dock-btn{cursor:pointer;width:56px;height:56px;color:var(--text-1);background:#ffffff0f;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.app-shell .dock-end{color:var(--legacy-color-fda4af);background:#f43f5e2e}.app-shell .dock-end:hover{background:#f43f5e47}.app-shell .plan-shell{gap:var(--s-4);flex-direction:column;max-width:1040px;margin:0 auto;display:flex}.app-shell .plan-header{align-items:center;gap:var(--s-4);padding:var(--s-6);display:flex}.app-shell .plan-flag{font-size:2.5rem}.app-shell .plan-flag .svg-icon{width:1.15em;height:1.15em}.app-shell .plan-meta{flex:1}.app-shell .plan-meta h1{font-family:var(--font-display);margin:0;font-size:1.5rem}.app-shell .plan-completion{text-align:center}.app-shell .plan-completion strong{color:var(--brand-3);font-size:1.5rem;display:block}.app-shell .plan-empty{text-align:center;padding:var(--s-12);color:var(--text-2)}.app-shell .plan-units{gap:var(--s-3);flex-direction:column;display:flex}.app-shell .plan-unit{background:var(--glass-bg);border:var(--glass-stroke);border-radius:var(--r-3);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);padding:var(--s-3) var(--s-4)}.app-shell .plan-unit>summary{cursor:pointer;align-items:center;gap:var(--s-3);padding:var(--s-3) 0;list-style:none;display:flex}.app-shell .plan-unit>summary::-webkit-details-marker{display:none}.app-shell .unit-num{background:var(--app-action-gradient);width:36px;height:36px;color:var(--text-on-accent);border-radius:12px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.app-shell .unit-title{flex:1;font-weight:700}.app-shell .unit-time{color:var(--text-3);font-size:.85rem}.app-shell .unit-desc{padding-inline-start:48px}.app-shell .lesson-grid{padding:0 0 var(--s-3) 0;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;list-style:none;display:grid}.app-shell .lesson-card{padding:var(--s-4);transition:transform var(--t-fast), box-shadow var(--t-fast);border-radius:var(--r-2);flex-direction:column;gap:8px;display:flex}.app-shell .lesson-card:hover{box-shadow:var(--neural-glow);transform:translateY(-2px)}.app-shell .lesson-card:active{transform:translateY(0)}.app-shell .lesson-card h3{margin:0;font-size:1rem}.app-shell .lesson-meta{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;font-size:.72rem;display:flex}.app-shell .streak-chip{border-radius:var(--r-pill);background:linear-gradient(135deg,#f59e0b2e,#f43f5e2e);border:1px solid #f59e0b66;align-items:center;gap:6px;padding:8px 14px;font-weight:700;display:inline-flex}.app-shell .streak-flame{font-size:1.1rem}.app-shell .level-badge{align-items:center;gap:8px;display:inline-flex}.app-shell .level-pill{border-radius:var(--r-pill);background:var(--app-action-gradient);color:var(--text-on-accent);padding:4px 12px;font-size:.85rem;font-weight:800}.app-shell .level-track{background:#ffffff14;border-radius:4px;width:120px;height:6px;overflow:hidden}.app-shell .level-fill{background:linear-gradient(90deg, var(--brand-1), var(--brand-3));transform-origin:0;width:100%;height:100%;transform:scaleX(var(--xp-progress,0));transition:transform var(--t-slow);will-change:transform}.app-shell .level-xp{color:var(--text-3);font-size:.75rem}.app-shell .card{padding:var(--s-4);gap:var(--s-3);flex-direction:column;display:flex}.app-shell .card header h2{font-family:var(--font-display);margin:0;font-size:1rem}.app-shell .card-radar,.app-shell .card-heat{grid-column:span 1}.app-shell .numbers{gap:var(--s-3);grid-template-columns:repeat(3,1fr);display:grid}.app-shell .big-num{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.app-shell .big-num strong{font-family:var(--font-display);background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:800;line-height:1}.app-shell .big-num span{color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.app-shell .sparkline{color:var(--brand-3);margin-top:4px;display:block}.app-shell .radar-chart-wrap{justify-content:center;display:flex}.app-shell .radar-chart{width:100%;max-width:240px;height:auto;color:var(--text-2)}.app-shell .radar-data{fill:#667eea4d;stroke:var(--brand-1);stroke-width:2px}.app-shell .recent-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.app-shell .recent-list li{border-bottom:1px dashed #ffffff0f;justify-content:space-between;padding:8px 0;display:flex}.app-shell .heatmap{color:var(--brand-1)}.app-shell .heatmap svg{max-width:100%;height:auto}.app-shell .heat-cell{fill:#ffffff0f}.app-shell .lang-row{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.app-shell .theme-row{gap:var(--s-2);display:flex}.app-shell .row{justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;display:flex}.app-shell .toggle-row{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;cursor:pointer;display:flex}.app-shell .toggle-row .toggle-text{flex-direction:column;gap:4px;display:flex}.app-shell .toggle-row .toggle-text strong{font-size:.95rem}.app-shell .toggle-row .toggle-text small{font-size:.8rem;line-height:1.4}.app-shell .toggle-row input[type=checkbox]{appearance:none;cursor:pointer;background:#ffffff1f;border-radius:13px;flex-shrink:0;width:44px;height:26px;transition:background .2s;position:relative}.app-shell .toggle-row input[type=checkbox]:after{content:"";top:3px;background:var(--legacy-color-fff);border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;inset-inline-start:3px}.app-shell .toggle-row input[type=checkbox]:checked{background:linear-gradient(135deg, var(--brand-1,var(--legacy-color-4361ee)), var(--brand-2,var(--legacy-color-4cc9f0)))}.app-shell .toggle-row input[type=checkbox]:checked:after{transform:translate(18px)}.app-shell .toggle-row input[type=checkbox]:focus-visible{outline:2px solid var(--accent,var(--legacy-color-f72585));outline-offset:2px}.app-shell .persona-row{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}@media (max-width:380px){.app-shell .persona-row{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.app-shell .persona-tile .persona-name{font-size:.78rem}}.app-shell .persona-tile{color:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;transition:background .15s,border-color .15s;display:flex}.app-shell .persona-tile:hover{background:#ffffff14}.app-shell .persona-tile.is-active{border-color:var(--accent,var(--legacy-color-f72585));background:linear-gradient(135deg,#f725852e,#4cc9f01f)}.app-shell .persona-tile .persona-flag{font-size:1.4rem}.app-shell .persona-tile .persona-flag .svg-icon{width:1.35em;height:1.35em}.app-shell .persona-tile .persona-name{font-size:.85rem;font-weight:600}.app-shell .voice-lab-card{gap:var(--s-3);grid-template-columns:minmax(0,1fr) minmax(120px,220px);align-items:start;display:grid}.app-shell .voice-lab-copy,.app-shell .voice-lab-status,.app-shell .voice-lab-sample,.app-shell .voice-lab-consent,.app-shell .voice-lab-actions{min-width:0}.app-shell .voice-lab-visual{aspect-ratio:4/3;border:1px solid #94a3b82e;border-radius:8px;grid-row:span 3;margin:0;overflow:hidden}.app-shell .voice-lab-visual img{object-fit:cover;width:100%;height:100%;display:block}.app-shell .voice-lab-status,.app-shell .voice-lab-sample{color:var(--text-2,var(--text-secondary));font-size:.9rem}.app-shell .voice-lab-pill{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:inline-flex}.app-shell .voice-lab-pill.is-enabled i{color:var(--success,var(--legacy-color-22c55e))}.app-shell .voice-lab-pill.is-disabled i{color:var(--text-3,var(--text-secondary))}.app-shell .voice-lab-consent{grid-column:1/-1;gap:8px;display:grid}.app-shell .voice-lab-consent-row{border-radius:8px;margin:0}.app-shell .voice-lab-actions{gap:var(--s-2);flex-wrap:wrap;grid-column:1/-1}@media (max-width:640px){.app-shell .voice-lab-card{grid-template-columns:1fr}.app-shell .voice-lab-visual{grid-row:auto;max-height:190px}.app-shell .voice-lab-actions .btn{justify-content:center;width:100%}}@media (max-width:1024px){.app-shell{grid-template-columns:200px minmax(0,1fr)}}@media (min-width:1024px) and (max-width:1280px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.app-shell .app-main{padding-inline-start:max(var(--s-6), calc((100% - 880px) / 2));padding-inline-end:max(var(--s-6), calc((100% - 880px) / 2))}}.app-shell.has-collapsed-sidenav,body.has-collapsed-sidenav .app-shell{grid-template-columns:64px minmax(0,1fr)}.app-shell .app-sidenav.collapsed{width:64px}.app-shell .app-sidenav.collapsed a span{display:none}.app-shell .app-sidenav.collapsed a{justify-content:center;padding-inline:0}@media (max-width:768px){.app-shell{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));grid-template:"topbar"56px"main"1fr/1fr}.app-shell .app-sidenav{display:none}.app-shell .app-bottombar{display:grid}.app-shell .app-main{padding:var(--s-3)}.app-shell .signin-card{overflow-wrap:anywhere;width:min(100%,100vw - 24px);max-width:340px}.app-shell .signin-card h1{letter-spacing:0;max-width:16ch;margin-inline:auto;line-height:1.1}.app-shell .signin-card p{max-width:34ch;margin-inline:auto}.app-shell .signin-card .btn{white-space:normal;width:min(100%,280px);min-width:0;max-width:280px}.app-shell .chat-shell{height:calc(100dvh - 128px)}.app-shell .chat-lang-picker{max-width:none}.app-shell .orb{width:70vw;max-width:280px;margin-bottom:var(--s-4)}.app-shell .bubble{max-width:92%}#toast-root{top:70px;inset-inline:12px}.toast{min-width:0}}@media (max-width:480px){.app-shell .app-topbar{padding-inline-start:max(env(safe-area-inset-left), var(--s-3));padding-inline-end:max(env(safe-area-inset-right), var(--s-3))}.app-shell .signin-card{width:min(100%,100vw - 24px);max-width:340px;padding:var(--s-5);overflow-wrap:anywhere;margin:clamp(48px,12vh,80px) auto}.app-shell .signin-card h1{letter-spacing:0;max-width:13ch;margin-inline:auto;font-size:clamp(1.35rem,7vw,1.65rem);line-height:1.1}.app-shell .signin-card p{max-width:30ch;margin-inline:auto}.app-shell .signin-card .btn{white-space:normal;width:min(100%,280px);min-width:0;max-width:280px}.app-shell .lang-picker-grid{grid-template-columns:repeat(2,1fr)}.app-shell .lesson-grid,.app-shell .numbers{grid-template-columns:1fr}}@media (min-width:1440px){.app-shell .lesson-grid{grid-template-columns:repeat(3,1fr)}}@keyframes auroraFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-30px)scale(1.1)}66%{transform:translate(-30px,40px)scale(.95)}}@keyframes gradientFlow{0%,to{background-position:0%}50%{background-position:100%}}@keyframes orbSpin{to{transform:rotate(360deg)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}@keyframes marquee{to{transform:translate(-50%)}}.goal-ring{place-items:center;display:grid;position:relative}.goal-ring svg{position:absolute;inset:0}.goal-ring .goal-ring-fill{transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}.goal-ring-label{text-align:center;flex-direction:column;line-height:1;display:flex}.goal-ring-value{font-family:var(--font-display);font-size:2.4rem;font-weight:900}.goal-ring-divider{opacity:.55;margin-top:4px;font-size:.85rem}.goal-ring-unit{opacity:.6;letter-spacing:0;text-transform:uppercase;margin-top:4px;font-size:.7rem}.goal-ring-complete .goal-ring-fill{stroke:var(--legacy-color-4ade80)!important}.streak-cal{grid-template-columns:repeat(7,1fr);gap:4px;padding:8px 0;display:grid}.streak-cal-day{aspect-ratio:1;background:#ffffff0f;border-radius:4px}.streak-cal-day.mid{background:#4895ef80}.streak-cal-day.high{background:#f72585b3}.streak-cal-day.frozen{background:#06b6d499}.streak-cal-day.today{box-shadow:0 0 0 2px #ffd700b3}.streak-cal-day.future{opacity:.3}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;display:grid}.badge-tile{text-align:center;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;transition:transform .15s;display:flex}.badge-tile:hover{transform:translateY(-2px)}.badge-icon{width:48px;height:48px;color:var(--legacy-color-ffd700);background:linear-gradient(135deg,#4895ef33,#f7258533);border-radius:12px;place-items:center;font-size:1.3rem;display:grid}.badge-tile.locked{opacity:.4;filter:grayscale(.6)}.badge-tile.locked .badge-icon{color:var(--legacy-color-9ca3af);background:#ffffff0f}.badge-name{font-size:.78rem;font-weight:700;line-height:1.1}.badge-date{opacity:.6;font-size:.68rem}.badge-xp{color:var(--legacy-color-ffd700);font-size:.7rem;font-weight:700}.skel{background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a) 0 0/600px 100%;border-radius:8px;animation:1.5s linear infinite skelShimmer}.avatar-picker{gap:8px;padding:4px;display:flex;overflow-x:auto}.avatar-tile{cursor:pointer;color:inherit;background:0 0;border:1px solid #ffffff1a;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;min-height:44px;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.avatar-tile.active{background:#4895ef1f;border-color:#4895ef99}.avatar-tile:hover{background:#ffffff0f}.avatar-icon{border-radius:8px;place-items:center;width:28px;height:28px;font-size:1rem;display:grid}.avatar-name{font-size:.85rem;font-weight:600}.waveform{align-items:flex-end;gap:3px;height:60px;padding:0 12px;display:inline-flex}.waveform-bar{background:linear-gradient(180deg, var(--legacy-color-4895ef), var(--legacy-color-f72585));border-radius:2px;width:4px;height:4px;transition:height 50ms;display:inline-block}@keyframes bargeinFlash{0%{filter:brightness(1.4)saturate(1.6)}to{filter:brightness()saturate()}}.pron-score-badge{background:#ffffff0f;border-radius:999px;align-items:center;gap:6px;margin-inline-start:8px;padding:4px 8px;font-size:.78rem;font-weight:600;display:inline-flex}.pron-tip{opacity:.75;margin-inline-start:4px;font-size:.7rem;display:block}.session-summary{text-align:center;border-radius:18px;max-width:480px;margin:24px auto;padding:24px}.session-summary-head{flex-direction:column;align-items:center;gap:8px;margin-bottom:18px;display:flex}.session-summary-head i{color:var(--legacy-color-4ade80);font-size:2rem}.session-summary-head h2{margin:0;font-size:1.4rem;font-weight:800}.session-summary-stats{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}@media (min-width:480px){.session-summary-stats{grid-template-columns:repeat(5,1fr)}}.ss-stat{background:#ffffff0a;border-radius:10px;flex-direction:column;padding:12px 8px;display:flex}.ss-stat strong{font-size:1.3rem;font-weight:800}.ss-stat span{opacity:.65;font-size:.7rem}.ss-xp strong{color:var(--legacy-color-ffd700)}.session-summary-tip{opacity:.8;margin:0 0 18px}.session-summary-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.chat-shell-2026{grid-template-columns:280px 1fr;gap:0;height:100%;display:grid;position:relative}@media (max-width:768px){.chat-shell-2026{grid-template-columns:1fr}.chat-shell-2026 .chat-history-host{z-index:50;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070b16eb;transition:transform .24s,opacity .24s;display:block;position:absolute;inset:0;transform:translate(-100%)}.chat-shell-2026.history-open .chat-history-host{opacity:1;pointer-events:auto;transform:translate(0)}}.conv-list{background:#0f172a66;border-inline-end:1px solid #ffffff0f;border-radius:0;flex-direction:column;height:100%;padding:0;display:flex}:root[data-theme=light] .conv-list{background:#ffffffb3}.conv-list-head{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.conv-list-head h3{margin:0;font-size:1rem;font-weight:700}.conv-list-search{border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:12px 14px;display:flex}.conv-list-search i{opacity:.5}.conv-search-input{color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;outline:none;flex:1;padding:8px}.conv-search-input:focus-visible{box-shadow:var(--focus-ring)}.conv-list-scroll{flex:1;padding:8px 0;overflow-y:auto}.conv-item{width:100%;color:inherit;text-align:start;cursor:pointer;border:0;background:0 0;border-inline-start:3px solid #0000;padding:10px 14px;transition:background .15s,border-color .15s;display:block}.conv-item:hover{background:#ffffff0d}.conv-item.active{border-inline-start-color:var(--legacy-color-4895ef);background:#4895ef1f}.conv-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;display:block;overflow:hidden}.conv-item-meta{opacity:.6;margin-top:2px;font-size:.72rem;display:block}.conv-list-new{justify-content:center;align-items:center;gap:6px;margin:12px 14px;display:flex}.chat-history-toggle{margin-inline-end:8px}.chat-main{flex-direction:column;min-height:0;display:flex}.word-token{cursor:pointer;border-radius:3px;padding:0 1px;transition:background .12s}.word-token:hover{background:#4895ef2e}.word-token:focus-visible{outline:2px solid var(--legacy-color-4895ef);outline-offset:1px}.word-popover{z-index:var(--z-overlay,60);background:var(--bg,var(--legacy-color-0f172a));border:1px solid #ffffff1f;border-radius:14px;padding:14px 16px;font-size:.9rem;position:absolute;box-shadow:0 16px 48px -8px #00000080}:root[data-theme=light] .word-popover{background:var(--legacy-color-fff);box-shadow:0 16px 48px -8px #0000002e}.word-popover-arrow{top:-6px;background:inherit;border-inline-start:1px solid #ffffff1f;border-top:1px solid #ffffff1f;width:12px;height:12px;position:absolute;inset-inline-start:50%;transform:translate(-50%)rotate(45deg)}.word-popover-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.word-popover-lemma{font-size:1.1rem;font-weight:700}.word-popover-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;font-size:1.2rem;line-height:1}.word-popover-translation{margin:0 0 6px;font-weight:600}.word-popover-pos{opacity:.7;margin:0 0 6px;font-size:.8rem}.word-popover-examples{opacity:.85;margin:6px 0;padding-inline-start:18px;font-size:.85rem}.word-popover-examples li{margin:3px 0}.word-popover-note{opacity:.7;margin:6px 0 0;font-size:.8rem;font-style:italic}.word-popover-actions{border-top:1px solid #ffffff14;gap:8px;margin-top:10px;padding-top:10px;display:flex}.btn-sm{padding:6px 10px;font-size:.8rem}.word-popover-loading{opacity:.7;align-items:center;gap:8px;font-size:.85rem;display:flex}.dot-pulse{background:var(--legacy-color-4895ef);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite dotPulseScale}@keyframes dotPulseScale{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.grammar-correction{border-inline-start:3px solid var(--warning);background:#f59e0b1f;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;padding:6px 10px;font-size:.85rem;display:inline-flex}.grammar-correction i{color:var(--warning)}.grammar-del{opacity:.7;text-decoration:line-through}.grammar-arrow{opacity:.5}.grammar-ins{color:var(--legacy-color-4ade80);font-weight:600}.pitch-contour{background:#4361ee0f;border:1px solid #4361ee24;border-radius:8px;margin:12px 0 0;padding:12px 14px 10px}.pitch-contour-loading,.pitch-contour-empty{color:var(--text-2);font-size:.85rem}.pitch-contour svg{vector-effect:non-scaling-stroke;width:100%;height:120px;display:block}.pitch-contour-grid{stroke:#ffffff0f;stroke-width:1px}.pitch-contour-ref{stroke:#9aa6ffd9;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.pitch-contour-user{stroke:#7ed7c1;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.pitch-contour-legend{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 0;font-size:.78rem;display:flex}.pitch-contour-swatch{vertical-align:middle;border-radius:2px;width:18px;height:3px;display:inline-block}.pitch-contour-ref-swatch{background:#9aa6ffd9}.pitch-contour-user-swatch{background:#7ed7c1}[data-theme=light] .pitch-contour{background:#4361ee0a;border-color:#4361ee2e}[data-theme=light] .pitch-contour-grid{stroke:#0000000f}[data-theme=light] .pitch-contour-ref{stroke:#4361ee8c}[data-theme=light] .pitch-contour-user{stroke:#22a189}[data-theme=light] .pitch-contour-ref-swatch{background:#4361ee8c}[data-theme=light] .pitch-contour-user-swatch{background:#22a189}mark.grammar-mark{color:inherit;cursor:pointer;text-underline-offset:3px;background:linear-gradient(#0000 55%,#f725852e 55% 92%,#0000 92%);border-radius:2px;padding:0 2px;-webkit-text-decoration:underline dotted #f725858c;text-decoration:underline dotted #f725858c;transition:background .16s}mark.grammar-mark:hover,mark.grammar-mark:focus-visible{background:linear-gradient(#0000 0%,#f7258547 0% 100%,#0000 100%)}[data-theme=dark] mark.grammar-mark{background:linear-gradient(#0000 55%,#4cc9f038 55% 92%,#0000 92%);text-decoration-color:#4cc9f0a6}[data-theme=dark] mark.grammar-mark:hover,[data-theme=dark] mark.grammar-mark:focus-visible{background:linear-gradient(#0000 0%,#4cc9f052 0% 100%,#0000 100%)}.quick-replies{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.qr-chip{color:inherit;cursor:pointer;background:#4895ef1f;border:1px solid #4895ef59;border-radius:999px;min-height:44px;padding:7px 12px;font-size:.85rem;transition:background .15s,transform .1s}.qr-chip:hover{background:#4895ef38;transform:translateY(-1px)}.bubble-error-host{background:#f43f5e1f;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:.85rem;display:flex}.bubble-error-text{color:var(--legacy-color-f43f5e)}.bubble-error{opacity:.8}.toast-actions{gap:6px;margin-inline-start:8px;display:inline-flex}.toast-action{color:inherit;cursor:pointer;background:#ffffff2e;border:0;border-radius:6px;padding:4px 8px;font-size:.8rem}.toast-close{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:0;margin-inline-start:4px;font-size:1.1rem;line-height:1}.toast-close:hover{opacity:1}.composer-busy{opacity:.7}.lesson-status{border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.lesson-status.completed{color:var(--legacy-color-4ade80);background:#4ade802e}.lesson-status.in-progress{color:var(--warning);background:#f59e0b2e}.lesson-card.completed{opacity:.78}.card-streak header{justify-content:space-between;align-items:center;display:flex}.card-recent .recent-link{color:inherit;border-bottom:1px solid #ffffff0f;padding:8px 0;text-decoration:none;display:block}.card-recent .recent-link:hover{color:var(--legacy-color-4895ef)}@media (max-width:768px){.app-bottombar{grid-template-columns:repeat(6,1fr)}}html.theme-fade,html.theme-fade body{filter:brightness(.92)saturate(.85);transition:filter .12s ease-out,background-color .12s ease-out!important}.xp-float{font-feature-settings:"tnum"}@keyframes navPillBreath{0%,to{box-shadow:0 2px 6px #f7258559}50%{box-shadow:0 2px 14px #f72585a6}}.skill-tree{--unit-color:var(--primary);flex-direction:column;gap:36px;display:flex}.skill-tree-empty{text-align:center;color:var(--text-secondary);padding:48px 16px}.skill-tree-empty i{color:var(--primary);margin-bottom:12px;font-size:2.4rem;display:block}.skill-tree-empty h3{font-family:var(--font-display);margin-bottom:8px}.skill-tree-empty .btn{margin-top:14px}.skill-unit{flex-direction:column;gap:12px;display:flex}.skill-unit-head{background:linear-gradient(120deg, color-mix(in srgb, var(--unit-color) 18%, transparent), color-mix(in srgb, var(--unit-color) 4%, transparent));border:1px solid color-mix(in srgb, var(--unit-color) 28%, transparent);border-radius:16px;grid-template-columns:56px 1fr;align-items:center;gap:14px;padding:14px 18px;display:grid}.skill-unit-mark{background:var(--unit-color);width:56px;height:56px;color:var(--text-on-accent);box-shadow:0 6px 18px color-mix(in srgb, var(--unit-color) 40%, transparent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.skill-unit-num{font-family:var(--font-display);font-size:1.4rem;font-weight:900}.skill-unit-text{flex-direction:column;gap:4px;display:flex}.skill-unit-title{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:800}.skill-unit-sub{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.84rem;display:-webkit-box;overflow:hidden}.skill-unit-progress{align-items:center;gap:10px;margin-top:6px;display:flex}.skill-unit-progress-bar{background:rgba(var(--primary-rgb), .12);border-radius:999px;flex:1;height:6px;overflow:hidden}.skill-unit-progress-bar>span{background:var(--unit-color);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.skill-unit-progress-label{color:var(--text-secondary);white-space:nowrap;font-size:.78rem;font-weight:700}.skill-unit-tree{justify-content:center;width:100%;display:flex;position:relative}.skill-paths{pointer-events:none;display:block}.skill-nodes{width:280px;margin:0;padding:0;list-style:none;position:absolute;inset:0;inset-inline-start:50%;transform:translate(-50%)}.skill-node{pointer-events:none;flex-direction:column;align-items:center;width:64px;height:64px;display:flex;position:absolute}.skill-node-btn{background:var(--card);width:64px;height:64px;color:var(--text);cursor:pointer;pointer-events:auto;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;display:flex;position:relative;box-shadow:0 4px 12px #00000026}.skill-node-glow{background:radial-gradient(circle, color-mix(in srgb, var(--unit-color) 40%, transparent) 0%, transparent 70%);opacity:0;pointer-events:none;border-radius:50%;transition:opacity .22s ease-out;position:absolute;inset:-6px}.skill-node-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000040}.skill-node-btn:active{transform:translateY(0)}.skill-node-btn:hover .skill-node-glow{opacity:1}.skill-node-icon{border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.skill-node-label{text-align:center;max-width:80px;color:var(--text-secondary);-webkit-line-clamp:2;pointer-events:none;-webkit-box-orient:vertical;margin-top:6px;font-size:.7rem;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}@keyframes skillNodePulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--unit-color) 55%, transparent)}70%{box-shadow:0 0 0 18px color-mix(in srgb, var(--unit-color) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--unit-color) 0%, transparent)}}@keyframes dotPulse{0%,to{opacity:1;box-shadow:0 0}50%{opacity:.7;box-shadow:0 0 0 6px #0000}}@media (max-width:640px){.skill-unit-tree{overflow-x:visible}.skill-paths,.skill-nodes{width:240px}.skill-nodes{inset-inline-start:50%;transform:translate(-50%)}}body.app-shell .course-beta-dashboard{border:1px solid color-mix(in srgb, var(--brand-3,var(--primary)) 42%, var(--border-color));background:radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--brand-3,var(--primary)) 18%, transparent), transparent 44%), var(--app-panel,var(--card-bg));border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:clamp(18px,3vw,26px);display:grid}body.app-shell .course-beta-dashboard-copy{min-width:0}body.app-shell .course-beta-dashboard-eyebrow{color:var(--brand-3,var(--primary));letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:800}body.app-shell .course-beta-dashboard h2{margin:5px 0 7px;font-size:clamp(1.2rem,2.4vw,1.65rem)}body.app-shell .course-beta-dashboard p{color:var(--text-2,var(--text-light));margin:0;line-height:1.55}body.app-shell .course-beta-dashboard .btn{white-space:nowrap;min-height:44px}@media (max-width:640px){body.app-shell .course-beta-dashboard{grid-template-columns:1fr}body.app-shell .course-beta-dashboard .btn{width:100%}}.scene-backdrop{text-align:center;color:var(--text-on-accent);text-shadow:0 2px 12px #0000004d;padding:16px 8px 8px}.scene-icon{filter:drop-shadow(0 4px 12px #0000004d);font-size:3rem;animation:3s ease-in-out infinite floatY;display:block}.scene-icon .svg-icon{width:3rem;height:3rem}.scene-title{font-family:var(--font-display);margin:8px 0 4px;font-size:1.6rem;font-weight:900}.scene-caption{opacity:.9;margin:0;font-size:.95rem}.scene-dialogue{margin:0;flex-direction:column;gap:10px;width:100%;max-width:720px;margin-inline:auto;padding:0;list-style:none;display:flex}.dlg{--char-color:var(--legacy-color-475569);color:var(--legacy-color-1e293b);border-inline-start:4px solid var(--char-color);background:#fffffff2;border-radius:16px;flex-direction:column;gap:4px;padding:12px 16px;animation:.36s cubic-bezier(.22,1,.36,1) backwards slideUp;display:flex;box-shadow:0 4px 12px #0000001f}.dlg:nth-child(2){animation-delay:80ms}.dlg:nth-child(3){animation-delay:.16s}.dlg:nth-child(4){animation-delay:.24s}.dlg:nth-child(5){animation-delay:.32s}.dlg-narrator{text-align:center;color:var(--legacy-color-475569);background:#ffffffc7;border-inline-start:none;font-style:italic}.dlg-name{font-family:var(--font-display);color:var(--char-color);text-transform:uppercase;letter-spacing:.5px;font-size:.85rem;font-weight:800}.dlg-text{cursor:pointer;border-radius:6px;outline:none;font-size:1.05rem;line-height:1.5;transition:background .15s ease-out,box-shadow .15s ease-out}.dlg-text:hover,.dlg-text:focus{background:#a855f714}.dlg-text:focus-visible{box-shadow:0 0 0 3px #a855f773}.dlg-gloss{color:var(--legacy-color-64748b);font-size:.82rem;font-style:italic}.scene-choice{border-radius:16px;max-width:720px;margin:16px auto 0;padding:18px}.scene-choice-prompt{font-weight:700;font-family:var(--font-display);margin:0 0 12px}.scene-choice-options{flex-direction:column;gap:10px;display:flex}.scene-choice-option{border:2px solid var(--border-color);background:var(--card);color:var(--text);cursor:pointer;text-align:start;transition:var(--transition);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-family:inherit;font-size:1rem;display:flex}.scene-choice-option:hover:not(:disabled){border-color:var(--primary);transform:translate(4px)}.scene-choice-option:disabled{cursor:not-allowed;opacity:.7}.scene-choice-option .opt-letter{background:rgba(var(--primary-rgb), .12);width:28px;height:28px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:inline-flex}.scene-choice-option.correct{border-color:var(--success);color:var(--success);background:#4ade8026}.scene-choice-option.correct .opt-letter{background:var(--success);color:var(--text-on-accent)}.scene-choice-option.wrong{border-color:var(--error);color:var(--error);background:#f43f5e26}.scene-choice-option.wrong .opt-letter{background:var(--error);color:var(--text-on-accent)}.scene-choice-feedback{border-radius:10px;margin-top:12px;padding:10px 14px;font-size:.92rem;font-weight:600}.scene-choice-feedback[data-kind=correct]{color:var(--success);background:#4ade802e}.scene-choice-feedback[data-kind=wrong]{color:var(--error);background:#f43f5e2e}.story-vocab-card .vocab-pos{text-transform:uppercase;letter-spacing:.5px;color:var(--legacy-color-94a3b8);font-size:.7rem}@media (max-width:640px){.scene-title{font-size:1.3rem}.scene-icon{font-size:2.2rem}.dlg{padding:10px 12px}.dlg-text{font-size:1rem}}.leagues-shell{flex-direction:column;gap:18px;min-width:0;max-width:980px;margin:0 auto;padding:16px;display:flex;container-type:inline-size}.leagues-hero{border-radius:22px;grid-template-columns:auto 1fr;align-items:center;gap:24px;min-width:0;padding:24px;display:grid}.leagues-hero-shield{justify-content:center;align-items:center;display:flex}.leagues-hero-meta{flex-direction:column;gap:6px;min-width:0;display:flex}.leagues-hero-eyebrow{color:var(--text-secondary);align-items:center;gap:6px;font-size:.92rem;font-weight:700;display:inline-flex}.leagues-hero-eyebrow .svg-icon{width:1.15rem;height:1.15rem}.leagues-hero-title{font-family:var(--font-display);letter-spacing:0;margin:0;font-size:1.8rem;font-weight:900}.leagues-hero-sub{color:var(--text-secondary);margin:0 0 12px}.leagues-hero-stats{flex-wrap:wrap;gap:12px 18px;display:flex}.leagues-hero-stats>span{flex-direction:column;gap:2px;display:flex}.leagues-hero-stats strong{font-family:var(--font-display);font-feature-settings:"tnum";font-size:1.4rem;font-weight:800}.leagues-hero-stats small{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;font-size:.78rem}.leagues-section-title{font-family:var(--font-display);margin:0 0 12px;font-size:1.05rem;font-weight:800}.leagues-ladder{border-radius:18px;padding:18px}.leagues-ladder-list{grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:10px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.ladder-rung{--lg-color:var(--legacy-color-cd7f32);background:rgba(var(--primary-rgb), .04);border:1px solid var(--border-color);transition:var(--transition);border-radius:12px;align-items:center;gap:10px;min-width:0;padding:10px 12px;font-weight:700;display:flex;position:relative}.ladder-rung.is-past{opacity:.55}.ladder-rung.is-current{background:color-mix(in srgb, var(--lg-color) 18%, transparent);border-color:var(--lg-color);box-shadow:0 8px 22px color-mix(in srgb, var(--lg-color) 30%, transparent)}.ladder-shield{flex-shrink:0;display:inline-flex}.ladder-name{font-family:var(--font-display);overflow-wrap:break-word;word-break:normal;min-width:0;font-size:.92rem}.ladder-tag{text-transform:uppercase;letter-spacing:.5px;color:var(--lg-color);margin-inline-start:auto;font-size:.7rem;font-weight:800}.leagues-cohort{border-radius:18px;padding:18px}.leagues-cohort-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-bottom:12px;display:flex}.leagues-cohort-head h2{font-family:var(--font-display);margin:0;font-size:1.1rem;font-weight:800}.leagues-cohort-meta{color:var(--text-secondary);text-align:end;min-width:0;font-size:.9rem;font-weight:600}.leagues-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex;position:relative}.leagues-row{background:var(--card);transition:var(--transition);border:1px solid #0000;border-radius:12px;grid-template-columns:36px 36px 1fr auto;align-items:center;gap:10px;min-width:0;padding:8px 12px;display:grid}.leagues-row.is-me{background:rgba(var(--primary-rgb), .1);border-color:rgba(var(--primary-rgb), .4)}.leagues-row .row-rank{font-family:var(--font-mono);text-align:center;font-feature-settings:"tnum";color:var(--text-secondary);font-weight:800}.leagues-row .row-avatar{background:linear-gradient(135deg, var(--primary), var(--accent));width:36px;height:36px;color:var(--text-on-accent);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.leagues-row .row-name{overflow-wrap:break-word;word-break:normal;align-items:center;gap:8px;min-width:0;font-weight:700;display:flex}.leagues-row .row-pill{background:var(--primary);color:var(--text-on-accent);letter-spacing:.5px;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:800;display:inline-block}.leagues-row .row-xp{font-family:var(--font-mono);font-feature-settings:"tnum";font-weight:800}.leagues-zone-divider{text-transform:uppercase;letter-spacing:.5px;text-align:center;color:var(--text-secondary);padding:6px 12px;font-size:.75rem;font-weight:800;list-style:none;position:relative}.leagues-zone-divider:before,.leagues-zone-divider:after{content:"";background:var(--border-color);width:30%;height:1px;position:absolute;top:50%}.leagues-zone-divider:before{inset-inline-start:4%}.leagues-zone-divider:after{inset-inline-end:4%}.zone-divider-promote{color:var(--success);order:2}@media (max-width:720px){.leagues-hero{text-align:center;grid-template-columns:1fr}.leagues-hero-stats{justify-content:center}.leagues-ladder-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.leagues-shell{padding-inline:10px}.leagues-hero{padding:16px}.leagues-hero-stats{justify-content:space-between;gap:10px}.leagues-ladder{padding:14px}.leagues-ladder-list{grid-template-columns:1fr}.leagues-row{grid-template-columns:32px 32px minmax(0,1fr) auto;gap:8px;padding-inline:8px}}@media (max-width:420px){.leagues-ladder-list{grid-template-columns:1fr}}.kw{border-radius:8px;margin:2px;padding:4px 8px;transition:background .22s ease-out,color .22s ease-out,transform .22s ease-out;display:inline-block}.kw.lit{background:linear-gradient(135deg, var(--accent), var(--primary));color:var(--text-on-accent);transform:translateY(-2px)}.kw.s-good{color:var(--success);background:#4ade8040}.kw.s-mid{color:var(--warning);background:#f59e0b40}.kw.s-bad{color:var(--error);background:#f43f5e40}.ks{color:var(--text-secondary)}.tav{width:220px;height:240px;display:inline-block;position:relative}.tav .tav-svg{display:block}.tav .tav-body{transform-origin:110px 140px;animation:4s ease-in-out infinite tavBreath}@keyframes tavBreath{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.012)translateY(-2px)}}.tav[data-state=listening] .tav-body{animation:4s ease-in-out infinite tavBreath,4s ease-in-out infinite tavHeadTilt}@keyframes tavHeadTilt{0%,to{transform:rotate(0)}50%{transform:rotate(2.5deg)}}.tav[data-state=celebrating] .tav-body{animation:.6s cubic-bezier(.34,1.56,.64,1) 2 tavBounce}@keyframes tavBounce{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.04)}to{transform:translateY(0)scale(1)}}.tav .tav-halo-outer,.tav .tav-halo-ring{transform-origin:110px 118px;transition:opacity .32s}.tav[data-state=listening] .tav-halo-outer{animation:2s ease-in-out infinite tavHaloPulse}.tav[data-state=listening] .tav-halo-ring{animation:2s ease-in-out infinite reverse tavHaloPulse}@keyframes tavHaloPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(1.08)}}.tav .tav-eye-white{transform-origin:50%;transition:transform 80ms ease-out}.tav .tav-eye-white.blink{transform:scaleY(.05)}.tav .tav-eye-white.wide{transform:scaleY(1.15)}.tav .tav-pupil.blink,.tav .tav-iris.blink,.tav .tav-spark.blink{opacity:0}.tav .tav-spark:not(.tav-spark-sm){animation:5.6s ease-in-out infinite tavSparkBlink}@keyframes tavSparkBlink{0%,96%,to{opacity:1}98%{opacity:.4}}.tav .tav-brow{transform-origin:50%;transition:transform .2s ease-out}.tav .tav-brow.up.tav-brow-l{transform:translateY(-5px)rotate(-5deg)}.tav .tav-brow.up.tav-brow-r{transform:translateY(-2px)rotate(2deg)}.tav .tav-think{transition:opacity .22s ease-out}.tav .tav-think circle{animation:1.6s ease-in-out infinite thinkDot}.tav .tav-think circle:nth-child(2){animation-delay:.2s}.tav .tav-think circle:nth-child(3){animation-delay:.4s}@keyframes thinkDot{0%,60%,to{opacity:.55;transform:translateY(0)scale(1)}30%{opacity:1;transform:translateY(-5px)scale(1.25)}}.tav .tav-mouth-wrap{transform-origin:110px 172px;transition:transform 80ms ease-out}.tav[data-state=speaking] .tav-mouth-wrap{transform:scaleX(1.06)}.tav .tav-spark-ring{transition:opacity .24s ease-out}.tav[data-state=celebrating] .tav-sparkle{animation:.9s ease-out infinite tavSparkle}@keyframes tavSparkle{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(.4)}}@media (max-width:640px){.tav{width:180px;height:200px}}@keyframes goal-ring-levelup-pulse{0%{filter:drop-shadow(0 0 #ffd70000);transform:scale(1)}50%{filter:drop-shadow(0 0 24px #ffd70099);transform:scale(1.15)}to{filter:drop-shadow(0 0 #ffd70000);transform:scale(1)}}@keyframes empty-icon-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.12)}}.streak-milestone{border-radius:var(--r-3,14px);background:linear-gradient(135deg,#ffc4001a,#f725850f);border:1px solid #ffc40059;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 18px;animation:.45s cubic-bezier(.22,1,.36,1) milestone-slide-in;display:grid;box-shadow:0 8px 32px #ffc4001a}@keyframes milestone-slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.streak-milestone-flame{background:radial-gradient(circle at 50% 60%, var(--legacy-color-ffd700), var(--legacy-color-f59e0b) 70%);width:44px;height:44px;color:var(--text-on-accent);border-radius:50%;place-items:center;font-size:1.35rem;animation:1.6s ease-in-out infinite milestone-flame-wiggle;display:grid;box-shadow:0 4px 18px #ffc40059}@keyframes milestone-flame-wiggle{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-5deg)scale(1.04)}75%{transform:rotate(5deg)scale(1.04)}}.streak-milestone-text{flex-direction:column;gap:2px;display:flex}.streak-milestone-text strong{color:var(--text-1,var(--legacy-color-fff));font-size:1rem;font-weight:800}.streak-milestone-text small{color:var(--text-2,#ffffffa6);font-size:.82rem}.streak-milestone-actions{align-items:center;gap:6px;display:flex}.streak-milestone-actions .btn-icon-ghost{width:44px;height:44px;color:var(--text-2,#fff9);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.1rem;transition:background .15s}.streak-milestone-actions .btn-icon-ghost:hover{background:#ffffff14}@media (max-width:480px){.streak-milestone{grid-template-columns:auto minmax(0,1fr);align-items:start}.streak-milestone-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;min-width:0}.streak-milestone-actions .btn{min-width:0}}.streak-milestone-fade{animation:.6s ease-out forwards milestone-fade-out}@keyframes milestone-fade-out{to{opacity:.55}}.streak-milestone-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.streak-milestone-tile{border-radius:var(--r-2,10px);text-align:center;background:#ffffff08;border:1px solid #ffffff14;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;transition:transform .15s,border-color .15s,background .15s;display:flex}.streak-milestone-tile.unlocked{background:linear-gradient(135deg,#ffc4001a,#ffc4000a);border-color:#ffc40073;box-shadow:0 4px 14px #ffc4001a}.streak-milestone-tile.unlocked:hover{transform:translateY(-2px)}.streak-milestone-tile.locked{filter:grayscale(.85);opacity:.55}.streak-milestone-tile-flame{width:32px;height:32px;color:var(--text-2,#ffffff80);background:#ffffff0f;border-radius:50%;place-items:center;font-size:.9rem;display:grid}.streak-milestone-tile.unlocked .streak-milestone-tile-flame{background:radial-gradient(circle, var(--legacy-color-ffd700), var(--legacy-color-f59e0b) 70%);color:var(--text-on-accent)}.streak-milestone-tile strong{font-size:.9rem;font-weight:800}.streak-milestone-tile small{color:var(--text-2,#ffffff8c);font-size:.65rem}@keyframes cinemaDrift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(2%,-1%)scale(1.05)}to{transform:translate(-2%,1%)scale(1.02)}}@keyframes cinemaBreath{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes cinemaRimPulse{0%,to{filter:brightness()}50%{filter:brightness(1.2)}}@keyframes cinemaRimBuild{0%{opacity:.4}to{opacity:1}}@keyframes cinemaDot{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-6px)}}.caption-stream{text-align:center;gap:6px;min-height:96px;padding:8px 14px;display:grid;position:relative}.caption-prev{opacity:.42;text-wrap:balance;max-height:1.6em;font-size:clamp(12px,2.4vw,15px);font-weight:500;transition:opacity .24s;overflow:hidden}.caption-now{letter-spacing:.1px;text-wrap:balance;text-shadow:0 2px 18px #0006;max-height:5.2em;font-size:clamp(18px,4.4vw,30px);font-weight:700;line-height:1.28;overflow:hidden}.caption-now[data-role=user]{color:var(--legacy-color-cbe6ff)}.caption-now[data-role=assistant]{color:var(--text-on-accent)}.caption-now[data-role=hint]{color:#ffffff8c;font-style:italic;font-weight:500}.caption-stream[data-state=listening] .caption-now{opacity:.5}.caption-stream[data-state=speaking] .caption-now[data-role=assistant][data-tokenized="1"]:after{content:"▮";color:color-mix(in srgb, var(--rim-color,var(--primary)) 80%, white);margin-inline-start:4px;font-weight:400;animation:1.05s steps(2,start) infinite captionTypingBlink;display:inline-block}@keyframes captionTypingBlink{to{visibility:hidden}}.caption-think{justify-content:center;gap:6px;display:inline-flex}.caption-think span{background:color-mix(in srgb, var(--rim-thinking) 80%, white);border-radius:50%;width:8px;height:8px;animation:.9s ease-in-out infinite cinemaDot}.caption-think span:nth-child(2){animation-delay:.12s}.caption-think span:nth-child(3){animation-delay:.24s}.caption-think[hidden]{display:none}@media (max-width:480px){.caption-now{font-size:clamp(16px,5.2vw,22px)}}.app-shell .chat-shell-2026b{height:calc(100dvh - 56px - var(--s-12));grid-template-columns:280px 1fr;gap:0;max-width:none;margin:0;display:grid;position:relative}@media (max-width:768px){.app-shell .chat-shell-2026b{grid-template-columns:1fr;height:calc(100dvh - 128px)}}.app-shell .chat-shell-2026b .chat-main{min-height:0;padding:var(--s-3);gap:var(--s-3);grid-template-rows:auto auto auto 1fr auto;display:grid}.app-shell .chat-topbar-2026{--persona-accent:var(--brand-1);align-items:center;gap:var(--s-3);padding:10px var(--s-4);border-radius:var(--r-3);background:linear-gradient(135deg, color-mix(in srgb, var(--persona-accent) 14%, #0f172a8c) 0%, #0f172a8c 100%);border:1px solid color-mix(in srgb, var(--persona-accent) 22%, #ffffff14);-webkit-backdrop-filter:var(--glass-blur);z-index:var(--z-sticky,50);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid;position:relative;overflow:visible}@media (max-width:420px){.app-shell .chat-topbar-2026{gap:var(--s-2);padding:8px var(--s-3);grid-template-columns:auto minmax(0,1fr) auto}.app-shell .chat-topbar-2026 .chat-topbar-spacer{display:none}}.app-shell .chat-topbar-2026:before{content:"";border-radius:inherit;background:radial-gradient(60% 80% at 8% 50%, color-mix(in srgb, var(--persona-accent) 18%, transparent), transparent 60%);pointer-events:none;position:absolute;inset:0}.app-shell .chat-topbar-2026>*{z-index:1;position:relative}.app-shell .chat-topbar-2026 .chat-history-toggle{display:none}@media (max-width:768px){.app-shell .chat-topbar-2026 .chat-history-toggle{display:inline-flex}}.app-shell .chat-persona-chip{border-radius:var(--r-pill);border:1px solid color-mix(in srgb, var(--persona-accent) 38%, #ffffff1a);color:var(--text-1);cursor:pointer;background:#ffffff0f;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-family:inherit;transition:background .16s,transform .16s,border-color .16s;display:inline-flex}.app-shell .chat-persona-chip:hover{border-color:color-mix(in srgb, var(--persona-accent) 65%, transparent);background:#ffffff1a;transform:translateY(-1px)}.app-shell .chat-persona-avatar{background:var(--app-action-gradient);width:36px;height:36px;box-shadow:0 4px 12px color-mix(in srgb, var(--persona-accent) 35%, transparent);border-radius:50%;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.app-shell .chat-persona-avatar img{object-fit:cover;width:100%;height:100%;display:block}.app-shell .chat-persona-avatar>span{font-size:18px}.app-shell .chat-persona-meta{text-align:start;flex-direction:column;gap:1px;min-width:0;line-height:1.15;display:flex}.app-shell .chat-persona-meta strong{font-family:var(--font-display);letter-spacing:.1px;white-space:nowrap;font-size:.95rem;font-weight:800}.app-shell .chat-persona-meta small{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;max-width:14ch;font-size:.72rem;overflow:hidden}@media (min-width:540px){.app-shell .chat-persona-meta small{max-width:22ch}}@media (min-width:900px){.app-shell .chat-persona-meta small{max-width:32ch}}.app-shell .chat-persona-cue{opacity:.55;font-size:.7rem}.app-shell .chat-topbar-spacer{min-width:4px}.app-shell .chat-level-chip{border-radius:var(--r-pill);color:var(--text-1);cursor:pointer;font-feature-settings:"tnum";background:#ffffff0f;border:1px solid #ffffff1a;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:700;transition:background .16s,border-color .16s;display:inline-flex}.app-shell .chat-level-chip:hover{border-color:color-mix(in srgb, var(--persona-accent) 50%, #ffffff2e);background:#ffffff1a}.app-shell .chat-level-chip i{color:color-mix(in srgb, var(--persona-accent) 80%, white)}.app-shell .chat-scene-strip{border-radius:var(--r-3,18px);background:linear-gradient(135deg, color-mix(in srgb, var(--persona-accent) 12%, #ffffff0a), color-mix(in srgb, var(--persona-accent) 4%, #ffffff05));border:1px solid color-mix(in srgb, var(--persona-accent) 32%, #ffffff14);align-items:center;gap:14px;margin:8px 12px 6px;padding:10px 14px;display:flex;position:relative;overflow:hidden}.app-shell .chat-scene-strip:after{content:"";inset-inline:12%;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--persona-accent) 60%, transparent), transparent);opacity:.7;height:1px;animation:4.2s ease-in-out infinite chat-scene-shimmer;position:absolute;bottom:0}@keyframes chat-scene-shimmer{0%,to{opacity:.4;transform:translate(-12%)}50%{opacity:.85;transform:translate(12%)}}@media (max-width:540px){.app-shell .chat-scene-strip{gap:10px;margin:6px 8px 4px;padding:8px 10px}}.app-shell .chat-mode-bar{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(12px);scrollbar-width:none;background:#ffffff0a;border:1px solid #ffffff0f;gap:4px;padding:4px;display:flex;overflow-x:auto}.app-shell .chat-mode-bar::-webkit-scrollbar{display:none}.app-shell .chat-mode-tab{border-radius:var(--r-pill);color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:.85rem;font-weight:700;transition:background .2s,color .2s,transform .16s;display:inline-flex}.app-shell .chat-mode-tab:hover{color:var(--text-1)}.app-shell .chat-mode-tab i{font-size:.85rem}.app-shell .chat-mode-tab.active{background:var(--app-action-gradient);color:var(--text-on-accent);box-shadow:0 4px 14px #667eea66}.app-shell .chat-mode-tab.active i{color:var(--text-on-accent)}.app-shell .chat-welcome{padding:var(--s-4) 0;align-self:center;width:100%;list-style:none;display:block}.app-shell .chat-welcome-card{gap:var(--s-4);padding:var(--s-4);border-radius:var(--r-3);grid-template-columns:96px 1fr;align-items:center;max-width:720px;margin:0 auto;display:grid;position:relative;overflow:hidden}.app-shell .chat-welcome-card:before{content:"";pointer-events:none;background:radial-gradient(80% 60% at 0 0,#667eea2e,#0000 60%),radial-gradient(60% 80% at 100% 100%,#f725851a,#0000 70%);position:absolute;inset:0}.app-shell .chat-welcome-card>*{z-index:1;position:relative}.app-shell .chat-welcome-text{flex-direction:column;gap:8px;min-width:0;display:flex}.app-shell .chat-welcome-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--brand-3) 80%, white);opacity:.85;align-items:center;gap:6px;font-size:.72rem;font-weight:800;display:inline-flex}.app-shell .chat-welcome-eyebrow i{color:var(--accent)}.app-shell .chat-welcome-title{font-family:var(--font-display);letter-spacing:0;color:var(--text-1);text-wrap:balance;margin:0;font-size:clamp(1.1rem,2.2vw,1.4rem);font-weight:800;line-height:1.25}.app-shell .chat-welcome-sub{color:var(--text-2);margin:0;font-size:.92rem;line-height:1.5}.app-shell .chat-welcome-chips{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.app-shell .chat-welcome-chip{border-radius:var(--r-pill);color:var(--text-1);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;align-items:center;gap:8px;padding:8px 14px;font-family:inherit;font-size:.82rem;font-weight:600;transition:background .16s,transform .16s,border-color .16s;display:inline-flex}.app-shell .chat-welcome-chip:hover{background:#ffffff1a;border-color:#667eea80;transform:translateY(-2px)}.app-shell .chat-welcome-chip-icon{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));width:24px;height:24px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.7rem;display:grid}@media (max-width:560px){.app-shell .chat-welcome-card{text-align:center;grid-template-columns:1fr}.app-shell .chat-welcome-chips{justify-content:center}}@keyframes chatLoadingDot{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.app-shell .bubble-assistant .avatar-tutor{--persona-accent:var(--brand-1);background:linear-gradient(135deg, var(--persona-accent,var(--brand-1)), color-mix(in srgb, var(--persona-accent,var(--brand-1)) 60%, var(--brand-2)));outline:2px solid color-mix(in srgb, var(--persona-accent,var(--brand-1)) 70%, transparent);outline-offset:1px;width:36px;height:36px;box-shadow:0 0 0 4px color-mix(in srgb, var(--persona-accent,var(--brand-1)) 18%, transparent), 0 4px 12px color-mix(in srgb, var(--persona-accent,var(--brand-1)) 35%, transparent);overflow:hidden}.app-shell .bubble-assistant .avatar-tutor img{object-fit:cover;width:100%;height:100%;display:block}.app-shell .chat-composer-host{z-index:2;flex-direction:column;align-items:stretch;gap:8px;padding-top:4px;display:flex;position:relative}.app-shell .composer.glass{background:var(--glass-bg);border-radius:var(--r-3);-webkit-backdrop-filter:var(--glass-blur);border:1px solid #ffffff1a;box-shadow:0 -4px 24px -8px #00000040}:root[data-theme=light] .app-shell .composer.glass{background:#ffffffd9;border-color:#0f172a14}.app-shell .qa-chip{font-weight:600;transition:background .16s,transform .12s,border-color .16s}.app-shell .qa-chip-icon{align-items:center;display:inline-flex}.app-shell .qa-chip-icon .svg-icon{width:1rem;height:1rem}.app-shell .qa-chip:hover{background:#ffffff1a;border-color:#667eea66;transform:translateY(-1px)}.app-shell .send-btn{box-shadow:0 6px 18px -4px #667eea8c}.app-shell .send-btn:hover{transform:translateY(-1px)scale(1.03)}.app-shell .send-btn:disabled{opacity:.5;box-shadow:none;transform:none}.app-shell .chat-shell-2026b .conv-list{background:#0f172a73;border-inline-end:1px solid #ffffff0f}:root[data-theme=light] .app-shell .chat-shell-2026b .conv-list{background:#ffffffb3;border-inline-end-color:#0f172a0f}.conv-list-head{background:#ffffff05}.conv-list-head h3{font-family:var(--font-display);letter-spacing:0;font-weight:800}.conv-list-search{border-radius:var(--r-pill);background:#ffffff0d;border:1px solid #ffffff14;margin:8px 12px 4px;padding:8px 12px}.conv-list-search:focus-within{background:#ffffff12;border-color:#667eea80}.conv-list-group-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);opacity:.85;padding:14px 16px 6px;font-size:.7rem;font-weight:800}.conv-item{border-inline-start:0;border-radius:12px;margin:0 8px;padding:10px 12px;transition:background .16s,transform .16s}.conv-item:hover{background:#ffffff0f;transform:translate(2px)}.conv-item.active{background:linear-gradient(135deg,#667eea2e,#764ba21f);border-inline-start:0;box-shadow:inset 0 0 0 1px #667eea59}.conv-item-meta{align-items:center;gap:6px;font-size:.7rem;display:inline-flex}.conv-item-lang{color:color-mix(in srgb, var(--brand-3) 80%, white);letter-spacing:.04em;background:#667eea2e;border-radius:999px;padding:1px 6px;font-size:.62rem;font-weight:800;display:inline-block}.conv-item-when{opacity:.65}.conv-list-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.conv-list-empty i{color:var(--brand-3);opacity:.6;font-size:1.8rem}.conv-list-new{border-radius:var(--r-pill);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:700;display:inline-flex}@keyframes voice2TapRing{0%{opacity:.85;transform:scale(.85)}to{opacity:0;transform:scale(1.6)}}@keyframes voice2TapFlash{0%{opacity:1;border-color:#ffffffd9;transform:scale(.85)}to{opacity:0;border-color:#fff0;transform:scale(2.4)}}.dock-cta-aura{background:linear-gradient(135deg, var(--rim-listening,var(--legacy-color-4cc9f0)), var(--rim-speaking,var(--legacy-color-f72585)));filter:blur(14px);opacity:.55;z-index:-1;border-radius:999px;animation:3.6s ease-in-out infinite dockCtaBreath;position:absolute;inset:-4px}@keyframes dockCtaBreath{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.75;transform:scale(1.04)}}@keyframes dockCtaBolt{0%,to{transform:translateY(0)rotate(0)}20%{transform:translateY(-1px)rotate(-6deg)}60%{transform:translateY(0)rotate(6deg)}}@keyframes cinemaReadyPulse{0%{opacity:.85;transform:scale(.97)}to{opacity:0;transform:scale(1.08)}}@keyframes liveDotPulse{0%{box-shadow:0 0 #f43f5e8c}70%{box-shadow:0 0 0 8px #f43f5e00}to{box-shadow:0 0 #f43f5e00}}@media (max-width:640px){.app-shell .chat-topbar-2026{grid-template-columns:auto 1fr auto;grid-template-areas:"toggle persona controls""modes modes modes";padding:8px 12px}.app-shell .chat-topbar-2026 .chat-history-toggle{grid-area:toggle}.app-shell .chat-persona-chip{grid-area:persona;padding:4px 10px 4px 4px}.app-shell .chat-persona-avatar{width:32px;height:32px}.app-shell .chat-persona-meta strong{font-size:.85rem}.app-shell .chat-persona-meta small{display:none}.app-shell .chat-mode-tab{padding:7px 12px;font-size:.78rem}.app-shell .chat-mode-tab span{display:inline}}@media (prefers-contrast:more){:root,[data-theme=dark]{--text-secondary:var(--text-primary);--text-light:var(--text-primary);--border-color:currentColor}.glass,[class*=glass]{-webkit-backdrop-filter:none!important;background:var(--card)!important}.btn,.icon-btn,.chip{border:2px solid!important}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.field-error{color:var(--error);letter-spacing:.01em;margin:6px 0 0;font-size:.85rem;font-weight:500}.field-error:before{content:"";margin-inline-end:4px}[aria-invalid=true].chip-group{outline:1px dashed var(--error);outline-offset:6px;border-radius:12px}.composer-input[aria-invalid=true]{box-shadow:0 0 0 2px var(--error-bg)}.mic-btn[disabled]{opacity:.5;cursor:not-allowed;filter:saturate(.4);pointer-events:none;box-shadow:none;border-color:var(--text-secondary)}@keyframes hy-microcopy-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.app-bottombar{padding-bottom:max(8px, env(safe-area-inset-bottom))!important}::view-transition-old(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-new(root){animation-duration:.28s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(root){animation-name:hy-fade-out-soft}::view-transition-new(root){animation-name:hy-fade-in-soft}@keyframes hy-fade-out-soft{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.992)}}@keyframes hy-fade-in-soft{0%{opacity:0;transform:scale(1.004)}to{opacity:1;transform:scale(1)}}[data-vt=persona]{view-transition-name:hy-persona}:root.theme-sweep::view-transition-old(root){animation-name:hy-theme-sweep-out;animation-duration:.48s}:root.theme-sweep::view-transition-new(root){animation-name:hy-theme-sweep-in;animation-duration:.48s}@keyframes hy-theme-sweep-in{0%{clip-path:circle(0 at var(--theme-sweep-cx,50%) var(--theme-sweep-cy,50%))}to{clip-path:circle(150vmax at var(--theme-sweep-cx,50%) var(--theme-sweep-cy,50%))}}@keyframes hy-theme-sweep-out{0%{clip-path:circle(150vmax at var(--theme-sweep-cx,50%) var(--theme-sweep-cy,50%))}to{clip-path:circle(0 at var(--theme-sweep-cx,50%) var(--theme-sweep-cy,50%))}}@supports (content-visibility:auto){.message-stream .bubble{content-visibility:auto;contain-intrinsic-size:auto 120px}}.chat-main{container:chat/inline-size}@container chat (width<=540px){.chat-main .composer .quick-actions{display:none}}@container chat (width<=420px){.chat-main .bubble-actions [data-action=save],.chat-main .bubble-actions [data-action=explain]{display:none}.chat-main .bubble-actions{gap:4px}}body.app-shell [data-course-v3-nav][hidden]{display:none!important}.app-shell .app-bottombar-2026{grid-template-columns:1fr 1fr 1fr 88px 1fr 1fr;align-items:end;gap:0;transition:transform .2s ease-out;overflow:visible}.app-shell .app-bottombar-2026.is-hidden:not(:focus-within){pointer-events:none;transform:translateY(110%)}.app-shell .app-bottombar-2026 .bb-tab{min-height:56px;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 2px;font-size:.7rem;font-weight:600;text-decoration:none;display:flex;position:relative}.app-shell .app-bottombar-2026>a[data-course-v3-nav]{min-block-size:52px;min-inline-size:0}.app-shell .app-bottombar-2026 .bb-tab.active{color:var(--text-1)}.app-shell .app-bottombar-2026 .bb-tab.active i{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#0000;-webkit-background-clip:text;background-clip:text}.app-shell .app-bottombar-2026 .bb-tab i{font-size:1.125rem}.app-shell .app-bottombar-2026 .bb-fab{background:linear-gradient(135deg, var(--brand-1,var(--legacy-color-4361ee)), var(--accent,var(--legacy-color-f72585)));width:64px;height:64px;color:var(--text-on-accent);box-shadow:0 12px 28px -6px #4361ee8c,  0 0 0 4px var(--app-chrome-cutout,#0a0e27d9);transition:transform var(--t-fast,.15s) ease, box-shadow var(--t-fast,.15s) ease;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;text-decoration:none;display:flex;position:relative;transform:translateY(-18px)}.app-shell .app-bottombar-2026 .bb-fab:active{transform:translateY(-15px)scale(.96)}.app-shell .app-bottombar-2026 .bb-fab i{-webkit-background-clip:initial;background-clip:initial;font-size:1.4rem;color:var(--legacy-color-fff)!important;background:0 0!important}.app-shell .app-bottombar-2026 .bb-fab-label{bottom:-16px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:.65rem;font-weight:700;position:absolute;inset-inline-start:50%;transform:translate(-50%)}.app-shell .app-bottombar-2026 .bb-fab.active .bb-fab-label{color:var(--text-1)}.app-shell .app-bottombar-2026 .bb-fab-glow{filter:blur(8px);z-index:-1;pointer-events:none;background:radial-gradient(circle,#f7258559 0%,#0000 70%);border-radius:50%;animation:2.4s ease-in-out infinite fabGlowPulse;position:absolute;inset:-6px}@keyframes fabGlowPulse{0%,to{opacity:.55;transform:scale(.95)}50%{opacity:.95;transform:scale(1.08)}}.app-shell .app-bottombar-2026 .bb-fab:focus-visible{outline:3px solid var(--accent,var(--legacy-color-f72585));outline-offset:4px}.app-shell .app-sidenav-2026 ul{gap:4px}.app-shell .app-sidenav-2026 a{padding:14px 16px;font-size:.95rem;font-weight:600}.app-shell .app-sidenav-2026 a i{font-size:1.05rem}.app-shell .memory-card,.app-shell .sprint-option,.app-shell .sentence-token,.app-shell .sentence-actions .btn,.app-shell .image-quest-option,.app-shell .sound-pop-bubble,.app-shell .sound-pop-listen .btn,.app-shell .generated-prompt .btn{min-height:48px}.app-shell .image-quest-board,.app-shell .sound-pop-board{touch-action:manipulation}.app-shell .generated-board.is-chat-quest .generated-prompt .sprint-icon{color:var(--legacy-color-f472b6);background:#ec489924}.app-shell .generated-board.is-echo-rush .generated-prompt .sprint-icon{color:var(--legacy-color-facc15);background:#facc1526}@container (width<=540px){.app-shell .image-quest-scene{min-height:clamp(260px,74vw,340px)}}.app-shell .memory-grid{grid-template-columns:repeat(4,minmax(72px,1fr));gap:10px;display:grid}.app-shell .memory-card{aspect-ratio:1;min-height:78px;color:var(--text-1,var(--text));text-align:center;overflow-wrap:anywhere;background:#0f172a6b;border:1px solid #ffffff24;border-radius:8px;place-items:center;padding:8px;font-weight:900;display:grid}.app-shell .memory-card i{color:var(--text-3,var(--text-secondary))}.app-shell .memory-card.is-open{background:#ffffff1c;border-color:#4cc9f06b}.app-shell .memory-card.is-matched{background:#4ade8029;border-color:#4ade8085}.app-shell .memory-card span{font-size:clamp(.82rem,2.2vw,1.1rem)}.app-shell .memory-card span:only-child{font-size:clamp(1rem,4vw,2rem)}.app-shell .sprint-board,.app-shell .sentence-board,.app-shell .generated-board{flex-direction:column;gap:16px;display:flex}.app-shell .sprint-prompt,.app-shell .sentence-clue,.app-shell .generated-prompt{text-align:center;background:#ffffff12;border-radius:8px;place-items:center;gap:8px;min-height:132px;padding:18px;display:grid}.app-shell .sprint-icon,.app-shell .sentence-clue span{place-items:center;width:3rem;height:3rem;display:inline-grid}.app-shell .game-prompt-visual,.app-shell .memory-card-visual,.app-shell .image-quest-visual,.app-shell .sound-pop-token{isolation:isolate;background:#0f172a6b;border:1px solid #ffffff29;border-radius:8px;place-items:center;display:inline-grid;position:relative;overflow:hidden}.app-shell .game-prompt-visual{width:100%;height:100%}.app-shell .memory-card-visual{width:min(100%,64px);height:min(100%,64px)}.app-shell .generated-prompt .sprint-icon{width:56px;height:56px;color:var(--brand-3,var(--legacy-color-4cc9f0));background:#4cc9f024;border-radius:8px;justify-content:center;align-items:center;font-size:1.35rem;display:inline-flex}.app-shell .sprint-prompt strong,.app-shell .sentence-clue strong,.app-shell .generated-prompt strong{overflow-wrap:anywhere;font-size:1.45rem;font-weight:900}.app-shell .sprint-prompt small,.app-shell .generated-prompt small{color:var(--text-2,var(--text-secondary));font-weight:700;line-height:1.4}.app-shell .sprint-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.app-shell .sprint-option,.app-shell .sentence-token{min-height:48px;color:var(--text-1,var(--text));overflow-wrap:anywhere;background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;font-weight:850}.app-shell .sprint-option.is-correct{background:#4ade8033;border-color:#4ade8094}.app-shell .sprint-option.is-wrong{background:#f43f5e33;border-color:#f43f5e94}.app-shell .image-quest-board,.app-shell .sound-pop-board{flex-direction:column;gap:16px;min-width:0;display:flex;overflow:hidden}.app-shell .image-quest-scene{background:linear-gradient(135deg,#4cc9f01f,#f59e0b1a),#0f172a75;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:minmax(160px,.92fr) minmax(0,1fr);align-items:stretch;gap:16px;min-width:0;min-height:clamp(240px,34vw,340px);padding:16px;display:grid}.app-shell .image-quest-visual{width:100%;min-height:208px}.app-shell .image-quest-visual img{filter:saturate(1.06)contrast(1.04)}.app-shell .image-quest-copy{flex-direction:column;justify-content:center;gap:10px;min-width:0;padding:8px;display:flex}.app-shell .image-quest-copy span,.app-shell .sound-pop-listen p{color:var(--text-2,var(--text-secondary));margin:0;font-weight:800;line-height:1.35}.app-shell .image-quest-copy strong{min-width:0;color:var(--text-1,var(--text));overflow-wrap:anywhere;font-size:clamp(1.35rem,4.2vw,2.2rem);font-weight:950;line-height:1.05}.app-shell .image-quest-options,.app-shell .sound-pop-bubbles{gap:10px;min-width:0;display:grid}.app-shell .image-quest-options{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .image-quest-option,.app-shell .sound-pop-bubble{min-width:0;color:var(--text-1,var(--text));cursor:pointer;overflow-wrap:anywhere;background:#ffffff14;border:1px solid #94a3b8ad;border-radius:8px;font-weight:900;transition:transform .14s,border-color .16s,background .16s}.app-shell .image-quest-option{text-align:start;min-height:64px;padding:12px 14px}.app-shell .image-quest-option:hover,.app-shell .image-quest-option:focus-visible,.app-shell .sound-pop-bubble:hover,.app-shell .sound-pop-bubble:focus-visible{background:#4cc9f024;border-color:#4cc9f08a;outline:none}.app-shell .image-quest-option:active,.app-shell .sound-pop-bubble:active{transform:translateY(1px)}.app-shell .image-quest-option.is-correct,.app-shell .sound-pop-bubble.is-correct{background:#4ade802e;border-color:#4ade809e}.app-shell .image-quest-option.is-wrong,.app-shell .sound-pop-bubble.is-wrong{background:#f43f5e2e;border-color:#f43f5e94}.app-shell .sound-pop-listen{background:linear-gradient(135deg,#facc151f,#4cc9f01a),#ffffff0f;border:1px solid #facc1533;border-radius:8px;align-items:center;gap:12px;min-width:0;padding:14px;display:flex}.app-shell .sound-pop-listen .btn{flex:none}.app-shell .sound-pop-bubbles{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}.app-shell .sound-pop-bubble{text-align:center;place-items:center;gap:8px;min-height:132px;padding:12px;display:grid}.app-shell .sound-pop-token{width:68px;height:68px}.app-shell .sound-pop-bubble strong,.app-shell .image-quest-option strong{overflow-wrap:anywhere;min-width:0;font-size:clamp(.96rem,2.4vw,1.12rem);line-height:1.16}.app-shell .sentence-slots,.app-shell .sentence-bank{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.app-shell .sentence-slot{min-width:74px;min-height:46px;color:var(--text-2,var(--text-secondary));border:1px dashed #fff3;border-radius:8px;justify-content:center;align-items:center;padding:8px 10px;display:inline-flex}.app-shell .sentence-slot.is-filled{color:var(--text-1,var(--text));background:#ffffff14;border-style:solid;font-weight:850}.app-shell .sentence-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}[data-theme=light] .app-shell .sprint-prompt,[data-theme=light] .app-shell .sentence-clue,[data-theme=light] .app-shell .generated-prompt,[data-theme=light] .app-shell .memory-card,[data-theme=light] .app-shell .sprint-option,[data-theme=light] .app-shell .sentence-token,[data-theme=light] .app-shell .sentence-slot.is-filled,[data-theme=light] .app-shell .image-quest-scene,[data-theme=light] .app-shell .sound-pop-listen{background:var(--legacy-color-ffffff);border-color:#0f172a1f}[data-theme=light] .app-shell .image-quest-option,[data-theme=light] .app-shell .sound-pop-bubble{border-color:var(--legacy-color-64748b);background:#0f172a0a}@media (max-width:760px){.app-shell .memory-grid{grid-template-columns:repeat(3,minmax(68px,1fr))}.app-shell .sprint-options{grid-template-columns:minmax(0,1fr)}.app-shell .image-quest-scene{grid-template-columns:minmax(0,1fr);min-height:0}.app-shell .image-quest-copy,.app-shell .sound-pop-listen{align-items:flex-start}.app-shell .sound-pop-listen{flex-direction:column}.app-shell .sound-pop-listen .btn{justify-content:center;width:100%}}@media (max-width:420px){.app-shell .memory-grid{grid-template-columns:repeat(2,minmax(72px,1fr))}.app-shell .sentence-slot{min-width:60px}.app-shell .image-quest-scene{padding:10px}.app-shell .image-quest-options,.app-shell .sound-pop-bubbles{grid-template-columns:minmax(0,1fr)}}.app-shell .tutor-tip-strip{align-items:center;gap:var(--s-3,.75rem);background:linear-gradient(135deg,#6366f11f,#ec48991a);border:1px solid #6366f138;border-radius:14px;padding:10px 14px;font-size:.92rem;line-height:1.4;display:flex}.app-shell .tutor-tip-strip .tip-icon{width:32px;height:32px;color:var(--text-on-accent);background:#6366f133;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-shell .tutor-tip-strip .tip-text{flex:1;min-width:0}.app-shell .tutor-tip-strip .tip-cta{color:var(--text-1,var(--text));transition:background var(--t-fast,.15s) ease;background:#6366f138;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:.85rem;font-weight:700;text-decoration:none}.app-shell .tutor-tip-strip .tip-cta:hover{background:#6366f15c}.app-shell .tutor-tip-strip .tip-dismiss{appearance:none;min-width:44px;min-height:44px;color:var(--text-3,var(--text-secondary));cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.app-shell .tutor-tip-strip .tip-dismiss:hover{background:var(--app-chrome-hover,#ffffff14);color:var(--text-1,var(--text))}.app-shell .app-main:has(.view[data-view=talk]:not([hidden])){flex-direction:column;display:flex}.app-shell .view[data-view=talk]:not([hidden]){flex-direction:column;flex:auto;width:100%;min-height:0;display:flex}.personas{padding:clamp(60px, 9vw, 110px) var(--space-md,1rem);position:relative}.personas .persona-meta{color:var(--text-secondary);letter-spacing:.01em;min-width:0;margin:0;font-size:.82rem;font-weight:600}@keyframes voice2DockSpin{to{transform:rotate(360deg)}}.app-shell .caption-stream{scroll-behavior:smooth;scrollbar-width:thin;overscroll-behavior:contain;max-height:40vh;overflow-y:auto}.app-shell .caption-stream::-webkit-scrollbar{width:6px}.app-shell .caption-stream::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:3px}.app-shell .caption-stream :where(.caption-now,.caption-prev){scroll-snap-align:end}.difference{padding:clamp(60px, 9vw, 110px) var(--space-md,1rem);position:relative}.app-shell .user-menu-wrap{position:relative}.app-shell .user-chip-btn{appearance:none;color:var(--text-1,var(--text));cursor:pointer;font:inherit;transition:background var(--motion-duration-quick,.16s) var(--motion-ease-flow,ease), border-color var(--motion-duration-quick,.16s) var(--motion-ease-flow,ease), transform var(--motion-duration-quick,.16s) var(--motion-ease-flow,ease);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-weight:600;display:inline-flex}.app-shell .user-chip-btn:hover{background:#ffffff1a;border-color:#ffffff2e}.app-shell .user-chip-btn.is-open{background:#ffffff1f;border-color:#ffffff38}[data-theme=light] .app-shell .user-chip-btn{background:#0f172a0a;border-color:#0f172a1a}[data-theme=light] .app-shell .user-chip-btn:hover{background:#0f172a12;border-color:#0f172a2e}[data-theme=light] .app-shell .user-chip-btn.is-open{background:#0f172a1a;border-color:#0f172a38}.app-shell .user-chip-btn .avatar{background:linear-gradient(135deg, var(--brand-1,var(--legacy-color-4361ee)), var(--brand-2,var(--legacy-color-4cc9f0)));width:28px;height:28px;color:var(--text-on-accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:800;display:inline-flex}.app-shell .user-chip-btn .user-name{text-overflow:ellipsis;white-space:nowrap;max-width:9rem;font-size:.85rem;overflow:hidden}.app-shell .user-chip-btn .user-chip-caret{opacity:.65;transition:transform var(--motion-duration-quick,.16s) var(--motion-ease-flow,ease);font-size:.65rem}.app-shell .user-chip-btn.is-open .user-chip-caret{transform:rotate(180deg)}@media (max-width:540px){.app-shell .user-chip-btn .user-name,.app-shell .user-chip-btn .user-chip-caret{display:none}.app-shell .user-chip-btn{padding:4px}}.app-shell .user-menu-popover{top:calc(100% + 8px);z-index:var(--z-modal,1000);-webkit-backdrop-filter:blur(16px);min-width:220px;animation:userMenuIn .16s var(--motion-ease-quick,cubic-bezier(.2, .8, .2, 1));transform-origin:100% 0;background:#0f172af5;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;inset-inline-end:0;box-shadow:0 24px 48px -12px #0000008c,0 8px 16px -8px #00000059}.app-shell .user-menu-popover[hidden]{display:none}[data-theme=light] .app-shell .user-menu-popover{background:var(--legacy-color-ffffff);border-color:#0f172a1a;box-shadow:0 24px 48px -12px #0f172a2e,0 8px 16px -8px #0f172a1a}@keyframes userMenuIn{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.app-shell .user-menu-item{appearance:none;cursor:pointer;color:var(--text-1,var(--text));font:inherit;text-align:start;transition:background var(--motion-duration-quick,.16s) var(--motion-ease-flow,ease);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;font-weight:600;display:flex}.app-shell .user-menu-item:hover{background:#ffffff14}[data-theme=light] .app-shell .user-menu-item:hover{background:#0f172a0f}.app-shell .user-menu-item i{text-align:center;opacity:.85;width:16px}.app-shell .user-menu-divider{background:#ffffff14;height:1px;margin:4px 8px}[data-theme=light] .app-shell .user-menu-divider{background:#0f172a14}.app-shell .user-menu-danger{color:var(--legacy-color-fca5a5)}.app-shell .user-menu-danger:hover{color:var(--legacy-color-fda4af);background:#f43f5e24}[data-theme=light] .app-shell .user-menu-danger{color:var(--legacy-color-b91c1c)}[data-theme=light] .app-shell .user-menu-danger:hover{color:var(--legacy-color-991b1b);background:#f43f5e1a}@keyframes speakingPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes hy-placement-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes hy-placement-flash{0%{transform:scale(1);box-shadow:0 0 #764ba200}20%{transform:scale(1.08);box-shadow:0 0 0 10px #764ba259}60%{transform:scale(1.02);box-shadow:0 0 0 18px #764ba200}to{transform:scale(1);box-shadow:0 0 #764ba200}}persona-portrait{border-radius:inherit;width:100%;height:100%;display:block}.app-shell .bubble-assistant .avatar-tutor persona-portrait[variant=chip]{border-radius:50%;width:100%;height:100%;overflow:hidden}@keyframes pp-settle-aura{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.7;transform:scale(1.06)}}.bubble-thinking-dots{vertical-align:middle;align-items:center;gap:5px;padding:6px 4px;display:inline-flex}.bubble-thinking-dots span{background:var(--persona-accent,color-mix(in srgb, var(--text-1,var(--legacy-color-f1f5f9)) 75%, transparent));opacity:.45;border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite bubble-thinking-bounce}.bubble-thinking-dots span:nth-child(2){animation-delay:.18s}.bubble-thinking-dots span:nth-child(3){animation-delay:.36s}@keyframes bubble-thinking-bounce{0%,70%,to{opacity:.45;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}.bubble.bubble-thinking .bubble-content{min-height:1.5em}.composer.composer-busy .send-btn{background:linear-gradient(135deg, var(--legacy-color-ef4444), var(--legacy-color-b91c1c));border-color:var(--legacy-color-b91c1c)}.composer.composer-busy .send-btn:hover{background:linear-gradient(135deg, var(--legacy-color-dc2626), var(--legacy-color-991b1b))}@keyframes tapRingExpand{0%{opacity:.55;transform:scale(.92)}70%{opacity:0;transform:scale(1.18)}to{opacity:0;transform:scale(1.18)}}@keyframes listenPulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--legacy-color-22c55e) 55%, transparent)}50%{box-shadow:0 0 0 14px color-mix(in srgb, var(--legacy-color-22c55e) 0%, transparent)}}@keyframes auraShimmer{0%{opacity:.55;background-position:0%}50%{opacity:.85;background-position:100%}to{opacity:.55;background-position:0%}}@keyframes rimSweep{0%,to{filter:hue-rotate()}50%{filter:hue-rotate(8deg)}}@keyframes celebrateGlow{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--persona-accent,var(--primary)) 55%, transparent)}60%{box-shadow:0 0 0 32px color-mix(in srgb, var(--persona-accent,var(--primary)) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--persona-accent,var(--primary)) 0%, transparent)}}@keyframes pp-celebrate{0%{transform:translateY(0)rotate(0)scale(1)}20%{transform:translateY(-8px)rotate(-3deg)scale(1.04)}45%{transform:translateY(2px)rotate(2deg)scale(.99)}70%{transform:translateY(-4px)rotate(-1deg)scale(1.02)}to{transform:translateY(0)rotate(0)scale(1)}}@keyframes summarySlideIn{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes bubbleIn2026{0%{opacity:0;transform:translateY(8px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.bubble{contain:content}.bubble.bubble-fresh{animation:bubbleIn2026 .32s var(--spring-snap) both}.bubble.bubble-assistant.bubble-fresh{box-shadow:0 0 0 1px color-mix(in srgb, var(--persona-accent,var(--primary)) 24%, transparent), var(--depth-1)}.bubble .bubble-actions{opacity:0;clip-path:inset(0 100% 0 0);transition:clip-path .28s var(--motion-ease-deliberate), opacity .2s var(--motion-ease-flow), transform .2s var(--motion-ease-flow);pointer-events:none;transform:translateY(2px)}.bubble:hover .bubble-actions,.bubble:focus-within .bubble-actions,.bubble.bubble-actions-open .bubble-actions{opacity:1;clip-path:inset(0);pointer-events:auto;transform:translateY(0)}.bubble .bubble-actions>*{opacity:0;transition:opacity .18s var(--motion-ease-flow), transform .18s var(--motion-ease-flow);transform:translate(6px)}.bubble:hover .bubble-actions>*,.bubble:focus-within .bubble-actions>*,.bubble.bubble-actions-open .bubble-actions>*{opacity:1;transform:translate(0)}.bubble .bubble-actions>:first-child{transition-delay:0s}.bubble .bubble-actions>:nth-child(2){transition-delay:60ms}.bubble .bubble-actions>:nth-child(3){transition-delay:.12s}.bubble .bubble-actions>:nth-child(4){transition-delay:.18s}.bubble .bubble-actions>:nth-child(5){transition-delay:.24s}.bubble .bubble-actions>:nth-child(6){transition-delay:.3s}@media (hover:none){.bubble .bubble-actions{clip-path:none;opacity:1;pointer-events:auto;transform:none}.bubble .bubble-actions>*{opacity:1;transform:none}}@keyframes caretPulse2026{0%,to{opacity:1}50%{opacity:.3}}.bubble .bubble-content[data-streaming="1"]:after{content:"";vertical-align:-.18em;background:color-mix(in srgb, var(--persona-accent,var(--primary)) 80%, white);border-radius:3px;width:8px;height:1.05em;margin-inline-start:3px;animation:1.1s ease-in-out infinite caretPulse2026;display:inline-block}.chat-quick-replies{flex-wrap:wrap;gap:8px;padding:6px 4px 0;display:flex}.chat-quick-replies .quick-reply{opacity:0;animation:chipSlideIn .32s var(--spring-snap) forwards;transform:translate(-12px)scale(.9)}.chat-quick-replies .quick-reply:first-child{animation-delay:0s}.chat-quick-replies .quick-reply:nth-child(2){animation-delay:60ms}.chat-quick-replies .quick-reply:nth-child(3){animation-delay:.12s}.chat-quick-replies .quick-reply:nth-child(4){animation-delay:.18s}.chat-quick-replies .quick-reply:nth-child(5){animation-delay:.24s}.chat-quick-replies .quick-reply:nth-child(6){animation-delay:.3s}@keyframes chipSlideIn{to{opacity:1;transform:translate(0)scale(1)}}.composer .mic-btn,.composer .send-btn{translate:var(--mag-x,0) var(--mag-y,0);transition:translate .14s var(--motion-ease-flow), transform .14s var(--motion-ease-flow), box-shadow .2s var(--motion-ease-flow)}.composer .mic-btn:active,.composer .send-btn:active{transform:scale(.96)}.composer .mic-btn[data-listening="1"]{background:linear-gradient(135deg, color-mix(in srgb, var(--legacy-color-22c55e) 80%, transparent), color-mix(in srgb, var(--legacy-color-16a34a) 80%, transparent));box-shadow:0 0 0 2px color-mix(in srgb, var(--legacy-color-22c55e) 40%, transparent), 0 8px 22px -8px color-mix(in srgb, var(--legacy-color-22c55e) 70%, transparent)}.composer .mic-waveform{align-items:flex-end;gap:3px;height:18px;display:inline-flex}.composer .mic-waveform span{width:3px;height:calc(20% + var(--bar-h,0%) * .8);background:#fff;border-radius:2px;transition:height 80ms linear;display:inline-block}@keyframes sendLiftOff{0%{transform:translate(0)rotate(0)}60%{opacity:.7;transform:translate(-12px,-18px)rotate(12deg)}to{opacity:1;transform:translate(0)rotate(0)}}.composer .send-btn[data-liftoff="1"]{animation:sendLiftOff .32s var(--spring-snap) 1}@keyframes rippleOut{0%{opacity:.55;transform:scale(0)}to{opacity:0;transform:scale(2.4)}}.ui-ripple{isolation:isolate;position:relative;overflow:hidden}.ui-ripple:after{content:"";width:12px;height:12px;inset-inline-start:var(--rx,50%);top:var(--ry,50%);margin-inline-start:-6px;opacity:0;pointer-events:none;z-index:0;background:radial-gradient(circle,#ffffff6b,#0000 60%);border-radius:50%;margin-top:-6px;position:absolute;transform:scale(0)}.ui-ripple[data-ripple="1"]:after{animation:rippleOut var(--motion-ripple-dur) var(--spring-soft) 1}.ui-magnetic{translate:var(--mag-x,0) var(--mag-y,0);transition:translate .14s var(--motion-ease-flow);will-change:translate}.ui-haptic-press{transition:transform .12s var(--motion-ease-flow)}.ui-haptic-press:active{transform:scale(.96)}.ui-tilt{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .22s var(--motion-ease-flow);transform-style:preserve-3d}@media (hover:none),(pointer:coarse),(max-width:767px){.ui-tilt{transform:none}}.goal-sections{gap:18px;margin-top:12px;display:grid}.goal-section{border:0;gap:8px;min-inline-size:0;margin:0;padding:0;display:grid}.goal-section-label{font-family:var(--font-display);font-size:13px;font-weight:var(--type-emph-mid);text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin:0;padding:0}.goal-section .chip-group{flex-wrap:wrap;gap:8px;display:flex}.chip.goal-chip-recommended{position:relative}.chip.goal-chip-recommended .chip-badge{font-size:10px;font-weight:var(--type-emph-high);letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb, var(--success) 22%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 38%, transparent);vertical-align:1px;border-radius:999px;margin-inline-start:6px;padding:2px 8px;display:inline-block}.dialect-row{flex-wrap:wrap;gap:8px;display:flex}.dialect-pill{border:1px solid var(--border-color);background:var(--surface-1);color:var(--text);cursor:pointer;font-weight:var(--type-emph-mid);transition:background .2s var(--motion-ease-flow), border-color .2s var(--motion-ease-flow), transform .14s var(--motion-ease-flow);border-radius:999px;align-items:center;padding:8px 14px;font-size:14px;display:inline-flex}.dialect-pill:hover{transform:translateY(-1px)}.dialect-pill input{display:none}.dialect-pill.active{background:color-mix(in srgb, var(--persona-accent,var(--primary)) 18%, transparent);border-color:color-mix(in srgb, var(--persona-accent,var(--primary)) 50%, transparent);color:var(--text)}.dialect-pill:focus-within{outline:2px solid var(--persona-accent,var(--primary));outline-offset:2px}@keyframes voice2AmbientDrift{0%{transform:translate(-1.5%)scale(1)}to{transform:translate(1.5%,-1%)scale(1.04)}}@keyframes voice2PreflightRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0,0)}}@keyframes voice2CTARing{0%{opacity:0;transform:scale(.95)}35%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.18)}}@media (max-width:640px){.app-shell .chat-topbar-2026 .chat-lang-picker{width:100%;min-width:0}.app-shell .chat-topbar-2026 .chat-lang-picker .lang-trigger-kicker{display:none}.app-shell .chat-topbar-2026 .chat-lang-picker .lang-picker-panel{width:min(94vw,390px);inset-inline-end:-58px}}.modal :where(button,input,select,textarea){min-height:44px}.theme-toggle{border:1px solid #0000;justify-content:center;width:44px;min-width:44px;height:44px}.modal{padding:max(16px, env(safe-area-inset-top,0px)) 16px max(16px, env(safe-area-inset-bottom,0px))}@media (max-width:640px){.chat-bubble{padding:.55rem .72rem;font-size:.8rem}.chat-bubble.typing{display:none}}.app-shell .app-main{container-type:inline-size}.app-shell .app-bottombar-2026{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 78px minmax(0,1fr) minmax(0,1fr)}.app-shell .app-bottombar-2026 .bb-tab{min-width:0;min-height:60px;overflow:hidden}.app-shell .app-bottombar-2026 .bb-tab span{text-overflow:ellipsis;max-width:100%;overflow:hidden}.app-shell .app-bottombar-2026 .bb-fab{width:62px;height:62px}.app-shell :where(.card,.home-card,.loop-cell,.practice-card,.progress-header,.settings-shell .card){overflow-wrap:anywhere}.app-shell .signin-card{box-shadow:var(--depth-2)}.app-shell .api-down-banner{margin-bottom:var(--s-3);border-radius:16px}.app-shell .numbers{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell .theme-row,.app-shell .row{align-items:center}@media (max-width:480px){.app-shell .app-main{padding:10px}.app-shell .numbers{grid-template-columns:1fr}.app-shell .theme-row,.app-shell .row{flex-direction:column;align-items:stretch}.app-shell .row .btn,.app-shell .theme-row .btn{width:100%}}@media (max-width:1023px){html,body{max-width:100%}.container{max-width:min(100%,100vw - 32px)}.app-shell .app-main{min-width:0}.app-shell :where(.home-shell-v2,.practice-shell,.games-shell,.you-shell,.vocab-shell,.progress-shell,.settings-shell,.talk-shell){max-width:100%}.app-shell :where(.home-card,.practice-card,.progress-header,.progress-grid .card,.settings-shell .card,.empty-state,.error-state,.router-error){overflow-wrap:anywhere;min-width:0}.app-shell :where(.settings-field input,.settings-field select,.settings-field textarea,.composer-input,.mirror-custom-row input,.cafe-input,input,select,textarea){font-size:16px}dialog.modal{width:100%;padding-inline:max(12px, env(safe-area-inset-left,0px)) max(12px, env(safe-area-inset-right,0px));padding-block:max(12px, env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-bottom,0px))}dialog.modal .modal-form{width:min(100%,640px);max-height:min(92dvh, calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));overscroll-behavior:contain;overflow-y:auto}}@media (min-width:769px) and (max-width:1023px){.app-shell .app-main{padding:var(--s-5,1.25rem)}.app-shell .chat-shell-2026,.app-shell .chat-shell-2026b{grid-template-columns:minmax(0,1fr)}.app-shell .chat-shell-2026 .chat-history-host,.app-shell .chat-shell-2026b .chat-history-host{z-index:50;max-width:min(360px,88vw);position:absolute;inset:0}}@media (max-width:768px){body{-moz-text-size-adjust:100%;text-size-adjust:100%}.personas .persona-meta{grid-area:meta;line-height:1.3}.modal{align-items:flex-start;overflow-y:auto}.modal input,.modal select,.modal textarea{font-size:16px}.app-shell{min-height:100vh;min-height:100dvh}.app-shell .app-topbar{min-width:0}.app-shell .topbar-actions{gap:var(--s-2,.5rem);min-width:0}.app-shell .user-chip{min-width:0;max-width:min(46vw,180px)}.app-shell .user-chip .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-shell .app-main{padding-inline:max(12px, env(safe-area-inset-left,0px)) max(12px, env(safe-area-inset-right,0px));padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}.app-shell .app-bottombar-2026{min-width:0;padding-inline:max(6px, env(safe-area-inset-left,0px)) max(6px, env(safe-area-inset-right,0px))}.app-shell .app-bottombar-2026 .bb-tab{min-width:0;padding-inline:2px}.app-shell .app-bottombar-2026 .bb-tab span{font-size:.66rem;line-height:1.1}.app-shell .theme-row,.app-shell .row,.app-shell .router-error-actions,.app-shell .empty-state,.app-shell .error-state{flex-direction:column;align-items:stretch}.app-shell .router-error-actions{width:100%}.app-shell .router-error-actions>*,.app-shell .modal-actions>*{justify-content:center;width:100%}.app-shell .chip-group,.chat-quick-replies{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.chat-quick-replies::-webkit-scrollbar{display:none}.app-shell .chat-topbar-2026,.app-shell .chat-persona-chip,.app-shell .chat-lang-picker,.app-shell .lang-picker-trigger{min-width:0}.app-shell .chat-lang-picker .lang-picker-panel,.app-shell .lang-picker-panel{overscroll-behavior:contain;width:min(94vw,390px);max-height:min(70dvh,520px);overflow-y:auto}.app-shell .composer,.app-shell .composer.glass{padding-bottom:max(10px, env(safe-area-inset-bottom,0px))}.app-shell .message-stream{overscroll-behavior:contain}}@media (max-width:480px){.languages,.personas,.difference{padding-block:2.75rem}.personas .persona-meta{font-size:.78rem}.app-shell .app-main{padding-inline:max(10px, env(safe-area-inset-left,0px)) max(10px, env(safe-area-inset-right,0px))}.app-shell :where(.home-card,.practice-card,.progress-header,.settings-shell .card,.signin-card,.api-down-banner,.empty-state,.error-state){border-radius:16px}.app-shell .numbers,.app-shell .badges-grid{grid-template-columns:1fr}.app-shell .hours-slider{flex-direction:column;align-items:stretch}.app-shell .modal-form{border-radius:18px;padding:18px}.app-shell .modal-actions{flex-direction:column;align-items:stretch}}@media (max-width:380px){.app-shell .app-bottombar-2026{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 64px minmax(0,1fr) minmax(0,1fr)}.app-shell .app-bottombar-2026 .bb-fab{width:58px;height:58px}.app-shell .app-bottombar-2026 .bb-tab span{font-size:.62rem}.app-shell .chat-persona-meta small{display:none}}@media (max-width:1023px){.app-shell .app-brand{min-height:44px}}@media (max-width:768px){.app-shell .chat-topbar-2026 .chat-persona-chip,.app-shell .chat-topbar-2026 .lang-picker-trigger{min-width:44px;min-height:44px}}@media (max-width:1024px){body.app-shell .app-brand,.app-shell .app-brand{min-height:44px;padding-block:6px}}:root{--premium-line:color-mix(in srgb, var(--border-color,var(--legacy-color-334155)) 72%, transparent);--premium-line-strong:color-mix(in srgb, var(--primary,var(--legacy-color-4361ee)) 34%, var(--border-color,var(--legacy-color-334155)));--premium-surface:color-mix(in srgb, var(--card,var(--legacy-color-101827)) 86%, transparent);--premium-surface-2:color-mix(in srgb, var(--bg-secondary,var(--legacy-color-1e293b)) 78%, var(--card,var(--legacy-color-101827)));--premium-ink-soft:color-mix(in srgb, var(--text,var(--legacy-color-f8fafc)) 74%, transparent);--premium-accent-a:color-mix(in oklab, var(--primary,var(--legacy-color-4361ee)) 78%, var(--legacy-color-14b8a6));--premium-accent-b:color-mix(in oklab, var(--accent,var(--legacy-color-f72585)) 76%, var(--legacy-color-f59e0b));--premium-shadow:0 18px 52px -32px #0f172ab8}[data-theme=light]{--premium-surface:#ffffffe0;--premium-surface-2:color-mix(in srgb, var(--legacy-color-f8fafc) 86%, white);--premium-shadow:0 18px 46px -34px #0f172a52}body.app-shell{text-rendering:optimizelegibility;scrollbar-gutter:stable;background:linear-gradient(180deg, color-mix(in srgb, var(--bg,var(--legacy-color-0f172a)) 94%, var(--primary,var(--legacy-color-4361ee)) 6%) 0%, var(--bg,var(--legacy-color-0f172a)) 46%, color-mix(in srgb, var(--bg,var(--legacy-color-0f172a)) 94%, var(--accent,var(--legacy-color-f72585)) 6%) 100%)}.app-shell .app-main{min-width:0}.app-shell :where(.home-shell,.practice-shell,.games-shell,.you-shell,.vocab-shell,.progress-shell,.settings-shell,.talk-shell,.chat-shell,.plan-shell,.leagues-shell,.onboarding-shell,.story-picker,.story-player,.cafe-picker,.cafe-chat,.kara-shell,.mirror-shell){width:100%;min-width:0;padding-inline:max(16px, env(safe-area-inset-left,0px)) max(16px, env(safe-area-inset-right,0px))}.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.practice-card,.games-stage,.progress-header,.progress-grid .card,.settings-shell .card,.vocab-header,.vocab-area,.you-tab-loading,.story-card,.cafe-topic,.kara-list,.kara-stage,.mirror-pickers,.mirror-stage,.plan-header,.leagues-hero,.leagues-ladder,.leagues-cohort,.onboarding-card,.signin-card,.api-down-banner){border:1px solid var(--premium-line);background:var(--premium-surface);box-shadow:var(--premium-shadow)}.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.practice-card,.games-stage,.progress-header,.progress-grid .card,.settings-shell .card,.vocab-header,.vocab-area,.story-card,.cafe-topic,.kara-list,.kara-stage,.mirror-pickers,.mirror-stage,.plan-header,.leagues-hero,.leagues-ladder,.leagues-cohort,.onboarding-card){border-radius:var(--r-3,16px)}.app-shell .chat-shell-2026b{border:1px solid var(--premium-line);background:color-mix(in srgb, var(--premium-surface-2) 84%, transparent);box-shadow:var(--premium-shadow)}.app-shell .chat-topbar-2026,.app-shell .chat-scene-strip,.app-shell .composer,.app-shell .composer.glass{border-color:var(--premium-line);background:var(--premium-surface)}.app-shell .chat-mode-bar,.app-shell .chip-group{scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0;overflow-x:auto}.app-shell .chat-mode-bar::-webkit-scrollbar{display:none}.app-shell .chip-group::-webkit-scrollbar{display:none}.app-shell .app-topbar,.app-shell .app-bottombar-2026{border-color:var(--premium-line);background:color-mix(in srgb, var(--bg,var(--legacy-color-0f172a)) 86%, transparent);-webkit-backdrop-filter:saturate(160%)blur(18px);backdrop-filter:saturate(160%)blur(18px)}[data-theme=light] .app-shell .app-topbar,[data-theme=light] .app-shell .app-bottombar-2026{background:#ffffffe0}.app-shell .app-sidenav-2026{border-color:var(--premium-line);background:color-mix(in srgb, var(--bg,var(--legacy-color-0f172a)) 80%, transparent)}.app-shell .app-sidenav-2026 a,.app-shell .app-bottombar-2026 a{min-width:0}@media (min-width:1180px){.app-shell .app-main{padding-inline:28px}}@media (max-width:640px){.app-shell :where(.home-shell,.practice-shell,.games-shell,.you-shell,.vocab-shell,.progress-shell,.settings-shell,.talk-shell,.chat-shell,.plan-shell,.leagues-shell,.onboarding-shell,.story-picker,.story-player,.cafe-picker,.cafe-chat,.kara-shell,.mirror-shell){padding-inline:max(10px, env(safe-area-inset-left,0px)) max(10px, env(safe-area-inset-right,0px))}.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.progress-header,.settings-shell .card,.vocab-header,.vocab-area,.story-card,.cafe-topic,.kara-list,.kara-stage,.mirror-pickers,.mirror-stage,.plan-header,.leagues-hero,.leagues-ladder,.leagues-cohort,.onboarding-card){padding:14px}.app-shell .chat-shell-2026b{border-inline:0;border-radius:0}}.skip-link,.app-shell .skip-link{align-items:center;min-block-size:44px;display:inline-flex}@media (max-width:768px){body.app-shell .app-main,.app-shell .app-main{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))}}.persona-chip-copy{gap:1px;min-width:0;line-height:1.05;display:grid}.persona-chip-scene{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;color:color-mix(in srgb, var(--aura-color,var(--legacy-color-7c3aed)) 34%, var(--legacy-color-ffffff));opacity:.82;font-size:10.5px;font-weight:700;overflow:hidden}body.app-shell{--font-ui:"Bricolage Grotesque", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono-ui:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--app-brand-gradient:var(--grad-aurora,linear-gradient(135deg, var(--legacy-color-4361ee) 0%, var(--legacy-color-4cc9f0) 44%, var(--legacy-color-f72585) 100%));--app-action-gradient:linear-gradient(135deg, var(--legacy-color-3657d8) 0%, var(--legacy-color-0e7490) 48%, var(--legacy-color-be185d) 100%);--app-brand-gradient-soft:linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 24%, transparent), color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 18%, transparent) 48%, color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 22%, transparent));--brand-1:var(--primary,var(--legacy-color-4361ee));--brand-2:var(--accent,var(--legacy-color-f72585));--brand-3:var(--secondary,var(--legacy-color-4cc9f0));--app-bg:var(--legacy-color-080d1d);--app-panel:#0a1022ad;--app-panel-strong:#0c1226d6;--app-panel-soft:#ffffff0e;--app-panel-border:#ffffff24;--app-panel-border-strong:#ffffff3b;--app-text-muted:color-mix(in srgb, var(--text-2,var(--legacy-color-a8b3cf)) 88%, var(--legacy-color-ffffff));--app-focus-ring:0 0 0 3px color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 36%, transparent);--app-shadow-panel:0 18px 50px -34px #000000c7, 0 1px 0 #ffffff14 inset;--app-shadow-float:0 26px 72px -42px color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 52%, #000000d6);--app-shadow-brand:0 18px 42px -24px color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 48%, transparent);--app-control-min:44px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-ui);background:radial-gradient(circle at 14% -4%, color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 20%, transparent), transparent 32rem), radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 16%, transparent), transparent 30rem), linear-gradient(180deg, var(--legacy-color-070b18) 0%, var(--legacy-color-0a1020) 48%, var(--legacy-color-090d19) 100%);letter-spacing:0}@media (prefers-color-scheme:dark){body.app-shell{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light] body.app-shell{--app-bg:var(--legacy-color-f7f9ff);--app-panel:#ffffffc7;--app-panel-strong:#ffffffe6;--app-panel-soft:#4361ee0e;--app-panel-border:#0c12261f;--app-panel-border-strong:#4361ee33;--app-text-muted:color-mix(in srgb, var(--text-2,var(--legacy-color-475569)) 86%, var(--legacy-color-0f172a));--app-shadow-panel:0 18px 46px -36px #0f172a52, 0 1px 0 #ffffffe0 inset;--app-shadow-float:0 24px 64px -46px #4361ee66;background:radial-gradient(circle at 12% -8%, color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 16%, transparent), transparent 30rem), radial-gradient(circle at 86% 0%, color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 12%, transparent), transparent 28rem), linear-gradient(180deg, var(--legacy-color-fbfcff) 0%, var(--legacy-color-f4f7ff) 54%, var(--legacy-color-eef3ff) 100%)}body.app-shell .gradient-mesh{opacity:.72;filter:saturate(1.08)}body.app-shell .blob-shape{background:var(--app-brand-gradient-soft);filter:blur(54px)}body.app-shell .app-main,body.app-shell .view{min-width:0}body.app-shell :where(button,a,input,textarea,select){letter-spacing:0;font-family:inherit}body.app-shell :where(button,a,input,textarea,select):focus-visible{box-shadow:var(--app-focus-ring);outline:none}body.app-shell :where(.glass,.home-greeting,.home-card,.home-skills,.loop-cell,.conv-list,.chat-topbar-2026,.chat-scene-strip,.composer,.voice2-preflight-card,.caption-stream){background:linear-gradient(145deg, color-mix(in srgb, var(--app-panel-strong) 88%, transparent), color-mix(in srgb, var(--app-panel) 94%, transparent)), color-mix(in srgb, var(--app-panel) 82%, transparent);border-color:var(--app-panel-border);box-shadow:var(--app-shadow-panel);-webkit-backdrop-filter:blur(22px)saturate(1.2)}body.app-shell :where(.ui-ripple>span,.ui-ripple>i,.ui-ripple>svg,.ui-ripple>img,.ui-ripple>persona-portrait){z-index:1;position:relative}body.app-shell .ui-ripple:after{background:radial-gradient(circle,#ffffff85,#ffffff2e 36%,#0000 68%)}body.app-shell .app-topbar{background:linear-gradient(180deg, color-mix(in srgb, var(--app-panel-strong) 92%, transparent), color-mix(in srgb, var(--app-panel) 74%, transparent));border-bottom:1px solid var(--app-panel-border);-webkit-backdrop-filter:blur(24px)saturate(1.22);box-shadow:0 12px 34px -28px #000000b8}body.app-shell .app-brand{min-height:var(--app-control-min);border:1px solid color-mix(in srgb, var(--app-panel-border) 82%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 80%, transparent);border-radius:999px;gap:10px;padding:5px 10px 5px 6px;box-shadow:0 14px 30px -24px #000000b8}body.app-shell .app-brand:hover{border-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 42%, var(--app-panel-border));background:color-mix(in srgb, var(--app-panel-strong) 92%, transparent)}body.app-shell :where(.icon-btn,.user-chip-btn,.user-menu-item,.api-down-retry){min-height:var(--app-control-min)}body.app-shell .user-chip-btn,body.app-shell .user-menu-popover{border-color:var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 88%, transparent);box-shadow:var(--app-shadow-panel)}body.app-shell .user-chip-btn .avatar{background:var(--app-action-gradient);color:var(--legacy-color-ffffff);box-shadow:0 12px 26px -18px color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 52%, transparent)}body.app-shell .app-sidenav-2026,body.app-shell .app-bottombar-2026{border-color:var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 88%, transparent);box-shadow:var(--app-shadow-panel);-webkit-backdrop-filter:blur(24px)saturate(1.18)}body.app-shell .app-sidenav-2026 a,body.app-shell .app-bottombar-2026 .bb-tab{min-height:var(--app-control-min);color:var(--app-text-muted);border:1px solid #0000;border-radius:14px}body.app-shell .app-sidenav-2026 a:hover,body.app-shell .app-bottombar-2026 .bb-tab:hover{border-color:var(--app-panel-border);background:var(--app-panel-soft);color:var(--text-1,var(--legacy-color-ffffff))}body.app-shell .app-sidenav-2026 a.active,body.app-shell .app-bottombar-2026 .bb-tab.active{border-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 32%, var(--app-panel-border));background:linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 22%, transparent), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 12%, transparent)), color-mix(in srgb, var(--app-panel-strong) 88%, transparent);color:var(--text-1,var(--legacy-color-ffffff));box-shadow:0 14px 30px -24px color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 48%, transparent)}body.app-shell .app-bottombar-2026 .bb-fab{background:var(--app-action-gradient);box-shadow:0 22px 46px -24px color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 64%, transparent), 0 1px 0 #ffffff47 inset;border-color:#ffffff47}body.app-shell .chat-welcome-card:before{content:"";pointer-events:none;background:linear-gradient(135deg, #ffffff29, transparent 28%), radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 18%, transparent), transparent 34%);opacity:.72;position:absolute;inset:0}body.app-shell .chat-welcome-card>*{z-index:1;position:relative}body.app-shell .chat-welcome-eyebrow{color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 54%, var(--legacy-color-ffffff));font-family:var(--font-mono-ui);text-transform:uppercase;letter-spacing:0;font-size:.72rem;font-weight:800}body.app-shell .chat-welcome-title{letter-spacing:0;font-weight:800}body.app-shell .loop-cell,body.app-shell .skill-item{border-color:var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 72%, transparent)}body.app-shell .skills-sub,body.app-shell .chat-welcome-sub{color:var(--app-text-muted)}body.app-shell .skill-item.is-promoted{border-color:color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 34%, var(--app-panel-border));background:linear-gradient(135deg, color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 12%, transparent), color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 10%, transparent)), color-mix(in srgb, var(--app-panel-strong) 76%, transparent)}body.app-shell .skill-bar-fill{background:var(--app-brand-gradient)}body.app-shell .chat-mode-tab.active{background:var(--app-action-gradient);border-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 34%, #ffffff38);color:var(--legacy-color-ffffff);box-shadow:var(--app-shadow-brand)}body.app-shell .chat-shell-2026b{border:1px solid var(--app-panel-border);background:linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 8%, transparent), transparent 44%), color-mix(in srgb, var(--app-panel) 68%, transparent);box-shadow:var(--app-shadow-float);border-radius:28px}body.app-shell .chat-main{background:radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 10%, transparent), transparent 24rem), transparent}body.app-shell .conv-list{border-inline-end-color:var(--app-panel-border)}body.app-shell .conv-list-search,body.app-shell .composer-row{border-color:var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 72%, transparent)}body.app-shell .conv-item{min-height:var(--app-control-min);border:1px solid #0000;border-radius:14px}body.app-shell .conv-item:hover{border-color:var(--app-panel-border);background:var(--app-panel-soft)}body.app-shell .conv-item.active{border-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 34%, var(--app-panel-border));background:linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 22%, transparent), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 12%, transparent)), color-mix(in srgb, var(--app-panel-strong) 84%, transparent)}body.app-shell .chat-persona-chip{min-height:var(--app-control-min);border:1px solid var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 72%, transparent);box-shadow:0 12px 30px -26px color-mix(in srgb, var(--persona-accent,var(--brand-1,var(--legacy-color-4361ee))) 54%, transparent)}body.app-shell .lang-picker-trigger,.app-shell .lang-picker-trigger{min-height:var(--app-control-min,44px)}body.app-shell .chat-topbar-2026 .lang-picker-trigger,.app-shell .chat-topbar-2026 .lang-picker-trigger{min-height:44px}body.app-shell .chat-persona-avatar{box-shadow:0 14px 30px -20px color-mix(in srgb, var(--persona-accent,var(--brand-2,var(--legacy-color-f72585))) 62%, transparent)}body.app-shell .chat-scene-strip{border:1px solid var(--app-panel-border);overflow:hidden}body.app-shell .chat-scene-strip:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--persona-accent,var(--brand-3,var(--legacy-color-4cc9f0))) 74%, transparent), transparent);opacity:.75;height:2px;position:absolute;inset:auto 0 0}body.app-shell .chat-mode-bar{gap:8px}body.app-shell .chat-mode-tab{border-radius:999px;min-height:42px}body.app-shell .message-stream{scrollbar-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 42%, transparent) transparent}body.app-shell .bubble-body.glass{border-color:var(--app-panel-border);background:linear-gradient(145deg, color-mix(in srgb, var(--app-panel-strong) 84%, transparent), color-mix(in srgb, var(--app-panel) 92%, transparent))}body.app-shell .bubble-user{background:var(--app-action-gradient);color:var(--legacy-color-ffffff);box-shadow:var(--app-shadow-brand)}body.app-shell .bubble-actions button{border:1px solid var(--app-panel-border);background:color-mix(in srgb, var(--app-panel-strong) 82%, transparent);min-width:34px;min-height:34px}body.app-shell .composer{border:1px solid var(--app-panel-border)}body.app-shell .composer-input{color:var(--text-1,var(--legacy-color-ffffff))}body.app-shell .chat-welcome-card{border:1px solid var(--app-panel-border);background:linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 14%, transparent), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 8%, transparent)), color-mix(in srgb, var(--app-panel-strong) 84%, transparent);box-shadow:var(--app-shadow-panel);border-radius:28px;position:relative;overflow:hidden}@media (hover:hover) and (pointer:fine){body.app-shell .ui-haptic-press:hover{transform:translateY(-1px)}body.app-shell .ui-haptic-press:active{transform:translateY(0)scale(.97)}body.app-shell :where(.home-card,.home-next,.home-greeting,.home-skills,.home-tree,.chat-scene-strip,.chat-welcome,.conv-list,.voice2-preflight-card).ui-tilt:hover{box-shadow:var(--app-shadow-float)}}@media (max-width:768px){body.app-shell .chat-shell-2026b{border-radius:22px}body.app-shell .chat-mode-bar{scroll-padding-inline:16px;overflow-x:auto}body.app-shell .chat-mode-tab{flex:none}body.app-shell .chat-persona-chip,.app-shell .chat-persona-chip{width:44px;min-width:44px;max-width:44px;overflow:hidden}body.app-shell .chat-persona-chip .chat-persona-meta,body.app-shell .chat-persona-chip .chat-persona-cue,.app-shell .chat-persona-chip .chat-persona-meta,.app-shell .chat-persona-chip .chat-persona-cue{display:none}body.app-shell .chat-topbar-2026 .chat-persona-chip,.app-shell .chat-topbar-2026 .chat-persona-chip{width:44px;min-width:44px;max-width:44px;padding:5px;overflow:hidden}body.app-shell .chat-topbar-2026 .chat-persona-chip .chat-persona-meta,body.app-shell .chat-topbar-2026 .chat-persona-chip .chat-persona-cue,.app-shell .chat-topbar-2026 .chat-persona-chip .chat-persona-meta,.app-shell .chat-topbar-2026 .chat-persona-chip .chat-persona-cue{display:none}}@media (max-width:420px){body.app-shell .app-brand{padding-inline-end:8px}}.app-shell .chat-topbar-2026 .chat-lang-picker,body.app-shell .chat-topbar-2026 .chat-lang-picker{z-index:80;position:relative}.app-shell .chat-topbar-2026 .chat-lang-picker .lang-picker-panel,body.app-shell .chat-topbar-2026 .chat-lang-picker .lang-picker-panel{z-index:120}body.app-shell .settings-shell :where(.settings-form,.settings-field,.toggle-text,.link-google-text,.placement-retake-row>div,.placement-retake-actions,.row){min-width:0}body.app-shell .settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions){flex-wrap:wrap;align-items:center;gap:10px;display:flex}body.app-shell .settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions) .btn{min-height:44px}body.app-shell .settings-shell .placement-retake-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}body.app-shell .settings-shell .placement-retake-blurb{overflow-wrap:anywhere}body.app-shell .link-google-row{width:100%;min-width:0;margin-block:8px 14px}body.app-shell .link-google-cta,body.app-shell .link-google-linked{isolation:isolate;border:1px solid color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 28%, var(--app-panel-border,#ffffff24));background:radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 18%, transparent), transparent 38%), linear-gradient(135deg, color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 14%, transparent), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 9%, transparent)), color-mix(in srgb, var(--app-panel-strong,#ffffff1f) 88%, transparent);width:100%;min-width:0;box-shadow:0 24px 58px -44px color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 62%, transparent), inset 0 1px 0 #ffffff1f;border-radius:20px;position:relative}body.app-shell .link-google-cta{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:clamp(14px,2.2vw,18px);display:grid;overflow:hidden}body.app-shell .link-google-cta:after{content:"";background:var(--app-brand-gradient,linear-gradient(135deg, var(--legacy-color-4361ee), var(--legacy-color-f72585), var(--legacy-color-4cc9f0)));opacity:.82;pointer-events:none;border-radius:999px;height:2px;position:absolute;inset:auto 16px 0}body.app-shell .link-google-text{gap:4px;display:grid}body.app-shell .link-google-text h3{color:var(--text-1,var(--legacy-color-ffffff));letter-spacing:0;margin:0;font-size:1.04rem;font-weight:850;line-height:1.12}body.app-shell .link-google-text p{max-width:56ch;color:var(--text-2,#ffffffc7);overflow-wrap:anywhere;margin:0;line-height:1.45}body.app-shell .btn-google{border:1px solid color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 26%, #0f172a1f);min-width:max-content;min-height:44px;color:var(--legacy-color-111827);background:linear-gradient(#fffffff5,#f8fafce6);border-radius:999px;padding-inline:16px;box-shadow:0 16px 34px -24px #0f172a9e}body.app-shell .btn-google:hover{border-color:color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 38%, #0f172a24);box-shadow:0 22px 42px -24px color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 52%, #0f172a61)}body.app-shell .btn-google .google-icon,body.app-shell .link-google-linked .google-icon{flex:0 0 20px;width:20px;height:20px}body.app-shell .link-google-linked{min-height:64px;color:var(--text-1,var(--legacy-color-ffffff));grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:14px 16px;font-weight:750;display:grid}body.app-shell .link-google-linked span{overflow-wrap:anywhere;min-width:0}[data-theme=light] body.app-shell .link-google-text h3,body.app-shell[data-theme=light] .link-google-text h3,[data-theme=light] body.app-shell .link-google-linked,body.app-shell[data-theme=light] .link-google-linked{color:var(--legacy-color-172033)}[data-theme=light] body.app-shell .link-google-text p,body.app-shell[data-theme=light] .link-google-text p{color:#172033b8}@media (max-width:700px){body.app-shell .settings-shell .placement-retake-row,body.app-shell .link-google-cta{grid-template-columns:1fr;align-items:stretch}body.app-shell .settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions){align-items:stretch}body.app-shell .settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions) .btn,body.app-shell .settings-shell .placement-retake-row>.btn,body.app-shell .btn-google{white-space:normal;justify-content:center;width:100%;min-width:0}}@media (max-width:380px){body.app-shell .link-google-cta,body.app-shell .link-google-linked{border-radius:16px;padding:13px}body.app-shell .link-google-linked{grid-template-columns:24px minmax(0,1fr)}}body.app-shell{--app-motion-fast:.14s;--app-motion-base:.24s;--app-motion-view:.42s;--app-motion-ease:cubic-bezier(.22, 1, .36, 1);--app-motion-press:cubic-bezier(.2, .8, .2, 1);--app-motion-lift:-2px}@keyframes appMotionRise{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes appActionSheen{0%{opacity:0;transform:translate(-130%)skew(-18deg)}18%{opacity:.55}to{opacity:0;transform:translate(130%)skew(-18deg)}}body.app-shell .motion-rise{animation:appMotionRise var(--app-motion-view) var(--app-motion-ease) backwards;animation-delay:var(--motion-delay,0s)}body.app-shell :where(.app-topbar,.app-sidenav-2026,.app-bottombar-2026).motion-rise{--motion-delay:0s}body.app-shell .composer:focus-within,body.app-shell .conv-list:focus-within{border-color:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 38%, var(--app-panel-border));box-shadow:var(--app-shadow-panel), 0 0 0 3px color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 16%, transparent)}body.app-shell .app-brand,body.app-shell .conv-item{transition:transform var(--app-motion-fast) var(--app-motion-press), border-color var(--app-motion-base) var(--app-motion-ease), background var(--app-motion-base) var(--app-motion-ease), box-shadow var(--app-motion-base) var(--app-motion-ease)}body.app-shell .bubble-fresh{animation-duration:.34s;animation-timing-function:var(--app-motion-ease)}body.app-shell .caption-stream{transition:transform var(--app-motion-base) var(--app-motion-ease), border-color var(--app-motion-base) var(--app-motion-ease), box-shadow var(--app-motion-base) var(--app-motion-ease)}@media (hover:hover) and (pointer:fine){body.app-shell .app-brand:hover{box-shadow:var(--app-shadow-float);transform:translateY(-1px)}body.app-shell :where(.conv-item,.practice-card,.you-tab,.srs-grade):hover{transform:translateY(-2px)}}body.app-shell .supporter-chip-badge{block-size:22px;inline-size:22px;color:var(--legacy-color-7c2d12);background:linear-gradient(135deg, var(--legacy-color-fde68a), var(--legacy-color-fbbf24));box-shadow:0 0 0 1px color-mix(in srgb, var(--legacy-color-92400e) 26%, transparent);border-radius:999px;flex:none;place-items:center;font-size:.72rem;display:inline-grid}body.app-shell .user-menu-supporter-badge{color:var(--legacy-color-fde68a);background:color-mix(in srgb, var(--legacy-color-451a03) 58%, transparent);border:1px solid color-mix(in srgb, var(--legacy-color-f59e0b) 36%, transparent);border-radius:8px;align-items:center;gap:8px;margin:6px;padding:8px 10px;font-size:.88rem;font-weight:900;display:flex}body.app-shell .support-card{border-color:color-mix(in srgb, var(--legacy-color-f59e0b) 24%, var(--border-color,var(--legacy-color-334155)))}body.app-shell .support-card.is-supporter{background:linear-gradient(135deg, color-mix(in srgb, var(--legacy-color-f59e0b) 10%, transparent), transparent 46%), var(--card,var(--legacy-color-101827))}body.app-shell .support-card-actions{flex-wrap:wrap}body.app-shell .support-card-actions .btn{min-height:42px}body.app-shell .support-card-status{min-height:28px;margin-top:var(--s-3,.75rem)}body.app-shell .support-card-trust{margin:var(--s-3,.75rem) 0 0}body.app-shell .supporter-status-pill,body.app-shell .supporter-status-muted{border-radius:999px;align-items:center;gap:8px;min-height:28px;padding:0 10px;font-size:.86rem;font-weight:900;display:inline-flex}body.app-shell .supporter-status-pill{color:var(--legacy-color-7c2d12);background:linear-gradient(135deg, var(--legacy-color-fde68a), var(--legacy-color-fbbf24))}body.app-shell .supporter-status-muted{color:var(--text-2,var(--legacy-color-cbd5e1));border:1px solid var(--border-color,var(--legacy-color-334155));background:color-mix(in srgb, var(--card,var(--legacy-color-101827)) 86%, transparent)}body.app-shell .support-modal-body{gap:12px;max-width:460px;display:grid}body.app-shell .support-modal-body p{margin:0}body.app-shell .support-modal-icon{block-size:48px;inline-size:48px;color:var(--legacy-color-7c2d12);background:linear-gradient(135deg, var(--legacy-color-fde68a), var(--legacy-color-fbbf24));box-shadow:0 10px 24px -16px var(--legacy-color-f59e0b);border-radius:999px;place-items:center;display:inline-grid}body.app-shell .support-amount-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}body.app-shell .support-amount-btn{justify-content:center;min-width:0;padding-inline:8px}body.app-shell .support-custom-amount{color:var(--text-2,var(--legacy-color-cbd5e1));gap:6px;font-size:.86rem;font-weight:800;display:grid}body.app-shell .support-custom-amount input{border:1px solid var(--border-color,var(--legacy-color-334155));background:color-mix(in srgb, var(--card,var(--legacy-color-101827)) 88%, transparent);width:100%;min-height:42px;color:var(--text,var(--legacy-color-f8fafc));border-radius:8px;padding:8px 10px}body.app-shell .support-checkout-mount{background:var(--legacy-color-fff);border-radius:8px;min-height:360px;overflow:hidden}body.app-shell .support-checkout-status{min-height:20px}body.app-shell .support-banner-slot{min-width:0}body.app-shell .support-inline-banner{margin-block:var(--s-3,.75rem);border:1px solid color-mix(in srgb, var(--legacy-color-f59e0b) 28%, var(--border-color,var(--legacy-color-334155)));background:linear-gradient(135deg, color-mix(in srgb, var(--legacy-color-f59e0b) 13%, transparent), transparent 62%), color-mix(in srgb, var(--card,var(--legacy-color-101827)) 94%, transparent);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex;box-shadow:0 18px 46px -36px #0f172a8f}body.app-shell .support-inline-copy{min-width:0}body.app-shell .support-inline-copy strong{color:var(--text,var(--legacy-color-f8fafc));font-size:.98rem;line-height:1.25;display:block}body.app-shell .support-inline-copy p{color:var(--text-2,var(--legacy-color-cbd5e1));margin:4px 0 0;font-size:.9rem;line-height:1.4}body.app-shell .support-safe-copy{color:var(--text-2,var(--legacy-color-cbd5e1));overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:7px 9px;margin:8px 0 0;font-size:.84rem;line-height:1.35;display:flex}body.app-shell .support-platform-chip{max-inline-size:100%;min-height:26px;color:var(--legacy-color-7c2d12);background:linear-gradient(135deg, var(--legacy-color-fef3c7), var(--legacy-color-fbbf24));white-space:normal;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-weight:900;display:inline-flex}body.app-shell .support-impact-slot,body.app-shell .support-progress-slot{min-width:0;margin-block:var(--s-3,.75rem)}body.app-shell .support-impact-card{border:1px solid color-mix(in srgb, var(--legacy-color-f59e0b) 30%, var(--border-color,var(--legacy-color-334155)));background:linear-gradient(135deg, color-mix(in srgb, var(--legacy-color-f59e0b) 12%, transparent), transparent 56%), color-mix(in srgb, var(--card,var(--legacy-color-101827)) 94%, transparent);border-radius:8px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;display:grid;box-shadow:0 20px 52px -40px #0f172a9e}body.app-shell .support-impact-card-compact{grid-template-columns:40px minmax(0,1fr) auto;padding:14px}body.app-shell .support-impact-icon{block-size:44px;inline-size:44px;color:var(--legacy-color-7c2d12);background:linear-gradient(135deg, var(--legacy-color-fde68a), var(--legacy-color-f59e0b));box-shadow:0 12px 26px -18px var(--legacy-color-f59e0b);border-radius:999px;place-items:center;display:inline-grid}body.app-shell .support-impact-card-compact .support-impact-icon{block-size:38px;inline-size:38px}body.app-shell .support-impact-copy{min-width:0}body.app-shell .support-impact-copy h2{color:var(--text,var(--legacy-color-f8fafc));letter-spacing:0;margin:0;font-size:1.05rem;line-height:1.2}body.app-shell .support-impact-copy p{color:var(--text-2,var(--legacy-color-cbd5e1));margin:5px 0 0;font-size:.92rem;line-height:1.42}body.app-shell .support-impact-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:min(100%,210px);display:flex}body.app-shell .support-impact-actions .btn{min-height:40px}body.app-shell .support-inline-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}body.app-shell .support-inline-actions .btn{min-height:40px}body.app-shell .support-inline-dismiss{flex:none;block-size:40px;inline-size:40px}@media (max-width:520px){body.app-shell .support-card-actions .btn{flex:100%;justify-content:center}body.app-shell .support-inline-banner{flex-direction:column;align-items:stretch}body.app-shell .support-impact-card,body.app-shell .support-impact-card-compact{grid-template-columns:1fr;align-items:stretch}body.app-shell .support-impact-icon{block-size:40px;inline-size:40px}body.app-shell .support-impact-actions{justify-content:stretch;min-width:0}body.app-shell .support-impact-actions .btn{flex:100%;justify-content:center}body.app-shell .support-inline-actions{justify-content:stretch}body.app-shell .support-inline-actions .btn{flex:100%;justify-content:center}}@keyframes landingIconSpin{to{transform:rotate(360deg)}}body.app-shell .chat-shell-2026b{border-color:color-mix(in srgb, var(--app-panel-border) 86%, transparent);background:color-mix(in srgb, var(--app-panel) 82%, transparent);border-radius:20px;grid-template-columns:minmax(244px,272px) minmax(0,1fr);box-shadow:0 20px 54px -42px #0000009e}body.app-shell .chat-shell-2026b .chat-history-host,body.app-shell .chat-shell-2026b .conv-list{min-width:0}body.app-shell .chat-shell-2026b .conv-list{background:color-mix(in srgb, var(--app-panel-strong) 58%, transparent);border-inline-end-color:color-mix(in srgb, var(--app-panel-border) 72%, transparent)}body.app-shell .conv-list-head,body.app-shell .conv-list-search{background:0 0}body.app-shell .conv-list-search{border-radius:12px}body.app-shell .conv-item{border-radius:12px;margin-inline:8px}body.app-shell .conv-item.active{background:color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 18%, var(--app-panel-strong));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 68%, var(--brand-1,var(--legacy-color-4361ee)))}body.app-shell .chat-shell-2026b .chat-main{background:0 0;gap:10px;padding:clamp(8px,1.4vw,14px)}body.app-shell .chat-topbar-2026{border-color:color-mix(in srgb, var(--app-panel-border) 82%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 74%, transparent);min-height:56px;box-shadow:none;-webkit-backdrop-filter:var(--glass-blur);border-radius:16px;grid-template-columns:auto minmax(0,auto) minmax(0,1fr) auto;gap:8px;padding:8px 10px}body.app-shell .chat-topbar-2026:before,body.app-shell .chat-scene-strip:after{display:none}body.app-shell .chat-persona-chip{border-color:color-mix(in srgb, var(--app-panel-border) 82%, transparent);background:color-mix(in srgb, var(--app-panel) 72%, transparent);min-width:0;max-width:min(280px,38vw);min-height:44px;box-shadow:none;padding:4px 10px 4px 4px}body.app-shell .chat-persona-avatar{width:34px;height:34px;box-shadow:none}body.app-shell .chat-persona-meta small{max-width:24ch}body.app-shell .chat-level-chip{min-height:44px;padding-inline:10px}body.app-shell .chat-lang-picker{width:clamp(172px,20vw,230px);min-width:0}body.app-shell .chat-topbar-2026 .lang-picker-trigger{border-radius:999px;min-height:44px}body.app-shell .chat-scene-strip{border-color:color-mix(in srgb, var(--app-panel-border) 76%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 58%, transparent);min-height:56px;box-shadow:none;border-radius:16px;gap:10px;margin:0;padding:8px 10px}body.app-shell .chat-mode-bar{border-color:color-mix(in srgb, var(--app-panel-border) 70%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 56%, transparent);box-shadow:none;gap:4px;padding:3px}body.app-shell .chat-mode-tab{min-height:38px;color:var(--text-2);box-shadow:none;border-radius:999px;padding:7px 12px}body.app-shell .chat-mode-tab.active{color:var(--legacy-color-ffffff);box-shadow:0 10px 24px -18px color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 70%, var(--legacy-color-000000))}body.app-shell .message-stream{gap:10px;min-height:0;padding:4px 2px 8px}body.app-shell .bubble-body.glass{border-color:color-mix(in srgb, var(--app-panel-border) 74%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 74%, transparent);box-shadow:none;border-radius:16px}body.app-shell .bubble-user .bubble-body,body.app-shell .bubble-user{box-shadow:none}body.app-shell .chat-composer-host{gap:6px;padding-top:0}body.app-shell .composer.glass{border-color:color-mix(in srgb, var(--app-panel-border) 80%, transparent);background:color-mix(in srgb, var(--app-panel-strong) 76%, transparent);box-shadow:none;border-radius:16px}body.app-shell .quick-actions{gap:6px}body.app-shell .qa-chip{border-radius:999px;min-height:34px;padding:6px 10px}body.app-shell .composer-row{border-radius:14px}@media (max-width:900px){body.app-shell .chat-shell-2026b{grid-template-columns:minmax(220px,248px) minmax(0,1fr)}body.app-shell .chat-lang-picker{width:clamp(150px,24vw,210px)}}@media (max-width:768px){body.app-shell .app-main:has(.chat-shell-2026b){justify-content:flex-start;align-items:stretch}body.app-shell .app-main:has(.chat-shell-2026b) .view[data-view=talk]:not([hidden]){align-self:stretch;width:100%;max-width:100%;margin-inline:0;padding-inline:0}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{align-self:stretch;width:100%;max-width:100%;margin-inline:0;padding-inline:0}body.app-shell .app-main:has(.chat-shell-2026b) .chat-mode-bar{min-height:48px}body.app-shell .app-main:has(.chat-shell-2026b) .message-stream{min-height:148px}body.app-shell .chat-shell-2026b{grid-template-columns:minmax(0,1fr)}body.app-shell .chat-shell-2026b .chat-main{gap:8px;padding:8px}body.app-shell .chat-topbar-2026{grid-template-columns:auto auto minmax(0,1fr);min-height:52px;padding:6px}body.app-shell .chat-persona-chip,body.app-shell .chat-topbar-2026 .chat-persona-chip{width:42px;min-width:42px;max-width:42px;min-height:42px;padding:4px}body.app-shell .chat-persona-avatar{width:32px;height:32px}body.app-shell .chat-lang-picker{width:clamp(136px,42vw,186px)}body.app-shell .chat-level-chip{min-width:42px;min-height:42px;padding-inline:9px}body.app-shell .chat-level-chip span{display:none}body.app-shell .chat-scene-strip{min-height:50px;padding:7px 8px}body.app-shell .chat-mode-tab{min-height:36px;padding-inline:10px}body.app-shell .bubble{max-width:92%}body.app-shell .quick-actions{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}body.app-shell .quick-actions::-webkit-scrollbar{display:none}}@media (max-width:390px){body.app-shell .chat-topbar-2026{gap:5px}body.app-shell .chat-lang-picker{width:clamp(124px,38vw,154px)}body.app-shell .chat-mode-tab span{display:none}body.app-shell .chat-mode-tab{justify-content:center;min-width:40px}}@media (orientation:landscape) and (max-height:500px){body.app-shell .chat-shell-2026b .chat-main{gap:6px;padding:6px}body.app-shell .chat-scene-strip{display:none}body.app-shell .message-stream{padding-bottom:4px}}@media (max-width:768px){body.app-shell .app-main:has(.chat-shell-2026b){min-height:0;height:calc(100dvh - 56px - 86px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 56px - 86px - env(safe-area-inset-bottom,0px));overflow:hidden}body.app-shell .app-main:has(.chat-shell-2026b) .view[data-view=talk]:not([hidden]){min-height:0;max-height:100%}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{min-height:0;max-height:100%}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{height:100%}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{overflow:hidden}body.app-shell .chat-topbar-2026 .chat-lang-picker .lang-picker-panel{top:calc(56px + env(safe-area-inset-top,0px) + 74px);width:auto;max-height:min(62dvh,500px);position:fixed;inset-inline-start:max(12px, env(safe-area-inset-left,0px));inset-inline-end:max(12px, env(safe-area-inset-right,0px))}}@media (max-width:480px) and (max-height:700px){body.app-shell .app-main:has(.chat-shell-2026b) .chat-scene-strip{display:none}body.app-shell .app-main:has(.chat-shell-2026b) .chat-mode-bar{align-items:center;min-height:42px}body.app-shell .app-main:has(.chat-shell-2026b) .message-stream{min-height:36px}}@media (orientation:landscape) and (max-height:500px){body.app-shell .app-main:has(.chat-shell-2026b){min-height:0;height:calc(100dvh - 56px - env(safe-area-inset-top,0px));max-height:calc(100dvh - 56px - env(safe-area-inset-top,0px));padding-block:8px;overflow:hidden}body.app-shell .app-main:has(.chat-shell-2026b) .view[data-view=talk]:not([hidden]){min-height:0;max-height:100%}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{min-height:0;max-height:100%}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{height:100%}:is(body.app-shell .app-main:has(.chat-shell-2026b) .chat-scene-strip,body.app-shell .app-main:has(.chat-shell-2026b) .quick-actions){display:none}body.app-shell .app-main:has(.chat-shell-2026b) .chat-main{grid-template-rows:auto auto minmax(40px,1fr) auto;gap:6px}body.app-shell .app-main:has(.chat-shell-2026b) .chat-mode-bar{align-items:center;min-height:40px}body.app-shell .app-main:has(.chat-shell-2026b) .composer.glass{padding:8px}}body.app-shell{--app-mobile-topbar-h:calc(56px + env(safe-area-inset-top,0px));--app-mobile-bottombar-h:calc(78px + env(safe-area-inset-bottom,0px));--app-mobile-viewport-h:calc(100dvh - var(--app-mobile-topbar-h) - var(--app-mobile-bottombar-h));--app-mobile-gutter-start:max(12px, env(safe-area-inset-left,0px));--app-mobile-gutter-end:max(12px, env(safe-area-inset-right,0px))}body.app-shell .chat-mode-tab,body.app-shell .chat-topbar-2026 :where(.icon-btn,.chat-persona-chip,.chat-level-chip,.lang-picker-trigger),body.app-shell .goal-sections .chip,body.app-shell .dialect-pill,body.app-shell .empty-state-cta{min-height:44px}@media (max-width:768px){body.app-shell{grid-template-columns:1fr;grid-template-rows:var(--app-mobile-topbar-h) minmax(0, 1fr)}body.app-shell .app-topbar{min-height:var(--app-mobile-topbar-h);padding-inline-start:var(--app-mobile-gutter-start);padding-inline-end:var(--app-mobile-gutter-end)}body.app-shell .app-brand{min-width:0}body.app-shell .app-brand-logo{width:min(118px,34vw);height:auto}body.app-shell .topbar-actions{min-width:0}body.app-shell .user-chip{max-width:min(44vw,168px)}body.app-shell .app-main{min-height:var(--app-mobile-viewport-h);padding:12px var(--app-mobile-gutter-end) calc(var(--app-mobile-bottombar-h) + 12px) var(--app-mobile-gutter-start)}body.app-shell .view:not([hidden]){min-width:0}body.app-shell .app-bottombar-2026{min-height:var(--app-mobile-bottombar-h);padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 62px minmax(0,1fr) minmax(0,1fr);gap:2px;padding-inline-start:max(6px, env(safe-area-inset-left,0px));padding-inline-end:max(6px, env(safe-area-inset-right,0px));display:grid}body.app-shell .app-bottombar-2026 .bb-tab{gap:1px;min-width:0;min-height:52px;padding-inline:2px}body.app-shell .app-bottombar-2026 .bb-tab i{font-size:1rem}body.app-shell .app-bottombar-2026 .bb-tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.64rem;line-height:1.05;overflow:hidden}body.app-shell .app-bottombar-2026 .bb-fab{width:56px;height:56px;transform:translateY(-8px)}body.app-shell .app-bottombar-2026 .bb-fab i{font-size:1.25rem}body.app-shell .app-bottombar-2026 .bb-fab-label{display:none}body.app-shell :where(.home-shell-v2,.you-shell,.progress-shell,.settings-shell){gap:12px;width:100%;max-width:100%}body.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.progress-header,.progress-grid .card,.settings-shell .card){overflow-wrap:anywhere;border-radius:18px}body.app-shell .greeting-title{text-wrap:balance;line-height:1.1}body.app-shell .empty-state-cta{white-space:normal;justify-content:center;width:100%;min-width:0;min-height:44px}body.app-shell .settings-shell .placement-retake-row,body.app-shell .link-google-cta{grid-template-columns:minmax(0,1fr)}body.app-shell .goal-sections{gap:12px;min-width:0;display:grid}body.app-shell .goal-section{min-width:0}body.app-shell .goal-section-label{overflow-wrap:anywhere;max-width:100%}body.app-shell .chip-group,body.app-shell .dialect-row{flex-wrap:wrap;gap:8px;min-width:0;display:flex}body.app-shell .goal-sections .chip,body.app-shell .dialect-pill{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;min-height:44px}body.app-shell .goal-sections .chip-label,body.app-shell .dialect-pill span{overflow-wrap:anywhere;min-width:0}body.app-shell .hours-slider{min-width:0}body.app-shell .view[data-view=talk]:not([hidden]){height:100%;min-height:0}body.app-shell .chat-shell-2026b{border-radius:18px;grid-template-columns:minmax(0,1fr);height:100%;min-height:0;overflow:hidden}body.app-shell .chat-shell-2026b .chat-history-host{top:var(--app-mobile-topbar-h);bottom:var(--app-mobile-bottombar-h);z-index:120;pointer-events:none;width:min(320px,88vw);min-width:0;transition:transform .18s;position:fixed;inset-inline-start:0;transform:translate(-105%)}body.app-shell .chat-shell-2026b.history-open .chat-history-host{pointer-events:auto;transform:translate(0)}body.app-shell .chat-shell-2026b .conv-list{border-radius:0 18px 18px 0;height:100%;box-shadow:24px 0 56px -36px #000000b3}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:auto auto minmax(0,1fr) auto;gap:6px;height:100%;min-height:0;padding:8px}body.app-shell .chat-topbar-2026{grid-template-columns:44px 44px minmax(0,1fr);gap:6px;min-height:50px;padding:5px}body.app-shell .chat-topbar-2026 .chat-topbar-spacer{display:none}body.app-shell .chat-topbar-2026 .chat-history-toggle,body.app-shell .chat-topbar-2026 .chat-persona-chip,body.app-shell .chat-topbar-2026 .chat-level-chip{justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}body.app-shell .chat-topbar-2026 .chat-persona-meta,body.app-shell .chat-topbar-2026 .chat-persona-cue,body.app-shell .chat-level-chip span,body.app-shell .chat-topbar-2026 .lang-trigger-copy{display:none}body.app-shell .chat-topbar-2026 .chat-lang-picker{width:min(42vw,154px)}body.app-shell .chat-scene-strip{gap:8px;min-height:46px;padding:6px 8px}body.app-shell .chat-mode-bar{scrollbar-width:none;min-height:48px;overflow-x:auto}body.app-shell .chat-mode-bar::-webkit-scrollbar{display:none}body.app-shell .chat-mode-tab{flex:1 0 44px;justify-content:center;min-width:44px;min-height:44px;padding:6px 8px}body.app-shell .message-stream{height:100%;min-height:148px;padding:4px 2px 8px;overflow-y:auto}body.app-shell .bubble{max-width:94%}body.app-shell .chat-composer-host{gap:6px;min-height:0}body.app-shell .composer.glass{border-radius:16px;padding:8px}body.app-shell .quick-actions{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}body.app-shell .quick-actions::-webkit-scrollbar{display:none}body.app-shell .composer-row{min-height:48px}body.app-shell .composer-input{max-height:92px}}@media (max-width:380px){body.app-shell{--app-mobile-gutter-start:max(8px, env(safe-area-inset-left,0px));--app-mobile-gutter-end:max(8px, env(safe-area-inset-right,0px))}body.app-shell .user-chip-caret,body.app-shell .app-bottombar-2026 .bb-fab-label,body.app-shell .chat-scene-strip,body.app-shell .quick-actions,body.app-shell .chat-mode-tab span{display:none}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:auto auto minmax(0,1fr) auto;gap:5px;padding:6px}body.app-shell .chat-topbar-2026{grid-template-columns:42px 42px minmax(0,1fr)}body.app-shell .chat-topbar-2026 .chat-lang-picker{width:112px}body.app-shell .message-stream{min-height:118px}body.app-shell .app-main:has(.chat-shell-2026b) .message-stream{min-height:128px}}@media (orientation:landscape) and (max-height:500px) and (max-width:932px){body.app-shell{--app-mobile-topbar-h:calc(56px + env(safe-area-inset-top,0px));--app-mobile-bottombar-h:0px;--app-mobile-viewport-h:calc(100dvh - var(--app-mobile-topbar-h))}body.app-shell .chat-scene-strip,body.app-shell .quick-actions{display:none}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:auto auto minmax(0,1fr) auto;gap:5px;padding:6px}body.app-shell .app-main:has(.chat-shell-2026b) .chat-mode-bar{min-height:48px}body.app-shell .app-main:has(.chat-shell-2026b) .chat-mode-tab{min-height:44px;padding-block:6px}body.app-shell .app-main:has(.chat-shell-2026b) .chat-topbar-2026{grid-template-columns:44px 44px minmax(150px,1fr)}body.app-shell .app-main:has(.chat-shell-2026b) .chat-topbar-2026 .chat-lang-picker{width:112px}body.app-shell .app-main:has(.chat-shell-2026b) .chat-level-chip{min-width:44px;display:inline-flex}body.app-shell .message-stream{min-height:84px}}@media (max-width:360px){body.app-shell .image-quest-visual{min-height:clamp(190px,58vw,280px)}}body.app-shell,body.app-shell .app-main,body.app-shell .view:not([hidden]){min-width:0}body.app-shell :where(.home-shell-v2,.talk-shell,.chat-shell-2026b,.voice2-shell-2026,.practice-shell,.games-arcade-shell,.vocab-shell,.you-shell,.progress-shell,.settings-shell,.onboarding-shell,.placement-modal-body){box-sizing:border-box;min-width:0;max-width:100%}body.app-shell :where(.home-shell-v2,.practice-shell,.games-arcade-shell,.vocab-shell,.you-shell,.progress-shell,.settings-shell,.onboarding-shell,.placement-modal-body){container-type:inline-size}body.app-shell .chat-shell-2026b{container:chat-shell/inline-size}body.app-shell :where(img,video,canvas,svg,.card,.home-card,.loop-cell,.practice-card,.games-stage,.vocab-area,.progress-header,.progress-grid .card,.settings-shell .card,.empty-state,.error-state,.router-error,.modal-form){max-width:100%}body.app-shell :where(.btn,.chip-btn,.chat-mode-tab,.talk-mode-btn,.you-tab,.games-mode-card,.image-quest-option,.sound-pop-bubble,.sound-pop-listen .btn,.vocab-mode-btn,.placement-option) :where(span,strong,small){min-width:0}body.app-shell :where(.home-card,.practice-card,.games-mission,.games-rank-row,.vocab-smart-card,.vocab-lab-card,.progress-grid .card,.settings-shell .card,.onboarding-card,.placement-option,.message-stream,.bubble-body){overflow-wrap:anywhere;word-break:normal}body.app-shell :where(input,select,textarea,.composer-input){min-width:0;max-width:100%}@container chat-shell (width<=680px){.chat-shell-2026b .chat-topbar-2026,.chat-shell-2026b .composer{min-width:0}.chat-shell-2026b .chat-mode-bar{scrollbar-width:none;overflow-x:auto}.chat-shell-2026b .chat-mode-bar::-webkit-scrollbar{display:none}}@container settings-surface (width<=520px){.settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions){align-items:stretch}.settings-shell :where(.settings-actions,.theme-row,.row,.placement-retake-actions)>*{min-width:0}}body.app-shell{--pro-control-min:44px;--pro-control-radius:10px;--pro-card-radius:var(--r-3,16px);--pro-control-gap:clamp(8px, 1.6vw, 12px);--pro-panel-pad:clamp(12px, 2.4vw, 18px);--pro-action-shadow:0 16px 34px -24px #000000b8;--pro-focus-ring:0 0 0 3px color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 42%, transparent);--pro-bottom-safe:calc(var(--app-mobile-bottombar-h,0px) + 18px)}body.app-shell :where(.app-topbar,.app-sidenav-2026,.app-bottombar-2026,.chat-topbar-2026,.composer,.voice2-dock-2026.floating,.onboarding-nav,.placement-actions,.modal-actions){box-sizing:border-box;max-width:100%}body.app-shell :where(.btn,.empty-state-cta,.practice-reco,.vocab-lab-head .btn,.vocab-smart-card .btn,.home-card .phrase-cta,.home-card .word-practice,.sound-pop-listen .btn,.onboarding-nav .btn,.placement-actions .btn,.modal-actions .btn){white-space:normal;line-height:1.18}body.app-shell :where(button,a,[role=button],[role=tab],[role=link],input,select,textarea,summary):focus-visible{outline:2px solid color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 78%, var(--legacy-color-ffffff));outline-offset:3px;box-shadow:var(--pro-focus-ring)}body.app-shell :where(.home-card,.loop-cell,.practice-card,.games-stage,.games-mode-card,.vocab-area,.vocab-smart-card,.vocab-lab-card,.progress-header,.progress-grid .card,.settings-shell .card,.onboarding-card,.signin-card,.api-down-banner,.empty-state,.error-state,.router-error,.modal-form,.placement-option){overflow-wrap:anywhere;scrollbar-gutter:stable;background-clip:padding-box;min-width:0}body.app-shell :where(.chat-mode-bar,.talk-mode-toggle,.you-tabs,.chip-group,.goal-sections,.settings-actions,.theme-row,.row,.placement-retake-actions,.modal-actions,.placement-actions,.onboarding-nav,.image-quest-options,.sound-pop-bubbles,.games-summary-actions,.home-card .card-actions){gap:var(--pro-control-gap);min-width:0}body.app-shell :where(.btn-primary,.dock-cta,.empty-state-cta,.practice-reco,.sound-pop-listen .btn-primary,.onboarding-nav,.placement-actions,.modal-actions){scroll-margin-bottom:var(--pro-bottom-safe)}body.app-shell :where(.icon-btn,.mic-btn,.send-btn,.dock-btn,.bb-tab,.bb-fab){flex-shrink:0}body.app-shell :where(.app-bottombar-2026,.voice2-dock-2026.floating,.onboarding-nav){contain:layout paint}@media (max-width:768px){body.app-shell :where(.home-shell-v2,.talk-shell,.practice-shell,.games-arcade-shell,.vocab-shell,.you-shell,.progress-shell,.settings-shell){scroll-padding-bottom:var(--pro-bottom-safe)}}@media (hover:hover) and (pointer:fine){body.app-shell :where(.btn,.home-card,.practice-card,.games-mode-card,.vocab-mode-btn,.placement-option):hover{transition-property:transform,border-color,background-color,box-shadow,color}}body.app-shell .chat-shell-2026b{--chat-flagship-accent:var(--persona-accent,var(--brand-3,var(--legacy-color-4cc9f0)));--chat-flagship-panel:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 86%, var(--legacy-color-020617));--chat-flagship-line:color-mix(in srgb, var(--chat-flagship-accent) 20%, var(--app-panel-border,#ffffff24));border-color:var(--chat-flagship-line);background:linear-gradient(145deg, color-mix(in srgb, var(--chat-flagship-accent) 12%, var(--chat-flagship-panel)) 0%, var(--chat-flagship-panel) 48%, color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 8%, var(--legacy-color-020617)) 100%);box-shadow:0 28px 72px -54px #000000d1, inset 0 1px 0 color-mix(in srgb, var(--legacy-color-ffffff) 9%, transparent);isolation:isolate;border-radius:24px}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:clamp(8px,1.4cqw,14px);padding:clamp(8px,1.4cqw,16px);display:grid;overflow:hidden}body.app-shell .chat-shell-2026b .message-stream{min-height:0;overflow-y:auto}body.app-shell .chat-shell-2026b .chat-mode-bar{z-index:1;min-height:50px;position:relative}body.app-shell .chat-shell-2026b .chat-composer-host{z-index:2;min-height:68px;position:relative}body.app-shell .chat-topbar-2026,body.app-shell .chat-scene-strip,body.app-shell .chat-mode-bar,body.app-shell .composer.glass,body.app-shell .chat-shell-2026b .conv-list{border-color:var(--chat-flagship-line);background:linear-gradient(180deg, color-mix(in srgb, var(--legacy-color-ffffff) 7%, transparent), color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 76%, transparent));box-shadow:0 18px 42px -34px #000000b8, inset 0 1px 0 color-mix(in srgb, var(--legacy-color-ffffff) 8%, transparent)}body.app-shell .chat-topbar-2026{border-radius:var(--talk-flagship-radius);grid-row:1;min-height:60px}body.app-shell .chat-scene-strip{grid-row:2}body.app-shell .chat-mode-bar{grid-row:3}body.app-shell .message-stream{grid-row:4}body.app-shell .chat-composer-host{grid-row:5}body.app-shell .chat-persona-chip,body.app-shell .chat-level-chip,body.app-shell .chat-topbar-2026 .lang-picker-trigger,body.app-shell .qa-chip,body.app-shell .composer .mic-btn,body.app-shell .composer .send-btn,body.app-shell .bubble-actions button{min-width:var(--talk-flagship-control);min-height:var(--talk-flagship-control);touch-action:manipulation}body.app-shell .chat-persona-chip{background:linear-gradient(135deg, color-mix(in srgb, var(--chat-flagship-accent) 16%, transparent), color-mix(in srgb, var(--app-panel,var(--legacy-color-0f172a)) 70%, transparent));border-radius:16px}body.app-shell .chat-persona-avatar{background:linear-gradient(145deg, color-mix(in srgb, var(--chat-flagship-accent) 55%, var(--legacy-color-ffffff)), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 36%, var(--legacy-color-0f172a)));box-shadow:0 10px 22px -16px color-mix(in srgb, var(--chat-flagship-accent) 70%, var(--legacy-color-000000)), inset 0 1px 0 color-mix(in srgb, var(--legacy-color-ffffff) 22%, transparent)}body.app-shell .chat-scene-strip{border-radius:var(--talk-flagship-radius);min-height:62px}body.app-shell .bubble-meta,body.app-shell .conv-item-meta{color:var(--talk-flagship-muted)}body.app-shell .chat-mode-bar{border-radius:999px;min-height:50px}body.app-shell .chat-mode-tab{min-height:var(--talk-flagship-control)}body.app-shell .chat-mode-tab.active{background:linear-gradient(135deg, color-mix(in srgb, var(--chat-flagship-accent) 78%, var(--brand-1,var(--legacy-color-4361ee))), color-mix(in srgb, var(--brand-2,var(--legacy-color-f72585)) 56%, var(--chat-flagship-accent)))}body.app-shell .message-stream{scrollbar-gutter:stable;gap:clamp(10px,1.5cqw,16px);padding:clamp(8px,1.6cqw,16px) clamp(2px,1cqw,10px)}body.app-shell .bubble{max-width:min(76ch,88%)}body.app-shell .bubble-body{border-radius:18px}body.app-shell .bubble-assistant .bubble-body.glass{background:linear-gradient(180deg, color-mix(in srgb, var(--legacy-color-ffffff) 8%, transparent), color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 78%, transparent));border-color:color-mix(in srgb, var(--chat-flagship-accent) 22%, var(--app-panel-border,#ffffff24))}body.app-shell .bubble-user .bubble-body{background:linear-gradient(135deg, color-mix(in srgb, var(--chat-flagship-accent) 82%, var(--brand-1,var(--legacy-color-4361ee))), color-mix(in srgb, var(--brand-1,var(--legacy-color-4361ee)) 88%, var(--legacy-color-111827)));color:var(--legacy-color-ffffff)}body.app-shell .avatar-tutor{box-shadow:0 12px 22px -18px color-mix(in srgb, var(--chat-flagship-accent) 80%, var(--legacy-color-000000))}body.app-shell .bubble-actions button{border-radius:999px;place-items:center;display:inline-grid}body.app-shell .chat-composer-host{gap:8px}body.app-shell .composer.glass{border-radius:20px;padding:8px}body.app-shell .quick-actions{scrollbar-width:none;gap:8px}body.app-shell .quick-actions::-webkit-scrollbar{display:none}body.app-shell .qa-chip{background:color-mix(in srgb, var(--chat-flagship-accent) 12%, transparent);border-color:color-mix(in srgb, var(--chat-flagship-accent) 24%, var(--app-panel-border,#ffffff24));border-radius:999px}body.app-shell .composer-row{background:color-mix(in srgb, var(--legacy-color-020617) 40%, transparent);border-radius:18px;min-height:54px}body.app-shell .composer-input{min-height:var(--talk-flagship-control);line-height:1.35}@media (max-width:768px){body.app-shell .chat-shell-2026b{border-radius:20px}body.app-shell .chat-topbar-2026{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:70px;padding:8px}body.app-shell .chat-topbar-2026 .chat-topbar-spacer{display:none}body.app-shell .chat-lang-picker{width:100%}body.app-shell .chat-scene-strip{min-height:56px;padding:8px}body.app-shell .chat-mode-bar{min-height:48px;overflow-x:auto}body.app-shell .chat-mode-tab{flex:1 0 auto;min-width:max-content;padding-inline:12px}body.app-shell .bubble{max-width:92%}body.app-shell .quick-actions{padding-bottom:1px;overflow-x:auto}body.app-shell .qa-chip{flex:none}}@media (max-width:430px){body.app-shell .chat-shell-2026b .chat-main{gap:8px;padding:8px}body.app-shell .chat-persona-meta small{display:none}body.app-shell .composer.glass{padding:7px}body.app-shell .composer-row{min-height:52px}}@media (max-width:360px){body.app-shell .chat-mode-tab span,body.app-shell .qa-chip span:not(.qa-chip-icon){display:none}body.app-shell .chat-mode-tab,body.app-shell .qa-chip{min-width:var(--talk-flagship-control);justify-content:center}body.app-shell .app-main:has(.chat-shell-2026b) .chat-shell-2026b{--chat-compact-shell-h:calc(100dvh - var(--app-mobile-topbar-h,56px) - var(--app-mobile-bottombar-h,86px) - 91px);height:var(--chat-compact-shell-h);min-height:min(336px, var(--chat-compact-shell-h));max-height:var(--chat-compact-shell-h)}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:64px 46px minmax(114px,1fr) 60px;gap:6px;padding:6px}body.app-shell .chat-topbar-2026{grid-row:1;min-height:64px;padding:6px}body.app-shell .chat-mode-bar{grid-row:2;min-height:46px}body.app-shell .message-stream{grid-row:3;min-height:114px}body.app-shell .chat-composer-host{grid-row:4;min-height:60px}body.app-shell .composer.glass{padding:6px}}@media (orientation:landscape) and (max-height:500px){body.app-shell .app-main:has(.chat-shell-2026b) .view[data-view=talk]:not([hidden]){padding-block:0!important}body.app-shell .chat-shell-2026b{grid-template-columns:minmax(0,1fr)}body.app-shell .chat-shell-2026b .chat-history-host{display:none}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:minmax(48px,auto) 44px minmax(76px,1fr) minmax(60px,auto);width:100%}body.app-shell .chat-topbar-2026{grid-row:1}body.app-shell .chat-mode-bar{grid-row:2}body.app-shell .message-stream{grid-row:3}body.app-shell .chat-composer-host{grid-row:4}body.app-shell .chat-scene-strip,body.app-shell .quick-actions{display:none}body.app-shell .chat-topbar-2026,body.app-shell .chat-mode-bar,body.app-shell .composer.glass{border-radius:16px}body.app-shell .chat-topbar-2026{min-height:48px;padding-block:4px}body.app-shell .chat-mode-bar{min-height:44px}body.app-shell .chat-composer-host{gap:0;min-height:60px}body.app-shell .composer.glass{padding:6px}body.app-shell .composer-row{min-height:48px}body.app-shell .message-stream{gap:8px;padding-block:4px}body.app-shell .bubble{max-width:min(76ch,86%)}}body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:minmax(56px,auto) minmax(0,auto) minmax(48px,auto) minmax(0,auto) minmax(0,auto) minmax(160px,1fr) minmax(72px,auto)}body.app-shell .chat-lesson-banner,body.app-shell .chat-prompt-strip{border-radius:16px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 12px;display:flex;overflow:hidden}body.app-shell .chat-lesson-banner{grid-row:4}body.app-shell .chat-prompt-strip{grid-row:5}body.app-shell .chat-shell-2026b .message-stream{grid-row:6}body.app-shell .chat-shell-2026b .chat-composer-host{grid-row:7}body.app-shell .chat-shell-2026b .composer{position:relative;inset:auto}body.app-shell .chat-lesson-copy,body.app-shell .chat-prompt-strip-main,body.app-shell .chat-prompt-copy{min-width:0}body.app-shell .chat-lesson-copy,body.app-shell .chat-prompt-strip-main{align-items:center;gap:10px;display:flex}body.app-shell .chat-lesson-copy{flex-direction:column;align-items:flex-start;gap:2px}body.app-shell .chat-lesson-copy strong,body.app-shell .chat-prompt-strip-main strong{overflow-wrap:anywhere}body.app-shell .chat-prompt-strip-main p,body.app-shell .chat-lesson-copy small,body.app-shell .chat-prompt-copy p,body.app-shell .chat-prompt-copy small{color:var(--app-text-muted);overflow-wrap:anywhere;margin:0}body.app-shell .chat-lesson-copy .chat-lesson-check{color:var(--app-text);font-weight:650}body.app-shell .chat-lesson-copy .chat-lesson-feedback{margin-top:3px;font-weight:700}body.app-shell .chat-lesson-copy .chat-lesson-feedback.is-pass{color:var(--success,var(--legacy-color-16a34a))}body.app-shell .chat-lesson-copy .chat-lesson-feedback.is-retry{color:var(--warning,var(--legacy-color-d97706))}body.app-shell .chat-prompt-strip-icon{width:40px;height:40px;color:var(--legacy-color-fff);background:var(--app-action-gradient);border-radius:12px;flex:0 0 40px;place-items:center;display:inline-grid}body.app-shell .chat-prompt-strip-actions,body.app-shell .chat-prompt-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}body.app-shell .chat-prompts-backdrop{z-index:calc(var(--z-modal,1000) - 1);pointer-events:auto;touch-action:none;background:#080c187a;position:fixed;inset:0}[data-motion=reduced]{scroll-behavior:auto}[data-motion=reduced] body.app-shell *,[data-motion=reduced] body.app-shell :before,[data-motion=reduced] body.app-shell :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body.app-shell .chat-prompts-backdrop[hidden],body.app-shell .chat-prompts-sheet[hidden]{pointer-events:none!important;display:none!important}body.app-shell .chat-prompts-sheet{box-sizing:border-box;z-index:var(--z-modal,1000);width:min(720px,100vw - 48px);max-block-size:min(82dvh,720px);max-inline-size:min(720px,100vw - 48px);overscroll-behavior:contain;contain:layout paint;isolation:isolate;pointer-events:auto;max-height:min(82vh,720px);box-shadow:var(--hy-elevation-overlay,0 24px 64px -24px #000000ad);border-radius:20px;flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}html.chat-prompts-open,body.chat-prompts-open{overscroll-behavior:none;overflow:hidden}body.app-shell .chat-prompts-head{z-index:1;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}body.app-shell .chat-prompts-head>div,body.app-shell .chat-prompt-copy{min-inline-size:0}body.app-shell .chat-prompts-head .icon-btn,body.app-shell .chat-prompts-head .icon-btn .svg-icon{flex:none}body.app-shell .chat-prompts-head .icon-btn{min-inline-size:var(--hy-control-min-size,44px);min-block-size:var(--hy-control-min-size,44px)}body.app-shell .chat-prompts-head h2{margin:2px 0 0;font-size:clamp(1.05rem,1rem + .4vw,1.35rem)}body.app-shell .chat-prompt-kicker{color:var(--app-text-muted);text-transform:uppercase;letter-spacing:0;align-items:center;gap:6px;font-size:.78rem;display:inline-flex}body.app-shell .chat-prompt-kicker .svg-icon,body.app-shell .chat-prompt-actions .svg-icon,body.app-shell .chat-prompt-strip-icon .svg-icon,body.app-shell .chat-prompt-strip-actions .svg-icon{vertical-align:-.15em;flex:none;width:1em;height:1em;display:inline-block}body.app-shell .chat-prompts-list{overscroll-behavior:contain;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-auto-rows:max-content;gap:10px;min-block-size:0;padding-inline-end:2px;display:grid;overflow:auto}body.app-shell .chat-prompt-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:12px;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:12px;display:flex}body.app-shell .chat-prompt-card h3{overflow-wrap:anywhere;margin:4px 0 0;font-size:1rem;line-height:1.2}body.app-shell .chat-prompt-card p,body.app-shell .chat-prompt-card small{overflow-wrap:anywhere}body.app-shell .chat-prompt-card .chat-prompt-actions{margin-top:auto}@media (max-width:720px),(max-height:620px){body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:minmax(48px,auto) minmax(52px,auto) minmax(0,auto) minmax(0,auto) minmax(112px,1fr) minmax(60px,auto)}body.app-shell .chat-shell-2026b .chat-mode-bar{min-height:52px}body.app-shell .chat-lesson-banner{grid-row:3}body.app-shell .chat-prompt-strip{display:none}body.app-shell .chat-shell-2026b .message-stream{grid-row:5}body.app-shell .chat-shell-2026b .chat-composer-host{grid-row:6}body.app-shell .chat-lesson-banner{flex-direction:column;align-items:stretch}body.app-shell .chat-lesson-banner .btn,body.app-shell .chat-prompt-actions .btn{justify-content:center;width:100%}body.app-shell .chat-prompts-sheet{top:auto;left:0;inset-inline:0;width:100%;max-block-size:min(84dvh,640px);max-inline-size:none;max-height:min(84vh,640px);padding-bottom:calc(14px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;bottom:0;transform:none}body.app-shell .chat-prompts-list{flex-direction:column;grid-template-columns:minmax(0,1fr);display:flex}body.app-shell .chat-prompt-card{flex:none;min-height:0}body.app-shell .session-summary-actions{grid-template-columns:minmax(0,1fr);display:grid}}@media (max-width:360px){body.app-shell .chat-shell-2026b .chat-main{grid-template-rows:minmax(64px,auto) minmax(52px,auto) minmax(0,auto) minmax(0,auto) minmax(116px,1fr) minmax(66px,auto);gap:2px}body.app-shell .chat-shell-2026b .message-stream{min-height:116px}body.app-shell .chat-shell-2026b .chat-composer-host{min-height:66px}}@media (min-width:769px) and (max-height:500px){body.app-shell .chat-shell-2026b .chat-main{gap:2px;padding-block:2px}body.app-shell .chat-shell-2026b .composer.glass{padding-block:2px}}html,body{max-width:100%}body.app-shell :where(.view,.app-main,.home-shell,.practice-shell,.games-shell,.vocab-shell,.settings-shell,.you-shell,.talk-shell){min-width:0}body.app-shell :where(h1,h2,h3,h4,p,strong,small,span,label,button){overflow-wrap:normal;word-break:normal}body.app-shell :where([data-user-text],[data-long-id],code,pre,.url,.email){overflow-wrap:anywhere;word-break:break-word}@supports (content-visibility:auto){body.app-shell .leagues-ladder,body.app-shell .leagues-cohort{content-visibility:auto;contain-intrinsic-size:320px}}body.app-shell :where(h1,h2,h3){text-wrap:balance;letter-spacing:0}body.app-shell :where(p,li,small){text-wrap:pretty}body.app-shell :where(button,.btn,.icon-btn,input,select,textarea,[role=button]){touch-action:manipulation}body.app-shell :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid color-mix(in srgb, var(--app-accent,var(--legacy-color-14b8a6)) 68%, white);outline-offset:3px}body.app-shell :where(.practice-browse-all,.games-browse-all){min-width:0}body.app-shell :where(.practice-browse-all,.games-browse-all)>summary{border:1px solid var(--app-border);min-height:44px;color:var(--app-text);background:var(--app-surface);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:800;list-style:none;display:none}body.app-shell :where(.practice-browse-all,.games-browse-all)>summary::-webkit-details-marker{display:none}body.app-shell :where(.practice-browse-all,.games-browse-all)>summary:after{content:"+";font-size:1.2rem;line-height:1}body.app-shell :where(.practice-browse-all,.games-browse-all)[open]>summary:after{content:"−"}body.app-shell .generated-board,body.app-shell .image-quest-board,body.app-shell .sound-pop-board{min-width:0;overflow:hidden}body.app-shell .support-inline-actions,body.app-shell .support-impact-actions{flex-wrap:wrap;gap:8px;display:flex}body.app-shell .support-modal-body{overscroll-behavior:contain;width:min(100%,620px);max-height:min(78dvh,720px);overflow:auto}body.app-shell .support-currency-note{border:1px solid color-mix(in srgb, var(--app-accent,var(--legacy-color-14b8a6)) 34%, var(--app-border));width:fit-content;max-width:100%;color:var(--app-text);background:color-mix(in srgb, var(--app-accent,var(--legacy-color-14b8a6)) 10%, transparent);border-radius:8px;align-items:center;margin:0;padding:6px 9px;font-size:.84rem;font-weight:700;display:inline-flex}body.app-shell .support-amount-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,112px),1fr));gap:8px}body.app-shell .support-amount-btn{white-space:normal;justify-content:center}body.app-shell .support-safe-copy{align-items:flex-start;gap:8px}body.app-shell .support-safe-copy>span{min-width:0}@media (max-width:720px){body.app-shell :where(.practice-browse-all,.games-browse-all)>summary{display:flex}body.app-shell :where(.practice-browse-all,.games-browse-all)[open]>summary{margin-bottom:10px}body.app-shell .support-modal-body{width:100%;max-height:min(82dvh,660px)}}@media (max-width:420px){body.app-shell .support-amount-grid,body.app-shell .support-inline-actions,body.app-shell .support-impact-actions{grid-template-columns:minmax(0,1fr);display:grid}body.app-shell .support-currency-note{width:100%}}body.app-shell{--theme-accent-text:var(--legacy-color-bae6fd);--theme-control-text:var(--text-1,var(--legacy-color-f8fafc));--theme-control-muted:var(--text-2,var(--legacy-color-d8dee9));--theme-control-bg:color-mix(in srgb, var(--app-panel-strong,#0c1226d6) 88%, transparent);--theme-control-bg-hover:color-mix(in srgb, var(--brand-3,var(--legacy-color-4cc9f0)) 16%, var(--app-panel-strong,#0c1226d6));--theme-control-border:var(--legacy-color-94a3b8);--theme-control-border-soft:color-mix(in srgb, var(--legacy-color-94a3b8) 68%, transparent);--theme-control-active-bg:var(--app-action-gradient);--theme-control-active-text:var(--text-on-accent,var(--legacy-color-ffffff));--theme-control-active-border:color-mix(in srgb, var(--legacy-color-ffffff) 44%, transparent);--theme-line-strong:var(--legacy-color-94a3b8)}:root[data-theme=light] body.app-shell,[data-theme=light] body.app-shell{--theme-accent-text:var(--legacy-color-3657d8);--theme-control-text:var(--legacy-color-0f172a);--theme-control-muted:var(--legacy-color-334155);--theme-control-bg:var(--legacy-color-ffffff);--theme-control-bg-hover:var(--legacy-color-eef4ff);--theme-control-border:var(--legacy-color-64748b);--theme-control-border-soft:var(--legacy-color-64748b);--theme-control-active-bg:var(--app-action-gradient);--theme-control-active-text:var(--legacy-color-ffffff);--theme-control-active-border:var(--legacy-color-3657d8);--theme-line-strong:var(--legacy-color-64748b)}body.app-shell .settings-shell :where(.settings-field>span,.muted,.toggle-text small,.placement-retake-blurb,.support-safe-copy,.support-card-trust){color:var(--theme-control-muted,var(--app-text-muted,var(--text-2,var(--legacy-color-334155))))}body.app-shell .generated-prompt .sprint-icon,body.app-shell .chat-welcome-eyebrow,body.app-shell .plan-completion strong,body.app-shell .bubble-streaming .bubble-content:after{color:var(--theme-accent-text)}body.app-shell :where(.practice-focus-chip,.sprint-option,.sentence-token,.image-quest-scene,.sound-pop-listen,.vocab-lab-empty,.vocab-lab-card,.practice-flow,.practice-hero-visual,.games-summary-mode){border-color:var(--theme-control-border-soft)}body.app-shell .chip.goal-chip-recommended .chip-badge{color:var(--legacy-color-14532d);background:var(--legacy-color-dcfce7);border-color:var(--legacy-color-15803d)}:root[data-theme=dark] body.app-shell .chip.goal-chip-recommended .chip-badge{color:var(--legacy-color-dcfce7);border-color:var(--legacy-color-86efac);background:#1665346b}body.app-shell .btn-ghost,body.app-shell .btn-ghost-light,:root[data-theme=light] body.app-shell .btn-ghost,:root[data-theme=dark] body.app-shell .btn-ghost,:root[data-theme=light] body.app-shell .btn-ghost-light,:root[data-theme=dark] body.app-shell .btn-ghost-light{color:var(--theme-control-text);background:var(--theme-control-bg);border-color:var(--theme-control-border);min-height:44px}body.app-shell .btn-ghost:hover,body.app-shell .btn-ghost-light:hover,:root[data-theme=light] body.app-shell .btn-ghost:hover,:root[data-theme=dark] body.app-shell .btn-ghost:hover,:root[data-theme=light] body.app-shell .btn-ghost-light:hover,:root[data-theme=dark] body.app-shell .btn-ghost-light:hover{color:var(--theme-control-text);background:var(--theme-control-bg-hover);border-color:var(--theme-control-border)}body.app-shell .btn-danger,:root[data-theme=light] body.app-shell .btn-danger{color:var(--legacy-color-ffffff);background:var(--legacy-color-b42318);border-color:var(--legacy-color-ffffff)}body.app-shell .btn-danger:hover,:root[data-theme=light] body.app-shell .btn-danger:hover{color:var(--legacy-color-ffffff);background:var(--legacy-color-991b1b);border-color:var(--legacy-color-ffffff)}:root[data-theme=dark] body.app-shell .btn-danger{color:var(--legacy-color-ffffff);background:var(--legacy-color-991b1b);border-color:var(--legacy-color-fca5a5)}:root[data-theme=dark] body.app-shell .btn-danger:hover{color:var(--legacy-color-ffffff);background:var(--legacy-color-b91c1c);border-color:var(--legacy-color-fecaca)}body.app-shell .game-learning-feedback{background:color-mix(in srgb, var(--card) 88%, transparent);border:1px solid #94a3b86b;border-radius:8px;grid-template-columns:minmax(72px,96px) minmax(0,1fr);align-items:center;gap:12px;width:100%;min-width:0;padding:12px;display:grid}body.app-shell .game-learning-feedback.is-correct{border-color:color-mix(in srgb, var(--legacy-color-22c55e) 42%, #94a3b86b)}body.app-shell .game-learning-feedback.is-wrong{border-color:color-mix(in srgb, var(--legacy-color-ef4444) 42%, #94a3b86b)}body.app-shell .game-feedback-visual{aspect-ratio:1;border-radius:8px;width:min(96px,24vw)}body.app-shell .game-learning-feedback-copy{gap:5px;min-width:0;display:grid}body.app-shell .game-learning-feedback-copy span{color:var(--text-secondary);font-size:.82rem;font-weight:750}body.app-shell .game-learning-feedback-copy strong{color:var(--text);overflow-wrap:anywhere;font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.1}body.app-shell .game-learning-feedback-copy small{color:var(--text-secondary);overflow-wrap:anywhere;line-height:1.35}body.app-shell .game-learning-feedback-copy .btn{width:fit-content;max-width:100%;min-height:44px}body.app-shell .sound-pop-bubble:disabled{cursor:not-allowed;opacity:.58;transform:none}@media (max-width:420px){body.app-shell .game-learning-feedback{grid-template-columns:1fr}body.app-shell .game-feedback-visual{width:min(132px,44vw)}}body.app-shell :where(.app-topbar,.app-sidenav,.app-bottombar,.app-main){min-width:0}body.app-shell .app-bottombar{inset-inline:0}body.app-shell :where(.app-bottombar a,.bb-tab,.bb-fab){min-inline-size:44px}body.app-shell .app-fullscreen-btn,body.app-shell .app-sidenav-toggle{min-width:44px;min-height:44px}body.app-shell .app-sidenav-toggle{border:1px solid var(--app-panel-border,#ffffff1f);width:44px;height:44px;color:var(--text-1,var(--legacy-color-ffffff));background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 72%, transparent);cursor:pointer;border-radius:999px;place-items:center;margin:0 auto 14px;display:inline-grid}body.app-shell .app-sidenav-toggle:hover{background:var(--app-chrome-hover,#ffffff14)}body.app-shell .app-sidenav.collapsed{width:64px;padding-inline:8px}body.app-shell.has-collapsed-sidenav{grid-template-columns:64px minmax(0,1fr)}body.app-shell .app-sidenav.collapsed ul{align-items:center}body.app-shell .app-sidenav.collapsed a{justify-content:center;width:48px;min-height:48px;padding-inline:0}body.app-shell .app-sidenav.collapsed a span{display:inline-block;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (max-width:768px){body.app-shell .app-sidenav-toggle{display:none}}body.app-shell.app-focus-mode{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);overflow:hidden;grid-template-areas:"main"!important;padding-bottom:0!important}body.app-shell.app-focus-mode .app-sidenav,body.app-shell.app-focus-mode .app-bottombar{display:none}body.app-shell.app-focus-mode .app-topbar{width:auto;min-height:0;box-shadow:none;pointer-events:none;background:0 0;border:0;padding:0;position:fixed;inset-block-start:max(8px, env(safe-area-inset-top,0px));inset-inline-start:auto;inset-inline-end:max(8px, env(safe-area-inset-right,0px))}body.app-shell.app-focus-mode .app-topbar .app-brand,body.app-shell.app-focus-mode .app-topbar [data-action=theme-toggle],body.app-shell.app-focus-mode .app-topbar .user-menu-wrap{display:none}body.app-shell.app-focus-mode .app-topbar .topbar-actions{pointer-events:none}body.app-shell.app-focus-mode .app-topbar .app-fullscreen-btn{pointer-events:auto;border:1px solid var(--app-panel-border,#ffffff24);background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 86%, transparent);display:inline-flex;box-shadow:0 18px 42px -28px #000000b8}body.app-shell.app-focus-mode .app-main{width:100%;height:100dvh;min-height:0;max-height:100dvh;padding:max(8px, env(safe-area-inset-top,0px)) max(8px, env(safe-area-inset-right,0px)) max(8px, env(safe-area-inset-bottom,0px)) max(8px, env(safe-area-inset-left,0px));grid-area:main;overflow:auto}body.app-shell.app-focus-mode .view[data-view=talk]:not([hidden]){height:100%;min-height:0;max-height:100%}@media (max-width:480px){body.app-shell .you-shell[data-active-tab=progress] :where(.you-tab,.progress-header,.progress-id,.progress-pillrow,.progress-pillrow>*,.progress-grid .card,.recent-link,.badge-tile,.streak-milestone-tile,.vocab-summary-row){min-width:0;max-width:100%}body.app-shell .you-shell[data-active-tab=progress] .card-vocab .vocab-summary-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}}body.app-shell :where(.view,.app-main,.talk-shell,.talk-host,.chat-shell-2026b,.voice2-shell.cinema.voice2-shell-2026,.you-shell,.progress-grid){min-width:0}@media (max-width:768px){body.app-shell .chat-shell-2026b{max-block-size:calc(100dvh - var(--app-mobile-topbar-h,56px) - var(--app-mobile-bottombar-h,86px) - 12px)}body.app-shell .chat-shell-2026b .chat-main,body.app-shell .chat-shell-2026b .message-stream{min-height:0}body.app-shell .chat-shell-2026b .message-stream{overscroll-behavior:contain}}@media (orientation:landscape) and (max-height:500px){body.app-shell .chat-shell-2026b{max-block-size:calc(100dvh - 16px)}}body.app-shell .chat-shell-2026b[data-density=ultra-minimal]{border-radius:18px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-main{grid-template-rows:minmax(52px,auto) minmax(48px,auto) minmax(0,auto) minmax(140px,1fr) minmax(62px,auto);gap:clamp(6px,1cqw,10px)}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026{grid-row:1;grid-template-columns:minmax(0,max-content) minmax(0,1fr) 44px;min-height:52px;padding:6px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026 .chat-persona-chip{grid-column:1}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-spacer{grid-column:2;min-width:0}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-scene-strip{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-settings-btn,body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-current,body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer-actions-btn,body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble-more{min-width:44px;min-height:44px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-settings-btn{border-radius:999px;grid-column:3;justify-self:end;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}@media (max-width:768px){body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026{grid-template-columns:44px minmax(0,1fr) 44px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026 .chat-history-toggle{grid-column:1}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026 .chat-persona-chip{grid-column:2;justify-self:stretch}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-spacer{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-settings-btn{grid-column:3}}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-bar{z-index:7;border-radius:14px;grid-row:2;min-height:48px;padding:0;display:block;position:relative;overflow:visible}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-current{border:1px solid var(--chat-flagship-line);width:100%;color:var(--text-1);background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 82%, transparent);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding-inline:12px;display:inline-flex}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-menu{inset-inline:0;z-index:40;border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr));gap:8px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px)}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-menu[hidden]{display:none!important}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-tab{border-radius:12px;justify-content:center;min-width:0}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-lesson-banner{grid-row:3}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-prompt-strip{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .message-stream{grid-row:4;padding-block:8px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-composer-host{grid-row:5;min-height:62px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer{position:relative}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer .mic-btn{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer-actions-btn{border-radius:999px;place-items:center;display:inline-grid}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .quick-actions{inset-inline:0;z-index:35;border:1px solid var(--chat-flagship-line);background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 94%, var(--legacy-color-020617));border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),1fr));gap:8px;max-height:min(46dvh,260px);padding:10px;display:grid;position:absolute;bottom:calc(100% + 8px);overflow:auto;box-shadow:0 22px 48px -32px #000c}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .quick-actions[hidden]{display:none!important}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .qa-chip{white-space:normal;justify-content:center;min-width:0}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome{max-width:min(100%,620px);margin-inline:auto}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome-card{padding:14px;display:block}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome-sub{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome-title{margin:0;font-size:clamp(1rem,.96rem + .35vw,1.18rem);line-height:1.35}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome-chips{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px;display:grid}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble-footer{gap:6px;position:relative}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble-more{color:var(--text-2);background:color-mix(in srgb, var(--legacy-color-ffffff) 8%, transparent);border:0;border-radius:999px;place-items:center;display:inline-grid}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble .bubble-actions{inset-inline-end:0;z-index:20;border:1px solid var(--chat-flagship-line);background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 96%, var(--legacy-color-020617));opacity:1;pointer-events:auto;border-radius:16px;flex-wrap:wrap;max-width:min(280px,100vw - 40px);padding:8px;display:none;position:absolute;bottom:calc(100% + 6px);transform:none;box-shadow:0 18px 42px -30px #000000db}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble.bubble-actions-open .bubble-actions{display:flex}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .bubble .bubble-actions>*{opacity:1;transform:none}body.app-shell .chat-settings-backdrop{z-index:calc(var(--z-modal,1000) - 1);background:#080c1829;position:fixed;inset:0}body.app-shell .chat-settings-backdrop[hidden],body.app-shell .chat-settings-sheet[hidden]{display:none!important}body.app-shell .chat-settings-sheet{--chat-settings-width:min(360px, calc(100vw - 24px));top:var(--chat-settings-anchor-top,calc(var(--app-mobile-topbar-h,56px) + 72px));inset-inline-end:var(--chat-settings-anchor-right,max(16px, env(safe-area-inset-right)));bottom:auto;z-index:var(--z-modal,1000);width:var(--chat-settings-width);max-width:calc(100vw - 24px);max-height:min(560px, calc(100dvh - var(--chat-settings-anchor-top,128px) - 14px));border:1px solid color-mix(in srgb, var(--theme-control-border,var(--legacy-color-94a3b8)) 58%, transparent);color:var(--theme-control-text,var(--text-1,var(--legacy-color-f8fafc)));background:linear-gradient(180deg, color-mix(in srgb, var(--legacy-color-ffffff) 9%, transparent), color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 94%, var(--legacy-color-020617)));box-shadow:0 28px 70px -38px #000000d1, inset 0 1px 0 color-mix(in srgb, var(--legacy-color-ffffff) 12%, transparent);-webkit-backdrop-filter:var(--glass-blur,blur(18px));overscroll-behavior:contain;border-radius:18px;align-content:start;gap:12px;padding:14px;display:grid;position:fixed;inset-inline-start:auto;overflow:auto}:root[data-theme=light] body.app-shell .chat-settings-backdrop,[data-theme=light] body.app-shell .chat-settings-backdrop{background:#0f172a1a}:root[data-theme=light] body.app-shell .chat-settings-sheet,[data-theme=light] body.app-shell .chat-settings-sheet{background:linear-gradient(#fffffffa,#f8fafcf0);border-color:#64748b75;box-shadow:0 28px 64px -42px #0f172a61,inset 0 1px #ffffffdb}body.app-shell .chat-settings-head,body.app-shell .chat-settings-persona,body.app-shell .chat-settings-row{align-items:center;gap:10px;min-width:0;display:flex}body.app-shell .chat-settings-head{justify-content:space-between}body.app-shell .chat-settings-persona{border:1px solid color-mix(in srgb, var(--theme-control-border,var(--legacy-color-94a3b8)) 58%, transparent);width:100%;min-height:52px;color:var(--theme-control-text,var(--text-1));background:color-mix(in srgb, var(--theme-control-bg,var(--app-panel-strong,var(--legacy-color-101827))) 78%, transparent);border-radius:14px;justify-content:flex-start;padding:8px}body.app-shell .chat-settings-persona>span:last-of-type{gap:2px;min-width:0;display:grid}body.app-shell .chat-settings-persona small,body.app-shell .chat-settings-row>span{color:var(--app-text-muted)}body.app-shell .chat-settings-row{flex-direction:column;align-items:stretch}body.app-shell .chat-settings-row .chat-lang-picker,body.app-shell .chat-settings-row .lang-picker-trigger,body.app-shell .chat-settings-sheet .chat-level-chip{width:100%}body.app-shell .chat-settings-row .chat-lang-picker{position:relative}body.app-shell .chat-settings-row .lang-picker-panel{border-color:color-mix(in srgb, var(--theme-control-border,var(--legacy-color-94a3b8)) 48%, transparent);background:color-mix(in srgb, var(--app-panel-strong,var(--legacy-color-101827)) 94%, var(--legacy-color-020617));width:100%;max-width:100%;max-height:min(42dvh,320px);box-shadow:none;margin-top:8px;position:static}:root[data-theme=light] body.app-shell .chat-settings-row .lang-picker-panel,[data-theme=light] body.app-shell .chat-settings-row .lang-picker-panel{background:#fffffff5}@media (max-width:430px){body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-welcome-chips,body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .quick-actions{grid-template-columns:minmax(0,1fr)}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-persona-meta small{display:none}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-composer-host{min-height:56px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer{padding:4px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer-row{min-height:44px}}@media (max-width:640px) and (min-height:501px){body.app-shell .chat-settings-backdrop{background:#080c186b}body.app-shell .chat-settings-sheet{top:auto;inset-inline-end:max(12px, env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));border-radius:20px;width:auto;max-width:none;max-height:min(78dvh,560px);inset-inline-start:max(12px, env(safe-area-inset-left))}}@media (orientation:landscape) and (max-height:500px){body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-main{grid-template-rows:minmax(44px,auto) minmax(44px,auto) minmax(0,auto) minmax(76px,1fr) minmax(54px,auto);gap:4px}body.app-shell .chat-settings-sheet{top:min(var(--chat-settings-anchor-top,72px), 96px);inset-inline-end:max(8px, env(safe-area-inset-right));bottom:auto;width:min(360px,100vw - 16px);max-height:calc(100dvh - min(var(--chat-settings-anchor-top,72px), 96px) - 8px);border-radius:16px;gap:10px;padding:10px;inset-inline-start:auto}}body.app-shell .chat-level-chip [data-slot=level-label]{white-space:normal;text-align:start;max-width:min(240px,44vw);line-height:1.1}@media (max-width:768px){body.app-shell .app-bottombar-2026 .bb-fab:active{transform:translateY(-6px)scale(.96)}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-main{grid-template-rows:minmax(48px,auto) minmax(44px,auto) minmax(0,auto) minmax(132px,1fr) minmax(56px,auto);gap:6px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-topbar-2026{min-height:48px;padding:4px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-bar{border-radius:12px;min-height:44px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-mode-current{border-radius:12px;min-height:44px;padding-inline:10px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .message-stream{padding-block:6px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .chat-composer-host{min-height:56px}body.app-shell .chat-shell-2026b[data-density=ultra-minimal] .composer{padding:5px}}body.app-shell .lesson-curriculum,body.app-shell .chat-lesson-curriculum,body.app-shell .next-curriculum-strip{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}body.app-shell .lesson-curriculum span,body.app-shell .chat-lesson-curriculum span,body.app-shell .next-curriculum-strip span{border:1px solid color-mix(in srgb, var(--text) 14%, transparent);background:color-mix(in srgb, var(--card) 82%, transparent);max-width:100%;min-height:28px;color:var(--text);overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;font-size:.78rem;line-height:1.2;display:inline-flex}body.app-shell .lesson-topic,body.app-shell .next-curriculum-strip span:first-child{font-weight:800}body.app-shell .skill-node-topic{inset-inline-start:50%;width:128px;color:var(--muted);text-align:center;overflow-wrap:anywhere;font-size:.68rem;line-height:1.1;position:absolute;top:92px;transform:translate(-50%)}body.app-shell .curriculum-topic-card,body.app-shell .curriculum-topic-empty{gap:10px;min-width:0;display:grid}body.app-shell .curriculum-topic-kicker{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:800}body.app-shell .curriculum-topic-card strong{font-size:1.05rem;line-height:1.25}body.app-shell .curriculum-can-do{color:var(--text);margin:0;font-size:.9rem;line-height:1.35}body.app-shell .curriculum-skill-row,body.app-shell .curriculum-mission-list{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}body.app-shell .curriculum-skill-row span,body.app-shell .curriculum-mission{border:1px solid color-mix(in srgb, var(--text) 14%, transparent);background:color-mix(in srgb, var(--card) 82%, transparent);max-width:100%;min-height:28px;color:var(--text);overflow-wrap:anywhere;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;font-size:.76rem;font-weight:760;line-height:1.2;display:inline-flex}body.app-shell .curriculum-skill-row span{color:var(--muted)}body.app-shell .curriculum-mission.complete{border-color:color-mix(in srgb, var(--legacy-color-14b8a6) 42%, transparent);background:color-mix(in srgb, var(--legacy-color-14b8a6) 12%, var(--card))}body.app-shell .curriculum-mission b{color:var(--muted);margin-inline-start:2px;font-size:.72rem;font-weight:850}body.app-shell .curriculum-topic-meter{background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:999px;width:100%;height:10px;overflow:hidden}body.app-shell .curriculum-topic-meter span{transform-origin:0;border-radius:inherit;background:linear-gradient(90deg, var(--legacy-color-14b8a6), var(--legacy-color-3b82f6));width:100%;height:100%;display:block}body.app-shell .curriculum-checkpoint{border:1px solid color-mix(in srgb, var(--text) 12%, transparent);background:color-mix(in srgb, var(--card) 76%, transparent);min-width:0;color:var(--text);border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;padding:10px;font-size:.84rem;line-height:1.3;display:grid}body.app-shell .curriculum-checkpoint.complete{border-color:color-mix(in srgb, var(--legacy-color-14b8a6) 40%, transparent);background:color-mix(in srgb, var(--legacy-color-14b8a6) 12%, var(--card))}body.app-shell .curriculum-checkpoint i{color:var(--legacy-color-14b8a6)}body.app-shell .curriculum-next{margin:0}@media (max-width:720px){body.app-shell .chat-lesson-curriculum,body.app-shell .lesson-curriculum,body.app-shell .next-curriculum-strip{gap:5px}body.app-shell .lesson-curriculum span,body.app-shell .chat-lesson-curriculum span,body.app-shell .next-curriculum-strip span,body.app-shell .curriculum-mission{width:100%}body.app-shell .skill-node-topic{display:none}}body.app-shell .card-course-roadmap{grid-column:1/-1}.course-roadmap{gap:16px;min-width:0;display:grid}.course-roadmap-summary{justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;display:flex}.course-roadmap-copy{min-width:0}.course-roadmap-copy h2,.course-roadmap-copy p{overflow-wrap:anywhere;margin:0}.course-roadmap-copy h2{margin-block-start:5px;font-size:clamp(1.15rem,2.4vw,1.55rem)}.course-roadmap-copy p{color:var(--text-2,var(--text-secondary));margin-block-start:6px}.course-roadmap-eyebrow,.course-roadmap-status{align-items:center;gap:7px;font-size:.78rem;font-weight:850;display:inline-flex}.course-roadmap-eyebrow{color:var(--brand-3,var(--primary));text-transform:uppercase;letter-spacing:.04em}.course-roadmap-status{border:1px solid var(--border-color);background:color-mix(in srgb, var(--primary) 10%, transparent);text-align:center;overflow-wrap:anywhere;border-radius:999px;flex:none;max-width:42%;min-height:30px;padding:5px 9px}.course-roadmap-meter{background:color-mix(in srgb, var(--text,white) 10%, transparent);border-radius:999px;height:9px;overflow:hidden}.course-roadmap-meter>span{border-radius:inherit;background:linear-gradient(90deg, var(--primary), var(--accent));transform-origin:0%;width:100%;height:100%;display:block}.course-roadmap-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.course-roadmap-stats>span{background:color-mix(in srgb, var(--text,white) 5%, transparent);min-width:0;color:var(--text-2,var(--text-secondary));overflow-wrap:anywhere;border-radius:10px;gap:2px;padding:9px;font-size:.75rem;display:grid}.course-roadmap-stats strong{color:var(--text-1,var(--text));font-size:.9rem}.course-roadmap-level-checkpoint{border:1px solid color-mix(in srgb, var(--primary) 38%, var(--border-color));background:color-mix(in srgb, var(--primary) 9%, transparent);border-radius:12px;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:11px 12px;display:grid}.course-roadmap-level-checkpoint.is-repair{border-color:color-mix(in srgb, var(--warning,var(--legacy-color-fbbf24)) 42%, var(--border-color));background:color-mix(in srgb, var(--warning,var(--legacy-color-fbbf24)) 8%, transparent)}.course-roadmap-level-checkpoint.is-passed{border-color:color-mix(in srgb, var(--success,var(--legacy-color-22c55e)) 42%, var(--border-color));background:color-mix(in srgb, var(--success,var(--legacy-color-22c55e)) 8%, transparent)}.course-roadmap-level-icon{background:color-mix(in srgb, var(--primary) 15%, transparent);width:38px;height:38px;color:var(--primary);border-radius:11px;place-items:center;display:grid}.course-roadmap-level-checkpoint.is-repair .course-roadmap-level-icon{color:var(--warning,var(--legacy-color-fbbf24))}.course-roadmap-level-checkpoint.is-passed .course-roadmap-level-icon{color:var(--success,var(--legacy-color-22c55e))}.course-roadmap-level-checkpoint :where(h3,p,small){overflow-wrap:anywhere;margin:0}.course-roadmap-level-checkpoint h3{font-size:.94rem}.course-roadmap-level-checkpoint p,.course-roadmap-level-checkpoint small{color:var(--text-2,var(--text-secondary));margin-block-start:3px;font-size:.78rem;line-height:1.4;display:block}.course-roadmap-topics{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:9px;margin:0;padding:0;list-style:none;display:grid}.course-roadmap-topic{border:1px solid var(--border-color);background:color-mix(in srgb, var(--text,white) 4%, transparent);border-radius:10px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-width:0;min-height:54px;padding:8px 10px;display:grid}.course-roadmap-topic[aria-current=step]{border-color:color-mix(in srgb, var(--primary) 62%, var(--border-color));background:color-mix(in srgb, var(--primary) 12%, transparent)}.course-roadmap-topic:is(.is-current,.is-repair,.is-mastery_ready){border-color:color-mix(in srgb, var(--primary) 62%, var(--border-color))}.course-roadmap-topic.is-locked{opacity:.62}.course-roadmap-topic-marker{background:color-mix(in srgb, var(--primary) 16%, transparent);width:34px;height:34px;color:var(--primary);border-radius:50%;place-items:center;display:grid}.course-roadmap-topic.is-mastered .course-roadmap-topic-marker{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.course-roadmap-topic-copy{gap:2px;min-width:0;display:grid}.course-roadmap-topic-copy :where(strong,small){overflow-wrap:anywhere;min-width:0}.course-roadmap-topic-copy small{color:var(--text-2,var(--text-secondary))}.course-roadmap:not(.is-compact) .course-roadmap-topics{grid-template-columns:minmax(0,1fr);gap:12px}.course-roadmap:not(.is-compact) .course-roadmap-topic{border-radius:14px;grid-template-columns:38px minmax(0,1fr);align-items:start;min-height:0;padding:clamp(12px,2vw,18px)}.course-roadmap:not(.is-compact) .course-roadmap-topic-marker{margin-block-start:1px}.course-roadmap:not(.is-compact) .course-roadmap-topic-copy{gap:6px}.course-roadmap:not(.is-compact) .course-roadmap-topic-copy>strong{font-size:1rem}.course-roadmap-topic-section{gap:6px;min-width:0;margin-block-start:7px;display:grid}.course-roadmap-topic-section h3{color:var(--text-2,var(--text-secondary));letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:850}.course-roadmap-topic-section ul{min-width:0;margin:0;padding-inline-start:18px}.course-roadmap-outcomes li{color:var(--text-1,var(--text));overflow-wrap:anywhere;margin-block:3px;line-height:1.4}.course-roadmap-missions ul{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:6px;padding:0;list-style:none;display:grid}.course-roadmap-missions li{background:color-mix(in srgb, var(--text,white) 5%, transparent);min-width:0;min-height:36px;color:var(--text-2,var(--text-secondary));border-radius:8px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:6px;padding:6px 8px;font-size:.78rem;display:grid}.course-roadmap-missions li.is-complete{color:var(--success,var(--legacy-color-22c55e))}.course-roadmap-missions li>span{overflow-wrap:anywhere;min-width:0}.course-roadmap-missions li>strong{color:currentColor;font-variant-numeric:tabular-nums}.course-roadmap-topic-evidence{flex-wrap:wrap;gap:6px;min-width:0;margin-block-start:7px;display:flex}.course-roadmap-topic-evidence>span{background:color-mix(in srgb, var(--text,white) 5%, transparent);min-width:0;max-width:100%;color:var(--text-2,var(--text-secondary));overflow-wrap:anywhere;border-radius:8px;align-items:flex-start;gap:6px;padding:6px 8px;font-size:.76rem;line-height:1.35;display:inline-flex}.course-roadmap-topic-evidence>span.is-review{color:var(--brand-3,var(--primary));background:color-mix(in srgb, var(--primary) 11%, transparent)}.course-roadmap-topic-evidence>span.is-repair{color:var(--warning,var(--legacy-color-fbbf24));background:color-mix(in srgb, var(--warning,var(--legacy-color-fbbf24)) 10%, transparent)}.course-roadmap-topic-cta{justify-self:start;min-width:min(100%,170px);min-height:44px;margin-block-start:7px}.course-roadmap-actions,.course-roadmap-empty{flex-wrap:wrap;gap:9px;display:flex}.topic-quest-head{justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;display:flex}.topic-quest-head>div{min-width:0}.topic-quest-head :where(h2,p){overflow-wrap:anywhere;margin:0}.topic-quest-head h2{margin-block-start:5px;font-size:clamp(1.15rem,2.4vw,1.5rem)}.topic-quest-head p{color:var(--text-2,var(--text-secondary));margin-block-start:6px}.topic-quest-eyebrow,.topic-quest-status{align-items:center;gap:7px;font-size:.78rem;font-weight:850;display:inline-flex}.topic-quest-eyebrow{color:var(--brand-3,var(--primary));text-transform:uppercase;letter-spacing:.04em}.topic-quest-status{border:1px solid var(--border-color);background:color-mix(in srgb, var(--primary) 10%, transparent);text-align:center;overflow-wrap:anywhere;border-radius:999px;flex:none;max-width:42%;padding:6px 9px}.topic-quest-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0;padding:0;list-style:none;display:grid}.topic-quest-steps li{border:1px solid var(--border-color);background:color-mix(in srgb, var(--text,white) 4%, transparent);border-radius:10px;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:52px;padding:8px;display:grid}.topic-quest-steps li.is-current{border-color:color-mix(in srgb, var(--primary) 62%, var(--border-color));background:color-mix(in srgb, var(--primary) 11%, transparent)}.topic-quest-steps li.is-complete{border-color:color-mix(in srgb, var(--success,var(--legacy-color-22c55e)) 44%, var(--border-color))}.topic-quest-steps li>span:last-child{gap:2px;min-width:0;display:grid}.topic-quest-steps :where(strong,small){overflow-wrap:anywhere}.topic-quest-steps small{color:var(--text-2,var(--text-secondary))}.topic-quest-step-icon{width:26px;height:26px;color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);border-radius:50%;place-items:center;display:grid}.topic-quest-steps .is-complete .topic-quest-step-icon{color:var(--success,var(--legacy-color-22c55e));background:color-mix(in srgb, var(--success,var(--legacy-color-22c55e)) 14%, transparent)}.topic-quest-cta{min-height:44px}.topic-quest-complete{min-height:44px;color:var(--success,var(--legacy-color-22c55e));overflow-wrap:anywhere;align-items:center;gap:8px;margin:0;font-weight:800;display:flex}.course-roadmap-actions .btn,.course-roadmap-empty .btn{min-height:44px}.course-roadmap-empty{align-items:center}.course-roadmap-empty>div{flex:220px;min-width:0}.course-roadmap-empty :where(h2,p){overflow-wrap:anywhere;margin:0}button.dlg-text{appearance:none;width:100%;min-height:44px;color:inherit;font:inherit;text-align:inherit;background:0 0;border:0;margin:0;padding:4px 0;display:block}html[data-motion=reduced] body.app-shell .app-bottombar-2026{transition:none}html[data-motion=reduced] body.app-shell .app-bottombar-2026.is-hidden,body.app-shell .app-bottombar-2026.is-hidden:focus-within{pointer-events:auto;transform:none}@media (max-width:520px){.course-roadmap-summary{display:grid}.course-roadmap-status,.topic-quest-status{justify-self:start;max-width:100%}.topic-quest-head{display:grid}.topic-quest-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.course-roadmap-actions .btn,.course-roadmap-empty .btn,.course-roadmap-topic-cta{flex:100%;width:100%}.course-roadmap:not(.is-compact) .course-roadmap-topic{grid-template-columns:32px minmax(0,1fr);padding:11px 10px}.course-roadmap:not(.is-compact) .course-roadmap-topic-marker{width:32px;height:32px}.course-roadmap-missions ul{grid-template-columns:minmax(0,1fr)}}@media (max-width:360px){.course-roadmap-stats,.topic-quest-steps{grid-template-columns:minmax(0,1fr)}}body.app-shell{--dash-v230-max:min(1120px, calc(100vw - 32px));--dash-v230-card:#0f172abd;--dash-v230-card-soft:#0f172a85;--dash-v230-line:#e2e8f024;--dash-v230-muted:#e2e8f0b8;--dash-v230-shadow:0 18px 48px -34px #000000a3}[data-theme=light] body.app-shell{--dash-v230-card:#ffffffeb;--dash-v230-card-soft:#ffffffc7;--dash-v230-line:#0f172a1f;--dash-v230-muted:var(--legacy-color-475569);--dash-v230-shadow:0 18px 48px -36px #0f172a4d}body.app-shell .gradient-mesh .blob-shape{opacity:.12;filter:none}body.app-shell .app-topbar{border-bottom:1px solid var(--dash-v230-line);min-height:58px;box-shadow:none;-webkit-backdrop-filter:saturate(1.02)blur(18px);backdrop-filter:saturate(1.02)blur(18px);background:#080d1fd6}[data-theme=light] body.app-shell .app-topbar{background:#f8fafce0}body.app-shell .app-brand,body.app-shell .icon-btn,body.app-shell .user-chip,body.app-shell .app-sidenav-2026 a,body.app-shell .app-bottombar-2026 a{border-radius:8px}body.app-shell .app-sidenav-2026{border-inline-end:1px solid var(--dash-v230-line);box-shadow:none;-webkit-backdrop-filter:saturate(1.02)blur(18px);backdrop-filter:saturate(1.02)blur(18px);background:#080d1fb8}[data-theme=light] body.app-shell .app-sidenav-2026{background:#ffffffc7}body.app-shell .app-sidenav-2026 a{min-height:46px;color:var(--dash-v230-muted)}body.app-shell .app-sidenav-2026 a:is(.active,[aria-current=page]){color:var(--text-on-accent,var(--legacy-color-fff));background:var(--public-action-gradient);box-shadow:0 14px 28px -22px #4361eeb8}body.app-shell .app-bottombar-2026{border-top:1px solid var(--dash-v230-line);-webkit-backdrop-filter:saturate(1.02)blur(18px);backdrop-filter:saturate(1.02)blur(18px);background:#080d1fe0;box-shadow:0 -14px 36px -30px #000000ad}[data-theme=light] body.app-shell .app-bottombar-2026{background:#ffffffe6}body.app-shell :where(.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.progress-header,.progress-grid .card,.you-tab-loading){border:1px solid var(--dash-v230-line);background:var(--dash-v230-card);box-shadow:var(--dash-v230-shadow);-webkit-backdrop-filter:saturate(1.02)blur(16px);backdrop-filter:saturate(1.02)blur(16px);border-radius:8px}@media (max-width:480px){body.app-shell .app-topbar{min-height:54px}}@media (forced-colors:active){body.app-shell :where(.app-topbar,.app-sidenav-2026,.app-bottombar-2026,.home-greeting,.home-next,.home-card,.home-skills,.home-tree,.progress-header,.progress-grid .card,.you-tabs){color:canvastext;box-shadow:none;background:canvas;border-color:canvastext}}:where(.learn-v3-shell,.lesson-v3-shell){--course-accent:var(--brand-3,#22d3ee);--course-accent-strong:var(--brand-1,#6d5dfc);--course-success:var(--success,#22c55e);--course-warning:var(--warning,#f59e0b);--course-danger:var(--danger,#ef4444);--course-panel:var(--theme-control-bg,var(--app-panel,#0f172ab8));--course-panel-strong:var(--app-panel-strong,var(--theme-control-bg,#10182e));--course-panel-hover:var(--theme-control-bg-hover,#22d3ee1a);--course-line:var(--theme-control-border-soft,#94a3b861);--course-text:var(--theme-control-text,var(--app-text,#f8fafc));--course-muted:var(--theme-control-muted,var(--app-text-muted,#cbd5e1));color:var(--course-text);min-inline-size:0;padding:clamp(12px,2.4vw,28px)}:where(.learn-v3-shell,.lesson-v3-shell) *,:where(.learn-v3-shell,.lesson-v3-shell) :before,:where(.learn-v3-shell,.lesson-v3-shell) :after{box-sizing:border-box}:where(.learn-v3-shell,.lesson-v3-shell) button,:where(.learn-v3-shell,.lesson-v3-shell) select,:where(.learn-v3-shell,.lesson-v3-shell) input,:where(.learn-v3-shell,.lesson-v3-shell) textarea,:where(.learn-v3-shell,.lesson-v3-shell) summary{font:inherit}:where(.learn-v3-shell,.lesson-v3-shell) :focus-visible{outline:3px solid color-mix(in srgb, var(--course-accent) 78%, white);outline-offset:3px}.lesson-content-kicker{color:var(--theme-accent-text,var(--course-accent));letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.78rem;font-weight:800;line-height:1.3;display:inline-flex}.lesson-step{min-block-size:44px;color:var(--course-muted);cursor:pointer;background:0 0;border:1px solid #0000}.lesson-step:hover:not(:disabled){color:var(--course-text);background:var(--course-panel-hover)}.lesson-step{border-color:var(--course-line);background:var(--course-panel);border-radius:15px;justify-items:center;gap:5px;min-block-size:70px;min-inline-size:100px;padding:9px 7px;display:grid}.lesson-step.is-active{border-color:var(--course-accent);color:var(--course-text);background:color-mix(in srgb, var(--course-accent) 12%, var(--course-panel));box-shadow:inset 0 0 0 1px var(--course-accent)}.lesson-step.is-complete .lesson-step-icon{color:var(--course-success)}.lesson-step:disabled{opacity:.56;cursor:not-allowed}.lesson-step-icon{background:color-mix(in srgb, var(--course-accent) 9%, transparent);border-radius:9px;place-items:center;block-size:28px;inline-size:28px;display:grid}.lesson-step-label{text-overflow:ellipsis;white-space:nowrap;max-inline-size:100%;font-size:.72rem;font-weight:740;overflow:hidden}.lesson-can-do-banner,.lesson-preview-note{border:1px solid color-mix(in srgb, var(--course-accent) 42%, var(--course-line));background:color-mix(in srgb, var(--course-accent) 8%, var(--course-panel));border-radius:17px;align-items:flex-start;gap:12px;padding:14px 17px;display:flex}.lesson-can-do-banner>i,.lesson-preview-note>i{block-size:34px;inline-size:34px;color:var(--theme-accent-text,var(--course-accent));background:color-mix(in srgb, var(--course-accent) 12%, transparent);border-radius:11px;flex:none;place-items:center;display:grid}.lesson-can-do-banner div,.lesson-preview-note div{gap:2px;display:grid}.lesson-can-do-banner span{color:var(--course-muted);text-transform:uppercase;font-size:.74rem;font-weight:760}.lesson-preview-note p{color:var(--course-muted);margin:3px 0 0;font-size:.86rem}.lesson-content-card,.lesson-check-card,.lesson-public-questions,.lesson-complete-card{border:1px solid var(--course-line);background:var(--course-panel);border-radius:clamp(19px,2.5vw,26px);padding:clamp(19px,3.5vw,34px);box-shadow:0 16px 42px #0206171f}.lesson-content-card h2{letter-spacing:-.035em;text-wrap:balance;margin:8px 0 10px;font-size:clamp(1.55rem,3.6vw,2.65rem);line-height:1.08}.lesson-content-card .lesson-lead{max-inline-size:780px;color:var(--course-muted);margin:0 0 18px;font-size:clamp(.96rem,1.7vw,1.08rem);line-height:1.65}.lesson-discover{grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,3vw,28px);display:grid}.lesson-content-icon{block-size:clamp(54px,8vw,78px);inline-size:clamp(54px,8vw,78px);color:var(--theme-accent-text,var(--course-accent));background:color-mix(in srgb, var(--course-accent) 12%, transparent);border-radius:22px;place-items:center;font-size:1.6rem;display:grid}.lesson-teaching-text{border-inline-start:4px solid var(--course-accent);background:color-mix(in srgb, var(--course-accent) 6%, transparent);white-space:pre-line;border-radius:0 14px 14px 0;max-inline-size:760px;margin-block-start:18px;padding:18px;line-height:1.8}[dir=rtl] .lesson-teaching-text{border-radius:14px 0 0 14px}.lesson-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.lesson-focus-group{border:1px solid var(--course-line);background:var(--course-panel);border-radius:17px;padding:17px}.lesson-focus-group h3{margin:0 0 10px;font-size:.86rem}.lesson-focus-group ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lesson-focus-group li{color:var(--course-muted);background:color-mix(in srgb, var(--course-muted) 9%, transparent);border-radius:8px;padding:5px 8px;font-size:.78rem}.lesson-vocab-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.lesson-vocab-item{border:1px solid var(--course-line);background:color-mix(in srgb, var(--course-panel-strong) 70%, transparent);border-radius:15px;align-content:start;min-inline-size:0;padding:15px;display:grid}.lesson-vocab-term{justify-content:space-between;align-items:center;gap:8px;display:flex}.lesson-vocab-term strong{font-size:1.12rem}.lesson-vocab-term .icon-btn{flex:none;min-block-size:44px;min-inline-size:44px}.lesson-vocab-pronunciation,.lesson-vocab-meaning{color:var(--course-muted);font-size:.8rem}.lesson-vocab-meaning{color:var(--theme-accent-text,var(--course-accent));margin-block-start:2px;font-weight:720}.lesson-vocab-item p{margin:12px 0 3px;line-height:1.5}.lesson-vocab-item small{color:var(--course-muted)}.lesson-reading-card{position:relative;overflow:hidden}.lesson-reading-card:before{background:linear-gradient(var(--course-accent-strong), var(--course-accent));content:"";inline-size:5px;position:absolute;inset-block:0;inset-inline-start:0}.lesson-reading-text,.lesson-transcript{max-inline-size:820px;color:var(--course-text);font-family:var(--font-reading,Georgia, "Times New Roman", serif);white-space:pre-line;margin:22px auto 6px;font-size:clamp(1.04rem,2vw,1.22rem);line-height:1.9}.lesson-reading-card footer{color:var(--course-muted);margin-block-start:20px;font-size:.78rem}.lesson-public-questions h3{margin:0 0 12px}.lesson-public-questions ol{color:var(--course-muted);gap:8px;margin:0;padding-inline-start:24px;line-height:1.5;display:grid}.lesson-listen-controls{align-items:center;gap:12px;margin-block:22px 14px;display:flex}.lesson-play-button{border-radius:999px;min-block-size:52px;min-inline-size:150px}.lesson-listen-controls>span,.lesson-transcript-hint{color:var(--course-muted);font-size:.8rem}.lesson-transcript{border:1px solid var(--course-line);background:color-mix(in srgb, var(--course-panel-strong) 70%, transparent);border-radius:14px;margin-inline:0;padding:18px}.lesson-production-prompt{border:1px solid var(--course-line);background:color-mix(in srgb, var(--course-accent) 6%, transparent);border-radius:15px;align-items:flex-start;gap:13px;margin-block:12px;padding:16px;display:flex}.lesson-production-prompt>i{color:var(--theme-accent-text,var(--course-accent));margin-block-start:3px}.lesson-production-prompt p{color:var(--course-muted);margin:5px 0 0;line-height:1.55}.lesson-ai-handoffs{flex-wrap:wrap;gap:10px;margin-block-start:20px;display:flex}.lesson-ai-handoffs .btn{min-block-size:48px}.lesson-mastery-goals{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.lesson-mastery-goals li{align-items:flex-start;gap:9px;display:flex}.lesson-mastery-goals i{color:var(--course-success);margin-block-start:4px}.lesson-check-card>header{justify-content:space-between;align-items:start;gap:16px;display:flex}.lesson-check-card h3{margin:7px 0 0;font-size:clamp(1.18rem,2.4vw,1.55rem)}.lesson-check-card>header>span{color:var(--course-muted);background:color-mix(in srgb, var(--course-muted) 10%, transparent);border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800}.lesson-check-card form{gap:13px;margin-block-start:18px;display:grid}.lesson-exercise-prompt{margin:0;font-size:1.04rem;font-weight:740;line-height:1.5}.lesson-exercise-target{color:var(--theme-accent-text,var(--course-accent));margin:0;font-size:1.05rem}.lesson-exercise-gloss{color:var(--course-muted);margin:-8px 0 0;font-size:.85rem}.lesson-check-card :where(input[type=text],textarea){border:1px solid var(--course-line);min-block-size:48px;inline-size:100%;color:var(--course-text);background:var(--course-panel-strong);resize:vertical;border-radius:12px;padding:12px 14px}.lesson-answer-options{border:0;gap:8px;margin:0;padding:0;display:grid}.lesson-answer-options label{border:1px solid var(--course-line);cursor:pointer;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-block-size:48px;padding:10px 13px;display:grid}.lesson-answer-options label:has(input:checked){border-color:var(--course-accent);background:color-mix(in srgb, var(--course-accent) 9%, transparent)}.lesson-answer-options input{block-size:20px;inline-size:20px}.lesson-check-card form>.btn{justify-self:start;min-block-size:48px;min-inline-size:138px}.lesson-feedback{min-block-size:0;margin-block-start:15px;padding:0}.lesson-feedback:not(:empty){border:1px solid var(--course-line);border-radius:13px;padding:13px 15px}.lesson-feedback.is-correct{border-color:color-mix(in srgb, var(--course-success) 58%, var(--course-line));background:color-mix(in srgb, var(--course-success) 8%, transparent)}.lesson-feedback.is-retry{border-color:color-mix(in srgb, var(--course-warning) 58%, var(--course-line));background:color-mix(in srgb, var(--course-warning) 8%, transparent)}.lesson-feedback p{color:var(--course-muted);margin:4px 0 0}.lesson-feedback small{color:var(--course-muted);margin-block-start:6px;display:block}.lesson-complete-card{border-color:color-mix(in srgb, var(--course-success) 52%, var(--course-line));background:color-mix(in srgb, var(--course-success) 8%, var(--course-panel));align-items:flex-start;gap:15px;display:flex}.lesson-complete-card>i{color:var(--course-success);font-size:1.8rem}.lesson-complete-card h3{margin:0}.lesson-complete-card p{color:var(--course-muted);margin:5px 0 0}.lesson-check-error{border-color:color-mix(in srgb, var(--course-warning) 52%, var(--course-line))}.lesson-check-error p{color:var(--course-muted)}@media (max-width:900px){.lesson-focus-grid{grid-template-columns:1fr}}@media (max-width:720px){:where(.learn-v3-shell,.lesson-v3-shell){padding:12px}.lesson-step{scroll-snap-align:center;min-inline-size:94px}}@media (max-width:560px){.lesson-vocab-grid,.lesson-discover{grid-template-columns:1fr}.lesson-ai-handoffs{grid-template-columns:1fr;display:grid}.lesson-ai-handoffs .btn,.lesson-check-card form>.btn{inline-size:100%}}@media (max-width:390px){.lesson-content-card,.lesson-check-card,.lesson-public-questions,.lesson-complete-card{padding:18px 15px}}@media (max-width:320px){:where(.learn-v3-shell,.lesson-v3-shell){padding-inline:8px}.lesson-reading-text,.lesson-transcript{font-size:1rem}}@media (prefers-reduced-motion:reduce){:where(.learn-v3-shell,.lesson-v3-shell) *,:where(.learn-v3-shell,.lesson-v3-shell) :before,:where(.learn-v3-shell,.lesson-v3-shell) :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){:where(.learn-v3-hero,.learn-v3-tabs,.learn-level-chip,.learn-course-head,.learn-library-head,.learn-chapter,.learn-lesson-card,.learn-library-filters,.learn-library-card,.lesson-v3-topbar,.lesson-step,.lesson-can-do-banner,.lesson-preview-note,.lesson-content-card,.lesson-check-card,.lesson-public-questions,.lesson-complete-card,.lesson-v3-footer){color:canvastext;box-shadow:none;background:canvas;border-color:canvastext}}body.app-shell .app-bottombar-2026 .bb-more{min-inline-size:0;margin:0;position:relative}body.app-shell .app-bottombar-2026 .bb-more>summary{cursor:pointer;min-block-size:52px;inline-size:100%;min-inline-size:0;list-style:none}body.app-shell .app-bottombar-2026 .bb-more>summary::-webkit-details-marker{display:none}body.app-shell .app-bottombar-2026 .bb-more[open]>summary,body.app-shell .app-bottombar-2026 .bb-more.is-active>summary{color:var(--text-1)}body.app-shell .app-bottombar-2026 .bb-more[open]>summary i,body.app-shell .app-bottombar-2026 .bb-more.is-active>summary i{color:var(--brand-3);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--brand-3) 55%, transparent))}body.app-shell .app-bottombar-2026 .bb-more-menu{z-index:5;border:1px solid var(--theme-control-border-soft,#94a3b861);background:color-mix(in srgb, var(--app-panel-strong,#10182e) 94%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;gap:4px;inline-size:max-content;min-inline-size:min(196px,100vw - 24px);max-inline-size:calc(100vw - 24px);padding:8px;display:grid;position:absolute;inset-block-end:calc(100% + 12px);inset-inline-end:0;box-shadow:0 20px 52px #02061761}body.app-shell .app-bottombar-2026 .bb-more-link{min-block-size:44px;color:var(--text-1);white-space:normal;border-radius:12px;align-items:center;gap:11px;padding:9px 12px;text-decoration:none;display:flex}body.app-shell .app-bottombar-2026 .bb-more-link:hover,body.app-shell .app-bottombar-2026 .bb-more-link:focus-visible,body.app-shell .app-bottombar-2026 .bb-more-link.active{background:color-mix(in srgb, var(--brand-3) 14%, transparent)}body.app-shell .app-bottombar-2026 .bb-more-link i{inline-size:20px;color:var(--brand-3);text-align:center}@media (max-width:860px){body.app-shell[data-course-v3=enabled] .app-bottombar-2026{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 62px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}}@media (min-width:861px){body.app-shell .app-bottombar-2026 .bb-more{display:none}}@media (forced-colors:active){body.app-shell .app-bottombar-2026 .bb-more-menu{box-shadow:none;background:canvas;border-color:canvastext}body.app-shell .app-bottombar-2026 .bb-more-link{color:linktext}}