/* Shared fluid layout: archive, project pages and full-resolution viewer. */
:root{--page-gutter:clamp(1rem,4.5vw,6rem);font-size:16px}
html{scroll-padding-top:clamp(1rem,5vw,5rem);-webkit-text-size-adjust:100%}
body{font-size:clamp(.9375rem,.85rem + .25vw,1.0625rem)}
main,section,article,nav,header,footer,.section-intro>*,.works-heading>*,.object-heading>*,.capture-heading>*,.project-foot>*,.work-caption>*{min-width:0}
img{max-width:100%}
p{overflow-wrap:break-word;text-wrap:pretty}
h1,h2,h3{overflow-wrap:break-word;text-wrap:balance}
button,a{touch-action:manipulation}
.header,.site-header{height:auto;min-height:clamp(5rem,7vw,6.75rem);padding:1rem var(--page-gutter);gap:clamp(.75rem,2vw,2rem)}
.header nav,.site-header nav{gap:clamp(.75rem,2vw,2rem);font-size:clamp(.75rem,.65rem + .2vw,.9375rem);flex-wrap:wrap;justify-content:flex-end}
.header nav a,.site-header nav a{padding-block:.5rem}
.brand,.identity{flex-shrink:0;gap:clamp(.75rem,1.5vw,1.5rem)}
.brand img,.identity img{width:clamp(4rem,6vw,5.7rem);height:auto;object-fit:contain}
.motion-toggle{min-width:2.75rem;min-height:2.75rem;flex-shrink:0}
.section,.work-section,.outro{width:100%;max-width:100rem;padding-inline:var(--page-gutter);margin-inline:auto}
.section,.work-section{padding-block:clamp(3rem,7vw,7rem)}
.eyebrow,.tiny-label,.small,.section-top .small{font-size:clamp(.6875rem,.6rem + .2vw,.8125rem);line-height:1.6;letter-spacing:.1em}
.section-top,.section-line{gap:1rem;flex-wrap:wrap;align-items:baseline}
.intro-copy,.works-controls{max-width:36ch}
.intro-copy>p,.works-controls p,.object-origin>p:not(.eyebrow),.object-curiosities li p,.object-curiosities>p,.filter-item p,.capture-software>p:not(.eyebrow),.sky-myth div>p:last-child,.object-heading>p,.capture-heading>p{font-size:clamp(.9375rem,.85rem + .2vw,1.0625rem);line-height:1.8}
.capture-software .process-note{font-size:.875rem!important;line-height:1.75}
.section-intro,.works-heading,.object-heading,.capture-heading{gap:clamp(1.5rem,4vw,4rem);padding-block:clamp(2rem,4vw,4rem)}
h2,.object-heading h2,.capture-heading h2{font-size:clamp(2.25rem,1.3rem + 3.4vw,4.5rem);line-height:1.12}
h3,.work-caption h3{font-size:clamp(1.375rem,1.1rem + 1vw,2rem);line-height:1.2}
.hero{height:auto;max-height:none;min-height:clamp(34rem,100svh,70rem)}
.hero-content{margin-top:0;padding:clamp(8rem,18svh,14rem) var(--page-gutter) clamp(7rem,15svh,11rem)}
.hero h1,.page-norteamerica-pelicano .hero h1{font-size:clamp(2.65rem,1rem + 6.5vw,8.25rem);max-width:12ch;line-height:1.05;margin-block:clamp(1.5rem,3vw,2.5rem)}
.hero-lead{font-size:clamp(.9375rem,.85rem + .2vw,1.125rem);line-height:1.8;max-width:38ch}
.hero .eyebrow{font-size:clamp(.6875rem,.6rem + .2vw,.8125rem)}
.hero-bottom{left:var(--page-gutter);right:var(--page-gutter);gap:1rem;font-size:clamp(.6875rem,.6rem + .2vw,.8125rem);align-items:end}
.hero-bottom>span:first-child{max-width:60%;line-height:1.7}
.hero-view,.text-link{font-size:clamp(.8125rem,.7rem + .2vw,.9375rem)}
.hero-view{min-height:2.75rem;flex-shrink:0}
.work-caption,.work-caption>div,.project-foot{flex-wrap:wrap;gap:.5rem 1rem}
.caption-type,.work-caption .caption-type,.project-foot,.project-foot>span:last-child,.photo-label{font-size:clamp(.6875rem,.6rem + .15vw,.8125rem);line-height:1.6}
.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem);align-items:start}
.detail-grid .photo-button,.work-main .photo-button,.page-m42 .work-main .photo-button,.page-roseta .work-main .photo-button{aspect-ratio:auto}
.photo-button img,.detail-grid .photo-button img{height:auto;object-fit:contain}
.photo-label{top:clamp(.5rem,2vw,1.4rem);left:clamp(.5rem,2vw,1.4rem)}
.expand{min-height:2.5rem;font-size:.8125rem;bottom:clamp(.5rem,2vw,1.4rem);right:clamp(.5rem,2vw,1.4rem)}
.collection-note{flex-wrap:wrap}.collection-note p,.archive-caption,.has-many .archive-open .archive-caption{font-size:.9375rem;line-height:1.8}.collection-note a{font-size:.8125rem;max-width:100%;overflow-wrap:anywhere}
.object-narrative,.capture-workflow{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,5vw,5rem)}
.astro-stat dd{font-size:clamp(1.45rem,1.05rem + 1.2vw,2.375rem);overflow-wrap:break-word}
.astro-stat dt,.equipment-item dt{font-size:.75rem;letter-spacing:.08em}
.astro-stat dd>span,.equipment-item dd span{font-size:.875rem;line-height:1.6}
.equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(1rem,2vw,2rem)}
.equipment-item dd{font-size:clamp(1.125rem,1rem + .45vw,1.5rem);overflow-wrap:break-word}
.sky-myth{padding:clamp(1.25rem,4vw,2.5rem);grid-template-columns:minmax(4rem,8rem) minmax(0,1fr);gap:clamp(1rem,3vw,2rem)}
.fact-sources,.estimate-note{font-size:.8125rem;line-height:1.7}.fact-sources a{overflow-wrap:anywhere}
footer,.footer-meta{flex-wrap:wrap;font-size:.75rem;line-height:1.7;gap:1rem 2rem}
footer{padding-inline:var(--page-gutter)}
/* Archive lettering stays inside the available width at every breakpoint. */
.intro-sticky{min-height:32rem;height:100svh}
.intro-sticky h1{font-size:clamp(3.5rem,15.5vw,16.875rem);left:var(--page-gutter);right:var(--page-gutter);top:29%;line-height:.95}
.title-row.second{padding-left:clamp(0rem,5vw,5rem);font-size:.94em}
.title-star{position:absolute;right:0;top:-.35em;margin:0;font-size:.38em}
.intro-topline{left:var(--page-gutter);right:var(--page-gutter);top:clamp(7rem,11vw,9rem);gap:1rem;font-size:clamp(.625rem,.55rem + .15vw,.75rem);line-height:1.7}
.intro-bottom{left:var(--page-gutter);right:var(--page-gutter);gap:1rem;bottom:clamp(1.5rem,4svh,3rem)}
.intro-statement p{font-size:clamp(.8125rem,.7rem + .2vw,1rem)}
.scroll-link{font-size:clamp(.6875rem,.6rem + .15vw,.8125rem);letter-spacing:.05em;gap:clamp(.5rem,2vw,2rem)}
.intro-note{font-size:.6875rem}.intro-statement .tiny-label{font-size:.6875rem}
.works-heading h2{font-size:clamp(2.75rem,1rem + 6vw,6.75rem);line-height:1.03}
.project-grid.has-many{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,4rem) clamp(1.25rem,3vw,3rem)}
.has-many .project-cover:nth-child(even){padding-top:clamp(0rem,8vw,8rem)}
.has-many .cover-title h3,.cover-title h3{font-size:clamp(2rem,4.8vw,5.5rem);line-height:1.05;overflow-wrap:normal}
.project-cover[data-project="norteamerica-pelicano"] .cover-title h3{font-size:clamp(1.5rem,3.2vw,3.625rem);line-height:1.12}
.cover-title{gap:.75rem;bottom:16%}.cover-title h3{min-width:0;flex:1}.project-open{width:clamp(2.5rem,4vw,3.625rem);height:clamp(2.5rem,4vw,3.625rem)}
.cover-top,.cover-meta{font-size:clamp(.625rem,.5rem + .2vw,.75rem);line-height:1.6;letter-spacing:.07em}
.cover-meta{gap:.75rem;flex-wrap:wrap;bottom:5%}
.project-grid.has-many.is-index{grid-template-columns:1fr}
.is-index .project-cover,.project-grid.has-many.is-index .project-cover:nth-child(even){grid-template-columns:clamp(4.5rem,12vw,9rem) minmax(0,1fr);padding-top:1.25rem;gap:clamp(1rem,3vw,2rem)}
.is-index .project-foot{font-size:clamp(1.1rem,1rem + 1.5vw,2rem)}
.is-index .project-foot>span:last-child{font-size:.75rem;line-height:1.6}
.manifesto-sticky{min-height:34rem;padding-inline:var(--page-gutter)}
.manifesto h2{font-size:clamp(1.65rem,5.8vw,5.7rem);line-height:1.2;letter-spacing:-.045em}
.manifesto-bottom{flex-wrap:wrap}.manifesto-bottom p{font-size:.9375rem}.manifesto-bottom a{font-size:.75rem;line-height:1.7;max-width:100%}
.outro-link{font-size:clamp(3.5rem,17vw,20rem)}
.has-many .archive-open{flex-wrap:wrap;gap:1.5rem}.has-many .archive-open p{font-size:clamp(1.75rem,3vw,2.75rem)}
.archive-open>a{font-size:.8125rem;line-height:1.7}.archive-end{font-size:.6875rem;line-height:1.7;flex-wrap:wrap}
/* Viewer controls occupy their own rows, so resizing never covers the image. */
.viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh}
.viewer .viewer-top,.viewer .viewer-bottom{position:relative;inset:auto;min-height:0;height:auto;padding:.75rem clamp(.75rem,3vw,2.5rem);pointer-events:auto;background:#070808;gap:clamp(.5rem,2vw,1.5rem)}
.viewer .viewer-stage{position:relative;inset:auto;width:100%;height:100%;min-height:0;padding:clamp(.5rem,2vw,1.25rem);overflow:hidden}
.viewer .viewer-stage.is-zoomed{overflow:auto}
.viewer .viewer-frame #viewer-image{max-width:none}
.viewer .viewer-info h2{font-size:clamp(1rem,.8rem + 1vw,1.6rem)!important;max-width:none;line-height:1.25}
.viewer .viewer-info p{font-size:clamp(.75rem,.65rem + .2vw,.875rem);max-width:none;line-height:1.5}
.viewer .viewer-info{min-width:0}.viewer .viewer-actions{gap:clamp(.5rem,2vw,1.5rem);flex-shrink:0}
.viewer button{min-height:2.75rem;min-width:2.75rem;font-size:clamp(.75rem,.65rem + .2vw,.9375rem)}
.viewer #viewer-count{font-size:.75rem}.viewer .viewer-top .eyebrow{font-size:.6875rem;max-width:14rem;letter-spacing:.07em}
@media(max-width:70rem){.brand-section,.brand-divider,.identity>span{display:none}.intro-note{display:none}.hero-scroll{display:none}.section-intro,.works-heading,.object-heading,.capture-heading{flex-wrap:wrap}.has-many .cover-title h3{font-size:clamp(2rem,5vw,4rem)}.project-cover[data-project="norteamerica-pelicano"] .cover-title h3{font-size:clamp(1.4rem,2.7vw,2.2rem)}}
@media(max-width:52rem){.section-intro,.object-heading,.capture-heading{flex-direction:column;align-items:flex-start}.intro-copy{max-width:60ch}.object-narrative,.capture-workflow{grid-template-columns:1fr}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.astro-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.astro-stat:nth-child(3){padding-left:0;border-left:0}.astro-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.works-controls{max-width:none}.works-heading{align-items:flex-start;flex-direction:column}.cover-meta>span:last-child{display:none}.header nav,.site-header nav{gap:.75rem}}
@media(max-width:40rem){.header,.site-header{flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;padding-block:.75rem}.header nav{font-size:.75rem;gap:.5rem}.header nav a{padding:.5rem .2rem}.detail-grid,.project-grid.has-many{grid-template-columns:1fr}.has-many .project-cover:nth-child(even){padding-top:0}.cover-frame{aspect-ratio:1}.has-many .cover-title h3{font-size:clamp(2rem,9vw,3.5rem)}.project-cover[data-project="norteamerica-pelicano"] .cover-title h3{font-size:clamp(1.6rem,6.7vw,2.6rem)}.intro-sticky h1{font-size:17vw;top:33%}.title-row.second{padding-left:0}.intro-bottom{align-items:end}.intro-statement{max-width:45%}.scroll-link>span:first-child{max-width:8.5rem;line-height:1.6}.intro-topline{top:7rem;flex-wrap:wrap}.intro-topline>span:first-child{max-width:65%}.intro-topline>span:last-child{max-width:30%;text-align:right}.works-controls{display:flex;align-items:flex-start;flex-wrap:wrap;gap:1rem}.works-controls p{font-size:.9375rem}.view-switch{margin:0}.view-switch button{min-height:2.5rem;font-size:.8125rem;padding:.5rem .75rem}.sky-myth{grid-template-columns:1fr}.sky-myth .eyebrow{font-size:.6875rem}.hero-image{inset:0}.hero h1,.page-norteamerica-pelicano .hero h1{font-size:clamp(2.6rem,9vw,3.6rem)}.hero-content{padding-top:9rem;padding-bottom:9rem}.hero-bottom{font-size:.6875rem}.hero-view{font-size:.75rem}.hero .eyebrow{font-size:.6875rem}.manifesto-bottom a{margin-left:0;flex-basis:100%}.manifesto-bottom p{font-size:.875rem}.has-many .archive-open{padding-left:0;min-height:0;display:grid;grid-template-columns:4rem minmax(0,1fr)}.has-many .archive-open .open-diagram{position:relative;top:auto;left:auto;width:4rem;height:4rem;grid-row:1/4}.has-many .archive-open p{margin:0}.has-many .archive-open .tiny-label{display:none}.has-many .archive-open>a{margin:0;grid-column:2}.has-many .archive-open .archive-caption{font-size:.875rem}.is-index .archive-open{display:none}.viewer .viewer-top .eyebrow{max-width:7rem;font-size:.625rem}.viewer .viewer-bottom{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;gap:.25rem .5rem}.viewer .viewer-info{grid-column:2;grid-row:1/3}.viewer #viewer-count{grid-column:3;grid-row:2;justify-self:center}.viewer #prev{grid-column:1;grid-row:1/3}.viewer #next{grid-column:3;grid-row:1}.viewer .viewer-info p{font-size:.75rem}}
@media(max-width:23rem){.site-header nav{gap:.625rem;font-size:.75rem}.site-header .identity img{width:3.5rem}.header nav{gap:.25rem;font-size:.6875rem}.header .brand img{width:3.5rem}.intro-topline{font-size:.625rem}.intro-statement .tiny-label{font-size:.625rem}.scroll-link{font-size:.625rem}.circle-arrow{width:2rem;height:2rem}.equipment-grid{grid-template-columns:1fr}.hero-bottom>span:first-child{max-width:52%}.viewer .viewer-top .eyebrow{display:none}.viewer .viewer-actions{justify-content:space-between;width:100%}}
@media(max-height:44rem) and (min-width:40.01rem){.intro-sticky{min-height:30rem}.intro-sticky h1{font-size:min(14vw,22svh);top:32%}.intro-topline{top:7rem}.intro-bottom{bottom:1.5rem}.manifesto-sticky{min-height:30rem}.manifesto h2{font-size:min(5.5vw,9svh)}.hero{min-height:34rem}.hero-content{padding-top:8rem;padding-bottom:7rem}.hero h1{font-size:clamp(3rem,6vw,6rem)}}
@media(max-height:34rem){.intro-scroll,.motion-off .intro-scroll{height:auto;min-height:30rem}.intro-sticky{position:relative;height:32rem;min-height:0}.manifesto{min-height:0}.manifesto-sticky{position:relative;height:auto;min-height:30rem}.viewer .viewer-top,.viewer .viewer-bottom{padding-block:.25rem}.viewer .viewer-info p{display:none}}
