*{box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{min-height:100vh;min-height:100dvh;min-height:var(--app-height, 100vh);min-height:-webkit-fill-available;margin:0;padding:0;font-family:Nunito,Segoe UI,sans-serif;overflow:hidden}body,a-scene{width:100%}a-scene{display:block;height:100vh;height:100dvh;height:var(--app-height, 100vh);height:-webkit-fill-available}.hidden{display:none!important}.overlay{position:fixed;z-index:10000;pointer-events:auto}.overlay.fullscreen{inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center}.overlay-content{background:#fffffff2;padding:2rem;border-radius:12px;width:min(92vw,34rem);max-width:92vw;text-align:center;color:#333;transition:opacity .28s ease,transform .28s ease}.overlay-content.is-swapping{opacity:0;transform:translateY(8px) scale(.97)}.overlay-content h1{font-size:2rem;margin:0 0 1rem;color:#8b4789;text-shadow:none}.overlay-content p{font-size:1rem;margin:.5rem 0 1.5rem;line-height:1.5;color:#4f5660}.status-copy{margin-top:-.25rem;color:#5b5964;font-size:.95rem}.intro-sound-prompt{margin-top:1rem}.loader-status{display:flex;align-items:center;gap:.85rem;margin:1rem 0 .9rem;padding:.85rem .95rem;border-radius:14px;background:#f5eff5e6;text-align:left}.loader-spinner{width:2rem;height:2rem;flex:0 0 auto;position:relative}.loader-spinner:before{content:"";position:absolute;inset:0;border-radius:50% 50% 50% 0;background:linear-gradient(160deg,#bdf1ff,#63cbff 55%,#277ec7);transform:rotate(-45deg);animation:drop-breathe 1.6s ease-in-out infinite}@keyframes drop-breathe{0%,to{transform:rotate(-45deg) scale(.86);box-shadow:0 0 6px #62c7ff4d}50%{transform:rotate(-45deg) scale(1.05);box-shadow:0 0 18px #62c7ffa6}}.loader-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0}.loader-copy strong{color:#5b3757;font-size:.98rem}.loader-copy span{color:#6d6370;font-size:.88rem;line-height:1.35}.loader-progress{width:100%;height:.5rem;margin:.75rem 0 1rem;background:#8b47891f;border-radius:999px;overflow:hidden;border:1px solid rgba(197,185,192,.32)}.loader-progress-bar{width:8%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#bdf1ff,#63cbff 52%,#277ec7);box-shadow:0 0 18px #62c7ff3d;transition:width .25s ease}#intro-screen.is-audio-stage .loader-status,#intro-screen.is-audio-stage .loader-progress,#intro-screen.is-audio-stage #intro-copy,#intro-screen.is-audio-stage #start-btn{display:none}.start-btn{background:linear-gradient(180deg,#ffffff29,#ffffff0a),#c77db2;color:#fff;border:1px solid rgba(255,255,255,.22);padding:1rem 2rem;font-size:1.2rem;border-radius:10px;cursor:pointer;font-family:inherit;touch-action:manipulation;box-shadow:0 10px 22px #4825452e,inset 0 1px #ffffff3d}.start-btn:disabled{background:linear-gradient(180deg,#ffffff1f,#ffffff08),#c5b5c0;border-color:#ffffff29;cursor:not-allowed;transform:none;opacity:.92}.start-btn:active{background:linear-gradient(180deg,#ffffff1a,#ffffff05),#a66b96;transform:scale(.98)}.reset-btn{position:fixed;right:1rem;bottom:1rem;z-index:10001;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,#ffffff6b,#ffffff14 48%,#09365e33);color:#f8fdff;border:1px solid rgba(255,255,255,.32);padding:0;font-size:.82rem;font-weight:700;letter-spacing:.01em;border-radius:999px;cursor:pointer;font-family:inherit;touch-action:manipulation;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 24px #04182c52,inset 0 1px #ffffff73;transition:transform .18s ease,box-shadow .18s ease}.reset-btn:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 14px 28px #04182c5c,inset 0 1px #ffffff80}.reset-btn:active{transform:scale(.97)}.contribute-btn{position:fixed;left:1rem;bottom:1rem;z-index:10001;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:radial-gradient(circle at 30% 25%,#ffffff6b,#ffffff14 48%,#09365e33);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 24px #04182c52,inset 0 1px #ffffff73;border:1px solid rgba(255,255,255,.32);text-decoration:none;touch-action:manipulation;transition:transform .18s ease,box-shadow .18s ease}.contribute-btn svg{width:2.35rem;height:2.35rem;display:block;filter:drop-shadow(0 4px 8px rgba(26,113,180,.24))}.contribute-btn:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 14px 28px #04182c5c,inset 0 1px #ffffff80}.contribute-btn:active{transform:scale(.97)}.build-label{position:fixed;top:2.35rem;left:50%;transform:translate(-50%);z-index:10002;margin:0;padding:.35rem .75rem;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:lowercase;color:#ffffffeb;background:#00000073;border-radius:999px;pointer-events:none;-webkit-user-select:none;user-select:none}.app-notice{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:10003;max-width:min(92vw,32rem);padding:.75rem 1rem;border-radius:12px;background:#fff8e1f5;color:#5b4500;box-shadow:0 8px 22px #00000029;font-size:.95rem;line-height:1.4;text-align:center}.app-notice.is-error{background:#ffece8fa;color:#7c3027}.app-notice.is-warn{background:#fff8e1f5;color:#5b4500}.app-notice.is-drop-hint{top:calc(50% + 4.5rem);padding:.7rem 1.4rem;border-radius:999px;background:#16446685;color:#eafcff;border:1px solid rgba(173,226,255,.4);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-weight:600;box-shadow:0 8px 24px #04182c4d,0 0 30px #68c6ff7a,inset 0 1px #ffffff52;animation:drop-hint-glow 2.2s ease-in-out infinite}@keyframes drop-hint-glow{0%,to{box-shadow:0 8px 24px #04182c4d,0 0 22px #68c6ff5c,inset 0 1px #ffffff52}50%{box-shadow:0 8px 24px #04182c4d,0 0 46px #68c6ffad,inset 0 1px #ffffff52}}#progress-hud{position:fixed;bottom:5.25rem;left:1rem;z-index:90;pointer-events:none}#progress-bar{position:relative;width:120px;height:120px}#progress-bar img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}#progress-bottom{z-index:1}#progress-middle{z-index:2;transform:scale(0);transform-origin:center;transition:transform .3s ease-out}#progress-top{z-index:3}#debug-log{position:fixed;top:0;left:0;right:0;z-index:20000;pointer-events:auto;font-family:ui-monospace,Consolas,monospace;font-size:10px;line-height:1.35}#debug-log-header{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#000000d9;color:#0f0;border-bottom:1px solid #333}#debug-log-header span{flex:1;font-weight:700}#debug-log-header button{background:#333;color:#fff;border:1px solid #555;border-radius:4px;padding:2px 8px;font-size:10px}#debug-log-body{max-height:40vh;overflow-y:auto;background:#000000bf;color:#cfc;padding:4px 6px;-webkit-overflow-scrolling:touch}#debug-log-body.collapsed{display:none}.debug-line{word-break:break-word;margin-bottom:2px}.debug-warn{color:#fc0}.debug-error{color:#f66}@media(max-width:480px){.overlay-content{width:min(94vw,34rem);padding:1.5rem}.overlay-content h1{font-size:1.5rem}.start-btn{padding:.8rem 1.5rem;font-size:1rem}.loader-status{align-items:flex-start}.reset-btn{right:.75rem;bottom:.75rem;width:3.2rem;height:3.2rem;font-size:.74rem}.contribute-btn{left:.75rem;bottom:.75rem;width:3.2rem;height:3.2rem}.contribute-btn svg{width:2.15rem;height:2.15rem}#progress-hud{bottom:4.7rem;left:.75rem}#progress-bar{width:90px;height:90px}}.loader-status.is-ready .loader-spinner:before{animation:none;background:#2f7c53;transform:rotate(-45deg) scale(1);box-shadow:0 0 12px #2f7c5373}.loader-status.is-ready .loader-spinner:after{content:"";position:absolute;left:50%;top:50%;width:.38rem;height:.62rem;border-right:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:translate(-50%,-56%) rotate(40deg)}
