:root{--hud-accent: #6ee7ff;--hud-warn: #ff5470;--hud-text: #d6f3ff;--hud-dim: rgba(214, 243, 255, .55);--panel-bg: rgba(6, 12, 24, .82);--panel-border: rgba(110, 231, 255, .35);--font-hud: "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#02040a;color:var(--hud-text);font-family:var(--font-hud);-webkit-font-smoothing:antialiased}@supports (height: 100dvh){html,body{height:100dvh}}#game-canvas{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;display:block;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#hud,#overlay{position:fixed;inset:0;pointer-events:none;user-select:none}#overlay{pointer-events:none}.hud{position:absolute;inset:0;padding:clamp(10px,2.2vmin,26px);display:flex;flex-direction:column;justify-content:space-between}.hud-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2vmin}.hud-cluster{display:flex;align-items:flex-start;gap:clamp(16px,3.4vmin,46px)}.hud-block{display:flex;flex-direction:column;gap:.55em}.hud-label{font-size:clamp(9px,1.35vmin,13px);letter-spacing:.42em;color:var(--hud-dim)}.hud-score{font-size:clamp(20px,3.6vmin,36px);font-weight:700;color:var(--hud-text);letter-spacing:.08em;text-shadow:0 0 14px rgba(110,231,255,.55);font-variant-numeric:tabular-nums}.hud-wave{font-size:clamp(12px,1.9vmin,18px);letter-spacing:.3em;color:var(--hud-accent);text-shadow:0 0 10px rgba(110,231,255,.5)}.hud-wave.hud-wave--warning{color:var(--hud-warn);text-shadow:0 0 10px rgba(255,84,112,.6)}.hud-wave.hud-wave--hidden{visibility:hidden}.hud-right{align-items:flex-end}.hud-bottom{position:absolute;right:clamp(10px,2.2vmin,26px);bottom:clamp(10px,2.2vmin,26px);display:flex;justify-content:flex-end;align-items:flex-end;gap:2vmin}.hud-shell{flex:1 1 auto;max-width:min(30vw,400px);min-width:180px;display:flex;flex-direction:column;gap:.5em}.shell-track{position:relative;height:clamp(8px,1.5vmin,13px);border:1px solid var(--panel-border);background:#040a14b3;box-shadow:inset 0 0 10px #0009;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 100%,10px 100%)}.shell-fill{position:absolute;inset:2px;transform-origin:left center;background:linear-gradient(90deg,#35d0ff,#8ef5ff 65%,#d9fbff);box-shadow:0 0 12px #6ee7ffcc;transition:transform .18s ease-out,background .3s}.shell-track.is-low .shell-fill{background:linear-gradient(90deg,#ff5470,#ff9a6e);box-shadow:0 0 12px #ff5470cc}.shell-ticks{position:absolute;inset:0;display:flex}.shell-ticks span{flex:1;border-right:1px solid rgba(2,8,16,.75)}.shell-ticks span:last-child{border-right:none}.hud-hint{font-size:clamp(9px,1.25vmin,12px);letter-spacing:.18em;color:var(--hud-dim);white-space:nowrap}.mute-button{pointer-events:auto;appearance:none;background:#060c18b3;border:1px solid var(--panel-border);color:var(--hud-text);font-family:var(--font-hud);font-size:clamp(10px,1.4vmin,13px);letter-spacing:.14em;padding:.55em .9em;cursor:pointer;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);transition:border-color .15s,color .15s,background .15s}.mute-button:hover{border-color:var(--hud-accent);color:#fff;background:#142842bf}.overlay-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.2vmin;background:radial-gradient(ellipse at center,#040a168c,#02040aeb 78%);text-align:center}.overlay-screen--hidden{display:none}.overlay-title{font-size:clamp(30px,7.2vmin,74px);font-weight:800;letter-spacing:.16em;color:#eafcff;text-shadow:0 0 18px rgba(110,231,255,.65),0 0 52px rgba(110,231,255,.3),0 2px 0 rgba(6,40,60,.9)}.overlay-title--small{font-size:clamp(22px,4.6vmin,46px)}.overlay-title--danger{color:#ffe9ee;text-shadow:0 0 18px rgba(255,84,112,.7),0 0 52px rgba(255,84,112,.35),0 2px 0 rgba(60,6,18,.9)}.overlay-sub{font-size:clamp(11px,1.9vmin,16px);letter-spacing:.32em;color:var(--hud-dim)}.overlay-stats{display:flex;gap:clamp(18px,4vmin,46px)}.stat{display:flex;flex-direction:column;gap:.4em;min-width:12vmin}.stat-label{font-size:clamp(9px,1.3vmin,12px);letter-spacing:.34em;color:var(--hud-dim)}.stat-value{font-size:clamp(17px,3vmin,30px);font-weight:700;color:var(--hud-text);font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(110,231,255,.45)}.overlay-controls{display:grid;grid-template-columns:auto auto;gap:.65em 1.4em;align-items:baseline;font-size:clamp(10px,1.5vmin,14px);color:var(--hud-dim);letter-spacing:.1em}.overlay-controls .key{justify-self:end;color:var(--hud-accent);letter-spacing:.2em;border:1px solid rgba(110,231,255,.3);background:#08122099;padding:.2em .65em;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}.overlay-blink{font-size:clamp(12px,2vmin,17px);letter-spacing:.4em;color:var(--hud-accent);animation:overlay-blink 1.5s ease-in-out infinite}@keyframes overlay-blink{0%,to{opacity:.25}50%{opacity:1}}.overlay-footer{position:absolute;bottom:clamp(10px,2.2vmin,26px);left:0;right:0;font-size:clamp(9px,1.2vmin,11px);letter-spacing:.24em;color:#d6f3ff4d}.damage-flash{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,#ff3c5a00 42%,#ff3c5a61);opacity:0;transition:opacity .08s linear;will-change:opacity}.damage-flash.is-active{opacity:1;transition:none}.hud-upgrades{min-width:150px;gap:.45em}.upgrade-gauge{display:none;align-items:center;gap:.7em}.upgrade-gauge.is-active{display:flex}.upgrade-icon{font-size:clamp(9px,1.2vmin,12px);font-weight:700;letter-spacing:.2em;padding:.15em .45em;border:1px solid rgba(110,231,255,.45);color:#54e0ff}.upgrade-time{font-size:clamp(9px,1.2vmin,12px);font-variant-numeric:tabular-nums;color:var(--hud-text)}.upgrade-icon--shield{border-color:#6effc073;color:#6effc0}.upgrade-track{position:relative;width:clamp(70px,9vmin,120px);height:6px;border:1px solid rgba(214,243,255,.28);background:#040a14b3}.upgrade-fill{position:absolute;inset:1px;transform-origin:left center;background:linear-gradient(90deg,#35d0ff,#8ef5ff);box-shadow:0 0 8px #6ee7ffb3}#hud-shield .upgrade-fill{background:linear-gradient(90deg,#35ffb0,#9dffdc);box-shadow:0 0 8px #6effc0b3}.upgrade-gauge.is-spent .upgrade-fill{background:#d6f3ff40;box-shadow:none}.upgrade-gauge.is-flash .upgrade-fill{animation:upgrade-flash .5s ease-out}@keyframes upgrade-flash{0%{filter:brightness(2.4)}to{filter:brightness(1)}}.hud-boss{position:absolute;top:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(46vw,560px);display:flex;flex-direction:column;gap:.4em;align-items:center}.hud-boss--hidden{display:none}.hud-telegraph{margin-top:.35em;font-size:clamp(10px,1.6vmin,15px);font-weight:700;letter-spacing:.28em;padding:.3em .9em;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.hud-telegraph.hud-telegraph--hidden{display:none}.hud-telegraph.hud-telegraph--lockon{color:#ffe6ec;border:1px solid rgba(255,84,112,.65);background:#320610ad;text-shadow:0 0 12px rgba(255,84,112,.85);animation:telegraph-lockon .55s ease-in-out infinite}.hud-telegraph.hud-telegraph--spread{color:#ffe9c9;border:1px solid rgba(255,170,84,.7);background:#2e1a04ad;text-shadow:0 0 12px rgba(255,170,84,.85);animation:telegraph-spread .4s ease-in-out infinite}@keyframes telegraph-lockon{0%,to{background:#320610ad}50%{background:#600a1ec7}}@keyframes telegraph-spread{0%,to{background:#2e1a04ad}50%{background:#583008c7}}.boss-track{position:relative;width:100%;height:clamp(9px,1.6vmin,14px);border:1px solid rgba(255,84,112,.55);background:#08040abf;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 100%,8px 100%);box-shadow:inset 0 0 10px #000000b3}.boss-fill{position:absolute;inset:2px;transform-origin:left center;background:linear-gradient(90deg,#ff5470,#ff9a6e);box-shadow:0 0 12px #ff5470cc;transition:transform .2s ease-out}.boss-fill.is-critical{background:linear-gradient(90deg,#f24,#ffd24a)}.hud{padding-top:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-top));padding-left:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-left));padding-right:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-right))}.hud-bottom{bottom:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-bottom));right:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-right))}.overlay-screen{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.overlay-footer{bottom:max(clamp(10px,2.2vmin,26px),env(safe-area-inset-bottom))}.touch-feedback{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.55}.touch-feedback--hidden{display:none}.touch-feedback__ring{position:absolute;display:none;width:88px;height:88px;margin:-44px 0 0 -44px;border:1.5px solid rgba(110,231,255,.35);border-radius:50%;background:radial-gradient(circle,rgba(110,231,255,.08) 40%,transparent 70%)}.touch-feedback__dot{position:absolute;display:none;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#6ee7ff66;box-shadow:0 0 10px #6ee7ff99}.touch-feedback__fire{position:absolute;top:0;right:0;bottom:0;display:none;width:50%;background:radial-gradient(ellipse at 100% 50%,rgba(110,231,255,.08) 0%,transparent 62%)}.touch-feedback--portrait .touch-feedback__fire{right:0;bottom:0;left:auto;width:40%;height:100%;background:radial-gradient(ellipse at 100% 50%,rgba(110,231,255,.08) 0%,transparent 68%)}@media(pointer:coarse){.hud-hint{display:none}}@media(pointer:coarse)and (orientation:landscape)and (max-height:500px){.hud{padding-top:max(6px,env(safe-area-inset-top));padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.hud-score{font-size:20px}.hud-block{gap:.3em}.hud-boss{top:max(6px,env(safe-area-inset-top));width:40vw}.shell-track{height:7px}.mute-button{font-size:10px;padding:.4em .75em}.overlay-title{font-size:clamp(26px,6.4vmin,56px)}.overlay-screen{gap:2vmin}}@media(pointer:coarse)and (min-width:700px)and (min-height:700px){.hud{padding:30px}.mute-button{padding:.7em 1.2em;min-width:120px;min-height:44px;font-size:14px}.overlay-controls{font-size:clamp(14px,1.4vmin,16px)}}@media(orientation:portrait){.hud.hud--portrait .hud-boss{top:max(84px,calc(env(safe-area-inset-top) + 76px))}}@media(pointer:coarse)and (orientation:portrait)and (max-width:520px){.hud.hud--portrait{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:max(8px,env(safe-area-inset-bottom))}.hud.hud--portrait .hud-top{position:relative;flex-wrap:wrap;gap:8px}.hud.hud--portrait .hud-right{position:absolute;top:0;right:0;align-items:flex-end}.hud.hud--portrait .hud-cluster{flex-wrap:wrap;row-gap:6px;column-gap:14px;width:100%;box-sizing:border-box;padding-right:112px}.hud.hud--portrait .hud-label{font-size:9px;letter-spacing:.3em}.hud.hud--portrait .hud-score{font-size:18px}.hud.hud--portrait .hud-shell{min-width:0;flex:1 1 130px;max-width:none}.hud.hud--portrait .hud-upgrades{min-width:0}.hud.hud--portrait .upgrade-track{width:clamp(56px,15vw,90px)}.hud.hud--portrait .hud-boss{top:max(108px,calc(env(safe-area-inset-top) + 100px));width:min(78vw,300px)}.hud.hud--portrait .hud-wave{font-size:11px}.overlay-title{font-size:clamp(24px,6.5vmin,44px)}.overlay-stats{gap:12px}.stat{min-width:80px}.overlay-controls{font-size:11px}.overlay-footer{font-size:9px}}
