/* Editorial motion layer: readable by default and independent of JavaScript. */
:root{--editorial-paper:#ede9e4;--editorial-teal:#2c4f50;--editorial-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth}
.has-home-hero main{position:relative;isolation:isolate}
.has-home-hero main>.hero{position:sticky;top:0;z-index:0;height:100svh;max-height:none}
.has-home-hero main>.hero~section{position:relative;z-index:1}
.has-home-hero main>.intro,.has-home-hero main>.section:not(.collection),.has-home-hero main>.feature-split{background:var(--editorial-paper)}
.has-home-hero main>.collection{background:#e8e5de}
.has-home-hero main>.intro:first-of-type{padding-top:clamp(80px,11vw,180px)}
.hero picture img{backface-visibility:hidden}
.feature-image,.panorama{overflow:hidden}
.motion-parallax{transform:translate3d(0,var(--image-shift,0px),0) scale(1.055);transform-origin:center}
.feature-image .motion-parallax,.panorama .motion-parallax{height:106%;top:-3%}
.motion-word{display:inline-block;transform-origin:50% 100%}
.motion-ready .is-in-view .motion-word{animation:editorial-word .85s var(--editorial-ease) both;animation-delay:calc(var(--word-order,0)*28ms)}
.motion-ready .motion-reveal.is-in-view{animation:editorial-reveal 1s var(--editorial-ease) both;animation-delay:var(--reveal-delay,0ms)}
.motion-ready .hero picture img{animation:editorial-hero 2s var(--editorial-ease) both}
.motion-ready .hero-copy.is-in-view .motion-word{animation-duration:1.25s;animation-delay:calc(.35s + var(--word-order,0)*40ms)}
@keyframes editorial-word{from{opacity:.18;transform:translate3d(0,.55em,0) rotate(1deg)}to{opacity:1;transform:none}}
@keyframes editorial-reveal{from{opacity:.4;transform:translate3d(0,28px,0)}to{opacity:1;transform:none}}
@keyframes editorial-hero{from{transform:scale(1.12)}to{transform:scale(1.025)}}
/* Link labels retain one accessible copy; the second line is decorative. */
.motion-label-clip{display:inline-block;position:relative;overflow:hidden;vertical-align:middle;line-height:1.35}
.motion-label-primary,.motion-label-secondary{display:block;transition:transform .45s var(--editorial-ease)}
.motion-label-secondary{position:absolute;inset:100% 0 auto;pointer-events:none}
.nav-links>a{position:relative;padding:12px 0}
.nav-links>a::after{content:'';height:1px;background:currentColor;position:absolute;bottom:7px;left:0;width:100%;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--editorial-ease)}
.underline{position:relative;overflow:hidden;transition:color .25s ease}
.underline::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:translateX(-110%);transition:transform .55s var(--editorial-ease)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:color .35s ease,border-color .35s ease,background .35s ease}
.button::before{content:'';position:absolute;inset:-1px;z-index:-1;background:var(--editorial-teal);transform:translateX(-103%);transition:transform .55s var(--editorial-ease)}
.button .arrow,.button>svg,.underline .arrow,.underline>svg,.card-head>.arrow,.card-head>svg{transition:transform .45s var(--editorial-ease)}
.project-card .photo img{transition:transform 1.1s var(--editorial-ease),filter .7s ease}
.project-card .card-head h3{transition:color .3s ease}
.guide-card{transition:border-color .35s ease}
.site-footer{background:var(--editorial-teal);color:#ede9e4;padding:80px var(--gutter) max(30px,env(safe-area-inset-bottom));position:relative}
.footer-invite{background:var(--editorial-paper);color:var(--ink);text-align:center;padding:clamp(80px,10vw,160px) var(--gutter);position:relative;z-index:2}
.footer-invite h2{font-size:clamp(42px,6.4vw,82px);font-weight:300;line-height:1;letter-spacing:-.05em;max-width:1050px;margin:0 auto 30px}
.footer-invite p{max-width:560px;margin:0 auto 26px;color:#5c625b;font-size:15px}
.footer-invite .eyebrow{font-size:11px;letter-spacing:.16em;margin-bottom:28px}
.footer-invite .underline{border-color:currentColor}
.footer-top{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:30px;max-width:1600px;margin:auto;border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40;padding:50px 0}
.footer-brand{grid-column:span 1}
.footer-brand b{font-size:42px;font-weight:300;letter-spacing:-.05em}
.footer-brand p{color:#d6dfd8;max-width:330px;font-size:13px;line-height:1.65}
.footer-col h3{color:#bdcbc5;font-size:11px;font-weight:400;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;margin-bottom:27px}
.footer-col a{color:#ede9e4;font-size:13px;line-height:1.45;margin:11px 0;min-height:27px;width:fit-content;max-width:100%;text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px;transition:text-decoration-color .35s ease}
.footer-bottom{border:0;max-width:1600px;margin:0 auto;padding-top:28px;color:#d0dbd4;font-size:11px;line-height:1.6}
.footer-bottom a{color:inherit}
@media(hover:hover) and (pointer:fine){
 .nav-links>a:hover .motion-label-primary,.nav-links>a:hover .motion-label-secondary,.nav-links>a:focus-visible .motion-label-primary,.nav-links>a:focus-visible .motion-label-secondary{transform:translateY(-100%)}
 .nav-links>a:hover::after,.nav-links>a:focus-visible::after{transform:scaleX(1);transform-origin:left}
 .underline:hover::after,.underline:focus-visible::after{transform:translateX(0)}
 .button:hover::before,.button:focus-visible::before{transform:translateX(0)}
 .button:hover,.button:focus-visible{color:#fff;border-color:var(--editorial-teal);background:transparent}
 .button:hover .arrow,.button:hover>svg,.underline:hover .arrow,.underline:hover>svg,.project-card:hover .card-head>.arrow,.project-card:hover .card-head>svg{transform:translate(4px,-4px)}
 .project-card:hover .photo img{transform:scale(1.055);filter:saturate(.92)}
 .project-card:hover .card-head h3{color:var(--editorial-teal)}
 .guide-card:hover{border-color:var(--editorial-teal)}
 .footer-col a:hover,.footer-col a:focus-visible{text-decoration-color:currentColor}
}
@media(min-width:761px){.has-home-hero main>.intro{padding-top:140px;padding-bottom:140px}.has-home-hero main>.section{padding-top:100px;padding-bottom:100px}}
@media(min-width:761px) and (max-width:1100px){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:45px}.footer-brand{grid-column:span 2}.footer-col:last-child{grid-column:auto}}
@media(max-width:760px){
 .has-home-hero main>.hero{height:100svh;min-height:620px;position:relative}
 .footer-invite{padding:80px 22px}.footer-invite h2{font-size:clamp(32px,8.2vw,48px);line-height:1.08}.footer-invite p{font-size:14px}
 .site-footer{padding:65px 22px max(30px,env(safe-area-inset-bottom))}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;padding:30px 0}.footer-brand{grid-column:span 2}.footer-brand b{font-size:36px}.footer-col:last-child{grid-column:auto}.footer-col h3{margin-bottom:16px}.footer-col a{min-height:35px}.footer-bottom{padding-top:20px}
 .motion-parallax{transform:none!important}.feature-image .motion-parallax,.panorama .motion-parallax{height:100%;top:0}
 .motion-ready .motion-reveal.is-in-view{animation-duration:.7s;animation-delay:0ms}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .has-home-hero main>.hero{position:relative}
 .motion-word,.motion-reveal,.motion-parallax,.motion-label-primary,.motion-label-secondary{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}
 .motion-label-secondary{display:none}
 .motion-ready .hero picture img{animation:none!important;transform:none!important}
}

/* Lenis uses the native document scroll position. Deliberately do not disable
   iframe pointer events: the embedded Tally form always remains interactive. */
html.lenis,html.lenis body{height:auto}
html.lenis.lenis-smooth{scroll-behavior:auto!important}
html.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.footer-partners{max-width:1600px;margin-left:auto;margin-right:auto}
.footer-wordmark{max-width:1600px;margin:auto;color:#ede9e4}
@media(prefers-reduced-motion:reduce){html.lenis.lenis-smooth{scroll-behavior:auto!important}}

.footer-top{border-top:0}.footer-partners{margin-bottom:0;padding-bottom:32px}.footer-partners a{padding:12px 0;transition:opacity .25s}.footer-partners a:hover{opacity:.7}
