.crumb{font-size:13.5px;color:var(--mute);margin:6px 0 34px;display:flex;gap:10px}
.top{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:72px;align-items:start}
.status{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.status .why{font-size:14px;color:var(--mute)}
h1{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(56px,6.5vw,92px);line-height:.94;letter-spacing:-.025em;margin:0 0 28px;text-wrap:balance}
h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}h1 .w span{display:inline-block}
.meta{display:flex;flex-wrap:wrap;gap:16px 36px;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-bottom:32px}
.meta div{display:flex;flex-direction:column;gap:5px;font-size:15px}
.lede{font-size:22px;line-height:1.45;max-width:640px;margin:0 0 18px;text-wrap:pretty;letter-spacing:-.005em}
.sub{font-size:17px;color:var(--mute);max-width:600px;margin:0 0 48px;text-wrap:pretty}
/* provenance block — dignified, not a warning box */
.provblock{max-width:720px;margin:0 0 48px;padding:30px 34px;background:var(--prov);border-radius:14px;display:grid;grid-template-columns:150px minmax(0,1fr);gap:26px}
.provblock .h{font-family:"Instrument Serif",serif;font-size:30px;line-height:1;letter-spacing:-.02em}
.provblock .h small{display:block;font-family:"Instrument Sans",sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mute);margin-bottom:10px}
.provblock dl{margin:0;display:grid;grid-template-columns:auto;gap:12px}
.provblock dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mute);margin-bottom:2px}
.provblock dd{margin:0;font-size:15.5px;line-height:1.5;text-wrap:pretty}
.quote{position:relative;padding:40px 44px 34px;background:var(--card);border:1px solid var(--line);border-radius:14px;margin:0 0 48px;max-width:760px}
.quote .q{font-family:"Instrument Serif",serif;font-size:clamp(26px,2.6vw,36px);line-height:1.2;letter-spacing:-.015em;margin:12px 0 22px;text-wrap:pretty}
.quote .src{font-size:14px;color:var(--mute);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.quote .src a{color:var(--ink);border-bottom:1px solid var(--line)}
.quote .mark{position:absolute;left:-1px;top:36px;width:3px;height:44px;background:var(--ink)}
.quote.pending{border-style:dashed;background:transparent}
.quote.pending .q{color:var(--mute);font-style:italic;font-size:22px}
.also{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13.5px}
.also span{color:var(--mute);margin-right:4px}
.also a{padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.also a:hover{border-color:var(--ink)}
.routes{position:sticky;top:24px;display:flex;flex-direction:column;gap:14px}
.rbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px 26px 22px}
.rbox h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:32px;line-height:1;letter-spacing:-.02em;margin:0 0 6px}
.rbox .sub2{font-size:13.5px;color:var(--mute);margin-bottom:18px}
.route{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:16px 0;border-top:1px solid var(--line)}
.route .i{font-family:"Instrument Serif",serif;font-size:26px;line-height:1;color:var(--mute)}
.route .t{font-weight:500;font-size:16px;line-height:1.3}
.route .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-bottom:4px;display:flex;justify-content:space-between}
.route .k em{font-style:normal;font-weight:500;letter-spacing:0;text-transform:none;font-size:12px;color:var(--acc)}
.route .w{font-size:13.5px;color:var(--mute);margin-top:3px;line-height:1.45}
.route.first{background:var(--bg);margin:0 -14px;padding:16px 14px;border-radius:10px;border-top:0}
.route.first .i{color:var(--acc)}
.route.voice{background:var(--prov);margin:0 -14px;padding:16px 14px;border-radius:10px;border-top:0}
.rbox .btn{display:flex;width:100%;margin-top:12px}
.fine{font-size:12.5px;color:var(--mute);margin-top:12px;line-height:1.5}
.mini{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
#mini{display:block;width:100%;height:220px}
.mini .cap{display:flex;justify-content:space-between;padding:12px 18px;font-size:13px;color:var(--mute);border-top:1px solid var(--line)}
.mini .land{fill:var(--land);stroke:var(--card)}
.pin{fill:var(--acc);stroke:var(--card);stroke-width:2}
.labels{margin:80px 0 80px;padding:44px 0 0;border-top:1px solid var(--ink)}
.labels h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:44px;line-height:1;letter-spacing:-.02em;margin:6px 0 28px}
.lgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.lgrid div{padding:18px 18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:14px;line-height:1.45;color:var(--mute)}
.lgrid div .tag{display:flex;width:fit-content;margin-bottom:12px}
.provnote{margin-top:14px;padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.provnote p{margin:0;font-size:15px;line-height:1.55;color:var(--mute);text-wrap:pretty}
.provnote a{color:var(--acc);font-weight:500}
/* Scroll-reveal sections. Same progressive-enhancement change as shared.css:
   the comp hid these unconditionally, so the routes panel, labels and map
   inset were invisible with JS off. Hidden only when JS is present to reveal
   them. */
.rv{opacity:1;transform:none}
html.js .rv{opacity:0;transform:translateY(18px)}
.qtoggle{margin:-36px 0 48px;font:500 12.5px "Instrument Sans",sans-serif;color:var(--mute);background:transparent;border:1px dashed var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.qtoggle:hover{border-color:var(--ink);color:var(--ink)}

/* harm_caveat (ADR-0006): folklore harming identifiable living people now.
   No approved comp exists for this block, so it is built only from existing
   tokens and kept deliberately plain. Two rules it must keep whatever the
   eventual design: it sits in the body at full reading size, and it is never
   collapsed, truncated or moved to the foot of the page. */
.harm{margin:4px 0 26px;padding:14px 18px;border-left:3px solid var(--ink);background:var(--prov);border-radius:0 6px 6px 0;max-width:720px}
.harm .label{display:block;margin-bottom:6px;color:var(--ink)}
.harm p{margin:0;font-size:16.5px;line-height:1.55;text-wrap:pretty}

/* #5 — four kinds of where. The note under a non-real place is small but
   always present: it is what tells placed fiction from a pin. */
.meta .where small{font-size:12.5px;color:var(--mute);max-width:280px;line-height:1.4}
.mini .fpin{fill:var(--card);stroke:var(--ink);stroke-width:1.5;stroke-dasharray:2.5 2}

/* #7 — the one layout breakpoint in Phase 1. The entry page is where search
   lands, so below ~900px it stacks: article, then routes, then the map.
   Every rule is scoped to body.page-entry: /labels loads this stylesheet
   too, and no other page gets a breakpoint until the Phase 2 pass. */
@media(max-width:900px){
  .page-entry .wrap{padding:0 20px}
  .page-entry header{flex-wrap:wrap;gap:8px 20px}
  .page-entry nav{gap:18px;font-size:14px;flex-wrap:wrap}
  .page-entry .top{grid-template-columns:minmax(0,1fr);gap:40px}
  .page-entry .routes{position:static}
  .page-entry h1{font-size:clamp(40px,11vw,56px);overflow-wrap:anywhere}
  .page-entry .lede{font-size:19px}
  .page-entry .provblock{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 22px}
  .page-entry .provnote{grid-template-columns:minmax(0,1fr);gap:12px}
  .page-entry .quote{padding:30px 24px 26px}
  .page-entry .labels h2{font-size:34px}
}

/* #15 — connections. No approved comp; built from existing tokens. */
.connections{max-width:720px;margin:0 0 48px;padding-top:26px;border-top:1px solid var(--line)}
.connections .label{display:block;margin-bottom:14px}
.connections p{margin:0 0 10px;font-size:16px;line-height:1.5;text-wrap:pretty}
.connections a{border-bottom:1px solid var(--line)}
.connections a:hover{border-color:var(--ink)}
.connections .cnote,.connections .contested{color:var(--mute)}
.rels{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.rels li{display:flex;gap:12px;font-size:15.5px}
.rels .k{min-width:120px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mute);padding-top:4px}
.motif{margin-top:22px;padding:22px 24px;background:var(--card);border:1px solid var(--line);border-radius:12px}
.motif h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:26px;line-height:1.1;margin:0 0 6px}
.motif .mdesc{color:var(--mute);font-size:14.5px}
.motif ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;font-size:15px;line-height:1.45}

.also{max-width:760px;margin:-24px 0 48px}.also ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}.also li{font-size:15px}.also li span{color:var(--mute)}.also a{border-bottom:1px solid var(--line)}
