/* Motion & Animation System */

/* Element Fade In */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeInUp 0.8s ease forwards;
}

.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }

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

/* Ambient Particles */
.ambient-particles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}

.particle {
  position: absolute;
  background: var(--accent-highlight);
  border-radius: 50%;
  opacity: 0.15;
  animation: float 15s infinite linear;
}

.p1 { width: 8px; height: 8px; top: 20%; left: 10%; animation-duration: 20s; }
.p2 { width: 12px; height: 12px; top: 60%; left: 80%; animation-duration: 25s; }
.p3 { width: 6px; height: 6px; top: 40%; left: 50%; animation-duration: 18s; }
.p4 { width: 10px; height: 10px; top: 80%; left: 30%; animation-duration: 22s; }

@keyframes float {
  0% { transform: translateY(0) translateX(0) scale(1); }
  33% { transform: translateY(-30px) translateX(20px) scale(1.1); }
  66% { transform: translateY(20px) translateX(-15px) scale(0.9); }
  100% { transform: translateY(0) translateX(0) scale(1); }
}

/* Hero Zoom */
.hero-zoom {
  animation: subtleZoom 20s infinite alternate linear;
}

@keyframes subtleZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}