:root{
  --paper:#F3EEE4;
  --ink:#211C16;
  --accent:#3F5E4E;
  --rule:rgba(33,28,22,.16);
  --rule-strong:rgba(33,28,22,.34);
  --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,"Times New Roman",serif;
  font-size:18px;
  line-height:1.78;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block;}

a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{text-decoration-thickness:2px;}

.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;
  z-index:10;text-decoration:none;
}
.skip:focus{left:.5rem;top:.5rem;}

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

/* ---------- header ---------- */
.site-head{
  border-bottom:1px solid var(--rule);
  padding:1.4rem 0 1.1rem;
}
.head-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:.6rem 1.5rem;
}
.wordmark{
  font-family:"Source Serif 4",Georgia,serif;
  font-weight:600;
  font-size:1.18rem;
  letter-spacing:.01em;
  color:var(--ink);
  text-decoration:none;
}
.nav{
  display:flex;
  gap:1.25rem;
  font-family:"Inter",system-ui,sans-serif;
  font-size:.78rem;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.nav a{color:var(--ink);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;}
.nav a:hover,.nav a.is-active{color:var(--accent);border-bottom-color:var(--accent);}

/* ---------- blocks ---------- */
.block{padding:3.1rem 0 .6rem;}
.block-hero{
  padding:2.4rem 0 2.6rem;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  margin-top:2.4rem;
}
.block-contact{padding-bottom:3rem;}

.kicker{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 1.1rem;
}

h1{
  font-size:clamp(1.85rem,5.4vw,2.6rem);
  line-height:1.17;
  font-weight:600;
  letter-spacing:-.012em;
  margin:0 0 1.3rem;
  max-width:22ch;
}

h2{
  font-size:1.26rem;
  font-weight:600;
  line-height:1.3;
  margin:2.6rem 0 .7rem;
  padding-top:.9rem;
  border-top:1px solid var(--rule);
}
.block-hero h2,.block-contact h2{border-top:0;padding-top:0;}

h3{
  font-size:1.03rem;
  font-weight:600;
  margin:0 0 .25rem;
}

p{margin:0 0 1.15rem;}

.lead{
  font-size:1.26rem;
  line-height:1.62;
  margin-bottom:1.8rem;
}

.hero-title{
  font-size:clamp(1.45rem,3.9vw,1.95rem);
  line-height:1.26;
  font-weight:400;
  font-style:italic;
  margin:0 0 .8rem;
  border-top:0;
  padding-top:0;
}
.meta{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:1.3rem;
}

/* ---------- pull stat ---------- */
.pullstat{
  border-top:2px solid var(--ink);
  border-bottom:1px solid var(--rule-strong);
  margin:2.3rem 0;
  padding:1.1rem 0 1.2rem;
}
.pullstat-num{
  font-family:"Inter",system-ui,sans-serif;
  font-size:clamp(1.6rem,5vw,2.05rem);
  font-weight:600;
  letter-spacing:-.02em;
  margin:0 0 .35rem;
}
.pullstat-txt{
  margin:0;
  font-size:.98rem;
  line-height:1.62;
}

/* ---------- figures ---------- */
.fig{margin:2.2rem 0 2rem;}
.fig img{border:1px solid var(--rule-strong);}
.fig figcaption{
  font-family:"Inter",system-ui,sans-serif;
  font-size:.76rem;
  letter-spacing:.03em;
  margin-top:.6rem;
  color:var(--ink);
  opacity:.72;
}

/* ---------- steps ---------- */
.steps{
  list-style:none;
  counter-reset:step;
  margin:1.6rem 0 1.4rem;
  padding:0;
}
.steps li{
  counter-increment:step;
  position:relative;
  padding:1.05rem 0 1.05rem 3.1rem;
  border-top:1px solid var(--rule);
}
.steps li:last-child{border-bottom:1px solid var(--rule);}
.steps li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;
  left:0;
  top:1.25rem;
  font-family:"Inter",system-ui,sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--accent);
}
.steps p{margin:0;}

.closing{margin-top:1.8rem;}
.text-link{white-space:nowrap;}

/* ---------- contact ---------- */
.contact-list{
  list-style:none;
  margin:1.2rem 0 1.4rem;
  padding:0;
}
.contact-list li{
  padding:.62rem 0;
  border-bottom:1px solid var(--rule);
}
.label{
  display:inline-block;
  min-width:7.2rem;
  font-family:"Inter",system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.7;
}
.fineprint{font-size:.96rem;}

/* ---------- footer ---------- */
.site-foot{
  border-top:1px solid var(--rule);
  margin-top:1rem;
  padding:1.3rem 0 2.4rem;
}
.foot-inner{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.4rem;
  justify-content:space-between;
  font-family:"Inter",system-ui,sans-serif;
  font-size:.76rem;
  letter-spacing:.06em;
}

/* ---------- reveal ---------- */
.js [data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease;}
.js [data-reveal].is-in{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .js [data-reveal]{opacity:1;transform:none;transition:none;}
}

@media (max-width:520px){
  body{font-size:17px;}
  .label{min-width:0;display:block;margin-bottom:.1rem;}
  .block{padding-top:2.4rem;}
}
