@import "https://fonts.googleapis.com/css2?family=Carter+One&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a252f;margin:0;padding:0;overflow:hidden}*{box-sizing:border-box}button:active{transform:scale(.98)}button:disabled{opacity:.5}.hud-panel{text-align:center;pointer-events:none;background:linear-gradient(#2c3e50f2,#1a252ff2);border:3px solid #1a252f;border-radius:14px;padding:10px 22px;position:absolute;box-shadow:0 4px #0006,inset 0 2px #ffffff14}.hud-top-left{top:calc(15px + env(safe-area-inset-top,0px));left:calc(15px + env(safe-area-inset-left,0px))}.hud-top-right{top:calc(15px + env(safe-area-inset-top,0px));right:calc(15px + env(safe-area-inset-right,0px))}.hud-gold{color:#f1c40f;text-shadow:0 2px #0009;font-size:34px;line-height:1.1}.hud-lives{color:#e74c3c;text-shadow:0 2px #0009;font-size:34px;line-height:1.1}.hud-lives.low-lives{animation:.8s infinite pulse-red}@keyframes pulse-red{0%,to{transform:scale(1)}50%{color:#ff6b5b;transform:scale(1.12)}}.hud-sub{color:#bdc3c7;margin-top:2px;font-size:15px}.wave-banner{text-align:center;pointer-events:none;animation:2.2s ease-out forwards banner-in;position:absolute;top:22%;left:50%;transform:translate(-50%)}.wave-banner-title{color:#f1c40f;-webkit-text-stroke:3px #7d5a00;text-shadow:0 6px #00000073;letter-spacing:4px;font-size:72px}.wave-banner-label{color:#e74c3c;-webkit-text-stroke:1.5px #641e16;text-shadow:0 4px #00000073;margin-top:6px;font-size:34px;animation:.4s ease-in-out 2 shake}@keyframes banner-in{0%{opacity:0;transform:translate(-50%)scale(1.8)}12%{opacity:1;transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)scale(.95)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.game-toast{color:#f1c40f;text-shadow:0 2px #00000080;pointer-events:none;white-space:pre;background:#1a252feb;border:2px solid #f1c40f;border-radius:12px;padding:10px 26px;font-size:22px;animation:2.5s ease-out forwards toast-in;position:absolute;top:34%;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #00000080}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,14px)}10%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.ctrl-btn{color:#fff;cursor:pointer;border:3px solid #00000059;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex;position:relative;box-shadow:0 4px #0006}.speed-badge{background:#1a252f;border-radius:10px;padding:1px 6px;font-family:Carter One,cursive;font-size:12px;position:absolute;bottom:-4px;right:-4px}.next-wave-btn{color:#fff;text-shadow:0 2px 2px #00000080;border:3px solid #00000059;border-radius:14px;padding:14px 26px;font-family:Carter One,cursive;font-size:22px;box-shadow:0 4px #0006}.wave-preview{background:#1a252fd9;border:2px solid #0006;border-radius:10px;align-items:center;gap:6px;padding:4px 10px;display:flex}.wave-preview-label{color:#bdc3c7;font-family:Carter One,cursive;font-size:12px}.wave-preview-icon{filter:drop-shadow(0 2px 1px #00000080);font-size:20px}.palette-slot{position:relative}.palette-btn{cursor:pointer;color:#fff;border:4px solid #2c3e50;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;width:76px;height:76px;transition:transform 80ms ease-out,border-color 80ms ease-out;display:flex;position:relative;box-shadow:0 5px #00000073,inset 0 2px #fff3}.palette-btn.selected{border-color:#f1c40f;transform:translateY(-8px)scale(1.06);box-shadow:0 10px #0006,0 0 18px #f1c40fb3}.palette-btn.poor{filter:grayscale(.8)brightness(.6);cursor:not-allowed}.palette-icon{filter:drop-shadow(0 2px 2px #0009)}.palette-hotkey{color:#ffffffd9;text-shadow:0 1px 1px #000000b3;font-family:Carter One,cursive;font-size:13px;position:absolute;top:3px;left:6px}.palette-price{color:#f1c40f;white-space:nowrap;background:#1a252f;border:2px solid #f1c40f;border-radius:10px;padding:1px 10px;font-family:Carter One,cursive;font-size:14px;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.palette-price.poor{color:#e74c3c;border-color:#e74c3c}.palette-tooltip{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:50;background:#1a252ff2;border:2px solid #f1c40f;border-radius:10px;padding:8px 14px;font-family:Carter One,cursive;font-size:13px;transition:opacity .15s ease-out;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.palette-slot:hover .palette-tooltip{opacity:1}.tooltip-name{color:#f1c40f;margin-bottom:4px;font-size:16px}.tooltip-row{color:#ecf0f1}.tooltip-row.warn{color:#e74c3c}.tower-menu{color:#fff;text-align:center;white-space:nowrap;background:#1a252ff2;border:3px solid #f1c40f;border-radius:14px;padding:10px 14px;font-family:Carter One,cursive;box-shadow:0 8px 24px #0009}.tower-menu-title{color:#f1c40f;font-size:17px}.tower-menu-level{color:#2ecc71;font-size:14px}.tower-menu-stats{color:#bdc3c7;margin:4px 0 8px;font-size:13px}.stat-next{color:#2ecc71}.tower-menu-buttons{gap:8px;display:flex}.btn-upgrade,.btn-sell{color:#fff;cursor:pointer;text-shadow:0 1px 1px #00000080;border:none;border-radius:10px;flex-direction:column;align-items:center;padding:6px 14px;font-family:Carter One,cursive;font-size:14px;display:flex}.btn-upgrade{background:#27ae60;box-shadow:0 3px #1e8449}.btn-upgrade.disabled{cursor:not-allowed;background:#7f8c8d;box-shadow:0 3px #566573}.btn-sell{background:#e67e22;box-shadow:0 3px #a04000}.btn-price{color:#f9e79f;font-size:12px}.coin-popup{color:#f1c40f;-webkit-text-stroke:1px #7d5a00;text-shadow:0 2px 2px #0009;white-space:nowrap;font-family:Carter One,cursive;font-size:18px;animation:.9s ease-out forwards coin-float}@keyframes coin-float{0%{opacity:0;transform:translateY(6px)scale(.6)}15%{opacity:1;transform:translateY(0)scale(1.1)}to{opacity:0;transform:translateY(-30px)scale(1)}}.skill-bar{bottom:calc(20px + env(safe-area-inset-bottom,0px));right:calc(20px + env(safe-area-inset-right,0px));pointer-events:auto;gap:12px;display:flex;position:absolute}.skill-slot{position:relative}.skill-btn{color:#fff;cursor:pointer;border:3px solid #1a252f;border-radius:12px;justify-content:center;align-items:center;width:64px;height:64px;transition:transform .1s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px #0006}.skill-btn.ready:hover{transform:translateY(-3px)}.skill-btn.cooling{cursor:default;filter:saturate(.4)}.skill-cd-overlay{pointer-events:none;background:#000000a6;position:absolute;bottom:0;left:0;right:0}.skill-cd-text{color:#fff;text-shadow:0 2px 2px #000c;pointer-events:none;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;position:absolute;inset:0}.skill-hotkey{color:#ffffffd9;text-shadow:0 1px 1px #000c;font-size:11px;font-weight:700;position:absolute;top:2px;left:5px}.skill-tooltip{color:#ecf0f1;z-index:60;background:#141e28f2;border:2px solid #34495e;border-radius:8px;min-width:170px;padding:8px 10px;font-size:12px;display:none;position:absolute;bottom:74px;right:0}.skill-slot:hover .skill-tooltip{display:block}.evolve-menu{flex-direction:column;gap:5px;margin:6px 0;display:flex}.evolve-label{color:#f1c40f;text-align:center;font-size:11px}.btn-evolve{color:#fff;cursor:pointer;background:#2c3e50;border:2px solid #e056fd;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:5px 10px;font-family:inherit;font-size:13px;display:flex;box-shadow:0 2px #0006}.btn-evolve:hover:not(.disabled){filter:brightness(1.25)}.btn-evolve.disabled{opacity:.45;cursor:not-allowed}.ach-list{grid-template-columns:1fr 1fr;gap:6px;display:grid}.ach-item{color:#7f8c8d;background:#00000040;border-radius:6px;padding:6px 8px;font-size:12px}.ach-item.unlocked{color:#f1c40f}.palette-btn.banned{filter:grayscale()brightness(.6);cursor:not-allowed}html,body{overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;height:100%}@supports (height:100dvh){.app-root{width:100dvw!important;height:100dvh!important}}.bottom-controls{bottom:calc(20px + env(safe-area-inset-bottom,0px));left:calc(20px + env(safe-area-inset-left,0px));pointer-events:auto;align-items:center;gap:15px;display:flex;position:absolute}.tower-palette{bottom:calc(20px + env(safe-area-inset-bottom,0px));pointer-events:auto;gap:15px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.wave-cta{flex-direction:column;align-items:center;gap:4px;display:flex}@media (hover:none){.palette-tooltip,.skill-tooltip{display:none!important}.palette-btn.selected{transform:translateY(-4px)scale(1.04)}}@media (height<=520px),(width<=820px){.hud-panel{border-width:2px;border-radius:10px;padding:5px 12px}.hud-gold,.hud-lives{font-size:20px}.hud-lives span{font-size:20px!important}.hud-sub{margin-top:0;font-size:11px}.hud-top-left{top:calc(6px + env(safe-area-inset-top,0px));left:calc(6px + env(safe-area-inset-left,0px))}.hud-top-right{top:calc(6px + env(safe-area-inset-top,0px));right:calc(6px + env(safe-area-inset-right,0px))}.wave-banner-title{-webkit-text-stroke:2px #7d5a00;letter-spacing:2px;font-size:40px}.wave-banner-label{font-size:20px}.game-toast{white-space:pre-wrap;max-width:80vw;padding:7px 14px;font-size:14px;top:25%}.bottom-controls{bottom:calc(8px + env(safe-area-inset-bottom,0px));left:calc(8px + env(safe-area-inset-left,0px));gap:8px}.ctrl-btn{border-width:2px;width:42px;height:42px}.ctrl-btn svg{width:20px;height:20px}.speed-badge{padding:0 4px;font-size:9px}.wave-cta{right:calc(62px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));pointer-events:auto;align-items:flex-end;position:fixed}.next-wave-btn{border-width:2px;border-radius:10px;padding:8px 14px;font-size:15px}.wave-preview{padding:2px 8px}.wave-preview-icon{font-size:14px}.wave-preview-label{font-size:10px}.tower-palette{bottom:calc(14px + env(safe-area-inset-bottom,0px));gap:8px}.palette-btn{border-width:3px;border-radius:12px;width:50px;height:50px}.palette-btn svg{width:22px;height:22px}.palette-hotkey{font-size:10px;top:2px;left:5px}.palette-price{border-width:1px;padding:0 6px;font-size:10px;bottom:-9px}.skill-bar{right:calc(8px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:8px}.skill-btn{border-width:2px;border-radius:10px;width:44px;height:44px}.skill-btn svg{width:18px;height:18px}.skill-cd-text{font-size:16px}.skill-hotkey{font-size:9px}}@media (height<=520px) and (width<=700px){.tower-palette{gap:6px}.palette-btn{width:44px;height:44px}.palette-btn svg{width:20px;height:20px}.next-wave-btn{padding:7px 10px;font-size:13px}.ctrl-btn{width:38px;height:38px}}.title-screen{z-index:50;pointer-events:auto;background:radial-gradient(#0a161047 0%,#08100c9e 68%,#050a08d1 100%);justify-content:center;align-items:center;font-family:Carter One,cursive;transition:background .4s;display:flex;position:absolute;inset:0;overflow-y:auto}.title-screen.brutal-bg{background:radial-gradient(#3c080873 0%,#230505bf 70%,#140303e6 100%)}.title-main{flex-direction:column;align-items:center;gap:28px;padding:24px;display:flex}.title-logo{text-align:center;animation:3.2s ease-in-out infinite title-float}.title-logo-text{color:#f1c40f;-webkit-text-stroke:3px #7d5a00;text-shadow:0 6px #00000059,0 0 30px #f1c40f8c;letter-spacing:3px;font-size:60px}.title-logo-sub{color:#fff;text-shadow:0 2px #0006;letter-spacing:8px;margin-bottom:4px;font-size:17px}@keyframes title-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.title-menu{flex-direction:column;gap:12px;width:min(380px,88vw);display:flex}.title-btn{text-align:left;color:#fff;cursor:pointer;text-shadow:0 2px 2px #00000080;border:3px solid #00000059;border-radius:14px;align-items:center;gap:12px;padding:12px 18px;font-family:inherit;font-size:20px;display:flex;box-shadow:0 5px #00000059}.title-btn span{flex-direction:column;line-height:1.25;display:flex}.title-btn small{opacity:.9;text-shadow:none;margin-top:2px;font-family:sans-serif;font-size:12px}.title-btn.resume{background:#f39c12}.title-btn.start{background:#27ae60}.title-btn.tutorial{background:#2980b9}.title-btn.brutal{background:#c0392b}.title-btn.brutal.locked{cursor:not-allowed;filter:saturate(.5);background:#57606f}.title-btn:hover:not(.locked){filter:brightness(1.12)}.title-records{color:#fffffff2;text-shadow:0 1px 1px #00000080;align-items:center;gap:18px;font-size:14px;display:flex}.title-records svg{vertical-align:-2px}.title-demo-hint{color:#ffffffbf;text-shadow:0 1px 2px #0009;font-family:sans-serif;font-size:12px;animation:2.4s ease-in-out infinite demo-hint-blink}@keyframes demo-hint-blink{0%,to{opacity:.9}50%{opacity:.45}}.save-note{color:#cfd8dc;margin:2px 0 12px;font-family:sans-serif;font-size:13px}.save-list{flex-direction:column;gap:10px;display:flex}.save-card{cursor:pointer;color:#fff;background:#273746f2;border:2px solid #46627f;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;transition:transform .1s,border-color .1s;display:flex}.save-card:hover{border-color:#f1c40f;transform:translateY(-1px)}.save-card-body{flex:1;min-width:0}.save-card-name{font-size:17px}.save-card-info{color:#d5dde3;margin-top:3px;font-family:sans-serif;font-size:12.5px}.save-card-date{color:#90a4ae;margin-top:2px;font-family:sans-serif;font-size:11px}.save-card-del{color:#fff;cursor:pointer;background:#57606f;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.save-card-del:hover{background:#c0392b}.save-empty{color:#b0bec5;font-family:sans-serif;font-size:13px}.stage-select{color:#fff;background:#1a252ff0;border-radius:16px;width:min(640px,94vw);max-height:calc(100% - 24px);margin:12px;padding:18px 22px;overflow-y:auto;box-shadow:0 12px 40px #00000080}.stage-select-header{align-items:center;gap:12px;display:flex}.stage-select-header h2{color:#f1c40f;margin:0;font-size:22px}.title-back{color:#fff;cursor:pointer;background:#46627f;border:none;border-radius:10px;align-items:center;gap:2px;padding:8px 12px;font-family:inherit;font-size:14px;display:flex}.brutal-note{color:#ff8f81;margin:10px 0 0;font-family:sans-serif;font-size:13px}.challenge-row{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 4px;display:flex}.challenge-label{color:#bdc3c7;font-size:13px}.challenge-chip{cursor:pointer;color:#fff;background:#46627f;border:none;border-radius:16px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:700}.challenge-chip.active{background:#e67e22}.challenge-desc{color:#bdc3c7;margin:6px 0 0;font-family:sans-serif;font-size:12px}.stage-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.stage-card{text-align:left;cursor:pointer;color:#fff;background:#e74c3c;border:none;border-radius:10px;padding:12px;font-family:inherit;box-shadow:0 3px #00000059}.stage-card:hover:not(.locked){filter:brightness(1.1)}.stage-card.brutal{background:#7e1f16;border:2px solid #ff6b5b}.stage-card.locked{opacity:.7;cursor:not-allowed;background:#57606f}.stage-card-no{opacity:.85;font-size:11px}.stage-card-name{font-size:17px}.stage-card-best{opacity:.9;margin-top:4px;font-family:sans-serif;font-size:11px}@media (height<=520px),(width<=820px){.title-logo-text{font-size:40px}.title-logo-sub{letter-spacing:5px;font-size:13px}.title-main{gap:14px;padding:14px}.title-btn{gap:10px;padding:9px 14px;font-size:16px}.title-records{font-size:12px}.stage-select{padding:12px 14px}.stage-select-header h2{font-size:17px}.stage-grid{gap:8px}.stage-card{padding:9px 10px}.stage-card-name{font-size:14px}}.tutorial-panel{top:calc(64px + env(safe-area-inset-top,0px));z-index:60;color:#fff;pointer-events:auto;background:#1a252ff2;border:2px solid #f1c40f;border-radius:14px;width:min(600px,92vw);padding:12px 16px;font-family:sans-serif;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.tutorial-header{color:#f1c40f;justify-content:space-between;align-items:center;font-family:Carter One,cursive;font-size:17px;display:flex}.tutorial-close{color:#bdc3c7;cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;font-family:sans-serif;font-size:13px;display:flex}.tutorial-body{margin:8px 0 4px;font-size:13.5px;line-height:1.65}.tutorial-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tutorial-chip{background:#34495e;border-left:4px solid #fff;border-radius:8px;padding:5px 9px;font-size:12px;line-height:1.4}.tutorial-footer{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.tutorial-dots{gap:5px;display:flex}.tutorial-dot{background:#57606f;border-radius:50%;width:8px;height:8px}.tutorial-dot.active{background:#f1c40f}.tutorial-next{color:#fff;cursor:pointer;background:#27ae60;border:none;border-radius:10px;padding:8px 18px;font-family:Carter One,cursive;font-size:15px}.tutorial-next:hover{filter:brightness(1.12)}.tutorial-wait{color:#f1c40f;font-size:12.5px;animation:1.6s ease-in-out infinite pulse-slow}@keyframes pulse-slow{0%,to{opacity:1}50%{opacity:.45}}@media (height<=520px),(width<=820px){.tutorial-panel{top:calc(46px + env(safe-area-inset-top,0px));width:min(520px,94vw);padding:8px 12px}.tutorial-body{font-size:12px;line-height:1.5}.tutorial-chip{padding:4px 7px;font-size:11px}.tutorial-header{font-size:14px}.tutorial-next{padding:6px 14px;font-size:13px}}.combo-counter{z-index:15;color:#ffd54f;-webkit-text-stroke:1.5px #7a4a00;text-shadow:0 3px 6px #0009;pointer-events:none;white-space:nowrap;font-size:26px;animation:.22s ease-out comboPop;position:fixed;top:88px;left:50%;transform:translate(-50%)}.combo-counter .combo-num{color:#ff9f1a;font-size:42px}@keyframes comboPop{0%{transform:translate(-50%)scale(1.55)}to{transform:translate(-50%)scale(1)}}.screen-flash{z-index:90;pointer-events:none;background:#fff;animation:.22s ease-out forwards screenFlash;position:fixed;inset:0}@keyframes screenFlash{0%{opacity:.26}to{opacity:0}}.fever-overlay{z-index:12;pointer-events:none;background:radial-gradient(#ffc83200 62%,#ffa01433 100%);animation:10s linear forwards feverGold;position:fixed;inset:0}@keyframes feverGold{0%{opacity:0}4%{opacity:1}50%{opacity:.55}85%{opacity:.65}to{opacity:0}}.fever-bar{background:#00000073;border:1px solid #ffffff40;border-radius:6px;width:130px;height:10px;margin:6px auto 0;overflow:hidden}.fever-fill{background:linear-gradient(90deg,#f39c12,#ff5e3a);height:100%;transition:width .3s}.fever-btn{color:#fff;cursor:pointer;pointer-events:auto;text-shadow:0 1px 2px #00000080;background:linear-gradient(#ff9f1a,#e74c3c);border:2px solid #ffd54f;border-radius:10px;margin-top:5px;padding:5px 14px;font-family:Carter One,cursive;font-size:14px;animation:.7s ease-in-out infinite alternate feverReady}@keyframes feverReady{0%{transform:scale(1);box-shadow:0 0 5px #ffd54f}to{transform:scale(1.06);box-shadow:0 0 18px #ff9f1a}}.warning-band{z-index:16;color:#ffdd57;text-align:center;letter-spacing:4px;white-space:nowrap;pointer-events:none;background:#780a0a99;border-top:3px solid #e74c3c;border-bottom:3px solid #e74c3c;padding:10px 0;font-size:24px;animation:.5s steps(2,end) 4 warnFlash,2.2s ease-out forwards warnSlide;position:fixed;top:18%;left:0;right:0;overflow:hidden}@keyframes warnFlash{0%{color:#ffdd57}to{color:#ff5252}}@keyframes warnSlide{0%{opacity:0;transform:translate(60px)}12%{opacity:1;transform:translate(0)}88%{opacity:1}to{opacity:0}}.gold-bump{animation:.22s ease-out goldBump}@keyframes goldBump{0%{color:#ffe27a;transform:scale(1.16)}to{transform:scale(1)}}.gold-chip{color:#ffd54f;-webkit-text-stroke:.5px #6b4a00;white-space:nowrap;pointer-events:none;margin-left:8px;font-size:15px;animation:.85s ease-out forwards goldChip;position:absolute;top:2px;left:100%}@keyframes goldChip{0%{opacity:0;transform:translate(26px,34px)scale(.8)}30%{opacity:1}to{opacity:0;transform:translate(0)scale(1)}}@media (width<=900px){.combo-counter{font-size:17px;top:62px}.combo-counter .combo-num{font-size:27px}.warning-band{letter-spacing:2px;padding:7px 0;font-size:15px}.fever-bar{width:96px;height:8px;margin-top:4px}.fever-btn{padding:3px 10px;font-size:11px}.gold-chip{font-size:12px}}
