.cards {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 36px) / 3);
  align-items: stretch;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  overscroll-behavior-inline: contain;
}

.cards::-webkit-scrollbar {
  display: none;
}

.cards.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
  scroll-snap-type: none;
  user-select: none;
}

.project-slider-toolbar {
  min-height: 34px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  color: var(--muted);
  font-size: 12px;
}

.project-slider-toolbar > div {
  display: flex;
  gap: 6px;
}

.project-slider-toolbar button {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.project-slider-toolbar button:hover:not(:disabled) {
  background: var(--ink);
  color: var(--paper);
}

.project-slider-toolbar button:disabled {
  opacity: .28;
  cursor: default;
}

.card,
.card.offset {
  margin-top: 0;
  min-width: 0;
  scroll-snap-align: start;
}

.card .visual {
  height: clamp(360px, 42vw, 620px);
  aspect-ratio: auto;
  padding: 0;
}

.card .visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.story {
  row-gap: clamp(72px, 8vw, 120px);
}

.story article:nth-child(even) {
  margin-top: 0;
}

@media (min-width: 821px) {
  body > main:not(.inner):not(.case) > .hero {
    padding-inline: clamp(20px, 6.5vw, 104px);
  }
}

@media (max-width: 820px) {
  .cards {
    grid-template-columns: none;
    grid-auto-columns: min(74vw, 320px);
    gap: 14px;
  }

  .project-slider-toolbar {
    margin-bottom: 14px;
  }

  .card .visual {
    height: auto;
    aspect-ratio: 4 / 5;
  }
}
