.celebration-frames {
  position: relative;
  z-index: 2;
  width: 100%;
  aspect-ratio: 1145 / 1374;
  animation: happy-bounce 1.15s ease-in-out infinite;
}

.donation-avatars .celebration-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  filter: drop-shadow(0 22px 22px #4a2f1829);
}

.pose-down {
  animation: hands-down 1.15s steps(1, end) infinite;
}

.pose-up {
  animation: hands-up 1.15s steps(1, end) infinite;
}

@keyframes hands-down {
  0%, 42%, 100% { opacity: 1; }
  43%, 86% { opacity: 0; }
}

@keyframes hands-up {
  0%, 42%, 87%, 100% { opacity: 0; }
  43%, 86% { opacity: 1; }
}

@keyframes happy-bounce {
  0%, 100% { transform: translateY(0) rotate(0); }
  43% { transform: translateY(-8px) rotate(-0.7deg); }
  86% { transform: translateY(-2px) rotate(0.7deg); }
}

@media (prefers-reduced-motion: reduce) {
  .celebration-frames,
  .celebration-frame {
    animation: none;
  }

  .pose-up {
    display: none;
  }
}
