
:root{
  --ink:#191b1f; --ink-2:#262a31; --ink-3:#3a3f48;
  --paper:#f7f4ec; --paper-2:#fffdf7; --line:#e2dbc9; --line-2:#d3c9b1;
  --blue:#0166B1; --blue-dark:#084e86; --blue-tint:#e8f1f9;
  --brass:#a8801f; --brass-light:#c9a24b; --brass-tint:#f6efdd;
  --navy:#152731;
  --muted:#676c74; --danger:#b23b2e; --success:#2e7d43;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --radius:10px; --maxw:1180px;
  --shadow-sm:0 1px 3px rgba(25,27,31,.08);
  --shadow-md:0 6px 24px rgba(25,27,31,.12);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:16.5px;line-height:1.65;
  color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto}
a{color:var(--blue-dark);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--blue)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.18;margin:0 0 .5em}
h1{font-size:clamp(1.9rem,4vw,2.9rem)}
h2{font-size:clamp(1.4rem,2.6vw,2rem)}
h3{font-size:1.25rem}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.narrow{max-width:860px}

/* ---------- masthead ---------- */
.mast{background:var(--navy);color:#f2e9d5;border-bottom:3px solid var(--brass)}
.mast .wrap{display:flex;align-items:center;gap:16px;
  padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.mast a{color:#f2e9d5;text-decoration:none}
.mast .brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);
  font-size:1.12rem;letter-spacing:.01em}
.mast .brand small{display:block;font-family:var(--sans);font-size:.72rem;
  letter-spacing:.14em;text-transform:uppercase;color:#c9a24b;font-weight:600}
.mast nav{margin-left:auto;display:flex;gap:20px;flex-wrap:wrap;font-size:.9rem}
.mast nav a{opacity:.85;border-bottom:2px solid transparent;padding-bottom:2px}
.mast nav a:hover,.mast nav a.on{opacity:1;border-bottom-color:var(--brass)}

/* ---------- generic ---------- */
.lede{font-size:1.1rem;color:var(--ink-3);max-width:70ch}
.section{padding:38px 0}
.eyebrow{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass);font-weight:700;margin-bottom:8px}
.grid{display:grid;gap:18px}
.g3{grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}
.g4{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.card{background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);
  display:block;text-decoration:none;color:inherit;transition:.15s}
a.card:hover{border-color:var(--brass-light);box-shadow:var(--shadow-md);
  transform:translateY(-1px)}
.card h3{margin:0 0 6px;font-size:1.08rem}
.card p{margin:0;font-size:.9rem;color:var(--muted)}
.count{float:right;font-family:var(--mono);font-size:.8rem;color:var(--brass);
  background:var(--brass-tint);border-radius:20px;padding:1px 9px}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.chip{display:inline-block;font-size:.76rem;font-weight:600;padding:3px 10px;
  border-radius:20px;background:var(--blue-tint);color:var(--blue-dark);
  border:1px solid #cfe2f2;text-decoration:none}
.chip.brass{background:var(--brass-tint);color:#7a5c12;border-color:#e8d9ae}
.chip.plain{background:#eee9dc;color:var(--ink-3);border-color:var(--line-2)}
a.chip:hover{background:var(--blue);color:#fff;border-color:var(--blue)}

.note{border-left:4px solid var(--brass);background:var(--brass-tint);
  padding:14px 18px;border-radius:0 var(--radius) var(--radius) 0;
  font-size:.92rem;color:#5d4a12;margin:18px 0}
.note strong{color:#4a3a0d}
.warn{border-left-color:var(--danger);background:#fbeeec;color:#7c2f24}

table.data{width:100%;border-collapse:collapse;font-size:.9rem;margin:14px 0}
table.data th,table.data td{border-bottom:1px solid var(--line);
  padding:8px 10px;text-align:left;vertical-align:top}
table.data th{background:var(--brass-tint);font-size:.76rem;
  text-transform:uppercase;letter-spacing:.08em;color:#6b5412}

/* ---------- search ---------- */
.searchbar{position:relative;margin:18px 0 6px}
.searchbar input{width:100%;font-family:var(--sans);font-size:1rem;
  padding:13px 16px 13px 42px;border:1px solid var(--line-2);
  border-radius:var(--radius);background:var(--paper-2);color:var(--ink)}
.searchbar input:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.searchbar svg{position:absolute;left:14px;top:13px;opacity:.45}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}
.filters select{font-family:var(--sans);font-size:.88rem;padding:8px 10px;
  border:1px solid var(--line-2);border-radius:8px;background:var(--paper-2)}
.results{margin-top:16px}
.hit{background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;
  display:block;text-decoration:none;color:inherit}
.hit:hover{border-color:var(--brass-light);box-shadow:var(--shadow-sm)}
.hit h4{margin:0 0 4px;font-size:1.02rem;font-family:var(--serif)}
.hit .meta{font-size:.78rem;color:var(--muted)}
.hit mark{background:#fdf0b8;color:inherit;padding:0 1px}
.empty{color:var(--muted);font-style:italic;padding:20px 0}

/* ---------- article ---------- */
.a-head{background:var(--paper-2);border-bottom:1px solid var(--line);
  padding:30px 0 24px}
.a-num{font-family:var(--mono);font-size:.8rem;color:#fff;background:var(--navy);
  border-radius:5px;padding:2px 9px;letter-spacing:.04em}
.a-layout{display:grid;grid-template-columns:250px 1fr;gap:36px;
  align-items:start;padding:30px 0 60px}
@media(max-width:900px){.a-layout{grid-template-columns:1fr}}
.a-side{position:sticky;top:16px;font-size:.87rem}
@media(max-width:900px){.a-side{position:static}}
.a-side h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass);margin:0 0 8px}
.a-side ol{list-style:none;margin:0 0 22px;padding:0;
  border-left:2px solid var(--line);}
.a-side ol li{margin:0}
.a-side ol a{display:block;padding:4px 0 4px 12px;color:var(--ink-3);
  text-decoration:none;border-left:2px solid transparent;margin-left:-2px}
.a-side ol a:hover{color:var(--blue);border-left-color:var(--brass)}
.a-side ol a.lv1{font-weight:600;color:var(--ink-2)}
.a-side ol a.lv2{padding-left:22px;font-size:.93em;color:var(--muted)}
.a-body p.a-anch{scroll-margin-top:14px}
.a-body p.a-anch::before{content:"";display:block;height:.4em}
.a-body p.a-anch{border-left:3px solid var(--line);padding-left:14px;
  margin-left:-17px}
.a-body p.a-anch:target{border-left-color:var(--brass);background:var(--brass-tint)}
.a-body{max-width:75ch;font-size:1.02rem}
.a-body p{margin:0 0 1.05em}
.a-body .a-h{font-family:var(--serif);font-size:1.3rem;margin:1.8em 0 .6em;
  padding-bottom:.25em;border-bottom:1px solid var(--line)}
.a-fig{margin:22px 0;text-align:center}
.a-fig img{border:1px solid var(--line);border-radius:6px;background:#fff}
.a-fig figcaption{font-size:.82rem;color:var(--muted);margin-top:6px}
.a-tablewrap{overflow-x:auto;margin:18px 0}
.a-table{border-collapse:collapse;font-size:.88rem;min-width:100%}
.a-table th,.a-table td{border:1px solid var(--line);padding:6px 9px;
  text-align:left;vertical-align:top}
.a-table th{background:var(--brass-tint)}

.digest{background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 18px;margin:0 0 26px}
.digest h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass);margin:0 0 10px}
.digest dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;
  font-size:.88rem}
.digest dt{font-weight:600;color:var(--ink-2);white-space:nowrap}
.digest dd{margin:0;color:var(--ink-3)}
.digest .vals{font-family:var(--mono);font-size:.84rem}

.provenance{border-top:2px solid var(--line);margin-top:44px;padding-top:20px;
  font-size:.88rem;color:var(--muted)}
.provenance a{color:var(--blue-dark)}

.foot{background:var(--navy);color:#bfb49b;margin-top:50px;
  padding:30px 0;font-size:.85rem}
.foot a{color:#e0d3b2}
.foot .wrap{display:flex;gap:28px;flex-wrap:wrap;justify-content:space-between}

.stat{display:flex;gap:26px;flex-wrap:wrap;margin:18px 0 0}
.stat div{min-width:96px}
.stat b{display:block;font-family:var(--serif);font-size:1.75rem;color:var(--navy);
  line-height:1.1}
.stat span{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted)}
.hidden{display:none!important}
