
/* assets/v3/fonts.css */
/* Same Google Fonts files the approved site loaded (Inter 400-600, Space Grotesk 500/700, latin), self-hosted. Space Mono was requested but unused. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/v3/fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500 700;font-display:swap;src:url(/assets/v3/fonts/space-grotesk-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* assets/site.css */
:root{--paper:#FDFDFB;--ink:#12271C;--green:#177150;--accent:#3EBD8F;--line:#cdd5cf;--muted:#4d5d53;--display:'Space Grotesk',sans-serif;--body:Inter,sans-serif}*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.12;letter-spacing:-.035em}h1{font-size:clamp(40px,5vw,72px)}h2{font-size:clamp(28px,3.4vw,48px)}h3{font-size:24px}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:5px}a:hover{text-decoration:underline}button:active{opacity:.7}[hidden]{display:none!important}.skip-link{position:absolute;z-index:100;left:24px;top:-100px;padding:12px;background:var(--paper)}.skip-link:focus{top:12px}
.reference-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 4%;min-height:100px;z-index:20;background:var(--paper);border:0}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:500 28px/1.1 var(--display);white-space:nowrap}.brand img{width:52px;height:52px;object-fit:contain}.brand small{display:block;font:400 9px/1.5 var(--body);margin-top:6px;letter-spacing:.02em}#reference-nav{display:flex;align-items:center;gap:28px;font:500 13px/1.4 var(--body)}#reference-nav a{display:flex;align-items:center;min-height:44px;text-decoration:none}#reference-nav a:hover,#reference-nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}#reference-nav .quote{text-decoration:underline}.menu-trigger{display:none;background:none;border:0;color:inherit;min-width:48px;min-height:48px;padding:0}.menu-trigger i{display:block;width:30px;height:12px;border-block:1px solid currentColor}.menu-trigger>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.page-index .reference-header{position:absolute;inset:0 0 auto;background:none;color:var(--paper)}.reference-hero{position:relative;height:100svh;min-height:720px;isolation:isolate;color:var(--paper);background:var(--ink);border:0;margin:0;padding:0}.hero-media{display:block;position:absolute;inset:0;z-index:-3;overflow:hidden;border:0;margin:0;padding:0}.hero-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 52%;border:0;margin:0;padding:0}.image-shade{position:absolute;inset:0;z-index:-2;background:rgba(8,20,15,.44);pointer-events:none}.hero-message{position:absolute;left:13.5%;top:31%;width:700px;max-width:72%}.hero-message h1{font:500 48px/1.12 var(--display);letter-spacing:-.035em}.hero-lede{font:400 15px/1.45 var(--body);max-width:60ch;margin:12px 0 0}.primary-action{display:flex;align-items:center;justify-content:flex-end;gap:28px;margin-top:8px;min-height:44px;text-decoration:none;font:600 13px/1.4 var(--body);letter-spacing:.02em}.primary-action span{color:var(--accent);font-size:26px}.hero-caption{position:absolute;bottom:36px;left:4%;font:400 12px/1.5 var(--body);max-width:65ch}.hero-caption span{display:inline}#motion-toggle{position:absolute;bottom:24px;right:4%;border:0;padding:12px 0;background:none;min-height:44px;color:var(--paper);font:400 11px/1.4 var(--body);text-decoration:underline;text-underline-offset:5px}.reference-hero :focus-visible,.page-index .reference-header :focus-visible{outline-color:var(--paper)}
.page-opening{padding:80px 10% 72px}.intro-copy{max-width:1040px}.intro-copy>span,.section-label>span,.company-copy>span,.case-prose>span,.service-title>span,.chapter-heading>span{display:block;font-size:12px;letter-spacing:.04em;margin-bottom:24px;color:var(--green)}.intro-copy h1{max-width:20ch;margin-bottom:32px}.intro-copy p{max-width:65ch;margin-top:20px;font-size:18px;line-height:1.65}.featured-work,.project-index{padding:80px 10% 100px}.section-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.section-label>span{margin:0}.section-label a{font-size:13px}.project-index{padding-top:0}.project-card>a{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;text-decoration:none}.project-card img{width:100%;height:460px;object-fit:cover}.project-card>a>div{padding:40px 0 40px 56px}.project-card span{font-size:12px;color:var(--green)}.project-card h2{font-size:38px;margin:18px 0 20px}.project-card p{max-width:38ch}.project-card .text-link{display:inline-block;min-height:44px;margin-top:28px;text-decoration:underline}.project-card a:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
.services{padding:0 10%}.service-spread{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:64px 0;border-top:1px solid var(--line)}.service-title>span{display:inline-block;margin-right:20px;margin-bottom:20px}.service-title h2{font-size:36px;max-width:18ch}.service-detail>p{margin-bottom:24px}.service-detail>p:first-child{font-family:var(--display);font-size:23px;line-height:1.3}.service-detail>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;font-size:12px}.service-detail ul,.company-details ul{padding-left:20px}.service-detail li,.company-details li{padding:5px 0}.trades-chapter{margin-top:48px;padding:64px 10%;background:var(--ink);color:var(--paper)}.trades-chapter>span{font-size:12px;color:var(--accent)}.trades-chapter h2{margin:20px 0 28px}.trades-chapter b{color:var(--accent);margin:0 12px}.process-chapter{padding:80px 10%;display:grid;grid-template-columns:1fr 1fr;gap:80px}.editorial-row{padding:24px 0;border-top:1px solid var(--line)}.editorial-row h3{margin-bottom:12px}.contact-chapter{padding:64px 10%;background:#edf1ed}.contact-chapter h2{font-size:34px;max-width:30ch}.contact-chapter p{margin-top:20px;max-width:58ch}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:24px}.actions a{display:inline-flex;align-items:center;min-height:48px;color:var(--green);font-weight:500}.company-chapter{padding:64px 10%;display:grid;grid-template-columns:1.1fr 1fr;gap:100px;border-top:1px solid var(--line)}.company-copy h2{margin-bottom:28px}.company-copy p{margin-top:20px}.company-copy>div{display:flex;gap:24px;align-items:center;margin-top:32px;font-size:12px}.company-copy img{width:140px;height:auto}.company-details>div{display:flex;justify-content:space-between;font-size:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}.company-details li{margin-bottom:16px}
.case-hero{position:relative;height:780px;min-height:65svh}.case-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;margin:0;padding:0;border:0}.case-panel{position:absolute;left:8%;bottom:0;background:var(--paper);width:580px;padding:44px 48px 48px}.case-panel>a{display:block;font-size:12px;margin-bottom:30px}.case-panel>span{display:block;font-size:12px;color:var(--green);margin-bottom:18px}.case-panel h1{font-size:42px;margin-bottom:20px}.case-panel p{font-size:15px;max-width:44ch}.case-prose{padding:88px 10%;max-width:1080px}.case-prose h2{margin-bottom:24px}.case-prose p{max-width:56ch}.gallery-chapter{padding:0 10% 100px}.chapter-heading h2{margin-bottom:40px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.gallery-item{position:relative;text-decoration:none}.gallery-item img{width:100%;height:360px;object-fit:cover}.gallery-caption{display:block;font-size:12px;margin-top:12px;padding-right:26px}.image-action{position:absolute;right:0;bottom:0;color:var(--green)}.gallery-item:hover img{filter:brightness(.92)}
.contact-grid{padding:0 10% 88px;display:grid;grid-template-columns:1.15fr .8fr;gap:100px}#preview-notice{font-size:13px;background:#edf1ed;border-left:3px solid var(--green);padding:16px 20px;margin-bottom:28px}.f>div{margin-bottom:24px}.f label{display:block;font-size:13px;margin-bottom:8px}.f em{font-style:normal;color:var(--green)}input,select,textarea{width:100%;border:1px solid #809286;background:var(--paper);color:var(--ink);padding:12px;min-height:48px;border-radius:0}textarea{resize:vertical}input[type=hidden]{display:none}.f label span,.upl-hint,.hint{font-size:12px;color:var(--muted)}.upl-row{display:flex;gap:12px}.upl-btn{padding:8px 16px;border:1px solid var(--green);background:none;min-height:44px;color:var(--green)}.upl-hint,.hint{margin-top:12px}.arrow.big{padding:14px 24px;border:0;background:var(--green);color:var(--paper);min-height:48px}.upl-status{margin:12px 0;font-size:13px}.contact-details>div{border-top:1px solid var(--line);padding:24px 0}.contact-details>div>div:first-child{display:flex;justify-content:space-between;font-size:12px;color:var(--green)}dl{margin:24px 0 0}dt{font-size:12px;color:var(--muted);margin-top:20px}dd{margin:4px 0 0}dd a{overflow-wrap:anywhere}.legal-line{padding:28px 10%;font-size:12px;border-top:1px solid var(--line)}
footer{background:var(--ink);color:var(--paper);padding:64px 6% 24px}footer .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px}footer .footer-brand{font:500 30px var(--display);margin-bottom:16px}footer p{font-size:13px}footer h4{font-size:15px;margin-bottom:16px}footer ul{list-style:none;padding:0;margin:0}footer li{font-size:12px;margin-bottom:10px}footer a{display:inline-block;min-height:32px}footer img{width:120px;margin:16px 0}footer .parent-brand{font-size:10px;margin-top:24px}footer .copyright{font-size:10px;margin-top:40px;padding-top:20px;border-top:1px solid #ffffff33}
#gallery-dialog{width:min(1100px,95vw);max-height:95svh;padding:24px;border:0;background:var(--paper);color:var(--ink)}#gallery-dialog::backdrop{background:rgba(0,0,0,.8)}#gallery-dialog>div{display:flex;align-items:center;justify-content:space-between;gap:20px}#gallery-dialog button{min-height:44px;min-width:44px;background:none;border:0;color:var(--green)}#gallery-image{height:65svh;width:100%;object-fit:contain;margin:16px 0}#gallery-caption{font-size:13px;text-align:center}
@media(max-width:1100px){#reference-nav{gap:18px}#reference-nav .quote{display:none}.brand{font-size:24px}.contact-grid,.company-chapter{gap:48px}.service-spread,.process-chapter{gap:48px}.project-card>a>div{padding-left:32px}}
@media(max-width:800px){.reference-header{padding:20px 24px;min-height:88px;gap:12px}.brand{font-size:23px;gap:8px}.brand img{width:42px;height:42px}.brand small{font-size:7px;margin-top:4px}.menu-trigger{display:flex;align-items:center;justify-content:flex-end}#reference-nav{position:absolute;left:0;right:0;top:88px;flex-direction:column;align-items:stretch;gap:0;padding:20px 24px;background:var(--ink);color:var(--paper);font-size:16px}#reference-nav a{min-height:48px}#reference-nav .quote{display:flex}.js #reference-nav{display:none}.js #reference-nav.open{display:flex}.reference-header:has(#reference-nav.open){background:var(--ink);color:var(--paper)}.reference-hero{height:100svh;min-height:640px}.hero-message{left:24px;top:34%;width:calc(100% - 48px);max-width:none}.hero-message h1{font-size:31px;line-height:1.18;letter-spacing:-.04em}.hero-lede{font-size:14px;line-height:1.5;margin-top:12px;max-width:34ch}.primary-action{font-size:11px;gap:16px;white-space:normal}.primary-action span{font-size:24px}.hero-media img{object-position:50% 50%}.hero-caption{bottom:84px;left:24px;max-width:calc(100% - 48px);font-size:11px}#motion-toggle{right:24px;bottom:20px;font-size:10px}.page-opening{padding:48px 24px}.intro-copy h1{font-size:42px;line-height:1.12;margin-bottom:24px}.intro-copy p{font-size:16px}.featured-work,.project-index{padding:48px 24px}.project-index{padding-top:0}.project-card>a{display:block}.project-card img{height:300px}.project-card>a>div{padding:28px 0 0}.project-card h2{font-size:30px}.project-card .text-link{margin-top:20px}.services{padding:0 24px}.service-spread{display:block;padding:40px 0}.service-title h2{font-size:30px;max-width:none;margin-bottom:28px}.service-detail>p:first-child{font-size:21px}.service-detail>div{display:block}.service-detail>div span{display:block}.trades-chapter{padding:48px 24px;margin-top:0}.trades-chapter p{line-height:2}.trades-chapter b{margin:0 4px}.process-chapter,.company-chapter{padding:48px 24px;display:block}.company-details{margin-top:32px}.contact-chapter{padding:40px 24px}.contact-chapter h2{font-size:28px}.case-hero{height:auto;min-height:0}.case-cover{position:relative;height:380px;object-fit:cover}.case-panel{position:relative;width:auto;left:auto;bottom:auto;margin:-56px 24px 0;padding:28px 24px 0}.case-panel h1{font-size:34px}.case-panel>a{margin-bottom:24px}.case-panel p{font-size:14px}.case-prose{padding:56px 24px}.gallery-chapter{padding:0 24px 56px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.gallery-item img{height:220px}.gallery-caption{font-size:10px}.chapter-heading h2{font-size:30px}.contact-grid{padding:0 24px 48px;display:block}.contact-details{margin-top:48px}.legal-line{padding:24px}.contact-details dd{font-size:15px}footer{padding:48px 24px 24px}footer .footer-grid{grid-template-columns:1fr;gap:32px}#gallery-dialog{padding:16px}#gallery-image{height:58svh}#gallery-caption{font-size:11px}}
@media(max-width:359px){.brand{font-size:20px}.brand img{width:34px;height:34px}.hero-message h1{font-size:28px}.hero-lede{font-size:13px}.hero-caption{font-size:10px}.intro-copy h1{font-size:36px}.case-panel h1{font-size:29px}.gallery-grid{grid-template-columns:1fr}.gallery-item img{height:320px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-media img,.hero-message{opacity:1!important;transform:none!important}}
html:not(.js) .reference-header{position:relative;background:var(--ink);color:var(--paper)}html:not(.js) .menu-trigger,html:not(.js) #motion-toggle{display:none}@media(max-width:800px){html:not(.js) .reference-header{display:block}html:not(.js) #reference-nav{position:relative;top:auto;padding:16px 0 0;display:flex}}

.team-chapter{padding:64px 10%;display:grid;grid-template-columns:1fr 1fr;gap:80px}footer .footer-column:first-child>div:first-child{display:flex;align-items:center;gap:12px;margin-bottom:16px;font:500 28px var(--display)}footer .footer-column:first-child>div:first-child img{width:48px;margin:0}footer .footer-column:first-child>div:last-child{margin-top:20px;font-size:11px}@media(max-width:800px){.team-chapter{padding:48px 24px;display:block}}

/* Scoped four-project successor: existing Turner tokens retained. */
.scoped-card{padding-block:40px;border-top:1px solid var(--line)}.scoped-card img{width:auto;max-width:min(100%,var(--native-width));height:auto;max-height:460px;object-fit:contain;margin-inline:auto}.scoped-card p+p{margin-top:14px}.process-prose{padding-top:0;padding-bottom:56px}.page-process .intro-copy>a{display:block;margin-bottom:32px;font-size:12px}.documentary-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;margin-top:32px}.documentary-grid .gallery-item{justify-self:start;max-width:100%}.documentary-grid .gallery-item img{width:auto;max-width:min(100%,var(--native-width));height:auto;max-height:none;object-fit:contain}.retouched-case .documentary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.retouched-case .case-cover{object-fit:contain;object-position:right center;background:#edf1ed}.retouched-case .case-hero{height:720px}.retouched-case .case-panel{bottom:0}#gallery-image{width:auto;max-width:100%;height:auto;max-height:65svh;object-fit:contain;margin:16px auto}.page-index .image-shade{display:none}
@media(max-width:800px){.documentary-grid,.retouched-case .documentary-grid{grid-template-columns:1fr}.scoped-card{padding-block:32px}.scoped-card img{max-height:400px}.process-prose{padding-bottom:32px}.retouched-case .case-hero{height:auto}.retouched-case .case-cover{height:auto;max-height:560px;object-position:center}.retouched-case .case-panel{margin:0;padding:28px 24px 0}.gallery-chapter .chapter-heading p{font-size:14px}}

/* assets/curated-media.css */
/* Evaluator-selected media. Native proportions, no repeated captures. */
.photographic-opening{padding-top:clamp(28px,5vw,72px)}.opening-copy{padding:0 clamp(24px,5vw,80px) 32px;max-width:1100px}.opening-copy h1{font-size:clamp(38px,5.6vw,82px);line-height:1.04;letter-spacing:-.045em;margin:12px 0 22px}.opening-copy p{max-width:620px}.photographic-opening figure{margin:0}.photographic-opening figure>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.photographic-opening figcaption{padding:12px clamp(24px,5vw,80px);font-size:13px}.cdag-chapter>.chapter-heading{padding:60px clamp(24px,5vw,80px) 24px}.film-awaiting-final{position:relative!important;height:auto!important;min-height:0!important;aspect-ratio:3/2;background:transparent!important}.film-awaiting-final>[data-motion-poster]{position:relative!important;inset:auto!important;display:block!important;width:100%;height:auto!important;object-fit:cover!important;opacity:1!important}.film-awaiting-final .film-controls{display:none}.project-directory{display:grid;grid-template-columns:1fr 1fr;column-gap:48px}.project-directory a{display:flex;justify-content:space-between;padding:24px 0;border-bottom:1px solid #bac4bd;font-size:clamp(19px,2vw,27px)}.curated-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px!important;align-items:start}.curated-grid .gallery-item{max-width:none;width:100%;margin:0}.curated-grid img{display:block;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important}.curated-grid .gallery-caption{display:block;padding-top:12px}.project-card img[data-source-id]{width:100%!important;height:auto!important;max-height:70vh;object-fit:contain!important;background:transparent}.curated-gallery{padding-bottom:64px} @media(max-width:760px){.project-directory,.curated-grid{grid-template-columns:1fr}.opening-copy{padding-bottom:24px}.cdag-chapter>.chapter-heading{padding-top:36px}.project-card img[data-source-id]{max-height:none}}
.page-index .reference-header,.page-index .reference-header:focus-within{position:relative;inset:auto;background:var(--paper);color:var(--ink)}.page-opening>.case-panel{position:static;max-width:900px;width:auto;margin:0;padding:0;background:transparent}.photographic-opening img{max-width:100%}.curated-grid .gallery-caption{font-size:14px;line-height:1.45}
/* Keep the opening photographic: remove repeated brand eyebrow and excess pre-image space. */
.photographic-opening{padding-top:30px}.opening-copy{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end;max-width:none;padding-bottom:30px}.opening-copy>p:first-child{display:none}.opening-copy h1{font-size:clamp(38px,4.5vw,64px);margin:0;line-height:1.06}.opening-copy>p:last-child{max-width:34ch;margin:0 0 4px;justify-self:end}.gallery-item:focus-visible{outline:3px solid var(--green);outline-offset:6px}@media(max-width:760px){.opening-copy{grid-template-columns:1fr;gap:18px;padding-bottom:24px}.opening-copy>p:last-child{justify-self:start}.photographic-opening{padding-top:20px}.opening-copy h1{font-size:38px}}

/* Independent review: keep gallery actions on one line on narrow screens. */
#gallery-prev,#gallery-next,#gallery-close{white-space:nowrap;flex-shrink:0}#gallery-caption{min-width:0;overflow-wrap:anywhere}@media(max-width:600px){#gallery-dialog>div:last-child{display:grid;grid-template-columns:auto 1fr auto;gap:12px}#gallery-caption{grid-row:2;grid-column:1/-1}#gallery-next{grid-column:3}}

/* Preserve the user-approved opening, retain the verified current galleries. */
.page-index .reference-header,.page-index .reference-header:focus-within{position:absolute;inset:0 0 auto;color:var(--paper);background:linear-gradient(#12271cee,#12271c00);z-index:40}.opening-copy h2{font-size:clamp(38px,4.5vw,64px);margin:0;line-height:1.06}@media(max-width:760px){.opening-copy h2{font-size:38px}}

.film-caption h2{font-size:clamp(26px,3vw,44px);line-height:1.15}.scroll-film [hidden]{display:none!important}
/* Chapter captions remain readable over light tile and windows. */
[data-film-chapter]::after{content:"";position:absolute;inset:45% 0 0;pointer-events:none;background:linear-gradient(transparent,rgba(7,20,14,.72));z-index:1}
[data-film-chapter] .film-caption,[data-film-chapter] .film-controls{z-index:2}
@media(max-width:760px){
 [data-film-chapter^="MVI_"]{height:auto;min-height:0;padding:0 0 18px}
 [data-film-chapter^="MVI_"]>video,[data-film-chapter^="MVI_"]>[data-motion-poster]{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
 [data-film-chapter^="MVI_"]::after{display:none}
 [data-film-chapter^="MVI_"] .film-caption{position:relative;inset:auto;max-width:none;padding:22px 24px 16px;text-shadow:none}
 [data-film-chapter^="MVI_"] .film-caption h2{font-size:28px;margin:0}
 [data-film-chapter^="MVI_"] .film-controls{position:relative;inset:auto;padding:0 24px;text-align:left}
 [data-film-chapter^="MVI_"] .film-controls p:empty{display:none}
}

/* Reserve the viewer stage before full-resolution image bytes arrive. */
#gallery-image{display:block;width:100%;height:65svh;max-height:65svh;object-fit:contain;margin:16px auto}@media(max-width:800px){#gallery-image{height:58svh;max-height:58svh}}

.story-closing figure>img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

/* assets/mobile-layout.css */
/* Phone composition: image-led stages, a shared text edge and room for controls. */
.mobile-chapter-break{display:none}
@media(max-width:800px){
 :root{--mobile-gutter:22px}
 .reference-header{min-height:72px;padding:14px var(--mobile-gutter);gap:12px}
 .brand{font-size:22px;gap:9px;min-width:0}
 .brand img{width:36px;height:36px}
 .brand small{font-size:7px}
 .menu-trigger{gap:10px;justify-content:center;min-width:72px;min-height:44px}
 .menu-trigger>span{position:static;width:auto;height:auto;overflow:visible;clip-path:none;font-size:12px}
 .menu-trigger i{width:19px;height:10px}
 #reference-nav{top:100%;padding:12px var(--mobile-gutter) 24px;max-height:calc(100svh - 72px);overflow-y:auto}
 #reference-nav a{padding-block:6px;min-height:48px}
 .page-opening{padding:36px var(--mobile-gutter) 40px}
 .intro-copy h1{font-size:clamp(34px,9.5vw,42px);max-width:17ch;line-height:1.08;text-wrap:balance}
 .intro-copy p{line-height:1.65}
 .page-opening>.case-panel h1{font-size:clamp(32px,9vw,40px);line-height:1.12}
 .featured-work,.project-index,.services,.gallery-chapter,.contact-grid{padding-inline:var(--mobile-gutter)}
 .section-label{align-items:flex-start;gap:16px;flex-wrap:wrap}
 .section-label a{display:inline-flex;align-items:center;min-height:44px}
 .project-card h2{font-size:29px;line-height:1.15;margin:14px 0}
 .scoped-card{padding-block:28px}
 .project-card>a>div{padding-top:22px}
 .project-card .text-link{margin-top:16px}
 .service-spread{padding-block:32px}
 .service-title h2{margin-bottom:20px}
 .process-chapter,.company-chapter,.team-chapter{padding:40px var(--mobile-gutter)}
 .process-chapter>div+div,.team-chapter>div+div{margin-top:28px}
 .contact-chapter{padding:36px var(--mobile-gutter)}
 .actions{gap:12px 24px}
 .curated-grid{gap:30px!important}
 .curated-grid .gallery-caption{margin-top:0;padding-top:12px;font-size:14px}
 .chapter-heading h2{margin-bottom:24px}
 .f>div{margin-bottom:22px}
 .f label{font-size:14px;margin-bottom:8px}
 .f input,.f select,.f textarea{font-size:16px;min-height:50px}
 .upl-row{flex-wrap:wrap;gap:12px}
 .contact-details{margin-top:40px}
 #gallery-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:14px}
 #gallery-image{height:56svh;max-height:56svh;margin-block:12px}
 #gallery-caption{font-size:13px;line-height:1.5}
 footer{padding:40px var(--mobile-gutter) calc(28px + env(safe-area-inset-bottom))}
 footer .footer-grid{gap:28px}
 footer a{min-height:44px;align-content:center}
 footer li{margin-bottom:0}
 footer .copyright{margin-top:28px}
}
@media(max-width:760px){
 html{scroll-padding-top:0}
 .film-skip,.persistent-wa{bottom:calc(14px + env(safe-area-inset-bottom));min-height:44px;padding:11px 14px;font-size:12px;border:1px solid #ffffff30}
 .film-skip{left:var(--mobile-gutter);background:#14271f}
 .persistent-wa{right:var(--mobile-gutter)}
 .scroll-film:not([data-film-chapter^="MVI_"]){display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--mobile-gutter) calc(88px + env(safe-area-inset-bottom));gap:16px}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption{position:relative;inset:auto;max-width:100%;text-shadow:none}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption p{font-size:11px;line-height:1.5;margin:0 0 10px;max-width:32ch}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h1,
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h2{font-size:clamp(29px,8vw,34px);line-height:1.08;max-width:16ch;text-wrap:balance}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h2+p{margin:12px 0 0;max-width:35ch;font-size:12px;line-height:1.5}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-controls{position:relative;inset:auto;text-align:left}
 .film-controls button{min-height:44px;padding:10px 16px;font-size:13px;background:#14271fe8}
 .film-controls p{margin-top:8px;font-size:12px;line-height:1.5;padding-inline:0}
 .film-context-mobile{padding:24px var(--mobile-gutter) 32px;background:#f2f3ef;color:var(--ink)}
 .film-context-mobile figcaption{padding:14px 0 0;font-size:13px;line-height:1.5;max-width:29ch}
 #construccion-por-capas>video,#construccion-por-capas>[data-motion-poster]{height:calc(100% - 280px);top:20px;object-fit:contain}
 #construccion-por-capas::after{inset:55% 0 0;background:linear-gradient(transparent,#101a15 30%)}
 .photo-story-active figure{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;padding:24px var(--mobile-gutter) calc(88px + env(safe-area-inset-bottom));gap:22px}
 .photo-story-active img{grid-column:1;grid-row:1;height:100%;width:100%;min-height:0;object-fit:contain;margin:0}
 .photo-story-active figcaption{position:static;grid-column:1;grid-row:2;padding:0;margin:0;align-self:auto}
 .photo-story h2{max-width:18ch;font-size:30px;line-height:1.12;margin:8px 0 12px;text-wrap:balance}
 .photo-story small{font-size:10px;line-height:1.5}
 .mobile-chapter-break{display:block;background:var(--paper);color:var(--ink);padding:40px var(--mobile-gutter) 32px}
 .mobile-chapter-break p{font-size:11px;letter-spacing:.04em;color:var(--green);margin-bottom:14px}
 .mobile-chapter-break h2{font-size:32px;line-height:1.12;max-width:17ch;text-wrap:balance}
 .mobile-chapter-break a{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-size:13px;color:var(--green)}
 [data-film-chapter^="MVI_"]{padding-bottom:30px;margin-bottom:0;border-bottom:1px solid #ffffff20}
 [data-film-chapter^="MVI_"] .film-caption{padding:22px var(--mobile-gutter) 18px}
 [data-film-chapter^="MVI_"] .film-caption p{font-size:11px;margin-bottom:10px}
 [data-film-chapter^="MVI_"] .film-caption h2{font-size:27px;max-width:20ch;line-height:1.15}
 [data-film-chapter^="MVI_"] .film-controls{padding-inline:var(--mobile-gutter)}
 .opening-copy{padding:12px var(--mobile-gutter) 28px;gap:18px}
 .opening-copy h2{font-size:34px;line-height:1.12}
 .project-directory a{font-size:22px;line-height:1.3;padding-block:22px;gap:20px}
 .page-index footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
/* Short phone landscape: keep the entire stage and its actions in view. */
@media(max-width:900px) and (max-height:500px){
 :root{--mobile-gutter:22px}
 html{scroll-padding-top:0}
 .reference-header{min-height:64px;padding:10px var(--mobile-gutter);gap:12px}
 .brand{font-size:22px;gap:9px;min-width:0}.brand img{width:36px;height:36px}.brand small{font-size:7px}
 .menu-trigger{display:flex;align-items:center;justify-content:center;gap:10px;min-width:72px;min-height:44px}
 .menu-trigger>span{position:static;width:auto;height:auto;overflow:visible;clip-path:none;font-size:12px}.menu-trigger i{width:19px;height:10px}
 #reference-nav{position:absolute;inset:100% 0 auto;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--mobile-gutter) 20px;background:var(--ink);color:var(--paper);font-size:16px;max-height:calc(100svh - 64px);overflow-y:auto}
 #reference-nav a{min-height:44px}#reference-nav .quote{display:flex}.js #reference-nav{display:none}.js #reference-nav.open{display:flex}
 .film-skip,.persistent-wa{bottom:calc(12px + env(safe-area-inset-bottom));min-height:44px;padding:10px 14px;font-size:12px}
 .film-skip{left:var(--mobile-gutter)}.persistent-wa{right:var(--mobile-gutter)}
 .scroll-film,.scroll-film:not([data-film-chapter^="MVI_"]){height:100svh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:64px var(--mobile-gutter) calc(72px + env(safe-area-inset-bottom));gap:12px}
 .scroll-film>video,.scroll-film>[data-motion-poster],#construccion-por-capas>video,#construccion-por-capas>[data-motion-poster]{position:absolute;inset:0 auto 0 0;width:54%;height:100%;aspect-ratio:auto;object-fit:contain}
 [data-film-chapter]::after{display:none}
 .scroll-film .film-caption,.scroll-film:not([data-film-chapter^="MVI_"]) .film-caption{position:relative;inset:auto;width:42%;max-width:none;padding:0;text-shadow:none}
 .scroll-film .film-caption h1,.scroll-film .film-caption h2,.scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h1,.scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h2{font-size:24px;line-height:1.12;max-width:none;margin:0}
 .scroll-film .film-caption p,.scroll-film:not([data-film-chapter^="MVI_"]) .film-caption p{font-size:11px;line-height:1.35;margin:0 0 8px;max-width:none}
 .scroll-film:not([data-film-chapter^="MVI_"]) .film-caption h2+p{font-size:11px;line-height:1.4;margin:8px 0 0}
 .scroll-film .film-controls,.scroll-film:not([data-film-chapter^="MVI_"]) .film-controls{position:relative;inset:auto;width:42%;padding:0;text-align:left}
 .film-controls button{min-height:44px;padding:8px 12px;font-size:12px}.film-controls p{margin:4px 0 0;font-size:11px}
 .photo-story-active{height:100svh;min-height:100svh}
 .photo-story-active figure{display:grid;grid-template-columns:minmax(0,54fr) minmax(0,42fr);grid-template-rows:minmax(0,1fr);gap:24px;padding:20px var(--mobile-gutter) calc(72px + env(safe-area-inset-bottom))}
 .photo-story-active img{grid-column:1;grid-row:1;height:100%;width:100%;min-height:0;object-fit:contain;margin:0}
 .photo-story-active figcaption{position:static;grid-column:2;grid-row:1;padding:0;margin:0;align-self:center}
 .photo-story h2{font-size:24px;line-height:1.12;max-width:none}.photo-story figcaption p{font-size:11px}.photo-story small{font-size:10px}
 footer a{min-height:44px;align-content:center}
}

/* assets/pages-refinement.css */
/* CR3 inner pages: photographed work, readable copy and native image proportions. */
.about-opening{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:7vw;align-items:center;padding:48px 8% 72px}
.about-copy h1{font-size:clamp(42px,4.7vw,68px);max-width:12ch;margin:0 0 28px;line-height:1.06}
.page-kicker{display:block;font-size:14px;color:var(--green);margin-bottom:20px}
.about-copy p{max-width:51ch;margin-top:20px;font-size:17px}
.inline-company{font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.about-copy .text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:26px;color:var(--green)}
.work-photo{margin:0}.work-photo img{display:block;width:100%;height:auto;object-fit:contain}.work-photo figcaption{font-size:12px;line-height:1.5;color:var(--muted);padding-top:12px}
.about-opening .work-photo{max-width:450px;justify-self:end;width:100%}
.about-commitments{padding:72px 8%;background:#edf1ed}.about-commitments>h2{max-width:20ch;margin-bottom:42px;font-size:clamp(32px,3.4vw,46px)}
.commitment-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.commitment-list h3{font-size:25px;margin-bottom:16px}.commitment-list p{max-width:35ch}
.company-backing{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8vw;align-items:center;padding:80px 8%}.company-backing h2{max-width:18ch;margin-bottom:24px}.company-backing p{max-width:55ch}
.company-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:32px;min-height:220px;background:#f2f3ef;color:var(--green)}.company-link img{width:min(100%,240px);height:auto}.company-link span{min-height:44px;align-content:center}
.page-servicios .page-opening{padding:56px 8% 36px}.page-servicios .intro-copy{max-width:1000px}.page-servicios .intro-copy h1{font-size:clamp(42px,5vw,68px);max-width:18ch}.page-servicios .intro-copy p{max-width:57ch}
.service-jump{display:flex;flex-wrap:wrap;gap:12px 30px;padding:0 8% 42px}.service-jump a{display:inline-flex;min-height:44px;align-items:center;color:var(--green);text-decoration:underline}
.page-servicios .services{padding:0 8%}.service-visual{scroll-margin-top:24px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:6vw;align-items:start;padding-block:64px}
.service-visual .service-title>span{font-size:14px;margin-bottom:18px}.service-visual .service-title h2{font-size:clamp(30px,3vw,40px);max-width:20ch;margin-bottom:24px}
.service-visual .service-detail>p:first-child{font-family:var(--body);font-size:17px;line-height:1.65;margin-bottom:16px}.service-visual .service-detail>p{max-width:50ch}
.service-visual .service-detail>div{display:none}.service-visual .service-detail ul{padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:20px 0 0}.service-visual .service-detail li{padding:0;font-size:14px;color:var(--muted)}
.service-visual .service-detail li:before{content:'·';margin-right:8px;color:var(--green)}
.service-visual .work-photo{padding-top:6px}.engineering-service{padding-block:42px 58px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.page-process .intro-copy h1.renamed-project{font-size:clamp(34px,4.6vw,64px);max-width:23ch;text-wrap:balance}
.project-card h2.renamed-project{font-size:clamp(28px,2.8vw,38px);text-wrap:balance}.project-directory .renamed-project{max-width:26ch}
@media(max-width:800px){
 .about-opening{grid-template-columns:1fr;gap:32px;padding:34px 22px 44px}.about-copy h1{font-size:44px;max-width:12ch;margin-bottom:22px}.about-copy p{font-size:16px;margin-top:16px}.about-copy .text-link{margin-top:18px}.about-opening .work-photo{max-width:100%;justify-self:stretch}.about-opening .work-photo img{max-height:570px;object-fit:contain;object-position:left}
 .about-commitments{padding:42px 22px}.about-commitments>h2{font-size:34px;margin-bottom:30px}.commitment-list{grid-template-columns:1fr;gap:28px}.commitment-list h3{font-size:24px;margin-bottom:10px}.commitment-list p{max-width:none}
 .company-backing{grid-template-columns:1fr;gap:28px;padding:44px 22px}.company-backing h2{font-size:34px}.company-link{min-height:190px;padding:24px;gap:16px}.company-link img{width:200px}
 .page-servicios .page-opening{padding:34px 22px 24px}.page-servicios .intro-copy h1{font-size:42px;max-width:16ch;margin-bottom:22px}.service-jump{padding:0 22px 24px;gap:2px 20px;font-size:14px}.page-servicios .services{padding:0 22px}
 .service-visual{display:flex;flex-direction:column;gap:24px;padding-block:34px}.service-visual .service-title h2{font-size:31px;max-width:none;margin-bottom:20px}.service-visual .service-title>span{margin-bottom:14px}.service-visual .service-detail>p{margin-bottom:14px}.service-visual .work-photo{width:100%;padding:0}.engineering-service{gap:0}.engineering-service .service-title h2{margin-bottom:20px}
 .page-process .intro-copy h1.renamed-project{font-size:36px;max-width:none}.project-card h2.renamed-project{font-size:29px}.project-directory .renamed-project{max-width:23ch}
}
@media(prefers-reduced-motion:reduce){.service-jump a{scroll-behavior:auto}}
.page-servicios .page-opening{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.8fr);gap:6vw;align-items:center;padding-bottom:28px}.service-opening-photo{width:100%;max-width:310px;justify-self:end}.page-servicios .intro-copy h1{font-size:clamp(40px,4.7vw,64px)}
@media(max-width:800px){.page-servicios .page-opening{grid-template-columns:1fr;gap:28px;padding-bottom:24px}.service-opening-photo{max-width:none;justify-self:stretch}.service-opening-photo img{width:100%;height:auto;max-height:460px;object-fit:contain;object-position:left}.page-servicios .intro-copy h1{font-size:42px}}
@media(max-width:800px){.service-opening-photo img,.about-opening .work-photo img{max-height:none}}

/* assets/contact-navigation.css */
#equipo,#cot{scroll-margin-top:110px}#equipo:focus-visible,#cot:focus-visible{outline:2px solid var(--green);outline-offset:8px}.contact-team{margin:0 10% 64px;padding:40px 0;border-top:1px solid #c8d0c9;border-bottom:1px solid #c8d0c9;display:grid;grid-template-columns:1fr 1.15fr;gap:64px}.team-intro>span{font-size:13px;color:var(--green)}.team-intro h2,.quote-title{font-size:clamp(28px,3vw,40px);line-height:1.15;margin:16px 0 24px}.team-intro p{max-width:42ch;line-height:1.6}.team-form-link{display:inline-flex;align-items:center;min-height:48px;color:var(--green);text-decoration:underline;margin-top:12px}.team-people{display:grid;grid-template-columns:1fr 1fr;gap:28px}.team-people h3{font-size:25px;margin:16px 0}.team-people a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere;color:var(--green);text-decoration:underline}.quote-title{margin-top:0}@media(max-width:800px){.contact-team{margin:0 22px 40px;padding:28px 0;grid-template-columns:1fr;gap:24px}.team-people{grid-template-columns:1fr;gap:20px}.team-people article+article{border-top:1px solid #c8d0c9;padding-top:12px}#equipo,#cot{scroll-margin-top:100px}}#equipo:focus:not(:focus-visible),#cot:focus:not(:focus-visible){outline:none}
.portfolio-download{display:inline-flex;align-items:center;min-height:48px;margin-top:20px;text-decoration:underline;text-underline-offset:5px;font-size:15px;line-height:1.5;color:inherit}

/* assets/final-portfolio.css */
.approved-organization{padding:48px 8%;background:var(--paper)}.approved-organization h2{font-size:clamp(28px,3vw,42px);margin:0 0 28px}.approved-organization figure{margin:0}.approved-organization img{display:block;width:100%;height:auto}.approved-organization figcaption{font-size:13px;line-height:1.5;margin-top:14px;color:var(--green)}.final-portfolio-links{display:flex;flex-wrap:wrap;gap:8px 28px}.portfolio-font-note{font-size:13px!important;line-height:1.5!important;margin-top:14px!important}.portfolio-font-note a{text-decoration:underline}@media(max-width:800px){.approved-organization{padding:32px 22px}.final-portfolio-links{display:grid;gap:0}.final-portfolio-links .portfolio-download{margin-top:8px}}
/* assets/gallery-fit.css */
/* Keep gallery navigation visible on short landscape screens. */
@media (max-height: 500px) {
  #gallery-dialog[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 6px;
    height: calc(100svh - 20px);
    max-height: calc(100svh - 20px);
    padding: 12px;
  }
  #gallery-image {
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    margin: 0;
    object-fit: contain;
  }
  #gallery-caption { margin: 0; line-height: 1.3; }
}

/* assets/v3/smooth.css */
/* Enhancement-only additions. No layout, size, color or typography changes. */
/* The "Cargando recorrido" status line appeared and disappeared in normal flow, nudging the caption 26px (layout shift).
   It now sits in the same spot directly under the button without pushing the caption. */
[data-film-chapter] .film-controls [data-motion-status]{position:absolute;left:0;right:0;top:100%}
/* Pinned sections: CSS sticky inside a track (set up by the film engine) instead of GSAP fixed pins.
   Same position on screen; no layout-shift entries; scrolling stays on the compositor. */
.v3-pin-track{position:relative}
.v3-pin-track.v3-pinned>[data-film-chapter],.v3-pin-track.v3-pinned>.photo-story{position:sticky;top:0}
/* Reserve each pinned track's scripted height before the script runs (no late reflow, offscreen photos stay lazy). */
@media (prefers-reduced-motion:no-preference){.js .v3-pin-track[style*="--pin"]{min-height:calc(max(100svh,520px) + var(--pin))}}
@media (prefers-reduced-motion:no-preference) and (max-width:760px){.js .v3-pin-track[style*="--pin"]{min-height:calc(max(100svh,520px) + var(--pin-m))}}
/* Film status line ("Cargando recorrido…") stays hidden until the visitor first scrolls/touches and films start loading;
   idle, it read as a stuck loader. Absolute-positioned, so showing it later causes no shift. */
.js:not(.v3-started) [data-film-chapter] [data-motion-status]{visibility:hidden}
