.cinema-journey{position:relative;background:var(--dark)}.cinema-journey.film-ready{height:250svh}.cinema-journey .hero{height:calc(100svh - 100px);min-height:660px;max-height:none}.cinema-journey.film-ready .hero{position:sticky;top:0;height:100svh}.cinema-scene{position:absolute;inset:0}.cinema-scene img,.cinema-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center}.cinema-film{opacity:0;pointer-events:none}.cinema-film.visible{opacity:1}.cinema-controls{position:absolute;left:7vw;right:28px;bottom:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px}.cinema-controls a{padding:8px 13px;border:1px solid #ffffff66;border-radius:3px;background:#10291f99}.cinema-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff26}.cinema-progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.cinema-instruction{display:none}.film-ready .cinema-instruction{display:inline}#intro{scroll-margin-top:20px}@media(max-width:600px){.cinema-journey.film-ready{height:220svh}.cinema-journey .hero,.cinema-journey.film-ready .hero{min-height:680px}.cinema-controls{left:6vw;right:6vw;bottom:88px;align-items:flex-start;flex-direction:column;gap:8px}.cinema-controls a{padding:5px 10px}.cinematic-hero .hero-index{bottom:54px}.cinematic-hero .hero-content{padding-top:45px}.cinematic-hero .hero-content>p:not(.eyebrow){margin-bottom:22px}}@media(prefers-reduced-motion:reduce){.cinema-journey.film-ready{height:auto}.cinema-journey.film-ready .hero{position:relative}.cinema-film{display:none}.cinema-progress,.cinema-instruction{display:none!important}}

/* Motion preserves readable content and the original document order. */
.page-motion .motion-item{transform:translateY(calc((1 - var(--entrance,1))*26px));transition:transform .12s linear}.page-motion .service-card{transform:perspective(1100px) translateY(calc((1 - var(--entrance,1))*36px)) rotateX(calc((1 - var(--entrance,1))*3deg));transform-origin:center bottom;transition:transform .18s ease-out,box-shadow .3s}.page-motion .service-card:hover,.page-motion .service-card:focus-visible{transform:translateY(-6px);box-shadow:0 22px 46px #142e251a}.service-card .service-link b{transition:transform .3s}.service-card:hover .service-link b,.service-card:focus-visible .service-link b{transform:translate(3px,-3px)}.process ol{position:relative;padding-left:24px}.process ol:before,.process ol:after{content:'';position:absolute;left:0;top:0;width:2px;height:calc(100% - 26px);background:#ffffff20;transform-origin:top}.process ol:after{background:var(--accent);transform:scaleY(var(--step-progress,1))}.villa-closing{position:relative;isolation:isolate;overflow:hidden;color:#fff;min-height:540px;display:flex;flex-direction:column;align-items:center;justify-content:center}.closing-landscape{position:absolute;inset:-30px 0;z-index:-2;background:var(--dark)}.closing-landscape img{width:100%;height:100%;object-fit:cover;object-position:65% 55%;transform:translateY(var(--landscape-y,0px)) scale(var(--landscape-scale,1.07))}.villa-closing:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#082017b8,#0820178a);z-index:-1}.villa-closing .eyebrow{color:var(--accent)}@media(max-width:600px){.villa-closing{min-height:430px}.page-motion .motion-item{transform:translateY(calc((1 - var(--entrance,1))*16px))}.page-motion .service-card{transform:translateY(calc((1 - var(--entrance,1))*20px))}.process ol{padding-left:20px}}@media(prefers-reduced-motion:reduce){.motion-item,.closing-landscape img,.service-card:hover,.service-link b{transform:none!important}.process ol:after{transform:none}}

/* Full-height architectural chapter. Native scrolling remains available. */
.transformation{position:relative;background:#132720;color:white}.transformation.scroll-enabled{height:380svh}.transformation-stage{height:100svh;min-height:580px;position:relative;overflow:hidden;isolation:isolate}.scroll-enabled .transformation-stage{position:sticky;top:0}.villa-camera{position:absolute;inset:0;will-change:transform}.villa-camera img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:65% center}.villa-extension,.villa-dormer{clip-path:inset(0 100% 0 0)}.transformation-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0b231bc4,transparent 55%),linear-gradient(0deg,#071e19e6,transparent 35%)}.transformation-copy{position:absolute;left:7vw;top:8vh;max-width:430px}.transformation-copy .eyebrow{color:var(--accent);font-size:11px}.transformation-copy h2{font-size:clamp(34px,4.1vw,62px)}.transformation-copy>p:last-child{max-width:310px;color:#e1e8e0;font-size:16px}.journey-bottom{position:absolute;bottom:28px;left:7vw;right:7vw;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.scene-nav{display:flex;border:1px solid #ffffff55;background:#10271ed4;backdrop-filter:blur(14px);border-radius:4px;overflow:hidden}.scene-nav button{border:0;border-right:1px solid #ffffff30;background:transparent;color:#fff;padding:16px 23px;font-size:12px;letter-spacing:.04em}.scene-nav button span{font-size:14px;letter-spacing:0;margin-left:12px}.scene-nav button[aria-pressed=true]{background:var(--accent);color:var(--ink)}.scene-nav button:last-child{border:0}.journey-hint{font-size:12px;margin:0}.journey-skip{font-size:12px;border-bottom:1px solid #ffffff70;margin-left:auto}.journey-bottom small{flex-basis:100%;font-size:10px;color:#d6e2d9}.scene-callout{position:absolute;left:57%;top:59%;display:flex;align-items:center;gap:10px;transition:opacity .2s;pointer-events:none}.scene-callout.roof{left:54%;top:27%}.scene-callout span{width:12px;height:12px;border:2px solid #fff;box-shadow:0 0 0 7px #ffffff30;border-radius:100%;background:var(--accent)}.scene-callout b{font-weight:400;font-size:12px;padding:6px 12px;background:#10281ed9;border:1px solid #ffffff55}.transformation-progress{position:absolute;bottom:0;width:100%;height:3px;background:#ffffff20}.transformation-progress span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.homecoming{position:relative;background:var(--dark)}.homecoming-ready{height:210svh}.homecoming-ready .villa-closing{position:sticky;top:0;height:100svh}.homecoming-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65%;opacity:0}.homecoming-ready .homecoming-film{opacity:1}.homecoming-cue{position:absolute;bottom:32px;font-size:12px;color:#e8efdf}.homecoming .closing-landscape{inset:0}.homecoming .closing-landscape img{transform:none}.homecoming .villa-closing:before{background:linear-gradient(0deg,#082017b0,#08201744 70%)}
@media(max-width:700px){.transformation.scroll-enabled{height:310svh}.transformation-stage{min-height:0;height:100svh}.villa-camera{inset:20% -16% 15%}.villa-camera img{object-fit:contain;object-position:center}.transformation-shade{background:linear-gradient(0deg,#10271f 9%,transparent 33%,transparent 65%,#10271f 94%)}.transformation-copy{top:4svh;left:6vw;right:6vw;max-width:none}.transformation-copy .eyebrow{font-size:9px;margin-bottom:14px}.transformation-copy h2{font-size:34px;margin-bottom:12px}.transformation-copy h2 br{display:none}.transformation-copy>p:last-child{font-size:13px;max-width:90%}.journey-bottom{left:6vw;right:6vw;bottom:20px;gap:12px}.scene-nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.scene-nav button{padding:12px 6px;font-size:10px}.scene-nav button span{font-size:12px;margin-left:5px}.journey-hint,.journey-skip{font-size:10px}.journey-bottom small{font-size:9px}.scene-callout{left:38%;top:57%}.scene-callout.roof{left:38%;top:39%}.scene-callout b{font-size:10px}.cinema-journey .hero,.cinema-journey.film-ready .hero{min-height:0;height:100svh}.cinematic-hero .hero-content{padding-top:7svh;padding-bottom:180px}.cinematic-hero .hero-content h1{font-size:clamp(36px,8vw,52px)}.cinematic-hero .hero-content>p:not(.eyebrow){font-size:15px}.cinematic-hero .hero-content .eyebrow{font-size:10px}.cinematic-hero .hero-note{max-width:260px;font-size:11px}.cinematic-hero .image-caption{font-size:9px;bottom:16px;right:6vw}.cinematic-hero .hero-index{bottom:45px;font-size:11px}.cinema-controls{bottom:78px}.homecoming-ready .villa-closing{min-height:0}.homecoming-ready{height:180svh}}
@media(prefers-reduced-motion:reduce){.transformation.scroll-enabled,.homecoming-ready{height:auto}.scroll-enabled .transformation-stage,.homecoming-ready .villa-closing{position:relative}.journey-hint,.homecoming-cue{display:none}.villa-camera{transform:none!important}.homecoming-film{display:none}.transformation-progress{display:none}}
/* Reserve scene space before media loads, so navigation never jumps. */
.cinema-journey{height:250svh}.cinema-journey .hero{position:sticky;top:0;height:100svh;min-height:0}.cinematic-hero .hero-content{opacity:var(--hero-copy,1);transform:translateY(calc((1 - var(--hero-copy,1))*-32px))}.cinematic-hero .hero-shade{opacity:calc(.3 + var(--hero-copy,1)*.7)}.homecoming{height:210svh}.homecoming .villa-closing{position:sticky;top:0;height:100svh;min-height:0}.transformation-stage{min-height:0}.scene-callout.roof{top:34%}
@media(max-width:700px){.cinema-journey{height:220svh}.homecoming{height:180svh}.scene-callout.roof{top:42%}}
@media(prefers-reduced-motion:reduce){.cinema-journey,.homecoming{height:auto}.cinema-journey .hero,.homecoming .villa-closing{position:relative;min-height:620px}.cinematic-hero .hero-content{opacity:1;transform:none}.cinematic-hero .hero-shade{opacity:1}}
/* Finish each shot before releasing its sticky stage; preserve native scrolling. */
@media(prefers-reduced-motion:no-preference){
 .cinema-journey,.transformation,.homecoming{--scene-hold:.5}
 .cinema-journey,.cinema-journey.film-ready{height:300svh}
 .transformation.scroll-enabled{height:430svh}
 .homecoming,.homecoming.homecoming-ready{height:330svh}
 @media(max-width:700px){
  .cinema-journey,.cinema-journey.film-ready{height:270svh}
  .transformation.scroll-enabled{height:360svh}
  .homecoming,.homecoming.homecoming-ready{height:300svh}
 }
}
