/* animations.css — entrance + celebration motion. All effects are disabled when
   the user prefers reduced motion. */

@keyframes pop-in {
  0%   { transform: scale(0.6); opacity: 0; }
  70%  { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes star-pop {
  0%   { transform: scale(0) rotate(-30deg); opacity: 0; }
  60%  { transform: scale(1.3) rotate(8deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}

@keyframes slide-up {
  from { transform: translateY(24px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

.overlay.show .complete-card,
.overlay.show .sticker-card { animation: pop-in 0.32s cubic-bezier(0.2, 0.8, 0.2, 1) both; }

.cm-star.on { animation: star-pop 0.45s cubic-bezier(0.2, 0.8, 0.2, 1) both; }

.screen.active .set-card,
.screen.active .glyph-cell { animation: slide-up 0.28s ease both; }

.set-card:nth-child(2) { animation-delay: 0.05s; }
.set-card:nth-child(3) { animation-delay: 0.1s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
