.activity-head {
  grid-template-columns: 1fr minmax(320px, .75fr);
}

.activity-controls {
  grid-column: 2;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}

.activity-controls button {
  width: 46px;
  height: 46px;
  border: 1px solid rgb(255 255 255 / 35%);
  background: rgb(5 9 11 / 65%);
  color: #fff;
  cursor: pointer;
  transition: background-color 180ms ease, transform 180ms ease;
}

.activity-controls button:hover,
.activity-controls button:focus-visible {
  background: var(--coral);
  transform: translateY(-2px);
}

.activity-controls span {
  margin: 0 8px;
  color: rgb(255 255 255 / 54%);
  font: 800 10px "Barlow Condensed";
  letter-spacing: .18em;
}

.activity-grid {
  display: flex;
  grid-template-columns: none;
  gap: 14px;
  width: calc(100vw - max(24px, calc((100vw - var(--max)) / 2)));
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 max(24px, calc((100vw - var(--max)) / 2)) 24px 0;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 0;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
  touch-action: pan-y;
}

.activity-grid::-webkit-scrollbar {
  display: none;
}

.activity-grid.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}

.activity-item,
.activity-item.activity-wide,
.activity-item.activity-tall {
  flex: 0 0 clamp(330px, 35vw, 520px);
  height: 430px;
  grid-column: auto;
  grid-row: auto;
  scroll-snap-align: start;
}

.activity-item.activity-wide {
  flex-basis: clamp(430px, 48vw, 700px);
}

.activity-item img {
  pointer-events: none;
}

@media (max-width: 900px) {
  .activity-head {
    grid-template-columns: 1fr;
  }

  .activity-controls {
    grid-column: 1;
    justify-content: flex-start;
    margin-top: 6px;
  }

  .activity-controls span {
    order: -1;
    margin: 0 8px 0 0;
  }

  .activity-grid {
    width: calc(100vw - 20px);
    padding-right: 20px;
  }

  .activity-item,
  .activity-item.activity-wide,
  .activity-item.activity-tall {
    flex-basis: min(82vw, 390px);
    height: 390px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .activity-controls button,
  .activity-item img {
    transition: none;
  }
}
