/* V19 — calm, editorial gallery motion */

/* Client index: remove the slightly jerky card lift/letter-spacing changes.
   Let the photograph do one restrained, GPU-friendly movement instead. */
@media (hover:hover) and (pointer:fine){
  .client-gallery__collection-item{
    transform:none !important;
    transition:none !important;
  }
  .client-gallery__collection-item__photo-wrapper{
    overflow:hidden;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }
  .client-gallery__collection-item__photo{
    transform:translateZ(0) scale(1);
    transform-origin:center center;
    will-change:transform;
    transition:transform .85s cubic-bezier(.22,.61,.36,1) !important;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }
  .client-gallery__collection-item:hover .client-gallery__collection-item__photo{
    transform:translateZ(0) scale(1.008);
  }
  .client-gallery__collection-item__title{
    letter-spacing:normal !important;
    transition:none !important;
  }
}

/* Elegant scroll reveal. Images are already loaded; only their presentation
   waits for the user's scroll position. */
.dm-elegant-reveal{
  opacity:0;
  transform:translate3d(0,20px,0);
  transition:
    opacity 1s cubic-bezier(.16,1,.3,1),
    transform 1s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
.dm-elegant-reveal.dm-image-visible{
  opacity:1;
  transform:none;
}

/* Keep the TV/Travel treatment a touch richer, matching the existing V18
   intention while using the same reveal class as every other gallery. */
.vertical-grid__photo.dm-elegant-reveal{
  filter:blur(1.5px);
  transition:
    opacity 1.05s cubic-bezier(.16,1,.3,1),
    transform 1.05s cubic-bezier(.16,1,.3,1),
    filter 1.05s cubic-bezier(.16,1,.3,1);
}
.vertical-grid__photo.dm-elegant-reveal.dm-image-visible{
  filter:none;
}

@media (prefers-reduced-motion:reduce){
  .dm-elegant-reveal,
  .vertical-grid__photo.dm-elegant-reveal,
  .client-gallery__collection-item__photo{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
}
