/* Calm surfaces, central typography and room to land at the end of the page. */
html.lenis{scroll-behavior:auto!important}
.footer{min-height:100svh;margin-top:clamp(80px,14vh,180px);padding-top:clamp(130px,22vh,260px);padding-bottom:clamp(95px,15vh,180px);display:flex;flex-direction:column;justify-content:center;border-top:0}
.footer-intro{text-align:center;width:100%;max-width:1380px;margin:0 auto}.footer-intro>p{margin-bottom:36px}.footer .footer-cta{display:inline-flex;justify-content:center;align-items:center;width:auto;max-width:100%;font-size:clamp(50px,10vw,150px);line-height:1.25;letter-spacing:-.02em;gap:0}
.footer-line{position:relative;display:inline-block;transform-origin:center;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.footer-line:after{content:'';position:absolute;left:0;right:0;bottom:.02em;height:.04em;background:currentColor;transform:scaleX(0);transform-origin:0 50%;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.footer-cta:hover .footer-line:after,.footer-cta:focus-visible .footer-line:after{transform:scaleX(1)}.footer-cta:hover .footer-line,.footer-cta:focus-visible .footer-line{transform:translateY(-.015em)}
.footer-details,.footer-base{width:100%;max-width:1040px;margin-left:auto;margin-right:auto}.footer-details{padding-top:75px;padding-bottom:45px}.footer-base{padding-bottom:0}#contact-form{scroll-margin-top:105px}
/* The secondary pages have a clean backdrop. No hidden animation work is needed. */
body:not([data-page=home]) .page-particles,body:not([data-page=home]) .scene-ink{display:none}
/* Service backgrounds stay full bleed; each reading area sits on the same axis. */
.services-head{display:block;width:calc(100% - var(--gutter)*2);max-width:1040px;margin:0 auto;text-align:center;padding:65px 0 50px}.services-head .display-title{font-size:clamp(62px,7.5vw,115px);line-height:1.14}.services-head>.label{margin-bottom:25px}
.segment-summary{width:100%;max-width:1040px;margin:0 auto;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,95px);padding:75px 48px 75px 0;min-height:250px}.segment-summary h2{font-size:clamp(56px,6.2vw,90px)}.segment-summary p{font-size:18px;line-height:1.75;max-width:440px}.segment-toggle{right:0}.segment-panel-inner{max-width:1040px;margin:0 auto;gap:clamp(40px,6vw,95px)}
/* Photographs orbit a central story, large enough to see the people in them. */
.family-introduction,.family-editorial{max-width:1600px;width:100%;padding-left:clamp(25px,3.5vw,75px);padding-right:clamp(25px,3.5vw,75px);grid-template-columns:minmax(0,1fr) minmax(350px,1.55fr) minmax(0,1fr);gap:clamp(24px,3vw,60px);position:relative;align-items:center}
.family-introduction{padding-top:50px;padding-bottom:155px;min-height:560px}.family-introduction>div{grid-column:2;grid-row:1;position:relative;z-index:2}.family-introduction .lead{font-size:clamp(24px,2.55vw,38px);line-height:1.45}.family-introduction p:not(.lead){font-size:15px;line-height:1.8}.family-float{--float-angle:-5deg;--float-y:0px;width:100%;max-width:370px!important;margin:0;position:relative;transform:translate3d(0,var(--float-y),0) rotate(var(--float-angle));filter:drop-shadow(0 16px 22px #00000013)}.family-float img{width:100%;height:auto;display:block}.family-introduction>.float-left{grid-column:1;grid-row:1;justify-self:start;margin-top:95px;width:112%}.family-introduction>.float-right{--float-angle:5deg;grid-column:3;grid-row:1;justify-self:end;margin-top:-90px;width:108%}
.family-editorial{grid-template-rows:auto auto;row-gap:38px;padding-top:30px;padding-bottom:150px}.family-side{display:block;grid-column:2;grid-row:1}.family-editorial .section-heading{font-size:clamp(40px,4.7vw,70px)}.family-narrative{grid-column:2;grid-row:2;z-index:2}.family-narrative>p.lead{font-size:clamp(23px,2.15vw,32px)}.family-narrative>p{font-size:15px;line-height:1.85}.family-editorial>.float-left{--float-angle:4deg;grid-column:1;grid-row:1/3;align-self:start;justify-self:start;width:110%;margin-top:100px}.family-editorial>.float-right{--float-angle:-5deg;grid-column:3;grid-row:2;align-self:center;justify-self:end;width:110%;margin-top:100px}
.backstage-track{min-height:485px}.backstage-shot{width:clamp(250px,29vw,410px)}.backstage-shot img{max-height:360px}.backstage-shot.shot-1{width:clamp(210px,23vw,335px)}.backstage-shot.shot-2{width:clamp(280px,33vw,455px)}.backstage-shot.shot-3{width:clamp(240px,27vw,365px)}.backstage-shot.shot-4{width:clamp(210px,23vw,335px)}
@media(min-width:900px) and (max-width:1100px){.family-introduction,.family-editorial{grid-template-columns:minmax(0,1fr) minmax(330px,1.6fr) minmax(0,1fr);gap:24px}.family-introduction>.float-left,.family-introduction>.float-right,.family-editorial>.float-left,.family-editorial>.float-right{width:112%}}
@media(max-width:899px){.family-introduction,.family-editorial{grid-template-columns:1fr 1fr;max-width:760px;gap:38px 25px;padding-left:30px;padding-right:30px}.family-introduction>div{grid-column:1/-1;grid-row:1;max-width:580px;justify-self:center}.family-introduction{padding-top:15px;padding-bottom:90px}.family-introduction>.float-left{grid-column:1;grid-row:2;margin-top:45px;width:100%}.family-introduction>.float-right{grid-column:2;grid-row:2;margin-top:-35px;width:100%}.family-editorial{padding-top:10px;padding-bottom:90px}.family-side{grid-column:1/-1;grid-row:1}.family-narrative{grid-column:1/-1;grid-row:2;max-width:580px;justify-self:center}.family-editorial>.float-left{grid-column:1;grid-row:3;margin-top:25px;width:100%}.family-editorial>.float-right{grid-column:2;grid-row:3;margin-top:-30px;width:100%}}
@media(max-width:767px){.footer{min-height:95svh;margin-top:85px;padding-top:130px;padding-bottom:100px}.footer .footer-cta{font-size:11.2vw}.footer-intro>p{font-size:12px;margin-bottom:27px}.footer-details{padding-top:65px;padding-bottom:35px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px}.footer-details>div:nth-child(2){text-align:center}.footer-details>div:last-child{display:block}.footer-base{justify-content:center;text-align:center;gap:14px}.footer-base details{margin-left:0}.services-head{padding-top:40px;padding-bottom:32px}.services-head .display-title{font-size:12.7vw}.segment-summary{padding:40px 30px 40px 0;grid-template-columns:1fr;gap:20px;max-width:550px}.segment-summary h2{font-size:13vw}.segment-summary p{font-size:15px;max-width:100%}.segment-toggle{top:55px}.segment-panel-inner{max-width:550px;gap:30px}.backstage-track{min-height:400px;gap:35px}.backstage-shot{width:76vw}.backstage-shot img{max-height:290px}.backstage-shot.shot-1,.backstage-shot.shot-4{width:63vw}.backstage-shot.shot-2{width:83vw}.backstage-shot.shot-3{width:73vw}}
@media(max-width:520px){.family-introduction,.family-editorial{grid-template-columns:1fr;gap:35px;padding-left:28px;padding-right:28px}.family-introduction>.float-left,.family-editorial>.float-left{grid-column:1;width:88%;justify-self:start;margin-top:8px}.family-introduction>.float-right,.family-editorial>.float-right{grid-column:1;width:83%;justify-self:end;margin-top:-10px}.family-introduction>.float-left{grid-row:2}.family-introduction>.float-right{grid-row:3}.family-editorial>.float-left{grid-row:3}.family-editorial>.float-right{grid-row:4}.family-float{max-width:360px!important}.family-introduction .lead{font-size:24px}}
@media(prefers-reduced-motion:reduce){.family-float{transform:rotate(var(--float-angle))}.footer-line,.footer-line:after{transition:none}.footer-cta:hover .footer-line{transform:none}}
@media(min-width:900px){.family-introduction>.float-left,.family-introduction>.float-right,.family-editorial>.float-left,.family-editorial>.float-right{width:100%}}
/* About: one consistent reading size and an uninterrupted film strip. */
.family-introduction .lead,.family-introduction p:not(.lead){font-size:clamp(16px,1.3vw,19px);line-height:1.8;font-weight:400}
.backstage-scroll{scroll-snap-type:none;scroll-behavior:auto;scrollbar-width:none}
.backstage-scroll::-webkit-scrollbar{display:none}
.backstage-shot{scroll-snap-align:none}
.case-video-hero{background:#000}.case-video-hero video{display:block;width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:contain}
.case-head:has(+ .case-video-hero) .case-title{font-size:clamp(44px,7vw,110px);max-width:1200px}
/* v9: settled first paint, lighter motion, and a quieter editorial scale. */
.identity-v9,.identity-v9 *{animation-play-state:paused!important}
.bb-intro-ready .identity-v9,.bb-intro-ready .identity-v9 *{animation-play-state:running!important}
.identity-v9{animation-name:identityV9Exit;clip-path:none;will-change:transform}
@keyframes identityV9Exit{to{transform:translate3d(0,-100%,0);visibility:hidden}}
.headline-slot{transition:background-color .2s,color .2s}
.header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.case-float-nav{backdrop-filter:blur(10px)}
.project-banner{contain:layout paint}.banner-panel{transition:flex .28s cubic-bezier(.23,1,.32,1)}
.banner-image{transition:transform .45s cubic-bezier(.23,1,.32,1)}
.project-banner.has-active .banner-panel:not(.is-active) .banner-image{filter:none}
.js-motion .work-title.reveal{clip-path:none;transform:translateY(35px);transition:transform .65s cubic-bezier(.23,1,.32,1),opacity .5s}
.js-motion .work-title.reveal.in-view{clip-path:none;transform:none}
.proud-word{transition:transform .5s cubic-bezier(.23,1,.32,1)}
.work-title:hover .proud-word,.proud-word:focus-visible{letter-spacing:inherit}
.family-float{filter:none;box-shadow:0 14px 22px #0000000b}
.family-introduction>div{max-width:540px;width:100%;text-align:left}
.family-introduction .lead{margin:0;max-width:none;line-height:1.85;text-wrap:pretty}
body[data-page=projects] .page-head .display-title{font-size:clamp(45px,7.5vw,112px);line-height:1.14}
/* Scale actual media dimensions, preserving aspect ratio and full image content. */
body[data-page=project] .case-hero{width:calc((100% - var(--gutter)*2)*.75);margin-inline:auto}
body[data-page=project] .gallery-item{width:75%;justify-self:center}
body[data-page=project] .film-grid video{width:75%;min-height:0;margin-inline:auto}
body[data-page=project] .film-grid figcaption{width:75%;margin-inline:auto}
body[data-page=project] .next-project img{width:75%;margin-inline:auto}
@media(hover:none),(pointer:coarse){.page-particles{display:none}.header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fffffff0}.header.is-on-dark{background:#151515f0}}
@media(prefers-reduced-motion:reduce){.identity-v9{display:none!important}.headline-slot,.banner-panel,.banner-image{transition:none}}

/* v10: exact original wordmark, upright entrance to its native italic finish.
   Each row retains the existing reveal; only the inner artwork changes slant. */
.identity-v10{animation-delay:2.3s}
.identity-v10 .identity-lockup{width:min(84vw,1280px);max-width:84vw}
.identity-v10 .identity-row{font-size:inherit;line-height:1;letter-spacing:0;padding:0 1.6%;margin:0 -1.6%;overflow:hidden}
.identity-v10 .identity-two{margin-top:2.16%}
.identity-v10 .identity-brand{display:block;width:100%;height:auto;transform-origin:50% 50%;animation:identityBrandItalic .64s 1.48s cubic-bezier(.22,1,.36,1) both}
.identity-v10 .identity-rule{margin-top:clamp(22px,3vw,40px)}
@keyframes identityBrandItalic{from{transform:skewX(10deg)}to{transform:skewX(0deg)}}
@media(max-width:767px){.identity-v10 .identity-lockup{width:88vw;max-width:88vw}.identity-v10 .identity-lockup>p{font-size:8px;letter-spacing:.12em}}
@media(prefers-reduced-motion:reduce){.identity-v10 .identity-brand{animation:none;transform:none}}
