/* S077.14 FieldSense Buddy Motion Polish */
.fs-buddy-motion-host{position:relative}
.fs-buddy-motion-img{
  --fs-look-x:0px;--fs-look-y:0px;
  transform-origin:50% 72%;
  transform:translate3d(var(--fs-look-x),var(--fs-look-y),0);
  animation:fsBuddyFloat 5.5s cubic-bezier(.45,.05,.55,.95) infinite,
            fsBuddyBreathe 3.9s ease-in-out .65s infinite;
  will-change:transform,filter;
  backface-visibility:hidden;
}
.fs-buddy-motion-host::after{
  content:"";position:absolute;z-index:0;left:50%;bottom:10%;
  width:48%;height:9px;border-radius:50%;pointer-events:none;
  background:rgba(46,62,82,.16);filter:blur(7px);
  transform:translateX(-50%);animation:fsBuddyShadow 5.5s ease-in-out infinite
}
.fs-buddy-motion-host.fs-buddy-engaged .fs-buddy-motion-img{
  filter:drop-shadow(0 8px 12px rgba(68,119,96,.22)) brightness(1.02)
}
@keyframes fsBuddyFloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes fsBuddyBreathe{0%,100%{scale:1}50%{scale:1.018 1.025}}
@keyframes fsBuddyShadow{
  0%,100%{opacity:.22;filter:blur(7px);scale:1 1}
  50%{opacity:.12;filter:blur(9px);scale:.84 1}
}
.fs-buddy-motion-paused .fs-buddy-motion-img,
.fs-buddy-motion-paused .fs-buddy-motion-host::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
  .fs-buddy-motion-img{
    animation:fsBuddyFloatReduced 9s ease-in-out infinite,fsBuddyBreatheReduced 8s ease-in-out infinite
  }
}
@keyframes fsBuddyFloatReduced{0%,100%{translate:0 0}50%{translate:0 -2px}}
@keyframes fsBuddyBreatheReduced{0%,100%{scale:1}50%{scale:1.005}}
