*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#0e1420}button{font:inherit;color:inherit;border:none;background:none;padding:0;cursor:pointer}.app{position:fixed;inset:0;width:100dvw;height:100dvh;overflow:hidden;background:#0e1420;background-size:cover;background-position:center;box-shadow:inset 0 0 0 9999px #0e142073;color:#f2f4f8;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.progress-map{position:fixed;top:env(safe-area-inset-top);left:env(safe-area-inset-left);right:env(safe-area-inset-right);height:6px;background:#ffffff1f;pointer-events:none;z-index:5}.progress-map:after{content:"";display:block;height:100%;width:calc(var(--fill, 0) * 100%);background:#6fd3a3}.companion{position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:50%;transform:translate(-50%);width:clamp(120px,30vw,200px);height:clamp(120px,30vw,200px);pointer-events:none;z-index:4}.companion canvas,.companion__fallback{width:100%;height:100%}img.companion__fallback{object-fit:contain}.scene-screen{position:absolute;inset:0;z-index:1}.scene-screen canvas{display:block;width:100%;height:100%;touch-action:none}.fallback-open{position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));border-radius:50%;background:#2a3550;display:flex;align-items:center;justify-content:center;font-size:2.5rem;z-index:3}.fallback-panel{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-end;gap:12px;padding:16px max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(to top,rgba(14,20,32,.96),rgba(14,20,32,.55) 80%,transparent)}.fallback-panel button{border-radius:16px;background:#1c2438;font-size:1.5rem;display:flex;align-items:center;justify-content:center;padding:0 12px}.fallback-panel button[data-picked=true]{background:#3d5a99;box-shadow:0 0 0 3px #6fa8ff inset}.fallback-confirm{background:#2f7d5a!important;font-size:2rem!important}.fallback-confirm:disabled{background:#263042!important;opacity:.5;cursor:default}.pause-veil,.trouble-panel,.loading-veil,.epilogue-screen,.handoff-screen{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:100%;height:100%}.pause-veil,.trouble-panel,.loading-veil{background:#080c14eb;font-size:6rem}.trouble-panel button{border-radius:50%;background:#7a3b3b;width:25vmin;height:25vmin;min-width:88px;min-height:88px;display:flex;align-items:center;justify-content:center}.epilogue-screen,.handoff-screen{background:#0e1420;font-size:3rem}.epilogue-screen{z-index:9;flex-direction:row;flex-wrap:wrap;max-width:80vw;gap:12px}.epilogue-screen__star{font-size:2.5rem;line-height:1}.epilogue-screen__star:before{content:"★"}.epilogue-screen__star[data-brightness=bright]{color:#ffd54a}.epilogue-screen__star[data-brightness=warm]{color:#ffb066;opacity:.75}.epilogue-screen__star[data-brightness=dim]{color:#4a5568;opacity:.5}.story-advance{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:11;border-radius:50%;background:#2f7d5a;min-width:88px;min-height:88px;width:88px;height:88px;display:flex;align-items:center;justify-content:center;font-size:2.5rem}.subtitles{position:fixed;left:50%;bottom:max(96px,calc(env(safe-area-inset-bottom) + 96px));transform:translate(-50%);z-index:6;max-width:min(90vw,640px);margin:0;padding:10px 18px;border-radius:12px;background:#080c14d9;color:#f2f4f8;text-align:center;line-height:1.4}.connection-hint,.sound-hint{position:fixed;top:max(16px,env(safe-area-inset-top));z-index:7;border-radius:50%;background:#2a3550e6;display:flex;align-items:center;justify-content:center;font-size:2rem}.connection-hint{right:max(16px,env(safe-area-inset-right))}.sound-hint{left:max(16px,env(safe-area-inset-left))}
