/* The Coach — Found Motive orb mascot, live idle loop. Size with --coach-size. */
.fm-coach{
  --coach-size:220px;
  position:relative; width:var(--coach-size); height:calc(var(--coach-size)*1.32);
  display:inline-block; -webkit-user-select:none; user-select:none; contain:layout;
}
.fm-coach__shadow{
  position:absolute; left:50%; bottom:2%; width:72%; height:9%; margin-left:-36%;
  border-radius:50%; background:radial-gradient(closest-side,rgba(31,35,40,.32),rgba(31,35,40,0));
  animation:fm-coach-shadow 2.5s ease-in-out infinite;
}
.fm-coach__hover{ /* bob */
  position:absolute; left:0; right:0; top:calc(var(--coach-size)*.12); height:var(--coach-size);
  animation:fm-coach-bob 2.5s ease-in-out infinite; will-change:transform;
}
.fm-coach__squash{ /* squash & stretch, anchored at the bottom */
  position:absolute; inset:0; transform-origin:50% 100%;
  animation:fm-coach-squash 2.5s ease-in-out infinite;
}
.fm-coach__tilt{ position:absolute; inset:0; transform:rotate(var(--tilt,0deg)); transition:transform .25s ease-out; }
.fm-coach__orb{ position:absolute; inset:0; border-radius:50%; overflow:hidden; isolation:isolate; }
.fm-coach__orb img{ position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; -webkit-user-drag:none; }
.fm-coach__eye{ position:absolute; inset:0; will-change:transform;
  transform:translate3d(var(--ex,0px),var(--ey,0px),0) scale(var(--es,1)); }
.fm-coach__eye img{ transform-origin:50% 50%; animation:fm-coach-blink 4.6s infinite; }
.fm-coach__spark{ position:absolute; width:9%; aspect-ratio:1; right:4%; top:6%; color:#E77D3A;
  animation:fm-coach-twinkle 5s ease-in-out infinite; }
.fm-coach__spark svg{ width:100%; height:100%; display:block; }

@keyframes fm-coach-bob{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7%)} }
@keyframes fm-coach-squash{
  0%,100%{transform:scale(1.03,.965)} 12%{transform:scale(1,1)} 50%{transform:scale(.99,1.015)} 88%{transform:scale(1,1)} }
@keyframes fm-coach-shadow{ 0%,100%{transform:scaleX(1);opacity:1} 50%{transform:scaleX(.82);opacity:.7} }
@keyframes fm-coach-blink{ 0%,91%,97%,100%{transform:scaleY(1)} 94%{transform:scaleY(.1)} }
@keyframes fm-coach-twinkle{ 0%,70%,100%{transform:scale(0) rotate(0);opacity:0} 80%{transform:scale(1) rotate(45deg);opacity:1} 90%{transform:scale(.2) rotate(90deg);opacity:0} }

/* hover / tap: a happy little hop */
.fm-coach.is-hop .fm-coach__hover{ animation:fm-coach-hop .6s cubic-bezier(.3,.7,.4,1) 1; }
@keyframes fm-coach-hop{ 0%{transform:translateY(0)} 40%{transform:translateY(-16%)} 100%{transform:translateY(0)} }

@media (prefers-reduced-motion: reduce){
  .fm-coach__hover,.fm-coach__squash,.fm-coach__shadow,.fm-coach__eye img,.fm-coach__spark{animation:none!important}
  .fm-coach__spark{display:none}
}
