:root{--ink:#14271f;--forest:#15392c;--moss:#58735e;--paper:#f7f4ed;--white:#fff;--gold:#ae9064;--line:rgba(20,39,31,.16);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden}body.menu-open{overflow:hidden}img{display:block;width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.wrap{width:min(1220px,calc(100% - 48px));margin:auto}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}.display{font:500 clamp(2.8rem,6vw,6.5rem)/.88 var(--serif);letter-spacing:-.035em;margin:0}.title{font:500 clamp(2.5rem,5vw,5rem)/.95 var(--serif);letter-spacing:-.03em;margin:0 0 24px}.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:680px;color:#516159}.btn{position:relative;display:inline-flex;align-items:center;gap:18px;padding:15px 22px;border:1px solid currentColor;background:transparent;color:inherit;overflow:hidden;transition:color .45s var(--ease),border-color .45s var(--ease),transform .3s}.btn:before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(102%);transition:transform .45s var(--ease)}.btn span,.btn svg{position:relative;z-index:1}.btn:hover{color:white;border-color:var(--ink);transform:translateY(-2px)}.btn:hover:before{transform:none}.btn.light:before{background:white}.btn.light:hover{color:var(--ink);border-color:white}.arrow{width:20px;height:20px}.site-header{position:fixed;z-index:80;top:0;left:0;right:0;padding:18px 0;color:white;transition:.45s var(--ease)}.site-header.scrolled,.site-header.inner{background:rgba(20,39,31,.93);backdrop-filter:blur(18px);padding:11px 0;box-shadow:0 8px 30px rgba(0,0,0,.12)}.nav{display:flex;align-items:center;justify-content:space-between}.brand{font:600 1.45rem var(--serif);letter-spacing:.02em}.brand small{display:block;font:600 .55rem var(--sans);letter-spacing:.25em;text-transform:uppercase}.nav-links{display:flex;gap:30px;align-items:center}.nav-links a{font-size:.85rem;position:relative}.nav-links a:not(.btn):after{content:"";position:absolute;height:1px;left:0;right:100%;bottom:-6px;background:white;transition:right .35s}.nav-links a:hover:after,.nav-links a.active:after{right:0}.nav-toggle{display:none;border:0;background:none;color:white;width:45px;height:45px}.nav-toggle i,.nav-toggle:before,.nav-toggle:after{content:"";display:block;width:24px;height:1px;background:currentColor;margin:6px auto;transition:.3s}.hero{min-height:100svh;color:white;display:grid;align-items:end;position:relative;overflow:hidden}.hero-media{position:absolute;inset:-7%;background:url('images/exterior.jpg') center/cover no-repeat;transform:scale(1.03)}.hero:after,.page-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,18,12,.78),rgba(5,18,12,.2) 64%,rgba(5,18,12,.18)),linear-gradient(0deg,rgba(5,18,12,.52),transparent 55%)}.hero-content{position:relative;z-index:2;padding:170px 0 80px}.hero-content .display{max-width:900px}.hero-content .lead{color:rgba(255,255,255,.82);margin:28px 0 38px}.hero-note{position:absolute;right:5vw;bottom:80px;z-index:3;border-left:1px solid rgba(255,255,255,.55);padding-left:18px;font:italic 1.2rem var(--serif)}.facts{background:white;border-bottom:1px solid var(--line)}.facts-grid{display:grid;grid-template-columns:repeat(4,1fr)}.fact{padding:28px;display:flex;gap:16px;align-items:center;border-right:1px solid var(--line)}.fact:last-child{border:0}.fact strong{display:block;font:600 1.5rem var(--serif)}.fact span{font-size:.78rem;color:#68736e}.icon{width:30px;height:30px;stroke:var(--ink);fill:none;stroke-width:1.4}.section{padding:110px 0}.editorial{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.editorial-images{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.editorial-images img{height:600px;object-fit:cover}.editorial-images .stack{display:grid;gap:10px}.editorial-images .stack img{height:295px}.image-reveal{overflow:hidden;background:#d8d8d3}.image-reveal img{transition:transform 1.2s var(--ease);transform:scale(1.08)}.image-reveal.in-view img{transform:scale(1)}.dark{background:var(--forest);color:white}.dark .lead{color:rgba(255,255,255,.68)}.feature-grid{display:grid;grid-template-columns:.75fr 1.25fr;min-height:620px}.feature-copy{padding:90px max(5vw,40px)}.feature-image{min-height:600px;overflow:hidden}.feature-image img{height:100%;object-fit:cover}.feature-list{list-style:none;padding:0;margin:35px 0}.feature-list li{display:flex;align-items:center;gap:14px;padding:10px 0;color:rgba(255,255,255,.82)}.feature-list svg{width:22px;height:22px;stroke:currentColor;fill:none}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:18px 0;background:white}.marquee-track{display:flex;width:max-content;gap:40px;animation:marquee 30s linear infinite}.marquee span{font:500 1.2rem var(--serif);white-space:nowrap}.marquee b{color:var(--gold)}@keyframes marquee{to{transform:translateX(-50%)}}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.filters{display:flex;gap:10px;flex-wrap:wrap}.filter{border:0;background:none;color:#6c756f;padding:8px 2px;margin:0 10px;cursor:pointer;border-bottom:1px solid transparent}.filter.active,.filter:hover{color:var(--ink);border-color:var(--ink)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gallery-card{position:relative;overflow:hidden;cursor:pointer;aspect-ratio:1.15;background:#ddd}.gallery-card.wide{grid-column:span 2}.gallery-card img{height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .8s}.gallery-card:hover img{transform:scale(1.07);filter:brightness(.72)}.gallery-card:after{content:attr(data-label);position:absolute;left:18px;bottom:12px;color:white;font:500 1.25rem var(--serif);opacity:0;transform:translateY(12px);transition:.4s}.gallery-card:hover:after{opacity:1;transform:none}.gallery-card.hidden{display:none}.lightbox{position:fixed;z-index:120;inset:0;background:rgba(7,17,12,.96);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.35s}.lightbox.open{opacity:1;visibility:visible}.lightbox img{max-width:min(1100px,88vw);max-height:82vh;object-fit:contain;width:auto}.lightbox button{position:absolute;border:0;background:none;color:white;font-size:2rem;cursor:pointer}.lightbox-close{top:24px;right:30px}.lightbox-prev{left:25px}.lightbox-next{right:25px}.page-hero{height:min(72vh,720px);display:grid;align-items:end;color:white;position:relative;overflow:hidden}.page-hero img{position:absolute;inset:-5%;height:110%;object-fit:cover}.page-hero .wrap{position:relative;z-index:2;padding-bottom:70px}.page-hero .display{max-width:850px}.breadcrumbs{margin-bottom:18px;color:rgba(255,255,255,.65);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.room{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;margin-bottom:120px}.room:nth-child(even) .room-media{order:2}.room-media{display:grid;grid-template-columns:2fr 1fr;gap:8px}.room-media img{height:520px;object-fit:cover}.room-media img+img{height:360px;align-self:end}.room-num{font:italic 1rem var(--serif);color:var(--gold)}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px}.quote{font:italic 500 clamp(2rem,4vw,4rem)/1.05 var(--serif);margin:0}.map-card{min-height:560px;background:linear-gradient(rgba(20,39,31,.15),rgba(20,39,31,.55)),url('images/front-yard.jpg') center/cover;display:flex;align-items:end;padding:50px;color:white}.nearby{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.nearby div{background:var(--paper);padding:30px}.nearby strong{font:600 1.5rem var(--serif);display:block}.contact-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field.full{grid-column:1/-1}.field label{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;outline:0}.field input:focus,.field textarea:focus{border-color:var(--ink)}.field textarea{height:120px;resize:vertical}.footer{background:#0f251c;color:white;padding:70px 0 28px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.footer h3{font:500 2rem var(--serif);margin:0 0 16px}.footer p,.footer a{color:rgba(255,255,255,.68)}.footer-links{display:grid;gap:8px}.copyright{border-top:1px solid rgba(255,255,255,.15);margin-top:50px;padding-top:22px;font-size:.72rem;color:rgba(255,255,255,.5);display:flex;justify-content:space-between}.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in-view{opacity:1;transform:none}.stagger>*{opacity:0;transform:translateY(25px);transition:.65s var(--ease)}.stagger.in-view>*{opacity:1;transform:none}.stagger.in-view>*:nth-child(2){transition-delay:.1s}.stagger.in-view>*:nth-child(3){transition-delay:.2s}.stagger.in-view>*:nth-child(4){transition-delay:.3s}.page-curtain{position:fixed;z-index:200;inset:0;background:var(--forest);transform:translateY(-100%);pointer-events:none}.page-curtain.enter{animation:curtainIn .8s var(--ease)}.page-curtain.leave{animation:curtainOut .75s var(--ease) forwards}@keyframes curtainIn{0%{transform:none}100%{transform:translateY(-100%)}}@keyframes curtainOut{to{transform:none}}.scroll-line{position:fixed;z-index:90;top:0;left:0;height:2px;background:var(--gold);width:0}.grain{position:fixed;z-index:100;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.floating{will-change:transform}.footer-cta{padding:110px 0;background:white}.footer-cta .wrap{display:flex;align-items:end;justify-content:space-between;gap:30px}.footer-cta .title{max-width:760px}
@media(max-width:900px){.wrap{width:min(100% - 32px,720px)}.nav-toggle{display:block}.nav-links{position:fixed;inset:0;background:var(--forest);display:flex;flex-direction:column;justify-content:center;gap:28px;transform:translateX(100%);transition:.55s var(--ease)}.menu-open .nav-links{transform:none}.nav-links a{font:500 2.2rem var(--serif)}.nav-links .btn{font:500 1rem var(--sans)}.hero-note{display:none}.facts-grid{grid-template-columns:1fr 1fr}.fact:nth-child(2){border-right:0}.editorial,.feature-grid,.room,.split,.contact-grid{grid-template-columns:1fr}.editorial-images img{height:440px}.feature-copy{padding:70px 24px}.room:nth-child(even) .room-media{order:0}.gallery-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.page-hero{height:65vh}.footer-cta .wrap{display:block}}
@media(max-width:560px){.wrap{width:calc(100% - 28px)}.display{font-size:3.4rem}.hero-content{padding-bottom:50px}.facts-grid{grid-template-columns:1fr 1fr}.fact{padding:20px 10px}.fact strong{font-size:1.15rem}.fact .icon{display:none}.section{padding:78px 0}.editorial-images{grid-template-columns:1fr}.editorial-images img,.editorial-images .stack img{height:330px}.editorial-images .stack img:last-child{display:none}.feature-image{min-height:390px}.feature-grid{min-height:0}.gallery-head{display:block}.filters{margin-top:20px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-card,.gallery-card.wide{grid-column:auto;aspect-ratio:1}.gallery-card:nth-child(3n){grid-column:1/-1;aspect-ratio:1.7}.room{gap:30px;margin-bottom:80px}.room-media img{height:340px}.room-media img+img{height:240px}.nearby{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.copyright{display:block}.footer-cta{padding:80px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.stagger>*{opacity:1;transform:none}}
