@import url('https://fonts.googleapis.com/css2?family=Golos+Text:wght@400;450;500;550;600;650&display=swap');
:root{--paper:#f6f5f1;--ink:#2c332b;--white:#faf9f5;--green:#4d6048;--ease:cubic-bezier(.2,.7,.2,1);font-family:'Golos Text',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #839276;outline-offset:5px}.skip{position:fixed;top:-100px;left:16px;z-index:20;background:white;padding:12px}.skip:focus{top:16px}
.header{height:98px;max-width:1800px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{font-size:28px;letter-spacing:-1.4px;font-weight:550;display:flex;gap:14px;align-items:center;white-space:nowrap}.brand-symbol{width:25px;height:25px;border:1.5px solid var(--green);border-top:0;position:relative;margin-top:8px}.brand-symbol:before{content:'';width:18px;height:18px;border-left:1.5px solid var(--green);border-top:1.5px solid var(--green);position:absolute;top:-9px;left:2px;transform:rotate(45deg)}.header nav{display:flex;gap:38px;font-size:13px;margin-left:auto;margin-right:60px}.header nav a:hover{color:var(--green)}.header-contact{font-size:13px;color:var(--white);background:var(--green);padding:15px 20px;border-radius:7px;display:flex;gap:25px;align-items:center}.button-dot{height:6px;width:6px;border-radius:50%;background:currentColor;flex:none}main{max-width:1800px;padding:0 24px;margin:auto}
.hero{position:relative;background:#252d23;border-radius:16px;overflow:hidden;height:calc(100svh - 204px);min-height:650px;max-height:920px;color:var(--white);isolation:isolate}.photo-layer{position:absolute;inset:-10px;z-index:-3;transform:translate3d(var(--photo-x,0px),var(--photo-y,0px),0);transition:transform 1.2s var(--ease)}.portrait{height:100%;width:100%;object-fit:cover;object-position:center;animation:photo-in 1.7s var(--ease) both}.photo-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#172015c9,#17201588 36%,#17201515 70%),linear-gradient(0deg,#10191070,transparent 40%)}.hero-top{position:absolute;left:48px;right:48px;top:34px;display:flex;justify-content:space-between;gap:24px;font-size:12px;color:#e4e8dc}.hero-top p{margin:0}.hero-copy{position:relative;padding:clamp(120px,17vh,200px) 0 0 48px;max-width:750px}h1{font-size:clamp(46px,4.5vw,76px);line-height:1.06;font-weight:450;letter-spacing:-.06em;margin:0 0 26px}.line{display:block;animation:type-in 1.1s var(--ease) both}.line:nth-child(2){animation-delay:.12s}.line:nth-child(3){animation-delay:.24s}.intro{font-size:15px;line-height:1.7;color:#e0e3d9;margin:0 0 32px}.hero-actions{display:flex;gap:28px;align-items:center}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--white);color:var(--ink);font-size:14px;font-weight:500;min-height:52px;padding:16px 22px;border-radius:7px;transition:background .25s}.primary:hover{background:#e4e8db}.quiet{font-size:14px;display:flex;align-items:center;gap:18px;padding:14px 0}.quiet span{font-size:22px}.hero-bottom{position:absolute;left:48px;right:48px;bottom:34px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;font-size:13px;line-height:1.55}.hero-bottom p{margin:0;color:#d4ddcc}.hero-house{border-bottom:1px solid #ffffff60;padding-bottom:8px;display:flex;gap:28px;align-items:center}.hero-house span{font-size:20px}.service-strip{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;align-items:center;gap:24px;min-height:106px;padding:20px 24px}.strip-label{color:#7c8175;font-size:12px;line-height:1.5}.service-strip p{font-size:14px;display:flex;align-items:center;gap:18px;margin:0}.service-strip p span{font-size:12px;color:#77806d;border:1px solid #bcc5b3;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
h2{font-size:clamp(34px,3.8vw,58px);font-weight:450;letter-spacing:-.055em;line-height:1.08;margin:0}.projects{padding:94px 24px 64px;scroll-margin-top:24px}.projects-heading,.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}.projects-heading>p,.section-heading>p{font-size:14px;line-height:1.65;color:#72786b;margin:0;max-width:340px}.project-stack{--stack-top:24px;--stack-height:calc(100svh - 48px);display:grid;grid-template-columns:1fr;row-gap:14svh;padding-bottom:14svh;isolation:isolate}.project{position:sticky;top:var(--stack-top);background:var(--paper);padding:12px;border-radius:18px;transform:scale(var(--stack-scale,1));transform-origin:50% 0;filter:brightness(var(--stack-brightness,1));box-shadow:0 -8px 32px #0000000b;will-change:transform}.project:nth-child(1){z-index:1}.project:nth-child(2){z-index:2}.project:nth-child(3){z-index:3}.project-cover{display:block;width:100%;padding:0;text-align:left;overflow:hidden;border-radius:10px;background:#29372b;color:var(--white)}.project-visual{position:relative;height:calc(var(--stack-height) - 116px);overflow:hidden}.project-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.house-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0f1b13c9,transparent 65%),linear-gradient(90deg,#0f1b1330,transparent)}.house-copy{position:absolute;left:48px;bottom:46px;max-width:520px}.house-type{font-size:12px;color:#e1e6da}.house-copy h3{font-size:clamp(46px,5vw,76px);font-weight:450;line-height:1.05;letter-spacing:-.06em;margin:16px 0}.house-copy p{font-size:14px;line-height:1.65;max-width:420px;margin:0;color:#e5e8de}.open-concept{position:absolute;bottom:48px;right:40px;display:flex;align-items:center;gap:25px;background:#f6f5f1;color:var(--ink);border-radius:7px;padding:15px 19px;font-size:13px}.open-concept>span{font-size:20px;line-height:1}.project-meta{display:flex;align-items:center;gap:48px;height:92px;padding:14px 12px 0;font-size:13px;color:#6e7567}.house-area{font-size:32px;letter-spacing:-1.2px;color:var(--ink)}.house-area small{font-size:16px}.concept-tag{font-size:12px;line-height:1.2;border:1px solid #c6ccbF;border-radius:30px;padding:7px 12px;white-space:nowrap;display:inline-block}.project-meta .concept-tag{margin-left:auto}.concept-note{font-size:12px;line-height:1.65;color:#7c8175;margin:32px 12px 0;max-width:720px}
.process{padding:60px 36px 110px}.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:64px}.process-steps article{border-top:1px solid #c7cdbf;padding-top:22px}.process-steps article>span{font-size:12px;color:#7c8573}.process-steps h3{font-size:22px;letter-spacing:-.7px;font-weight:500;margin:32px 0 14px}.process-steps p{font-size:14px;line-height:1.7;color:#707868;max-width:250px;margin:0}.closing{background:#e3e8dd;border-radius:16px;padding:78px 48px 86px;text-align:center}.closing>p{font-size:13px;color:#707a67;margin:0 0 24px}.closing h2{margin-bottom:32px}.closing .primary{background:var(--green);color:white}footer{max-width:1800px;margin:auto;padding:46px 60px;display:flex;align-items:center;justify-content:space-between;gap:30px}footer p{font-size:11px;color:#838879;line-height:1.7;margin:0}
dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;border:0;border-radius:16px;padding:32px;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0008}dialog::backdrop{background:#13200fb0;backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.dialog-head .wordmark{font-size:24px}.close{background:transparent;font-size:30px;line-height:1;width:40px;height:40px;border:1px solid #d1d7ca;border-radius:50%;color:var(--ink);flex:none}dialog h2{font-size:34px;margin-bottom:20px}.dialog-intro{font-size:14px;line-height:1.6;color:#737b6a}label{display:block;font-size:13px;margin:18px 0 9px}input,textarea{width:100%;padding:14px 15px;border:1px solid #c9d0c1;background:#fffefa;border-radius:7px;color:var(--ink);font-size:16px;line-height:1.5}textarea{resize:vertical}input:focus,textarea:focus{outline:2px solid var(--green);outline-offset:2px}.dialog-submit{width:100%;margin-top:20px;justify-content:center;background:var(--green);color:var(--white)}.local-note{font-size:12px;line-height:1.6;color:#777e70;margin-bottom:0}.project-dialog{width:min(1040px,calc(100vw - 32px));padding:0;max-height:calc(100svh - 48px)}.project-dialog-head{padding:20px 28px;display:flex;align-items:center;justify-content:space-between}.project-dialog>img{width:100%;height:clamp(220px,40vw,430px);object-fit:cover;display:block}.project-dialog-copy{padding:32px 40px 38px}.project-dialog-copy h2{font-size:40px;margin-bottom:12px}.project-dialog-copy>p{font-size:15px;line-height:1.65;color:#757d6a}.project-dialog-copy dl{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin:30px 0}.project-dialog-copy dt{font-size:14px;font-weight:550;margin-bottom:12px}.project-dialog-copy dd{margin:0;font-size:14px;line-height:1.7;color:#65705a}.project-dialog-copy>p.local-note{font-size:12px}
@keyframes photo-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes type-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.header{padding:0 32px}.header nav{margin-right:10px;gap:20px}.hero-copy{padding-left:32px}.hero-top,.hero-bottom{left:32px;right:32px}.house-copy{left:32px;max-width:420px}.house-copy p{max-width:350px}.open-concept{right:28px}.process-steps{gap:24px}.process-steps h3{font-size:19px}}
@media(max-height:800px) and (min-width:761px){.header{height:82px}.hero{height:calc(100svh - 166px);min-height:500px}.hero-copy{padding-top:102px}h1{font-size:clamp(42px,4.4vw,62px);margin-bottom:22px}.intro{margin-bottom:26px;font-size:14px}.hero-top{top:25px}.hero-bottom{bottom:26px}.service-strip{min-height:84px}}
@media(max-width:760px){.header{height:82px;padding:0 22px;gap:18px}.wordmark{font-size:24px;gap:10px}.brand-symbol{width:20px;height:20px}.brand-symbol:before{width:15px;height:15px;top:-8px;left:1px}.header nav{display:none}.header-contact{font-size:11px;padding:12px;gap:12px}main{padding:0 12px}.hero{min-height:740px;max-height:none;height:calc(100svh - 94px);border-radius:12px}.hero-top{top:25px;left:24px;right:24px;font-size:11px}.hero-top>span{display:none}.hero-copy{padding:88px 24px 0;max-width:100%}h1{font-size:clamp(36px,9.3vw,56px);line-height:1.07;margin-bottom:23px}.intro{font-size:13px;line-height:1.65;max-width:280px}.intro br{display:none}.hero-actions{gap:19px}.primary{font-size:12px;padding:14px 16px;min-height:47px;gap:20px}.quiet{font-size:12px;gap:8px}.photo-layer{inset:0}.portrait{object-position:66% center}.photo-shade{background:linear-gradient(180deg,#172015df,#172015b8 36%,#17201514 65%,#17201570)}.hero-bottom{left:24px;right:24px;bottom:24px;font-size:11px}.hero-house{gap:15px}.service-strip{grid-template-columns:1fr;gap:20px;padding:28px 12px}.strip-label{display:none}.service-strip p{font-size:14px}.projects{padding:48px 0 36px}.projects-heading,.section-heading{display:block;margin-bottom:28px;padding:0 12px}.projects-heading h2,h2{font-size:34px}.projects-heading>p,.section-heading>p{margin-top:20px;font-size:13px}.project-stack{--stack-top:12px;--stack-height:calc(100svh - 24px);row-gap:10svh;padding-bottom:10svh}.project{padding:6px;border-radius:14px}.project-visual{height:calc(var(--stack-height) - 102px);min-height:420px}.project-visual>img{object-position:65% center}.house-copy{left:22px;right:22px;bottom:100px}.house-type{font-size:11px}.house-copy h3{font-size:48px;margin:12px 0}.house-copy p{font-size:13px;max-width:280px}.house-shade{background:linear-gradient(0deg,#10200ed9,#10200e50 50%,transparent)}.open-concept{bottom:24px;left:22px;right:auto;font-size:12px;padding:12px 16px}.project-meta{height:90px;gap:20px;padding:12px 8px 0;flex-wrap:wrap;font-size:11px}.house-area{font-size:27px}.project-meta .concept-tag{display:none}.concept-note{margin-top:22px}.process{padding:48px 12px 64px}.process .section-heading{padding:0}.process-steps{grid-template-columns:1fr 1fr;gap:30px 24px;margin-top:38px}.process-steps h3{margin:22px 0 12px;font-size:19px}.process-steps p{font-size:12px}.closing{padding:58px 24px 64px}footer{padding:32px 24px;display:block}footer p{margin-top:24px}dialog{padding:24px}.project-dialog{padding:0}.project-dialog-head{padding:17px 22px}.project-dialog-copy{padding:26px 24px}.project-dialog-copy dl{grid-template-columns:1fr;gap:24px}.project-dialog-copy h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.photo-layer{transform:none}.project{position:relative;transform:none!important;filter:none!important;will-change:auto}}
/* Compact typographic identity and navigation. */
.header{position:relative;z-index:5;gap:32px}.wordmark{gap:10px;letter-spacing:-1.2px}.brand-mark{display:block;color:var(--green);width:38px;height:38px;flex:none}.brand-mark svg{display:block;width:100%;height:100%}.brand-name{display:flex;flex-direction:column;gap:0;font-size:22px;font-weight:600;line-height:.87;letter-spacing:-1.2px}.brand-name>span{font-weight:450}.header nav{gap:32px;margin-right:26px}.header-contact{white-space:nowrap}.menu-toggle{display:none}.house-price{margin-left:auto;display:flex;flex-direction:column;gap:7px;color:var(--ink);text-align:right;white-space:nowrap}.house-price strong{font-size:24px;font-weight:500;letter-spacing:-.7px}.house-price small{font-size:11px;color:#7a8171}.project-meta{gap:36px}#home-prices{scroll-margin-top:30px}.closing{scroll-margin-top:24px}.project-dialog-copy>p.dialog-price{font-size:20px;color:var(--green);font-weight:500}
@media(max-width:1100px){.header{gap:24px}.header nav{gap:22px;margin-right:0;font-size:12px}}
@media(max-width:1000px){.header{height:90px;padding-inline:28px}.header-contact{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:42px;height:42px;background:transparent;color:var(--ink);padding:10px}.menu-toggle span{height:1.5px;background:currentColor;display:block;width:22px;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.header nav{display:none;position:absolute;left:24px;right:24px;top:calc(100% - 4px);padding:16px 24px 24px;background:var(--paper);border:1px solid #d7dccf;border-radius:12px;box-shadow:0 15px 30px #23331a12}.header nav.is-open{display:flex;flex-direction:column;gap:0}.header nav a{padding:14px 0;font-size:16px;border-bottom:1px solid #d7dccf}.header nav a:last-child{border-bottom:0}}
@media(max-width:760px){.header{height:82px;padding-inline:22px;gap:12px}.brand-mark{width:31px;height:31px}.brand-name{font-size:20px}.wordmark{gap:7px}.header-contact{font-size:11px;padding:12px;gap:10px}.menu-toggle{width:34px;padding:6px}.project-meta{height:112px;display:grid;grid-template-columns:auto 1fr auto;gap:9px 17px;padding:15px 8px 10px}.house-area{grid-row:1 / 3;font-size:26px;align-self:center}.house-price{grid-column:3;grid-row:1 / 3;align-self:center;gap:6px}.house-price strong{font-size:18px;letter-spacing:-.6px}.house-price small{font-size:10px}.project-meta>span:nth-child(2){align-self:end}.project-meta>span:nth-child(3){align-self:start}.project-visual{height:calc(var(--stack-height) - 124px)}.project-meta{font-size:10px}#home-prices{scroll-margin-top:24px}}
@media(max-width:370px){.header{padding-inline:16px;gap:8px}.header-contact{gap:7px;padding:11px 9px;font-size:10px}.house-price strong{font-size:16px}.project-meta{gap:9px 12px}}

/* Identity colours from the supplied logo reference. */
:root{--green:#283426;--olive:#aaa574}.brand-mark{width:46px;height:46px}.brand-name{font-family:'Golos Text',Arial,sans-serif;text-transform:uppercase;font-weight:650;font-size:23px;letter-spacing:-.7px;line-height:1.04}.brand-name>span{font-weight:650}.wordmark{gap:13px}.header-contact:hover,.closing .primary:hover,.dialog-submit:hover{background:#43523b}.service-strip p span{border-color:var(--olive);color:#7f7c50}.house-price small{color:#858052}.closing{background:#e8e8dd}button:focus-visible,a:focus-visible{outline-color:var(--olive)}
@media(max-width:760px){.brand-mark{width:37px;height:37px}.brand-name{font-size:18px;letter-spacing:-.5px}.wordmark{gap:9px}}
@media(max-width:370px){.brand-mark{width:32px;height:32px}.brand-name{font-size:16px}.wordmark{gap:7px}}

.hero-project-badge{display:flex;align-items:center;gap:16px;padding:17px 22px;background:#242a20b8;backdrop-filter:blur(14px);border:1px solid #ffffff18;border-radius:14px;color:#f4f3e9;box-shadow:0 8px 30px #00000012}.hero-project-badge>svg{width:26px;height:26px;flex:none;color:#d0d1b7}.hero-project-badge>span{display:flex;flex-direction:column;gap:5px}.hero-project-badge strong{font-size:14px;font-weight:500}.hero-project-badge small{font-size:11px;color:#d7d8c9}.hero-project-badge:hover{background:#313a29da}.hero-top{align-items:flex-start}.hero-top>p{padding-top:6px}
@media(max-width:760px){.hero-project-badge{position:absolute;top:410px;right:0;gap:11px;padding:13px 15px;border-radius:11px}.hero-project-badge>svg{width:21px;height:21px}.hero-project-badge strong{font-size:12px}.hero-project-badge small{font-size:10px}.hero-top>p{padding-top:0}}
/* Keep the roof in frame on wide hero layouts. */
@media(min-width:761px){.hero .portrait{object-position:50% 24%}}

/* Project label follows the supplied location-pin reference. */
.hero-project-badge{gap:19px;padding:20px 24px;border:0;border-radius:16px;background:#262720d6;backdrop-filter:blur(12px);box-shadow:none}.hero-project-badge>svg.badge-pin{width:31px;height:39px;color:#eeeede}.hero-project-badge>svg.badge-arrow{width:25px;height:25px;margin-left:15px;color:#eeeede}.hero-project-badge>span{gap:7px}.hero-project-badge strong{font-size:16px;font-weight:500}.hero-project-badge small{font-size:12px;color:#cacbbd}.hero-project-badge:hover{background:#33362ce8}
@media(max-width:760px){.hero-project-badge{gap:13px;padding:16px 18px;border-radius:13px}.hero-project-badge>svg.badge-pin{width:24px;height:30px}.hero-project-badge>svg.badge-arrow{width:21px;height:21px;margin-left:6px}.hero-project-badge strong{font-size:13px}.hero-project-badge small{font-size:10px}.hero-project-badge>span{gap:5px}}
/* A smaller, lightly frosted label lets the architecture remain visible. */
.hero-project-badge{gap:13px;padding:13px 17px;border-radius:12px;background:linear-gradient(135deg,#ffffff13,#ffffff03),#20251d59;border:1px solid #ffffff26;backdrop-filter:blur(10px) saturate(110%);-webkit-backdrop-filter:blur(10px) saturate(110%);box-shadow:inset 0 1px 0 #ffffff0d,0 4px 16px #0000000a}.hero-project-badge>svg.badge-pin{width:24px;height:30px}.hero-project-badge>svg.badge-arrow{width:20px;height:20px;margin-left:6px}.hero-project-badge>span{gap:5px}.hero-project-badge strong{font-size:14px}.hero-project-badge small{font-size:10px;color:#e0e1d5}.hero-project-badge:hover{background:linear-gradient(135deg,#ffffff1a,#ffffff06),#20251d70}
@media(max-width:760px){.hero-project-badge{gap:11px;padding:12px 14px;border-radius:11px}.hero-project-badge>svg.badge-pin{width:21px;height:27px}.hero-project-badge>svg.badge-arrow{width:18px;height:18px;margin-left:4px}.hero-project-badge strong{font-size:12px}.hero-project-badge small{font-size:9px}}
/* Scroll opens an architectural sheet before the next house arrives. */
.project-stack{row-gap:78svh;padding-bottom:78svh}.project-media{position:relative;overflow:hidden;border-radius:10px;background:#29372b}.project-cover{border-radius:0}.project-visual>img{transform:translateX(calc(var(--plan-progress,0) * -13%)) scale(calc(1 + var(--plan-progress,0) * .035));will-change:transform}.project .house-copy{max-width:40%;bottom:100px}.project .house-copy p{max-width:340px}.project .open-concept{left:48px;right:auto;bottom:30px}.plan-panel{position:absolute;inset:0 0 0 50%;background:var(--paper);color:var(--green);transform:translateX(calc((1 - var(--plan-progress,0)) * 101%));visibility:hidden;pointer-events:none;border-left:1px solid #c7ccbf;will-change:transform}.project.plan-entered .plan-panel{visibility:visible;pointer-events:auto}.plan-sheet{height:100%;padding:clamp(18px,2.6vw,40px);display:flex;flex-direction:column;gap:12px}.plan-heading{display:flex;justify-content:space-between;align-items:center}.plan-heading p{margin:0 0 7px;font-size:12px;color:#78806e}.plan-heading h4{font-size:clamp(22px,2.4vw,36px);letter-spacing:-1px;font-weight:450;margin:0;color:var(--ink)}.plan-mark{font-size:36px;font-weight:400}.floor-drawing{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.floor-drawing[hidden]{display:none}.floor-drawing svg{display:block;width:100%;height:100%;max-height:540px;font-family:'Golos Text',Arial,sans-serif}.plan-wall{stroke-dasharray:1800;stroke-dashoffset:calc((1 - var(--wall-progress,0)) * 1800)}.plan-guides,.plan-door,.plan-furniture,.plan-labels{opacity:var(--detail-progress,0)}.plan-caption{margin:0;font-size:10px;line-height:1.5;color:#7b8272;padding-bottom:42px}.floor-tabs{display:flex;gap:6px}.floor-tab{border:1px solid #c9cfbf;background:transparent;color:#76816b;border-radius:5px;padding:6px 12px;font-size:11px}.floor-tab[aria-pressed=true]{background:#e2e8db;border-color:#aebca1;color:var(--ink)}.view-plan{position:absolute;right:26px;bottom:24px;display:flex;align-items:center;gap:22px;padding:12px 16px;border-radius:6px;background:#e3e8dc;color:var(--ink);font-size:12px;z-index:2}.scroll-plan-hint{position:absolute;left:48px;top:30px;display:flex;gap:20px;color:#f2f4ea;font-size:11px;opacity:calc(1 - var(--plan-progress,0))}.scroll-plan-hint span{font-size:17px;line-height:12px}.plan-dialog{width:min(850px,calc(100vw - 24px));padding:0}.plan-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid #d6dbcf}.plan-dialog-head h2{font-size:22px;margin:0;letter-spacing:-.7px}.plan-dialog .plan-heading{display:none}.plan-dialog .plan-sheet{--wall-progress:1;--detail-progress:1;padding:20px 40px 28px;min-height:500px}.plan-dialog .floor-drawing svg{height:60svh;min-height:360px;max-height:620px}.plan-dialog .plan-caption{padding-bottom:0}.view-plan:focus-visible{outline-offset:-4px}
@media(max-width:1100px) and (min-width:761px){.project .house-copy{left:28px;max-width:43%}.project .house-copy h3{font-size:52px}.project .open-concept,.scroll-plan-hint{left:28px}.plan-sheet{padding:22px}.plan-caption{font-size:9px}}
@media(max-width:760px){.project-stack{row-gap:75svh;padding-bottom:75svh}.project-media{border-radius:9px}.project .project-visual{min-height:0;height:calc(var(--stack-height) - 102px)}.project-visual>img{transform:translateY(calc(var(--plan-progress,0) * -13%)) scale(calc(1 + var(--plan-progress,0) * .04))}.plan-panel{inset:38% 0 0;border-left:0;border-top:1px solid #c7ccbf;transform:translateY(calc((1 - var(--plan-progress,0)) * 101%))}.project .house-copy{left:20px;right:20px;max-width:none;bottom:104px;transform:translateY(calc(var(--plan-progress,0) * -40svh))}.project .house-copy h3{font-size:44px;margin:10px 0}.project .house-copy p{font-size:12px;opacity:calc(1 - var(--plan-progress,0))}.project .house-type{font-size:10px}.project .open-concept{left:20px;bottom:22px;opacity:calc(1 - var(--plan-progress,0))}.project.plan-entered .open-concept{visibility:hidden}.scroll-plan-hint{left:20px;top:20px;font-size:10px}.plan-sheet{padding:14px 18px;gap:6px}.plan-heading p{font-size:10px;margin-bottom:3px}.plan-heading h4{font-size:22px}.plan-mark{font-size:26px}.floor-drawing svg{max-height:none}.plan-caption{font-size:8px;padding-bottom:34px}.view-plan{right:16px;bottom:14px;font-size:10px;padding:10px 12px;gap:10px}.floor-tab{font-size:10px;padding:4px 10px}.plan-dialog-head{padding:15px 20px}.plan-dialog-head h2{font-size:20px}.plan-dialog .plan-sheet{padding:20px;min-height:0}.plan-dialog .floor-drawing svg{height:62svh;min-height:320px}}
@media(prefers-reduced-motion:reduce){.project-stack{row-gap:32px;padding-bottom:0}.project-media{display:grid;grid-template-columns:1fr 1fr}.plan-panel{position:relative;inset:auto;transform:none;visibility:visible;pointer-events:auto}.project-visual>img{transform:none;will-change:auto}.project .house-copy{transform:none}.plan-wall{stroke-dashoffset:0}.plan-guides,.plan-door,.plan-furniture,.plan-labels{opacity:1}.scroll-plan-hint{display:none}.plan-caption{padding-bottom:40px}.project .project-visual{min-height:500px}}
@media(prefers-reduced-motion:reduce) and (max-width:760px){.project-media{display:block}.project .project-visual{height:380px;min-height:0}.project .house-copy{bottom:86px}.plan-panel{height:500px}.project .open-concept{visibility:visible;opacity:1}.project .house-copy p{opacity:1}}
@media(prefers-reduced-motion:reduce) and (min-width:761px){.project .house-copy{left:32px;max-width:calc(100% - 64px)}.project .house-copy h3{font-size:clamp(40px,4vw,64px)}.project .open-concept{left:32px}}
/* Smooth the outgoing stack layer while retaining native page scrolling. */
html{scroll-behavior:smooth}.project-stack .project{transition:transform .38s cubic-bezier(.22,.61,.36,1),filter .38s cubic-bezier(.22,.61,.36,1)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-stack .project{transition:none}}
/* A final grid track keeps the last card pinned through its plan reveal.
   Padding lies outside sticky's content boundary and cannot provide this hold. */
.project-stack{padding-bottom:0}.project-stack::after{content:"";height:0}
@media(prefers-reduced-motion:reduce){.project-stack::after{display:none}}

/* The existing header settles to the same outer width as the hero on scroll. */
:root{--header-compact-height:72px;--header-clearance:88px}
.header-space{height:98px}
.header{position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(100%,1800px);margin:0;z-index:15;background:var(--paper);transition:width .32s var(--ease),height .32s var(--ease),padding .32s var(--ease),border-radius .32s var(--ease),box-shadow .32s var(--ease)}
.header.is-scrolled{width:min(calc(100% - 48px),1752px);height:var(--header-compact-height);padding-inline:24px;border-radius:0 0 18px 18px;box-shadow:0 8px 24px #28342612,0 1px 0 #28342608}
:is(#main,#projects,#home-prices,#process,#home-selection){scroll-margin-top:var(--header-clearance)}
.project-stack{--stack-top:var(--header-clearance);--stack-height:calc(100svh - var(--header-clearance) - 24px)}
@media(min-width:901px){.process-story .process-intro{top:var(--header-clearance)}}
@media(max-height:800px) and (min-width:761px){.header-space{height:82px}}
@media(max-width:1000px){.header-space{height:90px}.header.is-scrolled{padding-inline:16px}.header.is-scrolled nav{left:0;right:0;top:100%;border-radius:0 0 14px 14px}}
@media(max-width:760px){
  :root{--header-compact-height:64px;--header-clearance:80px}
  .header-space{height:82px}
  .header.is-scrolled{width:calc(100% - 24px);padding-inline:10px;border-radius:0 0 14px 14px}
  .project-stack{--stack-height:calc(100svh - var(--header-clearance) - 12px)}
}
@media(max-width:370px){.header.is-scrolled{padding-inline:8px}}

/* On mobile, the project label belongs to the image footer. */
@media(max-width:760px){
  .hero-top{display:contents}
  .hero-top>p{position:absolute;top:25px;left:24px;right:24px}
  .hero-project-badge{top:auto;bottom:24px;left:24px;right:24px;min-height:58px}
  .hero-project-badge>svg.badge-arrow{margin-left:auto}
  .hero-bottom{bottom:98px}
  .hero-bottom .hero-house{display:none}
  .hero-actions{gap:16px}
  .hero-actions .quiet{min-height:48px}
}
@media(max-width:360px){
  .hero-actions{flex-direction:column;align-items:stretch;gap:8px}
  .hero-actions .primary{width:100%;min-height:48px}
  .hero-actions .quiet{justify-content:space-between}
}

/* Mobile audit: keep card metadata in view and make compact controls easy to tap. */
@media(max-width:760px){
  .project .project-visual{height:calc(var(--stack-height) - 124px)}
}
@media(max-width:1000px){
  .menu-toggle{width:44px;height:44px;min-width:44px;flex-shrink:0}
  .header-contact,.view-plan,.floor-tab{min-height:44px}
  .close{width:44px;height:44px}
  .plan-panel .plan-caption{padding-bottom:64px}
}
/* Short landscape screens use ordinary scrolling rather than squeezing a sticky card. */
@media(max-width:1000px) and (max-height:500px) and (orientation:landscape){
  .project-stack{row-gap:28px;padding-bottom:0}
  .project-stack::after{display:none}
  .project-stack .project{position:relative;top:auto;transform:none;filter:none;will-change:auto;transition:none}
  .project-media{display:block}
  .project .project-visual{height:340px;min-height:0}
  .project-visual>img{transform:none;will-change:auto}
  .project .house-copy{left:24px;right:24px;bottom:88px;max-width:70%;transform:none}
  .project .house-copy h3{font-size:40px;margin:10px 0}
  .project .house-copy p{opacity:1;font-size:13px}
  .project .open-concept,.project.plan-entered .open-concept{left:24px;bottom:22px;opacity:1;visibility:visible}
  .plan-panel{position:relative;inset:auto;height:440px;transform:none;border-left:0;border-top:1px solid #c7ccbf;visibility:visible;pointer-events:auto;will-change:auto}
  .plan-wall{stroke-dashoffset:0}
  .plan-guides,.plan-door,.plan-furniture,.plan-labels{opacity:1}
  .scroll-plan-hint{display:none}
}
/* Narrow phones need two distinct actions rather than overlapping labels. */
@media(max-width:480px){
  .project .house-copy{bottom:144px}
  .project .open-concept{left:20px;right:20px;bottom:70px;min-height:44px;justify-content:space-between}
  .view-plan{left:20px;right:20px;bottom:14px;justify-content:space-between}
}
/* Very short portrait windows also need cards taller than the available viewport. */
@media(max-width:480px) and (max-height:520px) and (orientation:portrait){
  .project-stack{row-gap:28px;padding-bottom:0}
  .project-stack::after{display:none}
  .project-stack .project{position:relative;top:auto;transform:none;filter:none;will-change:auto;transition:none}
  .project-media{display:block}
  .project .project-visual{height:340px;min-height:0}
  .project-visual>img{transform:none;will-change:auto}
  .project .house-copy{transform:none}
  .project .house-copy p{opacity:1}
  .project.plan-entered .open-concept{opacity:1;visibility:visible}
  .plan-panel{position:relative;inset:auto;height:440px;transform:none;border-left:0;border-top:1px solid #c7ccbf;visibility:visible;pointer-events:auto;will-change:auto}
  .plan-wall{stroke-dashoffset:0}
  .plan-guides,.plan-door,.plan-furniture,.plan-labels{opacity:1}
  .scroll-plan-hint{display:none}
}
/* A phone plan needs the full media area, especially with the two-floor controls. */
@media(max-width:760px){
  .plan-panel{inset:0}
}

/* Interface icons use SVG so iOS cannot substitute emoji glyphs. */
.ui-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:middle;pointer-events:none}.quiet .ui-icon{width:22px;height:22px}.hero-house .ui-icon{width:20px;height:20px}.view-plan .ui-icon{width:18px;height:18px}.scroll-plan-hint .ui-icon,.process-scroll-hint .ui-icon{width:18px;height:18px}.open-concept .ui-icon{width:20px;height:20px}button[id^="close-"] .ui-icon{width:22px;height:22px}

/* Touch scroll drives each frame directly rather than trailing a CSS transition. */
@media(max-width:760px){.project-stack .project{transition:none;filter:none}.project .floor-drawing{align-items:flex-start}.project .floor-drawing svg{height:auto}}
