:root{--ink:#1d1713;--paper:#f4d75c;--blue:#1f7ed0;--red:#d33024;--green:#2f9d48;--cream:#fff1b9;--shadow:rgba(0,0,0,.35)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101624;color:var(--ink);font-family:"Trebuchet MS","Arial Rounded MT Bold","Microsoft YaHei",system-ui,sans-serif}.game-root{position:relative;width:100vw;height:100dvh;min-height:100svh;overflow:hidden;overscroll-behavior:none;background:#1e3f88}.arena{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;background:url('./runtime/background-lego-infinite-brick-grid-arena-1920x1080.jpg') center/cover no-repeat}.arena:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 66%,rgba(255,229,90,.22),transparent 30%),linear-gradient(180deg,rgba(5,12,30,.05),rgba(5,12,30,.25));z-index:2}.stud-grid{position:absolute;inset:0;z-index:3;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.18) 0 3px,transparent 4px);background-size:52px 52px;mix-blend-mode:screen;opacity:.32}.night-shade{position:absolute;inset:0;z-index:4;pointer-events:none;background:rgba(3,8,28,0);transition:background .6s}.night-shade.night{background:rgba(3,8,28,.46)}.props-layer,.enemy-layer,.player-layer,.projectile-layer,.vfx-layer{position:absolute;inset:0;pointer-events:none}.props-layer{z-index:12}.enemy-layer{z-index:20}.player-layer{z-index:30}.projectile-layer{z-index:38}.vfx-layer{z-index:42}.prop,.enemy,.player,.pickup{position:absolute;transform:translate(-50%,-100%);filter:drop-shadow(0 9px 0 rgba(0,0,0,.35));will-change:transform,left,top}.prop img,.enemy img,.player img,.pickup img{display:block;width:100%;height:auto;pointer-events:none}.prop{width:118px}.pickup{z-index:18;width:92px;animation:bob .8s steps(2,end) infinite}.pickup b{position:absolute;left:50%;top:-8px;transform:translate(-50%,-100%);padding:4px 9px;border:3px solid #17110c;border-radius:999px;background:#ffe35a;color:#17110c;font-size:12px;white-space:nowrap;box-shadow:0 4px 0 #0005}.player{width:112px;transition:filter .08s}.player.armed{filter:drop-shadow(0 9px 0 rgba(0,0,0,.35)) drop-shadow(0 0 13px #ffe35a)}.weapon{position:absolute;left:52%;top:47%;width:72px;transform-origin:20% 50%;filter:drop-shadow(0 4px 0 #0007)}.enemy{width:88px;animation:bob 1.05s steps(2,end) infinite}.enemy.elite{width:132px}.enemy.hit{filter:drop-shadow(0 9px 0 rgba(0,0,0,.35)) drop-shadow(0 0 16px #ff3524) brightness(1.28)}.hp{position:absolute;left:50%;top:-13px;width:78%;height:8px;transform:translateX(-50%);border:2px solid #17110c;background:#320a0a;border-radius:99px;overflow:hidden}.hp i{display:block;height:100%;background:linear-gradient(90deg,#e52f2f,#ffe35a);transition:width .12s}.beam{position:absolute;height:9px;border-radius:999px;background:linear-gradient(90deg,#fff8c8,#ffe35a,#ff7a18);box-shadow:0 0 14px #ffe35a,0 0 2px #fff;transform-origin:0 50%;animation:fadeBeam .12s linear forwards}.spark{position:absolute;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 18%,#ffe35a 19% 45%,#e52f2f 46% 70%,transparent 72%);animation:spark .22s steps(3,end) forwards}.hud{position:absolute;z-index:80;pointer-events:auto}.top-hud{left:14px;right:14px;top:12px;display:flex;gap:8px;align-items:center}.brand,.pill,.hud-btn,.status-card,.toast,.inventory{border:4px solid #17110c;background:linear-gradient(#ffe35a,#f3b735);box-shadow:0 6px 0 #8a4e12,0 12px 25px #0005;border-radius:14px}.brand{display:flex;align-items:center;gap:10px;padding:8px 12px}.brand b{font-size:17px}.brand small{display:block;font-size:10px;letter-spacing:.08em}.logo-stud{display:grid;place-items:center;width:42px;height:42px;border:4px solid #17110c;border-radius:50%;background:#e52f2f;color:#fff;text-shadow:1px 1px #000}.pill{min-width:82px;height:56px;padding:6px 10px;display:flex;flex-direction:column;justify-content:center}.pill small{font-size:10px;font-weight:900;color:#63410a}.pill b{font-size:18px}.pill.wide{width:150px}.bar{height:14px;border:3px solid #17110c;background:#53231c;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#e52f2f,#f3b735,#2f9d48)}.hud-btn{height:56px;padding:0 13px;font-weight:1000;cursor:pointer}.hud-btn.danger{background:linear-gradient(#ff705f,#d33024);color:#fff}.status-card{position:absolute;z-index:82;left:18px;top:86px;width:310px;min-height:108px;display:flex;gap:10px;align-items:center;padding:10px}.status-card img{width:74px;height:74px;object-fit:contain;border:3px solid #17110c;border-radius:12px;background:#fff8d3}.status-card p{margin:.25rem 0 0;font-size:13px;line-height:1.3;font-weight:800}.inventory{position:absolute;z-index:82;right:16px;bottom:18px;display:flex;gap:8px;padding:8px;max-width:min(620px,72vw)}.slot{width:58px;height:58px;border:3px solid #17110c;border-radius:10px;background:#fff6bf;display:grid;place-items:center;position:relative}.slot img{max-width:50px;max-height:50px}.slot b{position:absolute;right:-5px;bottom:-7px;min-width:22px;height:22px;display:grid;place-items:center;border:2px solid #17110c;border-radius:50%;background:#e52f2f;color:#fff;font-size:11px}.toast{position:absolute;z-index:82;left:50%;bottom:20px;transform:translateX(-50%);width:min(760px,72vw);padding:10px 16px;text-align:center;font-weight:1000}.end-screen{position:absolute;inset:0;z-index:150;display:none;place-items:center;background:rgba(0,0,0,.58)}.end-screen.show{display:grid}.end-screen>div{width:min(520px,86vw);text-align:center;border:5px solid #17110c;border-radius:18px;background:#ffe35a;box-shadow:0 10px 0 #8a4e12;padding:24px}.end-screen h1{margin:0 0 8px;font-size:34px}.end-screen button{height:48px;border:3px solid #17110c;border-radius:999px;background:#1f7ed0;color:white;font-weight:1000;padding:0 20px}.mobile-controls{position:absolute;z-index:90;inset:auto 0 0 0;display:none;pointer-events:none}.dpad{position:absolute;left:18px;bottom:92px;width:132px;height:132px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);pointer-events:auto}.dpad button,.fire-touch,.pickup-touch{border:3px solid #17110c;border-radius:12px;background:rgba(255,227,90,.86);box-shadow:0 4px 0 #8a4e12;font-weight:1000}.dpad [data-key=up]{grid-column:2}.dpad [data-key=left]{grid-column:1;grid-row:2}.dpad [data-key=down]{grid-column:2;grid-row:3}.dpad [data-key=right]{grid-column:3;grid-row:2}.fire-touch,.pickup-touch{position:absolute;right:18px;bottom:104px;width:86px;height:60px;pointer-events:auto}.pickup-touch{right:112px;bottom:80px;width:72px;height:48px}@keyframes bob{0%,100%{transform:translate(-50%,-100%) translateY(0)}50%{transform:translate(-50%,-100%) translateY(-6px)}}@keyframes fadeBeam{from{opacity:1;transform:rotate(var(--angle)) scaleX(1)}to{opacity:0;transform:rotate(var(--angle)) scaleX(.35)}}@keyframes spark{from{opacity:1;transform:translate(-50%,-50%) scale(.6)}to{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}@media(max-width:760px),(pointer:coarse){.top-hud{transform:scale(.78);transform-origin:top left;right:auto;width:1220px}.status-card{left:10px;top:72px;width:260px;transform:scale(.82);transform-origin:top left}.toast{bottom:8px;width:92vw;font-size:12px;padding:8px}.inventory{right:8px;top:78px;bottom:auto;max-width:50vw;flex-wrap:wrap;transform:scale(.82);transform-origin:top right}.mobile-controls{display:block}.arena{background-position:center}.prop{width:92px}.player{width:92px}.enemy{width:74px}.enemy.elite{width:108px}}@media(max-height:500px){.status-card{display:none}.toast{display:none}.inventory{top:72px;bottom:auto}.top-hud{transform:scale(.72);transform-origin:top left}.mobile-controls{display:block}.dpad{bottom:22px}.fire-touch{bottom:50px}.pickup-touch{bottom:28px}}
/* Inventory usability + Technic gear projectile update */
.inventory{align-items:center}.slot{cursor:pointer;transition:transform .12s ease,filter .12s ease}.slot:hover,.slot:focus-visible{transform:translateY(-4px);filter:brightness(1.08) drop-shadow(0 0 8px rgba(255,227,90,.9));outline:none}.slot.empty{opacity:.46;filter:grayscale(.35)}.slot em{position:absolute;left:-6px;top:-8px;min-width:21px;height:21px;display:grid;place-items:center;border:2px solid #17110c;border-radius:50%;background:#1f7ed0;color:#fff;font-style:normal;font-size:11px;font-weight:1000}.weapon-projectile{position:absolute;width:54px;height:54px;transform:translate(-50%,-50%) rotate(var(--rot));filter:drop-shadow(0 4px 0 rgba(0,0,0,.45)) drop-shadow(0 0 12px #ffe35a);animation:gearPulse .18s steps(2,end) infinite;pointer-events:none}.beam{display:none}@keyframes gearPulse{0%,100%{scale:1}50%{scale:1.12}}
@media(max-width:760px),(pointer:coarse){.slot{width:54px;height:54px}.slot img{max-width:46px;max-height:46px}.weapon-projectile{width:42px;height:42px}}
