:root{--paper:#fff;--ink:#182723;--green:#133c33;--muted:#4d5e56;--line:#dce3df;--accent:#dbebbe;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans)}a{color:inherit;text-underline-offset:.23em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:3px solid #9b530f;outline-offset:5px}.skip{position:absolute;left:1rem;top:-5rem;background:white;padding:.6rem;z-index:1}.skip:focus{top:1rem}.wrap{width:min(1180px,calc(100% - 3rem));margin:auto}header{border-bottom:1px solid var(--line)}.head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.1rem}.brand{font:600 1.45rem var(--serif);text-decoration:none;white-space:nowrap}.nav{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem 1.25rem}.nav a{font-size:.84rem;font-weight:650;text-decoration:none}.nav a:hover,.nav [aria-current]{text-decoration:underline}.contact-nav{border:1px solid var(--green);padding:.35rem .75rem}.hero{background:var(--paper);color:var(--green);border-bottom:1px solid var(--line);padding:clamp(3rem,7vw,7rem) 0}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:clamp(2rem,7vw,6rem)}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;margin:0 0 .65em}h1{font-size:clamp(2.8rem,7vw,6.2rem);letter-spacing:-.045em;margin-bottom:.25em}h2{font-size:clamp(1.9rem,3.5vw,3.2rem);letter-spacing:-.025em}h3{font-size:1.55rem;margin-bottom:.35em}p{margin:.1em 0 1.05em}.kicker{font-size:.73rem;font-weight:750;letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;color:var(--muted)}.hero .kicker,.banner .kicker{color:var(--muted)}.hero .theme{font:clamp(1.35rem,2.5vw,2.2rem)/1.23 var(--serif);max-width:24ch}.hero p:not(.kicker){max-width:54ch}.button{display:inline-block;background:var(--accent);color:var(--ink);padding:.7rem 1.15rem;font-weight:700;text-decoration:none;font-size:.92rem}.button:hover{text-decoration:underline}.hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem}figure{margin:0}figure img{display:block;width:100%;height:auto;border:1px solid #a2b29b}.hero figure img{border-radius:clamp(14px,2.2vw,24px)}.hero figure{max-width:400px;margin-left:auto}figcaption{font-size:.78rem;margin-top:.55rem}.band{padding-block:clamp(2.6rem,6vw,5.3rem);border-bottom:1px solid var(--line)}.split{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(1rem,5vw,5rem)}.lead{font-size:clamp(1.05rem,2vw,1.28rem);max-width:65ch}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{padding:1.3rem;border:1px solid var(--line);background:var(--paper)}.card p{font-size:.94rem}.text-link{font-weight:700;font-size:.9rem}.soft{background:#f6f9f7}.banner{background:#f1f6f3;color:var(--green)}.crumb{font-size:.86rem;padding-top:1.2rem;color:var(--muted)}.page-heading{padding:2.4rem 0 2.7rem;border-bottom:1px solid var(--line)}.page-heading h1{font-size:clamp(2.6rem,6vw,5rem)}.prose{max-width:780px}.entries{list-style:none;margin:0;padding:0}.entries>li,.entry{padding:1.4rem 0;border-bottom:1px solid var(--line)}.evidence{font-size:.82rem;color:var(--muted)}.entries .kicker{margin-bottom:.6rem}.case dl{margin:0}.case dt{font:1.55rem var(--serif);margin:1.3rem 0 .4rem}.case dd{margin:0}.footer{padding-block:2rem}.foot-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}.footer a{font-size:.85rem}address{font-style:normal;overflow-wrap:anywhere}@media(max-width:820px){.head{align-items:flex-start;flex-direction:column}.hero-grid,.split{grid-template-columns:1fr}.hero figure{max-width:320px}.cards{grid-template-columns:1fr 1fr}}@media(max-width:520px){.wrap{width:calc(100% - 2rem)}.cards{grid-template-columns:1fr}.nav{gap:.45rem .85rem}.nav a{font-size:.8rem}}

.project-images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.3rem 0 .7rem;
}
@media (max-width: 520px) {
  .project-images { grid-template-columns: 1fr; }
}

#media-query {
  display: block;
  width: min(100%, 32rem);
  font: inherit;
  padding: .6rem .8rem;
  border: 1px solid var(--muted);
  border-radius: 0;
  margin: .45rem 0;
  background: #fffdf7;
  color: var(--ink);
}
#media-count { font-size: .85rem; color: var(--muted); }
