@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@600;700;800;900&display=swap";:root{font-family:Nunito,system-ui,sans-serif;color:#124653;background:#91e8e9;font-synthesis:none;user-select:none;-webkit-user-select:none;touch-action:none}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;filter:saturate(.4);opacity:.55}button:focus-visible{outline:4px solid #ffe78f;outline-offset:2px}#app{position:relative;isolation:isolate}#viewport,#labels{position:absolute;inset:0}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}#labels{pointer-events:none;overflow:hidden}.hud{position:absolute;inset:0;pointer-events:none}.hud button{pointer-events:auto}.topbar{position:absolute;inset:14px 16px auto;display:flex;align-items:flex-start;gap:10px;z-index:4}.brand,.wallet,.round-stats,.top-actions{filter:drop-shadow(0 4px 0 rgba(16,73,82,.22))}.brand{display:flex;align-items:center;gap:6px;min-width:132px;color:#fff;font-family:"Baloo 2",sans-serif;font-size:20px;font-weight:800;line-height:.8;letter-spacing:-.055em;text-shadow:2px 2px 0 #174d5b,-2px 2px 0 #174d5b,2px -2px 0 #174d5b,-2px -2px 0 #174d5b,0 4px 0 #174d5b}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#ffe278;color:#ff6880;border:4px solid #174d5b;box-shadow:inset 0 0 0 2px #fff8c8;font-size:30px;line-height:1}.wallet{display:flex;align-items:center;gap:5px;height:40px;padding:0 13px;background:#124653;border:3px solid #124653;border-radius:40px;color:#fff;font-size:17px;font-weight:900;white-space:nowrap}.coin-icon{color:#ffe58e;text-shadow:0 0 0 #f8af2e;font-size:24px}.star-icon{color:#d5b5ff;font-size:24px}.wallet-divider{height:20px;width:2px;background:#549aa0;margin:0 4px}.round-stats{display:flex;align-items:stretch;gap:6px;margin:auto}.round-stats>div{background:#124653;color:#fff;border:3px solid #124653;border-radius:15px;padding:3px 12px 6px;min-width:92px;min-height:48px;text-align:center}.round-stats>div:first-child{min-width:188px}.round-stats small{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;line-height:1.1}.round-stats b{font-family:"Baloo 2",sans-serif;font-size:22px;line-height:1.1}.progress-track{height:6px;border-radius:20px;background:#477e86;margin-top:1px;overflow:hidden}.progress-track i{display:block;height:100%;width:100%;border-radius:20px;background:linear-gradient(90deg,#46dabb,#ffe477)}.top-actions{display:flex;gap:6px}.top-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:54px;height:48px;padding:2px 8px;border:3px solid #154655;border-radius:12px;background:#55dbe4;color:#124653;box-shadow:inset 0 3px #adfaff,0 3px #116273;font-family:"Baloo 2",sans-serif;font-size:25px;font-weight:800;line-height:.92}.top-actions button span{font-family:Nunito,sans-serif;font-size:9px;font-weight:900}.top-actions button.active{background:#ffe78f}.top-actions #reroll-btn:not(:disabled){background:#ffe78f}.top-actions #pause-btn{background:#fff4d7}.target-tray{position:absolute;top:76px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:3}.target-tray>small{padding:2px 9px;border-radius:20px;background:#124653;color:#fffaf0;font-size:9px;font-weight:900;letter-spacing:.13em}.target-tray>div{display:flex;gap:5px}.target-button{display:flex;align-items:center;gap:7px;min-width:123px;padding:4px 8px;border:2px solid #1c5962;border-radius:12px;background:#fffbe1e0;box-shadow:0 3px #114c534d;color:#124653;text-align:left}.target-button b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:8px;background:#ffb58e;font-family:"Baloo 2",sans-serif}.target-button span{font-size:9px;font-weight:900;line-height:1.1;white-space:nowrap}.target-button small{display:block;font-size:8px;opacity:.75}.target-button.active{background:#fff09f;border-color:#124653;transform:translateY(-2px);box-shadow:0 5px #124653}.target-button.done{background:#a9efd2}.tower-label{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);white-space:nowrap;color:#124653;font-family:"Baloo 2",sans-serif;filter:drop-shadow(0 3px 0 rgba(15,77,83,.24))}.tower-label small{padding:0 8px;border-radius:12px 12px 0 0;background:#124653;color:#fff;font-size:10px;font-weight:800;line-height:1.35}.tower-label strong{padding:0 11px;border:2px solid #124653;border-radius:8px;background:#fff7d7;font-size:17px;font-weight:800;line-height:1.4}.tower-label span{padding:0 8px;border:2px solid #124653;border-top:0;border-radius:0 0 9px 9px;background:#c6a4f2;color:#fff;font-family:Nunito,sans-serif;font-size:9px;font-weight:900;text-shadow:1px 1px #664a8a}.tower-label.selected strong{background:#ffe787}.tower-label.cleared{opacity:.45}.pop-text{position:absolute;transform:translate(-50%,-50%);font-family:"Baloo 2",sans-serif;font-size:25px;font-weight:800;color:#fff;text-shadow:2px 2px 0 #124653,-2px 2px 0 #124653,2px -2px 0 #124653,-2px -2px 0 #124653;animation:pop .85s ease-out forwards}.pop-text.star{color:#eac9ff}.pop-text.collapse{color:#ffe881;font-size:31px}.pop-text.hit{font-size:20px}@keyframes pop{0%{opacity:0;transform:translate(-50%,-20%) scale(.6)}20%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}to{opacity:0;transform:translate(-50%,-170%) scale(.8)}}.crosshair{position:absolute;left:50%;top:52%;width:27px;height:27px;transform:translate(-50%,-50%);transition:transform .1s;filter:drop-shadow(1px 1px #124653)}.crosshair.hidden{display:none}.crosshair.hit{transform:translate(-50%,-50%) scale(1.5)}.crosshair i{position:absolute;display:block;width:3px;height:7px;background:#fffdf2;border-radius:2px}.crosshair i:nth-child(1){top:0;left:12px}.crosshair i:nth-child(2){bottom:0;left:12px}.crosshair i:nth-child(3){top:10px;left:1px;transform:rotate(90deg)}.crosshair i:nth-child(4){top:10px;right:1px;transform:rotate(90deg)}.message{position:absolute;top:28%;left:50%;transform:translate(-50%,-15px);padding:6px 17px;border:3px solid #124653;border-radius:14px;background:#fff0a0;color:#124653;font-family:"Baloo 2",sans-serif;font-size:19px;font-weight:800;white-space:nowrap;opacity:0;transition:opacity .15s,transform .15s;box-shadow:0 5px #1650514d}.message.visible{opacity:1;transform:translate(-50%)}.bottombar{position:absolute;bottom:17px;left:22px;right:22px;display:flex;align-items:end;justify-content:space-between;gap:12px}.hint{align-self:end;max-width:190px;padding:7px 11px;border:2px solid #16505b;border-radius:12px;background:#fffae2d9;color:#1c5961;font-size:11px;font-weight:800;line-height:1.15}.hint b{display:block;color:#ef6b7d;font-size:9px;letter-spacing:.08em}.weapon-tray{display:flex;gap:7px;margin:auto}.weapon-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:93px;height:77px;border:3px solid #124653;border-radius:14px;background:#fbf4d7;color:#124653;box-shadow:0 5px #104a4f6b}.weapon-card.active{background:#fff0a5;transform:translateY(-5px);box-shadow:0 10px #104a4f73}.weapon-card.locked{background:#bad7d0;color:#547174}.weapon-number{position:absolute;left:4px;top:4px;display:grid;place-items:center;width:17px;height:17px;border-radius:5px;background:#124653;color:#fff;font-size:10px;font-weight:900}.weapon-icon{font-family:"Baloo 2",sans-serif;color:#2ac9bd;font-size:34px;line-height:1;text-shadow:2px 2px #124653}.weapon-card:nth-child(2) .weapon-icon{color:#ffae86}.weapon-card:nth-child(3) .weapon-icon{color:#ff7583}.weapon-name{font-size:9px;font-weight:900;line-height:1}.weapon-name small{display:block;font-size:8px;opacity:.7}.fire-button{display:flex;align-items:center;justify-content:center;gap:5px;width:114px;height:66px;border:4px solid #124653;border-radius:50px;background:#ff6f80;color:#fffdf0;box-shadow:inset 0 4px #ffacb4,0 7px #9c3d53;font-family:"Baloo 2",sans-serif;font-size:23px;font-weight:800;text-shadow:2px 2px #a34259}.fire-button:active{transform:translateY(4px);box-shadow:inset 0 2px #ffacb4,0 3px #9c3d53}.fire-button span{font-size:26px}.joystick{display:none;position:absolute;left:22px;bottom:22px;width:95px;height:95px;border:4px solid rgba(18,70,83,.8);border-radius:50%;background:#0f505247;pointer-events:auto;touch-action:none}.joystick:before{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:#ffffff80;font-size:24px}.joystick>div{position:absolute;left:30px;top:30px;width:29px;height:29px;border:3px solid #124653;border-radius:50%;background:#fff0ac;box-shadow:0 3px #124653}.modal-backdrop{position:absolute;inset:0;z-index:10;display:none;align-items:center;justify-content:center;padding:16px;background:#0a3c487a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-backdrop.open{display:flex}.panel{width:min(490px,95vw);max-height:min(90vh,650px);overflow:auto;padding:24px 28px 20px;border:5px solid #124653;border-radius:25px;background:#fff9df;box-shadow:0 11px #124653,0 20px 35px #002f374d;text-align:center}.panel .eyebrow{display:inline-block;padding:3px 13px;border-radius:40px;background:#54d4c7;color:#124653;font-size:11px;font-weight:900;letter-spacing:.14em}.panel h1,.panel h2{margin:7px 0;font-family:"Baloo 2",sans-serif;font-weight:800;letter-spacing:-.055em;line-height:.9;color:#124653}.panel h1{font-size:clamp(56px,8vw,89px)}.panel h1 em{font-style:normal;color:#ff687c;text-shadow:3px 3px #124653}.panel h2{font-size:50px}.panel p{max-width:360px;margin:12px auto 18px;color:#336673;font-size:15px;font-weight:800;line-height:1.35}.panel button{border:3px solid #124653;border-radius:12px;font-weight:900}.panel .primary{display:flex;justify-content:center;align-items:center;gap:13px;width:100%;padding:9px 15px;background:#ff7182;box-shadow:0 4px #124653;color:#fff;font-family:"Baloo 2",sans-serif;font-size:23px;line-height:1.1;text-shadow:1px 2px #a23d51}.panel .primary b{font-size:24px}.panel .secondary{padding:9px 14px;background:#5ed9cd;box-shadow:0 3px #124653;color:#124653}.panel .text-button{margin-top:15px;padding:4px;background:transparent;border:0;color:#60808a;font-size:11px;text-decoration:underline}.panel-actions{display:grid;gap:10px;max-width:300px;margin:auto}.panel-foot{display:block;margin-top:18px;color:#61878a;font-size:10px;font-weight:900}.start-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:14px 0}.start-chips span{padding:3px 7px;border:2px solid #124653;border-radius:9px;background:#ffe79b;font-size:10px;font-weight:900}.shop-panel{width:min(720px,96vw)}.shop-panel h2{font-size:42px}.shop-panel p{margin:7px auto 14px}.gold-text{color:#d6a22a}.star-text{color:#aa7bdb}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.shop-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:174px;padding:9px 7px;border:3px solid #124653;border-radius:16px;background:#fdf0c4}.shop-item:nth-child(2){background:#d3f5e5}.shop-item:nth-child(3){background:#ffe0d5}.shop-icon{font-size:38px;line-height:1;color:#ff657b;text-shadow:2px 2px #124653}.shop-item:nth-child(2) .shop-icon{color:#34c9ba}.shop-item>b{font-family:"Baloo 2",sans-serif;font-size:17px;line-height:1}.shop-item small{font-size:10px;font-weight:800}.shop-item>span:last-of-type{font-size:10px;font-weight:900}.shop-item button{width:100%;margin-top:auto;padding:5px 2px;border-radius:9px;background:#fff9df;color:#124653;font-size:11px}.shop-close{margin-top:14px}.result-stats{display:flex;justify-content:center;gap:8px;margin:17px 0}.result-stats div{min-width:92px;padding:7px;border:2px solid #124653;border-radius:12px;background:#fff0a4}.result-stats small{display:block;font-size:10px;font-weight:900}.result-stats b{font-family:"Baloo 2",sans-serif;font-size:23px}.rotate-note{display:none}@media(hover:none),(pointer:coarse){.joystick{display:block}.hint{display:none}.bottombar{left:120px;right:12px;bottom:10px}.fire-button{width:92px;height:65px}.weapon-tray{margin:0 auto}}@media(max-width:900px){.topbar{inset:6px 8px auto;gap:5px}.brand{min-width:81px;font-size:14px}.brand-mark{width:31px;height:31px;font-size:20px;border-width:3px}.wallet{height:33px;padding:0 6px;font-size:12px;gap:3px}.coin-icon,.star-icon{font-size:17px}.round-stats{gap:3px}.round-stats>div{min-width:62px;min-height:36px;padding:1px 5px 3px;border-width:2px;border-radius:9px}.round-stats>div:first-child{min-width:108px}.round-stats small{font-size:7px}.round-stats b{font-size:14px}.progress-track{height:4px}.top-actions{gap:3px}.top-actions button{min-width:33px;height:36px;padding:1px 3px;border-width:2px;border-radius:8px;font-size:17px}.top-actions button span{font-size:6px}.target-tray{top:48px}.target-tray>small{font-size:7px}.target-button{min-width:87px;padding:2px 4px;gap:4px;border-radius:8px}.target-button b{min-width:17px;height:19px;font-size:11px}.target-button span{font-size:7px}.target-button small{font-size:6px}.tower-label small{font-size:7px}.tower-label strong{font-size:12px;padding:0 5px}.tower-label span{font-size:7px}.weapon-card{width:67px;height:56px;border-width:2px;border-radius:9px}.weapon-icon{font-size:24px}.weapon-name{font-size:7px}.weapon-name small{font-size:6px}.weapon-number{width:13px;height:13px;font-size:8px}.fire-button{font-size:16px;width:75px;height:53px;border-width:3px}.fire-button span{font-size:17px}.joystick{width:75px;height:75px;left:12px;bottom:10px}.joystick>div{left:23px;top:23px;width:23px;height:23px}.bottombar{left:90px}.hint{display:none}.message{font-size:13px;top:25%}.panel{padding:15px 17px 14px}.panel h2{font-size:37px}.panel p{font-size:12px;margin:7px auto 12px}.shop-item{min-height:128px;padding:4px 3px}.shop-icon{font-size:26px}.shop-item>b{font-size:12px}.shop-item small,.shop-item button{font-size:8px}.panel .primary{font-size:17px;padding:5px}.panel .secondary{padding:5px;font-size:11px}}@media(max-width:620px){.brand{display:none}.round-stats{margin:auto}.top-actions button span{display:none}.top-actions button{min-width:29px}.target-tray{top:47px}.target-button{min-width:70px}.target-button span{font-size:6px}.target-button small{font-size:5px}.wallet-divider{margin:0 1px}.round-stats>div:first-child{min-width:84px}.round-stats>div{min-width:49px}.round-stats b{font-size:12px}.weapon-card{width:58px}}@media(orientation:portrait)and (max-width:750px){.rotate-note{position:absolute;inset:auto 15px 13px;z-index:8;display:block;padding:7px;border:2px solid #124653;border-radius:10px;background:#fff0b3;color:#124653;text-align:center;font-size:12px;font-weight:900}.topbar{flex-wrap:wrap}.round-stats{order:3;width:100%;justify-content:center}.target-tray{top:91px}.bottombar{left:90px;bottom:48px}.joystick{bottom:48px}}[hidden]{display:none!important}.cosmetic-badge{align-self:center;padding:5px 9px;border:2px solid #124653;border-radius:20px;background:#c4f6e6;color:#124653;font-size:10px;font-weight:900;white-space:nowrap;box-shadow:0 3px #10495240}.pickup-hint{position:absolute;left:22px;bottom:108px;z-index:3;display:flex;flex-direction:column;gap:1px;max-width:190px;padding:5px 9px;border:2px solid #124653;border-radius:11px;background:#fff9dde0;color:#124653;box-shadow:0 3px #10495238;line-height:1.08}.pickup-hint b{font-family:"Baloo 2",sans-serif;font-size:13px;font-weight:800}.pickup-hint span{font-size:9px;font-weight:900}.pickup-hint.has-pickups{background:#ffe8a0}.pickup-hint.has-pickups b{color:#d95d68}#app[data-mode=menu] .pickup-hint,#app[data-mode=shop] .pickup-hint,#app[data-mode=pause] .pickup-hint,#app[data-mode=reroll-confirm] .pickup-hint{display:none}.shop-panel{touch-action:pan-y}.shop-collection{margin-top:13px;padding-top:10px;border-top:2px dashed #9abdb1}.shop-collection h3{margin:0 0 7px;font-family:"Baloo 2",sans-serif;font-size:18px;line-height:1;color:#124653}.shop-collection .cosmetic-item{width:min(100%,255px);min-height:142px;margin:auto;background:#d9f5e7}.shop-collection .cosmetic-item.cosmetic-locked{background:#e5e7d9}.shop-collection .shop-icon{color:#52cbbb}.shop-collection .cosmetic-item small{line-height:1.2}.shop-collection .cosmetic-item button{min-height:36px}.result-reward{max-width:390px!important;margin:8px auto 17px!important;padding:8px 12px;border:2px solid #124653;border-radius:12px;background:#d5f4e4;color:#124653!important;font-size:12px!important}.avatar-preview{position:relative;width:76px;height:74px;flex:none;overflow:hidden;border:2px solid #124653;border-radius:12px;background:radial-gradient(circle at 50% 18%,#f9ffed 0 28%,#bdebdc 75%)}.avatar-head{position:absolute;z-index:2;left:21px;top:14px;width:34px;height:35px;border:3px solid #124653;border-radius:7px;background:#ffcb9d;box-shadow:inset 0 -4px #f4ad83}.avatar-hair{position:absolute;z-index:3;left:20px;top:9px;width:36px;height:13px;border:3px solid #124653;border-radius:7px 7px 3px 3px;background:#74536a}.avatar-eyes{position:absolute;left:7px;top:14px;width:4px;height:4px;border-radius:50%;background:#124653;box-shadow:12px 0 #124653}.avatar-visor{display:none;position:absolute;z-index:4;left:-6px;top:7px;width:40px;height:20px;border:3px solid #124653;border-radius:11px 11px 8px 8px;background:linear-gradient(145deg,#aaf7e6,#43c6c3 60%,#e5fff2);box-shadow:inset 0 3px #ffffffa6,0 2px #2d9f9e}.wearing-visor .avatar-visor{display:block}.avatar-body{position:absolute;z-index:1;left:10px;top:44px;width:56px;height:43px;border:3px solid #124653;border-radius:7px 7px 0 0;background:#ff7688;box-shadow:inset 0 6px #ff9fa6}.cosmetic-locked .avatar-preview{filter:saturate(.45)}.result-pickups{max-width:390px!important;margin:8px auto!important;padding:7px 10px;border:2px solid #b67858;border-radius:10px;background:#fff0b7;color:#704d42!important;font-size:12px!important}.confirm-panel{width:min(410px,95vw)}.confirm-panel h2{font-size:44px}.confirm-panel .panel-actions{max-width:320px}@media(max-width:900px){.cosmetic-badge{padding:3px 5px;font-size:8px}.shop-collection .cosmetic-item{min-height:112px}.shop-collection h3{font-size:14px}}@media(max-width:900px){.pickup-hint{left:8px;bottom:88px;max-width:150px;padding:3px 6px}.pickup-hint b{font-size:10px}.pickup-hint span{font-size:7px}.avatar-preview{width:65px;height:59px}.avatar-head{left:16px;top:8px}.avatar-hair{left:15px;top:3px}.avatar-body{left:7px;top:38px;width:51px}}@media(max-width:620px){.cosmetic-badge{position:absolute;top:38px;left:8px;font-size:7px;padding:2px 4px}}@media(orientation:portrait)and (max-width:750px){.pickup-hint{bottom:126px}}
