*{margin:0;padding:0;box-sizing:border-box}:root{--ember: #ff8a3c;--ember-hot: #ffb066;--coal: #17111f;--panel: rgba(26, 19, 34, .92);--panel-edge: rgba(255, 138, 60, .22);--bone: #f4e9dc;--dim: #a89aa8;--blue: #7fb3ff;--gold: #ffd23f;--red: #ff5560;--frost: #9fd8ff;--good: #62d97a;--bad: #ff5560}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#0b0812;font-family:Nunito,system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:none}body{position:fixed;inset:0}img,canvas{-webkit-user-drag:none}#app{position:fixed;inset:0;touch-action:none}#app:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 125% 100% at 50% 46%,transparent 60%,rgba(11,8,18,.38) 100%);z-index:2}canvas.world{position:absolute;inset:0;display:block;z-index:1}.ui-root{position:absolute;inset:0;z-index:3;pointer-events:none}.ui-root .iconb,.ui-root .power,.ui-root #earlycall button,.ui-root .handcard,.ui-root .towercard,.ui-root #wavebtn,.ui-root #radial,.ui-root #radial button,.ui-root .screen,.ui-root .screen *{pointer-events:auto}.ui-root>*{position:absolute}button{font-family:Fredoka,Nunito,system-ui,sans-serif;border:none;cursor:pointer;color:var(--bone);background:none}#hud{top:0;left:0;right:0;display:flex;align-items:center;gap:6px;padding:calc(env(safe-area-inset-top,0px) + 8px) 10px 6px;z-index:5}#hud .chip{display:inline-flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:999px;padding:4px 12px;font-family:Fredoka,sans-serif;font-size:15px;letter-spacing:.02em;pointer-events:auto}#hud .chip.gold{color:var(--gold)}#hud .chip.gold.bump{animation:hudGoldBump .35s ease-out}@keyframes hudGoldBump{30%{transform:scale(1.18)}}#hud .hearts{display:inline-flex;gap:1px;padding:5px 10px}#hud .hearts .h{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 6px #ff5560b3}#hud .hearts .h.off{background:#4a3540;box-shadow:none}#hud .spacer{flex:1}#hud .iconb{pointer-events:auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--panel-edge);border-radius:10px;font-size:16px}#hud.freeze{filter:hue-rotate(150deg) saturate(1.2)}#powers{left:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 108px);display:flex;flex-direction:column;gap:10px;z-index:5}.power{position:relative;width:56px;height:56px;border-radius:16px;background:var(--panel);border:1px solid var(--panel-edge);display:flex;align-items:center;justify-content:center;font-size:26px;pointer-events:auto;box-shadow:0 4px 18px #00000073}.power .cd{position:absolute;inset:0;border-radius:16px;background:conic-gradient(rgba(10,6,14,.78) var(--p, 0%),transparent 0);display:none}.power.oncd .cd{display:block}.power .free{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--ember);color:#241305;font-size:12px;font-weight:700;font-family:Nunito,sans-serif;display:flex;align-items:center;justify-content:center;padding:0 4px}.power.targeting{outline:2px solid var(--ember-hot);box-shadow:0 0 18px #ff8a3ccc}.power:disabled{opacity:.55}#earlycall{right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 108px);z-index:5;display:none}#earlycall.show{display:block}#earlycall button{background:linear-gradient(180deg,#3d2c1c,#241505);border:1px solid rgba(255,210,63,.55);color:var(--gold);border-radius:14px;padding:10px 14px;font-size:14px;box-shadow:0 0 #ffd23f80;animation:earlyPulse 1.4s ease-in-out infinite}@keyframes earlyPulse{0%,to{box-shadow:0 0 4px #ffd23f40}50%{box-shadow:0 0 18px #ffd23fa6}}#tray{left:0;right:0;bottom:0;padding:6px 8px calc(env(safe-area-inset-bottom,0px) + 8px);display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,transparent,rgba(11,8,18,.82) 30%);z-index:6}#hand{display:flex;gap:6px;justify-content:center;min-height:58px}.handcard{width:52px;height:58px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:10px;position:relative;pointer-events:auto;display:flex;align-items:center;justify-content:center}.handcard canvas{width:40px;height:40px}.handcard .n{position:absolute;right:3px;bottom:2px;font-family:Fredoka;font-size:12px;color:var(--ember-hot)}.handcard:active{transform:scale(.94)}#hand .hint{align-self:center;color:var(--dim);font-size:12.5px;text-align:center;line-height:1.3;max-width:240px}#shopline{display:flex;gap:6px;align-items:stretch;justify-content:center}.towercard{flex:1;max-width:86px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:10px;padding:5px 4px 6px;text-align:center;pointer-events:auto}.towercard .ico{font-size:19px}.towercard .nm{font-family:Fredoka;font-size:11.5px;letter-spacing:.02em;margin-top:1px}.towercard .cost{font-size:11px;color:var(--gold)}.towercard.poor{opacity:.45}.towercard:active{transform:scale(.96)}#wavebtn{margin:2px auto 0;background:linear-gradient(180deg,#ff9c4a,#e06a1a);color:#fff7ec;font-size:17px;letter-spacing:.05em;border-radius:14px;padding:11px 30px;box-shadow:0 4px 22px #e06a1a80;pointer-events:auto}#wavebtn:active{transform:scale(.97)}#wavebtn small{display:block;font-size:10.5px;opacity:.85;letter-spacing:.02em}#radial{display:none;z-index:8;pointer-events:auto;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:14px;padding:7px;transform:translate(-50%,-100%);box-shadow:0 10px 28px #0000008c}#radial.show{display:flex}#radial .rw{display:flex;gap:4px}#radial button{min-width:74px;padding:7px 8px;border-radius:9px;background:#ff8a3c24;border:1px solid rgba(255,138,60,.25);font-size:12px;line-height:1.25}#radial button b{display:block;font-size:12.5px}#radial button.poor{opacity:.4}#radial button.sell{background:#ff556029;border-color:#ff55604d}#radial .tiers{text-align:center;font-size:10px;color:var(--dim);padding-bottom:2px}.screen{inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:10;background:radial-gradient(ellipse 110% 90% at 50% 30%,#171120e0,#0b0812f5);backdrop-filter:blur(2px);text-align:center;padding:24px}.screen.show{display:flex}.screen h1{font-family:Fredoka;font-size:34px;letter-spacing:.05em;color:var(--bone);text-shadow:0 0 26px rgba(255,138,60,.4);margin-bottom:6px}.screen h1 .e{color:var(--ember)}.screen .sub{color:var(--dim);font-size:14px;margin-bottom:26px;line-height:1.5}#screen-menu{background:radial-gradient(ellipse 120% 42% at 50% 84%,rgba(255,106,32,.16),transparent 60%),radial-gradient(ellipse 110% 90% at 50% 28%,#1711209e,#0b0812db);backdrop-filter:blur(1.5px)}#screen-menu h1{font-size:46px;letter-spacing:.04em;margin-bottom:2px}#screen-menu h1 .e{background:linear-gradient(180deg,#ffd98a,#ff8a3c 55%,#e8552a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 0 18px rgba(255,122,40,.55))}.screen .bigb{background:linear-gradient(180deg,#ffab54,#e06a1a);color:#241108;font-size:19px;letter-spacing:.06em;font-weight:700;padding:15px 44px;min-height:56px;border-radius:16px;margin-top:12px;box-shadow:0 6px 30px #e06a1a8c,inset 0 1px #ffffff59}.screen .bigb:disabled{opacity:.45;box-shadow:none}.screen .flatb{color:var(--bone);font-size:14px;margin-top:14px;padding:10px 18px;min-height:44px;border-radius:10px;border:1px solid rgba(127,179,255,.4);background:#1c223480}.screen .flatb:disabled{color:var(--dim);border-color:#a89aa840;background:none}.screen .menulinks{display:flex;gap:18px;margin-top:10px}#screen-menu .howto{margin-top:24px;max-width:320px;text-align:left;color:var(--dim);font-size:13px;line-height:1.65;background:var(--panel);border:1px solid var(--panel-edge);border-radius:14px;padding:14px 16px}#screen-menu .howto b{color:var(--ember-hot)}#screen-menu .bestrow{margin-top:16px;color:var(--dim);font-size:12.5px}#screen-menu .bestrow b{color:var(--gold)}#screen-levels .grid{display:grid;grid-template-columns:repeat(5,56px);gap:8px;max-height:46vh;overflow-y:auto;padding:4px}.lvlb{width:56px;height:56px;border-radius:12px;background:var(--panel);border:1px solid var(--panel-edge);font-family:Fredoka;font-size:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0px}.lvlb .st{font-size:9px;letter-spacing:1px;color:var(--gold);height:11px}.lvlb.locked{opacity:.35}.lvlb.locked .st{color:var(--dim)}#screen-levels .endless{margin-top:16px;padding:12px 20px;border-radius:14px;border:1px dashed rgba(255,138,60,.4);color:var(--ember-hot);font-family:Fredoka;font-size:15px}#screen-levels .endless.locked{color:var(--dim);border-color:#9696a04d}.card{background:var(--panel);border:1px solid var(--panel-edge);border-radius:20px;padding:26px 30px;display:flex;flex-direction:column;align-items:center;box-shadow:0 16px 48px #0009;min-width:260px}.card h2{font-family:Fredoka;font-size:26px;margin-bottom:4px}.card h2.win{color:var(--good);text-shadow:0 0 20px rgba(98,217,122,.5)}.card h2.lose{color:var(--red);text-shadow:0 0 20px rgba(255,85,96,.5)}.card .stars{font-size:30px;letter-spacing:6px;color:var(--gold);margin:8px 0 4px;min-height:36px}.card .stars .got{animation:starPop .4s cubic-bezier(.2,2.4,.4,1);display:inline-block}@keyframes starPop{0%{transform:scale(0) rotate(-40deg)}to{transform:scale(1) rotate(0)}}.card .rows{color:var(--dim);font-size:13px;margin:6px 0 14px;line-height:1.7}.card .rows b{color:var(--bone)}.card .rowbtns{display:flex;gap:10px;margin-top:6px}#toast{left:50%;transform:translate(-50%);top:17%;background:#140e1af2;border:1px solid rgba(255,85,96,.5);color:var(--bone);padding:9px 16px;border-radius:12px;font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .18s;z-index:12;max-width:78%;text-align:center}#toast.show{opacity:1}#freezewash{inset:0;pointer-events:none;z-index:4;opacity:0;transition:opacity .25s;background:radial-gradient(ellipse 120% 105% at 50% 45%,#78beff1a,#3c78dc3d);box-shadow:inset 0 0 90px #9fd8ff8c}#freezewash.show{opacity:1}#bossbanner{left:50%;transform:translate(-50%) scale(.7);top:22%;font-family:Fredoka;font-size:24px;color:var(--red);letter-spacing:.12em;text-shadow:0 0 24px rgba(255,60,80,.8);opacity:0;transition:all .3s cubic-bezier(.2,2.2,.4,1);z-index:12;pointer-events:none}#bossbanner.show{opacity:1;transform:translate(-50%) scale(1)}#dragbadge{position:fixed;z-index:14;pointer-events:none;width:46px;height:46px;border-radius:10px;background:var(--panel);border:1px solid var(--panel-edge);display:none;align-items:center;justify-content:center;transform:translate(-50%,-88%);opacity:.92}#dragbadge.show{display:flex}#dragbadge canvas{width:38px;height:38px}.hidden{display:none!important}
