/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#635bff;--color-primary-light:#8a7dff;--color-primary-lighter:#ddd9ff;--color-primary-dark:#4d43d5;--color-primary-darker:#211b69;--color-secondary-light:#70e1c1;--color-secondary-dark:#0d5c54;--color-accent:#d94b3d;--color-accent-light:#ff9b88;--color-accent-dark:#a83229;--color-success:#12825d;--color-success-dark:#086044;--color-danger:#c2413b;--color-sun:#d8ff5f;--color-bg:#f3f4ee;--color-bg-deep:#111827;--color-surface:#fff;--color-surface-glass:#ffffffd1;--color-surface-glass-strong:#fffffff0;--color-text:#111827;--color-text-muted:#4f5869;--color-text-soft:#697284;--color-text-inverse:#f8fafc;--font-display:"Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;--font-body:"Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif;--radius-card:1.25rem;--radius-button:.875rem;--shadow-soft:0 1px 2px #1118270a, 0 10px 28px -20px #11182747;--shadow-card:0 1px 2px #1118270a, 0 18px 46px -30px #11182752;--shadow-elevated:0 2px 8px #11182714, 0 28px 70px -30px #1118276b;--shadow-glow-primary:0 14px 30px -18px #635bffbf;--shadow-glow-secondary:0 14px 30px -18px #157a6eb3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-6{margin-top:calc(var(--spacing) * 6)}.grid{display:grid}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.font-display{font-family:var(--font-display)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-text-muted{color:var(--color-text-muted)}.uppercase{text-transform:uppercase}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overscroll-behavior:none;touch-action:manipulation;margin:0;font-size:17px;line-height:1.5}h1,h2,h3,.font-display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600;line-height:1.15}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.5}@supports (view-transition-name:auto){::view-transition-old(root){animation-duration:.28s}::view-transition-new(root){animation-duration:.28s}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-interactive{min-height:100dvh}.mobile-nav{z-index:50;position:fixed}.app-nav :where(a,button):focus-visible,.mobile-nav :where(a,button):focus-visible,.home-feature :where(a,button):focus-visible,.curtain :where(a,button):focus-visible{outline-color:var(--color-sun)!important}.focus-state{place-items:center;min-height:100dvh;display:grid}.focus-state__card{width:min(100%,620px);box-shadow:var(--shadow-elevated);background:#ffffffe6;border:1px solid #1118271c;border-radius:1.25rem;padding:clamp(1.5rem,5vw,3.25rem)}.focus-state__eyebrow{color:var(--color-primary-dark);letter-spacing:.13em;text-transform:uppercase;font-size:.64rem;font-weight:850}.focus-state__loader{background:#dfe2d8;border-radius:2px;width:54px;height:5px;margin:1.4rem 0 1rem;display:block;overflow:hidden}.focus-state__loader:after{background:var(--color-primary-dark);content:"";width:45%;height:100%;animation:1s ease-in-out infinite alternate focus-loader;display:block}@keyframes focus-loader{to{transform:translate(125%)}}.focus-state h1{margin:.75rem 0 0;font-size:clamp(2.2rem,7vw,4.5rem);line-height:.98}.focus-state p{max-width:500px;color:var(--color-text-muted);margin:1rem 0 1.5rem}.focus-state__actions{flex-wrap:wrap;gap:.65rem;display:flex}@media (prefers-reduced-motion:reduce){.focus-state__loader:after{animation:none}}@media (pointer:coarse){.match-image{touch-action:pan-y}}.error-page{background:radial-gradient(circle at 70% 15%,#635bff33,transparent 26rem),var(--color-bg);place-items:center;min-height:100dvh;padding:1.25rem;display:grid}.error-page__card{width:min(100%,620px);box-shadow:var(--shadow-elevated);background:#ffffffe6;border:1px solid #1118271c;border-radius:1.35rem;padding:clamp(1.5rem,5vw,3.5rem)}.error-page__code{color:var(--color-primary-dark);letter-spacing:.14em;text-transform:uppercase;font-size:.65rem;font-weight:850}.error-page h1{margin:.75rem 0 0;font-size:clamp(2.4rem,8vw,5rem);line-height:.95}.error-page p{max-width:480px;color:var(--color-text-muted);margin:1rem 0 1.5rem}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);scroll-behavior:smooth}body{background:var(--color-bg);min-width:320px;color:var(--color-text);font-family:var(--font-body);letter-spacing:-.006em;overscroll-behavior-y:auto;font-size:16px;line-height:1.55;overflow-x:hidden}body::selection{background:var(--color-primary-lighter);color:var(--color-primary-darker)}a{color:inherit}h1,h2,h3,.font-display{font-family:var(--font-display);letter-spacing:-.045em;font-weight:750}button,a,select,input{-webkit-tap-highlight-color:transparent}:where(a,button,select,input,[tabindex]):focus-visible{outline:3px solid #9a94ff}@supports (color:color-mix(in lab,red,red)){:where(a,button,select,input,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 65%,white)}}:where(a,button,select,input,[tabindex]):focus-visible{outline-offset:3px}.skip-link{z-index:300;background:var(--color-bg-deep);color:var(--color-text-inverse);border-radius:.75rem;padding:.7rem 1rem;font-weight:800;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell:before{z-index:0;content:"";pointer-events:none;background-image:linear-gradient(#11182705 1px,#0000 1px),linear-gradient(90deg,#11182705 1px,#0000 1px);background-size:64px 64px;position:fixed;top:0;right:0;bottom:0;left:0}.app-workspace{z-index:1;min-height:100dvh;margin-left:264px;position:relative}.app-shell[data-focus-mode=true] .app-workspace{margin-left:0}.app-shell__page{min-height:100dvh}.app-nav{z-index:40;width:232px;color:var(--color-text-inverse);background:radial-gradient(circle at 100% 0,#635bff52,#0000 15rem),#111827;border:1px solid #ffffff14;border-radius:1.5rem;flex-direction:column;padding:1.15rem;display:flex;position:fixed;top:1rem;bottom:1rem;left:1rem;overflow:hidden;box-shadow:0 30px 80px -38px #111827cc}.app-brand{color:inherit;border-bottom:1px solid #ffffff1a;align-items:center;gap:.75rem;padding:.2rem .15rem 1.4rem;text-decoration:none;display:flex}.app-brand__mark{background:var(--color-sun);color:#111827;width:42px;height:42px;font-family:var(--font-display);letter-spacing:-.08em;border-radius:.75rem;place-items:center;font-size:1.1rem;font-weight:900;display:grid;transform:rotate(-3deg)}.app-brand__copy{line-height:1;display:grid}.app-brand__copy strong{letter-spacing:.18em;font-size:1.05rem;font-weight:900}.app-brand__copy small{color:#f8fafc94;letter-spacing:.04em;margin-top:.3rem;font-size:.66rem;font-weight:700}.app-nav__links{gap:.35rem;margin-top:1.25rem;display:grid}.app-nav__link{color:#f8fafc9e;border-radius:.85rem;grid-template-columns:22px 22px 1fr;align-items:center;gap:.65rem;min-height:52px;padding:.7rem .8rem;font-size:.86rem;font-weight:750;text-decoration:none;transition:color .16s,background .16s,transform .16s;display:grid;position:relative}.app-nav__link:hover{color:var(--color-text-inverse);background:#ffffff0f;transform:translate(2px)}.app-nav__link--active{color:var(--color-text-inverse);background:#ffffff1a}.app-nav__link--active:after{background:var(--color-sun);content:"";border-radius:4px 0 0 4px;width:4px;height:24px;position:absolute;top:50%;right:-1.15rem;transform:translateY(-50%)}.app-nav__link svg,.mobile-nav__link svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.app-nav__index{color:#f8fafc45;letter-spacing:.08em;font-size:.58rem;font-weight:800}.app-nav__link--active .app-nav__index{color:var(--color-sun)}.app-nav__footer{border-top:1px solid #ffffff1a;align-items:flex-start;gap:.65rem;margin-top:auto;padding:1rem .2rem .1rem;display:flex}.app-nav__footer>span:last-child{gap:.18rem;display:grid}.app-nav__footer strong{font-size:.68rem;font-weight:800}.app-nav__footer small{color:#f8fafc73;font-size:.58rem;line-height:1.35}.app-nav__status{background:var(--color-secondary-light);border-radius:50%;flex:none;width:8px;height:8px;margin-top:.25rem;box-shadow:0 0 0 4px #70e1c11f}.mobile-nav{display:none}.scene__orb{z-index:-1;background:radial-gradient(circle,#8a7dff21,#0000 66%);border:1px solid #635bff2e;border-radius:50%;width:420px;height:420px;position:absolute;top:-180px;right:-140px}.scene__orb:before,.scene__orb:after{content:"";border:1px solid #635bff1f;border-radius:50%;position:absolute}.scene__orb:before{top:54px;right:54px;bottom:54px;left:54px}.scene__orb:after{background:var(--color-sun);opacity:.34;top:112px;right:112px;bottom:112px;left:112px}.scene__grid{z-index:-1;opacity:.23;background-image:radial-gradient(#11182729 1px,#0000 1px);background-size:18px 18px;width:18rem;height:18rem;position:absolute;top:15%;left:-8rem;transform:rotate(8deg)}.scene__rule{z-index:-1;opacity:.5;border-top:1px solid #1118271f;border-bottom:1px solid #1118271f;width:18rem;height:5rem;position:absolute;bottom:2rem;right:3rem;transform:rotate(-8deg)}.scene__content{z-index:2;width:min(100%,1280px);max-width:none;margin:0 auto;display:block;position:relative}.home-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:clamp(1.6rem,4vw,3rem);display:flex}.home-header__eyebrow,.page-header__eyebrow,.home-section__header p,.home-feature__label,.play-card__copy>p,.story-library-card__topline,.learning-module__topline,.pronunciation__eyebrow,.game-complete__eyebrow{color:var(--color-text-muted);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:850}.home-header h1{margin:.3rem 0 0;font-size:clamp(2.4rem,5vw,4.6rem);line-height:.98}.home-header__intro{color:var(--color-text-muted);margin:.55rem 0 0;font-size:.95rem;font-weight:650}.home-header__controls{align-items:center;gap:.65rem;display:flex}.home-streak{min-height:46px;color:var(--color-text-muted);background:#ffffffb8;border:1px solid #1118271a;border-radius:.8rem;align-items:center;gap:.35rem;padding:.6rem .8rem;font-size:.72rem;font-weight:750;display:inline-flex}.home-streak strong{color:var(--color-text);font-size:1rem}.home-streak__mark{background:linear-gradient(var(--color-accent-light),var(--color-accent));border-radius:8px;width:8px;height:18px;margin-right:.2rem}.home-audio{width:46px;height:46px;color:var(--color-text-muted);background:#ffffffb8;border:1px solid #1118271a;border-radius:.8rem;place-items:center;display:grid}.home-audio[aria-pressed=false]{opacity:.5}.home-audio svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px}.avatar__ring{background:conic-gradient(from 0deg,var(--color-primary),var(--color-secondary-light),var(--color-sun),var(--color-primary));opacity:.9}.home-dashboard{grid-template-columns:minmax(0,2.1fr) minmax(280px,.9fr);gap:1rem;display:grid}.home-feature{min-height:470px;color:var(--color-text-inverse);isolation:isolate;background:radial-gradient(circle at 90% 10%,#635bff8c,#0000 18rem),linear-gradient(135deg,#111827,#151c2e 65%,#202849);border-radius:1.75rem;grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);display:grid;position:relative;overflow:hidden;box-shadow:0 35px 80px -42px #111827cc}.home-feature:after{z-index:-1;content:"";border:1px solid #ffffff1a;border-radius:50%;width:24rem;height:24rem;position:absolute;bottom:-10rem;right:-8rem;box-shadow:0 0 0 3rem #ffffff05,0 0 0 7rem #ffffff03}.home-feature__copy{flex-direction:column;justify-content:center;min-width:0;padding:clamp(2rem,4vw,4rem);display:flex}.home-feature__label{color:#f8fafc9e;align-items:center;gap:.55rem;display:inline-flex}.home-feature__label>span{background:var(--color-sun);width:26px;height:2px}.home-feature h2{max-width:620px;margin:1.15rem 0 0;font-size:clamp(2.5rem,5vw,5.1rem);line-height:.96}.home-feature__copy>p{color:#f8fafcab;max-width:560px;margin:1.25rem 0 0;font-size:clamp(.95rem,1.4vw,1.05rem)}.home-feature__actions{flex-wrap:wrap;gap:.65rem;margin-top:1.6rem;display:flex}.home-feature .btn--primary{background:var(--color-sun);color:#111827;box-shadow:none}.home-feature .btn--ghost{color:var(--color-text-inverse);box-shadow:none;background:#ffffff12;border-color:#ffffff2b}.home-feature__meta{color:#f8fafc73;letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;gap:.9rem 1.2rem;margin-top:auto;padding-top:2rem;font-size:.67rem;font-weight:700;display:flex}.home-feature__meta strong{color:#f8fafcd1}.home-feature__visual{place-items:center;min-width:0;display:grid;position:relative;overflow:hidden}.home-feature__word{color:#ffffff0e;letter-spacing:-.08em;writing-mode:vertical-rl;font-size:clamp(4rem,8vw,8.5rem);font-weight:950;line-height:.8;position:absolute;top:2.6rem;right:-.35rem}.home-feature__mascot{z-index:2;filter:drop-shadow(0 24px 28px #00000047);place-items:center;padding:0;display:grid;position:relative}.home-feature__ring{color:var(--color-text-inverse);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1118279e;border-radius:50%;place-items:center;display:grid;bottom:1.5rem;right:1.5rem;position:absolute!important}.home-feature__ring strong{font-size:.8rem;font-weight:850}.home-progress-card{min-width:0;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc7;border:1px solid #1118271a;border-radius:1.5rem;flex-direction:column;padding:1.5rem;display:flex}.home-progress-card>header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.home-progress-card>header span{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.home-progress-card>header strong{letter-spacing:-.05em;font-size:1.55rem}.home-progress-card__bar{background:#e1e4da;border-radius:2px;height:8px;margin-top:1rem;overflow:hidden}.home-progress-card__bar span{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light));height:100%;display:block}.home-progress-card>p{color:var(--color-text-muted);margin:.55rem 0 1.6rem;font-size:.72rem;font-weight:650}.home-metrics{border-top:1px solid #1118271a;gap:0;margin:0;display:grid}.home-metrics>div{border-bottom:1px solid #1118271a;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.home-metrics dt{color:var(--color-text-muted);font-size:.76rem;font-weight:700}.home-metrics dd{letter-spacing:-.055em;margin:0;font-size:1.45rem;font-weight:850}.home-progress-card__review{background:var(--color-primary-lighter);color:var(--color-primary-darker);border-radius:.8rem;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding:.8rem .9rem;font-size:.72rem;font-weight:800;text-decoration:none;display:flex}.home-progress-card__review strong{font-size:1.05rem}.home-section{margin-top:clamp(3rem,6vw,5.5rem)}.home-section__header{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.25rem;display:flex}.home-section__header h2{margin:.3rem 0 0;font-size:clamp(1.8rem,4vw,3.4rem);line-height:1}.home-section__header>a{color:var(--color-text-muted);flex:none;font-size:.76rem;font-weight:800;text-decoration:none}.home-section__header>a:hover{color:var(--color-primary-dark)}.home-module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.home-module{min-height:310px;color:var(--color-text);background:#ffffffc7;border:1px solid #1118271a;border-radius:1.35rem;flex-direction:column;padding:1.35rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.home-module:hover{box-shadow:var(--shadow-elevated);border-color:#635bff47;transform:translateY(-5px)}.home-module__index{color:var(--color-text-soft);letter-spacing:.12em;font-size:.66rem;font-weight:850}.home-module__glyph{height:118px;color:var(--color-primary-dark);letter-spacing:-.14em;justify-content:center;align-items:center;font-size:4.4rem;font-weight:900;display:flex;position:relative}.home-module__glyph span:first-child{transform:translate(5px,-7px)}.home-module__glyph span:last-child{color:var(--color-accent);transform:translate(-5px,8px)}.home-module--stories .home-module__glyph{color:var(--color-secondary-dark);font-family:Georgia,serif;font-size:7rem;line-height:1}.home-module__wave{justify-content:center;align-items:center;gap:.38rem;height:118px;display:flex}.home-module__wave span{background:linear-gradient(var(--color-primary-light),var(--color-primary-dark));border-radius:2px;width:7px}.home-module p{color:var(--color-text-muted);letter-spacing:.12em;text-transform:uppercase;margin:auto 0 .35rem;font-size:.65rem;font-weight:850}.home-module h3{letter-spacing:-.035em;max-width:300px;margin:0;font-size:1.25rem;line-height:1.14}.home-module__arrow{border:1px solid #1118271f;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid;position:absolute;top:1rem;right:1rem}.home-preferences{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:1rem;margin-top:1rem;padding-bottom:1rem;display:grid}.home-companion,.home-sound{background:#ffffff85;border:1px solid #1118271a;border-radius:1rem;min-width:0;padding:1rem;position:relative}.home-companion .companion-control__button{width:100%}.home-sound{justify-content:space-between;align-items:center;gap:1rem;display:flex}.home-sound>span{color:var(--color-text-muted);font-size:.72rem;font-weight:800}.home-sound .sfx-toggle{margin:0}.companion-control__button>span:nth-child(2){flex:1}.companion-control__button small{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.61rem}.companion-control__button strong{margin-top:.2rem;font-size:.95rem}.companion-control__action,.mascot-picker__eyebrow{color:var(--color-primary-dark)}.mascot-option{background:#f6f7f2;border-color:#1118271a;border-radius:.9rem}.page-header{border-bottom:1px solid #1118271f;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;margin-bottom:clamp(2rem,5vw,4rem);padding-bottom:1.5rem;display:grid}.page-header__copy h1{max-width:900px;margin:.45rem 0 0;font-size:clamp(2.65rem,6vw,5.8rem);line-height:.94}.page-header__copy>p:last-child{max-width:660px;color:var(--color-text-muted);margin:1rem 0 0;font-size:clamp(.95rem,1.5vw,1.08rem)}.page-header__metric{border-left:1px solid #11182724;justify-items:end;min-width:130px;padding-left:1.5rem;display:grid}.page-header__metric strong{letter-spacing:-.065em;font-size:clamp(2rem,4vw,3.6rem);line-height:1}.page-header__metric span{color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase;margin-top:.35rem;font-size:.61rem;font-weight:800}.btn{border-radius:var(--radius-button);min-height:50px;color:var(--color-text);font-family:var(--font-body);letter-spacing:-.01em;border:1px solid #0000;padding:.8rem 1.15rem;font-size:.88rem;font-weight:800;text-decoration:none;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s;overflow:hidden}.btn--primary:hover:not(:disabled){background:var(--color-primary-darker);filter:none;transform:translateY(-2px);box-shadow:0 18px 30px -18px #211b69cc}.btn--ghost{box-shadow:none;color:var(--color-text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;border-color:#11182721}.btn--ghost:hover:not(:disabled){background:#fff;border-color:#635bff52}.card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe0;border:1px solid #1118271a;padding:clamp(1.25rem,3vw,2rem)}.card--solid{background:#fff}.route-overview{background:#ffffffa8;border:1px solid #1118271a;border-radius:1rem;grid-template-columns:minmax(170px,auto) minmax(220px,1fr) auto;align-items:center;gap:1.25rem;margin-bottom:1rem;padding:1rem 1.1rem;display:grid}.route-overview__copy{display:grid}.route-overview__copy span{color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.61rem;font-weight:800}.route-overview__copy strong{margin-top:.18rem;font-size:.8rem}.learn-page__progress-fill,.lesson-progress__fill,.story-progress__fill{border-radius:inherit;background:linear-gradient(90deg,var(--color-primary-dark),var(--color-primary-light))}.route-overview__percent{font-size:.76rem;font-weight:850}.learning-path{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.learning-path>li,.learning-path>li>a,.learning-path>li>div{min-width:0;height:100%;color:inherit;text-decoration:none;display:flex}.learning-module{width:100%;min-height:315px;animation:.42s cubic-bezier(.22,1,.36,1) both module-enter;animation-delay:calc(var(--unit-index) * 35ms);background:#ffffffd1;border:1px solid #1118271c;border-radius:1.25rem;flex-direction:column;padding:1.15rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 38px -32px #11182775}@keyframes module-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.learning-path a:hover .learning-module{border-color:var(--unit-color)}@supports (color:color-mix(in lab,red,red)){.learning-path a:hover .learning-module{border-color:color-mix(in srgb,var(--unit-color) 52%,#a7acb7)}}.learning-path a:hover .learning-module{box-shadow:var(--shadow-elevated);transform:translateY(-5px)}.learning-module:before{background:var(--unit-color);content:"";height:4px;position:absolute;top:0;left:0;right:0}.learning-module__topline{color:var(--color-text-soft);justify-content:space-between;align-items:center;gap:.6rem;display:flex}.learning-module__status{letter-spacing:.06em;align-items:center;gap:.35rem;display:inline-flex}.learning-module__status i{background:var(--color-primary);border-radius:50%;width:6px;height:6px}.learning-module--complete .learning-module__status i{background:var(--color-success)}.learning-module--locked .learning-module__status i{background:var(--color-text-soft)}.learning-module__body{grid-template-columns:68px minmax(0,1fr);align-items:center;gap:1rem;margin-top:2rem;display:grid}.learning-module__visual{background:var(--unit-color);border-radius:1rem;place-items:center;width:68px;height:68px;display:grid}@supports (color:color-mix(in lab,red,red)){.learning-module__visual{background:color-mix(in srgb,var(--unit-color) 14%,#f5f6f1)}}.learning-module__visual>span{filter:saturate(.75);font-size:2.35rem}.learning-module__copy p{color:var(--unit-color);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.64rem;font-weight:850}.learning-module__copy h2{margin:.25rem 0 0;font-size:1.35rem;line-height:1}.learning-module__copy>span{color:var(--color-text-muted);margin-top:.55rem;font-size:.74rem;line-height:1.4;display:block}.learning-module__progress{margin-top:auto;padding-top:2rem}.learning-module__bar{background:#e0e3da;border-radius:1px;height:5px;overflow:hidden}.learning-module__bar span{background:var(--unit-color);height:100%;display:block}.learning-module__progress-copy{justify-content:space-between;align-items:center;gap:.6rem;margin-top:.65rem;font-size:.63rem;display:flex}.learning-module__progress-copy span{color:var(--color-text-muted)}.learning-module__progress-copy strong{text-align:right}.learning-module__action{display:none;position:absolute;bottom:4.05rem;right:1rem}.learning-module--locked{filter:grayscale(.6);opacity:.68;background:#f1f2edbd}.practice-toolbar{background:#ffffffb3;border:1px solid #1118271a;border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.1rem;display:flex}.practice-toolbar>div{align-items:center;gap:.8rem;display:flex}.practice-toolbar__index{background:var(--color-bg-deep);width:38px;height:38px;color:var(--color-sun);border-radius:.65rem;place-items:center;font-size:.78rem;font-weight:850;display:grid}.practice-toolbar p{color:var(--color-text-muted);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.61rem;font-weight:800}.practice-toolbar strong{margin-top:.1rem;font-size:.9rem;display:block}.practice-toolbar__select{display:block;position:relative}.practice-toolbar__select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:210px;min-height:46px;color:var(--color-text);font:inherit;background:#fff;border:1px solid #11182721;border-radius:.75rem;padding:.6rem 2.5rem .6rem .85rem;font-size:.76rem;font-weight:750}.practice-toolbar__select svg{fill:none;stroke:currentColor;stroke-width:1.8px;pointer-events:none;width:18px;position:absolute;top:50%;right:.8rem;transform:translateY(-50%)}.practice-toolbar__loading{color:var(--color-text-muted);font-size:.74rem;font-weight:750}.play-hub__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.play-card{min-height:330px;box-shadow:var(--shadow-card);color:var(--color-text);animation:.42s cubic-bezier(.22,1,.36,1) both module-enter;animation-delay:calc(var(--card-index) * 45ms);background:#ffffffd6;border:1px solid #1118271c;border-radius:1.25rem;flex-direction:column;gap:0;padding:1.25rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.play-card:before{background:var(--card-color);content:"";height:5px;position:absolute;top:0;left:0;right:0}.play-card:hover{border-color:var(--card-color)}@supports (color:color-mix(in lab,red,red)){.play-card:hover{border-color:color-mix(in srgb,var(--card-color) 55%,#a7acb7)}}.play-card__topline{color:var(--color-text-soft);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.62rem;font-weight:850;display:flex}.play-card__symbol{background:var(--card-color);color:#111827;letter-spacing:-.04em;border-radius:1.1rem;place-items:center;width:76px;height:76px;margin-top:1.6rem;font-size:1.25rem;font-weight:900;display:grid;transform:rotate(-2deg)}.play-card__copy{margin-top:1.3rem}.play-card__copy>p{color:var(--color-text-muted)}.play-card__copy h2{margin:.25rem 0 0;font-size:1.55rem;line-height:1}.play-card__copy>span{max-width:420px;color:var(--color-text-muted);margin-top:.65rem;font-size:.78rem;line-height:1.45;display:block}.play-card__footer{border-top:1px solid #1118271a;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1rem;font-size:.7rem;display:flex}.play-card__footer>span{color:var(--color-text-muted)}.play-card__footer strong{font-weight:850}.play-hub__note{color:var(--color-text-soft);margin:1.5rem auto 0;font-size:.7rem;line-height:1.5}.app-shell{background:radial-gradient(at top,#fffcf5,#fceddd 55%,#f2d6b4);min-height:100dvh;position:relative;overflow:hidden}.app-shell:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 10%,#f7c99a4d,#0000 35%),radial-gradient(circle at 85% 80%,#92aed424,#0000 40%),radial-gradient(circle,#d86d6d0f,#0000 60%);position:absolute;top:0;right:0;bottom:0;left:0}.app-shell>*{z-index:1;position:relative}.mascot{filter:drop-shadow(0 12px 24px #e0880040);line-height:0;display:inline-block}.mascot__svg{width:100%;height:100%;overflow:visible}.companion-control{justify-content:center;margin:.15rem 0 .85rem;display:flex}.companion-control__button{min-height:44px;color:var(--color-text);cursor:pointer;font:inherit;text-align:left;background:#fffef9b8;border:1px solid #2d1b0e1a;border-radius:9999px;align-items:center;gap:.6rem;padding:.42rem .8rem .42rem .6rem;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 7px 16px -12px #2d1b0e73}.companion-control__button:hover{background:#fffef9f0;transform:translateY(-2px);box-shadow:0 10px 20px -13px #2d1b0e85}.companion-control__button:focus-visible,.mascot-option:focus-visible,.mascot-picker__close:focus-visible{outline-offset:3px;outline:3px solid #4f8dfd6b}.companion-control__dot{border:2px solid #ffffffe6;border-radius:9999px;width:.9rem;height:.9rem;box-shadow:0 1px 4px #2d1b0e38}.companion-control__button strong,.companion-control__button small{line-height:1.05;display:block}.companion-control__button strong{font-family:var(--font-display);font-size:.92rem}.companion-control__button small{color:var(--color-text-muted);margin-top:.1rem;font-size:.68rem;font-weight:800}.companion-control__action{color:var(--color-primary);margin-left:.15rem;font-size:.75rem;font-weight:900}.mascot-picker{background:linear-gradient(145deg,#fffef9eb,#fff3e5db);border:1px solid #ffffffc2;border-radius:1.5rem;width:min(100%,760px);margin:0 auto 1.15rem;padding:1rem;box-shadow:0 18px 34px -24px #2d1b0e8c}.mascot-picker__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.mascot-picker__eyebrow{color:var(--color-primary);letter-spacing:.11em;text-transform:uppercase;margin:0 0 .12rem;font-size:.68rem;font-weight:900}.mascot-picker__title{font-family:var(--font-display);margin:0;font-size:clamp(1.25rem,3vw,1.65rem);line-height:1}.mascot-picker__subtitle{color:var(--color-text-muted);margin:.35rem 0 0;font-size:.84rem;font-weight:700}.mascot-picker__close{width:2rem;height:2rem;color:var(--color-text);cursor:pointer;background:#2d1b0e12;border:0;border-radius:9999px;flex:none;place-items:center;font-size:1.4rem;line-height:1;transition:background .18s,transform .18s;display:grid}.mascot-picker__close:hover{background:#2d1b0e21;transform:rotate(8deg)}.mascot-picker__options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.mascot-option{min-width:0;min-height:163px;color:var(--color-text);cursor:pointer;font:inherit;text-align:center;background:#ffffff8c;border:2px solid #2d1b0e14;border-radius:1.1rem;flex-direction:column;justify-content:flex-end;align-items:center;padding:.65rem .45rem .7rem;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.mascot-option:before{background:radial-gradient(circle at 50% 38%,var(--mascot-color),transparent 65%);position:absolute;top:0;right:0;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.mascot-option:before{background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--mascot-color) 21%,transparent),transparent 65%)}}.mascot-option:before{content:"";opacity:0;transition:opacity .18s}.mascot-option:hover,.mascot-option--selected{border-color:var(--mascot-color);box-shadow:0 10px 20px -17px var(--mascot-color);background:#ffffffe0}@supports (color:color-mix(in lab,red,red)){.mascot-option:hover,.mascot-option--selected{box-shadow:0 10px 20px -17px color-mix(in srgb,var(--mascot-color) 80%,#2d1b0e)}}.mascot-option:hover,.mascot-option--selected{transform:translateY(-3px)}.mascot-option:hover:before,.mascot-option--selected:before{opacity:1}.mascot-option__art,.mascot-option__copy,.mascot-option__check{z-index:1;position:relative}.mascot-option__art{place-items:center;min-height:91px;display:grid}.mascot-option__art .mascot{filter:drop-shadow(0 7px 9px #2d1b0e29)}.mascot-option__copy{gap:.16rem;display:grid}.mascot-option__copy strong{font-family:var(--font-display);font-size:1rem;line-height:1}.mascot-option__copy small{color:var(--color-text-muted);font-size:.62rem;font-weight:800;line-height:1.15}.mascot-option__check{background:var(--mascot-color);color:#fff;opacity:0;border-radius:9999px;place-items:center;width:1.25rem;height:1.25rem;font-size:.72rem;font-weight:900;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:.4rem;right:.4rem;transform:scale(.6)}.mascot-option--selected .mascot-option__check{opacity:1;transform:scale(1)}@media (max-width:620px){.mascot-picker{border-radius:1.25rem;padding:.85rem}.mascot-picker__options{grid-template-columns:repeat(2,minmax(0,1fr))}.mascot-option{min-height:145px}.mascot-option__art{min-height:78px}}.bg-decor{pointer-events:none;z-index:0;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.bg-decor__cloud{fill:#fff;opacity:.55;position:absolute}.bg-decor__cloud--1{width:180px;animation:60s linear infinite cloud-drift-1;top:8%;left:-5%}.bg-decor__cloud--2{opacity:.45;width:220px;animation:75s linear infinite cloud-drift-2;top:22%;right:-8%}.bg-decor__cloud--3{opacity:.5;width:140px;animation:50s linear infinite cloud-drift-3;bottom:18%;left:8%}@keyframes cloud-drift-1{0%{transform:translate(0)}to{transform:translate(calc(100vw + 360px))}}@keyframes cloud-drift-2{0%{transform:translate(0)}to{transform:translate(calc(-100vw - 360px))}}@keyframes cloud-drift-3{0%{transform:translate(0)}to{transform:translate(calc(100vw + 280px))}}.bg-decor__star{fill:#ffd23f;animation:3s ease-in-out infinite twinkle;position:absolute}.bg-decor__star--1{width:18px;animation-delay:0s;top:12%;right:15%}.bg-decor__star--2{width:14px;animation-delay:.6s;top:32%;left:12%}.bg-decor__star--3{width:12px;animation-delay:1.2s;top:6%;left:45%}.bg-decor__star--4{width:16px;animation-delay:1.8s;bottom:30%;right:10%}.bg-decor__star--5{width:12px;animation-delay:2.4s;bottom:12%;right:30%}@keyframes twinkle{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.card{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid #fff9;padding:1.75rem}.card--solid{background:var(--color-surface);-webkit-backdrop-filter:none}.btn{border-radius:var(--radius-button);font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;isolation:isolate;justify-content:center;align-items:center;gap:.625rem;min-height:64px;padding:1.125rem 2rem;font-size:1.0625rem;font-weight:600;transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .16s,filter .16s;display:inline-flex;position:relative}.btn:before{content:"";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#ffffff40,#0000 50%);position:absolute;top:0;right:0;bottom:0;left:0}.btn>*{z-index:2;position:relative}.btn--primary{color:#fff8ee;background:linear-gradient(#f1a66a,#e08543);box-shadow:inset 0 1px #fff6,0 1px 2px #b8642833,0 8px 20px -8px #e085438c}.btn--primary:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-2px);box-shadow:inset 0 1px #ffffff80,0 2px 4px #b8642840,0 14px 28px -8px #e08543a6}.btn--primary:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #fff6,0 1px 2px #b8642833}.btn--secondary{color:#fffcf5;background:linear-gradient(#92aed4,#6386bc);box-shadow:inset 0 1px #fff6,0 1px 2px #3d5c8f33,0 8px 20px -8px #6386bc80}.btn--secondary:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-2px);box-shadow:inset 0 1px #ffffff80,0 14px 28px -8px #6386bc99}.btn--secondary:active:not(:disabled){transform:translateY(2px)}.btn--ghost{-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-soft);color:var(--color-text-muted);background:#fff9;border:1px solid #fffc}.btn--ghost:hover:not(:disabled){color:var(--color-text);background:#ffffffe6}.btn--big{min-height:76px;padding:1.375rem 2.5rem;font-size:1.25rem}.btn--full{width:100%}.btn{min-height:48px;font-weight:700;overflow:hidden}@media (pointer:coarse){.btn{min-height:64px;font-size:1rem}}.btn:disabled{opacity:.55;cursor:default}.btn:focus-visible{outline-offset:3px;outline:3px solid #4f8dfd80}.btn__ripples{pointer-events:none;z-index:1;position:absolute;top:0;right:0;bottom:0;left:0}.btn__ripple{background:#ffffff8c;border-radius:9999px;animation:.6s cubic-bezier(.16,1,.3,1) forwards btn-ripple;position:absolute;transform:translate(-50%,-50%)scale(0)}@keyframes btn-ripple{to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.stat{-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #fffc;border-radius:1rem;flex-direction:column;flex:1;align-items:center;gap:.25rem;padding:.875rem .5rem;transition:transform .2s,box-shadow .2s;display:flex}.stat:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}.stat__icon{font-size:1.5rem;line-height:1}.stat__value{font-family:var(--font-display);color:var(--color-text);font-size:1.5rem;font-weight:700;line-height:1}.stat__label{color:var(--color-text-muted);letter-spacing:.02em;text-transform:lowercase;font-size:.75rem;font-weight:600}.badge{letter-spacing:.01em;-webkit-backdrop-filter:blur(8px);color:var(--color-text-muted);background:#ffffffb3;border-radius:9999px;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge--accent{color:#fff;background:linear-gradient(135deg,#f99,#ff6b6b)}.divider{background:linear-gradient(90deg,#0000,#1a202c14,#0000);height:1px}.star{color:var(--color-primary);filter:drop-shadow(0 1px #0000001a);display:inline-block}.learn-page,.lesson-page{width:100%;max-width:760px;margin:0 auto;padding:1.5rem 1.25rem 2rem}.learn-page__header,.lesson-header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.learn-page__back{width:48px;height:48px;color:var(--color-text);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);background:#ffffffb8;border-radius:9999px;justify-content:center;align-items:center;transition:transform .16s,background .16s;display:inline-flex}.learn-page__back:hover{background:#fff;transform:translateY(-2px)}.learn-page__title,.lesson-header__title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:1.75rem;line-height:1}.learn-page__subtitle,.lesson-header__eyebrow{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.875rem;font-weight:700}.learn-page__progress{-webkit-backdrop-filter:blur(16px);background:#ffffff85;border-radius:1.25rem;margin-bottom:1rem;padding:1rem}.learn-page__progress-bar,.lesson-progress{background:#ffffffbf;border-radius:9999px;height:10px;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a1a}.learn-page__progress-fill,.lesson-progress__fill{border-radius:inherit;background:linear-gradient(90deg,#ffa62b,#ff6b6b,#4f8dfd);height:100%;transition:width .3s}.learn-page__progress-label{text-align:center;color:var(--color-text-muted);margin:.5rem 0 0;font-size:.75rem;font-weight:700}.learn-page__loading{min-height:50vh;font-family:var(--font-display);color:var(--color-text-muted);place-items:center;font-size:1.25rem;display:grid}.island-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.25rem;display:grid}.island{min-height:220px;color:var(--color-text);isolation:isolate;opacity:0;animation:.36s cubic-bezier(.22,1,.36,1) forwards island-enter;animation-delay:calc(var(--island-index,0) * 50ms);flex-direction:column;padding:1.25rem 1rem 1.5rem;text-decoration:none;transition:transform .22s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:visible;transform:translateY(10px)scale(.96)}@keyframes island-enter{to{opacity:1;transform:translateY(0)scale(1)}}.island:hover{transform:translateY(-4px)rotate(-.5deg)}.island__shape{z-index:-1;filter:drop-shadow(0 12px 20px #0f172a1f);width:100%;height:100%;transition:filter .22s;position:absolute;top:0;right:0;bottom:0;left:0}.island:hover .island__shape{filter:drop-shadow(0 18px 28px #0f172a2e)}.island__inner{z-index:1;flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.island__hero{filter:drop-shadow(0 8px 14px #0f172a33);animation:5s ease-in-out infinite island-hero-bob;animation-delay:calc(var(--island-index,0) * -.6s);transform-origin:bottom;margin-bottom:.5rem;font-size:3.75rem;line-height:1}@keyframes island-hero-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-5px)rotate(2deg)}}.island__hero--dim{filter:grayscale(.6)brightness(1.05);opacity:.75;animation:none}.island__body{text-align:center;width:100%}.island__title-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.island__name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.05rem;font-weight:700;line-height:1}.island__name--dim{color:var(--color-text-muted)}.island__count{color:var(--color-text-muted);background:#fffef9c7;border-radius:9999px;padding:.2rem .55rem;font-size:.7rem;font-weight:800}.island__desc{color:#2d1b0ebf;margin:0 0 .6rem;font-size:.74rem;font-weight:600;line-height:1.25}.island__stars{justify-content:center;gap:.18rem;font-size:1.2rem;line-height:1;display:flex}.island__star{color:#2d1b0e40;transition:color .2s}.island__star--filled{color:#f2b85c;filter:drop-shadow(0 1px #b8642866);animation:.36s cubic-bezier(.34,1.56,.64,1) backwards island-star-pop;animation-delay:calc(var(--star-index,0) * 80ms)}@keyframes island-star-pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}.island__arrow{color:#2d1b0e8c;-webkit-backdrop-filter:blur(8px);background:#fffef9b3;border-radius:9999px;place-items:center;width:32px;height:32px;transition:transform .2s,color .2s;display:inline-grid;position:absolute;top:.85rem;right:.85rem}.island:hover .island__arrow{color:var(--color-text);transform:translate(4px)}.island--locked{filter:saturate(.4);cursor:not-allowed}.island--locked:hover{transform:none}.island__locked-overlay{z-index:2;text-align:center;-webkit-backdrop-filter:blur(6px);background:#fffef999;border-radius:1.4rem;place-content:center;gap:.4rem;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.island__locked-label{max-width:140px;color:var(--color-text-muted);margin:0;font-size:.75rem;font-weight:800}.island__inner--locked{pointer-events:none}.world-map-page .learn-page__progress{margin-bottom:.85rem}.world-map{background:linear-gradient(#fce4d2,#f2d6b4);border-radius:1.25rem;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff9,0 12px 36px -16px #2d1b0e2e}.world-map__svg{width:100%;height:auto;display:block}.world-map-node .node-visual{transform-box:fill-box;transform-origin:50%;will-change:transform;transition:transform .24s cubic-bezier(.22,1,.36,1)}.world-map-page a:hover .node-visual,.world-map-page a:focus-visible .node-visual{transform:translateY(-6px)}.world-map-node .pin-body,.world-map-page a:hover circle{transition:stroke-width .2s}.world-map-page a:hover circle,.world-map-page a:focus-visible circle{stroke-width:4.5px}.world-map--horizontal{display:block}.world-map--vertical-wrap{display:none}@media (max-width:600px){.world-map--horizontal{display:none}.world-map--vertical-wrap{display:block}}.world-map--vertical{background:linear-gradient(#fce4d2,#f2d6b4);border-radius:1.25rem;width:100%;overflow:hidden;box-shadow:inset 0 1px #fff9,0 12px 36px -16px #2d1b0e2e}.world-map__svg--vertical{width:100%;height:auto;display:block}.vnode-visual{transform-box:fill-box;transform-origin:80px;transition:filter .2s}.world-map-page a:hover .vnode-visual circle{filter:drop-shadow(0 6px 10px #e0854366)}@keyframes curtain-spin{to{transform:rotate(360deg)}}.curtain{z-index:100;pointer-events:none;place-items:center;transition:transform .32s cubic-bezier(.83,0,.17,1);display:grid;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;transform:translateY(-101%)}.curtain[data-state=closing]{transform:translateY(0)}.curtain__panel{background:radial-gradient(80% 60% at 50% 20%,#f7c99a80,#0000 60%),linear-gradient(#e08543,#d86d6d 60%,#a04646);position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 80px #2d1b0e2e}.curtain__loader{color:var(--color-text);font-family:var(--font-display);letter-spacing:.01em;z-index:1;background:#fffef9eb;border-radius:9999px;align-items:center;gap:.85rem;padding:.85rem 1.25rem;font-size:1rem;font-weight:700;display:flex;position:relative;box-shadow:0 10px 24px -8px #2d1b0e66}.curtain__spinner{border:3px solid #e0854333;border-top-color:var(--color-primary);border-radius:9999px;width:22px;height:22px;animation:.75s linear infinite curtain-spin}.curtain__label{white-space:nowrap}.route-loader-toast{z-index:90;background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(18px)saturate(180%);box-shadow:var(--shadow-elevated);color:var(--color-text);border:1px solid #ffffffa6;border-radius:9999px;align-items:center;gap:.6rem;padding:.55rem .85rem;font-size:.85rem;font-weight:700;display:flex;position:fixed;bottom:1rem;right:1rem}.route-loader-toast__spinner{border:2.5px solid #e085432e;border-top-color:var(--color-primary);border-radius:9999px;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite curtain-spin}@media (prefers-reduced-motion:reduce){.curtain__spinner,.route-loader-toast__spinner{animation:none}}.lesson-header__copy{flex:1}.lesson-header__toggle{min-width:82px;height:44px;color:var(--color-text-muted);box-shadow:var(--shadow-soft);background:#ffffffb8;border-radius:9999px;padding:0 .75rem;font-weight:800}.lesson-steps{justify-content:center;gap:.45rem;margin-bottom:1rem;display:flex}.lesson-step{width:28px;height:28px;color:var(--color-text-soft);background:#ffffffa6;border-radius:9999px;place-items:center;font-size:.75rem;font-weight:900;display:inline-grid}.lesson-step--active{color:#5c3300;box-shadow:var(--shadow-glow-primary);background:linear-gradient(#ffc869,#ffa62b)}.lesson-card{justify-content:center;align-items:center;min-height:410px;display:flex;position:relative}.lesson-footer{grid-template-columns:1fr 1.4fr;align-items:stretch;gap:.6rem;margin-top:1rem;display:grid}.lesson-footer>*{width:100%;display:flex}.lesson-footer .btn{width:100%}.step{text-align:center;width:100%}.step__image-wrap{width:180px;height:180px;box-shadow:var(--shadow-card);background:#ffffff94;border-radius:2rem;place-items:center;display:inline-grid;position:relative}.step__speak-fab{color:#fff;width:58px;height:58px;box-shadow:var(--shadow-glow-secondary);background:linear-gradient(#7baeff,#4f8dfd);border-radius:9999px;place-items:center;display:inline-grid;position:absolute;bottom:-8px;right:-8px}.step__word{font-family:var(--font-display);text-transform:uppercase;color:var(--color-text);margin:1.25rem 0 .2rem;font-size:3.25rem;line-height:1}.step__translation{min-height:1.75rem;color:var(--color-text-muted);margin:0;font-size:1.2rem;font-weight:800}.step__translation--hidden{opacity:.25;filter:blur(5px);-webkit-user-select:none;user-select:none}.step__toggle{color:var(--color-text-muted);background:#ffffffb8;border-radius:9999px;margin-top:1rem;padding:.6rem 1rem;font-weight:800}.step__prompt{font-family:var(--font-display);color:var(--color-text);margin:0 0 1.25rem;font-size:1.8rem;line-height:1.1}.step__prompt-hint{color:var(--color-text-muted);font-size:1.1rem}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.choice{min-height:128px;box-shadow:var(--shadow-soft);background:#ffffffb8;border-radius:1.5rem;place-items:center;transition:transform .16s,background .16s,opacity .16s;display:grid;position:relative}.choice:hover:not(:disabled){background:#fff;transform:translateY(-3px)}.choice__emoji{font-size:3.75rem;line-height:1}.choice--correct{background:#bddcd2}@supports (color:color-mix(in lab,red,red)){.choice--correct{background:color-mix(in srgb,var(--color-success) 28%,white)}}.choice--wrong{background:#f7dbd8}@supports (color:color-mix(in lab,red,red)){.choice--wrong{background:color-mix(in srgb,var(--color-accent) 20%,white)}}.choice--wrong{animation:.28s ease-in-out choice-shake}.choice--dim{opacity:.5}.choice__badge{background:var(--color-success);color:#fff;border-radius:9999px;place-items:center;width:30px;height:30px;font-weight:900;display:inline-grid;position:absolute;top:.7rem;right:.7rem}.step__retry,.step__hint{color:var(--color-text-muted);margin:1rem 0 0;font-weight:800}.recall-speaker{color:#fff;width:96px;height:96px;box-shadow:var(--shadow-glow-secondary);background:linear-gradient(#7baeff,#4f8dfd);border-radius:2rem;place-items:center;margin-bottom:1.25rem;font-size:3rem;display:inline-grid}.step__sentence{font-family:var(--font-display);background:#ffffffb8;border-radius:1.25rem;margin:0 0 1.25rem;padding:1rem 1.2rem;font-size:1.8rem;line-height:1.2;display:inline-block}.use-word--filled{color:#5c3300;background:linear-gradient(#ffc869,#ffa62b);border-radius:.75rem;padding:.15rem .5rem}.step--earn{align-content:center;place-items:center;min-height:350px;display:grid;position:relative;overflow:hidden}.earn__title,.lesson-complete__title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:2.7rem}.earn__subtitle,.lesson-complete__copy{color:var(--color-text-muted);margin:.6rem 0 1rem;font-size:1.05rem;font-weight:800}.earn__star{box-shadow:var(--shadow-soft);background:#ffffffbf;border-radius:9999px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-weight:900;display:inline-flex}.lesson-page--complete{place-items:center;min-height:85vh;display:grid}.lesson-complete-card{text-align:center;width:min(100%,460px)}.lesson-complete__stars{letter-spacing:.1rem;margin:.75rem 0 1.2rem;font-size:1.9rem}.lesson-complete__actions{gap:.75rem;display:grid}.confetti{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.confetti__piece{border-radius:3px;width:10px;height:14px;animation:1.2s cubic-bezier(.32,.72,.51,1) forwards confetti-fall;position:absolute;top:-16px}@keyframes choice-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes confetti-fall{to{transform:translate(var(--x-end),440px) rotate(var(--rotate-end));opacity:0}}@media (max-width:560px){.island-grid{grid-template-columns:1fr}.lesson-card{min-height:390px;padding:1rem}.lesson-footer{grid-template-columns:1fr 1.4fr;gap:.5rem}.step__word{font-size:2.7rem}}.play-hub__intro{color:var(--color-text-muted);margin:0 0 1rem;font-size:.95rem;font-weight:700}.play-hub__units{-webkit-backdrop-filter:blur(14px);background:#ffffff8c;border-radius:1.25rem;margin-bottom:1.25rem;padding:1rem}.play-hub__unit-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.play-hub__unit-list li{box-shadow:var(--shadow-soft);background:#ffffffd9;border-radius:9999px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.85rem;font-weight:700;display:inline-flex}.play-hub__grid{gap:.85rem;display:grid}.play-card{color:var(--color-text);background:radial-gradient(circle at 15% 0%,#fff9,transparent 50%),linear-gradient(160deg,var(--card-color),var(--card-color));border-radius:1.4rem;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;text-decoration:none;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){.play-card{background:radial-gradient(circle at 15% 0%,#fff9,transparent 50%),linear-gradient(160deg,color-mix(in srgb,var(--card-color) 80%,white),var(--card-color))}}.play-card{box-shadow:var(--shadow-card);transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s}.play-card__emoji{font-size:2.6rem;line-height:1}.play-card__title{font-family:var(--font-display);margin:0 0 .15rem;font-size:1.2rem}.play-card__desc{color:#1a202cbf;margin:0;font-size:.85rem;font-weight:700}.play-card__arrow{color:#1a202c8c;font-size:1.5rem}.play-hub__note{text-align:center;color:var(--color-text-soft);margin-top:1.25rem;font-size:.78rem}.memory-stats{background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-soft);color:var(--color-text-muted);border-radius:9999px;justify-content:space-between;align-items:center;margin-bottom:.85rem;padding:.65rem 1.1rem;font-weight:800;display:flex}.memory-stats strong{color:var(--color-text);font-family:var(--font-display);margin-right:.2rem;font-size:1.1rem}.memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.memory-card{aspect-ratio:1;perspective:800px;cursor:pointer;opacity:0;width:100%;animation:.32s cubic-bezier(.22,1,.36,1) forwards memory-card-enter;animation-delay:calc(var(--card-index,0) * 32ms);background:0 0;border:0;padding:0;position:relative;transform:translateY(8px)scale(.92)}@keyframes memory-card-enter{to{opacity:1;transform:translateY(0)scale(1)}}.memory-card:not(:disabled):hover{transform:translateY(-2px)scale(1.04)}.memory-card:not(:disabled):active{transform:scale(.96)}.memory-card--flipped,.memory-card--matched{opacity:1;animation:none;transform:none}.memory-card--matched{opacity:.5;pointer-events:none}.memory-card__inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .48s cubic-bezier(.22,1,.36,1);position:relative}.memory-card--flipped .memory-card__inner{transform:rotateY(180deg)}.memory-card__face{backface-visibility:hidden;box-shadow:var(--shadow-soft);border-radius:1rem;place-items:center;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.memory-card__face--back{color:#fffcf5;background:linear-gradient(160deg,#f1a66a,#e08543);font-size:2.4rem}.memory-card__face--front{background:var(--color-surface);border:2px solid #ffffffb3;position:relative;transform:rotateY(180deg)}.memory-card--matched .memory-card__face--front{background:#cbe4db}@supports (color:color-mix(in lab,red,red)){.memory-card--matched .memory-card__face--front{background:color-mix(in srgb,var(--color-success) 22%,var(--color-surface))}}.memory-card--matched .memory-card__face--front{border-color:var(--color-success)}.memory-card__back-emoji{filter:drop-shadow(0 2px #00000026);display:inline-block}.memory-card__emoji{font-size:2.8rem;line-height:1}.memory-card__word{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text);font-size:1.05rem;font-weight:800}.memory-card__check{background:var(--color-success);color:#fff;border-radius:9999px;place-items:center;width:28px;height:28px;font-size:.95rem;font-weight:900;display:inline-grid;position:absolute;top:.4rem;right:.4rem;box-shadow:0 2px 6px #6baa7c73}.recall-stage{flex-direction:column;align-items:center;gap:.85rem;margin:.5rem 0 1.25rem;display:flex}.recall-prompt{color:var(--color-text-muted);margin:0;font-weight:700}.recall-speaker{color:#fff;cursor:pointer;background:linear-gradient(#92aed4,#6386bc);border:0;border-radius:2rem;place-items:center;width:96px;height:96px;font-size:3rem;transition:transform .16s;animation:1.6s ease-in-out infinite recall-pulse;display:inline-grid}.recall-speaker:hover{transform:scale(1.04)rotate(-3deg)}.recall-speaker:active{transform:scale(.94)}@keyframes recall-pulse{0%,to{transform:scale(1);box-shadow:0 8px 24px -8px #6386bc66}50%{transform:scale(1.04);box-shadow:0 12px 36px -4px #6386bcb3}}.recall-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.recall-choice{background:var(--color-surface);min-height:132px;box-shadow:var(--shadow-soft);cursor:pointer;opacity:0;animation:.32s cubic-bezier(.22,1,.36,1) forwards recall-choice-enter;animation-delay:calc(var(--choice-index,0) * 60ms);border:0;border-radius:1.4rem;place-items:center;padding:0;transition:transform .16s,box-shadow .16s;display:grid;transform:translateY(8px)scale(.96)}@keyframes recall-choice-enter{to{opacity:1;transform:translateY(0)scale(1)}}.recall-choice:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}.recall-choice:active{transform:scale(.96)}.recall-choice__emoji{font-size:4rem;line-height:1}.sentence-stage{text-align:center;justify-items:center;gap:.45rem;margin:.65rem 0 1rem;display:grid}.sentence-stage__picture{background:radial-gradient(circle at 30% 25%,#ffffffd9,#0000 38%),linear-gradient(145deg,#ffe7b9,#f2a23a);border:2px solid #ffffffc7;border-radius:2rem;place-items:center;width:112px;height:112px;font-size:4.1rem;line-height:1;display:grid;box-shadow:0 14px 28px -16px #ac621e8c}.sentence-stage__prompt{color:var(--color-text-muted);margin:.2rem 0 0;font-size:.9rem;font-weight:800}.sentence-stage__speaker,.tpr-stage__speaker{color:#386cb2;cursor:pointer;min-height:40px;font:inherit;background:#4f8dfd21;border:0;border-radius:9999px;padding:.45rem .85rem;font-size:.8rem;font-weight:900;transition:transform .16s,background .16s}.sentence-stage__speaker:hover,.tpr-stage__speaker:hover{background:#4f8dfd38;transform:translateY(-2px)}.sentence-line{font-family:var(--font-display);flex-wrap:wrap;justify-content:center;align-items:center;gap:.48rem;margin:.6rem auto;font-size:clamp(1.2rem,4vw,1.65rem);font-weight:700;display:flex}.sentence-line__fixed,.sentence-line__slot{border-radius:.8rem;place-items:center;min-height:2.75rem;padding:.35rem .75rem;display:inline-grid}.sentence-line__fixed{background:#ffffffb3;box-shadow:0 5px 14px -12px #2d1b0e59}.sentence-line__slot{color:#a65a2c;background:#ffedd79e;border:2px dashed #e08543;min-width:6.1rem}.sentence-line__slot--correct{border-color:var(--color-success);color:#387048;background:#6baa7c2e}.sentence-line__slot--wrong{border-color:var(--color-danger);color:#a04646;background:#d86d6d26}.sentence-hint{color:var(--color-text-muted);text-align:center;margin:.7rem 0 1rem;font-size:.8rem;font-weight:700}.sentence-feedback{color:#387048;font-family:var(--font-display);text-align:center;margin:.85rem 0 0;font-size:1.1rem;font-weight:700}.sentence-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.sentence-option{min-height:64px;box-shadow:var(--shadow-soft);color:var(--color-text);cursor:grab;font-family:var(--font-display);background:#fffef9d6;border:2px solid #e085432e;border-radius:1rem;justify-content:center;align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;display:inline-flex}.sentence-option:disabled{cursor:default;opacity:.62}.dictation-stage{text-align:center;justify-items:center;gap:.6rem;margin:.7rem 0 1rem;display:grid}.dictation-stage__picture{background:radial-gradient(circle at 30% 22%,#ffffffe0,#0000 38%),linear-gradient(145deg,#cdefd8,#4ecb71);border:2px solid #fffc;border-radius:2.2rem;place-items:center;width:124px;height:124px;font-size:4.6rem;line-height:1;display:grid;box-shadow:0 14px 28px -16px #29824b8c}.dictation-stage__word{color:var(--color-text);font-family:var(--font-display);font-size:clamp(1.8rem,7vw,2.6rem);line-height:1}.dictation-stage__speaker{color:#386cb2;cursor:pointer;min-height:40px;font:inherit;background:#4f8dfd21;border:0;border-radius:9999px;padding:.45rem .85rem;font-size:.8rem;font-weight:900}.dictation-stage__mic{color:#fff;cursor:pointer;min-width:min(100%,280px);min-height:68px;font-family:var(--font-display);background:linear-gradient(135deg,#47b96b,#268a50);border:0;border-radius:1.2rem;justify-content:center;align-items:center;gap:.55rem;font-size:1.08rem;font-weight:700;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 12px 20px -12px #1f7742ad}.dictation-stage__mic:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 16px 24px -12px #1f7742c2}.dictation-stage__mic:disabled{cursor:default;opacity:.68}.dictation-stage__mic--listening{background:linear-gradient(135deg,#e05f65,#bb3d4c);animation:1.1s ease-in-out infinite dictation-mic-pulse}@keyframes dictation-mic-pulse{0%,to{transform:scale(1);box-shadow:0 12px 20px -12px #bb3d4c99}50%{transform:scale(1.035);box-shadow:0 16px 28px -8px #bb3d4cd1}}.dictation-stage__manual{width:min(100%,360px);box-shadow:var(--shadow-soft);background:#ffffffad;border-radius:1rem;padding:.85rem}.dictation-stage__manual label{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.78rem;font-weight:800;display:block}.dictation-stage__manual div{gap:.45rem;display:flex}.dictation-stage__manual input{min-width:0;color:var(--color-text);font:inherit;background:#fff;border:2px solid #4ecb7152;border-radius:.7rem;flex:1;padding:.55rem .65rem;font-weight:700}.dictation-stage__manual button,.dictation-retry{color:#fff;cursor:pointer;font:inherit;background:#3c9c5b;border:0;border-radius:.7rem;padding:.55rem .65rem;font-size:.78rem;font-weight:900}.dictation-heard{text-align:center;background:#fffef9b3;border:2px dashed #2d1b0e29;border-radius:1.2rem;justify-items:center;gap:.22rem;width:min(100%,430px);margin:.8rem auto;padding:1rem;display:grid}.dictation-heard__label{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.73rem;font-weight:900}.dictation-heard strong{color:var(--color-text);font-family:var(--font-display);font-size:clamp(1.35rem,5vw,1.8rem)}.dictation-heard span:last-child{color:var(--color-text-muted);font-size:.82rem;font-weight:700}.dictation-heard--correct strong,.dictation-heard--correct span:last-child{color:#387048}.dictation-heard--wrong strong,.dictation-heard--wrong span:last-child{color:#a04646}.dictation-retry{background:#6386bc;border-radius:9999px;margin:.65rem auto 0;padding:.6rem 1rem;display:block}.dictation-listening-wave{background:repeating-linear-gradient(90deg,#e05f65 0,#e05f65 7px,#0000 7px,#0000 13px);border-radius:9999px;width:120px;height:8px;margin:.8rem auto;animation:.7s linear infinite dictation-wave;display:block}@keyframes dictation-wave{to{background-position-x:13px}}.speech-practice{text-align:center;background:linear-gradient(145deg,#e8f2ffd1,#fffef9e6);border:1px solid #4f8dfd33;border-radius:1.15rem;justify-items:center;gap:.7rem;width:min(100%,430px);margin:1.1rem auto 0;padding:1rem;display:grid}.speech-practice__copy h3{font-family:var(--font-display);margin:.18rem 0;font-size:1.05rem}.speech-practice__copy p{color:var(--color-text-muted);margin:0;font-size:.78rem;font-weight:700}.speech-practice__eyebrow{color:#386cb2;letter-spacing:.1em;text-transform:uppercase;font-size:.64rem;font-weight:900}.speech-practice__mic{color:#fff;cursor:pointer;min-width:152px;min-height:52px;font-family:var(--font-display);background:linear-gradient(135deg,#5d91d6,#3b6faf);border:0;border-radius:9999px;font-size:1rem;font-weight:700;box-shadow:0 8px 16px -10px #3468b0a8}.speech-practice__mic--listening{background:linear-gradient(135deg,#e05f65,#bb3d4c);animation:1.1s ease-in-out infinite dictation-mic-pulse}.speech-practice__mic:disabled{cursor:default;opacity:.68}.speech-practice__heard{background:#ffffffa3;border-radius:.8rem;justify-items:center;gap:.16rem;width:100%;padding:.65rem;display:grid}.speech-practice__heard>span{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.speech-practice__heard strong{font-family:var(--font-display);font-size:1.15rem}.speech-practice__heard small,.speech-practice__unsupported{color:var(--color-text-muted);font-size:.75rem;font-weight:700}.speech-practice--correct{background:linear-gradient(145deg,#daf3dae6,#fffef9e6);border-color:#6baa7c8c}.speech-practice--correct .speech-practice__heard strong,.speech-practice--correct .speech-practice__heard small{color:#387048}.speech-practice--wrong{border-color:#d86d6d73}.speech-practice--wrong .speech-practice__heard strong,.speech-practice--wrong .speech-practice__heard small{color:#a04646}.speech-practice__retry{color:#386cb2;cursor:pointer;font:inherit;background:#4f8dfd24;border:0;border-radius:9999px;padding:.45rem .85rem;font-size:.76rem;font-weight:900}.story-library{flex-direction:column;gap:.6rem;display:flex}@media (min-width:620px){.story-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.story-library-card{background:radial-gradient(circle at 18% 18%,#ffffffb3,transparent 38%),linear-gradient(150deg,var(--story-color),var(--story-color));border-radius:1.25rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:1rem 1.1rem;display:grid}@supports (color:color-mix(in lab,red,red)){.story-library-card{background:radial-gradient(circle at 18% 18%,#ffffffb3,transparent 38%),linear-gradient(150deg,color-mix(in srgb,var(--story-color) 80%,white),var(--story-color))}}.story-library-card{color:var(--color-text);box-shadow:var(--shadow-card);text-decoration:none}.story-library-card:hover{transform:translateY(-3px)}.story-library-card__emoji{font-size:2.3rem}.story-library-card__preview{color:#1a202cb3;grid-column:1/-1;font-size:.82rem;font-weight:700}.story-library-card__cta{font-size:1.4rem}.story-page .lesson-page{padding-bottom:1.5rem}.story-progress{align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.story-progress__counter{font-family:var(--font-display);color:var(--color-text-muted);font-weight:800}.story-progress__bar{background:#ffffff80;border-radius:9999px;flex:1;height:.45rem;overflow:hidden;box-shadow:inset 0 1px 2px #2d1b0e2e}.story-progress__fill{background:linear-gradient(90deg,#ffa62b,#ff6b6b);border-radius:9999px;height:100%}.story-card{margin-bottom:1rem;display:flex}.story-card .card{width:100%;padding:1.4rem 1.2rem}.story-line{font-family:var(--font-display);color:var(--color-text);font-size:clamp(1.2rem,4vw,1.65rem);font-weight:700;line-height:1.45;display:inline-block}.story-word{display:inline-block}.story-word__button{color:inherit;cursor:pointer;font:inherit;font-weight:inherit;background:0 0;border:0;border-radius:.5rem;padding:.18rem .36rem;transition:background .18s}.story-word--active .story-word__button{color:#a04646;background:linear-gradient(#ffa62b52,#ff6b6b52);box-shadow:0 6px 14px -8px #a8513299}.story-translation{color:var(--color-text-muted);margin:.85rem 0 0;font-size:.95rem;font-weight:700}.story-controls{gap:.6rem;margin-bottom:1rem;display:flex}.story-controls__play{color:#fff;cursor:pointer;min-height:60px;font-family:var(--font-display);background:linear-gradient(135deg,#ffa62b,#ff6b6b);border:0;border-radius:1rem;flex:1;font-size:1.05rem;font-weight:700;box-shadow:0 10px 18px -12px #d9544ead}.story-controls__repeat{min-width:96px;color:var(--color-text);cursor:pointer;font-family:var(--font-display);box-shadow:var(--shadow-soft);background:#ffffffd9;border:0;border-radius:1rem;font-size:.95rem;font-weight:800}.story-navigation{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.7rem;display:grid}.story-translation-toggle{width:100%;min-height:44px;color:var(--color-text);cursor:pointer;font:inherit;background:#ffffffa6;border:0;border-radius:9999px;font-size:.85rem;font-weight:700;display:block}.story-finished{text-align:center;justify-items:center;gap:.45rem;margin-top:1rem;padding:1rem 0;display:grid}.story-finished h2{font-family:var(--font-display);margin:0;font-size:clamp(1.4rem,4vw,1.8rem)}.story-finished p{color:var(--color-text-muted);margin:0;font-size:.9rem}.sfx-toggle{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}.sfx-toggle__button{min-height:44px;color:var(--color-text);cursor:pointer;font:inherit;background:#fffef9d9;border:1px solid #2d1b0e1a;border-radius:9999px;align-items:center;gap:.5rem;padding:.45rem .85rem;font-size:.82rem;font-weight:800;display:inline-flex;box-shadow:0 7px 14px -10px #2d1b0e73}.sfx-toggle__dot{background:var(--color-success);border-radius:9999px;width:.55rem;height:.55rem}.sfx-toggle--compact .sfx-toggle__button{min-height:36px;padding:.3rem .65rem;font-size:.72rem}.tts-caption{z-index:60;color:#fffcf5;max-width:min(90%,520px);font-family:var(--font-display);text-align:center;pointer-events:none;background:#2d1b0eeb;border-radius:.85rem;padding:.55rem .95rem;font-size:.95rem;display:none;position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);box-shadow:0 12px 24px -14px #00000073}.tts-caption[data-active=true]{animation:.18s ease-out tts-caption-in;display:inline-flex}@keyframes tts-caption-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pronunciation-page .play-hub__intro{text-align:center;margin-bottom:1rem}.pronunciation-page__empty-title{font-family:var(--font-display);margin:0 0 .4rem;font-size:1.2rem}.companion-block{background:#ffebda8c;border:1px solid #e085432e;border-radius:1.1rem;grid-template-columns:auto 1fr;align-items:center;gap:.8rem;margin-top:.7rem;padding:.85rem 1rem;display:grid}.companion-block p{color:var(--color-text);margin:0;font-size:.82rem;font-weight:700}.pronunciation{background:radial-gradient(circle at 12% 0,#ffebdad9,#0000 40%),linear-gradient(160deg,#fffef9eb,#ffe6c8f0);border-radius:1.35rem;flex-direction:column;gap:1rem;width:min(100%,480px);margin:0 auto 1.4rem;padding:1.15rem;display:flex;box-shadow:0 18px 32px -24px #ad621c8c}.pronunciation__header h2{font-family:var(--font-display);margin:.2rem 0;font-size:clamp(1.2rem,4vw,1.55rem)}.pronunciation__eyebrow{color:var(--color-primary);letter-spacing:.11em;text-transform:uppercase;font-size:.65rem;font-weight:900}.pronunciation__prompt{color:var(--color-text-muted);margin:.4rem 0 0;font-size:.85rem;font-weight:700}.pronunciation__select{color:var(--color-text-muted);gap:.4rem;font-size:.78rem;font-weight:700;display:grid}.pronunciation__select select{min-height:44px;color:var(--color-text);font:inherit;background:#fffef9f0;border:2px solid #2d1b0e14;border-radius:.8rem;padding:.5rem .7rem;font-weight:700}.pronunciation__target{align-items:center;gap:.55rem;display:flex}.pronunciation__target-emoji{font-size:2.4rem;line-height:1}.pronunciation__target strong{font-family:var(--font-display);flex:1;font-size:1.55rem;line-height:1}.pronunciation__target-spell{color:#386cb2;cursor:pointer;min-height:36px;font:inherit;background:#6386bc2e;border:0;border-radius:9999px;padding:.4rem .85rem;font-size:.78rem;font-weight:900}.pronunciation__wave{background:#fffef9d9;border-radius:1rem;width:100%;padding:.85rem;display:grid;position:relative;box-shadow:inset 0 2px 6px #2d1b0e1a}.pronunciation__timer{color:var(--color-text-muted);font-family:var(--font-display);font-size:.85rem;font-weight:800;position:absolute;top:.45rem;right:1rem}.pronunciation__recorded{background:#ffebc8b3;border-radius:1rem;padding:.55rem .85rem;box-shadow:inset 0 2px 6px #2d1b0e14}.waveform-canvas{width:100%;display:block}.pronunciation__controls{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.pronunciation__record{color:#fff;cursor:pointer;min-width:138px;min-height:52px;font-family:var(--font-display);background:linear-gradient(#ff6b6b,#d75553);border:0;border-radius:9999px;justify-content:center;align-items:center;gap:.45rem;font-size:1rem;font-weight:700;display:inline-flex;box-shadow:0 10px 16px -12px #d85a5a99}.pronunciation__record--active,.pronunciation__record[aria-pressed=true]{background:linear-gradient(#545766,#303343);animation:1.2s ease-in-out infinite pronunciation-record-pulse}@keyframes pronunciation-record-pulse{0%,to{box-shadow:0 10px 16px -12px #d85a5a99}50%{box-shadow:0 12px 22px -6px #d85a5ad9}}.pronunciation__after{gap:.45rem;display:flex}.pronunciation__play,.pronunciation__discard{cursor:pointer;font:inherit;border:0;border-radius:9999px;padding:.55rem .95rem;font-size:.85rem;font-weight:800}.pronunciation__play{color:#fff;background:linear-gradient(135deg,#4f8dfd,#386cb2)}.pronunciation__play:disabled,.pronunciation__discard:disabled{cursor:default;opacity:.55}.pronunciation__discard{color:var(--color-text);background:#2d1b0e14}.pronunciation__hint{color:var(--color-text-muted);margin:0;font-size:.78rem;font-weight:700}.pronunciation-history{flex-direction:column;gap:.45rem;margin-top:.5rem;display:flex}.pronunciation-history__header{justify-content:space-between;align-items:center;margin:0;display:flex}.pronunciation-history__header h3{font-family:var(--font-display);margin:0;font-size:1rem}.pronunciation-history__clear{color:var(--color-text);cursor:pointer;font:inherit;background:#2d1b0e14;border:0;border-radius:9999px;padding:.35rem .7rem;font-size:.72rem;font-weight:800}.pronunciation-history__list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.pronunciation-history__row{background:#fffef9b3;border-radius:.8rem;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:.5rem;padding:.45rem .65rem;display:grid;box-shadow:0 4px 10px -8px #2d1b0e59}.pronunciation-history__word{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:800;overflow:hidden}.pronunciation-history__play,.pronunciation-history__remove{cursor:pointer;width:32px;height:32px;font:inherit;border:0;border-radius:9999px;place-items:center;font-size:.85rem;display:inline-grid}.pronunciation-history__play{color:#fff;background:linear-gradient(135deg,#4f8dfd,#386cb2)}.pronunciation-history__remove{color:#a04646;background:#d86d6d2e}.pronunciation-history__time{color:var(--color-text-muted);font-family:var(--font-display);font-size:.78rem;font-weight:700}.pronunciation-history__score{text-align:center;min-width:48px;font-family:var(--font-display);background:#2d1b0e12;border-radius:.55rem;padding:.18rem .45rem;font-size:.78rem;font-weight:800}.pronunciation-history__score--high{color:#2c5c3a;background:#6baa7c40}.pronunciation-history__score--mid{color:#8a6300;background:#ffc10738}.pronunciation-history__score--low{color:#a04646;background:#d86d6d38}.pronunciation-pronounce{justify-content:center;margin-bottom:1rem;display:flex}.tpr-stage{justify-items:center;gap:.7rem;margin:.6rem 0 1rem;display:grid}.tpr-stage__command{text-align:center;justify-items:center;gap:.15rem;display:grid}.tpr-stage__eyebrow{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:900}.tpr-stage__command strong{color:#7751b5;font-family:var(--font-display);font-size:clamp(2.1rem,9vw,3.3rem);line-height:.95}.tpr-stage__command span:last-child{color:var(--color-text-muted);font-size:.88rem;font-weight:800}.tpr-stage__scene{background:radial-gradient(circle at 50% 22%,#fffc,#0000 32%),linear-gradient(#e7d9ff,#c9b2ec 64%,#9fbe7b 64%,#87ab68);border:2px solid #ffffffc7;border-radius:2rem;place-items:end center;width:min(100%,420px);min-height:285px;display:grid;position:relative;overflow:hidden;box-shadow:0 16px 28px -19px #5c3f8f8c}.tpr-stage__mascot{z-index:2;transform-origin:bottom;position:relative}.tpr-stage__prop{z-index:3;font-size:2rem;position:absolute;top:1.15rem;right:1.4rem}.tpr-stage__ground{filter:blur(1px);background:#3257383d;border-radius:9999px;height:12px;position:absolute;bottom:1.05rem;left:13%;right:13%}.tpr-complete-button{color:#fff;cursor:pointer;width:min(100%,420px);min-height:68px;font-family:var(--font-display);background:linear-gradient(135deg,#8a66c2,#6845a5);border:0;border-radius:1.25rem;font-size:1.25rem;font-weight:700;box-shadow:0 10px 18px -10px #5d3e91ad}.tpr-complete-button:disabled{cursor:default;opacity:.72}@media (max-width:480px){.sentence-stage__picture{width:96px;height:96px;font-size:3.5rem}.sentence-line{gap:.32rem;font-size:1.12rem}.sentence-line__fixed,.sentence-line__slot{min-height:2.4rem;padding:.32rem .55rem}.tpr-stage__scene{border-radius:1.5rem;min-height:250px}}.match-board{gap:1.25rem;display:grid;position:relative}.match-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.match-slot{min-height:72px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--color-text);opacity:0;animation:.36s cubic-bezier(.22,1,.36,1) forwards match-slot-enter;animation-delay:calc(var(--match-index,0) * 60ms);background:#fffef9c7;border:2px dashed #6386bc73;border-radius:1.25rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:1.15rem;font-weight:700;transition:background .2s,transform .2s,border-color .2s;display:flex;position:relative;overflow:visible;transform:translateY(10px)}@keyframes match-slot-enter{to{opacity:1;transform:translateY(0)}}.match-slot--hover{border-color:var(--color-primary);background:#f7c99a80;border-style:solid;transform:scale(1.04)}.match-slot--matched{background:#cbe4db}@supports (color:color-mix(in lab,red,red)){.match-slot--matched{background:color-mix(in srgb,var(--color-success) 22%,var(--color-surface))}}.match-slot--matched{border:2px solid var(--color-success);opacity:1;animation:none;transform:none}.match-slot--wrong{border-color:var(--color-accent);border-style:solid;animation:.32s ease-in-out choice-shake}.match-slot__word{pointer-events:none}.match-slot__emoji{font-size:1.8rem;animation:.28s cubic-bezier(.34,1.56,.64,1) island-star-pop}.match-slot__pulse{pointer-events:none;background:radial-gradient(circle,#e0854366,#0000 70%);border-radius:1.4rem;animation:.9s ease-out infinite match-pulse;position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}@keyframes match-pulse{0%{opacity:.7;transform:scale(.95)}to{opacity:0;transform:scale(1.15)}}.match-images{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.match-image{aspect-ratio:1;background:var(--color-surface);box-shadow:var(--shadow-card);cursor:pointer;opacity:0;animation:.36s cubic-bezier(.22,1,.36,1) forwards match-image-enter;animation-delay:calc(.2s + var(--match-index,0) * 60ms);touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:1.4rem;place-items:center;padding:0;font-size:3rem;transition:transform .16s,opacity .16s,box-shadow .16s;display:grid;transform:translateY(10px)scale(.96)}@keyframes match-image-enter{to{opacity:1;transform:translateY(0)scale(1)}}.match-image:hover:not(:disabled){box-shadow:var(--shadow-elevated);transform:translateY(-3px)scale(1.04)}.match-image:active:not(:disabled){transform:scale(.95)}.match-image--matched{opacity:.3;pointer-events:none;animation:none;transform:none}.match-image--dragging{opacity:.35}.match-ghost{z-index:60;pointer-events:none;filter:drop-shadow(0 12px 18px #0f172a4d);will-change:transform;font-size:3.25rem;transition:transform;position:fixed;top:0;left:0}.match-hint{text-align:center;color:var(--color-text-soft);margin:.85rem 0 0;font-size:.8rem}.game-complete-card{text-align:center;-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-card);width:min(100%,460px);box-shadow:var(--shadow-card);background:#ffffffb8;border:1px solid #fff9;margin:0 auto;padding:2rem 1.75rem;position:relative;overflow:hidden}.game-complete__title{font-family:var(--font-display);color:var(--color-text);margin:.85rem 0 .35rem;font-size:2.4rem}.game-complete__stars{gap:.5rem;margin:.5rem 0;font-size:2.4rem;display:inline-flex}.game-complete__star{color:#ffffffb3;text-shadow:0 1px #0f172a26}.game-complete__star--on{color:#ffc93c;filter:drop-shadow(0 2px #e0880066)}.game-complete__stat{box-shadow:var(--shadow-soft);background:#ffffffb3;border-radius:1rem;flex-direction:column;align-items:center;margin:.5rem 0 1.25rem;padding:.6rem 1.1rem;display:inline-flex}.game-complete__stat-value{font-family:var(--font-display);color:var(--color-text);font-size:1.7rem;font-weight:700;line-height:1}.game-complete__stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:800}.game-complete__bonus{color:#5c3300;background:linear-gradient(135deg,#ffd23f,#ffa62b);border-radius:9999px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem 1rem;font-weight:800;display:inline-flex;box-shadow:0 4px 12px #ffa62b4d}.game-complete__bonus-emoji{font-size:1.2rem}.game-complete__bonus-label{font-family:var(--font-display);letter-spacing:.02em;font-size:.95rem}.speech-bubble-wrap{position:absolute;top:0;right:0}.resume-banner{-webkit-backdrop-filter:blur(12px);background:linear-gradient(135deg,#4f8dfd24,#ffa62b24);border:1px solid #4f8dfd40;border-radius:1rem;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.resume-banner__icon{color:#fff;background:linear-gradient(#7baeff,#4f8dfd);border-radius:9999px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:1.05rem;font-weight:900;display:inline-grid}.resume-banner__copy{color:var(--color-text);flex:1;font-size:.875rem}.resume-banner__copy strong{font-family:var(--font-display);font-weight:700}.resume-banner__reset{color:var(--color-text-muted);white-space:nowrap;background:#ffffffd9;border-radius:9999px;padding:.4rem .75rem;font-size:.75rem;font-weight:800;transition:background .16s,color .16s}.resume-banner__reset:hover{color:var(--color-text);background:#fff}@media (max-width:480px){.resume-banner{flex-wrap:wrap;gap:.5rem;padding:.75rem}.resume-banner__copy{flex-basis:calc(100% - 48px)}.resume-banner__reset{margin-left:auto}}.review-banner{color:#fff;background:linear-gradient(135deg,#4f8dfdeb,#a78bfaeb);border-radius:1.3rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:1rem 1.1rem;text-decoration:none;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 24px -8px #4f8dfd8c}.review-banner:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 0,#ffffff40,#0000 50%);position:absolute;top:0;right:0;bottom:0;left:0}.review-banner__icon{background:#ffffff38;border-radius:9999px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:1.5rem;display:inline-grid}.review-banner__copy{flex-direction:column;gap:.1rem;min-width:0;display:flex}.review-banner__copy strong{font-family:var(--font-display);font-size:1rem;font-weight:700;line-height:1.1}.review-banner__sub{opacity:.85;font-size:.78rem;font-weight:600}.review-banner__cta{color:var(--color-secondary-dark);background:#fff;border-radius:9999px;flex-shrink:0;padding:.5rem .85rem;font-size:.85rem;font-weight:800}.step--quality{padding:.5rem 0}.quality__hint{text-align:center;color:var(--color-text-muted);margin:0 0 1.25rem;font-size:.95rem;font-weight:700}.quality-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.quality-btn{color:#fff;min-height:132px;font-family:var(--font-display);cursor:pointer;text-shadow:0 1px #00000026;border-radius:1.3rem;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1rem .5rem;font-size:1rem;font-weight:700;display:flex;box-shadow:0 6px 16px -4px #0f172a2e}.quality-btn--again{box-shadow:0 6px 16px -4px #ff6b6b73}.quality-btn--good{box-shadow:0 6px 16px -4px #4f8dfd73}.quality-btn--easy{box-shadow:0 6px 16px -4px #4ecb7173}.quality-btn__emoji{filter:drop-shadow(0 2px #0000001a);font-size:2.4rem;line-height:1}@media (max-width:480px){.review-banner{gap:.6rem;padding:.85rem}.review-banner__icon{width:40px;height:40px;font-size:1.2rem}.review-banner__cta{padding:.4rem .7rem;font-size:.75rem}.quality-btn{min-height:110px}.quality-btn__emoji{font-size:2rem}}.avatar{place-items:center;display:inline-grid;position:relative}.avatar__ring{opacity:.7;filter:drop-shadow(0 2px 4px #0f172a1f);background:conic-gradient(#ffa62b,#ff6b6b,#4f8dfd,#4ecb71,#ffa62b 360deg);border-radius:9999px;padding:3px;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.avatar__inner{z-index:1;background:linear-gradient(#fff8e7,#ffe5b0);border-radius:9999px;place-items:center;width:80%;height:80%;display:grid;position:relative;box-shadow:0 2px 6px #0f172a1a}.avatar__inner .mascot{filter:none;width:116%!important;height:116%!important}.avatar__inner .mascot__svg{width:100%;height:100%}.scene{isolation:isolate;min-height:100dvh;padding:1.5rem 1rem 2.5rem;position:relative;overflow:hidden}.scene--warm{background:radial-gradient(80% 60% at 75% 12%,#f7c99a73,#0000 60%),radial-gradient(60% 50% at 20% 25%,#ffdcc366,#0000 65%),linear-gradient(#fffcf5,#fceddd 40%,#f2d6b4 75%,#e5bd96)}.scene--cool{background:radial-gradient(80% 60% at 75% 15%,#b4c8e673,#0000 60%),radial-gradient(60% 50% at 20% 25%,#dcebf580,#0000 65%),linear-gradient(#f5f9fd,#e0eaf5 40%,#c5d4e6 75%,#a8bcd8)}.scene:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 85% 8%,#f7c99a52,#0000 18%);position:absolute;top:0;right:0;bottom:0;left:0}.scene__sun{filter:drop-shadow(0 6px 24px #ffc33c66);z-index:0;pointer-events:none;width:280px;height:280px;position:absolute;top:-3rem;right:-3rem}.scene__cloud{fill:#fff;filter:drop-shadow(0 4px 12px #ffffff8c);z-index:0;pointer-events:none;position:absolute}.scene__cloud--1{opacity:.85;width:180px;top:8%;left:-8%}.scene__cloud--2{opacity:.8;width:220px;top:32%;right:-6%}.scene__cloud--3{opacity:.7;width:140px;top:60%;left:-5%}.scene__horizon{pointer-events:none;z-index:0;height:80px;position:absolute;bottom:0;left:0;right:0}.scene__horizon svg{width:100%;height:100%;display:block}.scene__content{z-index:2;flex-direction:column;gap:1.25rem;max-width:640px;margin:0 auto;display:flex;position:relative}@media (prefers-reduced-motion:reduce){.scene__sun,.scene__cloud{animation:none!important}}.hero-scene{place-items:center;min-height:280px;padding:1rem 0;display:grid;position:relative}.hero-scene__mascot{z-index:2;filter:drop-shadow(0 16px 28px #e0880059);position:relative}.top-bar{align-items:center;gap:.85rem;padding:.5rem .25rem;display:flex}.top-bar__user{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.top-bar__name{flex-direction:column;min-width:0;display:flex}.top-bar__greeting{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:800}.top-bar__name-text{font-family:var(--font-display);color:var(--color-text);font-size:1.15rem;font-weight:700;line-height:1}.top-bar__streak{color:#fff;background:linear-gradient(135deg,#f99,#ff6b6b);border-radius:9999px;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.85rem;font-weight:800;display:inline-flex;box-shadow:0 4px 12px #ff6b6b59}.top-bar__music{background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;box-shadow:var(--shadow-soft);cursor:pointer;border:1px solid #ffffffa6;border-radius:9999px;flex-shrink:0;place-items:center;font-size:1.15rem;display:inline-grid}.top-bar__music:hover{background:#fff}.hero-greeting{text-align:center;padding:.5rem 0}.hero-greeting__title{font-family:var(--font-display);color:var(--color-text);letter-spacing:-.02em;margin:0;font-size:clamp(2.4rem,7vw,3rem);font-weight:700;line-height:1}.hero-greeting__subtitle{color:var(--color-text-muted);margin:.6rem 0 0;font-size:1rem;font-weight:600}.stats-hero{grid-template-columns:repeat(3,1fr);gap:.65rem;display:grid}.stat-hero{background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(18px)saturate(180%);box-shadow:var(--shadow-card);text-align:center;border:1px solid #ffffffa6;border-radius:1.25rem;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .5rem .85rem;transition:transform .22s cubic-bezier(.34,1.56,.64,1);display:flex;position:relative}.stat-hero:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff73,#0000 50%);position:absolute;top:0;right:0;bottom:0;left:0}.stat-hero:hover{transform:translateY(-3px)}.stat-hero__icon-wrap{background:var(--color-bg);border-radius:9999px;place-items:center;width:56px;height:56px;margin-bottom:.25rem;display:grid;position:relative}.stat-hero__icon{font-size:1.85rem;line-height:1}.stat-hero__value{font-family:var(--font-display);color:var(--color-text);letter-spacing:-.02em;font-size:1.85rem;font-weight:700;line-height:1}.stat-hero__label{color:var(--color-text-muted);text-transform:lowercase;letter-spacing:.04em;font-size:.7rem;font-weight:800}.stat-hero--primary .stat-hero__icon-wrap{background:linear-gradient(135deg,#ffe5a0,#ffc869)}.stat-hero--accent .stat-hero__icon-wrap{background:linear-gradient(135deg,#ffc1c1,#f99)}.stat-hero--secondary .stat-hero__icon-wrap{background:linear-gradient(135deg,#bcd8ff,#7baeff)}.mission-card{background:var(--color-surface-glass-strong);-webkit-backdrop-filter:blur(20px)saturate(180%);box-shadow:var(--shadow-card);border:1px solid #ffffffa6;border-radius:1.4rem;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:grid;position:relative}.mission-card__copy{flex-direction:column;gap:.2rem;min-width:0;display:flex}.mission-card__eyebrow{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:800}.mission-card__title{font-family:var(--font-display);color:var(--color-text);margin:0;font-size:1.1rem;font-weight:700;line-height:1.15}.mission-card__sub{color:var(--color-text-muted);margin:0;font-size:.85rem;font-weight:600}.hero-cta{width:100%;margin-top:.5rem;display:block;position:relative}.hero-cta .btn{width:100%;min-height:88px;padding:1.5rem 2.5rem;font-size:1.35rem}.secondary-row{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.25rem;display:grid}.secondary-row .btn{width:100%;min-height:64px;font-size:1rem}@media (max-width:480px){.stats-hero{gap:.45rem}.stat-hero{padding:.85rem .4rem .65rem}.stat-hero__icon-wrap{width:48px;height:48px}.stat-hero__icon,.stat-hero__value{font-size:1.5rem}}.memory-card__badge{background:linear-gradient(#7fe0a0,#4ecb71);border-radius:9999px;place-items:center;width:36px;height:36px;display:inline-grid;position:absolute;top:.4rem;right:.4rem;box-shadow:0 2px 8px #4ecb7180}.memory-card__face--front{position:relative}.memory-card--matched{cursor:default}.match-slot__pulse{pointer-events:none;z-index:-1;background:linear-gradient(135deg,#ffa62b80,#ff6b6b80);border-radius:1.4rem;position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.island__star{display:inline-block}.island-grid{overflow:visible}.game-complete__actions{z-index:2;gap:.65rem;display:grid;position:relative}@media (max-width:560px){.memory-grid{gap:.4rem}.match-images{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.match-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.mascot__svg,.mascot--happy .mascot__svg,.mascot--celebrate .mascot__svg,.mascot--thinking .mascot__svg,.bg-decor__cloud,.bg-decor__star,.confetti__piece{animation:none!important}.btn:active:not(:disabled),.btn--primary:hover:not(:disabled),.btn--secondary:hover:not(:disabled){transform:none}}.app-shell{background:radial-gradient(circle at 100% 0%,#8a7dff1f,transparent 30rem),radial-gradient(circle at 42% 100%,#70e1c117,transparent 36rem),var(--color-bg);min-height:100dvh;overflow:clip}.app-shell:before{z-index:0;content:"";background-image:linear-gradient(#11182705 1px,#0000 1px),linear-gradient(90deg,#11182705 1px,#0000 1px);background-size:64px 64px;position:fixed;top:0;right:0;bottom:0;left:0}.app-shell>.app-nav{z-index:40;position:fixed}.app-shell>.mobile-nav{z-index:50;position:fixed}.app-shell>.app-workspace{z-index:1;position:relative}.scene{min-height:100dvh;padding:clamp(1.2rem,3vw,2.75rem);overflow:hidden}.scene--warm,.scene--cool{background:0 0}.scene:before{display:none}.scene__content{width:min(100%,1280px);max-width:none;margin:0 auto;display:block}.avatar__ring{background:conic-gradient(from 0deg,var(--color-primary),var(--color-secondary-light),var(--color-sun),var(--color-primary))}.avatar__inner{background:#f1f2ec}.companion-control__button{min-height:52px;box-shadow:none;background:0 0;border:0;border-radius:.8rem}.companion-control__button:hover{box-shadow:none;background:#ffffffad}.mascot-picker{z-index:30;width:100%;box-shadow:var(--shadow-elevated);background:#fffffff5;border:1px solid #1118271f;border-radius:1.25rem;margin:0;position:absolute;bottom:calc(100% + .65rem);left:0;right:0}.sfx-toggle__button,.sfx-toggle--compact .sfx-toggle__button{min-height:42px;box-shadow:none;background:#fff;border:1px solid #1118271a;border-radius:.7rem;padding:.4rem .7rem;font-size:.7rem;text-decoration:none}.sfx-toggle__button[aria-pressed=true]{background:var(--color-primary-lighter);border-color:#635bff59}.sfx-toggle__button[aria-pressed=false]{opacity:.58;text-decoration:none}.hub-page,.learn-page,.lesson-page{width:100%;max-width:980px;margin:0 auto;padding:clamp(1.25rem,3.5vw,3rem)}.hub-page{max-width:1280px}.btn{border-radius:var(--radius-button);min-height:50px;color:var(--color-text);font-family:var(--font-body);border:1px solid #0000;padding:.8rem 1.15rem;font-size:.88rem;font-weight:800;text-decoration:none}.btn:before{display:none}.btn--primary{background:var(--color-primary-dark);color:#fff;box-shadow:0 12px 24px -16px #4d43d5bf}.btn--primary:hover:not(:disabled){background:var(--color-primary-darker);filter:none;box-shadow:0 18px 30px -18px #211b69cc}.btn--secondary{background:var(--color-bg-deep);box-shadow:none;color:var(--color-text-inverse)}.btn--secondary:hover:not(:disabled){box-shadow:none;filter:none;background:#283147}.btn--ghost{box-shadow:none;color:var(--color-text);background:#ffffffb8;border-color:#11182721}.card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);background:#ffffffe0;border:1px solid #1118271a;padding:clamp(1.25rem,3vw,2rem)}.learn-page__progress-bar,.lesson-progress{height:7px;box-shadow:none;background:#dfe2d8;border-radius:2px}.learn-page__progress-fill,.lesson-progress__fill,.story-progress__fill{background:linear-gradient(90deg,var(--color-primary-dark),var(--color-primary-light))}.play-hub__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.play-card{min-height:330px;box-shadow:var(--shadow-card);background:#ffffffd6;border:1px solid #1118271c;border-radius:1.25rem;flex-direction:column;grid-template-columns:none;gap:0;padding:1.25rem;display:flex}.play-card:hover{box-shadow:var(--shadow-elevated);transform:translateY(-5px)}.play-hub__note{color:var(--color-text-soft);margin-top:1.5rem;font-size:.7rem}.app-shell[data-focus-mode=true]{background:radial-gradient(circle at 50% -10%,#8a7dff21,transparent 34rem),var(--color-bg)}.lesson-header{border-bottom:1px solid #1118271c;align-items:center;gap:.9rem;margin-bottom:1.4rem;padding-bottom:1.15rem;display:flex}.learn-page__back{width:46px;height:46px;box-shadow:none;color:var(--color-text);background:#ffffffb8;border:1px solid #1118271f;border-radius:.75rem;flex:none;place-items:center;display:inline-grid}.learn-page__back:hover{background:#fff;border-color:#635bff59;transform:translate(-2px)}.lesson-header__copy{flex:1;min-width:0}.lesson-header__eyebrow{color:var(--color-primary-dark);letter-spacing:.11em;text-transform:uppercase;margin:0 0 .3rem;font-size:.61rem;font-weight:850}.lesson-header__title{margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.05}.lesson-header__toggle{min-width:auto;min-height:44px;box-shadow:none;color:var(--color-text-muted);background:#ffffffc2;border:1px solid #1118271f;border-radius:.7rem;justify-content:center;align-items:center;padding:.55rem .75rem;font-size:.7rem;font-weight:800;text-decoration:none;display:inline-flex}.lesson-progress{margin-bottom:.9rem}.lesson-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;margin-bottom:1rem;display:grid}.lesson-step{width:auto;height:auto;min-height:38px;color:var(--color-text-soft);background:#ffffff8a;border:1px solid #11182714;border-radius:.65rem;justify-content:center;align-items:center;gap:.35rem;padding:.45rem;font-size:.65rem;font-weight:800;display:flex}.lesson-step>span{background:#e4e6de;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:.6rem;display:grid}.lesson-step small{text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;overflow:hidden}.lesson-step--active{background:var(--color-primary-lighter);box-shadow:none;color:var(--color-primary-darker);border-color:#635bff3d}.lesson-step--active>span{background:var(--color-primary-dark);color:#fff}.lesson-card{background:#ffffffe6;border-color:#1118271a;border-radius:1.35rem;min-height:440px;box-shadow:0 25px 70px -45px #1118277a}.lesson-footer{grid-template-columns:minmax(120px,.7fr) minmax(180px,1.3fr);gap:.75rem;margin-top:.9rem}.resume-banner{background:#ddd9ff8f;border:1px solid #635bff33;border-radius:.8rem}.resume-banner__icon{background:var(--color-primary-dark);border-radius:.6rem}.resume-banner__reset{border:1px solid #1118271a;border-radius:.6rem}.step__image-wrap{width:190px;height:190px;box-shadow:none;background:radial-gradient(circle at 50% 40%,#fff,#0000 65%),#f1f2ec;border:1px solid #11182717;border-radius:1.35rem}.step__image{filter:saturate(.82)drop-shadow(0 12px 18px #11182721);font-size:5.4rem}.step__speak-fab,.recall-speaker{background:var(--color-bg-deep);color:var(--color-sun);border:5px solid #fff;border-radius:1rem;box-shadow:0 16px 28px -18px #111827bf}.step__speak-fab{width:56px;height:56px}.step__word{letter-spacing:-.06em;text-transform:none;margin-top:1.5rem;font-size:clamp(2.7rem,8vw,4.5rem);font-weight:850}.step__translation{color:var(--color-text-muted);font-size:1rem}.step__translation--hidden{visibility:hidden;opacity:0;filter:none}.step__toggle,.story-translation-toggle{min-height:44px;color:var(--color-text-muted);background:#f4f5f0;border:1px solid #1118271a;border-radius:.7rem;padding:.55rem .85rem;font-size:.72rem;font-weight:800}.step__prompt{margin-bottom:1.35rem;font-size:clamp(1.45rem,4vw,2.25rem);line-height:1.05}.step__prompt-hint{color:var(--color-text-muted);font-size:.9rem;font-weight:650}.choice-grid{gap:.75rem}.choice{min-height:145px;box-shadow:none;background:#f8f9f5;border:1px solid #1118271a;border-radius:1rem}.choice:hover:not(:disabled){box-shadow:var(--shadow-card);background:#fff;border-color:#635bff61}.choice--correct{background:#ddf7ec;border-color:#12825d8c}.choice--wrong{background:#fce8e6;border-color:#c2413b80}.choice__badge{background:var(--color-success)}.choice__badge--wrong{background:var(--color-danger)}.step__retry,.step__hint{color:var(--color-accent-dark);font-size:.78rem}.step__sentence{background:#f5f6f1;border:1px solid #1118271a;border-radius:.85rem;font-size:clamp(1.4rem,4vw,2rem)}.use-word--filled{background:var(--color-sun);color:#111827}.earn__title,.lesson-complete__title{font-size:clamp(2rem,5vw,3.2rem)}.earn__star{background:var(--color-primary-lighter);box-shadow:none;color:var(--color-primary-darker);border:1px solid #635bff33;border-radius:.7rem}.quality-grid{gap:.65rem}.quality-btn{min-height:125px;box-shadow:none;color:var(--color-text);text-shadow:none;background:#fff;border:1px solid #1118271a;border-radius:.9rem}.quality-btn--again{border-top:5px solid var(--color-accent);box-shadow:none}.quality-btn--good{border-top:5px solid var(--color-primary);box-shadow:none}.quality-btn--easy{border-top:5px solid var(--color-success);box-shadow:none}.quality-btn__label{font-size:.8rem}.memory-stats{box-shadow:none;color:var(--color-text-muted);background:#ffffffb3;border:1px solid #1118271a;border-radius:.8rem;margin-bottom:1rem;padding:.75rem .9rem;font-size:.74rem}.memory-grid{gap:.7rem}.memory-card__face{box-shadow:var(--shadow-card);border:1px solid #1118271a;border-radius:.9rem}.memory-card__face--back{background:linear-gradient(135deg,#ffffff0f 25%,transparent 25%) 0 0 / 18px 18px,var(--color-bg-deep);color:var(--color-sun)}.memory-card__back-emoji{letter-spacing:.18em;font-size:clamp(.72rem,2vw,1.05rem);font-weight:900}.memory-card__face--front{background:#fff;border-color:#1118271a}.memory-card__word{letter-spacing:0;text-transform:none;font-size:clamp(.68rem,2vw,1rem)}.memory-card--matched .memory-card__face--front{border-color:var(--color-success);background:#e3f7ef}.recall-stage{margin:1.25rem 0 1.5rem}.recall-speaker{width:108px;height:108px;font-size:2.4rem;animation:none}.recall-choice{min-height:160px;box-shadow:var(--shadow-card);background:#fff;border:1px solid #1118271a;border-radius:1rem}.recall-choice:hover{box-shadow:var(--shadow-elevated);border-color:#635bff59}.sentence-stage__picture,.dictation-stage__picture{box-shadow:none;filter:saturate(.82);background:#f0f2eb;border:1px solid #1118271a;border-radius:1.1rem}.sentence-stage__speaker,.tpr-stage__speaker,.dictation-stage__speaker{background:var(--color-primary-lighter);min-height:44px;color:var(--color-primary-darker);border:1px solid #635bff2e;border-radius:.7rem}.sentence-line__fixed{box-shadow:none;background:#fff;border:1px solid #11182714;border-radius:.6rem}.sentence-line__slot{border-color:var(--color-primary);color:var(--color-primary-darker);background:#ddd9ff7a;border-radius:.6rem}.sentence-option{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #1118271c;border-radius:.8rem}.sentence-feedback{color:var(--color-success-dark)}.dictation-stage__mic,.tpr-complete-button{background:var(--color-bg-deep);color:var(--color-text-inverse);border-radius:.9rem;box-shadow:0 16px 28px -20px #111827cc}.dictation-stage__mic--listening{background:var(--color-accent-dark)}.dictation-stage__manual,.dictation-heard{box-shadow:none;background:#ffffffc7;border:1px solid #1118271a;border-radius:.9rem}.dictation-stage__manual input{border-color:#11182724}.dictation-stage__manual button,.dictation-retry{background:var(--color-primary-dark)}.dictation-heard--correct{border-color:var(--color-success);background:#e3f7ef}.dictation-heard--wrong{border-color:var(--color-danger);background:#fce8e6}.tpr-stage__command strong{color:var(--color-primary-dark)}.tpr-stage__scene{box-shadow:var(--shadow-card);background:linear-gradient(#ddd9ffcc 0,#ddd9ffcc 68%,#d8ff5f80 68%),#fff;border:1px solid #1118271a;border-radius:1.25rem}.match-board{gap:1rem}.match-slot{min-height:74px;color:var(--color-text);letter-spacing:0;text-transform:none;background:#ffffffc7;border:1px dashed #635bff73;border-radius:.9rem;font-size:.95rem}.match-slot:disabled{opacity:1}.match-slot--hover,.match-slot:enabled:hover{border-color:var(--color-primary);background:var(--color-primary-lighter);border-style:solid}.match-slot--matched{border-color:var(--color-success);background:#e3f7ef}.match-image{box-shadow:var(--shadow-card);filter:saturate(.82);background:#fff;border:1px solid #1118271a;border-radius:.9rem}.match-image--selected{border-color:var(--color-primary);transform:translateY(-3px);box-shadow:0 0 0 3px #635bff2b}.match-slot__pulse{background:#635bff2e}.story-library{display:block}.story-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.story-library-grid>div{display:flex}.story-library-card{width:100%;min-height:285px;box-shadow:var(--shadow-card);color:var(--color-text);background:#ffffffd6;border:1px solid #1118271c;border-radius:1.25rem;grid-template-rows:auto 1fr auto;grid-template-columns:112px minmax(0,1fr);align-items:stretch;gap:1.1rem;padding:1.15rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:grid}.story-library-card:hover{border-color:var(--story-color)}@supports (color:color-mix(in lab,red,red)){.story-library-card:hover{border-color:color-mix(in srgb,var(--story-color) 50%,#a7acb7)}}.story-library-card:hover{box-shadow:var(--shadow-elevated);transform:translateY(-5px)}.story-library-card__topline{color:var(--color-text-soft);grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.story-library-card__cover{background:linear-gradient(155deg,#ffffffa6,transparent 50%),var(--story-color);border-radius:.9rem;grid-row:2/4;place-items:center;min-height:150px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.story-library-card__cover{background:linear-gradient(155deg,#ffffffa6,transparent 50%),color-mix(in srgb,var(--story-color) 45%,#e9eae3)}}.story-library-card__cover>span{filter:saturate(.78);font-size:3.2rem}.story-library-card__cover i{color:#11182773;letter-spacing:.12em;font-size:.58rem;font-style:normal;font-weight:900;position:absolute;bottom:.55rem;right:.65rem}.story-library-card__copy{align-self:center}.story-library-card__copy strong{letter-spacing:-.04em;font-size:1.35rem;display:block}.story-library-card__preview{color:var(--color-text-muted);grid-column:auto;margin-top:.7rem;font-family:Georgia,serif;font-size:.82rem;font-weight:400;line-height:1.45;display:block}.story-library-card__cta{border-top:1px solid #1118271a;align-self:end;padding-top:.7rem;font-size:.72rem;font-weight:850}.story-page{max-width:900px}.story-progress{gap:.8rem;margin-bottom:1rem}.story-progress__counter{color:var(--color-text-muted);font-size:.75rem}.story-progress__bar{height:7px;box-shadow:none;background:#dfe2d8;border-radius:2px}.story-card .card{background:#fff;border-radius:1.25rem;align-content:center;min-height:270px;padding:clamp(1.5rem,5vw,3.5rem);display:grid}.story-line{letter-spacing:-.02em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,4vw,2.45rem);font-weight:500;line-height:1.6}.story-word__button{border-radius:.35rem}.story-word__button:hover{background:var(--color-primary-lighter)}.story-word--active .story-word__button{background:var(--color-sun);box-shadow:none;color:#111827}.story-translation{color:var(--color-text-muted);border-top:1px solid #1118271a;margin-top:1.2rem;padding-top:1rem;font-size:.9rem;font-weight:650}.story-controls__play,.story-controls__repeat{min-height:54px;font-family:var(--font-body);border-radius:.8rem;font-size:.82rem;font-weight:800}.story-controls__play{background:var(--color-primary-dark);box-shadow:none;color:#fff}.story-controls__repeat{min-width:120px;box-shadow:none;background:#fff;border:1px solid #1118271f}.story-translation-toggle{border-radius:.7rem;width:100%}.story-finished{border-top:1px solid #1118271a}.pronunciation-page .play-hub__intro{max-width:680px;color:var(--color-text-muted);text-align:left;margin:-2.5rem 0 1.25rem}.pronunciation{width:100%;max-width:none;box-shadow:var(--shadow-card);background:#ffffffdb;border:1px solid #1118271c;border-radius:1.25rem;gap:1.1rem;padding:clamp(1.25rem,3vw,2rem);display:flex}.pronunciation__header h2{margin:.3rem 0 0;font-size:clamp(1.65rem,4vw,2.6rem);line-height:1}.pronunciation__eyebrow{color:var(--color-primary-dark)}.pronunciation__prompt{max-width:680px;color:var(--color-text-muted);margin-top:.7rem;font-size:.85rem}.pronunciation__select select{background:#fff;border:1px solid #11182721;border-radius:.75rem;min-height:50px}.pronunciation__target{background:#f5f6f1;border:1px solid #11182717;border-radius:.9rem;padding:1rem}.pronunciation__target strong{font-size:clamp(1.6rem,4vw,2.35rem)}.pronunciation__target-spell{background:var(--color-primary-lighter);min-height:44px;color:var(--color-primary-darker);border:1px solid #635bff2e;border-radius:.7rem}.pronunciation__wave,.pronunciation__recorded{box-shadow:none;background:#f4f5f0;border:1px solid #11182714;border-radius:.85rem}.pronunciation__recorded{background:#ddd9ff73}.pronunciation__record,.pronunciation__play,.pronunciation__discard{border-radius:.75rem;min-height:48px}.pronunciation__record{background:var(--color-accent-dark);box-shadow:none}.pronunciation__record--active,.pronunciation__record[aria-pressed=true]{background:var(--color-bg-deep)}.pronunciation__play{background:var(--color-primary-dark)}.pronunciation__discard{background:#fff;border:1px solid #1118271a}.pronunciation-history__row{min-height:52px;box-shadow:none;background:#f7f8f4;border:1px solid #11182714;border-radius:.7rem}.pronunciation-history__play,.pronunciation-history__remove{width:40px;height:40px}.pronunciation-history__play{background:var(--color-primary-dark);border-radius:.65rem}.pronunciation-history__remove{border-radius:.65rem}.pronunciation-history__score{min-width:88px;font-size:.67rem}.companion-block{background:#ffffff94;border:1px solid #1118271a;border-radius:1rem;margin-top:1rem}.lesson-page--complete{min-height:100dvh}.game-complete-card{width:min(100%,520px);box-shadow:var(--shadow-elevated);background:#ffffffe6;border:1px solid #1118271a;border-radius:1.35rem;padding:clamp(1.5rem,4vw,2.5rem)}.game-complete__eyebrow{color:var(--color-primary-dark);display:block}.game-complete__title{margin-top:.8rem;font-size:clamp(2rem,6vw,3.4rem);line-height:.98}.game-complete__stars{background:#f3f4ee;border-radius:.8rem;padding:.65rem .85rem}.game-complete__stat{box-shadow:none;background:#fff;border:1px solid #11182717;border-radius:.75rem}.game-complete__bonus{background:var(--color-sun);box-shadow:none;color:#111827;border-radius:.7rem}.curtain__panel{box-shadow:none;background:radial-gradient(circle at 70% 20%,#635bff9e,#0000 28rem),#111827}.curtain__loader{box-shadow:none;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1a;border:1px solid #ffffff1f;border-radius:.8rem}.curtain__spinner,.route-loader-toast__spinner{border-color:#d8ff5f33;border-top-color:var(--color-sun)}.route-loader-toast{color:var(--color-text);background:#fffffff0;border:1px solid #1118271f;border-radius:.75rem}.tts-caption{bottom:calc(1.25rem + env(safe-area-inset-bottom));background:#111827f0;border-radius:.65rem}@media (max-width:1120px){.home-dashboard{grid-template-columns:1fr}.home-progress-card{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);column-gap:2rem;display:grid}.home-progress-card>header,.home-progress-card__bar,.home-progress-card>p{grid-column:1}.home-metrics{grid-area:1/2/5}.home-progress-card__review{grid-column:1;margin-top:.5rem}.learning-path{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.app-nav{display:none}.app-workspace,.app-shell[data-focus-mode=true] .app-workspace{margin-left:0}.mobile-nav{right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));color:#f8fafc8c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#111827f2;border:1px solid #ffffff17;border-radius:1.15rem;grid-template-columns:repeat(5,1fr);min-height:68px;padding:.45rem;display:grid;left:.75rem;box-shadow:0 20px 45px -20px #111827c7}.mobile-nav__link{min-width:0;color:inherit;border-radius:.75rem;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;font-size:.58rem;font-weight:750;text-decoration:none;display:flex}.mobile-nav__link--active{color:#fff;background:#ffffff17}.mobile-nav__link--active svg{color:var(--color-sun)}.mobile-nav__link svg{width:20px;height:20px}.app-shell[data-focus-mode=false] .app-shell__page{padding-bottom:calc(5.8rem + env(safe-area-inset-bottom))}.scene{padding:1.25rem}.home-feature{grid-template-columns:1fr minmax(210px,.55fr)}.home-feature__copy{padding:2rem}.home-feature__visual .mascot{width:200px!important;height:200px!important}.home-module-grid{grid-template-columns:1fr}.home-module{grid-template-rows:auto 1fr;grid-template-columns:95px minmax(0,1fr);column-gap:1.25rem;min-height:190px;display:grid}.home-module__index{grid-column:1/-1}.home-module__glyph,.home-module__wave{grid-row:2;height:110px}.home-module>div:last-of-type{grid-area:2/2;align-self:center}.home-module p{margin-top:0}}@media (max-width:700px){.home-header{align-items:center}.home-header__intro,.home-streak>span:last-child{display:none}.home-header h1{font-size:clamp(2rem,10vw,3.2rem)}.home-dashboard{display:block}.home-feature{grid-template-rows:auto 220px;grid-template-columns:1fr;min-height:620px}.home-feature__copy{padding:1.5rem}.home-feature h2{font-size:clamp(2.45rem,12vw,4rem)}.home-feature__meta{margin-top:0}.home-feature__visual{min-height:220px}.home-feature__word{writing-mode:horizontal-tb;font-size:5rem;top:1rem;right:.5rem}.home-feature__ring{bottom:1rem;right:1rem}.home-progress-card{margin-top:1rem;display:flex}.home-metrics{grid-template-columns:repeat(3,1fr);margin-top:.4rem;display:grid}.home-metrics>div{border-bottom:0;border-right:1px solid #1118271a;flex-direction:column;align-items:flex-start;padding:.8rem .5rem}.home-metrics>div:last-child{border-right:0}.home-metrics dt{font-size:.6rem}.home-metrics dd{font-size:1.25rem}.home-section__header{flex-direction:column;align-items:flex-start;gap:.8rem}.home-preferences{grid-template-columns:1fr}.page-header{grid-template-columns:1fr;gap:1.25rem;margin-bottom:2rem}.page-header__copy h1{font-size:clamp(2.65rem,14vw,4.6rem)}.page-header__metric{border:0;justify-items:start;padding:0}.page-header__metric strong{font-size:2rem}.route-overview{grid-template-columns:1fr auto}.route-overview .learn-page__progress-bar{grid-area:2/1/auto/-1}.learning-path,.play-hub__grid,.story-library-grid{grid-template-columns:1fr}.practice-toolbar{flex-direction:column;align-items:stretch}.practice-toolbar__select select{width:100%}.lesson-header{flex-wrap:wrap}.lesson-header__copy{flex-basis:calc(100% - 62px)}.lesson-header__toggle,.lesson-header .game-complete__actions,.lesson-header>div:last-child:not(.lesson-header__copy){margin-left:auto}.lesson-header .btn{min-height:42px;padding:.55rem .7rem;font-size:.68rem}.lesson-step{min-height:34px;padding:.35rem}.lesson-step small{display:none}.lesson-footer{grid-template-columns:.75fr 1.25fr}.story-library-card{min-height:250px}.pronunciation-page .play-hub__intro{margin-top:-.75rem}}@media (max-width:480px){.scene,.hub-page,.learn-page,.lesson-page{padding-left:.9rem;padding-right:.9rem}.home-header__controls{gap:.35rem}.home-audio,.home-streak{height:42px;min-height:42px}.home-streak{padding:.45rem .6rem}.home-header .avatar{display:none}.home-feature{min-height:650px}.home-feature__actions{display:grid}.home-feature__actions .btn{width:100%}.home-feature__meta{gap:.65rem}.home-module{grid-template-columns:78px minmax(0,1fr);padding:1rem}.home-module__glyph{font-size:3rem}.home-sound{flex-direction:column;align-items:flex-start}.mascot-picker{right:.75rem;bottom:calc(5.5rem + env(safe-area-inset-bottom));width:auto;max-height:72vh;position:fixed;left:.75rem;overflow:auto}.learning-module{min-height:290px}.play-card{min-height:315px}.story-library-card{grid-template-columns:86px minmax(0,1fr);gap:.8rem}.story-library-card__cover{min-height:135px}.story-controls{grid-template-columns:1fr;display:grid}.story-controls__repeat{min-height:48px}.story-navigation{gap:.45rem}.story-navigation .btn{padding:.65rem .4rem;font-size:.72rem}.lesson-card{min-height:420px;padding:1rem}.choice{min-height:125px}.choice__emoji{font-size:3.2rem}.quality-grid{gap:.4rem}.quality-btn{min-height:105px;padding:.65rem .3rem}.quality-btn__emoji{font-size:1.75rem}.memory-grid{gap:.35rem}.memory-card__face{border-radius:.65rem}.match-images{gap:.4rem}.match-image{border-radius:.7rem;font-size:2.35rem}.match-slots{gap:.45rem}.match-slot{border-radius:.7rem;min-height:66px;padding:.55rem;font-size:.78rem}.pronunciation__target{flex-wrap:wrap;align-items:flex-start}.pronunciation__target strong{min-width:calc(100% - 4rem)}.pronunciation__controls,.pronunciation__after{grid-template-columns:1fr 1fr;width:100%;display:grid}.pronunciation__record{width:100%}.pronunciation-history__row{grid-template-columns:auto minmax(0,1fr) auto auto auto}.pronunciation-history__score{min-width:74px;font-size:.58rem}.mobile-nav{right:.5rem;bottom:calc(.5rem + env(safe-area-inset-bottom));left:.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.learning-module,.play-card{animation:none}.home-module:hover,.learning-path a:hover .learning-module,.play-card:hover,.story-library-card:hover{transform:none}}.app-shell>.skip-link{z-index:300;position:fixed}:where(a,button,select,input,[tabindex]):focus-visible,.btn:focus-visible,.companion-control__button:focus-visible,.mascot-option:focus-visible,.mascot-picker__close:focus-visible{outline-offset:3px;outline:3px solid var(--color-primary-dark)!important}.app-nav{scrollbar-width:none;overflow:hidden auto}.app-nav__footer small{color:#f8fafca3}.home-feature__meta{color:#f8fafcad}.home-audio[aria-pressed=false]{color:var(--color-text-soft);opacity:1;background:#ffffff80}.speech-practice{background:#f4f3ff;border:1px solid #635bff2e;border-radius:.9rem}.speech-practice__mic{background:var(--color-primary-dark);min-height:50px;box-shadow:none;border-radius:.75rem}.speech-practice__heard{background:#fff;border:1px solid #11182714;border-radius:.7rem}.speech-practice__retry{background:var(--color-primary-lighter);min-height:44px;color:var(--color-primary-darker);border-radius:.7rem}.learn-page__loading{min-height:54vh;color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;font-weight:800}.memory-grid{width:min(100%,720px);margin-left:auto;margin-right:auto}@media (max-width:1280px) and (min-width:701px){.home-dashboard{grid-template-columns:1fr}.home-progress-card{grid-template-columns:minmax(0,1fr) minmax(280px,1fr);column-gap:2rem;display:grid}.home-progress-card>header,.home-progress-card__bar,.home-progress-card>p{grid-column:1}.home-metrics{grid-area:1/2/5}.home-progress-card__review{grid-column:1;margin-top:.5rem}}@media (max-width:480px){.pronunciation__controls{grid-template-columns:1fr;min-width:0;display:grid}.pronunciation__after{grid-template-columns:1fr 1fr;width:100%;min-width:0;display:grid}.pronunciation__play,.pronunciation__discard{min-width:0;padding-left:.45rem;padding-right:.45rem}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}:root{--color-text-muted: #4F5869;--color-text-soft: #697284}.app-interactive{min-height:100vh;min-height:100dvh}.app-shell .skip-link{position:fixed;z-index:300}.mobile-nav{position:fixed;z-index:50}:where(a,button,select,input,[tabindex]):focus-visible,.btn:focus-visible,.companion-control__button:focus-visible,.mascot-option:focus-visible,.mascot-picker__close:focus-visible{outline:3px solid var(--color-primary-dark)!important;outline-offset:3px}.app-nav :where(a,button):focus-visible,.mobile-nav :where(a,button):focus-visible,.home-feature :where(a,button):focus-visible{outline-color:var(--color-sun)!important}.app-nav{overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav__footer small,.home-feature__meta{color:#f8fafcad}.home-audio[aria-pressed=false]{background:#ffffff80;color:var(--color-text-soft);opacity:1}.learning-module__copy p{color:var(--color-text-muted)}.play-card{align-items:stretch}.sfx-toggle__button[aria-pressed=false]{color:var(--color-text-muted);opacity:1}.mascot-picker__close{width:44px;height:44px}.speech-practice{border:1px solid rgba(99,91,255,.18);border-radius:.9rem;background:#f4f3ff}.speech-practice__eyebrow{color:var(--color-primary-dark)}.speech-practice__mic{min-height:50px;border-radius:.75rem;background:var(--color-primary-dark);box-shadow:none}.speech-practice__heard{border:1px solid rgba(17,24,39,.08);border-radius:.7rem;background:#fff}.speech-practice__retry{min-height:44px;border-radius:.7rem;background:var(--color-primary-lighter);color:var(--color-primary-darker)}.learn-page__loading{min-height:54vh;color:var(--color-text-muted);font-family:var(--font-body);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.memory-grid{display:grid;width:min(100%,720px);grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;margin-right:auto;margin-left:auto}.memory-card{display:block;width:100%;min-width:0;min-height:0;aspect-ratio:1 / 1}.memory-card__inner{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;will-change:transform}.memory-card__face,.memory-card__face--front{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.memory-card__face--back{transform:rotateY(0)}.memory-card__face--front,.memory-card--flipped .memory-card__inner{transform:rotateY(180deg)}.memory-card--flipped:disabled{opacity:1}.memory-card--matched:disabled{opacity:.58}.match-ghost__content{display:block;transform:translate(-50%,-50%)}.story-controls__play{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}@media (max-width: 1280px) and (min-width: 701px){.home-dashboard{grid-template-columns:1fr}.home-progress-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1fr);column-gap:2rem}.home-progress-card>header,.home-progress-card__bar,.home-progress-card>p{grid-column:1}.home-metrics{grid-row:1 / 5;grid-column:2}.home-progress-card__review{grid-column:1;margin-top:.5rem}}@media (max-width: 860px){.scene,.hub-page,.learn-page,.lesson-page{padding-top:max(1.25rem,env(safe-area-inset-top));padding-right:max(1.25rem,env(safe-area-inset-right));padding-left:max(1.25rem,env(safe-area-inset-left))}.mobile-nav{right:max(.75rem,env(safe-area-inset-right));left:max(.75rem,env(safe-area-inset-left))}}@media (max-width: 480px){.pronunciation__controls{display:grid;grid-template-columns:1fr;min-width:0}.pronunciation__after{display:grid;grid-template-columns:1fr 1fr;width:100%;min-width:0}.pronunciation__play,.pronunciation__discard{min-width:0;padding-right:.45rem;padding-left:.45rem}}@media (pointer: coarse){.match-image{touch-action:pan-y}}
