:root {
  --paper:#EDF1F2; --surface:#FFFFFF; --surface-2:#E3E9EB;
  --ink:#131C25; --ink-2:#3E4E5B; --muted:#64757F;
  --rule:#C8D3D7; --rule-soft:#DCE4E7;
  --slate:#23425A; --ochre:#9A6612; --ochre-soft:#F0E4CC;
  --brick:#8E2E27; --brick-soft:#F3DEDB;
  --green:#2A6049; --green-soft:#DDEAE3;
  --font-ui:"Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-doc:"Source Serif 4", ui-serif, Georgia, "Times New Roman", serif;
  --font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --maxw:43rem;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper:#0D141A; --surface:#151F27; --surface-2:#1D2A34;
    --ink:#E2E9ED; --ink-2:#B3C2CB; --muted:#8194A0;
    --rule:#2C3C48; --rule-soft:#22303A;
    --slate:#93B6CE; --ochre:#D3A257; --ochre-soft:#2E2617;
    --brick:#DC8279; --brick-soft:#331E1C;
    --green:#6FB894; --green-soft:#16291F;
  }
}
:root[data-theme="dark"] {
  --paper:#0D141A; --surface:#151F27; --surface-2:#1D2A34;
  --ink:#E2E9ED; --ink-2:#B3C2CB; --muted:#8194A0;
  --rule:#2C3C48; --rule-soft:#22303A;
  --slate:#93B6CE; --ochre:#D3A257; --ochre-soft:#2E2617;
  --brick:#DC8279; --brick-soft:#331E1C;
  --green:#6FB894; --green-soft:#16291F;
}

* { box-sizing: border-box; }
body {
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-ui); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
[hidden] { display:none !important; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 1.15rem 5rem; }

/* masthead */
.masthead { border-bottom:1px solid var(--rule); background:var(--surface); }
.masthead-inner {
  max-width:var(--maxw); margin:0 auto; padding:.85rem 1.15rem;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem .9rem;
}
.wordmark { font-weight:700; font-size:.95rem; margin:0; }
.wordmark span { color:var(--ochre); }
.wordmark a { color:inherit; text-decoration:none; }

/* the rail: site navigation, sharing a row with the privacy line where there is room */
.rail-row { background:var(--surface-2); border-bottom:1px solid var(--rule); }
.rail-row > div {
  max-width:var(--maxw); margin:0 auto; padding:.45rem 1.15rem;
  display:flex; align-items:center; gap:1.1rem;
}
.rail-row nav { display:flex; gap:1.1rem; }
.rail-row nav a {
  font-family:var(--font-ui); font-size:.8rem; font-weight:600; color:var(--ink);
  text-decoration:none; padding:.1rem 0;
}
.rail-row nav a:hover, .rail-row nav a:focus-visible { color:var(--ochre); outline:none; }
.rail-row nav a[aria-current="page"] { color:var(--ochre); }
.rail-row .priv {
  margin-left:auto; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.02em;
  color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
@media (max-width:40rem) { .rail-row .priv { display:none; } }
@media (min-width:40.01rem) { .privacy-strip { display:none; } }
.privacy-strip {
  background:var(--surface-2); border-bottom:1px solid var(--rule);
  font-family:var(--font-mono); font-size:.7rem; color:var(--ink-2);
}
.privacy-strip div { max-width:var(--maxw); margin:0 auto; padding:.5rem 1.15rem; }

/* wizard */
.trail { padding:1.3rem 0 0; }
.step-count {
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ochre); margin:1.9rem 0 .55rem;
}
.question {
  font-weight:600; font-size:clamp(1.45rem,5vw,1.85rem); line-height:1.2;
  letter-spacing:-.015em; text-wrap:balance; margin:0 0 .4rem;
}
.question-sub { font-family:var(--font-doc); color:var(--muted); margin:0 0 1.4rem; max-width:34rem; }
.options { display:flex; flex-direction:column; gap:.5rem; }
.opt {
  display:block; width:100%; text-align:left; font-family:var(--font-ui);
  font-size:1rem; font-weight:500; line-height:1.35; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-left:3px solid var(--rule);
  border-radius:3px; padding:.95rem 1rem; cursor:pointer;
  transition:border-color .12s ease, transform .12s ease;
}
.opt:hover, .opt:focus-visible {
  border-color:var(--slate); border-left-color:var(--ochre); outline:none; transform:translateX(2px);
}
.opt:focus-visible { box-shadow:0 0 0 3px var(--ochre-soft); }
.opt small {
  display:block; font-family:var(--font-doc); font-weight:400;
  font-size:.88rem; color:var(--muted); margin-top:.15rem;
}
.opt.is-current { border-color:var(--slate); border-left-color:var(--ochre); }
.opt.is-current .flag { color:var(--ochre); border-color:var(--ochre); }
.opt.is-stub { color:var(--muted); border-left-color:var(--rule-soft); background:transparent; }
.opt.is-stub:hover { transform:none; border-color:var(--rule); border-left-color:var(--rule); }
.opt .flag {
  float:right; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.07em;
  text-transform:uppercase; color:var(--muted); border:1px solid var(--rule);
  border-radius:2px; padding:.1rem .3rem; margin-left:.5rem;
}
.stub-note {
  display:none; font-family:var(--font-mono); font-size:.72rem; line-height:1.5;
  color:var(--brick); background:var(--brick-soft); border-radius:3px;
  padding:.6rem .75rem; margin-top:.6rem;
}
.stub-note.show { display:block; }
.backlink {
  background:none; border:none; font-family:var(--font-mono); font-size:.72rem;
  letter-spacing:.05em; text-transform:uppercase; color:var(--muted);
  cursor:pointer; padding:.5rem 0; margin-top:1.6rem;
}
.backlink:hover, .backlink:focus-visible { color:var(--ink); outline:none; text-decoration:underline; }

/* sheet */
.sheet { padding-top:1.6rem; }
.sheet-head {
  border-top:3px solid var(--ochre); background:var(--surface);
  padding:1.35rem 1.35rem 1.15rem; border:1px solid var(--rule-soft); border-top-width:3px;
  border-top-color:var(--ochre);
}
.kicker {
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.11em;
  text-transform:uppercase; color:var(--ochre); margin:0 0 .45rem;
}
.sheet-title {
  font-weight:700; font-size:clamp(1.5rem,5.5vw,2rem); line-height:1.12;
  letter-spacing:-.02em; text-wrap:balance; margin:0 0 .9rem;
}

.sec {
  background:var(--surface); border:1px solid var(--rule-soft); border-top:none;
  padding:1.5rem 1.35rem;
}
.sec-label {
  display:flex; align-items:baseline; gap:.6rem; margin:0 0 1rem;
  padding-bottom:.5rem; border-bottom:1px solid var(--rule);
}
.sec-letter {
  font-family:var(--font-mono); font-weight:600; font-size:.7rem; letter-spacing:.04em;
  color:var(--surface); background:var(--slate); border-radius:2px; padding:.1rem .35rem;
}
.sec-title { font-weight:600; font-size:1.05rem; margin:0; }
.sec-when {
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.04em;
  text-transform:uppercase; color:var(--muted); margin-left:auto;
}

ol.steps { list-style:none; margin:0; padding:0; counter-reset:step; }
ol.steps > li { counter-increment:step; position:relative; padding:0 0 1.15rem 2.4rem; }
ol.steps > li::before {
  content:counter(step, decimal-leading-zero); position:absolute; left:0; top:.1rem;
  font-family:var(--font-mono); font-size:.74rem; font-weight:600; color:var(--ochre);
}
ol.steps > li::after {
  content:""; position:absolute; left:.58rem; top:1.5rem; bottom:.15rem;
  width:1px; background:var(--rule);
}
ol.steps > li:last-child { padding-bottom:0; }
ol.steps > li:last-child::after { display:none; }
ol.steps b { display:block; font-weight:600; font-size:.98rem; margin-bottom:.12rem; }
ol.steps p { font-family:var(--font-doc); font-size:.95rem; color:var(--ink-2); margin:0; }

ul.plain { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; }
ul.plain > li { padding-left:1rem; border-left:2px solid var(--rule); }
ul.plain b { display:block; font-weight:600; font-size:.95rem; margin-bottom:.1rem; }
ul.plain p { font-family:var(--font-doc); font-size:.93rem; color:var(--ink-2); margin:0; }

.prose { font-family:var(--font-doc); font-size:.97rem; color:var(--ink-2); }
.prose p { margin:0 0 .85rem; }
.prose p:last-child { margin-bottom:0; }
.prose strong { color:var(--ink); font-weight:600; }
.prose em { font-style:italic; }

.callout {
  background:var(--brick-soft); border-left:3px solid var(--brick);
  border-radius:0 3px 3px 0; padding:.85rem 1rem; margin:0 0 1.15rem;
}
.callout p { font-family:var(--font-doc); font-size:.92rem; color:var(--ink); margin:0; }
.callout .tag {
  display:block; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--brick); margin-bottom:.25rem;
}
.callout.ok { background:var(--green-soft); border-left-color:var(--green); }
.callout.ok .tag { color:var(--green); }

.fork { display:grid; gap:.75rem; margin:1.1rem 0 0; }
@media (min-width:34rem) { .fork { grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr)); } }
.fork > div { border:1px solid var(--rule); border-top:2px solid var(--slate); border-radius:0 0 3px 3px; padding:.85rem .9rem; }
.fork h4 { font-size:.88rem; font-weight:600; margin:0 0 .45rem; }
.fork ul { margin:0; padding-left:1.05rem; }
.fork li { font-family:var(--font-doc); font-size:.89rem; color:var(--ink-2); margin-bottom:.3rem; }

.qlist { list-style:none; margin:0; padding:0; }
.qlist li {
  font-family:var(--font-doc); font-size:.95rem; color:var(--ink);
  padding:.7rem 0 .7rem 1.7rem; border-bottom:1px solid var(--rule-soft); position:relative;
}
.qlist li::before { content:"\2610"; position:absolute; left:0; top:.62rem; font-size:1rem; color:var(--muted); }
.qlist li:last-child { border-bottom:none; }
.qlist em { color:var(--muted); font-size:.87rem; display:block; font-style:normal; }

.draft { margin-top:1rem; border-radius:3px; overflow:hidden; border:1px solid var(--rule); }
.draft-head {
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em;
  text-transform:uppercase; padding:.45rem .8rem;
}
.draft-body { font-family:var(--font-doc); font-size:.94rem; line-height:1.6; padding:.9rem .95rem; background:var(--surface); margin:0; }
.draft.bad .draft-head { background:var(--brick-soft); color:var(--brick); }
.draft.bad .draft-body { color:var(--muted); }
.draft.good .draft-head { background:var(--ochre-soft); color:var(--ochre); }
.draft.good .draft-body { color:var(--ink); }

.contacts { display:flex; flex-direction:column; gap:.7rem; }
.card { border:1px solid var(--rule); border-radius:3px; padding:.9rem 1rem; background:var(--surface); }
.card.primary { border-left:3px solid var(--green); }
.card.pending { border-left:3px solid var(--rule); background:transparent; }
.card h4 { font-size:.96rem; font-weight:600; margin:0 0 .15rem; }
.card .role { font-family:var(--font-doc); font-size:.9rem; color:var(--ink-2); margin:0 0 .6rem; }
.card .detail { font-family:var(--font-mono); font-size:.78rem; line-height:1.65; color:var(--ink); margin:0; word-break:break-word; }
.verified {
  display:inline-block; font-family:var(--font-mono); font-size:.63rem; letter-spacing:.07em;
  text-transform:uppercase; padding:.12rem .35rem; border-radius:2px; margin-top:.55rem;
}
.verified.ok { color:var(--green); border:1px solid var(--green); }
.verified.todo { color:var(--muted); border:1px solid var(--rule); }

.actions { display:flex; flex-wrap:wrap; gap:.55rem; margin:1.5rem 0 0; }
.btn {
  font-family:var(--font-ui); font-size:.88rem; font-weight:600; padding:.65rem 1.1rem;
  border-radius:3px; cursor:pointer; border:1px solid var(--slate);
  background:var(--slate); color:var(--surface);
}
.btn.ghost { background:transparent; color:var(--ink); border-color:var(--rule); }
.btn:focus-visible { outline:none; box-shadow:0 0 0 3px var(--ochre-soft); }

.disclaimer {
  font-family:var(--font-doc); font-size:.85rem; line-height:1.55; color:var(--muted);
  border-top:1px solid var(--rule); margin-top:2.4rem; padding-top:1rem;
}
.disclaimer strong { color:var(--ink-2); font-weight:600; }

.fatal {
  font-family:var(--font-doc); background:var(--brick-soft); border-left:3px solid var(--brick);
  padding:1rem 1.1rem; margin-top:2rem; border-radius:0 3px 3px 0;
}
.fatal code { font-family:var(--font-mono); font-size:.85em; }

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

@media print {
  .privacy-strip, .rail-row, .masthead, .actions, .backlink, .no-print { display:none !important; }
  body { background:#fff; color:#000; font-size:11pt; }
  .wrap { max-width:none; padding:0; }
  .sheet { padding-top:0; }
  .sec, .sheet-head { border:none; padding:.5rem 0; background:#fff; break-inside:avoid; }
  .sheet-head { border-top:3pt solid #000; }
  .sec-letter { background:#000 !important; color:#fff !important; }
  .card, .draft, .callout, .fork > div { break-inside:avoid; }
}

/* full-stop handoff, shown before any steps on branches another protocol governs */
.interstitial-body {
  border-left: 3px solid var(--brick);
  background: var(--brick-soft);
  border-radius: 0 3px 3px 0;
  padding: 1rem 1.1rem;
  margin-bottom: .4rem;
}
.interstitial-body p { color: var(--ink); }

/* ---------- the ledger: every question and its answer, editable from anywhere ---------- */
.ledger { border:1px solid var(--rule); border-radius:3px; background:var(--surface); }
.ledger .row {
  display:flex; align-items:baseline; gap:.7rem; padding:.55rem .85rem;
  border-bottom:1px solid var(--rule-soft);
}
.ledger .row:last-child { border-bottom:none; }
.ledger .k {
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); width:6.4rem; flex:none;
}
.ledger .v { font-family:var(--font-ui); font-weight:600; font-size:.9rem; flex:1; min-width:0; color:var(--ink); }
.ledger .chg {
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.07em; text-transform:uppercase;
  color:var(--ochre); background:none; border:none; padding:.1rem 0; cursor:pointer; flex:none;
}
.ledger .chg:hover, .ledger .chg:focus-visible { text-decoration:underline; outline:none; }
.ledger .row.cur { background:var(--ochre-soft); }
.ledger .row.cur .v { color:var(--ochre); font-weight:500; }
.ledger .row.todo .v { color:var(--muted); font-weight:400; }
.ledger .row.open { flex-wrap:wrap; background:var(--surface-2); }
.ledger .row.open .v { color:var(--ochre); }
.ledger .inline { width:100%; display:flex; flex-direction:column; gap:.35rem; padding:.45rem 0 .25rem; }
.ledger .inline .o {
  font-family:var(--font-ui); font-size:.88rem; font-weight:500; text-align:left; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule); border-left:3px solid var(--rule);
  border-radius:3px; padding:.6rem .8rem; cursor:pointer;
}
.ledger .inline .o:hover, .ledger .inline .o:focus-visible { border-color:var(--slate); border-left-color:var(--ochre); outline:none; }
.ledger .inline .o.sel { border-left-color:var(--ochre); border-color:var(--slate); }
.sheet-head .ledger { margin-top:.9rem; }
.ledger-hint {
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); margin:.55rem 0 0;
}
@media print {
  .ledger .chg, .ledger .inline, .ledger-hint { display:none !important; }
  .ledger { border:none; }
  .ledger .row { padding:.15rem 0; border-bottom:none; }
}

/* static pages (resources, support, about) */
.page { padding-top:2rem; }
.page .kicker { margin-bottom:.5rem; }
.page h1 { font-weight:700; font-size:clamp(1.6rem,5vw,2.1rem); letter-spacing:-.02em; line-height:1.1; margin:0 0 1rem; text-wrap:balance; }
.page .prose { max-width:60ch; }
.placeholder {
  display:inline-block; font-family:var(--font-mono); font-size:.63rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ochre); border:1px solid var(--ochre); border-radius:2px;
  padding:.15rem .4rem; margin-bottom:1.2rem;
}
.page h2 {
  font-family:var(--font-ui); font-weight:600; font-size:1.05rem; letter-spacing:-.005em;
  margin:2rem 0 .6rem; padding-bottom:.4rem; border-bottom:1px solid var(--rule);
}
.page .prose a { color:var(--ochre); text-decoration:none; border-bottom:1px solid var(--ochre); }
.page .prose a:hover, .page .prose a:focus-visible { color:var(--ink); border-bottom-color:var(--ink); outline:none; }
.page .prose .callout { margin:0 0 1.6rem; }
.page ul.plain a { text-decoration:none; color:var(--ink); border:none; }
.page ul.plain a:hover b, .page ul.plain a:focus-visible b { color:var(--ochre); }
.page ul.plain b { font-variant-numeric:tabular-nums; }
