[data-topo-carousel] { min-width: 0; max-width: 100%; }
[data-topo-carousel-mode-value="slide"] [data-topo-carousel-track],
[data-topo-carousel-mode-value="marquee"] [data-topo-carousel-track],
[data-topo-carousel-copy] {
  display: flex !important; flex-wrap: nowrap !important; width: auto; max-width: 100%;
  overflow-x: auto !important; scroll-snap-type: x mandatory; scrollbar-width: none;
  overscroll-behavior-x: contain; transform: none !important; left: auto !important;
}
[data-topo-carousel-track]::-webkit-scrollbar { display: none; }
[data-topo-carousel-mode-value="slide"] [data-topo-carousel-slide],
[data-topo-carousel-mode-value="marquee"] [data-topo-carousel-slide] {
  flex-shrink: 0 !important; scroll-snap-align: start; transform: none !important;
}
[data-topo-carousel-mode-value="fade"] [data-topo-carousel-track] { display: grid !important; transform: none !important; width: auto !important; }
[data-topo-carousel-mode-value="fade"] [data-topo-carousel-slide] {
  grid-area: 1 / 1 !important; position: relative !important; left: auto !important;
  opacity: 0 !important; visibility: hidden !important; transform: none !important;
  transition: opacity 600ms, visibility 0s 600ms !important;
}
[data-topo-carousel-mode-value="fade"] [data-topo-carousel-slide][data-topo-active] {
  opacity: 1 !important; visibility: visible !important; transition-delay: 0s !important;
}
[data-topo-carousel-runner] { display: flex; width: max-content; animation: topo-carousel-marquee var(--topo-carousel-duration, 30s) linear infinite var(--topo-carousel-direction, normal); }
[data-topo-carousel-runner] > [data-topo-carousel-track], [data-topo-carousel-copy] { flex: 0 0 auto; width: max-content; max-width: none; overflow: visible !important; }
[data-topo-carousel-mode-value="marquee"] { overflow: hidden; }
[data-topo-carousel][data-topo-paused] [data-topo-carousel-runner],
[data-topo-carousel]:hover [data-topo-carousel-runner], [data-topo-carousel]:focus-within [data-topo-carousel-runner] { animation-play-state: paused; }
@keyframes topo-carousel-marquee { to { transform: translateX(calc(-1 * var(--topo-carousel-distance))); } }
[data-topo-carousel-preview-value="true"] [data-topo-carousel-track] { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  [data-topo-carousel-runner] { animation: none !important; width: 100%; }
  [data-topo-carousel-runner] > [data-topo-carousel-track] { width: 100%; overflow-x: auto !important; }
  [data-topo-carousel-copy] { display: none !important; }
  [data-topo-carousel-slide] { transition: none !important; }
}
