/* Shared marquee styles. */

.marquee {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--border-subtle);
  border-bottom: 1px solid var(--border-subtle);
  padding: var(--sp-5) 0;
}

.marquee-row {
  overflow: hidden;
  white-space: nowrap;
  padding: var(--sp-2) 0;
}

.marquee-track {
  display: inline-flex;
  align-items: baseline;
  gap: var(--sp-7);
  width: max-content;
  will-change: transform;
}

.marquee-row--1 .marquee-track { animation: marquee-left 50s linear infinite; }
.marquee-row--2 .marquee-track { animation: marquee-right 65s linear infinite; }
.marquee-row--3 .marquee-track { animation: marquee-left 80s linear infinite; }
.marquee-row--4 .marquee-track { animation: marquee-right 95s linear infinite; }

@keyframes marquee-left {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(-50%, 0, 0); }
}
@keyframes marquee-right {
  from { transform: translate3d(-50%, 0, 0); }
  to   { transform: translate3d(0, 0, 0); }
}

.marquee-item {
  font-family: var(--font-system);
  color: var(--text);
  letter-spacing: -0.01em;
  line-height: 1;
  flex-shrink: 0;
}

.marquee-item--xl { font-size: clamp(40px, 5vw, 72px); font-weight: 700; letter-spacing: -0.03em; }
.marquee-item--lg { font-size: clamp(28px, 3.5vw, 48px); font-weight: 600; letter-spacing: -0.02em; }
.marquee-item--md { font-size: clamp(20px, 2.4vw, 32px); font-weight: 500; }
.marquee-item--sm { font-size: clamp(14px, 1.6vw, 20px); font-weight: 500; letter-spacing: 0.02em; }

@media (prefers-reduced-motion: reduce) {
  .marquee-track {
    animation: none !important;
    transform: none !important;
  }
}
