:root{--bg-deep: #1a1510;--bg-stone: #2a2218;--ink: #f2e6d4;--muted: #b8a78a;--amber: #d4923a;--amber-dim: #8a5a22;--slot-p1: #3d9b8f;--slot-p2: #d4923a;--slot-p3: #c45c48;--slot-p4: #a88bb8;--danger: #c45c48;--panel: rgba(22, 17, 12, .92);--font-display: "IBM Plex Serif", Georgia, serif;--font-ui: "IBM Plex Sans", "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(212,146,58,.12),transparent 55%),linear-gradient(180deg,#241c14 0%,var(--bg-deep) 55%,#100d0a 100%);color:var(--ink);font-family:var(--font-ui)}#app{position:relative;width:100%;height:100%;overflow:hidden}#game{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;background:#0c0a08;z-index:0}.hidden{display:none!important}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:1rem;padding:1.5rem;background:#0a0806b8;z-index:10}.panel{max-width:32rem;width:min(92vw,32rem);margin:0 auto;padding:1.75rem 1.5rem;background:var(--panel);border:1px solid var(--amber-dim);box-shadow:0 0 0 1px #0006,0 18px 40px #00000073}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--amber-dim);background:var(--bg-stone);color:var(--ink);font:600 1rem/1.2 var(--font-ui);padding:.75rem 1rem;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,transform .12s ease}.btn:hover:not(:disabled),.btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-color:var(--amber)}.btn.primary{background:linear-gradient(180deg,#6b3f18,#3d2410);border-color:var(--amber)}.btn.ghost{background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.btn+.btn{margin-top:.5rem}.build-stamp{position:fixed;right:max(8px,env(safe-area-inset-right,0px));bottom:max(6px,env(safe-area-inset-bottom,0px));z-index:50;font:11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#f3e6c873;pointer-events:none;-webkit-user-select:none;user-select:none}.brand .eyebrow{margin:0 0 .35rem;color:var(--amber);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:600}.brand h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,5vw,2.75rem);font-weight:700;line-height:1.1;color:var(--ink)}.brand .tagline{margin:.85rem 0 0;color:var(--muted);line-height:1.45}.menu-actions{display:flex;flex-direction:column;margin-top:.25rem}.hint{margin:.5rem 0 0;color:var(--muted);font-size:.85rem}.controls-list{margin:0 0 1rem;padding-left:1.1rem;color:var(--muted);line-height:1.55}.controls-list strong{color:var(--ink)}#end .stats{color:var(--amber);font-variant-numeric:tabular-nums}.lobby{max-width:44rem;width:min(96vw,44rem)}.lobby-sub{margin:0;color:var(--muted);line-height:1.45;font-size:.95rem}.lobby-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}@media(max-width:640px){.lobby-slots{grid-template-columns:1fr}}.lobby-slot{border:1px solid var(--amber-dim);background:var(--bg-stone);padding:.65rem .75rem;display:flex;flex-direction:column;gap:.35rem;border-left:3px solid color-mix(in srgb,var(--slot-color, var(--muted)) 70%,transparent);opacity:.55}.lobby-slot.occupied{opacity:1}.lobby-slot.ready{outline:1px solid var(--slot-color, var(--amber))}.lobby-slot header{display:flex;align-items:center;gap:.5rem}.lobby-slot .slot-badge{font-weight:700;color:var(--slot-color, var(--amber))}.lobby-slot .slot-input,.lobby-slot .slot-ready{margin:0;font-size:.82rem;color:var(--muted)}.lobby-slot .slot-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.lobby-status{margin:0;color:var(--amber);font-size:.9rem}.lobby-actions{display:flex;flex-wrap:wrap;gap:.5rem}.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:1rem;padding:.65rem 1rem;pointer-events:none;z-index:5;background:linear-gradient(180deg,rgba(12,10,8,.78),transparent);text-shadow:0 1px 2px #0c0a08,0 0 4px #0c0a08}.hud-left{display:flex;align-items:center;gap:.65rem}.hud-roster{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}.hud-roster-slot{display:flex;align-items:center;gap:.4rem;min-width:140px;padding:.25rem .4rem;border-left:3px solid var(--slot-color, var(--slot-p1));background:#0c0a0873}.hud-roster-slot.downed{opacity:.55;filter:grayscale(.7)}.hud-roster-slot .badge{font-weight:700;color:var(--slot-color, var(--slot-p1));font-size:.85rem}.hud-roster-slot .vitals{display:flex;flex-direction:column;gap:.1rem}.hud-roster-slot .role{font-size:.75rem;color:var(--slot-color, var(--ink));font-weight:600}.hp-bar.mini{width:100px;height:10px;background:#00000073;position:relative;overflow:hidden}.hp-bar.mini .hp-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#8b1e1e,#d94a3a)}.hud-candle{color:var(--amber);font-weight:700;letter-spacing:.04em}.hud-candle.dim{color:var(--muted);text-decoration:line-through}.hud-candle.low{color:#e07060}.hud-offscreen{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.offscreen-marker{position:absolute;transform:translate(-50%,-50%);font-weight:700;font-size:.85rem;text-shadow:0 1px 3px #000;white-space:nowrap}.upgrade-buyers{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .75rem}.buyer-tab.primary{outline:1px solid var(--amber)}.hud-portrait{image-rendering:pixelated;border:1px solid var(--amber-dim);background:#1a120c}.hud-vitals{display:flex;flex-direction:column;gap:.2rem;min-width:140px}.hud-vitals .role{color:var(--slot-p1);font-weight:700;font-size:.9rem}.hp-bar{position:relative;width:148px;height:18px;background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated;overflow:hidden}.hp-fill{position:absolute;left:10%;top:28%;height:42%;width:80%;background:linear-gradient(90deg,#8b1e1e,#d94a3a);border-radius:1px;transition:width .12s linear}.hud-vitals .stat{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.hud-coins{display:flex;align-items:center;gap:.35rem;min-width:3.25rem;padding:.35rem .55rem;border:1px solid var(--amber-dim);background:#0c0a088c;font-weight:700;font-variant-numeric:tabular-nums;color:var(--amber);text-shadow:0 1px 2px #000}.hud-coins .coin-glyph{color:var(--amber);font-size:1.05rem;line-height:1}.hud-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;color:var(--muted);font-size:.85rem;text-align:right}.hud-hint{color:var(--amber);min-height:1.1em}.shop{max-width:28rem}.shop-stage,.upgrade-stage{display:flex;align-items:flex-end;justify-content:center;gap:.5rem;margin:0 0 .75rem;min-height:96px}.shop-merchant,.upgrade-merchant,.shop-prop,.upgrade-prop{image-rendering:pixelated;filter:drop-shadow(0 4px 0 rgba(0,0,0,.35))}.shop-sub{color:var(--muted);margin:0 0 .5rem}.shop-coins{margin:0 0 .75rem;color:var(--amber);font-weight:600}.shop-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.shop-offer{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem .65rem;border:1px solid var(--amber-dim);background:var(--bg-stone);color:var(--ink);cursor:pointer;text-align:left;font:600 .95rem/1.2 var(--font-ui)}.shop-offer:hover:not(:disabled),.shop-offer:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.shop-offer:disabled{opacity:.45;cursor:not-allowed}.shop-offer img{image-rendering:pixelated;flex-shrink:0}.shop-offer-text{display:flex;flex-direction:column;gap:.15rem}.shop-offer-text span{color:var(--amber);font-size:.85rem}.end-banner--sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}.end-banner-label{margin:0 auto .85rem;max-width:18rem;padding:.55rem .85rem .5rem;text-align:center;font-family:var(--font-display);font-size:clamp(1.35rem,4.2vw,1.85rem);font-weight:700;letter-spacing:.04em;line-height:1.15;border:1px solid var(--amber-dim);background:linear-gradient(180deg,#1a100c,#0c0907);box-shadow:inset 0 0 0 1px #00000073}#end[data-end-reason=wipe] .end-banner-label{color:#e85848;text-shadow:0 0 12px rgba(196,92,72,.45);border-color:#8a3028}#end[data-end-reason=victory] .end-banner-label{color:#e8c46a;text-shadow:0 0 12px rgba(212,146,58,.4);border-color:var(--amber-dim)}#end[data-end-reason=leave] .end-banner-label,#end:not([data-end-reason]) .end-banner-label{color:var(--muted)}.upgrade{max-width:36rem}.upgrade-sub{color:var(--muted);margin:0 0 .5rem;line-height:1.4}.upgrade-recap{margin:0 0 .75rem;color:var(--ink);line-height:1.45}.end-cause{margin:.2rem 0 .6rem;color:var(--amber);line-height:1.4}.upgrade-meta{margin:0 0 1rem;color:var(--amber);font-weight:600}.upgrade-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}@media(max-width:640px){.upgrade-cards{grid-template-columns:1fr}}.upgrade-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem .5rem;border:1px solid var(--amber-dim);background:var(--bg-stone);color:var(--ink);cursor:pointer;font:600 .9rem/1.2 var(--font-ui);text-align:center;position:relative}.upgrade-card img{image-rendering:pixelated}.upgrade-card .rarity-label{height:18px;width:auto;max-width:100%;object-fit:contain}.upgrade-card .desc{color:var(--muted);font-weight:400;font-size:.78rem}.upgrade-card .cost{color:var(--amber)}.upgrade-card:hover:not(:disabled),.upgrade-card:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.upgrade-card:disabled{opacity:.4;cursor:not-allowed}.upgrade-card--sword.rarity-common,.shop-offer.rarity-common{border-color:#8a8680}.upgrade-card--sword.rarity-uncommon,.shop-offer.rarity-uncommon{border-color:#3f9b5a}.upgrade-card--sword.rarity-rare,.shop-offer.rarity-rare{border-color:#3d7ec9}.upgrade-card--sword.rarity-epic,.shop-offer.rarity-epic{border-color:#9b4fc9}.upgrade-card--sword.rarity-legendary,.shop-offer.rarity-legendary{border-color:#d4a017}.upgrade-card--sword.rarity-legendary2,.shop-offer.rarity-legendary2{border-color:#e85d3a}
