.project-opening { padding-top: clamp(42px, 6vw, 90px); }
.project-overline { display: flex; justify-content: space-between; margin-bottom: clamp(30px, 4vw, 60px); }
.project-title { font-size: clamp(3.1rem, 7.4vw, 8rem); line-height: .98; letter-spacing: -.055em; max-width: 21ch; overflow-wrap: break-word; }
.project-title.long-title { font-size: clamp(2.5rem, 5.5vw, 5.8rem); max-width: 27ch; }
.project-discipline { margin-top: 25px; margin-bottom: 50px; color: var(--text-secondary); font-size: .875rem; }
.project-authors { margin-top: 26px; font-size: clamp(1.1rem, 1.8vw, 1.7rem); line-height: 1.35; }
.project-authors + .project-discipline { margin-top: 14px; }
.project-hero { margin-bottom: clamp(80px, 10vw, 170px); }
.media-figure img, .media-figure video { width: 100%; height: auto; }
.media-figure figcaption, .block-caption { color: var(--text-secondary); font-size: .75rem; line-height: 1.5; margin-top: 12px; }
.project-hero > .media-figure { grid-column: 1 / 13; }
.project-hero > .media-figure.portrait { grid-column: 4 / 10; }
.project-hero.hero-small > .media-figure { grid-column: 1 / -1; width: min(100%, 460px); justify-self: center; }
.project-hero.hero-medium > .media-figure { grid-column: 1 / -1; width: min(100%, 760px); justify-self: center; }
.project-information { align-items: start; margin-bottom: var(--space); }
.project-meta { grid-column: 1 / 4; padding-right: 30px; }
.meta-item + .meta-item { margin-top: 23px; }
.meta-item dt { text-transform: uppercase; font-size: .75rem; color: var(--text-secondary); margin-bottom: 4px; }
.meta-item dd { font-size: .875rem; line-height: 1.5; }
.meta-item dd + dd { margin-top: 8px; }
.project-description { grid-column: 6 / 12; font-size: clamp(1.125rem, 1.5vw, 1.5rem); line-height: 1.5; letter-spacing: -.015em; }
.project-description p + p { margin-top: 1.4em; }
.project-links { display: flex; flex-wrap: wrap; gap: 20px; font-size: .875rem; margin-top: 42px; }
.media-block { margin-bottom: clamp(70px, 9vw, 145px); }
.media-block.space-large { margin-block: clamp(110px, 18vw, 270px); }
.media-block > .media-content { grid-column: 1 / 13; min-width: 0; }
.media-block.block-wide > .media-content { grid-column: 2 / 12; }
.media-block.block-medium > .media-content { grid-column: 4 / 10; }
.media-block.block-small-left > .media-content { grid-column: 2 / 6; }
.media-block.block-small-right > .media-content { grid-column: 8 / 12; }
.media-block.block-portrait-center > .media-content { grid-column: 5 / 9; }
.media-pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); align-items: start; }
.media-pair.ratio-30-70 { grid-template-columns: 3fr 7fr; align-items: center; }
.media-pair.ratio-40-60 { grid-template-columns: 4fr 6fr; align-items: center; }
.media-pair.ratio-70-30 { grid-template-columns: 7fr 3fr; align-items: center; }
.media-triptych { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; gap: var(--gap); }
.media-pair > *, .media-triptych > * { min-width: 0; }
.media-pair.is-balanced, .media-triptych.is-balanced { grid-template-columns: var(--media-columns); align-items: start; }
.embed-shell { position: relative; aspect-ratio: 16 / 9; background: var(--bg-soft); }
.embed-shell > img { width: 100%; height: 100%; object-fit: contain; }
.embed-play { position: absolute; inset: 0; width: 100%; display: flex; align-items: center; justify-content: center; }
.embed-play span { padding: 13px 22px; font-size: .875rem; background: var(--bg); color: var(--text); }
.embed-play:hover span { background: var(--text); color: var(--bg); }
.embed-shell iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.embed-caption { display: flex; justify-content: space-between; gap: 20px; }
.video-controls { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; font-size: .875rem; }
.video-controls button { text-decoration: underline; text-underline-offset: 4px; min-height: 44px; padding: 0; }
.next-project { border-top: 1px solid var(--line); padding-top: 22px; padding-bottom: 100px; margin-top: var(--space); }
.next-project .eyebrow { grid-column: 1 / 4; }
.next-project-link { grid-column: 4 / 12; font-size: clamp(2rem, 4.5vw, 4.5rem); line-height: 1.07; letter-spacing: -.045em; }
.next-project-link:hover { color: var(--text-secondary); }
.project-not-found { padding-block: 100px 150px; max-width: 65ch; }
.project-not-found p { margin-block: 30px; }
