:root{--ink:#2f1608;--paper:#f7f6f2;--white:#fff;--green:#75bd32;--copper:#9a6842;--line:#d7d3ca;--muted:#6e6a63;--pad:clamp(1.25rem,4vw,4rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.5}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit}.site-header{height:84px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:relative;z-index:5}.brand{display:flex;align-items:center}.brand-logo{width:auto;height:58px;object-fit:contain}.footer-brand .brand-logo{height:70px}.site-header nav{display:flex;gap:2rem;font-size:.9rem}.site-header nav a{border-bottom:1px solid transparent}.site-header nav a:hover{border-color:var(--green)}.menu-button{display:none;background:transparent;border:0}.hero{min-height:calc(100vh - 84px);position:relative;display:flex;align-items:flex-end;color:#fff;overflow:hidden}.hero-media,.hero-shade{position:absolute;inset:0}.hero-media img{object-position:center}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.08) 65%),linear-gradient(0deg,rgba(0,0,0,.34),transparent 50%)}.hero-copy{position:relative;padding:0 var(--pad) clamp(4rem,9vw,8rem);max-width:860px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:600}.hero-copy h1,.intro h2,.section-heading h2{font-family:Manrope,sans-serif;font-weight:400;letter-spacing:-.045em;line-height:.98}.hero-copy h1{font-size:clamp(3.2rem,8vw,7.7rem);margin:.6rem 0 1.3rem;max-width:820px}.hero-copy>p:not(.eyebrow){font-size:clamp(1rem,1.5vw,1.25rem);max-width:570px;color:rgba(255,255,255,.86)}.text-link{display:inline-flex;gap:.8rem;margin-top:1.2rem;padding-bottom:.25rem;border-bottom:1px solid}.hero-label{position:absolute;right:var(--pad);bottom:2rem;font-size:.8rem;letter-spacing:.08em}.intro{padding:clamp(6rem,12vw,11rem) var(--pad);display:grid;grid-template-columns:1fr 2fr 1fr;gap:2rem;align-items:start}.intro h2{font-size:clamp(3rem,6vw,6rem);margin:0}.intro-body{margin:1rem 0 0;font-size:1.05rem;color:var(--muted)}.feature-grid{padding:0 var(--pad) clamp(6rem,10vw,10rem);display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(1.25rem,3vw,3rem);align-items:end}.feature-wide .image-button{aspect-ratio:1.35}.feature-card:not(.feature-wide) .image-button{aspect-ratio:4/5}.image-button{display:block;width:100%;border:0;padding:0;position:relative;overflow:hidden;cursor:pointer;background:#ddd}.image-button img{transition:transform .7s ease}.image-button:hover img,.image-button:focus-visible img{transform:scale(1.025)}.image-action{position:absolute;right:1rem;bottom:1rem;background:rgba(47,22,8,.92);color:#fff;padding:.75rem 1rem;font-size:.8rem;opacity:0;transform:translateY(.5rem);transition:.25s}.image-button:hover .image-action,.image-button:focus-visible .image-action{opacity:1;transform:none}.project-caption{display:flex;justify-content:space-between;align-items:baseline;padding-top:1rem}.project-caption h3{font-family:Manrope,sans-serif;font-size:1.35rem;margin:0}.project-caption p{color:var(--muted);font-size:.84rem;margin:0}.detail-band{background:var(--ink);color:#fff;padding:var(--pad);display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.detail-band figure{margin:0}.detail-band figure:nth-child(2){transform:translateY(5rem)}.detail-band img{aspect-ratio:4/5}.detail-band figcaption{font-size:.87rem;color:#c8beb4;max-width:25ch;margin:1rem 0}.portfolio{padding:clamp(8rem,14vw,13rem) var(--pad) clamp(6rem,10vw,9rem)}.section-heading{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:end;margin-bottom:4rem}.section-heading h2{font-size:clamp(3rem,6vw,6rem);margin:.45rem 0 0}.section-heading>p{color:var(--muted);max-width:24rem}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:4rem 1fr auto;align-items:center;min-height:76px;border-bottom:1px solid var(--line);transition:padding .2s,background .2s}.project-row[href]:hover{padding-left:1rem;background:#ebe8e1}.project-row span{font-size:.75rem;color:var(--muted)}.project-row strong{font-family:Manrope,sans-serif;font-size:clamp(1rem,2vw,1.35rem);font-weight:500}.project-row em{font-style:normal;font-size:.78rem;color:var(--muted)}.films{background:var(--ink);color:#fff;padding:clamp(6rem,10vw,9rem) var(--pad)}.section-heading.inverse>p{color:#aaa59b}.film-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:1.5rem}.film-card{display:grid;grid-template-columns:1fr;position:relative}.film-card img{aspect-ratio:16/10;filter:saturate(.8);transition:.5s}.film-main{grid-row:span 2}.film-main img{height:100%}.film-card:hover img{filter:saturate(1);transform:scale(1.01)}.film-card>div{position:absolute;left:1.3rem;bottom:1rem;display:flex;flex-direction:column;text-shadow:0 1px 8px #000}.film-card strong{font-size:1.1rem}.film-card small{color:#ddd}.play{position:absolute;z-index:2;right:1rem;top:1rem;border:1px solid rgba(255,255,255,.65);border-radius:99px;padding:.45rem .8rem;font-size:.75rem;background:rgba(0,0,0,.28)}footer{padding:4rem var(--pad);display:grid;grid-template-columns:2fr 1fr auto;gap:2rem;align-items:end;border-top:1px solid var(--line)}footer p{color:var(--muted);margin:0}footer>a{font-size:.85rem;border-bottom:1px solid}dialog{width:min(1100px,calc(100% - 2rem));max-height:calc(100% - 2rem);padding:0;border:0;background:var(--paper);color:var(--ink)}dialog::backdrop{background:rgba(0,0,0,.75)}.dialog-close{position:sticky;z-index:2;top:1rem;float:right;margin:1rem;background:var(--ink);color:#fff;border:0;padding:.65rem 1rem;cursor:pointer}.dialog-project{padding:clamp(2rem,5vw,5rem)}.dialog-project h2{font:400 clamp(2.5rem,6vw,5rem)/1 Manrope,sans-serif;letter-spacing:-.04em;margin:.5rem 0 2rem}.dialog-images{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}.dialog-images img{aspect-ratio:4/3}.dialog-images img+img{aspect-ratio:4/5}.dialog-project p{max-width:40rem;color:var(--muted)}
@media(max-width:760px){.site-header{height:68px}.brand-logo{height:46px}.footer-brand .brand-logo{height:60px}.menu-button{display:block}.site-header nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);padding:1.5rem var(--pad);flex-direction:column;border-top:1px solid var(--line)}.site-header nav.open{display:flex}.hero{min-height:calc(100svh - 68px)}.hero-copy{padding-bottom:5rem}.hero-label{display:none}.intro{grid-template-columns:1fr;padding-top:6rem}.intro .section-kicker{margin:0}.feature-grid{grid-template-columns:1fr}.feature-card:not(.feature-wide) .image-button{aspect-ratio:1.15}.detail-band{grid-template-columns:1fr}.detail-band figure:nth-child(2){transform:none}.detail-band img{aspect-ratio:1.25}.section-heading{grid-template-columns:1fr;margin-bottom:2.5rem}.project-row{grid-template-columns:2.5rem 1fr auto;min-height:64px}.project-row em{font-size:.7rem}.film-grid{grid-template-columns:1fr}.film-main{grid-row:auto}.film-main img{height:auto}.film-card img{aspect-ratio:16/10}footer{grid-template-columns:1fr}.dialog-images{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Expanded New Oak Homes portfolio */
.intro-body{margin:0}.intro-body p{margin:0 0 1rem}
.availability-heading{padding:0 var(--pad);margin-bottom:2.5rem}
.availability-chip{position:absolute;z-index:2;left:1rem;top:1rem;background:var(--green);color:var(--ink);padding:.55rem .8rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.gallery-section{padding:clamp(8rem,13vw,12rem) var(--pad) 2rem}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(270px,32vw);gap:1rem}
.portfolio-card{border:0;padding:0;position:relative;overflow:hidden;background:#ddd;color:#fff;text-align:left;cursor:pointer}
.portfolio-card-wide{grid-column:span 2}.portfolio-card-tall{grid-row:span 2}
.portfolio-card img{transition:transform .65s ease,filter .4s ease}
.portfolio-card:hover img,.portfolio-card:focus-visible img{transform:scale(1.025);filter:brightness(.82)}
.portfolio-card span{position:absolute;inset:auto 0 0;padding:3rem 1.25rem 1.2rem;background:linear-gradient(transparent,rgba(0,0,0,.74));display:flex;justify-content:space-between;align-items:end;gap:1rem}
.portfolio-card strong{font:500 1.15rem Manrope,sans-serif}.portfolio-card small{font-size:.78rem;color:rgba(255,255,255,.78)}
.tour-link{display:inline-block;margin-top:2.5rem;border-bottom:1px solid rgba(255,255,255,.55);font-size:.85rem}
.contact{padding:clamp(7rem,12vw,11rem) var(--pad);background:var(--green);color:var(--ink)}
.contact h2{font:400 clamp(3rem,7vw,7rem)/.98 Manrope,sans-serif;letter-spacing:-.05em;max-width:1000px;margin:.6rem 0 1.5rem}
.contact>p:not(.section-kicker){font-size:1.08rem;max-width:570px}
.contact-links{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin-top:3rem}.contact-links a{font:500 clamp(1rem,2vw,1.25rem) Manrope,sans-serif;border-bottom:1px solid}
.footer-contact{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.85rem}.footer-contact a{border-bottom:1px solid var(--line)}
.dialog-images-many{grid-template-columns:repeat(2,1fr)}.dialog-images-many img,.dialog-images-many img+img{aspect-ratio:4/3}
@media(max-width:760px){.portfolio-grid{grid-template-columns:1fr;grid-auto-rows:70vw}.portfolio-card-wide,.portfolio-card-tall{grid-column:auto;grid-row:auto}.contact-links{flex-direction:column;align-items:flex-start}.footer-contact{align-items:flex-start}.dialog-images-many{grid-template-columns:1fr}}

/* Clickable project directory */
.project-row{appearance:none;width:100%;grid-template-columns:3.25rem 112px 1fr auto;gap:1.25rem;min-height:104px;padding:.75rem 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer}
.project-row:hover,.project-row:focus-visible{padding-left:1rem;padding-right:1rem;background:#ebe8e1}
.project-row.available-row{background:rgba(117,189,50,.09);box-shadow:inset 4px 0 var(--green);padding-left:1rem;padding-right:1rem}
.project-row.available-row:hover,.project-row.available-row:focus-visible{background:rgba(117,189,50,.17)}
.project-row.available-row em{color:var(--ink);font-weight:600}
.project-row.sold-row em{color:var(--muted)}
.project-row>span:first-child{font-size:.75rem;color:var(--muted)}
.project-row img,.project-thumb-label{width:112px;height:76px;object-fit:cover}
.project-thumb-label{display:grid;place-items:center;background:var(--ink);color:#fff!important;text-align:center;padding:.75rem;font-size:.68rem!important;letter-spacing:.08em;text-transform:uppercase}
.dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:2rem 0}
.dialog-actions a{background:var(--ink);color:#fff;padding:.8rem 1rem;font-size:.82rem}
.collection-callout{margin-top:2rem;padding:2rem;border:1px solid var(--line);display:flex;flex-direction:column;gap:.4rem}
.collection-callout span{color:var(--muted);font-size:.9rem}
@media(max-width:760px){.availability-heading{margin-bottom:1.75rem}.project-row{grid-template-columns:2rem 76px 1fr;gap:.75rem;min-height:86px}.project-row img,.project-thumb-label{width:76px;height:58px}.project-row em{display:block;grid-column:3;font-size:.66rem;margin-top:-.55rem}.project-row.available-row{padding-left:.5rem;padding-right:.5rem}}

/* On-site project galleries */
dialog{width:min(1200px,calc(100% - 2rem))}.dialog-close{z-index:5}.project-gallery{margin-top:2rem}.gallery-stage{position:relative;display:grid;place-items:center;aspect-ratio:16/10;overflow:hidden;background:#17100c;touch-action:pan-y}.gallery-main{width:100%;height:100%;object-fit:contain;background:#17100c;user-select:none}.gallery-nav{position:absolute;z-index:2;top:50%;width:3rem;height:3rem;display:grid;place-items:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(23,16,12,.72);color:#fff;font:300 2rem/1 Manrope,sans-serif;cursor:pointer}.gallery-nav:hover,.gallery-nav:focus-visible{background:var(--ink);border-color:#fff}.gallery-prev{left:1rem}.gallery-next{right:1rem}.gallery-counter{position:absolute;right:1rem;bottom:1rem;padding:.4rem .65rem;background:rgba(23,16,12,.75);color:#fff;font-size:.75rem;letter-spacing:.05em}.gallery-thumbs{display:flex;gap:.65rem;overflow-x:auto;padding:.8rem 0 .35rem;scrollbar-width:thin;scrollbar-color:var(--copper) transparent}.gallery-thumb{flex:0 0 108px;width:108px;height:72px;padding:0;border:2px solid transparent;background:#ddd;opacity:.62;cursor:pointer}.gallery-thumb[aria-current="true"]{border-color:var(--green);opacity:1}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb:hover,.gallery-thumb:focus-visible{opacity:1}.dialog-actions{margin-bottom:0}
@media(max-width:760px){.gallery-stage{aspect-ratio:4/3}.gallery-nav{width:2.65rem;height:2.65rem}.gallery-prev{left:.6rem}.gallery-next{right:.6rem}.gallery-counter{right:.6rem;bottom:.6rem}.gallery-thumb{flex-basis:84px;width:84px;height:58px}}
