:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif}html,body{margin:0;overflow:hidden;background:#06090f;touch-action:none!important}#app{width:100vw;height:100vh;position:relative;touch-action:none!important}canvas{display:block;width:100%;height:100%;touch-action:none!important}.touch-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.health{position:absolute;top:14px;left:16px;width:180px;height:10px;background:#0c121c99;border-radius:999px;overflow:hidden}#health-fill{width:100%;height:100%;background:#ff6d8f}.enemy-health{position:absolute;top:14px;right:16px;width:180px;height:10px;background:#0c121c99;border-radius:999px;overflow:hidden}#enemy-health-fill{width:100%;height:100%;background:#7ec5ff}.boost{position:absolute;bottom:24px;left:50%;transform:translate(-50%);width:38vw;max-width:340px;height:8px;background:#0c121c99;border-radius:999px;overflow:hidden}#boost-fill{height:100%;width:100%;background:#90ff63}.joy{position:absolute;left:28px;bottom:28px;width:140px;height:140px;border-radius:50%;background:#a0c8dc26;pointer-events:auto}.stick{position:absolute;left:50%;top:50%;width:56px;height:56px;margin-left:-28px;margin-top:-28px;border-radius:50%;background:#f0fcff59}.buttons{--btn-size: clamp(72px, 8vw, 84px);--btn-gap: clamp(10px, 1.2vw, 14px);position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:calc(var(--btn-size) * 2 + var(--btn-gap));height:calc(var(--btn-size) * 3 + var(--btn-gap) * 2);pointer-events:auto}.buttons button{position:absolute;width:var(--btn-size);height:var(--btn-size);border:2px solid rgba(176,231,255,.78);border-radius:50%;color:#dcf9ff;background:#2d485d59;font-weight:700}.buttons .btn-boost{right:0;bottom:0}.buttons .btn-jump{right:0;bottom:calc(var(--btn-size) + var(--btn-gap))}.buttons .btn-step{right:0;bottom:calc((var(--btn-size) + var(--btn-gap)) * 2)}.buttons .btn-shoot{right:calc(var(--btn-size) + var(--btn-gap));bottom:0;position:absolute;overflow:visible}.buttons .btn-shoot.empty{background:#0f17238c;border-color:#b0e7ff66}.buttons .btn-shoot .ammo-count{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:clamp(22px,3vw,30px);font-weight:800;color:#dcf9ff73;pointer-events:none;letter-spacing:.5px}.buttons .btn-shoot.empty .ammo-count{color:#dcf9ff47}.buttons .btn-shoot .reload-ring{position:absolute;top:-4px;left:-4px;width:calc(100% + 8px);height:calc(100% + 8px);pointer-events:none;opacity:0;transition:opacity .14s ease-out;transform:rotate(-90deg)}.buttons .btn-shoot.reloading .reload-ring{opacity:1}.buttons .btn-shoot .reload-ring circle{fill:none;stroke:#b4fafff2;stroke-width:5;stroke-linecap:butt;stroke-dasharray:289.03;stroke-dashoffset:289.03}.buttons .btn-melee{right:calc(var(--btn-size) + var(--btn-gap));bottom:calc(var(--btn-size) + var(--btn-gap))}.pause-btn{position:absolute;top:18px;left:50%;z-index:40;pointer-events:auto;transform:translate(-50%);border:2px solid rgba(180,220,255,.8);background:#0a1422b3;color:#d7f5ff;border-radius:999px;padding:8px 18px;font-weight:700}.menu{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));box-sizing:border-box;background:#05080ec7;z-index:100;pointer-events:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y!important}.menu:before,.menu:after{content:"";flex:1 1 0;min-height:0}.menu>*{flex:0 0 auto}.menu h2{margin:0 0 8px;color:#d7f6ff}.menu button{width:260px;padding:14px 10px;border-radius:10px;border:1px solid #4c6176;background:#1a2634;color:#e5fbff}.speed-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity 80ms linear;background:linear-gradient(100deg,rgba(120,220,255,.28),transparent 32%) left/18% 100% no-repeat,linear-gradient(260deg,rgba(120,220,255,.28),transparent 32%) right/18% 100% no-repeat}
