:root{--bg-deep: #1c1210;--bg-panel: #2a3142;--bg-panel-dark: #222836;--border: #3d4659;--accent: #e8913a;--accent-hot: #f0a84a;--yellow: #f5d76e;--yellow-btn: #e8c84a;--hp: #c43c3c;--hp-bg: #4a2222;--text: #e8e4d8;--text-dim: #9aa3b5;--locked: #5a6478;--ground-sand: #8a5040;--grass: #68c058}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--bg-deep);font-family:"Press Start 2P",monospace;color:var(--text);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:none}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.screen{position:absolute;inset:0;pointer-events:none;z-index:10}.menu-body.hidden,.talents-body.hidden,.stats-body.hidden,.settings-body.hidden,.talent-reveal.hidden,.confirm-overlay.hidden,.hidden{display:none!important}#menu,#hud,#result{opacity:0;visibility:hidden;transition:opacity .42s ease,visibility .42s ease}#menu:not(.hidden),#hud:not(.hidden),#result:not(.hidden){opacity:1;visibility:visible}#menu.hidden,#result.hidden{display:flex!important;pointer-events:none!important}#hud.hidden{display:block!important;pointer-events:none!important}.screen>*{pointer-events:auto}#screen-fade{position:fixed;inset:0;z-index:120;background:#0a0c14;opacity:0;pointer-events:none;transition:opacity .32s ease}#screen-fade.on{opacity:1;pointer-events:auto}#menu{background:radial-gradient(ellipse at 50% 30%,#2c3548 0%,transparent 55%),linear-gradient(180deg,#1e2433,#151a26);display:flex;flex-direction:column;padding:max(.75rem,env(safe-area-inset-top)) max(.85rem,env(safe-area-inset-right)) max(.85rem,env(safe-area-inset-bottom)) max(.85rem,env(safe-area-inset-left));gap:.75rem;touch-action:manipulation}.menu-top{display:flex;flex-direction:column;align-items:stretch;gap:.65rem}.coin-display{display:flex;align-items:center;gap:.5rem;font-size:.65rem;color:var(--yellow)}.coin-display.compact{font-size:.55rem;margin-top:.4rem}.coin-display.coin-pulse{animation:coin-hud-pulse .32s ease-out}@keyframes coin-hud-pulse{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.38);filter:brightness(1.45)}to{transform:scale(1);filter:brightness(1)}}.coin-icon{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe08a,#d4a017 55%,#8a6a10);box-shadow:inset 0 -2px #00000040;flex-shrink:0}.menu-tabs{display:flex;gap:.35rem;width:100%}.tab{font-family:inherit;font-size:.34rem;padding:.65rem .25rem;border:2px solid var(--border);background:var(--bg-panel-dark);color:var(--yellow);cursor:pointer;flex:1;text-align:center;line-height:1.35;touch-action:manipulation}.tab.active{background:var(--accent);color:#fff;border-color:#c4742e}.menu-body{flex:1;display:flex;flex-direction:column;gap:.65rem;min-height:0}.weapon-list{display:flex;flex-direction:row;gap:.55rem;overflow-x:auto;overflow-y:hidden;padding:.15rem .1rem .4rem;scrollbar-width:thin;scrollbar-color:var(--accent) transparent;-webkit-overflow-scrolling:touch;touch-action:pan-x;flex-shrink:0}.weapon-row{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:56px}.weapon-icon{width:48px;height:48px;background:linear-gradient(165deg,#343c52,#232938 55%,#1c2230);border:2px solid var(--border);display:grid;place-items:center;font-size:1.05rem;flex-shrink:0;cursor:pointer;padding:0;font-family:inherit;color:inherit;appearance:none;-webkit-appearance:none;transition:border-color .12s ease,box-shadow .12s ease,transform .08s ease;box-shadow:inset 0 1px #ffffff12,inset 0 -3px #00000047}.weapon-icon.selected{border-color:var(--accent);box-shadow:0 0 0 2px #e8913a73,inset 0 1px #ffdca01f,inset 0 -3px #00000047;background:linear-gradient(165deg,#3e465c,#2c3448 55%,#252c3c)}.weapon-icon.locked-icon{cursor:default;opacity:.42;filter:grayscale(.55) brightness(.72)}.weapon-btn{width:100%;min-width:52px;font-family:inherit;font-size:.32rem;padding:.2rem .15rem;border:none;background:transparent;color:var(--text-dim);cursor:pointer;touch-action:manipulation;line-height:1.35}.weapon-btn.selected{color:var(--accent-hot)}.weapon-btn.locked{cursor:default;opacity:.7}.upgrade-panel{background:var(--bg-panel);border:3px solid var(--border);padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;gap:.7rem;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch;touch-action:pan-y}.upgrade-panel h2{font-size:.7rem;color:var(--yellow);margin-bottom:0}.upgrade-panel .desc{font-size:.45rem;line-height:1.7;color:var(--text-dim);margin-bottom:.15rem}.upgrade-panel .power-summary{margin-top:auto;padding-top:.85rem;border-top:1px solid var(--border);color:var(--text);font-size:.4rem;line-height:1.65}.stat-row{display:grid;grid-template-columns:72px 1fr 58px 36px;align-items:center;gap:.45rem;padding:.2rem 0}.stat-label{font-size:.45rem;color:var(--text)}.stat-bars{display:flex;gap:3px;height:18px;align-items:stretch}.stat-bars span{flex:1;background:#11151e;border:1px solid #0a0c12;max-width:10px;transform-origin:center bottom}.stat-bars span.filled{background:linear-gradient(180deg,#6ec8ff,#2a7ab8)}.stat-bars.seeker span.filled{background:linear-gradient(180deg,#d090ff,#7a28c8)}.stat-bars.multishot span.filled{background:linear-gradient(180deg,#d4a060,#8a5a28)}.stat-bars.swords span.filled{background:linear-gradient(180deg,#d8e0ec,#7a8498)}.stat-bars.orb span.filled{background:linear-gradient(180deg,#6eef9a,#2a9a55)}.stat-bars.mortar span.filled{background:linear-gradient(180deg,#6a6a70,#2a2a30)}.stat-bars.defense span.filled{background:linear-gradient(180deg,#8ad0ff,#2a78c8)}.icon-mortar:before{content:"";position:absolute;width:15px;height:15px;border-radius:50%;left:50%;top:54%;transform:translate(-50%,-50%);background:radial-gradient(circle at 32% 28%,#8a8a92,#3a3a42 55%,#141418);box-shadow:inset 0 -3px #00000059,0 0 0 2px #1a1a1e}.icon-mortar:after{content:"";position:absolute;width:3px;height:8px;left:50%;top:18%;transform:translate(-50%);border-radius:1px;background:linear-gradient(180deg,#ffd060,#c47828);box-shadow:0 -3px 4px #ffb43c8c}.icon-defense:before{content:"";position:absolute;width:18px;height:20px;left:50%;top:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#9ad0ff,#4a98d8 40%,#1e5a9a);clip-path:polygon(50% 0%,100% 18%,100% 58%,50% 100%,0% 58%,0% 18%);box-shadow:0 0 8px #50a0ff59}.icon-defense:after{content:"";position:absolute;width:6px;height:8px;left:50%;top:46%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#ffffff8c,#ffffff0d);clip-path:polygon(50% 0%,100% 25%,100% 70%,50% 100%,0% 70%,0% 25%);opacity:.85}.stat-cost{font-size:.4rem;color:var(--yellow);text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:.3rem}.stat-cost.unaffordable{color:#e85a5a}.weapon-icon{position:relative;overflow:hidden}.icon-flame:before{content:"";position:absolute;width:13px;height:13px;left:50%;top:38%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff4c8,#ff9a3a 42%,#d43810);box-shadow:0 0 10px #ff7828bf,0 0 2px #ffd080;z-index:2}.icon-flame:after{content:"";position:absolute;width:7px;height:16px;left:50%;top:58%;transform:translate(-50%,-20%);background:linear-gradient(180deg,#ffb040 0%,#ff6020 45%,transparent 100%);border-radius:40% 40% 50% 50%;clip-path:polygon(50% 0%,85% 30%,70% 100%,30% 100%,15% 30%);filter:blur(.2px);z-index:1}.icon-wand:before{content:"";position:absolute;width:13px;height:13px;left:50%;top:36%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 32% 28%,#f0d8ff,#b44dff 48%,#5a18a8);box-shadow:0 0 10px #9b3dffcc,4px -3px 0 -4px #e0b0ff,-5px 2px 0 -4px #c080ff;z-index:2}.icon-wand:after{content:"";position:absolute;width:4px;height:16px;left:50%;top:58%;transform:translate(-50%,-10%);border-radius:2px;background:linear-gradient(180deg,#e0c090,#a07840 55%,#6a4828);box-shadow:inset 1px 0 #ffffff40;z-index:1}.icon-seeds:before,.icon-multishot:before{content:"";position:absolute;width:8px;height:8px;left:50%;top:42%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe0a8,#d48840 60%,#8a5020);box-shadow:0 0 6px #d488408c,-9px 7px #c47838,9px 7px #c47838,-9px 7px 0 -1px #ffc87859,9px 7px 0 -1px #ffc87859;z-index:2}.icon-seeds:after,.icon-multishot:after{content:"";position:absolute;width:22px;height:10px;left:50%;top:68%;transform:translate(-50%,-50%);background:linear-gradient(115deg,transparent 40%,rgba(212,136,64,.35) 50%,transparent 60%),linear-gradient(90deg,transparent 40%,rgba(212,136,64,.35) 50%,transparent 60%),linear-gradient(65deg,transparent 40%,rgba(212,136,64,.35) 50%,transparent 60%);z-index:1}.icon-blade:before{content:"";position:absolute;width:5px;height:18px;left:50%;top:42%;transform:translate(-50%,-50%);border-radius:2px 2px 1px 1px;background:linear-gradient(90deg,#9aa8c0,#eef2fa 45%,#7a8898);box-shadow:0 -1px #fff,0 0 6px #c8dcff40;z-index:2}.icon-blade:after{content:"";position:absolute;width:14px;height:4px;left:50%;top:64%;transform:translate(-50%,-50%);border-radius:1px;background:linear-gradient(180deg,#e8c868,#a88830);box-shadow:0 6px 0 -1px #8a6840,0 10px 0 -3px #c4a060;z-index:1}.icon-orb:before{content:"";position:absolute;width:16px;height:16px;left:50%;top:48%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 32% 28%,#e8ffe8,#4ae878 45%,#1a8040);box-shadow:0 0 10px #3ecf6ad9,0 0 2px #a8ffc0,inset 0 -3px 4px #003c1e59;z-index:2}.icon-orb:after{content:"";position:absolute;width:20px;height:8px;left:22%;top:58%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(80,230,140,.45),transparent 70%);filter:blur(1px);z-index:1}.buy-btn{font-family:inherit;font-size:.7rem;width:40px;height:36px;border:2px solid #c4a020;background:var(--yellow-btn);color:#3a3008;cursor:pointer;line-height:1;touch-action:manipulation;box-shadow:inset 0 1px #ffffff59,inset 0 -2px #00000038,0 2px #6a5810}.buy-btn:disabled{opacity:.4;cursor:default}.buy-btn:not(:disabled):active{transform:scale(.88);filter:brightness(1.15)}.stat-row.stat-bought{animation:stat-bought-flash .42s ease-out}.stat-row.stat-bought .stat-bars span.filled:last-of-type{animation:bar-pip-pop .42s ease-out}@keyframes stat-bought-flash{0%{background:#e8c84a38}to{background:transparent}}@keyframes bar-pip-pop{0%{transform:scaleY(1);filter:brightness(1)}40%{transform:scaleY(1.55);filter:brightness(1.45)}to{transform:scaleY(1);filter:brightness(1)}}.play-btn{align-self:stretch;font-family:inherit;font-size:.8rem;padding:1rem 1.5rem;border:3px solid #c4a020;background:var(--yellow-btn);color:#fff;text-shadow:2px 2px 0 #8a7010;cursor:pointer;letter-spacing:.05em;touch-action:manipulation;flex-shrink:0;transition:transform .08s ease,filter .12s ease}.play-btn:hover{filter:brightness(1.08)}.play-btn:active{transform:scale(.97);filter:brightness(1.12)}.talents-body{display:flex;flex-direction:column;gap:.85rem;min-height:0;overflow:hidden;flex:1}.talents-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem .65rem;overflow-y:auto;padding:.5rem .15rem;align-content:space-evenly;justify-items:center;min-height:0}.talent-card{display:flex;flex-direction:column;align-items:center;gap:.42rem;text-align:center;width:100%;max-width:120px}.talent-hex{width:82px;height:90px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--bg-panel-dark);border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;position:relative;box-shadow:0 0 0 3px #6a7388;transition:transform .08s ease,filter .08s ease,box-shadow .08s ease;flex-shrink:0}.talent-card.rarity-common .talent-hex{box-shadow:0 0 0 3px #9aa3b5;background:linear-gradient(180deg,#4a5266,#2e3648)}.talent-card.rarity-rare .talent-hex{box-shadow:0 0 0 3px #4ec4f0;background:linear-gradient(180deg,#2e6288,#1a3a58)}.talent-card.rarity-epic .talent-hex{box-shadow:0 0 0 3px #f0c24a;background:linear-gradient(180deg,#6a5428,#3e3018)}.talent-card.locked .talent-hex{filter:none;opacity:.92}.talent-card.locked.rarity-common .talent-hex{box-shadow:0 0 0 3px #7a8498;background:linear-gradient(180deg,#3a4254,#262e3e)}.talent-card.locked.rarity-rare .talent-hex{box-shadow:0 0 0 3px #3aa8d8;background:linear-gradient(180deg,#244a68,#162838)}.talent-card.locked.rarity-epic .talent-hex{box-shadow:0 0 0 3px #d4a838;background:linear-gradient(180deg,#524020,#2e2410)}.talent-icon{font-size:1.35rem;line-height:1;color:#fff}.talent-card.locked .talent-icon{color:#e8e4d8c7}.talent-rarity{font-size:.36rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em}.talent-card.rarity-rare .talent-rarity{color:#7ed4ff}.talent-card.rarity-epic .talent-rarity{color:var(--yellow)}.talent-card.locked .talent-rarity{opacity:.95}.talent-name{font-size:.48rem;color:var(--text);line-height:1.45;max-width:100%;text-shadow:1px 1px 0 rgba(0,0,0,.45)}.talent-card.locked .talent-name{color:#c8cdd8}.talent-desc{font-size:.38rem;color:#b4bcc8;line-height:1.55;max-width:100%}.talent-card.locked .talent-desc{color:#9aa3b5}.talent-lock-tag{font-size:.34rem;color:#8a93a5;letter-spacing:.06em;text-transform:uppercase;margin-top:.05rem}.unlock-talent-btn{align-self:stretch;font-family:inherit;font-size:.45rem;padding:.95rem 1rem;border:3px solid #c4a020;background:var(--yellow-btn);color:#fff;text-shadow:2px 2px 0 #8a7010;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.65rem;touch-action:manipulation;flex-shrink:0;box-shadow:inset 0 1px #ffffff47,0 3px #6a5810}.unlock-talent-btn:disabled{opacity:.45;cursor:default;box-shadow:none}.unlock-talent-btn:not(:disabled):active{transform:translateY(2px);box-shadow:inset 0 1px #fff3,0 1px #6a5810}.unlock-cost{display:inline-flex;align-items:center;gap:.3rem;color:#fff8d8;text-shadow:1px 1px 0 #8a7010}.talent-card.roll-focus .talent-hex{transform:scale(1.08);filter:brightness(1.35);box-shadow:0 0 0 3px var(--yellow-btn),0 0 16px #e8c84a8c;transition:transform .05s,filter .05s,box-shadow .05s}.talent-card.roll-winner .talent-hex{transform:scale(1.12);animation:talent-winner-pulse .45s ease-out 2;box-shadow:0 0 0 3px #fff,0 0 22px #ffdc64cc}@keyframes talent-winner-pulse{0%{transform:scale(1)}50%{transform:scale(1.18)}to{transform:scale(1.12)}}.talent-reveal{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0a0c12c7;pointer-events:auto}.talent-reveal.hidden{display:none!important}.talent-reveal-card{display:flex;flex-direction:column;align-items:center;gap:.85rem;padding:1.5rem 2rem;background:var(--bg-panel);border:3px solid var(--border);max-width:90vw;text-align:center}.talent-reveal-hex{width:110px;height:120px;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;background:linear-gradient(180deg,#3a4254,#2a3142);box-shadow:0 0 0 4px #8a93a5}.talent-reveal-hex.rarity-common{box-shadow:0 0 0 4px #8a93a5}.talent-reveal-hex.rarity-rare{box-shadow:0 0 0 4px #4aa8d8;background:linear-gradient(180deg,#2a4a62,#1e3448)}.talent-reveal-hex.rarity-epic{box-shadow:0 0 0 4px #e8b84a;background:linear-gradient(180deg,#5a4828,#3a3018)}.talent-reveal-hex.spinning{animation:talent-spin-wobble .18s linear infinite}.talent-reveal-hex.revealed{animation:talent-pop-in .45s cubic-bezier(.2,1.4,.4,1) both}@keyframes talent-spin-wobble{0%{transform:rotate(-4deg) scale(.96)}50%{transform:rotate(4deg) scale(1.04)}to{transform:rotate(-4deg) scale(.96)}}@keyframes talent-pop-in{0%{transform:scale(.4);filter:brightness(2)}to{transform:scale(1);filter:brightness(1)}}.talent-reveal-icon{font-size:1.8rem;color:#fff;line-height:1}.talent-reveal-rarity{font-size:.35rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.06em}.talent-reveal-hex.rarity-rare .talent-reveal-rarity{color:#6ec8ff}.talent-reveal-hex.rarity-epic .talent-reveal-rarity{color:var(--yellow)}.talent-reveal-name{font-size:.65rem;color:var(--yellow);line-height:1.4}.talent-reveal-desc{font-size:.4rem;color:var(--text-dim);line-height:1.6;max-width:240px;min-height:1.2rem}.talent-reveal-ok{align-self:center;font-size:.55rem;padding:.7rem 1.5rem}.talent-reveal.show-result .talent-reveal-card{animation:talent-card-settle .35s ease-out}@keyframes talent-card-settle{0%{transform:translateY(12px);opacity:.6}to{transform:translateY(0);opacity:1}}.stats-body{display:flex;min-height:0}.stats-panel{width:100%}.settings-body{display:flex;min-height:0}.settings-panel{width:100%;gap:.85rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer}.settings-label{font-size:.5rem;color:var(--text)}.settings-toggle{position:relative}.settings-toggle input{position:absolute;opacity:0;width:0;height:0}.settings-switch{width:44px;height:24px;border:2px solid var(--border);background:#2a3142;position:relative;flex-shrink:0;transition:background .2s ease}.settings-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#8a93a8;transition:transform .2s ease,background .2s ease}.settings-toggle input:checked+.settings-switch{background:#2a5a3a;border-color:#3ecf6a}.settings-toggle input:checked+.settings-switch:after{transform:translate(20px);background:#6eef9a}.settings-volume{display:flex;flex-direction:column;gap:.45rem;cursor:default}.settings-graphics{display:flex;flex-direction:column;gap:.45rem}.graphics-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}.graphics-opt{font-family:inherit;font-size:.42rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);background:#222836;border:2px solid var(--border);padding:.55rem .2rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.graphics-opt:hover{color:var(--text);border-color:#5a6478}.graphics-opt.active{color:#e8ffe8;background:#2a5a3a;border-color:#3ecf6a}.settings-volume-row{display:flex;align-items:center;gap:.55rem}.settings-volume-row input[type=range]{flex:1;accent-color:#3ecf6a;min-width:0}#settings-sfx-volume-v{font-size:.4rem;color:var(--text-dim);min-width:2.4rem;text-align:right}.settings-divider{height:2px;background:var(--border);opacity:.5}.settings-warn{line-height:1.7}.danger-btn{font-family:inherit;font-size:.45rem;padding:.85rem 1rem;border:2px solid #a83838;background:#3a1820;color:#ff6a6a;cursor:pointer;touch-action:manipulation;width:100%}.danger-btn:hover{filter:brightness(1.1)}.confirm-overlay{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#080a10d1;pointer-events:auto;padding:1rem}.confirm-card{background:var(--bg-panel);border:3px solid #a83838;padding:1.25rem 1rem;width:min(320px,100%);display:flex;flex-direction:column;gap:.85rem;text-align:center}.confirm-card h2{font-size:.65rem;color:#ff6a6a}.confirm-actions{display:flex;gap:.5rem}.confirm-cancel{flex:1;font-family:inherit;font-size:.42rem;padding:.8rem .5rem;border:2px solid var(--border);background:var(--bg-panel-dark);color:var(--text);cursor:pointer;touch-action:manipulation}.confirm-actions .danger-btn{flex:1;width:auto}@media(max-width:640px){.talents-grid{grid-template-columns:repeat(3,1fr);gap:.95rem .4rem;align-content:space-evenly;padding:.25rem 0}.talent-hex{width:72px;height:78px}.talent-icon{font-size:1.25rem}.talent-name{font-size:.44rem}.talent-desc{font-size:.36rem}.talent-rarity{font-size:.34rem}.talent-lock-tag{font-size:.32rem}}.cam-debug{position:fixed;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));z-index:100;width:min(200px,calc(100vw - 16px));max-height:min(70vh,calc(100dvh - 24px));overflow:auto;background:#161c28eb;border:2px solid #3d4659;font-family:"Press Start 2P",monospace;font-size:.32rem;color:#e8e4d8;pointer-events:auto;touch-action:manipulation}.cam-debug-header{display:flex;justify-content:space-between;align-items:center;padding:.55rem .65rem;background:#2a3142;border-bottom:1px solid #3d4659;color:#f5d76e}.cam-debug-toggle{font-family:inherit;font-size:.55rem;background:transparent;border:none;color:#f5d76e;cursor:pointer;line-height:1}.cam-debug-body{display:flex;flex-direction:column;gap:.45rem;padding:.65rem}.cam-debug-body.collapsed{display:none}.cam-debug-body label{display:grid;grid-template-columns:42px 1fr 28px;align-items:center;gap:.35rem}.cam-debug-body label.cam-check{display:flex;align-items:center;gap:.4rem;grid-template-columns:none}.cam-debug-body input[type=range]{width:100%;accent-color:#e8913a}.cam-debug-body input[type=checkbox]{accent-color:#e8913a}.cam-copy-btn{font-family:inherit;font-size:.32rem;padding:.45rem .4rem;border:2px solid #c4a020;background:#e8c84a;color:#3a3008;cursor:pointer}#hud{pointer-events:none;position:absolute;inset:0}#hud>*{pointer-events:auto}.hud-top{position:absolute;top:max(.75rem,env(safe-area-inset-top));left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));display:grid;grid-template-columns:1fr auto 1fr;align-items:start;pointer-events:none;gap:.35rem}.hud-left{display:flex;flex-direction:column;align-items:flex-start}.tower-hp-wrap{position:relative;width:min(240px,62vw);height:14px;background:var(--hp-bg);border:2px solid #2a1515;overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease;pointer-events:none;z-index:5;flex-shrink:0}.tower-hp-wrap.damaged{animation:hp-punch .32s ease-out}.tower-hp-wrap.hp-low .tower-hp-bar{background:linear-gradient(180deg,#f0a84a,#e85a3a)}.tower-hp-wrap.hp-critical{animation:hp-critical-pulse .7s ease-in-out infinite}.tower-hp-wrap.hp-critical .tower-hp-bar{background:linear-gradient(180deg,#ff6a6a,#c43c3c)}@keyframes hp-punch{0%{transform:scale(1);box-shadow:0 0 #e85a5ab3}35%{transform:scale(1.08,1.2);box-shadow:0 0 14px 2px #e85a5a8c}to{transform:scale(1);box-shadow:0 0 #e85a5a00}}@keyframes hp-critical-pulse{0%,to{border-color:#2a1515;filter:brightness(1)}50%{border-color:#e85a5a;filter:brightness(1.2)}}.tower-hp-bar{height:100%;width:100%;background:linear-gradient(180deg,#e85a5a,var(--hp));transform-origin:left center;transition:width .15s ease-out}.timer{font-size:.75rem;color:#fff;text-shadow:2px 2px 0 #000;justify-self:center;margin-top:.15rem;transition:color .2s ease,transform .2s ease}.timer.timer-clutch{color:var(--accent-hot);animation:timer-clutch-pulse .9s ease-in-out infinite}@keyframes timer-clutch-pulse{0%,to{transform:scale(1);text-shadow:2px 2px 0 #000}50%{transform:scale(1.08);text-shadow:0 0 10px rgba(240,168,74,.65),2px 2px 0 #000}}#hud.hud-hurt:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(180,30,30,.35) 100%);animation:hud-hurt-flash .28s ease-out forwards}@keyframes hud-hurt-flash{0%{opacity:1}to{opacity:0}}.objective{font-size:.38rem;color:#fff;text-shadow:2px 2px 0 #000,0 0 8px rgba(0,0,0,.45);justify-self:end;text-align:right;line-height:1.5;max-width:110px}.hud-bottom{position:absolute;left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));bottom:max(.85rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;min-height:2rem}.end-run-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:inherit;font-size:.32rem;padding:.45rem .7rem;border:2px solid var(--border);background:#1a1f2eb8;color:var(--text-dim);cursor:pointer;touch-action:manipulation;opacity:.88;pointer-events:auto}.end-run-btn:active{color:var(--text);border-color:#5a6478}#result{display:flex;align-items:center;justify-content:center;background:#0a0c1200;transition:opacity .42s ease,visibility .42s ease,background .45s ease;z-index:30}#result:not(.hidden){background:#0a0c12b8}.result-card{background:var(--bg-panel);border:3px solid var(--border);padding:1.5rem 1.25rem;text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center;width:min(340px,calc(100vw - 2rem));margin:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);transform:translateY(18px) scale(.92);opacity:0;transition:transform .48s cubic-bezier(.22,1.2,.36,1),opacity .4s ease}#result:not(.hidden) .result-card{transform:translateY(0) scale(1);opacity:1}#result.result-lost .result-card{border-color:#a83838}#result.result-lost .result-card h1{color:#ff6a6a;animation:result-title-punch .55s ease-out}#result.result-won .result-card h1{animation:result-title-punch .55s ease-out}@keyframes result-title-punch{0%{transform:scale(.6);opacity:0}55%{transform:scale(1.12);opacity:1}to{transform:scale(1)}}.result-card h1{font-size:1rem;color:var(--yellow)}.result-card p{font-size:.45rem;line-height:1.7;color:var(--text-dim)}.result-coins{color:var(--yellow)!important}@media(min-width:900px)and (min-aspect-ratio:4/5){.menu-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.menu-tabs{width:auto;justify-self:center}.tab{flex:none;padding:.6rem .75rem;font-size:.45rem}.menu-body{display:grid;grid-template-columns:160px 1fr;gap:1rem}.weapon-list{flex-direction:column;overflow-x:hidden;overflow-y:auto;touch-action:pan-y}.weapon-row{flex-direction:row;min-width:0;width:100%}.weapon-btn{flex:1;width:auto}.play-btn{align-self:flex-end;width:auto}.cam-debug{width:220px;font-size:.35rem}}.dev-corner{position:fixed;left:max(.55rem,env(safe-area-inset-left));bottom:max(.55rem,env(safe-area-inset-bottom));z-index:200;display:flex;flex-direction:column;gap:.28rem;pointer-events:none}.fps-meter,.app-version{font-family:"Press Start 2P",monospace;font-size:.42rem;color:#9aa3b5;text-shadow:1px 1px 0 #000;letter-spacing:.04em}.app-version{font-size:.36rem;color:#7a8498}#coin-fx-layer{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden}.fx-coin{position:absolute;width:16px;height:16px;margin:0;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe08a,#d4a017 55%,#8a6a10);box-shadow:inset 0 -2px #00000047,0 0 8px #ffc83c73;transform:translate(-50%,-50%);will-change:left,top,transform}.fx-coin-popup{position:absolute;font-family:"Press Start 2P",monospace;font-size:.58rem;color:#ffe08a;text-shadow:2px 2px 0 #000;transform:translate(-50%,-50%);white-space:nowrap;animation:fx-coin-popup .75s ease-out forwards;will-change:transform,opacity}@keyframes fx-coin-popup{0%{opacity:0;transform:translate(-50%,-20%) scale(.55)}18%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}to{opacity:0;transform:translate(-50%,-150%) scale(1)}}
