*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;overscroll-behavior:none;background:#0d1220;touch-action:pan-x pan-y}body{background:#0d1220;color:#fff;font-family:Space Grotesk,Segoe UI,system-ui,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.overlay-safe{padding-top:max(20px,env(safe-area-inset-top))!important;padding-bottom:max(20px,env(safe-area-inset-bottom))!important;padding-left:max(20px,env(safe-area-inset-left))!important;padding-right:max(20px,env(safe-area-inset-right))!important}*{scrollbar-width:thin;scrollbar-color:#2b3650 transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#2b3650;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#3a4a6e}button{user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;font-family:inherit}button:disabled{opacity:.4}button{transition:transform .06s ease,filter .06s ease}button:not(:disabled):active{transform:scale(.94);filter:brightness(1.25)}@keyframes asteroidPop{0%{transform:scale(1)}40%{transform:scale(.93)}to{transform:scale(1)}}.asteroid-pop{animation:asteroidPop .12s ease-out}@keyframes starScrollNear{to{background-position-x:-700px}}@keyframes starScrollFar{to{background-position-x:-900px}}.starfield-near{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1.6px 1.6px at 80px 18%,rgba(230,238,255,.9) 50%,transparent 51%),radial-gradient(1.4px 1.4px at 300px 62%,rgba(215,225,250,.8) 50%,transparent 51%),radial-gradient(1.6px 1.6px at 520px 38%,rgba(235,240,255,.85) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 180px 84%,rgba(220,228,250,.7) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 640px 72%,rgba(230,235,255,.65) 50%,transparent 51%);background-size:700px 100%;background-repeat:repeat-x;animation:starScrollNear 34s linear infinite}.starfield-far{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(1px 1px at 140px 30%,rgba(200,215,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 420px 74%,rgba(225,232,252,.45) 50%,transparent 51%),radial-gradient(1px 1px at 700px 12%,rgba(210,222,250,.5) 50%,transparent 51%),radial-gradient(1px 1px at 260px 50%,rgba(255,225,200,.4) 50%,transparent 51%),radial-gradient(1px 1px at 820px 56%,rgba(200,215,255,.35) 50%,transparent 51%);background-size:900px 100%;background-repeat:repeat-x;animation:starScrollFar 95s linear infinite}@keyframes rocksScroll{to{transform:translate(-50%)}}.rocks-scroll{animation:rocksScroll 70s linear infinite}@keyframes sceneFade{0%{opacity:0}to{opacity:1}}.scene-fade{animation:sceneFade 1.1s ease-out}@keyframes chapterBanner{0%{opacity:0;transform:translateY(12px)}15%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.chapter-banner{animation:chapterBanner 4s ease-out forwards}@keyframes hintPulse{0%,to{opacity:1}50%{opacity:.55}}.onboard-hint{animation:hintPulse 2.2s ease-in-out infinite}@keyframes asteroidDrift{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-6px,8px) rotate(1.2deg)}}.asteroid-drift{animation:asteroidDrift 9s ease-in-out infinite}@keyframes shipBobbing{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.ship-bob{animation:shipBobbing 4.5s ease-in-out infinite}@keyframes beamFadeOut{0%{opacity:1}70%{opacity:.85}to{opacity:0}}.beam-fade{animation:beamFadeOut .26s ease-out forwards}@keyframes meteorDriftRtl{0%{transform:translate(calc(100vw + 80px),-30px);opacity:0}6%{opacity:1}94%{opacity:1}to{transform:translate(-80px,70px);opacity:0}}@keyframes meteorDriftLtr{0%{transform:translate(-80px,-30px);opacity:0}6%{opacity:1}94%{opacity:1}to{transform:translate(calc(100vw + 80px),70px);opacity:0}}.meteor{position:absolute;cursor:pointer;z-index:5;animation:meteorDriftRtl 14s linear forwards;filter:drop-shadow(0 0 20px rgba(245,184,96,.8))}.meteor-ltr{animation-name:meteorDriftLtr}@media(prefers-reduced-motion:reduce){.asteroid-drift,.ship-bob,.starfield-near,.starfield-far,.rocks-scroll{animation:none}}@keyframes floatUp{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-46px)}}.float-num{position:absolute;left:50%;pointer-events:none;color:#facc15;font-family:JetBrains Mono,monospace;font-weight:700;animation:floatUp .8s ease-out forwards}.float-crit{color:#ff8f3d;text-shadow:0 0 10px rgba(255,143,61,.7);animation:floatUp 1.1s ease-out forwards}@keyframes shardFly{0%{opacity:1;transform:translate(0) rotate(0) scale(1)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.5)}}.shard{position:absolute;width:7px;height:7px;pointer-events:none;background:#8fa3c4;clip-path:polygon(50% 0,100% 40%,75% 100%,15% 85%,0 30%);animation:shardFly .55s ease-out forwards}@keyframes fieldShake{0%,to{transform:translate(0)}25%{transform:translate(-5px,3px)}50%{transform:translate(4px,-3px)}75%{transform:translate(-3px,-2px)}}.field-shake{animation:fieldShake .28s ease-out}@keyframes burstPop{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1.25)}60%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1) translateY(-16px)}}.milestone-burst{position:absolute;left:50%;top:50%;translate:-50% -50%;pointer-events:none;z-index:5;color:#facc15;font-family:JetBrains Mono,monospace;font-weight:700;font-size:18px;text-shadow:0 0 14px rgba(250,204,21,.8);animation:burstPop 1s ease-out forwards}@keyframes fxFadeIn{0%{opacity:0}to{opacity:1}}.leap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;overflow:hidden;background:#060d1a;animation:fxFadeIn .3s ease-out}.leap-warp{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.leap-header{position:absolute;left:0;right:0;top:9vh;text-align:center;z-index:3;animation:fxFadeIn .4s ease-out}.leap-ship-wrap{position:absolute;left:50%;top:50%;width:min(88vw,340px);transform:translate(-50%,-52%);transition:filter .45s ease-in;z-index:2}@keyframes leapScan{0%{top:0;opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.leap-scan{position:absolute;left:3%;right:3%;height:2px;z-index:4;background:linear-gradient(90deg,transparent,rgba(77,216,232,.95),transparent);box-shadow:0 0 14px #4dd8e8cc;animation:leapScan .65s ease-in-out forwards}@keyframes leapFly{0%{transform:translate(-50%,-52%)}22%{transform:translate(-50%,-50.5%) scale(.99)}to{transform:translate(-50%,-190vh) scale(1.05)}}.leap-launching{filter:drop-shadow(0 0 14px rgba(77,216,232,.65));animation:leapFly 1.7s cubic-bezier(.6,0,1,.5) .42s forwards}@keyframes leapFlicker{0%,to{opacity:.95}50%{opacity:.55}}.leap-flame{position:absolute;left:50%;top:99%;width:30px;height:84px;transform:translate(-50%);opacity:0;background:linear-gradient(to bottom,rgba(127,208,255,.95),rgba(77,216,232,.5) 45%,transparent);clip-path:polygon(28% 0,72% 0,58% 100%,42% 100%)}.leap-launching .leap-flame{animation:leapFlicker .12s linear infinite;opacity:1}.leap-arrive{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;animation:fxFadeIn .5s ease-out}.leap-taphint{animation:fxFadeIn .5s ease-out 1.4s both}@keyframes achSlide{0%{transform:translate(-50%) translateY(-16px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes sectorFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}
