:root{
  --paper:#f3f0e9; --surface:#fbf9f4; --ink:#1b1a17; --muted:#6b665c;
  --faint:#938d81; --line:#e4dfd4; --line-soft:#ece7dd; --accent:#96703f;
  --maxw:1140px;
  --serif:"Fraunces",Georgia,serif; --sans:"Archivo",system-ui,sans-serif;
  --mono:"Spline Sans Mono",ui-monospace,monospace;
}
body.theme-ledger{--accent:#1e3a5f;}
body.theme-regimen{--accent:#55664a;}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.7;
  font-feature-settings:"kern","liga","tnum";
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline; text-underline-offset:3px;}

/* header */
.site{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem; padding:1.05rem clamp(1.2rem,4vw,2.4rem);
  background:color-mix(in oklab, var(--paper) 82%, transparent);
  backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{
  font-family:var(--serif); font-weight:600; font-size:1.18rem;
  letter-spacing:.005em; color:var(--ink); display:inline-flex; align-items:center; gap:.55rem;
}
.brand:hover{text-decoration:none;}
.brand__mark{color:var(--accent); transform:translateY(1px); font-size:1.05em;}
.site__nav{display:flex; gap:1.6rem;}
.site__nav a{
  color:var(--muted); font-size:.74rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.16em;
}
.site__nav a:hover{color:var(--ink); text-decoration:none;}

/* layout */
.layout{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:210px minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem); padding:clamp(2rem,5vw,4rem) clamp(1.2rem,4vw,2.4rem) 6rem;
}
.toc{position:sticky; top:5.2rem; align-self:start; height:max-content;}
.toc__label{
  font-size:.68rem; text-transform:uppercase; letter-spacing:.18em;
  color:var(--faint); margin:0 0 .9rem; font-weight:600;
}
.toc nav{display:flex; flex-direction:column; gap:.15rem; border-left:1px solid var(--line);}
.toc nav a{
  color:var(--muted); font-size:.82rem; line-height:1.35;
  padding:.32rem 0 .32rem 1rem; margin-left:-1px;
  border-left:2px solid transparent;
}
.toc nav a:hover{color:var(--ink); border-left-color:var(--accent); text-decoration:none;}

/* document */
.doc{max-width:46rem;}
.doc h1{
  font-family:var(--serif); font-weight:600; font-size:clamp(2rem,4.5vw,2.7rem);
  line-height:1.08; letter-spacing:-.01em; margin:0 0 .6rem;
}
.doc h1 + p{color:var(--muted); font-size:1.08rem; margin-top:0;}
.doc h2{
  font-family:var(--serif); font-weight:500; font-size:1.62rem; letter-spacing:-.005em;
  margin:3.2rem 0 1rem; padding-top:1.6rem; border-top:1px solid var(--line);
  scroll-margin-top:5.5rem;
}
.doc h2::before{
  content:""; display:block; width:26px; height:2px; background:var(--accent);
  margin-bottom:1.1rem; border-radius:2px;
}
.doc h3{font-size:1.06rem; font-weight:600; margin:2rem 0 .6rem; letter-spacing:.005em; scroll-margin-top:5.5rem;}
.doc h4{font-size:.94rem; font-weight:600; color:var(--muted); margin:1.4rem 0 .4rem;}
.doc p{margin:0 0 1.05rem;}
.doc ul,.doc ol{margin:0 0 1.2rem; padding-left:1.3rem;}
.doc li{margin:.34rem 0;}
.doc li::marker{color:var(--accent);}
.doc hr{border:0; border-top:1px solid var(--line); margin:2.6rem 0;}
.doc strong{font-weight:600;}

/* inline code */
.doc code{
  font-family:var(--mono); font-size:.86em; background:var(--surface);
  border:1px solid var(--line); border-radius:5px; padding:.08em .38em;
  color:#41504a; white-space:nowrap;
}
body.theme-ledger .doc code{color:#33465c;}

/* code block */
.doc pre.code{
  position:relative; background:var(--surface); border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:8px;
  padding:1.05rem 1.2rem; margin:0 0 1.4rem; overflow:auto;
}
.doc pre.code code{
  font-family:var(--mono); font-size:.82rem; line-height:1.6; background:none;
  border:0; padding:0; white-space:pre; color:var(--ink);
}
.doc pre.code[data-lang]:not([data-lang=""])::after{
  content:attr(data-lang); position:absolute; top:.55rem; right:.8rem;
  font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--faint);
}

/* blockquote / callout */
.doc blockquote{
  margin:0 0 1.4rem; padding:.95rem 1.2rem; background:var(--surface);
  border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:0 8px 8px 0; color:#4c4740; font-size:.95rem;
}
.doc blockquote p{margin:0;}

/* tables */
.table-wrap{overflow-x:auto; margin:0 0 1.5rem;}
.doc table{width:100%; border-collapse:collapse; font-size:.9rem; font-variant-numeric:tabular-nums;}
.doc thead th{
  text-align:left; font-size:.68rem; text-transform:uppercase; letter-spacing:.12em;
  color:var(--muted); font-weight:600; padding:0 1rem .6rem 0;
  border-bottom:2px solid var(--ink);
}
.doc tbody td{padding:.7rem 1rem .7rem 0; border-bottom:1px solid var(--line-soft); vertical-align:top;}
.doc tbody tr:last-child td{border-bottom:0;}
.doc tbody td:first-child{white-space:nowrap;}

/* landing / support hero */
.hub{max-width:var(--maxw); margin:0 auto; padding:clamp(3rem,8vw,6rem) clamp(1.2rem,4vw,2.4rem) 6rem;}
.hub__eyebrow{font-size:.72rem; text-transform:uppercase; letter-spacing:.22em; color:var(--accent); font-weight:600; margin:0 0 1.1rem;}
.hub__title{font-family:var(--serif); font-weight:600; font-size:clamp(2.4rem,6vw,4rem); line-height:1.02; letter-spacing:-.015em; margin:0 0 1.1rem; max-width:16ch;}
.hub__lede{font-size:1.15rem; color:var(--muted); max-width:52ch; margin:0 0 3rem;}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.2rem; margin-bottom:3rem;}
.card{
  display:block; padding:1.8rem 1.9rem 1.7rem; background:var(--surface);
  border:1px solid var(--line); border-radius:14px; color:var(--ink);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.card:hover{transform:translateY(-3px); border-color:var(--accent); text-decoration:none; box-shadow:0 12px 34px rgba(27,26,23,.07);}
.card__tag{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-c,var(--accent));}
.card--ledger{--accent-c:#1e3a5f;}
.card--regimen{--accent-c:#55664a;}
.card__name{font-family:var(--serif); font-weight:600; font-size:1.5rem; margin:.5rem 0 .35rem;}
.card__desc{color:var(--muted); font-size:.94rem; margin:0 0 1rem;}
.card__cta{font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--accent-c,var(--accent));}
.hub__note{font-size:.9rem; color:var(--faint); border-top:1px solid var(--line); padding-top:1.4rem;}

.support-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin:2rem 0;}
.support-grid .card{cursor:default;}
.support-grid .card:hover{transform:none; box-shadow:none; border-color:var(--line);}
.mail{font-family:var(--mono); font-size:1.05rem;}

/* footer */
.site-foot{
  max-width:var(--maxw); margin:0 auto; padding:1.6rem clamp(1.2rem,4vw,2.4rem) 2.4rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--line); font-size:.82rem; color:var(--faint);
}
.site-foot a{color:var(--muted);}

/* reveal */
.reveal > *{opacity:0; transform:translateY(10px); animation:rise .6s cubic-bezier(.2,.7,.2,1) forwards;}
.reveal > *:nth-child(1){animation-delay:.02s}
.reveal > *:nth-child(2){animation-delay:.06s}
.reveal > *:nth-child(3){animation-delay:.10s}
.reveal > *:nth-child(4){animation-delay:.14s}
.reveal > *:nth-child(5){animation-delay:.18s}
.reveal > *:nth-child(n+6){animation-delay:.22s}
@keyframes rise{to{opacity:1; transform:none;}}

@media (max-width:860px){
  .layout{grid-template-columns:1fr;}
  .toc{display:none;}
  .site__nav{gap:1.1rem;}
}
@media (prefers-reduced-motion:reduce){
  .reveal > *{opacity:1; transform:none; animation:none;}
  .card{transition:none;}
  .site{backdrop-filter:none;}
}
