*{box-sizing:border-box}html,body{margin:0;padding:0;overscroll-behavior:none}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif}#root{width:100%;height:100%}.stage{width:100vw;height:100dvh;display:flex;align-items:center;justify-content:center;background:#0d0f14}.frame{position:relative;height:100%;aspect-ratio:9 / 16;max-width:100vw;overflow:hidden;box-shadow:0 0 60px #0009}.game-canvas{display:block;width:100%;height:100%;touch-action:none}.boot-screen,.fatal-screen,.pause-screen{position:absolute;z-index:40;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:#101722}.boot-screen{gap:.7em;pointer-events:none;animation:fade-in .18s both}.boot-mark{font-size:clamp(42px,9vh,74px);color:#ffd76a;animation:boot-turn 1.15s linear infinite}.boot-screen strong,.fatal-screen strong,.pause-screen strong{font-size:clamp(18px,3.2vh,28px);letter-spacing:.14em}.boot-screen span,.fatal-screen p,.pause-screen span,.pause-screen small{font-size:clamp(10px,1.7vh,14px);letter-spacing:.14em;opacity:.68}@keyframes boot-turn{to{transform:rotate(360deg)}}.fatal-screen{gap:1em;padding:10%;background:radial-gradient(circle at 50% 35%,#41261e,#130f12 68%)}.fatal-mark{width:64px;height:64px;display:grid;place-items:center;border:2px solid #ffb08a;border-radius:50%;color:#ffb08a;font:900 32px/1 system-ui,sans-serif}.fatal-screen p{max-width:32em;line-height:1.6}.fatal-screen button,.pause-screen button{min-width:190px;padding:.85em 1.4em;border:1px solid rgb(255 255 255 / 22%);border-radius:999px;color:#fff;background:#ffffff17;font:800 12px/1 system-ui,sans-serif;letter-spacing:.16em;cursor:pointer}.asset-notice{position:absolute;z-index:35;left:8%;right:8%;bottom:3vh;display:flex;align-items:center;gap:.8em;padding:.8em 1em;border:1px solid rgb(255 215 106 / 35%);border-radius:12px;color:#fff3c5;background:#18140ee0;font:700 11px/1.4 system-ui,sans-serif;box-shadow:0 8px 28px #00000059}.asset-notice span{flex:1}.asset-notice button{border:0;color:inherit;background:transparent;font-size:20px;cursor:pointer}.pause-screen{z-index:30;gap:.8em;background:#090d14c2;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:fade-in .2s both}.pause-screen>span{margin-bottom:-.35em}.pause-screen strong{margin-bottom:1.4em}.pause-screen .pause-primary{border-color:transparent;color:#23180a;background:#ffd76a}.pause-screen small{margin-top:1.2em}.hud{position:absolute;inset:0 0 auto 0;padding-top:3vh;display:flex;flex-direction:column;align-items:center;pointer-events:none;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.35)}.score{font-size:clamp(34px,7vh,60px);font-weight:800;line-height:1;letter-spacing:.02em}.best{margin-top:.4em;font-size:clamp(11px,1.8vh,15px);font-weight:700;letter-spacing:.16em;opacity:.82}.score-kind{margin-top:.35em;font-size:clamp(10px,1.55vh,13px);font-weight:800;letter-spacing:.15em;opacity:.82}.distance{margin-top:.45em;padding:.35em .75em;border:1px solid rgb(255 255 255 / 24%);border-radius:999px;background:#080c1247;font-size:clamp(10px,1.55vh,13px);font-weight:750;letter-spacing:.11em}.gameover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35em;color:#fff;background:#0a0c126b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;animation:fade-in .45s .35s both;text-shadow:0 2px 10px rgba(0,0,0,.45)}.go-world{font-size:clamp(15px,2.4vh,21px);font-weight:700;letter-spacing:.06em;opacity:.92}.go-reason{margin:.25em 0 .65em;color:#ffd88a;font-size:clamp(11px,1.8vh,15px);font-weight:850;letter-spacing:.1em}.go-score{font-size:clamp(48px,9vh,84px);font-weight:800;line-height:1.05}.go-best{font-size:clamp(11px,1.8vh,15px);font-weight:700;letter-spacing:.16em;opacity:.8}.go-score-label,.go-distance{font-size:clamp(10px,1.65vh,14px);font-weight:750;letter-spacing:.13em;opacity:.82}.go-distance{margin-top:.45em}.go-distance-record{color:#ffe083;opacity:1}.go-retry{margin-top:1.6em;font-size:clamp(12px,2vh,16px);font-weight:800;letter-spacing:.18em;animation:pulse 1.6s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.tutorial{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vh;background:#fdfdfb;color:#6d7780;touch-action:none;animation:fade-in .25s both}.tut-title{font-size:clamp(14px,2.4vh,21px);font-weight:850;letter-spacing:.13em;color:#4c565e}.tut-panel{width:88%;max-width:460px;display:flex;flex-direction:column;align-items:center}.tut-art{width:100%;height:auto}.tut-label{margin-top:.2em;font-size:clamp(13px,2.3vh,20px);font-weight:700;letter-spacing:.09em;text-align:center;opacity:.75}.tut-label:before,.tut-label:after{content:none}.tut-start{margin-top:.25vh;font-size:clamp(11px,1.8vh,15px);font-weight:800;letter-spacing:.2em;opacity:.55;animation:pulse 1.6s ease-in-out infinite}.streak{margin-top:.5em;font-size:clamp(11px,1.8vh,15px);font-weight:800;letter-spacing:.16em;color:#ffd76a;animation:streak-in .28s ease-out both}@keyframes streak-in{0%{opacity:0;transform:translateY(-.35em) scale(.86)}to{opacity:1;transform:none}}.go-record{position:relative;margin-bottom:.5em;padding:.42em 1.15em;border-radius:999px;overflow:hidden;background:linear-gradient(135deg,#ffd76a,#ffb02e 55%,#ff8a1f);box-shadow:0 0 0 3px #ffd76a38,0 6px 22px #ff961e73;animation:record-pop .55s .25s cubic-bezier(.2,1.5,.4,1) both}.go-record span{position:relative;font-size:clamp(17px,3.1vh,27px);font-weight:900;letter-spacing:.14em;color:#4a2a00}.go-record:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translate(-120%);animation:record-shine 1.5s .85s ease-out infinite}.go-score-record{color:#ffd76a;text-shadow:0 0 28px rgba(255,176,46,.55)}@keyframes record-pop{0%{opacity:0;transform:scale(.55) rotate(-7deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes record-shine{0%{transform:translate(-120%)}55%,to{transform:translate(120%)}}@keyframes best-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.16)}to{opacity:1;transform:scale(1)}}.corner{position:absolute;top:2vh;width:34px;height:34px;border:0;border-radius:50%;background:#0a0c124d;color:#fff;font-size:15px;line-height:1;cursor:pointer;opacity:.55}.corner:hover{opacity:.9}.mute{right:2.5vw}.corner-menu{left:2.5vw;font-size:17px}.go-menu{margin-top:1.4em;padding:.55em 1.4em;border:0;border-radius:999px;background:#ffffff24;color:#fff;font:800 clamp(9px,1.5vh,12px)/1 system-ui,sans-serif;letter-spacing:.16em;cursor:pointer;pointer-events:auto;opacity:.8}.go-menu:hover{opacity:1}.tut-back{position:absolute;top:2vh;left:3vw;padding:.5em 1em;border:0;border-radius:999px;background:#0000001f;color:#4a4a52;font:800 11px/1 system-ui,sans-serif;letter-spacing:.14em;cursor:pointer;opacity:.75}.tut-back:hover{opacity:1}.start{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;color:#fff;background:radial-gradient(ellipse at 50% 42%,#23313f,#101822 55%,#080d14);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;padding:4vh 4vw}.start-title{font-size:clamp(24px,5vh,40px);font-weight:800;letter-spacing:.1em;text-shadow:0 3px 14px rgba(0,0,0,.5)}.lineup{position:relative;width:min(960px,100%);flex-shrink:0}.lineup-scene{width:100%;height:clamp(210px,34vw,380px)}.lineup-scene canvas{display:block;width:100%;height:100%}.lineup-choices{position:absolute;top:0;right:2.6%;bottom:0;left:2.6%;display:grid;grid-template-columns:repeat(4,1fr)}.lineup-choice{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;padding:0 2px 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:#b7bdc9;cursor:pointer;font-weight:700;font-size:clamp(11px,2vw,16px)}.lineup-choice small{font-size:8px;letter-spacing:.12em;opacity:.65}.lineup-choice.selected{color:#ffdc8f;border-bottom-color:#ffdc8f}.lineup-choice:hover{background:linear-gradient(transparent 65%,#ffffff09)}.lineup-choice:focus-visible{outline:2px solid #ffdc8f;outline-offset:-3px;border-radius:10px}.lineup-status{position:absolute;top:10px;left:0;right:0;font-size:12px;color:#ffdc8f;pointer-events:none}.start-best{font-size:clamp(11px,1.8vh,15px);font-weight:700;letter-spacing:.16em;opacity:.75}.start-row{display:flex;gap:.5em;flex-wrap:wrap;justify-content:center;margin-bottom:1.2em}.start-stage{display:flex;align-items:center;gap:.2em;margin-top:.4em;flex-shrink:0}.viewer{line-height:0;flex-shrink:0;touch-action:none}.viewer-fallback{width:230px;height:310px;display:grid;place-items:center}.viewer-fallback span{width:112px;height:112px;display:grid;place-items:center;border:2px solid rgb(255 215 106 / 55%);border-radius:50%;color:#ffd76a;background:#ffffff0f;font:900 52px/1 system-ui,sans-serif}.start-arrow{width:44px;height:64px;border:0;border-radius:12px;background:#ffffff14;color:#fff;font-size:30px;line-height:1;cursor:pointer;opacity:.7;transition:opacity .15s,background .15s}.start-arrow:hover{opacity:1;background:#ffffff29}.start-name{font-size:clamp(17px,2.7vh,23px);font-weight:800;letter-spacing:.14em}.start-dots{display:flex;gap:6px;margin-top:.5em}.dot{width:6px;height:6px;border-radius:50%;background:#ffffff4d}.dot.is-on{background:#ffd76a}.start-hint{margin-top:.5em;margin-bottom:1em;font-size:clamp(9px,1.4vh,11px);font-weight:700;letter-spacing:.18em;opacity:.5}.start-go,.start-how{border:0;border-radius:999px;cursor:pointer;font-weight:800;letter-spacing:.18em}.start-go{padding:.85em 2.6em;font-size:clamp(13px,2.1vh,17px);background:#ffd76a;color:#23180a}.start-how{margin-top:.2em;padding:.6em 1.6em;font-size:clamp(10px,1.6vh,13px);background:transparent;color:#fff;opacity:.72}.start-how:hover{opacity:1}.debug-scenes{position:absolute;z-index:20;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:8px 10px;border-radius:8px;color:#fff;background:#0c1018c7;font:10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.debug-scenes strong{display:block;margin-bottom:5px;font-size:11px}.debug-scenes .debug-perf{display:grid;grid-template-columns:repeat(3,max-content);gap:2px 9px;margin-bottom:7px;padding-bottom:6px;border-bottom:1px solid rgb(255 255 255 / 18%);color:#cde6ff;font-variant-numeric:tabular-nums}.debug-scenes .budget-pass,.debug-scenes .budget-warn{grid-column:1 / -1;width:max-content;padding:1px 5px;border-radius:999px;font-weight:800}.debug-scenes .budget-pass{color:#092d1b;background:#72e6a6}.debug-scenes .budget-warn{color:#3b1800;background:#ffad5c}.debug-scenes div{display:flex;flex-wrap:wrap;gap:4px}.debug-scenes a{padding:2px 5px;border:1px solid rgb(255 255 255 / 28%);border-radius:4px;color:#ffffffb8;text-decoration:none}.debug-scenes a.is-active{border-color:#ffd467;color:#17130a;background:#ffd467}.debug-scenes .debug-characters{margin-top:5px;padding-top:5px;border-top:1px solid rgb(255 255 255 / 18%)}.qa-run{left:10px;right:10px;max-width:none}.qa-run .qa-progress{justify-content:space-between;margin-bottom:6px;color:#ffd467;font-weight:800}.qa-run ol{margin:0;padding-left:18px;color:#ffffffc7}.world-transition{position:absolute;z-index:15;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;pointer-events:none;background:radial-gradient(circle,transparent 22%,rgb(255 255 255 / 20%) 70%,rgb(255 255 255 / 58%));animation:world-passage .76s ease-in-out both;text-shadow:0 2px 12px rgb(0 0 0 / 45%)}.world-transition span{font-size:11px;font-weight:800;letter-spacing:.28em}.world-transition strong{margin-top:5px;font-size:clamp(28px,6vh,52px);letter-spacing:.12em}.world-transition-heaven{color:#fff6d7}.world-transition-hell{color:#ffd0b5}.world-transition-earth{color:#d7fff4}@keyframes world-passage{0%,to{opacity:0;transform:scale(1.08)}42%,58%{opacity:1;transform:scale(1)}}
