/* Works catalogue and project pages; the existing opener stays unchanged. */
.work-catalogue,
.work-detail {
  width: min(100% - 2 * var(--spring-nav-gutter), var(--spring-nav-max));
  margin: 0 auto;
  padding: 12px 0 120px;
  background: #fff;
  color: #111;
}

.work-catalogue {
  width: min(100%, var(--spring-nav-max));
  scroll-margin-top: calc(var(--spring-nav-height) + 24px);
}

.work-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  margin-bottom: 56px;
  font-size: 16px;
  line-height: 1.5;
}

.work-filters a {
  padding: 10px 0;
  color: #747474;
  text-decoration: none;
}

.work-filters:not(.work-subfilters) a { text-transform: uppercase; }

.work-filters span {
  margin-left: 8px;
  font-variant-numeric: tabular-nums;
}

.work-filters a[aria-current="true"],
.work-filters a:hover {
  color: #111;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
}

.work-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 16px;
  list-style: none;
}

.work-grid > li { flex: 0 0 calc((100% - var(--row-gaps, 48px)) * var(--cover-weight, 0.25)); }
.work-grid > [hidden] { display: none; }

.work-card {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #f3f3f3;
}

.work-card--landscape { aspect-ratio: 4 / 3; }

.work-card__cover {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.work-card__logo {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 8px;
  background: rgb(0 0 0 / 36%);
  color: #fff;
  opacity: 0;
  transition: opacity 220ms ease;
  pointer-events: none;
  text-align: center;
}

.work-card__logo img { width: 60%; max-height: 130px; object-fit: contain; }
.work-card__wordmark { font-family: var(--spring-serif); font-size: clamp(15px, 1.5vw, 24px); font-weight: 400; letter-spacing: 0; line-height: 1.2; }
.work-card:focus-visible .work-card__logo { opacity: 1; }

@media (hover: hover) {
  .work-card:hover .work-card__logo { opacity: 1; }
}

.work-filters a:focus-visible,
.work-card:focus-visible,
.work-detail a:focus-visible { outline: 2px solid #111; outline-offset: 6px; }

.work-detail { padding-top: calc(var(--spring-nav-height) + 64px); }
.work-detail__back { display: inline-block; margin-bottom: 64px; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.work-detail__intro { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 48px; margin-bottom: 72px; }
.work-detail__category { grid-column: 1 / -1; font-size: 13px; }
.work-detail h1 { max-width: 680px; font-family: var(--spring-serif); font-size: clamp(42px, 4.5vw, 72px); font-weight: 400; line-height: 1.05; }
.work-detail__description { max-width: 620px; font-size: 18px; line-height: 1.7; }
.work-detail__intro h1,
.work-detail__description { text-box-trim: trim-start; text-box-edge: cap alphabetic; }
.work-detail__notes { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin: 0 0 72px; }
.work-detail__notes h2 { margin-bottom: 16px; font-size: 16px; font-weight: 500; }
.work-detail__notes p { max-width: 640px; font-size: 15px; line-height: 1.8; }
.humble-case .work-detail__description,
.humble-case .work-detail__notes > section:last-child p,
.qianrengang-case .work-detail__description,
.qianrengang-case .work-detail__notes > section:last-child p,
.lancy-case .work-detail__description { max-width: none; }
.work-detail__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 32px; margin-bottom: 64px; }
.work-detail__gallery--three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.work-detail__gallery img { display: block; width: 100%; height: auto; }
.work-detail__gallery .is-wide { grid-column: 1 / -1; }
.work-detail__film { display: block; max-width: 100%; max-height: 85svh; width: auto; margin: 0 auto 72px; background: #000; }
.page-work-detail .spring-nav { background: #fff; color: #000; }

@media (max-width: 760px) {
  .work-catalogue,
  .work-detail { padding-bottom: 72px; }
  .work-detail { width: calc(100% - 40px); }
  .work-filters { padding-left: var(--spring-nav-gutter); gap: 12px 28px; margin-bottom: 32px; font-size: 14px; }
  .work-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
  .work-card__logo { padding: 32px; }
  .work-card__wordmark { font-size: 32px; }
  .work-detail { padding-top: calc(var(--spring-nav-height) + 32px); }
  .work-detail__back { margin-bottom: 40px; }
  .work-detail__intro,
  .work-detail__notes { grid-template-columns: 1fr; gap: 28px; margin-bottom: 40px; }
  .work-detail__intro { row-gap: 16px; }
  .work-detail__description { font-size: 16px; }
  .work-detail__gallery { grid-template-columns: 1fr; gap: 20px; }
  .work-detail__gallery--three-columns { gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .work-card__logo { transition: none; }
}

.work-filters:not(.work-subfilters):has(~ .work-subfilters:not([hidden])) { margin-bottom: 8px; }
.work-subfilters { gap: 12px 28px; font-size: 14px; }
.work-subfilters[hidden] { display: none; }

.bags-case .work-detail__description { max-width: none; }
.bags-case .work-detail__gallery { gap: 16px; }

.work-card__caption { display: none; }
.work-catalogue .work-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgb(128 128 128 / 50%);
  pointer-events: none;
  transition: opacity 220ms ease;
}
.work-catalogue .work-card__logo { z-index: 3; background: transparent; }
.work-catalogue .work-card__caption {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 64px 24px 24px;
  background: transparent;
  color: #fff;
  text-align: start;
  pointer-events: none;
  transition: opacity 220ms ease;
}
.work-catalogue .work-card:focus-visible::before,
.work-catalogue .work-card:focus-visible .work-card__caption { opacity: 0; }

@media (hover: hover) {
  .work-catalogue .work-card:hover::before,
  .work-catalogue .work-card:hover .work-card__caption { opacity: 0; }
}

@media (min-width: 761px) {
  .work-catalogue .work-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .work-catalogue .work-grid > li {
    grid-row: var(--preview-row);
    grid-column: var(--preview-column) / span var(--preview-span);
  }
}

.work-card__title { font-family: var(--spring-serif); font-size: 24px; line-height: 1.15; }
.work-card__description { max-width: 52ch; font-size: 13px; line-height: 1.5; }
.work-card__description > span {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
html[data-lang="en"] .work-card__description > .lang-zh,
html[data-lang="zh"] .work-card__description > .lang-en { display: none; }

@media (max-width: 760px) {
  .work-subfilters { gap: 8px; font-size: 12px; flex-wrap: nowrap; white-space: nowrap; }
  .work-catalogue .work-card__caption { padding: 64px 20px 20px; }
  .work-card__title { font-size: 22px; }
}
