:root {
  --aidan-glow: rgba(136, 186, 240, 0.7);
}

/* Reveal animations for a more lively scroll experience */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.62s ease, transform 0.62s ease;
  will-change: opacity, transform;
}

.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Subtle pulse for primary CTAs */
@keyframes aidan-pulse {
  0%,
  100% {
    box-shadow: 0 18px 42px rgba(3, 15, 35, 0.85);
  }
  50% {
    box-shadow: 0 22px 56px rgba(3, 15, 35, 0.95);
  }
}

.aidan-btn-primary {
  animation: aidan-pulse 3.5s ease-in-out infinite;
}

/* Gentle floating motion for the hero badge */
@keyframes aidan-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}

.aidan-badge {
  animation: aidan-float 4.5s ease-in-out infinite;
}

/* ===== FUTURISTIC LANDING PAGE ANIMATIONS ===== */

/* Grid background animation */
@keyframes gridShift {
  0% { background-position: 0 0, 0 0; }
  100% { background-position: 4px 4px, 4px 4px; }
}

/* Fade in and slide up animation for hero box */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Floating motion for hero box */
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}

/* Flowing gradient animation for hero title */
@keyframes gradientFlow {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}

/* Card reveal animation with stagger */
@keyframes cardReveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Icon pulse animation on hover */
@keyframes iconPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.15); }
  100% { transform: scale(1); }
}

/* Value list reveal animation */
@keyframes valueReveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
