:root{
  --paper:#F3EEE4;
  --ink:#211C16;
  --accent:#3F5E4E;
  --rule:rgba(33,28,22,.18);
  --rule-soft:rgba(33,28,22,.10);
  --ink-muted:rgba(33,28,22,.66);
  --measure:64ch;
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:19px;
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

@media (max-width:640px){ body{font-size:17.5px;} }

.measure{
  width:100%;
  max-width:var(--measure);
  margin:0 auto;
  padding:0 1.35rem;
}

a{color:var(--accent);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px;border-bottom:1px solid rgba(63,94,78,.45);}
a:hover{border-bottom-color:var(--accent);}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--ink);color:var(--paper);
  padding:.6rem 1rem;font-family:"Inter",system-ui,sans-serif;font-size:.85rem;
  border:0;z-index:20;
}
.skip:focus{left:.5rem;top:.5rem;}

/* ---------- header ---------- */
.topbar{
  border-bottom:1px solid var(--rule);
  background:var(--paper);
}
.topbar__inner{
  max-width:72ch;
  margin:0 auto;
  padding:1.1rem 1.35rem;
  display:flex;
  flex-wrap:wrap;
  gap:.6rem 1.4rem;
  align-items:baseline;
  justify-content:space-between;
}
.wordmark{
  font-family:"Source Serif 4",Georgia,serif;
  font-size:1.22rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
  border:0;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.wordmark__mark{
  width:.62rem;height:.62rem;
  background:var(--accent);
  transform:rotate(45deg);
  display:inline-block;
}
.nav{display:flex;gap:1.3rem;flex-wrap:wrap;}
.nav a{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.78rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink);
  border:0;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--accent);}

/* ---------- article head ---------- */
.article-head{padding:4.2rem 0 1rem;}
@media (max-width:640px){ .article-head{padding-top:2.8rem;} }

.kicker{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin:0 0 1.4rem;
}
.kicker::after{
  content:"";
  display:block;
  width:3.2rem;
  height:2px;
  background:var(--accent);
  margin-top:1rem;
}

h1{
  font-family:"Source Serif 4",Georgia,serif;
  font-weight:600;
  font-size:clamp(2rem,5.6vw,2.95rem);
  line-height:1.12;
  letter-spacing:-.015em;
  margin:0 0 1.1rem;
  text-wrap:balance;
}
.h1--small{font-size:clamp(1.7rem,4.2vw,2.2rem);}

.meta{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.8rem;
  letter-spacing:.06em;
  color:var(--ink-muted);
  margin:0 0 2rem;
  padding-bottom:1.6rem;
  border-bottom:1px solid var(--rule);
}
.meta a{border-bottom-color:rgba(63,94,78,.4);}

.lede{
  font-size:1.3em;
  line-height:1.6;
  font-weight:400;
  margin:0 0 1.2rem;
}
@media (max-width:640px){ .lede{font-size:1.18em;} }

/* ---------- prose ---------- */
.prose{padding:1.6rem 0 1rem;}
.prose h2,.services h2,.contact h2{
  font-family:"Source Serif 4",Georgia,serif;
  font-weight:600;
  font-size:1.34rem;
  line-height:1.3;
  letter-spacing:-.005em;
  margin:2.9rem 0 .8rem;
  padding-top:1.4rem;
  border-top:1px solid var(--rule-soft);
  position:relative;
}
.prose h2::before,.services h2::before,.contact h2::before{
  content:"";
  position:absolute;
  top:-1px;left:0;
  width:2.4rem;height:2px;
  background:var(--accent);
}
.prose p,.services p,.contact p{margin:0 0 1.15rem;}

/* ---------- pull stat ---------- */
.pullstat{padding:1.8rem 0 .6rem;}
.stat{
  margin:0;
  padding:1.7rem 0 1.5rem;
  border-top:2px solid var(--ink);
  border-bottom:1px solid var(--rule);
}
.stat__figure{
  font-family:"Source Serif 4",Georgia,serif;
  font-size:clamp(2rem,6.2vw,2.9rem);
  line-height:1.05;
  font-weight:600;
  letter-spacing:-.02em;
  margin:0 0 .7rem;
}
.stat__note{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.86rem;
  line-height:1.65;
  color:var(--ink-muted);
  max-width:46ch;
}

/* ---------- services ---------- */
.services{padding:1.4rem 0 .6rem;}
.services .intro{color:var(--ink-muted);}
.worklist{margin:1.9rem 0 1.6rem;padding:0;}
.worklist__item{
  padding:1.05rem 0 1.05rem 1.5rem;
  border-top:1px solid var(--rule-soft);
  position:relative;
}
.worklist__item:last-child{border-bottom:1px solid var(--rule-soft);}
.worklist__item::before{
  content:"";
  position:absolute;
  left:0;top:1.55rem;
  width:.42rem;height:.42rem;
  background:var(--accent);
  transform:rotate(45deg);
}
.worklist dt{
  font-family:"Source Serif 4",Georgia,serif;
  font-weight:600;
  font-size:1.05rem;
  line-height:1.4;
  margin-bottom:.2rem;
}
.worklist dd{
  margin:0;
  color:var(--ink-muted);
  font-size:.97rem;
  line-height:1.65;
}

.more{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.84rem;
  letter-spacing:.05em;
  margin:1.8rem 0 0;
}

/* ---------- contact ---------- */
.contact{padding:1.4rem 0 3.4rem;}
.card-contact{
  font-style:normal;
  display:grid;
  grid-template-columns:auto;
  gap:.15rem;
  margin:1.8rem 0 1.4rem;
  padding:1.4rem 1.4rem 1.5rem;
  border:1px solid var(--rule);
  border-left:3px solid var(--accent);
}
.card-contact .label{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin-top:.9rem;
}
.card-contact .label:first-child{margin-top:0;}
.card-contact .line{font-size:1.02rem;}
.fineprint{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.82rem;
  color:var(--ink-muted);
}

/* ---------- footer ---------- */
.foot{
  border-top:1px solid var(--rule);
  padding:1.5rem 0 2.6rem;
}
.foot__inner{
  max-width:72ch;
  display:flex;
  flex-wrap:wrap;
  gap:.7rem 1.6rem;
  align-items:center;
  justify-content:space-between;
}
.foot__brand{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-muted);
  margin:0;
}
.foot__links,.social{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center;}
.foot__links a,.social a{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.76rem;
  letter-spacing:.05em;
  color:var(--ink);
  border-bottom:1px solid transparent;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}
.foot__links a:hover,.social a:hover{color:var(--accent);border-bottom-color:var(--accent);}
.social svg{display:block;}

@media (max-width:520px){
  .social span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .social a{border:1px solid var(--rule);padding:.45rem;}
  .social a:hover{border-color:var(--accent);}
}

::selection{background:var(--accent);color:var(--paper);}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
