/* Chapter direction: a homeowner's idea becomes a place to live. */
.cinema-stage{--curtain-tilt:12%;--pointer-x:0px;--pointer-y:0px;background:#111a14;perspective:1200px}
.story-photo,.cinema-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.story-photo .photo-drift{position:absolute;inset:-2%;will-change:transform}
.photo-drift img{width:100%;height:100%;object-fit:cover;object-position:center;transform:translate(var(--pointer-x),var(--pointer-y)) scale(1.045)}
.photo-drift picture{display:contents}
.cinema-opening{z-index:1;--opening-edge:100%;clip-path:polygon(0 0,100% 0,100% var(--opening-edge),0 calc(var(--opening-edge) + var(--curtain-tilt)))}
.story-curtain{--curtain-edge:110%;clip-path:polygon(0 calc(var(--curtain-edge) + var(--curtain-tilt)),100% var(--curtain-edge),100% 100%,0 100%);will-change:clip-path}
.cinema-macro{z-index:2}.cinema-craft{z-index:3}.cinema-transformation{z-index:4;visibility:visible}.cinema-evening{z-index:5}
.cinema-shade{z-index:7;background:linear-gradient(90deg,rgba(9,17,12,.52),rgba(9,17,12,.08) 67%),linear-gradient(180deg,rgba(9,17,12,.22),transparent 55%,rgba(9,17,12,.3))}
.cinema-atmosphere{z-index:8;mix-blend-mode:screen}.atmosphere-canvas{position:absolute;inset:0;width:100%;height:100%}.sun-haze{position:absolute;inset:-20%;background:radial-gradient(ellipse at 86% 20%,rgba(242,201,125,.1),transparent 43%);opacity:.5}
.motion-on .sun-haze{animation:light-breathe 13s ease-in-out infinite alternate}
.motion-on .photo-drift img{animation:photo-breathe 22s ease-in-out infinite alternate}
@keyframes light-breathe{from{opacity:.28;transform:translate(-1%,1%)}to{opacity:.7;transform:translate(1%,-1%)}}
@keyframes photo-breathe{from{transform:translate(var(--pointer-x),var(--pointer-y)) scale(1.045)}to{transform:translate(calc(var(--pointer-x) - 1%),calc(var(--pointer-y) + .8%)) scale(1.075)}}
.cinema-copy{z-index:10;padding-top:clamp(145px,20vh,220px);padding-bottom:140px}.cinema-chapter h1{font-size:clamp(57px,6.3vw,102px);line-height:.99;letter-spacing:-.06em}.cinema-chapter h2{font-size:clamp(54px,5.4vw,86px);line-height:1;letter-spacing:-.056em}
.type-line{overflow:hidden;padding-bottom:.15em;margin-bottom:-.13em;perspective:700px}.type-word{display:inline-block;white-space:nowrap}.type-char{display:inline-block;transform-origin:50% 100%;backface-visibility:hidden;will-change:transform,opacity}.type-line>span{will-change:auto}
.cinema-intro .cinema-link{margin-top:2px}.cinema-chapter p{font-size:17px;line-height:1.75;max-width:460px}.cinema-chapter .eyebrow{font-size:12px;margin-bottom:28px;letter-spacing:.13em}
.cinema-detail{align-self:center;transform:none}.cinema-detail h2{font-size:clamp(48px,4.6vw,74px);max-width:46vw}.cinema-detail p{font-size:16px;max-width:440px}.material-index{font-size:11px;line-height:1.8;margin-top:27px;gap:2px;color:#b8c3ab}
.cinema-texture{align-self:center}.cinema-texture h2{font-size:clamp(60px,6.6vw,105px)}.cinema-texture p{color:#f5f2e4}.macro-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,28,22,.56),rgba(26,28,22,.12) 60%)}
.material-word{position:absolute;bottom:7%;left:15%;white-space:nowrap;font:600 22vw/.85 Barlow,sans-serif;-webkit-text-stroke:1px #fffae9;color:transparent;opacity:0}
.cinema-craft-copy{align-self:center}.cinema-craft:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,23,18,.5),transparent 65%)}
.cinema-resolve{align-self:start}.cinema-evening-copy{align-self:center}.cinema-evening-copy h2{font-size:clamp(70px,8.5vw,135px);letter-spacing:-.055em}.cinema-evening-copy .cinema-link{margin-top:25px}
.cinema-wordmark{z-index:9;font-size:24.6vw;bottom:77px;perspective:1000px}.cinema-wordmark span{transform-origin:50% 0%;-webkit-text-stroke:1px rgba(246,243,231,.8)}.cinema-bottom{z-index:12;font-size:12px}.cinema-annotation{z-index:10;bottom:19%;font-size:11px}
.story-rail{position:absolute;z-index:12;right:25px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1px}.story-rail button{appearance:none;border:0;background:none;padding:0;width:30px;height:30px;cursor:pointer;display:grid;place-items:center}.story-rail i{display:block;width:4px;height:4px;background:#d9ded0;border-radius:50%;transition:transform .4s,background .4s;position:relative}.story-rail i:after{content:'';position:absolute;inset:-8px;border:1px solid #e6e1cc;border-radius:50%;opacity:0;transform:scale(.55);transition:transform .4s,opacity .4s}.story-rail button[aria-current] i:after,.story-rail button:hover i:after{opacity:.7;transform:scale(1)}.story-rail button[aria-current] i{background:#e1b27e}
.motion-on .cinema-scroll .scroll-line{transform-origin:top;animation:scroll-line 2.8s ease-in-out infinite}@keyframes scroll-line{0%,100%{transform:scaleY(.6);opacity:.4}50%{transform:scaleY(1);opacity:1}}
.cinema-material{background:radial-gradient(ellipse at 67% 50%,#303c2e 0,#151e17 57%,#101912 100%)}.cinema-material canvas.material-webgl{transition:none}.cinema-material.material-ready>.film-poster{opacity:0}
.site-header{transition:background .4s,transform .5s,border-color .4s}.site-header.is-scrolled{background:rgba(18,27,20,.72)}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;height:1px;bottom:-8px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s}.desktop-nav a:hover:after{transform:scaleX(1)}
.introduction{padding-top:130px;padding-bottom:85px}.statement{font-size:clamp(42px,5.3vw,83px);max-width:1180px}.intro-bottom p{max-width:610px;font-size:17px}.credentials{margin-top:50px}
.work-panel h3{perspective:800px}.work-visual img{transition:filter .6s}.work-panel h3 em{-webkit-text-stroke:1px #78866d;color:transparent}.motion-on .work-panel.is-active h3 em{color:#78866d}.work-link>span{transition:transform .5s,background .5s}.work-link:hover>span{transform:rotate(45deg) scale(1.08)}
.people-image{height:740px}.people-image img{object-position:68% center}.people-copy .display{max-width:600px}.people-copy p{max-width:540px}.people-section{position:relative;overflow:hidden}.people-section:before{content:'WESTLINE';position:absolute;left:3vw;bottom:-.1em;font:600 23vw/.8 Barlow,sans-serif;opacity:.025;pointer-events:none}.estimate-copy h2{font-size:clamp(60px,7.1vw,108px)}
@media(max-width:1100px){.cinema-chapter h1{font-size:7.1vw}.cinema-chapter h2{font-size:6.1vw}.cinema-detail h2{font-size:5vw}.cinema-evening-copy h2{font-size:9vw}.cinema-copy{padding-top:165px}.story-rail{right:10px}.cinema-texture h2{font-size:7.7vw}.cinema-chapter p{font-size:16px}.cinema-detail p{max-width:38vw;font-size:15px}}
@media(max-width:800px){.cinema-copy{padding-top:140px}.cinema-detail{align-self:start}.cinema-detail h2{font-size:6.8vw;max-width:90%}.cinema-detail p{max-width:380px}.cinema-detail .material-index{display:none}.cinema-chapter p{font-size:16px}.cinema-annotation{bottom:17%}.cinema-texture h2{font-size:9vw}.cinema-chapter .eyebrow{font-size:11px}.story-rail{display:none}.people-image{height:540px}.introduction{padding:85px 0 55px}}
@media(max-width:540px){.cinema-stage{min-height:640px}.cinema-copy{padding-top:129px;padding-bottom:120px}.cinema-chapter h1{font-size:clamp(43px,12vw,62px);line-height:1.03}.cinema-chapter h2,.cinema-detail h2{font-size:clamp(40px,10.8vw,60px);max-width:100%}.cinema-detail h2{font-size:10vw}.cinema-chapter p,.cinema-detail p{font-size:15px;line-height:1.7;max-width:300px}.cinema-chapter .eyebrow{font-size:10px;letter-spacing:.095em;white-space:normal;line-height:1.6;margin-bottom:22px}.cinema-chapter .cinema-link{font-size:13px}.cinema-intro-bottom{gap:16px}.cinema-wordmark{font-size:25vw;bottom:87px}.cinema-detail{align-self:start}.cinema-detail p{font-size:14px;margin-top:20px}.cinema-annotation{display:none}.cinema-texture h2{font-size:12vw}.cinema-texture,.cinema-craft-copy,.cinema-evening-copy{align-self:center}.cinema-evening-copy h2{font-size:17vw}.cinema-resolve h2{font-size:12vw}.cinema-evening-copy p{margin-top:30px}.cinema-macro img{object-position:60% center}.cinema-craft img{object-position:62% center}.cinema-evening img{object-position:55% center}.cinema-craft:after{background:linear-gradient(90deg,rgba(17,23,18,.55),rgba(17,23,18,.1))}.material-word{font-size:34vw;bottom:12%;left:0}.cinema-shade{background:linear-gradient(180deg,rgba(9,17,12,.25),transparent 50%,rgba(9,17,12,.4)),linear-gradient(90deg,rgba(9,17,12,.2),transparent)}.introduction{padding-top:65px}.intro-bottom p{font-size:16px}.statement{font-size:clamp(32px,8.7vw,46px)}.people-image{height:440px}.estimate-copy h2{font-size:65px}.motion-on .work-panel h3{font-size:15vw}.type-line{padding-bottom:.16em;margin-bottom:-.14em}}
@media(max-width:360px){.cinema-copy{padding-top:115px}.cinema-chapter h1{font-size:39px}.cinema-detail h2{font-size:33px}.cinema-chapter p{font-size:14px}.cinema-chapter .eyebrow{font-size:9px}.cinema-evening-copy h2{font-size:55px}.estimate-copy h2{font-size:56px}}
html:not(.motion-on) .story-curtain,html:not(.motion-on) .cinema-atmosphere,html:not(.motion-on) .story-rail{display:none}html:not(.motion-on) .cinema-opening{clip-path:none}
@media(prefers-reduced-motion:reduce){.photo-drift img,.sun-haze,.scroll-line{animation:none!important;transform:none!important}.story-curtain,.cinema-atmosphere,.story-rail{display:none}.cinema-opening{clip-path:none}.type-char{transform:none!important;opacity:1!important}.material-word{display:none}}
@media(max-height:699px){.cinema-stage{height:760px}.cinema-copy{padding-top:130px}.cinema-wordmark{font-size:21vw}.cinema-chapter h1{font-size:clamp(46px,6vw,82px)}}

.cinema-craft .craft-motion img{animation:none;transform:scale(1.055);object-position:center}.craft-hand{position:absolute;inset:0;transform-origin:88% 5%;will-change:transform}.motion-on .craft-hand{animation:finishing-pass 9s cubic-bezier(.45,0,.55,1) infinite alternate}.craft-hand img{filter:drop-shadow(-1px 3px 2px rgba(17,21,15,.18))}.craft-motion .craft-plate{display:contents}@keyframes finishing-pass{from{transform:translate(1.5%,.6%) rotate(.2deg)}to{transform:translate(-2.4%,-.6%) rotate(-.4deg)}}@media(max-width:540px){.cinema-craft .craft-motion img{object-position:72% center}}@media(prefers-reduced-motion:reduce){.craft-hand{animation:none!important;transform:none!important}}

.work-breathe{position:absolute;inset:-2%;will-change:transform}.motion-on .work-breathe{animation:work-breathe 18s ease-in-out infinite alternate}@keyframes work-breathe{from{transform:scale(1) translate(0,0)}to{transform:scale(1.04) translate(.6%,-.5%)}}@media(prefers-reduced-motion:reduce){.work-breathe{animation:none!important}}

/* Layer tour: words at the left, a complete material study at the right. */
.cinema-layer{align-self:center}.cinema-layer h2{font-size:clamp(42px,4.3vw,70px);max-width:45vw}.cinema-layer p{max-width:390px;line-height:1.75;font-size:16px}.layer-note{display:block;border-left:1px solid #a69475;padding-left:15px;color:#bccaaf;margin-top:28px;font-size:12px;line-height:1.6;letter-spacing:.025em}.cinema-bottom .cinema-caption{margin-left:auto;margin-right:auto}
.cinema-wordmark i{display:block;font-style:normal;will-change:transform,opacity}
@media(max-width:1100px){.cinema-layer h2{font-size:4.8vw}.cinema-layer p{max-width:37vw;font-size:15px}.layer-note{max-width:36vw}}
@media(max-width:800px){.cinema-layer{align-self:start}.cinema-layer h2{font-size:6.5vw;max-width:100%}.cinema-layer p{max-width:400px}.layer-note{max-width:400px;margin-top:18px}}
@media(max-width:540px){.cinema-layer h2{font-size:clamp(31px,9.2vw,48px)}.cinema-layer p{font-size:15px;line-height:1.65;max-width:330px;margin-top:19px}.cinema-layer .eyebrow{font-size:9px;margin-bottom:20px}.layer-note{display:none}.cinema-layer .type-line{padding-bottom:.16em;margin-bottom:-.14em}}

/* Keep the opening composition clear; chapter navigation appears after it. */
.skip-story{visibility:hidden;opacity:0}

/* Keep the image larger than its frame across the entire parallax range. */
.people-image picture{display:contents}
.people-image img{position:absolute;left:0;top:-8%;width:100%;height:116%;max-width:none;transform:none;object-fit:cover}
html:not(.motion-on) .people-image img{top:0;height:100%;transform:none}
.cinema-intro p{color:#f0efe5;text-shadow:0 1px 12px rgba(9,17,12,.25)}
.cta-mobile{display:none}
@media(max-width:800px){
 .header-cta{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;min-height:44px;padding:0 10px;font-size:12px}
 .cta-desktop{display:none}.cta-mobile{display:inline}
 .header-inner{gap:10px}.header-actions{gap:8px}
}
@media(max-width:360px){.header-cta{font-size:11px;padding:0 7px}.header-actions{gap:3px}.brand{gap:8px}.brand-name{font-size:27px}}
@media(prefers-reduced-motion:reduce){.people-image img{top:0;height:100%;transform:none!important}}

/* Independent entry and exit masks keep the reordered detail scene reversible. */
.cinema-macro{--curtain-bottom:110%;clip-path:polygon(0 calc(var(--curtain-edge) + var(--curtain-tilt)),100% var(--curtain-edge),100% var(--curtain-bottom),0 calc(var(--curtain-bottom) + var(--curtain-tilt)))}
/* Scale the opening with available height as well as width, keeping copy
   clear of the wordmark without a size jump at the old 800px breakpoint.
   Short windows retain the existing 760px-tall stage. */
@media(min-width:801px){
 .cinema-stage{--opening-height:100svh}
 .cinema-copy{padding-top:clamp(126px,calc(var(--opening-height) * .2 - 25px),220px)}
 .cinema-intro h1{font-size:clamp(54px,min(6.3vw,calc(var(--opening-height) * .12 - 20px)),102px)}
 .cinema-intro .eyebrow{margin-bottom:clamp(20px,calc(var(--opening-height) * .04 - 12px),28px)}
 .cinema-intro p{font-size:clamp(15px,calc(var(--opening-height) * .02),17px);line-height:1.7;margin-top:clamp(18px,calc(var(--opening-height) * .03 - 6px),25px)}
 .cinema-wordmark{font-size:min(24.6vw,calc(var(--opening-height) * .85 - 355px))}
}
@media(min-width:801px) and (max-height:699px){.cinema-stage{--opening-height:760px}}

/* A coherent photographic fallback while the individual layers decode. */
.cinema-material>.film-poster{inset:8% 5% auto auto;width:49%;height:84%;object-fit:contain;object-position:center}
@media(max-width:800px){.cinema-material>.film-poster{inset:auto 10% 6%;width:80%;height:48%}}
