/* Scroll reveals, stagger, page load — respect prefers-reduced-motion in JS too */

@keyframes hero-gradient-shift {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(8deg);
  }
}

@keyframes float-orb {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(-4%, 3%) scale(1.05);
  }
}

@keyframes hero-img-float {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-8px) scale(1.015);
  }
}

@keyframes hero-ken {
  0% {
    transform: scale(1.04) translate(0, 0);
  }
  100% {
    transform: scale(1.09) translate(-1.5%, -1%);
  }
}

@keyframes hero-figure-in {
  from {
    opacity: 0;
    transform: translate3d(0, 20px, 0) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes strip-pan {
  0% {
    transform: scale(1.06) translate3d(-1.5%, 0, 0);
  }
  100% {
    transform: scale(1.1) translate3d(1.5%, 0, 0);
  }
}

@keyframes visual-break-float {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-6px) scale(1.008);
  }
}

@keyframes accent-line-glow {
  0%,
  100% {
    opacity: 0.72;
    filter: brightness(1);
  }
  50% {
    opacity: 1;
    filter: brightness(1.35);
  }
}

@keyframes band-shine {
  0% {
    background-position: 120% 0;
  }
  100% {
    background-position: -120% 0;
  }
}

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes logo-float {
  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-8px) rotate(-2deg);
  }
}

@keyframes text-shimmer {
  0%,
  100% {
    opacity: 1;
    filter: brightness(1);
  }
  50% {
    opacity: 0.92;
    filter: brightness(1.08);
  }
}

@keyframes pulse-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(6, 182, 212, 0.45);
  }
  70% {
    box-shadow: 0 0 0 14px rgba(6, 182, 212, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(6, 182, 212, 0);
  }
}

@keyframes stat-pop {
  0% { transform: scale(0.88); opacity: 0; }
  70% { transform: scale(1.06); opacity: 1; }
  100% { transform: scale(1); }
}

@keyframes slide-tag-in {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Stat card num pop when parent stagger becomes visible */
.stats-grid.is-visible .stat-card__num {
  animation: stat-pop 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.stats-grid.is-visible .stat-card:nth-child(1) .stat-card__num { animation-delay: 0.15s; }
.stats-grid.is-visible .stat-card:nth-child(2) .stat-card__num { animation-delay: 0.28s; }
.stats-grid.is-visible .stat-card:nth-child(3) .stat-card__num { animation-delay: 0.41s; }
.stats-grid.is-visible .stat-card:nth-child(4) .stat-card__num { animation-delay: 0.54s; }

/* Slider content entrance — only animate when JS adds .hs-anim class */
.hs-slide.hs-anim .hs-slide__tag {
  animation: slide-tag-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}
.hs-slide.hs-anim .hs-slide__title {
  animation: fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.18s both;
}
.hs-slide.hs-anim .hs-slide__lead {
  animation: fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.3s both;
}
.hs-slide.hs-anim .hs-slide__actions {
  animation: fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.44s both;
}
.hs-slide.hs-anim .hs-visual {
  animation: hero-figure-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

@media (prefers-reduced-motion: reduce) {
  .stat-card.is-visible .stat-card__num,
  .hs-slide.hs-anim .hs-slide__tag,
  .hs-slide.hs-anim .hs-slide__title,
  .hs-slide.hs-anim .hs-slide__lead,
  .hs-slide.hs-anim .hs-slide__actions,
  .hs-slide.hs-anim .hs-visual {
    animation: none !important;
  }
}

.reveal--slide-inline {
  opacity: 0;
  transform: translate3d(24px, 0, 0);
}

html[dir="rtl"] .reveal--slide-inline {
  transform: translate3d(-24px, 0, 0);
}

.reveal--slide-inline.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Initial state for JS reveal */
.reveal {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Stagger children when parent gets .is-visible */
.reveal-stagger > * {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.reveal-stagger.is-visible > *:nth-child(1) {
  transition-delay: 0.05s;
}
.reveal-stagger.is-visible > *:nth-child(2) {
  transition-delay: 0.12s;
}
.reveal-stagger.is-visible > *:nth-child(3) {
  transition-delay: 0.19s;
}
.reveal-stagger.is-visible > *:nth-child(4) {
  transition-delay: 0.26s;
}
.reveal-stagger.is-visible > *:nth-child(5) {
  transition-delay: 0.33s;
}
.reveal-stagger.is-visible > *:nth-child(6) {
  transition-delay: 0.4s;
}
.reveal-stagger.is-visible > *:nth-child(7) {
  transition-delay: 0.47s;
}
.reveal-stagger.is-visible > *:nth-child(8) {
  transition-delay: 0.54s;
}
.reveal-stagger.is-visible > *:nth-child(9) {
  transition-delay: 0.61s;
}
.reveal-stagger.is-visible > *:nth-child(10) {
  transition-delay: 0.68s;
}
.reveal-stagger.is-visible > *:nth-child(11) {
  transition-delay: 0.75s;
}
.reveal-stagger.is-visible > *:nth-child(12) {
  transition-delay: 0.82s;
}

/* Hero entrance (runs once on load) */
.hero-animate .hero__kicker {
  animation: fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.05s both;
}

.hero-animate .hero__title {
  animation: fade-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.18s both;
}

.hero-animate .hero__lead {
  animation: fade-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.32s both;
}

.hero-animate .hero__actions {
  animation: fade-up 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.46s both;
}

.hero-animate .hero__figure--premium {
  animation: hero-figure-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.22s both;
}

.site-header {
  animation: fade-in 0.5s ease both;
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.is-visible,
  .reveal-stagger > *,
  .reveal-stagger.is-visible > *,
  .reveal--slide-inline,
  .reveal--slide-inline.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .hero-animate .hero__kicker,
  .hero-animate .hero__title,
  .hero-animate .hero__lead,
  .hero-animate .hero__actions,
  .hero-animate .hero__figure--premium,
  .site-header {
    animation: none !important;
  }

  .value-monument__accent-line {
    animation: none !important;
    opacity: 1;
    filter: none;
  }
}
