/* Scroll reveals, carousel motion, and premium micro-interactions */

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity var(--duration-reveal) var(--ease-premium),
    transform var(--duration-reveal) var(--ease-premium);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal-media {
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity var(--duration-image) var(--ease-premium),
    transform var(--duration-image) var(--ease-premium),
    filter var(--duration-image) var(--ease-premium);
}

.reveal-media.is-visible {
  opacity: 1;
  transform: none;
}

.reveal-text {
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 680ms var(--ease-premium),
    transform 680ms var(--ease-premium);
}

.reveal-text.is-visible {
  opacity: 1;
  transform: none;
}

.reveal-child {
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 640ms var(--ease-premium),
    transform 640ms var(--ease-premium),
    box-shadow var(--duration-ui) var(--ease-premium),
    border-color var(--duration-ui) var(--ease-premium);
}

.reveal-child.is-visible {
  opacity: 1;
  transform: none;
}

/* Leadership (#leadership) — two-column entrance; peek carousel stays interactive */
.reveal-leadership .hb-team-left {
  opacity: 0;
  transform: translateX(-1.5rem);
  transition:
    opacity .7s var(--ease-premium),
    transform .7s var(--ease-premium);
}

.reveal-leadership.is-visible .hb-team-left {
  opacity: 1;
  transform: none;
}

.reveal-leadership .hb-team-right {
  opacity: 0;
  transform: translateX(1.5rem);
  transition:
    opacity .7s var(--ease-premium) .15s,
    transform .7s var(--ease-premium) .15s;
}

.reveal-leadership.is-visible .hb-team-right {
  opacity: 1;
  transform: none;
}

/* Aesthetic (#aesthetic) — image left / copy right entrance */
.reveal-aesthetic .hb-team-right {
  opacity: 0;
  transform: translateX(-1.5rem);
  transition:
    opacity .7s var(--ease-premium),
    transform .7s var(--ease-premium);
}

.reveal-aesthetic.is-visible .hb-team-right {
  opacity: 1;
  transform: none;
}

.reveal-aesthetic .hb-team-left {
  opacity: 0;
  transform: translateX(1.5rem);
  transition:
    opacity .7s var(--ease-premium) .15s,
    transform .7s var(--ease-premium) .15s;
}

.reveal-aesthetic.is-visible .hb-team-left {
  opacity: 1;
  transform: none;
}

/* Carousel & gallery scroll */
.hb-car-track,
[data-carousel-scroll] {
  scroll-behavior: smooth;
}

/* Carousels must stay fully visible — never hide slides with reveal opacity */
[data-carousel] .hb-car-photo,
[data-carousel] .hb-car-slide,
[data-carousel="peek"] .peek-photo,
[data-carousel-scroll] .cv-gallery-card,
[data-carousel-scroll] .cv-gallery-photo {
  opacity: 1;
  transform: none;
}

.hb-car-photo,
.cv-gallery-photo,
.cv-circle-media img,
.cv-benefits-photos img {
  transition:
    transform var(--duration-image) var(--ease-premium),
    filter var(--duration-ui) var(--ease-premium);
}

.hb-car-slide:hover .hb-car-photo {
  filter: saturate(1);
}

.cv-gallery-card:hover .cv-gallery-photo,
.hb-about-media:hover img,
.cv-circle-media:hover img {
  transform: scale(1.025);
}

/* Drawer & backdrop */
.cv-drawer {
  transition: transform 480ms var(--ease-premium);
}

.cv-drawer-backdrop:not([hidden]) {
  animation: cv-backdrop-in 420ms var(--ease-premium) both;
}

@keyframes cv-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.cv-drawer.is-entering .cv-drawer-nav a {
  animation: cv-drawer-link-in 520ms var(--ease-premium) both;
}

.cv-drawer.is-entering .cv-drawer-nav a:nth-child(1) { animation-delay: 40ms; }
.cv-drawer.is-entering .cv-drawer-nav a:nth-child(2) { animation-delay: 80ms; }
.cv-drawer.is-entering .cv-drawer-nav a:nth-child(3) { animation-delay: 120ms; }
.cv-drawer.is-entering .cv-drawer-nav a:nth-child(4) { animation-delay: 160ms; }
.cv-drawer.is-entering .cv-drawer-nav a:nth-child(5) { animation-delay: 200ms; }
.cv-drawer.is-entering .cv-drawer-nav a:nth-child(6) { animation-delay: 240ms; }

@keyframes cv-drawer-link-in {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.cv-drawer.is-entering .cv-drawer-contact {
  animation: cv-drawer-link-in 520ms 280ms var(--ease-premium) both;
}

/* Buttons & links — calm hover lift */
.btn,
.cv-book,
.cv-gold-btn,
.cv-tier-btn,
.cv-book-now,
.carousel-nav,
.hb-car-prev,
.hb-car-next,
.text-link,
.hb-discover {
  transition:
    background var(--duration-ui) var(--ease-premium),
    border-color var(--duration-ui) var(--ease-premium),
    color var(--duration-ui) var(--ease-premium),
    box-shadow var(--duration-ui) var(--ease-premium),
    transform var(--duration-ui) var(--ease-premium),
    opacity var(--duration-ui) var(--ease-premium);
}

.btn:hover,
.cv-book:hover,
.cv-gold-btn:hover,
.cv-tier-btn:hover {
  transform: translateY(-1px);
}

.cv-book-now:hover {
  transform: translateY(-1px);
}

/* Cards — subtle elevation */
.cv-tier,
.cv-benefit,
.cv-gallery-card,
.blog-card,
.profile-tile,
.promo-card {
  transition:
    transform var(--duration-ui) var(--ease-premium),
    box-shadow var(--duration-ui) var(--ease-premium),
    border-color var(--duration-ui) var(--ease-premium);
}

.cv-tier:hover,
.cv-benefit:hover,
.cv-gallery-card:hover {
  transform: translateY(-2px);
}

.cv-gallery--masonry .cv-gallery-card:hover,
.cv-gallery--masonry .cv-gallery-card.is-visible:hover {
  transform: translateY(0);
}

.blog-card:hover,
.profile-tile:hover,
.promo-card:hover {
  transform: translateY(-3px);
}

/* Toast / flash messages */
.motion-toast {
  animation: motion-toast-in 520ms var(--ease-premium) both;
}

.motion-toast.is-leaving {
  animation: motion-toast-out 360ms var(--ease-premium) both;
}

@keyframes motion-toast-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes motion-toast-out {
  from {
    opacity: 1;
    transform: none;
  }

  to {
    opacity: 0;
    transform: translateY(6px);
  }
}

/* Footer & social */
.cv-footer a,
.cv-social-btn {
  transition:
    color var(--duration-ui) var(--ease-premium),
    transform var(--duration-ui) var(--ease-premium),
    filter var(--duration-ui) var(--ease-premium);
}

.cv-social-btn:hover {
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal-media,
  .reveal-text,
  .reveal-child,
  #leadership.reveal-leadership .hb-team-left,
  #leadership.reveal-leadership .hb-team-right,
  #aesthetic.reveal-aesthetic .hb-team-left,
  #aesthetic.reveal-aesthetic .hb-team-right {
    opacity: 1;
    transform: none;
    clip-path: none;
    transition: none;
  }

  .cv-drawer.is-entering .cv-drawer-nav a,
  .cv-drawer.is-entering .cv-drawer-contact {
    animation: none;
  }

  .motion-toast,
  .motion-toast.is-leaving {
    animation: none;
  }

  .cv-tier:hover,
  .cv-benefit:hover,
  .cv-gallery-card:hover,
  .cv-xp-card:hover,
  .blog-card:hover,
  .profile-tile:hover,
  .promo-card:hover,
  .btn:hover,
  .cv-book:hover,
  .cv-gold-btn:hover,
  .cv-tier-btn:hover,
  .cv-book-now:hover {
    transform: none;
  }

  .cv-benefits-photos img {
    transform: none;
  }

  .hb-car-track,
  [data-carousel-scroll] {
    scroll-behavior: auto;
  }

  .cv-drawer-backdrop:not([hidden]) {
    animation: none;
  }

  .cv-gallery-card:hover .cv-gallery-photo,
  .hb-about-media:hover img,
  .cv-circle-media:hover img,
  .hb-car-slide:hover .hb-car-photo {
    transform: none;
    filter: none;
  }

  .cv-social-btn:hover {
    transform: none;
  }
}
