/*
 * Elematter clean runtime stylesheet derived from the pinned JS13K submission.
 * Project code: MIT. See LICENSE.md and the repository licensing review.
 */
*,:after,:before{-moz-box-sizing:border-box;box-sizing:border-box;transition-duration:500ms;transition-property:none;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}body,html{height:100%}body{background:#0c0c0c;font-family:helvetica,sans-serif;overflow:hidden}.g{box-shadow:0 0 0 20px #000,0 0 0 21px #222;left:50%;opacity:0;overflow:hidden;pointer-events:none;position:absolute;transform:translate(-50%,-50%);transition:opacity 500ms;top:50%}.g.loaded{opacity:1;pointer-events:auto}.s{bottom:0;left:0;position:absolute;right:0;top:0}.tile{background:#222;left:0;position:absolute;top:0;transition-property:background}.tile:hover{background:#666;transition-duration:0ms}.tile.path{background:#111}.tile.path:hover{cursor:not-allowed}.row{background:#000;height:40px;left:0;position:absolute;transform:translateZ(0);width:100%;z-index:200}.top-row{top:0}.bot-row{bottom:0;padding-top:1px}.game-title{background:#090909;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05);color:#fff;display:block;float:left;font-size:15px;font-weight:700;height:39px;line-height:37px;margin-right:1px;position:relative;text-align:center;text-shadow:0 1px 1px #000;width:360px}.game-title span{color:hsla(0,0%,100%,.3);font-size:11px;font-weight:400;margin-left:10px}.game-title:before{background:linear-gradient(to bottom,transparent 0,hsla(0,0%,100%,.075) 100%);content:'';height:50%;left:0;position:absolute;top:0;width:100%}.b{background:#333;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.6);cursor:pointer;display:block;float:left;font-size:13px;height:39px;line-height:37px;margin:0 1px 0 0;position:relative;text-align:center;text-shadow:0 1px 1px #000;transition-property:background,box-shadow,color,opacity}.b:before{background:linear-gradient(to bottom,transparent 0,hsla(0,0%,100%,.075) 100%);content:'';height:50%;left:0;position:absolute;top:0;width:100%}.b:hover{background:#444;color:#fff;transition-duration:0ms}.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{display:inline-block;font-size:16px;font-style:normal;margin-right:3px}.playing .b-play{background:#222;box-shadow:inset 0 0 0 1px #333,inset 0 0 10px hsla(0,0%,0%,.75);color:#fff}.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{background:#222;box-shadow:inset 0 0 0 1px #333,inset 0 0 10px hsla(0,0%,0%,.75);color:#fff;cursor:default}.b-send{opacity:.25}.playing .b-send:hover{background:#444;color:#fff;cursor:pointer}.b-send:hover,.no-more-waves.playing .b-send{background:#333;color:hsla(0,0%,100%,.6);cursor:not-allowed;opacity:.25}.playing .b-send{opacity:1}.d,.l{background:#090909;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.05);color:hsla(0,0%,100%,.6);display:block;float:left;font-size:13px;height:39px;line-height:37px;margin:0 1px 0 0;position:relative;text-align:center;text-shadow:0 1px 1px #000;transition-property:background,box-shadow,color}.d:before,.l:before{background:linear-gradient(to bottom,transparent 0,hsla(0,0%,100%,.075) 100%);content:'';height:50%;left:0;position:absolute;top:0;width:100%}.d i,.l i{font-size:16px;font-style:normal}.l{background:#111}.w{margin:0 2px}.w-e{color:#3df43d}.w-w{color:#3db7f4}.w-a{color:#f4f43d}.w-f{color:#f43d3d}.build-menu-wrap,.tower-menu-wrap{background:hsla(0,0%,10%,.6);bottom:0;left:0;position:absolute;right:0;top:0;visibility:hidden;z-index:200}.build-menu-open .build-menu-wrap,.tower-menu-open .tower-menu-wrap{visibility:visible}.build-menu,.tower-menu{cursor:default;left:0;position:absolute;top:0;width:280px}.build-buttons,.tower-buttons{background:hsla(0,0%,0%,.75);height:80px;position:relative;width:100%}.build-buttons:before,.tower-buttons:before{background:linear-gradient(to bottom,transparent 0,hsla(0,0%,100%,.1) 100%);content:'';height:50%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:2}.build-button,.tower-button{background:#fff;border:2px solid transparent;box-shadow:inset 0 0 0 20px hsla(0,0%,100%,0);cursor:pointer;height:40px;position:absolute;top:20px;transition:background 150ms,border-color 150ms,opacity 150ms;width:40px}.build-button:hover,.tower-button:hover{border-color:#fff;opacity:.75}.build-d.anim{background:hsla(0,0%,100%,.15);border:2px dashed #fff;cursor:default;-webkit-animation:pulse 500ms ease-in-out infinite alternate;animation:pulse 500ms ease-in-out infinite alternate}.build-d{background:#fff}.build-e{background:#3df43d}.build-w{background:#3db7f4}.build-a{background:#f4f43d}.build-f{background:#f43d3d}.no-b-a .build-a,.no-b-a.hover-a .build-info>*,.no-b-e .build-e,.no-b-e.hover-e .build-info>*,.no-b-f .build-f,.no-b-f.hover-f .build-info>*,.no-b-w .build-w,.no-b-w.hover-w .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-e .build-d,.pos-w .build-f{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{background:hsla(0,0%,0%,.75);font-size:13px;height:140px;left:0;line-height:1.7;opacity:0;padding:15px 20px;pointer-events:none;position:absolute;transform:scale(0.75);transition:opacity 150ms 150ms,transform 150ms 150ms;width:100%}.hover-build-button .build-info,.hover-tower-button .tower-info{opacity:1;transform:scale(1);transition-delay:0ms}.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;font-size:16px;font-weight:700;margin-bottom:7px;padding-bottom:7px}.build-title i,.tower-title i{color:#fff;font-style:normal;margin-right:14px}.hover-e .build-type{color:#3df43d}.hover-w .build-type{color:#3db7f4}.hover-a .build-type{color:#f4f43d}.hover-f .build-type{color:#f43d3d}.build-cost,.tower-cost{color:#fff}.build-stat,.tower-stat{color:#aaa}.build-stat strong,.tower-stat strong{display:inline-block;margin-right:3px;text-align:right;width:58px}.build-mtr{display:inline-block;margin-right:3px;vertical-align:top}.build-mtr span{background:#444;display:inline-block;height:12px;margin-right:1px;position:relative;top:6px;vertical-align:top;width:8px}.hover-e .build-mtr span{background:#3df43d}.hover-w .build-mtr span{background:#3db7f4}.hover-a .build-mtr span{background:#f4f43d}.hover-f .build-mtr span{background:#f43d3d}.dmg1 .build-dmg-wrap .build-mtr span:nth-child(2),.dmg1 .build-dmg-wrap .build-mtr span:nth-child(3),.dmg2 .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),.rng2 .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),.rte2 .build-rte-wrap .build-mtr span:nth-child(3){background:#444}.tower-button.highlight.anim{background:hsla(0,0%,100%,.15);border:2px solid #fff;cursor:default;-webkit-animation:pulse 500ms ease-in-out infinite alternate;animation:pulse 500ms ease-in-out infinite alternate}.t-menu-e .tower-button.highlight{border-color:#3df43d}.t-menu-w .tower-button.highlight{border-color:#3db7f4}.t-menu-a .tower-button.highlight{border-color:#f4f43d}.t-menu-f .tower-button.highlight{border-color:#f43d3d}.t-menu-e .tower-button.upgrade{background:#3df43d}.t-menu-w .tower-button.upgrade{background:#3db7f4}.t-menu-a .tower-button.upgrade{background:#f4f43d}.t-menu-f .tower-button.upgrade{background:#f43d3d}.tower-button.reclaim{background:#444}.tower-button .icon{bottom:0;height:22px;left:0;margin:auto;pointer-events:none;position:absolute;right:0;top:0;width:20px}.tower-button.reclaim .icon{transform:rotate(180deg)}.tower-button .icon div{border-color:transparent;border-style:solid;left:50%;position:absolute}.tower-button .icon div:nth-child(1),.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-bottom-color:#444;border-width:5px;margin-left:-5px}.tower-button .icon div:nth-child(1){border-bottom-color:hsla(0,0%,0%,.8);top:-10px}.tower-button .icon div:nth-child(2){top:0}.tower-button .icon div:nth-child(3){border-bottom-color:hsla(0,0%,0%,.55);top:-4px}.tower-button .icon div:nth-child(4){top:6px}.tower-button .icon div:nth-child(5){border-bottom-color:hsla(0,0%,0%,.3);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:#3df43d}.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:#3db7f4}.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:#f4f43d}.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:#f43d3d}.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:#3df43d}.t-menu-w .tower-label{color:#3db7f4}.t-menu-a .tower-label{color:#f4f43d}.t-menu-f .tower-label{color:#f43d3d}.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:#3df43d}.t-menu-w .tower-stat span:last-child{color:#3db7f4}.t-menu-a .tower-stat span:last-child{color:#f4f43d}.t-menu-f .tower-stat span:last-child{color:#f43d3d}.t-wrap,.t-wrap div{position:absolute}.t-base,.t-core,.t-slab,.t-tower{bottom:0;left:0;right:0;top:0}.t-wrap{height:40px;transition:background 300ms;width:40px;z-index:100}.t-wrap:after,.t-wrap:before{content:'';opacity:0;right:0;position:absolute;top:0;transition:opacity 400ms}.t-wrap.upgradable:after,.t-wrap.upgradable:before{background:#fff;opacity:1}.t-wrap:before{height:2px;top:3px;width:8px}.t-wrap:after{height:8px;right:3px;width:2px}.t-wrap.targeting{background:hsla(0,0%,100%,.2)}.t-wrap:hover{transition-duration:0ms;z-index:101}.t-wrap.t-type-e:hover{background:hsla(120,50%,50%,.2)}.t-wrap.t-type-w:hover{background:hsla(200,50%,50%,.2)}.t-wrap.t-type-a:hover{background:hsla(60,50%,50%,.2)}.t-wrap.t-type-f:hover{background:hsla(0,50%,50%,.2)}.t-tower{cursor:pointer;height:28px;margin:auto;width:28px}.t-range{border:2px solid transparent;border-radius:100%;left:50%;opacity:0;pointer-events:none;top:50%;transform:translate(-50%,-50%) scale(0.5);transition:all 150ms ease-in-out;z-index:1}.t-type-e .t-range{background:hsla(120,100%,90%,.1);border-color:hsla(120,100%,70%,.3)}.t-type-w .t-range{background:hsla(200,100%,90%,.1);border-color:hsla(200,100%,70%,.3)}.t-type-a .t-range{background:hsla(60,100%,90%,.1);border-color:hsla(60,100%,70%,.3)}.t-type-f .t-range{background:hsla(0,100%,90%,.1);border-color:hsla(0,100%,70%,.3)}.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 transparent}.t-type-e .t-slab{background:#0c260c;border-color:#1e7a1e}.t-type-w .t-slab{background:#0c1d26;border-color:#1e5b7a}.t-type-a .t-slab{background:#26260c;border-color:#7a7a1e}.t-type-f .t-slab{background:#260c0c;border-color:#7a1e1e}.t-base{border:4px solid #111;border-radius:50%}.t-type-e .t-base{background:#2d6b2d;box-shadow:0 0 0 1px #2d6b2d}.t-type-w .t-base{background:#2d566b;box-shadow:0 0 0 1px #2d566b}.t-type-a .t-base{background:#6b6b2d;box-shadow:0 0 0 1px #6b6b2d}.t-type-f .t-base{background:#6b2d2d;box-shadow:0 0 0 1px #6b2d2d}.t-turret{background:#6c6;height:50%;left:0;top:0;transform-origin:100% 100%;width:50%}.t-type-e .t-turret{background:#7ce87c}.t-type-w .t-turret{background:#7cc4e8}.t-type-a .t-turret{background:#e8e87c}.t-type-f .t-turret{background:#e87c7c}.t-core{border-radius:50%;margin:auto}.t-type-e .t-core{background:#65ff65}.t-type-w .t-core{background:#65cbff}.t-type-a .t-core{background:#feff65}.t-type-f .t-core{background:#ff6565}.t-lvl-bar{background:hsla(0,0%,100%,.25);bottom:0;height:2px;width:12px}.t-lvl-bar-0{left:0}.t-lvl-bar-1{left:13px;width: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:#47ea47}.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:#47b4ea}.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:#eaea47}.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:#ea4747}.enemy{border-style:solid;border-width:4px;left:0;pointer-events:none;position:absolute;top:0;transition:box-shadow 100ms,opacity 100ms;z-index:100}.enemy.slow{box-shadow:0 0 0 8px hsla(200,100%,30%,.5);opacity:.5}.hp{border:1px solid hsla(0,0%,100%,.5);border-top:none;border-right:none;height:300%;left:-8px;position:absolute;bottom:-8px;width:300%;z-index:5}.enemy.boss .hp{left:-10px;bottom:-10px}.enemy.type-e .hp{border-color:#9f9}.enemy.type-w .hp{border-color:#99dcff}.enemy.type-a .hp{border-color:#feff99}.enemy.type-f .hp{border-color:#f99}.hl{border:1px solid #fff;border-bottom:none;border-left:none;bottom:0;left:0;right:0;position:absolute;top:0}.enemy.boss{border-width:6px}.enemy.type-e{border-color:#0b410b #0b410b #47ea47 #47ea47}.enemy.type-w{border-color:#0b2f41 #0b2f41 #47b4ea #47b4ea}.enemy.type-a{border-color:#41410b #41410b #eaea47 #eaea47}.enemy.type-f{border-color:#410b0b #410b0b #ea4747 #ea4747}.enemy.type-e .hl{border-color:#47ea47}.enemy.type-w .hl{border-color:#47b4ea}.enemy.type-a .hl{border-color:#eaea47}.enemy.type-f .hl{border-color:#ea4747}.enemy.boss:before{border:2px solid transparent;border-left:none;border-bottom:none;border-radius:100%;bottom:-18px;content:'';left:-18px;right:-18px;position:absolute;top:-18px}.enemy.type-e:before{border-color:#47ea47}.enemy.type-w:before{border-color:#47b4ea}.enemy.type-a:before{border-color:#eaea47}.enemy.type-f:before{border-color:#ea4747}.enemy:after{background:hsla(0,0%,100%,.5);bottom:-4px;content:'';left:-4px;right:-4px;opacity:0;position:absolute;top:-4px;transition:opacity 300ms ease-out}.enemy.boss:after{bottom:-6px;left:-6px;right:-6px;top:-6px}.enemy.hit:after{opacity:1;transition-duration:0ms}.enemy.type-e:after{box-shadow:0 0 0 4px #9f9}.enemy.type-w:after{box-shadow:0 0 0 4px #99dcff}.enemy.type-a:after{box-shadow:0 0 0 4px #feff99}.enemy.type-f:after{box-shadow:0 0 0 4px #f99}.bullet{border-radius:10px 10px 10px 0;left:0;position:absolute;top:0;z-index:150}.bullet.type-e{background:#9f9}.bullet.type-w{background:#99dcff}.bullet.type-a{background:#feff99}.bullet.type-f{background:#f99}@-webkit-keyframes pulse{to{opacity:0}}@keyframes pulse{to{opacity:0}}
/* Local result card: available under the existing iframe sandbox. */
.result-overlay[hidden] { display: none; }
.result-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: rgba(0, 0, 0, .78); color: #eee; }
.result-card { width: min(100%, 440px); padding: 32px; border: 1px solid #777; background: #191919; text-align: center; box-shadow: 0 12px 48px #000; }
.result-card h1 { margin: 0 0 20px; font-size: 32px; }
.result-card p { margin: 0 0 24px; font-size: 18px; line-height: 1.5; }
.result-restart { padding: 12px 28px; border: 1px solid #eee; background: #eee; color: #111; font: bold 18px helvetica, sans-serif; cursor: pointer; }
.result-restart:hover { background: #fff; }
.result-restart:focus-visible { outline: 3px solid #fbd86a; outline-offset: 5px; }
