/* ============================================================
   animations.css  -  Confetti, sparkle, bounce, shake
   ============================================================ */

/* ---------- Bounce ---------- */
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  40% { transform: translateY(-20px); }
  60% { transform: translateY(-10px); }
}

.bounce {
  animation: bounce 0.6s ease;
}

/* ---------- Pop in ---------- */
@keyframes pop-in {
  0% { transform: scale(0); opacity: 0; }
  70% { transform: scale(1.15); }
  100% { transform: scale(1); opacity: 1; }
}

.pop-in {
  animation: pop-in 0.4s ease forwards;
}

/* ---------- Sparkle pulse ---------- */
@keyframes sparkle-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.3); }
}

.sparkle-pulse {
  animation: sparkle-pulse 0.8s ease infinite;
}

/* ---------- Fade in up ---------- */
@keyframes fade-in-up {
  0% { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

.fade-in-up {
  animation: fade-in-up 0.4s ease forwards;
}

/* ---------- Float ---------- */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.float {
  animation: float 2s ease-in-out infinite;
}

/* ---------- Pulse glow (select-then-place) ---------- */
@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 141, 199, 0.4); }
  50% { box-shadow: 0 0 0 8px rgba(255, 141, 199, 0); }
}

/* ---------- Confetti canvas ---------- */
#confetti-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1000;
}

/* ---------- Card appear stagger ---------- */
.item-card {
  animation: fade-in-up 0.35s ease backwards;
}

.item-grid .item-card:nth-child(1)  { animation-delay: 0.03s; }
.item-grid .item-card:nth-child(2)  { animation-delay: 0.06s; }
.item-grid .item-card:nth-child(3)  { animation-delay: 0.09s; }
.item-grid .item-card:nth-child(4)  { animation-delay: 0.12s; }
.item-grid .item-card:nth-child(5)  { animation-delay: 0.15s; }
.item-grid .item-card:nth-child(6)  { animation-delay: 0.18s; }
.item-grid .item-card:nth-child(7)  { animation-delay: 0.21s; }
.item-grid .item-card:nth-child(8)  { animation-delay: 0.24s; }
.item-grid .item-card:nth-child(9)  { animation-delay: 0.27s; }
.item-grid .item-card:nth-child(10) { animation-delay: 0.30s; }
.item-grid .item-card:nth-child(11) { animation-delay: 0.33s; }
.item-grid .item-card:nth-child(12) { animation-delay: 0.36s; }
