.ips-widgets-text-carousel {
  --ips-text-carousel-duration: 500ms;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.18em;
  max-width: 100%;
  margin: 0;
  line-height: 1.1;
}

.ips-widgets-text-carousel__before,
.ips-widgets-text-carousel__after {
  min-width: 0;
}

.ips-widgets-text-carousel__rotator {
  position: relative;
  display: inline-grid;
  grid-template-areas: "stack";
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  vertical-align: baseline;
}

.ips-widgets-text-carousel__measure,
.ips-widgets-text-carousel__track {
  grid-area: stack;
}

.ips-widgets-text-carousel__measure {
  display: grid;
  grid-template-areas: "stack";
  visibility: hidden;
  pointer-events: none;
}

.ips-widgets-text-carousel__measure-item {
  grid-area: stack;
}

.ips-widgets-text-carousel__measure-item,
.ips-widgets-text-carousel__item {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.ips-widgets-text-carousel__track {
  position: relative;
  display: block;
  min-width: 0;
}

.ips-widgets-text-carousel__item {
  opacity: 0;
  transform: translateY(0.42em);
  transition:
    opacity var(--ips-text-carousel-duration) ease,
    transform var(--ips-text-carousel-duration) ease;
  will-change: opacity, transform;
}

.ips-widgets-text-carousel__item:not(.is-active) {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  pointer-events: none;
}

.ips-widgets-text-carousel__item.is-active {
  position: relative;
  opacity: 1;
  transform: translateY(0);
}

.ips-widgets-text-carousel--effect-fade .ips-widgets-text-carousel__item {
  transform: none;
}

.ips-widgets-text-carousel.is-static .ips-widgets-text-carousel__item:not(.is-active) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .ips-widgets-text-carousel__item {
    transition: none;
    transform: none;
  }
}
