/* ===== Scroll reveal (driven by assets/js/scroll-reveal.js) ===== */

[data-reveal] {
  opacity: 0;
  transform: translate3d(var(--reveal-x, 0), var(--reveal-y, 30px), 0);
  transition: opacity 900ms cubic-bezier(0.25, 0.1, 0.25, 1) var(--reveal-delay, 0s),
              transform 900ms cubic-bezier(0.25, 0.1, 0.25, 1) var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
[data-reveal].reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
/* Buttons carry their own hover transform; letting the reveal rule keep
   ownership of `transform` cancels the lift once the element is revealed. */
[data-reveal].reveal-visible.btn-gold-solid:hover,
[data-reveal].reveal-visible.btn-gold-outline:hover {
  transform: translateY(-2px);
}
[data-reveal].reveal-visible.btn-gold-solid:active,
[data-reveal].reveal-visible.btn-gold-outline:active {
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ===== Cinematic hero (driven by assets/js/cinematic-hero.js) ===== */

.cine-hero-media {
  position: absolute;
  inset: 0;
  will-change: transform;
}
.cine-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  will-change: transform;
  transform: scale(1.18);
}
.cine-hero-media.is-mounted img {
  transform: scale(1);
  transition: transform 9000ms var(--ease-luxe);
}
@media (prefers-reduced-motion: reduce) {
  .cine-hero-media img { transform: none !important; transition: none !important; }
}

.cine-hero-eyebrow,
.cine-hero-title,
.cine-hero-divider,
.cine-hero-children {
  opacity: 0;
}
.cine-hero-eyebrow { transform: translateY(12px); transition: opacity 0.9s var(--ease-luxe) 0.3s, transform 0.9s var(--ease-luxe) 0.3s; }
.cine-hero-title { transform: translateY(24px); transition: opacity 1.2s var(--ease-luxe) 0.45s, transform 1.2s var(--ease-luxe) 0.45s; }
.cine-hero-divider { transform: scaleX(0); transform-origin: left; transition: opacity 1.1s var(--ease-luxe) 0.7s, transform 1.1s var(--ease-luxe) 0.7s; }
.cine-hero-divider.is-center { transform-origin: center; }
.cine-hero-children { transform: translateY(16px); transition: opacity 1.0s var(--ease-luxe) 0.9s, transform 1.0s var(--ease-luxe) 0.9s; }

.cine-hero.is-revealed .cine-hero-eyebrow,
.cine-hero.is-revealed .cine-hero-title,
.cine-hero.is-revealed .cine-hero-children { opacity: 1; transform: translateY(0); }
.cine-hero.is-revealed .cine-hero-divider { opacity: 1; transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  .cine-hero-eyebrow, .cine-hero-title, .cine-hero-divider, .cine-hero-children {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}

/* ===== Hero scroll indicator ===== */

@keyframes scroll-line-fade {
  0% { opacity: 0; transform: scaleY(0); transform-origin: top; }
  40% { opacity: 1; transform: scaleY(1); transform-origin: top; }
  100% { opacity: 0; transform: scaleY(1); transform-origin: bottom; }
}
.hero-scroll-indicator {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  opacity: 0.4;
}
.hero-scroll-indicator span {
  font-size: 9px;
  letter-spacing: var(--tracking-ultra-wide);
  text-transform: uppercase;
  color: hsl(var(--muted-foreground) / 0.4);
}
.hero-scroll-indicator .line {
  width: 1px;
  height: 3rem;
  background: hsl(var(--primary) / 0.4);
  animation: scroll-line-fade 2.2s ease-in-out infinite;
}
