/* Premium motion layer */
.reveal,
.reveal-group > * {
  opacity: 0;
  filter: blur(10px);
  transform: translateY(34px) scale(0.985);
  transition:
    opacity 980ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 980ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 980ms cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.is-visible,
.reveal-group > *.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

.delay-1 {
  transition-delay: 130ms;
}

.gold-card,
.package-card,
.vehicle-card,
.review-card,
.gallery-item,
.info-card {
  transition:
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 420ms ease,
    box-shadow 520ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 520ms ease;
}

.gold-card:hover,
.package-card:hover,
.vehicle-card:hover,
.review-card:hover,
.gallery-item:hover,
.info-card:hover {
  transform: translateY(-10px) scale(1.01);
  border-color: rgba(242, 201, 76, 0.62);
  filter: saturate(1.06);
  box-shadow:
    0 42px 120px rgba(0, 0, 0, 0.58),
    0 0 78px rgba(242, 201, 76, 0.14),
    inset 0 1px 0 rgba(255, 247, 231, 0.18);
}

.package-card,
.vehicle-card,
.gallery-item,
.luxury-panel {
  animation: premiumCardBreath 12s ease-in-out infinite alternate;
}

.floating-temple {
  animation: templeFloat 5.8s ease-in-out infinite;
}

@keyframes templeFloat {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

@keyframes luxuryVeil {
  from {
    opacity: 0.58;
    transform: translate3d(-1.5%, -1%, 0) scale(1);
  }
  to {
    opacity: 0.95;
    transform: translate3d(1.5%, 1%, 0) scale(1.03);
  }
}

@keyframes spiritualGlow {
  from {
    opacity: 0.65;
    transform: scale(1) rotate(0deg);
  }
  to {
    opacity: 1;
    transform: scale(1.05) rotate(1deg);
  }
}

@keyframes heroLightSweep {
  from {
    opacity: 0.35;
    transform: translateX(-4%) scale(1);
  }
  to {
    opacity: 0.85;
    transform: translateX(4%) scale(1.04);
  }
}

@keyframes premiumCardBreath {
  from {
    box-shadow:
      0 32px 98px rgba(0, 0, 0, 0.46),
      0 0 44px rgba(122, 12, 30, 0.16),
      inset 0 1px 0 rgba(255, 247, 231, 0.12);
  }
  to {
    box-shadow:
      0 42px 128px rgba(0, 0, 0, 0.58),
      0 0 64px rgba(242, 201, 76, 0.105),
      inset 0 1px 0 rgba(255, 247, 231, 0.18);
  }
}

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