@font-face{font-family:Space;src:url(fonts/space.ttf) format('truetype');font-weight:300 700;font-display:swap}@font-face{font-family:Manrope;src:url(fonts/manrope-latin-wght-normal.woff2) format('woff2');font-weight:200 800;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#f6f7f5;color:#15191b;font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #64752b;outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}.demo{height:27px;background:#e4ff58;color:#15191b;display:flex;align-items:center;justify-content:center;font:9px/1.2 Manrope,Arial,sans-serif;font-weight:700;letter-spacing:.1em;position:relative;z-index:20}header{height:87px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;background:#15191b;color:#f6f7f5;border-bottom:1px solid #ffffff26;position:relative;z-index:10}.logo{font:700 25px/1 Space,Arial,sans-serif;letter-spacing:-1.1px;white-space:nowrap}.logo span{font:12px Manrope;vertical-align:top;margin-left:3px}nav{display:flex;gap:36px;font-size:13px}nav a:hover{color:#e4ff58}.navcta{font-size:12px;border:1px solid #ffffff70;padding:11px 16px;border-radius:2px}.navcta span{margin-left:24px}.hero{background:#15191b;color:white;min-height:690px;display:grid;grid-template-columns:36% 64%;position:relative}.herotext{position:relative;padding:42px 0 40px 11%;z-index:2}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;line-height:1.6;margin:0 0 28px}.dot{display:inline-block;height:6px;width:6px;background:#e4ff58;border-radius:50%;margin-right:6px}h1,h2,h3{font-family:Space,Arial,sans-serif;font-weight:400;line-height:1.06;letter-spacing:-.065em;margin:0}h1{font-size:clamp(57px,5.8vw,100px);position:relative;width:115%;pointer-events:none}h1 span{color:#e4ff58}h2{font-size:clamp(44px,5.8vw,82px)}h3{font-size:30px;letter-spacing:-.04em}.intro{font-size:14px;color:#c8cdca;margin:28px 0 25px;line-height:1.7}.btn{border:0;padding:17px 21px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;font-size:12px;font-weight:700;border-radius:1px;transition:transform .25s,background .25s}.btn:hover{transform:translateY(-3px)}.accent{background:#e4ff58;color:#15191b}.accent:hover{background:#f1ffac}.scrollhint{display:flex;justify-content:space-between;max-width:220px;font-size:9px;letter-spacing:.17em;margin-top:40px;color:#aeb6b2}.heroimage{position:relative;min-width:0;min-height:690px;overflow:hidden}.photo-stack{position:absolute;inset:0}.photo-stack img{position:absolute;inset:0;object-position:56% 50%}#colourphoto{opacity:0;transition:opacity .5s}.heroimage:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#15191b24,transparent 25%);z-index:1;pointer-events:none}.photolabel{position:absolute;top:26px;left:25px;right:25px;z-index:2;display:flex;justify-content:space-between;font-size:9px;font-weight:700;letter-spacing:.12em;color:white;text-shadow:0 1px 4px #000;background:#15191b85;padding:8px 11px;width:calc(100% - 50px)}.config{position:absolute;bottom:26px;left:26px;right:26px;padding:18px 22px;background:#f6f7f5f5;backdrop-filter:blur(12px);color:#15191b;z-index:3;border:1px solid #fff}.confighead{display:flex;justify-content:space-between;font:500 19px Space;margin-bottom:13px}.confighead #colourname{font:11px Manrope;align-self:center}.swatches{display:flex;align-items:center;gap:13px}.swatch{width:32px;height:32px;background:var(--swatch);border:1px solid #15191b30;border-radius:50%;position:relative;flex-shrink:0}.swatch:after{content:'';position:absolute;inset:-5px;border:1px solid transparent;border-radius:50%;transition:border-color .2s}.swatch.active:after{border-color:#15191b}.try{font-size:8px;letter-spacing:.09em;margin-left:auto}.config p{font-size:9px;color:#525b55;line-height:1.4;margin:13px 0 0}.section{padding:110px 6%}.statement{padding-top:100px;padding-bottom:95px}.statement h2{font-size:clamp(48px,7.5vw,108px);max-width:1050px}.statement h2 span{color:#777f78}.statementbottom{display:flex;justify-content:space-between;align-items:center;margin-top:35px}.asterisk{font-size:90px;line-height:1;color:#64752b}.statementbottom p{max-width:410px;margin:0;color:#515953;font-size:15px}.material{background:#e9ece6}.sectionhead{display:grid;grid-template-columns:34% 66%;gap:0;margin-bottom:65px}.sectionhead .eyebrow{padding-top:12px}.materialgrid{display:grid;grid-template-columns:55% 35%;gap:10%;align-items:center}.imagewrap{margin:0;position:relative;height:680px;overflow:hidden}.imagewrap img{object-position:50% 60%;transition:transform 1s}.imagewrap:hover img{transform:scale(1.04)}figcaption{position:absolute;bottom:15px;left:18px;font-size:9px;letter-spacing:.12em;color:#fff;background:#15191bbd;padding:7px 11px}.minilabel{font-size:9px;letter-spacing:.13em}.materialcopy h3{font-size:40px;margin:25px 0}.materialcopy p{font-size:14px;color:#515953;min-height:90px}.materialtabs{margin:30px 0}.materialtabs button{background:none;border:0;border-top:1px solid #b9c2b7;width:100%;display:flex;padding:19px 4px;text-align:left;gap:22px;font-size:10px;color:#586357}.materialtabs button:last-child{border-bottom:1px solid #b9c2b7}.materialtabs button span{font:22px Space;flex:1;line-height:1}.materialtabs button.selected{color:#15191b;font-weight:700}.materialtabs button.selected span{transform:translateX(7px)}.materialcopy .fine{font-size:10px;min-height:0}.projects{background:#15191b;color:#f6f7f5}.muted{font-size:12px;line-height:1.8;color:#aeb7b1;margin:25px 0 0}.projectgrid{display:grid;grid-template-columns:1fr 1fr;gap:65px 6%}.projectphoto{position:relative;height:600px;overflow:hidden}.projectphoto img{transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.project:hover img{transform:scale(1.035)}.projectbadge{position:absolute;left:16px;top:16px;background:#f6f7f5;color:#15191b;font-size:8px;letter-spacing:.12em;padding:7px 11px}.project.offset{padding-top:180px}.offset .projectphoto{height:460px}.projectcaption{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid #ffffff30}.projectcaption h3{font-size:26px}.projectcaption span{font-size:8px;letter-spacing:.08em;color:#b8c1ba}.project.wide{grid-column:1/-1}.wide .projectphoto{height:540px}.wide img{object-position:50% 60%}.process{display:grid;grid-template-columns:43% 47%;gap:10%;background:#f6f7f5}.process h2{font-size:clamp(45px,4.8vw,67px)}.processphoto{height:280px;margin-top:45px;overflow:hidden}.steps{padding-top:50px}.step{display:flex;gap:30px;padding:30px 0;border-top:1px solid #bdc3be}.step>span{font:14px Space;color:#667360}.step h3{font-size:28px}.step p{font-size:13px;color:#515953;max-width:370px;margin-bottom:0}.contact{background:#e4ff58}.contactgrid{display:grid;grid-template-columns:55% 35%;gap:10%;align-items:center}.contact h2{font-size:clamp(50px,6vw,88px)}.contact h2 span{color:#4c5b0b}.contactbox>p{font-size:16px;margin:0 0 20px}.choices{display:flex;flex-direction:column;gap:8px}.choices button{border:1px solid #15191b55;padding:12px 17px;background:transparent;text-align:left;font-size:12px}.choices button[aria-pressed=true]{background:#15191b;color:#fff}.choices button[aria-pressed=true]:after{content:'✓';float:right}.contactbox label{font-size:10px;display:block;margin:22px 0 6px}.contactbox select{width:100%;background:transparent;border:0;border-bottom:1px solid #15191b;padding:12px 0;border-radius:0;font-size:12px;color:#15191b}.contactbox .btn{margin-top:25px;width:100%;background:#15191b;color:white}.contactbox .contactnote{font-size:10px;margin:14px 0 0;line-height:1.6}footer{background:#15191b;color:#fff;padding:60px 6% 25px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:30px;align-items:center}footer>p{font-size:8px;letter-spacing:.13em}footer>div{display:flex;gap:18px}footer button{color:#c0c8c3;background:transparent;border:0;font-size:10px;min-height:44px;padding:0}footer small{width:100%;font-size:9px;color:#919d94;border-top:1px solid #ffffff25;padding-top:20px}dialog{border:0;background:#f6f7f5;max-width:640px;width:calc(100% - 30px);padding:45px;max-height:85vh;overflow-y:auto;color:#15191b}dialog::backdrop{background:#101716bb;backdrop-filter:blur(5px)}dialog h2{font-size:36px;margin-bottom:24px}dialog p,dialog li{font-size:13px}dialog a{text-decoration:underline;overflow-wrap:anywhere}.close{position:absolute;top:8px;right:10px;background:transparent;border:0;width:44px;height:44px}.sr{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.reveal{transition:opacity .9s,transform 1s cubic-bezier(.16,1,.3,1)}.js .reveal{opacity:0;transform:translateY(42px)}.js .fromleft{transform:translateX(-60px)}.js .fromright{transform:translateX(60px)}.js .reveal.visible{opacity:1;transform:none}@media(min-width:1600px){.hero{min-height:800px}.heroimage{min-height:800px}.herotext{padding-top:65px}}@media(max-width:1000px){h1{font-size:61px}.hero{grid-template-columns:40% 60%}.herotext{padding-left:10%}.try{display:none}.projectcaption{display:block}.projectcaption span{display:block;margin-top:9px}.materialgrid{gap:6%;grid-template-columns:55% 39%}.materialcopy h3{font-size:31px}.imagewrap{height:580px}.process{gap:6%;grid-template-columns:44% 50%}.contactgrid{grid-template-columns:52% 42%;gap:6%}}@media(max-width:760px){.demo{font-size:7px;letter-spacing:.03em;height:27px;padding:0 10px;text-align:center}header{height:73px;padding:0 6%}.logo{font-size:21px}nav{display:none}.navcta{font-size:10px;padding:8px 10px}.navcta span{margin-left:10px}.hero{display:flex;flex-direction:column;min-height:0}.herotext{padding:37px 6% 35px}.eyebrow{font-size:9px;margin-bottom:22px}h1{font-size:clamp(53px,12vw,84px);line-height:1.01;width:100%}h1 br:nth-child(2){display:none}h1 span{display:inline-block}.intro{font-size:13px;margin:22px 0}.hero .btn{padding:14px 16px;font-size:11px}.scrollhint{display:none}.heroimage{height:540px;min-height:540px}.photo-stack{inset:0 0 115px}.photo-stack img{object-position:56% 50%}.photolabel{left:15px;right:15px;top:15px;width:calc(100% - 30px);font-size:8px}.config{left:0;right:0;bottom:0;padding:19px 6%;border:0;min-height:139px}.confighead{font-size:20px}.swatches{gap:19px}.swatch{height:33px;width:33px}.try{display:block;font-size:7px;max-width:95px;line-height:1.5}.config p{font-size:8px;margin-top:14px}.section{padding:65px 6%}.statement h2{font-size:54px}.statementbottom{align-items:flex-start;gap:30px}.asterisk{font-size:58px}.statementbottom p{font-size:13px;max-width:260px}.sectionhead{display:block;margin-bottom:35px}h2{font-size:45px}.materialgrid{display:flex;flex-direction:column;gap:35px}.imagewrap{width:100%;height:470px}.materialcopy{width:100%}.materialcopy h3{font-size:34px;margin:17px 0}.materialcopy p{min-height:0;font-size:13px}.materialtabs{margin:25px 0}.materialtabs button{min-height:63px}.projectgrid{display:block}.project{margin-bottom:35px}.project.offset{padding-top:0}.projectphoto{height:440px}.offset .projectphoto{height:310px}.wide .projectphoto{height:310px}.projectcaption{display:flex;align-items:flex-start}.projectcaption h3{font-size:25px;white-space:nowrap}.projectcaption span{text-align:right;font-size:7px;margin-top:8px;max-width:115px}.project.wide{margin:0}.muted{font-size:11px}.process{display:block}.process h2{font-size:48px}.processphoto{margin-top:30px;height:240px}.steps{padding-top:35px}.step{gap:22px;padding:25px 0}.step h3{font-size:27px}.step p{font-size:12px}.contactgrid{display:block}.contact h2{font-size:55px}.contactbox{margin-top:38px}.contactbox>p{font-size:16px}.choices{flex-direction:row;flex-wrap:wrap}.choices button{font-size:10px;flex:1;white-space:nowrap;padding:12px}.contactbox label{font-size:11px}.contactbox select{font-size:13px}.contactbox .contactnote{font-size:11px}footer{padding:45px 6% 25px;gap:20px}footer>p{display:none}footer>div{width:100%;flex-wrap:wrap;gap:20px}footer small{font-size:9px}dialog{padding:40px 24px}.js .fromleft{transform:translateX(-25px)}.js .fromright{transform:translateX(25px)}}@media(max-width:360px){.logo{font-size:18px}.heroimage{min-height:490px;height:490px}.photo-stack{bottom:140px}.try{max-width:70px}.confighead{font-size:18px}.swatches{gap:16px}.statement h2{font-size:46px}.contact h2{font-size:48px}.choices{display:block}.choices button{width:100%;margin-bottom:6px}.projectcaption{display:block}.projectcaption span{text-align:left;max-width:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}
/* Clip off-screen reveal motion without creating horizontal page overflow. */
main{overflow-x:clip}.swatch{width:36px;height:36px}.swatch:before{content:'';position:absolute;inset:-5px}

/* ---- v4 motion & new sections ---- */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;background:#e4ff58;transform:scaleX(var(--sp,0));transform-origin:0 50%;z-index:60;pointer-events:none}
b{font-weight:inherit}h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}h1 .ln>b{display:block}h1 .acc{color:#e4ff58}
.hero{overflow:hidden}
.herotext{will-change:transform}
.photo-stack{transform:translate3d(0,var(--py,0px),0) scale(1.08);transform-origin:50% 40%;animation:lightOn 2.4s .35s cubic-bezier(.4,0,.2,1) both}
.photo-stack img#base,.photo-stack img#colourphoto{animation:kb 22s 0s ease-out both}
@keyframes lightOn{0%{filter:brightness(.12) saturate(.5)}35%{filter:brightness(.3) saturate(.7)}60%{filter:brightness(.55)}100%{filter:brightness(1) saturate(1)}}
@keyframes kb{from{transform:scale(1.12) translateX(2%)}to{transform:scale(1) translateX(0)}}
.doors{position:absolute;inset:0;z-index:5;display:flex;pointer-events:none}
.doors i{flex:1;background:linear-gradient(180deg,#242b2d,#171c1e);border-right:1px solid #e4ff5840;animation:doorUp 1.15s calc(.25s + var(--i)*.1s) cubic-bezier(.77,0,.18,1) both}
.doors i:nth-child(even){animation-name:doorDown}
.doors i:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:#e4ff58;opacity:.85}
.doors i:nth-child(even):after{bottom:auto;top:0}
@keyframes doorUp{to{transform:translateY(-102%)}}
@keyframes doorDown{to{transform:translateY(102%)}}
.glow{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 55% 38% at 52% 34%,#ffe8b8cc,#ffe8b800 72%),radial-gradient(ellipse 30% 20% at 30% 36%,#ffe8b88c,#ffe8b800 70%);mix-blend-mode:soft-light;opacity:0;animation:glowOn 3s 1.2s ease-in-out both}
@keyframes glowOn{0%{opacity:0}40%{opacity:1}100%{opacity:.55}}
.chips{position:absolute;inset:0;z-index:3;pointer-events:none}
.chips span{position:absolute;background:#e4ff58;color:#15191b;font:700 10px/1 Manrope,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:9px 13px;border-radius:30px;box-shadow:0 8px 24px #0008;opacity:0;animation:pop .7s calc(1.9s + var(--c)*.28s) cubic-bezier(.3,1.6,.5,1) both,bob 5s calc(3s + var(--c)*.4s) ease-in-out infinite}
.chips span:nth-child(1){left:9%;top:24%}.chips span:nth-child(2){right:9%;top:46%}.chips span:nth-child(3){left:32%;top:19%}
@keyframes pop{from{opacity:0;transform:scale(.3) translateY(14px)}to{opacity:1;transform:none}}
@keyframes bob{50%{transform:translateY(-6px)}}
.hero .eyebrow,.hero .intro,.hero .btn,.hero .scrollhint{animation:rise .9s cubic-bezier(.16,1,.3,1) both}
.hero .eyebrow{animation-delay:.9s}.hero .intro{animation-delay:1.55s}.hero .btn{animation-delay:1.7s}.hero .scrollhint{animation-delay:1.9s}
h1 .ln>b{animation:lineUp 1.1s cubic-bezier(.16,1,.3,1) both}h1 .ln:nth-child(1)>b{animation-delay:.95s}h1 .ln:nth-child(2)>b{animation-delay:1.1s}h1 .ln:nth-child(3)>b{animation-delay:1.25s}
@keyframes lineUp{from{transform:translateY(115%) rotate(3deg)}to{transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.config{animation:rise .9s 2.1s cubic-bezier(.16,1,.3,1) both}
.photolabel{animation:rise .8s 1.6s both}
.marquee{background:#e4ff58;color:#15191b;overflow:hidden;white-space:nowrap;border-block:1px solid #15191b}
.marquee .track{display:inline-flex;animation:marq 32s linear infinite}
.marquee span{font:700 clamp(30px,4vw,56px)/1 Space,Arial,sans-serif;letter-spacing:-.04em;padding:18px 0}
@keyframes marq{to{transform:translateX(-50%)}}
.statementbottom p{font-size:clamp(16px,1.7vw,23px);max-width:600px;line-height:1.5}
.w{color:#69716b;transition:color .3s}.w.on{color:#15191b}
.shape{background:#15191b;color:#f6f7f5;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:44px 44px}
.shape h2 span{color:#e4ff58}.shape .muted{max-width:430px;color:#b9c3bd}
.shapegrid{display:grid;grid-template-columns:30% 1fr;gap:4%;align-items:start}
.shapes{display:flex;flex-direction:column;gap:10px}
.shapebtn{display:flex;align-items:center;gap:16px;background:#ffffff0d;border:1px solid #ffffff2e;color:#f6f7f5;padding:12px 16px;text-align:left;transition:background .25s,transform .25s,border-color .25s;min-height:68px}
.shapebtn:hover{transform:translateX(6px);border-color:#e4ff58}
.shapebtn svg{width:54px;height:40px;flex:none}.shapebtn b{display:block;font:500 20px/1.1 Space,Arial,sans-serif;letter-spacing:-.03em}.shapebtn small{font-size:10px;letter-spacing:.1em;color:#aeb9b3}
.shapebtn[aria-pressed=true]{background:#e4ff58;color:#15191b;border-color:#e4ff58}.shapebtn[aria-pressed=true] small{color:#3a4408}
.plan{background:#0f1315;border:1px solid #ffffff26;display:grid;grid-template-columns:1fr 300px;align-items:stretch}
.plan svg{width:100%;height:auto;display:block;padding:18px;--front:#efeeea}
.planinfo{padding:28px 26px;border-left:1px solid #ffffff1f;display:flex;flex-direction:column;gap:12px;justify-content:center}
.planinfo h3{font-size:38px}.planinfo p{font-size:13px;color:#c3ccc6;margin:0}.planinfo ul{margin:0;padding:0;list-style:none;font-size:12px;color:#e4e9e6}.planinfo li{padding:8px 0;border-top:1px solid #ffffff1f}.planinfo li:before{content:'+ ';color:#e4ff58}
.planinfo .btn{margin-top:8px}
.fine2{font-size:11px;color:#9fa9a3;margin:20px 0 0}
#planSvg .room{fill:none;stroke:#e4ff58;stroke-width:2;stroke-dasharray:1800;stroke-dashoffset:0;animation:draw 1.1s ease-out both}
@keyframes draw{from{stroke-dashoffset:1800}}
#planSvg .pc{fill:var(--front);stroke:#0f1315;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pcpop .55s calc(var(--d)*1ms) cubic-bezier(.3,1.5,.5,1) both}
#planSvg .pc.dk{fill:#2b3236;stroke:#8c978f;stroke-width:1.5}
#planSvg .is{fill:var(--front);stroke:#e4ff58;stroke-width:2}
#planSvg .st{fill:#e4ff58;transform-box:fill-box;transform-origin:center;animation:pcpop .5s calc(var(--d)*1ms) cubic-bezier(.3,1.6,.5,1) both}
#planSvg text{font:700 11px Manrope,Arial,sans-serif;fill:#aab5ae;letter-spacing:.08em}
#planSvg .dim{stroke:#aab5ae;stroke-width:1;fill:none}
#planSvg .ic{stroke:#15191b;stroke-width:1.6;fill:none;opacity:.9}
@keyframes pcpop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.band{position:relative;min-height:80vh;display:flex;align-items:center;overflow:hidden;color:#fff;background:#15191b}
.bandimg{position:absolute;inset:-12% 0;filter:brightness(.62)}
.bandimg img{transform:translate3d(0,var(--by,0px),0)}
.bandtext{position:relative;z-index:2;padding:110px 6%;max-width:1100px}
.bandtext h2{font-size:clamp(46px,7vw,100px)}.bandtext h2 span{color:#e4ff58}
.pops{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.pops span{border:1px solid #fff9;background:#15191b99;backdrop-filter:blur(6px);padding:11px 18px;border-radius:40px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:0;transform:scale(.4) translateY(20px);transition:opacity .5s,transform .7s cubic-bezier(.3,1.6,.5,1)}
.band.in .pops span{opacity:1;transform:none}.band.in .pops span:nth-child(2){transition-delay:.18s}.band.in .pops span:nth-child(3){transition-delay:.36s}
.js .imagewrap.reveal{clip-path:inset(0 0 100% 0)}.js .imagewrap.reveal.visible{clip-path:inset(0);transition:clip-path 1.2s cubic-bezier(.77,0,.18,1),opacity .9s,transform 1s cubic-bezier(.16,1,.3,1)}
.js .projectphoto{clip-path:inset(0 0 0 0)}
.js .project.reveal .projectphoto{clip-path:inset(0 100% 0 0);transition:clip-path 1.3s .1s cubic-bezier(.77,0,.18,1)}.js .project.reveal.fromright .projectphoto{clip-path:inset(0 0 0 100%)}.js .project.reveal.visible .projectphoto{clip-path:inset(0)}
.projectphoto img,.imagewrap img,.processphoto img{transform:translate3d(0,var(--iy,0px),0) scale(1.14)}
.imagewrap:hover img,.project:hover img{transform:translate3d(0,var(--iy,0px),0) scale(1.2)}
.steps{position:relative}.steps:before{content:'';position:absolute;left:-26px;top:50px;bottom:0;width:2px;background:linear-gradient(#64752b 0 0) no-repeat 0 0/100% calc(var(--sl,0)*100%),#bdc3be}
.step>span{font-size:44px;line-height:1;color:transparent;-webkit-text-stroke:1px #64752b}
.step{transition:transform .5s}.step:hover{transform:translateX(10px)}
.swatch[data-colour=magnolia]{border-color:#15191b50}
.shapebtn:focus-visible{outline-color:#e4ff58}
.contact{background:#e4ff58 linear-gradient(120deg,#e4ff58,#d3f23a 55%,#e4ff58);background-size:200% 200%;animation:shift 12s ease-in-out infinite}@keyframes shift{50%{background-position:100% 50%}}
@media(max-width:1000px){.plan{grid-template-columns:1fr}.planinfo{border-left:0;border-top:1px solid #ffffff1f}.shapegrid{grid-template-columns:1fr}.shapes{flex-direction:row;flex-wrap:wrap}.shapebtn{flex:1 1 45%}}
@media(max-width:760px){.shapebtn{flex:1 1 100%;min-height:62px}.planinfo{padding:22px 18px}.planinfo h3{font-size:32px}.plan svg{padding:8px}.chips span:nth-child(3){display:none}.chips span:nth-child(1){left:6%;top:12%}.chips span:nth-child(2){right:6%;top:36%}.band{min-height:70vh}.steps:before{display:none}.step>span{font-size:34px}.marquee span{padding:12px 0}.photo-stack{animation-duration:2s}}
@media(prefers-reduced-motion:reduce){.photo-stack{transform:none}.js .imagewrap.reveal,.js .project.reveal .projectphoto{clip-path:none}.pops span{opacity:1;transform:none}.doors,.glow{display:none}.chips span{opacity:1}.w{color:#15191b}}
#planSvg .tbl{transform-box:fill-box;transform-origin:center;animation:pcpop .6s calc(var(--d)*1ms) cubic-bezier(.3,1.5,.5,1) both}
@media(max-width:760px){.heroimage{order:-1;height:520px;min-height:520px}.herotext{padding-top:34px}}@media(max-width:360px){.heroimage{height:500px;min-height:500px}}

/* v5: self-hosted, illustrative material samples. No third-party assets. */
.materialstage{position:relative;width:100%;height:680px;margin:0;overflow:hidden;background:#373d40;isolation:isolate}
.materiallayers,.materiallayer{position:absolute;inset:0;width:100%;height:100%}
.materiallayer{object-fit:cover;opacity:0;transition:opacity .65s ease;z-index:0}
.materiallayer.active{opacity:1;z-index:1}
.sampletop{position:absolute;top:25px;left:27px;z-index:2;font-size:9px;letter-spacing:.15em;background:#f6f7f5e8;color:#252b2e;padding:8px 12px}
.samplelabel{position:absolute;bottom:72px;left:27px;right:27px;z-index:2;display:flex;flex-direction:column;gap:7px;background:#f6f7f5ed;padding:21px 24px;color:#15191b;backdrop-filter:blur(8px)}
#samplename{font:400 34px/1.1 Space,Arial,sans-serif;letter-spacing:-.045em}
#samplefinish{font-size:9px;letter-spacing:.13em}
.materialstage figcaption{z-index:2;bottom:20px;left:27px;font-size:9px;letter-spacing:.02em}
.materialtabs button span{transition:transform .25s}
@media(max-width:1000px){.materialstage{height:580px}}
@media(max-width:760px){.materialstage{height:420px}.sampletop{top:18px;left:18px;font-size:8px}.samplelabel{bottom:64px;left:18px;right:18px;padding:17px 19px}#samplename{font-size:29px}.materialstage figcaption{left:18px;bottom:18px;font-size:8px}.materialgrid{gap:30px}}
@media(prefers-reduced-motion:reduce){.materiallayer{transition:none}}
.materialquick{display:none}
@media(max-width:760px){.materialquick{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;width:100%;margin-bottom:-18px}.materialquick button{border:1px solid #aeb8aa;background:transparent;color:#515953;padding:12px 3px;min-height:46px;font-size:10px;line-height:1.3}.materialquick button.selected{background:#15191b;color:#f6f7f5;border-color:#15191b}.materialcopy .materialtabs{display:none}}

.photo-stack img{object-position:50% 92% !important}
