.room-combat-scene,
.room-combat-impact {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.room-combat-scene { overflow: hidden; }

.room-combat-impact {
  opacity: 0;
  background: radial-gradient(ellipse at center, transparent 34%, #641e0a24 65%, #8730178c 100%);
}

.room-enemy-pose {
  filter: drop-shadow(-1px 2px 1px #081207) drop-shadow(0 0 2px #c7e78143);
}

.room-enemy-jacket,
.room-enemy-pants {
  fill: url(#room-infected-fabric);
  stroke: #727b55;
  stroke-width: 1.45;
}

.room-enemy-armed .room-enemy-jacket {
  fill: url(#room-infected-uniform);
  stroke: #918260;
}

.room-enemy-pants { stroke: #566149; }
.room-enemy-boot { fill: #151f17; stroke: #687154; stroke-width: 1.1; }
.room-enemy-skin { fill: url(#room-infected-skin); stroke: #9a9e6e; stroke-width: 1.15; }
.room-enemy-seams { fill: none; stroke: #829071; stroke-width: 1.05; opacity: .61; }
.room-enemy-edge { fill: none; stroke: #b9c487; stroke-width: 1.3; opacity: .71; }
.room-enemy-eyes { fill: none; stroke: #c8de90; stroke-width: 1.6; }
.room-enemy-armed .room-enemy-eyes { stroke: #ffbd74; }

.room-hit-area { fill: transparent; stroke: none; pointer-events: none; }
.room-enemy-hit .room-enemy-pose { filter: brightness(1.47) drop-shadow(0 0 4px #c9ff78a3); }
.room-enemy-winding .room-enemy-eyes { stroke: #ffe4a2; filter: drop-shadow(0 0 3px #fc9341); }
.room-enemy-winding .room-enemy-rifle { filter: drop-shadow(0 0 3px #ff8a51a8); }
.room-enemy-swiping .room-enemy-skin { stroke: #e3c28b; }

.room-enemy-effects { display: none; }
.room-aim-line {
  opacity: calc(var(--room-warning, 0) * .67);
  stroke: #e2984f;
  stroke-width: 1;
  stroke-dasharray: 5 8;
}

.room-shot-halo,
.room-shot-tracer,
.room-muzzle-flash,
.room-muzzle-core { opacity: var(--room-flash, 0); }
.room-shot-halo { stroke: #eb77396e; stroke-width: 5; filter: blur(1.6px); }
.room-shot-tracer { stroke: #ffd59a; stroke-width: 1.1; }
.room-muzzle-flash { fill: #ffb75d; filter: drop-shadow(0 0 7px #ff8a43); }
.room-muzzle-core { fill: #fff2c5; }

@media (prefers-reduced-motion: reduce) {
  .room-combat-impact { display: none; }
  .room-enemy-hit .room-enemy-pose { filter: brightness(1.14); }
}
