#app-container{position:relative}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-container{background:#fff;border-radius:16px;width:100%;font-family:Inter,sans-serif;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h2{color:#0f172a;text-shadow:none;border:none;margin:0;font-family:Inter,sans-serif;font-size:1.125rem;font-weight:700}.modal-form{flex-direction:column;gap:.375rem;padding:1.5rem;display:flex}.modal-form label,.form-label{color:#374151;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500}.modal-form input,.modal-form select,.modal-form textarea{color:#0f172a;box-sizing:border-box;width:100%;box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.5rem;padding:.625rem .875rem;font-family:Inter,sans-serif;font-size:.925rem;transition:border-color .15s,box-shadow .15s}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{background:#fff;border-color:#4f46e5;outline:none;box-shadow:0 0 0 3px #4f46e526}.modal-form input::placeholder,.modal-form textarea::placeholder{color:#94a3b8}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.btn-submit,.btn-primary{color:#fff;cursor:pointer;box-shadow:none;background:#4f46e5;border:none;border-radius:8px;align-items:center;gap:.375rem;margin:0;padding:.575rem 1.5rem;font-family:Inter,sans-serif;font-size:.925rem;font-weight:600;transition:background .15s;display:inline-flex}.btn-submit:hover,.btn-primary:hover{box-shadow:none;color:#fff;background:#4338ca;transform:none}.btn-submit:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-cancel,.btn-secondary{color:#374151;cursor:pointer;box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:.375rem;margin:0;padding:.575rem 1.25rem;font-family:Inter,sans-serif;font-size:.925rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn-cancel:hover,.btn-secondary:hover{box-shadow:none;background:#f8fafc;border-color:#cbd5e1;transform:none}.form-error{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.625rem .875rem;font-family:Inter,sans-serif;font-size:.875rem}.empty-state{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;display:flex}.empty-icon{opacity:.5;animation:3s ease-in-out infinite empty-float}.empty-title{color:#1e293b;margin:0;font-family:Inter,sans-serif;font-size:1.125rem;font-weight:700}.empty-hint{color:#64748b;max-width:320px;margin:0;font-family:Inter,sans-serif;font-size:.875rem}@keyframes empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.mtag{white-space:nowrap;border-radius:99px;align-items:center;padding:.15rem .45rem;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;display:inline-flex}.mtag-grammar{color:#5b21b6;background:#ede9fe}.mtag-vocab{color:#92400e;background:#fef3c7}.mtag-ability{color:#166534;background:#dcfce7}.mtag-course{color:#1e40af;background:#dbeafe}.page-header .section-title{background:linear-gradient(135deg, var(--section-color,#7c3aed), var(--section-color-2,#ec4899));-webkit-text-fill-color:transparent;letter-spacing:-.4px;-webkit-background-clip:text;background-clip:text;margin:0 0 .25rem;font-family:Inter,sans-serif;font-size:1.75rem;font-weight:800}.audio-shell,.course-shell,.exercise-shell{flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}.audio-sticky-header,.course-sticky-header{z-index:20;align-items:center;gap:.875rem;display:flex;position:sticky;top:0}.back-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex}.sticky-title{min-width:0}.sticky-eyebrow{text-transform:uppercase;margin:0;line-height:1}.sticky-title h1{white-space:nowrap;text-overflow:ellipsis;margin:.15rem 0 0;overflow:hidden}.audio-main,.course-main{flex-direction:column;flex:1;display:flex}.sf-btn-primary,.sub-btn-primary,.cs-cta{cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:700}.sf-btn__inner,.sub-btn__inner,.cs-cta__inner{align-items:center;display:flex;position:relative;overflow:hidden}.sf-btn__label,.sub-btn__label,.cs-cta__label{background:var(--color-brand);color:#000;height:100%;transition:transform var(--dur-slower) cubic-bezier(.625, .05, 0, 1);flex:1;justify-content:center;align-items:center;padding:0 1.25rem;display:flex}.sf-btn__arrow,.sub-btn__arrow,.cs-cta__arrow{width:var(--arrow-w);height:var(--arrow-w);background:var(--color-brand);color:#000;transition:transform var(--dur-slower) cubic-bezier(.625, .05, 0, 1);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sf-btn__arrow--l,.sub-btn__arrow--l,.cs-cta__arrow--l{transform-origin:0;position:absolute;left:0;transform:rotate(-45deg)scale(0)}.sf-btn__arrow--r,.sub-btn__arrow--r,.cs-cta__arrow--r{transform-origin:100%;position:absolute;right:0}.sub-back,.cs-back{cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-fg-muted);transition:color var(--dur-fast);background:0 0;border:none;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.sub-back:hover,.cs-back:hover{color:var(--color-fg)}.login-page{background:var(--color-bg,#141314);justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.login-watermark{opacity:.03;color:var(--color-fg,#eee);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(120px,20vw,260px);font-weight:300;line-height:1;font-family:var(--font-mono,monospace);animation:.9s ease-out both login-watermark-in;position:absolute;bottom:-.15em;right:-.05em}.login-card{border:1px solid var(--color-border,#ffffff14);background:var(--color-bg-surface,var(--color-bg,#141314));z-index:1;width:100%;max-width:380px;animation:login-card-in .4s var(--ease-out-quart,cubic-bezier(.25, 1, .5, 1)) both;padding:40px 36px;position:relative}@keyframes login-card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes login-watermark-in{0%{opacity:0}to{opacity:.03}}@media (prefers-reduced-motion:reduce){.login-card,.login-watermark{animation:none}}.login-brand{margin-bottom:2rem}.login-brand-mark{font-family:var(--font-mono,monospace);font-size:var(--text-accent-lg,1.125rem);color:var(--color-brand,#fd551d);text-transform:uppercase;letter-spacing:.1em;margin:0;line-height:1}.login-brand-sub{font-family:var(--font-mono,monospace);color:var(--color-fg-muted,#818081);letter-spacing:.05em;margin:4px 0 0;font-size:.7rem}.login-heading{font-size:var(--text-h3,1.75rem);color:var(--color-fg,#eee);text-transform:uppercase;font-weight:var(--font-weight-bold,700);margin:0 0 .375rem}.login-desc{color:var(--color-fg-muted,#818081);margin:0 0 1.75rem;font-size:.78rem;line-height:1.6}.social-btns{gap:8px;display:flex}.social-btn{border:1px solid var(--color-border,#ffffff1f);color:var(--color-fg,#eee);font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:border-color .2s, background .2s, transform .15s var(--ease-out-back,ease);background:0 0;border-radius:0;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:11px 12px;font-size:.72rem;display:flex}.social-btn:hover{border-color:var(--color-fg-muted);background:var(--color-hover-bg,#ffffff0a)}.social-btn:active{transform:scale(.96)}.login-divider{color:var(--color-fg-muted,#818081);font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.65rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--color-border,#ffffff14);flex:1;height:1px}.login-form{flex-direction:column;gap:1rem;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-label{font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.06em;color:var(--color-fg-muted,#818081);font-size:.65rem}.login-input{width:100%;caret-color:var(--color-brand,#fd551d);box-sizing:border-box;transition:border-color .2s,box-shadow .2s;border:1px solid var(--color-border,#ffffff1f)!important;color:var(--color-fg,#eee)!important;font-family:var(--font-mono,monospace)!important;box-shadow:none!important;background:0 0!important;border-radius:0!important;outline:none!important;padding:10px 12px!important;font-size:.78rem!important}.login-input:hover{border-color:var(--color-fg-muted,#ffffff47)!important}.login-input:focus{border-color:var(--color-brand,#fd551d)!important;box-shadow:0 0 0 2px #fd551d33!important}.login-input::placeholder{color:var(--color-fg-muted,#818081);opacity:.5}.login-input:-webkit-autofill{caret-color:var(--color-brand,#fd551d);-webkit-box-shadow:inset 0 0 0 1000px var(--color-bg-surface,#141314)!important;-webkit-text-fill-color:var(--color-fg,#eee)!important}.login-input:-webkit-autofill:hover{caret-color:var(--color-brand,#fd551d);-webkit-box-shadow:inset 0 0 0 1000px var(--color-bg-surface,#141314)!important;-webkit-text-fill-color:var(--color-fg,#eee)!important}.login-input:-webkit-autofill:focus{caret-color:var(--color-brand,#fd551d);-webkit-box-shadow:inset 0 0 0 1000px var(--color-bg-surface,#141314)!important;-webkit-text-fill-color:var(--color-fg,#eee)!important}.login-input--readonly{opacity:.5;cursor:not-allowed}.login-input-wrap{position:relative}.login-input-wrap .login-input{padding-right:40px!important}.pw-toggle{width:40px;height:100%;color:var(--color-fg-muted,#818081);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:flex;position:absolute;top:0;right:0}.pw-toggle:hover{color:var(--color-fg,#eee)}.login-error-text{font-family:var(--font-mono,monospace);color:#ff6868;margin:0;font-size:.68rem}.primary-btn{cursor:pointer;font-family:var(--font-mono,monospace);text-transform:uppercase;letter-spacing:.06em;width:100%;transition:transform .15s var(--ease-out-back,ease);background:0 0;border:none;outline:none;justify-content:center;align-items:center;margin-top:.5rem;padding:0;font-weight:500;display:inline-flex}.primary-btn:not(:disabled):active{transform:scale(.96)}.primary-btn:disabled{opacity:.32;pointer-events:none}.primary-btn--loading:disabled{opacity:.75}.primary-btn-inner{align-items:center;gap:6px;width:100%;display:flex;position:relative}.primary-btn-icon-left{background:var(--color-brand,#fd551d);color:#000;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .7s cubic-bezier(.76,0,.24,1);display:flex;transform:rotate(-45deg)scale(0)}.primary-btn-label{background:var(--color-brand,#fd551d);color:#000;flex:1;justify-content:center;align-items:center;height:44px;padding:0 12px;font-size:.78rem;transition:transform .7s cubic-bezier(.76,0,.24,1);display:flex;transform:translate(-50px)}.primary-btn-icon-right{background:var(--color-brand,#fd551d);color:#000;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .7s cubic-bezier(.76,0,.24,1);display:flex;position:absolute;right:0;transform:rotate(0)scale(1)}.primary-btn:not(:disabled):hover .primary-btn-icon-left{transform:rotate(0)scale(1)}.primary-btn:not(:disabled):hover .primary-btn-label{transform:translate(0)}.primary-btn:not(:disabled):hover .primary-btn-icon-right{transform:rotate(-45deg)scale(0)}.login-footer{text-align:center;font-family:var(--font-mono,monospace);color:var(--color-fg-muted,#818081);text-transform:uppercase;letter-spacing:.05em;margin-top:1.5rem;font-size:.68rem}.login-footer a{color:var(--color-brand,#fd551d);margin:-14px -4px;padding:14px 4px;font-weight:500;text-decoration:none;display:inline-block}.login-footer a:hover{text-decoration:underline}.fade-enter-active,.fade-leave-active{transition:opacity .22s}.fade-enter-from,.fade-leave-to{opacity:0}html{overflow-x:hidden}body{background-color:var(--color-bg);color:var(--color-fg);font-feature-settings:"cv02", "cv03", "cv04", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .25s,color .25s;overflow-x:hidden}
