/* Work showcase */

.work-feature {
  margin-top: clamp(var(--space-7), 6vw, var(--space-10));
}

.section-kicker + .work-feature {
  margin-top: 0;
}

.work-feature-link {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.75fr);
  gap: clamp(var(--space-6), 5vw, var(--space-9));

  align-items: center;

  color: inherit;
  text-decoration: none;
}

/* Featured media */

.work-feature-media {
  overflow: hidden;

  border-radius: var(--radius-media-feature);

  background: var(--surface-dark-subtle);
}

.work-feature-image,
.work-feature-video {
  display: block;

  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;

  transition:
    transform var(--transition-slow),
    opacity var(--transition-base);
}

/* Featured content */

.work-feature-content {
  display: flex;
  flex-direction: column;

  max-width: 480px;
}

.work-feature-meta {
  margin: 0;

  font-size: var(--text-sm);
  line-height: var(--leading-base);
  letter-spacing: var(--tracking-body);
  font-weight: var(--weight-regular);

  opacity: 0.58;
}

.work-feature-content .section-kicker {
  align-self: flex-start;
  width: fit-content;
}

.work-feature-content .section-kicker + .work-feature-title {
  margin-top: 0;
}

.work-feature-title {
  margin:
    var(--space-4)
    0
    0;

  font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl));
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
  font-weight: var(--weight-medium);

  text-wrap: balance;
}

.work-feature-description {
  max-width: 42ch;

  margin:
    var(--space-5)
    0
    0;

  font-size: clamp(var(--text-base), 1.25vw, var(--text-lg));
  line-height: var(--leading-base);

  opacity: 0.74;

  text-wrap: pretty;
}

.work-feature-meta {
  margin-top: var(--space-6);
}

.work-feature-content .btn--text {
  margin-top: var(--space-8);
}

/* Work index */

.work-feature + .work-index-cta {
  margin-top: clamp(var(--space-8), 7vw, var(--space-10));
}

.work-index {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));

  gap: clamp(var(--space-3), 1.5vw, var(--space-5));
}

.work-index-cta + .work-index,
.work-feature + .work-index {
  margin-top: var(--space-8);
}

.work-feature + .work-index {
  margin-top: clamp(var(--space-8), 7vw, var(--space-10));
}

/* Cards */

.work-card {
  position: relative;
  overflow: hidden;

  display: block;

  aspect-ratio: 25 / 32;

  border-radius: var(--radius-card-compact);

  color: inherit;
  text-decoration: none;

  /* Opaque media well — not --surface-dark-subtle (semi-transparent white).
     Rounded clip anti-aliases corner pixels; a translucent card bg reads as a white halo. */
  background: var(--obsidian-deep);

  /* Subpixel fringe at the outer rounded edge composites against the page layer. */
  outline: 1px solid var(--obsidian-deep);
  outline-offset: -1px;
}

.work-card-media {
  position: absolute;
  inset: 0;
}

.work-card-image,
.work-card-video {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  /* Cover art often has light edge bleed; rounded overflow clips it into a corner halo. */
  transform: scale(1.04);
  transform-origin: center;

  transition:
    transform var(--transition-slow),
    opacity var(--transition-base);
}

.work-card-image--mark,
.work-card-video.work-card-image--mark {
  object-fit: contain;
  padding: clamp(var(--space-6), 12%, var(--space-8));
  transform: none;
}

.work-card-image--native,
.work-card-video.work-card-image--native {
  object-fit: contain;
  transform: none;
}

.work-card-overlay {
  position: absolute;
  inset: 0;

  display: flex;
  flex-direction: column;
  justify-content: flex-end;

  padding: var(--space-5);

  background:
    linear-gradient(
      to top,
      rgba(18, 17, 22, 0.88),
      rgba(18, 17, 22, 0.12)
    );

  opacity: 1;

  transform: none;

  transition: background var(--transition-base);
}

.work-card-meta {
  margin: 0 0 var(--space-3);

  font-size: var(--text-sm);
  line-height: var(--leading-base);
  letter-spacing: var(--tracking-body);

  opacity: var(--opacity-interactive-subtle);
}

.work-card-title {
  margin: 0;

  font-size: clamp(var(--text-lg), 1.8vw, var(--text-2md));
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
  font-weight: var(--weight-medium);

  text-wrap: balance;
}

/* Focus */

.work-feature-link:focus-visible,
.work-card:focus-visible {
  outline: 1.5px solid currentColor;
  outline-offset: var(--motion-shift-subtle);
}

/* Hover */

@media (hover: hover) and (pointer: fine) {
  .work-feature-link:hover .work-feature-image,
  .work-feature-link:hover .work-feature-video,
  .work-card:hover .work-card-image,
  .work-card:hover .work-card-video {
    transform: scale(1.055);
    opacity: 0.94;
  }

  .work-card:hover .work-card-image--native,
  .work-card:hover .work-card-video.work-card-image--native {
    transform: none;
  }

  .work-card:hover .work-card-overlay {
    background:
      linear-gradient(
        to top,
        rgba(18, 17, 22, 0.94),
        rgba(18, 17, 22, 0.22)
      );
  }
}

.work-card--placeholder {
  pointer-events: none;
  cursor: default;
}

.work-card--placeholder .work-card-image,
.work-card--placeholder .work-card-video {
  opacity: 0.92;
}

@media (hover: hover) and (pointer: fine) {
  .work-card--placeholder:hover .work-card-image,
  .work-card--placeholder:hover .work-card-video {
    transform: none;
  }
}

/* Tablet — keep featured media + content side by side */

@media (max-width: 1100px) and (min-width: 761px) {

  .work-feature-link {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: var(--space-6);
  }

  .work-feature-content {
    max-width: none;
  }

}

@media (max-width: 1100px) and (min-width: 1025px) {

  .work-index {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

}

/* Tablet — work index slider (matches mobile) */

@media (max-width: 1024px) {

  .work-feature-link {
    align-items: start;
  }

  .work-index-cta + .work-index,
  .work-feature + .work-index {
    margin-top: var(--space-7);
  }

  .work-index {
    display: flex;
    gap: var(--space-2);

    width: calc(100% + var(--section-padding-x));
    margin-right: calc(var(--section-padding-x) * -1);

    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;
    padding-right: var(--section-padding-x);
    scroll-padding-right: var(--section-padding-x);

    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .work-index::-webkit-scrollbar {
    display: none;
  }

  .work-card {
    flex: 0 0 22vw;

    scroll-snap-align: start;
  }

}

@media (max-width: 820px) {

  .work-feature-link {
    grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  }

  .work-feature-content .btn--text {
    display: none;
  }

}

/* Mobile */

@media (max-width: 760px) {

  .work-feature-link {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .work-feature-title {
    font-size: clamp(var(--text-2xl), 10vw, var(--text-4xl));
  }

  .work-feature-description {
    max-width: none;
  }

  .work-card {
    flex: 0 0 40vw;
  }

  .work-card-overlay {
    padding: var(--space-4);
  }

  .work-card-title {
    font-size: var(--text-base);
  }
  .work-card-meta {
    font-size: var(--text-xs);
  }

  .work-feature-content {
    padding-top: var(--space-4);
  }

  .work-feature-title {
    margin-top: var(--space-2);

    line-height: var(--leading-tight);
  }

  .work-feature-description {
    margin-top: var(--space-4);
  }

  .work-feature-meta {
    margin-top: var(--space-4);
  }

  .work-feature-content .btn--text {
    margin-top: var(--space-5);
  }

  .work-feature + .work-index-cta {
    margin-top: var(--space-7);
  }

}