.classics {
  position: relative;
}

.classics-intro {
  font-size: 0.92rem;
  margin: -28px 0 48px;
  max-width: 40ch;
}

.classics-track {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 12px clamp(20px, 8vw, 128px) 30px;
  cursor: grab;
  scrollbar-width: none;
  touch-action: pan-x pan-y;
  transform: none;
  user-select: none;
  width: 100%;
}

.classics-track.is-dragging {
  cursor: grabbing;
}

.classics-track::-webkit-scrollbar {
  display: none;
}

.classic-item {
  flex: 0 0 clamp(190px, 21vw, 300px);
  margin: 0;
  opacity: 0;
  transform: translate3d(28px, 0, 0);
}

.classics.is-visible .classic-item {
  animation: classic-arrival 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(min(var(--classic-index), 5) * 70ms);
}

.classic-item:nth-child(even) {
  padding-top: 34px;
}

.classic-item img {
  aspect-ratio: 4 / 5;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

.classic-item figcaption {
  align-items: baseline;
  display: flex;
  font-family: var(--display);
  font-size: clamp(1.25rem, 2vw, 1.85rem);
  gap: 11px;
  line-height: 1.05;
  padding-top: 15px;
}

.classic-item figcaption span {
  color: var(--cocoa);
  font-family: var(--sans);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.classics-hint {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin: 18px clamp(20px, 8vw, 128px) 0;
  text-transform: uppercase;
}

@keyframes classic-arrival {
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (max-width: 580px) {
  .classics-intro {
    margin: -26px 20px 34px;
  }

  .classics-track {
    gap: 10px;
    padding-inline: 20px;
    scroll-padding-inline: 20px;
  }

  .classic-item {
    flex-basis: min(72vw, 270px);
  }

  .classic-item:nth-child(even) {
    padding-top: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .classic-item {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
}
