/* ===== STORIES HORIZONTAL SCROLL ===== */
/* Reusable horizontal scrolling story cards component */

.stories-scroll {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 1rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  min-width: 0;
  width: calc(100vw - 2 * var(--padding) - var(--sidebar-width));
}

@media (max-width: 768px) {
  .stories-scroll {
    width: 100vw;
    margin-left: calc(-1 * var(--padding) / 2);
    padding-left: calc(var(--padding) / 2);
    padding-right: calc(var(--padding) / 2);
    scroll-padding-left: calc(var(--padding) / 2);
  }
}

.stories-scroll::-webkit-scrollbar {
  height: 6px;
}

.stories-scroll::-webkit-scrollbar-track {
  background: color-mix(in srgb, var(--text) 10%, transparent);
  border-radius: 3px;
}

.stories-scroll::-webkit-scrollbar-thumb {
  background: var(--accent);
  border-radius: 3px;
}

.story-item {
  flex: 0 0 auto;
  width: 265px;
  scroll-snap-align: start;
  border: var(--border-size) solid var(--border);
}



.story-item figure {
  display: flex;
  flex-direction: column;
}

.story-item .img {
  aspect-ratio: 4.5 / 5;
  overflow: hidden;
  border-bottom: var(--border-size) solid var(--border);
}

.story-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

.story-item .img-caption {
  padding: 0.75rem;
  overflow: hidden;
}

/* ===== SCROLLING TITLE ON HOVER ===== */
.story-item .img-caption h2,
.story-item .img-caption h3 {
  overflow: hidden;
  mask-image: linear-gradient(to right, black 80%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, black 80%, transparent 100%);
}

.story-item .img-caption h2 span,
.story-item .img-caption h3 span {
  display: block;
  white-space: nowrap;
}

/* Only apply fade when title overflows */
.story-item .img-caption h2.has-overflow,
.story-item .img-caption h3.has-overflow {
  mask-image: linear-gradient(to right, black 85%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, black 85%, transparent 100%);
}

/* On hover: scroll the inner span, fade both edges */
.story-item:hover .img-caption h2.has-overflow,
.story-item:hover .img-caption h3.has-overflow {
  mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}

.story-item:hover .img-caption h2.has-overflow span,
.story-item:hover .img-caption h3.has-overflow span {
  animation: scroll-title var(--scroll-duration, 3s) linear 0.3s infinite;
}

@keyframes scroll-title {
  0%, 10% { transform: translateX(0); }
  90%, 100% { transform: translateX(var(--scroll-distance, -50px)); }
}

.story-item .subtitle {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.story-item .chip {
  margin-top: 0.3rem;
  font-family: var(--font-heading);
}

/* ===== FILTER VISIBILITY ===== */
.story-item.filter-hidden {
  display: none;
}

