:root{
  --paper:#F3F2ED; --panel:#FFFFFF; --ink:#20261F; --muted:#5A6156;
  --line:#D9D8CE; --conifer:#2F5241; --conifer-2:#24402F; --brass:#8F7E4F;
  --rail:#EAE9E1; --btn-ink:#F3F2ED;
  --serif:"Fraunces","Georgia",serif;
  --sans:"Source Sans 3","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#161B16; --panel:#1E241E; --ink:#E8E7DD; --muted:#9AA193;
    --line:#323A31; --conifer:#8DB49B; --conifer-2:#A3C7B0; --brass:#B5A374;
    --rail:#1B211B; --btn-ink:#141914;
  }
}
:root[data-theme="dark"]{
  --paper:#161B16; --panel:#1E241E; --ink:#E8E7DD; --muted:#9AA193;
  --line:#323A31; --conifer:#8DB49B; --conifer-2:#A3C7B0; --brass:#B5A374;
  --rail:#1B211B; --btn-ink:#141914;
}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans);
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;}
img{max-width:100%;}
.wrap{max-width:1060px; margin:0 auto; padding-inline:24px;}
a{color:var(--conifer); text-decoration:none;}
a:hover{text-decoration:underline;}
.eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--brass);}
header{border-bottom:1px solid var(--line);}
.hd{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  flex-wrap:wrap; padding-block:22px;}
.wordmark{font-family:var(--serif); font-weight:560; font-size:21px; letter-spacing:.01em; color:var(--ink);}
.wordmark small{display:block; font-family:var(--mono); font-weight:400; font-size:10.5px;
  letter-spacing:.12em; color:var(--muted); margin-top:3px; text-transform:uppercase;}
nav{display:flex; gap:26px; flex-wrap:wrap;}
nav a{font-size:14.5px; font-weight:500; color:var(--ink);}
nav a[aria-current]{color:var(--conifer); border-bottom:2px solid var(--conifer);}
h1{font-family:var(--serif); font-weight:340; font-size:clamp(32px,4.4vw,48px);
  line-height:1.14; margin:14px 0 0; text-wrap:balance;}
h1 em{font-style:italic; font-weight:420; color:var(--conifer);}
h2{font-family:var(--serif); font-weight:420; font-size:29px; line-height:1.22;
  margin:12px 0 0; text-wrap:balance;}
h3{font-family:var(--serif); font-weight:560; font-size:19px; margin:0 0 10px;}
.lede{max-width:58ch; font-size:18px; color:var(--muted);}
.prose{max-width:66ch;}
.prose p{color:var(--muted); margin:16px 0 0;}
.prose p strong{color:var(--ink);}
.page-hero{padding-block:64px 48px;}
section{border-top:1px solid var(--line); padding-block:64px;}
.sect-head{max-width:64ch; margin-bottom:40px;}
.sect-head p{color:var(--muted); margin:14px 0 0;}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}
.btn{display:inline-block; padding:13px 24px; font-size:15px; font-weight:600;
  border-radius:2px; border:1px solid var(--conifer-2); cursor:pointer; font-family:var(--sans);}
.btn.solid{background:var(--conifer-2); color:var(--btn-ink);}
.btn.solid:hover{background:var(--conifer); text-decoration:none;}
.btn.ghost{color:var(--conifer-2); background:transparent;}
.btn.ghost:hover{background:var(--rail); text-decoration:none;}
.rail{border-left:1px solid var(--line); padding-left:32px; display:flex;
  flex-direction:column; gap:26px;}
.rail .stat b{display:block; font-family:var(--mono); font-weight:500;
  font-size:34px; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums;}
.rail .stat span{display:block; margin-top:7px; font-size:13.5px; color:var(--muted); max-width:24ch;}
.rail .src{font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:var(--muted);}
.cols3{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
.cols3 p{margin:0; font-size:15.5px; color:var(--muted);}
.method{display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);}
.step{background:var(--panel); padding:26px 26px 28px;}
.step .n{font-family:var(--mono); font-size:12px; color:var(--brass); letter-spacing:.1em;}
.step h3{font-size:18.5px; margin:8px 0 8px;}
.step p{margin:0; font-size:15px; color:var(--muted);}
.charter{background:var(--conifer-2); color:var(--btn-ink); padding:44px 40px;
  display:grid; grid-template-columns:1fr 1.4fr; gap:40px; align-items:start;}
.charter .eyebrow{color:color-mix(in srgb, var(--btn-ink) 65%, transparent);}
.charter h2{color:var(--btn-ink); margin-top:10px;}
.charter ul{list-style:none; margin:0; padding:0;}
.charter li{padding:13px 0; border-bottom:1px solid color-mix(in srgb, var(--btn-ink) 22%, transparent);
  font-size:15.5px; display:flex; gap:14px; align-items:baseline;}
.charter li:last-child{border-bottom:none;}
.charter li b{font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.06em;
  min-width:84px; color:color-mix(in srgb, var(--btn-ink) 70%, transparent);}
.assess{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:start;}
form{display:flex; flex-direction:column; gap:14px; background:var(--panel);
  border:1px solid var(--line); padding:28px;}
label{font-size:13px; font-weight:600; letter-spacing:.02em;}
input,select{width:100%; box-sizing:border-box; margin-top:6px; padding:11px 12px;
  font:inherit; font-size:15px; color:var(--ink); background:var(--paper);
  border:1px solid var(--line); border-radius:2px;}
input:focus,select:focus{outline:2px solid var(--conifer); outline-offset:1px;}
.consent{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--muted); font-weight:400;}
.consent input{width:auto; margin-top:3px;}
.fineprint{font-size:12.5px; color:var(--muted); margin:4px 0 0;}
.gate{font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--brass);
  text-transform:uppercase; margin-top:2px;}
.enclaves{display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:36px;}
.enclave{background:var(--panel); padding:24px;}
.enclave h3{font-size:17.5px; margin-bottom:6px;}
.enclave p{margin:0; font-size:14.5px; color:var(--muted);}
footer{border-top:1px solid var(--line); padding-block:36px 28px; margin-top:64px;}
footer.tight{margin-top:0;}
.ft{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap;
  font-size:13px; color:var(--muted);}
.ft b{color:var(--ink); font-weight:600;}
@media (max-width:840px){
  .hero{grid-template-columns:1fr !important; gap:40px;}
  .rail{border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:28px;
    flex-direction:row; flex-wrap:wrap; gap:28px;}
  .rail .src{flex-basis:100%;}
  .cols3{grid-template-columns:1fr; gap:28px;}
  .method,.enclaves{grid-template-columns:1fr;}
  .charter{grid-template-columns:1fr; padding:32px 24px;}
  .assess{grid-template-columns:1fr; gap:36px;}
}
