/* Footer playground: mascot becomes a full character */
.fp-stage { position: relative; outline: none; overflow: hidden; }
.fp-canvas {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 5;
}
.fp-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; margin: -1px;
}
.fp-stage .user-image-wrapper { transition: transform .35s cubic-bezier(.5, -0.6, .5, 1.6), opacity .25s ease; }
.fp-stage .user-image-wrapper.fp-wobble { animation: fp-wobble .65s ease-in-out; }
.fp-stage .user-image-wrapper.fp-popped { transform: scale(0); opacity: 0; }
@keyframes fp-wobble {
  0%, 100% { transform: rotate(0) scale(1); }
  20% { transform: rotate(-8deg) scale(1.04); }
  40% { transform: rotate(7deg) scale(1.08); }
  60% { transform: rotate(-5deg) scale(1.12); }
  80% { transform: rotate(3deg) scale(1.18); }
}
@media (prefers-reduced-motion: reduce) {
  .fp-stage .user-image-wrapper { transition: opacity .2s ease; }
  .fp-stage .user-image-wrapper.fp-popped { transform: none; }
}
