/* Fixed frames preserve model proportions; short effects stay inside the icon area. */
.weapon-frame-r53{position:relative;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;isolation:isolate;width:160px;height:56px;max-width:100%;min-width:0;flex:0 0 auto;margin:0 10px 0 0;padding:0;border:0;border-radius:3px;background:transparent;box-shadow:none;line-height:1;overflow:hidden;color:var(--weapon-color)}
button.weapon-frame-r53{cursor:pointer;background:transparent!important;border:0!important;box-shadow:none!important}
button.weapon-frame-r53:focus-visible{outline:2px solid var(--weapon-color);outline-offset:2px}
.weapon-art-r53{display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;margin:0;transition:filter .16s ease}
.weapon-live{display:inline-flex;align-items:center;gap:9px;vertical-align:middle;max-width:100%}.weapon-live>.weapon-frame-r53{margin:0}
.weapon-detail>strong,.cohort-comparison>strong,.histogram-panel h3{display:flex;align-items:center;gap:10px}
.weapon-detail>strong>.weapon-frame-r53,.cohort-comparison>strong>.weapon-frame-r53,.histogram-panel h3>.weapon-frame-r53{margin:0}
#cohortRows td:first-child,#winnerAccuracyRows td:first-child,#ownerSpamRows td:first-child,#anchorRows tbody td:first-child{vertical-align:middle;white-space:nowrap}
.table thead .weapon-frame-r53{display:block;width:48px;height:17px;margin:0 auto 4px}.chart-legend .weapon-frame-r53{width:52px;height:18px;margin:0 5px}
.accuracy-row{grid-template-columns:132px minmax(0,1fr) 64px}.accuracy-row>span:first-child{display:inline-flex;align-items:center;gap:6px;min-width:0}.accuracy-row .weapon-frame-r53{width:64px;height:23px;margin:0}
.weapon-colored-r53 .bar i{background:var(--weapon-color)!important}
.weapon-frame-r53:is(:hover,:focus-visible)>.weapon-art-r53{filter:brightness(1.12) drop-shadow(0 0 3px color-mix(in srgb,var(--weapon-color) 45%,transparent))}
.cohort-comparison [data-chart-tip]:is(:hover,:focus-visible,.chart-touch) i,.histogram-panel [data-chart-tip]:is(:hover,:focus-visible,.chart-touch) i,#duelWeaponBars [data-chart-tip]:is(:hover,:focus-visible,.chart-touch) i{filter:brightness(1.14);box-shadow:0 0 10px color-mix(in srgb,var(--weapon-color) 35%,transparent)}
.weapon-fx-r53{pointer-events:none;position:absolute;z-index:2;left:var(--muzzle-x,76%);top:25%;width:23%;height:50%;opacity:0;transform-origin:left center}
.fx-rocket{left:calc(var(--muzzle-x,100%) - 5.75%);background:radial-gradient(ellipse at 25% 50%,#fff8c8 0 10%,#ffc364 25%,#ff7b2a99 45%,transparent 70%);clip-path:polygon(0 28%,35% 40%,70% 0,58% 42%,100% 51%,58% 61%,74% 100%,32% 67%,0 76%)}
.fx-rail{top:45%;height:10%;background:linear-gradient(90deg,#edffd1,#83e66b 45%,#69ff8a00);box-shadow:0 0 5px #83e66b}
.fx-lightning{left:var(--muzzle-x,68%);width:calc(100% - var(--muzzle-x,68%));color:#9effff}.fx-lightning svg{display:block;width:100%;height:100%;overflow:visible}.fx-lightning path{fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px #42e8dc)}
.weapon-frame-r53.is-firing[data-effect="rocket"]>.weapon-art-r53{animation:r53-recoil .38s ease-out 1}.weapon-frame-r53.is-firing>.fx-rocket{animation:r53-flash .38s ease-out 1}.weapon-frame-r53.is-firing>.fx-rail{animation:r53-beam .34s ease-out 1}.weapon-frame-r53.is-firing>.fx-lightning{animation:r53-arc .4s linear 1}
@keyframes r53-recoil{0%,100%{transform:translateX(0)}16%{transform:translateX(-2px)}48%{transform:translateX(-1px)}}
@keyframes r53-flash{0%,100%{opacity:0;transform:scaleX(.65)}12%{opacity:1;transform:scaleX(1)}35%{opacity:.65}75%{opacity:.1}}
@keyframes r53-beam{0%,100%{opacity:0;transform:scaleX(.3)}14%,36%{opacity:.95;transform:scaleX(1)}74%{opacity:.25}}
@keyframes r53-arc{0%,100%{opacity:0}10%,35%,60%{opacity:1}23%,48%{opacity:.25}82%{opacity:.35}}
@media(max-width:1100px){.weapon-frame-r53{width:136px;height:48px}.weapon-live,.weapon-detail>strong,.cohort-comparison>strong,.histogram-panel h3{flex-wrap:wrap;row-gap:4px}}
@media(max-width:700px){.accuracy-row{grid-template-columns:94px minmax(0,1fr) 58px}.accuracy-row .weapon-frame-r53{width:44px;height:16px}.table thead .weapon-frame-r53{width:34px;height:12px}}
@media(max-width:600px){#liveWeapons .weapon-frame-r53,#matchDetail .weapon-frame-r53{display:none}}
@media(prefers-reduced-motion:reduce){.weapon-art-r53{transition:none!important;animation:none!important}.weapon-fx-r53{display:none!important;animation:none!important;opacity:0!important}}

.weapon-frame-r53>.weapon-art-r53{width:100%;height:100%;object-fit:contain}
