:root{--mat-sys-primary: #9B72CF;--mat-sys-on-primary: #FFFFFF;--mat-sys-primary-container: #EDE0F8;--mat-sys-on-primary-container: #2D1650;--mat-sys-secondary: #8B7A9E;--mat-sys-on-secondary: #FFFFFF;--mat-sys-secondary-container: #E8E0F0;--mat-sys-on-secondary-container: #2A1D3D;--mat-sys-tertiary: #ffd008;--mat-sys-on-tertiary: #916C0A;--mat-sys-tertiary-container: #fff4b8;--mat-sys-on-tertiary-container: #5C4A00;--mat-sys-surface: #fffcf7;--mat-sys-on-surface: #3e3e3e;--mat-sys-surface-container: #F5F0FA;--mat-sys-surface-container-low: #FAF8FC;--mat-sys-surface-container-high: #EBE5F0;--mat-sys-outline: #7f7e7b;--mat-sys-outline-variant: #dcdcdc;--mat-sys-error: #c0392b;--mat-sys-on-error: #FFFFFF;--mat-sys-error-container: #FFDAD6;--color-yellow: #ffd008;--color-yellow-dark: #ffbd07;--color-yellow-text: #916C0A;--color-brown: #8B7A9E;--color-brown-dark: #6B5A82;--color-torquesa: #9B72CF;--color-torquesa-dark: #7B52AF;--color-wrapper-bg: #C8A8E8;--color-overlay: rgba(200,180,220,.8);--color-serie-verde: #B8E8C8;--color-serie-verde-dark: #2D5A3D;--color-serie-amarilla: #FFF0A0;--color-serie-amarilla-dark: #5C4A00;--color-serie-morada: #D8C0F0;--color-serie-morada-dark: #3D2060;--color-serie-naranja: #FFD0A0;--color-serie-naranja-dark: #5C2A00;--color-serie-azul: #B0D8F8;--color-serie-azul-dark: #0A2840;--color-serie-roja: #FFB8B0;--color-serie-roja-dark: #5C1010;--color-coin: #ffd008;--color-coin-bg: #fff4b8;--color-star: #F0C040;--color-success: #27ae60;--color-locked: #B0A898;--color-danger: #c0392b;--shadow-card: 0 2px 8px rgba(100,70,140,.12), 0 1px 3px rgba(100,70,140,.08);--shadow-card-hover: 0 4px 16px rgba(100,70,140,.18), 0 2px 4px rgba(100,70,140,.1);--shadow-fab: 0 4px 12px rgba(100,70,140,.2);--shadow-bottom-nav: 0 -2px 12px rgba(100,70,140,.15);--shadow-badge-unlocked: 0 2px 12px rgba(155,114,207,.3);--radius-card: 16px;--radius-button: 14px;--radius-input: 14px;--radius-badge: 50%;--radius-chip: 20px;--radius-dialog: 24px;--radius-bubble: 16px;--radius-bottom-sheet: 24px 24px 0 0;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--touch-target: 48px;--color-nav-bg: rgba(107, 90, 130, .75);--color-nav-active: #FFE066;--color-nav-inactive: rgba(255,255,255,.6);--shadow-nav: 0 4px 24px rgba(80,50,120,.3), 0 0 1px rgba(255,255,255,.1);--glow-active: 0 0 12px rgba(255,224,102,.4);--color-confetti-1: #FFD008;--color-confetti-2: #FF6B8A;--color-confetti-3: #9B72CF;--color-confetti-4: #5BC0EB;--age-touch-target: 56px;--age-font-body-ui: 16px;--age-nav-tabs: 5;--age-nav-depth-max: 2;--age-mc-options: 4;--age-elements-max: 8;--age-button-height: 48px;--age-button-font: 14px;--age-input-height: 48px;--age-touch-spacing: 8px}.age-g1{--age-touch-target: 64px;--age-font-body-ui: 18px;--age-nav-tabs: 3;--age-nav-depth-max: 1;--age-mc-options: 2;--age-elements-max: 5;--age-button-height: 56px;--age-button-font: 16px;--age-input-height: 56px;--age-touch-spacing: 12px}.age-g3{--age-touch-target: 48px;--age-font-body-ui: 16px;--age-nav-tabs: 5;--age-nav-depth-max: 3;--age-mc-options: 5;--age-elements-max: 12;--age-button-height: 44px;--age-button-font: 14px;--age-input-height: 44px;--age-touch-spacing: 8px}:root{--text-primary: var(--mat-sys-on-surface);--text-secondary: var(--mat-sys-outline);--text-on-primary: #fff;--bg-primary: var(--mat-sys-surface);--bg-card: var(--mat-sys-surface);--bg-elevated: var(--mat-sys-surface-container);--border-default: var(--mat-sys-outline-variant)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:Lato,sans-serif;font-size:16px;line-height:1.5;color:var(--mat-sys-on-surface);background:var(--mat-sys-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.display-large{font-size:57px;line-height:64px;font-weight:700}.headline-large{font-size:32px;line-height:40px;font-weight:700}.headline-medium{font-size:28px;line-height:36px;font-weight:700}.title-large{font-size:22px;line-height:28px;font-weight:600}.title-medium{font-size:20px;line-height:24px;font-weight:600}.body-large{font-size:17px;line-height:24px;font-weight:400}.body-medium{font-size:15px;line-height:22px;font-weight:400}.label-large{font-size:15px;line-height:22px;font-weight:700}.label-medium{font-size:13px;line-height:18px;font-weight:700}.material-symbols-rounded{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.material-symbols-rounded.filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--mat-sys-outline-variant);border-radius:2px}::selection{background:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container)}:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}a{color:var(--color-torquesa);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--age-button-height, 48px);padding:0 2em;border:none;border-bottom:3px solid transparent;border-radius:var(--radius-button);font-size:var(--age-button-font, 14px);font-weight:700;font-family:inherit;transition:all .15s cubic-bezier(.34,1.56,.64,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.95) translateY(2px);border-bottom-width:1px}.btn-primary{background:var(--color-torquesa);border-bottom-color:var(--color-torquesa-dark);color:#fff;box-shadow:0 2px 8px #9b72cf4d}.btn-primary:hover{background:var(--color-torquesa-dark);box-shadow:0 4px 12px #9b72cf66}.btn-secondary{background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface);border:1px solid var(--mat-sys-outline-variant);border-bottom-width:3px;border-radius:var(--radius-button)}.btn-accent{background:var(--color-yellow);border-bottom-color:var(--color-yellow-dark);color:var(--color-yellow-text);box-shadow:0 2px 8px #ffd0084d}.btn-accent:hover{background:var(--color-yellow-dark)}.btn-outline{background:transparent;color:var(--color-torquesa);border:2px solid var(--color-torquesa);border-bottom-width:3px}.btn-icon{width:var(--touch-target);height:var(--touch-target);padding:0;border-radius:var(--radius-badge);background:transparent;border:none;display:flex;align-items:center;justify-content:center;color:var(--mat-sys-on-surface);transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.btn-icon:active{transform:scale(.88)}.card{background:var(--mat-sys-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.card:active{transform:scale(.98) rotate(-.3deg);box-shadow:var(--shadow-card-hover)}.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:var(--radius-chip);font-size:15px;font-weight:700;border:2px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface);color:var(--mat-sys-on-surface);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}.chip:active{transform:scale(.93)}.chip.active{border-color:transparent;font-weight:700}.input-field{width:100%;height:var(--age-input-height, 48px);padding:0 2em;border:1.5px solid var(--mat-sys-outline-variant);border-radius:var(--radius-input);font-family:inherit;font-size:17px;color:var(--mat-sys-on-surface);background:var(--mat-sys-surface);outline:none;transition:border-color .15s}.input-field:focus{border-color:var(--color-torquesa)}.input-field::placeholder{color:var(--mat-sys-outline)}.divider{height:1px;background:var(--mat-sys-outline-variant);border:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .4s ease}.modal-overlay.open{opacity:1;pointer-events:all}.dialog{background:var(--mat-sys-surface);border-radius:var(--radius-dialog);padding:24px;max-width:340px;width:100%;box-shadow:var(--shadow-fab)}.badge-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:28px;font-size:13px;font-weight:700}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px dashed var(--mat-sys-outline-variant)}.section-header h2{font-size:20px;font-weight:700;color:var(--color-torquesa)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;gap:16px;color:var(--mat-sys-outline)}.empty-state .material-symbols-rounded{font-size:64px;opacity:.4}.hero-illustrated{background-size:cover;background-position:center;position:relative;overflow:hidden;border-radius:0 0 20px 20px}.hero-illustrated:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000000d,#00000073);pointer-events:none}.hero-illustrated>*:not(.hero-deco){position:relative;z-index:1}body[data-device=mobile]:not([data-orientation=landscape]) .hero-deco{width:32%!important}.card-wooden{border:3px solid #B8A0D8;border-radius:16px;box-shadow:0 3px #8b70b8;background:var(--mat-sys-surface)}.badge-medal{background:radial-gradient(circle,#f7e07b,#d4a830);border:3px solid #c49a20;border-radius:50%;box-shadow:0 3px #a8810a;display:flex;align-items:center;justify-content:center;color:#7a5c00;font-weight:700}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:54px 24px 32px;background:linear-gradient(180deg,transparent 35%,rgba(123,82,175,.9) 100%),url(../../assets/backgrounds/login-bg.png) center top / cover no-repeat;background-color:#7b52af}.login-logo{text-align:center;margin-bottom:24px}.login-logo-img{height:80px;margin-bottom:8px;filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1)}.login-logo-subtitle{height:20px;opacity:.9;filter:drop-shadow(0 1px 4px rgba(0,0,0,.3))}.login-footer-logos{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px}.login-footer-logos img{height:24px;opacity:.85;filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.3))}.login-toggle{display:flex;gap:0;border-radius:12px;overflow:hidden;border:none;margin-bottom:24px;width:100%;max-width:280px;background:#ffffff40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-tab{flex:1;padding:10px;border:none;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:#fffc;transition:all .15s}.login-tab .material-symbols-rounded{font-size:20px}.login-tab.active{background:#ffffffe6;color:var(--color-torquesa);border-radius:10px}.login-form{width:100%;max-width:300px;display:flex;flex-direction:column;gap:16px;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;padding:24px;box-shadow:0 8px 32px #00000026}.pin-inputs{display:flex;gap:12px;justify-content:center}.pin-digit{width:56px;height:64px;border:2px solid var(--mat-sys-outline-variant);border-radius:12px;font-size:28px;font-weight:700;font-family:inherit;text-align:center;color:var(--mat-sys-on-surface);background:#fff;outline:none;transition:border-color .15s}.pin-digit:focus{border-color:var(--color-torquesa);box-shadow:0 0 0 3px var(--mat-sys-primary-container)}.login-btn{width:100%;min-height:var(--touch-target);font-size:17px;margin-top:8px}.login-footer{margin-top:24px;text-align:center;color:#ffffffe6;text-shadow:0 1px 4px rgba(0,0,0,.3)}.welcome-bubble{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--mat-sys-surface-container);border-radius:var(--radius-bubble);box-shadow:var(--shadow-card);position:relative}.bubble-close{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;color:var(--mat-sys-outline);padding:4px}.book-cover{position:relative;border-radius:4px 12px 12px 4px;overflow:hidden;box-shadow:-2px 0 #00000026,3px 3px 8px #0000002e,0 1px 3px #0000001a}.book-cover:before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:linear-gradient(90deg,#00000040,#00000014,#0000);z-index:5;pointer-events:none}.book-cover:after{content:"";position:absolute;right:0;top:2px;bottom:2px;width:3px;background:#fff6;border-radius:0 2px 2px 0;z-index:5;pointer-events:none}.book-cover-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background-image:radial-gradient(circle at 20% 80%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 0%,transparent 40%),linear-gradient(135deg,rgba(0,0,0,.05) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.05) 50%,rgba(0,0,0,.05) 75%,transparent 75%);background-size:100% 100%,100% 100%,20px 20px}.book-cover-placeholder .book-emoji{font-size:48px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));line-height:1}.book-cover-placeholder .book-emoji-sm{font-size:36px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));line-height:1}.book-serie-ribbon{position:absolute;bottom:0;left:0;right:0;padding:4px 12px;font-size:11px;font-weight:700;text-align:center;z-index:3}.book-cover .cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;z-index:1}.book-card{transition:transform .2s ease}.book-card:active{transform:scale(.97) rotate(-.5deg)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.h-scroll::-webkit-scrollbar{display:none}.h-scroll{-ms-overflow-style:none;scrollbar-width:none}.guide-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.guide-avatar{width:72px;height:72px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--mat-sys-surface-container)}.guide-avatar img{width:110%;height:110%;object-fit:contain}.guide-bubble{flex:1;padding:12px 16px;background:var(--mat-sys-surface);border-radius:18px 18px 18px 4px;box-shadow:var(--shadow-card);animation:bubbleIn .25s ease-out}.guide-bubble p{font-size:18px;font-weight:600;line-height:1.45;color:var(--mat-sys-on-surface)}.guide-bubble-hint{background:var(--mat-sys-primary-container)}.guide-bubble-correct{background:#e8f5e9;border:2px solid var(--color-success)}.guide-bubble-wrong{background:#fff3e0;border:2px solid #FF9800}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin:0 auto}@media(min-width:600px){.memory-grid{grid-template-columns:repeat(4,1fr);gap:12px;max-width:580px}}.ws-grid{display:grid;gap:3px;margin:0 auto}.ws-cell{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;border-radius:6px;background:var(--mat-sys-surface);border:2px solid var(--mat-sys-outline-variant);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s;aspect-ratio:1;min-width:36px;min-height:36px}.ws-cell.selected{background:#fff8e1;border-color:#ffd008}.ws-cell.found{color:#fff;border-color:transparent}.tc-blank{display:inline-flex;align-items:center;justify-content:center;min-width:80px;min-height:40px;padding:4px 12px;border:2px dashed var(--mat-sys-outline-variant);border-radius:12px;font-weight:700;font-size:17px;cursor:pointer;transition:all .2s;vertical-align:middle;color:var(--mat-sys-outline)}.tc-blank.active{border-color:#5bc0eb;background:#e3f6fd;color:var(--mat-sys-on-surface)}.tc-blank.filled{border-style:solid;border-color:#5bc0eb;background:#e3f6fd;color:var(--mat-sys-on-surface)}.word-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 18px;border-radius:22px;font-weight:700;font-size:16px;background:linear-gradient(135deg,#5bc0eb,#3aa0cb);color:#fff;cursor:pointer;border:none;font-family:inherit;transition:all .15s cubic-bezier(.34,1.56,.64,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.word-chip:active{transform:scale(.92)}.word-chip.used{opacity:.35;pointer-events:none}.activity-action-bar{position:sticky;bottom:0;z-index:40;padding:12px 0 4px;background:linear-gradient(to top,var(--mat-sys-surface) 70%,transparent);text-align:center;margin-top:auto}.order-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--mat-sys-surface);border:2px solid var(--mat-sys-outline-variant);cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.order-item:active{transform:scale(.97)}.order-item.selected{border-color:var(--mat-sys-primary);background:var(--mat-sys-primary-container);transform:scale(1.02) translateY(-2px);box-shadow:0 4px 16px #64468c33}.bell-btn{width:80px;height:80px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;font-size:40px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #ff980066;transition:transform .2s}.bell-btn:active{transform:scale(.9)}.speaker-circle{width:64px;height:64px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;flex-shrink:0;-webkit-tap-highlight-color:transparent}.speaker-circle:active{transform:scale(.92)}.speaker-ring{position:absolute;border-radius:50%;pointer-events:none}.math-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:80%;max-width:280px;margin:0 auto}.math-key{min-height:44px;border-radius:12px;border:2px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface);color:var(--mat-sys-on-surface);font-size:22px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}.math-key-special{background:var(--mat-sys-surface-container);color:var(--mat-sys-outline)}.math-key:active{transform:scale(.92);background:var(--mat-sys-surface-container)}.math-digit-box{width:48px;height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;transition:all .2s}.wiris-badge{background:linear-gradient(135deg,#5c6bc0,#3f51b5);color:#fff;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.mode-tabs{display:flex;gap:0;border-radius:12px;overflow:hidden;border:2px solid var(--mat-sys-outline-variant)}.mode-tab{flex:1;padding:10px;border:none;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.drag-chip{padding:10px 18px;border-radius:14px;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.drag-chip:active{transform:scale(.95)}.drop-zone{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;min-height:52px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.drop-zone:active{transform:scale(.98)}.phase-section{margin-bottom:16px}.phase-section-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;margin-bottom:8px}.phase-section-header h3{font-size:16px;font-weight:700;margin:0}.phase-section-header p{font-size:13px;margin:0}.app-shell{display:flex;flex-direction:column;height:100%;background:var(--mat-sys-surface);overflow:hidden}.app-header{display:flex;align-items:center;gap:12px;padding:0 16px;background:linear-gradient(135deg,var(--color-yellow),var(--color-yellow-light, #FFE066));box-shadow:0 2px 8px #0000001f;z-index:50;flex-shrink:0;min-height:60px}.app-header .greeting{flex:1;font-size:17px;font-weight:700;color:var(--color-header-text, var(--mat-sys-on-surface))}.app-header .greeting .name{color:var(--color-header-name, var(--color-torquesa-dark))}.coin-counter{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#fff6;border-radius:28px;font-size:15px;font-weight:700;color:var(--color-coin-counter-text, var(--color-yellow-text))}.coin-counter .coin-icon{width:20px;height:20px;background:var(--color-yellow-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--color-yellow-text);box-shadow:inset 0 -1px 2px #00000026;position:relative;overflow:hidden}.coin-counter .coin-icon:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.4) 50%,transparent 60%);animation:coinShine 3s infinite}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:88px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}#app-content{max-width:100%;overflow-x:hidden}.screen{min-height:100%;padding:16px 16px 24px}.screen-fullscreen{height:100%;display:flex;flex-direction:column}.home-hero-info-col{display:flex;flex-direction:column;align-items:center}.home-streak-badge{margin-top:12px}.floating-nav{position:absolute;bottom:12px;left:16px;right:16px;z-index:50;display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0);pointer-events:none}.nav-island{display:flex;align-items:center;justify-content:space-around;width:100%;max-width:360px;height:64px;background:var(--color-nav-bg);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-radius:32px;border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow-nav);padding:0 8px;pointer-events:all;position:relative}.nav-island:before{content:"";position:absolute;top:1px;left:20px;right:20px;height:1px;background:#ffffff26;border-radius:1px}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:56px;height:56px;border:none;background:none;color:var(--color-nav-inactive);font-family:inherit;font-size:0;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent;position:relative}.nav-icon-wrap{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.nav-icon-wrap .material-symbols-rounded{font-size:24px;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.nav-label{font-size:0;opacity:0;transition:all .15s ease;line-height:1}.nav-item.active{color:var(--color-nav-active)}.nav-item.active .nav-icon-wrap{background:var(--color-nav-active-bg, rgba(255,208,8,.2));transform:scale(1.1);box-shadow:var(--glow-active)}.nav-item.active .nav-icon-wrap .material-symbols-rounded{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24;transform:scale(1.05)}.nav-item.active .nav-label{font-size:10px;opacity:1}.nav-item:active .nav-icon-wrap{transform:scale(.85)}.nav-item-center .nav-icon-wrap{width:48px;height:48px;background:#ffffff1a;border-radius:50%}.nav-item-center.active .nav-icon-wrap{background:var(--color-nav-active);box-shadow:var(--glow-active-center, 0 0 16px rgba(255,208,8,.5))}.nav-item-center.active .nav-icon-wrap .material-symbols-rounded{color:var(--color-nav-center-icon, var(--color-yellow-text))}.avatar-mini{position:relative;width:44px;height:52px;flex-shrink:0;cursor:pointer}.avatar-mini img{position:absolute;width:100%;height:100%;object-fit:contain}.back-header{display:flex;align-items:center;gap:8px;padding:12px 16px;min-height:56px;flex-shrink:0;border-bottom:1px solid var(--mat-sys-outline-variant)}.back-header h1{font-size:20px;font-weight:700;color:var(--color-torquesa);flex:1}body[data-device=tablet] .screen{padding:20px 32px 28px}body[data-device=tablet] .app-header{padding:0 28px;min-height:64px}body[data-device=tablet] .nav-island{max-width:480px;height:68px}body[data-device=tablet] .floating-nav{bottom:16px;left:24px;right:24px}body[data-device=tablet] .book-grid{grid-template-columns:1fr 1fr 1fr!important;gap:18px!important}body[data-device=tablet] .achievements-grid{grid-template-columns:repeat(3,1fr)!important}body[data-device=tablet] .avatar-pieces-grid{grid-template-columns:repeat(4,1fr)!important}body[data-device=tablet] .login-form{max-width:400px;padding:36px}body[data-device=tablet] .login-toggle{max-width:320px}body[data-device=tablet] .memory-grid{max-width:500px;gap:12px}body[data-device=tablet] .card{border-radius:20px}body[data-device=tablet] .hero-illustrated{border-radius:0 0 28px 28px;padding:40px 36px 36px!important}body[data-device=tablet] .dialog{max-width:420px}body[data-device=tablet] .app-content{padding-bottom:100px}body[data-device=tablet] .h-scroll{gap:14px}body[data-device=tablet] .section-header h2{font-size:22px}body[data-device=tablet] .ws-cell{min-width:42px;min-height:42px;font-size:18px}body[data-device=tablet] .phase-section-header{padding:14px 18px}body[data-device=tablet] .home-content{display:grid!important;grid-template-columns:1fr 1fr;grid-template-areas:"featured  actions" "quicknav  quicknav" "bookshead bookshead" "books     books" "achhead   achhead" "ach       ach";gap:16px 20px;padding:0 28px 32px!important}body[data-device=tablet] .home-featured-card{grid-area:featured;margin-bottom:0!important}body[data-device=tablet] .home-action-buttons{grid-area:actions;flex-direction:column!important;margin-bottom:0!important;align-self:center;gap:10px!important}body[data-device=tablet] .home-action-buttons .btn{flex:none;min-height:56px!important;font-size:16px!important;padding:0 20px}body[data-device=tablet] .home-action-buttons .btn .material-symbols-rounded{font-size:22px!important}body[data-device=tablet] .home-quick-actions{grid-area:quicknav;margin-bottom:0!important}body[data-device=tablet] .home-books-header{grid-area:bookshead;margin-top:4px}body[data-device=tablet] .home-books-scroll{grid-area:books;display:grid!important;grid-template-columns:repeat(4,1fr)!important;overflow-x:visible!important;scroll-snap-type:none!important;margin:0!important;padding:0!important;gap:16px!important}body[data-device=tablet] .home-books-scroll .book-card{min-width:unset!important;max-width:unset!important}body[data-device=tablet] .home-ach-header{grid-area:achhead;margin-top:4px}body[data-device=tablet] .home-ach-scroll{grid-area:ach}body[data-device=tablet] .home-quick-actions .card{padding:14px 10px!important}body[data-device=tablet] .home-quick-actions .card .material-symbols-rounded{font-size:28px!important}body[data-device=tablet] .home-hero-layout{flex-direction:row!important;align-items:center!important;text-align:left!important;gap:36px;justify-content:center;max-width:480px;margin:0 auto}body[data-device=tablet] .home-hero-avatar-col{flex-shrink:0}body[data-device=tablet] .home-hero-avatar-col .home-avatar{width:200px!important;height:250px!important;margin-bottom:0!important}body[data-device=tablet] .home-hero-info-col{flex:1;display:flex;flex-direction:column;align-items:flex-start}body[data-device=tablet] .home-hero-info-col h2{font-size:30px!important}body[data-device=tablet] .home-hero-info-col p{font-size:16px!important}body[data-device=tablet] .home-hero-info-col .badge-pill{font-size:14px!important;padding:5px 14px!important}body[data-device=tablet] .home-streak-badge{align-self:flex-start!important;padding:8px 16px;margin-top:14px!important}body[data-device=tablet] .home-streak-badge span:first-child{font-size:18px!important}body[data-device=tablet] .home-streak-badge>div>div{width:24px!important;height:24px!important;font-size:10px!important}body[data-device=tablet] .home-hero-info-col>div:last-child{justify-content:flex-start!important}body[data-device=tablet] .home-content>.card:first-child{border-radius:20px}body[data-device=tablet] .back-header{padding:0}body[data-device=tablet] .library-content{padding:0 28px 28px!important}body[data-device=tablet] .profile-content{padding:0 28px 28px!important;max-width:560px;margin:0 auto}body[data-device=tablet] .profile-actions{flex-direction:row!important;gap:10px!important}body[data-device=tablet] .profile-actions .btn{flex:1;width:auto!important}body[data-device=tablet] .avatar-tab{padding:12px!important;font-size:14px!important}body[data-device=tablet] .book-detail-content{max-width:560px;margin:0 auto}body[data-device=tablet] .detail-cover{width:200px!important}body[data-device=tablet] .reader-content{max-width:560px!important}body[data-device=tablet] .reader-toolbar{padding:12px 28px!important}body[data-device=tablet] .shop-grid{grid-template-columns:repeat(3,1fr)!important;gap:16px!important}body[data-device=tablet] .dashboard-content{padding:0 28px 28px!important}body[data-device=tablet] .kpi-grid{grid-template-columns:repeat(4,1fr)!important}body[data-device=tablet] .fav-cover{width:100px!important}body[data-device=tablet] .featured-cover{min-width:96px!important;width:96px!important}body[data-device=tablet] .home-avatar{width:140px!important;height:175px!important}body[data-device=tablet] .quiz-screen{max-width:560px;margin:0 auto}body[data-device=tablet] .ws-grid{max-width:420px!important}body[data-device=tablet] .guide-row{gap:16px;margin-bottom:18px}body[data-device=tablet] .guide-avatar{width:96px;height:96px}body[data-device=tablet] .guide-bubble{padding:16px 20px;border-radius:20px 20px 20px 6px}body[data-device=tablet] .guide-bubble p{font-size:22px;line-height:1.5}body[data-device=tablet] .math-keypad{max-width:380px;gap:10px}body[data-device=tablet] .math-key{min-height:64px;font-size:30px;border-radius:16px}body[data-orientation=landscape] .floating-nav{bottom:8px;left:12px;right:12px}body[data-orientation=landscape] .nav-island{max-width:480px;height:52px}body[data-orientation=landscape] .nav-item{width:48px;height:48px}body[data-orientation=landscape] .nav-icon-wrap{width:36px;height:36px}body[data-orientation=landscape] .app-content{padding-bottom:68px}body[data-orientation=landscape] .app-header{min-height:48px}body[data-orientation=landscape]:not([data-device=tablet]) .hero-illustrated{padding:2dvh 6vw!important;margin-bottom:0!important;min-height:calc(100dvh - 168px);display:flex;align-items:center;justify-content:center;border-radius:0!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-layout{flex-direction:row!important;align-items:center!important;text-align:left!important;gap:5vw;justify-content:center;max-width:480px;margin:0 auto;width:100%}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-avatar-col{flex-shrink:0}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-avatar-col .home-avatar{width:clamp(100px,30dvh,150px)!important;height:clamp(125px,38dvh,190px)!important;margin-bottom:0!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-info-col{flex:1;align-items:flex-start!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-info-col h2{font-size:clamp(22px,7dvh,32px)!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-info-col p{font-size:clamp(13px,4dvh,18px)!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-info-col .badge-pill{font-size:clamp(11px,3.5dvh,15px)!important;padding:1dvh 2vw!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-hero-info-col>div:last-child{justify-content:flex-start!important}body[data-orientation=landscape]:not([data-device=tablet]) .home-streak-badge{align-self:flex-start!important}body[data-orientation=landscape]:not([data-device=tablet]) .book-grid{grid-template-columns:1fr 1fr 1fr!important;gap:14px!important}body[data-orientation=landscape]:not([data-device=tablet]) .achievements-grid{grid-template-columns:repeat(3,1fr)!important}body[data-orientation=landscape]:not([data-device=tablet]) .shop-grid{grid-template-columns:repeat(3,1fr)!important}body[data-device=tablet][data-orientation=landscape] .book-grid,body[data-device=tablet][data-orientation=landscape] .achievements-grid,body[data-device=tablet][data-orientation=landscape] .shop-grid,body[data-device=tablet][data-orientation=landscape] .kpi-grid{grid-template-columns:repeat(4,1fr)!important}.age-g1 .nav-item:nth-child(n+4){display:none}.age-g1 .nav-item{width:var(--age-touch-target);height:var(--age-touch-target)}.age-g1 .nav-icon-wrap{width:48px;height:48px}.age-g1 .nav-icon-wrap .material-symbols-rounded{font-size:28px}.age-g1 .quick-action-item:nth-child(n+3){display:none}.phone-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#c8a8e8,#dbc4f0 40%,#ede0f8);padding:24px}.phone-frame{position:relative;width:390px;height:844px;border:10px solid #2A2A2A;border-radius:52px;overflow:hidden;box-shadow:0 40px 80px #00000040,0 0 0 2px #1a1a1a,inset 0 0 0 2px #3a3a3a;background:var(--mat-sys-surface)}.phone-status-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 28px 0;height:54px;font-size:14px;font-weight:600;color:var(--mat-sys-on-surface);background:var(--mat-sys-surface);z-index:100;flex-shrink:0;transition:background .2s,color .2s}.phone-status-bar.transparent{background:transparent;color:#fff;position:absolute;top:0;left:0;right:0}.phone-status-bar .time{font-weight:700}.phone-status-bar .icons{display:flex;gap:4px;font-size:14px}.phone-home-indicator{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:134px;height:5px;background:var(--mat-sys-on-surface);border-radius:3px;opacity:.2;z-index:100}.phone-app{position:relative;height:calc(100% - 54px);overflow:hidden}.phone-app.fullscreen{height:100%}.phone-title{margin-top:24px;font-size:14px;color:var(--mat-sys-outline);text-align:center;font-weight:600}body[data-device=tablet] .phone-frame{width:768px;height:1024px;border-radius:24px;border-width:12px}body[data-device=tablet] .phone-status-bar{padding:12px 20px 0;height:48px}body[data-device=tablet] .phone-home-indicator{width:160px}body[data-orientation=landscape] .phone-frame{width:844px;height:390px}body[data-device=tablet][data-orientation=landscape] .phone-frame{width:1024px;height:768px;border-radius:24px;border-width:12px}body[data-orientation=landscape] .phone-status-bar{padding:10px 28px 0;height:44px}body[data-orientation=landscape] .phone-app{height:calc(100% - 44px)}body[data-orientation=landscape] .phone-home-indicator{width:160px}html:has(body.frame-mode){background:transparent}body.frame-mode{background:transparent}body.frame-mode .phone-wrapper{background:transparent;padding:0;min-height:auto}body.frame-mode .phone-title{display:none}@media(max-height:900px){body:not(.frame-mode) .phone-frame{transform:scale(.85);transform-origin:top center}}@media(max-height:750px){body:not(.frame-mode) .phone-frame{transform:scale(.72);transform-origin:top center}}@media(max-width:480px){body:not(.frame-mode) .phone-wrapper{padding:0;background:var(--mat-sys-surface);min-height:100dvh}body:not(.frame-mode) .phone-frame{width:100%;height:100dvh;border:none;border-radius:0;box-shadow:none}body:not(.frame-mode) .phone-status-bar{display:none}body:not(.frame-mode) .phone-home-indicator{display:none}body:not(.frame-mode) .phone-app{height:100%}body:not(.frame-mode) .phone-title{display:none}}.dual-page{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:linear-gradient(135deg,#c8a8e8,#dbc4f0 40%,#ede0f8);overflow:hidden;padding-top:8px}html:has(.dual-page){overflow:hidden}.dual-container{display:flex;align-items:flex-start;gap:48px;position:absolute;top:8px;left:0}.device-column{display:flex;flex-direction:column;align-items:center}.device-label{font-size:14px;font-weight:700;color:#4a3070;margin-bottom:12px;text-align:center}.device-label span{font-weight:400;color:#8b7a9e;font-size:12px}.dual-frame{border:none;display:block;overflow:hidden}.mobile-frame{width:410px;height:864px;border-radius:52px}.tablet-frame{width:792px;height:1048px;border-radius:24px}.mobile-frame.landscape{width:864px;height:410px}.tablet-frame.landscape{width:1048px;height:792px}.dual-footer{font-size:13px;color:#8b7a9e;text-align:center;margin-top:auto;padding:8px 0;flex-shrink:0}.dual-toggle-btn{position:fixed;bottom:16px;left:16px;z-index:100;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(74,48,112,.15);border-radius:20px;color:#4a3070;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 8px #00000014}.dual-toggle-btn:hover{background:#fffffff2;box-shadow:0 4px 12px #0000001f}.dual-toggle-btn:active{transform:scale(.96)}.dual-toggle-btn .material-symbols-rounded{font-size:16px}.frame-orientation-toggle{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.1);box-shadow:0 4px 12px #00000026;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4a3070;z-index:9999;transition:all .15s ease}.frame-orientation-toggle:hover{box-shadow:0 6px 16px #0003;transform:scale(1.05)}.frame-orientation-toggle .material-symbols-rounded{font-size:24px}.screen-enter{animation:screenEnter .3s ease-out forwards}@keyframes screenEnter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.card-enter{opacity:0;transform:translateY(16px) scale(.95);animation:cardEnter .25s ease-out forwards}@keyframes cardEnter{0%{opacity:0;transform:translateY(16px) scale(.95)}70%{transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}.skeleton{background:linear-gradient(90deg,var(--mat-sys-surface-container) 25%,var(--mat-sys-surface-container-low) 50%,var(--mat-sys-surface-container) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-card)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.coin-animate{animation:coinPop .4s ease-out}@keyframes coinPop{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}.badge-unlock{animation:badgeUnlock .6s cubic-bezier(.34,1.56,.64,1)}@keyframes badgeUnlock{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.bubble-enter{animation:bubbleIn .25s ease-out forwards}.bubble-exit{animation:bubbleOut .2s ease-in forwards}@keyframes bubbleIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes bubbleOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.progress-animate{animation:progressFill .8s ease-out forwards}@keyframes progressFill{0%{width:0%}}.fade-in{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bounce-in{animation:bounceIn .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.08)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.wobble{animation:wobble .5s ease-in-out}@keyframes wobble{0%{transform:translate(0)}15%{transform:translate(-8px) rotate(-2deg)}30%{transform:translate(6px) rotate(1deg)}45%{transform:translate(-4px) rotate(-1deg)}60%{transform:translate(2px)}to{transform:translate(0)}}.correct-pulse{animation:correctPulse .6s ease-out}@keyframes correctPulse{0%{box-shadow:0 0 #27ae6080}50%{box-shadow:0 0 0 12px #27ae6000}to{box-shadow:0 0 #27ae6000}}.star-collect{opacity:0;animation:starCollect .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes starCollect{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.3) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.count-up{animation:countUp .4s ease-out forwards}@keyframes countUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes coinShine{0%,80%,to{transform:translate(-100%) rotate(45deg)}85%{transform:translate(100%) rotate(45deg)}}.nav-bounce{animation:navBounce .3s cubic-bezier(.34,1.56,.64,1)}@keyframes navBounce{0%{transform:scale(1)}30%{transform:scale(.8)}60%{transform:scale(1.15)}to{transform:scale(1)}}.confetti-particle{position:absolute;width:8px;height:8px;border-radius:2px;opacity:0}.confetti-particle:nth-child(1){background:var(--color-confetti-1);left:10%;animation:confettiFall 1.5s .1s ease-out forwards}.confetti-particle:nth-child(2){background:var(--color-confetti-2);left:25%;animation:confettiFall 1.8s .3s ease-out forwards}.confetti-particle:nth-child(3){background:var(--color-confetti-3);left:40%;animation:confettiFall 1.4s .2s ease-out forwards;border-radius:50%}.confetti-particle:nth-child(4){background:var(--color-confetti-4);left:55%;animation:confettiFall 1.7s .4s ease-out forwards}.confetti-particle:nth-child(5){background:var(--color-confetti-1);left:70%;animation:confettiFall 1.6s .15s ease-out forwards;border-radius:50%}.confetti-particle:nth-child(6){background:var(--color-confetti-2);left:85%;animation:confettiFall 1.9s .35s ease-out forwards}.confetti-particle:nth-child(7){background:var(--color-confetti-3);left:15%;animation:confettiFall 1.3s .25s ease-out forwards}.confetti-particle:nth-child(8){background:var(--color-confetti-4);left:60%;animation:confettiFall 1.5s .5s ease-out forwards;border-radius:50%}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0) scale(0);opacity:0}20%{opacity:1;transform:translateY(0) rotate(90deg) scale(1)}to{transform:translateY(300px) rotate(720deg) scale(.3);opacity:0}}.guide-avatar-celebrate{animation:avatarCelebrate .6s ease-out}@keyframes avatarCelebrate{0%{transform:translateY(0)}30%{transform:translateY(-12px) scale(1.1)}50%{transform:translateY(-8px) scale(1.05)}70%{transform:translateY(-4px)}to{transform:translateY(0)}}.guide-avatar-sad{animation:avatarSad .5s ease-in-out}@keyframes avatarSad{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(2px) rotate(-3deg)}50%{transform:translateY(4px) rotate(0)}75%{transform:translateY(2px) rotate(3deg)}to{transform:translateY(0) rotate(0)}}.guide-avatar-think{animation:avatarThink 1.5s ease-in-out infinite}@keyframes avatarThink{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.card-flip-inner{transition:transform .4s cubic-bezier(.34,1.56,.64,1);transform-style:preserve-3d}.card-flip-inner.flipped{transform:rotateY(180deg)}.word-found-sweep{animation:wordFoundSweep .5s ease-out forwards}@keyframes wordFoundSweep{0%{background-size:0% 100%}to{background-size:100% 100%}}.blank-fill{animation:blankFill .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes blankFill{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.match-found{animation:matchGlow .6s ease-out}@keyframes matchGlow{0%{box-shadow:0 0 #27ae6080}50%{box-shadow:0 0 0 8px #27ae6033}to{box-shadow:0 0 #27ae6000}}.bell-shake{animation:bellShake .5s ease-in-out}@keyframes bellShake{0%,to{transform:rotate(0)}15%{transform:rotate(15deg)}30%{transform:rotate(-15deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}75%{transform:rotate(5deg)}}.speaker-ring{animation:waveformPulse 2s ease-out infinite}@keyframes waveformPulse{0%{transform:scale(1);opacity:.6}to{transform:scale(1.8);opacity:0}}.number-pop{animation:numberPop .2s cubic-bezier(.34,1.56,.64,1)}@keyframes numberPop{0%{transform:scale(.8)}to{transform:scale(1)}}.drag-lift{animation:dragLift .2s ease-out forwards}@keyframes dragLift{0%{transform:scale(1)}to{transform:scale(1.08) translateY(-4px);box-shadow:0 8px 24px #0003}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
