/* One motion definition for the embedded startup logo and React FPSLoader.
   The preboot selector overrides its legacy inline spin without touching
   the embedded logo image. No rings or replacement artwork are introduced. */
.fps-logo-motion,
#fps-preboot > div {
  animation: fps-logo-cascade 2.4s infinite !important;
  transform-origin: center;
  will-change: transform;
}

@keyframes fps-logo-cascade {
  0%, 12% {
    transform: rotate(0deg) scale(1);
    animation-timing-function: cubic-bezier(.55, 0, .75, .35);
  }
  30% {
    transform: rotate(-24deg) scale(.96);
    animation-timing-function: cubic-bezier(.22, .05, .3, 1);
  }
  68% {
    transform: rotate(388deg) scale(1.04);
    animation-timing-function: cubic-bezier(.15, .85, .25, 1);
  }
  84%, 100% {
    transform: rotate(360deg) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .fps-logo-motion,
  #fps-preboot > div {
    animation: none !important;
    transform: none;
    will-change: auto;
  }
}
