:root{--color-primary:#2563eb;--color-on-primary:#fff;--color-secondary:#f59e0b;--color-accent:#ec4899;--color-background:#e8f7ff;--color-foreground:#0f172a;--color-muted:#f1f5fd;--color-border:#e4ecfc;--color-destructive:#dc2626;--color-ring:#2563eb;--color-success:#10b981;--color-muted-fg:#64748b;--color-meadow:#bbf7d0;--color-meadow-deep:#86efac;--color-sky-top:#7dd3fc;--color-sky-mid:#e0f2fe;--bg-blob-a:#4ade8038;--bg-blob-b:#ec489924;--bg-blob-c:#38bdf833;--card:#ffffffe0;--radius-outer:40px;--radius-card:28px;--radius-btn:26px;--tap:72px;--space-xs:4px;--space-sm:10px;--space-md:28px;--space-lg:40px;--space-xl:56px;--shadow-clay:8px 10px 0 #0f172a14, inset -3px -4px 10px #0f172a0f, inset 3px 4px 10px #ffffffd9;--shadow-clay-press:3px 4px 0 #0f172a1a, inset -2px -2px 8px #0f172a14, inset 2px 2px 8px #ffffffb3;--font-display:"Baloo 2", system-ui, sans-serif;--font-body:"Comic Neue", "Nunito", system-ui, sans-serif;color:var(--color-foreground);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:18px;line-height:1.5}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(180deg, var(--color-sky-top) 0%, var(--color-sky-mid) 42%, #f0fdf4 100%);overscroll-behavior:contain;background-attachment:fixed;min-height:100dvh}.app-shell{isolation:isolate;width:100%;max-width:none;min-height:100dvh;margin:0 auto;position:relative}.app-foreground{z-index:2;min-height:100dvh;position:relative}.nature-backdrop{z-index:0;pointer-events:none;width:100%;max-width:none;margin:0;position:fixed;inset:0;overflow:hidden}.nature-backdrop.splash{max-width:none;position:absolute}.nature-sky{background:radial-gradient(circle at 18% 12%,#fef3c7e6 0 8%,#0000 28%),radial-gradient(circle at 82% 18%,#ffffff8c 0 6%,#0000 22%),linear-gradient(#7dd3fc8c,#e0f2fe59 40%,#0000 70%);position:absolute;inset:0}.nature-hill{border-radius:50% 50% 0 0;position:absolute;left:-10%;right:-10%}.hill-back{opacity:.55;background:linear-gradient(#86efac,#4ade80);height:28%;bottom:-8%}.hill-front{opacity:.7;background:linear-gradient(#bbf7d0,#22c55e);height:22%;bottom:-12%}.decor-vine{opacity:.9;width:160px;height:280px;position:absolute;top:-10px;left:-8px}.decor-vine.flip{left:auto;right:-8px;transform:scaleX(-1)}.leaf{color:#4ade80;opacity:.85;width:64px;height:64px;animation:5s ease-in-out infinite leafSway;position:absolute}.leaf-1{color:#22c55e;top:18%;left:6%}.leaf-2{color:#86efac;width:36px;animation-delay:-1.5s;top:42%;right:4%}.leaf-3{color:#16a34a;width:30px;animation-delay:-3s;bottom:26%;left:8%}@keyframes leafSway{0%,to{transform:rotate(-8deg)translateY(0)}50%{transform:rotate(10deg)translateY(-6px)}}.critter-stage{z-index:1;position:absolute}.decor-critter{filter:drop-shadow(3px 4px #0f172a1f);width:100%;height:100%;animation:3.2s ease-in-out infinite bouncey}.stage-cat{width:140px;height:116px;bottom:12%;left:5%}.stage-bird{width:128px;height:104px;animation:3.8s ease-in-out infinite floaty;top:14%;right:7%}.stage-bird .decor-critter{animation:3.8s ease-in-out infinite floaty}.stage-bunny{width:112px;height:134px;animation-delay:-1s;bottom:10%;right:8%}.stage-fish{width:130px;height:76px;top:26%;left:14%}.stage-fish .decor-critter{animation:4.5s ease-in-out infinite swim}.stage-mush{width:84px;height:84px;bottom:9%;left:42%}.stage-flower{width:90px;height:90px;bottom:14%;right:30%}.stage-flower .decor-critter{animation:6s ease-in-out infinite spinSoft}.critter-stage.peek{opacity:.95;width:100px;height:88px}.critter-stage.peek-sm{opacity:.9;width:72px;height:72px}.nature-backdrop.app .stage-bird.peek{inset:88px 18px auto auto}.nature-backdrop.app .stage-cat.peek{inset:auto auto 16% 12px}.nature-backdrop.app .stage-bunny.peek{inset:auto 16px 12% auto}.nature-backdrop.app .stage-flower.peek-sm{inset:auto auto 5% 10%}.nature-backdrop.app .stage-mush.peek-sm{inset:auto 14% 4% auto}.nature-backdrop.app .decor-vine{opacity:.8;width:140px;height:240px}.nature-backdrop.app .hill-back{opacity:.45;height:22%}.nature-backdrop.app .hill-front{opacity:.55;height:16%}@keyframes bouncey{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-8px)rotate(2deg)}}@keyframes floaty{0%,to{transform:translate(0)}50%{transform:translate(-6px,-10px)}}@keyframes swim{0%,to{transform:translate(0)rotate(-4deg)}50%{transform:translate(14px)rotate(4deg)}}@keyframes spinSoft{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}button,a{font:inherit;color:inherit;cursor:pointer}a{text-decoration:none}:focus-visible{outline:3px solid var(--color-ring);outline-offset:3px}.page{min-height:100dvh;padding:20px 36px calc(36px + env(safe-area-inset-bottom));flex-direction:column;width:100%;max-width:1180px;margin:0 auto;display:flex}.page-body{flex-direction:column;flex:1;gap:18px;padding-top:8px;display:flex}.clay-card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-clay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:3px solid #fffffff2}.topbar{min-height:var(--tap);justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-left,.topbar-right{align-items:center;gap:10px;display:flex}.topbar-title{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:1.75rem;font-weight:700}.icon-btn{width:var(--tap);height:var(--tap);background:var(--card);box-shadow:var(--shadow-clay);color:var(--color-primary);border:3px solid #fff;border-radius:24px;place-items:center;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s;display:grid}.icon-btn svg{width:32px;height:32px}.icon-btn:hover{transform:translateY(-1px)}.icon-btn:active{box-shadow:var(--shadow-clay-press);transform:scale(.92)}.icon-btn.ghost{visibility:hidden}.icon-btn.adult{color:var(--color-accent);opacity:.92}.lede{color:var(--color-muted-fg);margin:0;font-size:1.1rem;font-weight:700}.home-hero{flex-direction:column;gap:6px;display:flex}.brand-mini{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:700}.btn{min-height:var(--tap);border-radius:var(--radius-btn);font-family:var(--font-display);box-shadow:var(--shadow-clay);border:3px solid #ffffffe6;justify-content:center;align-items:center;gap:8px;padding:18px 28px;font-size:1.45rem;font-weight:700;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s,filter .18s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:var(--shadow-clay-press);transform:scale(.94)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.wide{width:100%}.btn.primary{background:linear-gradient(180deg, #f472b6 0%, var(--color-accent) 100%);color:#fff}.btn.secondary{background:linear-gradient(180deg, #34d399 0%, var(--color-success) 100%);color:#fff}.btn.ghost{background:var(--card);color:var(--color-foreground)}.cta-stack{flex-direction:column;gap:12px;margin-top:auto;display:flex}.splash{text-align:left;background:0 0;border:none;width:100%;min-height:100dvh;padding:0;position:relative;overflow:hidden}.splash-content{z-index:2;min-height:100dvh;padding:var(--space-lg) var(--space-md);flex-direction:column;justify-content:center;display:flex;position:relative}.splash-badge{width:88px;height:88px;font-family:var(--font-display);color:var(--color-primary);background:linear-gradient(160deg,#fff,#dbeafe);border-radius:28px;place-items:center;margin-bottom:18px;font-size:1.8rem;font-weight:800;display:grid}.brand-eyebrow{color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;font-size:.95rem;font-weight:700}.brand{font-family:var(--font-display);color:var(--color-foreground);margin:0;font-size:clamp(3.4rem,7vw,5.5rem);font-weight:800;line-height:1.02}.brand-tagline{color:var(--color-muted-fg);max-width:20ch;margin:14px 0 0;font-size:1.45rem;font-weight:700}.splash-hint{font-family:var(--font-display);color:var(--color-primary);margin-top:40px;font-size:1.15rem;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.home-body{gap:22px}.parent-account-card{flex-direction:column;gap:10px;padding:18px 20px;display:flex}.parent-account-title{margin:0;font-size:1.25rem}.parent-account-lede{margin:0}.parent-account-tabs{gap:8px;display:flex}.parent-account-tabs button{font:inherit;cursor:pointer;background:#fff;border:2px solid #00000014;border-radius:14px;flex:1;padding:10px 12px}.parent-account-tabs button.active{background:#fce7f3;border-color:#ec4899}.parent-account-form{gap:10px;display:grid}.parent-account-form label{gap:4px;font-size:.95rem;display:grid}.parent-account-form input{font:inherit;border:2px solid #0000001a;border-radius:12px;padding:10px 12px}.parent-account-submit,.parent-account-logout{font:inherit;cursor:pointer;border:0;border-radius:14px;padding:12px 14px;font-weight:700}.parent-account-submit{color:#fff;background:#ec4899}.parent-account-logout{color:#64748b;background:0 0;text-decoration:underline}.parent-account-error{color:#b91c1c;margin:0;font-size:.9rem}.parent-child-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.parent-child-list button{font:inherit;cursor:pointer;background:#fff;border:2px solid #00000014;border-radius:999px;padding:8px 14px}.parent-child-list button.active{background:#fce7f3;border-color:#ec4899}.parent-account-add{grid-template-columns:1fr auto;align-items:end}.home-hero-banner{background:linear-gradient(120deg,#fff7ed 0%,#fce7f3 45%,#e0f2fe 100%);border:4px solid #fff;flex-flow:row;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.home-hero-copy{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:0;display:flex}.home-hero-banner .lede{margin:0}.home-hero-title{font-family:var(--font-display);color:var(--color-foreground);margin:4px 0 6px;font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:800;line-height:1.15}.home-hero-badge{filter:drop-shadow(4px 6px #0f172a1a);flex-shrink:0;width:clamp(88px,14vw,120px)}.home-hero-badge-left{animation:2.8s ease-in-out infinite bouncey}.home-hero-badge-right{animation:2.8s ease-in-out -1.1s infinite bouncey}.home-letter-badge{width:100%;height:auto;display:block}.theme-grid-posters{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;display:grid}.theme-poster{box-shadow:10px 12px 0 color-mix(in srgb, var(--theme-color) 35%, #0f172a1f), inset 0 0 0 3px color-mix(in srgb, var(--theme-color-2) 40%, transparent);background:linear-gradient(165deg, color-mix(in srgb, var(--theme-color-2) 55%, white), color-mix(in srgb, var(--theme-color) 25%, white));color:inherit;animation:.45s cubic-bezier(.34,1.4,.64,1) both popIn;animation-delay:var(--stagger,0s);border:4px solid #fff;border-radius:36px;flex-direction:column;min-height:340px;text-decoration:none;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s;display:flex;overflow:hidden}.theme-poster.open:hover{transform:translateY(-6px)scale(1.02)}.theme-poster.open:active{box-shadow:4px 5px 0 color-mix(in srgb, var(--theme-color) 40%, #0f172a26);transform:scale(.97)}.theme-poster.locked{filter:saturate(.85);opacity:.88}.theme-art-frame{background:#fff;border:3px solid #fffffff2;border-radius:28px;margin:14px 14px 0;position:relative;overflow:hidden;box-shadow:inset 0 -4px #0f172a0f}.theme-art,.theme-art-svg{aspect-ratio:200/150;object-fit:cover;width:100%;height:auto;min-height:180px;display:block}.theme-coming,.theme-open-badge{font-family:var(--font-display);border:2px solid #fff;border-radius:999px;align-items:center;gap:4px;padding:8px 14px;font-size:1rem;font-weight:800;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:2px 3px #0f172a1f}.theme-open-badge{background:var(--theme-color);color:#fff}.theme-coming{color:#fff;background:#0f172a8c}.theme-meta{flex-direction:column;gap:8px;padding:16px 18px 20px;display:flex}.theme-poster .theme-title{font-family:var(--font-display);color:color-mix(in srgb, var(--theme-color) 55%, #0f172a);font-size:1.7rem;font-weight:800;line-height:1.15}.theme-blurb{color:var(--color-muted-fg);font-size:1.1rem;font-weight:700;line-height:1.35}.theme-lock-line{color:color-mix(in srgb, var(--theme-color) 40%, #64748b);margin-top:4px;font-size:.9rem;font-weight:700}.theme-poster .theme-progress{background:#ffffffb3;border:2px solid #fff;border-radius:999px;height:22px;margin-top:8px;position:relative;overflow:hidden}.theme-poster .theme-progress-bar{background:linear-gradient(90deg, var(--theme-color), var(--theme-color-2));border-radius:inherit;height:100%;display:block}.theme-poster .theme-progress-label{font-size:.8rem;font-weight:800;font-family:var(--font-display);place-items:center;display:grid;position:absolute;inset:0}@media (width<=900px) and (orientation:portrait){.theme-grid-posters{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.theme-poster{min-height:300px}}@media (width<=600px){.theme-grid-posters{grid-template-columns:1fr}.home-hero-badge{width:72px}}@media (width>=1100px){.theme-grid-posters{gap:32px}.theme-poster{min-height:380px}.theme-art,.theme-art-svg{min-height:210px}.theme-poster .theme-title{font-size:1.9rem}}.continue-btn{margin-bottom:4px}.theme-detail-body{gap:22px}.theme-hero{background:linear-gradient(125deg, color-mix(in srgb, var(--theme-color-2) 55%, white), color-mix(in srgb, var(--theme-color) 18%, white) 55%, #fff);border:4px solid #fff;grid-template-columns:minmax(240px,.9fr) 1.2fr;align-items:center;gap:28px;padding:18px;display:grid}.theme-hero-art{box-shadow:6px 8px 0 color-mix(in srgb, var(--theme-color) 30%, #0f172a1a);background:#fff;border:3px solid #fff;border-radius:28px;overflow:hidden}.theme-hero-art .theme-art,.theme-hero-art .theme-art-svg{aspect-ratio:200/140;width:100%;min-height:200px;display:block}.theme-hero-copy{flex-direction:column;gap:10px;padding-right:8px;display:flex}.theme-hero-title{font-family:var(--font-display);color:color-mix(in srgb, var(--theme-color) 50%, #0f172a);margin:0;font-size:clamp(2.2rem,4vw,3rem);font-weight:800;line-height:1.1}.theme-hero-goal{color:var(--color-muted-fg);max-width:36ch;margin:0;font-size:1.15rem;font-weight:700;line-height:1.4}.theme-hero-stats{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.theme-stat-pill{background:var(--theme-color);color:#fff;min-height:40px;font-family:var(--font-display);border:2px solid #fff;border-radius:999px;align-items:center;padding:6px 14px;font-size:1.05rem;font-weight:800;display:inline-flex;box-shadow:3px 4px #0f172a1a}.theme-hero-progress{background:#ffffffbf;border:2px solid #fff;border-radius:999px;flex:1;min-width:160px;height:28px;position:relative;overflow:hidden}.theme-hero-progress .theme-progress-bar{background:linear-gradient(90deg, var(--theme-color), var(--theme-color-2));border-radius:inherit;height:100%;display:block}.theme-hero-progress .theme-progress-label{font-family:var(--font-display);place-items:center;font-size:.9rem;font-weight:800;display:grid;position:absolute;inset:0}.theme-hero-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.theme-continue,.theme-review{flex:140px;min-width:0;max-width:220px}.sentence-section-head h3{font-family:var(--font-display);color:var(--color-foreground);margin:0;font-size:1.55rem;font-weight:800}.sentence-section-head p{color:var(--color-muted-fg);margin:4px 0 0;font-size:1.05rem;font-weight:700}.sentence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.sentence-card{min-height:108px;color:inherit;background:#ffffffeb;border:4px solid #fff;border-radius:28px;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s;display:grid;box-shadow:7px 8px #0f172a14}.sentence-card:hover{transform:translateY(-3px)}.sentence-card:active{transform:scale(.98);box-shadow:3px 4px #0f172a1a}.sentence-card.is-next{border-color:color-mix(in srgb, var(--theme-color) 55%, white);box-shadow:8px 10px 0 color-mix(in srgb, var(--theme-color) 35%, #0f172a1f);background:linear-gradient(135deg, #fff, color-mix(in srgb, var(--theme-color-2) 35%, white))}.sentence-card.status-done{background:linear-gradient(145deg, color-mix(in srgb, var(--color-success) 16%, white), #e0fbef);border-color:color-mix(in srgb, var(--color-success) 35%, white);box-shadow:7px 8px 0 color-mix(in srgb, var(--color-success) 28%, #0f172a14)}.sentence-card.status-done .sentence-card-text{color:#047857}.sentence-card.status-doing{background:linear-gradient(145deg, #fff, color-mix(in srgb, var(--color-secondary) 18%, white))}.sentence-card-num{width:56px;height:56px;font-family:var(--font-display);color:#fff;background:var(--theme-color);border:3px solid #fff;border-radius:20px;place-items:center;font-size:1.45rem;font-weight:800;display:grid;box-shadow:3px 4px #0f172a1a}.sentence-card.status-done .sentence-card-num{background:var(--color-success)}.sentence-card.status-doing .sentence-card-num{background:var(--color-secondary)}.sentence-card-body{flex-direction:column;gap:4px;min-width:0;display:flex}.sentence-card-text{font-family:var(--font-display);font-size:1.55rem;font-weight:800;line-height:1.2}.sentence-card-focus{color:var(--color-muted-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;font-weight:700;overflow:hidden}.sentence-card-badge{font-family:var(--font-display);white-space:nowrap;border:2px solid #fff;border-radius:999px;justify-self:end;padding:8px 12px;font-size:.92rem;font-weight:800}.badge-todo{color:#475569;background:#e2e8f0}.badge-doing{color:#b45309;background:#fef3c7}.badge-done{color:#047857;background:#d1fae5}@media (width<=900px) and (orientation:portrait){.theme-hero{text-align:center;grid-template-columns:1fr}.theme-hero-copy{align-items:center;padding-right:0}.theme-hero-goal{max-width:none}.theme-hero-actions{justify-content:center;width:100%}.theme-continue,.theme-review{max-width:none}.sentence-grid{grid-template-columns:1fr}}@media (width<=600px){.sentence-grid{grid-template-columns:1fr}.sentence-card{grid-template-rows:auto auto;grid-template-columns:52px 1fr}.sentence-card-badge{grid-column:2;justify-self:start}}.sentence-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.sentence-row{background:var(--card);min-height:88px;box-shadow:var(--shadow-clay);border:3px solid #fff;border-radius:28px;grid-template-columns:56px 1fr 22px;align-items:center;gap:16px;padding:16px 22px;transition:transform .18s,box-shadow .18s;display:grid}.sentence-row:hover{transform:translateY(-1px)}.sentence-row:active{box-shadow:var(--shadow-clay-press);transform:scale(.98)}.sentence-num{background:color-mix(in srgb, var(--color-primary) 18%, white);width:42px;height:42px;color:var(--color-primary);font-family:var(--font-display);border:2px solid #fff;border-radius:16px;place-items:center;font-weight:800;display:grid}.sentence-text{font-family:var(--font-display);font-size:1.55rem;font-weight:700}.sentence-dot{background:#cbd5e1;border-radius:50%;width:14px;height:14px;box-shadow:inset 0 -1px 2px #0f172a26}.status-doing .sentence-dot{background:var(--color-secondary)}.status-done .sentence-dot{background:var(--color-success)}.status-done .sentence-num{background:color-mix(in srgb, var(--color-success) 22%, white);color:#047857}.word-learn-body{gap:18px}.word-stepper{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.word-step{min-height:52px;font-family:var(--font-display);cursor:pointer;background:#ffffffd9;border:3px solid #fff;border-radius:999px;align-items:center;gap:8px;padding:8px 14px 8px 8px;font-weight:800;transition:transform .16s;display:inline-flex;box-shadow:4px 5px #0f172a14}.word-step:active{transform:scale(.96)}.word-step-n{background:#e2e8f0;border-radius:50%;place-items:center;width:32px;height:32px;font-size:.95rem;display:grid}.word-step-t{font-size:1.15rem}.word-step.current{background:linear-gradient(135deg, color-mix(in srgb, var(--theme-color-2) 50%, white), #fff);box-shadow:5px 6px 0 color-mix(in srgb, var(--theme-color) 35%, #0f172a1f)}.word-step.current .word-step-n{background:var(--theme-color);color:#fff}.word-step.learned:not(.current) .word-step-n{background:var(--color-success);color:#fff}.word-learn-stage{flex:1;grid-template-columns:1.05fr .95fr;align-items:stretch;gap:24px;display:grid}.word-stage-visual,.word-stage-panel{border:4px solid #fff;flex-direction:column;gap:14px;min-height:420px;padding:22px;display:flex}.word-stage-visual{text-align:center;background:linear-gradient(160deg, color-mix(in srgb, var(--theme-color-2) 45%, white), #fff 55%, color-mix(in srgb, var(--theme-color) 12%, white));justify-content:center;align-items:center}.word-pic{aspect-ratio:1;width:min(100%,280px);box-shadow:none;background:0 0;border:none;border-radius:36px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:10px;display:flex;overflow:hidden}.word-art{flex-direction:column;align-items:center;gap:8px;width:100%;animation:.48s cubic-bezier(.22,1,.36,1) both sentenceArtIn;display:flex}.word-art-svg{aspect-ratio:1;width:100%;height:auto;box-shadow:8px 10px 0 color-mix(in srgb, var(--theme-color) 28%, #0f172a1a);border:4px solid #fff;border-radius:32px;display:block}.word-art-caption{color:var(--color-muted-fg);text-align:center;max-width:22ch;margin:0;font-size:.95rem;font-weight:700}.word-pic-letter{font-family:var(--font-display);color:var(--theme-color);text-shadow:3px 4px 0 color-mix(in srgb, var(--theme-color-2) 60%, white);font-size:clamp(4.5rem,10vw,6.5rem);font-weight:800;line-height:1}.word-pic-hint{color:var(--color-muted-fg);max-width:18ch;font-size:1.05rem;font-weight:700}.word-hero-big{font-family:var(--font-display);letter-spacing:.04em;color:color-mix(in srgb, var(--theme-color) 45%, #0f172a);margin:8px 0 0;font-size:clamp(3.8rem,8vw,5.8rem);font-weight:800;line-height:1}.word-sentence-context{color:var(--color-muted-fg);margin:0;font-size:1.1rem;font-weight:700}.word-sentence-context strong{color:var(--theme-color);font-family:var(--font-display);font-size:1.2rem}.word-stage-panel{background:#fffffff0;justify-content:flex-start}.word-panel-label{font-family:var(--font-display);color:var(--theme-color);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:1.15rem;font-weight:800}.spell-phases{display:none}.spell-assembly{flex-direction:column;flex:1;gap:12px;display:flex}.spell-stage{background:linear-gradient(160deg, color-mix(in srgb, var(--theme-color-2) 35%, white), #fff);border:3px solid #fff;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:160px;padding:16px 12px;display:flex}.spell-hint{color:var(--color-muted-fg);text-align:center;margin:0;font-weight:700}.spell-hint-in{animation:.48s cubic-bezier(.22,1,.36,1) both spellFadeUp}.spell-formula-scale{box-sizing:border-box;justify-content:center;align-items:center;width:100%;padding-inline:2px;display:flex;overflow:visible}.spell-formula-scale-inner{transform-origin:50%;will-change:transform}.spell-formula{flex-wrap:nowrap;gap:6px;width:max-content;max-width:none}.spell-formula .spell-tile{border-width:2px;border-radius:14px;min-width:0;min-height:0;padding:6px 10px;font-size:1.3rem;box-shadow:1px 2px #0f172a0f}.spell-formula .spell-tile.big{min-width:0;min-height:0;padding:7px 12px;font-size:1.55rem}.spell-formula .spell-op{min-width:.9em;font-size:1.25rem}.spell-formula .spell-mark-tile{background:color-mix(in srgb, var(--theme-color) 14%, white);color:var(--theme-color);justify-content:center;gap:0;min-width:3.2rem;min-height:3.2rem;padding:6px 12px}.spell-formula .spell-tone-mark{-webkit-text-stroke:.6px currentColor;paint-order:stroke fill;font-size:2.85rem;font-weight:900;line-height:1}.spell-line{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;animation:.42s cubic-bezier(.22,1,.36,1) both spellLineIn;display:flex}.spell-line.is-active{transform:scale(1.02)}.spell-line.is-final .spell-tile{font-size:clamp(3rem,6vw,4.2rem)}.spell-piece{opacity:0;animation:.52s cubic-bezier(.22,1,.36,1) both spellPieceIn;display:inline-flex}.spell-piece.d0{animation-delay:0s}.spell-piece.d1{animation-delay:70ms}.spell-piece.d2{animation-delay:.14s}.spell-piece.d3{animation-delay:.21s}.spell-piece.d4{animation-delay:.3s}.spell-piece.d5{animation-delay:.37s}.spell-piece.d6{animation-delay:.44s}.spell-piece.is-result{animation-name:spellResultIn;animation-duration:.58s}.spell-op{font-family:var(--font-display);color:var(--theme-color);justify-content:center;align-items:center;min-width:1.2em;font-size:1.6rem;font-weight:800;display:inline-flex}.spell-tile{min-width:56px;min-height:64px;font-family:var(--font-display);color:#334155;will-change:transform;background:#f1f5f9;border:3px solid #fff;border-radius:18px;justify-content:center;align-items:center;padding:8px 16px;font-size:2rem;font-weight:800;transition:background .28s,box-shadow .28s,color .28s,transform .28s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:3px 4px #0f172a14}.spell-tile.big{min-width:88px;min-height:88px;padding:10px 22px;font-size:2.8rem}.spell-tile.small{flex-direction:column;gap:2px;min-width:72px;font-size:1.1rem}.spell-tile.active{background:linear-gradient(145deg, var(--theme-color), color-mix(in srgb, var(--theme-color) 70%, #000));color:#fff;box-shadow:0 0 0 4px color-mix(in srgb, var(--theme-color) 22%, transparent), 5px 7px 0 color-mix(in srgb, var(--theme-color) 40%, #0f172a33);animation:1.6s ease-in-out infinite alternate spellSoftPulse}.spell-tone-tag{opacity:.95;font-size:.85rem;font-weight:800}.spell-tone-mark{-webkit-text-stroke:.8px currentColor;paint-order:stroke fill;font-size:3.6rem;font-weight:900;line-height:1}.spell-mark-tile{flex-direction:column;justify-content:center;gap:0;min-width:88px;min-height:88px}.spell-caption{text-align:center;font-family:var(--font-display);color:color-mix(in srgb, var(--theme-color) 45%, #0f172a);min-height:1.6em;margin:0;font-size:1.2rem;font-weight:800}.spell-caption-in{animation:.42s cubic-bezier(.22,1,.36,1) both spellFadeUp}@keyframes spellLineIn{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spellPieceIn{0%{opacity:0;transform:translateY(14px)scale(.9)}60%{opacity:1;transform:translateY(-2px)scale(1.03)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spellResultIn{0%{opacity:0;transform:translateY(10px)scale(.82)}55%{opacity:1;transform:translateY(-4px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spellSoftPulse{0%{transform:scale(1.04)}to{transform:scale(1.08)}}@keyframes spellFadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.spell-hint-in,.spell-line,.spell-piece,.spell-caption-in,.spell-tile.active{opacity:1!important;animation:none!important;transform:none!important}}.word-cta-stack{flex-direction:column;gap:12px;margin-top:auto;display:flex}.word-spell-btn.is-playing{animation:1s ease-in-out infinite pulse}.word-nav-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.word-nav-row .btn:first-child{justify-self:start}.word-nav-row .btn:last-child{justify-self:end}.word-nav-count{font-family:var(--font-display);color:var(--color-muted-fg);font-size:1.1rem;font-weight:800}.word-fluent-cta{margin-top:4px}@media (width<=900px) and (orientation:portrait){.word-learn-stage{grid-template-columns:1fr}.word-stage-visual,.word-stage-panel{min-height:0}}@media (width<=600px){.word-learn-stage{grid-template-columns:1fr}.word-nav-row{grid-template-columns:1fr 1fr}.word-nav-count{display:none}}.sentence-hub,.word-page,.fluent-page{text-align:center}.illustration{aspect-ratio:1.15;background:linear-gradient(160deg,#fff,#dbeafe 55%,#fce7f3);flex-direction:column;justify-content:center;align-items:center;gap:8px;width:min(100%,380px);margin:8px auto 0;padding:20px;display:flex}.sentence-art{flex-direction:column;align-items:center;gap:10px;width:min(100%,420px);margin:8px auto 0;padding:12px 12px 14px;animation:.52s cubic-bezier(.22,1,.36,1) both sentenceArtIn;display:flex;overflow:hidden}.sentence-art-svg{aspect-ratio:280/200;border-radius:22px;width:100%;height:auto;display:block}.sentence-art-caption{text-align:center;color:var(--color-muted-fg);margin:0;padding:0 8px;font-size:.98rem;font-weight:700}@keyframes sentenceArtIn{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.sentence-art{animation:none}}.illustration-letter{font-family:var(--font-display);color:var(--color-primary);font-size:5rem;font-weight:800;line-height:1}.illustration-caption{color:var(--color-muted-fg);text-align:center;font-size:.98rem;font-weight:700}.sentence-hero{font-family:var(--font-display);letter-spacing:.02em;margin:8px 0 0;font-size:clamp(2rem,8vw,2.9rem);font-weight:800}.word-chips{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.word-chip{border:3px solid var(--color-border);min-height:52px;font-family:var(--font-display);background:#fff;border-radius:999px;padding:10px 18px;font-size:1.25rem;font-weight:700;transition:transform .16s;box-shadow:4px 5px #0f172a0f}.word-chip:active{transform:scale(.95)}.word-chip.learned{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 14%, white);color:#047857}.word-hero{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-foreground);margin:4px 0 0;font-size:clamp(4rem,18vw,6.5rem);font-weight:800;line-height:1}.spelling-script{min-height:3.2em;color:var(--color-muted-fg);margin:0;font-size:1.15rem;font-weight:700;line-height:1.55}.spelling-script .phase.active{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 14%, white);border-radius:10px;padding:0 6px;font-weight:800}.nav-words{grid-template-columns:1fr 1fr;gap:12px;display:grid}.fluent-shell{position:relative;overflow:hidden}.fluent-shell.is-cheering .page-body{z-index:1}.fluent-page{text-align:center;justify-content:flex-start;gap:20px;padding-top:8px}.fluent-intro{flex-direction:column;gap:4px;display:flex}.fluent-kicker{font-family:var(--font-display);color:var(--color-foreground);margin:0;font-size:clamp(1.6rem,4vw,2.1rem);font-weight:800}.fluent-hint{color:var(--color-muted-fg);min-height:1.4em;margin:0;font-weight:700}.fluent-stage{background:radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--color-secondary) 28%, white), transparent 42%), radial-gradient(circle at 85% 15%, color-mix(in srgb, var(--color-accent) 22%, white), transparent 40%), linear-gradient(165deg, #fff 0%, #eff6ff 55%, #fdf2f8 100%);border:4px solid #fff;border-radius:32px;width:min(100%,720px);margin:0 auto;padding:clamp(28px,5vw,48px) clamp(16px,4vw,36px);transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s;position:relative;box-shadow:0 18px 40px #2563eb1f,6px 8px #0f172a0f}.fluent-stage.is-reading{transform:scale(1.015);box-shadow:0 22px 48px #2563eb2e,6px 8px #0f172a14}.fluent-stage.is-done{background:radial-gradient(circle at 50% 0,#fde29c,#0000 55%),linear-gradient(165deg,#ecfdf5,#fff7ed 60%,#fce7f3);box-shadow:0 20px 50px #10b9812e,6px 8px #0f172a0f}.fluent-words{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;min-height:120px;display:flex}.fluent-word{font-family:var(--font-display);color:#334155;background:#ffffffb8;border:3px solid #fff;border-radius:22px;padding:12px 20px;font-size:clamp(2.2rem,9vw,3.6rem);font-weight:800;transition:transform .28s cubic-bezier(.22,1,.36,1),background .28s,color .28s,box-shadow .28s;box-shadow:4px 5px #0f172a0f}.fluent-word.read{color:color-mix(in srgb, var(--color-primary) 70%, #0f172a);background:color-mix(in srgb, var(--color-primary) 8%, white)}.fluent-word.active{background:linear-gradient(145deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 72%, #000));color:#fff;box-shadow:0 0 0 5px color-mix(in srgb, var(--color-primary) 22%, transparent), 5px 7px 0 color-mix(in srgb, var(--color-primary) 35%, #0f172a33);animation:.9s ease-in-out infinite alternate fluentWordPulse;transform:scale(1.12)}.fluent-word.glow{color:#047857;animation:.56s cubic-bezier(.22,1,.36,1) both fluentWordWin;animation-delay:calc(var(--i,0) * 70ms);background:#daf7ed;border-color:#a7f3d0}.fluent-play.is-playing{animation:1s ease-in-out infinite pulse}.fluent-cheer{flex-direction:column;align-items:center;gap:10px;width:min(100%,420px);margin:0 auto;padding:8px 4px 0;animation:.5s cubic-bezier(.22,1,.36,1) popIn;display:flex}.fluent-cheer-badge{justify-content:center;align-items:center;width:100%;max-width:300px;height:120px;margin-inline:auto;display:flex;position:relative}.fluent-cheer-ring{background:radial-gradient(circle,#fde68a 0%,#fbbf24 45%,#0000 70%);border-radius:50%;width:140px;height:140px;margin:0;animation:1.4s ease-out both cheerRing;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fluent-cheer-title{font-family:var(--font-display);text-align:center;background:linear-gradient(120deg,#f59e0b,#ec4899 55%,#2563eb);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(.95rem,2.8vw,1.15rem);font-weight:700;line-height:1.35;animation:.62s cubic-bezier(.22,1,.36,1) both cheerTitle}.fluent-cheer-sub{color:var(--color-muted-fg);margin:0 0 8px;font-size:1.1rem;font-weight:700}.done-panel{flex-direction:column;gap:10px;animation:.45s cubic-bezier(.34,1.4,.64,1) popIn;display:flex}.done-panel h2{font-family:var(--font-display);margin:0;font-size:2.3rem}.done-panel p{color:var(--color-muted-fg);margin:0 0 8px;font-weight:700}.stars{z-index:1;color:#f59e0b;filter:drop-shadow(0 6px #f59e0b47);justify-content:center;align-items:flex-end;gap:14px;width:max-content;margin-inline:auto;animation:.5s popIn;display:flex;position:relative}.stars svg{flex-shrink:0;width:72px;height:72px;animation:.9s ease-in-out infinite alternate starBounce;display:block}.stars svg:nth-child(2){width:92px;height:92px;animation-delay:.12s}.stars svg:nth-child(3){animation-delay:.24s}.celebration{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.celeb-flash{background:radial-gradient(circle at 50% 40%,#ffffff8c,#0000 55%);animation:.7s ease-out both celebFlash;position:absolute;inset:0}.celeb-spark{--angle:calc(var(--i) * 360deg / var(--n));background:hsl(calc(var(--i) * 40), 90%, 55%);width:10px;height:10px;box-shadow:0 0 8px hsl(calc(var(--i) * 40), 90%, 60%);transform:translate(-50%, -50%) rotate(var(--angle)) translateY(0) scale(.4);border-radius:3px;animation:1.15s cubic-bezier(.15,.85,.25,1) both sparkBurst;position:absolute;top:42%;left:50%}.celeb-spark.burst-0{animation-delay:0s;top:38%;left:50%}.celeb-spark.burst-1{background:hsl(calc(var(--i) * 40 + 80), 92%, 58%);animation-delay:.18s;top:48%;left:28%}.celeb-spark.burst-2{background:hsl(calc(var(--i) * 40 + 160), 92%, 58%);animation-delay:.32s;top:46%;left:72%}.celeb-faller{top:-8%;left:var(--x);background:hsl(var(--hue), 88%, 58%);opacity:0;width:12px;height:12px;animation:confettiFall var(--dur) ease-in var(--delay) both;border-radius:3px;position:absolute}.celeb-faller:nth-child(odd){border-radius:999px;width:8px;height:14px}.celeb-faller:nth-child(3n){border-radius:50%;width:10px;height:10px}@keyframes sparkBurst{0%{opacity:0;transform:translate(-50%, -50%) rotate(var(--angle)) translateY(0) scale(.2)}18%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--angle)) translateY(-140px) scale(1)}}@keyframes confettiFall{0%{opacity:0;transform:translateY(0)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(110vh)rotate(540deg)}}@keyframes celebFlash{0%{opacity:.85}to{opacity:0}}@keyframes fluentWordPulse{0%{transform:scale(1.08)}to{transform:scale(1.14)}}@keyframes fluentWordWin{0%{opacity:.5;transform:scale(.88)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes cheerRing{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(1.35)}}@keyframes cheerTitle{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes starBounce{0%{transform:translateY(0)scale(1)}to{transform:translateY(-6px)scale(1.08)}}@media (prefers-reduced-motion:reduce){.celebration,.fluent-word.active,.fluent-word.glow,.fluent-cheer-ring,.fluent-cheer-title,.stars svg{animation:none!important}}@keyframes popIn{0%{opacity:0;transform:scale(.88)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes bounceSoft{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.record-backdrop{z-index:50;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.record-dialog{text-align:center;background:#fff;border-radius:28px;flex-direction:column;align-items:center;gap:10px;width:min(440px,100%);padding:12px 22px 22px;animation:.4s cubic-bezier(.22,1,.36,1) popIn;display:flex;box-shadow:0 18px 48px #0f172a38}.record-dialog h2{font-family:var(--font-display);margin:0;font-size:1.9rem;font-weight:800}.record-word{font-family:var(--font-display);color:var(--theme-color,#ec4899);margin:0;font-size:clamp(2.4rem,8vw,3.2rem);font-weight:800;line-height:1}.record-hint{color:var(--color-muted-fg);min-height:1.4em;margin:0;font-weight:700}.record-mic-wrap{justify-content:center;align-items:center;gap:14px;min-height:140px;margin:12px 0 4px;display:flex}.record-mic-btn{cursor:pointer;background:linear-gradient(145deg,#f472b6,#ec4899 55%,#db2777);border:none;border-radius:50%;place-items:center;width:120px;height:120px;transition:transform .2s cubic-bezier(.22,1,.36,1);display:grid;position:relative;box-shadow:0 0 0 6px #ec48992e,6px 8px #be185d40}.record-mic-btn:active{transform:scale(.94)}.record-mic-btn.recording{animation:.9s ease-in-out infinite alternate micBounce;box-shadow:0 0 0 10px #ec489947,6px 8px #be185d4d}.record-mic-btn.ready{background:linear-gradient(145deg,#34d399,#10b981 60%,#059669);box-shadow:0 0 0 6px #10b98138,6px 8px #05966940}.record-mic-btn:disabled{opacity:.5;cursor:not-allowed}.record-mic-pulse{border:3px solid #f9a8d4;border-radius:50%;animation:1.1s ease-out infinite micRing;position:absolute;inset:-10px}.cute-mic{z-index:1;width:64px;height:64px;position:relative}.record-mic-label{font-family:var(--font-display);color:#be185d;margin:0 0 8px;font-size:1.05rem;font-weight:800}.record-waves{align-items:center;gap:5px;height:56px;display:flex}.record-wave-bar{width:7px;height:16px;animation:.7s ease-in-out infinite alternate waveBar;animation-delay:calc(var(--i,0) * 90ms);background:linear-gradient(#f9a8d4,#ec4899);border-radius:999px}.record-replay{margin-top:4px}.record-dialog.is-retry{background:linear-gradient(#fffbeb,#fff 40%)}.record-dialog.is-cheer{background:linear-gradient(#ecfdf5,#fff 45%)}.record-word.glow{color:#047857;text-shadow:0 0 18px #34d3998c;animation:.45s cubic-bezier(.22,1,.36,1) popIn}.record-retry-banner{text-align:left;background:#fef4ca;border:3px solid #fff;border-radius:20px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.record-retry-face{flex-shrink:0;place-items:center;display:grid}.record-retry-title{font-family:var(--font-display);color:#b45309;margin:0;font-size:1.15rem;font-weight:800}.record-retry-sub{color:#92400e;margin:2px 0 0;font-size:.92rem;font-weight:700}.record-mic-error{color:#be185d;margin:0;font-size:.95rem;font-weight:700}.record-done-btn{min-height:52px;font-size:1.15rem}.record-cheer{flex-direction:column;align-items:stretch;gap:10px;width:100%;display:flex}.record-cheer-msg{color:#047857;margin:0 0 4px;font-size:.85rem;font-weight:700;line-height:1.35}.record-trophy-wrap{place-items:center;margin:4px 0 10px;animation:.7s cubic-bezier(.22,1,.36,1) both trophyPop;display:grid}.cute-trophy{filter:drop-shadow(0 12px 18px #d9770659);width:min(200px,52vw);height:auto;animation:2.4s ease-in-out infinite trophyWiggle}@keyframes trophyPop{0%{opacity:0;transform:scale(.55)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes trophyWiggle{0%,to{transform:rotate(-3deg)translateY(0)}50%{transform:rotate(3deg)translateY(-6px)}}.record-cheer-sub{color:#047857;margin:0 0 4px;font-size:1.05rem;font-weight:700}.record-backdrop .celebration{z-index:60}.trophy-gift-backdrop{z-index:70;background:#0f172a80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.trophy-gift-backdrop .celebration{z-index:71}.trophy-gift-dialog{z-index:72;text-align:center;background:linear-gradient(#ecfdf5,#fffbeb 42%,#fff);border:4px solid #fff;border-radius:28px;flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);padding:14px 22px 22px;animation:.45s cubic-bezier(.22,1,.36,1) popIn;display:flex;position:relative;box-shadow:0 22px 56px #0f172a47}.trophy-gift-heading{font-family:var(--font-display);color:#b45309;margin:0;font-size:clamp(1.45rem,4.5vw,1.85rem);font-weight:800}.trophy-gift-msg{color:#047857;margin:0;font-size:.9rem;font-weight:700;line-height:1.35}.trophy-gift-sub{color:#92400e;margin:0 0 4px;font-size:.95rem;font-weight:700}.trophy-gift-cup .cute-trophy{width:min(220px,58vw)}.trophy-gift-stars{color:#f59e0b;filter:drop-shadow(0 4px #f59e0b40);justify-content:center;align-items:flex-end;gap:12px;display:flex}.trophy-gift-stars svg{width:36px;height:36px;animation:.9s ease-in-out infinite alternate starBounce;display:block}.trophy-gift-stars svg:nth-child(2){width:48px;height:48px;animation-delay:.12s}.trophy-gift-stars svg:nth-child(3){animation-delay:.24s}.trophy-gift-actions{flex-direction:column;gap:10px;width:100%;margin-top:6px;display:flex}.trophy-gift-label{font-family:var(--font-display);color:var(--theme-color,#ec4899);margin:0;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:800;line-height:1.1}@keyframes waveBar{0%{opacity:.65;height:12px}to{opacity:1;height:48px}}@keyframes micBounce{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes micRing{0%{opacity:.9;transform:scale(.92)}to{opacity:0;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.record-wave-bar,.record-mic-btn.recording,.record-mic-pulse{animation:none!important}}.fluent-stage.is-retry{background:radial-gradient(circle at 50% 0,#fde5a7,#0000 55%),linear-gradient(165deg,#fff7ed,#fef3c7 55%,#ffe4e6);box-shadow:0 18px 40px #f59e0b29,6px 8px #0f172a0f}.fluent-record-panel{background:linear-gradient(#fff,#fff7fb);border:4px solid #fff;border-radius:28px;flex-direction:column;align-items:center;gap:12px;width:min(100%,440px);margin:0 auto;padding:18px 16px 8px;animation:.45s cubic-bezier(.22,1,.36,1) popIn;display:flex;box-shadow:0 14px 36px #ec489924}.fluent-record-panel.is-retry{background:linear-gradient(#fffbeb,#fff);box-shadow:0 14px 36px #f59e0b29}.fluent-record-prompt{text-align:center;color:var(--color-muted-fg);margin:0;font-size:1.05rem;font-weight:700}.fluent-record-prompt strong{font-family:var(--font-display);color:var(--color-foreground);margin-top:4px;font-size:1.45rem;display:block}.fluent-retry-banner{background:#fef4ca;border:3px solid #fff;border-radius:20px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.fluent-retry-face{flex-shrink:0;place-items:center;display:grid}.fluent-retry-title{font-family:var(--font-display);color:#b45309;margin:0;font-size:1.2rem;font-weight:800}.fluent-retry-sub{color:#92400e;margin:2px 0 0;font-size:.95rem;font-weight:700}.fluent-mic-wrap{margin:4px 0}.fluent-mic-error{text-align:center;color:#be185d;margin:0;font-size:.95rem;font-weight:700}.fluent-record-actions{flex-direction:column;gap:10px;width:100%;margin-top:4px;display:flex}.fluent-done-btn{min-height:56px;font-size:1.2rem}.sheet-backdrop{z-index:40;background:#0f172a59;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.sheet{text-align:left;background:#fffefb;border-radius:32px 32px 24px 24px;flex-direction:column;gap:10px;width:min(560px,100%);max-height:80dvh;padding:12px 20px 20px;display:flex;overflow:auto}.sheet-handle{background:#d7dde3;border-radius:999px;width:48px;height:5px;margin:4px auto 8px}.sheet h2{font-family:var(--font-display);margin:0;font-size:1.55rem}.sheet-subtitle{margin:0;font-weight:700}.sheet-tip,.teach-list{color:var(--color-muted-fg);margin:0;font-weight:700;line-height:1.5}.teach-list{flex-direction:column;gap:8px;padding-left:18px;display:flex}.tts-banner{color:#92400e;background:#fef3c7;border:2px solid #fcd34d;border-radius:18px;margin:0 0 8px;padding:14px 18px;font-size:1.05rem;font-weight:700;line-height:1.4}.tablet-split{text-align:left;grid-template-columns:1.15fr .85fr;align-items:center;gap:36px;display:grid}.tablet-split .split-visual{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.tablet-split .split-actions{border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow-clay);border:3px solid #fff;flex-direction:column;gap:16px;margin-top:0;padding:28px;display:flex}.tablet-split .cta-stack{margin-top:0}.tablet-split .illustration,.tablet-split .sentence-art{width:min(100%,420px)}.tablet-split .word-hero{font-size:clamp(4.5rem,10vw,7rem)}.fluent-page{max-width:900px;margin-inline:auto}.sheet{width:min(640px,100%)}@media (width<=900px) and (orientation:portrait){.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tablet-split{grid-template-columns:1fr;gap:24px}.tablet-split .split-actions{width:100%;max-width:520px;margin-inline:auto}}@media (width<=600px){:root{--tap:56px;font-size:16px}.page{padding:14px 16px 28px}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.theme-card{min-height:150px}.tablet-split{grid-template-columns:1fr}.nature-backdrop.app .critter-stage{transform-origin:50%;transform:scale(.75)}}@media (width>=1100px){.page{padding:28px 48px 48px}.theme-grid{gap:26px}.theme-card{min-height:220px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}.decor-critter,.leaf{animation:none!important}}.print-picker-sheet{max-height:min(88vh,720px);overflow:auto}.print-picker-hint{color:var(--color-muted-fg);margin:0 0 8px;font-weight:700}.print-picker-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.print-picker-count{color:var(--theme-color,#ec4899);font-weight:800}.print-picker-list{flex-direction:column;gap:8px;max-height:42vh;margin:0 0 14px;padding:0;list-style:none;display:flex;overflow:auto}.print-picker-item{cursor:pointer;text-align:left;background:#fff;border:3px solid #e2e8f0;border-radius:16px;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:12px 14px;display:grid}.print-picker-item.is-checked{border-color:color-mix(in srgb, var(--theme-color,#ec4899) 55%, white);background:color-mix(in srgb, var(--theme-color-2,#f9a8d4) 28%, white)}.print-picker-item input{width:18px;height:18px;accent-color:var(--theme-color,#ec4899)}.print-picker-num{background:color-mix(in srgb, var(--theme-color,#ec4899) 18%, white);width:28px;height:28px;color:var(--theme-color,#ec4899);border-radius:50%;place-items:center;font-size:.85rem;font-weight:800;display:grid}.print-picker-text{font-size:1.05rem;font-weight:800}.print-page{color:#0f172a;background:#f8fafc;min-height:100vh}.print-page-toolbar{z-index:5;background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.print-page-kicker{color:#64748b;margin:0;font-size:.9rem;font-weight:700}.print-page-toolbar h1{font-family:var(--font-display);margin:2px 0 0;font-size:1.35rem}.print-page-toolbar-actions{flex-wrap:wrap;gap:10px;display:flex}.print-sheet{max-width:1100px;margin:0 auto;padding:24px 20px 48px}.print-sheet-title{text-align:center;font-family:var(--font-display);margin:0 0 18px;font-size:1.6rem;font-weight:800}.print-grid{grid-template-columns:repeat(3,1fr);gap:18px 16px;display:grid}.print-card{break-inside:avoid;page-break-inside:avoid;background:#fff;border:2px solid #e2e8f0;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:12px;display:flex}.print-card-art{width:100%}.print-sentence-art{width:100%;box-shadow:none;border-radius:14px;margin:0}.print-sentence-art .sentence-art-svg{aspect-ratio:1;width:100%;height:auto}.print-card-text{text-align:center;font-family:var(--font-display);margin:0;font-size:clamp(1.45rem,3.2vw,1.9rem);font-weight:800;line-height:1.25}.print-spell-list{text-align:left;border-top:1.5px dashed #cbd5e1;flex-direction:column;gap:8px;width:100%;margin:4px 0 0;padding:10px 8px 4px;list-style:none;display:flex}.print-spell-item{background:#f8fafc;border-radius:10px;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.print-spell-word{font-family:var(--font-display);color:var(--theme-color,#0f172a);font-size:1.05rem;font-weight:800}.print-spell-formula{color:#334155;font-variant-ligatures:none;font-size:.92rem;font-weight:800;line-height:1.35}.print-spell-mark{color:#0f172a;-webkit-text-stroke:.5px currentColor;vertical-align:-.08em;margin:0 .12em;font-size:1.55rem;font-weight:900;line-height:1;display:inline-block}@media (width<=800px){.print-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.print-grid{grid-template-columns:1fr}}.review-hub-page,.review-lesson-page{--review-pastel:color-mix(in srgb, var(--theme-color,#ec4899) 14%, #fff7ed)}.review-hub-body,.review-lesson-body{flex-direction:column;gap:18px;padding-bottom:28px;display:flex}.review-hub-hero{text-align:center;background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--theme-color-2) 55%, #fff) 0%, transparent 42%), radial-gradient(circle at 88% 22%, #fef08a 0%, transparent 38%), linear-gradient(160deg, color-mix(in srgb, var(--theme-color) 28%, #fff) 0%, color-mix(in srgb, var(--theme-color-2) 42%, #fff8f1) 55%, #fff 100%);box-shadow:0 10px 0 color-mix(in srgb, var(--theme-color) 28%, #0f172a1a), var(--shadow-clay);border:4px solid #fff;padding:22px 18px 18px;animation:.42s cubic-bezier(.34,1.4,.64,1) both popIn;position:relative;overflow:hidden}.review-hub-hero-deco{pointer-events:none;position:absolute;inset:0}.review-hub-spark{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#fde047;width:14px;height:14px;animation:1.8s ease-in-out infinite reviewSpark;position:absolute}.review-hub-spark-a{top:14px;left:46%}.review-hub-spark-b{background:#f9a8d4;width:10px;height:10px;animation-delay:.35s;top:36px;right:18%}.review-hub-spark-c{background:#7dd3fc;width:11px;height:11px;animation-delay:.7s;top:28px;left:16%}.review-hub-buddy{filter:drop-shadow(0 4px #0f172a14);width:58px;height:58px;position:absolute}.review-hub-buddy-l{animation:2.6s ease-in-out infinite bounceSoft;bottom:54px;left:-4px}.review-hub-buddy-r{animation:2.6s ease-in-out .4s infinite bounceSoft;bottom:52px;right:-6px}.review-hub-hero-copy{z-index:1;flex-direction:column;align-items:center;gap:8px;padding:0 36px 4px;display:flex;position:relative}.review-hub-theme-chip{border:3px solid color-mix(in srgb, var(--theme-color) 35%, #fff);box-shadow:0 4px 0 color-mix(in srgb, var(--theme-color) 22%, #0f172a14);font-family:var(--font-display);color:color-mix(in srgb, var(--theme-color) 75%, #1e293b);background:#fff;border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 14px 6px 10px;font-size:.95rem;font-weight:800;animation:.5s cubic-bezier(.34,1.4,.64,1) both popIn;display:inline-flex}.review-hub-theme-dot{background:var(--theme-color);border-radius:50%;width:12px;height:12px;box-shadow:inset 0 -2px #0000001f}.review-hub-title{font-family:var(--font-display);color:var(--color-foreground);flex-direction:column;align-items:center;gap:2px;margin:2px 0 0;font-weight:800;line-height:1.05;display:flex}.review-hub-title-line{font-size:clamp(1.45rem,4vw,1.85rem)}.review-hub-title-fun{color:color-mix(in srgb, var(--theme-color) 72%, #be185d);text-shadow:3px 4px 0 color-mix(in srgb, var(--theme-color-2) 55%, #fff);font-size:clamp(1.85rem,5.5vw,2.45rem);animation:2.8s ease-in-out infinite reviewWiggle;transform:rotate(-2deg)}.review-hub-lede{color:#475569;max-width:28ch;margin:0;font-size:1.02rem;font-weight:700;line-height:1.35}.review-chain-cta{z-index:1;color:#fff;background:linear-gradient(135deg, color-mix(in srgb, var(--theme-color) 88%, #f472b6) 0%, color-mix(in srgb, var(--theme-color) 70%, #fb7185) 100%);width:100%;box-shadow:0 8px 0 color-mix(in srgb, var(--theme-color) 55%, #9d174d), 0 12px 20px #be185d2e;border:4px solid #fff;border-radius:26px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;text-decoration:none;transition:transform .16s cubic-bezier(.34,1.4,.64,1),box-shadow .16s;animation:.56s cubic-bezier(.34,1.4,.64,1) 80ms both popIn;display:grid;position:relative}.review-chain-cta:hover{transform:translateY(-3px)scale(1.015)}.review-chain-cta:active{box-shadow:0 3px 0 color-mix(in srgb, var(--theme-color) 55%, #9d174d), 0 6px 12px #be185d24;transform:translateY(4px)}.review-chain-cta-icons{background:#ffffff38;border-radius:16px;align-items:center;gap:4px;padding:6px 8px;display:inline-flex}.review-chain-step{width:28px;height:28px;color:color-mix(in srgb, var(--theme-color) 80%, #be185d);font-family:var(--font-display);background:#fff;border-radius:10px;place-items:center;font-size:.95rem;font-weight:800;display:grid}.review-chain-arrow{opacity:.95;font-size:1rem;font-weight:800;animation:1.2s ease-in-out infinite reviewHop}.review-chain-cta-text{text-align:left;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;display:flex}.review-chain-cta-text strong{font-family:var(--font-display);letter-spacing:.01em;font-size:clamp(1.15rem,3.2vw,1.4rem);font-weight:800}.review-chain-cta-text small{opacity:.92;font-size:.82rem;font-weight:700}.review-chain-cta-go{min-width:48px;height:48px;color:color-mix(in srgb, var(--theme-color) 75%, #be185d);font-family:var(--font-display);background:#fff;border-radius:18px;place-items:center;padding:0 10px;font-size:1.05rem;font-weight:900;animation:1.6s ease-in-out infinite reviewPulse;display:grid;box-shadow:0 4px #0f172a1a}@keyframes reviewSpark{0%,to{opacity:.75;transform:scale(.85)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(18deg)}}@keyframes reviewWiggle{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes reviewHop{0%,to{transform:translate(0)}50%{transform:translate(3px)}}@keyframes reviewPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (width<=520px){.review-hub-hero-copy{padding:0 8px 4px}.review-hub-buddy{width:46px;height:46px}.review-hub-buddy-l{bottom:62px;left:-8px}.review-hub-buddy-r{bottom:60px;right:-10px}.review-chain-cta{grid-template-columns:auto 1fr;gap:10px;padding:12px}.review-chain-cta-go{display:none}.review-chain-cta-text small{font-size:.78rem}}.review-lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.review-lesson-card{min-height:118px;color:inherit;animation:.48s cubic-bezier(.34,1.4,.64,1) both popIn;animation-delay:var(--stagger,0s);background:linear-gradient(155deg, #fff 0%, color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 22%, #fff8f1) 100%);grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:14px 12px 14px 10px;text-decoration:none;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s;display:grid;position:relative;overflow:hidden}.review-lesson-card.status-todo{background:linear-gradient(135deg, #fff 0%, color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 28%, #f8fafc) 100%);border-color:color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 35%, #fff);box-shadow:5px 6px 0 color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 18%, #0f172a14)}.review-lesson-card.status-doing{background:linear-gradient(135deg, #fffbeb 0%, #fde68a 45%, color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 25%, #fff7ed) 100%);border-color:#fcd34d;box-shadow:6px 8px #ce871056}.review-lesson-card.status-done{background:linear-gradient(135deg, #ecfdf5 0%, #a7f3d0 55%, color-mix(in srgb, var(--color-success,#10b981) 20%, #fff) 100%);box-shadow:6px 8px 0 color-mix(in srgb, var(--color-success,#10b981) 30%, #0f172a14);border-color:#6ee7b7}.review-lesson-card:hover{transform:translateY(-3px)scale(1.015)}.review-lesson-card:active{transform:scale(.98)}.review-lesson-trophy{z-index:2;pointer-events:none;filter:drop-shadow(0 3px #b4530938);width:40px;height:40px;animation:.52s cubic-bezier(.34,1.4,.64,1) both popIn;position:absolute;top:4px;right:4px}.review-lesson-trophy-svg{width:100%;height:100%;display:block}.review-lesson-mascot-wrap{background:color-mix(in srgb, #fff 70%, var(--lesson-accent,var(--theme-color)));border:3px solid #fff;border-radius:22px;flex-shrink:0;place-items:center;width:72px;height:72px;display:grid;box-shadow:0 4px #0f172a0f}.review-lesson-card.status-doing .review-lesson-mascot-wrap{background:#fff7ed}.review-lesson-card.status-done .review-lesson-mascot-wrap{background:#ecfdf5}.review-lesson-mascot{width:64px;height:64px;animation:2.4s ease-in-out infinite bounceSoft;animation-delay:var(--stagger,0s);display:block}.review-lesson-copy{text-align:left;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding-right:8px;display:flex}.review-lesson-num{width:26px;height:26px;font-family:var(--font-display);color:#fff;background:var(--lesson-accent,var(--theme-color));box-shadow:0 3px 0 color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 55%, #000);border-radius:9px;place-items:center;font-size:.9rem;font-weight:800;display:grid}.review-lesson-card.status-doing .review-lesson-num{background:#f59e0b;box-shadow:0 3px #d97706}.review-lesson-card.status-done .review-lesson-num{background:var(--color-success,#10b981);box-shadow:0 3px #047857}.review-lesson-title{font-family:var(--font-display);font-size:clamp(.98rem,2.4vw,1.15rem);font-weight:800;line-height:1.2}.review-lesson-badge{border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.review-lesson-badge.badge-todo{color:#64748b;background:#f1f5f9}.review-lesson-badge.badge-doing{color:#b45309;background:#fef3c7}.review-lesson-badge.badge-done{color:#047857;background:#d1fae5}.review-lesson-blurb{color:var(--color-muted-fg);font-size:.95rem;font-weight:600}.review-lesson-go{font-family:var(--font-display);color:var(--lesson-accent,var(--theme-color));font-size:1.05rem;font-weight:800}.review-lesson-head{text-align:center;margin-bottom:4px}.review-lesson-heading{font-family:var(--font-display);color:color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 70%, #1f2937);margin:2px 0 4px;font-size:clamp(1.55rem,3.5vw,2rem);font-weight:800}.review-lesson-sub{color:var(--color-muted-fg);margin:0;font-weight:600}.review-lesson-panel{flex-direction:column;gap:14px;padding:8px 0 20px;display:flex}.review-lesson-hint{text-align:center;font-family:var(--font-display);color:var(--color-foreground);margin:0;font-size:1.15rem;font-weight:700}.listen-pick-panel{gap:12px}.listen-pick-guide{justify-content:center;width:100%;margin:0;animation:.48s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex;overflow:visible}.listen-pick-guide-row{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;width:min(100%,420px);display:grid}.listen-pick-guide-card{border:3px solid #fff;border-radius:22px;justify-content:center;align-items:center;min-height:0;padding:22px 8px 8px;display:flex;position:relative;overflow:hidden;box-shadow:0 5px #0f172a14}.listen-pick-guide-card.is-listen{background:linear-gradient(160deg,#fce7f3,#fff5f8)}.listen-pick-guide-card.is-pick{background:linear-gradient(160deg,#e0f2fe,#f0f9ff)}.listen-pick-guide-num{z-index:3;width:28px;height:28px;font-family:var(--font-display);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;font-size:.9rem;font-weight:800;display:grid;position:absolute;top:6px;left:8px;box-shadow:0 2px #0f172a1f}.listen-pick-guide-card.is-listen .listen-pick-guide-num{background:#f472b6}.listen-pick-guide-card.is-pick .listen-pick-guide-num{background:#0ea5e9}.listen-pick-guide-scene{aspect-ratio:240/180;width:100%;height:auto;max-height:112px;display:block}.listen-pick-guide-arrow{font-family:var(--font-display);color:#f472b6;align-self:center;font-size:1.35rem;font-weight:900;line-height:1;animation:1.15s ease-in-out infinite reviewHop}.listen-pick-guide-correct{transform-origin:107px 80px;animation:1.5s ease-in-out infinite reviewPulse}.listen-pick-guide-tap{animation:1.4s ease-in-out infinite bounceSoft}.listen-pick-play-row{flex:1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;min-height:0;margin-top:30px;display:grid;position:relative}.listen-pick-next-btn{z-index:6;color:#9a3412;font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;transform-origin:50%;background:linear-gradient(160deg,#fde68a,#fbbf24);border:4px solid #fff;border-radius:999px;align-items:center;gap:6px;padding:10px 16px 10px 12px;font-size:1.15rem;font-weight:900;animation:.42s cubic-bezier(.34,1.4,.64,1) both popIn,1.4s ease-in-out .42s infinite bounceSoft;display:inline-flex;position:absolute;top:-10px;right:-4px;box-shadow:0 7px #d97706,0 12px 18px #d9770647}.listen-pick-next-btn:hover{transform:translateY(-1px)scale(1.03)}.listen-pick-next-btn:active{transform:translateY(3px)scale(.98);box-shadow:0 3px #d97706,0 6px 10px #d9770638}.listen-pick-next-star{color:#ea580c;font-size:1rem;line-height:1}.listen-pick-next-label{line-height:1}.listen-pick-next-arrow{color:#c2410c;font-size:1.25rem;line-height:1}.listen-pick-play{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#f472b6) 14%, #fff) 0%, #fff 70%);border:4px solid #fff;flex-direction:column;flex:1;gap:10px;min-height:0;padding:10px 14px 14px;display:flex}.listen-pick-speaker-stage{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-height:0;padding:4px 12px 0;display:flex;position:relative}.listen-pick-speaker-btn{color:#ec4899;cursor:pointer;background:linear-gradient(160deg,#fce7f3,#fff);border:5px solid #fff;border-radius:50%;width:84px;height:84px;transition:transform .16s cubic-bezier(.34,1.4,.64,1);position:relative;box-shadow:0 8px #f784a7,0 12px 22px #ec48992e}.listen-pick-speaker-btn:hover:not(:disabled){transform:translateY(-3px)scale(1.04)}.listen-pick-speaker-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 3px #f784a7,0 6px 12px #ec489924}.listen-pick-speaker-btn:disabled{cursor:default}.listen-pick-speaker-btn.playing{color:#db2777;animation:.9s ease-in-out infinite reviewPulse}.listen-pick-speaker-icon{width:48px;height:48px;margin:0 auto;display:block}.listen-pick-waves{pointer-events:none;position:absolute;inset:-10px}.listen-pick-waves span{opacity:0;border:3px solid #f9a8d4;border-radius:50%;animation:1.2s ease-out infinite listenPickRipple;position:absolute;inset:0}.listen-pick-waves span:nth-child(2){animation-delay:.25s}.listen-pick-waves span:nth-child(3){animation-delay:.5s}@keyframes listenPickRipple{0%{opacity:.65;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}.listen-pick-point-hand{pointer-events:none;filter:drop-shadow(0 4px #ea580c33);z-index:2;width:60px;height:60px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;top:52px;right:calc(50% - 88px)}.listen-pick-point-hand svg{width:100%;height:100%;display:block;transform:rotate(-28deg)}@keyframes listenPickPoint{0%,to{transform:translate(0)}50%{transform:translate(-10px,-8px)}}.listen-pick-speaker-hint{font-family:var(--font-display);color:color-mix(in srgb, var(--lesson-accent,#f472b6) 55%, #475569);margin:4px 0 0;font-size:1.05rem;font-weight:800}.listen-pick-choices-wrap{flex-direction:column;flex:1;gap:10px;min-height:0;animation:.42s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex}.listen-pick-choices-wrap .review-choice-grid.cols-3{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px}.listen-pick-choices-wrap .review-choice{align-items:stretch;height:100%;min-height:200px;padding:12px 10px 14px;display:flex}.listen-pick-choice{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:10px;width:100%;height:100%;display:flex}.listen-pick-choice-art{aspect-ratio:1;object-fit:contain;border-radius:18px;flex-shrink:0;width:100%;max-height:160px}.listen-pick-choices-wrap .review-choice.listen-pick-answer.is-selected{background:linear-gradient(160deg,#dbeafe,#eff6ff);border-color:#38bdf8;transform:translateY(-2px);box-shadow:0 0 0 3px #38bdf859,0 8px #0e88c15a}.listen-pick-choices-wrap .review-choice.listen-pick-answer.is-correct-glow{z-index:2;background:linear-gradient(160deg,#fef9c3,#fff);border-color:#facc15;animation:.9s ease-in-out infinite listenPickHalo;box-shadow:0 0 0 4px #facc158c,0 0 28px 8px #facc1573,0 10px #f59e0b59}.listen-pick-choices-wrap .review-choice.listen-pick-answer.is-shatter{pointer-events:none;animation:.85s ease-in forwards listenPickShatter}.listen-pick-choices-wrap .review-choice.listen-pick-answer.is-wrong-flash{background:linear-gradient(160deg,#fee2e2,#fff);border-color:#f87171;animation:.45s listenPickWrongShake}@keyframes listenPickHalo{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.08);transform:scale(1.03)}}@keyframes listenPickShatter{0%{opacity:1;filter:blur();transform:scale(1)rotate(0)}40%{opacity:.85;transform:scale(1.08)rotate(-4deg)}to{opacity:0;filter:blur(4px);transform:scale(.35)rotate(12deg)translateY(24px)}}@keyframes listenPickWrongShake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.listen-pick-check-side{z-index:8;justify-content:center;align-items:flex-end;margin:0;padding:0;display:flex;position:absolute;top:-52px;right:-12px}.listen-pick-check-hand{pointer-events:none;z-index:4;filter:drop-shadow(0 4px #ea580c38);width:52px;height:52px;animation:1s ease-in-out infinite listenPickCheckPoint;position:absolute;top:34px;left:-48px}.listen-pick-check-hand svg{width:100%;height:100%;display:block;transform:rotate(52deg)}@keyframes listenPickCheckPoint{0%,to{transform:translate(0)}50%{transform:translate(10px,6px)}}.listen-pick-check-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:flex-end;align-items:center;gap:0;height:auto;min-height:0;padding:0;transition:transform .16s cubic-bezier(.34,1.4,.64,1);display:flex;position:relative}.listen-pick-check-btn:disabled{cursor:default;opacity:.72;filter:grayscale(.12)}.listen-pick-check-btn.is-ready:not(:disabled){animation:1.5s ease-in-out infinite bounceSoft}.listen-pick-check-btn.is-ready:not(:disabled):hover{transform:translateY(-4px)scale(1.04)}.listen-pick-check-btn.is-ready:not(:disabled):active{transform:translateY(2px)scale(.98)}.listen-pick-check-lion{z-index:2;filter:drop-shadow(0 5px #b4530938);pointer-events:none;width:96px;height:96px;margin-bottom:-18px;display:block;position:relative}.listen-pick-check-pill{z-index:1;color:#fff;min-width:104px;min-height:48px;font-family:var(--font-display);letter-spacing:.01em;background:linear-gradient(160deg,#38bdf8,#0ea5e9);border:4px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:10px 16px;font-size:1.08rem;font-weight:900;display:inline-flex;position:relative;box-shadow:0 8px #0284c7,0 12px 20px #0ea5e94d}.listen-pick-check-btn.is-ready .listen-pick-check-pill{background:linear-gradient(160deg,#7dd3fc,#0ea5e9)}.listen-pick-choices-placeholder{opacity:.35;pointer-events:none;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.listen-pick-ghost-card{background:repeating-linear-gradient(-45deg,#f1f5f9,#f1f5f9 8px,#e2e8f0 8px 16px);border:3px dashed #cbd5e1;border-radius:22px;min-height:200px;display:block}@media (width<=520px){.listen-pick-guide-row{gap:6px;width:min(100%,340px)}.listen-pick-guide-card{border-radius:18px;padding:20px 6px 6px}.listen-pick-guide-num{width:24px;height:24px;font-size:.8rem;top:5px;left:6px}.listen-pick-guide-scene{max-height:96px}.listen-pick-guide-arrow{font-size:1.15rem}.listen-pick-choices-wrap .review-choice-grid.cols-3,.listen-pick-choices-placeholder{gap:8px}.listen-pick-choices-wrap .review-choice,.listen-pick-ghost-card{min-height:150px;padding:8px 6px 10px}.listen-pick-choice-art{border-radius:14px;max-height:100px}.listen-pick-choice-text{font-size:.88rem}.listen-pick-play-row{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:24px}.listen-pick-check-side{top:-46px;right:-8px}.listen-pick-check-btn{min-height:0}.listen-pick-check-lion{width:74px;height:74px;margin-bottom:-14px}.listen-pick-check-pill{min-width:82px;min-height:40px;padding:8px 12px;font-size:.92rem}.listen-pick-check-hand{width:42px;height:42px;top:26px;left:-38px}.listen-pick-point-hand{top:68px;right:calc(50% - 92px)}}.order-words-panel{gap:18px}.order-words-guide{justify-content:center;width:100%;margin:6px 0 0;animation:.48s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex;overflow:visible}.order-words-guide-row{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;width:min(100%,360px);display:grid}.order-words-guide-card{box-shadow:var(--shadow-clay);background:#fff;border:3px solid #fff;border-radius:18px;justify-content:center;align-items:center;padding:18px 4px 4px;display:flex;position:relative;overflow:visible}.order-words-guide-card.is-slots{background:linear-gradient(160deg,#e0f2fe,#fff 70%)}.order-words-guide-card.is-tap{background:linear-gradient(160deg,#fef9c3,#fff 70%)}.order-words-guide-num{color:#fff;width:26px;height:26px;font-family:var(--font-display);z-index:2;background:linear-gradient(160deg,#38bdf8,#0ea5e9);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:6px;left:8px}.order-words-guide-scene{width:100%;max-height:84px;display:block}.order-words-guide-arrow{font-family:var(--font-display);color:#38bdf8;align-self:center;font-size:1.35rem;font-weight:900}.order-words-guide-tap{animation:1.4s ease-in-out infinite bounceSoft}.order-words-play-row{flex:1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;min-height:0;margin-top:32px;display:grid;position:relative}.order-words-next-btn{right:-4px}.order-words-play{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#38bdf8) 14%, #fff) 0%, #fff 70%);border:4px solid #fff;flex-direction:column;gap:18px;min-height:0;padding:16px 14px 18px;display:flex}.order-words-stage{flex-direction:column;align-items:center;gap:12px;padding:4px 8px;display:flex}.order-words-hero-art{width:min(100%,300px);height:210px;box-shadow:0 10px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 28%, #94a3b8), 0 16px 28px #0ea5e933;background:linear-gradient(160deg,#e0f2fe,#fff 65%);border:5px solid #fff;border-radius:32px;margin:0;padding:10px}.order-words-hero-art .sentence-art-svg{transform-origin:50%;width:100%;height:100%;display:block;transform:scale(1.08)}.order-words-speaker-wrap{justify-content:center;align-items:center;min-height:120px;margin-top:4px;display:flex;position:relative}.order-words-hint-btn{color:#0284c7;cursor:pointer;z-index:1;background:linear-gradient(160deg,#38bdf8,#7dd3fc 45%,#e0f2fe);border:6px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;width:104px;height:104px;transition:transform .15s cubic-bezier(.34,1.4,.64,1);display:grid;position:relative;box-shadow:0 10px #0369a1,0 16px 26px #0ea5e966}.order-words-hint-btn.is-spotlight{animation:1.15s ease-in-out infinite orderWordsSpeakerPulse;box-shadow:0 0 0 8px #38bdf866,0 0 0 18px #7dd3fc47,0 0 36px 14px #0ea5e973,0 10px #0369a1,0 16px 26px #0ea5e973}.order-words-hint-btn.is-done{color:#0ea5e9;background:linear-gradient(160deg,#e0f2fe,#fff);box-shadow:0 6px #7dd3fc}.order-words-hint-btn:hover:not(:disabled){transform:translateY(-2px)}.order-words-hint-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px #0369a1}.order-words-hint-btn:disabled{cursor:default}.order-words-hint-btn.playing{animation:.9s ease-in-out infinite bounceSoft}.order-words-hint-speaker{width:54px;height:54px}.order-words-waves{pointer-events:none;justify-content:center;align-items:center;gap:5px;display:flex;position:absolute;inset:-8px}.order-words-waves span{background:#38bdf8;border-radius:999px;width:6px;height:18px;animation:.7s ease-in-out infinite orderWordsWave}.order-words-waves span:nth-child(2){height:26px;animation-delay:.12s}.order-words-waves span:nth-child(3){animation-delay:.24s}@keyframes orderWordsWave{0%,to{opacity:.55;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1)}}@keyframes orderWordsSpeakerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.order-words-speaker-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:58px;height:58px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;top:42px;right:-52px}.order-words-speaker-hand svg{width:100%;height:100%;display:block;transform:rotate(-28deg)}.order-words-hint-text{text-align:center;font-family:var(--font-display);color:color-mix(in srgb, var(--lesson-accent,#38bdf8) 45%, #475569);margin:2px 0 0;font-size:1.12rem;font-weight:800;line-height:1.25}.order-words-slots.is-waiting,.order-words-bank.is-waiting{opacity:.42;pointer-events:none;filter:grayscale(.15)}.order-words-slots{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px;padding:12px 4px 4px;display:flex}.order-words-slots.is-wrong{animation:.45s listenPickWrongShake}.order-words-slot{color:#94a3b8;min-width:72px;min-height:72px;font-family:var(--font-display);background:#ffffffb3;border:3px dashed #93c5fd;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:14px 16px 10px;font-weight:800;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s;display:flex;position:relative}.order-words-slot-num{color:#38bdf8;opacity:.85;font-size:.72rem;position:absolute;top:4px;left:8px}.order-words-slot-word{font-size:1.3rem;line-height:1.1}.order-words-slot.filled{color:var(--color-foreground);background:color-mix(in srgb, var(--lesson-accent,#38bdf8) 18%, #fff);box-shadow:0 6px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 35%, #94a3b8);border-style:solid;border-color:#fff;animation:.28s cubic-bezier(.34,1.4,.64,1) both popIn}.order-words-slot.glow{color:#92400e;background:linear-gradient(160deg,#fef08a,#fff);border-color:#fbbf24;animation:.9s ease-in-out infinite listenPickHalo;box-shadow:0 0 0 4px #7dd3fc8c,0 0 22px 6px #38bdf859,0 8px #0ea5e947}.order-words-bank{flex-direction:column;gap:12px;margin-top:4px;display:flex}.order-words-chip-row{flex-wrap:wrap;justify-content:center;gap:10px;padding:4px 8px 8px;display:flex;position:relative}.order-words-slots.is-drop-active .order-words-slot:not(.filled){background:#e0f2fee6;border-color:#38bdf8}.order-words-slot.is-over{background:#fef08a;border-style:solid;border-color:#0ea5e9;transform:scale(1.06);box-shadow:0 0 0 4px #38bdf859}.order-words-slot.is-drag-source{opacity:.45}.order-words-slot-chip{font:inherit;color:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:none;min-width:100%;min-height:36px;padding:4px 2px}.order-words-slot-chip:active{cursor:grabbing}.order-words-chip{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#38bdf8) 28%, #fff), #fff);min-width:64px;min-height:58px;box-shadow:0 7px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 42%, #94a3b8);font-family:var(--font-display);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:3px solid #fff;border-radius:22px;padding:12px 18px;font-size:1.28rem;font-weight:800;transition:transform .15s cubic-bezier(.34,1.4,.64,1)}.order-words-chip:hover:not(:disabled){transform:translateY(-2px)}.order-words-chip:active:not(:disabled){cursor:grabbing;box-shadow:0 4px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 42%, #94a3b8);transform:scale(1.04)}.order-words-chip.used,.order-words-chip:disabled{opacity:.35;cursor:default;touch-action:auto;transform:none}.order-words-chip.is-dragging{opacity:.25}.order-words-panel.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.order-words-drag-ghost{z-index:80;pointer-events:none;color:#92400e;min-width:64px;min-height:58px;font-family:var(--font-display);background:linear-gradient(160deg,#fef08a,#fff);border:3px solid #fff;border-radius:22px;place-items:center;padding:12px 18px;font-size:1.28rem;font-weight:900;display:grid;position:fixed;transform:rotate(-4deg)scale(1.08);box-shadow:0 10px #d9770673,0 16px 24px #0ea5e94d}.order-words-chip-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:54px;height:54px;animation:1s ease-in-out infinite listenPickCheckPoint;position:absolute;bottom:-6px;right:8%}.order-words-chip-hand svg{width:100%;height:100%;display:block;transform:rotate(-18deg)}.order-words-tools{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.order-words-check-side{margin-left:0}@media (width<=520px){.order-words-guide-row{gap:6px;width:min(100%,340px)}.order-words-guide-card{border-radius:18px;padding:20px 6px 6px}.order-words-guide-scene{max-height:96px}.order-words-play-row{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:24px}.order-words-check-side{margin-left:0}.order-words-hero-art{border-radius:26px;width:min(100%,240px);height:170px}.order-words-hint-btn{width:88px;height:88px}.order-words-hint-speaker{width:46px;height:46px}.order-words-speaker-hand{width:54px;height:54px;right:-48px}.order-words-slot{min-width:58px;min-height:60px;padding:12px 10px 8px}.order-words-slot-word{font-size:1.1rem}.order-words-chip{min-height:50px;padding:10px 14px;font-size:1.1rem}}.spell-flash-panel{gap:22px}.spell-flash-guide{justify-content:center;width:100%;margin:10px 0 4px;animation:.48s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex;overflow:visible}.spell-flash-guide-row{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;width:min(100%,360px);display:grid}.spell-flash-guide-card{box-shadow:var(--shadow-clay);background:#fff;border:3px solid #fff;border-radius:18px;justify-content:center;align-items:center;padding:18px 4px 4px;display:flex;position:relative}.spell-flash-guide-card.is-hear{background:linear-gradient(160deg,#fde68a,#fff 65%)}.spell-flash-guide-card.is-pick{background:linear-gradient(160deg,#fed7aa,#fff 65%)}.spell-flash-guide-num{color:#fff;width:26px;height:26px;font-family:var(--font-display);z-index:2;background:linear-gradient(160deg,#fbbf24,#f59e0b);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:6px;left:8px}.spell-flash-guide-scene{width:100%;max-height:84px;display:block}.spell-flash-guide-arrow{font-family:var(--font-display);color:#f59e0b;align-self:center;font-size:1.35rem;font-weight:900}.spell-flash-guide-tap,.spell-flash-guide-correct{animation:1.4s ease-in-out infinite bounceSoft}.spell-flash-play-row{flex:1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;min-height:0;margin-top:34px;display:grid;position:relative}.spell-flash-next-btn{right:-4px}.spell-flash-hero-art{width:min(100%,180px);margin:0 0 4px}.spell-flash-hero-art .word-art-svg{aspect-ratio:1;width:100%;height:auto;box-shadow:0 8px 0 color-mix(in srgb, var(--lesson-accent,#fbbf24) 35%, #94a3b8), 0 14px 22px #f59e0b38;background:linear-gradient(160deg,#fff7ed,#fff);border:5px solid #fff;border-radius:28px}.spell-flash-stage{flex-direction:column;align-items:center;gap:14px;padding:4px 8px 8px;display:flex}.spell-flash-play{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#fbbf24) 16%, #fff) 0%, #fff 72%);border:4px solid #fff;flex-direction:column;gap:20px;min-height:0;padding:16px 14px 20px;display:flex}.spell-flash-word-wrap{justify-content:center;width:min(100%,320px);display:flex;position:relative}.spell-flash-word-btn{cursor:pointer;color:#92400e;background:linear-gradient(160deg,#fde68a,#fff 60%);border:5px solid #fff;border-radius:28px;justify-content:center;align-items:center;gap:12px;width:100%;padding:16px 18px;transition:transform .15s cubic-bezier(.34,1.4,.64,1);display:flex;position:relative;box-shadow:0 8px #d97706,0 14px 22px #d9770647}.spell-flash-word-btn.is-spotlight{animation:1.15s ease-in-out infinite orderWordsSpeakerPulse;box-shadow:0 0 0 8px #fbbf2466,0 0 0 18px #fde04747,0 0 32px 12px #f59e0b66,0 8px #d97706}.spell-flash-word-btn.is-done{box-shadow:0 6px #fbbf24}.spell-flash-word-btn.playing{animation:.9s ease-in-out infinite bounceSoft}.spell-flash-word-btn:hover:not(:disabled){transform:translateY(-2px)}.spell-flash-word-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px #d97706}.spell-flash-word-btn:disabled{cursor:default}.spell-flash-word-text{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(2rem,7vw,2.8rem);font-weight:900;line-height:1}.spell-flash-word-speaker{color:#fff;background:linear-gradient(160deg,#fbbf24,#f59e0b);border:3px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 4px #b45309}.spell-flash-word-speaker-icon{width:28px;height:28px}.spell-flash-waves{pointer-events:none;align-items:center;gap:4px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.spell-flash-waves span{background:#f59e0b;border-radius:999px;width:5px;height:14px;animation:.7s ease-in-out infinite orderWordsWave}.spell-flash-waves span:nth-child(2){height:22px;animation-delay:.12s}.spell-flash-waves span:nth-child(3){animation-delay:.24s}.spell-flash-speaker-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:58px;height:58px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;bottom:-22px;right:-18px}.spell-flash-speaker-hand svg{width:100%;height:100%;display:block;transform:rotate(-28deg)}.spell-flash-hint{text-align:center;font-family:var(--font-display);color:color-mix(in srgb, var(--lesson-accent,#fbbf24) 45%, #475569);margin:4px 0 0;font-size:1.12rem;font-weight:800;line-height:1.25}.spell-flash-choices{flex-direction:column;gap:16px;margin-top:4px;display:flex;position:relative}.spell-flash-choices.is-wrong{animation:.45s listenPickWrongShake}.spell-flash-choice{text-align:left;cursor:pointer;width:100%;min-height:64px;font-family:var(--font-display);color:var(--color-foreground);border:4px solid #fff;border-radius:22px;align-items:center;gap:12px;padding:14px 16px 14px 14px;font-size:clamp(1rem,2.8vw,1.2rem);font-weight:800;line-height:1.3;transition:transform .15s cubic-bezier(.34,1.4,.64,1),background .15s,box-shadow .15s;display:flex;position:relative;box-shadow:0 7px #94a3b88c}.spell-flash-choice.tone-0{background:linear-gradient(160deg,#fef3c7,#fff)}.spell-flash-choice.tone-1{background:linear-gradient(160deg,#ffedd5,#fff)}.spell-flash-choice.tone-2{background:linear-gradient(160deg,#fce7f3,#fff)}.spell-flash-choice:hover:not(:disabled){transform:translateY(-2px)}.spell-flash-choice:active:not(:disabled){transform:translateY(2px);box-shadow:0 3px #94a3b88c}.spell-flash-choice.is-selected{color:#0c4a6e;background:linear-gradient(160deg,#bae6fd,#e0f2fe 40%,#fff);box-shadow:0 0 0 3px #38bdf873,0 8px #38bdf8}.spell-flash-choice.is-correct-glow{background:linear-gradient(160deg,#fef08a,#fff);border-color:#fbbf24;animation:.9s ease-in-out infinite listenPickHalo;box-shadow:0 0 0 4px #facc158c,0 0 24px 8px #facc1566,0 8px #f59e0b59}.spell-flash-choice.is-shatter{pointer-events:none;animation:.85s ease-in forwards listenPickShatter}.spell-flash-choice.is-wrong-flash{background:linear-gradient(160deg,#fee2e2,#fff);border-color:#f87171;animation:.45s listenPickWrongShake}.spell-flash-choice-badge{color:#fff;background:linear-gradient(160deg,#fbbf24,#f59e0b);border:2px solid #fff;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:.95rem;font-weight:900;display:grid;box-shadow:0 3px #b45309}.spell-flash-choice-formula{word-break:break-word;flex:1;min-width:0}.spell-flash-choice-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:54px;height:54px;animation:1s ease-in-out infinite listenPickCheckPoint;position:absolute;top:18px;right:18px}.spell-flash-choice-hand svg{width:100%;height:100%;display:block;transform:rotate(40deg)}.spell-flash-choices-placeholder{opacity:.35;pointer-events:none;flex-direction:column;gap:16px;margin-top:4px;display:flex}.spell-flash-ghost{background:repeating-linear-gradient(-45deg,#f1f5f9,#f1f5f9 8px,#e2e8f0 8px 16px);border:3px dashed #cbd5e1;border-radius:22px;min-height:64px;display:block}.spell-flash-check-side{margin-left:0}.spell-flash-panel .review-round-progress{margin:8px 0 6px}@media (width<=520px){.spell-flash-guide-row{gap:6px;width:min(100%,340px)}.spell-flash-play-row{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:24px}.spell-flash-check-side{margin-left:0}.spell-flash-hero-art{width:min(100%,140px)}.spell-flash-word-text{font-size:1.75rem}.spell-flash-word-speaker{width:40px;height:40px}.spell-flash-choice{min-height:56px;padding:12px;font-size:.95rem}}.fluent-review-panel{gap:22px}.fluent-review-guide{justify-content:center;width:100%;margin:10px 0 4px;animation:.48s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex;overflow:visible}.fluent-review-guide-row{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;width:min(100%,360px);display:grid}.fluent-review-guide-card{box-shadow:var(--shadow-clay);background:#fff;border:3px solid #fff;border-radius:18px;justify-content:center;align-items:center;padding:18px 4px 4px;display:flex;position:relative}.fluent-review-guide-card.is-hear{background:linear-gradient(160deg,#6ee7b7,#ecfdf5 55%,#fff)}.fluent-review-guide-card.is-mic{background:linear-gradient(160deg,#f9a8d4,#fdf2f8 55%,#fff)}.fluent-review-guide-num{color:#fff;width:26px;height:26px;font-family:var(--font-display);z-index:2;background:linear-gradient(160deg,#34d399,#059669);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:6px;left:8px}.fluent-review-guide-scene{width:100%;max-height:84px;display:block}.fluent-review-guide-arrow{font-family:var(--font-display);color:#10b981;align-self:center;font-size:1.35rem;font-weight:900}.fluent-review-guide-tap{animation:1.4s ease-in-out infinite bounceSoft}.fluent-review-play-row{flex:1;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;min-height:0;margin-top:34px;display:grid;position:relative}.fluent-review-next-btn{right:-4px}.fluent-review-play{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#34d399) 16%, #fff) 0%, #fff 72%);border:4px solid #fff;flex-direction:column;gap:18px;min-height:0;padding:16px 14px 20px;display:flex}.fluent-review-stage{flex-direction:column;align-items:center;gap:12px;padding:2px 8px 4px;display:flex}.fluent-review-hero-art{width:min(100%,170px);box-shadow:0 8px 0 color-mix(in srgb, var(--lesson-accent,#34d399) 32%, #94a3b8), 0 14px 22px #10b98133;background:linear-gradient(160deg,#d1fae5,#fff 65%);border:5px solid #fff;border-radius:28px;margin:0 0 4px;padding:8px}.fluent-review-hero-art .sentence-art-svg{width:100%;height:100%;display:block}.fluent-review-words{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.fluent-review-word{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#34d399) 22%, #fff), #fff);min-height:52px;box-shadow:0 6px 0 color-mix(in srgb, var(--lesson-accent,#34d399) 40%, #94a3b8);font-family:var(--font-display);color:var(--color-foreground);cursor:pointer;border:3px solid #fff;border-radius:20px;padding:10px 16px;font-size:clamp(1.25rem,3.5vw,1.65rem);font-weight:800;transition:transform .15s cubic-bezier(.34,1.4,.64,1)}.fluent-review-word:hover:not(:disabled){transform:translateY(-2px)}.fluent-review-word:active:not(:disabled){box-shadow:0 2px 0 color-mix(in srgb, var(--lesson-accent,#34d399) 40%, #94a3b8);transform:translateY(2px)}.fluent-review-word:disabled{cursor:default;opacity:.75}.fluent-review-speaker-wrap{justify-content:center;align-items:center;min-height:100px;margin-top:4px;display:flex;position:relative}.fluent-review-speaker-btn{color:#059669;cursor:pointer;z-index:1;background:linear-gradient(160deg,#34d399,#a7f3d0 50%,#fff);border:5px solid #fff;border-radius:50%;place-items:center;width:96px;height:96px;transition:transform .15s cubic-bezier(.34,1.4,.64,1);display:grid;position:relative;box-shadow:0 9px #047857,0 14px 22px #10b98159}.fluent-review-speaker-btn.is-spotlight{animation:1.15s ease-in-out infinite orderWordsSpeakerPulse;box-shadow:0 0 0 8px #34d39966,0 0 0 18px #a7f3d04d,0 0 32px 12px #10b98166,0 9px #047857}.fluent-review-speaker-btn.is-done{background:linear-gradient(160deg,#d1fae5,#fff);box-shadow:0 6px #6ee7b7}.fluent-review-speaker-btn.playing{animation:.9s ease-in-out infinite bounceSoft}.fluent-review-speaker-btn:hover:not(:disabled){transform:translateY(-2px)}.fluent-review-speaker-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px #047857}.fluent-review-speaker-btn:disabled{cursor:default}.fluent-review-speaker-icon{width:48px;height:48px}.fluent-review-waves{pointer-events:none;justify-content:center;align-items:center;gap:5px;display:flex;position:absolute;inset:-6px}.fluent-review-waves span{background:#059669;border-radius:999px;width:6px;height:16px;animation:.7s ease-in-out infinite orderWordsWave}.fluent-review-waves span:nth-child(2){height:24px;animation-delay:.12s}.fluent-review-waves span:nth-child(3){animation-delay:.24s}.fluent-review-speaker-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:58px;height:58px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;top:48px;right:-54px}.fluent-review-speaker-hand svg{width:100%;height:100%;display:block;transform:rotate(-28deg)}.fluent-review-hint{text-align:center;font-family:var(--font-display);color:color-mix(in srgb, var(--lesson-accent,#34d399) 45%, #475569);margin:4px 0 0;font-size:1.12rem;font-weight:800;line-height:1.25}.fluent-review-mic-block{flex-direction:column;align-items:center;gap:12px;margin-top:4px;display:flex}.fluent-review-mic-block.is-waiting{opacity:.42;pointer-events:none;filter:grayscale(.12)}.fluent-review-mic-block.is-wrong{animation:.45s listenPickWrongShake}.fluent-review-mic-wrap{justify-content:center;align-items:center;gap:10px;min-height:120px;display:flex}.fluent-review-mic-btn-wrap{position:relative}.fluent-review-mic-btn{cursor:pointer;background:linear-gradient(160deg,#f472b6,#ec4899);border:5px solid #fff;border-radius:50%;place-items:center;width:108px;height:108px;transition:transform .15s cubic-bezier(.34,1.4,.64,1);display:grid;position:relative;box-shadow:0 10px #be185d,0 16px 24px #ec489959}.fluent-review-mic-btn .cute-mic{width:52px;height:52px}.fluent-review-mic-btn.is-spotlight{animation:1.15s ease-in-out infinite orderWordsSpeakerPulse;box-shadow:0 0 0 8px #f472b666,0 0 0 18px #fbcfe859,0 0 32px 12px #ec489966,0 10px #be185d}.fluent-review-mic-btn.recording{background:linear-gradient(160deg,#fb7185,#e11d48);animation:.85s ease-in-out infinite bounceSoft}.fluent-review-mic-btn:hover:not(:disabled){transform:translateY(-2px)}.fluent-review-mic-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 4px #be185d}.fluent-review-mic-btn:disabled{cursor:default;opacity:.65}.fluent-review-mic-hand{pointer-events:none;z-index:3;filter:drop-shadow(0 4px #ea580c38);width:58px;height:58px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;top:58px;right:-52px}.fluent-review-mic-hand svg{width:100%;height:100%;display:block;transform:rotate(-28deg)}.fluent-review-heard{text-align:center;color:#047857;max-width:36ch;margin:0;font-size:1rem;font-weight:700}.fluent-review-heard.is-live{color:#be185d}.fluent-review-done-btn{color:#92400e;min-height:56px;font-family:var(--font-display);cursor:pointer;background:linear-gradient(160deg,#fde68a,#fbbf24);border:4px solid #fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 28px;font-size:1.25rem;font-weight:900;animation:.38s cubic-bezier(.34,1.4,.64,1) both popIn,1.4s ease-in-out .38s infinite bounceSoft;display:inline-flex;box-shadow:0 7px #d97706,0 12px 18px #d9770647}.fluent-review-done-btn:hover{transform:translateY(-1px)}.fluent-review-done-btn:active{transform:translateY(3px);box-shadow:0 3px #d97706,0 6px 10px #d9770638}.fluent-review-check-side{margin-left:0}.fluent-review-panel .review-round-progress{margin:8px 0 6px}@media (width<=520px){.fluent-review-guide-row{gap:6px;width:min(100%,340px)}.fluent-review-play-row{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:24px}.fluent-review-check-side{margin-left:0}.fluent-review-hero-art{width:min(100%,150px)}.fluent-review-speaker-btn{width:84px;height:84px}.fluent-review-mic-btn{width:92px;height:92px}.fluent-review-word{min-height:46px;padding:8px 12px;font-size:1.15rem}}.order-words-panel .review-round-progress{margin:6px 0 4px}.review-round-progress{justify-content:center;gap:10px;margin:4px 0 2px;display:flex}.review-dot{background:#e2e8f0;border:2px solid #fff;border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;box-shadow:0 2px #0f172a14}.review-dot.done{background:color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 70%, #86efac)}.review-dot.current{background:var(--lesson-accent,var(--theme-color));transform:scale(1.25)}.review-retry-banner{box-shadow:var(--shadow-clay);background:linear-gradient(135deg,#fef3c7,#ffedd5);border:3px solid #fff;border-radius:22px;align-items:center;gap:12px;padding:12px 16px;animation:.36s cubic-bezier(.34,1.4,.64,1) both popIn;display:flex}.review-retry-title{font-family:var(--font-display);color:#92400e;margin:0;font-size:1.2rem;font-weight:800}.review-retry-sub{color:#a16207;margin:2px 0 0;font-weight:600}.review-choice-grid{gap:12px;display:grid}.review-choice-grid.cols-1{grid-template-columns:1fr}.review-choice-grid.cols-2{grid-template-columns:repeat(2,1fr)}.review-choice-grid.cols-3{grid-template-columns:repeat(3,1fr)}.review-choice{min-height:64px;box-shadow:var(--shadow-clay);font-family:var(--font-display);color:var(--color-foreground);cursor:pointer;background:#fff;border:3px solid #fff;border-radius:22px;padding:14px 16px;font-size:1.2rem;font-weight:800;transition:transform .16s cubic-bezier(.34,1.4,.64,1),background .16s}.review-choice:hover:not(:disabled){background:color-mix(in srgb, var(--lesson-accent,var(--theme-color)) 12%, #fff);transform:translateY(-2px)}.review-choice:active:not(:disabled){transform:scale(.97)}.review-choice:disabled{opacity:.55;cursor:default}.review-choice-sentence{text-align:left;align-items:center;gap:14px;display:flex}.review-choice-art{border-radius:18px;flex-shrink:0;width:72px;height:72px}.review-choice-text{font-size:1.25rem;line-height:1.25}.review-chip-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.review-chip{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#38bdf8) 25%, #fff), #fff);min-width:56px;min-height:56px;box-shadow:0 6px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 40%, #94a3b8);font-family:var(--font-display);cursor:pointer;border:3px solid #fff;border-radius:20px;padding:10px 18px;font-size:1.25rem;font-weight:800;transition:transform .15s cubic-bezier(.34,1.4,.64,1)}.review-chip:hover:not(:disabled){transform:translateY(-2px)}.review-chip:active:not(:disabled){box-shadow:0 2px 0 color-mix(in srgb, var(--lesson-accent,#38bdf8) 40%, #94a3b8);transform:translateY(2px)}.review-chip.used,.review-chip:disabled{opacity:.4;cursor:default;transform:none}.review-order-slots{flex-wrap:wrap;justify-content:center;gap:8px;min-height:56px;display:flex}.review-order-slot{min-width:52px;min-height:52px;font-family:var(--font-display);color:#94a3b8;background:#ffffffa6;border:3px dashed #cbd5e1;border-radius:16px;place-items:center;padding:8px 12px;font-size:1.15rem;font-weight:800;display:grid}.review-order-slot.filled{color:var(--color-foreground);background:color-mix(in srgb, var(--lesson-accent,#38bdf8) 18%, #fff);box-shadow:var(--shadow-clay);border-style:solid;border-color:#fff;animation:.28s cubic-bezier(.34,1.4,.64,1) both popIn}.review-target-soft{text-align:center;color:var(--color-muted-fg);margin:0;font-weight:700}.review-flash-word{background:linear-gradient(155deg, color-mix(in srgb, var(--lesson-accent,#fbbf24) 28%, #fff), #fff);width:100%;box-shadow:var(--shadow-clay);font-family:var(--font-display);color:var(--color-foreground);cursor:pointer;border:3px solid #fff;border-radius:28px;margin:0 auto;padding:18px 20px;font-size:clamp(2rem,6vw,2.8rem);font-weight:800;animation:.4s cubic-bezier(.34,1.4,.64,1) both popIn;display:block}.review-formula-label{letter-spacing:.02em;font-size:1.15rem}.fill-blank-panel{gap:22px}.fill-blank-guide{justify-content:center;width:100%;margin:10px 0 4px;display:flex}.fill-blank-guide-row{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:10px;width:min(100%,360px);display:grid}.fill-blank-guide-card{box-shadow:var(--shadow-clay);border:3px solid #fff;border-radius:18px;align-items:center;padding:18px 4px 4px;display:flex;position:relative;overflow:hidden}.fill-blank-guide-card.is-hole{background:linear-gradient(160deg,#fed7aa,#fff 65%)}.fill-blank-guide-card.is-pick{background:linear-gradient(160deg,#fef08a,#fff 65%)}.fill-blank-guide-num{z-index:2;color:#fff;width:26px;height:26px;font-family:var(--font-display);background:linear-gradient(160deg,#fb923c,#ea580c);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.85rem;font-weight:900;display:grid;position:absolute;top:6px;left:8px}.fill-blank-guide-scene{width:100%;max-height:84px;display:block}.fill-blank-guide-arrow{color:#f97316;font-family:var(--font-display);align-self:center;font-size:1.35rem;font-weight:900}.fill-blank-guide-correct,.fill-blank-guide-tap{animation:1.4s ease-in-out infinite bounceSoft}.fill-blank-play-row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;min-height:0;margin-top:34px;display:grid;position:relative}.fill-blank-next-btn{right:-4px}.fill-blank-play{background:linear-gradient(160deg,#ffedd5,#fff 72%);border:4px solid #fff;flex-direction:column;gap:18px;min-height:0;padding:16px 14px 20px;display:flex}.fill-blank-stage{flex-direction:column;align-items:center;gap:14px;display:flex}.fill-blank-hero-art{background:linear-gradient(160deg,#ffedd5,#fff);border:5px solid #fff;border-radius:28px;width:min(100%,190px);height:145px;margin:0 0 4px;padding:8px;box-shadow:0 8px #fb923c61,0 14px 22px #ea580c2e}.fill-blank-hero-art .sentence-art-svg{width:100%;height:100%}.fill-blank-speaker-wrap{place-items:center;min-height:98px;display:grid;position:relative}.fill-blank-speaker-btn{color:#c2410c;cursor:pointer;background:linear-gradient(160deg,#fb923c,#fed7aa);border:5px solid #fff;border-radius:50%;place-items:center;width:90px;height:90px;display:grid;box-shadow:0 8px #c2410c,0 14px 22px #ea580c4d}.fill-blank-speaker-btn.is-spotlight{animation:1.15s ease-in-out infinite orderWordsSpeakerPulse;box-shadow:0 0 0 8px #fb923c61,0 0 0 18px #fed7aa52,0 8px #c2410c}.fill-blank-speaker-btn.playing{animation:.9s ease-in-out infinite bounceSoft}.fill-blank-speaker-btn.is-done{background:linear-gradient(160deg,#ffedd5,#fff);box-shadow:0 6px #fdba74}.fill-blank-speaker-btn:disabled{cursor:default}.fill-blank-speaker-icon{width:46px;height:46px}.fill-blank-speaker-hand{z-index:3;pointer-events:none;width:58px;height:58px;animation:1s ease-in-out infinite listenPickPoint;position:absolute;top:46px;right:-52px}.fill-blank-speaker-hand svg,.fill-blank-choice-hand svg{width:100%;height:100%;transform:rotate(-28deg)}.fill-blank-hint{color:#9a3412;font-family:var(--font-display);text-align:center;margin:0;font-size:1.12rem;font-weight:800}.fill-blank-prompt{width:100%;font-family:var(--font-display);text-align:center;background:linear-gradient(160deg,#fff7ed,#fff);border:4px solid #fff;border-radius:24px;margin:4px 0 0;padding:18px 16px;font-size:clamp(1.35rem,4vw,1.85rem);font-weight:900;line-height:1.5;box-shadow:0 7px #fb923c4d}.fill-blank-hole{color:#c2410c;background:#ffedd5;border:3px dashed #fb923c;border-radius:12px;justify-content:center;min-width:4.5ch;margin:0 5px;padding:1px 10px;display:inline-flex}.fill-blank-prompt.is-correct .fill-blank-hole{background:#fef08a;border-style:solid;border-color:#facc15;animation:.9s ease-in-out infinite listenPickHalo}.fill-blank-choices,.fill-blank-placeholder{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:4px;display:grid;position:relative}.fill-blank-choices.is-wrong{animation:.45s listenPickWrongShake}.fill-blank-choice{min-height:74px;font-family:var(--font-display);cursor:pointer;border:4px solid #fff;border-radius:22px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:clamp(1.15rem,3vw,1.45rem);font-weight:900;display:flex;position:relative;box-shadow:0 7px #94a3b880}.fill-blank-choice.tone-0{background:linear-gradient(160deg,#ffedd5,#fff)}.fill-blank-choice.tone-1{background:linear-gradient(160deg,#fef3c7,#fff)}.fill-blank-choice.tone-2{background:linear-gradient(160deg,#fce7f3,#fff)}.fill-blank-choice.is-selected{background:linear-gradient(160deg,#bae6fd,#fff);border-color:#7dd3fc;box-shadow:0 0 0 3px #38bdf866,0 8px #38bdf8}.fill-blank-choice.is-correct-glow{background:linear-gradient(160deg,#fef08a,#fff);border-color:#facc15;animation:.9s ease-in-out infinite listenPickHalo}.fill-blank-choice.is-shatter{animation:.85s ease-in forwards listenPickShatter}.fill-blank-choice.is-wrong-flash{background:linear-gradient(160deg,#fee2e2,#fff);border-color:#f87171}.fill-blank-choice-num{color:#fff;background:#fb923c;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.85rem;display:grid}.fill-blank-choice-hand{z-index:3;pointer-events:none;width:54px;height:54px;animation:1s ease-in-out infinite listenPickCheckPoint;position:absolute;bottom:-20px;right:6%}.fill-blank-placeholder{opacity:.35}.fill-blank-placeholder span{background:repeating-linear-gradient(-45deg,#f1f5f9,#f1f5f9 8px,#e2e8f0 8px 16px);border:3px dashed #cbd5e1;border-radius:22px;min-height:74px}.fill-blank-check-side{margin-left:0}.fill-blank-panel .review-round-progress{margin:8px 0 6px}@media (width<=520px){.fill-blank-guide-row{gap:6px;width:min(100%,340px)}.fill-blank-play-row{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:24px}.fill-blank-check-side{margin-left:0}.fill-blank-hero-art{width:min(100%,150px);height:115px}.fill-blank-choices{gap:8px}.fill-blank-choice{min-height:60px;padding:8px 5px;font-size:1rem}.fill-blank-choice-num{width:24px;height:24px}}.review-blank-prompt{text-align:center;font-family:var(--font-display);background:var(--review-pastel);box-shadow:var(--shadow-clay);border:3px solid #fff;border-radius:24px;margin:0;padding:16px;font-size:clamp(1.4rem,4vw,1.85rem);font-weight:800;line-height:1.45}.review-blank-hole{border-bottom:4px solid var(--lesson-accent,#fb923c);min-width:3ch;color:var(--lesson-accent,#fb923c);margin:0 2px;padding:0 8px;display:inline-block}.review-fluent-stage{background:linear-gradient(160deg, color-mix(in srgb, var(--lesson-accent,#34d399) 20%, #fff), #fff);box-shadow:var(--shadow-clay);border:3px solid #fff;border-radius:28px;flex-wrap:wrap;justify-content:center;gap:10px;padding:18px 14px;display:flex}.review-fluent-word{font-family:var(--font-display);padding:6px 4px;font-size:clamp(1.45rem,4vw,1.9rem);font-weight:800;animation:.38s cubic-bezier(.34,1.4,.64,1) both popIn}@media (width<=520px){.review-choice-grid.cols-3{grid-template-columns:1fr}.listen-pick-choices-wrap .review-choice-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.review-lesson-grid{gap:10px}.review-lesson-card{gap:8px;min-height:104px;padding:10px 8px}.review-lesson-mascot-wrap{border-radius:18px;width:58px;height:58px}.review-lesson-mascot{width:52px;height:52px}.review-lesson-title{font-size:.92rem}.review-lesson-trophy{width:34px;height:34px}.review-lesson-go{display:none}}@media print{.no-print,.app-shell>.nature-backdrop{display:none!important}.print-page{background:#fff}.print-sheet{max-width:none;padding:0}.print-sheet-title{margin-bottom:12pt;font-size:16pt}.print-grid{grid-template-columns:repeat(3,1fr);gap:10pt 8pt}.print-card{box-shadow:none;border:1pt solid #cbd5e1;border-radius:8pt;padding:8pt}.print-card-text{font-size:18pt}.print-spell-list{gap:4pt;padding-top:6pt}.print-spell-item{background:0 0;padding:2pt 0}.print-spell-word{font-size:11pt}.print-spell-formula{font-size:9.5pt}.print-spell-mark{-webkit-text-stroke:0;font-size:16pt;font-weight:900}.app-foreground,.print-page{background:#fff!important}}
