:root{
  --paper:#F4EFE4; --paper2:#EAE2D1; --card:#FBF8F1;
  --ink:#22201B; --ink2:#5B5449;
  --pinon:#2E4636; --pinon2:#47654F;
  --clay:#A8503A; --turq:#35706D;
  --rule:#D5CAB3;
  --serif:"Newsreader",Georgia,serif;
  --sans:"Karla",system-ui,sans-serif;
  --mono:"Space Mono",monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.68;-webkit-font-smoothing:antialiased}
::selection{background:rgba(168,80,58,.2)}
a{color:var(--pinon);text-underline-offset:3px}
a:hover{color:var(--clay)}
button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}
button:focus-visible,a:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
section{padding:88px 0;border-top:1px solid var(--rule)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin-bottom:20px}
h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.3vw,46px);line-height:1.13;letter-spacing:-.015em;margin-bottom:22px;max-width:21ch}
h2 em{font-style:italic;color:var(--pinon)}
h3{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.22;margin-bottom:12px}
h4{font-family:var(--serif);font-weight:500;font-size:20px;margin-bottom:8px}
.lede{font-size:19px;color:var(--ink2);max-width:70ch}
.lede strong{color:var(--ink);font-weight:600}
p{max-width:74ch}
p+p{margin-top:14px}

/* ecosystem strip + nav */
.eco{background:var(--pinon);color:#E5DFD1;font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.eco .wrap{display:flex;align-items:center;gap:16px;padding:10px 32px;flex-wrap:wrap}
.eco b{color:#fff}.eco a{color:#BCB29B;text-decoration:none}.eco a:hover{color:#fff}
.eco .here{color:#fff;border-bottom:1px solid var(--clay);padding-bottom:2px}
.eco .sep{color:#67806F}
nav{position:sticky;top:0;z-index:60;background:rgba(244,239,228,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.nav-inner{max-width:1120px;margin:0 auto;padding:14px 32px;display:flex;align-items:baseline;gap:24px}
.brand{font-family:var(--serif);font-size:21px;color:var(--ink);text-decoration:none;white-space:nowrap}
.brand small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.nav-links{display:flex;gap:20px;margin-left:auto;align-items:baseline;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{font-size:14.5px;color:var(--ink2);text-decoration:none;white-space:nowrap;padding-bottom:3px;border-bottom:1.5px solid transparent}
.nav-links a:hover{color:var(--ink)}
.nav-links a.on{color:var(--pinon);border-bottom-color:var(--clay)}
.nav-cta{background:var(--pinon);color:var(--paper)!important;padding:8px 16px;font-size:13.5px!important;border:none!important}
.nav-cta:hover{background:var(--clay)}

/* hero */
header{position:relative;overflow:hidden;background:var(--paper2)}
#contours{position:absolute;inset:0;width:100%;height:100%}
.hero{position:relative;z-index:2;padding:104px 0 84px}
h1{font-family:var(--serif);font-weight:300;font-size:clamp(37px,6vw,74px);line-height:1.05;letter-spacing:-.02em;max-width:15ch}
h1 em{font-style:italic;color:var(--clay)}
.hk{font-family:var(--mono);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--pinon);margin-bottom:24px}
.hsub{margin-top:24px;font-size:20px;color:var(--ink2);max-width:58ch}
.hsub strong{color:var(--ink);font-weight:600}
.ctas{margin-top:34px;display:flex;gap:13px;flex-wrap:wrap}
.btn{display:inline-block;font-weight:600;font-size:15px;padding:13px 24px;text-decoration:none;transition:all .2s}
.bs{background:var(--pinon);color:var(--paper)}
.bs:hover{background:var(--clay);color:var(--paper)}
.bg{border:1.5px solid var(--pinon);color:var(--pinon)}
.bg:hover{background:var(--pinon);color:var(--paper)}
.facts{margin-top:44px;padding-top:20px;border-top:1px solid var(--rule);display:flex;gap:30px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--ink2)}
.facts b{color:var(--pinon)}

/* document-page hero */
.dochero{background:var(--pinon);color:#EEE9DC;padding:66px 0 56px;position:relative;overflow:hidden}
.dochero .kick{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#D5A47C;margin-bottom:18px}
.dochero h1{color:#F4EFE4;max-width:18ch;font-size:clamp(34px,5.2vw,60px)}
.dochero .sub{margin-top:20px;font-size:19px;color:#C0CABF;max-width:64ch}
.dochero .meta{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);display:flex;gap:26px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#9AB0A1}
.dochero .meta a{color:#D5A47C;text-decoration:none}
.dochero .meta a:hover{color:#fff}

/* sub-nav (document sections) */
.subnav{position:sticky;top:74px;z-index:50;background:var(--paper2);border-bottom:1px solid var(--rule)}
.subnav .wrap{display:flex;gap:22px;padding:11px 32px;overflow-x:auto;scrollbar-width:none;align-items:center}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink2);text-decoration:none;white-space:nowrap;padding:4px 0;border-bottom:1.5px solid transparent}
.subnav a:hover{color:var(--ink)}
.subnav a.on{color:var(--clay);border-bottom-color:var(--clay)}
.subnav .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);white-space:nowrap;padding-right:4px;border-right:1px solid var(--rule);margin-right:2px}

/* article */
.part{padding:80px 0;border-top:1px solid var(--rule)}
.part:first-of-type{border-top:none}
.partlabel{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin-bottom:14px}
.parttitle{font-family:var(--serif);font-weight:300;font-size:clamp(28px,4vw,42px);line-height:1.14;margin-bottom:14px;max-width:22ch}
.partintro{font-size:18.5px;color:var(--ink2);max-width:70ch;margin-bottom:12px}
.sec{margin-top:46px;padding-top:32px;border-top:1px solid var(--rule)}
.sec:first-of-type{border-top:none;padding-top:0}
.secnum{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--clay);margin-bottom:8px}
.sec h3{max-width:24ch}
.sec p{color:var(--ink2)}
.sec p strong{color:var(--ink)}
.sec ul{margin:14px 0 0 0;padding:0;list-style:none;max-width:74ch}
.sec li{position:relative;padding-left:22px;margin-bottom:11px;color:var(--ink2)}
.sec li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:1.5px;background:var(--clay)}
.sec li strong{color:var(--ink)}
.pull{font-family:var(--serif);font-style:italic;font-weight:300;font-size:23px;line-height:1.35;color:var(--pinon);border-left:2px solid var(--clay);padding-left:20px;margin:24px 0;max-width:52ch}
.note{background:var(--card);border:1px solid var(--rule);padding:22px 26px;margin:24px 0;max-width:80ch}
.note b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin-bottom:8px}
.note p{font-size:15.5px;color:var(--ink2)}
.deep{background:var(--paper2)}

/* generic tables */
.tbl{width:100%;border-collapse:collapse;margin-top:26px;font-size:15px}
.tbl th{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;text-align:left;padding:12px 16px;background:var(--pinon);color:#EEE9DC;font-weight:400}
.tbl td{padding:16px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink2)}
.tbl td:first-child{font-family:var(--serif);font-size:19px;color:var(--ink);width:20%}
.tbl tr:nth-child(even) td{background:var(--card)}
.tbl td b{color:var(--ink)}

/* grids of cards */
.g2,.g3{display:grid;gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.cell{background:var(--card);padding:26px}
.cell small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:8px}
.cell h4{font-family:var(--serif);font-weight:400;font-size:21px;margin-bottom:8px}
.cell p{font-size:14.8px;color:var(--ink2)}
.cell.alt{background:var(--paper2)}

/* interactive card (accordion) */
.card{background:var(--card)}
.chead{width:100%;text-align:left;padding:24px 26px;display:flex;gap:16px;align-items:baseline}
.cnum{font-family:var(--mono);font-size:12px;color:var(--clay);flex-shrink:0}
.ctitle{font-family:var(--serif);font-size:21px;line-height:1.25;flex:1}
.ctog{font-family:var(--mono);color:var(--ink2);transition:transform .3s}
.card.open .ctog{transform:rotate(45deg)}
.cbody{max-height:0;overflow:hidden;transition:max-height .45s ease}
.cin{padding:0 26px 24px;color:var(--ink2);font-size:15.5px}
.cin .why{margin-top:13px;padding-top:13px;border-top:1px dashed var(--rule)}
.cin .why b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin-bottom:5px}

/* films */
.flayout{display:grid;grid-template-columns:1fr 320px;gap:28px;margin-top:40px;align-items:start}
.pshell{border:1px solid var(--rule);background:#1C1A16}
.pratio{padding:56.25% 0 0 0;position:relative}
.pratio iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.pend{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:#BCB29B;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-align:center;padding:20px}
.npbar{padding:15px 20px;background:var(--card);border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap}
.npt{font-family:var(--serif);font-size:21px}
.npd{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.flist{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.film{text-align:left;padding:15px 6px 15px 15px;border-bottom:1px solid var(--rule);border-left:2px solid transparent;transition:all .2s}
.film:hover{background:var(--card)}
.film.on{border-left-color:var(--clay);background:var(--card)}
.film small{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);display:block;margin-bottom:3px}
.film.on small{color:var(--clay)}
.fn{font-family:var(--serif);font-size:18px;line-height:1.25;display:block}
.fs{font-size:12.8px;color:var(--ink2);margin-top:5px;display:block}
.fd{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--pinon);margin-top:7px;display:inline-block;text-decoration:none}

/* library cards */
.libs{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:40px;background:var(--rule);border:1px solid var(--rule)}
.doc{background:var(--card);padding:26px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;transition:background .2s}
.doc:hover{background:#fff}.doc:hover h3{color:var(--clay)}
.doc.wide{grid-column:1/-1;background:var(--paper2)}
.doc.wide:hover{background:#F2ECDD}
.doc small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay)}
.doc h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:0}
.doc p{font-size:14.5px;color:var(--ink2);flex:1}
.doc .role{font-family:var(--mono);font-size:10.5px;color:var(--ink2);border-top:1px solid var(--rule);padding-top:10px}

/* statement band */
.stmt{background:var(--pinon);color:#EEE9DC}
.stmt p{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3.4vw,38px);line-height:1.28;max-width:23ch}
.stmt .at{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#9AB0A1;margin-top:24px}

/* three roles */
.roles{background:var(--paper2)}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:36px;background:var(--rule);border:1px solid var(--rule)}
.role{background:var(--card);padding:26px;display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;transition:background .2s}
.role:hover{background:#fff}
.role .tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay)}
.role h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:0}
.role p{font-size:14.5px;color:var(--ink2)}
.role .go{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pinon);margin-top:auto;padding-top:9px}
.estats{display:flex;gap:36px;margin-top:32px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--rule)}
.estat b{font-family:var(--serif);font-weight:300;font-size:32px;color:var(--pinon);display:block;line-height:1}
.estat span{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}

/* figures */
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.fig{background:var(--card);padding:26px}
.fig.mid{background:var(--paper2)}
.fig small{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2);display:block;margin-bottom:10px}
.fig .n{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.2vw,37px);color:var(--clay)}
.fig .n i{font-style:normal;font-size:.5em;color:var(--ink2)}
.fig p{margin-top:8px;font-size:14px;color:var(--ink2)}

/* stages */
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.stage{background:var(--card);padding:22px 20px}
.stage .m{font-family:var(--serif);font-weight:300;font-size:27px;color:var(--pinon)}
.stage:nth-child(2) .m{opacity:.8}.stage:nth-child(3) .m{opacity:.62}.stage:nth-child(4) .m{opacity:.45}
.stage b{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin:10px 0 7px}
.stage p{font-size:13.5px;color:var(--ink2)}

/* ask band */
.ask{background:var(--pinon);color:#EEE9DC}
.ask h2{color:#F4EFE4}.ask h2 em{color:#D5A47C}
.ask .eyebrow{color:#D5A47C}
.ask .lede{color:#C0CABF}.ask .lede strong{color:#fff}
.addrs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16)}
.addr{background:#294131;padding:22px}
.addr.rec{background:#345040}
.addr .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#D5A47C;margin-bottom:8px}
.addr .em{font-family:var(--mono);font-size:13.5px;color:#fff;word-break:break-all}
.addr p{font-size:13.5px;color:#B4BFB3;margin-top:8px}
.ask .bs{background:#D5A47C;color:#22201B}
.ask .bs:hover{background:#fff}
.ask .bg{border-color:#8BA391;color:#EEE9DC}
.ask .bg:hover{background:#EEE9DC;color:var(--pinon)}

/* pager */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border-top:1px solid var(--rule)}
.pg{background:var(--card);padding:30px 32px;text-decoration:none;color:inherit;transition:background .2s}
.pg:hover{background:#fff}
.pg small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:6px}
.pg span{font-family:var(--serif);font-size:22px}
.pg.next{text-align:right}

footer{background:#22201B;color:#A7A094;padding:52px 0 40px;font-size:14px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
footer h4{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#D5A47C;margin-bottom:12px}
footer a{color:#C4BCAF;text-decoration:none;display:block;margin-bottom:7px}
footer a:hover{color:#fff}
.fbrand{font-family:var(--serif);font-size:21px;color:#F4EFE4;margin-bottom:8px}
.fnote2{margin-top:36px;padding-top:20px;border-top:1px solid #393429;font-family:var(--mono);font-size:10.5px;color:#7C756B;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}

.rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transform:none}*{transition:none!important;animation:none!important}}
@media(max-width:960px){
  html{scroll-padding-top:170px}
  .flayout,.libs,.g2,.g3,.figs,.rgrid,.addrs,.pager{grid-template-columns:1fr}
  .stages{grid-template-columns:1fr 1fr}
  .fgrid{grid-template-columns:1fr 1fr}
  .pg.next{text-align:left}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl thead{display:none}
  .tbl td{border-bottom:none}.tbl td:first-child{width:auto}
  .tbl tr{border-bottom:1px solid var(--rule);padding:8px 0}
}

/* ---------- v3 additions ---------- */
.eco .tagline{color:#BCB29B;text-transform:none;letter-spacing:.04em}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.g4 .cell{padding:22px}
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.lcard{background:var(--card);padding:26px;display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;transition:background .2s}
.lcard:hover{background:#fff}
.lcard:hover h4{color:var(--clay)}
.lcard small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay)}
.lcard h4{font-family:var(--serif);font-weight:400;font-size:21px;margin:0}
.lcard p{font-size:14.5px;color:var(--ink2);flex:1}
.lcard .go{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pinon);padding-top:8px}
.timeline{margin-top:36px;border-left:2px solid var(--rule);padding-left:0}
.tl-item{display:grid;grid-template-columns:140px 1fr;gap:26px;padding:22px 0 22px 26px;position:relative;border-bottom:1px solid var(--rule)}
.tl-item::before{content:"";position:absolute;left:-7px;top:30px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--clay)}
.tl-item:last-child{border-bottom:none}
.tl-year{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--clay);padding-top:4px}
.tl-body h4{font-family:var(--serif);font-weight:400;font-size:21px;margin-bottom:6px}
.tl-body p{color:var(--ink2);font-size:15.5px}
.people{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:26px;background:var(--rule);border:1px solid var(--rule)}
.person{background:var(--card);padding:22px}
.person .pname{font-family:var(--serif);font-size:20px;margin-bottom:4px}
.person .paff{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin-bottom:8px}
.person p{font-size:14.2px;color:var(--ink2)}
.person.pending{opacity:.5}
.group{margin-top:44px}
.group h3{font-family:var(--serif);font-weight:400;font-size:26px;margin-bottom:6px}
.group .gnote{color:var(--ink2);font-size:15.5px;max-width:70ch}
.invite{background:var(--pinon);color:#EEE9DC;padding:38px 40px;margin-top:44px}
.invite h3{color:#F4EFE4;font-size:27px;margin-bottom:12px}
.invite p{color:#C0CABF;max-width:70ch}
.invite p strong{color:#fff}
.invite .btn{margin-top:20px}
.invite .bs{background:#D5A47C;color:#22201B}
.invite .bs:hover{background:#fff}
.hgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:30px;background:var(--rule);border:1px solid var(--rule)}
.hstat{background:var(--card);padding:22px}
.hstat b{font-family:var(--serif);font-weight:300;font-size:30px;color:var(--pinon);display:block;line-height:1}
.hstat span{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink2)}
@media(max-width:960px){
 .g4,.lgrid,.people,.hgrid{grid-template-columns:1fr}
 .tl-item{grid-template-columns:1fr;gap:6px}
}

/* ---------- v4: the graph ---------- */
.rtypes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.rtype{background:var(--card);padding:24px}
.rtype .rt-n{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--clay);margin-bottom:8px}
.rtype h4{font-family:var(--serif);font-weight:400;font-size:21px;margin-bottom:7px}
.rtype p{font-size:14.3px;color:var(--ink2)}
.rtype .tier{margin-top:11px;padding-top:9px;border-top:1px dashed var(--rule);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.rtype .tier.pub{color:var(--pinon)}
.rtype .tier.seal{color:var(--clay)}
.tiers{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:30px;background:var(--rule);border:1px solid var(--rule)}
.tier-card{background:var(--card);padding:28px}
.tier-card.sealed{background:var(--pinon);color:#EEE9DC}
.tier-card.sealed h4{color:#F4EFE4}
.tier-card.sealed p{color:#C0CABF}
.tier-card.sealed small{color:#D5A47C}
.tier-card small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:8px}
.tier-card h4{font-family:var(--serif);font-weight:400;font-size:23px;margin-bottom:9px}
.tier-card p{font-size:15px;color:var(--ink2)}
.headsup{background:var(--pinon);color:#EEE9DC;padding:44px 46px;margin-top:38px}
.headsup .hu-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#D5A47C;margin-bottom:18px}
.headsup p{color:#C8D0C6;font-size:17.5px;max-width:66ch}
.headsup p+p{margin-top:16px}
.headsup p strong{color:#fff}
.headsup .hu-close{font-family:var(--serif);font-style:italic;font-weight:300;font-size:24px;color:#F4EFE4;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.2);max-width:52ch}
.slot{border:1px dashed var(--rule);background:transparent;padding:22px 26px;margin-top:18px}
.slot b{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);display:block;margin-bottom:6px}
.slot p{font-size:14.5px;color:var(--ink2)}
@media(max-width:960px){.rtypes,.tiers{grid-template-columns:1fr}}

/* ---------- v5: entity graph ---------- */
.prov{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:var(--ink2);margin-top:10px;padding-top:9px;border-top:1px dashed var(--rule)}
.sec ul li{margin-bottom:9px}

/* ---------- v6: source records ---------- */
.rawsource{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--clay);padding:30px 34px;margin-top:8px}
.rawsource p{color:var(--ink);font-size:16.5px;max-width:74ch}
.rawsource p+p{margin-top:16px}

/* ---------- v7: search + share ---------- */
.searchwrap{margin-top:30px}
#sq{width:100%;max-width:640px;font-family:var(--serif);font-size:26px;font-weight:300;padding:16px 20px;
background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--clay);color:var(--ink);outline:none}
#sq:focus{border-color:var(--pinon);border-left-color:var(--clay)}
#sq::placeholder{color:#A99F8B;font-style:italic}
.srcount{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);margin:26px 0 0}
#sr .lgrid{margin-top:16px}
#sr mark{background:rgba(168,80,58,.18);color:var(--ink);padding:0 2px}
.suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.suggest a{font-family:var(--mono);font-size:12px;padding:7px 14px;border:1px solid var(--rule);
background:var(--card);color:var(--ink2);text-decoration:none}
.suggest a:hover{border-color:var(--clay);color:var(--ink)}
.navsearch{font-family:var(--mono);font-size:13.5px!important;color:var(--ink2)!important;border:none!important}
.navsearch:hover{color:var(--clay)!important}
.sharebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:28px;padding-top:20px;border-top:1px solid var(--rule)}
.sharebar .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.sharebtn{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;padding:8px 14px;border:1px solid var(--rule);
background:var(--card);color:var(--ink2);text-decoration:none;cursor:pointer;transition:all .18s}
.sharebtn:hover{border-color:var(--clay);color:var(--ink)}
.sharebtn.copied{background:var(--pinon);color:var(--paper);border-color:var(--pinon)}

/* ---------- v8: narrative arcs ---------- */
.arcwalk{margin-top:30px;border-top:1px solid var(--rule)}
.arcstop{display:grid;grid-template-columns:64px 1fr 34px;gap:18px;align-items:start;
padding:24px 6px 24px 4px;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:background .18s}
.arcstop:hover{background:var(--card)}
.arcstop:hover .arcname{color:var(--clay)}
.arcnum{font-family:var(--mono);font-size:13px;color:var(--clay);padding-top:5px}
.arcbody{display:block}
.arcname{font-family:var(--serif);font-size:23px;display:block;margin-bottom:5px;transition:color .18s}
.arcwhy{font-size:15.5px;color:var(--ink2);display:block;max-width:70ch}
.arcgo{font-family:var(--mono);color:var(--ink2);padding-top:8px;text-align:right}
.arcstop:hover .arcgo{color:var(--clay)}
@media(max-width:700px){.arcstop{grid-template-columns:44px 1fr;gap:12px}.arcgo{display:none}}

/* ---------- v9: collapsible timeline ---------- */
.tlwrap{margin-top:30px}
.tlctl{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}
.tlbtn{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;
border:1px solid var(--rule);background:var(--card);color:var(--ink2);cursor:pointer;transition:all .18s}
.tlbtn:hover{border-color:var(--clay);color:var(--ink)}
.tlhint{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--ink2);margin-left:4px}
.tlera{border-top:1px solid var(--rule)}
.tlera:last-of-type{border-bottom:1px solid var(--rule)}
.tlerahead{width:100%;text-align:left;display:grid;grid-template-columns:120px 190px 1fr 30px;gap:18px;align-items:baseline;
padding:22px 4px;cursor:pointer}
.tlerarange{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--clay)}
.tleralabel{font-family:var(--serif);font-size:24px;color:var(--ink)}
.tlerablurb{font-size:14.8px;color:var(--ink2);max-width:62ch}
.tleratog{font-family:var(--mono);font-size:16px;color:var(--ink2);text-align:right}
.tlerabody{max-height:0;overflow:hidden;transition:max-height .5s ease}
.tlera.open .tlerabody{max-height:14000px}
.tlerain{padding:0 0 18px 0;border-left:2px solid var(--rule);margin-left:8px}
.tlentry{border-bottom:1px solid var(--rule);margin-left:26px}
.tlentry:last-child{border-bottom:none}
.tlhead{width:100%;text-align:left;display:grid;grid-template-columns:130px 1fr 26px;gap:18px;align-items:start;
padding:18px 6px 18px 0;cursor:pointer;position:relative}
.tlhead::before{content:"";position:absolute;left:-33px;top:26px;width:11px;height:11px;border-radius:50%;
background:var(--paper);border:2px solid var(--clay)}
.tldate{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--clay);padding-top:4px}
.tlmain{display:block}
.tltitle{font-family:var(--serif);font-size:20px;display:block;margin-bottom:5px}
.tlsum{font-size:15px;color:var(--ink2);display:block;max-width:72ch}
.tltog{font-family:var(--mono);color:var(--ink2);padding-top:3px;text-align:right;transition:transform .3s}
.tlentry.open .tltog{transform:rotate(45deg)}
.tlbody{max-height:0;overflow:hidden;transition:max-height .4s ease}
.tlin{padding:0 26px 20px 130px}
.tldetail{font-size:15.5px;color:var(--ink2);max-width:74ch}
.tllinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tllinks a{font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:6px 12px;border:1px solid var(--rule);
background:var(--card);color:var(--pinon);text-decoration:none}
.tllinks a:hover{border-color:var(--clay);color:var(--clay)}
@media(max-width:860px){
 .tlerahead{grid-template-columns:1fr 30px;gap:6px}
 .tlerarange{grid-column:1}.tleralabel{grid-column:1}.tlerablurb{grid-column:1}
 .tlhead{grid-template-columns:1fr 24px;gap:6px}
 .tldate{grid-column:1}.tlin{padding-left:0}
 .tlhead::before{left:-33px;top:22px}
}

/* ---------- v10: episodes ---------- */
.epclaim{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--clay);padding:30px 34px;max-width:84ch}
.epclaim .eplbl{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:12px}
.epclaim p{font-family:var(--serif);font-size:22px;line-height:1.42;font-weight:300;color:var(--ink);max-width:none}
.eprestate{background:var(--pinon);color:#EEE9DC;padding:34px 38px;max-width:84ch}
.eprestate p{font-family:var(--serif);font-size:21px;line-height:1.45;font-weight:300;color:#EEE9DC;max-width:none}
.eptags{display:flex;flex-wrap:wrap;gap:8px}
.eptag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--rule);background:var(--card);color:var(--ink2)}

/* ---------- v11: episode context + glossary ---------- */
.epctx{border:1px solid var(--rule);background:var(--paper);padding:30px 34px;max-width:86ch}
.ctxwhat{font-size:17.5px;color:var(--ink);max-width:78ch}
.cast{margin-top:22px;border-top:1px solid var(--rule);padding-top:18px}
.castrow{display:grid;grid-template-columns:230px 1fr;gap:18px;padding:9px 0;align-items:baseline}
.castname{font-family:var(--serif);font-size:17px;color:var(--ink)}
.castwho{font-size:14.8px;color:var(--ink2)}
.ctxwhy{margin-top:20px;border-top:1px solid var(--rule);padding-top:18px}
.whylbl{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:9px}
.ctxwhy p{font-size:16px;color:var(--ink);max-width:78ch}
.eptake{border-left:3px solid var(--pinon);background:var(--card);padding:26px 32px;max-width:84ch}
.eptake ol{margin:12px 0 0;padding-left:22px}
.eptake li{font-size:16.5px;color:var(--ink);margin-bottom:11px;max-width:74ch}
.gl{border-bottom:1px dotted var(--clay);cursor:help;position:relative}
.gl:hover{background:rgba(168,80,58,.07)}
#glpop{position:fixed;z-index:2000;max-width:380px;background:var(--pinon);color:#EEE9DC;padding:18px 20px;
box-shadow:0 10px 40px rgba(0,0,0,.28);font-size:14.6px;line-height:1.5;display:none}
#glpop .glt{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#D5A47C;display:block;margin-bottom:8px}
#glpop a{color:#D5A47C;display:inline-block;margin-top:12px;font-family:var(--mono);font-size:11.5px;text-decoration:none}
#glpop a:hover{text-decoration:underline}
@media(max-width:700px){.castrow{grid-template-columns:1fr;gap:3px}#glpop{max-width:88vw}}

/* ---------- v12: byline ---------- */
.byline{display:grid;grid-template-columns:1fr 220px;gap:26px;align-items:start;padding:20px 0;
border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-width:92ch}
.bytext{font-size:14.8px;color:var(--ink2);line-height:1.62}
.bytext strong{color:var(--ink);font-family:var(--serif);font-size:16.5px;font-weight:400}
.bylinks{display:flex;flex-direction:column;gap:7px}
.bylinks a{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--pinon);text-decoration:none}
.bylinks a:hover{color:var(--clay)}
@media(max-width:760px){.byline{grid-template-columns:1fr}}

/* ---------- v13: faceted browser ---------- */
.fwrap{display:grid;grid-template-columns:288px 1fr;gap:46px;align-items:start;margin-top:34px}
#frail{position:sticky;top:96px;max-height:calc(100vh - 130px);overflow-y:auto;padding-right:6px}
#frail::-webkit-scrollbar{width:5px}#frail::-webkit-scrollbar-thumb{background:var(--rule)}
.fgroup{border-bottom:1px solid var(--rule)}
.fghead{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px 2px;
cursor:pointer;text-align:left;font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--ink)}
.fghead em{font-family:var(--mono);font-style:normal;font-size:10.5px;background:var(--clay);color:var(--paper);
padding:2px 7px;margin-left:auto}
.fgtog{font-family:var(--mono);color:var(--ink2);font-size:15px}
.fgbody{max-height:0;overflow:hidden;transition:max-height .35s ease}
.fgroup.open .fgbody{max-height:640px;overflow-y:auto}
.fgin{padding:2px 0 16px}
.fopt{display:flex;align-items:center;gap:9px;padding:6px 2px;cursor:pointer;font-size:14px;color:var(--ink2)}
.fopt:hover{color:var(--ink)}
.fopt input{accent-color:var(--pinon);width:14px;height:14px;flex:none}
.fname{flex:1}
.fcount{font-family:var(--mono);font-size:10.5px;color:var(--ink2);opacity:.7}
.fopt.zero{opacity:.32}
#fq{width:100%;font-family:var(--serif);font-size:24px;font-weight:300;padding:15px 18px;background:var(--card);
border:1px solid var(--rule);border-left:3px solid var(--clay);color:var(--ink);outline:none}
#fq:focus{border-color:var(--pinon);border-left-color:var(--clay)}
#fq::placeholder{color:#A99F8B;font-style:italic}
#fchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.fchip{font-family:var(--mono);font-size:11px;padding:6px 11px;background:var(--pinon);color:var(--paper);
border:none;cursor:pointer}
.fchip:hover{background:var(--clay)}
.fclear{font-family:var(--mono);font-size:11px;padding:6px 11px;background:none;border:1px solid var(--rule);
color:var(--ink2);cursor:pointer}
.fclear:hover{border-color:var(--clay);color:var(--ink)}
#fcount{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);
display:block;margin-top:24px}
#fres{margin-top:14px}
.rtags{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.rtag{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
padding:3px 7px;background:var(--paper);border:1px solid var(--rule);color:var(--ink2)}
@media(max-width:960px){.fwrap{grid-template-columns:1fr;gap:26px}#frail{position:static;max-height:none}}

/* ---------- v14: episode context, redesigned ---------- */
.ctxhead{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--rule);padding-bottom:12px}
.ctxkick{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--clay)}
.ctxwhen{font-family:var(--mono);font-size:11.5px;color:var(--ink2);letter-spacing:.06em}
.ctxwhat{font-family:var(--serif);font-size:24px;line-height:1.46;font-weight:300;color:var(--ink);
max-width:62ch;margin-top:24px}
.castgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:1px;background:var(--rule);
border:1px solid var(--rule);margin-top:38px}
.castcard{background:var(--paper);padding:22px 24px}
.castrole{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:9px}
.castname{font-family:var(--serif);font-size:20px;color:var(--ink);display:block;margin-bottom:9px;line-height:1.2}
.castwho{font-size:14.5px;color:var(--ink2);display:block;line-height:1.58}
.ctxwhy{background:var(--pinon);color:#EEE9DC;padding:30px 34px;max-width:80ch}
.ctxwhy .whylbl{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#D5A47C;display:block;margin-bottom:12px}
.ctxwhy p{font-size:17.5px;line-height:1.56;color:#EEE9DC;max-width:70ch}
.claimhead{border-bottom:1px solid var(--rule);padding-bottom:12px}
.claimtext{font-family:var(--serif);font-size:31px;line-height:1.34;font-weight:300;color:var(--ink);
max-width:56ch;margin-top:28px}
.takegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1px;background:var(--rule);
border:1px solid var(--rule);margin-top:28px}
.takecard{background:var(--card);padding:24px 26px}
.takenum{font-family:var(--mono);font-size:11px;color:var(--clay);display:block;margin-bottom:11px}
.takecard p{font-size:16px;line-height:1.56;color:var(--ink);max-width:none}
@media(max-width:700px){.ctxwhat{font-size:20px}.claimtext{font-size:24px}}

/* ---------- v15: open requests ---------- */
.openasks{border-left:3px solid var(--clay);background:var(--card);padding:26px 32px;max-width:86ch}
.openasks ul{margin:0;padding-left:20px}
.openasks li{font-size:16px;line-height:1.6;color:var(--ink);margin-bottom:14px;max-width:76ch}
.openasks li:last-child{margin-bottom:0}

/* ---------- v16: provenance grades ---------- */
.grade{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;
padding:3px 8px;margin-right:10px;display:inline-block;border:1px solid}
.g-documented{color:#2E4636;border-color:#2E4636;background:rgba(46,70,54,.06)}
.g-recorded{color:var(--clay);border-color:var(--clay);background:rgba(168,80,58,.05)}
.g-family{color:#7A6A4F;border-color:#7A6A4F;background:rgba(122,106,79,.06)}
.g-oral{color:#8A7F6B;border-color:#8A7F6B;background:rgba(138,127,107,.06);font-style:italic}
.gradekey{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--rule);
border:1px solid var(--rule);margin-top:26px}
.gradekey>div{background:var(--paper);padding:20px 22px}
.gradekey p{font-size:14.5px;color:var(--ink2);margin-top:9px;max-width:none}
.stubnote{border-left:3px solid var(--rule);padding:18px 24px;margin-top:30px;max-width:74ch;background:var(--card)}
.stubnote p{font-size:15px;color:var(--ink2);margin-top:8px}

/* ---------- v17: personal connection block ---------- */
.ctxconn{border:1px solid var(--clay);border-left-width:3px;background:var(--card);padding:28px 32px;max-width:82ch}
.connlbl{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:13px}
.ctxconn p{font-size:17px;line-height:1.58;color:var(--ink);max-width:74ch}

/* ---------- v18: reproduced letters ---------- */
.letter{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--pinon);
padding:34px 38px;margin-top:22px;max-width:78ch}
.letter p{font-size:16px;line-height:1.66;color:var(--ink);margin-bottom:16px;max-width:none}
.letter p:first-child{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink2)}
.letter p:nth-child(2){font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--ink2)}
.letter p:last-child{margin-bottom:0;font-family:var(--mono);font-size:12.5px;color:var(--ink2)}

/* ---------- v19: engagement mock-up ---------- */
.mockwrap{border:1px solid var(--rule);background:var(--card)}
.mockbar{background:var(--pinon);color:#D5A47C;padding:11px 20px;display:flex;gap:14px;align-items:center;
font-family:var(--mono);font-size:11px;letter-spacing:.08em}
.mocklbl{background:var(--clay);color:var(--paper);padding:3px 9px;letter-spacing:.16em}
.mockbar span:last-child{color:#A9B5A6;text-transform:none;letter-spacing:0}
.mockpage{padding:30px 34px;background:var(--paper)}
.mockhead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;
border-bottom:1px solid var(--rule);padding-bottom:20px;flex-wrap:wrap}
.mockkick{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay)}
.mocktitle{font-family:var(--serif);font-size:26px;font-weight:300;color:var(--ink);margin-top:8px;max-width:32ch;line-height:1.2}
.mockactions{display:flex;gap:8px;flex-wrap:wrap}
.mact{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11.5px;padding:8px 13px;
background:var(--card);border:1px solid var(--rule);color:var(--ink2);cursor:pointer}
.mact:hover{border-color:var(--clay);color:var(--ink)}
.mact.on{background:var(--clay);color:var(--paper);border-color:var(--clay)}
.micon{font-size:13px}
.mockledger{margin-top:22px;border:1px solid var(--rule);background:var(--card);padding:18px 22px}
.mledlbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);display:block;margin-bottom:12px}
.mledrow{display:flex;gap:14px;padding:5px 0;font-size:14.5px;color:var(--ink2)}
.mledw{font-family:var(--mono);font-size:13px;color:var(--ink);min-width:44px}
.mledrow.acc{border-top:1px solid var(--rule);margin-top:8px;padding-top:11px;color:var(--ink)}
.mockthread{margin-top:26px}
.mcom{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule)}
.mavatar{width:44px;height:44px;background:var(--pinon);color:#EEE9DC;display:flex;align-items:center;
justify-content:center;font-family:var(--mono);font-size:13px}
.mmeta{font-size:14px;color:var(--ink2);margin-bottom:8px;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.mmeta strong{color:var(--ink);font-family:var(--serif);font-size:17px;font-weight:400}
.mrole{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--clay)}
.mtime{font-family:var(--mono);font-size:10.5px;opacity:.65}
.mbody p{font-size:15.5px;line-height:1.6;color:var(--ink);max-width:70ch}
.mfoot{margin-top:11px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.mup{font-family:var(--mono);font-size:11px;color:var(--ink2);cursor:pointer}
.mup:hover{color:var(--clay)}
.mtag{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border:1px solid}
.mtag.accepted{color:#2E4636;border-color:#2E4636;background:rgba(46,70,54,.07)}
.mtag.witness{color:var(--clay);border-color:var(--clay);background:rgba(168,80,58,.07)}
.mtag.open{color:#7A6A4F;border-color:#7A6A4F;background:rgba(122,106,79,.07)}
.mockinput{margin-top:24px;border:1px solid var(--rule);background:var(--card);padding:18px 20px}
.mockinput textarea{width:100%;font-family:var(--sans);font-size:15px;padding:12px;background:var(--paper);
border:1px solid var(--rule);color:var(--ink);resize:vertical}
.minputfoot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;flex-wrap:wrap}
.minputfoot span{font-size:13px;color:var(--ink2);max-width:52ch}
.minputfoot .btn{opacity:.5;cursor:not-allowed}
@media(max-width:640px){.mcom{grid-template-columns:1fr}.mavatar{display:none}}

/* ---------- v20: mobile navigation + universal Explore access ---------- */
.navtoggle{display:none;background:none;border:1px solid var(--rule);padding:9px 11px;cursor:pointer;
margin-left:auto;line-height:0}
.navtoggle span{display:block;width:19px;height:1.5px;background:var(--ink);margin:4px 0;transition:.25s}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* persistent Explore access on every page */
#quickbar{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:400;background:var(--pinon);
display:flex;height:58px;box-shadow:0 -2px 18px rgba(0,0,0,.13);
padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:content-box}
#quickbar a,#quickbar button{flex:1 1 0;min-width:0;height:58px;display:flex;flex-direction:column;
align-items:center;justify-content:center;gap:4px;padding:0 4px;background:none;border:none;
border-right:1px solid #47654F;cursor:pointer;font-family:var(--mono);font-size:9px;letter-spacing:.06em;
text-transform:uppercase;color:#C4BCAF;text-decoration:none;white-space:nowrap}
#quickbar a:last-child,#quickbar button:last-child{border-right:none}
#quickbar a:hover,#quickbar button:hover,#quickbar a:active{color:#EEE9DC;background:#26382C}
#quickbar .qi{font-size:15px;line-height:1;color:#D5A47C}
body.hasquick{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}

@media(max-width:1080px){
  /* backdrop-filter on the header makes it a containing block for fixed children,
     which traps the slide-in panel inside it. Disable at mobile widths. */
  /* v23: nav must sit ABOVE the scrim (z340). nav's own stacking context (z60)
     was trapping the slide-in panel (z350-inside-nav) BELOW the body-level scrim,
     tinting the menu grey and stealing every tap. */
  nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper);z-index:360}
  .navtoggle{display:block}
  /* Fallback when JS has not run: links wrap and scroll horizontally, always reachable. */
  .nav-links{flex-wrap:nowrap;overflow-x:auto;width:100%;margin-left:0;gap:16px;padding:6px 0}
  .nav-inner{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px}
  /* Degrade safely: without JS the links stay in flow rather than off-screen. */
  body.navjs .nav-links{position:fixed;top:0;right:0;bottom:0;width:min(82vw,330px);background:var(--paper);
    border-left:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;margin:0;
    padding:78px 0 100px;overflow-y:auto;transform:translateX(100%);transition:transform .3s ease;
    z-index:350;box-shadow:-8px 0 34px rgba(0,0,0,.16)}
  body.navjs .nav-links.open{transform:translateX(0)}
  body.navjs .nav-links a{font-size:17px;padding:15px 26px;border-bottom:1px solid var(--rule);
    border-left:3px solid transparent;white-space:normal}
  body.navjs .nav-links a.on{border-bottom-color:var(--rule);border-left-color:var(--clay);background:var(--card)}
  body.navjs .nav-cta{margin:18px 26px;text-align:center;padding:14px 16px!important;font-size:15px!important;
    border-bottom:none!important}
  #navscrim{position:fixed;inset:0;background:rgba(34,32,27,.5);z-index:340;opacity:0;pointer-events:none;
    transition:opacity .3s}
  #navscrim.on{opacity:1;pointer-events:auto}
  body.navopen{overflow:hidden}
}
body.navopen #quickbar{display:none}
@media(min-width:1081px){#quickbar{display:none}body.hasquick{padding-bottom:0}}

/* ---------- v21: lenses ---------- */
.lensgroup{margin-bottom:46px}
.lensera{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay);
display:flex;align-items:center;gap:14px;padding-bottom:12px;margin-bottom:22px;border-bottom:1px solid var(--rule)}
.lensera span{font-family:var(--mono);font-size:10px;color:var(--ink2);opacity:.7;margin-left:auto}


/* ---------- v22: nav must never clip ---------- */
/* Between the menu breakpoint and comfortable width, tighten spacing so the
   full nav fits rather than running off the edge. */
@media(min-width:1081px) and (max-width:1320px){
  .nav-links{gap:16px}
  .nav-links a{font-size:14.5px}
  .nav-cta{padding:9px 14px}
}
@media(min-width:1081px){
  .nav-inner{flex-wrap:nowrap}
  .nav-links{min-width:0;flex-shrink:1}
}

/* ---- explainer block pages ---- */
.explblock{margin:3.2rem 0;padding-top:.6rem}
.explblock h2{margin-top:.2rem}
.explblock .lede{font-style:italic;color:var(--ink-soft,#4a4438);margin:.2rem 0 1rem}
.parthead{margin:4rem 0 1.6rem;padding-top:1.4rem;border-top:2px solid var(--rule,#d8cfba)}
.blocklink{margin-top:1rem;font-size:.92em}
.note.defeat{border-left:3px solid #A8503A}
.tscroll{overflow-x:auto;margin:1rem 0}
.tscroll table{border-collapse:collapse;min-width:560px;font-size:.9em}
.tscroll th,.tscroll td{border:1px solid var(--rule,#d8cfba);padding:.5rem .7rem;text-align:left;vertical-align:top}

/* ---- contribution modal + fab ---- */
#ctb-fab{position:fixed;right:16px;bottom:74px;z-index:390;background:var(--ink,#22201b);color:var(--paper,#f4efe4);
  border:none;border-radius:22px;padding:10px 16px;font:600 13px/1 "Space Grotesk",sans-serif;cursor:pointer;
  box-shadow:0 4px 18px rgba(0,0,0,.25)}
@media(min-width:1081px){#ctb-fab{bottom:24px}}
body.navopen #ctb-fab{display:none}
#ctb-modal{position:fixed;inset:0;z-index:500;background:rgba(34,32,27,.55);display:flex;align-items:center;justify-content:center;padding:16px}
#ctb-card{background:var(--paper,#f4efe4);max-width:560px;width:100%;max-height:90vh;overflow-y:auto;border-radius:10px;padding:26px 26px 20px;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.35)}
#ctb-card h3{margin:.3em 0 .4em;font-size:1.25rem}
#ctb-card label{display:block;margin:10px 0;font:600 12px/1.4 "Space Grotesk",sans-serif;letter-spacing:.04em}
#ctb-card input,#ctb-card select,#ctb-card textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--rule,#d8d0bf);border-radius:6px;background:#fff;font:400 14px/1.45 Georgia,serif}
#ctb-card .ctb-note{font-size:.85rem;opacity:.85;margin:.2em 0 .6em}
#ctb-card .ctb-fine{font-size:.75rem;opacity:.7;margin-top:10px}
#ctb-card .ctb-btns{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
#ctb-x{position:absolute;top:10px;right:14px;background:none;border:none;font-size:26px;cursor:pointer;opacity:.6}

/* ---- pull-the-thread cards ---- */
.pt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:16px}
.pt-card{display:block;background:var(--paper2,#ece5d4);border:1px solid var(--rule,#d8d0bf);border-radius:10px;
  padding:16px 16px 14px;text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease}
.pt-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.pt-kick{font:700 10px/1 "Space Grotesk",sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-bottom:8px}
.pt-name{font:600 15px/1.35 "Fraunces",Georgia,serif;margin-bottom:6px}
.pt-tag{font-size:.8rem;line-height:1.45;opacity:.75;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pt-go{font:600 11px/1 "Space Grotesk",sans-serif;margin-top:10px;letter-spacing:.05em}
.pt-wide{max-width:640px;margin-top:14px}

/* --- add-to-the-record floating button --- */
#addrec{position:fixed;right:18px;bottom:18px;z-index:320;display:flex;align-items:center;gap:7px;
  background:var(--ink,#22201B);color:var(--paper,#F4EFE4);padding:10px 16px;border-radius:999px;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.04em;text-decoration:none;
  box-shadow:0 6px 22px rgba(0,0,0,.22);opacity:.92}
#addrec:hover{opacity:1;transform:translateY(-1px)}
#addrec span{font-size:15px;line-height:1}
@media(max-width:1080px){#addrec{bottom:72px;right:12px;padding:9px 14px}}
body.navopen #addrec{display:none}

/* --- inline autolinks: visible but calm --- */
a.al{text-decoration:none;border-bottom:1px dashed rgba(122,62,44,.55);color:inherit}
a.al:hover{border-bottom-style:solid;color:var(--accent,#7A3E2C)}

/* --- share form --- */
.sf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:8px 0 18px}
.sf-grid label{display:flex;flex-direction:column;gap:6px;font-family:'Space Mono',monospace;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:#6E675D}
.sf-grid input,.sf-grid select,.sf-grid textarea{font-family:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--rule,#D8D0C0);border-radius:8px;background:var(--paper2,#EFE9DC);color:var(--ink,#22201B)}
.sf-grid textarea{resize:vertical;min-height:140px;line-height:1.55}
.sf-full{grid-column:1/-1}
.sf-check{flex-direction:row!important;align-items:center;gap:9px!important;text-transform:none!important;font-size:13px!important;grid-column:1/-1}
.sf-actions{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
.sf-note{font-size:13.5px;color:#6E675D;max-width:70ch}
.ptgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}
@media(max-width:700px){.sf-grid{grid-template-columns:1fr}}
.sharerow{margin:26px auto 6px;font-family:'Space Mono',monospace;font-size:12px;color:#7C756B}
.sharerow a{color:var(--accent,#7A3E2C);text-decoration:none;border-bottom:1px dashed rgba(122,62,44,.5)}
.sharerow a:hover{border-bottom-style:solid}

/* ---------- v54: drill-down architecture (BATCH_QUEUE §10.3) ---------- */
.provtrail{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;border:1px solid var(--rule);background:var(--card);margin-top:26px}
.trailstep{flex:1 1 180px;min-width:170px;padding:14px 18px;text-decoration:none;color:inherit;border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:4px;transition:background .2s}
.trailstep:last-child{border-right:0}
a.trailstep:hover{background:#fff}
.trailstep small{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay)}
.trailstep b{font-family:var(--serif);font-weight:400;font-size:15.5px}
.trailstep span{font-size:12.5px;color:var(--ink2)}
.trailhere{background:#fff;box-shadow:inset 0 -3px 0 var(--clay)}
.trailwhy{font-size:13px;color:var(--ink2);margin-top:10px;font-style:italic}
.ownwords{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--clay);color:var(--clay);text-decoration:none;background:var(--card);transition:all .2s;margin:4px 8px 4px 0}
.ownwords:hover{background:var(--clay);color:#fff}
.g-lore{color:#6B5B8A;border-color:#6B5B8A;background:rgba(107,91,138,.06);font-style:italic}

/* ---------- v24: mobile facet UX (JH ruling, 26 Aug) ---------- */
#fhead{display:flex;align-items:baseline;gap:10px;padding:2px 0 12px;border-bottom:2px solid var(--pinon);margin-bottom:2px}
#fhead .fhlbl{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--clay)}
#fhead .fha{font-family:var(--mono);font-size:11px;color:var(--ink2)}
#fclearall{margin-left:auto;background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:11px;
letter-spacing:.06em;text-transform:uppercase;color:var(--pinon);text-decoration:underline;padding:0}
#fjump{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom,0px));
z-index:380;display:none;align-items:center;gap:6px;background:var(--pinon);color:#EEE9DC;border:none;cursor:pointer;
font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:11px 20px;border-radius:999px;
box-shadow:0 4px 22px rgba(0,0,0,.28)}
@media(min-width:961px){#fjump{display:none!important}}

/* v26: search-first explore + howto details */
.howto{margin:14px 0 0;border:1px solid var(--rule);border-radius:10px;background:rgba(0,0,0,.02)}
.howto summary{cursor:pointer;padding:10px 16px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--pinon)}
.howto div{padding:2px 18px 14px}
.howto code{background:rgba(0,0,0,.06);padding:1px 6px;border-radius:5px;font-size:.9em}
