/* Each body of work determines its page rhythm; artwork is never cropped. */
.page-work{--publication-gap:clamp(56px,8vw,128px)}
.page-work .hero{padding-block:48px 36px;display:grid;grid-template-columns:1fr auto;gap:18px 32px}
.page-work .hero-eyebrow{grid-column:1/-1;margin:0;font-size:12px}
.page-work .hero-title{font-size:clamp(48px,7.8vw,120px);line-height:.94;letter-spacing:-.065em;max-width:18ch}
.page-work .hero-meta{display:none}
.jcb-arrow{display:inline-block;flex-shrink:0;vertical-align:middle;width:18px;height:18px}
.publication-register{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding:8px 0 28px;font-size:12px;color:var(--muted)}
.publication-register>a{display:inline-flex;align-items:center;gap:22px;min-height:44px;white-space:nowrap}
.publication-spread{display:grid;gap:clamp(24px,5vw,80px);align-items:center;margin:0 0 var(--publication-gap)}
.publication-spread.spread-1{grid-template-columns:minmax(0,1fr)}
.publication-spread.spread-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.publication-spread.spread-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.publication-frame{min-width:0;margin:0}
.publication-frame img{width:100%;height:auto;max-height:90svh;object-fit:contain}
.publication-image{display:block;position:relative;cursor:zoom-in}
.publication-image:focus-visible{outline-offset:8px}
.image-enlarge{position:absolute;right:12px;bottom:12px;width:40px;height:40px;background:var(--paper);color:var(--ink);display:grid;place-items:center;opacity:0;transition:opacity .2s}
.publication-image:hover .image-enlarge,.publication-image:focus-visible .image-enlarge{opacity:1}
.publication-frame figcaption{display:flex;justify-content:space-between;gap:24px;padding-top:14px;font-size:11px;line-height:1.5;color:var(--muted)}
.publication-frame figcaption>span:first-child{font-family:'JetBrains Mono',monospace;white-space:nowrap}
.publication-frame figcaption>span:last-child{text-align:right}
.publication-opening{margin-bottom:var(--publication-gap)}
.publication-opening>.publication-spread{margin:0}
.publication-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;padding:48px 0 0;max-width:1100px}
.publication-label{font-family:'JetBrains Mono',monospace;font-size:11px;line-height:1.8;color:var(--muted)}
.publication-intro p{font-size:18px;line-height:1.65;max-width:58ch;margin:0;text-wrap:pretty;color:var(--muted)}
.publication-intro .publication-lead{font-size:clamp(28px,3vw,46px);line-height:1.22;letter-spacing:-.04em;color:var(--ink)}
.publication-statement{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:48px;border-top:1px solid var(--line);padding:48px 0 64px}
.publication-statement p{font-size:16px;line-height:1.8;max-width:62ch;color:var(--muted);margin:0 0 24px;text-wrap:pretty}
.work-film video,.work-film iframe{display:block;width:100%;aspect-ratio:16/9;max-height:78svh;object-fit:contain;background:#101014;border:0}
/* El Velorio: a solitary opening and paired steps, keeping the ten-image order. */
.work-procession .hero-title{font-size:clamp(64px,12vw,180px)}
.work-procession .publication-opening.has-intro{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:9vw;align-items:end}
.work-procession .publication-opening>.publication-spread{grid-column:2;grid-row:1}
.work-procession .publication-opening>.publication-intro{display:block;grid-column:1;grid-row:1;padding:0 0 48px}
.work-procession .publication-intro p{margin-top:30px}
.work-procession .publication-opening img{max-height:78svh;object-position:right center}
.work-procession main>.spread-1{width:64%;margin-left:auto;margin-right:auto}
.work-procession main>.spread-2{align-items:start;gap:9vw}
.work-procession main>.spread-2 .publication-frame:nth-child(2){padding-top:25%}
.work-procession main>.spread-1:last-of-type{width:48%;margin-right:0}
/* Architectural studies read as large plates separated by generous margins. */
.work-architecture .publication-opening .publication-spread{width:80%;margin-inline:auto}
.work-architecture .spread-2{align-items:end;gap:8vw}
.work-architecture .spread-verso .publication-frame:first-child{padding:0 8%}
.work-architecture main>.spread-1{width:80%;margin-inline:auto}
/* The Bóveda begins with two interiors, then alternates rooms and details. */
.work-interiors .publication-opening .spread-2{grid-template-columns:1.15fr .85fr;align-items:start;gap:9vw}
.work-interiors .publication-opening .publication-frame:nth-child(2){padding-top:35%}
.work-interiors .publication-intro{margin-left:auto;max-width:850px}
.work-interiors main>.spread-1{width:66%;margin-inline:auto 0}
.work-interiors main>.spread-2{align-items:end;gap:4vw}
.work-interiors main>.spread-2.spread-verso{grid-template-columns:.8fr 1.2fr}
/* Photographic journals: paired spreads and compact sets in the original order. */
.work-editorial .spread-2{gap:28px;align-items:end}
.work-editorial main>.spread-1{width:76%;margin-inline:auto}
.work-editorial .spread-3{align-items:start}
.work-editorial .spread-3 .publication-frame:nth-child(2){padding-top:28%}
.work-fieldnotes .publication-opening .publication-spread{width:78%;margin-left:auto}
.work-fieldnotes main>.spread-1{width:70%;margin-inline:0 auto}
.work-fieldnotes .spread-2{grid-template-columns:.8fr 1.2fr;align-items:center;gap:10vw}
.work-fieldnotes .spread-3{align-items:end}
.work-exhibition .publication-opening .publication-spread{max-width:900px;margin-inline:auto}
.work-exhibition main>.spread-1{width:68%;margin-inline:auto}
.work-exhibition .spread-3{align-items:end}
.work-monograph .publication-opening .publication-frame img{max-height:80svh}
/* The film pages are the screening, including their typography and credits. */
.work-cinema{--paper:#101014;--ink:#f0f0f6;--muted:#b3b3c0;--line:#353540;background:var(--paper);color:var(--ink);color-scheme:dark}
.work-cinema .hero{padding-top:32px;padding-bottom:22px}
.work-cinema .hero-title{font-size:clamp(44px,6.5vw,100px);max-width:none}
.work-cinema .publication-register{padding-bottom:20px}
.work-cinema .publication-intro{padding-top:52px}
.work-cinema .next-project img{background:transparent}
.next-project{border-top:1px solid var(--line);padding:64px 0 80px;margin-top:24px}
.next-project>a{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:10vw;align-items:center;text-decoration:none}
.next-project>a>div{min-width:0}
.next-project>a>div>span:first-child{font-size:12px;color:var(--muted)}
.next-project h2{font-size:clamp(30px,5vw,72px);font-weight:400;line-height:1.03;letter-spacing:-.045em;margin:24px 0}
.next-project p{font-size:12px;line-height:1.6;color:var(--muted)}
.next-project-arrow{display:inline-flex;margin-top:24px;transition:transform .2s}
.next-project-arrow .jcb-arrow{width:32px;height:32px}
.next-project a:hover .next-project-arrow{transform:translateX(5px)}
.next-project img{width:100%;height:clamp(200px,32vw,440px);object-fit:contain}
/* Native modal contains focus and makes the background inert on Safari too. */
.publication-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;padding:0;margin:0;background:#101014;color:#f0f0f6;overflow:hidden}
.publication-viewer[open]{display:flex;flex-direction:column}
.publication-viewer::backdrop{background:#101014}
.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 28px;border-bottom:1px solid #353540;font-size:13px;margin:0}
.publication-viewer button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-width:44px;min-height:44px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.publication-viewer button:focus-visible{outline:2px solid #a07850;outline-offset:2px}
.viewer-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:20px 28px}
.viewer-stage img{width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%}
.viewer-controls{display:flex;align-items:center;justify-content:center;gap:36px;padding:8px 24px max(14px,env(safe-area-inset-bottom));border-top:1px solid #353540}
.viewer-controls output{font-family:'JetBrains Mono',monospace;font-size:11px;min-width:64px;text-align:center}
@media(max-width:700px){
 .page-work{--publication-gap:56px}.page-work .hero{padding-block:30px 24px;display:block}.page-work .hero-eyebrow{font-size:11px;margin-bottom:20px}.page-work .hero-title{font-size:clamp(40px,12vw,72px);line-height:.98}
 .page-work .publication-register{font-size:11px;gap:12px;padding-bottom:20px;align-items:start}.publication-register>span{max-width:60%;padding-top:12px}.publication-register>a{gap:10px}
 .publication-spread.spread-2,.publication-spread.spread-3{grid-template-columns:1fr;gap:36px}
 .publication-frame img{max-height:none}.publication-frame figcaption{font-size:10px;padding-top:12px}.image-enlarge{opacity:1;width:32px;height:32px;right:8px;bottom:8px}
 .publication-intro{display:block;padding-top:32px}.publication-intro p{font-size:16px;margin-top:16px}.publication-intro .publication-lead{font-size:28px}
 .publication-statement{display:block;padding:28px 0 32px}.publication-statement>div{margin-top:24px}.publication-statement p{font-size:15px}
 .work-procession .hero-title{font-size:clamp(58px,17vw,100px)}
 .work-procession .publication-opening.has-intro{display:flex;flex-direction:column;gap:28px;align-items:stretch}
 .work-procession .publication-opening>.publication-intro{padding:0}.work-procession .publication-intro p{margin-top:16px;max-width:20ch}.work-procession .publication-opening img{max-height:none}
 .work-procession main>.spread-1,.work-procession main>.spread-1:last-of-type{width:86%;margin-inline:auto 0}
 .work-procession main>.spread-2{gap:36px}.work-procession main>.spread-2 .publication-frame:nth-child(2){padding:0;width:86%;margin-left:auto}
 .work-architecture .publication-opening .publication-spread,.work-architecture main>.spread-1,.work-interiors main>.spread-1,.work-editorial main>.spread-1,.work-fieldnotes .publication-opening .publication-spread,.work-fieldnotes main>.spread-1,.work-exhibition main>.spread-1{width:100%;margin-inline:0}
 .work-architecture .spread-verso .publication-frame:first-child,.work-interiors .publication-opening .publication-frame:nth-child(2),.work-editorial .spread-3 .publication-frame:nth-child(2){padding:0}
 .work-interiors .publication-opening .spread-2,.work-interiors main>.spread-2.spread-verso,.work-fieldnotes .spread-2{grid-template-columns:1fr;gap:36px}
 .work-editorial .spread-3,.work-fieldnotes .spread-3,.work-exhibition .spread-3{grid-template-columns:1fr 1fr;gap:28px 18px}.spread-3 .publication-frame:last-child{grid-column:1/-1;width:84%;margin-inline:auto}
 .work-film video,.work-film iframe{max-height:none}.work-cinema .hero-title{font-size:clamp(40px,12vw,70px)}
 .next-project{padding:40px 0 55px}.next-project>a{grid-template-columns:1fr;gap:30px}.next-project h2{font-size:38px}.next-project img{height:260px}
 .viewer-bar{padding:8px 18px;font-size:12px}.viewer-bar>span{max-width:65%}.viewer-stage{padding:12px 18px}.viewer-controls{gap:30px}.viewer-bar button{gap:12px}
}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.16s}::view-transition-new(root){animation-duration:.2s}}
@media(prefers-reduced-motion:reduce){.page-work *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:701px){
 .work-cinema .work-film video,.work-cinema .work-film iframe{max-height:calc(100svh - 375px);min-height:240px}
 .work-procession .publication-opening img{max-height:calc(100svh - 400px);min-height:340px}
}
.publication-viewer button[hidden]{display:none}
@media(min-width:701px){
 .publication-opening .publication-frame img{max-height:calc(100svh - 390px);min-height:240px}
 .work-editorial .publication-opening .spread-2{align-items:start}
 .work-interiors .publication-opening .publication-frame:nth-child(2){padding-top:20%}
}
