/* ─────────────────────────────────────────────────────────────
   NIGHT ATLAS — shared sheet
   The causal graph drawn as a survey of a hidden network.
   Colour is semantic only:
     signal (cyan)  = verified line, source on file
     slate dotted   = asserted line, source owed
     amber star     = root, where lines terminate
     ring           = mechanism (interchange)
     ember          = symptom (surface station)
   ───────────────────────────────────────────────────────────── */
:root{
  --ground:#060A13;
  --ground-2:#0A1120;
  --panel:#0D1527;
  --grid:rgba(120,150,210,.07);
  --rule:#1C2742;
  --rule-2:#2A3757;
  --ink:#E4E9F4;
  --ink-2:#AEB8CE;
  --ink-3:#7C88A3;
  --signal:#86E1FF;          /* verified */
  --signal-dim:rgba(134,225,255,.16);
  --owed:#7484A8;            /* asserted */
  --star:#F4C46A;            /* root */
  --ember:#FF8A73;           /* symptom */
  --ring:#E4E9F4;            /* mechanism */

  --sans:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --measure:36rem;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--ground)}
body{
  margin:0;color:var(--ink);font-family:var(--sans);font-size:1.0625rem;
  line-height:1.6;font-weight:400;
  background-color:var(--ground);
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:64px 64px;
  background-position:-1px -1px;
}
::selection{background:var(--signal);color:var(--ground)}
a{color:var(--signal);text-decoration:none;border-bottom:1px solid rgba(134,225,255,.35)}
a:hover{border-bottom-color:var(--signal)}
:where(a,button):focus-visible{outline:2px solid var(--signal);outline-offset:3px}

.wrap{max-width:76rem;margin:0 auto;padding:0 2rem}
@media (max-width:640px){.wrap{padding:0 1rem}}

.mono,.tag{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);font-weight:500}
.tag b{color:var(--ink);font-weight:500}

h1,h2,h3{font-family:var(--sans);margin:0;letter-spacing:-.02em;line-height:1.05;font-weight:600}
p{margin:0 0 1rem;max-width:var(--measure);color:var(--ink-2)}
p strong{color:var(--ink);font-weight:600}

/* ── top bar: survey sheet header ── */
.sheetbar{border-bottom:1px solid var(--rule);background:rgba(6,10,19,.82);
  backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}
.sheetbar .wrap{display:flex;gap:.5rem 2rem;align-items:center;justify-content:space-between;
  min-height:3.25rem;flex-wrap:wrap;padding-top:.5rem;padding-bottom:.5rem}
.brand{font-family:var(--mono);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);border:0;display:flex;align-items:center;gap:.6rem}
.brand svg{flex:none}
.sheetbar nav{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
.sheetbar nav a{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);border:0}
.sheetbar nav a:hover,.sheetbar nav a[aria-current]{color:var(--signal)}

/* ── section frame: map-sheet panels with coordinate tags ── */
.panel{border-top:1px solid var(--rule);padding:4.5rem 0}
.panel-head{display:grid;grid-template-columns:12rem 1fr;gap:2rem;margin-bottom:2.4rem;align-items:baseline}
.panel-head .tag{color:var(--signal)}
.panel-head h2{font-size:clamp(1.6rem,3.2vw,2.4rem);max-width:22ch}
@media (max-width:760px){
  .panel{padding:3rem 0}
  .panel-head{grid-template-columns:1fr;gap:.6rem}
}

/* ── map svg ── */
.map{display:block;width:100%;height:auto;overflow:visible}
.map .lbl{font-family:var(--sans);font-size:13px;font-weight:500;fill:var(--ink);
  paint-order:stroke;stroke:var(--ground);stroke-width:6px;stroke-linejoin:round}
.map .lbl.sub{font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;fill:var(--ink-3);font-weight:500}
.map .lbl.root{fill:var(--star)}
.map .lbl.symptom{fill:#FFC2B6}
.map .lbl.focus{font-size:16px;font-weight:700;fill:#fff}
.map .lbl.dim{fill:var(--ink-3)}
.map .e-v{stroke:var(--signal);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.map .e-v-glow{stroke:var(--signal);stroke-width:9;fill:none;opacity:.10;stroke-linejoin:round}
.map .e-a{stroke:var(--owed);stroke-width:2.4;fill:none;stroke-dasharray:.1 7;stroke-linecap:round;stroke-linejoin:round}
.map .dim .e-v{stroke-width:2;opacity:.45}
.map .dim .e-v-glow{opacity:0}
.map .dim .e-a{opacity:.6}
.map .pulse{stroke:#fff;stroke-width:3.2;fill:none;stroke-linecap:round;stroke-dasharray:1 60;opacity:0}
@media (prefers-reduced-motion:no-preference){
  .map .pulse{opacity:.85;animation:pulse 7s linear infinite}
  @keyframes pulse{to{stroke-dashoffset:-122}}
}
.map .n-mech{fill:var(--ground);stroke:var(--ring);stroke-width:2.6}
.map .n-sym{fill:var(--ember);stroke:var(--ground);stroke-width:3}
.map .n-sym-ring{fill:none;stroke:var(--ember);stroke-width:1.4;opacity:.55}
.map .n-root{fill:var(--star)}
.map .n-focus{fill:var(--ground);stroke:#fff;stroke-width:3.2}
.map .n-focus-ring{fill:none;stroke:var(--signal);stroke-width:1;opacity:.6}
.map .dimnode{opacity:.55}
.map a{border:0;cursor:pointer}
.map a:hover .lbl{fill:var(--signal)}

/* ── legend chips ── */
.key{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;align-items:center}
.key span{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--mono);
  font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.ln{display:inline-block;width:2.4rem;height:0;flex:none}
.ln.v{border-top:3px solid var(--signal);box-shadow:0 0 8px rgba(134,225,255,.45)}
.ln.a{border-top:3px dotted var(--owed)}
.dot{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
.dot.root{background:var(--star);box-shadow:0 0 10px 2px rgba(244,196,106,.55)}
.dot.mech{border:2.5px solid var(--ring);background:var(--ground)}
.dot.sym{background:var(--ember);box-shadow:0 0 0 3px var(--ground),0 0 0 4px rgba(255,138,115,.55)}
.dot.ext{width:10px;height:10px;border-radius:0;transform:rotate(45deg);border:2px solid var(--ink-3)}

/* ── confidence pills ── */
.conf{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);
  font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;white-space:nowrap}
.conf.v{color:var(--signal)}
.conf.a{color:var(--owed)}
.conf .ln{width:1.6rem}

/* ── buttons ── */
.go{display:inline-flex;align-items:center;gap:.8rem;font-family:var(--mono);font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ground);background:var(--signal);
  border:0;padding:.95rem 1.3rem;min-height:44px;font-weight:600}
.go:hover{background:#fff;border:0}
.go.ghost{background:transparent;color:var(--signal);box-shadow:inset 0 0 0 1px rgba(134,225,255,.5)}
.go.ghost:hover{background:rgba(134,225,255,.08)}

footer.foot{border-top:1px solid var(--rule);padding:2rem 0 3rem}
footer.foot .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}

/* ── cover (from the prototype) ── */
/* ── hero ── */
.hero{padding:4.5rem 0 1.5rem}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:3rem;align-items:end}
.hero .tag.first{color:var(--signal);margin-bottom:1.6rem;display:block}
h1{font-size:clamp(2.9rem,8vw,6.6rem);font-weight:600;letter-spacing:-.045em;line-height:.92}
h1 .thin{font-weight:300;color:var(--ink-3);display:block;font-size:.42em;letter-spacing:-.02em;margin-top:.9rem;line-height:1.1}
.standfirst{font-size:clamp(1.0625rem,1.6vw,1.25rem);color:var(--ink-2);max-width:32rem;font-weight:300;margin:0}

.ledger{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);background:rgba(10,17,32,.7)}
.ledger div{padding:1rem 1.1rem;border-right:1px solid var(--rule)}
.ledger div:last-child{border-right:0}
.ledger .num{font-family:var(--mono);font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:500;color:var(--ink);letter-spacing:-.02em;line-height:1.1;display:block}
.ledger .num.v{color:var(--signal)}
.ledger .num.a{color:var(--owed)}
.ledger .tag{display:block;margin-top:.35rem;font-size:.625rem}

/* ── the sheet (map frame) ── */
.sheet{position:relative;margin:2.6rem 0 0;border:1px solid var(--rule-2);
  background:radial-gradient(ellipse 70% 60% at 55% 45%,rgba(40,70,130,.16),transparent 70%),rgba(6,10,19,.6);
  padding:2.2rem 2rem 1.6rem}
.sheet::before,.sheet::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--signal);opacity:.7}
.sheet::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.sheet::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.sheet-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 2rem;margin-bottom:1rem}
.sheet-head .tag b{color:var(--signal)}
.ticks{position:absolute;inset:0;pointer-events:none;
  background:
   repeating-linear-gradient(90deg,var(--rule-2) 0 1px,transparent 1px 64px) top/100% 6px no-repeat,
   repeating-linear-gradient(90deg,var(--rule-2) 0 1px,transparent 1px 64px) bottom/100% 6px no-repeat,
   repeating-linear-gradient(0deg,var(--rule-2) 0 1px,transparent 1px 64px) left/6px 100% no-repeat,
   repeating-linear-gradient(0deg,var(--rule-2) 0 1px,transparent 1px 64px) right/6px 100% no-repeat}
.sheet-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem 2rem;
  border-top:1px solid var(--rule);margin-top:1.2rem;padding-top:1.1rem}
.sheet-foot p{font-size:.875rem;margin:0;max-width:44rem;color:var(--ink-3)}
@media (max-width:640px){
  .hero{padding:2.6rem 0 1rem}
  .hero-grid{grid-template-columns:1fr;gap:2rem}
  .sheet{padding:1.4rem .7rem 1rem;margin-top:2rem}
  .sheet-head,.sheet-foot{padding:0 .3rem}
}

/* ── how to read ── */
.read-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule)}
.read-grid > div{padding:1.6rem 1.5rem;border-right:1px solid var(--rule)}
.read-grid > div:last-child{border-right:0}
.read-grid h3{font-size:1.25rem;margin:.9rem 0 .5rem;display:flex;align-items:center;gap:.7rem}
.read-grid p{font-size:.9375rem;margin:0}
.lines-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule);border-top:0}
.lines-grid > div{padding:1.6rem 1.5rem;border-right:1px solid var(--rule)}
.lines-grid > div:last-child{border-right:0}
.lines-grid h3{font-size:1.25rem;margin:.9rem 0 .5rem}
.lines-grid p{font-size:.9375rem;margin:0}
.lines-grid .ln{width:5rem}
@media (max-width:760px){
  .read-grid,.lines-grid{grid-template-columns:1fr}
  .read-grid > div,.lines-grid > div{border-right:0;border-bottom:1px solid var(--rule)}
  .read-grid > div:last-child,.lines-grid > div:last-child{border-bottom:0}
}
.nb{margin-top:2rem;font-size:.9375rem;color:var(--ink-3);max-width:44rem;border-left:2px solid var(--star);padding-left:1rem}
.nb b{color:var(--star);font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;font-weight:500}

/* ── terminals (root convergence) ── */
.terminals{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.terminals li{display:grid;grid-template-columns:2rem minmax(10rem,17rem) 1fr 3.2rem;gap:1rem;align-items:center;
  padding:.85rem 0;border-bottom:1px solid var(--rule)}
.terminals .rk{font-family:var(--mono);font-size:.6875rem;color:var(--ink-3)}
.terminals .nm{font-weight:500;color:var(--ink);display:flex;align-items:center;gap:.7rem;line-height:1.25}
.terminals .nm small{display:block;font-family:var(--mono);font-size:.625rem;letter-spacing:.1em;color:var(--ink-3);text-transform:uppercase;font-weight:400;margin-top:.15rem}
.terminals .bar{height:10px;position:relative}
.terminals .bar i{position:absolute;left:0;top:0;bottom:0;
  background:radial-gradient(circle,var(--star) 1.6px,transparent 2.2px) 0 50%/7px 10px repeat-x;
  filter:drop-shadow(0 0 3px rgba(244,196,106,.5))}
.terminals .ct{font-family:var(--mono);font-size:1rem;text-align:right;color:var(--ink)}
.terminals li.outside .nm{color:var(--ink-2)}
.terminals li.outside .bar i{background:radial-gradient(circle,var(--ink-3) 1.4px,transparent 2px) 0 50%/7px 10px repeat-x;filter:none}
.terminals .dot{width:10px;height:10px}
@media (max-width:640px){
  .terminals li{grid-template-columns:1.4rem 1fr 2.4rem;row-gap:.45rem}
  .terminals .bar{grid-column:2 / 4;grid-row:2}
  .terminals .ct{grid-column:3;grid-row:1}
}
.after-note{margin-top:1.4rem;font-size:.9375rem;color:var(--ink-3)}

/* ── ledger strip: 200 lines, one tick each ── */
.strip{display:grid;grid-template-columns:repeat(50,1fr);gap:4px 3px;margin:0 0 1.4rem}
.strip i{height:22px;display:block}
.strip i.v{background:var(--signal);box-shadow:0 0 6px rgba(134,225,255,.45);width:3px;margin:auto}
.strip i.a{background:radial-gradient(circle,var(--owed) 1.4px,transparent 1.9px) 50% 0/3px 6px repeat-y;width:3px;margin:auto}
@media (max-width:640px){.strip{grid-template-columns:repeat(25,1fr)}}
.strip-key{display:flex;gap:1rem 2.4rem;flex-wrap:wrap;align-items:baseline}
.strip-key .big{font-family:var(--mono);font-size:2rem;font-weight:500}
.strip-key .big.v{color:var(--signal)}
.strip-key .big.a{color:var(--owed)}

/* ── enter ── */
.enter{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem;align-items:center}
.enter h2{font-size:clamp(1.8rem,4vw,3rem)}
.enter .actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.4rem}
@media (max-width:760px){.enter{grid-template-columns:1fr;gap:1.5rem}}

/* ── station sheet (from the prototype) ── */
.crumb{padding:2.2rem 0 0;display:flex;gap:.5rem 1rem;flex-wrap:wrap}
.crumb a{border:0;color:var(--ink-3)}
.crumb a:hover{color:var(--signal)}
.crumb .sep{color:var(--rule-2)}

.station-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:3rem;padding:2rem 0 2.4rem;align-items:end}
.station-head h1{font-size:clamp(2.4rem,6vw,5rem);font-weight:600;letter-spacing:-.04em;line-height:.95}
.station-head h1 .and{display:block;font-weight:300;color:var(--ink-3);font-size:.44em;letter-spacing:-.02em;margin-top:.7rem;line-height:1.15}
.def{font-size:1.25rem;font-weight:300;color:var(--ink);margin:0;max-width:30rem;border-left:2px solid var(--signal);padding-left:1rem}
.aka{margin-top:1.2rem;display:flex;flex-wrap:wrap;gap:.4rem}
.aka span{font-family:var(--mono);font-size:.6875rem;color:var(--ink-3);border:1px solid var(--rule-2);padding:.2rem .5rem}

.meta{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--rule);background:rgba(10,17,32,.7)}
.meta div{padding:.85rem 1rem;border-right:1px solid var(--rule)}
.meta div:last-child{border-right:0}
.meta .tag{display:block;font-size:.5625rem;margin-bottom:.3rem}
.meta b{font-family:var(--mono);font-weight:500;font-size:.9375rem;color:var(--ink)}
.meta b.v{color:var(--signal)}
.meta b.a{color:var(--owed)}
@media (max-width:760px){
  .station-head{grid-template-columns:1fr;gap:1.4rem}
  .meta{grid-template-columns:repeat(2,1fr)}
  .meta div{border-bottom:1px solid var(--rule)}
  .meta div:nth-child(2n){border-right:0}
  .meta div:last-child{grid-column:1/-1;border-bottom:0}
}

.sheet{position:relative;border:1px solid var(--rule-2);margin-top:1.6rem;
  background:radial-gradient(ellipse 40% 60% at 50% 50%,rgba(134,225,255,.07),transparent 70%),rgba(6,10,19,.6);
  padding:1.6rem 2rem 1.2rem}
.sheet-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem 2rem;margin-bottom:.6rem}
.sheet-head .tag b{color:var(--signal)}
.sheet .dirs{display:flex;justify-content:space-between;margin-top:.4rem}
@media (max-width:640px){.sheet{padding:1.2rem .6rem 1rem}.sheet .dirs{display:none}}

/* ── lines in / out ── */
.lines{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--rule)}
.lines > section{padding:1.6rem 1.6rem 1.8rem}
.lines > section + section{border-left:1px solid var(--rule)}
.lines h3{font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-bottom:1.2rem;display:flex;justify-content:space-between}
.edge{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--rule)}
.edge svg{display:block;margin-top:.3rem}
.edge .who{font-size:1.125rem;font-weight:600;color:var(--ink);border:0;display:inline-block;margin:.25rem 0 .4rem}
.edge .who:hover{color:var(--signal)}
.edge p{font-size:.9375rem;margin:0}
.edge.asserted .who{color:var(--ink-2)}
.edge .owe{display:block;margin-top:.6rem;font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--owed)}
@media (max-width:760px){.lines{grid-template-columns:1fr}.lines > section + section{border-left:0;border-top:1px solid var(--rule)}}

/* ── prose ── */
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.two h3{font-size:1.375rem;margin:.7rem 0 .9rem}
.two .tag{color:var(--signal)}
@media (max-width:760px){.two{grid-template-columns:1fr;gap:2rem}}

/* ── sources ── */
.sources{}
@media (max-width:760px){.sources{columns:1}}
.src-group{break-inside:avoid;margin-bottom:1.8rem}
.src-group h4{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);margin:0 0 .6rem;font-weight:500}
.src-group ul{list-style:none;margin:0;padding:0}
.src-group li{font-size:.875rem;color:var(--ink-2);padding:.45rem 0;border-top:1px solid var(--rule);line-height:1.45}
.src-group li .d{display:block;font-family:var(--mono);font-size:.6875rem;color:var(--ink-3);margin-top:.15rem;overflow-wrap:anywhere}
.src-group li.flag{color:var(--owed)}

.next{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.next a{display:block;border:1px solid var(--rule-2);padding:1.2rem 1.3rem;color:var(--ink)}
.next a:hover{border-color:var(--signal);background:rgba(134,225,255,.04)}
.next .tag{display:block;margin-bottom:.4rem}
.next b{font-size:1.125rem;font-weight:600}
.next a:last-child{text-align:right}
@media (max-width:640px){.next{grid-template-columns:1fr}.next a:last-child{text-align:left}}

/* ── A/B build additions ── */
.map .e-d{stroke:var(--star);stroke-width:2.2;fill:none;stroke-dasharray:2 6;stroke-linecap:round}
.map .n-ext{fill:var(--ground);stroke:var(--ink-3);stroke-width:2;stroke-dasharray:3 3}
.map .n-mech.stub{stroke-dasharray:3 3}
.ln.d{border-top:3px dotted var(--star)}
.conf.d{color:var(--star)}
.none{color:var(--ink-3);font-style:italic}
.panel.prose .panel-head h2{display:none}
.panel-head > div p,.panel-head > div li,.two p,.two li{color:var(--ink-2)}
.panel-head > div ul,.panel-head > div ol,.two ul,.two ol{padding-left:1.1rem;max-width:46rem}
.panel-head > div li,.two li{margin-bottom:.5rem;line-height:1.55}
.panel-head > div b,.two b{color:var(--ink)}
.panel h4{font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);margin:1.6rem 0 .6rem;font-weight:500}
blockquote{margin:1rem 0;padding:.9rem 1.1rem;border-left:2px solid var(--signal);background:rgba(134,225,255,.04);max-width:46rem}
blockquote p{margin:0 0 .5rem}
.tbl{overflow-x:auto;margin:1rem 0 1.4rem}
.tbl table{border-collapse:collapse;font-size:.875rem}
.tbl th,.tbl td{border:1px solid var(--rule-2);padding:.4rem .6rem;text-align:left;vertical-align:top;color:var(--ink-2)}
.tbl th{color:var(--ink);font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;font-weight:500}
.sources ul{padding-left:1.1rem}
.sources li{font-size:.9rem;color:var(--ink-2);margin-bottom:.55rem;line-height:1.5}
.sources a,.panel a{overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.chip-a{display:inline-flex;align-items:center;gap:.55rem;border:1px solid var(--rule-2);padding:.45rem .8rem;color:var(--ink);font-size:.9rem}
.chip-a:hover{border-color:var(--signal);background:rgba(134,225,255,.05)}
.chip-a .dot{width:9px;height:9px}
.index{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;border-top:1px solid var(--rule);padding-top:1.4rem}
.ix .tag{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem;color:var(--ink-2)}
.ix ul{list-style:none;margin:0;padding:0}
.ix li{padding:.35rem 0;border-bottom:1px solid var(--rule);line-height:1.3;font-size:.92rem}
.ix a{border:0;color:var(--ink)}
.ix a:hover{color:var(--signal)}
.ix .st{font-size:.55rem}
.mapwrap{overflow:auto;border:1px solid var(--rule-2);background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(40,70,130,.14),transparent 70%),rgba(6,10,19,.6);max-height:80vh;-webkit-overflow-scrolling:touch}
#full .e{opacity:.7;transition:opacity .15s}
#full.hot .e{opacity:.06}
#full.hot .e.on{opacity:1}
.map{width:100%;height:auto;display:block}
.ab{position:fixed;right:1rem;bottom:1rem;z-index:60;background:var(--signal);color:var(--ground);padding:.5rem .8rem;border:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 0 14px rgba(134,225,255,.4)}
.ab:hover{background:#fff;border:0}
@media (max-width:900px){.index{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.index{grid-template-columns:1fr}}

@media (max-width:640px){.ab{right:.5rem;bottom:.5rem;padding:.35rem .55rem;font-size:.55rem;letter-spacing:.1em}}

/* ───── diagnosis + about pages ───── */
.dg{border-top:1px solid var(--rule);padding:1.4rem 0 .8rem}
.dg summary{display:grid;grid-template-columns:2.6rem 1fr;gap:.5rem 1rem;align-items:center;cursor:pointer;list-style:none}
.dg summary::-webkit-details-marker{display:none}
.dg .rk{font-family:var(--mono);color:var(--ink-3);font-size:.8rem}
.dg .nm{font-size:clamp(1.15rem,2.6vw,1.5rem);font-weight:600;color:var(--ink);display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.dg .nm small{flex-basis:100%;font-size:.8rem;font-weight:400;color:var(--ink-3)}
.dg .bar,.dg .ct{grid-column:2}
.dg .bar{display:block;height:4px;background:var(--rule)}
.dg .bar i{display:block;height:100%;background:var(--signal);box-shadow:0 0 10px rgba(134,225,255,.5)}
.dg summary::after{content:"Show routes +";grid-column:2;font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}
.dg[open] summary::after{content:"Hide routes −"}
.dg > p{margin:1rem 0 1rem 3.6rem}
.routes{list-style:none;margin:0 0 1rem 3.6rem;padding:0;display:grid;gap:.5rem}
.routes li{line-height:1.6;padding:.5rem .8rem;border-left:2px solid var(--rule);color:var(--ink-2)}
.routes li a{border:0;color:var(--ink)}
.routes li a:first-child{color:var(--signal);font-weight:600}
.arr{display:inline-block;margin:0 .45rem;font-family:var(--mono)}
.arr.v{color:var(--signal);text-shadow:0 0 8px rgba(134,225,255,.6)}
.arr.a{color:var(--ink-3)}
@media (max-width:640px){.dg > p,.routes{margin-left:0}}
.about ol{padding-left:1.3rem;display:grid;gap:1rem;max-width:var(--measure)}
.about li{color:var(--ink-2)}
.about li b{color:var(--ink);font-weight:600}
.about h3{margin:2.6rem 0 .8rem;font-size:1.2rem;color:var(--ink)}
main li,main p,main td,.sources,.why{overflow-wrap:anywhere}
