/* ============================================================
   ZAHARI · animations.css
   reveals, parallax, micro-interactions
   ============================================================ */

/* Reveal on scroll */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s var(--ease-luxe), transform 1s var(--ease-luxe);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delay by data-reveal index */
.reveal[data-reveal="1"] { transition-delay: 0.05s; }
.reveal[data-reveal="2"] { transition-delay: 0.18s; }
.reveal[data-reveal="3"] { transition-delay: 0.32s; }
.reveal[data-reveal="4"] { transition-delay: 0.46s; }
.reveal[data-reveal="5"] { transition-delay: 0.6s; }

/* Section reveal (cards, why cells, etc.) */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .9s var(--ease-luxe), transform .9s var(--ease-luxe);
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-up[data-stagger="1"] { transition-delay: 0.04s; }
.fade-up[data-stagger="2"] { transition-delay: 0.12s; }
.fade-up[data-stagger="3"] { transition-delay: 0.2s; }
.fade-up[data-stagger="4"] { transition-delay: 0.28s; }
.fade-up[data-stagger="5"] { transition-delay: 0.36s; }
.fade-up[data-stagger="6"] { transition-delay: 0.44s; }

/* Hover lift utility */
.lift { transition: transform .35s var(--ease-luxe), box-shadow .35s var(--ease-out); }
.lift:hover { transform: translateY(-4px); }

/* Subtle float */
@keyframes float-y {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.float { animation: float-y 6s var(--ease-in-out) infinite; }

/* Glow pulse for gold badges */
@keyframes glow-pulse {
  0%,100% { box-shadow: 0 0 30px -8px rgba(212,175,55,.4); }
  50% { box-shadow: 0 0 50px -4px rgba(212,175,55,.7); }
}

/* Image reveal mask */
.img-reveal {
  position: relative;
  overflow: hidden;
}
.img-reveal img {
  transition: transform 1.4s var(--ease-luxe), filter .8s var(--ease-out);
}
.img-reveal::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c-turquoise-700);
  transform-origin: right;
  transform: scaleX(1);
  transition: transform 1.2s var(--ease-luxe);
  z-index: 2;
}
.img-reveal.is-visible::after {
  transform: scaleX(0);
}

/* Smooth fade-in for lazy images */
img.lazy {
  opacity: 0;
  filter: blur(8px);
  transition: opacity .8s var(--ease-luxe), filter .8s var(--ease-luxe);
  background: linear-gradient(135deg, rgba(10,50,57,.6), rgba(4,22,27,.8));
}
img.lazy.is-loaded {
  opacity: 1;
  filter: blur(0);
}

/* Marquee reveal */
@keyframes shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.shimmer {
  background: linear-gradient(120deg, var(--c-gold-300), var(--c-magenta-400), var(--c-gold-300));
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmer 6s linear infinite;
}

/* Subtle parallax (driven by JS) */
[data-parallax] { will-change: transform; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
