.storyRecommendations {
  width: 100%;
  margin: 80px auto 0;
  text-align: left;
}

.storyRecommendations > h2 {
  margin: 0 0 24px;
  color: var(--ice-bright, #fff);
  font: 500 16px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
}

.recommendationGrid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 28%;
  gap: 14px;
  overflow-x: auto;
  padding: 10px;
  margin: -10px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

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

.recommendedStory {
  position: relative;
  display: block;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #111;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 0 0 #282623;
  scroll-snap-align: start;
  transition: transform 280ms ease, box-shadow 280ms ease;
}

.recommendedStory::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 24%, rgba(0, 0, 0, 0.18) 48%, rgba(0, 0, 0, 0.88) 100%);
  pointer-events: none;
}

.recommendedStory:hover,
.recommendedStory:focus-visible {
  transform: translate(6px, -6px);
  box-shadow: -6px 6px 0 #282623;
  outline: none;
}

.recommendationVisual,
.recommendationVisual img {
  display: block;
  width: 100%;
  height: 100%;
}

.recommendationVisual img {
  object-fit: cover;
  transition: transform 350ms ease;
}

.recommendedStory:hover img,
.recommendedStory:focus-visible img { transform: scale(1.04); }

.recommendationTerminal {
  padding: 22px;
  white-space: pre-line;
  background: #111;
  color: #e8b65e;
  font: 11px/1.5 ui-monospace, monospace;
}

.recommendationCopy {
  position: absolute;
  z-index: 1;
  right: 14px;
  bottom: 16px;
  left: 14px;
  pointer-events: none;
}

.recommendationCopy h3 {
  margin: 0 0 6px;
  color: #fff;
  font: 500 clamp(15px, 1.5vw, 18px)/1.25 Georgia, 'Songti SC', serif;
}

.recommendationCopy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font: 11px/1.35 ui-monospace, SFMono-Regular, Menlo, monospace;
  text-wrap: pretty;
}

@media (max-width: 760px) {
  .recommendationGrid {
    grid-auto-columns: min(235px, 74vw);
  }
}

@media (prefers-reduced-motion: reduce) {
  .recommendationVisual img,
  .recommendedStory { transition: none; }
}
