/* Cinematic movement that supports the photography without competing with it. */
.hero-slide.active {
  animation: hero-drift 8s cubic-bezier(.2,.65,.25,1) both;
}

/* Keep the detailed New York skyline at its native sharpness. */
.hero-slide--still,
.hero-slide--still.active {
  animation: none;
  transform: none;
  object-position: center 48%;
}

/* The vertical canyon is framed intact; the wide waterfall keeps its full span. */
.hero-slide:nth-child(4) {
  object-fit: contain;
  object-position: 72% center;
  background: #120b09;
}

.hero-slide:nth-child(4).active {
  animation: canyon-drift 8s cubic-bezier(.2,.65,.25,1) both;
}

.hero-slide:nth-child(5) {
  object-position: center 46%;
}

.hero-slide:nth-child(5).active {
  animation: waterfall-drift 8s cubic-bezier(.2,.65,.25,1) both;
}

.hero-copy > *,
.hero-bottom {
  animation: hero-enter 900ms cubic-bezier(.22,.8,.28,1) both;
}

.hero-copy h1 { animation-delay: 100ms; }
.hero-copy .explore { animation-delay: 220ms; }
.hero-bottom { animation-delay: 360ms; }

.motion-ready .motion-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity 850ms cubic-bezier(.22,.8,.28,1), transform 850ms cubic-bezier(.22,.8,.28,1);
  transition-delay: var(--motion-delay, 0ms);
}

.motion-ready .motion-reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

.motion-ready .motion-reveal figure,
.motion-ready figure.motion-reveal {
  will-change: transform, opacity;
}

.featured-portrait .photo img,
.gallery .photo img {
  transition: transform 900ms cubic-bezier(.2,.7,.2,1), filter 400ms ease;
}

.featured-portrait .photo:hover img,
.gallery .photo:hover img {
  transform: scale(1.018);
}

.category-nav a,
.closing > a,
.testimonials-link,
.occasion-heading a {
  transition: color 250ms ease, transform 250ms ease, border-color 250ms ease;
}

.category-nav a:hover,
.closing > a:hover,
.testimonials-link:hover,
.occasion-heading a:hover {
  transform: translateY(-2px);
}

@keyframes hero-drift {
  from { transform: scale(1.035); }
  to { transform: scale(1.095); }
}

@keyframes canyon-drift {
  from { transform: scale(1.005) translateY(.35%); }
  to { transform: scale(1.025) translateY(-.35%); }
}

@keyframes waterfall-drift {
  from { transform: scale(1.01); }
  to { transform: scale(1.045); }
}

@keyframes hero-enter {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide.active,
  .hero-copy > *,
  .hero-bottom {
    animation: none;
  }

  .motion-ready .motion-reveal,
  .featured-portrait .photo img,
  .gallery .photo img,
  .category-nav a,
  .closing > a,
  .testimonials-link,
  .occasion-heading a {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width: 560px) {
  .hero-slide:nth-child(4) {
    object-position: center;
  }
}
