/* ---------- cinematic heroes ---------- */
.hero{position:relative;color:var(--on-dark);background:var(--ink);isolation:isolate}
.hero-media,.hero-media picture,.hero-media img{position:absolute;inset:0;width:100%;height:100%}
.hero-media img{object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,26,23,.86) 0%,rgba(22,26,23,.6) 42%,rgba(22,26,23,.12) 75%),linear-gradient(0deg,rgba(22,26,23,.75) 0%,rgba(22,26,23,0) 50%)}
.hero-in{position:relative;z-index:1;min-height:min(86vh,820px);display:flex;flex-direction:column;justify-content:flex-end;padding:120px 0 150px}
.hero-in .lede{color:var(--on-dark);margin-top:26px}
.hero .kick{color:#D8D1C3}
.hero h1{max-width:17ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-meta{position:absolute;right:0;bottom:150px;z-index:1;font-family:var(--mono);font-size:.8rem;color:#CFC8BA;text-align:right;line-height:1.7}
@media (max-width:900px){.hero-meta{display:none}.hero-media::after{background:linear-gradient(0deg,rgba(22,26,23,.92) 0%,rgba(22,26,23,.55) 55%,rgba(22,26,23,.25) 100%)}.hero-in{min-height:640px;padding:110px 0 70px}}

.phero{position:relative;color:var(--on-dark);background:var(--ink);isolation:isolate}
.phero .hero-in{min-height:min(62vh,600px);padding:110px 0 64px}
.phero h1{max-width:20ch}
.phero .h1 .t2{font-size:.66em;line-height:1.08;margin-top:.18em;max-width:26ch}
.phero .hero-media::after{background:linear-gradient(90deg,rgba(22,26,23,.9) 0%,rgba(22,26,23,.72) 45%,rgba(22,26,23,.25) 80%),linear-gradient(0deg,rgba(22,26,23,.7) 0%,rgba(22,26,23,0) 55%)}
.crumbs{font-family:var(--mono);font-size:.8rem;color:#D3CCBE;display:flex;gap:.6em;flex-wrap:wrap;margin-bottom:20px}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.ref-strip{display:flex;flex-wrap:wrap;gap:0;margin-top:34px;border-top:1px solid rgba(239,233,221,.22)}
.ref-strip div{padding:14px 28px 0 0;margin-right:28px;border-right:1px solid rgba(239,233,221,.22);min-width:0}
.ref-strip div:last-child{border-right:0}
.ref-strip dt{font-family:var(--mono);font-size:.75rem;color:#CFC8BA}
.ref-strip dd{margin:4px 0 0;font-family:var(--serif);font-size:1.25rem}
@media (max-width:640px){.ref-strip div{border-right:0;padding-right:0;width:100%}}

/* ---------- help finder ---------- */
.finder{position:relative;z-index:5;margin-top:-86px}
.finder-box{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);box-shadow:0 30px 60px -30px rgba(30,35,31,.35);padding:26px clamp(18px,3vw,36px) 22px}
.finder label{display:block;font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:14px}
.finder-row{display:flex;gap:10px;position:relative}
.finder-row .ic-s{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--muted);pointer-events:none}
.finder input{flex:1;min-height:56px;padding:0 16px 0 46px;border:1px solid var(--ink);border-radius:var(--r);background:#fff;font-size:1.08rem;min-width:0}
.finder-list{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--rule);border-radius:var(--r);box-shadow:0 20px 40px -20px rgba(30,35,31,.3);list-style:none;max-height:340px;overflow:auto;z-index:10}
.finder-list li{padding:12px 16px;cursor:pointer;display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule-2)}
.finder-list li[aria-selected=true],.finder-list li:hover{background:var(--gold-soft)}
.finder-list .mono{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 14px;border:1px solid var(--rule);background:transparent;border-radius:999px;cursor:pointer;font-size:.95rem;text-decoration:none;color:var(--ink)}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media (max-width:640px){.finder{margin-top:-40px}.finder-row{flex-direction:column}.finder-row .ic-s{top:28px}}

/* ---------- three answers ---------- */
.answers{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.answers > div{padding:28px 32px 8px 0;border-right:1px solid var(--rule);margin-right:32px}
.answers > div:last-child{border-right:0;margin-right:0}
.answers .n{font-family:var(--mono);font-size:.8rem;color:var(--gold-ink)}
.answers h3{font-size:clamp(1.5rem,2.3vw,2rem);font-weight:360;margin:10px 0 12px}
@media (max-width:820px){.answers{grid-template-columns:1fr}.answers > div{border-right:0;margin-right:0;border-bottom:1px solid var(--rule);padding-bottom:20px}}

/* ---------- matter index ---------- */
.mindex{list-style:none;border-top:1px solid var(--ink);position:relative}
.mrow{border-bottom:1px solid var(--rule)}
.mrow a{color:inherit;display:grid;grid-template-columns:118px minmax(0,1.3fr) minmax(0,1fr) 180px 32px;gap:20px;align-items:center;padding:26px 0;text-decoration:none;transition:background .25s,padding .25s var(--ease)}
.mrow .mn{font-family:var(--mono);font-size:.8rem;color:var(--muted);white-space:nowrap}
.mrow .mt{font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,2.3rem);font-weight:360;line-height:1.05;letter-spacing:-.015em}
.mrow .ms{color:var(--muted);font-size:.98rem}
.mrow .mf{font-family:var(--mono);font-size:.82rem;text-align:right}
.mrow .ic{justify-self:end;width:22px;height:22px;transition:transform .25s var(--ease)}
.mrow a:hover,.mrow a:focus-visible{background:var(--paper);padding-left:14px;padding-right:14px}
.mrow a:hover .ic{transform:translateX(5px)}
.mrow a:hover .mt{color:var(--gold-ink)}
.mpeek{position:absolute;width:300px;aspect-ratio:4/3;pointer-events:none;opacity:0;transform:scale(.96);transition:opacity .25s,transform .3s var(--ease);z-index:4;right:220px;top:0;box-shadow:0 30px 50px -25px rgba(0,0,0,.45);overflow:hidden;border-radius:2px}
.mpeek.on{opacity:1;transform:none}
.mpeek img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.mrow a{grid-template-columns:minmax(0,1fr) 28px;gap:6px 14px;padding:22px 0}.mrow .mn{grid-column:1;grid-row:1}.mrow .mt{grid-column:1;grid-row:2}.mrow .ms{grid-column:1;grid-row:3}.mrow .mf{grid-column:1;grid-row:4;text-align:left;color:var(--gold-ink)}.mrow .ic{grid-row:1/5;grid-column:2}.mpeek{display:none}}

/* ---------- ledger tables ---------- */
.ledger{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ledger caption{text-align:left;font-family:var(--mono);font-size:.8rem;color:var(--muted);padding-bottom:10px}
.ledger th,.ledger td{padding:14px 12px 14px 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.ledger thead th{font-family:var(--mono);font-size:.78rem;font-weight:400;color:var(--muted);border-bottom:1px solid var(--ink)}
.ledger td.num,.ledger th.num{text-align:right;font-family:var(--mono);font-size:.92rem;white-space:nowrap;padding-right:0}
.ledger tfoot td{border-bottom:0;border-top:1px solid var(--ink);font-weight:600}
.ledger .sub{display:block;color:var(--muted);font-size:.9rem}
.tbl-scroll{overflow-x:auto}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--ink);overflow-x:auto;scrollbar-width:thin}
.tab{flex:none;padding:14px 16px;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;font-weight:600;color:var(--muted);min-height:48px}
.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--gold)}
.tab:hover{color:var(--ink)}
.tabpanel{padding-top:36px}
.tabpanel[hidden]{display:none}

/* ---------- accordion ---------- */
.acc{border-top:1px solid var(--ink)}
.acc details{border-bottom:1px solid var(--rule)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font-family:var(--serif);font-size:1.25rem;font-weight:400}
.acc summary::-webkit-details-marker{display:none}
.acc summary .ic{transition:transform .25s var(--ease);flex:none}
.acc details[open] summary .ic{transform:rotate(45deg)}
.acc .acc-b{padding:0 0 22px;max-width:68ch;color:var(--ink-2)}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.field label,.field .lab,fieldset legend{font-weight:600;font-size:.98rem}
.field .hint{color:var(--muted);font-size:.9rem;margin-top:-2px}
.inp,select.inp,textarea.inp{min-height:50px;padding:10px 14px;border:1px solid #8E877A;border-radius:var(--r);background:#fff;width:100%}
textarea.inp{min-height:120px;resize:vertical}
.inp:focus{outline:3px solid var(--gold);outline-offset:0;border-color:var(--ink)}
.inp[aria-invalid=true]{border-color:#A3321F;border-width:2px}
.err{color:#A3321F;font-size:.9rem;font-weight:600;display:none}
.err.show{display:block}
fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}
fieldset legend{margin-bottom:10px;padding:0}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 16px;border:1px solid #8E877A;border-radius:var(--r);background:#fff;cursor:pointer;font-weight:500}
.opt input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.opt input:focus-visible + span{outline:3px solid var(--gold);outline-offset:2px}
.tick{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.tick input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--ink);flex:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
.note{background:var(--paper);border-left:3px solid var(--gold);padding:16px 20px;font-size:.96rem}
.note p:last-child{margin:0}
.warn{background:#FBEDE6;border-left:3px solid #A3321F;padding:16px 20px}
.success{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--gold);padding:28px;border-radius:var(--r)}
.success h3{margin-bottom:10px}
.preview-tag{display:inline-block;font-family:var(--mono);font-size:.78rem;background:var(--gold-soft);padding:3px 8px;border-radius:3px;margin-bottom:12px}
.example-tag{display:inline-block;font-family:var(--mono);font-size:.75rem;color:var(--gold-ink);border:1px solid currentColor;padding:2px 7px;border-radius:3px}
.on-dark .example-tag{color:var(--gold)}

/* ---------- dialog ---------- */
dialog.dlg{border:0;padding:0;width:min(860px,100% - 32px);max-height:calc(100vh - 48px);background:var(--chalk);color:var(--ink);border-radius:var(--r);box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
dialog.dlg::backdrop{background:rgba(30,35,31,.55)}
.dlg-in{display:grid;grid-template-columns:300px 1fr;max-height:calc(100vh - 48px)}
.dlg-in picture img{width:100%;height:100%;object-fit:cover}
.dlg-body{padding:34px 34px 30px;overflow:auto}
.dlg-x{position:absolute;right:12px;top:12px}
@media (max-width:700px){.dlg-in{grid-template-columns:1fr;overflow:auto}.dlg-in picture{max-height:260px;overflow:hidden}}

/* ---------- people cards ---------- */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 24px}
.pcard{text-align:left;background:none;border:0;padding:0;cursor:pointer;display:block;width:100%;text-decoration:none}
.pcard picture{aspect-ratio:4/5;overflow:hidden;background:var(--rule-2)}
.pcard img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pcard:hover img{transform:scale(1.03)}
.pcard .pn{font-family:var(--serif);font-size:1.35rem;margin-top:14px;display:block}
.pcard .pr{display:block;color:var(--muted);font-size:.95rem}
.pcard .pq{display:block;font-family:var(--mono);font-size:.75rem;color:var(--gold-ink);margin-top:6px}
@media (max-width:1000px){.pgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.pgrid{grid-template-columns:repeat(2,1fr);gap:28px 14px}.pcard .pn{font-size:1.1rem}}

/* ---------- step progress ---------- */
.steps{display:flex;gap:0;list-style:none;margin-bottom:34px;border-top:1px solid var(--rule)}
.steps li{flex:1;padding-top:12px;font-family:var(--mono);font-size:.78rem;color:var(--muted);border-top:3px solid transparent;margin-top:-2px}
.steps li[aria-current=step]{color:var(--ink);border-top-color:var(--gold)}
.steps li.done{color:var(--ink);border-top-color:var(--ink)}
@media (max-width:640px){.steps li span{display:none}}

/* ---------- misc ---------- */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px)}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.sticky{position:sticky;top:110px;align-self:start}
@media (max-width:900px){.sticky{position:static}}
.timeline{list-style:none;counter-reset:st;border-left:1px solid var(--ink);margin-left:6px}
.timeline li{position:relative;padding:0 0 30px 34px}
.timeline li::before{counter-increment:st;content:counter(st,decimal-leading-zero);position:absolute;left:-1px;top:2px;transform:translateX(-50%);background:var(--chalk);font-family:var(--mono);font-size:.75rem;padding:4px 0;color:var(--gold-ink)}
.on-paper .timeline li::before{background:var(--paper)}
.timeline h3{font-size:1.3rem;font-weight:420;margin-bottom:6px}
.timeline .when{font-family:var(--mono);font-size:.8rem;color:var(--muted);display:block;margin-bottom:6px}
.ticks{list-style:none;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks .ic{margin-top:4px;color:var(--gold-ink)}
.ticks.x .ic{color:var(--muted)}
.photo{overflow:hidden;background:var(--rule-2)}
.photo img{width:100%;height:100%;object-fit:cover}
.disclaimer{font-size:.9rem;color:var(--muted);border-top:1px solid var(--rule);padding-top:14px;margin-top:28px}
.empty{padding:32px 0;color:var(--muted)}
.saved-pill{display:inline-flex;gap:6px;align-items:center}
.quickexit{position:fixed;right:12px;top:50%;z-index:90;transform:translateY(-50%);background:#A3321F;color:#fff;border:0;border-radius:var(--r);padding:12px 14px;font-weight:700;cursor:pointer;display:flex;gap:8px;align-items:center;min-height:48px}
@media (max-width:760px){.quickexit{top:auto;bottom:140px;transform:none}}
