.contact-row { display:flex; justify-content:space-between; border-top:1px solid rgba(32,33,31,.3); padding:17px 0; font-size:13px; }.contact-row span { color:#68675f; text-transform:uppercase; letter-spacing:.12em; font-size:10px; }.contact-row a { text-decoration:underline; }.contact-emails { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }.contact-rule { height:1px; background:rgba(32,33,31,.3); margin:38px 0 25px; }.contact-small { font-size:12px; line-height:2; color:#68675f; }
 :root { --ink:#20211f; --muted:#68675f; --paper:#f2f0e9; --sand:#d6c8b2; --olive:#535747; --line:rgba(32,33,31,.18); --serif:'Playfair Display', Georgia, serif; --sans:'DM Sans', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:15px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { width:100%; height:100%; object-fit:cover; display:block; }
.site-header { height:82px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; position:absolute; inset:0 0 auto; z-index:5; color:white; border-bottom:1px solid rgba(255,255,255,.2); }
.brand { display:flex; align-items:center; gap:11px; letter-spacing:.12em; line-height:1; }.brand-mark { width:29px; height:29px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font-family:var(--serif); font-size:17px; font-style:italic; letter-spacing:0; }.brand strong,.brand small { display:block; }.brand strong { font-size:13px; font-weight:700; }.brand small { font-size:9px; letter-spacing:.13em; margin-top:4px; opacity:.75; }
.main-nav { display:flex; gap:34px; margin-left:13%; font-size:12px; }.main-nav a { opacity:.7; transition:.25s; }.main-nav a:hover,.main-nav a.active { opacity:1; }.header-cta { border:1px solid rgba(255,255,255,.55); padding:10px 15px; font-size:11px; }.header-cta span,.button span,.text-link span,.service-card a span { font-size:17px; margin-left:9px; }.menu-toggle { display:none; background:none; border:0; color:white; }
.hero { min-height:760px; height:100vh; position:relative; background:#3b3d36; color:white; overflow:hidden; }.hero-image { position:absolute; inset:0 0 0 40%; opacity:.73; }.hero-image:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#34362f 0%,rgba(52,54,47,.76) 23%,rgba(52,54,47,.12) 72%); }.hero-copy { position:relative; z-index:1; padding:22vh 0 0 11vw; width:55%; }.eyebrow,.section-label { text-transform:uppercase; letter-spacing:.18em; font-size:10px; font-weight:700; }.eyebrow span { display:inline-block; width:30px; height:1px; background:currentColor; vertical-align:middle; margin-right:12px; }.hero h1 { font:500 clamp(50px,7.1vw,108px)/.99 var(--serif); letter-spacing:-.03em; margin:29px 0 28px; }.hero h1 em,h2 em { font-style:italic; font-weight:500; }.hero-text { max-width:350px; color:rgba(255,255,255,.73); font-size:14px; }.button { display:inline-flex; align-items:center; margin-top:26px; padding:14px 18px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }.button-light { color:white; border:1px solid rgba(255,255,255,.52); }.hero-note { position:absolute; right:5vw; top:31%; z-index:1; font-size:12px; }.hero-note span { display:block; writing-mode:vertical-rl; text-transform:uppercase; letter-spacing:.16em; font-size:9px; margin-top:13px; opacity:.75; }.hero-bottom { position:absolute; bottom:36px; left:5vw; right:5vw; display:flex; align-items:center; gap:16px; font-size:10px; text-transform:uppercase; letter-spacing:.14em; z-index:1; }.hero-bottom span:last-child { margin-left:auto; }.scroll-line { height:1px; width:70px; background:rgba(255,255,255,.5); }
.section-pad { padding:125px 10vw; }.section-label { color:var(--muted); margin-bottom:38px; }.intro { background:var(--paper); }.intro-content { display:flex; justify-content:space-between; gap:40px; }.intro h2,.section-heading h2,.about h2,.contact h2 { font:500 clamp(40px,5.5vw,76px)/1.02 var(--serif); letter-spacing:-.035em; margin:0; }.intro-aside { width:260px; padding-top:10px; color:var(--muted); }.text-link { display:inline-block; text-transform:uppercase; font-size:10px; letter-spacing:.15em; border-bottom:1px solid var(--ink); padding-bottom:8px; margin-top:24px; }.feature-list { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; margin-top:100px; border-top:1px solid var(--line); }.feature-list div { padding-top:18px; border-top:2px solid var(--ink); margin-top:-1px; }.feature-list b,.service-number { color:var(--muted); font-size:11px; display:block; margin-bottom:25px; }.feature-list strong { display:block; max-width:220px; font-size:14px; font-weight:500; line-height:1.45; }
.services { background:#20211f; color:#efede5; }.services .section-label { color:#aaa99e; }.section-heading { max-width:800px; }.section-heading h2 { color:#f3f0e8; }.section-heading p { color:#aaa99e; max-width:330px; margin:25px 0 0 auto; }.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.2); margin-top:90px; }.service-card { background:#20211f; min-height:380px; padding:28px 25px; display:flex; flex-direction:column; transition:background .3s; }.service-card:hover { background:#303229; }.service-number { color:#aaa99e; }.service-icon { color:#c8b28f; font-size:27px; margin:10px 0 40px; }.service-card h3 { font:500 31px/1.04 var(--serif); margin:0; }.service-card p { color:#aaa99e; font-size:12px; max-width:200px; margin-top:auto; }.service-card a { font-size:10px; text-transform:uppercase; letter-spacing:.12em; margin-top:22px; }
.about { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }.about-image { height:600px; position:relative; }.image-caption { position:absolute; bottom:20px; left:20px; color:white; font-size:10px; text-transform:uppercase; letter-spacing:.13em; }.about-copy .section-label { margin-bottom:35px; }.about-copy .lead { font-size:17px; line-height:1.55; max-width:470px; margin:35px 0 48px; }.about-details { display:grid; grid-template-columns:1fr 1fr; gap:35px; border-top:1px solid var(--line); padding-top:23px; }.about-details h4 { font-size:11px; text-transform:uppercase; letter-spacing:.12em; margin:0; }.about-details p { font-size:12px; color:var(--muted); margin:15px 0 0; }.work { background:#ddd8cd; }.work-heading { display:flex; align-items:end; max-width:none; justify-content:space-between; }.work-heading p { margin:0 0 7px; }.gallery { display:grid; grid-template-columns:1.2fr .8fr 1fr; grid-template-rows:350px 300px; gap:15px; margin-top:75px; }.gallery figure { margin:0; position:relative; overflow:hidden; background:#aaa; }.gallery figure:after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 60%,rgba(0,0,0,.5)); }.gallery img { transition:transform .7s; }.gallery figure:hover img { transform:scale(1.04); }.gallery-wide { grid-column:span 2; }.gallery-tall { grid-row:span 2; }.gallery figcaption { position:absolute; bottom:16px; left:18px; right:18px; z-index:1; color:#fff; font-size:11px; }.gallery figcaption span { float:right; text-transform:uppercase; letter-spacing:.12em; font-size:9px; opacity:.8; }
.contact { background:var(--sand); display:grid; grid-template-columns:1.2fr .8fr; gap:10vw; }.contact-intro > p { max-width:360px; color:#5d5b53; margin-top:30px; }.button-dark { background:var(--ink); color:white; }.contact-details { padding-top:90px; }.contact-row { display:flex; justify-content:space-between; border-top:1px solid rgba(32,33,31,.3); padding:17px 0; font-size:13px; }.contact-row span { color:#68675f; text-transform:uppercase; letter-spacing:.12em; font-size:10px; }.contact-row a { text-decoration:underline; }.contact-rule { height:1px; background:rgba(32,33,31,.3); margin:38px 0 25px; }.contact-small { font-size:12px; line-height:2; color:#68675f; }.site-footer { background:#20211f; color:#efede5; padding:55px 5vw 22px; }.footer-top { display:flex; align-items:start; justify-content:space-between; padding-bottom:65px; }.brand-footer { margin-top:0; }.footer-top p { margin:0; color:#aaa99e; font:italic 21px/1.25 var(--serif); }.footer-arrow { font-size:10px; text-transform:uppercase; letter-spacing:.14em; }.footer-bottom { border-top:1px solid rgba(255,255,255,.2); padding-top:20px; display:flex; justify-content:space-between; gap:25px; color:#aaa99e; font-size:10px; }.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }.reveal.visible { opacity:1; transform:none; }
@media (max-width:800px) { .site-header { height:70px; padding:0 6vw; }.main-nav { display:none; position:absolute; top:70px; left:0; right:0; margin:0; padding:24px 6vw; background:#20211f; flex-direction:column; gap:18px; }.main-nav.open { display:flex; }.header-cta { display:none; }.menu-toggle { display:flex; flex-direction:column; gap:5px; padding:9px 0 9px 9px; }.menu-toggle span { width:23px; height:1px; background:currentColor; display:block; }.hero { min-height:700px; }.hero-image { inset:0; opacity:.62; }.hero-image:after { background:linear-gradient(90deg,rgba(52,54,47,.9),rgba(52,54,47,.2)); }.hero-copy { padding:190px 8vw 0; width:100%; }.hero h1 { font-size:58px; }.hero-note { display:none; }.hero-bottom { left:8vw; right:8vw; }.section-pad { padding:82px 8vw; }.intro-content,.about,.contact { display:block; }.intro-aside { width:auto; margin-top:30px; }.feature-list { grid-template-columns:1fr; margin-top:60px; gap:20px; }.feature-list div { padding-bottom:20px; }.service-grid { grid-template-columns:1fr 1fr; margin-top:60px; }.service-card { min-height:330px; padding:22px 17px; }.service-card h3 { font-size:27px; }.about-image { height:470px; margin-bottom:60px; }.about-copy .lead { font-size:15px; }.about-details { gap:18px; }.work-heading { display:block; }.work-heading p { margin-top:25px; }.gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:230px 230px 230px; gap:9px; margin-top:50px; }.gallery-wide { grid-column:span 2; }.gallery-tall { grid-row:span 1; }.gallery-square { grid-column:span 1; }.contact-details { padding-top:60px; }.footer-top { display:block; }.footer-top p { margin:35px 0; }.footer-bottom { flex-direction:column; gap:13px; } }
@media (max-width:420px) { .service-grid { grid-template-columns:1fr; }.service-card { min-height:280px; }.hero h1 { font-size:49px; }.gallery { grid-template-columns:1fr; grid-template-rows:260px 260px 260px 260px; }.gallery-wide { grid-column:span 1; } }
@media (min-width:801px) and (max-height:800px) { .hero-copy { padding-top:18vh; width:38%; }.hero .eyebrow { white-space:nowrap; font-size:9px; }.hero h1 { max-width:385px; font-size:clamp(50px,5.1vw,72px); margin:21px 0 18px; }.hero-text { max-width:340px; font-size:13px; }.button { margin-top:17px; } }
.about { align-items:start; }.about-image { height:680px; }.about-copy { padding-top:24px; }.about-details { gap:0 30px; }.about-details > div { padding:22px 0; border-bottom:1px solid var(--line); }.about-details > div:last-child { grid-column:1 / -1; max-width:360px; }
@media (max-width:800px) { .about { align-items:initial; }.about-image { height:470px; }.about-copy { padding-top:0; }.about-details > div:last-child { grid-column:auto; max-width:none; } }
.gallery { grid-auto-rows:300px; }
@media (max-width:800px) { .gallery { grid-auto-rows:230px; } }
@media (max-width:420px) { .gallery { grid-auto-rows:260px; } }
