#world-fx{position:absolute;inset:0;pointer-events:none}
.needle-warp{position:absolute;display:block;z-index:0}
.world-actors,.world-rain{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.world-actors{z-index:1}
.world-rain{z-index:2}
.rain-tile{animation:world-rain-fall var(--rain-speed) linear infinite;animation-delay:var(--rain-offset)}
.rain-distant{--rain-speed:2.35s;--rain-offset:-.9s;color:#c3d6a7;opacity:.49}
.rain-middle{--rain-speed:1.45s;--rain-offset:-.36s;color:#d9f2bd;opacity:.68}
.rain-foreground{--rain-speed:1s;--rain-offset:-.69s;color:#e0f2ca;opacity:.74}
.street-ripple{transform-box:fill-box;transform-origin:center;animation:street-ripple 2.4s ease-out infinite;animation-delay:var(--ripple-delay)}
.acid-string{animation:acid-string 3.2s ease-in-out infinite;animation-delay:var(--drip-delay)}
.acid-drop{opacity:0;animation:acid-drop 3.2s cubic-bezier(.47,.04,.82,.42) infinite;animation-delay:var(--drip-delay)}
.ape-body{filter:brightness(.84) sepia(.13) hue-rotate(19deg) saturate(.85) drop-shadow(-2px 3px 2px #090d0a66)}
.ape-body[data-boss-phase="agitated"]{filter:brightness(.93) sepia(.19) saturate(.94) drop-shadow(-2px 3px 3px #090d0a)}
.ape-body[data-boss-phase="enraged"]{filter:brightness(.97) sepia(.22) saturate(.92) drop-shadow(-2px 5px 3px #090d0a)}
.ape-body[data-boss-phase="furious"]{filter:brightness(1.05) sepia(.28) saturate(1.06) drop-shadow(0 0 5px #d7771f55) drop-shadow(-2px 5px 3px #090d0a)}
.facade-projectile{filter:drop-shadow(0 0 5px #101611) drop-shadow(2px 4px 3px #060b08)}
.kong-landing{filter:drop-shadow(0 1px 4px #b3f76355)}
.gunner-tracer{filter:drop-shadow(0 0 2px #e9ce50)}
.target-health{display:none}
.game-hit-zone{pointer-events:visiblePainted}
[data-defeated="true"] .game-hit-zone{pointer-events:none}
.ape-body[data-kong-pose="climb"] .kong-ground-pose .game-hit-zone,
.ape-body[data-kong-pose="ground"] .kong-climb-pose .game-hit-zone{pointer-events:none}
.kong-collapse{transform-box:fill-box;transform-origin:60% 66%}
[data-defeated="true"] .kong-collapse{animation:kong-collapse 1.16s ease-in both}
.ape-body[data-defeated="true"][data-boss-stage="street"] .kong-collapse{animation:kong-street-collapse .9s ease-in both}
@keyframes world-rain-fall{to{transform:translate(-120px,1024px)}}
@keyframes street-ripple{0%{opacity:0;transform:scale(.28)}14%{opacity:.62}80%,100%{opacity:0;transform:scale(1.32)}}
@keyframes acid-string{0%,100%{opacity:.5}40%,75%{opacity:.96}}
@keyframes acid-drop{0%,22%{opacity:0;transform:translate(0,-8px)}34%{opacity:1}82%{opacity:.8}100%{opacity:0;transform:translate(-4px,83px)}}
@keyframes kong-collapse{
  0%{transform:translate(0,0) rotate(0deg);opacity:1}
  24%{transform:translate(-135px,96px) rotate(-12deg);opacity:1}
  78%{opacity:.8}
  100%{transform:translate(-460px,4000px) rotate(-39deg);opacity:0}
}
@keyframes kong-street-collapse{
  0%{transform:translate(0,0) rotate(0);opacity:1}
  72%{transform:translate(-80px,260px) rotate(-43deg) scaleY(.77);opacity:.86}
  100%{transform:translate(-100px,270px) rotate(-49deg) scaleY(.6);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  #world-fx *{animation:none!important}
  [data-defeated="true"] .kong-collapse{opacity:0}
  .rain-foreground{display:none}
  .world-rain{opacity:.55}
  .street-ripple{opacity:.22}
  .acid-drop{opacity:.6}
}
