/*
 * Animations — scroll reveal + typing cursor + subtle transitions.
 * Respects prefers-reduced-motion.
 */

/* ===== Scroll reveal ===== */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
[data-reveal="fade"]      { transform: none; }
[data-reveal="slide-up"]  { transform: translateY(40px); }
[data-reveal="slide-in"]  { transform: translateX(40px); }
body.is-rtl [data-reveal="slide-in"] { transform: translateX(-40px); }
[data-reveal="scale"]     { transform: scale(.95); }
[data-reveal].is-visible {
  opacity: 1;
  transform: translate(0,0) scale(1);
}

/* Stagger children */
[data-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
[data-reveal-stagger].is-visible > *           { opacity: 1; transform: translateY(0); }
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0s; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: .12s; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: .24s; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: .36s; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: .48s; }
[data-reveal-stagger].is-visible > *:nth-child(n+6) { transition-delay: .6s; }

/* ===== Typing cursor for hero ===== */
.home-hero__title.is-typing::after {
  content: '|';
  display: inline-block;
  color: var(--accent);
  font-weight: 300;
  animation: moriah-blink 1s steps(2) infinite;
  margin-inline-start: 2px;
}
@keyframes moriah-blink {
  50% { opacity: 0; }
}

/* ===== Count-up animation for stats ===== */
.home-stats__value {
  opacity: 0;
  transition: opacity .4s ease;
}
.home-stats__value.is-counted { opacity: 1; }

/* ===== Sticky header refinement on scroll ===== */
.site-header { transition: box-shadow .25s ease, background-color .25s ease; }
.site-header.is-scrolled {
  box-shadow: var(--shadow-md);
  background: rgba(255, 255, 255, .98);
  backdrop-filter: saturate(180%) blur(8px);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
}

/* ===== Offline indicator ===== */
.moriah-offline-banner {
  position: fixed;
  bottom: 16px;
  inset-inline: 16px;
  z-index: 9999;
  background: var(--dark);
  color: var(--white);
  padding: 12px 18px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  font-size: 14px;
  display: none;
  align-items: center;
  gap: 10px;
}
.moriah-offline-banner.is-shown { display: flex; }
.moriah-offline-banner::before { content: '📡'; }

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .home-hero__title.is-typing::after { animation: none; }
  html { scroll-behavior: auto; }
}
