.hero-media {
  background: #102b2c;
}

.hero-media.hero-mosaic-media {
  background: #102b2c;
  transform: none;
}

.hero-mosaic {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background:
    linear-gradient(90deg, #081618f5 0%, #081618eb 28%, #081618b8 58%, #08161862 100%),
    linear-gradient(180deg, #08161870 0%, #08161824 55%, #081618a8 100%);
}

.hero-mosaic-track {
  position: absolute;
  top: -22vh;
  right: -9%;
  bottom: -22vh;
  left: 16%;
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 10px;
  min-width: 950px;
  transform: rotate(-4deg) scale(1.12);
}

.hero-mosaic-column {
  --mosaic-shift: calc(-87vh - 30px);
  display: flex;
  min-height: 0;
  flex-direction: column;
  gap: 10px;
  animation: hero-mosaic-slide 34s linear infinite;
  will-change: transform;
}

.hero-mosaic-column-2,
.hero-mosaic-column-4 {
  animation-name: hero-mosaic-slide-reverse;
  animation-duration: 42s;
}

.hero-mosaic-column-3 {
  animation-duration: 38s;
  animation-delay: -12s;
}

.hero-mosaic-column-4 {
  animation-delay: -19s;
}

.hero-mosaic-column-5 {
  animation-duration: 37s;
  animation-delay: -7s;
}

.hero-mosaic-tile {
  display: grid;
  flex: 0 0 clamp(190px, 29vh, 320px);
  overflow: hidden;
  place-items: center;
  border: 1px solid #ffffff35;
  border-radius: 10px;
  background: linear-gradient(145deg, #f3f8f5, #c7d7d2);
  box-shadow: 0 16px 36px #06141544;
}

.hero-mosaic-tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: clamp(10px, 1.8vw, 24px);
  filter: saturate(.82) contrast(1.04) brightness(.92);
  transform: scale(1.02);
}

@keyframes hero-mosaic-slide {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(var(--mosaic-shift));
  }
}

@keyframes hero-mosaic-slide-reverse {
  from {
    transform: translateY(var(--mosaic-shift));
  }

  to {
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-mosaic-column {
    animation-play-state: paused;
  }
}

@media (max-width: 640px) {
  .hero-mosaic {
    background:
      linear-gradient(90deg, #081618f2 0%, #081618dc 48%, #08161870 100%),
      linear-gradient(180deg, #08161864 0%, #08161824 55%, #081618b8 100%);
  }

  .hero-mosaic-track {
    top: -16vh;
    right: -34%;
    bottom: -16vh;
    left: 24%;
    min-width: 760px;
    transform: rotate(-5deg) scale(1.05);
  }

  .hero-mosaic-column-4,
  .hero-mosaic-column-5 {
    display: none;
  }

  .hero-mosaic-column {
    --mosaic-shift: calc(-81vh - 30px);
  }

  .hero-mosaic-tile {
    flex-basis: clamp(180px, 27vh, 250px);
    border-radius: 8px;
  }
}
