:root{
  --red:#9d1c1c; --red-dark:#6f1313;
  --link:#0b4ea2; --link-visited:#5a3696; --link-red:#b03a2e;
  --ink:#1d1d1b; --muted:#5a5a55; --rule:#d4d4cf; --rule-soft:#e7e7e2;
  --infobg:#f6f4ef; --navbg:#f7f6f2; --hatbg:#f4f4f2; --paper:#ffffff;
}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;background:#eceae3;color:var(--ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.55}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
a.new{color:var(--link-red)}
a.ext::after{content:"\2197";font-size:.7em;vertical-align:super;color:var(--muted)}

/* masthead */
header.masthead{background:var(--paper);border-bottom:3px solid var(--red);
  display:flex;align-items:center;gap:14px;padding:10px 18px;flex-wrap:wrap}
.mark{display:flex;align-items:baseline;gap:10px;flex:0 0 auto}
.mark a{display:flex;align-items:baseline;gap:10px;color:inherit}
.mark a:hover{text-decoration:none}
.mark .cross{width:26px;height:26px;position:relative;flex:0 0 auto;align-self:center}
.mark .cross::before,.mark .cross::after{content:"";position:absolute;background:var(--red)}
.mark .cross::before{left:10px;top:0;width:6px;height:26px}
.mark .cross::after{top:10px;left:0;height:6px;width:26px}
.mark .word{font-family:Georgia,"Times New Roman",serif;font-weight:700;
  letter-spacing:.18em;font-size:1.32rem;color:var(--ink)}
.mark .word b{color:var(--red)}
.mark .tag{font-size:.72rem;color:var(--muted);letter-spacing:.02em;
  align-self:flex-end;margin-bottom:3px;font-style:italic}
.searchwrap{margin-left:auto;display:flex;align-items:center;gap:0}
.searchwrap input{border:1px solid #b9b9b2;padding:6px 9px;width:230px;
  font-size:.86rem;background:#fff}
.searchwrap button{border:1px solid #b9b9b2;border-left:none;background:#f0efe9;
  padding:6px 11px;font-size:.82rem;cursor:pointer}

/* shell */
.shell{display:flex;max-width:1180px;margin:0 auto;background:var(--paper);
  border-left:1px solid var(--rule);border-right:1px solid var(--rule);min-height:80vh}
nav.side{flex:0 0 178px;background:var(--navbg);border-right:1px solid var(--rule);
  padding:14px 12px;font-size:.83rem}
nav.side h4{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);margin:16px 4px 5px;font-weight:700}
nav.side h4:first-child{margin-top:0}
nav.side ul{list-style:none;margin:0;padding:0}
nav.side li{padding:2px 4px;border-radius:2px}
nav.side li.active{background:#ecebe4;border-left:3px solid var(--red);padding-left:6px}
nav.side .count{color:var(--muted);font-size:.72rem}

main{flex:1 1 auto;min-width:0;padding:0}
.tabs{display:flex;border-bottom:1px solid var(--rule);background:#fbfbf9;
  font-size:.82rem;padding:0 14px}
.tabs .group{display:flex}
.tabs .group.right{margin-left:auto}
.tabs a{padding:8px 13px;border:1px solid transparent;border-bottom:none;color:var(--muted)}
.tabs a.sel{background:#fff;border-color:var(--rule);border-bottom:1px solid #fff;
  margin-bottom:-1px;color:var(--ink);font-weight:600}
.tabs a:hover{text-decoration:none;color:var(--ink)}

.body{padding:14px 26px 40px}
.fromline{font-size:.78rem;color:var(--muted);margin:0 0 2px;font-style:italic}
h1.title{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:1.92rem;
  line-height:1.15;margin:.1em 0 .15em;border-bottom:1px solid var(--rule);padding-bottom:.18em}
h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:1.38rem;
  border-bottom:1px solid var(--rule);padding-bottom:.12em;margin:1.5em 0 .55em}
h3{font-size:1.04rem;margin:1.2em 0 .4em}
p{margin:.55em 0}
ul.body-list,ol.body-list{margin:.5em 0;padding-left:1.6em}
ul.body-list li,ol.body-list li{margin:.2em 0}
sup.ref a{font-size:.78em}
.cn{color:var(--link-red);font-size:.8em;font-style:italic;white-space:nowrap}
.redact{background:#1d1d1b;color:#1d1d1b;border-radius:1px;user-select:none}

.hatnote{font-size:.86rem;font-style:italic;color:#333;margin:.2em 0 .4em;padding:.1em 0 .1em 1.6em}
.hatnote + .hatnote{margin-top:-.25em}
.banner{display:flex;gap:12px;align-items:flex-start;border:1px solid #d9d6cc;
  background:var(--hatbg);padding:9px 12px;margin:.8em 0;font-size:.85rem}
.banner .icon{flex:0 0 auto;font-size:1.4rem;line-height:1;color:#b8860b}
.banner.cite .icon{color:var(--muted)}

/* infobox */
.infobox{float:right;width:292px;margin:.2em 0 1em 1.4em;border:1px solid var(--rule);
  background:var(--infobg);font-size:.82rem;line-height:1.4}
.infobox .ititle{background:var(--red);color:#fff;text-align:center;font-weight:700;
  padding:6px 8px;font-size:.96rem}
.infobox .jp{background:var(--red-dark);color:#fff;text-align:center;padding:2px 8px;
  font-size:.78rem;font-weight:400}
.infobox .sect{background:#ecebe2;text-align:center;font-weight:700;padding:3px 8px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-size:.82rem}
.infobox table{width:100%;border-collapse:collapse}
.infobox th{text-align:left;vertical-align:top;padding:3px 8px;width:38%;color:#333;
  font-weight:700;border-top:1px solid var(--rule-soft)}
.infobox td{padding:3px 8px;border-top:1px solid var(--rule-soft);vertical-align:top}

/* infobox image */
.infobox .ibimg{margin:0;background:#fff;border-bottom:1px solid var(--rule)}
.infobox .ibimg img{display:block;width:100%;height:auto}
.infobox .ibimg figcaption{padding:4px 8px;font-size:.74rem;color:var(--muted);
  font-style:italic;line-height:1.35}
.infobox .ibimg .credit,.gallery .credit{color:#333;font-style:normal}
.infobox .ibimg .credit::before,.gallery .credit::before{content:"— "}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:14px;margin:1em 0}
.gallery figure{margin:0;border:1px solid var(--rule);background:#fbfbf9}
.gallery img{display:block;width:100%;height:170px;object-fit:cover;background:#eee}
.gallery figcaption{padding:5px 8px;font-size:.76rem;color:var(--muted);line-height:1.4}

/* interactive map embed */
.mapembed{margin:1.1em 0;border:1px solid var(--rule);background:#fff}
.mapembed iframe{display:block;width:100%;height:560px;border:0}
.mapembed-bar{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  padding:7px 10px;border-top:1px solid var(--rule);background:#f9f8f4;font-size:.8rem}
.mapembed-bar a{font-weight:600;white-space:nowrap}
.mapembed-cap{color:var(--muted);font-style:italic;line-height:1.4}
@media(max-width:640px){.mapembed iframe{height:70vh}}

/* the thread — indistinguishable from prose; the only cue is the words.
   no border, no mark, no signature. it reads as an ordinary paragraph,
   and warms almost imperceptibly, slowly, when your attention rests on it. */
.whisper{transition:color 2.4s ease}
.whisper:hover{color:#5b4747}
.whisper-thanks{display:none}
body.witnessed .whisper-thanks{display:inline;color:#b7b0b0;font-style:italic}

/* the summoning — the reader's answer */
.summon{margin:1.7em 0;padding:1.3em 1.4em;border:1px solid var(--rule);
  background:var(--infobg);text-align:center}
.summon-btn{font-family:Georgia,'Times New Roman',serif;font-size:1.08rem;font-style:italic;
  color:#fff;background:var(--red);border:none;padding:.7em 1.5em;cursor:pointer;letter-spacing:.02em}
.summon-btn:hover{background:var(--red-dark)}
.summon-done p{margin:.5em 0;line-height:1.6}
.summon-meta{font-size:.8rem;color:var(--muted);font-style:italic}
.summon-note{margin-top:.9em;font-size:.74rem;color:var(--muted);font-style:italic}

/* contents */
.toc{display:inline-block;border:1px solid var(--rule);background:#f9f8f4;
  padding:8px 16px 8px 10px;margin:.6em 0;font-size:.85rem}
.toc .toch{font-weight:700;text-align:center;font-size:.82rem;margin-bottom:3px}
.toc ol{margin:0;padding-left:1.4em}
.toc ol ol{padding-left:1.2em;color:var(--muted)}
.toc .num{color:var(--muted);margin-right:.3em}

blockquote.dialogue{border-left:3px solid var(--red);margin:1em 0 1em .2em;
  padding:.3em 0 .3em 14px;font-size:.95rem;color:#2a2a28}
blockquote.dialogue .who{font-weight:700;color:var(--red-dark)}
blockquote.dialogue cite{display:block;font-size:.78rem;color:var(--muted);
  font-style:normal;margin-top:.4em}

table.wikitable{border-collapse:collapse;width:100%;font-size:.85rem;margin:.6em 0}
table.wikitable caption{font-size:.8rem;color:var(--muted);text-align:left;padding:.3em 0}
table.wikitable th,table.wikitable td{border:1px solid var(--rule);padding:5px 8px;
  text-align:left;vertical-align:top}
table.wikitable thead th,table.wikitable th[scope]{background:#efeee7}

ol.refs{font-size:.82rem;color:#333;padding-left:1.6em}
ol.refs li{margin:.2em 0}
.cats{border:1px solid var(--rule);background:#f9f8f4;margin:1.6em 0 0;padding:7px 12px;font-size:.82rem}
.cats .lbl{font-weight:700;margin-right:.4em}
.cats a{margin:0 .15em}
.cats a::after{content:" \00b7";color:var(--muted)}
.cats a:last-child::after{content:""}

.navbox{border:1px solid var(--rule);margin:1.4em 0 0;font-size:.8rem;clear:both}
.navbox .nbtitle{background:var(--red);color:#fff;text-align:center;font-weight:700;
  padding:5px 8px;position:relative}
.navbox .nbtitle .vde{position:absolute;left:8px;font-size:.7rem;font-weight:400;opacity:.85}
.navbox table{width:100%;border-collapse:collapse}
.navbox th{background:#ecebe2;text-align:right;width:90px;padding:4px 8px;vertical-align:top;
  border-top:1px solid var(--rule);color:#333;font-size:.78rem}
.navbox td{padding:4px 8px;border-top:1px solid var(--rule);line-height:1.7}
.navbox td a,.navbox td span{margin:0 .12em}

footer.pagefoot{border-top:1px solid var(--rule);margin-top:1.6em;padding:10px 26px 26px;
  font-size:.78rem;color:var(--muted)}
footer.pagefoot p{margin:.35em 0}

/* index / list / category pages */
.lead-blurb{font-size:.92rem;color:#333;margin:.4em 0 1em}
.colset{column-width:230px;column-gap:28px}
.colset ul{list-style:none;margin:0;padding:0}
.colset li{margin:.18em 0;break-inside:avoid}
.idx-strand{margin:1.3em 0}
.idx-strand h3{border-bottom:1px solid var(--rule);padding-bottom:.1em}
.idx-strand .more{font-size:.8rem;color:var(--muted)}
.changes{font-size:.86rem;width:100%;border-collapse:collapse}
.changes td{padding:3px 6px;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.changes .when{color:var(--muted);white-space:nowrap;width:120px}
.changes .strand{color:var(--muted);font-size:.78rem}
.diffplus{color:#137a13;font-weight:700}
.empty-note{border:1px solid var(--rule);background:#fbfbf9;padding:14px 16px;margin:1em 0;font-size:.9rem}
.wlh{font-size:.86rem}
.statline{font-size:.78rem;color:var(--muted);margin:.2em 0 0}
#searchresults li{margin:.35em 0}
#searchresults .snip{color:#444;font-size:.85rem}
#searchresults .strand{color:var(--muted);font-size:.76rem}

@media(max-width:820px){
  nav.side{display:none}
  .infobox{float:none;width:auto;margin:1em 0}
}
