@keyframes gradientShift {
  0% {
    background-position: 0% 30%;
  }
  50% {
    background-position: 100% 70%;
  }
  100% {
    background-position: 0% 30%;
  }
}

@keyframes floatEmoji {
  0% {
    transform: translateY(0) scale(0.9);
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  100% {
    transform: translateY(-120px) scale(1.25);
    opacity: 0;
  }
}

@keyframes pulseHalo {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 127, 87, 0.58);
  }
  100% {
    box-shadow: 0 0 0 16px rgba(255, 127, 87, 0);
  }
}

@keyframes shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

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

@keyframes toastIn {
  from {
    transform: translateY(12px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
