/* Frontend styles */
.map-animated-gallery {
  position: relative;
  display: block;
  max-width: 100%;
  overflow: hidden;
  border-radius: var(--map-radius, 14px);
  background: rgba(0,0,0,0.05);
}

.map-animated-gallery__stage {
  position: relative;
  width: 100%;
  height: 100%;
}

.map-animated-gallery__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: var(--map-fit, cover);
  opacity: 0;
  transition: none;
  will-change: opacity, transform;
}

.map-animated-gallery__img.is-active {
  opacity: 1;
}

.map-animated-gallery__progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--map-progress-h, 4px);
  background: rgba(0,0,0,0.10);
  overflow: hidden;
}

.map-animated-gallery__bar {
  display: block;
  width: 0%;
  height: 100%;
  background: rgba(0,0,0,var(--map-progress-opacity, 0.9));
}

.map-animated-gallery.map-empty,
.map-empty {
  padding: 14px 16px;
  border: 1px dashed rgba(0,0,0,0.25);
  border-radius: 12px;
  background: rgba(0,0,0,0.03);
}


/* Animation modes */
.map-anim-fade .map-animated-gallery__img{
  opacity: 0;
  transform: none;
  transition: opacity var(--map-trans, 400ms) ease;
}
.map-anim-fade .map-animated-gallery__img.is-active{ opacity: 1; }

.map-anim-slide .map-animated-gallery__img{
  opacity: 1;
  transform: translateX(100%);
  transition: transform var(--map-trans, 400ms) ease;
}
.map-anim-slide .map-animated-gallery__img.is-active{ transform: translateX(0%); }
.map-anim-slide .map-animated-gallery__img.is-outgoing{ transform: translateX(-100%); }

@keyframes mapZoomIn {
  from { transform: scale(1.06); }
  to { transform: scale(1); }
}
.map-anim-zoom .map-animated-gallery__img{
  opacity: 0;
  transform: scale(1);
  transition: opacity var(--map-trans, 400ms) ease;
}
.map-anim-zoom .map-animated-gallery__img.is-active{ opacity: 1; }
.map-anim-zoom .map-animated-gallery__img.is-active.is-zoom{ animation: mapZoomIn var(--map-trans, 400ms) ease; }
