:root{
  color-scheme: light;
  --paper:#F5F5F3;
  --ink:#11110F;
  --ink-soft:#4A4A45;
  --ink-mute:#6E6E68;
  --gold:#C8A24A;
  --gold-deep:#8A7230;
  --hair:#DEDEDA;
  --white:#FFFFFF;
  --measure:33rem;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Newsreader",Georgia,"Times New Roman",serif;
  font-optical-sizing:auto;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

p{margin:0 0 1.1rem;text-wrap:pretty;}
p:last-child{margin-bottom:0;}

/* ---------- masthead ---------- */

.masthead{background:var(--ink);padding:clamp(1.9rem,6vw,2.6rem) 0;}
.masthead-inner{max-width:var(--measure);margin:0 auto;padding:0 1.5rem;}
.lockup{display:flex;align-items:center;gap:clamp(.85rem,3.4vw,1.15rem);}
.lockup img{display:block;width:clamp(3.1rem,11vw,3.85rem);height:auto;flex:none;}
.lockup .divider{width:1px;align-self:stretch;background:var(--gold);opacity:.75;flex:none;}
.wordmark{
  margin:0;
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:600;
  font-size:clamp(.715rem,2.85vw,.875rem);
  line-height:1.72;
  letter-spacing:.185em;
  text-transform:uppercase;
}
.wordmark span{display:block;}
.wordmark .w-gold{color:var(--gold);}
.wordmark .w-light{color:var(--paper);}

/* ---------- sheet ---------- */

.sheet{
  max-width:var(--measure);
  margin:0 auto;
  padding:clamp(3.25rem,10vw,5rem) 1.5rem clamp(3rem,8vw,4.5rem);
}

.eyebrow,
.kicker{
  display:block;
  margin:0 0 1rem;
  font-family:"Montserrat",system-ui,sans-serif;
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-deep);
}

h1{
  margin:0;
  font-size:clamp(2.4rem,9.2vw,3.9rem);
  line-height:1.05;
  font-weight:300;
  letter-spacing:-0.022em;
}

h2{
  margin:0 0 1.15rem;
  font-size:clamp(1.5rem,5.6vw,1.9rem);
  line-height:1.2;
  font-weight:400;
  letter-spacing:-0.012em;
  color:var(--ink);
}

.lede{margin-top:1.9rem;}
.lede p{font-size:1.1rem;line-height:1.6;}

.stanza{color:var(--ink-soft);}

.strong-line{
  font-size:1.1rem;
  color:var(--ink);
  font-weight:500;
}

/* ---------- sections ---------- */

.sec{
  margin-top:clamp(3.25rem,9vw,4.5rem);
  padding-top:1.75rem;
  border-top:1px solid var(--hair);
}

.sec p{font-size:1.04rem;}

.pull{
  margin:1.6rem 0;
  padding-left:1.15rem;
  border-left:3px solid var(--gold);
  font-size:1.15rem;
  line-height:1.5;
  font-style:italic;
  color:var(--ink);
}
.sec .pull{font-size:1.15rem;}

.list{
  margin:0 0 1.2rem;
  padding:0;
  list-style:none;
}
.list li{
  position:relative;
  padding-left:1.1rem;
  margin-bottom:.35rem;
  font-size:1.02rem;
  line-height:1.5;
  color:var(--ink-soft);
}
.list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:6px;
  height:1px;
  background:var(--gold);
}

.flow{
  margin:1.5rem 0;
  padding:1rem 1.1rem;
  background:var(--white);
  border:1px solid var(--hair);
  font-family:"Montserrat",system-ui,sans-serif;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.12em;
  line-height:2.1;
  text-transform:uppercase;
  color:var(--ink);
}
.sec .flow{font-size:.7rem;}
.flow .arr{color:var(--gold);margin:0 .35rem;}

.muted{color:var(--ink-mute);font-style:italic;}

/* ---------- areas ---------- */

.area{
  margin:0 0 1.25rem;
  padding:1.3rem 1.25rem 1.4rem;
  background:var(--white);
  border:1px solid var(--hair);
  border-top:3px solid var(--gold);
}
.area .ord{
  display:block;
  margin-bottom:.45rem;
  font-family:"Montserrat",system-ui,sans-serif;
  font-size:.64rem;
  font-weight:600;
  letter-spacing:.2em;
  color:var(--gold-deep);
}
.area h3{
  margin:0 0 .5rem;
  font-size:1.2rem;
  font-weight:500;
  line-height:1.3;
  color:var(--ink);
}
.sec .area p{margin:0;font-size:1rem;color:var(--ink-soft);}

.names{
  margin:0 0 1.2rem;
  padding:0;
  list-style:none;
}
.names li{
  padding:.55rem 0;
  border-bottom:1px solid var(--hair);
  font-size:1.05rem;
  color:var(--gold-deep);
}
.names li:first-child{border-top:1px solid var(--hair);}

/* ---------- closing ---------- */

.closing{
  margin-top:clamp(3.25rem,9vw,4.5rem);
  padding-top:1.75rem;
  border-top:1px solid var(--hair);
}
.closing h2{
  margin:1.6rem 0 0;
  font-size:clamp(1.7rem,6.4vw,2.2rem);
  font-weight:300;
}

/* ---------- continuity ---------- */

.onward{
  margin-top:clamp(2.75rem,8vw,3.5rem);
  padding:1.3rem 1.25rem;
  background:var(--ink);
}
.onward .kicker{color:var(--gold);margin-bottom:.5rem;}
.onward a{
  display:inline-block;
  color:var(--paper);
  text-decoration:none;
  font-size:1.35rem;
  line-height:1.3;
  border-bottom:1px solid var(--gold);
  padding-bottom:2px;
}
.onward a:hover,.onward a:focus-visible{border-bottom-width:2px;}
.onward p{margin:.55rem 0 0;font-size:.95rem;color:#BDBDB7;}

.back{
  margin:1.75rem 0 0;
  font-size:.95rem;
  color:var(--ink-mute);
}
.back a{
  color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid var(--gold);
  padding-bottom:1px;
}

/* ---------- quick actions ---------- */

.actions{
  margin-top:clamp(2.25rem,7vw,3rem);
}
.actions .kicker{color:var(--ink-mute);}
.actions .row{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
}
.btn{
  flex:1 1 11rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  min-height:3.1rem;
  padding:.7rem 1.2rem;
  font-family:"Montserrat",system-ui,sans-serif;
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .18s ease,color .18s ease;
}
.btn svg{width:1.05rem;height:1.05rem;flex:none;}
.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);}
.btn-primary:hover,.btn-primary:focus-visible{background:#2C2C27;}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);}
.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--ink);color:var(--paper);}
.actions .addr{
  margin:.85rem 0 0;
  font-size:.9rem;
  color:var(--ink-mute);
  overflow-wrap:anywhere;
}

/* ---------- sign-off ---------- */

.signoff{
  margin:clamp(3rem,9vw,4.25rem) 0 0;
  padding-top:1.5rem;
  border-top:1px solid var(--hair);
  font-size:.95rem;
  line-height:1.75;
  color:var(--ink-mute);
}
.signoff strong{display:block;font-weight:500;color:var(--ink);}

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

@media (min-width:48rem){
  :root{--measure:40rem;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important;}
}

.closing h2.h-first{margin:0 0 1.15rem;}

/* ---------- method steps ---------- */

.part{
  margin-top:clamp(3.25rem,9vw,4.5rem);
  padding-top:1.75rem;
  border-top:1px solid var(--hair);
}
.part > h2{margin:0;}
.step{
  margin-top:2.6rem;
}
.step .kicker{margin-bottom:.35rem;}
.step h3{
  margin:0 0 1rem;
  font-size:clamp(1.35rem,5vw,1.6rem);
  font-weight:400;
  line-height:1.2;
  letter-spacing:-0.01em;
  color:var(--ink);
}
.step p{font-size:1.04rem;}
.step .area p{margin:0;font-size:1rem;color:var(--ink-soft);}

/* ---------- collapsible steps ---------- */

.steps{
  margin-top:1.4rem;
  display:grid;
  gap:.75rem;
}
.stepbox{
  background:var(--white);
  border:1px solid var(--hair);
  border-left:3px solid var(--gold);
}
.stepbox summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:.9rem;
  align-items:start;
  padding:1.1rem 1rem 1.15rem 1.1rem;
  -webkit-tap-highlight-color:transparent;
}
.stepbox summary::-webkit-details-marker{display:none;}
.stepbox summary:focus-visible{outline:2px solid var(--gold-deep);outline-offset:-2px;}
.stepbox .num{
  font-family:"Montserrat",system-ui,sans-serif;
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--gold-deep);
  padding-top:.55rem;
}
.stepbox .ttl{
  display:block;
  font-size:1.4rem;
  line-height:1.2;
  color:var(--ink);
}
.stepbox .lead{
  display:block;
  margin-top:.35rem;
  font-size:1rem;
  line-height:1.5;
  color:var(--ink-soft);
}
.stepbox .tog{
  position:relative;
  width:1.9rem;
  height:1.9rem;
  margin-top:.1rem;
  border:1px solid var(--gold);
  border-radius:50%;
  transition:background .2s ease,border-color .2s ease;
}
.stepbox .tog::before,
.stepbox .tog::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:.7rem;
  height:1.5px;
  background:var(--ink);
  transform:translate(-50%,-50%);
  transition:transform .2s ease,background .2s ease;
}
.stepbox .tog::after{transform:translate(-50%,-50%) rotate(90deg);}
.stepbox[open] .tog{background:var(--ink);border-color:var(--ink);}
.stepbox[open] .tog::before,
.stepbox[open] .tog::after{background:var(--paper);}
.stepbox[open] .tog::after{transform:translate(-50%,-50%) rotate(0deg);}
.stepbox .body{
  margin:0 1.1rem;
  padding:1.1rem 0 1.35rem;
  border-top:1px solid var(--hair);
}
.stepbox .body p{font-size:1.02rem;}
.stepbox .area{background:var(--paper);}
.stepbox .area p{margin:0;font-size:.98rem;color:var(--ink-soft);}
