.carousel_banner {
  --gap: 20px;

  position: relative;
  display: flex;
  width: 100%;
  overflow: hidden;
  gap: var(--gap);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.carousel_banner:hover .carousel_banner_scroll-container {
  animation-play-state: paused;
}
.carousel_banner .carousel_banner_scroll-container {
  flex-shrink: 0;
  display: flex;
  gap: var(--gap);
  min-width: 100%;
}
.carousel_banner .carousel_banner_scroll-container:last-child {
  position: absolute;
  top: 0;
  inset-inline-start: 0;
}

/* Animation implementation */
.carousel_banner .carousel_banner_scroll-container {
  animation: carousel_banner_scroll var(--carousel-banner-time) linear infinite running;
}
.carousel_banner .carousel_banner_scroll-container:last-child {
  animation-name: carousel_banner_scroll_copy;
}
@keyframes carousel_banner_scroll {
  100% {
    transform: translateX(calc(-100% - var(--gap)));
  }
}
@keyframes carousel_banner_scroll_copy {
  0% {
    transform: translateX(calc(100% + var(--gap)));
  }
  100% {
    transform: translateX(0);
  }
}
