:root{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}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}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))}.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-mode-toggle{display:grid;overflow:hidden;width:28px;height:62px;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:.9rem;font-weight:840;line-height:1}.speech-mode-toggle button+button{border-top: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}.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}.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-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-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;max-width:1180px;justify-content:center;margin:8px auto 0}.bottom-nav .icon-button{width:100%}.start-page{display:grid;min-height:100vh;align-items:center}.start-panel{display:grid;gap:16px;width:min(100%,620px);margin:0 auto;border:1px solid #d7dee8;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);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}.stage-list-panel h2{margin:0;color:#172033;font-size:.98rem;font-weight:760;letter-spacing:0}.stage-list{display:grid;gap:8px}.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:#1d4ed8;background:#dbeafe;box-shadow:inset 0 0 0 1px #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:#1d4ed8;background:#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}.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}.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;display:flex;align-items:flex-end;justify-content:center;padding:82px 26px 34px;transform:translate(-50%,-50%);transition:opacity .62s ease,filter .62s ease,transform .62s ease;will-change:left,top,transform}.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-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:#030712b8;stroke-width:7;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;max-width:calc(100% - 28px);border:1px solid rgb(15 23 42 / .1);border-radius:8px;padding:5px 8px;color:#111827;background:rgb(255 255 255 / .54);box-shadow:0 1px #ffffffbf,0 6px 16px #0f172a1f;font-size:1rem;font-weight:830;line-height:1.08;overflow-wrap:anywhere;text-align:center;text-shadow:0 1px 0 rgb(255 255 255 / .68)}.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)}}@media (max-width: 430px){.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}}
