:root { --module-gap: clamp(1rem, 2vw, 2rem); }

.content-module {
  padding: calc(clamp(4rem, 8vw, 8rem) * var(--space-scale, 1)) max(4vw, calc((100vw - var(--content-width, 1320px)) / 2));
  overflow: hidden;
}
.content-module.tone-light { background: var(--paper); color: var(--ink); }
.content-module.tone-dark { background: var(--ink); color: var(--paper); }
.content-module.tone-warm { background: var(--sand); color: var(--ink); }
.module-head { display: grid; grid-template-columns: minmax(0, .7fr) minmax(280px, 1fr); gap: 1rem 5vw; align-items: end; margin-bottom: clamp(2rem, 5vw, 5rem); }
.module-head .eyebrow { grid-column: 1 / -1; margin: 0; }
.module-head h2 { margin: 0; font: 400 calc(clamp(2.4rem, 6vw, 6rem) * var(--heading-scale, 1))/0.95 var(--serif); letter-spacing: -.04em; }
.module-description { max-width: 46rem; margin: 0; font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.65; }

.module-gallery, .photo-grid.module-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--module-gap); align-items: start; }
.module-photo { grid-column: span 4; margin: 0; min-width: 0; }
.module-photo.size-small { grid-column: span 3; }
.module-photo.size-medium { grid-column: span 4; }
.module-photo.size-large { grid-column: span 6; }
.module-photo.size-full { grid-column: 1 / -1; }
.module-photo img, .module-feature-image img { width: 100%; height: auto; display: block; background: color-mix(in srgb, currentColor 6%, transparent); }
.module-photo.ratio-landscape img, .module-feature-image.ratio-landscape img { aspect-ratio: 3 / 2; object-fit: cover; }
.module-photo.ratio-portrait img, .module-feature-image.ratio-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.module-photo.ratio-square img, .module-feature-image.ratio-square img { aspect-ratio: 1; object-fit: cover; }
.position-top img { object-position: center top; }
.position-bottom img { object-position: center bottom; }
.position-left img { object-position: left center; }
.position-right img { object-position: right center; }
.position-center img { object-position: center; }
.module-photo figcaption { display: flex; justify-content: space-between; gap: 1rem; padding-top: .75rem; font-size: .88rem; line-height: 1.4; }
.module-photo figcaption small { opacity: .62; text-align: right; }
.layout-one .module-photo, .layout-two .module-photo.size-full { grid-column: 1 / -1; }
.layout-two .module-photo { grid-column: span 6; }
.layout-editorial .module-photo:nth-child(5n+1) { grid-column: span 7; }
.layout-editorial .module-photo:nth-child(5n+2) { grid-column: span 5; margin-top: 10vw; }
.layout-editorial .module-photo:nth-child(5n+3) { grid-column: 2 / span 4; }
.layout-editorial .module-photo:nth-child(5n+4) { grid-column: 7 / span 6; }
.layout-editorial .module-photo:nth-child(5n+5) { grid-column: 3 / span 8; }
.layout-editorial .module-photo.size-small { grid-column-end: span 3; }
.layout-editorial .module-photo.size-medium { grid-column-end: span 4; }
.layout-editorial .module-photo.size-large { grid-column-end: span 6; }
.layout-editorial .module-photo.size-full { grid-column: 1 / -1; margin-top: 0; }

.module-image-text { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.module-image-text.image-right .module-feature-image { order: 2; }
.module-image-text .module-feature-image { margin: 0; }
.module-image-text .module-head { display: block; margin: 0 0 1.5rem; }
.module-image-text .module-head > * + * { margin-top: 1rem; }
.module-copy > p { max-width: 42rem; font-size: 1.08rem; line-height: 1.75; white-space: pre-line; }
.module-richtext { max-width: 58rem; font-size: clamp(1.05rem, 1.7vw, 1.35rem); line-height: 1.8; white-space: pre-line; }
.module-video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.module-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.module-local-video { display: block; width: 100%; max-height: 82vh; background: #000; object-fit: contain; }
.module-logo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: color-mix(in srgb, currentColor 18%, transparent); border: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.module-logo-item { display: grid; place-items: center; min-height: 220px; margin: 0; padding: clamp(1.5rem, 4vw, 4rem); background: var(--paper); color: var(--ink); }
.module-logo-item img { width: 100%; height: 110px; object-fit: contain; }
.module-logo-item figcaption { margin-top: 1rem; font-size: .8rem; opacity: .65; }
.works-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 3rem); }
.work-card { position: relative; display: grid; min-width: 0; color: inherit; text-decoration: none; background: var(--paper); }
.work-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .55s ease; }
.work-card:hover img { transform: scale(1.018); }
.work-card-copy { padding: clamp(1.25rem, 3vw, 2.5rem); }
.work-card-copy small { text-transform: uppercase; letter-spacing: .12em; opacity: .62; }
.work-card-copy h2 { margin: .35em 0 .25em; font: 400 calc(clamp(2.3rem, 5vw, 5rem) * var(--heading-scale, 1))/.92 var(--serif); letter-spacing: -.045em; }
.work-card-copy p { max-width: 42rem; line-height: 1.65; }
.work-card .open-label { display: inline-block; margin-top: 1.25rem; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; }
.work-detail-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); min-height: 88vh; background: var(--ink); color: var(--paper); }
.work-detail-media img { width: 100%; height: 100%; max-height: 100vh; object-fit: contain; background: #090a09; }
.work-detail-copy { align-self: end; padding: clamp(6rem, 10vw, 10rem) clamp(2rem, 6vw, 7rem); }
.work-detail-copy h1 { margin: .25em 0; font: 400 calc(clamp(3.5rem, 9vw, 9rem) * var(--heading-scale, 1))/.87 var(--serif); letter-spacing: -.055em; }
.work-detail-copy .lead { max-width: 42rem; font-size: clamp(1.05rem, 1.7vw, 1.35rem); line-height: 1.65; }
.empty-state { grid-column: 1 / -1; padding: 4rem 0; font-size: 1.15rem; }
.module-quote { text-align: center; }
.module-quote blockquote { max-width: 1000px; margin: 0 auto; font: 400 calc(clamp(2rem, 5.5vw, 5.5rem) * var(--heading-scale, 1))/1.05 var(--serif); }
.module-quote cite { display: block; margin-top: 2rem; font-style: normal; opacity: .68; }
.module-cta { text-align: center; }
.module-cta .module-head { display: block; margin: 0 auto 2rem; }
.module-cta .module-description { margin: 1rem auto 0; }
.module-cta .button { display: inline-flex; margin-top: 1rem; }
.custom-page-hero { padding: clamp(8rem, 16vw, 14rem) max(4vw, calc((100vw - var(--content-width, 1320px)) / 2)) clamp(4rem, 8vw, 8rem); background: var(--ink); color: var(--paper); }
.custom-page-hero h1 { max-width: 1100px; margin: .3em 0; font: 400 calc(clamp(3.5rem, 10vw, 10rem) * var(--heading-scale, 1))/0.88 var(--serif); letter-spacing: -.055em; }
.custom-page-hero .lead { max-width: 55rem; font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.6; }
.site-footer a { color: inherit; text-underline-offset: .25em; }
.legal-page { max-width: 880px; margin: 0 auto; padding: clamp(9rem, 15vw, 14rem) 1.25rem clamp(5rem, 10vw, 9rem); }
.legal-page h1 { margin: .25em 0 .75em; font: 400 calc(clamp(3.4rem, 9vw, 8rem) * var(--heading-scale, 1))/0.9 var(--serif); letter-spacing: -.05em; }
.legal-page h2 { margin: 2.4rem 0 .6rem; font: 400 clamp(1.6rem, 3vw, 2.4rem)/1.1 var(--serif); }
.legal-page p { font-size: 1.05rem; line-height: 1.75; }
.legal-page a { color: inherit; }
.legal-page .legal-note { margin-top: 3rem; padding: 1.25rem; border: 1px solid currentColor; }
.legal-updated { margin-top: 3rem; opacity: .62; }

@media (max-width: 900px) {
  .module-head, .module-image-text { grid-template-columns: 1fr; }
  .module-image-text.image-right .module-feature-image { order: 0; }
  .module-photo, .module-photo.size-small, .module-photo.size-medium { grid-column: span 6; }
  .module-photo.size-large, .module-photo.size-full { grid-column: 1 / -1; }
  .layout-editorial .module-photo, .layout-editorial .module-photo:nth-child(n) { grid-column: span 6; margin-top: 0; }
  .layout-editorial .module-photo.size-large, .layout-editorial .module-photo.size-full { grid-column: 1 / -1; }
  .module-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-detail-hero { grid-template-columns: 1fr; }
  .work-detail-media img { max-height: 72vh; }
}

@media (max-width: 600px) {
  .content-module { padding-left: 1rem; padding-right: 1rem; }
  .module-gallery, .photo-grid.module-gallery { gap: 2.5rem .75rem; }
  .module-photo, .module-photo.size-small, .module-photo.size-medium, .module-photo.size-large,
  .layout-editorial .module-photo, .layout-editorial .module-photo:nth-child(n) { grid-column: 1 / -1; }
  .module-photo figcaption { font-size: .78rem; }
  .works-grid { grid-template-columns: 1fr; }
  .module-logo-grid { grid-template-columns: 1fr 1fr; }
  .module-logo-item { min-height: 150px; padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
