:root{color-scheme:light;color:#14213d;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--app-bg: #f6f8fb;--app-text: #14213d;--heading-text: #0f172a;--muted-text: #64748b;--soft-text: #475569;--panel-bg: #ffffff;--panel-soft-bg: #f8fafc;--panel-tint-bg: #f0f9ff;--panel-border: #d7dee8;--subtle-border: #e2e8f0;--control-bg: #f8fafc;--control-text: #334155;--control-border: #cbd5e1;--control-hover-bg: #eff6ff;--control-hover-border: #93c5fd;--primary: #1d4ed8;--primary-strong: #2563eb;--primary-soft: #dbeafe;--success: #16a34a;--success-strong: #14532d;--success-soft: #f0fdf4;--success-chip: #bbf7d0;--teal: #0f766e;--teal-soft: #ccfbf1;--warning: #92400e;--warning-soft: #fffbeb;--danger: #9f1239;--focus-ring: rgb(37 99 235 / .16);--panel-shadow: 0 14px 32px rgb(15 23 42 / .1)}@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;color:#e5e7eb;background:#0f172a;--app-bg: #0f172a;--app-text: #e5e7eb;--heading-text: #f8fafc;--muted-text: #aeb9c9;--soft-text: #cbd5e1;--panel-bg: #172033;--panel-soft-bg: #111827;--panel-tint-bg: #102a43;--panel-border: #334155;--subtle-border: #263448;--control-bg: #111827;--control-text: #e2e8f0;--control-border: #3b4a60;--control-hover-bg: #1e3a5f;--control-hover-border: #38bdf8;--primary: #60a5fa;--primary-strong: #93c5fd;--primary-soft: #1e3a5f;--success: #4ade80;--success-strong: #bbf7d0;--success-soft: #123525;--success-chip: #14532d;--teal: #2dd4bf;--teal-soft: #134e4a;--warning: #fbbf24;--warning-soft: #3b2f14;--danger: #fda4af;--focus-ring: rgb(96 165 250 / .28);--panel-shadow: 0 18px 42px rgb(0 0 0 / .34)}}:root[data-theme=light]{color-scheme:light;color:#14213d;background:#f6f8fb}:root[data-theme=dark]{color-scheme:dark;color:#e5e7eb;background:#0f172a;--app-bg: #0f172a;--app-text: #e5e7eb;--heading-text: #f8fafc;--muted-text: #aeb9c9;--soft-text: #cbd5e1;--panel-bg: #172033;--panel-soft-bg: #111827;--panel-tint-bg: #102a43;--panel-border: #334155;--subtle-border: #263448;--control-bg: #111827;--control-text: #e2e8f0;--control-border: #3b4a60;--control-hover-bg: #1e3a5f;--control-hover-border: #38bdf8;--primary: #60a5fa;--primary-strong: #93c5fd;--primary-soft: #1e3a5f;--success: #4ade80;--success-strong: #bbf7d0;--success-soft: #123525;--success-chip: #14532d;--teal: #2dd4bf;--teal-soft: #134e4a;--warning: #fbbf24;--warning-soft: #3b2f14;--danger: #fda4af;--focus-ring: rgb(96 165 250 / .28);--panel-shadow: 0 18px 42px rgb(0 0 0 / .34)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;color:var(--app-text);background:var(--app-bg)}button,input{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.65}.app-page{min-height:100vh;padding:calc(20px + env(safe-area-inset-top)) 10px calc(12px + env(safe-area-inset-bottom));color:var(--app-text);background:var(--screen-bg, var(--app-bg))}.start-menu-page{--screen-bg: linear-gradient(180deg, #f7f9fc 0%, #eef5f7 100%);--screen-accent: #2563eb;--screen-accent-soft: #dbeafe}.grammar-menu-page,.grammar-trainer-page,.practice-page{--screen-bg: linear-gradient(180deg, #f5f8f7 0%, #eef6f4 100%);--screen-accent: #0f766e;--screen-accent-soft: #ccfbf1}.speed-menu-page{--screen-bg: linear-gradient(180deg, #f8f7fb 0%, #f4f1f0 100%);--screen-accent: #b45309;--screen-accent-soft: #fef3c7}@media (prefers-color-scheme: dark){:root:not([data-theme]) .start-menu-page{--screen-bg: linear-gradient(180deg, #101827 0%, #142035 100%);--screen-accent: #93c5fd;--screen-accent-soft: #1e3a5f}:root:not([data-theme]) .grammar-menu-page,:root:not([data-theme]) .grammar-trainer-page,:root:not([data-theme]) .practice-page{--screen-bg: linear-gradient(180deg, #0f1f24 0%, #102521 100%);--screen-accent: #5eead4;--screen-accent-soft: #134e4a}:root:not([data-theme]) .speed-menu-page{--screen-bg: linear-gradient(180deg, #191722 0%, #241b18 100%);--screen-accent: #fbbf24;--screen-accent-soft: #3b2f14}}:root[data-theme=dark] .start-menu-page{--screen-bg: linear-gradient(180deg, #101827 0%, #142035 100%);--screen-accent: #93c5fd;--screen-accent-soft: #1e3a5f}:root[data-theme=dark] .grammar-menu-page,:root[data-theme=dark] .grammar-trainer-page,:root[data-theme=dark] .practice-page{--screen-bg: linear-gradient(180deg, #0f1f24 0%, #102521 100%);--screen-accent: #5eead4;--screen-accent-soft: #134e4a}:root[data-theme=dark] .speed-menu-page{--screen-bg: linear-gradient(180deg, #191722 0%, #241b18 100%);--screen-accent: #fbbf24;--screen-accent-soft: #3b2f14}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 auto 12px;max-width:1180px}.app-header h1{margin:0;color:#0f172a;font-size:1.25rem;font-weight:760;letter-spacing:0}.app-header p{margin:2px 0 0;color:#475569;font-size:.9rem}.game-layout{display:grid;grid-template-areas:"scene" "progress" "controls";grid-template-columns:minmax(0,1fr);gap:0;max-width:1180px;margin:0 auto}.scene-panel{grid-area:scene;position:relative;overflow:hidden;border:1px solid #cbd5e1;border-radius:8px 8px 0 0;background:#ffffff;box-shadow:0 10px 24px #0f172a14}.phaser-canvas{display:grid;width:100%;aspect-ratio:3 / 2;place-items:center;background:#e2e8f0}.phaser-canvas canvas{display:block;width:100%!important;height:100%!important}.inventory-overlay{position:absolute;right:8px;bottom:8px;left:8px;display:flex;align-items:center;justify-content:flex-start;gap:6px;overflow-x:auto;pointer-events:none}.inventory-chip{display:inline-flex;min-height:28px;flex:0 0 auto;align-items:center;border:1px solid rgb(148 163 184 / .45);border-radius:999px;padding:4px 9px;color:#0f172a;background:rgb(255 255 255 / .86);box-shadow:0 4px 12px #0f172a1f;font-size:.82rem;font-weight:740}.control-panel{display:grid;grid-area:controls;gap:0;margin-top:6px}.control-panel .panel{border-radius:0}.control-panel .panel:first-child{border-radius:8px 8px 0 0}.control-panel .panel:last-child{border-radius:0 0 8px 8px}.control-panel .panel+.panel{border-top:0}.panel{border:1px solid #d7dee8;border-radius:8px;background:#ffffff;padding:10px}.panel h2{margin:0;color:#172033;font-size:.95rem;font-weight:760;letter-spacing:0}.fox-avatar{overflow:hidden;width:38px;height:38px;flex:0 0 auto;border:1px solid rgb(154 52 18 / .42);border-radius:50%;background:linear-gradient(145deg,rgb(255 247 237 / .4),rgb(251 146 60 / .18)),url(/assets/brand/fox.png) center 42% / 128% auto no-repeat;box-shadow:inset 0 0 0 2px #ffffff8c,0 6px 14px #9a341233}.task-copy:after{display:block;clear:both;content:""}.task-panel .fox-avatar{float:left;margin:1px 9px 3px 0}.task-text{margin:0;color:#0f172a;font-size:1.05rem;font-weight:520}.task-interface-phrase{margin:8px 0 0;border-left:3px solid #2563eb;padding:5px 0 5px 10px;color:#0f172a;background:linear-gradient(90deg,rgb(37 99 235 / .09),transparent 88%);font-size:1.12rem;font-weight:780;line-height:1.25}.task-phrase-toggle{display:inline;border:0;padding:0;color:#0f172a;background:transparent;font-weight:820;text-align:left;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.task-phrase-toggle:focus-visible{border-radius:4px;outline:3px solid rgb(37 99 235 / .25);outline-offset:3px}.task-translation{margin-top:8px}.task-learning-phrase{margin:0 0 4px;color:#64748b;font-size:.88rem;font-weight:400}.task-translation-toggle{display:inline;border:0;padding:0;color:#64748b;background:transparent;font-size:.88rem;text-align:left;text-decoration:underline;text-underline-offset:3px}.task-translation-toggle:focus-visible{border-radius:4px;outline:3px solid rgb(37 99 235 / .25);outline-offset:3px}.practice-suggestion{border-top:1px solid #e2e8f0;margin-top:8px;padding-top:8px;font-size:.98rem}.hint-text,.muted-text,.micro-feedback{margin:8px 0 0;color:#64748b;font-size:.88rem}.input-panel{padding:8px 10px}.answer-form{display:grid;gap:8px;margin-top:0}.answer-form input{width:100%;min-height:44px;border:1px solid #b8c5d6;border-radius:8px;padding:0 14px;color:#0f172a;background:#f8fafc;outline:none}.answer-form input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb29}.voice-row{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:12px}.voice-feedback{min-width:0;flex:1 1 auto;margin:0;color:#475569;font-size:.94rem;font-weight:760;line-height:1.2}.microphone-controls{display:inline-flex;flex:0 0 auto;align-items:center;gap:7px}.speech-settings-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;border-top:1px solid #e2e8f0;padding-top:8px}.speech-setting{display:flex;min-width:0;align-items:center;gap:8px;color:#64748b;font-size:.78rem;font-weight:760}.speech-mode-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;width:108px;height:32px;flex:0 0 auto;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc}.speech-mode-toggle button{display:grid;min-width:0;min-height:0;place-items:center;border:0;padding:0;color:#64748b;background:transparent;font-size:.78rem;font-weight:840;line-height:1}.speech-mode-toggle button+button{border-left:1px solid #e2e8f0}.speech-mode-toggle button.is-active{color:#fff;background:#0f766e}.speech-mode-toggle button:disabled{color:#94a3b8;background:transparent}.speech-mode-toggle button.is-active:disabled{color:#fff;background:#94a3b8}.speech-pause-delay-control{justify-content:flex-end}.speech-pause-delay-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;width:min(210px,100%);height:32px;flex:1 1 auto;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc}.speech-pause-delay-presets button{display:grid;min-width:0;place-items:center;border:0;padding:0 8px;color:#64748b;background:transparent;font-size:.74rem;font-weight:820;line-height:1}.speech-pause-delay-presets button+button{border-left:1px solid #e2e8f0}.speech-pause-delay-presets button.is-active{color:#fff;background:#0f766e}.speech-pause-delay-presets button:disabled{color:#94a3b8}.speech-pause-delay-presets button.is-active:disabled{color:#fff;background:#94a3b8}.mic-button{position:relative;display:inline-grid;width:62px;height:62px;flex:0 0 auto;place-items:center;border:2px solid #1d4ed8;border-radius:50%;color:#fff;background:#1d4ed8;font-size:.88rem;font-weight:840;box-shadow:0 8px 16px #1d4ed83d}.mic-button:disabled{border-color:#cbd5e1;color:#64748b;background:#e2e8f0;box-shadow:none}.mic-button.is-listening{border-color:#fecaca;color:transparent;background:#ffffff;box-shadow:0 0 0 5px #dc26261f}.speech-mic-icon{position:relative;display:block;width:18px;height:25px;border:3px solid currentColor;border-radius:999px}.speech-mic-icon:before,.speech-mic-icon:after{position:absolute;left:50%;content:"";transform:translate(-50%)}.speech-mic-icon:before{bottom:-11px;width:25px;height:16px;border-bottom:3px solid currentColor;border-radius:0 0 999px 999px}.speech-mic-icon:after{bottom:-16px;width:3px;height:9px;border-radius:999px;background:currentColor}.mic-button .record-dot{position:absolute;top:50%;left:50%;display:none;width:14px;height:14px;border-radius:50%;background:#dc2626;box-shadow:0 0 #dc262670;transform:translate(-50%,-50%)}.mic-button.is-listening .record-dot{display:block;animation:listening-pulse 1.2s infinite}.text-fallback-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.submit-fallback-button{min-height:44px}.input-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.completion-actions-panel{padding:10px}.completion-actions{margin:0}.icon-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;padding:0 12px;color:#fff;background:#1d4ed8;font-weight:720}.icon-button+.icon-button{background:#0f766e}.secondary-button{min-height:40px;flex:0 0 auto;color:#334155;background:#e2e8f0}@keyframes listening-pulse{70%{box-shadow:0 0 0 8px #dc262600}to{box-shadow:0 0 #dc262600}}.status-badge{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:4px 10px;white-space:nowrap;font-size:.78rem;font-weight:760}.status-badge-neutral{color:#334155;background:#e2e8f0}.status-badge-success{color:#14532d;background:#bbf7d0}.status-badge-warning{color:#7c2d12;background:#fed7aa}.progress-track{position:relative;overflow:hidden;width:100%;height:5px;margin-top:0;border-radius:0;background:#e2e8f0}.progress-fill{height:100%;border-radius:inherit;background:#16a34a;transition:width .16s ease}.progress-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.progress-panel{grid-area:progress;overflow:hidden;border-top:0;border-radius:0 0 8px 8px;padding:0}.attempts-panel{padding:8px 10px}.attempt-feedback-popup{display:grid;gap:6px;border:1px solid #e2e8f0;border-radius:8px;padding:12px;box-shadow:0 14px 30px #0f172a1a;animation:attempt-feedback-pop .18s ease-out}.attempt-feedback-popup strong{color:#0f172a;font-size:.92rem;font-weight:860;line-height:1.1}.attempt-feedback-popup .attempt-input{font-size:1.08rem;font-weight:760}.attempt-feedback-popup.is-success{border-color:#86efac;background:#f0fdf4}.attempt-feedback-popup.is-warning{border-color:#fdba74;background:#fff7ed}.attempt-live-line{display:flex;min-height:34px;align-items:center;gap:8px;color:#1e3a8a;font-size:.9rem}.attempt-live-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;background:#dc2626;box-shadow:0 0 #dc262670;animation:listening-pulse 1.2s infinite}.attempt-list{display:grid;gap:8px;max-height:220px;margin:6px 0 0;overflow-y:auto;padding:0 4px 0 0;list-style:none;overscroll-behavior:contain}.attempt-list li{display:flex;min-height:40px;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:7px 8px 7px 10px}.attempt-list li.attempt-success{border-color:#86efac;background:#f0fdf4}.attempt-list li.attempt-corrected{border-color:#fde68a;background:#fffbeb}.attempt-list li.attempt-warning{border-color:#fed7aa;background:#fff7ed}.attempt-input{min-width:0;overflow-wrap:anywhere;color:#0f172a;font-weight:650;line-height:1.25}.attempt-segment{border-radius:4px}.attempt-segment-correct{color:#166534;background:#dcfce7}.attempt-segment-corrected{position:relative;display:inline-flex;flex-direction:column;align-items:center;margin:0 1px;color:#92400e;background:#fef3c7;line-height:1.05}.attempt-segment-extra{display:inline-block;color:#9a3412;background:#ffedd5;text-decoration-color:#c2410c;text-decoration-thickness:2px}.attempt-segment-missing{display:inline-block;border:1px dashed #14b8a6;padding:0 3px;color:#0f766e;background:#ccfbf1;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:760}.attempt-correction{color:#166534;font-size:.68rem;font-weight:820;line-height:1}.attempt-segment-warning{color:#9a3412;background:#ffedd5}.attempt-status-icon{display:inline-grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border-radius:50%;font-size:.82rem;font-weight:900;line-height:1}.attempt-success .attempt-status-icon{color:#14532d;background:#bbf7d0}.attempt-corrected .attempt-status-icon{color:#713f12;background:#fde68a}.attempt-warning .attempt-status-icon{color:#7c2d12;background:#fed7aa}.app-error{display:grid;place-items:center}.app-error pre{max-width:min(720px,100%);overflow:auto;border:1px solid #fecaca;border-radius:8px;padding:16px;color:#7f1d1d;background:#fff1f2}.bottom-nav{display:flex;gap:8px;max-width:1180px;justify-content:center;margin:8px auto 0}.bottom-nav .icon-button{flex:1 1 0}.game-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:rgb(15 23 42 / .46);backdrop-filter:blur(5px)}.game-pause-dialog{display:grid;gap:12px;width:min(420px,100%);border:1px solid #d7dee8;border-radius:8px;padding:16px;background:#ffffff;box-shadow:0 22px 60px #0f172a38}.game-pause-dialog h2{margin:0;color:#0f172a;font-size:1.05rem;font-weight:820}.game-pause-dialog p{margin:0;color:#475569;font-size:.9rem;line-height:1.35}.game-pause-dialog .speech-settings-row{border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#f8fafc}.game-pause-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.start-page{display:grid;min-height:100vh;align-items:center}.start-top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.theme-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;width:min(276px,100%);min-height:36px;border:1px solid var(--control-border);border-radius:999px;background:var(--control-bg)}.theme-control button{min-width:0;border:0;padding:0 10px;color:var(--control-text);background:transparent;font-size:.76rem;font-weight:820;line-height:1.1}.theme-control button+button{border-left:1px solid var(--subtle-border)}.theme-control button:not(.is-active):hover{color:var(--heading-text);background:var(--control-hover-bg)}.theme-control button.is-active{color:#fff;background:var(--primary)}.theme-control button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-3px}.start-panel{display:grid;gap:16px;width:min(100%,620px);margin:0 auto;border:1px solid #d7dee8;border-top:4px solid var(--screen-accent, var(--primary));border-radius:8px;padding:18px;background:#ffffff;box-shadow:0 14px 32px #0f172a1a}.start-fox{width:56px;height:56px}.start-kicker,.start-progress{margin:0;color:#64748b;font-size:.85rem;font-weight:720}.start-panel h1{margin:4px 0 0;color:#0f172a;font-size:1.35rem;line-height:1.16;letter-spacing:0}.start-subtitle,.start-message,.start-description{margin:10px 0 0;color:#475569;font-size:.98rem}.start-description{color:#172033}.start-message{border-left:4px solid #fb923c;padding-left:12px;color:#172033;font-weight:650}.start-progress{margin-top:12px}.start-actions{display:grid;gap:10px}.start-actions .icon-button{width:100%}.start-actions .icon-button:nth-child(2){background:#0f766e}.grammar-menu-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start}.menu-back-button{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;color:#0f172a;background:#f8fafc;font-size:.86rem;font-weight:760}.menu-back-button:hover{border-color:#93c5fd;background:#eff6ff}.stage-list-panel{display:grid;gap:10px;border-top:1px solid #e2e8f0;padding-top:14px}.training-mode-panel{border:1px solid #d7dee8;border-left:4px solid var(--screen-accent, var(--primary));border-radius:8px;padding:14px;background:#f8fafc}.stage-list-panel h2{margin:0;color:#172033;font-size:.98rem;font-weight:760;letter-spacing:0}.stage-list{display:grid;gap:8px}.custom-training-panel{position:relative;background:#f7fee7}.custom-training-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.custom-training-header p,.custom-filter-group h3{margin:0}.custom-training-header p{margin-top:3px;color:#4b5563;font-size:.84rem;font-weight:620;line-height:1.35}.custom-training-actions{display:flex;align-items:center;gap:8px}.custom-launch-button,.custom-reset-button,.custom-filter-chip{border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;background:#ffffff;font:inherit;font-weight:760}.custom-launch-button{min-height:40px;padding:8px 14px;background:#166534;color:#fff}.custom-launch-button:disabled{cursor:not-allowed;border-color:#d1d5db;color:#6b7280;background:#e5e7eb}.custom-reset-button{display:grid;width:40px;height:40px;place-items:center;color:#334155;font-size:1.12rem}.custom-filter-group{display:grid;gap:7px}.custom-filter-group h3{color:#334155;font-size:.86rem;font-weight:820;letter-spacing:0}.custom-filter-chips{display:flex;flex-wrap:wrap;gap:7px}.custom-filter-chip{min-height:34px;padding:6px 10px;color:#334155;font-size:.82rem;line-height:1.15}.custom-filter-chip.is-selected{border-color:#15803d;color:#14532d;background:#bbf7d0;box-shadow:inset 0 0 0 1px #15803d}.stage-option{display:flex;width:100%;min-height:68px;align-items:center;justify-content:flex-start;gap:10px;border:1px solid #d7dee8;border-radius:8px;padding:12px;color:#0f172a;background:#f8fafc;text-align:left}.stage-option:not(:disabled):hover{border-color:#93c5fd;background:#eff6ff}.stage-option.is-selected{border-color:var(--screen-accent, #1d4ed8);background:var(--screen-accent-soft, #dbeafe);box-shadow:inset 0 0 0 1px var(--screen-accent, #1d4ed8)}.stage-option-random{background:#f0fdfa}.stage-option-random:not(:disabled):hover{border-color:#2dd4bf;background:#ccfbf1}.language-option{min-height:56px;cursor:default}.language-option:hover{border-color:var(--screen-accent, #1d4ed8);background:var(--screen-accent-soft, #dbeafe)}.microphone-setup-panel,.microphone-ready-panel{display:grid;gap:10px;border-left:4px solid #0ea5e9;padding:12px 12px 12px 14px;background:#f0f9ff}.microphone-setup-copy{display:grid;gap:4px;color:#0f172a}.microphone-setup-copy strong,.microphone-ready-panel strong{font-size:.92rem;line-height:1.25}.microphone-setup-copy span{color:#0369a1;font-size:.84rem;font-weight:740}.microphone-setup-actions{display:grid;grid-template-columns:minmax(0,auto) 48px minmax(0,1fr);gap:8px;align-items:center}.microphone-setup-actions>span{color:#475569;font-size:.82rem;font-weight:680}.microphone-setup-button{display:grid;width:48px;height:48px;place-items:center;border:1px solid #7dd3fc;border-radius:50%;color:#075985;background:#e0f2fe}.microphone-setup-button:not(:disabled):hover,.microphone-setup-button.is-listening{border-color:#38bdf8;color:#fff;background:#0284c7}.microphone-setup-button:disabled{cursor:not-allowed;opacity:.55}.microphone-setup-button .speed-mic-icon{transform:scale(.66)}.microphone-setup-transcript{min-width:0;min-height:38px;border:1px solid #bae6fd;border-radius:8px;padding:8px 10px;color:#0f172a;background:#ffffff;font-size:.86rem;font-weight:680;line-height:1.2;overflow-wrap:anywhere}.microphone-setup-warning{margin:0;color:#9f1239;font-size:.82rem;font-weight:720;line-height:1.3}.microphone-ready-panel{grid-template-columns:auto minmax(0,1fr);align-items:center;border-left-color:#16a34a;color:#14532d;background:#f0fdf4}.microphone-ready-check{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;color:#fff;background:#16a34a;font-size:.95rem;font-weight:900}.stage-option-main{display:grid;min-width:0;gap:2px}.stage-option-main strong{overflow-wrap:anywhere;font-size:.94rem}.stage-option-main span{color:#64748b;font-size:.84rem;font-weight:620;line-height:1.35}.stage-option-main .stage-option-record{width:fit-content;margin-top:5px;border:1px solid #bfdbfe;border-radius:999px;padding:2px 8px;color:#1d4ed8;background:#eff6ff;font-size:.76rem;font-weight:780}.module-progress-cells{display:grid;grid-template-columns:repeat(var(--module-cells, 2),minmax(0,1fr));gap:4px;width:min(120px,100%);margin-top:6px}.module-progress-cells span{display:block;height:7px;border-radius:999px;background:#cbd5e1}.module-progress-cells span.is-complete{background:#16a34a}.scene-progress-cells{display:flex;max-width:100%;width:100%;flex-wrap:nowrap}.scene-progress-cells span{flex:1 1 0;min-width:6px}.app-header h1,.panel h2,.task-text,.task-interface-phrase,.task-phrase-toggle,.attempt-feedback-popup strong,.attempt-input,.game-pause-dialog h2,.start-panel h1,.stage-list-panel h2,.stage-option,.microphone-setup-copy,.microphone-setup-transcript{color:var(--heading-text)}.app-header p,.hint-text,.muted-text,.micro-feedback,.task-learning-phrase,.task-translation-toggle,.voice-feedback,.speech-setting,.game-pause-dialog p,.start-subtitle,.start-description,.start-message,.custom-training-header p,.microphone-setup-actions>span,.stage-option-main span{color:var(--muted-text)}.start-description,.start-message{color:var(--app-text)}.scene-panel,.panel,.start-panel,.game-pause-dialog{border-color:var(--panel-border);background:var(--panel-bg);box-shadow:var(--panel-shadow)}.phaser-canvas,.answer-form input,.speech-mode-toggle,.speech-pause-delay-presets,.attempt-list li,.game-pause-dialog .speech-settings-row,.training-mode-panel,.stage-option,.menu-back-button,.custom-launch-button,.custom-reset-button,.custom-filter-chip,.microphone-setup-transcript{border-color:var(--control-border);color:var(--heading-text);background:var(--panel-soft-bg)}.practice-suggestion,.speech-settings-row,.stage-list-panel{border-color:var(--subtle-border)}.answer-form input:focus{border-color:var(--primary-strong);box-shadow:0 0 0 3px var(--focus-ring)}.speech-mode-toggle button,.speech-pause-delay-presets button{color:var(--muted-text)}.speech-mode-toggle button+button,.speech-pause-delay-presets button+button{border-color:var(--subtle-border)}.speech-mode-toggle button.is-active,.speech-pause-delay-presets button.is-active{color:#fff;background:var(--teal)}.speech-mode-toggle button:disabled,.speech-pause-delay-presets button:disabled{color:var(--muted-text)}.mic-button{border-color:var(--primary);background:var(--primary)}.mic-button:disabled{border-color:var(--control-border);color:var(--muted-text);background:var(--subtle-border)}.mic-button.is-listening{background:var(--panel-bg)}.secondary-button,.menu-back-button{color:var(--control-text);background:var(--control-bg)}.menu-back-button:hover,.stage-option:not(:disabled):hover{border-color:var(--control-hover-border);background:var(--control-hover-bg)}.stage-option.is-selected,.language-option:hover{border-color:var(--screen-accent, var(--primary));background:var(--screen-accent-soft, var(--primary-soft));box-shadow:inset 0 0 0 1px var(--screen-accent, var(--primary))}.stage-option-random{background:var(--teal-soft)}.stage-option-random:not(:disabled):hover{border-color:var(--teal);background:var(--teal-soft)}.stage-option-main .stage-option-record{border-color:var(--primary-strong);color:var(--primary-strong);background:var(--control-hover-bg)}.custom-training-panel{background:var(--success-soft)}.custom-launch-button{border-color:var(--success);color:#fff;background:var(--success-strong)}.custom-launch-button:disabled{border-color:var(--control-border);color:var(--muted-text);background:var(--subtle-border)}.custom-reset-button,.custom-filter-chip,.custom-filter-group h3{color:var(--control-text)}.custom-filter-chip.is-selected{border-color:var(--success);color:var(--success-strong);background:var(--success-chip);box-shadow:inset 0 0 0 1px var(--success)}.microphone-setup-panel{border-left-color:var(--primary-strong);background:var(--panel-tint-bg)}.microphone-setup-copy span{color:var(--primary-strong)}.microphone-setup-button{border-color:var(--primary-strong);color:var(--primary-strong);background:var(--control-hover-bg)}.microphone-setup-button:not(:disabled):hover,.microphone-setup-button.is-listening{border-color:var(--primary);color:#fff;background:var(--primary)}.microphone-setup-warning{color:var(--danger)}.microphone-ready-panel{border-left-color:var(--success);color:var(--success-strong);background:var(--success-soft)}.microphone-ready-check,.module-progress-cells span.is-complete,.progress-fill{background:var(--success)}.module-progress-cells span,.progress-track,.status-badge-neutral{background:var(--subtle-border)}.status-badge-neutral{color:var(--control-text)}.attempt-feedback-popup,.attempt-list li{border-color:var(--subtle-border);background:var(--panel-soft-bg)}.attempt-feedback-popup.is-success,.attempt-list li.attempt-success{border-color:var(--success);background:var(--success-soft)}.attempt-feedback-popup.is-warning,.attempt-list li.attempt-corrected,.attempt-list li.attempt-warning{border-color:var(--warning);background:var(--warning-soft)}.attempt-live-line,.attempt-correction{color:var(--primary-strong)}.app-error pre{color:var(--danger);background:var(--panel-soft-bg)}.speed-speak-page{overflow:hidden;width:100vw;height:100vh;color:#f8fafc;background:#0b0b12}.speed-speak-scene{position:relative;overflow:hidden;width:100%;height:100%;background:radial-gradient(circle at 74% 24%,rgb(252 211 77 / .2),transparent 18%),linear-gradient(180deg,#191321 0%,#0d111c 52%,#15100e 100%);isolation:isolate}.office-vignette{position:absolute;inset:0;z-index:20;pointer-events:none;background:radial-gradient(circle at 50% 42%,transparent 0%,transparent 48%,rgb(2 6 23 / .58) 100%),linear-gradient(180deg,rgb(2 6 23 / .18),rgb(2 6 23 / .55));animation:office-dim 2.2s ease-in forwards}.office-floor{position:absolute;right:-8%;bottom:-14%;left:-8%;height:34%;z-index:1;background:linear-gradient(90deg,rgb(255 255 255 / .03) 1px,transparent 1px) 0 0 / 54px 100%,linear-gradient(180deg,#2b2017,#120d0b);transform:perspective(420px) rotateX(58deg);transform-origin:50% 100%}.office-cabinet{position:absolute;left:50%;top:27%;z-index:4;width:min(20vw,210px);min-width:132px;aspect-ratio:.62;border:2px solid #3a2617;border-radius:6px 6px 3px 3px;background:linear-gradient(90deg,transparent 48%,rgb(0 0 0 / .28) 49% 51%,transparent 52%),radial-gradient(circle at 28% 42%,#d8a35d 0 3px,transparent 4px),radial-gradient(circle at 72% 42%,#d8a35d 0 3px,transparent 4px),linear-gradient(90deg,rgb(255 255 255 / .05),transparent 32% 68%,rgb(0 0 0 / .18)),linear-gradient(180deg,#71451e,#2f1c11 76%,#1d120c);box-shadow:inset 0 0 0 8px #1d120c6b,0 26px 38px #0000006b;animation:cabinet-shake 2.2s ease-in-out;translate:-50% 0}.office-cabinet span{position:absolute;inset:10% 12%;border:1px solid rgb(251 191 36 / .16);border-radius:4px;box-shadow:inset 0 0 20px #00000047}.office-painting{position:absolute;top:31%;z-index:2;width:min(16vw,160px);min-width:92px;aspect-ratio:1.28;border:7px solid #8b5a2b;border-radius:3px;background:linear-gradient(135deg,rgb(14 165 233 / .34),transparent 48%),linear-gradient(35deg,#1f2937 0 48%,#365314 49% 100%);box-shadow:inset 0 0 0 2px #facc153d,0 18px 30px #00000057}.office-painting-left{left:7%}.office-painting-right{right:7%;top:34%;background:radial-gradient(circle at 62% 38%,rgb(253 186 116 / .42),transparent 20%),linear-gradient(145deg,#312e81 0 38%,#164e63 39% 100%)}.office-candelabra{position:absolute;top:calc(82px + env(safe-area-inset-top));right:7%;left:7%;z-index:3;display:flex;align-items:flex-end;justify-content:space-between;height:76px;filter:drop-shadow(0 0 20px rgb(251 191 36 / .18))}.office-candle-group{position:relative;display:flex;min-width:62px;align-items:flex-end;justify-content:center;gap:9px;padding:0 12px 10px}.office-candle-group:before{position:absolute;right:0;bottom:8px;left:0;height:8px;border-radius:999px;background:linear-gradient(90deg,#6b4b24,#d1a258,#6b4b24);content:""}.office-candle{position:relative;width:10px;height:42px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#f8fafc,#d6c7a4)}.office-candle:before{position:absolute;top:-19px;left:50%;width:14px;height:22px;border-radius:60% 60% 48% 48%;background:radial-gradient(circle at 50% 72%,#fef3c7 0 18%,transparent 20%),linear-gradient(180deg,#f97316,#fde68a);box-shadow:0 0 18px #f59e0b,0 0 34px #f59e0b6b;content:"";transform:translate(-50%);transform-origin:50% 100%;animation:candle-flame 1.2s ease-in-out infinite alternate}.office-candle.is-out{background:linear-gradient(180deg,#94a3b8,#4b5563)}.office-candle.is-out:before{opacity:0}.speed-ghost-layer{position:absolute;inset:0;z-index:10}.speed-ghost{position:absolute;box-sizing:border-box;display:flex;align-items:flex-end;justify-content:center;border:0;padding:82px 26px 34px;color:inherit;background:transparent;cursor:pointer;font:inherit;transform:translate(-50%,-50%);transition:opacity .62s ease,filter .62s ease,transform .62s ease;will-change:left,top,transform}.speed-ghost:disabled{cursor:default}.speed-ghost.is-far{z-index:10;filter:saturate(.9) brightness(.9)}.speed-ghost.is-middle{z-index:20}.speed-ghost.is-near{z-index:30;filter:saturate(1.08) brightness(1.06)}.speed-ghost.is-dissolving{opacity:0;filter:blur(10px) brightness(1.4);transform:translate(-50%,-62%) scale(1.08)}.speed-ghost.is-translation-revealed .speed-ghost-body{fill:#fce7f3ed;filter:drop-shadow(0 0 24px rgb(244 114 182 / .34))}.speed-ghost-shape{position:absolute;inset:0;width:100%;height:100%;overflow:visible;animation:ghost-float 2.8s ease-in-out infinite alternate}.speed-ghost-body{fill:#f1f5f9e0;stroke:none;filter:drop-shadow(0 0 22px rgb(186 230 253 / .48))}.speed-ghost-eye{fill:none;opacity:.82;stroke:#111827;stroke-linecap:round;stroke-width:7}.speed-ghost-mouth{fill:none;opacity:.62;stroke:#111827;stroke-linecap:round;stroke-width:5}.speed-ghost-text{position:relative;z-index:2;box-sizing:border-box;width:calc(100% - 8px);border-radius:8px;padding:5px 8px;color:#111827;font-size:1rem;font-weight:830;line-height:1.08;hyphens:none;overflow-wrap:normal;text-align:center;text-shadow:0 1px 0 rgb(255 255 255 / .68);word-break:normal}.speed-ghost-text.is-tight-text{font-size:.88rem;line-height:1.04}.speed-ghost-text.is-compact-text{font-size:.76rem;line-height:1.02}.speed-ghost-image-prompt{display:grid;width:min(100%,112px);min-height:84px;gap:3px;align-content:center;place-items:center;padding:6px}.speed-ghost-image-prompt img{display:block;max-width:100%;max-height:56px;object-fit:contain;filter:drop-shadow(0 4px 8px rgb(15 23 42 / .18))}.speed-ghost-image-label{display:block;width:100%;font-size:.78rem;font-weight:850;line-height:1.02}.speed-hud{position:absolute;z-index:40;display:grid;min-width:92px;gap:1px;border:1px solid rgb(255 255 255 / .14);border-radius:8px;padding:7px 10px;background:rgb(15 23 42 / .62);box-shadow:0 12px 28px #0000003d;backdrop-filter:blur(8px)}.speed-hud span{color:#cbd5e1;font-size:.72rem;font-weight:720;line-height:1.1}.speed-hud strong{color:#f8fafc;font-size:1.35rem;font-weight:860;line-height:1}.speed-hud-left{top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left))}.speed-hud-score{top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);text-align:center}.speed-hud-combo{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));overflow:hidden;text-align:right}.speed-hud-combo.is-active{animation:combo-sway 1.2s ease-in-out infinite alternate}.speed-hud-combo.is-active strong{font-weight:950}.combo-flame{--combo-flame-width: 28px;--combo-flame-height: 48px;--combo-flame-opacity: .72;--combo-flame-speed: 1.1s;--combo-flame-glow: drop-shadow(0 0 12px rgb(249 115 22 / .3));position:absolute;inset:0;z-index:-1;opacity:var(--combo-flame-opacity);filter:var(--combo-flame-glow)}.combo-flame span{position:absolute;right:16px;bottom:-8px;display:block;width:var(--combo-flame-width);height:var(--combo-flame-height);border-radius:70% 45%;background:linear-gradient(180deg,#fde68a,#f97316 62%,transparent);transform-origin:50% 100%;animation:combo-flame var(--combo-flame-speed) ease-in-out infinite alternate}.combo-flame span:nth-child(2){right:34px;width:calc(var(--combo-flame-width) * .78);height:calc(var(--combo-flame-height) * .8);animation-delay:.18s}.combo-flame span:nth-child(3){right:52px;width:calc(var(--combo-flame-width) * .64);height:calc(var(--combo-flame-height) * .67);animation-delay:.36s}.combo-flame span:nth-child(4){right:6px;width:calc(var(--combo-flame-width) * .58);height:calc(var(--combo-flame-height) * .71);animation-delay:.54s}.combo-flame-ember{--combo-flame-width: 16px;--combo-flame-height: 29px;--combo-flame-opacity: .46;--combo-flame-speed: 1.45s;--combo-flame-glow: drop-shadow(0 0 7px rgb(251 191 36 / .26))}.combo-flame-ember span{background:linear-gradient(180deg,#fef3c7,#f59e0b 58%,transparent)}.combo-flame-small{--combo-flame-width: 20px;--combo-flame-height: 34px;--combo-flame-opacity: .58;--combo-flame-speed: 1.28s;--combo-flame-glow: drop-shadow(0 0 9px rgb(251 146 60 / .34))}.combo-flame-small span{background:linear-gradient(180deg,#fff7ed,#fb923c 48%,#dc2626 86%,transparent)}.combo-flame-flicker{--combo-flame-width: 24px;--combo-flame-height: 42px;--combo-flame-opacity: .68;--combo-flame-speed: .94s;--combo-flame-glow: drop-shadow(0 0 12px rgb(245 158 11 / .42))}.combo-flame-flicker span{background:linear-gradient(180deg,#fef08a,#f97316 54%,#b91c1c 86%,transparent)}.combo-flame-bonfire{--combo-flame-width: 30px;--combo-flame-height: 53px;--combo-flame-opacity: .74;--combo-flame-speed: .82s;--combo-flame-glow: drop-shadow(0 0 15px rgb(248 113 113 / .48))}.combo-flame-bonfire span{background:linear-gradient(180deg,#fff7ed,#facc15 32%,#ef4444 76%,transparent)}.combo-flame-roaring{--combo-flame-width: 36px;--combo-flame-height: 62px;--combo-flame-opacity: .82;--combo-flame-speed: .72s;--combo-flame-glow: drop-shadow(0 0 18px rgb(239 68 68 / .55))}.combo-flame-roaring span{background:linear-gradient(180deg,#fff1f2,#f97316 30%,#be123c 78%,transparent)}.combo-flame-vortex{--combo-flame-width: 42px;--combo-flame-height: 70px;--combo-flame-opacity: .88;--combo-flame-speed: .64s;--combo-flame-glow: drop-shadow(0 0 22px rgb(244 63 94 / .62))}.combo-flame-vortex span{background:linear-gradient(180deg,#fef3c7,#fb7185 34%,#7f1d1d 82%,transparent)}.combo-flame-blue{--combo-flame-width: 45px;--combo-flame-height: 74px;--combo-flame-opacity: .9;--combo-flame-speed: .58s;--combo-flame-glow: drop-shadow(0 0 24px rgb(59 130 246 / .66))}.combo-flame-blue span{background:linear-gradient(180deg,#bfdbfe,#2563eb 62%,transparent)}.combo-flame-violet{--combo-flame-width: 49px;--combo-flame-height: 80px;--combo-flame-opacity: .92;--combo-flame-speed: .52s;--combo-flame-glow: drop-shadow(0 0 28px rgb(124 58 237 / .68))}.combo-flame-violet span{background:linear-gradient(180deg,#ddd6fe,#7c3aed 62%,transparent)}.combo-flame-plasma{--combo-flame-width: 54px;--combo-flame-height: 88px;--combo-flame-opacity: .94;--combo-flame-speed: .46s;--combo-flame-glow: drop-shadow(0 0 32px rgb(56 189 248 / .72))}.combo-flame-plasma span{background:linear-gradient(180deg,#a7f3d0,#38bdf8 42%,#a855f7 72%,transparent)}.combo-flame-ethereal{--combo-flame-width: 60px;--combo-flame-height: 98px;--combo-flame-opacity: .98;--combo-flame-speed: .42s;--combo-flame-glow: drop-shadow(0 0 36px rgb(236 254 255 / .82))}.combo-flame-ethereal span{background:linear-gradient(180deg,#ffffff,#67e8f9 32%,#c084fc 66%,transparent)}.speed-control{position:absolute;z-index:50;display:grid;width:58px;height:58px;place-items:center;border:1px solid rgb(255 255 255 / .18);border-radius:50%;color:#f8fafc;background:rgb(15 23 42 / .68);box-shadow:0 12px 28px #0000004d;backdrop-filter:blur(8px)}.speed-pause-button{bottom:calc(16px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left))}.pause-icon,.pause-icon:before{display:block;width:7px;height:24px;border-radius:999px;background:currentColor;content:""}.pause-icon{position:relative;transform:translate(-6px)}.pause-icon:before{position:absolute;left:13px;top:0}.speed-mic-button{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom))}.speed-mic-button.is-listening{border-color:#f871719e;background:rgb(127 29 29 / .78);box-shadow:0 0 0 8px #f871711f,0 14px 30px #00000052}.speed-mic-icon{position:relative;display:block;width:20px;height:28px;border:3px solid currentColor;border-radius:999px}.speed-mic-icon:before,.speed-mic-icon:after{position:absolute;left:50%;content:"";transform:translate(-50%)}.speed-mic-icon:before{bottom:-12px;width:28px;height:18px;border-bottom:3px solid currentColor;border-radius:0 0 999px 999px}.speed-mic-icon:after{bottom:-18px;width:3px;height:10px;border-radius:999px;background:currentColor}.speed-mic-record-dot{position:absolute;top:50%;left:50%;display:none;width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 3px #f871712e,0 0 10px #f87171b3;transform:translate(-50%,-50%)}.speed-mic-button.is-listening .speed-mic-record-dot{display:block}.speed-mic-delay-control{position:absolute;right:calc(16px + env(safe-area-inset-right));bottom:calc(84px + env(safe-area-inset-bottom));z-index:46;display:grid;width:158px;gap:5px;border:1px solid rgb(255 255 255 / .14);border-radius:8px;padding:8px 10px;color:#e2e8f0;background:rgb(15 23 42 / .62);box-shadow:0 12px 28px #0000003d;backdrop-filter:blur(8px)}.speed-mic-delay-control label,.speed-mic-delay-control output{font-size:.72rem;font-weight:760;line-height:1}.speed-mic-delay-control output{color:#bae6fd}.speed-mic-delay-control input{width:100%;accent-color:#38bdf8}.speed-fallback-form{position:absolute;left:calc(88px + env(safe-area-inset-left));right:calc(88px + env(safe-area-inset-right));bottom:calc(132px + env(safe-area-inset-bottom));z-index:45;display:flex;gap:8px}.speed-fallback-form input{min-width:0;flex:1 1 auto;border:1px solid rgb(255 255 255 / .18);border-radius:8px;padding:9px 10px;color:#f8fafc;background:rgb(15 23 42 / .68)}.speed-fallback-form button,.speed-modal button{border:0;border-radius:8px;padding:10px 14px;color:#0f172a;background:#f8fafc;font-weight:820}.speed-modal-backdrop{position:absolute;inset:0;z-index:80;display:grid;place-items:center;background:rgb(2 6 23 / .58);backdrop-filter:blur(4px)}.speed-modal{display:grid;gap:10px;width:min(280px,calc(100vw - 42px));border:1px solid rgb(255 255 255 / .16);border-radius:8px;padding:16px;background:rgb(15 23 42 / .9);box-shadow:0 20px 56px #00000070}.speed-modal strong{color:#f8fafc;font-size:1.2rem;line-height:1.1;text-align:center}@keyframes office-dim{0%{opacity:.1}to{opacity:1}}@keyframes cabinet-shake{0%,48%,to{transform:translate(0) rotate(0)}58%{transform:translate(-3px,1px) rotate(-1deg)}68%{transform:translate(3px,-1px) rotate(1deg)}78%{transform:translate(-2px,1px) rotate(-.8deg)}88%{transform:translate(2px) rotate(.8deg)}}@keyframes candle-flame{0%{transform:translate(-50%) rotate(-5deg) scaleY(.9)}to{transform:translate(-50%) rotate(5deg) scaleY(1.08)}}@keyframes ghost-float{0%{transform:translateY(-3px) rotate(-1deg)}to{transform:translateY(4px) rotate(1deg)}}@keyframes combo-sway{0%{transform:rotate(-1deg)}to{transform:rotate(1deg)}}@keyframes combo-flame{0%{transform:rotate(-7deg) scaleY(.82)}to{transform:rotate(8deg) scaleY(1.14)}}@keyframes attempt-feedback-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 430px){.app-page:not(.start-page){padding:calc(8px + env(safe-area-inset-top)) 6px calc(8px + env(safe-area-inset-bottom))}.scene-panel{border-radius:8px 8px 0 0}.input-panel{padding:6px 8px}.answer-form{gap:6px}.voice-row{min-height:48px;gap:8px}.voice-feedback{font-size:.82rem;line-height:1.15}.mic-button{width:48px;height:48px;font-size:.76rem;box-shadow:0 6px 12px #1d4ed838}.speech-mic-icon{width:15px;height:21px;border-width:2px}.speech-mic-icon:before{bottom:-9px;width:21px;height:13px;border-bottom-width:2px}.speech-mic-icon:after{bottom:-13px;width:2px;height:7px}.mic-button .record-dot{width:12px;height:12px}.start-top-row{align-items:start}.start-top-row .theme-control{width:min(220px,calc(100vw - 112px))}.grammar-menu-header{grid-template-columns:auto minmax(0,1fr)}.grammar-menu-header .theme-control{grid-column:1 / -1;width:100%}.speech-settings-row{gap:6px;grid-template-columns:minmax(0,1fr);padding-top:6px}.speech-setting,.speech-pause-delay-control{justify-content:space-between;gap:6px;font-size:.72rem}.speech-mode-toggle,.speech-pause-delay-presets{height:30px}.speech-pause-delay-presets{flex:1 1 auto}.speech-pause-delay-presets button{padding:0 4px;font-size:.68rem}.text-fallback-row{grid-template-columns:minmax(0,1fr)}.text-fallback-row input,.submit-fallback-button{min-height:40px}.bottom-nav{position:sticky;bottom:calc(6px + env(safe-area-inset-bottom));z-index:30;gap:6px;margin-top:6px}.bottom-nav .icon-button{min-height:42px}.game-modal-backdrop{align-items:end;padding:8px}.game-pause-dialog{width:100%;max-height:calc(100dvh - 16px);gap:10px;overflow-y:auto;padding:12px}.game-pause-dialog .speech-settings-row{padding:8px}.game-pause-actions{grid-template-columns:minmax(0,1fr)}.microphone-setup-actions{grid-template-columns:48px minmax(0,1fr)}.microphone-setup-actions>span{grid-column:1 / -1}}@media (min-width: 860px){.app-page{padding:calc(22px + env(safe-area-inset-top)) 22px calc(18px + env(safe-area-inset-bottom))}.app-header{margin-bottom:16px}.app-header h1{font-size:1.55rem}.bottom-nav .icon-button{width:auto}.game-layout{grid-template-areas:"scene controls" "progress controls";grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);column-gap:12px;row-gap:0;align-items:start}.control-panel{position:sticky;top:18px;margin-top:0}}
