.vcp-gallery .vcp-photo { margin: 0; min-width: 0; }
.vcp-gallery .vcp-photo-image { aspect-ratio: 16 / 9; overflow: hidden; background: #202020; }
.vcp-gallery .vcp-photo-image img { width: 100%; height: 100%; display: block; object-fit: contain; }
.vcp-gallery .vcp-photo figcaption { padding: .55em 0; overflow-wrap: anywhere; }
.vcp-gallery .vcp-controls:not([hidden]) { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; }
.vcp-gallery.vcp-ready .vcp-photos { display: grid; touch-action: pan-y; }
.vcp-gallery.vcp-ready .vcp-photo { grid-area: 1 / 1; visibility: hidden; pointer-events: none; }
.vcp-gallery.vcp-ready .vcp-photo.vcp-current,
.vcp-gallery.vcp-ready .vcp-photo.vcp-leaving { visibility: visible; }
.vcp-gallery.vcp-ready .vcp-photo.vcp-current { z-index: 2; pointer-events: auto; }
.vcp-gallery.vcp-ready .vcp-photo.vcp-current.vcp-entering .vcp-photo-image { animation: vcp-dissolve .8s ease both; }
.vcp-gallery.vcp-ready .vcp-photo.vcp-leaving figcaption { visibility: hidden; }
.vcp-gallery .vcp-photo.vcp-current img,
.vcp-gallery .vcp-photo.vcp-leaving img { animation: vcp-ken-burns 6.8s linear both; animation-play-state: paused; }
.vcp-gallery.vcp-playing .vcp-photo.vcp-current img,
.vcp-gallery.vcp-playing .vcp-photo.vcp-leaving img { animation-play-state: running; }
.vcp-gallery .vcp-photo:nth-child(even) img { --vcp-pan: -0.75%; }
@keyframes vcp-dissolve { from { opacity: 0; } to { opacity: 1; } }
@keyframes vcp-ken-burns { from { transform: scale(1); } to { transform: scale(1.05) translateX(var(--vcp-pan, .75%)); } }
@media (prefers-reduced-motion: reduce) {
  .vcp-gallery .vcp-photo img,
  .vcp-gallery.vcp-ready .vcp-photo.vcp-current.vcp-entering .vcp-photo-image { animation: none; }
}
