@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#203c34;--paper:#f7f5ee;--stone:#eae8dc;--muted:#58645b;--line:#c8cec1;--oak:#b18b58}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.75}button,input,textarea,select{font:inherit}a{color:inherit;text-underline-offset:5px}img{width:100%;display:block;object-fit:cover}button,a{-webkit-tap-highlight-color:transparent}.container{width:min(1280px,90%);margin-inline:auto}h1,h2,h3,p{margin:0}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;line-height:1.03;letter-spacing:-.04em}h1{font-size:clamp(58px,6.5vw,96px)}h1 em{font-weight:400;color:#7a654a}h2{font-size:clamp(43px,4.8vw,66px)}h3{font-weight:600;font-size:20px;line-height:1.35;letter-spacing:-.025em}p{margin-bottom:20px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:700;line-height:1.6;margin-bottom:22px}.demo-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 5%;background:var(--ink);color:var(--paper);font-size:11px;line-height:1.5}.demo-bar p{margin:0}.demo-bar>a{white-space:nowrap}.site-header{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:120px}.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:23px;line-height:1.15;font-weight:600;letter-spacing:.07em}.wordmark small{display:block;font-size:8px;letter-spacing:.16em;font-weight:500;margin-top:8px}.brand-mark{height:44px;width:38px;display:flex;gap:4px;align-items:center;transform:skewY(-10deg);border-bottom:2px solid currentColor}.brand-mark i{display:block;width:8px;height:36px;border:1px solid currentColor}.brand-mark i:nth-child(2){height:44px}.brand-mark i:nth-child(3){height:28px}.site-header nav{display:flex;align-items:center;gap:27px;font-size:12px}.site-header nav>a:not(.button){text-decoration:none}.site-header nav>a:not(.button):hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);border:1px solid var(--ink);color:var(--paper);padding:15px 25px;font-size:12px;letter-spacing:.015em;text-decoration:none;line-height:1.4;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#36574a;transform:translateY(-2px)}.button-small{padding:13px 18px;font-size:11px}.hero{display:grid;grid-template-columns:.9fr 1.15fr;gap:65px;align-items:center;padding:25px 0 65px}.hero-copy{padding:30px 0}.hero .intro{font-size:17px;max-width:410px;margin:28px 0}.quiet-link{display:block;width:fit-content;margin-top:19px;font-size:12px}.hero-note{display:flex;align-items:center;gap:16px;margin-top:42px}.note-line{display:block;height:1px;width:40px;background:var(--oak)}.hero-note p{margin:0;font-size:11px;line-height:1.7;color:var(--muted)}.hero-image{position:relative;height:610px;background:var(--stone)}.hero-image img{height:100%;object-position:40% center}.photo-caption{position:absolute;left:-30px;bottom:40px;padding:21px 29px;background:var(--paper);font-family:'Libre Caslon Display',Georgia,serif;font-size:29px;box-shadow:0 4px 22px #14291b08}.image-label{position:absolute;right:17px;top:20px;color:#fff;font-size:9px;letter-spacing:.17em;text-shadow:0 1px 8px #0009;writing-mode:vertical-rl}.values-strip{border-block:1px solid var(--line);padding:23px 0}.values-strip>.container{display:flex;align-items:center;justify-content:space-around;gap:20px;font-size:12px}.values-strip i{width:4px;height:4px;background:var(--oak);border-radius:50%;flex-shrink:0}.section{padding-block:100px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:45px}.section-heading>p,.section-heading>div>p:not(.eyebrow){max-width:480px;color:var(--muted);font-size:16px;margin-bottom:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.service-grid article{border-top:1px solid var(--line);padding-top:24px}.service-number{font-size:11px;color:#776448;display:block;margin-bottom:30px}.service-grid h3{margin-bottom:15px}.service-grid p{font-size:14px;color:var(--muted);max-width:330px}.service-grid a{font-size:11px;font-weight:600}.project-section{padding:90px 0;background:#ebece3}.image-disclosure{font-size:11px!important;margin-top:15px!important}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}.filter{padding:8px 17px;background:transparent;border:1px solid #9aa796;font-size:11px;border-radius:25px;color:var(--ink);cursor:pointer}.filter.active,.filter:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.project-card[hidden]{display:none}.project-photo{display:block;position:relative;width:100%;padding:0;background:var(--stone);border:0;cursor:pointer;overflow:hidden}.project-photo img{height:330px;transition:transform .5s}.project-photo:hover img{transform:scale(1.035)}.project-photo>span{position:absolute;right:15px;bottom:15px;background:var(--paper);font-size:10px;padding:8px 12px;color:var(--ink)}.project-card>div{padding:22px 0}.project-card .eyebrow{font-size:9px;margin-bottom:10px}.project-card h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:29px;font-weight:400;margin-bottom:8px}.project-card>div>p:last-child{font-size:12px;color:var(--muted);margin:0}.approach{display:grid;grid-template-columns:.9fr 1fr;gap:95px;align-items:center}.approach-image{position:relative;padding-right:20px}.approach-image img{height:680px;object-position:45% center}.vertical-caption{position:absolute;right:-15px;bottom:30px;writing-mode:vertical-rl;font-size:9px;letter-spacing:.16em}.approach-copy h2{margin-bottom:30px}.approach-copy>p:not(.eyebrow){font-size:15px;color:var(--muted)}.process{list-style:none;margin:30px 0 0;padding:0}.process li{display:flex;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.process li>span{font-size:10px;padding-top:4px;color:#776448}.process h3{font-size:15px;margin-bottom:6px}.process p{font-size:13px;color:var(--muted);margin:0}.quote-banner{position:relative;background:var(--ink);color:var(--paper);padding:75px 0;overflow:hidden}.quote-banner>.container{position:relative;z-index:1}.quote-banner h2{max-width:850px;margin-bottom:32px}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button-light:hover{background:#e5dfcf}.wood-lines{position:absolute;right:-100px;top:-100px;width:450px;height:600px;border:1px solid #ffffff17;border-radius:50%;transform:rotate(30deg);box-shadow:0 0 0 30px #ffffff05,0 0 0 60px #ffffff05,0 0 0 90px #ffffff05,0 0 0 120px #ffffff05}.contact{display:grid;grid-template-columns:.8fr 1.1fr;gap:100px}.contact h2{margin-bottom:25px}.contact>div>p{font-size:15px;color:var(--muted);max-width:410px}.contact-note{padding-top:25px;margin-top:30px;border-top:1px solid var(--line)}.contact-note h3{font-size:14px;margin-bottom:8px}.contact-note p{font-size:12px;max-width:330px;color:var(--muted)}.demo-form-note{font-size:11px!important;margin-top:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{margin-bottom:22px}.field label{display:block;font-size:11px;font-weight:600;margin-bottom:8px}.field input,.field textarea,.field select{width:100%;border:1px solid #aab5a6;border-radius:0;background:#fffdf7;color:var(--ink);padding:12px;min-height:46px;font-size:14px}.field textarea{resize:vertical}.field textarea::placeholder{color:#6e756b;font-size:12px}.form-hint{font-size:10px;color:var(--muted)}.field-error{color:#942f1b;font-size:11px;display:block;margin-top:5px}.field-error:empty{display:none}[aria-invalid=true]{border:2px solid #942f1b!important}.form-status:not(:empty){margin-top:22px;border-left:3px solid var(--oak);padding:15px 18px;background:var(--stone);font-size:13px}.form-status a{display:block;font-weight:600;margin-top:10px}.site-footer{border-top:1px solid var(--line);padding:45px 0 20px}.site-footer>.container{display:flex;align-items:center;justify-content:space-between;gap:25px}.site-footer p{font-family:'Libre Caslon Display',Georgia,serif;font-size:23px;margin:0}.site-footer>.container>a:last-child{font-size:11px}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;font-size:10px;color:var(--muted)}.footer-bottom a{font-size:10px!important}.menu-button{display:none}.skip{position:fixed;left:15px;top:-100px;padding:10px;background:var(--ink);color:var(--paper);z-index:99}.skip:focus{top:10px}:focus-visible{outline:3px solid #987647;outline-offset:5px}dialog{padding:20px;border:0;background:var(--paper);color:var(--ink);max-width:min(1100px,92vw);max-height:90vh;width:90vw;overflow:auto}dialog::backdrop{background:#0f201de6}dialog img{max-height:72vh;object-fit:contain}dialog p{margin:15px 0 0;font-size:12px}.dialog-close{display:block;margin:0 0 15px auto;background:var(--ink);color:var(--paper);border:0;padding:8px 16px;cursor:pointer;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(15px);transition:opacity .6s,transform .6s}.motion-ready .reveal.visible{opacity:1;transform:none}
@media(max-width:1050px){.site-header nav{gap:17px;font-size:11px}.wordmark{font-size:19px}.wordmark small{font-size:7px}.hero{gap:40px}.hero-image{height:560px}.approach{gap:55px}.contact{gap:50px}.project-photo img{height:280px}.site-header .button-small{padding:12px}.section{padding-block:75px}}
@media(max-width:750px){.demo-bar{font-size:10px;align-items:flex-start;gap:15px}.demo-bar p{max-width:230px}.site-header{min-height:100px;position:relative}.wordmark{font-size:19px}.brand-mark{width:31px;height:38px}.brand-mark i{width:7px}.menu-button{display:block;background:transparent;border:1px solid var(--ink);padding:8px 13px;color:var(--ink);font-size:12px}.site-header nav{display:none;position:absolute;left:0;right:0;top:95px;padding:25px;background:var(--paper);border:1px solid var(--line);z-index:20}.site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:22px}.hero{grid-template-columns:1fr;gap:30px;padding-top:10px;padding-bottom:40px}.hero-copy{padding:15px 0 0}.hero h1{font-size:68px}.hero .eyebrow{max-width:280px;font-size:9px}.hero .intro{font-size:16px;max-width:430px;margin-block:24px}.hero-note{display:none}.hero-image{height:420px}.photo-caption{left:-10px;bottom:25px;font-size:25px;padding:15px 22px}.values-strip{padding:20px 0}.values-strip>.container{gap:12px;flex-direction:column;font-size:11px}.values-strip i{display:none}.section{padding-block:60px}.section-heading{grid-template-columns:1fr;gap:25px;margin-bottom:35px}.section-heading p{font-size:15px!important}.service-grid{grid-template-columns:1fr;gap:30px}.service-number{margin-bottom:15px}.service-grid p{max-width:none}.project-section{padding-block:60px}.projects-grid{grid-template-columns:1fr;gap:15px}.project-photo img{height:360px}.filters{gap:8px}.filter{padding:8px 13px;font-size:10px}.approach{grid-template-columns:1fr;gap:40px}.approach-image{padding-right:10px}.approach-image img{height:410px}.vertical-caption{right:-10px}.quote-banner{padding-block:55px}.quote-banner h2{font-size:45px}.contact{grid-template-columns:1fr;gap:35px}.contact>div>p{max-width:none}.contact-note{margin-top:20px;padding-top:20px}.form-row{grid-template-columns:1fr;gap:0}.site-footer>.container{flex-direction:column;align-items:flex-start;gap:20px}.footer-bottom{gap:12px!important}.footer-bottom span{max-width:300px}.site-footer .wordmark{font-size:20px}.project-card>div{padding:20px 0 30px}.service-grid a{display:inline-block;padding-block:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.project-photo:hover img{transform:none}.button:hover{transform:none}}
/* Keep controls and enquiries usable when scripts are unavailable. */
.enquiry-fields{border:0;padding:0;margin:0;min-width:0}[hidden]{display:none!important}.site-header nav>a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:700px){.site-header:has(nav:not([data-enhanced])){flex-wrap:wrap}.site-header nav:not([data-enhanced]){display:flex;position:static;flex-wrap:wrap;width:100%;padding:15px 0;border:0;gap:12px 20px}}
img{height:auto}
