:root{--accent:#22c55e}html,body,#root{background:#fff;min-height:100%;margin:0}html[data-landing=true],html[data-landing=true] body,html[data-landing=true] #root{background:#fff}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scanplay-logo{object-fit:contain;flex-shrink:0;display:block}.wordmark{flex-wrap:nowrap;align-items:center;gap:5px;min-width:0;display:inline-flex}.wordmark-text{letter-spacing:-.03em;white-space:nowrap;font-family:Inter,system-ui,sans-serif;font-size:1.35rem;font-weight:700;line-height:1}.lp-header-brand .wordmark-text,.lp-footer-brand .wordmark-text{color:#0f2418}.wordmark-accent{color:var(--accent)}.auth-session-boot{background:#0f172a;min-height:100dvh}.error-boundary-screen{color:#f6faf8;text-align:center;background:#0f172a;place-content:center;gap:12px;min-height:100dvh;padding:24px;font-family:Inter,system-ui,sans-serif;display:grid}.error-boundary-screen button{color:#052e16;background:#22c55e;border:0;border-radius:12px;justify-self:center;padding:12px 20px;font-weight:700}html[data-landing=true],html[data-landing=true] body,html[data-landing=true] #root{height:auto;min-height:100%;overflow:clip visible}.sp-landing{--lp-text:#0f2418;--lp-muted:#0f2418ad;--lp-green:#22c55e;--lp-gutter:clamp(16px, 4.5vw, 40px);--lp-max:1120px;--lp-header-h:60px;color:var(--lp-text);background:#fff;font-family:Inter,system-ui,-apple-system,sans-serif}.sp-landing .lp-container{width:100%;max-width:var(--lp-max);padding-inline:var(--lp-gutter);margin-inline:auto}.sp-landing .lp-header{z-index:40;padding-top:env(safe-area-inset-top,0px);background:#ffffffeb;border-bottom:1px solid #0f28191a;position:sticky;top:0}.sp-landing .lp-header-inner{min-height:var(--lp-header-h);justify-content:space-between;align-items:center;gap:12px;display:flex}.sp-landing .lp-header-actions{align-items:center;gap:8px;display:flex}.sp-landing .lp-btn{min-height:48px;font:inherit;cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:12px 22px 14px;font-weight:800;display:inline-flex}.sp-landing .lp-btn--primary{color:#14350c;background:#58cc02;border-bottom:4px solid #46a302}.sp-landing .lp-btn--ghost{color:var(--lp-text);background:#fff;border:1.5px solid #0f281929;border-bottom:4px solid #0f28191f}.sp-landing .lp-btn--lg,.sp-landing .lp-btn--hero{width:100%;min-height:56px;font-size:1.06rem}.sp-landing .lp-hero{padding:clamp(14px,5vw,60px) 0 clamp(36px,7vw,84px)}.sp-landing .lp-hero-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.95rem,8.2vw,3.4rem);font-weight:850;line-height:1.07}.sp-landing .lp-hero-title-accent{color:#16a34a}.sp-landing .lp-hero-sub{color:var(--lp-muted);margin:16px 0;font-size:1.05rem;line-height:1.45}.sp-landing .lp-hero-trust{color:var(--lp-muted);flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:12px 0 0;padding:0;font-size:.82rem;font-weight:650;list-style:none;display:flex}.sp-landing .lp-lang{position:relative}.sp-landing .lp-lang-btn{min-height:40px;color:var(--lp-text);font:inherit;letter-spacing:.02em;cursor:pointer;background:#fff;border:1px solid #0f281929;border-radius:14px;align-items:center;gap:5px;padding:0 10px;font-size:.86rem;font-weight:750;display:inline-flex}html:not([data-lp-css=ready]) .sp-landing .lp-lang-menu{display:none!important}html:not([data-lp-css=ready]) .sp-landing .lp-nav,html:not([data-lp-css=ready]) .sp-landing .lp-main>:not(.lp-hero),html:not([data-lp-css=ready]) .sp-landing .lp-footer,html:not([data-lp-css=ready]) .sp-landing .lp-sticky{visibility:hidden}html:not([data-lp-css=ready]) .sp-landing .lp-hero-visual,html:not([data-lp-css=ready]) .sp-landing .lp-hero-steps,html:not([data-lp-css=ready]) .sp-landing .lp-hero-bg{opacity:0}html[data-lp-css=ready] .sp-landing .lp-hero-visual,html[data-lp-css=ready] .sp-landing .lp-hero-steps{opacity:1;transition:opacity .16s}.game-header .game-header-exit{z-index:9;touch-action:manipulation;flex-shrink:0;position:relative}.game-hud{flex-shrink:0;align-items:center;gap:6px;min-height:28px;display:flex}.game-hud-chip{border-radius:var(--radius-full);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:4px;padding:5px 10px;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.game-hud-chip--streak{color:#ea580c;background:#f9731629}.game-hud-xp-wrap{align-items:center;display:inline-flex;position:relative}.game-hud-chip--xp{background:var(--accent-dim);color:var(--accent);transition:transform var(--duration-fast) var(--ease-spring)}.game-hud-chip--xp-loss{color:#dc2626;background:#ef444429}.game-hud-chip--xp.is-pulsing{animation:sp-chip-pop .6s var(--ease-spring)}.game-hud-chip--xp.is-losing{animation:sp-chip-shake .55s var(--ease-spring)}.game-hud-xp-float{color:#16a34a;pointer-events:none;animation:sp-xp-float-up .85s var(--ease-out) both;text-shadow:0 1px #ffffffd9;z-index:2;font-size:.85rem;font-weight:900;position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%)}.game-hud-xp-float--loss{color:#dc2626;animation-name:sp-xp-float-down}@keyframes sp-chip-shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)scale(.96)}45%{transform:translate(3px)scale(1.04)}70%{transform:translate(-2px)}}@keyframes sp-xp-float-up{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.85)}25%{opacity:1;transform:translate(-50%)translateY(0)scale(1.1)}to{opacity:0;transform:translate(-50%)translateY(-18px)scale(1)}}@keyframes sp-xp-float-down{0%{opacity:0;transform:translate(-50%)translateY(-4px)scale(.85)}25%{opacity:1;transform:translate(-50%)translateY(0)scale(1.08)}to{opacity:0;transform:translate(-50%)translateY(14px)scale(.95)}}.game-hud-chip--combo{color:#a855f7;animation:sp-chip-pop .5s var(--ease-spring);background:#a855f72e}.game-hud-chip--timer{background:color-mix(in srgb, var(--text-muted) 16%, transparent);color:var(--text)}.game-header .game-header-timer{min-width:0}@keyframes sp-chip-pop{0%{transform:scale(1)}35%{transform:scale(1.22)}to{transform:scale(1)}}.game-prompt{animation:sp-rise .28s var(--ease-out) both;flex-direction:column;gap:6px;padding:4px 0 2px;display:flex}.game-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:750}.game-question{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:10px;font-size:clamp(1.4rem,6vw,1.85rem);font-weight:800;line-height:1.2;display:flex}@keyframes sp-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.choice-list{flex-direction:column;gap:10px;margin-top:auto;padding:4px 6px 8px;display:flex;overflow:visible}.choice-card{border:2px solid var(--surface-border);border-radius:var(--radius);background:var(--bg-card);width:100%;min-height:52px;color:var(--text);text-align:left;cursor:pointer;animation:sp-rise .26s var(--ease-out) both;animation-delay:calc(var(--stagger,0) * 45ms);transition:transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) linear, background var(--duration-fast) linear;border-bottom-width:4px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-family:inherit;font-size:.98rem;font-weight:650;display:flex}.choice-card:disabled{cursor:default}.choice-card:not(:disabled):active{border-bottom-width:2px;transform:translateY(2px)}.choice-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.choice-card-text{word-break:break-word;flex:1;min-width:0}.choice-card-mark{flex-shrink:0;font-size:1.05rem;font-weight:900}.choice-card--selected{border-color:var(--accent);background:var(--accent-dim)}.choice-card--correct{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);animation:sp-answer-pop .36s var(--ease-spring)}.choice-card--wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);animation:.32s sp-shake}.choice-card--muted{opacity:.45}.imagepick-body{flex-direction:column;flex:1;min-height:0;display:flex}.imagepick-prompt{text-align:center;margin:4px 0 0}.imagepick-grid{aspect-ratio:1;flex:auto;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;max-width:min(100%,400px);min-height:0;max-height:min(54dvh,400px);margin:12px auto 0;display:grid}.imagepick-card{justify-content:center;align-items:center;min-width:0;height:100%;min-height:0;padding:14px;animation-delay:0s;position:relative;overflow:hidden}.imagepick-grid.is-ready .imagepick-card{animation:sp-rise .18s var(--ease-out) both;animation-delay:0s}.imagepick-slot{border-radius:var(--radius);border:2px solid var(--surface-border);background:var(--bg-card);min-width:0;height:100%;min-height:0;animation:.8s ease-in-out infinite imagepick-wait;display:block}@keyframes imagepick-wait{50%{background:color-mix(in srgb, var(--bg-card) 70%, var(--bg-soft))}}.imagepick-card .choice-card-text{justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.imagepick-card .choice-card-mark{position:absolute;top:6px;right:8px}.imagepick-art{object-fit:contain;object-position:center;pointer-events:none;width:min(100%,112px);max-width:100%;height:min(100%,112px);max-height:100%;margin:auto;display:block}.fluent-preview{box-sizing:border-box;color:#0f172a;background:linear-gradient(165deg,#eef6e8 0%,#f5f7f4 50%,#e6eef5 100%);min-height:100vh;margin:0;padding:24px 16px 48px;font-family:system-ui,sans-serif}.fluent-preview h1{margin:0 0 8px;font-size:1.3rem;font-weight:800}.fluent-preview h2{margin:28px 0 12px;font-size:1rem;font-weight:800}.fluent-preview__hint{opacity:.78;max-width:40rem;margin:0 0 20px;font-size:.9rem;line-height:1.4}.fluent-preview__grid{background:#1e293b;border-radius:18px;margin-left:auto;margin-right:auto;padding:16px}.fluent-preview__card{box-sizing:border-box;background:#fff;border:2px solid #e2e8f0;border-radius:14px;justify-content:center;align-items:center;display:flex}.fluent-preview__label{color:#64748b;font-size:.65rem;font-weight:700;position:absolute;bottom:6px;left:8px}.fluent-preview__catalog{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.fluent-preview__catalog li{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-size:.7rem;font-weight:700;display:flex}.fluent-preview__catalog img{object-fit:contain;width:56px;height:56px}@keyframes sp-answer-pop{0%{transform:scale(1)}45%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes sp-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}.answer-feedback{margin:12px 0 calc(6px + env(safe-area-inset-bottom));border-radius:var(--radius-lg);animation:sp-feedback-in .24s var(--ease-out) both;border:2px solid #0000;flex-direction:column;flex-shrink:0;gap:10px;padding:14px;display:flex;box-shadow:0 14px 30px -20px #0f172a99}.lesson-embedded-pane .answer-feedback{margin-bottom:12px}.answer-feedback--correct{background:var(--accent-dim);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.answer-feedback--near{background:#f59e0b24;border-color:#f59e0b66}.answer-feedback--wrong{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:color-mix(in srgb, var(--danger) 38%, transparent)}.answer-feedback-main{align-items:flex-start;gap:10px;display:flex}.answer-feedback-icon{border-radius:var(--radius-full);color:#fff;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.95rem;font-weight:900;display:grid}.answer-feedback--correct .answer-feedback-icon{background:var(--accent)}.answer-feedback--near .answer-feedback-icon{background:#f59e0b}.answer-feedback--wrong .answer-feedback-icon{background:var(--danger)}.answer-feedback-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.answer-feedback-title{font-size:1rem;font-weight:800}.answer-feedback--correct .answer-feedback-title{color:var(--accent)}.answer-feedback--near .answer-feedback-title{color:#b45309}.answer-feedback--wrong .answer-feedback-title{color:var(--danger)}.answer-feedback-answer{word-break:break-word;font-size:.95rem;font-weight:700}.answer-feedback-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:750}.answer-feedback-note{color:var(--text-muted);word-break:break-word;font-size:.85rem;line-height:1.4}.answer-feedback-xp{border-radius:var(--radius-full);background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent);flex-shrink:0;align-self:center;padding:5px 11px;font-size:.8rem;font-weight:800}.answer-feedback-xp--gain{animation:sp-xp-pop-gain .65s var(--ease-spring)}.answer-feedback-xp--loss{color:#dc2626;animation:sp-xp-pop-loss .65s var(--ease-spring);background:#ef44442e}@keyframes sp-xp-pop-gain{0%{opacity:0;transform:translateY(8px)scale(.7)}55%{opacity:1;transform:translateY(-3px)scale(1.12)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sp-xp-pop-loss{0%{opacity:0;transform:translateY(-6px)scale(.7)}40%{opacity:1;transform:translateY(2px)scale(1.1)}to{opacity:1;transform:translateY(0)scale(1)}}.answer-feedback-actions{align-items:center;gap:10px;display:flex}.answer-feedback-cta{flex:1;min-height:48px}.answer-feedback-report{border-radius:var(--radius-md);min-height:44px;color:var(--text-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:10px 12px;font-size:.82rem;font-weight:750;text-decoration:underline}@keyframes sp-feedback-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.game-hint-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.type-grade-near .type-answer-input,.type-answer-input.is-near{border-color:#f59e0b}.match-card-wrap.matched .match-card{animation:sp-match-out .36s var(--ease-out) forwards}@keyframes sp-match-out{0%{opacity:1;transform:scale(1)}40%{opacity:1;transform:scale(1.06)}to{opacity:.32;transform:scale(.92)}}.dictation-body{gap:14px}.dictation-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.dictation-toolbar .game-instruction{flex:1;margin:0}.dictation-target{border-radius:var(--radius);background:var(--bg-card);border:2px solid var(--surface-border);text-align:center;padding:14px 16px}.dictation-target-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 4px;font-size:.72rem;font-weight:800}.dictation-target-word{color:var(--text);margin:0;font-size:1.35rem;font-weight:800;line-height:1.3}.dictation-target-write{color:var(--text);margin:10px 0 0;font-size:1.05rem;font-weight:700;line-height:1.35}.dictation-target-write strong{color:#14350c;background:color-mix(in srgb, var(--accent) 38%, transparent);border-radius:8px;padding:2px 8px;font-weight:900}.dictation-body .listen-audio-card{gap:10px}.dictation-slow{color:var(--text-muted);min-height:40px;font-size:.85rem;font-weight:700}.reorder-main{flex-direction:column;gap:14px;display:flex}.reorder-clue{border-radius:var(--radius);background:var(--bg-card);border:2px solid var(--surface-border);text-align:center;animation:sp-rise .28s var(--ease-out) both;margin:0;padding:14px 16px;font-size:1.1rem;font-weight:750}.reorder-answer{border:2px dashed var(--surface-border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-card) 55%, transparent);flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:104px;padding:12px;display:flex}.reorder-answer-empty{width:100%;min-height:44px;display:block}.reorder-bank{flex-wrap:wrap;justify-content:center;gap:8px;padding-bottom:8px;display:flex}.reorder-tile{animation:sp-rise .22s var(--ease-out) both;transition:transform var(--duration-fast) var(--ease-out)}.reorder-tile:not(:disabled):active{transform:translateY(2px)}.lesson-complete-chips{opacity:0;transition:opacity var(--duration-slow) var(--ease-out);justify-content:center;gap:10px;margin:0 0 22px;display:flex}.lesson-complete-chips .game-hud-chip{padding:8px 14px;font-size:.9rem;box-shadow:0 8px 18px -12px #0f172a99}.lesson-complete-chips.is-in{opacity:1}.mistakes-replay{flex-direction:column;gap:6px;margin:4px 0 16px;display:flex}.mistakes-replay-hint{color:var(--text-muted);margin:0;font-size:.82rem}@media (width>=768px){.choice-list{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice-list--single{grid-template-columns:1fr}.game-question{font-size:2.1rem}.imagepick-grid{gap:12px;max-width:min(100%,480px);max-height:min(56dvh,480px)}.answer-feedback{flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.answer-feedback-cta{flex:none;min-width:180px}}@media (prefers-reduced-motion:reduce){.choice-card,.game-prompt,.answer-feedback,.game-hud-chip--xp.is-pulsing,.game-hud-chip--combo,.answer-feedback-xp,.answer-feedback-xp--gain,.answer-feedback-xp--loss,.game-hud-xp-float,.game-hud-chip--xp.is-losing,.choice-card--correct,.choice-card--wrong,.match-card-wrap.matched .match-card{animation:none}.choice-card{transition:none}}
