*,:before,:after{box-sizing:border-box;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition-property:none;transition-duration:.5s}html,body{height:100%}body{background:#0c0c0c;font-family:helvetica,sans-serif;overflow:hidden}.g{opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 20px #000,0 0 0 21px #222}.g.loaded{opacity:1;pointer-events:auto}.s{position:absolute;inset:0}.tile{background:#222;transition-property:background;position:absolute;top:0;left:0}.tile:hover{background:#666;transition-duration:0s}.tile.path{background:#111}.tile.path:hover{cursor:not-allowed}.row{z-index:200;background:#000;width:100%;height:40px;position:absolute;left:0;transform:translateZ(0)}.top-row{top:0}.bot-row{padding-top:1px;bottom:0}.game-title{color:#fff;float:left;text-align:center;text-shadow:0 1px 1px #000;background:#090909;width:360px;height:39px;margin-right:1px;font-size:15px;font-weight:700;line-height:37px;display:block;position:relative;box-shadow:inset 0 0 0 1px #ffffff0d}.game-title span{color:#ffffff4d;margin-left:10px;font-size:11px;font-weight:400}.game-title:before{content:"";background:linear-gradient(#0000 0%,#ffffff13 100%);width:100%;height:50%;position:absolute;top:0;left:0}.b{color:#fff9;cursor:pointer;float:left;text-align:center;text-shadow:0 1px 1px #000;background:#333;height:39px;margin:0 1px 0 0;font-size:13px;line-height:37px;transition-property:background,box-shadow,color,opacity;display:block;position:relative;box-shadow:inset 0 0 0 1px #ffffff26}.b:before{content:"";background:linear-gradient(#0000 0%,#ffffff13 100%);width:100%;height:50%;position:absolute;top:0;left:0}.b:hover{color:#fff;background:#444;transition-duration:0s}.s1{width:39px}.s2{width:79px}.s2:last-child{margin-right:0}.s3{width:119px}.s4{width:159px}.s4:last-child{width:160px;margin-right:0}.s5{width:199px}.s6{width:239px}.b i{margin-right:3px;font-size:16px;font-style:normal;display:inline-block}.playing .b-play{color:#fff;background:#222;box-shadow:inset 0 0 0 1px #333,inset 0 0 10px #000000bf}.playing .b-play:hover{background:#333}.x1 .b-x1,.x1 .b-x1:hover,.x2 .b-x2,.x2 .b-x2:hover,.x3 .b-x3,.x3 .b-x3:hover{color:#fff;cursor:default;background:#222;box-shadow:inset 0 0 0 1px #333,inset 0 0 10px #000000bf}.b-send{opacity:.25}.playing .b-send:hover{color:#fff;cursor:pointer;background:#444}.b-send:hover,.no-more-waves.playing .b-send{color:#fff9;cursor:not-allowed;opacity:.25;background:#333}.playing .b-send{opacity:1}.l,.d{color:#fff9;float:left;text-align:center;text-shadow:0 1px 1px #000;background:#090909;height:39px;margin:0 1px 0 0;font-size:13px;line-height:37px;transition-property:background,box-shadow,color;display:block;position:relative;box-shadow:inset 0 0 0 1px #ffffff0d}.l:before,.d:before{content:"";background:linear-gradient(#0000 0%,#ffffff13 100%);width:100%;height:50%;position:absolute;top:0;left:0}.l i,.d i{font-size:16px;font-style:normal}.l{background:#111}.w{margin:0 2px}.w-e{color:#3df53d}.w-w{color:#3db8f5}.w-a{color:#f5f53d}.w-f{color:#f53d3d}.build-menu-wrap,.tower-menu-wrap{visibility:hidden;z-index:200;background:#1a1a1a99;position:absolute;inset:0}.build-menu-open .build-menu-wrap,.tower-menu-open .tower-menu-wrap{visibility:visible}.build-menu,.tower-menu{cursor:default;width:280px;position:absolute;top:0;left:0}.build-buttons,.tower-buttons{background:#000000bf;width:100%;height:80px;position:relative}.build-buttons:before,.tower-buttons:before{content:"";pointer-events:none;z-index:2;background:linear-gradient(#0000 0%,#ffffff1a 100%);width:100%;height:50%;position:absolute;top:0;left:0}.build-button,.tower-button{cursor:pointer;background:#fff;border:2px solid #0000;width:40px;height:40px;transition:background .15s,border-color .15s,opacity .15s;position:absolute;top:20px;box-shadow:inset 0 0 0 20px #fff0}.build-button:hover,.tower-button:hover{opacity:.75;border-color:#fff}.build-d.anim{cursor:default;background:#ffffff26;border:2px dashed #fff;animation:.5s ease-in-out infinite alternate pulse}.build-d{background:#fff}.build-e{background:#3df53d}.build-w{background:#3db8f5}.build-a{background:#f5f53d}.build-f{background:#f53d3d}.no-b-e .build-e,.no-b-w .build-w,.no-b-a .build-a,.no-b-f .build-f,.no-b-e.hover-e .build-info>*,.no-b-w.hover-w .build-info>*,.no-b-a.hover-a .build-info>*,.no-b-f.hover-f .build-info>*,.no-upgrade .tower-button.upgrade,.no-upgrade.hover-tower-upgrade .tower-info>*{cursor:not-allowed;opacity:.2}.no-upgrade.maxed-upgrade.hover-tower-upgrade .tower-info>*{opacity:1}.pos-w .build-d{left:20px}.pos-w .build-e{left:70px}.pos-w .build-w{left:120px}.pos-w .build-a{left:170px}.pos-w .build-f,.pos-e .build-d{left:220px}.pos-e .build-e{left:20px}.pos-e .build-w{left:70px}.pos-e .build-a{left:120px}.pos-e .build-f{left:170px}.build-info,.tower-info{opacity:0;pointer-events:none;background:#000000bf;width:100%;height:140px;padding:15px 20px;font-size:13px;line-height:1.7;transition:opacity .15s .15s,transform .15s .15s;position:absolute;left:0;transform:scale(.75)}.hover-build-button .build-info,.hover-tower-button .tower-info{opacity:1;transition-delay:0s;transform:scale(1)}.pos-n .build-info,.pos-n .tower-info{top:81px}.pos-s .build-info,.pos-s .tower-info{bottom:81px}.build-title,.tower-title{border-bottom:1px solid #333;margin-bottom:7px;padding-bottom:7px;font-size:16px;font-weight:700}.build-title i,.tower-title i{color:#fff;margin-right:14px;font-style:normal}.hover-e .build-type{color:#3df53d}.hover-w .build-type{color:#3db8f5}.hover-a .build-type{color:#f5f53d}.hover-f .build-type{color:#f53d3d}.build-cost,.tower-cost{color:#fff}.build-stat,.tower-stat{color:#aaa}.build-stat strong,.tower-stat strong{text-align:right;width:58px;margin-right:3px;display:inline-block}.build-mtr{vertical-align:top;margin-right:3px;display:inline-block}.build-mtr span{vertical-align:top;background:#444;width:8px;height:12px;margin-right:1px;display:inline-block;position:relative;top:6px}.hover-e .build-mtr span{background:#3df53d}.hover-w .build-mtr span{background:#3db8f5}.hover-a .build-mtr span{background:#f5f53d}.hover-f .build-mtr span{background:#f53d3d}.dmg1 .build-dmg-wrap .build-mtr span:nth-child(2),.dmg1 .build-dmg-wrap .build-mtr span:nth-child(3),.rng1 .build-rng-wrap .build-mtr span:nth-child(2),.rng1 .build-rng-wrap .build-mtr span:nth-child(3),.rte1 .build-rte-wrap .build-mtr span:nth-child(2),.rte1 .build-rte-wrap .build-mtr span:nth-child(3),.dmg2 .build-dmg-wrap .build-mtr span:nth-child(3),.rng2 .build-rng-wrap .build-mtr span:nth-child(3),.rte2 .build-rte-wrap .build-mtr span:nth-child(3){background:#444}.tower-button.highlight.anim{cursor:default;background:#ffffff26;border:2px solid #fff;animation:.5s ease-in-out infinite alternate pulse}.t-menu-e .tower-button.highlight{border-color:#3df53d}.t-menu-w .tower-button.highlight{border-color:#3db8f5}.t-menu-a .tower-button.highlight{border-color:#f5f53d}.t-menu-f .tower-button.highlight{border-color:#f53d3d}.t-menu-e .tower-button.upgrade{background:#3df53d}.t-menu-w .tower-button.upgrade{background:#3db8f5}.t-menu-a .tower-button.upgrade{background:#f5f53d}.t-menu-f .tower-button.upgrade{background:#f53d3d}.tower-button.reclaim{background:#444}.tower-button .icon{pointer-events:none;width:20px;height:22px;margin:auto;position:absolute;inset:0}.tower-button.reclaim .icon{transform:rotate(180deg)}.tower-button .icon div{border-style:solid;border-color:#0000;position:absolute;left:50%}.tower-button .icon div:first-child,.tower-button .icon div:nth-child(3),.tower-button .icon div:nth-child(5){border-width:10px;margin-left:-10px}.tower-button .icon div:nth-child(2),.tower-button .icon div:nth-child(4),.tower-button .icon div:nth-child(6){border-width:5px;border-bottom-color:#444;margin-left:-5px}.tower-button .icon div:first-child{border-bottom-color:#000c;top:-10px}.tower-button .icon div:nth-child(2){top:0}.tower-button .icon div:nth-child(3){border-bottom-color:#0000008c;top:-4px}.tower-button .icon div:nth-child(4){top:6px}.tower-button .icon div:nth-child(5){border-bottom-color:#0000004d;top:2px}.tower-button .icon div:nth-child(6){top:12px}.t-menu-e .tower-button.upgrade .icon div:nth-child(2),.t-menu-e .tower-button.upgrade .icon div:nth-child(4),.t-menu-e .tower-button.upgrade .icon div:nth-child(6){border-bottom-color:#3df53d}.t-menu-w .tower-button.upgrade .icon div:nth-child(2),.t-menu-w .tower-button.upgrade .icon div:nth-child(4),.t-menu-w .tower-button.upgrade .icon div:nth-child(6){border-bottom-color:#3db8f5}.t-menu-a .tower-button.upgrade .icon div:nth-child(2),.t-menu-a .tower-button.upgrade .icon div:nth-child(4),.t-menu-a .tower-button.upgrade .icon div:nth-child(6){border-bottom-color:#f5f53d}.t-menu-f .tower-button.upgrade .icon div:nth-child(2),.t-menu-f .tower-button.upgrade .icon div:nth-child(4),.t-menu-f .tower-button.upgrade .icon div:nth-child(6){border-bottom-color:#f53d3d}.pos-w .tower-button.highlight{left:20px}.pos-w .tower-button.upgrade{left:70px}.pos-w .tower-button.reclaim{left:120px}.pos-e .tower-button.highlight{left:220px}.pos-e .tower-button.upgrade{left:120px}.pos-e .tower-button.reclaim{left:170px}.t-menu-e .tower-label{color:#3df53d}.t-menu-w .tower-label{color:#3db8f5}.t-menu-a .tower-label{color:#f5f53d}.t-menu-f .tower-label{color:#f53d3d}.tower-stat i{color:#fff;font-style:normal}.hover-tower-reclaim .tower-stat i,.hover-tower-reclaim .tower-stat span:last-child{display:none}.t-menu-e .tower-stat span:last-child{color:#3df53d}.t-menu-w .tower-stat span:last-child{color:#3db8f5}.t-menu-a .tower-stat span:last-child{color:#f5f53d}.t-menu-f .tower-stat span:last-child{color:#f53d3d}.t-wrap,.t-wrap div{position:absolute}.t-tower,.t-slab,.t-base,.t-core{inset:0}.t-wrap{z-index:100;width:40px;height:40px;transition:background .3s}.t-wrap:before,.t-wrap:after{content:"";opacity:0;transition:opacity .4s;position:absolute;top:0;right:0}.t-wrap.upgradable:before,.t-wrap.upgradable:after{opacity:1;background:#fff}.t-wrap:before{width:8px;height:2px;top:3px}.t-wrap:after{width:2px;height:8px;right:3px}.t-wrap.targeting{background:#fff3}.t-wrap:hover{z-index:101;transition-duration:0s}.t-wrap.t-type-e:hover{background:#40bf4033}.t-wrap.t-type-w:hover{background:#4095bf33}.t-wrap.t-type-a:hover{background:#bfbf4033}.t-wrap.t-type-f:hover{background:#bf404033}.t-tower{cursor:pointer;width:28px;height:28px;margin:auto}.t-range{opacity:0;pointer-events:none;z-index:1;border:2px solid #0000;border-radius:100%;transition:all .15s ease-in-out;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.t-type-e .t-range{background:#ccffcc1a;border-color:#66ff664d}.t-type-w .t-range{background:#cceeff1a;border-color:#66ccff4d}.t-type-a .t-range{background:#ffffcc1a;border-color:#ffff664d}.t-type-f .t-range{background:#ffcccc1a;border-color:#ff66664d}.t-wrap.selected .t-range,.t-wrap:hover .t-range{opacity:1;transform:translate(-50%,-50%)scale(1)}.t-slab{background:#121;border:1px solid #0000}.t-type-e .t-slab{background:#0d260d;border-color:#1f7a1f}.t-type-w .t-slab{background:#0d1e26;border-color:#1f5c7a}.t-type-a .t-slab{background:#26260d;border-color:#7a7a1f}.t-type-f .t-slab{background:#260d0d;border-color:#7a1f1f}.t-base{border:4px solid #111;border-radius:50%}.t-type-e .t-base{background:#2e6b2e;box-shadow:0 0 0 1px #2e6b2e}.t-type-w .t-base{background:#2e576b;box-shadow:0 0 0 1px #2e576b}.t-type-a .t-base{background:#6b6b2e;box-shadow:0 0 0 1px #6b6b2e}.t-type-f .t-base{background:#6b2e2e;box-shadow:0 0 0 1px #6b2e2e}.t-turret{transform-origin:100% 100%;background:#6c6;width:50%;height:50%;top:0;left:0}.t-type-e .t-turret{background:#7de87d}.t-type-w .t-turret{background:#7dc4e8}.t-type-a .t-turret{background:#e8e87d}.t-type-f .t-turret{background:#e87d7d}.t-core{border-radius:50%;margin:auto}.t-type-e .t-core{background:#6f6}.t-type-w .t-core{background:#6cf}.t-type-a .t-core{background:#ff6}.t-type-f .t-core{background:#f66}.t-lvl-bar{background:#ffffff40;width:12px;height:2px;bottom:0}.t-lvl-bar-0{left:0}.t-lvl-bar-1{width:13px;left:13px}.t-lvl-bar-2{left:27px}.t-type-e.t-lvl-0 .t-lvl-bar-0,.t-type-e.t-lvl-1 .t-lvl-bar-0,.t-type-e.t-lvl-1 .t-lvl-bar-1,.t-type-e.t-lvl-2 .t-lvl-bar-0,.t-type-e.t-lvl-2 .t-lvl-bar-1,.t-type-e.t-lvl-2 .t-lvl-bar-2{background:#47eb47}.t-type-w.t-lvl-0 .t-lvl-bar-0,.t-type-w.t-lvl-1 .t-lvl-bar-0,.t-type-w.t-lvl-1 .t-lvl-bar-1,.t-type-w.t-lvl-2 .t-lvl-bar-0,.t-type-w.t-lvl-2 .t-lvl-bar-1,.t-type-w.t-lvl-2 .t-lvl-bar-2{background:#47b4eb}.t-type-a.t-lvl-0 .t-lvl-bar-0,.t-type-a.t-lvl-1 .t-lvl-bar-0,.t-type-a.t-lvl-1 .t-lvl-bar-1,.t-type-a.t-lvl-2 .t-lvl-bar-0,.t-type-a.t-lvl-2 .t-lvl-bar-1,.t-type-a.t-lvl-2 .t-lvl-bar-2{background:#ebeb47}.t-type-f.t-lvl-0 .t-lvl-bar-0,.t-type-f.t-lvl-1 .t-lvl-bar-0,.t-type-f.t-lvl-1 .t-lvl-bar-1,.t-type-f.t-lvl-2 .t-lvl-bar-0,.t-type-f.t-lvl-2 .t-lvl-bar-1,.t-type-f.t-lvl-2 .t-lvl-bar-2{background:#eb4747}.enemy{pointer-events:none;z-index:100;border-style:solid;border-width:4px;transition:box-shadow .1s,opacity .1s;position:absolute;top:0;left:0}.enemy.slow{opacity:.5;box-shadow:0 0 0 8px #00669980}.hp{z-index:5;border-top:none;border-bottom:1px solid #ffffff80;border-left:1px solid #ffffff80;border-right:none;width:300%;height:300%;position:absolute;bottom:-8px;left:-8px}.enemy.boss .hp{bottom:-10px;left:-10px}.enemy.type-e .hp{border-color:#9f9}.enemy.type-w .hp{border-color:#9df}.enemy.type-a .hp{border-color:#ff9}.enemy.type-f .hp{border-color:#f99}.hl{border-top:1px solid #fff;border-bottom:none;border-left:none;border-right:1px solid #fff;position:absolute;inset:0}.enemy.boss{border-width:6px}.enemy.type-e{border-color:#0b410b #0b410b #47eb47 #47eb47}.enemy.type-w{border-color:#0b2f41 #0b2f41 #47b4eb #47b4eb}.enemy.type-a{border-color:#41410b #41410b #ebeb47 #ebeb47}.enemy.type-f{border-color:#410b0b #410b0b #eb4747 #eb4747}.enemy.type-e .hl{border-color:#47eb47}.enemy.type-w .hl{border-color:#47b4eb}.enemy.type-a .hl{border-color:#ebeb47}.enemy.type-f .hl{border-color:#eb4747}.enemy.boss:before{content:"";border-top:2px solid #0000;border-bottom:none;border-left:none;border-right:2px solid #0000;border-radius:100%;position:absolute;inset:-18px}.enemy.type-e:before{border-color:#47eb47}.enemy.type-w:before{border-color:#47b4eb}.enemy.type-a:before{border-color:#ebeb47}.enemy.type-f:before{border-color:#eb4747}.enemy:after{content:"";opacity:0;background:#ffffff80;transition:opacity .3s ease-out;position:absolute;inset:-4px}.enemy.boss:after{inset:-6px}.enemy.hit:after{opacity:1;transition-duration:0s}.enemy.type-e:after{box-shadow:0 0 0 4px #9f9}.enemy.type-w:after{box-shadow:0 0 0 4px #9df}.enemy.type-a:after{box-shadow:0 0 0 4px #ff9}.enemy.type-f:after{box-shadow:0 0 0 4px #f99}.bullet{z-index:150;border-radius:10px 10px 10px 0;position:absolute;top:0;left:0}.bullet.type-e{background:#9f9}.bullet.type-w{background:#9df}.bullet.type-a{background:#ff9}.bullet.type-f{background:#f99}@keyframes pulse{to{opacity:0}}#pg-stage{position:fixed;inset:0;overflow:hidden}.g{transform:translate(-50%, -50%) scale(var(--pg-scale,1));font-family:helvetica,arial,sans-serif}.g a,.g .tile,.g .t-wrap{-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (hover:none){.tile:hover{background:#222}.tile.path:hover{background:#111}}.build-button.armed,.tower-button.armed{box-shadow:0 0 0 2px #fff,0 0 12px #fff9}.pg-confirm{color:#ffffffbf;font-size:11px;display:none;position:absolute;bottom:6px;right:12px}.touch-armed .pg-confirm{display:block}.touch-armed .build-info,.touch-armed .tower-info{opacity:1;transform:scale(1)}.pg-cursor{pointer-events:none;z-index:150;border:2px solid #fff;width:40px;height:40px;display:none;position:absolute;top:0;left:0;box-shadow:0 0 10px #ffffff80}.pg-cursor.pg-on{display:block}.pg-card{z-index:5;color:#fff;touch-action:manipulation;background:#0a0a0ad1;justify-content:center;align-items:center;padding:16px;font:15px/1.45 system-ui,helvetica,arial,sans-serif;display:none;position:fixed;inset:0}.pg-card.pg-open{display:flex}.pg-panel{text-align:center;max-width:460px;max-height:100%;padding:8px;overflow:auto}.pg-panel h1{letter-spacing:.02em;background:linear-gradient(90deg,#3df53d,#3db8f5,#f5f53d,#f53d3d);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:28px}.pg-steps{text-align:left;margin:0 0 12px;padding:0;list-style:none}.pg-steps li{color:#ffffffd9;margin:6px 0;padding-left:18px;position:relative}.pg-steps li:before{content:"";background:#3db8f5;width:7px;height:7px;position:absolute;top:.55em;left:2px;transform:rotate(45deg)}.pg-best{color:#ffffffb3;min-height:1em;margin:8px 0 14px}.pg-go{color:#0c0c0c;cursor:pointer;background:#fff;border:0;border-radius:4px;padding:14px 36px;font:600 17px/1 system-ui,helvetica,arial,sans-serif}.pg-go:focus-visible{outline-offset:3px;outline:3px solid #3db8f5}.pg-touch{display:none}@media (hover:none) and (pointer:coarse){.pg-touch{display:revert}.pg-mouse{display:none}}#pg-rotate{left:0;right:0;bottom:max(16px, env(safe-area-inset-bottom));text-align:center;color:#ffffff8c;pointer-events:none;margin:0;font:13px/1.3 system-ui,helvetica,arial,sans-serif;display:none;position:fixed}@media (orientation:portrait) and (width<=700px){#pg-rotate{display:block}}@media (height<=420px){.pg-card{font-size:13px}.pg-panel h1{margin-bottom:4px;font-size:22px}.pg-steps li{margin:2px 0}.pg-go{padding:10px 28px}}
