/* ==========================================================================
   Dawat-e-Islami Bangladesh — animations.css
   Keyframes, scroll-reveal, motion classes
   ========================================================================== */

@keyframes fadeRiseIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes navItemIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes livePulse {
  0%   { transform: scale(1);   opacity: .8; }
  70%  { transform: scale(2.1); opacity: 0; }
  100% { transform: scale(2.1); opacity: 0; }
}
@keyframes wipeReveal {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}
@keyframes starDrift {
  from { background-position: 0 0; }
  to   { background-position: 260px 130px; }
}
@keyframes archDrawIn {
  to { stroke-dashoffset: 0; }
}
@keyframes domeRiseIn {
  from { opacity: 0; transform: translateY(38px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes heroTitleIn {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes ctaBorderShimmer {
  from { background-position: 200% 0, -20% 100%, center, center; }
  to   { background-position: 0 0, 220% 100%, center, center; }
}

/* --------------------------------------------------------------------
   Hero load-in stagger
   -------------------------------------------------------------------- */
.hero__eyebrow, .hero h1, .hero__sub, .hero__ctas, .hero__trust {
  opacity: 0;
}
.hero__eyebrow { animation: fadeRiseIn .48s var(--ease-out) .06s forwards; }
.hero h1       { animation: heroTitleIn .62s var(--ease-out) .13s forwards; }
.hero__sub     { animation: fadeRiseIn .56s var(--ease-out) .28s forwards; }
.hero__ctas    { animation: fadeRiseIn .56s var(--ease-out) .38s forwards; }
.hero__trust   { animation: fadeRiseIn .56s var(--ease-out) .48s forwards; }

.hero__dome-img {
  opacity: 0;
  animation: domeRiseIn .85s var(--ease-out) forwards;
  animation-delay: .22s;
}
.hero__dome-glow {
  opacity: 0;
  animation: fadeRiseIn 1.1s var(--ease-out) .18s forwards;
}
.hero__glow {
  opacity: 0;
  animation: fadeRiseIn 1s var(--ease-out) .46s forwards;
}

.star-texture.is-live { animation: starDrift 72s linear infinite alternate; }

/* --------------------------------------------------------------------
   Inner-page hero load-in stagger
   -------------------------------------------------------------------- */
.page-hero .breadcrumb, .page-hero .eyebrow, .page-hero__title, .page-hero__lead {
  opacity: 0;
}
.page-hero .breadcrumb { animation: fadeRiseIn .38s var(--ease-out) .04s forwards; }
.page-hero .eyebrow    { animation: fadeRiseIn .42s var(--ease-out) .10s forwards; }
.page-hero__title      { animation: heroTitleIn .6s var(--ease-out) .17s forwards; }
.page-hero__lead       { animation: fadeRiseIn .5s var(--ease-out) .29s forwards; }

/* Small screens keep the content entrance but avoid animated background texture. */
@media (max-width: 640px) {
  .star-texture.is-live { animation: none; }
}

/* --------------------------------------------------------------------
   Scroll reveal (IntersectionObserver-driven)
   -------------------------------------------------------------------- */
.reveal,
.reveal-group > * {
  /* Content must remain available even if a browser blocks site JavaScript. */
  opacity: 1;
  transform: none;
}
.reveal.is-revealed { opacity: 1; transform: translateY(0); }
.reveal-group.is-revealed > * { opacity: 1; transform: translateY(0); }
.reveal-group.is-revealed > *:nth-child(1) { transition-delay: 0ms; }
.reveal-group.is-revealed > *:nth-child(2) { transition-delay: 55ms; }
.reveal-group.is-revealed > *:nth-child(3) { transition-delay: 110ms; }
.reveal-group.is-revealed > *:nth-child(4) { transition-delay: 165ms; }
.reveal-group.is-revealed > *:nth-child(5) { transition-delay: 220ms; }
.reveal-group.is-revealed > *:nth-child(6) { transition-delay: 275ms; }
.reveal-group.is-revealed > *:nth-child(7) { transition-delay: 330ms; }
.reveal-group.is-revealed > *:nth-child(8) { transition-delay: 385ms; }

/* --------------------------------------------------------------------
   Reduced motion — disable non-essential animation entirely
   -------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .hero__eyebrow, .hero h1, .hero__sub, .hero__ctas, .hero__trust,
  .hero__glow, .hero__dome-img, .hero__dome-glow, .reveal, .reveal-group > *,
  .page-hero .breadcrumb, .page-hero .eyebrow, .page-hero__title, .page-hero__lead {
    opacity: 1 !important;
    transform: none !important;
  }
  .accordion__panel { transition: none !important; }
  .live-dot::after { animation: none !important; display: none; }
  .star-texture.is-live { animation: none !important; }
  .hero__dome-glow { animation: none !important; }
}
