.cac-corridor-scene {
  position: relative;
  width: 100%;
  min-height: clamp(220px, 38vw, 340px);
}

.cac-corridor-scene__svg {
  display: block;
  width: 100%;
  height: auto;
}

.cac-corridor-scene__ambient {
  animation: cac-ambient-pulse 6s ease-in-out infinite;
}

@keyframes cac-ambient-pulse {
  0%,
  100% {
    opacity: 0.55;
  }

  50% {
    opacity: 0.95;
  }
}

.cac-corridor-scene__wave--1 {
  animation: cac-wave-shift 4s ease-in-out infinite;
}

.cac-corridor-scene__wave--2 {
  animation: cac-wave-shift 5.5s ease-in-out infinite reverse;
}

@keyframes cac-wave-shift {
  0%,
  100% {
    transform: translateX(0);
    opacity: 0.35;
  }

  50% {
    transform: translateX(12px);
    opacity: 0.65;
  }
}

.cac-corridor-scene__track {
  animation: cac-track-flow 2.4s linear infinite;
}

.cac-corridor-scene__track--sea {
  animation-delay: 0.4s;
}

.cac-corridor-scene__track--ocean {
  animation-delay: 0.8s;
}

@keyframes cac-track-flow {
  to {
    stroke-dashoffset: -36;
  }
}

.cac-corridor-scene__pulse {
  fill: rgba(255, 209, 0, 0.28);
  transform-origin: center;
  animation: cac-node-pulse 2.8s ease-out infinite;
}

.cac-corridor-scene__node--caspian .cac-corridor-scene__pulse {
  fill: rgba(3, 105, 161, 0.35);
  animation-delay: 0.6s;
}

.cac-corridor-scene__node--port .cac-corridor-scene__pulse {
  animation-delay: 1.2s;
}

.cac-corridor-scene__node--global .cac-corridor-scene__pulse {
  fill: rgba(3, 105, 161, 0.25);
  animation-delay: 1.8s;
}

@keyframes cac-node-pulse {
  0% {
    transform: scale(0.45);
    opacity: 0.9;
  }

  100% {
    transform: scale(1.8);
    opacity: 0;
  }
}

.cac-corridor-scene__cargo--main {
  transform-box: fill-box;
  offset-path: path("M88 200 L248 200 L372 200");
  offset-rotate: auto;
  animation: cac-cargo-land 6s ease-in-out infinite;
}

.cac-corridor-scene__cargo--ship {
  transform-box: fill-box;
  offset-path: path("M372 200 L628 200 L712 200");
  offset-rotate: auto;
  animation: cac-cargo-sea 7s ease-in-out infinite;
  animation-delay: 1.5s;
}

@keyframes cac-cargo-land {
  0% {
    offset-distance: 0%;
    opacity: 0;
  }

  8% {
    opacity: 1;
  }

  45% {
    opacity: 1;
  }

  55% {
    opacity: 0;
  }

  100% {
    offset-distance: 100%;
    opacity: 0;
  }
}

@keyframes cac-cargo-sea {
  0% {
    offset-distance: 0%;
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    offset-distance: 100%;
    opacity: 0;
  }
}

.cac-corridor-scene__badge {
  animation: cac-badge-float 4.5s ease-in-out infinite;
}

@keyframes cac-badge-float {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-5px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cac-corridor-scene__ambient,
  .cac-corridor-scene__wave--1,
  .cac-corridor-scene__wave--2,
  .cac-corridor-scene__track,
  .cac-corridor-scene__pulse,
  .cac-corridor-scene__cargo--main,
  .cac-corridor-scene__cargo--ship,
  .cac-corridor-scene__badge {
    animation: none;
  }
}
