.whirlpoolObstacle{position:absolute;left:0;top:0;width:132px;height:114px;z-index:12;pointer-events:none;transform:translate(var(--whirl-x),var(--whirl-y)) translate(-50%,-50%);filter:drop-shadow(0 8px 7px rgba(0,82,146,.35));will-change:transform,opacity}
.whirlpoolObstacle .whirlOuter,.whirlpoolObstacle .whirlInner{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.whirlpoolObstacle .whirlOuter{animation:whirlRotate 2.35s linear infinite}
.whirlpoolObstacle .whirlInner{inset:17%;width:66%;height:66%;opacity:.74;animation:whirlCounter 1.42s linear infinite;filter:saturate(1.15) contrast(1.08)}
.whirlpoolObstacle:after{content:"";position:absolute;left:37%;top:35%;width:26%;height:28%;border-radius:50%;background:radial-gradient(ellipse,#064d9fcc,#0a84b56e 55%,transparent 72%);animation:whirlPulse .72s ease-in-out infinite alternate}
.whirlpoolObstacle.emerging{animation:whirlEmerge .58s ease-out both}
.whirlpoolObstacle.releasing{animation:whirlRelease .72s ease-in forwards}
.campaignBoat.whirlpoolHeld{filter:drop-shadow(0 0 12px #d8fbff) drop-shadow(0 8px 5px #056ebf99)!important}
.campaignBoat.whirlpoolHeld>i{animation:whirlpoolBoatRock .18s ease-in-out infinite alternate}
@keyframes whirlRotate{to{transform:rotate(360deg)}}
@keyframes whirlCounter{to{transform:rotate(-360deg) scale(.94)}}
@keyframes whirlPulse{to{transform:scale(.74);opacity:.72}}
@keyframes whirlEmerge{from{opacity:0;transform:translate(var(--whirl-x),var(--whirl-y)) translate(-50%,-50%) scale(.18)}to{opacity:1;transform:translate(var(--whirl-x),var(--whirl-y)) translate(-50%,-50%) scale(1)}}
@keyframes whirlRelease{to{opacity:0;transform:translate(var(--whirl-x),var(--whirl-y)) translate(-50%,-50%) scale(.18);filter:blur(3px)}}
@keyframes whirlpoolBoatRock{to{transform:translateY(-2px) rotate(4deg)}}
@media(max-width:760px){.whirlpoolObstacle{width:106px;height:92px}}
@media(prefers-reduced-motion:reduce){.whirlpoolObstacle .whirlOuter{animation-duration:5s}.whirlpoolObstacle .whirlInner{animation-duration:4s}.campaignBoat.whirlpoolHeld>i{animation:none}}
