/* Keyframes */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes ambientGlow {
  0% {
    box-shadow: 0 0 20px rgba(245, 158, 11, 0.1);
  }
  50% {
    box-shadow: 0 0 40px rgba(245, 158, 11, 0.3);
  }
  100% {
    box-shadow: 0 0 20px rgba(245, 158, 11, 0.1);
  }
}

@keyframes floatDust {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 1000px 1000px;
  }
}

/* Animation Classes */
.fade-in {
  animation: fadeIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.delay-1 {
  animation-delay: 0.2s;
}

.delay-2 {
  animation-delay: 0.4s;
}

.delay-3 {
  animation-delay: 0.6s;
}

.pulse-glow {
  animation: ambientGlow 4s infinite ease-in-out;
}

.spin-anim {
  animation: spin 1s linear infinite;
}

/* Dust Overlay */
.dust-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-image: url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)" opacity="0.05"/%3E%3C/svg%3E');
  animation: floatDust 60s linear infinite;
  z-index: 0;
}