/* ================================================
   GSAP ANIMATION HELPER CLASSES
   Initial states set here, GSAP animates to final
   ================================================ */

/* --- Loader --- */
.loader {
  will-change: transform;
}

/* --- Hero elements start hidden, GSAP reveals --- */
.hero__tag,
.hero__title,
.hero__subtitle,
.hero__actions,
.hero__election-date--mobile {
  opacity: 0;
  transform: translateY(20px);
}

/* --- Manifesto words handled by JS (opacity set inline) --- */

/* --- Stats initial state (desktop only, mobile shows immediately) --- */
@media (min-width: 769px) {
  .stat {
    opacity: 0;
  }
}

/* --- Issue cards initial state --- */
@media (min-width: 769px) {
  .issue-card {
    opacity: 0;
    transform: translateY(20px);
  }
}

/* --- About elements initial state --- */
@media (min-width: 769px) {
  .about__image {
    clip-path: inset(5% 5% 5% 5%);
  }

  .about__bio > * {
    opacity: 0;
    transform: translateY(12px);
  }

  .about__meta-item {
    opacity: 0;
    transform: translateX(-12px);
  }
}

/* --- Video cards initial state --- */
@media (min-width: 769px) {
  .video-card {
    opacity: 0;
    transform: translateY(16px);
  }
}

/* --- Social links initial state --- */
@media (min-width: 769px) {
  .social-link {
    opacity: 0;
    transform: translateY(10px);
  }
}

/* --- Section titles initial state (desktop only) --- */
@media (min-width: 769px) {
  .section__eyebrow,
  .section__title,
  .section__subtitle {
    opacity: 0;
    transform: translateY(12px);
  }
}

/* --- Statement paragraphs initial state --- */
.statement p {
  opacity: 0;
  transform: translateY(16px);
}

/* --- CTA elements initial state --- */
.cta__title,
.cta__subtitle,
.cta__date,
.cta-section .btn,
.cta__countdown {
  opacity: 0;
  transform: translateY(20px);
}

.cta__x {
  transform: scale(0);
}

/* ================================================
   REDUCED MOTION: Show everything immediately
   ================================================ */

@media (prefers-reduced-motion: reduce) {
  .hero__tag,
  .hero__title,
  .hero__subtitle,
  .hero__actions,
  .hero__election-date--mobile,
  .stat,
  .issue-card,
  .about__bio > *,
  .about__meta-item,
  .video-card,
  .social-link,
  .section__eyebrow,
  .section__title,
  .section__subtitle,
  .cta__title,
  .cta__subtitle,
  .cta__date,
  .cta-section .btn,
  .cta__countdown,
  .manifesto__author,
  .statement p {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }

  .cta__x {
    transform: none !important;
  }

  .about__image {
    clip-path: none !important;
  }

  .manifesto__text .word {
    opacity: 1 !important;
  }

  .loader {
    display: none !important;
  }
}
