:root{color-scheme:dark;--lime:#b1f536;--line:#303a2d;--muted:#9ba993;--panel:#171e17}*{box-sizing:border-box}body{margin:0;background:#0b100c;color:#eff5eb;font:15px/1.5 system-ui,-apple-system,sans-serif}button,a,input,select{touch-action:manipulation}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--lime)}button,.button{border:1px solid var(--line);border-radius:9px;padding:11px 16px;background:#222c20;color:#eef5e9;font-weight:700;text-decoration:none}button.primary{background:var(--lime);color:#16200c;border-color:var(--lime)}button.active{border-color:var(--lime);color:var(--lime)}.shell{max-width:1280px;margin:auto;padding:20px 24px}header{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:16px}.brand{text-decoration:none;display:flex;align-items:center;gap:15px}.logo{width:115px;height:72px;object-fit:cover;object-position:50% 47%;border-radius:8px;background:black}.logo.custom{object-fit:contain}.eyebrow{font-size:11px;font-weight:800;letter-spacing:3px;color:var(--lime)}h1{font-size:22px;margin:2px 0}h2{font-size:32px;line-height:1.1;margin:8px 0 18px}h3{margin:6px 0;font-size:18px}p{color:var(--muted)}.top-actions,.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.wallet{padding:8px 14px;border:1px solid #526735;border-radius:30px;color:var(--lime);font-weight:800}nav{display:flex;gap:8px;margin:22px 0;overflow:auto}nav button{white-space:nowrap;flex:1}.hero{padding:30px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at 90% 15%,#3d5626 0,transparent 65%),#171e17;display:flex;justify-content:space-between;gap:20px}.hero p{max-width:510px}.hero .big-brand{font-size:70px;font-weight:950;color:#b1f53622;align-self:center;letter-spacing:-6px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:22px}.card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;padding:18px;background:linear-gradient(140deg,#263021,#131913)}.card.selected{border-color:var(--lime)}.card svg{width:100%;height:100px;filter:drop-shadow(0 9px 6px #0009)}.card.locked svg{opacity:.35}.tag{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--lime)}.card p{font-size:12px;margin:5px 0 15px}.card button{width:100%}.split{display:grid;grid-template-columns:1.7fr 1fr;gap:20px}.panel{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.display{height:330px;background:radial-gradient(ellipse,#35422a,#11180f);border:1px solid var(--line);border-radius:16px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.display:before{content:'BJFIREARMSLLC';position:absolute;font-size:clamp(30px,5vw,70px);font-weight:950;color:#b1f53609;transform:rotate(-15deg)}.display svg{width:88%;max-height:240px;position:relative;filter:drop-shadow(0 18px 10px #0008)}.display.firing svg{animation:kick .14s}.display.firing:after{content:'';position:absolute;right:4%;top:38%;width:50px;height:50px;background:#fff599;clip-path:polygon(0 50%,90% 0,60% 43%,100% 65%,40% 65%,65% 100%)}@keyframes kick{50%{transform:translateX(-14px) rotate(-2deg)}}label{display:block;color:var(--muted);margin:14px 0 6px;font-size:13px}select,input[type=color]{width:100%;background:#10160f;color:white;border:1px solid var(--line);padding:10px;border-radius:8px}input[type=color]{height:45px;padding:3px}.stat{color:var(--lime);font-size:28px;font-weight:850}.stats{display:flex;justify-content:space-between;gap:20px;margin:18px 0}.stats span{display:block;font-size:11px;color:var(--muted);letter-spacing:1px}.range{height:min(58vh,510px);min-height:300px;position:relative;overflow:hidden;background-size:cover;background-position:center;border:1px solid var(--line);border-radius:15px;touch-action:none;cursor:crosshair}.range:before{content:'';position:absolute;inset:0;background:#0003;pointer-events:none}.range-mark{position:absolute;bottom:15px;right:18px;color:#caff7b80;letter-spacing:3px;font-size:24px;font-weight:950;pointer-events:none}.target{position:absolute;width:68px;height:68px;border:4px solid white;border-radius:50%;background:radial-gradient(circle,#caff40 0 16%,#162514 17% 32%,#fafbf4 33% 39%,#162514 40% 57%,#fafbf4 58% 64%,#162514 65%);box-shadow:0 5px 15px #0009;transform:translate(-50%,-50%);padding:0}.splash{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#0b140bbd;backdrop-filter:blur(3px);padding:25px}.splash h2{margin-bottom:8px}.splash p{color:#d8e6cf}.hit-text{position:absolute;pointer-events:none;color:var(--lime);font-size:23px;font-weight:900;animation:float .5s forwards}@keyframes float{to{transform:translateY(-35px);opacity:0}}.notice{padding:12px 16px;border:1px solid #536f2a;background:#273819;border-radius:10px;color:#ddf9b4;margin:15px 0}.pack{min-height:220px;display:grid;place-content:center;text-align:center;background:linear-gradient(135deg,#314a20,#121912);border:1px solid #5b7e37;border-radius:15px;margin:18px 0}.pack-symbol{font-size:70px;color:var(--lime)}.records{width:100%;border-collapse:collapse}.records td,.records th{text-align:left;padding:13px;border-bottom:1px solid var(--line)}footer{display:flex;justify-content:space-between;gap:10px;margin-top:28px;padding:18px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer strong{color:var(--lime);letter-spacing:2px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:var(--lime);color:#14200b;padding:13px 22px;border-radius:12px;z-index:50;font-weight:700;max-width:90%;text-align:center}.muted{font-size:12px;color:var(--muted)}.wide{width:100%}.screen-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.screen-title h2{margin:5px 0}.ammo{font-variant-numeric:tabular-nums}.flash{animation:flash .12s}@keyframes flash{50%{box-shadow:inset 0 0 90px #eaff8560}}@media(max-width:800px){.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.hero .big-brand{display:none}.display{height:260px}header{flex-wrap:wrap}.shell{padding:15px}.brand h1{font-size:18px}.hero{padding:22px}h2{font-size:27px}.top-actions{width:100%;justify-content:space-between}nav button{padding:10px 12px;font-size:13px}footer{flex-direction:column}.panel{padding:18px}.records td,.records th{padding:9px;font-size:12px}}@media(prefers-reduced-motion:reduce){.display.firing svg,.hit-text,.flash{animation:none}}

/* Detailed equipped weapon foreground. Targets stay above this zone. */
.range-gun{position:absolute;bottom:-18px;right:4%;width:min(40%,360px);height:215px;pointer-events:none;z-index:3;filter:drop-shadow(-8px 8px 8px #000b);transform-origin:80% 100%}
.range-gun svg{width:100%;height:100%;overflow:visible}.range-gun .muzzle{opacity:0}.range-gun.firing{animation:range-recoil .15s}.range-gun.firing .muzzle{animation:muzzle-flash .12s}.range-gun.reloading{animation:range-reload .38s}.equipped-label{position:absolute;bottom:16px;left:16px;z-index:4;pointer-events:none;font-size:10px;font-weight:800;letter-spacing:1px;color:#def8b5;background:#101b11c9;border:1px solid #7ea64480;padding:7px 10px;border-radius:6px}.splash{z-index:5}.target{z-index:2}.hit-text{z-index:4}.range-mark{bottom:62px;left:18px;right:auto;font-size:18px}.brand{text-decoration:none}
@keyframes range-recoil{45%{transform:translate(7px,9px) rotate(2deg)}100%{transform:none}}@keyframes muzzle-flash{0%,60%{opacity:1}100%{opacity:0}}@keyframes range-reload{50%{transform:translateY(110px) rotate(12deg)}100%{transform:none}}
@media(max-width:800px){.range-gun{right:0;bottom:-14px;width:46%;height:180px}.equipped-label{font-size:9px;max-width:53%;bottom:12px;left:10px}.range-mark{font-size:13px;bottom:51px;left:10px}}
@media(prefers-reduced-motion:reduce){.range-gun.firing,.range-gun.reloading,.range-gun.firing .muzzle{animation:none}.range-gun.firing .muzzle{opacity:1}}
