.transport-map-carousel .transport-program-animation-root {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.transport-map-carousel.has-program-animations .transport-animation-fallback {
  display: none;
}

.itc-map-animation-root,
.itc-map-animation-stage,
.itc-flow-animation-root,
.itc-flow-animation-stage,
.itc-belt-animation-root,
.itc-belt-animation-stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.itc-map-animation-stage {
  isolation: isolate;
  container-type: inline-size;
  background: #25313c;
}

.itc-map-animation-background,
.itc-map-animation-overlay,
.itc-flow-animation-background,
.itc-flow-animation-frame,
.itc-belt-animation-background,
.itc-belt-animation-highlight,
.itc-belt-animation-label-layer {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  user-select: none;
}

.itc-map-animation-background,
.itc-map-animation-overlay,
.itc-flow-animation-background,
.itc-flow-animation-frame,
.itc-belt-animation-background,
.itc-belt-animation-highlight {
  object-fit: contain;
}

.itc-map-animation-background,
.itc-flow-animation-background,
.itc-belt-animation-background {
  z-index: 0;
}

.itc-map-animation-overlay {
  z-index: 1;
  opacity: 0;
  will-change: opacity;
}

.itc-map-animation-overlay--landmark {
  z-index: 2;
}

.itc-map-animation-line-reveal {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

.itc-map-animation-line-image {
  pointer-events: none;
}

.itc-map-animation-line-segment,
.itc-map-animation-line-final {
  opacity: 0;
}

.itc-map-animation-icon {
  position: absolute;
  z-index: 3;
  display: block;
  height: auto;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  will-change: opacity;
}

.itc-map-animation-note {
  position: absolute;
  z-index: 4;
  margin: 0;
  opacity: 0;
  color: #ffffff;
  font-family: Arial, sans-serif;
  font-size: 5px;
  font-size: 1.2cqw;
  line-height: 1;
  white-space: nowrap;
  will-change: opacity;
}

.itc-flow-animation-root {
  background: #20272f;
}

.itc-flow-animation-root--loading::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: grid;
  place-items: center;
  color: #f4f7f9;
  background: rgba(23, 30, 36, 0.72);
  content: "Loading animation...";
  font-size: 13px;
  letter-spacing: 0.02em;
  pointer-events: none;
}

.itc-flow-animation-frame {
  z-index: 1;
  opacity: 1;
}

.itc-flow-animation-root--reset .itc-flow-animation-frame {
  opacity: 0;
}

.itc-belt-animation-root {
  background: #252b31;
}

.itc-belt-animation-stage {
  isolation: isolate;
}

.itc-belt-animation-highlight {
  z-index: 1;
  opacity: 1;
  will-change: clip-path;
}

.itc-belt-animation-label-layer {
  z-index: 2;
}

.itc-belt-animation-label-image {
  position: absolute;
  display: block;
  width: 15.625%;
  height: auto;
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  transform: scaleX(0.985);
  transform-origin: left center;
  pointer-events: none;
  user-select: none;
  will-change: clip-path, opacity, transform;
}

.itc-belt-animation-label-layer--0 .itc-belt-animation-label-image {
  top: 11.805556%;
  left: 55.390625%;
}

.itc-belt-animation-label-layer--1 .itc-belt-animation-label-image {
  top: 73.194444%;
  left: 37.070313%;
}

.itc-belt-animation-label-layer--2 .itc-belt-animation-label-image {
  top: 6.944444%;
  left: 14.21875%;
}

.itc-belt-animation-root--reset .itc-belt-animation-label-image {
  opacity: 0;
}
