/* Slideshow transition effects for the customer "Billeder" card.
   Each new slide enters with one of several effects, cycled per advance. */
.ch-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  will-change: transform, opacity, filter;
}
.ch-slide.is-active {
  opacity: 1;
  z-index: 2;
}

/* fade */
.ch-fx-fade.is-active { animation: ch-fade 0.9s ease forwards; }
@keyframes ch-fade { from { opacity: 0; } to { opacity: 1; } }

/* slide from right */
.ch-fx-slide.is-active { animation: ch-slidein 0.8s cubic-bezier(0.32,0.72,0,1) forwards; }
@keyframes ch-slidein { from { opacity: 0; transform: translateX(18%); } to { opacity: 1; transform: translateX(0); } }

/* zoom */
.ch-fx-zoom.is-active { animation: ch-zoom 1s ease forwards; }
@keyframes ch-zoom { from { opacity: 0; transform: scale(1.12); } to { opacity: 1; transform: scale(1); } }

/* blur reveal */
.ch-fx-blur.is-active { animation: ch-blur 0.9s ease forwards; }
@keyframes ch-blur { from { opacity: 0; filter: blur(12px); } to { opacity: 1; filter: blur(0); } }

/* slow Ken-Burns drift on the active slide (subtle, continuous) */
.ch-kenburns.is-active { animation: ch-fade 0.9s ease forwards, ch-kenburns 6s ease-in-out 0.9s forwards; }
@keyframes ch-kenburns { from { transform: scale(1); } to { transform: scale(1.06); } }
