@font-face{font-family:Westmere;src:url('../assets/fonts/alderline-aspekta-400.woff2') format('woff2');font-weight:400;font-display:swap}
html,body{overflow-x:clip}
:root{--paper:#efeeea;--ink:#131411;--muted:#555751;--line:rgba(19,20,17,.36);--gutter:clamp(22px,2.1vw,30px);--sans:Westmere,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 var(--sans);letter-spacing:-.012em}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}img,video{display:block;width:100%;height:100%;object-fit:cover}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap}.skip-link{position:fixed;z-index:1000;top:-80px;left:16px;padding:10px 14px;background:var(--ink);color:var(--paper)}.skip-link:focus{top:16px}:focus-visible{outline:2px solid currentColor;outline-offset:4px}::selection{background:var(--ink);color:var(--paper)}
.site-header{position:fixed;z-index:30;top:38px;left:0;right:0;height:72px;padding:0 var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#fff;border-bottom:1px solid transparent;transition:background .25s,border-color .25s,color .25s}.site-header.is-solid,.site-header:has(+ main .residence-hero){background:var(--paper);color:var(--ink);border-bottom-color:var(--line)}.wordmark,.footer-wordmark{font-size:clamp(25px,2.1vw,34px);font-weight:700;letter-spacing:-.065em;line-height:.8}.site-header nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,34px);font-size:13px}.site-header nav a,.header-contact{padding:8px 0}.site-header nav span{font-size:16px;margin-left:3px}.header-contact{justify-self:end;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.header-contact span{font-size:14px;margin-left:4px}.menu-button{display:none;background:transparent;border:0;color:inherit;width:44px;height:44px;padding:10px}.menu-button span{display:block;width:24px;border-top:1px solid}.menu-button span+span{margin-top:7px}.hero{position:relative;isolation:isolate;height:calc(100svh - 38px);min-height:620px;color:#fff;overflow:hidden}.hero-media,.hero-media>*{position:absolute;inset:0}.hero-media video{z-index:1}.hero-media img{z-index:0}.hero-shade{position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,#0005,transparent 42%,#0008)}.hero-project{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);padding:13px 18px;border:1px solid #ffffff9c;color:#fff;font-size:13px;white-space:nowrap;transition:background .2s,color .2s}.hero-project:hover{background:#fff;color:#161713}.hero-foot{position:absolute;z-index:3;right:var(--gutter);bottom:0;left:var(--gutter);height:58px;display:grid;grid-template-columns:1fr 1fr auto;gap:22px;align-items:center;border-top:1px solid #ffffff82;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.hero-foot button{padding:0;border:0;background:transparent;color:inherit;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.section-space{padding:clamp(110px,15vw,220px) var(--gutter)}.statement{text-align:center}.statement p{max-width:1150px;margin:0 auto;font-size:clamp(39px,4.35vw,62px);line-height:1.05;letter-spacing:-.055em}.practice{display:grid;grid-template-columns:1.45fr .8fr;gap:clamp(45px,8vw,140px);align-items:end;padding:0 var(--gutter) clamp(120px,14vw,210px)}.practice-image{margin:0;min-height:650px;height:75vw;max-height:980px;overflow:hidden}.practice-copy{padding-bottom:clamp(25px,5vw,80px);max-width:440px}.section-tag{margin:0 0 19px;font-size:11px;letter-spacing:.11em;text-transform:uppercase}.practice h1,.approach h2,.projects h2,.contact h2,.residence-intro h2,.residence-detail h2,.residence-close h2{margin:0;font-size:clamp(38px,3.9vw,58px);font-weight:400;letter-spacing:-.055em;line-height:1.02}.practice-copy>p:not(.section-tag){margin:30px 0;color:var(--muted);font-size:17px}.arrow-link{display:inline-flex;gap:18px;padding-bottom:7px;border-bottom:1px solid var(--ink);font-size:13px}.arrow-link span{font-size:19px;transition:transform .2s}.arrow-link:hover span{transform:translateX(5px)}.expertise{position:relative;min-height:800px;overflow:hidden;background:#21231f;color:#fff}.expertise-image{position:absolute;inset:0;margin:0}.expertise-image:after,.residence-hero:after,.residence-close:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#000a,transparent 65%)}.expertise-panel{position:relative;z-index:1;min-height:800px;padding:var(--gutter);display:grid;grid-template-columns:1.1fr .9fr;align-items:end}.expertise-links{display:flex;gap:clamp(16px,3vw,45px);align-self:end}.expertise-links button{padding:0 0 8px;border:0;border-bottom:1px solid transparent;background:none;color:#fff;font-size:clamp(19px,2.25vw,32px);letter-spacing:-.04em}.expertise-links button[aria-selected=true]{border-color:#fff}.service-copy{justify-self:end;max-width:310px;padding-bottom:3px}.service-copy p:last-child{margin:0;font-size:16px;line-height:1.45}.approach{display:grid;grid-template-columns:1.1fr .72fr;gap:12vw;background:#e7e2d6}.approach h2{max-width:670px}.approach-copy{align-self:end;max-width:410px;font-size:17px}.approach-copy p{margin:0 0 30px}.image-pair{display:grid;grid-template-columns:.72fr 1.12fr;gap:var(--gutter);padding:var(--gutter);background:#e7e2d6}.image-pair figure{height:clamp(390px,55vw,780px);margin:0;overflow:hidden}.image-pair figure+figure{margin-top:clamp(70px,12vw,180px)}.projects{overflow:hidden}.projects header{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-bottom:50px}.projects h2{max-width:700px}.project-controls{display:flex;gap:9px}.project-controls button{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--ink);border-radius:0;background:transparent;font-size:18px}.project-controls button:hover{background:var(--ink);color:var(--paper)}.project-track{display:flex;gap:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}.project-track::-webkit-scrollbar{display:none}.project-track article{flex:0 0 min(58vw,780px);scroll-snap-align:start}.project-track img{aspect-ratio:1.38}.project-track a>div{display:flex;justify-content:space-between;padding-top:13px;border-top:1px solid var(--ink);margin-top:13px;font-size:12px}.project-track b{font-weight:400}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(60px,12vw,180px);padding:clamp(110px,14vw,200px) var(--gutter);background:var(--ink);color:var(--paper)}.contact-intro{max-width:520px}.contact-intro>p:last-child{max-width:360px;margin:28px 0 0;color:#c0c1ba}.contact-form{display:grid;gap:25px;max-width:620px;padding:clamp(25px,4vw,48px);border:1px solid #ffffff71}.contact-form fieldset{display:contents;margin:0;padding:0;border:0;min-inline-size:0}.contact-form label{display:grid;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em}.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:13px 14px;border:1px solid #ffffff7d;border-radius:0;background:transparent;color:inherit;font-size:16px;text-transform:none;letter-spacing:0}.contact-form textarea{resize:vertical}.contact-form details{border-bottom:1px solid #ffffff7d}.contact-form summary{display:flex;justify-content:space-between;padding:13px 0;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.1em;list-style:none}.contact-form summary::-webkit-details-marker{display:none}.contact-form details[open] summary span{transform:rotate(45deg)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:18px}.contact-form button{justify-self:start;padding:13px 16px;border:1px solid var(--paper);border-radius:0;background:var(--paper);color:var(--ink);font-size:13px}.contact-form button:hover{background:transparent;color:var(--paper)}.contact-form [data-form-status]{min-height:21px;margin:0;font-size:13px;color:#c0c1ba}.site-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:30px;padding:clamp(55px,8vw,110px) var(--gutter) 25px;background:var(--ink);color:var(--paper);border-top:1px solid #ffffff42}.footer-wordmark{font-size:clamp(70px,12vw,190px);grid-column:1/-1}.site-footer div{font-size:12px;color:#c0c1ba}.site-footer p{margin:0}.site-footer a:last-child{justify-self:end;padding-bottom:4px;border-bottom:1px solid var(--paper);font-size:13px}.image-mask{overflow:hidden}.image-mask img{will-change:transform;transform:scale(1.035)}.residence-hero{position:relative;isolation:isolate;min-height:min(850px,90svh);height:calc(100svh - 38px);padding:clamp(150px,18vw,260px) var(--gutter) 100px;display:flex;align-items:end;color:#fff;overflow:hidden}.residence-hero>img,.residence-close>img{position:absolute;inset:0;z-index:-2}.residence-hero>div{position:relative;z-index:1;max-width:570px}.residence-hero h1{margin:0;font-size:clamp(62px,7.8vw,120px);font-weight:400;line-height:.9;letter-spacing:-.07em}.residence-hero p:last-child{max-width:420px;margin:25px 0 0;font-size:18px}.residence-intro{display:grid;grid-template-columns:.6fr 1.4fr;gap:10vw;align-items:start}.residence-intro>p{margin:4px 0;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.residence-intro h2{max-width:850px}.residence-wide{display:grid;grid-template-columns:1.35fr .65fr;gap:var(--gutter);padding:0 var(--gutter) clamp(110px,14vw,190px)}.residence-wide img{min-height:680px}.residence-wide p{align-self:end;max-width:360px;margin:0;padding-bottom:10px;font-size:18px;color:var(--muted)}.residence-detail{display:grid;grid-template-columns:.72fr 1.15fr;gap:8vw;align-items:end;background:#e7e2d6}.residence-detail h2{max-width:550px}.residence-detail figure{margin:0;min-height:620px;overflow:hidden}.residence-close{position:relative;isolation:isolate;min-height:720px;padding:70px var(--gutter);display:grid;place-items:center;color:#fff;text-align:center;overflow:hidden}.residence-close>div{position:relative;z-index:1;max-width:730px}.residence-close h2{margin-bottom:32px}.residence-close .hero-project{position:static;display:inline-flex;transform:none}.contact--compact{padding-top:120px;padding-bottom:120px}
@media(max-width:760px){html{scroll-behavior:auto}.site-header{top:38px;height:64px;grid-template-columns:1fr auto;color:#fff}.site-header.is-solid,.site-header:has(+ main .residence-hero){color:var(--ink)}.site-header nav{display:none;position:absolute;top:64px;left:0;right:0;padding:18px var(--gutter) 24px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.site-header.menu-open nav{display:flex}.menu-button{display:block;justify-self:end}.header-contact{display:none}.hero{min-height:650px}.hero-foot{grid-template-columns:1fr auto;height:54px}.hero-foot span:nth-child(2){display:none}.statement p{font-size:clamp(35px,10vw,48px)}.practice,.approach,.contact,.residence-intro,.residence-wide,.residence-detail{grid-template-columns:1fr;gap:38px}.practice{padding-bottom:90px}.practice-image{height:auto;min-height:0;aspect-ratio:1.05}.practice-copy{padding-bottom:0}.expertise,.expertise-panel{min-height:650px}.expertise-panel{grid-template-columns:1fr;padding:22px}.expertise-links{flex-wrap:wrap;gap:19px}.expertise-links button{font-size:23px}.service-copy{justify-self:start;max-width:350px}.image-pair{grid-template-columns:1fr;padding:22px}.image-pair figure,.image-pair figure+figure{height:auto;aspect-ratio:1.1;margin:0}.projects header{grid-template-columns:1fr;gap:25px}.project-track article{flex-basis:84vw}.form-grid{grid-template-columns:1fr}.contact-form{padding:23px}.site-footer{grid-template-columns:1fr;align-items:start}.footer-wordmark{font-size:clamp(72px,23vw,118px)}.site-footer a:last-child{justify-self:start}.residence-hero{min-height:640px;padding-bottom:92px}.residence-wide{padding-bottom:90px}.residence-wide img{min-height:0;aspect-ratio:1.05}.residence-detail figure{min-height:0;aspect-ratio:1.05}.residence-close{min-height:580px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.image-mask img{transform:none!important}}

/* Westmere refinement: light, depth and deliberately paced interactions. */
html{scroll-behavior:auto}
.site-header{transition:background .35s,color .35s,box-shadow .35s;border-bottom-color:#ffffff35}
.site-header.is-solid{background:rgba(239,238,234,.96);box-shadow:0 8px 28px #1416110c;backdrop-filter:blur(14px)}
.site-header nav a{position:relative}
.site-header nav a:after{content:'';position:absolute;bottom:2px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.22,.61,.36,1)}
.site-header nav a:is(:hover,:focus-visible):after{transform:scaleX(1);transform-origin:left}
.header-contact span{display:inline-block;transition:transform .4s}
.header-contact:is(:hover,:focus-visible) span{transform:scale(1.7)}
.hero-project,.contact-form button,.project-controls button{transition:background .4s,color .4s,box-shadow .4s,border-color .4s;box-shadow:0 4px 16px #0000000d}
.hero-project{backdrop-filter:blur(5px);background:#12161225}
.hero-project:is(:hover,:focus-visible){box-shadow:0 12px 35px #0004;background:var(--paper);color:var(--ink)}
.hero-project span,.contact-form button span{display:inline-block;transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.hero-project:is(:hover,:focus-visible) span{transform:scale(1.7)}
.contact-form button:is(:hover,:focus-visible) span{transform:translateX(5px)}
.arrow-link{position:relative;transition:gap .4s}
.arrow-link:is(:hover,:focus-visible){gap:28px}
.practice-image,.image-pair figure,.residence-detail figure{position:relative;isolation:isolate;box-shadow:0 24px 55px -35px #18211b77}
.practice-image:after,.image-pair figure:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 45%,#10201735);opacity:.55;transition:opacity .7s}
.practice-image:hover:after,.image-pair figure:hover:after{opacity:1}
.expertise-image:after{z-index:4;background:linear-gradient(180deg,#07110d12 30%,#07110d55 62%,#07110dd9 100%)}
.expertise-panel{z-index:5;gap:35px;padding-bottom:76px;text-shadow:0 2px 22px #0009}
.expertise-links button{position:relative;transition:color .35s,transform .35s,opacity .35s;opacity:.65}
.expertise-links button[aria-selected=true],.expertise-links button:is(:hover,:focus-visible){opacity:1}
.expertise-links button:is(:hover,:focus-visible){transform:translateY(-4px)}
.project-track{padding-bottom:24px}
.project-track a{display:block;overflow:hidden}
.project-track img{transition:filter .65s,box-shadow .65s,clip-path .65s;clip-path:inset(0);filter:brightness(.97)}
.project-track a:is(:hover,:focus-visible) img{filter:brightness(.78);clip-path:inset(1.3%);box-shadow:0 18px 45px -20px #13201a88}
.project-track a>div{transition:padding .4s}
.project-track a:is(:hover,:focus-visible)>div{padding-left:8px;padding-right:8px}
.contact{background:radial-gradient(ellipse at 80% 20%,#252c24 0%,#131411 65%)}
.contact-form{background:#ffffff03;box-shadow:0 22px 65px #0003}
.contact-form input,.contact-form textarea,.contact-form select{background:#ffffff04;transition:border-color .3s,background .3s,box-shadow .3s}
.contact-form :is(input,textarea,select):focus{border-color:#eeeadc;background:#ffffff09;box-shadow:0 0 0 3px #efeeea0c;outline:none}
.contact-form select option{background:#131411;color:#efeeea}
@media(max-width:760px){.expertise-panel{padding-bottom:34px;align-content:end;gap:28px}.service-copy{min-height:115px}.hero-foot{bottom:68px}.site-header.menu-open{background:var(--paper);color:var(--ink)}.project-track a:is(:hover,:focus-visible) img{clip-path:none}}
html[data-motion=reduced] *,html[data-motion=reduced] *:before,html[data-motion=reduced] *:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
@media(prefers-reduced-motion:reduce){.expertise-links button:hover{transform:none}}

/* An image-led client-story interval preserves the page's film language. */
.client-story--westmere{position:relative;isolation:isolate;min-height:clamp(560px,62vw,860px);display:grid;align-items:end;padding:clamp(48px,7vw,110px) var(--gutter);overflow:hidden;color:var(--paper);background:#20221e}.client-story--westmere .client-story__image,.client-story--westmere .client-story__image img{position:absolute;inset:0;width:100%;height:100%}.client-story--westmere .client-story__image{z-index:-2;margin:0}.client-story--westmere .client-story__image img{object-fit:cover;object-position:center;transform:scale(1.025);transition:transform 1.25s cubic-bezier(.16,1,.3,1)}.client-story__veil{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#0b0d0bd9 0%,#0b0d0b88 48%,#0b0d0b3d 100%),linear-gradient(0deg,#0b0d0b9c 0%,transparent 58%)}.client-story--westmere .client-story__copy{max-width:min(760px,74vw);padding-top:120px}.client-story--westmere .section-tag{margin-bottom:26px;color:#e8e7df}.client-story--westmere h2{max-width:740px;margin:0;font-size:clamp(36px,4.15vw,64px);font-weight:400;line-height:1.08;letter-spacing:-.055em}.client-story__byline{max-width:420px;margin:32px 0 0;padding-top:17px;border-top:1px solid #ffffff7a;color:#d3d4cc;font-size:12px;line-height:1.5}.client-story--westmere:hover .client-story__image img{transform:scale(1.055)}@media(max-width:760px){.client-story--westmere{min-height:590px;padding:42px 22px}.client-story--westmere .client-story__copy{max-width:100%;padding-top:110px}.client-story--westmere h2{font-size:clamp(34px,9vw,46px);line-height:1.1}.client-story__veil{background:linear-gradient(90deg,#0b0d0bdc,#0b0d0b6c),linear-gradient(0deg,#0b0d0b9c,transparent 62%)}}@media(prefers-reduced-motion:reduce){.client-story--westmere .client-story__image img,.client-story--westmere:hover .client-story__image img{transform:none}}

/* Native chapter layout is the baseline; GSAP enhances wide screens only. */
.expertise{min-height:0;overflow:clip}
.expertise-media{display:none}
.expertise-panel{min-height:0;display:block;padding:70px var(--gutter);text-shadow:none}
.expertise-links{margin-bottom:48px;flex-wrap:wrap}
.expertise-chapters{display:grid;gap:60px}
.expertise-chapter{scroll-margin-top:125px}
.expertise-card-media{margin:0 0 24px;aspect-ratio:16/10;overflow:hidden}
.expertise-chapter>div{max-width:450px}
.expertise-chapter>div>p:last-child{font-size:18px;line-height:1.45;margin:0}
.expertise-card-media img{object-fit:cover}
@media(min-width:761px){
.expertise.is-pinned{height:calc(100svh - 110px);min-height:480px;isolation:isolate}
.expertise.is-pinned .expertise-media{display:block;position:absolute;inset:0}
.expertise.is-pinned .expertise-media img{position:absolute;inset:0;opacity:0}
.expertise.is-pinned .expertise-media img:first-child{opacity:1}
.expertise.is-pinned .expertise-media:after{content:'';position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(180deg,#06100c16 30%,#06100c44 55%,#06100de6 100%)}
.expertise.is-pinned .expertise-panel{position:absolute;inset:0;display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:40px;padding:45px var(--gutter) 64px;text-shadow:0 2px 22px #0008}
.expertise.is-pinned .expertise-links{margin:0;gap:28px;flex-wrap:nowrap}
.expertise.is-pinned .expertise-links button{font-size:clamp(20px,2.2vw,32px)}
.expertise.is-pinned .expertise-chapters{display:grid;justify-self:end;width:min(100%,330px);gap:0}
.expertise.is-pinned .expertise-chapter{grid-area:1/1;visibility:hidden;pointer-events:none}
.expertise.is-pinned .expertise-chapter.is-active{visibility:visible;pointer-events:auto}
.expertise.is-pinned .expertise-card-media{display:none}
}
@media(max-width:760px){.expertise-links{gap:20px;margin-bottom:36px}.expertise-panel{padding:55px 22px}.expertise-chapter>div>p:last-child{font-size:17px}.expertise-card-media{aspect-ratio:4/3}.expertise-chapters{gap:55px}}
/* The opening statement rises over the held film, then releases into the page. */
.opening-chapter{position:relative;isolation:isolate}.opening-chapter .hero{position:sticky;top:38px;z-index:0;height:calc(100svh - 38px);min-height:0}.opening-chapter .statement{position:relative;z-index:4;background:var(--paper);min-height:85svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(90px,12vw,180px) max(var(--gutter),5vw) 0;box-shadow:0 -22px 70px #00000018}.opening-chapter .statement p{max-width:1400px;font-size:clamp(36px,4.25vw,68px);line-height:1.17;letter-spacing:-.035em;font-weight:400}.statement-line{display:block;width:1px;min-height:90px;height:12vw;max-height:165px;background:#8c8e85;margin-top:clamp(60px,8vw,125px)}
@media(max-width:760px){.opening-chapter .statement{min-height:80svh;padding:80px 24px 0}.opening-chapter .statement p{font-size:clamp(29px,7.4vw,40px);line-height:1.2}.statement-line{margin-top:65px}.opening-chapter .hero{min-height:0}}
html[data-motion=reduced] .opening-chapter .hero{position:relative;top:auto}@media(prefers-reduced-motion:reduce){.opening-chapter .hero{position:relative;top:auto}}
/* Hold the film only after its complete opening has passed into view. */
.opening-chapter .hero{top:var(--westmere-hold-top,38px)}
html[data-motion=reduced] .opening-chapter .hero{position:relative;top:auto}
@media(prefers-reduced-motion:reduce){.opening-chapter .hero{position:relative;top:auto}}
html[data-motion=reduced] .client-story--westmere .client-story__image img,html[data-motion=reduced] .client-story--westmere:hover .client-story__image img{transform:none}
