/* Shared motion — homepage + event details */
:root {
  --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes edm-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes edm-glow-pulse {
  0%,
  100% {
    opacity: 0.55;
  }
  50% {
    opacity: 1;
  }
}

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

@keyframes edm-fade-up {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ed-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 0.1s var(--motion-ease),
    transform 0.1s var(--motion-ease);
}

.ed-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.ed-reveal--delay-1.is-visible {
  transition-delay: 0.04s;
}
.ed-reveal--delay-2.is-visible {
  transition-delay: 0.8s;
}
.ed-reveal--delay-3.is-visible {
  transition-delay: 0.16s;
}

/* Homepage hero stagger */
.hero .kicker,
.hero .hero-title,
.hero .lede,
.hero .hero-ctas,
.hero .trust-row {
  opacity: 0;
  animation: edm-fade-up 0.85s var(--motion-ease) forwards;
}

.hero .hero-title {
  animation-delay: 0.1s;
}
.hero .lede {
  animation-delay: 0.2s;
}
.hero .hero-ctas {
  animation-delay: 0.32s;
}
.hero .trust-row {
  animation-delay: 0.42s;
}

.featured-card--hero {
  opacity: 0;
  animation: edm-fade-up 0.9s var(--motion-ease) forwards;
}
.featured-card--hero:nth-child(1) {
  animation-delay: 0.35s;
}
.featured-card--hero:nth-child(2) {
  animation-delay: 0.48s;
}

.mesh {
  animation: edm-glow-pulse 12s ease-in-out infinite;
}

.edc-card.edc-reveal-ready {
  opacity: 0;
  transform: translateY(16px) scale(0.98);
  transition:
    opacity 0.5s var(--motion-ease),
    transform 0.5s var(--motion-ease);
}

.edc-card.edc-reveal-ready.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.section-head.ed-reveal,
.search-strip.ed-reveal,
.stats-grid.ed-reveal,
.cta-band.ed-reveal,
#calendar-events-root.ed-reveal,
.calendar-shell--nav-only.ed-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.65s var(--motion-ease),
    transform 0.65s var(--motion-ease);
}

.section-head.ed-reveal.is-visible,
.search-strip.ed-reveal.is-visible,
.stats-grid.ed-reveal.is-visible,
.cta-band.ed-reveal.is-visible,
#calendar-events-root.ed-reveal.is-visible,
.calendar-shell--nav-only.ed-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .ed-reveal,
  .edc-card.edc-reveal-ready {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .hero .kicker,
  .hero .hero-title,
  .hero .lede,
  .hero .hero-ctas,
  .hero .trust-row,
  .featured-card--hero {
    opacity: 1;
    animation: none;
  }
  .mesh {
    animation: none;
  }
}
