:root{color-scheme:dark;--bg-dark: #101419;--bg-gradient: none;--glass-bg: #181e26;--glass-border: #303945;--glass-highlight: #3c4857;--text-main: #edf1f7;--text-muted: #a2afbf;--accent-base: #94bcff;--accent-glow: #b3d0ff;--success: #34d399;--failure: #f87171;--surface-1: #181e26;--surface-2: #222b36;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .5rem;--radius-md: 1rem;--radius-lg: 1.5rem;--radius-full: .7rem;--transition-fast: .15s ease-out;--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100vh;margin:0;font-family:var(--font-family);background-color:var(--bg-dark);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}button:disabled,input:disabled{cursor:not-allowed;opacity:.55}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-guest:focus-visible{outline:2px solid var(--accent-glow);outline-offset:3px}ul,ol{list-style:none}a{color:inherit;text-decoration:none}.glass-panel{background:var(--glass-bg);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--glass-border);box-shadow:none;border-radius:var(--radius-md);transition:border-color var(--transition-normal),transform var(--transition-normal)}.glass-panel:hover{border-color:var(--glass-highlight)}.btn-primary{background:var(--accent-base);color:#101b2b;padding:.75rem 1.5rem;border-radius:var(--radius-full);font-weight:600;letter-spacing:0;box-shadow:none;transition:transform var(--transition-fast),box-shadow var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover{background:#b3d0ff;box-shadow:none}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-main);padding:.75rem 1.5rem;border-radius:var(--radius-full);font-weight:500;transition:all var(--transition-normal)}.btn-secondary:hover{background:var(--glass-highlight);border-color:var(--text-muted)}.btn-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--accent-glow);transition:all var(--transition-fast)}.btn-icon:hover{background:#a855f71a;border-color:var(--accent-base);color:#fff;transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .18s ease-out}@keyframes pulse-glow{0%{box-shadow:0 0 #a855f766}70%{box-shadow:0 0 0 10px #a855f700}to{box-shadow:0 0 #a855f700}}.pulse-primary{animation:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:focus-visible,[role=button]:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-glow);outline-offset:3px}button,input,select{font-size:inherit}.dashboard{width:100%;max-width:800px;margin:0 auto}.dashboard-hero{text-align:center;margin-bottom:2.5rem}.dashboard-title{font-size:2.75rem;font-weight:800;margin-bottom:1.5rem;background:linear-gradient(to right,#fafafa,#d8b4fe);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.dashboard-stats{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:1.25rem}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}.stat-value{order:-1;font-size:1.75rem;font-weight:700;color:var(--text-main)}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.stat-divider{width:1px;height:2.5rem;background:var(--glass-border)}.dashboard-overall-progress{max-width:400px;margin:0 auto;display:flex;align-items:center;gap:.75rem}.overall-progress-bar{flex:1;height:6px;background:#ffffff0f;border-radius:var(--radius-full);overflow:hidden}.overall-progress-fill{height:100%;background:linear-gradient(90deg,#a855f7,#6366f1);border-radius:var(--radius-full);transition:width var(--transition-slow)}.overall-progress-label{font-size:.8rem;color:var(--text-muted);font-weight:500;white-space:nowrap}.dashboard-cta{width:100%;padding:2rem;margin-bottom:2.5rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;text-align:left;transition:border-color var(--transition-normal),transform var(--transition-fast);position:relative;overflow:hidden}.dashboard-cta:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(168,85,247,.12),transparent 70%);opacity:0;transition:opacity var(--transition-normal)}.dashboard-cta:hover:before{opacity:1}.dashboard-cta:hover{border-color:#a855f766;transform:translateY(-2px)}.dashboard-cta:focus-visible,.refresh-card:focus-visible{outline:2px solid var(--accent-glow);outline-offset:3px}.dashboard-all-done{flex-direction:column;text-align:center;cursor:default}.dashboard-all-done:hover{transform:none}.all-done-icon{font-size:3rem;margin-bottom:.5rem}.cta-content{display:flex;align-items:center;gap:1.5rem;position:relative;z-index:1;min-width:0}.cta-progress-ring{position:relative;width:64px;height:64px;flex-shrink:0}.cta-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.cta-ring-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--accent-glow)}.cta-text{min-width:0}.cta-module-level{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-glow);font-weight:700;margin-bottom:.25rem}.cta-module-title{font-size:1.35rem;font-weight:700;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cta-module-desc{font-size:.9rem;color:var(--text-muted);line-height:1.4}.cta-resume-hint{display:inline-block;margin-top:.35rem;font-size:.8rem;color:var(--accent-glow);font-weight:500}.cta-button{flex-shrink:0;position:relative;z-index:1;white-space:nowrap}.dashboard-section{margin-bottom:2.5rem}.section-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.section-icon{font-size:1.25rem}.refresh-grid{display:flex;flex-direction:column;gap:.75rem}.refresh-card{width:100%;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;text-align:left;transition:border-color var(--transition-fast),transform var(--transition-fast)}.refresh-card:hover{border-color:#a855f74d;transform:translate(4px)}.refresh-card-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.refresh-level{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.refresh-title{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.refresh-confidence{font-size:.8rem;color:#fbbf24}.completed-badge{font-size:.8rem;color:var(--success);font-weight:500}.completed-card:hover{border-color:#34d3994d}.refresh-btn{flex-shrink:0;padding:.5rem 1rem;font-size:.85rem}.dashboard-browse{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;padding-top:.5rem;padding-bottom:2rem}.dashboard-test-btn{width:100%;padding:1.1rem 1.25rem;display:flex;align-items:center;gap:1rem;border-color:#2dd4bf40;background:linear-gradient(120deg,#2dd4bf1a,#a855f712);text-align:left;transition:transform var(--transition-fast),border-color var(--transition-fast)}.dashboard-test-btn:hover{transform:translateY(-2px);border-color:#2dd4bf80}.dashboard-test-btn:focus-visible{outline:2px solid #5eead4;outline-offset:3px}.dashboard-test-icon{width:2.75rem;height:2.75rem;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#2dd4bf24;color:#5eead4;font-size:1.35rem;font-weight:800}.dashboard-test-copy{min-width:0;flex:1;display:grid;gap:.15rem}.dashboard-test-copy strong{color:var(--text-main)}.dashboard-test-copy span{color:var(--text-muted);font-size:.85rem}.browse-all-btn{padding:.8rem 2rem;font-size:1rem}@media(max-width:600px){.dashboard-title{font-size:2rem}.dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.stat-item{padding:.75rem .5rem;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#ffffff06}.stat-divider{display:none}.stat-value{font-size:1.35rem}.dashboard-cta{flex-direction:column;align-items:stretch;text-align:center}.cta-content{flex-direction:column}.cta-module-title{white-space:normal}.cta-module-level,.refresh-level{display:none}.dashboard-test-btn{align-items:flex-start;flex-wrap:wrap}.dashboard-test-btn .btn-primary{width:100%;text-align:center}}.dashboard-pro-banner{width:100%;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex;align-items:center;gap:.9rem;text-align:left;border-color:#a855f73d;background:linear-gradient(120deg,#a855f71f,#6366f10d)}.dashboard-pro-banner:hover{transform:translateY(-2px);border-color:#d8b4fe6b}.dashboard-pro-icon{width:2.5rem;height:2.5rem;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#a855f729;color:var(--accent-glow)}.dashboard-pro-copy{min-width:0;flex:1;display:grid}.dashboard-pro-copy span{color:var(--text-muted);font-size:.85rem}.cta-pro-label{display:inline-flex;width:fit-content;padding:.2rem .55rem;margin-bottom:.3rem;border-radius:var(--radius-full);background:#a855f724;color:var(--accent-glow);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}@media(max-width:600px){.dashboard-pro-banner{align-items:flex-start;flex-wrap:wrap}.dashboard-pro-banner .btn-primary{margin-left:3.4rem}}.module-selector{width:100%;max-width:1000px;margin:0 auto}.module-header{text-align:center;margin-bottom:3rem}.module-header-top{display:flex;justify-content:flex-start;margin-bottom:1rem;min-height:36px}.module-main-title{font-size:3rem;font-weight:800;margin-bottom:1rem;background:linear-gradient(to right,#fafafa,#d8b4fe);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.module-subtitle{color:var(--text-muted);font-size:1.125rem}.practice-mode-panel{margin:1.5rem auto 0;width:min(560px,100%);padding:1rem}.practice-mode-title{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:700;margin-bottom:.75rem}.practice-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.practice-mode-btn{border-radius:var(--radius-full);border:1px solid var(--glass-border);background:#ffffff0a;color:var(--text-muted);font-size:.95rem;font-weight:600;padding:.65rem 1rem;transition:all var(--transition-fast)}.practice-mode-btn:hover{border-color:var(--glass-highlight);color:var(--text-main)}.practice-mode-btn.active{background:linear-gradient(135deg,#a855f7e6,#8b5cf6e6);color:#fff;border-color:#d8b4fea6;box-shadow:0 6px 18px #a855f759}.module-discovery{margin-bottom:2rem;padding:1.25rem}.module-search-wrapper{position:relative}.module-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.module-search{width:100%;min-height:50px;padding:.8rem 3rem;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#09090b8c;color:var(--text-main);font:inherit;font-size:1rem;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.module-search-shortcut{position:absolute;right:1rem;top:50%;transform:translateY(-50%);min-width:1.6rem;padding:.1rem .4rem;border:1px solid var(--glass-border);border-bottom-color:var(--glass-highlight);border-radius:.35rem;background:#ffffff0a;color:var(--text-muted);font:600 .75rem/1.3 var(--font-family);text-align:center;pointer-events:none}.module-search::placeholder{color:#71717a}.module-search:focus{border-color:var(--accent-base);box-shadow:0 0 0 3px #a855f72e}.module-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}.module-filter{display:flex;flex-direction:column;gap:.4rem;text-align:left}.module-filter>span{color:var(--text-muted);font-size:.875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.module-filter select{width:100%;min-height:42px;padding:.6rem 2.25rem .6rem .8rem;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--surface-1);color:var(--text-main);font:inherit;cursor:pointer;outline:none}.module-filter select:focus-visible{border-color:var(--accent-base);box-shadow:0 0 0 3px #a855f72e}.module-results-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;color:var(--text-muted);font-size:.875rem}.module-results-summary strong{color:var(--text-main)}.module-clear-filters{color:var(--accent-glow);font-weight:600;text-decoration:underline;text-underline-offset:3px}.module-clear-filters:hover{color:#fff}.module-empty-state{padding:3rem 1.5rem;text-align:center}.module-empty-icon{display:block;color:var(--accent-glow);font-size:3rem;line-height:1;margin-bottom:1rem}.module-empty-state h2{font-size:1.4rem;margin-bottom:.5rem}.module-empty-state p{color:var(--text-muted);margin-bottom:1.25rem}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.module-card{width:100%;cursor:pointer;padding:2rem;display:flex;flex-direction:column;text-align:left;animation:fadeIn .5s ease-out forwards;opacity:0;position:relative;overflow:hidden}.module-card:focus-visible{outline:2px solid var(--accent-glow);outline-offset:3px}.module-card-content{display:flex;flex-direction:column;height:100%;position:relative;z-index:2}.module-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at top right,rgba(168,85,247,.15),transparent 70%);opacity:0;transition:opacity var(--transition-normal);z-index:1}.module-card:hover:before{opacity:1}.module-card-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:.5rem}.module-level{display:inline-block;padding:.25rem .75rem;background:#a855f733;color:var(--accent-glow);border-radius:var(--radius-full);font-size:.875rem;font-weight:600}.module-status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-completed{background:#34d39926;color:var(--success)}.status-refresh{background:#fbbf2426;color:#fbbf24}.status-in-progress{background:#a855f726;color:var(--accent-glow)}.module-title{font-size:1.5rem;font-weight:700;margin-bottom:.75rem}.module-description{color:var(--text-muted);margin-bottom:1rem;flex-grow:1;line-height:1.6}.module-progress-bar-wrapper{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.module-progress-bar{flex:1;height:4px;background:#ffffff0f;border-radius:var(--radius-full);overflow:hidden}.module-progress-fill{height:100%;background:linear-gradient(90deg,#a855f7,#6366f1);border-radius:var(--radius-full);transition:width var(--transition-slow)}.module-progress-fill.fill-complete{background:linear-gradient(90deg,#34d399,#10b981)}.module-progress-fill.fill-refresh{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.module-progress-label{font-size:.75rem;color:var(--text-muted);font-weight:600;min-width:2.5rem;text-align:right}.module-meta{display:flex;align-items:center;flex-wrap:wrap;margin-top:auto;gap:.5rem 1rem}.module-meta .module-card-action{margin-left:auto}.sentence-count{font-size:.875rem;color:var(--text-muted);font-weight:500}.sentence-count.puente-count{color:#5eead4}.story-card{border-left:3px solid rgba(251,191,36,.6)}.story-card:before{background:radial-gradient(circle at top right,rgba(251,191,36,.12),transparent 70%)!important}.story-card:hover{border-left-color:#fbbf24e6}.status-story{background:#fbbf2426;color:#fbbf24}.review-card{border-left:3px solid rgba(45,212,191,.6)}.review-card:before{background:radial-gradient(circle at top right,rgba(45,212,191,.12),transparent 70%)!important}.review-card:hover{border-left-color:#2dd4bfe6}.status-review{background:#2dd4bf26;color:#2dd4bf}.module-badges-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}@media(max-width:700px){.practice-mode-toggle{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr;gap:1.25rem}.module-filter-row{grid-template-columns:1fr}.module-card{padding:1.25rem}.module-level{display:inline-block}.module-card-top-row{justify-content:space-between;flex-wrap:wrap;margin-bottom:.5rem}.module-title{font-size:1.25rem}.module-main-title{font-size:2.25rem}.module-meta{flex-direction:column;align-items:flex-start;gap:.75rem}.module-card-action{width:100%}}.module-card.is-locked{border-color:#a855f724}.module-card.is-locked:hover{border-color:#a855f76b}.status-pro{background:#a855f721;border-color:#a855f747;color:var(--accent-glow)}.tutorial-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:tutorialFadeIn .4s ease-out}.tutorial-overlay:before{content:"";position:absolute;inset:0;background:#000000b3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:-1}.tutorial-overlay.has-spotlight:before{display:none}@keyframes tutorialFadeIn{0%{opacity:0}to{opacity:1}}.tutorial-spotlight-svg{position:fixed;inset:0;z-index:0;pointer-events:none}.tutorial-spotlight-ring{stroke:#a855f799;animation:spotlightPulse 2s ease-in-out infinite}@keyframes spotlightPulse{0%,to{stroke-opacity:.5;stroke-width:2}50%{stroke-opacity:1;stroke-width:3}}.tutorial-pointer{z-index:10001;pointer-events:none;filter:drop-shadow(0 0 10px rgba(168,85,247,.7))}.tutorial-pointer-svg{color:var(--accent-glow, #c084fc)}.tutorial-pointer.points-up{animation:pointerBounceUp 1.2s ease-in-out infinite}.tutorial-pointer.points-down{animation:pointerBounceDown 1.2s ease-in-out infinite}@keyframes pointerBounceUp{0%,to{transform:translateY(0) rotate(180deg)}50%{transform:translateY(8px) rotate(180deg)}}@keyframes pointerBounceDown{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(8px) rotate(0)}}.tutorial-card{position:relative;z-index:10002;pointer-events:auto;max-width:380px;width:100%;padding:1.75rem 1.5rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.9rem;border-radius:20px;background:linear-gradient(160deg,#191034f7,#0c0a16fa);border:1px solid rgba(168,85,247,.2);box-shadow:0 24px 80px #0009,0 0 0 1px #a855f71a,0 0 60px #a855f714,inset 0 1px #ffffff0d;animation:tutorialCardIn .5s cubic-bezier(.22,1,.36,1);overflow:hidden}@keyframes tutorialCardIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tutorial-card-border{position:absolute;inset:-1px;border-radius:21px;background:conic-gradient(from var(--border-angle, 0deg),rgba(168,85,247,.5),rgba(56,189,248,.3),rgba(168,85,247,.1),rgba(234,179,8,.3),rgba(168,85,247,.5));z-index:-1;animation:borderSpin 4s linear infinite;opacity:.7}@property --border-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes borderSpin{to{--border-angle: 360deg}}@supports not (background: conic-gradient(red,blue)){.tutorial-card-border{background:linear-gradient(135deg,#a855f766,#38bdf84d)}}.tutorial-skip{position:absolute;top:.6rem;right:.6rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#ffffff59;transition:all .2s ease;z-index:2}.tutorial-skip:hover{background:#ffffff1a;color:#fffc}.tutorial-progress-track{width:100%;height:3px;background:#ffffff0f;border-radius:2px;overflow:hidden}.tutorial-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-base, #a855f7),var(--accent-glow, #c084fc),#38bdf8);border-radius:2px;transition:width .4s cubic-bezier(.22,1,.36,1)}.tutorial-step{display:flex;align-items:flex-start;gap:1rem;width:100%;min-height:80px}.tutorial-step-enter{animation:tutorialStepIn .35s ease-out}.tutorial-step-exit{opacity:0;transform:translate(-8px);transition:all .2s ease-in}@keyframes tutorialStepIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.tutorial-icon-wrapper{width:52px;height:52px;min-width:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;position:relative;transition:background .3s ease,border-color .3s ease}.tutorial-icon{font-size:1.5rem;position:relative;z-index:1}.tutorial-accent-listen{background:#38bdf81f;border:1px solid rgba(56,189,248,.3)}.tutorial-accent-speak{background:#eab3081f;border:1px solid rgba(234,179,8,.3)}.tutorial-accent-text{background:#a855f71f;border:1px solid rgba(168,85,247,.3)}.tutorial-accent-word{background:#34d3991f;border:1px solid rgba(52,211,153,.3)}.tutorial-accent-translate{background:#fb923c1f;border:1px solid rgba(251,146,60,.3)}.tutorial-accent-flow{background:linear-gradient(135deg,#a855f72e,#38bdf826);border:1px solid rgba(168,85,247,.35)}.tutorial-step-text{display:flex;flex-direction:column;gap:.35rem;flex:1}.tutorial-title{font-size:1.1rem;font-weight:700;color:#fff;line-height:1.3;margin:0}.tutorial-body{font-size:.88rem;color:#fff9;line-height:1.6;margin:0}.tutorial-dots{display:flex;gap:6px}.tutorial-dot{width:7px;height:7px;border-radius:50%;background:#ffffff1f;border:none;padding:0;cursor:pointer;transition:all .3s ease}.tutorial-dot.active{width:22px;border-radius:4px;background:linear-gradient(90deg,var(--accent-base, #a855f7),var(--accent-glow, #c084fc));box-shadow:0 0 12px #a855f780}.tutorial-dot.done{background:#a855f766}.tutorial-dot:hover:not(.active){background:#ffffff40}.tutorial-counter{font-size:.7rem;color:#fff3;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.tutorial-nav{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.tutorial-btn-prev{padding:.5rem 1rem;font-size:.85rem;font-weight:500;color:#ffffff80;border-radius:10px;transition:all .2s ease;border:1px solid transparent}.tutorial-btn-prev:hover{color:#fff;background:#ffffff0f;border-color:#ffffff1a}.tutorial-btn-next{flex:1;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent-base, #a855f7) 0%,#7c3aed 100%);border:none;border-radius:10px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #a855f759;position:relative;overflow:hidden}.tutorial-btn-next:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.1) 50%,transparent 60%);transform:translate(-100%);animation:shimmerBtn 3s ease-in-out infinite}@keyframes shimmerBtn{0%{transform:translate(-100%)}40%{transform:translate(100%)}to{transform:translate(100%)}}.tutorial-btn-next:hover{transform:translateY(-1px);box-shadow:0 6px 24px #a855f780}.tutorial-btn-next:active{transform:translateY(0)}.tutorial-btn-skip-text{color:#ffffff59;font-size:.85rem;font-weight:500;padding:.5rem 1rem;border-radius:10px;transition:all .2s ease}.tutorial-btn-skip-text:hover{color:#ffffffb3;background:#ffffff0d}.tutorial-sparkles{position:absolute;inset:-8px;pointer-events:none;z-index:0}.tutorial-sparkle{position:absolute;width:4px;height:4px;border-radius:50%;background:#c084fc;animation:sparkleFloat 2.5s ease-in-out infinite;animation-delay:calc(var(--i) * .4s);opacity:0}.tutorial-sparkle:nth-child(1){top:10%;left:20%;background:#38bdf8}.tutorial-sparkle:nth-child(2){top:50%;left:90%;background:#c084fc}.tutorial-sparkle:nth-child(3){top:85%;left:15%;background:#fbbf24}.tutorial-sparkle:nth-child(4){top:20%;left:80%;background:#34d399}.tutorial-sparkle:nth-child(5){top:70%;left:70%;background:#fb923c}.tutorial-sparkle:nth-child(6){top:40%;left:5%;background:#c084fc}@keyframes sparkleFloat{0%{opacity:0;transform:scale(0) translateY(0)}20%{opacity:1;transform:scale(1) translateY(-4px)}40%{opacity:.8;transform:scale(.7) translateY(-10px)}to{opacity:0;transform:scale(0) translateY(-20px)}}.btn-help{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-muted);font-size:.9rem;font-weight:700;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.btn-help:hover{background:#a855f726;border-color:#a855f766;color:var(--accent-glow);transform:scale(1.08)}@media(max-width:600px){.tutorial-card{max-width:calc(100vw - 2rem);padding:1.5rem 1.25rem 1rem;gap:.75rem;border-radius:16px}.tutorial-card-anchored{width:calc(100vw - 2rem)!important;left:1rem!important}.tutorial-step{min-height:60px}.tutorial-icon-wrapper{width:44px;height:44px;min-width:44px;border-radius:12px}.tutorial-icon{font-size:1.25rem}.tutorial-title{font-size:1rem}.tutorial-body{font-size:.82rem}.tutorial-btn-next{font-size:.85rem;padding:.55rem 1rem}.tutorial-pointer{display:none}}.lesson-player{width:100%;max-width:800px;margin:0 auto}.lesson-player.ser-estar-choice-player{max-width:760px}.lesson-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;gap:1rem}.ser-estar-choice-player .lesson-header{margin-bottom:1rem}.ser-estar-choice-player .lesson-nav-bar{margin-top:1rem}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.lesson-progress{--lesson-progress: 0%;flex:1;min-width:180px;display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:.85rem;padding:.45rem .65rem;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-full);background:linear-gradient(180deg,#ffffff0b,#ffffff05);box-shadow:inset 0 1px #ffffff0a}.lesson-progress-copy{display:flex;align-items:baseline;gap:.4rem;min-width:116px;white-space:nowrap}.lesson-progress-step{color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lesson-progress-count,.lesson-progress-percent{color:var(--text-main);font-size:.86rem;font-weight:700;font-variant-numeric:tabular-nums}.lesson-progress-percent{min-width:2.65rem;text-align:right;color:#d8b4fef2}.lesson-progress-track{position:relative;height:12px;border-radius:var(--radius-full);background:linear-gradient(180deg,#ffffff17,#ffffff06),#ffffff0a;border:1px solid rgba(255,255,255,.07);overflow:visible}.lesson-progress-fill{position:absolute;inset:0 auto 0 0;width:var(--lesson-progress);min-width:0;border-radius:inherit;overflow:hidden;background:linear-gradient(90deg,#2dd4bfe6,#a855f7eb,#d8b4fefa);box-shadow:0 0 16px #a855f752;transition:width .52s cubic-bezier(.22,1,.36,1)}.lesson-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:translate(-100%);animation:progress-sheen 1.1s ease-out}.lesson-progress-marker{position:absolute;top:50%;left:var(--lesson-progress);width:18px;height:18px;border-radius:999px;background:#f5f3ff;border:3px solid rgba(168,85,247,.9);box-shadow:0 0 0 4px #a855f729,0 0 18px #d8b4fe8c;transform:translate(-50%,-50%);transition:left .52s cubic-bezier(.22,1,.36,1);z-index:2}.lesson-progress-pips{position:absolute;inset:0 8px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:1}.lesson-progress-pip{width:3px;height:3px;border-radius:999px;background:#fff3;transition:background var(--transition-normal),transform var(--transition-normal)}.lesson-progress-pip.is-filled{background:#ffffffbf;transform:scale(1.25)}@keyframes progress-sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}.lesson-content{padding:3rem 2rem;display:flex;flex-direction:column;align-items:center;gap:3rem}.lesson-finished{padding:3rem 2rem;text-align:center;max-width:680px;width:100%;margin:3rem auto 0;display:flex;flex-direction:column;align-items:center;gap:1.75rem}.finished-icon{font-size:4rem}.finished-title{font-size:2rem;font-weight:700}.finished-subtitle{color:var(--text-muted);font-size:1.125rem}.finished-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.vocab-section{width:100%;text-align:left}.vocab-heading{font-size:1.125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;text-align:center}.vocab-table-wrapper{max-height:360px;overflow-y:auto;border-radius:var(--radius-md);border:1px solid var(--glass-border);scrollbar-width:thin;scrollbar-color:var(--glass-highlight) transparent}.vocab-table{width:100%;border-collapse:collapse;font-size:1rem}.vocab-table thead th{position:sticky;top:0;background:var(--surface-2);color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding:.6rem 1rem;text-align:left;border-bottom:1px solid var(--glass-border)}.vocab-table tbody tr{border-bottom:1px solid rgba(255,255,255,.05);transition:background var(--transition-fast)}.vocab-table tbody tr:nth-child(2n){background:#ffffff05}.vocab-table tbody tr:hover{background:#a855f714}.vocab-table td{padding:.65rem 1rem;vertical-align:middle}.vocab-word{font-weight:600;color:var(--accent-glow);font-size:1.05rem;cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast)}.vocab-word:hover{color:var(--accent-base);text-decoration:underline}.vocab-meaning{color:var(--text-main)}.vocab-mnemonic{display:flex;flex-direction:column;gap:.2rem}.mnemonic-text{color:#fbbf24;font-size:.88rem;font-weight:500;line-height:1.4}.explanation-text{color:var(--text-muted);font-size:.82rem;font-style:italic;line-height:1.4}.audio-section{display:flex;justify-content:center;width:100%}.btn-play{position:relative;width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--accent-base) 0%,#7c3aed 100%);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px #a855f766;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.btn-play:hover{transform:scale(1.05);box-shadow:0 15px 40px #a855f780}.btn-play:active{transform:scale(.95)}.spanish-area{min-height:80px;display:flex;align-items:center;justify-content:center;width:100%}.btn-reveal{background:#ffffff0d;border:1px dashed var(--glass-highlight);padding:1rem 2rem;border-radius:var(--radius-md);color:var(--text-muted);font-size:1.125rem;transition:all var(--transition-fast);width:100%;max-width:300px}.btn-reveal:hover{background:#ffffff1a;color:var(--text-main);border-color:var(--accent-glow)}.spanish-sentence{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;font-size:2rem;font-weight:500;line-height:1.5;text-align:center}.word-container{position:relative}.spanish-word{padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:default;display:inline-block}.spanish-word.has-meaning{cursor:pointer;border-bottom:2px dotted rgba(255,255,255,.3)}.spanish-word.has-meaning:hover{background:#ffffff1a;border-bottom-color:var(--accent-glow)}.spanish-word.active{background:#a855f733;color:var(--accent-glow);border-bottom-color:var(--accent-base)}.word-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.5rem;background:var(--surface-2);border:1px solid var(--glass-highlight);padding:.4rem .8rem;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;color:#fff;white-space:nowrap;box-shadow:0 4px 15px #00000080;z-index:10;display:flex;align-items:center;gap:.5rem}.word-tooltip.has-mnemonic{flex-direction:column;align-items:flex-start;white-space:normal;min-width:220px;max-width:320px;padding:.6rem .9rem;gap:.35rem}.tooltip-meaning{font-weight:700;color:#fff;font-size:.95rem}.tooltip-mnemonic{font-weight:500;font-size:.82rem;color:#fbbf24;line-height:1.4;border-top:1px solid rgba(255,255,255,.08);padding-top:.3rem;width:100%}.tooltip-explanation{font-weight:400;font-size:.78rem;color:#fff9;font-style:italic;line-height:1.4}.word-tooltip:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:transparent transparent var(--surface-2) transparent}.tooltip-audio-btn{width:22px;height:22px;border-radius:50%;background:#a855f740;border:1px solid rgba(168,85,247,.5);color:var(--accent-glow);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:background var(--transition-fast);padding:0}.tooltip-audio-btn:hover{background:#a855f780}.translation-area{width:100%;text-align:center}.btn-text-reveal{color:var(--text-muted);font-size:.875rem;padding-bottom:.25rem;border-bottom:1px solid transparent;transition:all var(--transition-fast)}.btn-text-reveal:hover{color:var(--text-main);border-bottom-color:var(--text-main)}.english-translation{font-size:1.25rem;font-weight:500;color:var(--accent-glow);padding:1rem 1.5rem;background:#ffffff0d;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);display:inline-block;max-width:100%;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.ser-estar-panel{gap:1rem;padding:1.4rem 1.6rem;min-height:530px;justify-content:start;overflow:visible}.ser-estar-choice-player.is-compact .ser-estar-panel{min-height:390px;justify-content:center}.ser-estar-choice-player.is-compact .ser-estar-audio{margin-bottom:.25rem}.ser-estar-choice-player.is-compact .ser-estar-sentence{min-height:78px}.ser-estar-rule-badge{align-self:flex-start;padding:.4rem .85rem;border-radius:var(--radius-full);border:1px solid rgba(45,212,191,.35);background:#2dd4bf14;color:#7dd3fc;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.ser-estar-rule{width:100%;text-align:left;min-height:96px;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);background:#ffffff09}.ser-estar-rule h3{margin-bottom:.35rem;font-size:1.1rem;font-weight:750}.ser-estar-rule p{color:var(--text-muted);line-height:1.5}.ser-estar-audio{width:60px;height:60px}.ser-estar-sentence{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem;width:100%;min-height:88px;font-size:1.85rem;font-weight:650;line-height:1.35;text-align:center}.ser-estar-blank{display:inline-flex;align-items:baseline;justify-content:center;min-width:5.25rem;padding:.15rem .6rem .25rem;border-bottom:3px solid rgba(216,180,254,.7);color:var(--text-muted)}.ser-estar-blank.filled{color:var(--accent-glow);border-bottom-color:var(--accent-glow)}.ser-estar-answer-word{color:var(--accent-glow)}.ser-estar-clickable-answer{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.ser-estar-options{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.75rem;width:min(100%,360px)}.ser-estar-option{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:56px;padding:.8rem 1rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:#ffffff0e;color:var(--text-main);font-size:1.25rem;font-weight:800;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.ser-estar-option:hover:not(:disabled){transform:translateY(-2px);border-color:var(--glass-highlight);background:#ffffff17}.ser-estar-option.correct{border-color:#34d399bf;background:#34d39924}.ser-estar-option.incorrect{border-color:#f87171bf;background:#f8717124}.ser-estar-feedback{display:flex;flex-direction:column;gap:.35rem;width:100%;min-height:86px;padding:.8rem 1rem;border-radius:var(--radius-md);line-height:1.5}.ser-estar-feedback-slot{width:100%;min-height:86px;opacity:0;visibility:hidden}.ser-estar-feedback-slot.is-visible{opacity:1;visibility:visible}.ser-estar-feedback-slot:not(.is-visible) .ser-estar-feedback{border-color:transparent;background:transparent}.ser-estar-feedback.correct{border:1px solid rgba(52,211,153,.35);background:#34d39914}.ser-estar-feedback.incorrect{border:1px solid rgba(248,113,113,.35);background:#f8717114}.ser-estar-feedback span,.ser-estar-translation-reason{color:var(--text-muted)}.ser-estar-translation-reason{max-width:560px;margin:.25rem auto 0;line-height:1.5}.lesson-nav-bar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem;padding:0 .5rem}.btn-nav-next,.btn-nav-secondary,.btn-nav-mark{flex-shrink:0}.grammar-intro-panel{border:1px solid rgba(56,189,248,.25)!important;background:linear-gradient(135deg,#38bdf80d,#a855f70f)!important;align-items:flex-start!important;gap:1.25rem!important;max-height:65vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--glass-highlight) transparent}.grammar-intro-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem 1.2rem;border-radius:var(--radius-full, 50px);background:linear-gradient(135deg,#38bdf833,#a855f733);border:1px solid rgba(56,189,248,.35);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7dd3fc}.grammar-intro-icon{font-size:1.15rem}.grammar-intro-title{font-size:1.5rem;font-weight:700;color:var(--text-main);margin:0}.grammar-intro-body{font-size:1rem;line-height:1.7;color:var(--text-main);width:100%}.grammar-intro-body p{margin:.2em 0}.grammar-intro-body br{display:block;content:"";margin:.35em 0}.grammar-intro-body .grammar-bullet{padding-left:.5rem;color:#e0e7ff;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.95rem;line-height:1.6;margin:.15em 0}.story-intro-panel{border-color:#fbbf2440!important;background:linear-gradient(135deg,#fbbf240f,#a855f70a)!important}.story-intro-badge{background:linear-gradient(135deg,#fbbf2433,#eab30833)!important;border-color:#fbbf2459!important;color:#fbbf24!important}.review-intro-panel{border-color:#2dd4bf40!important;background:linear-gradient(135deg,#2dd4bf0f,#a855f70a)!important}.review-intro-badge{background:linear-gradient(135deg,#2dd4bf33,#14b8a633)!important;border-color:#2dd4bf59!important;color:#2dd4bf!important}.challenge-panel{border:1px solid rgba(234,179,8,.25)!important;background:linear-gradient(135deg,#eab3080a,#a855f70f)!important}.challenge-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem 1.2rem;border-radius:var(--radius-full, 50px);background:linear-gradient(135deg,#eab30833,#a855f733);border:1px solid rgba(234,179,8,.35);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fbbf24}.challenge-badge.pure-testing{background:linear-gradient(135deg,#22c55e2e,#0ea5e933);border-color:#22c55e66;color:#86efac}.challenge-icon{font-size:1.15rem}.challenge-prompt{text-align:center;display:flex;flex-direction:column;gap:.75rem}.challenge-instruction{font-size:1rem;color:var(--text-muted);margin:0}.challenge-english{font-size:1.85rem;font-weight:600;color:var(--text-main);line-height:1.4;margin:0;padding:.5rem 1rem}.challenge-fusion{width:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.65rem}.challenge-flip-token{min-height:54px;max-width:100%;padding:0;border:0;border-radius:.7rem;background:transparent;color:inherit}.challenge-flip-inner{min-height:inherit;display:grid;transition:transform .18s ease}.challenge-flip-face{grid-area:1 / 1;min-height:54px;padding:.7rem 1rem;display:flex;align-items:center;justify-content:center;border-radius:.7rem;border:1px dashed rgba(216,180,254,.34);white-space:normal;line-height:1.25;box-sizing:border-box;transition:opacity .18s ease}.challenge-flip-english{background:#ffffff0e;color:var(--text-main)}.challenge-flip-spanish{opacity:0;border-style:solid;border-color:#2dd4bf61;background:#2dd4bf1a;color:#99f6e4;font-weight:700}.challenge-flip-token:hover .challenge-flip-inner{transform:translateY(-2px)}.challenge-flip-token:hover .challenge-flip-english{border-color:#d8b4feb3;background:#a855f71a}.challenge-flip-token.is-flipped .challenge-flip-english{opacity:0}.challenge-flip-token.is-flipped .challenge-flip-spanish{opacity:1}.challenge-flip-token.is-flipped:hover .challenge-flip-spanish{border-color:#5eead4b8}.challenge-flip-token:focus-visible{outline:2px solid #5eead4;outline-offset:4px}.challenge-answer-area{display:flex;flex-direction:column;align-items:center;min-height:100px;justify-content:center;width:100%}.btn-reveal-answer{padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;letter-spacing:.03em;border-radius:var(--radius-md, 12px)}.challenge-answer{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.challenge-grammar-note{max-width:560px;margin:-.25rem 0 0;color:var(--text-muted);font-size:.88rem;line-height:1.5;text-align:center}.challenge-grammar-note strong{color:#fbbf24}.challenge-spanish{font-size:2rem;font-weight:600;color:var(--accent-glow);margin:0;padding:1rem 1.5rem;background:#a855f71a;border:1px solid rgba(168,85,247,.25);border-radius:var(--radius-md, 12px);text-align:center;width:100%;max-width:500px}.btn-play-answer{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.4rem;border-radius:var(--radius-full, 50px);background:linear-gradient(135deg,var(--accent-base, #a855f7) 0%,#7c3aed 100%);color:#fff;font-size:.95rem;font-weight:600;border:none;cursor:pointer;box-shadow:0 4px 15px #a855f759;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.btn-play-answer:hover{transform:scale(1.05);box-shadow:0 6px 22px #a855f780}.btn-play-answer:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.challenge-flip-inner,.challenge-flip-face{transition:none}}.btn-mark-later{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-muted);padding:.75rem 1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;transition:all var(--transition-fast);cursor:pointer}.btn-mark-later:hover{background:#a855f71a;color:var(--accent-glow);border-color:#a855f766}.review-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .9rem;border-radius:var(--radius-full);background:#a855f726;border:1px solid rgba(168,85,247,.3);color:var(--accent-glow);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:-1rem}.kbd-hint{display:inline-flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-bottom-width:3px;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:.7rem;font-weight:700;color:var(--text-muted);margin-left:.5rem;text-transform:uppercase;min-width:1.5rem;box-shadow:0 2px #0003;transition:all var(--transition-fast)}.btn-primary:hover .kbd-hint,.btn-secondary:hover .kbd-hint,.btn-mark-later:hover .kbd-hint,.btn-play-answer:hover .kbd-hint{color:var(--text-main);border-color:#fff6;background:#fff3}.btn-play .kbd-hint{position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);margin-left:0;background:var(--surface-2);border-color:var(--glass-border);color:var(--accent-glow);font-size:.65rem;padding:2px 6px;border-bottom-width:2px}@media(max-width:600px){.kbd-hint{display:none!important}.lesson-player{display:flex;flex-direction:column;min-height:calc(100dvh - 120px);padding-bottom:130px}.lesson-header{margin-bottom:.75rem;gap:.5rem;flex-shrink:0;flex-wrap:wrap}.lesson-progress{flex:1 0 100%;order:3;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;padding:.4rem .55rem}.lesson-progress-copy{min-width:0}.lesson-progress-track{grid-column:1 / -1;grid-row:2}.lesson-progress-percent{grid-column:2;grid-row:1}.lesson-progress-step{font-size:.68rem}.lesson-progress-count,.lesson-progress-percent{font-size:.78rem}.lesson-progress-marker{width:16px;height:16px}.lesson-content{padding:2.5rem 1rem 1.5rem;gap:1.5rem;flex:1;justify-content:flex-start}.btn-play{width:68px;height:68px}.btn-play svg{width:30px;height:30px}.spanish-sentence{font-size:1.4rem;gap:.3rem}.spanish-area{min-height:60px}.challenge-english{font-size:1.3rem;padding:.35rem .5rem}.challenge-fusion{gap:.45rem}.challenge-flip-token,.challenge-flip-face{min-height:46px}.challenge-flip-face{padding:.55rem .7rem;font-size:.9rem}.challenge-spanish{font-size:1.4rem;padding:.75rem 1rem}.challenge-answer-area{min-height:70px}.lesson-nav-bar{position:fixed;bottom:0;left:0;right:0;margin:0;padding:.6rem .75rem;padding-bottom:calc(.6rem + env(safe-area-inset-bottom,0px));background:#09090bf2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--glass-border);z-index:100;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.btn-nav-next{order:-1;width:100%;padding:.8rem 1.25rem;font-size:1rem}.btn-nav-secondary,.btn-nav-mark{flex:1 1 0;text-align:center;padding:.5rem;font-size:.82rem}.lesson-finished{max-height:calc(100dvh - 5.75rem);min-height:0;margin-top:0;padding:1rem .8rem;gap:.6rem;overflow:hidden}.finished-icon{font-size:2.2rem;line-height:1}.finished-title{font-size:1.35rem;line-height:1.15}.finished-subtitle{font-size:.9rem;line-height:1.35;margin:0}.finished-actions{width:100%;gap:.5rem;margin-top:.2rem;flex-shrink:0}.finished-actions .btn-secondary,.finished-actions .btn-primary{flex:1 1 0;min-width:0;padding:.7rem .65rem;font-size:.9rem}.english-translation{font-size:1.05rem;padding:.75rem 1rem;display:block;max-width:100%}.grammar-intro-panel{max-height:60vh;gap:1rem!important}.grammar-intro-title{font-size:1.2rem}.grammar-intro-body{font-size:.92rem;line-height:1.6}.grammar-intro-body .grammar-bullet{font-size:.88rem}.word-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:.35rem;width:fit-content;max-width:calc(100vw - 2rem);white-space:normal;z-index:200;word-wrap:break-word;overflow-wrap:break-word}.word-tooltip.has-mnemonic{min-width:180px;max-width:calc(100vw - 2rem);width:fit-content}.vocab-section{display:flex;flex-direction:column;min-height:0;overflow:hidden}.vocab-heading{margin-bottom:.45rem;font-size:.8rem;line-height:1.2;letter-spacing:.06em;flex-shrink:0}.vocab-table-wrapper{max-height:min(32dvh,210px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.vocab-table,.vocab-table thead,.vocab-table tbody,.vocab-table tr,.vocab-table td{display:block}.vocab-table thead{display:none}.vocab-table tbody{display:grid;gap:.4rem;padding:.45rem}.vocab-table tbody tr{display:grid;grid-template-columns:minmax(5rem,.8fr) minmax(0,1.2fr);gap:.2rem .65rem;padding:.55rem .6rem;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);background:#ffffff08}.vocab-table tbody tr:nth-child(2n){background:#ffffff0b}.vocab-table thead th,.vocab-table td{padding:0;font-size:.84rem;line-height:1.3}.vocab-word{font-size:.92rem;overflow-wrap:anywhere}.vocab-meaning{overflow-wrap:anywhere}.vocab-mnemonic{grid-column:1 / -1;font-size:.78rem;min-width:0;max-width:none;overflow-wrap:anywhere}.mnemonic-text,.explanation-text{font-size:.76rem;line-height:1.3}.self-assessment{padding:.85rem;max-width:100%}.assessment-title{font-size:1.05rem}.assessment-subtitle{margin-bottom:.75rem;line-height:1.35}.assessment-options{flex-direction:column;gap:.45rem}.assessment-btn{flex-direction:row;justify-content:center;padding:.6rem .8rem}.assessment-emoji{font-size:1.25rem}.resume-toast{font-size:.8rem;padding:.5rem 1rem}}.self-assessment{width:100%;max-width:500px;padding:1.5rem;border-radius:var(--radius-md);background:#ffffff08;border:1px solid var(--glass-border)}.assessment-title{font-size:1.3rem;font-weight:700;margin-bottom:.35rem;text-align:center}.assessment-subtitle{font-size:.85rem;color:var(--text-muted);margin-bottom:1.25rem;text-align:center}.assessment-options{display:flex;gap:.75rem;justify-content:center}.assessment-btn{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1rem 1.25rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:#ffffff08;cursor:pointer;transition:all var(--transition-fast);flex:1}.assessment-emoji{font-size:1.75rem}.assessment-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-align:center}.assessment-btn:hover{transform:translateY(-2px);border-color:var(--glass-highlight)}.assessment-confident:hover{background:#34d3991a;border-color:#34d39966}.assessment-confident:hover .assessment-label{color:var(--success)}.assessment-somewhat:hover{background:#fbbf241a;border-color:#fbbf2466}.assessment-somewhat:hover .assessment-label{color:#fbbf24}.assessment-needs-refresh:hover{background:#f871711a;border-color:#f8717166}.assessment-needs-refresh:hover .assessment-label{color:var(--failure)}.resume-toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);background:#a855f7e6;color:#fff;padding:.6rem 1.5rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;z-index:200;box-shadow:0 8px 24px #a855f766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lesson-player{overflow-x:hidden}.lesson-content{transform-origin:center center}.swipe-hint,.swipe-bookmark-indicator{display:none}@keyframes swipe-slide-in-right{0%{transform:translate(50%) rotate(3deg);opacity:0}to{transform:translate(0) rotate(0);opacity:1}}@keyframes swipe-slide-in-left{0%{transform:translate(-50%) rotate(-3deg);opacity:0}to{transform:translate(0) rotate(0);opacity:1}}@keyframes swipe-slide-in-below{0%{transform:translateY(40%) scale(.92);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media(max-width:600px){.swipe-hint{display:block;text-align:center;font-size:.875rem;font-weight:500;color:var(--text-muted);padding:.5rem 0;letter-spacing:.04em;flex-shrink:0}.swipe-bookmark-indicator{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#a855f7e0;color:#fff;padding:.6rem 1.25rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;z-index:300;box-shadow:0 6px 24px #a855f766;pointer-events:none}.lesson-content{touch-action:pan-y}.ser-estar-choice-player{min-height:calc(100dvh - 112px);padding-bottom:1rem}.ser-estar-choice-player .lesson-header{margin-bottom:.6rem}.ser-estar-panel{min-height:auto;flex:1;padding:.85rem;gap:.65rem;justify-content:center}.ser-estar-choice-player.has-rule-hint .ser-estar-panel{justify-content:flex-start}.ser-estar-audio{display:none}.ser-estar-rule{min-height:auto;padding:.65rem .75rem}.ser-estar-rule h3{font-size:1rem}.ser-estar-rule p{font-size:.88rem}.ser-estar-sentence{min-height:92px;padding:.35rem 0;font-size:clamp(1.25rem,5.6vw,1.75rem);gap:.25rem .35rem;line-height:1.45}.ser-estar-sentence .spanish-word{padding:.05rem .12rem;border-radius:6px}.ser-estar-sentence .word-container{display:inline-flex}.ser-estar-blank{min-width:4.4rem;padding-inline:.35rem}.ser-estar-options{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.ser-estar-option{min-height:52px;padding:.65rem .75rem;font-size:1.1rem}.ser-estar-feedback,.ser-estar-feedback-slot{min-height:112px}.ser-estar-feedback{padding:.75rem;font-size:.9rem}.swipe-hint.is-disabled{opacity:.55}}@media(max-width:600px){.app-container:has(.lesson-player){height:100dvh;min-height:0;padding:.5rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));overflow:hidden;animation:none;transform:none}.app-container:has(.lesson-player) .app-header{flex:0 0 auto;margin-bottom:.5rem}.app-container:has(.lesson-player) .main-content{flex:1;min-height:0}.app-container:has(.lesson-player) .app-footer{display:none}.lesson-player,.lesson-player.ser-estar-choice-player{height:100%;min-height:0;padding-bottom:0;display:flex;flex-direction:column;gap:.5rem;animation:none;overflow:hidden}.lesson-player .lesson-header{margin-bottom:0}.lesson-player .lesson-content{flex:1 1 0;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior-y:contain;padding:1rem;gap:1rem;scrollbar-width:thin}.lesson-content>*{flex-shrink:0}.lesson-player .lesson-nav-bar{position:static;flex:0 0 auto;margin:0;padding:.4rem 0 0;width:100%}.lesson-player .swipe-hint{display:none}.lesson-player .challenge-panel{gap:.75rem}.challenge-badge,.grammar-intro-badge{padding:.35rem .65rem;font-size:.8rem;letter-spacing:.03em}.challenge-instruction{font-size:.875rem}.challenge-english{padding:0}.challenge-answer-area{min-height:48px}.challenge-answer{gap:.5rem}.btn-reveal-answer{padding:.65rem 1rem;font-size:1rem}.btn-nav-secondary,.btn-nav-mark{min-height:40px;font-size:.875rem}}.settings-panel{width:100%;max-width:680px;margin:0 auto}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2.5rem;gap:1rem}.settings-title{font-size:2rem;font-weight:800;background:linear-gradient(to right,#fafafa,#d8b4fe);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:center;flex:1}.btn-reset{padding:.5rem 1rem;font-size:.85rem;font-weight:600;border-radius:var(--radius-full);background:#f871711f;border:1px solid rgba(248,113,113,.3);color:#fca5a5;transition:all var(--transition-fast)}.btn-reset:hover{background:#f8717138;border-color:#f8717180;color:#fecaca}.settings-list{display:flex;flex-direction:column;gap:1.25rem}.setting-card{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.billing-card{border-color:#a855f73d;background:linear-gradient(120deg,#a855f71a,#6366f10a)}.billing-upgrade-btn,.billing-manage-btn{color:var(--accent-glow);border-color:#a855f75c}.billing-error{color:#fca5a5;font-size:.8rem;margin-top:.5rem}.setting-info{display:flex;align-items:flex-start;gap:1rem}.setting-icon{font-size:1.75rem;flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center}.setting-name{font-size:1.1rem;font-weight:700;color:var(--text-main);margin-bottom:.25rem}.setting-desc{font-size:.875rem;color:var(--text-muted);line-height:1.5}.setting-options{display:flex;flex-wrap:wrap;gap:.5rem}.setting-option-btn{padding:.55rem 1.15rem;border-radius:var(--radius-full);font-size:.9rem;font-weight:600;border:1px solid var(--glass-border);background:#ffffff0a;color:var(--text-muted);transition:all var(--transition-fast)}.setting-option-btn:hover{border-color:var(--glass-highlight);color:var(--text-main);background:#ffffff14}.setting-option-btn.active{background:linear-gradient(135deg,#a855f7e6,#8b5cf6e6);color:#fff;border-color:#d8b4fea6;box-shadow:0 4px 14px #a855f74d}@media(max-width:600px){.settings-title{font-size:1.5rem}.setting-card{padding:1.25rem 1rem}.setting-icon{font-size:1.4rem;width:2rem;height:2rem}.setting-name{font-size:1rem}.setting-option-btn{padding:.5rem .9rem;font-size:.82rem}}.reset-progress-card{border-color:#f8717126!important}.reset-progress-btn{color:#fca5a5!important;border-color:#f871714d!important;background:#f8717114!important}.reset-progress-btn:hover{background:#f871712e!important;border-color:#f8717180!important;color:#fecaca!important}.reset-confirm{display:flex;flex-direction:column;gap:.75rem}.reset-confirm-text{font-size:.9rem;color:#fca5a5;font-weight:500}.reset-confirm-actions{display:flex;gap:.5rem;flex-wrap:wrap}.reset-confirm-yes{background:#f8717133!important;border-color:#f8717180!important;color:#fecaca!important}.reset-confirm-yes:hover{background:#f8717159!important}.settings-header{flex-wrap:wrap}.setting-option-btn{min-height:44px;font-size:.9rem}.setting-info>div:last-child{min-width:0}.onboarding-container{display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:100%;padding:.75rem}.onboarding-content{max-width:520px;width:min(100%,520px);padding:clamp(1rem,4vw,1.75rem);text-align:center;overflow:hidden}.onboarding-title{font-size:clamp(1.35rem,6vw,1.85rem);line-height:1.1;margin:0;color:var(--text-main)}.onboarding-intro{margin-bottom:1rem}.onboarding-intro p{max-width:390px;margin:.6rem auto 0;color:var(--text-muted);font-size:.9rem;line-height:1.5}.divider{display:flex;align-items:center;text-align:center;color:var(--text-muted);margin:.25rem 0}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid rgba(255,255,255,.2)}.divider span{padding:0 10px;font-size:.72rem;font-weight:700;letter-spacing:.08em}.choose-module-btn{background:#ffffff09;justify-content:center;color:var(--text-main);font-style:italic;opacity:.9}.choose-module-btn:hover{background:#ffffff14}.onboarding-selection{display:flex;flex-direction:column;gap:1rem}.btn-back{align-self:flex-start;background:none;border:none;color:var(--accent-glow);cursor:pointer;font-size:1rem;padding:0;display:flex;align-items:center}.btn-back:hover{text-decoration:underline}.level-options{display:flex;flex-direction:column;gap:.65rem}.level-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-main);min-height:48px;padding:.75rem 1rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:1rem;font-weight:700;text-align:left;transition:all .2s ease}.level-btn-copy{display:flex;flex-direction:column;gap:.15rem}.level-btn-copy small{color:var(--text-muted);font-size:.78rem;font-weight:500;line-height:1.35}.level-check{width:1.5rem;height:1.5rem;border:1px solid var(--glass-border);border-radius:50%;display:grid;place-items:center;color:transparent;flex:0 0 auto}.level-btn:hover{background:#ffffff1a;border-color:#d8b4fe59}.level-btn.active{background:linear-gradient(135deg,#a855f73d,#6366f129);border-color:#a855f7;box-shadow:0 10px 28px #a855f729}.level-btn.active .level-check{border-color:var(--accent-glow);background:var(--accent-base);color:#fff}.module-list{display:flex;flex-direction:column;gap:.5rem;max-height:min(42vh,320px);overflow-y:auto;margin-top:1rem;padding-right:.5rem}.module-list-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-main);padding:.85rem 1rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s ease;text-align:left;display:flex;flex-direction:column;gap:.2rem}.module-list-btn small{color:var(--text-muted);font-size:.75rem}.module-list-btn:hover{background:#ffffff1a}.module-list-btn.active{background:#a855f733;border-color:#a855f7}.module-list::-webkit-scrollbar{width:6px}.module-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:4px}.module-list::-webkit-scrollbar-thumb{background:#a855f780;border-radius:4px}.module-list::-webkit-scrollbar-thumb:hover{background:#a855f7cc}.start-journey-btn{width:100%;min-height:48px;padding:.75rem 1rem;font-size:1rem}@media(max-width:520px){.onboarding-container{align-items:stretch;padding:.25rem 0}.onboarding-content{width:100%;padding:1.25rem 1rem}.onboarding-intro{margin-bottom:1rem}.level-options{gap:.65rem}.level-btn,.start-journey-btn{min-height:52px;padding:.8rem 1rem}.module-selection h2{font-size:1.2rem}}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;width:100%}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-xl);width:100%;max-width:440px;text-align:left}.auth-heading{text-align:center;margin-bottom:var(--spacing-xs)}.auth-form h1{font-size:clamp(2rem,7vw,2.5rem);line-height:1.1;margin:.35rem 0 .65rem;background:linear-gradient(to right,#d8b4fe,#a855f7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-heading p{color:var(--text-muted);line-height:1.55}.auth-eyebrow{color:var(--accent-glow);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.auth-field{display:flex;flex-direction:column;gap:.4rem;color:var(--text-main);font-size:.85rem;font-weight:600}.auth-input{width:100%;min-height:48px;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-main);padding:.75rem 1rem;border-radius:var(--radius-md);font-family:inherit;font-size:1rem;transition:all var(--transition-fast);outline:none}.auth-input:focus{border-color:var(--accent-base);background:#ffffff1a;box-shadow:0 0 0 3px #a855f729}.auth-password{position:relative}.auth-password .auth-input{padding-right:4.5rem}.btn-password-toggle{position:absolute;top:50%;right:.45rem;transform:translateY(-50%);min-width:3.4rem;padding:.45rem;border-radius:var(--radius-sm);color:var(--accent-glow);font-size:.8rem;font-weight:700}.btn-password-toggle:hover{background:#a855f71f}.btn-password-toggle:focus-visible{outline:2px solid var(--accent-glow);outline-offset:1px}.auth-error{color:#fecaca;background:#f871711a;border:1px solid rgba(248,113,113,.25);border-radius:var(--radius-sm);padding:.7rem .85rem;font-size:.875rem;text-align:left}.auth-msg{color:#a7f3d0;background:#34d3991a;border:1px solid rgba(52,211,153,.25);border-radius:var(--radius-sm);padding:.7rem .85rem;font-size:.875rem;text-align:left}.auth-button-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.auth-guest{text-align:center;margin-top:.25rem}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.8rem;margin-bottom:.65rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--glass-border)}.btn-guest{background:transparent;border:none;color:var(--text-muted);font-size:.95rem;padding:.5rem 1rem;transition:color var(--transition-fast);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.btn-guest:hover{color:var(--text-main)}.auth-form .auth-guest-copy{color:var(--text-muted);font-size:.78rem;margin-top:.3rem}@media(max-width:520px){.auth-container{min-height:auto}.auth-form{padding:1.4rem 1.15rem}}.pricing-overlay{overflow-y:auto;align-items:flex-start;padding:max(1rem,4vh) 1rem}.pricing-modal{position:relative;width:min(100%,720px);padding:clamp(1.5rem,4vw,2.5rem);background:#120d1df5;border-color:#d8b4fe40;box-shadow:0 24px 80px #000000a6,0 0 80px #a855f71f}.pricing-close{position:absolute;top:.85rem;right:.85rem;width:2.4rem;height:2.4rem;border-radius:50%;color:var(--text-muted);font-size:1.6rem;line-height:1;transition:background var(--transition-fast),color var(--transition-fast)}.pricing-close:hover,.pricing-close:focus-visible{background:#ffffff14;color:var(--text-main);outline:none}.pricing-heading{text-align:center;max-width:560px;margin:0 auto 1.75rem}.pricing-eyebrow{display:inline-flex;padding:.3rem .75rem;border-radius:var(--radius-full);background:#a855f724;border:1px solid rgba(216,180,254,.22);color:var(--accent-glow);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.8rem}.pricing-heading h2{font-size:clamp(1.8rem,5vw,2.5rem);line-height:1.05;margin-bottom:.75rem}.pricing-heading p,.pricing-fine-print,.pricing-signin p{color:var(--text-muted)}.pricing-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem}.pricing-tier{padding:1.25rem;border-radius:var(--radius-md);background:#ffffff06;border:1px solid var(--glass-border)}.pricing-tier-pro{background:linear-gradient(145deg,#a855f726,#6366f112);border-color:#d8b4fe40}.pricing-tier-label{display:block;color:var(--text-muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.25rem}.pricing-tier strong{display:block;font-size:1.35rem;margin-bottom:.8rem}.pricing-tier ul{display:grid;gap:.5rem;color:#d4d4d8;font-size:.88rem}.pricing-tier li{display:flex;gap:.5rem;align-items:flex-start}.pricing-check{color:var(--success);font-weight:800}.pricing-plan-picker{display:grid;gap:.65rem;margin-bottom:1rem}.pricing-plan{width:100%;padding:.95rem 1rem;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:#ffffff06;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.pricing-plan:hover,.pricing-plan.is-selected{border-color:var(--accent-base);background:#a855f71a}.pricing-plan.is-selected{box-shadow:inset 3px 0 0 var(--accent-base)}.pricing-plan-copy,.pricing-plan-name{display:flex;align-items:center;gap:.55rem}.pricing-plan-copy{align-items:flex-start;flex-direction:column}.pricing-plan-name{font-weight:700}.pricing-save-badge{border-radius:var(--radius-full);padding:.2rem .5rem;background:#34d39924;color:#6ee7b7;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.pricing-equivalent{color:var(--text-muted);font-size:.8rem}.pricing-plan-price{font-size:1.1rem;font-weight:800;white-space:nowrap}.pricing-plan-price small{color:var(--text-muted);font-size:.72rem;font-weight:500}.pricing-upgrade{width:100%;min-height:3.15rem}.pricing-fine-print{margin-top:.75rem;text-align:center;font-size:.75rem}.pricing-error{padding:.7rem .85rem;margin-bottom:.85rem;border-radius:var(--radius-sm);background:#f871711a;border:1px solid rgba(248,113,113,.24);color:#fca5a5;font-size:.85rem}.pricing-signin{text-align:center;display:grid;gap:.8rem}.pricing-keep-free{color:var(--text-muted);font-weight:600;padding:.5rem}.pricing-keep-free:hover{color:var(--text-main)}@media(max-width:600px){.pricing-overlay{padding:0}.pricing-modal{min-height:100vh;border-radius:0;border-left:0;border-right:0}.pricing-comparison{grid-template-columns:1fr}.pricing-tier-free li:nth-child(n+2){display:none}}.legal-overlay{overflow-y:auto;align-items:flex-start;padding:max(1rem,4vh) 1rem}.legal-modal{width:min(100%,760px);max-height:92vh;overflow:hidden;background:#120d1dfa;display:flex;flex-direction:column}.legal-header{padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--glass-border)}.legal-header h2{font-size:1.5rem}.legal-close{position:static;flex:0 0 auto}.legal-content{padding:1.5rem;overflow-y:auto;color:#d4d4d8;line-height:1.7}.legal-content h3{color:var(--text-main);font-size:1.05rem;margin:1.35rem 0 .35rem}.legal-content p+p{margin-top:.9rem}.legal-content a{color:var(--accent-glow);text-decoration:underline;text-underline-offset:2px}.app-container{max-width:1200px;margin:0 auto;padding:var(--spacing-2xl) var(--spacing-md);display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-2xl)}.app-logo{font-size:1.75rem;font-weight:800;background:linear-gradient(to right,#d8b4fe,#a855f7);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.5px;cursor:pointer;border-radius:var(--radius-sm)}.app-logo:focus-visible,.header-action:focus-visible{outline:2px solid var(--accent-glow);outline-offset:4px}.app-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.header-action{min-width:42px;height:42px;padding:0 .85rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-muted);font-weight:600;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.header-action:hover,.header-action.is-active{background:#a855f71f;border-color:var(--accent-base);color:var(--accent-glow);transform:translateY(-1px)}.header-action-label{font-size:.85rem;white-space:nowrap}.header-plan{color:var(--accent-glow);border-color:#a855f752;background:#a855f717}.header-plan.is-pro{color:#6ee7b7;border-color:#34d3994d;background:#34d39914}.main-content{flex:1;display:flex;flex-direction:column;align-items:center}.app-footer{display:flex;justify-content:center;align-items:center;gap:1rem;padding-top:3rem;color:#71717a;font-size:.78rem}.app-footer button:hover,.app-footer button:focus-visible{color:var(--accent-glow);outline:none}.app-loading{width:min(100%,360px);padding:2rem;display:flex;align-items:center;justify-content:center;gap:.85rem;color:var(--text-muted);font-weight:600}.loading-spinner{width:1.35rem;height:1.35rem;flex:0 0 auto;border:2px solid rgba(216,180,254,.22);border-top-color:var(--accent-glow);border-radius:50%;animation:loading-spin .75s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(max-width:600px){.app-container{padding:var(--spacing-md) var(--spacing-sm)}.app-header{margin-bottom:var(--spacing-md)}.app-logo{font-size:1.4rem}.header-action{width:42px;padding:0;border-radius:50%}.header-action-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.modal-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{max-width:400px;width:100%;padding:var(--spacing-xl);text-align:center}.modal-content h2{margin-bottom:var(--spacing-md)}.modal-content p{color:var(--text-muted);line-height:1.6}.modal-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);justify-content:center}h1,h2,h3{letter-spacing:-.025em}.app-logo,.auth-form h1,.dashboard-title,.module-main-title,.settings-title{background:none;-webkit-text-fill-color:currentColor;color:var(--text-main)}.app-logo{font-size:1.4rem;font-weight:750;letter-spacing:-.045em}.app-logo:before{content:"◇";color:var(--accent-base);margin-right:.45rem}.app-container{padding-top:1.5rem}.app-header{padding-bottom:1rem;border-bottom:1px solid var(--glass-border);margin-bottom:2rem}.header-action{background:transparent;border-color:transparent;border-radius:.6rem}.header-action:hover,.header-action.is-active{background:var(--surface-2);border-color:var(--glass-border);transform:none}.app-footer{color:var(--text-muted);font-size:.8rem}.btn-secondary,.btn-reveal,.setting-option-btn,.practice-mode-btn{box-shadow:none}.btn-secondary:hover{background:var(--surface-2)}.btn-primary:disabled{background:var(--surface-2);color:var(--text-muted);opacity:1}.dashboard-hero{text-align:left;margin-bottom:1.5rem}.dashboard-title,.module-main-title{font-size:clamp(1.8rem,4vw,2.25rem);font-weight:650;margin-bottom:1.25rem}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:1rem 0;border-block:1px solid var(--glass-border)}.stat-item{align-items:flex-start;border:0;border-radius:0;background:none;padding:0 .5rem}.stat-item:first-child{padding-left:0}.stat-divider{display:none}.stat-value{font-size:1.6rem;font-weight:600}.stat-label{font-size:.75rem;letter-spacing:0;text-transform:none;font-weight:400}.dashboard-overall-progress{max-width:none}.overall-progress-bar,.module-progress-bar{background:var(--surface-2)}.overall-progress-fill,.module-progress-fill{background:var(--accent-base)}.dashboard-cta{padding:1.5rem;border-left:3px solid var(--accent-base);border-radius:.75rem;margin-bottom:1.25rem}.dashboard-cta:before,.module-card:before{display:none}.dashboard-cta:hover,.refresh-card:hover,.dashboard-test-btn:hover{transform:none;border-color:var(--accent-base)}.cta-module-title{white-space:normal;font-size:1.35rem}.cta-module-level,.refresh-level{display:inline-block;color:var(--text-muted);font-size:.75rem;letter-spacing:.04em}.cta-content{gap:1rem}.cta-module-desc{line-height:1.6}.cta-progress-ring{width:52px;height:52px}.cta-ring-svg path:nth-child(2){stroke:var(--accent-base)}.cta-ring-text{font-size:.75rem}.dashboard-browse{align-items:stretch}.dashboard-test-btn,.dashboard-pro-banner{background:var(--surface-1);border-color:var(--glass-border);border-radius:.75rem}.dashboard-test-icon{background:var(--surface-2);color:var(--accent-base);border-radius:.6rem}.dashboard-test-btn .btn-primary{background:transparent;color:var(--accent-base);padding:0;box-shadow:none}.module-header{text-align:left;margin-bottom:1.5rem}.module-main-title{margin-bottom:.5rem}.module-subtitle{font-size:1rem;max-width:42rem}.practice-mode-panel{width:fit-content;margin:1rem 0 0;padding:.3rem;background:var(--surface-2);border:0;border-radius:.65rem}.practice-mode-title{display:none}.practice-mode-toggle{gap:.25rem}.practice-mode-btn{border:0;font-size:.9rem}.practice-mode-btn.active,.setting-option-btn.active{background:var(--accent-base);color:#101b2b;border-color:var(--accent-base);box-shadow:none}.module-discovery{padding:1rem;border-radius:.75rem}.module-search{background:var(--bg-dark);border-radius:.5rem}.module-search::placeholder{color:var(--text-muted)}.module-filter>span{text-transform:none;letter-spacing:0;font-weight:500}.module-grid{gap:1rem}.module-card{padding:1.5rem;border-radius:.75rem;animation:none;opacity:1}.module-title{font-size:1.25rem;font-weight:650}.module-description{font-size:.95rem}.module-level{background:none;padding:0;color:var(--text-muted);font-size:.8rem;font-weight:500}.module-status-badge{border-radius:.3rem}.module-card-action{background:var(--surface-2);color:var(--accent-base);padding:.6rem .9rem}.module-card:hover .module-card-action{background:var(--accent-base);color:#101b2b}.lesson-progress{background:transparent;box-shadow:none;border:0;border-radius:0;padding-inline:0}.lesson-progress-track{height:4px;background:var(--surface-2);border:0;overflow:hidden;border-radius:4px}.lesson-progress-fill{background:var(--accent-base);box-shadow:none;border-radius:4px}.lesson-progress-fill:after,.lesson-progress-marker,.lesson-progress-pips{display:none}.lesson-progress-step{text-transform:none;letter-spacing:0;font-weight:500}.lesson-progress-percent{color:var(--text-muted)}.lesson-content{border-radius:1rem;box-shadow:none}.grammar-intro-panel,.story-intro-panel,.review-intro-panel,.challenge-panel{background:var(--surface-1)!important;border-color:var(--glass-border)!important}.grammar-intro-badge,.story-intro-badge,.review-intro-badge,.challenge-badge,.challenge-badge.pure-testing{background:none;border:0;padding:0;color:var(--accent-base);border-radius:0;font-size:.8rem;letter-spacing:.06em;font-weight:600}.grammar-intro-icon,.challenge-icon{display:none}.grammar-intro-title{font-weight:600}.grammar-intro-body .grammar-bullet{font-family:inherit;color:var(--text-main);padding-left:.65rem;border-left:2px solid var(--glass-border);margin:.45rem 0}.btn-play,.btn-play-answer{background:var(--accent-base);color:#101b2b;box-shadow:none}.btn-play{border-radius:1.25rem}.btn-play:hover,.btn-play-answer:hover{background:var(--accent-glow);box-shadow:none;transform:none}.btn-play:before,.btn-play:after{display:none}.btn-reveal{background:var(--surface-2);border:1px solid var(--glass-border);font-size:1rem;color:var(--text-main)}.btn-reveal:hover{background:#2a3543}.spanish-sentence{font-weight:550;letter-spacing:-.02em}.spanish-word.has-meaning{border-bottom-color:#627387}.spanish-word.active,.spanish-word.has-meaning:hover{color:var(--accent-base);background:var(--surface-2)}.english-translation{background:var(--surface-2);border-color:var(--glass-border);border-radius:.65rem}.challenge-english{font-weight:550}.challenge-flip-face{border-style:solid;border-color:#465366;border-radius:.55rem}.challenge-flip-english{background:var(--surface-2)}.challenge-flip-spanish{background:#203d36;color:#a7e7cd;border-color:#497b69}.challenge-flip-token:hover .challenge-flip-inner{transform:none}.challenge-flip-token:hover .challenge-flip-english{background:#2a3543;border-color:var(--accent-base)}.btn-help,.btn-mark-later{background:transparent;color:var(--text-muted);box-shadow:none;border-color:var(--glass-border)}.btn-mark-later:hover{background:var(--surface-2);color:var(--text-main)}.lesson-nav-bar{background:var(--bg-dark);-webkit-backdrop-filter:none;backdrop-filter:none}.auth-form{border-radius:1rem;padding:2rem}.auth-heading{text-align:left}.auth-form h1{font-size:2rem;font-weight:600;line-height:1.2}.auth-eyebrow{font-size:.75rem}.auth-input{background:var(--bg-dark);border-radius:.6rem}.auth-input:focus{background:var(--bg-dark);box-shadow:0 0 0 2px #94bcff26}.btn-guest{color:var(--accent-base)}.settings-title{font-weight:600}.setting-card{border-radius:.75rem}.setting-icon{color:var(--text-muted)}.setting-option-btn{border-radius:.5rem}.level-btn,.module-list-btn{background:var(--bg-dark);border-color:var(--glass-border);border-radius:.65rem}.level-btn.active,.module-list-btn.active{background:#22334b;border-color:var(--accent-base);box-shadow:none}.level-btn.active .level-check{color:#101b2b}.choose-module-btn{font-style:normal}.legal-modal,.pricing-modal,.billing-card{background:var(--surface-1);box-shadow:none}@media(max-width:600px){.app-header{padding-bottom:.75rem}.app-logo{font-size:1.25rem}.header-action{border-radius:.6rem;width:38px;min-width:38px;height:38px}.app-container:has(.lesson-player) .app-header{padding-bottom:.5rem}.dashboard-cta{text-align:left;padding:1.1rem}.cta-content{flex-direction:row;align-items:flex-start}.cta-module-title{font-size:1.2rem}.dashboard-test-btn{padding:1rem}.dashboard-test-btn .btn-primary{width:auto;margin-left:3.75rem;font-size:.875rem}.practice-mode-toggle{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-mode-btn{padding:.6rem .8rem}.module-header-top{margin-bottom:.5rem}.module-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.module-filter:last-child{grid-column:1 / -1}.module-card{padding:1.2rem}.module-meta{flex-direction:row;align-items:center}.module-card-action{width:auto}.lesson-player .lesson-content{padding:1.25rem 1rem}.lesson-progress{row-gap:.5rem}.lesson-progress-step,.lesson-progress-count,.lesson-progress-percent{font-size:.8rem}.lesson-player .lesson-nav-bar{border-top:0;gap:.5rem}.lesson-player .btn-nav-next{padding-block:.75rem}.lesson-player .btn-nav-secondary,.lesson-player .btn-nav-mark{border-color:transparent;background:none;color:var(--text-muted)}.lesson-player .challenge-panel{gap:1rem}.auth-form{padding:1.5rem}}@media(max-width:600px){.dashboard-test-btn{display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:.5rem 1rem}.dashboard-test-icon{grid-row:1 / 3}.dashboard-test-btn .btn-primary{grid-column:2;justify-self:start;margin-left:0}}.resume-toast,.swipe-bookmark-indicator{background:var(--surface-2);color:var(--text-main);border:1px solid var(--glass-highlight);box-shadow:0 6px 20px #0003;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:.65rem}.story-intro-badge,.review-intro-badge{background:none!important;border-color:transparent!important}.challenge-spanish{background:var(--surface-2);border-color:var(--glass-border)}.tooltip-audio-btn,.tooltip-audio-btn:hover{background:var(--surface-1);color:var(--accent-base)}.pricing-plan-featured,.pricing-faq-item.is-open{background:var(--surface-2);border-color:var(--glass-highlight)}.btn-help:hover,.btn-icon:hover{background:var(--surface-2);color:var(--accent-base);box-shadow:none}
