/* Opaque scene: no partially decoded media shows through. */
.navigation-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#fff3f7;background-image:radial-gradient(ellipse at 50% 28%,#fff 0%,#fff8fa 35%,#e8f2fb 100%);color:#79546e;font-family:'ZCOOL KuaiLe',cursive;text-align:center;padding:24px;isolation:isolate}
.navigation-loader[hidden]{display:none}
.loading-bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.loading-bubbles i{position:absolute;width:var(--size,64px);height:var(--size,64px);border-radius:50%;border:1.5px solid #c4dcef99;background:radial-gradient(circle at 28% 25%,#ffffffde 0 4%,#ffffff25 14%,#d1e4fa21 50%,#efb5cf40 100%);box-shadow:inset -3px -5px 10px #f3cad43b,0 7px 22px #abcce21a;animation:loading-bubble 9s ease-in-out infinite alternate}
.loading-bubbles i:after{content:'';position:absolute;left:22%;top:18%;width:26%;height:12%;border-radius:50%;background:#ffffffb3;transform:rotate(-35deg)}
.loading-bubbles i:nth-child(1){left:15%;top:20%;--size:78px;animation-delay:-2s}
.loading-bubbles i:nth-child(2){left:29%;top:65%;--size:36px;animation-delay:-5s;animation-duration:11s}
.loading-bubbles i:nth-child(3){right:16%;top:56%;--size:90px;animation-delay:-7s;animation-duration:12s}
.loading-bubbles i:nth-child(4){right:29%;top:18%;--size:40px;animation-delay:-4s}
.loading-bubbles i:nth-child(5){left:7%;top:76%;--size:46px;animation-delay:-8s}
.loading-bubbles i:nth-child(6){right:8%;top:14%;--size:23px;animation-delay:-1s}
.loading-bubbles i:nth-child(7){left:37%;top:9%;--size:17px;animation-delay:-6s}
.loading-bubbles i:nth-child(8){right:37%;top:82%;--size:25px;animation-delay:-3s}
.loading-bubbles span{position:absolute;color:#d5a0ba;font-size:22px;animation:loading-spark 4s ease-in-out infinite}
.loading-bubbles span:nth-of-type(1){left:25%;top:39%}.loading-bubbles span:nth-of-type(2){right:26%;top:73%;color:#93b8d2;animation-delay:-2s}.loading-bubbles span:nth-of-type(3){right:38%;top:29%;font-size:14px;color:#cfba78;animation-delay:-1s}
@keyframes loading-bubble{from{transform:translate3d(-5px,16px,0)}to{transform:translate3d(7px,-22px,0)}}
@keyframes loading-spark{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:.85;transform:scale(1)}}
@media(max-width:600px){.loading-bubbles i:nth-child(1){left:4%;--size:47px}.loading-bubbles i:nth-child(3){right:1%;--size:57px}.loading-bubbles span:nth-of-type(1){left:12%}.loading-bubbles span:nth-of-type(3){right:21%}}
@media(prefers-reduced-motion:reduce){.loading-bubbles i,.loading-bubbles span{animation:none}}
.loading-story{width:min(390px,90vw);display:flex;flex-direction:column;align-items:center}
.loading-heart{width:62px;height:62px;image-rendering:pixelated;filter:drop-shadow(0 5px 0 #edc7d3);animation:loading-heartbeat 1.6s ease-in-out infinite}
.loading-walk{position:relative;width:230px;height:180px;margin:6px 0 0;overflow:hidden}
.loading-couple{position:absolute;left:43px;bottom:14px;width:144px;height:168px;background:url('/scene/game-couple-right-v1.webp') 0 0/1152px 168px no-repeat;image-rendering:pixelated;animation:loading-footsteps .9s steps(8) infinite}
.loading-path{position:absolute;left:15px;right:15px;bottom:11px;height:4px;background:#d9c1ce;box-shadow:0 3px 0 #fff}
.loading-path:after{content:'';position:absolute;inset:7px 0 auto;height:3px;background:repeating-linear-gradient(90deg,transparent 0 18px,#a8c6db 18px 23px,transparent 23px 44px);animation:loading-road 1.8s linear infinite}
.loading-message{margin:19px 0 0;min-height:26px;line-height:1.7;font-size:17px;letter-spacing:1px;max-width:360px}
.loading-actions{display:flex;justify-content:center;gap:12px;margin-top:22px}
.loading-actions[hidden]{display:none}
.loading-actions button{font:inherit;font-size:15px;padding:10px 18px;border-radius:14px;border:2px solid #e6bacb;background:#fff9fc;color:#935873;box-shadow:0 3px 0 #efd5e0;cursor:pointer}
.loading-actions button:last-child{border-color:#b6cede;color:#537f9c;box-shadow:0 3px 0 #dbe8f2}
.loading-actions button:focus-visible{outline:3px solid #789fbb;outline-offset:4px}
.has-error .loading-couple,.has-error .loading-path:after{animation-play-state:paused}
@keyframes loading-heartbeat{0%,42%,100%{transform:scale(1)}12%,25%{transform:scale(1.13)}19%{transform:scale(1.04)}}
@keyframes loading-footsteps{to{background-position:-1152px 0}}
@keyframes loading-road{to{background-position:-44px 0}}
@media(max-height:480px){.loading-heart{width:44px;height:44px}.loading-walk{height:136px;transform:scale(.8);margin-top:-10px;margin-bottom:-12px}.loading-message{margin-top:9px}}
@media(prefers-reduced-motion:reduce){.loading-heart,.loading-couple,.loading-path:after{animation:none}}
body.is-booting{background:#fff3f7}
