/* =========================================================
   TOKENS
   ========================================================= */

:root {
  --works-shell-max: 960px;
  --works-shell-padding: 24px;
  --works-content-max: 720px;
  --works-selector-max: 816px;
  --works-thumb-w: 200px;
  --works-thumb-gap: 16px;
  --works-selector-h: 124px;
  --works-divider-gap: 36px;
  --works-body-gap: 24px;
  --works-mobile-gap: 16px;
  --works-ink: #000;
  --works-paper: var(--cream);
  --editorial-measure-narrow: 480px;
  --editorial-measure-medium: 560px;
  --editorial-divider-measure: 540px;
  --stack-media-xs: 200px;
  --stack-media-small: 240px;
  --stack-media-medium: 340px;
  --stack-media-large: 440px;
  --grouped-frame-thin: 1px;
  --grouped-frame-strong: 8px;
  --grouped-frame-item-padding: 24px;
  --grouped-frame-inset: var(--grouped-frame-item-padding);
}

/* =========================================================
   BASE COMPONENTS
   ========================================================= */

.page-works,
.page-works .works-scroll {
  background: #000;
}

.works-app {
  --works-active-structure-color: var(--works-ink);
  --works-structure-color: var(--works-ink);
  --content-loading-surface: var(--works-paper);
  --content-loading-inline-start: max(24px, calc((100vw - var(--works-shell-max)) / 2));
  --content-loading-inline-end: var(--content-loading-inline-start);
  --wide-source-w: 641px;
  --wide-viewport-h: 101px;
  width: min(var(--works-shell-max), max(849px, calc(100% - 48px)));
  min-height: 100%;
  margin-inline: auto;
  background: var(--works-paper);
  color: var(--works-ink);
}

figure {
  margin: 0;
}

.works-shell {
  width: 100%;
  min-height: 100%;
  background: var(--works-paper);
  color: var(--works-ink);
}

.works-desktop {
  min-height: 100%;
  padding: var(--works-shell-padding) 0 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.works-selector-dock {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--works-paper);
}

.works-selector {
  position: relative;
  width: var(--works-selector-max);
  height: var(--works-selector-h);
  display: grid;
  grid-template-columns: 32px var(--works-content-max) 32px;
  column-gap: 16px;
  align-items: center;
}

.works-rail {
  position: relative;
  grid-column: 2;
  width: var(--works-content-max);
  height: var(--works-selector-h);
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.works-rail::-webkit-scrollbar {
  display: none;
}

.works-rail__list {
  min-width: max-content;
  height: 100%;
  display: flex;
  align-items: flex-end;
  gap: var(--works-thumb-gap);
}

.works-rail__marker {
  position: absolute;
  z-index: 4;
  left: 0;
  bottom: calc(-1 * var(--works-divider-gap));
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 10px solid var(--works-active-structure-color);
  opacity: 0;
  transform: translateX(-50%);
  pointer-events: none;
  transition: left 220ms var(--ease-out), opacity 160ms var(--ease-standard);
}

.works-rail__marker.is-visible {
  opacity: 1;
}

.works-browse {
  appearance: none;
  position: relative;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--works-ink);
  cursor: pointer;
}

.works-browse > span {
  width: 0;
  height: 0;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
}

.works-browse--previous > span {
  border-right: 10px solid currentColor;
  transform: translateX(3px);
}

.works-browse--next > span {
  border-left: 10px solid currentColor;
  transform: translateX(-3px);
}

.works-browse:disabled {
  opacity: .28;
  cursor: default;
}

.works-browse:focus-visible {
  outline: 2px solid var(--works-ink);
  outline-offset: 2px;
}

.works-divider {
  width: clamp(var(--works-selector-max), calc(100% - 48px), 912px);
  height: 1px;
  margin-top: var(--works-divider-gap);
  background: var(--works-active-structure-color);
}

.works-details {
  --content-loading-surface: var(--works-paper);
  width: min(100%, var(--works-content-max));
  min-width: 0;
  padding-top: var(--works-divider-gap);
}

.works-project__share-row {
  margin-top: 32px;
  display: flex;
  justify-content: flex-end;
}

.works-share-button {
  appearance: none;
  min-height: 32px;
  margin: 0;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--works-structure-color);
  font: 600 14px/18px var(--ui-font);
  cursor: pointer;
}

.works-share-button::before {
  content: "";
  width: 18px;
  height: 18px;
  margin-right: 6px;
  display: inline-block;
  vertical-align: -4px;
  background: currentColor;
  mask: url('assets/share.svg') center / contain no-repeat;
  -webkit-mask: url('assets/share.svg') center / contain no-repeat;
}

.works-share-button:focus-visible {
  outline: 2px solid var(--works-structure-color);
  outline-offset: 3px;
}

.works-thumb {
  appearance: none;
  flex: 0 0 var(--works-thumb-w);
  width: var(--works-thumb-w);
  margin: 0;
  padding: 0;
  border: 0;
  display: block;
  background: transparent;
  color: inherit;
  line-height: 0;
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
}

.works-thumb__frame {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: var(--desktop-ratio);
  overflow: hidden;
  background: transparent;
}

.works-thumb__frame--layered {
  overflow: visible;
}

.works-thumb__background,
.works-thumb__foreground,
.works-thumb__foreground-motion,
.works-thumb__state {
  position: absolute;
  display: block;
}

.works-thumb__background {
  z-index: 1;
  left: 0;
  bottom: 0;
  width: 100%;
  line-height: 0;
}

.works-thumb__background > .works-thumb__state {
  position: relative;
  width: 100%;
  height: var(--desktop-background-height, auto);
}

.works-thumb__background > .works-thumb__state--active {
  position: absolute;
  inset: 0;
}

.works-thumb__foreground {
  z-index: 2;
  line-height: 0;
}

.works-thumb__foreground-motion,
.works-thumb__state {
  inset: 0;
  width: 100%;
  height: 100%;
}

.works-thumb__foreground-motion {
  transform-origin: var(--foreground-origin, center);
}

.works-thumb__foreground .works-thumb__state {
  object-fit: fill;
}

.works-thumb__state {
  transition: opacity 240ms var(--ease-standard);
}

.works-thumb__state--active {
  opacity: 0;
}

.works-thumb__foreground--main {
  left: var(--foreground-main-left, auto);
  right: var(--foreground-main-right, auto);
  top: var(--foreground-main-top, auto);
  bottom: var(--foreground-main-bottom, auto);
  width: var(--foreground-main-width);
  aspect-ratio: var(--foreground-main-ratio);
  transform: var(--foreground-main-transform, none);
  --foreground-origin: var(--foreground-main-origin, center);
}

.works-thumb__foreground--a1 {
  z-index: 3;
  left: var(--foreground-a1-left, auto);
  right: var(--foreground-a1-right, auto);
  top: var(--foreground-a1-top, auto);
  bottom: var(--foreground-a1-bottom, auto);
  width: var(--foreground-a1-width);
  aspect-ratio: var(--foreground-a1-ratio);
  --foreground-origin: var(--foreground-a1-origin, center);
}

.works-thumb__foreground--a2 {
  left: var(--foreground-a2-left, auto);
  right: var(--foreground-a2-right, auto);
  top: var(--foreground-a2-top, auto);
  bottom: var(--foreground-a2-bottom, auto);
  width: var(--foreground-a2-width);
  aspect-ratio: var(--foreground-a2-ratio);
  --foreground-origin: var(--foreground-a2-origin, center);
}

.works-thumb.is-active .works-thumb__frame--layered .works-thumb__state--default,
.works-thumb:hover .works-thumb__frame--layered .works-thumb__state--default,
.works-thumb:focus-visible .works-thumb__frame--layered .works-thumb__state--default {
  opacity: 0;
}

.works-thumb.is-active .works-thumb__frame--layered .works-thumb__state--active,
.works-thumb:hover .works-thumb__frame--layered .works-thumb__state--active,
.works-thumb:focus-visible .works-thumb__frame--layered .works-thumb__state--active {
  opacity: 1;
}

.works-thumb:hover .works-thumb__foreground-motion,
.works-thumb:focus-visible .works-thumb__foreground-motion {
  animation: works-thumb-pulse 720ms cubic-bezier(.2, .72, .24, 1) both;
}

@keyframes works-thumb-pulse {
  0%, 100% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.035);
  }
}

.works-thumb:focus-visible,
.works-mobile-thumb:focus-visible,
.works-mobile-close:focus-visible {
  outline: 2px solid var(--works-ink);
  outline-offset: 3px;
}

.works-project {
  display: none;
  min-width: 0;
}

.works-project.is-active {
  display: block;
}

.works-project__masthead {
  width: 100%;
  margin-bottom: var(--works-body-gap);
  line-height: 0;
}

.works-project__masthead img {
  display: block;
  width: min(100%, var(--title-width));
  height: auto;
}

.works-project--press .works-project__masthead img {
  width: 100%;
}

.works-project--milk-milk .works-project__masthead {
  min-height: 120px;
  padding: 18px;
  border: 10px solid var(--works-structure-color);
  display: flex;
  align-items: center;
}

.works-project__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--works-body-gap);
  align-items: start;
}

.works-project__column {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--works-body-gap);
}

.works-copy {
  margin: 0;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
}

.works-media {
  width: 100%;
  min-width: 0;
}

.works-media--pink {
  aspect-ratio: .92 / 1;
  background: var(--pink);
}

.works-media--black {
  aspect-ratio: 1.08 / 1;
  background: #000;
}

.works-media--blue {
  margin-top: var(--works-body-gap);
  aspect-ratio: 1.92 / 1;
  background: var(--blue);
}

/* =========================================================
   LAYOUT VARIANTS
   ========================================================= */

/* AUTHENTIC detail */

.authentic-detail {
  container-name: authentic-detail;
  container-type: inline-size;
  min-width: 0;
  display: flex;
  flex-direction: column;
  color: #000;
}

.authentic-detail p,
.authentic-detail h2,
.authentic-detail figure {
  margin-block: 0;
}

.authentic-detail img {
  display: block;
  width: 100%;
  height: auto;
}

.authentic-masthead {
  margin-top: 0;
  line-height: 0;
}

.authentic-masthead img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.authentic-intro {
  --ratio-gap: 24px;
  margin-top: 24px;
}

.authentic-map,
.authentic-intro__tower {
  display: none;
}

.authentic-intro__combined {
  display: block;
}

.authentic-copy {
  min-width: 0;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
  overflow-wrap: break-word;
}

.authentic-label {
  width: fit-content;
  padding: 3px 5px 2px;
  background: #000;
  color: var(--cream);
  font: 600 12px/14px var(--ui-font);
  letter-spacing: .01em;
}

.authentic-copy .authentic-label {
  margin-bottom: 14px;
}

.authentic-intro__main {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.authentic-intro__main .authentic-label {
  margin-bottom: 0;
}

.authentic-map,
.authentic-intro__tower,
.authentic-intro__combined,
.authentic-bureau__composition {
  min-width: 0;
  line-height: 0;
}

.authentic-map {
  border: 1px solid #000;
}

.authentic-intro__tower {
  position: relative;
  align-self: stretch;
}

.authentic-intro__tower img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center top;
}

.authentic-rule {
  width: 100%;
  margin-top: 36px;
  border-top: 1px solid var(--works-structure-color);
}

.authentic-bureau {
  --ratio-gap: 24px;
  margin-top: 36px;
}

.authentic-support {
  width: min(100%, 420px);
  margin-inline: auto;
  margin-top: 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: center;
}

.authentic-support > img {
  width: 100%;
}

.authentic-carousel {
  width: 100%;
  margin-top: 36px;
}

/* =========================================================
   VALENTINE detail — tiered reading widths
   ========================================================= */

.valentine-detail {
  --valentine-reading-w: var(--editorial-measure-narrow);
  --valentine-rule-w: var(--editorial-divider-measure);
  --section-flow-gap: 36px;
  container-name: valentine-detail;
  container-type: inline-size;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #000;
}

.valentine-detail p,
.valentine-detail h2,
.valentine-detail h3,
.valentine-detail figure {
  margin-block: 0;
}

.valentine-banner {
  background: #000;
}

.valentine-banner img {
  display: block;
  width: 54%;
  height: auto;
}

.valentine-reading {
  width: min(100%, var(--valentine-reading-w));
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.valentine-reading--volumes {
  width: min(100%, var(--valentine-reading-w));
}

.valentine-motifs {
  width: min(100%, var(--valentine-reading-w));
  line-height: 0;
}

.valentine-motifs img {
  display: block;
  width: 100%;
  height: auto;
}

.valentine-copy-block {
  width: min(100%, var(--valentine-reading-w));
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
  overflow-wrap: break-word;
}

.valentine-title {
  width: fit-content;
  padding: 3px 5px 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #000;
  color: var(--cream);
  white-space: nowrap;
  font: 600 12px/14px var(--ui-font);
  text-align: center;
}

.valentine-label {
  width: fit-content;
  padding: 3px 5px 2px;
  background: #000;
  color: var(--cream);
}

.valentine-title b {
  font: 500 14px/14px var(--body-font);
}

.valentine-label {
  font: 600 12px/14px var(--ui-font);
  letter-spacing: .01em;
}

.valentine-rule {
  width: min(100%, var(--valentine-rule-w));
  border-top: 1px solid var(--works-structure-color);
}

.valentine-covers {
  width: min(100%, var(--valentine-reading-w));
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.valentine-covers img,
.valentine-set__pad img {
  display: block;
  width: 100%;
  height: auto;
  min-width: 0;
}

.valentine-set {
  --ratio-gap: 16px;
  width: 100%;
}

.valentine-set__pad {
  min-width: 0;
  line-height: 0;
}

.valentine-set__copy {
  width: 100%;
  align-self: start;
}

.valentine-carousel {
  width: min(100%, var(--editorial-measure-narrow));
}

@container authentic-detail (min-width: 520px) {
  .authentic-map,
  .authentic-intro__tower {
    display: block;
  }

  .authentic-intro__combined {
    display: none;
  }
}

@container valentine-detail (max-width: 519px) {
  .valentine-carousel {
    width: 100%;
  }
}

@container valentine-detail (min-width: 520px) {
  .valentine-copy-block--intro .valentine-title {
    align-self: center;
  }
}

/* =========================================================
   SHARED EDITORIAL LAYOUTS
   ========================================================= */

.ratio-layout {
  container-type: inline-size;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--ratio-gap, 24px);
  align-items: start;
}

@container (min-width: 520px) {
  .ratio-layout--align-center { align-items: center; }
}

.ratio-layout--retain-pair,
.ratio-layout--retain-first-pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ratio-layout--retain-first-pair > :nth-child(3) {
  grid-column: 1 / -1;
}

.ratio-cell--full-narrow {
  grid-column: 1 / -1;
}

.editorial-track {
  width: min(100%, var(--editorial-measure, var(--editorial-measure-narrow)));
  margin-inline: auto;
}

.editorial-track--narrow {
  --editorial-measure: var(--editorial-measure-narrow);
}

.editorial-track--medium {
  --editorial-measure: var(--editorial-measure-medium);
}

.editorial-track--wide {
  --editorial-measure: 100%;
}

.editorial-rule-track {
  width: min(100%, var(--editorial-divider-measure));
  margin-inline: auto;
}

.stack-media {
  min-width: 0;
  width: min(100%, var(--stack-media-preferred, 100%));
  margin-inline: auto;
}

.stack-media--xs { --stack-media-preferred: var(--stack-media-xs); }
.stack-media--small { --stack-media-preferred: var(--stack-media-small); }
.stack-media--medium { --stack-media-preferred: var(--stack-media-medium); }
.stack-media--large { --stack-media-preferred: var(--stack-media-large); }

.stack-media--responsive-xs-small {
  --stack-media-preferred: var(--stack-media-small);
}

.responsive-artwork__desktop {
  display: none;
}

.responsive-artwork__mobile {
  display: block;
}

.section-flow {
  display: flex;
  flex-direction: column;
  gap: var(--section-flow-gap, 24px);
}

.section-flow--loose {
  --section-flow-gap: 36px;
}

.responsive-hero {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.responsive-hero--standard { aspect-ratio: 641 / 100; }
.responsive-hero--tall { aspect-ratio: 641 / 133; }
.responsive-hero--valentine { aspect-ratio: 641 / 100; }

.responsive-hero__composition {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.responsive-hero__composition--centered-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.grouped-frame {
  --grouped-frame-block: var(--grouped-frame-thin);
  --grouped-frame-inline: var(--grouped-frame-thin);
  min-width: 0;
  container-type: inline-size;
  border-style: solid;
  border-color: var(--works-structure-color);
  border-width: var(--grouped-frame-block) var(--grouped-frame-inline);
}

.grouped-frame--block-none { --grouped-frame-block: 0px; }
.grouped-frame--inline-none { --grouped-frame-inline: 0px; }
.grouped-frame--block-strong { --grouped-frame-block: var(--grouped-frame-strong); }
.grouped-frame--inline-strong { --grouped-frame-inline: var(--grouped-frame-strong); }
.grouped-frame--all-thin {
  --grouped-frame-block: var(--grouped-frame-thin);
  --grouped-frame-inline: var(--grouped-frame-thin);
}

.passport-kit.grouped-frame--passport-set > .grouped-frame__items {
  grid-template-columns: minmax(0, 1fr);
}

.passport-kit.grouped-frame--passport-set .grouped-frame__item + .grouped-frame__item::before {
  top: 0;
  left: var(--grouped-frame-inset);
  right: var(--grouped-frame-inset);
  border-top: var(--grouped-frame-thin) solid var(--works-structure-color);
  border-left: 0;
}

.grouped-frame__items {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.grouped-frame__item {
  position: relative;
  min-width: 0;
  padding: var(--grouped-frame-item-padding);
}

.grouped-frame__item + .grouped-frame__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--grouped-frame-inset);
  right: var(--grouped-frame-inset);
  border-top: var(--grouped-frame-thin) solid var(--works-structure-color);
  pointer-events: none;
}

.collection-grid {
  --collection-min: 112px;
  --collection-column-gap: 20px;
  --collection-row-gap: 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--collection-min)), 1fr));
  column-gap: var(--collection-column-gap);
  row-gap: var(--collection-row-gap);
  align-items: stretch;
}

.shared-rows > .shared-rows__group {
  display: contents;
}

.shared-rows__copy--a {
  grid-column: 1 / -1;
  grid-row: 1;
}

.shared-rows__media--a {
  grid-column: 1;
  grid-row: 2;
}

.shared-rows__copy--b {
  grid-column: 1 / -1;
  grid-row: 3;
}

.shared-rows__media--b {
  grid-column: 2;
  grid-row: 2;
}

.media-pair-1-1__item {
  min-width: 0;
  align-self: start;
}

@container (min-width: 520px) {
  .ratio-layout--1-1 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .ratio-layout--1-2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  }

  .ratio-layout--2-1 {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  }

  .ratio-layout--retain-first-pair > :nth-child(3),
  .ratio-cell--full-narrow {
    grid-column: auto;
  }

  .ratio-cell--wide-first {
    grid-column: 1;
    grid-row: 1;
  }

  .ratio-cell--wide-second {
    grid-column: 2;
    grid-row: 1;
  }

  .ratio-layout > .stack-media,
  .responsive-pair > .stack-media {
    width: 100%;
  }

  .grouped-frame--switch > .grouped-frame__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grouped-frame--switch .stack-media {
    width: 100%;
  }

  .grouped-frame--switch .stack-media--responsive-xs-small {
    --stack-media-preferred: var(--stack-media-xs);
    width: min(100%, var(--stack-media-preferred));
  }

  .responsive-artwork__desktop {
    display: block;
  }

  .responsive-artwork__mobile {
    display: none;
  }

  .grouped-frame--switch .grouped-frame__item + .grouped-frame__item::before {
    top: var(--grouped-frame-inset);
    bottom: var(--grouped-frame-inset);
    left: 0;
    right: auto;
    border-top: 0;
    border-left: var(--grouped-frame-thin) solid var(--works-structure-color);
  }

  .passport-kit.grouped-frame--passport-set > .grouped-frame__items {
    grid-template-columns: minmax(0, 1fr);
  }

  .passport-kit.grouped-frame--passport-set .grouped-frame__item + .grouped-frame__item::before {
    top: 0;
    bottom: auto;
    left: var(--grouped-frame-inset);
    right: var(--grouped-frame-inset);
    border-top: var(--grouped-frame-thin) solid var(--works-structure-color);
    border-left: 0;
  }

  .works-mobile .passport-content .passport-kit.grouped-frame--passport-set {
    --grouped-frame-item-padding: 24px;
    --grouped-frame-inset: 24px;
  }

  .works-mobile .passport-content .passport-kit.grouped-frame--passport-set .passport-kit__row {
    aspect-ratio: auto;
    display: block;
  }

  .works-mobile .passport-content .passport-kit.grouped-frame--passport-set .passport-kit__row .responsive-artwork__variant {
    width: 100%;
    flex: none;
  }
}

@container (min-width: 440px) {
  .ratio-layout--compact-switch.ratio-layout--1-1-1 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ratio-layout--compact-switch.ratio-layout--retain-first-pair > :nth-child(3) {
    grid-column: auto;
  }
}

@container (min-width: 560px) {
  .shared-rows__copy--a {
    grid-column: 1;
    grid-row: 1;
  }

  .shared-rows__copy--b {
    grid-column: 2;
    grid-row: 1;
  }

  .shared-rows__media--a {
    grid-column: 1;
    grid-row: 2;
  }

  .shared-rows__media--b {
    grid-column: 2;
    grid-row: 2;
  }
}

/* =========================================================
   PRESS detail — project composition slots
   ========================================================= */

.press-detail {
  --press-gap: 24px;
  --section-flow-gap: var(--press-gap);
  container-name: press-detail;
  container-type: inline-size;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--section-flow-gap, 24px);
}

.press-section-rule,
.milk-tv-rule {
  width: 100%;
  border-top: 1px solid var(--works-structure-color);
}

.press-section-label,
.milk-tv-label {
  width: fit-content;
  margin-bottom: 10px;
  padding: 5px 8px 4px;
  background: var(--works-ink);
  color: var(--cream);
  font: 600 12px/14px var(--ui-font);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.press-detail figure,
.press-detail h3,
.press-detail p {
  margin: 0;
}

.press-copy-block {
  min-width: 0;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
  overflow-wrap: break-word;
}

.press-copy-block p + p {
  margin-top: 8px;
}

.press-copy-block h3 {
  font: inherit;
  margin-bottom: 8px;
}

.press-intro-grid {
  --ratio-gap: var(--press-gap);
}

.press-intro-primary {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--press-gap);
}

.press-intro-copy {
  align-self: start;
  line-height: var(--body-text-line-height);
}

.press-intro-copy p + p {
  margin-top: 6px;
}

.press-media {
  min-width: 0;
  overflow: hidden;
}

.press-intro-visuals {
  min-width: 0;
  display: block;
}

.press-intro-visuals picture {
  display: block;
}

.press-intro-small-pair {
  display: none;
}

.press-intro-visuals .press-image {
  width: 100%;
  height: auto;
  object-fit: contain;
}

@container (min-width: 520px) {
  .press-intro-small-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .press-intro-small-pair .press-image {
    width: 100%;
    height: auto;
  }
}

.press-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.press-image--a4 {
  aspect-ratio: 1095 / 1542;
}

.press-image--square {
  aspect-ratio: 1 / 1;
}

.press-image--landscape {
  aspect-ratio: 4 / 3;
}

.press-image--wide {
  aspect-ratio: 2 / 1;
}

.press-placeholder {
  width: 100%;
  display: grid;
  place-items: center;
  color: #000;
  font: 600 clamp(16px, 3vw, 28px)/1 var(--ui-font);
  letter-spacing: .02em;
}

.press-placeholder--portrait {
  aspect-ratio: 3 / 4;
}

.press-placeholder--square {
  aspect-ratio: 1 / 1;
}

.press-placeholder--landscape {
  aspect-ratio: 4 / 3;
}

.press-placeholder--wide {
  aspect-ratio: 2 / 1;
}

.press-placeholder--pink {
  background: var(--pink);
}

.press-volumes {
  --layout-1-1-gap: var(--press-gap);
}

.press-volume-column {
  min-width: 0;
}

.press-carousel {
  min-width: 0;
  overflow: hidden;
  --press-carousel-frame-height: auto;
  position: relative;
}

.press-carousel__track {
  width: 100%;
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}

.press-carousel__track::-webkit-scrollbar {
  display: none;
}

.press-carousel__slide {
  flex: 0 0 100%;
  min-width: 0;
  min-height: 0;
  scroll-snap-align: start;
  opacity: 0;
  height: var(--press-carousel-frame-height);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 360ms var(--ease-standard);
}

.press-carousel .press-carousel__slide > img,
.press-carousel .press-carousel__slide > picture > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.press-carousel__slide > .press-placeholder {
  width: 100%;
  height: 100%;
}

.press-carousel:not(.is-carousel-ready) .press-carousel__slide:first-child,
.press-carousel.is-carousel-ready .press-carousel__slide.is-active {
  opacity: 1;
}

.press-carousel__footer {
  height: 30px;
  padding-inline: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  color: var(--cream);
}

.press-carousel__controls {
  width: 100%;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 0;
  font: 600 12px/14px var(--ui-font);
}

.press-carousel__control-spacer {
  width: 34px;
  height: 1px;
  visibility: hidden;
  pointer-events: none;
}

.press-carousel__pager {
  min-width: 0;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  justify-self: center;
}

.press-carousel__pager .press-carousel__control {
  width: 30px;
}

.press-carousel__control {
  position: relative;
  appearance: none;
  width: 32px;
  height: 30px;
  margin: 0;
  padding: 0;
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--cream);
  font: inherit;
  line-height: 1;
  cursor: pointer;
}

.press-carousel__control:hover {
  opacity: .72;
}

.press-carousel__control:focus-visible {
  outline: 1px solid var(--cream);
  outline-offset: -4px;
}

.press-carousel__count {
  min-width: 42px;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  line-height: 14px;
  white-space: nowrap;
}

.press-carousel__control--previous,
.press-carousel__control--next {
  padding-bottom: 1px;
}

.press-carousel__control--toggle {
  justify-self: end;
  width: 34px;
}

.press-carousel__pause-icon {
  width: 9px;
  height: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
}

.press-carousel__pause-icon i {
  width: 3px;
  height: 9px;
  display: block;
  background: currentColor;
}

.press-carousel__play-icon {
  width: 0;
  height: 0;
  display: block;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 9px solid currentColor;
}

.press-extras {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--press-gap);
  align-items: start;
}

.press-attachment {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--press-gap);
}

/* =========================================================
   MILK TV detail — reference-led editorial structure
   ========================================================= */

.milk-tv-detail {
  min-width: 0;
  --section-flow-gap: 24px;
  display: flex;
  flex-direction: column;
  gap: var(--section-flow-gap, 24px);
  color: #000;
}

.milk-tv-detail .milk-tv-rule {
  border-top-color: #000;
}

.milk-tv-detail p,
.milk-tv-detail figure {
  margin-block: 0;
}

.milk-tv-copy,
.milk-tv-volume__copy {
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
}

.milk-tv-label {
  background: #000;
}

.milk-tv-masthead {
  --milk-tv-masthead-inline-inset: 5.43%;
  background: #000;
}

.milk-tv-masthead__pattern {
  position: absolute;
  left: 0;
  top: 0;
  width: auto;
  max-width: none;
  height: 100%;
  display: block;
  transform: translateX(calc(-1 * var(--milk-tv-masthead-inline-inset)));
}

.milk-tv-masthead__title,
.milk-tv-masthead__tagline {
  position: absolute;
  display: block;
  height: auto;
}

.milk-tv-masthead__title {
  left: var(--milk-tv-masthead-inline-inset);
  top: 25%;
  width: 36.35%;
}

.milk-tv-masthead__tagline {
  right: var(--milk-tv-masthead-inline-inset);
  top: 35%;
  width: 18.1%;
}

.milk-tv-intro {
  display: grid;
  grid-template-columns: 171px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.milk-tv-intro__media {
  min-width: 0;
}

.milk-tv-intro__media img {
  display: block;
  width: 100%;
  height: auto;
}

.milk-tv-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.milk-tv-heading .milk-tv-label {
  margin-bottom: 0;
}

.milk-tv-heading__paw {
  flex: 0 0 17px;
  display: block;
  width: 17px;
  height: 16px;
  object-fit: contain;
}

.milk-tv-heading__paw--left {
  display: none;
  transform: scaleX(-1);
}

.milk-tv-volumes {
  background: var(--cream);
}

.milk-tv-volume {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  background: var(--cream);
}

.milk-tv-volume__media img {
  display: block;
  width: 100%;
  height: auto;
}

.milk-tv-volume__copy .milk-tv-label {
  margin-inline: auto;
}

.milk-tv-carousel__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.milk-tv-carousel {
  min-width: 0;
}

/* =========================================================
   MILK MILK detail — v33 responsive editorial structure
   ========================================================= */

.milk-milk-detail {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  color: #000;
}

.milk-milk-detail p,
.milk-milk-detail figure {
  margin-block: 0;
}

.milk-milk-banner {
  background: #000;
  color: var(--cream);
  font-family: var(--ui-font);
  font-weight: 600;
}

.milk-milk-banner__title {
  position: absolute;
  left: 3.62%;
  top: 50%;
  display: block;
  width: 32.88%;
  height: auto;
  transform: translateY(-50%);
}

.milk-milk-banner__tray {
  position: absolute;
  right: 3.62%;
  top: 50%;
  display: block;
  width: 21.87%;
  height: auto;
  transform: translateY(-50%);
}

.milk-milk-copy {
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
  overflow-wrap: break-word;
}

.milk-milk-copy p {
  margin: 0;
}

.milk-milk-intro {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.34fr) minmax(0, 1fr);
  grid-template-areas:
    "copy portrait"
    "scene portrait";
  grid-template-rows: auto 1fr;
  gap: 24px;
  align-items: stretch;
}

.milk-milk-intro__copy {
  grid-area: copy;
  align-self: start;
}

.milk-milk-media {
  min-width: 0;
  overflow: hidden;
  line-height: 0;
}

.milk-milk-media--scene {
  grid-area: scene;
  aspect-ratio: 1083 / 660;
  align-self: end;
}

.milk-milk-media--portrait {
  grid-area: portrait;
  aspect-ratio: 813 / 1080;
  align-self: start;
}

.milk-milk-media picture,
.milk-milk-media img {
  display: block;
  width: 100%;
  height: 100%;
}

.milk-milk-media img {
  object-fit: cover;
}

.milk-milk-volume-frame {
  min-width: 0;
}

.milk-milk-volume {
  min-width: 0;
}

.milk-milk-volume__inner {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.milk-milk-volume--02 .milk-milk-volume__inner {
  grid-template-columns: minmax(0, 1fr) 190px;
}

.milk-milk-cover {
  position: relative;
  width: 100%;
  margin-block: 0;
  overflow: hidden;
  line-height: 0;
}

.milk-milk-cover img {
  position: absolute;
  display: block;
  max-width: none;
  height: auto;
}

/* The cover exports include different transparent margins. These wrappers use
   their measured opaque bounds so both volume rows align by visible pixels. */
.milk-milk-cover--01 {
  aspect-ratio: 509 / 549;
}

.milk-milk-cover--01 img {
  left: -5.305%;
  top: -1.375%;
  width: 110.216%;
}

.milk-milk-cover--02 {
  aspect-ratio: 516 / 510;
}

.milk-milk-cover--02 img {
  left: -4.457%;
  top: -5.039%;
  width: 108.721%;
}

.milk-milk-label {
  width: fit-content;
  margin-bottom: 10px;
  padding: 5px 8px 4px;
  background: #000;
  color: var(--cream);
  font: 600 12px/14px var(--ui-font);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.milk-milk-carousel__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* =========================================================
   MILK CITY Passport detail — v34.7
   ========================================================= */

.passport-detail {
  container-name: passport-detail;
  container-type: inline-size;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--section-flow-gap, 24px);
  color: var(--works-ink);
}

.passport-detail p,
.passport-detail figure {
  margin-block: 0;
}

.passport-copy {
  min-width: 0;
  font-family: var(--body-font);
  font-size: var(--body-text-size);
  font-weight: 400;
  line-height: var(--body-text-line-height);
  text-align: left;
}

.passport-label,
.passport-visa__label {
  width: fit-content;
  margin-bottom: 10px;
  padding: 4px 7px 3px;
  background: var(--works-ink);
  color: var(--cream);
  font: 600 12px/14px var(--ui-font);
}

:root[data-language="zh"] .works-app [data-localized-heading] {
  font-family: "Noto Serif CJK SC Label";
  font-weight: 600;
}

:root[data-language="ja"] .works-app [data-localized-heading] {
  font-family: "Noto Serif CJK JP Label";
  font-weight: 600;
}

:root[data-language="ko"] .works-app [data-localized-heading] {
  font-family: "Noto Serif CJK KR Label";
  font-weight: 600;
}

.passport-rule {
  width: 100%;
  border-top: 1px solid var(--works-structure-color);
}

.passport-masthead {
  background: var(--blue);
  color: var(--cream);
}

.passport-masthead__title {
  position: absolute;
  left: 3.744%;
  top: 50%;
  width: 31.045%;
  height: auto;
  display: block;
  transform: translateY(-50%);
}

.passport-masthead__stamp {
  position: absolute;
  right: .936%;
  top: 0;
  width: 27.2%;
  height: auto;
  display: block;
  transform: none;
}

.passport-rules {
  --ratio-gap: 24px;
}

.passport-rules__art {
  --ratio-gap: 16px;
  align-items: center;
}

.passport-media {
  min-width: 0;
  line-height: 0;
}

.passport-media img,
.passport-kit picture,
.passport-kit img {
  width: 100%;
  height: auto;
  display: block;
}

.passport-rules .passport-media {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.passport-rules .passport-media img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.passport-overview,
.passport-case {
  --ratio-gap: 24px;
}

.passport-kit {
  background: var(--cream);
}

.passport-kit__row {
  line-height: 0;
}

.passport-visa {
  padding: 24px 16px 16px;
  background: var(--blue);
  color: var(--cream);
}

.passport-visa__header {
  margin-bottom: 24px;
  text-align: center;
}

.passport-visa__label {
  margin-inline: auto;
  background: var(--cream);
  color: var(--works-ink);
}

.passport-visa__collection {
  padding: 48px 24px 24px;
  display: flex;
  flex-direction: column;
  background: var(--cream);
  color: var(--works-ink);
}

.passport-badge-grid {
  --collection-min: 112px;
  --collection-column-gap: 20px;
  --collection-row-gap: 24px;
}

.passport-badge {
  appearance: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  grid-template-rows: 124px auto;
  justify-items: center;
  align-items: end;
  gap: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
}

button.passport-badge {
  cursor: pointer;
}

.passport-badge__art {
  position: relative;
  width: min(100%, 112px);
  aspect-ratio: 414 / 291;
  display: block;
  align-self: end;
  justify-self: center;
}

.passport-badge__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  transition: opacity 180ms var(--ease-standard);
}

.passport-badge__image--active {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.passport-badge--2026 .passport-badge__art {
  width: min(82%, 84px);
  aspect-ratio: 291 / 414;
}

.passport-badge--coming .passport-badge__art {
  width: min(86%, 90px);
  aspect-ratio: 243 / 228;
}

.passport-badge--more .passport-badge__art {
  width: 1px;
  aspect-ratio: 1;
  visibility: hidden;
}

.passport-badge__year {
  padding: 3px 6px 2px;
  background: var(--works-ink);
  color: var(--cream);
  font: 600 10px/12px var(--ui-font);
}

.passport-badge[aria-pressed="true"] .passport-badge__image--default,
.passport-badge:focus-visible .passport-badge__image--default {
  opacity: 0;
}

.passport-badge[aria-pressed="true"] .passport-badge__image--active,
.passport-badge:focus-visible .passport-badge__image--active {
  opacity: 1;
}

@media (hover: hover) {
  button.passport-badge:hover .passport-badge__image--default {
    opacity: 0;
  }

  button.passport-badge:hover .passport-badge__image--active {
    opacity: 1;
  }
}

.passport-badge:focus-visible {
  outline: 2px solid var(--works-ink);
  outline-offset: 5px;
}

.passport-visa__instruction {
  width: 100%;
  margin: 0;
  padding-top: 24px;
  color: var(--works-ink);
  font-family: var(--body-font);
  font-size: var(--microcopy-size);
  font-weight: 400;
  line-height: var(--microcopy-line-height);
  text-align: center;
}

.passport-detail .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.works-mobile {
  display: none;
}

/* =========================================================
   RESPONSIVE STATES
   ========================================================= */

@media (min-width: 849px) {
  .press-detail,
  .milk-tv-detail {
    --section-flow-gap: 36px;
  }

  .responsive-hero--valentine {
    height: 120px;
    aspect-ratio: auto;
  }

  .page-works {
    height: 100vh;
    overflow: hidden;
  }

  .page-works .nav-shell {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 300;
  }

  .page-works .works-scroll {
    position: fixed;
    top: var(--header-occupied-h);
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    margin-top: 0;
  }
}

@media (min-width: 1030px) {
  .works-selector-dock {
    position: sticky;
    top: 0;
    z-index: 5;
  }
}

@media (max-width: 848px) {
  .page-works,
  .page-works .works-scroll {
    background: var(--cream);
  }

  .works-app {
    --content-loading-inline-start: 0px;
    --content-loading-inline-end: 0px;
    width: 100%;
  }

  .works-desktop {
    display: none;
  }

  .works-mobile {
    display: block;
    min-height: 100%;
    padding: 36px clamp(24px, calc(6.35vw - .8px), 48px) 56px;
    overflow-x: clip;
  }

  .works-mobile-list {
    width: min(100%, 641px);
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .works-mobile-item {
    position: relative;
    width: 100%;
    margin: 0 0 clamp(20px, 3.65vw, 28px);
  }

  .works-mobile-item:last-child {
    margin-bottom: 0;
  }

  .works-mobile-item.is-open {
    margin-bottom: 24px;
  }

  .works-mobile-summary {
    position: relative;
    z-index: 2;
    width: 100%;
    background: var(--cream);
  }

  .works-mobile-item.is-open .works-mobile-summary {
    padding-bottom: 12px;
  }

  .works-mobile-thumb {
    appearance: none;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    display: block;
    background: transparent;
    line-height: 0;
    cursor: pointer;
    position: relative;
    z-index: 1;
  }

  .works-mobile-thumb__frame {
    position: relative;
    display: block;
    width: 100%;
    height: var(--wide-viewport-h);
    overflow: visible;
    clip-path: inset(calc(var(--wide-viewport-h) - var(--wide-canvas-h, var(--wide-viewport-h))) 0 0);
    background: transparent;
  }

  .works-wide-thumb {
    position: relative;
    width: 100%;
    height: var(--wide-viewport-h);
    display: block;
    overflow: visible;
    line-height: 0;
  }

  .works-wide-thumb__inner {
    position: absolute;
    z-index: 1;
    left: 50%;
    bottom: 0;
    width: min(100%, var(--wide-source-w));
    height: var(--wide-viewport-h);
    display: block;
    overflow: visible;
    box-sizing: border-box;
    transform: translateX(-50%);
    pointer-events: none;
  }

  .works-wide-thumb__background,
  .works-mobile-thumb .works-wide-thumb__background {
    position: absolute;
    z-index: 0;
    left: 50%;
    bottom: 0;
    width: var(--wide-source-w);
    height: var(--wide-viewport-h);
    max-width: none;
    display: block;
    object-fit: contain;
    transform: translateX(-50%);
  }

  .works-wide-thumb__inner::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    border: 1px solid var(--works-ink);
    box-sizing: border-box;
    pointer-events: none;
  }

  .works-wide-thumb__overlay,
  .works-mobile-thumb .works-wide-thumb__overlay {
    position: absolute;
    z-index: 2;
    left: 50%;
    width: var(--wide-overlay-w);
    height: auto;
    max-width: none;
    display: block;
    object-fit: contain;
    transform: translateX(-50%);
    bottom: 0;
  }

  .works-wide-thumb__overlay--bottom {
    bottom: 0;
  }

  .works-mobile-triangle {
    position: absolute;
    left: 50%;
    bottom: 2px;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid var(--works-structure-color);
    transform: translateX(-50%);
    opacity: 0;
    pointer-events: none;
    z-index: 2;
  }

  .works-mobile-item.is-open .works-mobile-triangle {
    opacity: 1;
  }

  .works-mobile-detail {
    --content-loading-surface: var(--works-paper);
    display: none;
    padding-top: 12px;
  }

  .works-mobile-item.is-open .works-mobile-detail {
    display: block;
  }

  .works-mobile-detail .works-project__masthead {
    margin-bottom: var(--works-mobile-gap);
  }

  .works-mobile-detail .works-project__masthead img {
    width: min(100%, var(--title-width));
  }

  .works-mobile-detail .works-project--press .works-project__masthead img,
  .works-mobile-item[data-project="press"] .works-project__masthead img {
    width: 100%;
  }

  .works-mobile-item[data-project="milk-milk"] .works-project__masthead {
    min-height: 0;
    padding: 12px;
    border: 6px solid var(--works-structure-color);
    display: flex;
    align-items: center;
  }

  .works-mobile-detail .works-project__columns {
    display: flex;
    flex-direction: column;
    gap: var(--works-mobile-gap);
  }

  .works-mobile-detail .works-project__column {
    display: contents;
  }

  .works-mobile-detail .works-copy--intro { order: 1; }
  .works-mobile-detail .works-media--pink { order: 2; }
  .works-mobile-detail .works-copy--secondary { order: 3; }
  .works-mobile-detail .works-media--black { order: 4; }

  .works-mobile-detail .works-media--pink {
    aspect-ratio: 2 / 1;
  }

  .works-mobile-detail .works-media--black {
    aspect-ratio: 1 / 1;
  }

  .works-mobile-detail .works-media--blue {
    margin-top: var(--works-mobile-gap);
    aspect-ratio: 1.35 / 1;
  }

  /* Shared slideshow chrome. Detail pages only override color tokens. */
  .works-mobile-detail .press-carousel__footer {
    height: 28px;
    padding-inline: 4px;
  }

  .works-mobile-detail .press-carousel__control {
    width: 34px;
    height: 28px;
  }

  /* MILK TV mobile composition */
  .works-mobile-item[data-project="milk-tv"] .milk-tv-detail {
    gap: 24px;
    overflow: hidden;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-intro {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: stretch;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-copy {
    min-width: 0;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-heading {
    justify-content: center;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-intro__media {
    width: min(68.5%, 320px);
    margin-inline: auto;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-intro__media img {
    width: 100%;
    max-width: none;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-heading__paw--left {
    display: block;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-volumes {
    background: var(--cream);
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-volume {
    gap: 20px;
  }

  .works-mobile-item[data-project="milk-tv"] .milk-tv-carousel__image {
    aspect-ratio: 4 / 3;
  }

  /* MILK MILK mobile composition */
  .works-mobile-item[data-project="milk-milk"] .milk-milk-detail {
    gap: 24px;
    overflow: visible;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-intro {
    grid-template-columns: minmax(0, 1.88fr) minmax(0, 1fr);
    grid-template-areas:
      "copy copy"
      "scene portrait";
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 24px;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-media--scene,
  .works-mobile-item[data-project="milk-milk"] .milk-milk-media--portrait {
    height: clamp(126px, 39.23vw, 240px);
    aspect-ratio: auto;
    align-self: stretch;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume-frame {
    --grouped-frame-item-padding: 24px 30px;
    --grouped-frame-inset: 24px;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume {
    display: block;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume__inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume--02 .milk-milk-volume__copy {
    order: 2;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume--02 .milk-milk-cover {
    order: 1;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-cover {
    width: min(60%, 220px);
    margin-inline: auto;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-volume__copy {
    width: 100%;
    padding-inline: 0;
  }

  .works-mobile-item[data-project="milk-milk"] .milk-milk-label {
    margin-inline: auto;
  }

  /* PASSPORT mobile composition */
  .works-mobile-item[data-project="passport"] .passport-detail {
    overflow: visible;
  }

  .works-mobile-item[data-project="passport"] .passport-rules {
    --ratio-gap: 24px;
  }

  .works-mobile-item[data-project="passport"] .passport-rules__art {
    --ratio-gap: 5%;
    align-items: center;
  }

  .works-mobile-item[data-project="passport"] .passport-rules .passport-media img {
    width: 100%;
    height: auto;
  }

  .works-mobile-item[data-project="passport"] .passport-overview,
  .works-mobile-item[data-project="passport"] .passport-case {
    --ratio-gap: 24px;
  }

  .works-mobile-item[data-project="passport"] .passport-kit {
    --grouped-frame-item-padding: 0px;
    --grouped-frame-inset: 24px;
  }

  .works-mobile-item[data-project="passport"] .passport-kit__row {
    aspect-ratio: 1.61;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .works-mobile-item[data-project="passport"] .passport-kit__row .responsive-artwork__variant {
    width: 82%;
    flex: none;
  }

  .works-mobile-item[data-project="passport"] .passport-visa {
    padding: 16px 6px 6px;
  }

  .works-mobile-item[data-project="passport"] .passport-visa__header {
    margin: 0 10px 16px;
    text-align: left;
  }

  .works-mobile-item[data-project="passport"] .passport-visa__label {
    margin-inline: 0;
  }

  .works-mobile-item[data-project="passport"] .passport-visa__collection {
    min-height: 0;
    padding: 24px 20px 20px;
  }

  .works-mobile-item[data-project="passport"] .passport-badge-grid {
    --collection-min: 112px;
    --collection-column-gap: 24px;
    --collection-row-gap: 24px;
  }

  .works-mobile-item[data-project="passport"] .passport-badge {
    grid-template-rows: 106px auto;
  }

  .works-mobile-item[data-project="passport"] .passport-badge__art {
    width: min(100%, clamp(96px, 30.1cqi, 104px));
  }

  .works-mobile-item[data-project="passport"] .passport-badge--2026 .passport-badge__art {
    width: min(82%, clamp(68px, 21.1cqi, 74px));
  }

  .works-mobile-item[data-project="passport"] .passport-badge--coming .passport-badge__art {
    width: min(88%, clamp(76px, 23.4cqi, 82px));
  }

  .works-mobile-item[data-project="passport"] .passport-badge--more .passport-badge__art {
    width: 1px;
  }

  .works-mobile-item[data-project="passport"] .passport-visa__instruction {
    max-width: 230px;
    margin-inline: auto;
  }

  .works-mobile-close-row {
    margin-top: 24px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px;
  }

  .works-mobile-close-row .works-share-button { margin: 0; }

  .works-mobile-close {
    position: relative;
    appearance: none;
    margin: 0;
    min-height: 32px;
    padding: 4px 0;
    border: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    color: var(--works-structure-color);
    font: 600 14px/18px var(--ui-font);
    cursor: pointer;
  }

  .works-mobile-close::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    min-width: 59px;
    height: 40px;
    transform: translate(-50%, -50%);
  }

  .works-mobile-close__x {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    display: block;
    color: inherit;
  }

  .works-mobile-rule {
    margin-top: 16px;
    border-top: 1px solid var(--works-structure-color);
  }

  /* AUTHENTIC mobile composition */
  .works-mobile-item[data-project="authentic"] .authentic-masthead {
    margin-top: 0;
  }

  .works-mobile-item[data-project="authentic"] .authentic-rule {
    margin-top: 32px;
  }

  .works-mobile-item[data-project="authentic"] .authentic-bureau {
    margin-top: 24px;
  }

  .works-mobile-item[data-project="authentic"] .authentic-support {
    margin-top: 32px;
  }

  .works-mobile-item[data-project="authentic"] .authentic-carousel {
    margin-top: 28px;
  }

  /* VALENTINE mobile composition */
  .works-mobile-item[data-project="valentine"] .valentine-detail {
    --section-flow-gap: 24px;
    gap: var(--section-flow-gap);
  }

  .works-mobile-item[data-project="valentine"] .valentine-reading {
    gap: 24px;
  }

  .works-mobile-item[data-project="valentine"] .valentine-title {
    width: 100%;
    padding: 0;
    flex-direction: column;
    gap: 2px;
    background: transparent;
    color: #000;
    white-space: normal;
  }

  .works-mobile-item[data-project="valentine"] .valentine-title span {
    width: fit-content;
    padding: 3px 5px 2px;
    background: #000;
    color: var(--cream);
  }

  .works-mobile-item[data-project="valentine"] .valentine-covers {
    gap: 12px;
  }

  .works-mobile-item[data-project="valentine"] .valentine-set {
    --ratio-gap: 12px;
    padding-inline: 0;
  }

  .works-mobile-item[data-project="valentine"] .valentine-set__copy {
    padding-bottom: 0;
    padding-inline: 0;
  }
}

@media (min-width: 520px) and (max-width: 848px) {
  .works-mobile-item[data-project="valentine"] .valentine-detail {
    --section-flow-gap: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .works-rail__marker,
  .works-thumb__state,
  .press-carousel__slide {
    transition: none;
  }

  .works-thumb__foreground-motion {
    animation: none;
  }
}

/* =========================================================
   PROJECT VARIABLES
   All project-specific sizing and placement lives here.
   ========================================================= */

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="press"] {
  --thumb-gap-after: 16px;
  --desktop-ratio: 600 / 372;
  --desktop-background-height: 100px;
  --title-width: 361px;
  --wide-overlay-w: 641px;
  --wide-canvas-h: 124px;
  --foreground-main-left: 0;
  --foreground-main-bottom: 20px;
  --foreground-main-width: 84.5%;
  --foreground-main-ratio: 507 / 310;
  --foreground-main-origin: left bottom;
}

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="milk-tv"] {
  --thumb-gap-after: 9px;
  --desktop-ratio: 600 / 300;
  --title-width: 226px;
  --foreground-main-left: 0;
  --foreground-main-top: 50%;
  --foreground-main-width: 66.5%;
  --foreground-main-ratio: 399 / 300;
  --foreground-main-transform: translateY(-50%);
  --foreground-main-origin: left center;
}

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="milk-milk"] {
  --thumb-gap-after: 8px;
  --desktop-ratio: 600 / 321;
  --title-width: 219px;
  --wide-overlay-w: 641px;
  --wide-canvas-h: 108px;
  --foreground-a2-right: 0;
  --foreground-a2-bottom: 20px;
  --foreground-a2-width: 55.5%;
  --foreground-a2-ratio: 333 / 260;
  --foreground-a2-origin: right bottom;
  --foreground-a1-left: 0;
  --foreground-a1-bottom: 20px;
  --foreground-a1-width: 57.5%;
  --foreground-a1-ratio: 345 / 259;
  --foreground-a1-origin: left bottom;
}

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="authentic"] {
  --thumb-gap-after: 3px;
  --desktop-ratio: 600 / 336;
  --title-width: 287px;
  --wide-overlay-w: 645px;
  --wide-canvas-h: 109px;
  --foreground-main-left: 0;
  --foreground-main-bottom: 0;
  --foreground-main-width: 71%;
  --foreground-main-ratio: 426 / 336;
  --foreground-main-origin: left bottom;
}

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="valentine"] {
  --thumb-gap-after: 16px;
  --desktop-ratio: 600 / 342;
  --title-width: 340px;
  --wide-overlay-w: 133px;
  --wide-canvas-h: 115px;
  --foreground-main-left: 0;
  --foreground-main-bottom: 0;
  --foreground-main-width: 73.5%;
  --foreground-main-ratio: 441 / 342;
  --foreground-main-origin: left bottom;
}

:is(.works-thumb, .works-mobile-item, .works-project)[data-project="passport"] {
  --thumb-gap-after: 0px;
  --desktop-ratio: 600 / 303;
  --title-width: 311px;
  --foreground-main-left: 0;
  --foreground-main-top: 50%;
  --foreground-main-width: 64.5%;
  --foreground-main-ratio: 387 / 303;
  --foreground-main-transform: translateY(-50%);
  --foreground-main-origin: left center;
}
