/* Subtle gold shimmer on hover for luxury feel */
@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}

.shimmer-hover {
  background-size: 200% auto;
  transition: background-position var(--dur-slow) var(--ease-luxury);
}

.shimmer-hover:hover {
  background-image: linear-gradient(
    90deg,
    var(--color-gold) 0%,
    #fff8e7 40%,
    var(--color-gold) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 1.8s linear infinite;
}

/* Parallax wrapper (JS-driven) */
.parallax-bg {
  will-change: transform;
}

/* Horizontal line draw */
@keyframes drawLine {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

.line-draw {
  transform-origin: left center;
  animation: drawLine var(--dur-slower) var(--ease-luxury) forwards;
  animation-play-state: paused;
}

.line-draw.is-visible { animation-play-state: running; }

/* Page transition */
@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-up {
  animation: fadeUp var(--dur-slow) var(--ease-luxury) both;
}

/* Stagger children */
.stagger-children > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--dur-slow) var(--ease-luxury),
              transform var(--dur-slow) var(--ease-luxury);
}

.stagger-children.is-visible > *:nth-child(1) { opacity:1; transform:none; transition-delay: 0ms; }
.stagger-children.is-visible > *:nth-child(2) { opacity:1; transform:none; transition-delay: 120ms; }
.stagger-children.is-visible > *:nth-child(3) { opacity:1; transform:none; transition-delay: 240ms; }
.stagger-children.is-visible > *:nth-child(4) { opacity:1; transform:none; transition-delay: 360ms; }

/* Scrolly section transitions */
.scrolly-chapter {
  transition: background-color var(--dur-slower) var(--ease-luxury);
}

/* Image zoom on load */
@keyframes zoomIn {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}

.hero__bg img,
.hero__bg video {
  animation: zoomIn var(--dur-slower) var(--ease-luxury) both;
}

/* Floating label animation */
@keyframes floatUp {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-8px); }
}

.float { animation: floatUp 4s ease-in-out infinite; }

/* Gold pulse for CTA */
@keyframes pulseBorder {
  0%, 100% { box-shadow: 0 0 0 0 rgba(239,212,141,0.4); }
  50%       { box-shadow: 0 0 0 8px rgba(239,212,141,0); }
}

.pulse-border { animation: pulseBorder 2.5s ease-in-out infinite; }
