:root{
  --paper:#f5f0e6; --paper-2:#ece5d7; --rule:#d8cdb8; --ink:#211b13; --ink-2:#4a4032;
  --muted:#4f4638; --accent:#9c3b26; --accent-2:#1f5c52; --gold:#8a6d1f;
  --shadow:rgba(33,27,19,.09);
  --serif:"Literata",Georgia,"Times New Roman",serif;
  --sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --measure:34rem;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#14110c; --paper-2:#1c1811; --rule:#3a3226; --ink:#ece4d4; --ink-2:#c3b8a3;
  --muted:#b8aa92; --accent:#e07a55; --accent-2:#6cc0ae; --gold:#d6b45e; --shadow:rgba(0,0,0,.5);
}}
:root[data-theme="dark"]{
  --paper:#14110c; --paper-2:#1c1811; --rule:#3a3226; --ink:#ece4d4; --ink-2:#c3b8a3;
  --muted:#b8aa92; --accent:#e07a55; --accent-2:#6cc0ae; --gold:#d6b45e; --shadow:rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:17.5px;line-height:1.62;font-feature-settings:"onum" 1;}
img{max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--rule)}
a:hover{text-decoration-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.wrap{max-width:71rem;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}
.col{max-width:var(--measure);margin-inline:auto}
.col-wide{max-width:52rem;margin-inline:auto}

/* topbar */
.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.top-in{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:.55rem 0;
  font-family:var(--sans);font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.top a{text-decoration:none}
.top nav{display:flex;gap:.9rem;flex-wrap:wrap}
.top-in>a strong{white-space:nowrap}
@media (max-width:900px){.top nav{display:none}}
.top nav a:hover{color:var(--accent)}
.btn{font-family:var(--sans);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  background:none;border:1px solid var(--rule);color:var(--muted);padding:.28rem .6rem;border-radius:2px;cursor:pointer}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* hero */
.hero{padding:clamp(3rem,9vw,7rem) 0 2.5rem;border-bottom:1px solid var(--rule)}
.kicker{font-family:var(--sans);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem}
h1{font-size:clamp(2.6rem,8.5vw,5.6rem);line-height:.98;letter-spacing:-.022em;margin:0 0 1.3rem;font-weight:600}
.deck{font-size:clamp(1.1rem,2.4vw,1.36rem);line-height:1.5;color:var(--ink-2);max-width:44rem;margin:0 0 1.6rem}
.byline{font-family:var(--sans);font-size:.78rem;color:var(--muted);letter-spacing:.03em}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:2.6rem 0 0}
.stat{background:var(--paper);padding:1.1rem 1rem}
.stat b{display:block;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1;letter-spacing:-.02em;color:var(--accent)}
.stat span{display:block;font-family:var(--sans);font-size:.72rem;line-height:1.35;color:var(--muted);margin-top:.45rem}

section{padding:clamp(2.8rem,7vw,5rem) 0;border-bottom:1px solid var(--rule)}
.snum{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.12em;display:block;margin-bottom:.7rem}
h2{font-size:clamp(1.6rem,4.4vw,2.5rem);line-height:1.1;letter-spacing:-.018em;margin:0 0 1.1rem;font-weight:600}
h3{font-size:1.14rem;margin:2.2rem 0 .6rem;font-weight:600;letter-spacing:-.005em}
p{margin:0 0 1.05rem}
.lede{font-size:1.16rem;color:var(--ink-2)}
.note{font-family:var(--sans);font-size:.83rem;color:var(--muted);line-height:1.55}

/* quote card */
.q{border-left:2px solid var(--accent);padding:.15rem 0 .15rem 1.1rem;margin:1.5rem 0;font-size:1.05rem}
.q .src{display:block;font-family:var(--sans);font-size:.73rem;color:var(--muted);margin-top:.5rem;letter-spacing:.02em}
.qgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem 1.6rem;margin:1.6rem 0}
.qgrid .q{margin:0}

/* anatomy */
.anat{background:var(--paper-2);border:1px solid var(--rule);padding:clamp(1.1rem,3vw,2rem);margin:1.8rem 0;font-size:1.12rem;line-height:1.85}
.anat .note{display:block;margin-top:.9rem;font-size:.8rem}
.anat mark{background:none;padding:.05em .12em;border-radius:2px;cursor:help;color:inherit;
  box-shadow:inset 0 -.5em 0 color-mix(in srgb,var(--tint) 34%,transparent);transition:box-shadow .18s}
.anat mark:hover,.anat mark:focus{box-shadow:inset 0 -1.2em 0 color-mix(in srgb,var(--tint) 34%,transparent)}
.m1{--tint:var(--accent)} .m2{--tint:var(--gold)} .m3{--tint:var(--accent-2)} .m4{--tint:var(--muted)}
.legend{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;font-family:var(--sans);font-size:.78rem;color:var(--muted);margin-top:1rem}
.legend i{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.4rem;vertical-align:-1px;background:var(--tint)}

/* bars */
.bars{margin:1.6rem 0}
.bar{display:grid;grid-template-columns:minmax(6.5rem,10rem) 1fr auto;gap:.7rem;align-items:center;
  padding:.28rem 0;font-family:var(--sans);font-size:.83rem}
.bar .lab{color:var(--ink-2);text-align:right}
.bar .track{height:.72rem;background:var(--paper-2);border:1px solid var(--rule);position:relative;overflow:hidden}
.bar .fill{position:absolute;inset:0 auto 0 0;background:var(--accent);opacity:.82}
.bar .fill.alt{background:var(--accent-2)}
.bar .val{color:var(--muted);font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}

/* map */
.mapwrap{position:relative;margin:1.8rem 0 .6rem}
.mapwrap svg{width:100%;height:auto;display:block;background:var(--paper-2);border:1px solid var(--rule)}
.pt{fill:var(--accent);fill-opacity:.5;stroke:var(--accent);stroke-width:.9;cursor:pointer;transition:fill-opacity .15s}
.pt:hover,.pt:focus{fill-opacity:.95}
.plab{font-family:var(--sans);font-size:8px;fill:var(--ink-2)}
.mapnote{font-family:var(--sans);font-size:.78rem;color:var(--muted)}

/* explorer */
.tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1.4rem 0 1rem}
.tools input[type=search],.tools select{font-family:var(--sans);font-size:.86rem;padding:.5rem .65rem;
  background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:2px;min-width:0}
.tools input[type=search]{flex:1 1 15rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 1rem}
.chip{font-family:var(--sans);font-size:.75rem;padding:.26rem .6rem;border:1px solid var(--rule);
  border-radius:99px;background:none;color:var(--muted);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.count{font-family:var(--sans);font-size:.8rem;color:var(--muted);margin:.2rem 0 .8rem}
#list{border-top:1px solid var(--rule)}
.entry{display:grid;grid-template-columns:3.2rem 1fr;gap:.9rem;padding:.85rem 0;border-bottom:1px solid var(--rule)}
.entry .n{font-family:var(--mono);font-size:.72rem;color:var(--muted);padding-top:.32rem}
.entry .tx{font-size:1rem;line-height:1.55}
.entry .meta{font-family:var(--sans);font-size:.72rem;color:var(--muted);margin-top:.35rem;letter-spacing:.02em}
.entry mark{background:color-mix(in srgb,var(--gold) 32%,transparent);color:inherit}
.more{display:block;width:100%;margin:1.2rem 0 0;padding:.7rem;font-family:var(--sans);font-size:.82rem;
  background:var(--paper-2);border:1px solid var(--rule);color:var(--ink-2);cursor:pointer;border-radius:2px}
.more:hover{border-color:var(--accent);color:var(--accent)}

.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.6rem 2.4rem}
.roster{font-family:var(--sans);font-size:.86rem;line-height:1.75;color:var(--ink-2);
  columns:2;column-gap:2rem;margin:1.2rem 0}
@media (max-width:640px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat{padding:.9rem .7rem;min-width:0}
  .roster{columns:1}
}
.roster b{font-weight:600;color:var(--ink)}

footer{padding:3rem 0 4rem;font-family:var(--sans);font-size:.83rem;color:var(--muted)}
footer a{color:var(--ink-2)}
ol.src{padding-left:1.2rem;font-family:var(--sans);font-size:.84rem;line-height:1.65;color:var(--ink-2)}
ol.src li{margin-bottom:.6rem}
.skip{position:absolute;left:-9999px}
.skip:focus{left:.5rem;top:.5rem;background:var(--ink);color:var(--paper);padding:.5rem .8rem;z-index:99}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
