@font-face{font-family:Caslon;src:url('assets/librecaslondisplay.ttf') format('truetype');font-display:swap}@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#183b3d;--paper:#f4f5f1;--mist:#e3e9e6;--white:#fff;--brass:#bc9d68;--line:#b8c6c2;--muted:#4d6261;--gutter:clamp(24px,4.4vw,64px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Manrope,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-underline-offset:5px}a,button{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Caslon,Georgia,serif;font-weight:400;line-height:1.04;letter-spacing:-.035em}h1{font-size:clamp(48px,6.8vw,98px)}h2{font-size:clamp(40px,4.5vw,66px)}h3{font-size:21px;line-height:1.35;font-weight:500}p{max-width:64ch}button,a,input,select,textarea,summary{outline-offset:5px}:focus-visible{outline:3px solid #9a7135}button{color:inherit}::selection{background:var(--ink);color:var(--white)}[hidden]{display:none!important}.wrap{width:min(100%,1448px);margin:auto;padding-inline:var(--gutter)}.section{padding-block:100px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.6}.muted{color:var(--muted)}.intro{font-size:18px;margin-top:24px}.skip{position:absolute;top:-100px;left:20px;z-index:100;background:white;padding:16px}.skip:focus{top:10px}.draft-strip{background:var(--ink);color:white;text-align:center;font-size:11px;letter-spacing:.08em;padding:6px 16px}.header{position:relative;z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{text-decoration:none;display:flex;align-items:center;gap:19px}.wordmark{font-family:Caslon,Georgia,serif;font-size:47px;line-height:1;letter-spacing:-.08em}.brand-label{font-size:10px;line-height:1.5;text-transform:uppercase;letter-spacing:.15em;border-left:1px solid var(--line);padding-left:18px}.nav{display:flex;align-items:center;gap:30px}.nav a{font-size:13px;text-decoration:none;min-height:44px;display:flex;align-items:center}.nav a[aria-current=page]{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:54px;padding:15px 23px;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:2px;text-decoration:none;font-size:13px;font-weight:600;line-height:1.4}.button:hover{background:#295457}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.text-link{display:inline-flex;align-items:center;gap:30px;min-height:48px;font-size:13px}.menu-toggle{display:none;background:none;border:1px solid var(--ink);padding:8px 12px;min-height:44px}.hero{padding-top:58px;padding-bottom:54px}.hero-heading{display:grid;grid-template-columns:1.6fr 1fr;gap:50px;align-items:end;margin-bottom:40px}.hero h1{max-width:950px}.hero h1 em{font-style:normal;color:#637c73}.hero-aside{padding-bottom:6px;justify-self:end;max-width:280px}.hero-aside p{font-size:15px;margin-bottom:23px}.hero .eyebrow{margin-bottom:25px}.hero-photo{height:clamp(320px,40vw,570px);object-fit:cover;object-position:50% 58%}.image-caption{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:14px 0;font-size:11px;letter-spacing:.04em}.image-caption span:last-child{color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}.section-head h2{max-width:680px}.section-head .eyebrow{margin-bottom:16px}.section-head p{max-width:330px;font-size:14px}.signature{background:var(--ink);color:var(--paper)}.signature .eyebrow{color:#c6d2cd}.mode-controls{display:flex;gap:0;border-bottom:1px solid #587271;margin-bottom:30px}.mode-controls button{background:none;border:0;color:var(--paper);padding:16px 24px;min-height:54px;font-size:14px;border-bottom:2px solid transparent}.mode-controls button[aria-pressed=true]{border-color:var(--brass);color:#e0c99e}.signature-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:52px;align-items:center}.signature-image{aspect-ratio:1.6;object-fit:cover}.signature-text h3{font:38px/1.12 Caslon,Georgia,serif;margin-bottom:24px}.signature-text p{font-size:15px;color:#d3ded8}.signature-text .text-link{margin-top:24px}.technical{background:#214749;padding:24px;min-height:330px}.technical svg{width:100%;height:auto;display:block}.technical-label{font-size:11px;color:#d3ded8;margin-top:10px}.signature details{border-color:#587271}.signature details p{color:#d3ded8}.services-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:1.05fr 1fr 44px;align-items:center;gap:40px;padding:27px 0;border-bottom:1px solid var(--line);text-decoration:none}.service-row h3{font:34px/1.12 Caslon,Georgia,serif}.service-row p{font-size:14px;color:var(--muted)}.arrow{font-size:24px;text-align:right;transition:transform .2s}.service-row:hover .arrow{transform:translateX(5px)}.service-row:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}.service-note{margin-top:28px;font-size:13px;max-width:76ch}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.project-card{text-decoration:none;display:block}.project-card img{aspect-ratio:4/5;object-fit:cover;transition:filter .2s}.project-card:nth-child(2){padding-top:68px}.project-card:nth-child(3){padding-top:132px}.project-card:hover img{filter:brightness(.9)}.project-card .eyebrow{margin-top:19px;font-size:10px}.project-card h3{font:31px/1.15 Caslon,Georgia,serif;margin:8px 0 12px}.project-card .project-footer{font-size:12px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.reference-note{font-size:12px;margin-top:30px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}.filters button{border:1px solid var(--line);background:transparent;min-height:46px;padding:10px 20px;font-size:13px}.filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.filter-status{font-size:12px;margin-bottom:24px}.filtered-grid .project-card{padding-top:0}.approach{background:var(--mist)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:50px}.step-number{font-family:Caslon,serif;font-size:46px;color:#607a72;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px}.steps h3{margin-bottom:14px}.steps p{font-size:14px}.contact-band{padding-block:80px;background:var(--ink);color:white}.contact-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact-band h2{max-width:700px}.contact-band p{font-size:13px;margin-top:20px;color:#d3ded8}.footer{padding-block:54px 24px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}.footer .wordmark{font-size:64px}.footer p,.footer a{font-size:13px}.footer-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:15px}.footer-links{display:flex;flex-direction:column;align-items:start}.footer-links a{padding-block:7px;min-height:40px;text-decoration:none}.footer-bottom{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.breadcrumbs{font-size:11px;display:flex;flex-wrap:wrap;gap:12px;padding-top:28px;align-items:center}.breadcrumbs a{min-height:30px;display:flex;align-items:center}.page-intro{padding-block:58px 64px;max-width:1050px}.page-intro .eyebrow{margin-bottom:22px}.page-intro h1{font-size:clamp(48px,6vw,84px)}.page-intro p{margin-top:25px;font-size:18px;max-width:55ch}.wide-image{aspect-ratio:2.3;object-fit:cover;max-height:570px}.detail-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start}.detail-layout h2{font-size:48px}.detail-layout .eyebrow{margin-bottom:20px}.details-stack{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:0}summary{list-style:none;cursor:pointer;padding:24px 42px 24px 0;position:relative;font-size:17px;font-weight:500}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:0;font-size:26px;font-weight:300;top:16px}details[open]>summary:after{content:'−'}details p{font-size:15px;margin:0 30px 25px 0;line-height:1.8}details ul{padding-left:20px;margin-bottom:25px;font-size:15px}.checklist{list-style:none;padding:0;margin:30px 0}.checklist li{border-bottom:1px solid var(--line);padding:13px 0;font-size:15px}.checklist li:before{content:'';display:inline-block;width:7px;height:7px;vertical-align:middle;background:currentColor;margin-right:18px;color:#627c73}.scope-note{font-size:12px;color:var(--muted);margin-top:24px}.diagram-block{background:var(--mist);padding:40px;margin-top:12px}.diagram-block svg{max-height:260px;width:100%}.diagram-block p{font-size:11px;margin-top:14px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-block:30px;border-bottom:1px solid var(--line)}.facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:10px}.facts dd{margin:0;font-size:14px}.source-line{font-size:12px;margin-top:24px;overflow-wrap:anywhere}.company-word{font:clamp(100px,22vw,310px)/1 Caslon,serif;letter-spacing:-.08em;padding:50px;background:var(--mist)}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-info h2{font-size:42px}.contact-info p{margin-top:24px;font-size:15px}.contact-info .contact-value{font-size:18px;overflow-wrap:anywhere}.preview-note{padding:20px;background:var(--mist);font-size:13px;margin-bottom:26px;border-left:3px solid var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #809591;background:transparent;border-radius:0;min-height:52px;padding:12px;color:var(--ink)}.field textarea{min-height:135px;resize:vertical}.form-actions{margin-top:26px}.form-actions .button:disabled{opacity:.5;cursor:not-allowed}.form-status{font-size:14px;margin-top:22px;max-width:55ch}.legal{max-width:850px}.legal h2{font-size:34px;margin:36px 0 16px}.legal p{font-size:15px;margin-bottom:18px}.nojs{font-size:13px;padding:16px;border:1px solid var(--line);margin-top:16px}
@media(min-width:901px){.nav .nav-cta{padding:12px 19px;background:var(--ink);color:white}.hero h1{font-size:clamp(66px,6.6vw,96px)}}
@media(max-width:1000px){.brand-label{display:none}.nav{gap:22px}.hero-heading{grid-template-columns:1.5fr 1fr;gap:25px}.signature-layout,.detail-layout{gap:40px}.contact-layout{gap:40px}.section{padding-block:76px}.project-grid{gap:20px}}
@media(max-width:900px){.header-inner{min-height:80px;flex-wrap:wrap;gap:12px;padding-block:16px}.nav{width:100%;justify-content:space-between;gap:10px;flex-wrap:wrap}.js .menu-toggle{display:block}.js .nav{display:none}.js .nav.is-open{display:flex;padding-block:18px 6px}.nav a{font-size:13px}.hero-heading{grid-template-columns:1fr}.hero-aside{justify-self:start;max-width:none;display:flex;align-items:center;gap:35px}.hero-aside p{margin:0}.hero{padding-top:40px}.hero h1{max-width:800px}.signature-layout{grid-template-columns:1fr}.signature-text{max-width:650px}.section-head{align-items:start}.service-row{grid-template-columns:1.1fr 1fr 25px;gap:22px}.detail-layout{grid-template-columns:1fr}.detail-layout>div:first-child{max-width:600px}.contact-layout{grid-template-columns:1fr}.contact-info{max-width:600px}.project-card:nth-child(2){padding-top:40px}.project-card:nth-child(3){padding-top:80px}.filtered-grid .project-card{padding-top:0}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.steps{gap:25px}}
@media(max-width:600px){h1{font-size:50px}h2{font-size:42px}.section{padding-block:60px}.hero{padding-top:34px;padding-bottom:30px}.hero .eyebrow{font-size:10px;margin-bottom:20px}.hero-heading{margin-bottom:28px;gap:25px}.hero-aside{display:block}.hero-aside p{font-size:14px;margin-bottom:18px}.hero-photo{height:340px;object-position:57% 50%}.image-caption{font-size:10px;gap:12px}.image-caption span:last-child{display:none}.section-head{display:block;margin-bottom:30px}.section-head p{margin-top:22px}.section-head .text-link{margin-top:20px}.mode-controls button{padding:14px 12px;font-size:12px;flex:1}.signature-layout{gap:28px}.signature-image{aspect-ratio:1.2}.signature-text h3{font-size:32px}.technical{padding:12px;min-height:220px}.service-row{grid-template-columns:1fr 30px;gap:10px;padding-block:23px}.service-row h3{font-size:29px}.service-row p{grid-row:2;grid-column:1;font-size:12px}.service-row .arrow{grid-row:1/3;grid-column:2}.project-grid{grid-template-columns:1fr;gap:38px}.project-card:nth-child(n){padding-top:0}.project-card img{aspect-ratio:1.15}.project-card h3{font-size:32px}.steps{grid-template-columns:1fr;gap:30px;margin-top:30px}.step-number{font-size:32px;padding-bottom:8px;margin-bottom:14px}.contact-band{padding-block:55px}.contact-band .wrap{display:block}.contact-band .button{margin-top:30px}.footer{padding-top:38px}.footer-grid{gap:24px}.footer-bottom{display:block;line-height:1.9}.page-intro{padding-block:35px 42px}.page-intro h1{font-size:49px}.page-intro p{font-size:16px}.wide-image{aspect-ratio:1.2}.detail-layout{gap:30px}.detail-layout h2{font-size:39px}.facts{grid-template-columns:1fr;gap:20px}.facts dt{margin-bottom:4px}.form-grid{grid-template-columns:1fr;gap:20px}.field.full{grid-column:auto}.contact-info h2{font-size:35px}.company-word{padding:35px 24px}.diagram-block{padding:20px}.filters{gap:8px}.filters button{padding:10px 14px}.breadcrumbs{font-size:10px;gap:8px}.js .nav.is-open{display:grid;grid-template-columns:1fr 1fr}.nav a{min-height:48px}.nav .nav-cta{font-weight:700}details p{margin-right:0}.scope-note{font-size:12px}.button{gap:24px}summary{font-size:16px}}
.mode-controls,.filters{display:none}.js .mode-controls,.js .filters{display:flex}
.source-gallery{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.source-gallery figure:nth-child(2){padding-top:76px}.source-gallery img{aspect-ratio:4/3;object-fit:cover}.source-gallery .source-line{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.source-projects{background:var(--mist);margin-top:70px}.named-projects{font:32px/1.5 Caslon,Georgia,serif}.filtered-grid{row-gap:55px}.hero-photo{object-position:50% 50%}
@media(max-width:600px){.image-caption span:only-child{display:block}}
@media(max-width:600px){.source-gallery{grid-template-columns:1fr;gap:30px}.source-gallery figure:nth-child(2){padding-top:0}.named-projects{font-size:28px}.hero-photo{object-position:46% 50%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.proof-card{display:flex;flex-direction:column;gap:14px;text-decoration:none;background:var(--mist);padding:30px;border-top:3px solid var(--ink)}.proof-card:hover{background:#e3e9e5}.proof-card .eyebrow{font-size:10px}.proof-brand{font-size:13px;font-weight:600;letter-spacing:.06em;color:#637c73}.proof-card h3{font:30px/1.15 Caslon,Georgia,serif}.proof-card p:not(.eyebrow):not(.proof-brand){font-size:14px}.proof-card .project-footer{margin-top:auto;font-size:12px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}
@media(max-width:900px){.proof-grid{grid-template-columns:1fr 1fr;gap:20px}}
@media(max-width:600px){.proof-grid{grid-template-columns:1fr}.proof-card{padding:24px}.proof-card h3{font-size:28px}}
.project-plate img{max-height:680px;object-fit:cover;aspect-ratio:1.8}.hero .project-plate img{aspect-ratio:2.25;object-position:center}.project-story{display:grid;grid-template-columns:1.25fr 1fr;gap:7%;align-items:center;padding-block:54px;border-top:1px solid var(--line)}.project-story:nth-child(even)>:first-child{order:2}.project-story .project-plate img{aspect-ratio:1.2}.story-copy h2{font-size:clamp(36px,4vw,58px);margin:18px 0}.story-copy>p:not(.eyebrow){font-size:15px}.card-image{position:relative}.image-type{position:absolute;bottom:14px;left:14px;background:var(--paper);color:var(--ink);padding:7px 10px;font-size:11px;max-width:calc(100% - 28px)}.project-card>p{font-size:13px;margin-bottom:18px}.project-card h3{margin-top:20px}.project-footer{gap:15px}.project-footer span:first-child{max-width:90%}.service-filter{display:none;gap:12px;align-items:center;margin-bottom:24px}.js .service-filter{display:flex}.service-filter label{font-size:13px}.service-filter select{max-width:100%;min-height:48px;background:transparent;border:1px solid var(--line);padding:10px;font-size:14px;color:var(--ink)}.image-caption span:only-child{display:block}.source-gallery .project-plate img{aspect-ratio:4/3;object-fit:contain;background:var(--mist)}.project-plate .image-caption{padding:12px 14px;background:var(--mist)}
@media(max-width:600px){.project-story{grid-template-columns:1fr;gap:25px;padding-block:32px}.project-story:nth-child(even)>:first-child{order:0}.hero .project-plate img{aspect-ratio:1.15}.project-plate img{aspect-ratio:1.15;max-height:500px}.story-copy h2{margin:12px 0}.service-filter{flex-direction:column;align-items:stretch}.project-plate .image-caption{font-size:10px}.page-intro .eyebrow{font-size:11px}.project-footer{font-size:11px!important}}

.reference-index{padding-top:0}.reference-index .filters{margin-top:0}

.project-list .list-group{font:28px/1.2 Caslon,Georgia,serif;margin:48px 0 14px}.list-rows{border-top:1px solid var(--line)}.list-row{display:grid;grid-template-columns:1.1fr 1.2fr 1.6fr 90px;gap:24px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;align-items:baseline}.list-row strong{font-weight:600}.list-row .muted{text-align:right}
@media(max-width:900px){.list-row{grid-template-columns:1fr 1fr;gap:4px 18px}.list-row span:nth-child(3){grid-column:1/-1}}
@media(max-width:600px){.list-row{grid-template-columns:1fr;gap:2px}.list-row .muted{text-align:left}.project-list .list-group{font-size:24px}}
.legal p,.legal h2{overflow-wrap:anywhere;hyphens:auto}
