@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&family=Newsreader:opsz,ital,wght@6..72,400;6..72,500;6..72,600;6..72,400&display=swap');

:root { --ink:#13231c; --moss:#264c39; --cream:#f3f0e8; --mist:#dce4d7; --line:rgba(19,35,28,.22); --sans:'DM Sans',sans-serif; --serif:'Newsreader',Georgia,serif; --mono:'DM Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); }
body.lightbox-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
.site-header { align-items:center; color:#fff; display:flex; justify-content:space-between; left:0; opacity:0; padding:24px 3.5vw; position:absolute; top:0; transform:translateY(-12px); transition:opacity .8s .15s,transform .8s .15s; width:100%; z-index:4; }
body.is-ready .site-header { opacity:1; transform:none; }
.wordmark,.section-label,.eyebrow,footer { font:500 11px/1.1 var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.wordmark span { opacity:.62; }
nav { display:flex; gap:24px; font-size:14px; }
nav a { opacity:.8; transition:opacity .2s; } nav a:hover { opacity:1; }
.hero { align-items:flex-end; color:#fff; display:flex; height:max(690px,100svh); overflow:hidden; padding:0 6vw 7vh; position:relative; }
.hero>img { height:100%; inset:0; object-fit:cover; position:absolute; transform:scale(1.06); transition:transform 1.8s cubic-bezier(.2,.75,.2,1); width:100%; }
body.is-ready .hero>img { transform:scale(1); }
.hero-shade { background:linear-gradient(90deg,rgba(6,17,11,.68),rgba(6,17,11,.15) 62%,rgba(6,17,11,.22)),linear-gradient(0deg,rgba(6,17,11,.38),transparent 45%); inset:0; position:absolute; }
.hero-content { max-width:720px; opacity:0; position:relative; transform:translateY(28px); transition:opacity 1s .25s,transform 1s .25s; z-index:1; }
body.is-ready .hero-content { opacity:1; transform:none; }
.eyebrow { letter-spacing:.12em; margin:0 0 18px; }
h1,h2,.display { font-family:var(--serif); font-weight:400; letter-spacing:-.055em; margin:0; }
h1 { font-size:clamp(4.7rem,11vw,10rem); line-height:.98; }
em { font-style:italic; font-weight:400; }
.hero-copy { font-size:18px; line-height:1.45; margin:30px 0 0; max-width:370px; }
.circle-link { align-items:center; border:1px solid rgba(255,255,255,.7); border-radius:50%; display:flex; font-size:14px; height:132px; justify-content:center; line-height:1.2; margin:42px 0 0; position:relative; text-align:center; transition:background .25s,color .25s; width:132px; }
.circle-link b { bottom:14px; font-size:17px; font-weight:400; position:absolute; }
.circle-link:hover { background:#fff; color:var(--ink); }
.hero-index { bottom:30px; font:11px var(--mono); position:absolute; right:4vw; z-index:1; }
.section { padding:122px 6vw; }
.intro { display:grid; grid-template-columns:1fr 2.2fr; gap:8vw; }
.section-label { color:var(--moss); padding-top:12px; }
.intro-copy { max-width:830px; }
.display { font-size:clamp(2.9rem,5.8vw,6.1rem); line-height:1; }
.intro-copy>p:last-child { font-size:19px; line-height:1.48; margin:43px 0 0; max-width:560px; }
.photo-break { height:min(72vw,800px); min-height:470px; overflow:hidden; position:relative; }
.photo-break img { height:100%; object-fit:cover; width:100%; }
.photo-caption { bottom:22px; color:#fff; display:flex; font:11px var(--mono); justify-content:space-between; left:3vw; letter-spacing:.08em; position:absolute; right:3vw; }
.video-feature { background:#07130d; }
.video-feature-poster { background:#07130d; border:0; color:#fff; cursor:pointer; display:block; height:100%; overflow:hidden; padding:0; position:relative; text-align:left; width:100%; }
.video-feature-poster::after { background:linear-gradient(90deg,rgba(5,14,9,.45),transparent 62%),linear-gradient(0deg,rgba(5,14,9,.55),transparent 48%); content:""; inset:0; pointer-events:none; position:absolute; }
.video-feature-poster img { transition:filter .45s ease; }
.video-feature.reveal.is-visible .video-feature-poster img { animation:meadow-drift 14s cubic-bezier(.35,0,.2,1) infinite alternate; }
.video-feature-poster:hover img { filter:brightness(.9); }
@keyframes meadow-drift { from { transform:scale(1.025) translate3d(0,0,0); } to { transform:scale(1.075) translate3d(-.6%, -.45%, 0); } }
.video-kicker,.video-note { font:500 11px/1.2 var(--mono); letter-spacing:.08em; position:absolute; text-transform:uppercase; z-index:1; }
.video-kicker { left:3vw; top:28px; }
.video-note { bottom:30px; right:3vw; }
.video-play { align-items:center; background:var(--cream); bottom:28px; color:var(--ink); display:flex; font:500 14px/1 var(--mono); gap:16px; left:3vw; letter-spacing:.04em; padding:19px 22px; position:absolute; text-transform:uppercase; transition:background .25s,color .25s,transform .25s; z-index:2; }
.video-play b { font-size:15px; font-weight:400; }
.video-feature-poster:hover .video-play { background:var(--ink); color:#fff; transform:translateY(-3px); }
.video-feature iframe { border:0; height:100%; width:100%; }
.video-feature.is-playing { aspect-ratio:16 / 9; height:auto; max-height:100svh; min-height:0; }
.story { background:var(--moss); color:var(--cream); display:grid; grid-template-columns:1fr 2.2fr; gap:8vw; }
.story .section-label { color:#b9d7ba; }
.story-grid { display:grid; gap:7vw; grid-template-columns:1.18fr .82fr; }
.display.small { font-size:clamp(2.6rem,4.5vw,5rem); }
.story-text { font-size:17px; line-height:1.5; padding-top:8px; }
.story-text p { margin:0 0 24px; }
.property-section { border-bottom:1px solid var(--line); }
.property-copy { display:grid; gap:8vw; grid-template-columns:1.15fr .85fr; margin-left:calc(31.25% + 2.5vw); }
.placeholder-copy { font-size:17px; line-height:1.55; padding-top:8px; }
.placeholder-copy span { color:var(--moss); display:block; font:10px/1.3 var(--mono); letter-spacing:.07em; margin-bottom:24px; text-transform:uppercase; }
.placeholder-copy p { margin:0 0 20px; }
.property-facts { border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); margin-top:80px; }
.property-facts div { border-right:1px solid var(--line); padding:22px 22px 4px 0; }
.property-facts div:last-child { border-right:0; padding-left:22px; }
.property-facts div:not(:first-child) { padding-left:22px; }
.property-facts span,.property-facts small { display:block; font:10px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.property-facts strong { display:block; font:400 clamp(2rem,3.8vw,4rem)/1 var(--serif); margin:18px 0 13px; }
.property-facts small { opacity:.48; }
.technical-details { border-bottom:1px solid var(--line); margin:0 0 6px; }
.technical-details summary { align-items:center; cursor:pointer; display:flex; font:500 15px var(--mono); justify-content:space-between; letter-spacing:.04em; list-style:none; padding:24px 0; text-transform:uppercase; }
.technical-details summary::-webkit-details-marker { display:none; }
.technical-details summary small { display:inline; font:10px var(--mono); letter-spacing:.06em; margin-left:12px; opacity:.58; }
.technical-details summary b { font:300 30px/1 var(--serif); transition:transform .25s; }
.technical-details[open] summary b { transform:rotate(45deg); }
.technical-details dl { display:grid; gap:0; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; padding:0 0 28px; }
.technical-details dl div { border-top:1px solid var(--line); padding:15px 28px 15px 0; }
.technical-details dl div:nth-child(even) { padding-left:28px; padding-right:0; }
.technical-details dt { color:var(--moss); font:10px var(--mono); letter-spacing:.06em; margin-bottom:8px; text-transform:uppercase; }
.technical-details dd { font-size:15px; line-height:1.45; margin:0; max-width:370px; }
.gallery { padding-bottom:144px; }
.gallery-heading { display:flex; justify-content:space-between; gap:30px; margin-bottom:64px; }
.gallery-heading h2 { font-size:clamp(3.5rem,6.5vw,7.1rem); line-height:1.02; max-width:850px; text-align:right; }
.gallery-groups { border-top:1px solid var(--line); }
.gallery-group { border-bottom:1px solid var(--line); }
.gallery-group summary { align-items:center; cursor:pointer; display:grid; font-size:clamp(1.35rem,2.2vw,2rem); font-weight:500; grid-template-columns:1fr auto 28px; list-style:none; padding:24px 0; }
.gallery-group summary::-webkit-details-marker { display:none; }
.gallery-group summary small { font:11px var(--mono); letter-spacing:.06em; margin-right:28px; text-transform:uppercase; }
.gallery-group summary b { font:300 30px/1 var(--serif); text-align:center; transition:transform .25s; }
.gallery-group[open] summary b { transform:rotate(45deg); }
.gallery-note { color:var(--ink); max-width:690px; padding:6px 0 28px; }
.gallery-note span { color:var(--moss); display:block; font:10px var(--mono); letter-spacing:.07em; margin-bottom:12px; text-transform:uppercase; }
.gallery-note p { font-size:17px; line-height:1.5; margin:0; }
.gallery-grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 0 34px; }
.gallery-thumb { appearance:none; background:#20372b; border:0; cursor:zoom-in; overflow:hidden; padding:0; position:relative; aspect-ratio:3 / 2; }
.gallery-thumb.is-featured { aspect-ratio:2.35 / 1; grid-column:1 / -1; }
.gallery-thumb img { display:block; height:100%; object-fit:cover; transition:transform .45s ease; width:100%; }
.gallery-thumb:hover img { transform:scale(1.04); }
.gallery-thumb span { background:rgba(7,19,12,.74); bottom:12px; color:#fff; font:11px var(--mono); left:12px; padding:7px 9px; position:absolute; }
.gallery-group[open] .gallery-note,.gallery-group[open] .gallery-grid { animation:gallery-in .45s ease both; }
@keyframes gallery-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
.map-section { display:grid; gap:7vw; grid-template-columns:1fr 1fr; }
.map-copy .display { margin:38px 0; max-width:500px; }
.map-copy>p:last-child { font-size:17px; line-height:1.5; max-width:470px; }
.map-gallery { align-self:center; display:grid; gap:8px; grid-template-columns:repeat(2,1fr); }
.map-image { background:#d0ddd0; border:0; cursor:zoom-in; min-height:0; overflow:hidden; padding:0; position:relative; text-align:left; }
.map-image.map-main { grid-column:1 / -1; }
.map-image img { display:block; height:100%; object-fit:cover; transition:transform .45s ease; width:100%; }
.map-image:hover img { transform:scale(1.025); }
.map-image span { background:var(--ink); bottom:14px; color:#fff; font:11px var(--mono); left:14px; letter-spacing:.05em; padding:11px 13px; position:absolute; }
.contact-section { background:var(--ink); color:var(--cream); min-height:76vh; padding:14vw 6vw 9vw; }
.contact-section h2 { font-size:clamp(4rem,9vw,9rem); line-height:1.05; margin-bottom:42px; }
.contact-section>p:not(.eyebrow) { font-size:18px; line-height:1.45; max-width:390px; }
.contact-details { border-top:1px solid rgba(243,240,232,.72); display:grid; font:15px/1.5 var(--mono); margin-top:38px; padding-top:13px; width:min(100%,410px); }
.contact-details strong { font-weight:500; margin-bottom:8px; }
.contact-details a { width:max-content; }
.contact-details a:hover { text-decoration:underline; text-underline-offset:3px; }
.contact-message { align-items:center; background:var(--cream); border:0; color:var(--ink); cursor:pointer; display:inline-flex; font:500 12px var(--mono); gap:30px; justify-content:space-between; letter-spacing:.04em; margin-top:22px; padding:15px 18px; text-transform:uppercase; transition:background .2s,color .2s,transform .2s; }
.contact-message:hover { background:#b9d7ba; transform:translateY(-2px); }
.contact-dialog { background:var(--cream); border:0; color:var(--ink); max-width:560px; padding:0; width:min(92vw,560px); }
.contact-dialog::backdrop { background:rgba(7,19,12,.72); }
.contact-form { padding:42px; position:relative; }
.contact-form h3 { font:400 clamp(2.8rem,7vw,5rem)/.95 var(--serif); letter-spacing:-.055em; margin:0 0 18px; }
.contact-form-intro { font-size:15px; line-height:1.45; margin:0 0 28px; max-width:380px; }
.contact-dialog-close { background:transparent; border:0; color:var(--ink); cursor:pointer; font-size:32px; line-height:1; padding:4px; position:absolute; right:20px; top:18px; }
.contact-form label { display:block; font:10px var(--mono); letter-spacing:.07em; margin-top:17px; text-transform:uppercase; }
.contact-form input,.contact-form textarea { background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; color:var(--ink); display:block; font:16px/1.4 var(--sans); margin-top:8px; outline:0; padding:10px 0; resize:vertical; width:100%; }
.contact-form input:focus,.contact-form textarea:focus { border-bottom-color:var(--ink); }
.contact-honeypot { display:none!important; }
.turnstile-box { margin-top:22px; min-height:65px; }
.contact-submit { background:var(--ink); border:0; color:var(--cream); cursor:pointer; font:500 11px var(--mono); letter-spacing:.06em; margin-top:14px; padding:16px 18px; text-transform:uppercase; }
.contact-submit:disabled { cursor:wait; opacity:.55; }
.contact-status { font-size:14px; line-height:1.4; margin:18px 0 0; min-height:20px; }
footer { background:var(--ink); border-top:1px solid rgba(243,240,232,.24); color:var(--cream); display:flex; justify-content:space-between; padding:20px 6vw; }
.lightbox { background:#050c08; height:100%; inset:0; padding:0; position:fixed; width:100%; z-index:100; }
.lightbox[hidden] { display:none; }
.lightbox:fullscreen { height:100vh; width:100vw; }
.lightbox figure { height:100%; margin:0; position:relative; }
.lightbox img { cursor:e-resize; height:100%; object-fit:contain; width:100%; }
.lightbox img.is-changing { animation:image-in .3s ease both; }
@keyframes image-in { from { opacity:.25; transform:scale(.985); } to { opacity:1; transform:none; } }
.lightbox figcaption { background:linear-gradient(0deg,rgba(0,0,0,.72),transparent); bottom:0; color:#fff; display:flex; font:10px var(--mono); justify-content:space-between; left:0; letter-spacing:.06em; padding:54px 24px 18px; pointer-events:none; position:absolute; right:0; text-transform:uppercase; }
.lightbox-toolbar { display:flex; gap:8px; position:absolute; right:20px; top:18px; z-index:3; }
.lightbox-close,.lightbox-fullscreen { background:var(--cream); border:0; color:var(--ink); cursor:pointer; height:42px; }
.lightbox-close { border-radius:50%; font-size:28px; line-height:1; width:42px; }
.lightbox-fullscreen { font:10px var(--mono); letter-spacing:.04em; padding:0 14px; text-transform:uppercase; }
.lightbox-arrow { background:transparent; border:0; color:#fff; cursor:pointer; font-size:34px; height:80px; position:absolute; top:calc(50% - 40px); width:58px; z-index:2; }
.lightbox-prev { left:4px; } .lightbox-next { right:4px; }
.reveal { opacity:0; transform:translateY(36px); transition:opacity .85s ease,transform .85s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.photo-break.reveal { clip-path:inset(0 0 100% 0); opacity:1; transform:none; transition:clip-path 1.1s cubic-bezier(.2,.75,.2,1); }
.photo-break.reveal.is-visible { clip-path:inset(0); }
.section-label::after { background:currentColor; content:""; display:inline-block; height:1px; margin:0 0 3px 11px; transform:scaleX(0); transform-origin:left; transition:transform .7s .14s ease; width:38px; }
.reveal.is-visible .section-label::after { transform:scaleX(1); }
@media (max-width:760px) { .site-header { padding:20px 6vw; } nav { display:none; } .hero { height:100svh; min-height:620px; padding:0 7vw 5.5vh; } h1 { line-height:1.02; } .hero-copy { font-size:16px; margin-top:23px; } .circle-link { height:108px; margin-top:30px; width:108px; } .section { padding:78px 6vw; } .intro,.story { display:block; } .section-label { margin-bottom:38px; padding:0; } .intro-copy>p:last-child { font-size:16px; margin-top:28px; } .photo-break { height:85vw; min-height:360px; } .video-kicker { left:6vw; top:20px; } .video-play { bottom:20px; font-size:11px; left:6vw; padding:15px 17px; } .video-note { display:none; } .story-grid { display:block; } .story-text { font-size:16px; margin-top:34px; } .property-copy { display:block; margin-left:0; } .placeholder-copy { margin-top:34px; } .property-facts { grid-template-columns:repeat(2,1fr); margin-top:48px; } .property-facts div { border-bottom:1px solid var(--line); padding:18px 14px 14px 0; } .property-facts div:nth-child(even) { border-right:0; padding-left:14px; } .property-facts div:nth-child(3) { padding-left:0; } .technical-details dl { grid-template-columns:1fr; } .technical-details dl div,.technical-details dl div:nth-child(even) { padding:14px 0; } .gallery { padding-bottom:84px; } .gallery-heading { display:block; margin-bottom:36px; } .gallery-heading h2 { text-align:left; } .gallery-group summary { font-size:1.25rem; grid-template-columns:1fr auto 24px; padding:19px 0; } .gallery-group summary small { display:none; } .gallery-note { padding:0 0 22px; } .gallery-note p { font-size:16px; } .gallery-grid { gap:8px; grid-template-columns:1fr; padding-bottom:24px; } .gallery-thumb,.gallery-thumb.is-featured { aspect-ratio:1.55 / 1; grid-column:auto; } .map-section { display:block; } .map-gallery { margin-top:34px; } .map-image span { bottom:8px; font-size:9px; left:8px; padding:8px; } .contact-section { min-height:620px; padding:25vw 6vw 14vw; } .contact-form { padding:32px 24px; } .lightbox-arrow { background:rgba(0,0,0,.32); bottom:54px; height:48px; top:auto; width:48px; } .lightbox-prev { left:10px; } .lightbox-next { right:10px; } .lightbox-fullscreen span { display:none; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; scroll-behavior:auto!important; transition:none!important; } .reveal,.hero-content,.site-header { opacity:1; transform:none; } }
