*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#dcfff0;color:#294b67;font-family:ui-rounded,"Arial Rounded MT Bold",Nunito,system-ui,sans-serif;-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:none}button{font:inherit;cursor:pointer;appearance:none;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #4fbdec;outline-offset:4px}#app{width:100%;height:100%;height:100dvh;position:relative;overflow:hidden;background:linear-gradient(140deg,#ecfff6,#ccf6ef 50%,#fce3ef)}#arena{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}#vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 120px #247ca30c}#topHud{position:absolute;top:max(12px,env(safe-area-inset-top));left:clamp(9px,2vw,24px);right:clamp(9px,2vw,24px);display:flex;align-items:flex-start;gap:12px;z-index:5;pointer-events:none}.hudGlass{background:#ffffffed;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 30px #4d6ea029,0 1px 0 #fff inset;border:1.5px solid #fff;border-radius:21px}.hudPrimary{padding:13px 17px;flex:0 0 min(335px,37vw)}.hudTitle{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:8px;white-space:nowrap}.hudTitle strong{font-size:13px;letter-spacing:.05em;color:#49778c}.stageBadge{font-size:10px;font-weight:1000;color:#fff;background:linear-gradient(120deg,#57cda3,#47bfd2);border-radius:9px;padding:5px 8px}.healthLine{display:flex;align-items:center;gap:7px}.heart{color:#f07598;font-size:25px;line-height:1}.healthLine b{font-size:11px;min-width:49px;text-align:right;color:#e56f90}.bar{height:11px;border-radius:20px;background:#dbecf3;overflow:hidden;position:relative;flex:1;box-shadow:inset 0 1px 2px #8eafc837}.bar>div{height:100%;width:100%;border-radius:20px;transition:width .15s linear}.hp>div{background:linear-gradient(90deg,#f99caa,#fb6b9d)}.xpLine{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:11px;color:#a474bc;font-weight:1000}.xpLine span{white-space:nowrap}.xp{height:8px}.xp>div{background:linear-gradient(90deg,#9d8df5,#69dce6)}.hudStats{flex:1;max-width:520px;padding:13px 18px;min-width:0}.statsTop{display:flex;justify-content:space-around;gap:14px;text-align:center}.statsTop>div{flex:1}.statsTop small{display:block;font-weight:1000;font-size:10px;letter-spacing:.13em;color:#93aeb6}.statsTop strong{display:block;color:#51778e;font-size:22px;letter-spacing:.03em;line-height:1.2;font-variant-numeric:tabular-nums}.statsTop>div:nth-child(2) strong{color:#d967a4}.statsTop>div:nth-child(3) strong{color:#a079d8}.waveBanner{text-align:center;font-size:10px;font-weight:1000;letter-spacing:.12em;color:#71afaa;margin-top:5px}.bossWarning{margin:5px auto 0;text-align:center;font-size:10px;font-weight:1000;color:#d56e8b}.boss{height:7px;margin:4px 0}.boss>div{background:linear-gradient(90deg,#ffb961,#fb7291)}.hudActions{display:flex;gap:6px;pointer-events:auto}.hudActions button{height:44px;min-width:44px;border:1.5px solid #fff;border-radius:15px;color:#65a0ad;background:#ffffffed;font-size:22px;font-weight:1000;box-shadow:0 5px 20px #409cb326}.hudActions button:active{transform:scale(.96)}
#bottomHud{position:absolute;z-index:5;bottom:max(16px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;align-items:flex-end;gap:12px;pointer-events:none}.modeChip,.levelChip,.mission{background:#ffffffea;border:1px solid #fff;border-radius:16px;padding:12px 15px;font-size:11px;font-weight:1000;box-shadow:0 8px 20px #4d76a51f;letter-spacing:.08em}.modeChip{display:flex;gap:7px;align-items:center;color:#7869a8}.modeChip .sparkle{color:#ec83b8;font-size:20px}.modeChip #weaponLevel{color:#c99cbf}.mission{min-width:160px;max-width:230px;flex:1;color:#a47db8}.missionBar{height:5px;margin-top:8px}.missionBar>div{background:linear-gradient(90deg,#e59ef0,#ffc97e)}.levelChip{color:#68b7ba;margin-left:auto}
#burstButton{position:absolute;right:clamp(20px,6vw,72px);bottom:104px;width:106px;height:106px;border:0;border-radius:50%;color:#fff;background:linear-gradient(135deg,#b891ef,#ed82bd 55%,#faba7c);box-shadow:0 10px 36px #bf70b17f,inset 0 2px 6px #ffffff77;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .18s,filter .18s;overflow:visible;pointer-events:auto}#burstButton[aria-disabled="true"]{filter:saturate(.6);opacity:.72}#burstButton.ready{animation:readyPulse 1.15s ease-in-out infinite;box-shadow:0 0 30px #ffa3d6,0 5px 32px #b85cc98c}#burstButton:active{transform:scale(.9)}.burstHalo{position:absolute;inset:-8px;border:3px dashed #ffffffbb;border-radius:50%;animation:slowRotate 8s linear infinite;pointer-events:none}.burstIcon{font-size:29px;line-height:1}.burstCaption{font-size:10px;font-weight:1000;letter-spacing:.1em}.burstCharge{font-size:11px;font-weight:1000}.ready .burstCharge{font-size:13px}.modeChip,.mission,.levelChip{pointer-events:none}
#virtualStick{position:absolute;z-index:7;left:0;top:0;pointer-events:none;width:130px;height:130px;transform:translate(-50%,-50%)}.stickBase{position:absolute;inset:0;border:2px solid #fff;border-radius:50%;background:#ffffff55;box-shadow:0 0 0 5px #91f4d642,inset 0 0 18px #fff}.stickKnob{position:absolute;left:43px;top:43px;width:44px;height:44px;border-radius:50%;background:linear-gradient(120deg,#7de2d4,#8f9dec);box-shadow:0 3px 10px #5998b566,0 0 0 3px #fff9}
#toastLayer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:10}.toast{position:absolute;white-space:nowrap;transform:translate(-50%,-50%);font-weight:1000;font-size:clamp(15px,3vw,23px);color:#e869aa;text-shadow:0 2px 0 #fff,1px -1px 0 #fff,-1px 0 0 #fff,0 4px 12px #85528b66;animation:toastRise .83s ease-out forwards;will-change:transform,opacity}.toast.giant{font-size:clamp(26px,6vw,46px);letter-spacing:.04em}.toast.good{color:#a85fd6}.toast.gold{color:#e4a84a}.toast.bad{color:#d95b8c}
#gameOverlay{position:absolute;inset:0;z-index:11;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#bbf9db54,#efcafa85);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);overflow:auto;padding:max(10px,env(safe-area-inset-top)) 16px max(10px,env(safe-area-inset-bottom))}#gameOverlay.hidden{display:none}.glassPanel{width:min(500px,100%);background:linear-gradient(147deg,#fffffff6,#fffdfdf3);border:2px solid white;box-shadow:0 20px 80px #5289a64a,0 2px 0 #fff inset;border-radius:32px;padding:26px 30px;position:relative;text-align:center;overflow:hidden}.glassPanel::before{content:"";position:absolute;width:300px;height:260px;right:-180px;top:-180px;border-radius:50%;background:radial-gradient(circle,#fbdbecaa,transparent 70%);pointer-events:none}.menuPanel{max-height:min(94dvh,860px);overflow-y:auto}.logoMark{display:flex;justify-content:center;gap:8px;align-items:center;letter-spacing:.19em;font-size:9px;color:#7f9faf;font-weight:1000}.logoGem{font-size:29px;color:#ee91bb}h1{font-size:clamp(35px,7vw,58px);letter-spacing:-.07em;line-height:1.0;margin:8px 0 2px;color:#d76ba7;font-weight:1000;text-shadow:0 2px 0 white}h1 span{color:#ae72c9;text-shadow:0 3px 0 #ffffff,0 5px 15px #dfabdf88}h1 small{display:block;font-size:clamp(23px,4.8vw,39px);letter-spacing:.08em;margin-top:6px;color:#8c8be0;text-shadow:none}.menuSub{font-size:12px;line-height:1.6;letter-spacing:.12em;color:#7fa1ac;font-weight:1000;margin:12px auto}.stageArt{height:150px;position:relative;overflow:hidden;margin:6px auto 4px;max-width:330px;background:radial-gradient(ellipse at 50% 65%,#b9f8e2 5%,#e6f6fbb8 45%,transparent 75%);border-radius:60%}.miniHero{position:absolute;left:calc(50% - 46px);top:23px;width:94px;height:104px;border-radius:42px 42px 36px 36px;border:8px solid #fff;background:linear-gradient(140deg,#b1fff1,#74c5e9 65%,#b6a2f7);color:#fff;font-size:58px;line-height:90px;box-shadow:0 12px 0 #75c4b63d,0 6px 25px #85c8dc9c;animation:float 2s ease-in-out infinite}.miniHero::after{content:"•  •";font-size:27px;position:absolute;color:#5b7799;letter-spacing:5px;left:21px;top:-6px}.orb{position:absolute;display:grid;place-items:center;width:51px;height:51px;border:5px solid white;border-radius:50%;font-size:24px;box-shadow:0 8px 16px #87aeb943;animation:float 2.4s ease-in-out infinite}.orb1{left:3%;top:5%;background:#ffe69f;color:#ecaa46}.orb2{right:3%;top:5%;background:#ffa6d1;color:#fa65a9;animation-delay:-.5s}.orb3{left:15%;bottom:8%;background:#c3f1b0;color:#73c894;animation-delay:-1.3s}.orb4{right:13%;bottom:3%;background:#b6cefc;color:#5bb4d7;animation-delay:-.7s}.comet{height:3px;background:#ffafce;width:64px;border-radius:10px;transform:rotate(-32deg);position:absolute;top:25px;left:55px}.c2{left:auto;right:58px;top:108px;background:#91d4fb;transform:rotate(30deg)}.zoneSelect{margin:6px auto 14px;background:#f6f7fff0;border:1px solid #fff;border-radius:17px;padding:9px 13px}.zoneEyebrow{display:block;font-size:10px;letter-spacing:.14em;color:#91adc0;font-weight:1000}.zoneSelect strong{display:block;color:#a278b1;font-size:17px;margin-top:2px}.zoneCarousel{display:flex;align-items:center;justify-content:center;gap:17px;font-size:10px;letter-spacing:.09em;color:#a1adc0;font-weight:1000;margin:5px 0 0}.zoneCarousel button{border:none;border-radius:8px;background:#e1eeff;color:#88a8cc;padding:0 14px;font-size:24px;line-height:25px}.zoneCarousel button:disabled{opacity:.35}.menuButtons{display:grid;grid-template-columns:1fr auto;gap:9px}.btnPrimary,.btnSecondary,.btnSmall{border:0;border-radius:16px;padding:15px 20px;font-size:14px;font-weight:1000;box-shadow:0 6px 0 #9fc4c33d;transition:transform .15s}.btnPrimary{color:#fff;background:linear-gradient(115deg,#58c7b6,#60bed4 49%,#b58de5);letter-spacing:.03em;min-height:55px}.btnSecondary{background:#f2e9ff;color:#a17ac4;font-size:12px}.btnPrimary:active,.btnSecondary:active,.btnSmall:active{transform:translateY(3px)}.menuStats{font-size:11px;letter-spacing:.1em;color:#93a8b3;margin:16px 0 0}.panelHeading{margin:0 0 10px;font-size:29px;color:#b971c2;letter-spacing:.02em}.panelSub{color:#7f9faa;font-size:14px;line-height:1.6}.cardGrid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px -8px 6px}.upgradeCard{border:2px solid #fff;background:linear-gradient(156deg,#fdfaff,#e6fcfb);border-radius:17px;padding:13px 8px 15px;min-height:177px;display:flex;align-items:center;flex-direction:column;justify-content:space-between;color:#507a8a;box-shadow:0 8px 15px #9bbeb32c;transition:transform .15s}.upgradeCard:hover,.upgradeCard:focus-visible{transform:translateY(-5px);border-color:#deb5fa}.upgradeCard .symbol{font-size:42px;line-height:1.2;filter:drop-shadow(0 5px 4px #9dc6e866)}.upgradeCard strong{font-size:12px;letter-spacing:.02em}.upgradeCard small{font-size:10px;line-height:1.4;color:#82a1ae}.upgradeCard span.key{color:#b386c9;font-weight:1000;font-size:10px}.resultStars{font-size:41px;letter-spacing:.07em;color:#f3bf5b;margin:8px 0}.resultScore{font-size:42px;font-weight:1000;color:#c178ce;margin:9px auto}.resultGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.resultGrid>div{background:#f0fbfa;border-radius:12px;padding:12px 6px}.resultGrid small{display:block;color:#9aabb4;font-size:9px;font-weight:900}.resultGrid strong{display:block;color:#76a6b6;font-size:22px}.panelFooter{margin-top:16px;display:flex;gap:8px}.panelFooter>button{flex:1}.hintRows{color:#709aa4;text-align:left;font-size:13px;line-height:1.9}.hintRows b{color:#9b73bf}
#screenTint{position:absolute;inset:0;z-index:4;pointer-events:none;background:#fff;opacity:0}.warningFlash{animation:warningFlash .35s ease-in-out}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes toastRise{0%{opacity:0;transform:translate(-50%,0) scale(.6)}20%{opacity:1;transform:translate(-50%,-15px) scale(1.16)}60%{opacity:1}100%{opacity:0;transform:translate(-50%,-88px) scale(.94)}}@keyframes slowRotate{to{transform:rotate(360deg)}}@keyframes readyPulse{50%{transform:scale(1.075)}}@keyframes warningFlash{0%,100%{opacity:0}50%{opacity:.42}}
#app[data-scene="menu"] #topHud,#app[data-scene="menu"] #bottomHud,#app[data-scene="menu"] #burstButton,#app[data-scene="result"] #burstButton,#app[data-scene="paused"] #burstButton,#app[data-scene="upgrade"] #burstButton{display:none}
@media(max-width:750px){.hudPrimary{flex-basis:51%;padding:9px 11px}.hudStats{padding:9px 7px}.hudTitle strong{font-size:10px}.stageBadge{font-size:8px;padding:4px}.statsTop small{font-size:9px}.statsTop strong{font-size:16px}.waveBanner{font-size:9px}.hudActions{position:absolute;top:101px;right:5px}.hudActions button{min-width:36px;height:36px;font-size:18px;padding:3px}.healthLine b{font-size:9px;min-width:37px}.bar{height:9px}.hudTitle{margin-bottom:6px}.hudGlass{border-radius:15px}.healthLine .heart{font-size:18px}#bottomHud{left:8px;right:8px;bottom:max(10px,env(safe-area-inset-bottom));gap:5px}.modeChip,.mission,.levelChip{padding:8px 9px;border-radius:10px;font-size:9px}.levelChip{display:none}.mission{max-width:160px;min-width:108px}#burstButton{width:85px;height:85px;right:16px;bottom:100px}.burstIcon{font-size:24px}.burstCaption{font-size:8px}.burstCharge{font-size:9px}.glassPanel{padding:20px 18px;border-radius:24px}.stageArt{height:133px}.cardGrid{margin-left:0;margin-right:0}.upgradeCard{min-height:155px;padding:10px 5px}.upgradeCard .symbol{font-size:34px}.upgradeCard strong{font-size:11px}.upgradeCard small{font-size:9px}}
@media(max-height:625px){.menuPanel{padding:11px 17px}h1{font-size:32px}h1 small{font-size:21px}.stageArt{height:83px;margin:0 auto}.c2{top:55px}.miniHero{width:64px;height:70px;left:calc(50% - 32px);top:6px;line-height:60px;font-size:38px}.miniHero::after{font-size:16px;left:10px;top:-4px}.orb{width:35px;height:35px;font-size:17px;border-width:3px}.menuSub{margin:6px auto;font-size:9px}.zoneSelect{margin:3px auto 8px;padding:6px}.menuButtons .btnPrimary{min-height:41px;padding:8px}.menuStats{margin:7px 0 0}#topHud{top:7px}.hudGlass{padding:7px 10px}.hudTitle{margin-bottom:5px}.xpLine{margin-top:5px}#bottomHud{bottom:6px}#burstButton{bottom:65px}}
@media(max-width:350px){.statsTop{gap:4px}.hudTitle strong{font-size:8px}.hudTitle .stageBadge{font-size:7px}.statsTop strong{font-size:14px}.mission{display:none}.modeChip{font-size:8px}.menuButtons{grid-template-columns:1fr}.btnSecondary{padding:8px}.menuPanel{max-height:98dvh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}