@font-face {
  font-family: 'PlexSansVar';
  src: url('/fonts/ibm-plex-sans.woff2') format('woff2-variations');
  font-weight: 100 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'JetBrainsMonoVar';
  src: url('/fonts/jetbrains-mono.woff2') format('woff2-variations');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --bg: #070a0c;
  --bg-2: #0a0e11;
  --panel: #0d1216;
  --panel-2: #11181d;
  --panel-3: #161f26;
  --line: #1e2830;
  --line-soft: #161e24;
  --ink: #e8eff3;
  --ink-2: #9fb2bd;
  --ink-3: #6b8090;
  --acc: #2fd4a1;
  --acc-deep: #157a5d;
  --acc-fade: rgba(47, 212, 161, .14);
  --dim: #52798d;
  --dim-deep: #2b4654;
  --sans: 'PlexSansVar', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'JetBrainsMonoVar', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --wrap: 102.5rem;
  --doc: 50rem;
  --pad: 2rem;
  --r: 10px;
  --r-lg: 14px;
  --sh: 0 1px 1px rgba(0, 0, 0, .5), 0 14px 34px -22px rgba(0, 0, 0, .95);
  --rail-w: 16.5rem;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  background-image:
    radial-gradient(900px 500px at 82% -6%, rgba(47, 212, 161, .07), transparent 62%),
    radial-gradient(700px 420px at 4% 2%, rgba(82, 121, 141, .07), transparent 60%);
  background-attachment: fixed;
  color: var(--ink);
  font: 400 16.5px/1.68 var(--sans);
  -webkit-font-smoothing: antialiased;
}
::selection { background: rgba(47, 212, 161, .26); color: #fff; }
a { color: var(--acc); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
a:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--acc); outline-offset: 3px; border-radius: 3px; }
img, svg { max-width: 100%; }
p, li { margin: 0 0 1rem; }
strong, b { font-weight: 600; }
code { font: .86em var(--mono); background: var(--panel-2); border: 1px solid var(--line-soft); padding: .1em .36em; border-radius: 4px; color: var(--ink-2); }

.shell { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 100vh; }
.column { min-width: 0; display: flex; flex-direction: column; }
main { display: block; flex: 1 1 auto; }

.rail {
  position: relative;
  z-index: 40;
  background: rgba(8, 11, 14, .92);
  backdrop-filter: saturate(150%) blur(12px);
  border-bottom: 1px solid var(--line);
  min-width: 0;
}
.rail-inner { padding: .7rem 1rem .8rem; display: flex; flex-direction: column; gap: .7rem; }
.brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--ink); min-width: 0; }
.brand:hover { text-decoration: none; }
.brand:hover .brand-name { color: var(--acc); }
.brand-glyph { width: 28px; height: 28px; flex: none; }
.brand-text { display: flex; flex-direction: column; min-width: 0; }
.brand-name { font: 600 1rem/1.2 var(--sans); letter-spacing: -.012em; }
.brand-sub { font: 500 .64rem/1.3 var(--mono); letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3); }
.rail-nav { display: flex; gap: .2rem 1rem; overflow-x: auto; white-space: nowrap; padding-bottom: .15rem; }
.rail-nav a {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--ink-2);
  font: 500 .84rem/1.4 var(--sans);
  padding: .22rem 0;
  border-bottom: 2px solid transparent;
}
.rail-nav a:hover { color: var(--ink); text-decoration: none; }
.rail-nav a[aria-current='page'] { color: var(--acc); border-bottom-color: var(--acc); }
.tick { width: 5px; height: 5px; border-radius: 1px; background: var(--dim-deep); flex: none; }
.rail-nav a:hover .tick { background: var(--dim); }
.rail-nav a[aria-current='page'] .tick { background: var(--acc); }
.rail-index { display: flex; gap: .3rem .8rem; overflow-x: auto; white-space: nowrap; align-items: center; padding-bottom: .15rem; }
.rail-index a {
  display: inline-flex;
  align-items: baseline;
  gap: .35rem;
  padding: .2rem .5rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink-2);
  font: 500 .76rem/1.5 var(--sans);
}
.rail-index a:hover { border-color: var(--acc-deep); color: var(--ink); text-decoration: none; }
.ri-n { font: 500 .66rem var(--mono); color: var(--ink-3); }
.ri-s { font: 600 .7rem var(--mono); color: var(--acc); font-variant-numeric: tabular-nums; }
.rail-k { margin: 0; font: 500 .62rem/1.4 var(--mono); letter-spacing: .13em; text-transform: uppercase; color: var(--ink-3); }
.rail-v { margin: 0; font: 400 .78rem/1.45 var(--sans); color: var(--ink-2); }
.rail-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .6rem; }

@media (min-width: 75rem) {
  .shell { grid-template-columns: var(--rail-w) minmax(0, 1fr); }
  .rail {
    position: sticky;
    top: 0;
    align-self: start;
    height: 100vh;
    overflow-y: auto;
    border-bottom: 0;
    border-right: 1px solid var(--line);
    background: linear-gradient(180deg, #0a0e12, #070a0c);
    backdrop-filter: none;
  }
  .rail-inner { padding: 1.5rem 1.3rem 2rem; gap: 1.6rem; height: 100%; }
  .rail-nav { flex-direction: column; gap: .05rem; overflow: visible; white-space: normal; }
  .rail-nav a { padding: .34rem 0; border-bottom: 0; border-left: 2px solid transparent; padding-left: .7rem; }
  .rail-nav a[aria-current='page'] { border-left-color: var(--acc); }
  .rail-index { flex-direction: column; align-items: stretch; gap: .1rem; overflow: visible; white-space: normal; }
  .rail-index a {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: .28rem 0 .28rem .7rem;
    border-left: 2px solid var(--line-soft);
    display: flex;
    gap: .45rem;
    align-items: baseline;
  }
  .rail-index a:hover { border-left-color: var(--acc); background: rgba(47, 212, 161, .05); }
  .rail-index .rail-k { padding: .6rem 0 .35rem; }
  .rail-index .ri-n { width: 1.3rem; flex: none; }
  .rail-index .ri-t { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .rail-index .ri-s { flex: none; }
  .rail-meta { flex-direction: column; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line-soft); gap: 0; }
  .rail-meta .rail-v { margin-bottom: .55rem; }
}

.hero { border-bottom: 1px solid var(--line-soft); }
.hero-grid {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 2.4rem var(--pad) 2.6rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
@media (min-width: 62rem) {
  .hero-grid { grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: 3rem; padding-top: 3.6rem; padding-bottom: 3.4rem; }
}
.kicker {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 1rem;
  padding: .3rem .7rem .3rem .55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink-2);
  font: 500 .68rem/1 var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--acc); box-shadow: 0 0 0 3px rgba(47, 212, 161, .16); }
h1 {
  margin: 0 0 .9rem;
  font: 600 clamp(2rem, 4.6vw, 3.1rem)/1.08 var(--sans);
  letter-spacing: -.028em;
  text-wrap: balance;
}
.standfirst { margin: 0 0 1.5rem; max-width: 34rem; color: var(--ink-2); font-size: 1.06rem; line-height: 1.6; }
.hero-links { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 1.4rem; }
.keylink {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .62rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--acc-deep);
  background: var(--acc-fade);
  color: var(--acc);
  font: 500 .89rem/1 var(--sans);
  transition: transform .13s ease, background .13s ease, border-color .13s ease;
}
.keylink:hover { text-decoration: none; transform: translateY(-1px); background: rgba(47, 212, 161, .2); border-color: var(--acc); }
.keylink.ghost { border-color: var(--line); background: var(--panel); color: var(--ink-2); }
.keylink.ghost:hover { color: var(--ink); border-color: var(--dim); background: var(--panel-2); }
.arr { width: 15px; height: 15px; }
.readline { margin: 0; font: .76rem/1.7 var(--mono); letter-spacing: .02em; color: var(--ink-3); text-transform: uppercase; }
.readline span + span::before { content: "\002F"; margin: 0 .5rem; color: var(--dim-deep); }
.rl-d { color: var(--dim); }
.readline time { color: var(--ink-2); }

.figure {
  margin: 0;
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 1.1rem 1.15rem 1rem;
  box-shadow: var(--sh);
}
.fig-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem .8rem; padding-bottom: .7rem; border-bottom: 1px solid var(--line-soft); }
.fig-title { font: 600 .74rem/1.3 var(--mono); letter-spacing: .11em; text-transform: uppercase; color: var(--ink); }
.fig-tag { font: 400 .72rem/1.3 var(--mono); color: var(--ink-3); }
.figure figcaption { margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--line-soft); font: .76rem/1.6 var(--sans); color: var(--ink-3); }
.bars { padding-top: .5rem; }
.bar-head { display: flex; justify-content: space-between; gap: .6rem; margin: 0 0 .45rem; font: 500 .63rem/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.bar-row {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr) 6.2rem 4.6rem;
  align-items: center;
  gap: .5rem;
  margin: 0;
  padding: .2rem 0;
}
.bar-row:hover .bar-fill { background: var(--acc); }
.bar-row:hover .bar-name { color: var(--ink); }
.bar-name { font: 500 .8rem/1.4 var(--sans); color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-track { height: 9px; border-radius: 3px; background: #121a20; border: 1px solid var(--line-soft); overflow: hidden; }
.bar-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--acc-deep), #28bc8f); transition: background .15s ease; }
.bar-val { font: 600 .78rem/1.3 var(--mono); color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.bar-alt { font: 400 .72rem/1.3 var(--mono); color: var(--dim); text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 47rem) {
  .bar-row {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: 'name val' 'track alt';
    gap: .15rem .6rem;
    padding: .38rem 0;
    border-bottom: 1px solid var(--line-soft);
  }
  .bar-name { grid-area: name; }
  .bar-val { grid-area: val; }
  .bar-track { grid-area: track; }
  .bar-alt { grid-area: alt; }
}

.tiles {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 1.6rem var(--pad) .4rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: .7rem;
}
.tile {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding: .95rem 1rem 1rem;
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 2px solid var(--dim-deep);
  border-radius: var(--r);
  transition: border-top-color .15s ease, transform .15s ease;
}
.tile:hover { border-top-color: var(--acc); transform: translateY(-2px); }
.tile-k { font: 500 .63rem/1.35 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.tile-v { font: 600 1.5rem/1.15 var(--mono); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.tile-n { font: .76rem/1.5 var(--sans); color: var(--ink-3); }

.band { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); }
.head-band { padding-top: 2.2rem; }
.block { max-width: var(--wrap); margin: 0 auto; padding: 2.6rem var(--pad) 0; }
.block-head { margin-bottom: 1rem; }
.doc { max-width: var(--doc); }
.doc.narrow { max-width: 44rem; }
.lede p:first-child { font-size: 1.08rem; color: var(--ink); }
.band .doc { padding-top: 1.6rem; padding-bottom: .5rem; }
.head-band .doc { padding-top: 0; }

h2 { font: 600 1.42rem/1.24 var(--sans); letter-spacing: -.018em; margin: 2.3rem 0 .8rem; }
.block-head h2 { margin-top: 0; }
h2.tag {
  font: 600 .68rem/1.3 var(--mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--acc);
  margin: 0 0 .7rem;
}
h3 { font: 600 1.02rem/1.4 var(--sans); margin: 1.7rem 0 .45rem; letter-spacing: -.006em; }
.lead { font: 1rem/1.62 var(--sans); color: var(--ink-2); max-width: 48rem; margin: 0; }
.note { font: .81rem/1.62 var(--sans); color: var(--ink-3); max-width: 58rem; margin: .85rem 0 0; }
.crumbs { font: .78rem/1.5 var(--mono); color: var(--ink-3); margin: 0 0 .9rem; display: flex; align-items: center; gap: .5rem; }
.crumbs a { color: var(--ink-3); }
.crumbs a:hover { color: var(--acc); }
.sl { width: 10px; height: 1px; background: var(--dim-deep); }

.readout {
  margin: 1.6rem 0 1.8rem;
  padding: 1.15rem 1.3rem .35rem;
  background: linear-gradient(180deg, var(--panel-2), rgba(13, 18, 22, .6));
  border: 1px solid var(--line);
  border-left: 3px solid var(--acc);
  border-radius: 3px var(--r) var(--r) 3px;
}
.answer p { font-size: 1.08rem; line-height: 1.6; color: var(--ink); }
.answer p:last-child { margin-bottom: 1rem; }
.readout.definition { border-left-color: var(--dim); }
.readout.definition h2.tag { color: var(--dim); }

.signals { margin: 1.8rem 0; }
.signal-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: .55rem; }
.signal-list li {
  display: grid;
  grid-template-columns: 1.9rem minmax(0, 1fr);
  gap: .1rem .6rem;
  margin: 0;
  padding: .7rem .85rem .75rem;
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  transition: border-color .15s ease;
}
.signal-list li:hover { border-color: var(--line); }
.sig-n { font: 600 .74rem/1.7 var(--mono); color: var(--acc); font-variant-numeric: tabular-nums; }
.sig-t { font-size: .93rem; line-height: 1.55; color: var(--ink-2); }

.weights {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem .5rem;
  margin: 1.8rem 0 0;
  padding: .7rem 0;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  font: .8rem/1.5 var(--sans);
  color: var(--ink-3);
}
.w-k { font: 500 .64rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-right: .2rem; }
.w-i { display: inline-flex; align-items: baseline; gap: .3rem; padding: .18rem .5rem; border: 1px solid var(--line-soft); border-radius: 999px; background: var(--panel); font-size: .77rem; color: var(--ink-2); }
.w-i b { font: 600 .74rem var(--mono); color: var(--acc); font-variant-numeric: tabular-nums; }
.w-a { margin-left: auto; font-size: .78rem; }

.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background-color: var(--panel);
  background-image:
    linear-gradient(90deg, var(--panel), var(--panel)),
    linear-gradient(90deg, var(--panel), var(--panel)),
    linear-gradient(90deg, rgba(47, 212, 161, 0.22), rgba(47, 212, 161, 0)),
    linear-gradient(270deg, rgba(47, 212, 161, 0.22), rgba(47, 212, 161, 0));
  background-position: left center, right center, left center, right center;
  background-size: 26px 100%, 26px 100%, 24px 100%, 24px 100%;
  background-repeat: no-repeat;
  background-attachment: local, local, scroll, scroll;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--dim-deep) var(--panel-2);
}
.table-wrap::-webkit-scrollbar { height: 9px; }
.table-wrap::-webkit-scrollbar-track { background: var(--panel-2); }
.table-wrap::-webkit-scrollbar-thumb { background: var(--dim-deep); border-radius: 999px; }
.table-wrap::-webkit-scrollbar-thumb:hover { background: var(--acc-deep); }
@media (max-width: 59rem) {
  .table-wrap::before {
    content: "Scroll right for the remaining readings";
    position: sticky;
    left: 0;
    display: block;
    width: max-content;
    max-width: 84vw;
    margin: 0;
    padding: .45rem .8rem .25rem;
    font: 500 .6rem/1.4 var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--acc);
    z-index: 3;
  }
}
.scroller { overflow: auto; }
@media (min-width: 60rem) {
  .scroller { max-height: min(86vh, 52rem); }
}
table { border-collapse: separate; border-spacing: 0; width: 100%; font: .87rem/1.5 var(--sans); }
th, td { text-align: left; padding: .52rem .8rem; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--panel-3);
  color: var(--ink-3);
  font: 500 .66rem/1.35 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
  vertical-align: bottom;
}
tbody th { font-weight: 600; color: var(--ink); white-space: nowrap; }
tbody th a { color: var(--ink); }
tbody th a:hover { color: var(--acc); }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td, tbody tr:hover th { background: rgba(82, 121, 141, .08); }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mono, td.mono { font: .82rem/1.5 var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.monitor { min-width: 44rem; }
.monitor .idx { font: 500 .78rem var(--mono); color: var(--ink-3); width: 2.6rem; }
.monitor .fig { display: block; font: 600 .95rem/1.2 var(--mono); color: var(--ink); font-variant-numeric: tabular-nums; }
.monitor .fig.quiet { font-size: .78rem; font-weight: 400; color: var(--ink-3); }
.meter { display: block; height: 4px; margin-top: .3rem; border-radius: 2px; background: #131c22; overflow: hidden; min-width: 3.2rem; }
.meter span { display: block; height: 100%; background: linear-gradient(90deg, var(--acc-deep), var(--acc)); }
.meter.wide { min-width: 7rem; margin-top: .45rem; }
.meter .alt { background: linear-gradient(90deg, var(--dim-deep), var(--dim)); }
.mix { min-width: 12rem; }
.stack { display: flex; height: 7px; border-radius: 2px; overflow: hidden; background: #131c22; }
.seg { display: block; height: 100%; }
.s-cost { background: #2fd4a1; }
.s-liquidity { background: #2bb7c4; }
.s-custody { background: #4a93cf; }
.s-security { background: #6f84d6; }
.s-coverage { background: #8f77c4; }
.s-access { background: #5d7f92; }
.parts { display: block; margin-top: .35rem; font: .68rem/1.5 var(--mono); color: var(--ink-3); }
.use { min-width: 13rem; white-space: normal; }
tr.off th, tr.off td { color: var(--ink-3); }
tr.off th a { color: var(--ink-2); }
.quiet-cell { color: var(--ink-3); }
.readings { min-width: 50rem; }
.duel { min-width: 34rem; }
.duel tbody th { white-space: normal; min-width: 11rem; color: var(--ink-2); font-weight: 500; }
.duel .score-row td { background: rgba(82, 121, 141, .06); }
.legend { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .8rem 0 0; font: .74rem/1.5 var(--mono); color: var(--ink-3); }
.lg { display: inline-flex; align-items: center; gap: .4rem; }
.sw { width: 9px; height: 9px; border-radius: 2px; }

.wide-figure { margin-top: .4rem; max-width: 52rem; }
.fig-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-top: .4rem; }
.heat { display: block; width: 100%; min-width: 36rem; height: auto; }
.heat .hc { font: 500 10.5px var(--mono); letter-spacing: .05em; fill: #7e94a3; }
.heat .hr { font: 500 12px var(--sans); fill: #9fb2bd; }
.heat .hv { font: 600 11px var(--mono); }
.heat .hv.dark { fill: #06130f; }
.heat .hv.light { fill: #cfe0e8; }

.venue { border-top: 1px solid var(--line-soft); margin-top: 2.6rem; padding-top: 1.5rem; }
.venue:hover {
  border-top-color: var(--acc-deep);
  box-shadow: 0 -1px 14px -7px var(--acc), inset 0 1px 0 var(--acc-fade);
}
.venue h2 { margin-top: .2rem; }
.v-rank { display: flex; align-items: center; gap: .6rem; margin: 0 0 .2rem; }
.v-place { font: 600 .74rem/1 var(--mono); letter-spacing: .08em; color: var(--acc); padding: .28rem .45rem; border: 1px solid var(--acc-deep); border-radius: 4px; background: var(--acc-fade); }
.v-place.quiet { color: var(--ink-3); border-color: var(--line); background: var(--panel); }
.v-tied { font: 500 .66rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.v-score { margin: 0 0 1.1rem; padding: .85rem 1rem .9rem; background: var(--panel); border: 1px solid var(--line-soft); border-radius: var(--r); }
.v-total { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin: 0; }
.v-total b { font: 600 1.9rem/1 var(--mono); color: var(--acc); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.v-total b.quiet { font-size: 1.1rem; color: var(--ink-3); }
.of { font-size: .82rem; color: var(--ink-3); }
.v-link { margin-left: auto; font-size: .78rem; }
.card-parts { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .6rem .9rem; margin-top: .9rem; padding-top: .85rem; border-top: 1px solid var(--line-soft); }
.cp { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .18rem .4rem; align-items: baseline; }
.cp-k { font: 500 .62rem/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-v { font: 600 .74rem/1.3 var(--mono); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.cp-b { grid-column: 1 / -1; height: 3px; border-radius: 2px; background: #131c22; overflow: hidden; }
.cp-b span { display: block; height: 100%; background: var(--dim); }
.venue:hover .cp-b span { background: var(--acc-deep); }

.procon { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .9rem; margin: 1.3rem 0 1.1rem; }
.procon > div { background: var(--panel); border: 1px solid var(--line-soft); border-radius: var(--r); padding: .95rem 1.1rem .35rem; }
.procon h3 { margin: 0 0 .65rem; font: 600 .64rem/1.3 var(--mono); letter-spacing: .13em; text-transform: uppercase; color: var(--ink-3); }
.procon ul { margin: 0; padding: 0; list-style: none; }
.procon li { position: relative; padding-left: 1.05rem; margin: 0 0 .6rem; font-size: .91rem; line-height: 1.55; color: var(--ink-2); }
.procon li::before { content: ''; position: absolute; left: 0; top: .6em; width: 6px; height: 2px; border-radius: 1px; background: var(--acc); }
.procon .con li::before { background: var(--dim); }
.not-for { font-size: .92rem; color: var(--ink-2); }
.not-for b { color: var(--ink); }
.official { font: .8rem/1.5 var(--mono); color: var(--ink-3); }

.faq h3 { font-size: 1rem; margin-top: 1.7rem; padding-left: .85rem; border-left: 2px solid var(--dim-deep); }
.faq p { color: var(--ink-2); }
.signature {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 3rem 0 2.6rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line-soft);
  font: .8rem/1.55 var(--mono);
  color: var(--ink-3);
  flex-wrap: wrap;
}
.sig-mark { width: 14px; height: 6px; border-radius: 1px; background: linear-gradient(90deg, var(--acc), var(--dim)); flex: none; }

blockquote { margin: 1.3rem 0; padding: .1rem 0 .1rem 1.1rem; border-left: 2px solid var(--dim-deep); color: var(--ink-2); font-size: .98rem; }
.doc ul, .doc ol { padding-left: 1.15rem; }
.doc li { color: var(--ink-2); }
.doc .table-wrap { margin: 1rem 0 1.2rem; }
.doc table { min-width: 34rem; }
.doc.sheet { max-width: none; }
.doc.sheet > section, .doc.sheet > .signature { max-width: 44rem; }
.doc.sheet > section.wide-sec { max-width: none; }
.wide-sec > * { max-width: 44rem; }
.wide-sec > .table-wrap { max-width: none; }
.wide-sec h3 { margin-top: 2rem; }

.group-h { font: 600 .68rem/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin: 1.6rem 0 .7rem; }
.cardgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: .7rem; }
.cardgrid.routes { grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.linkcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding: .95rem 2.1rem .95rem 1.05rem;
  background: var(--panel);
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  transition: border-color .15s ease, transform .15s ease, background .15s ease;
}
.linkcard:hover { text-decoration: none; border-color: var(--acc-deep); background: var(--panel-2); transform: translateY(-2px); }
.lc-t { font: 600 .96rem/1.35 var(--sans); color: var(--ink); }
.lc-n { font: .82rem/1.5 var(--sans); color: var(--ink-3); }
.lc-go { position: absolute; right: 1rem; top: 1.15rem; width: 8px; height: 8px; border-right: 1.5px solid var(--ink-3); border-top: 1.5px solid var(--ink-3); transform: rotate(45deg); }
.linkcard:hover .lc-go { border-color: var(--acc); }

footer { border-top: 1px solid var(--line-soft); background: linear-gradient(180deg, rgba(10, 14, 17, .6), #050709); margin-top: 3.5rem; }
.foot-inner { max-width: var(--wrap); margin: 0 auto; padding: 2.2rem var(--pad) 2.6rem; }
.foot-mark { margin: 0 0 1rem; font: 600 .7rem/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-2); }
.foot-map { display: flex; flex-wrap: wrap; gap: .45rem 1.4rem; padding-bottom: 1.3rem; border-bottom: 1px solid var(--line-soft); margin-bottom: 1.2rem; }
.foot-map a { font: .83rem/1.5 var(--sans); color: var(--ink-3); }
.foot-map a:hover { color: var(--acc); }
.foot-note { max-width: 56rem; font: .78rem/1.65 var(--sans); color: var(--ink-3); margin: 0 0 .7rem; }

@media (max-width: 47rem) {
  :root { --pad: 1rem; }
  body { font-size: 16px; }
  h1 { font-size: clamp(1.75rem, 7.4vw, 2.3rem); }
  h2 { font-size: 1.24rem; }
  .tile-v { font-size: 1.3rem; }
  .v-total b { font-size: 1.6rem; }
  .signal-list { grid-template-columns: minmax(0, 1fr); }
  .rail-inner { padding: .6rem 1rem .65rem; gap: .55rem; }
  .brand-glyph { width: 24px; height: 24px; }
  .figure { padding: .9rem .85rem .85rem; }
  .v-link { margin-left: 0; }
}

@media (max-width: 47rem) {
  .monitor.monitor-rank thead th,
  .monitor.monitor-rank tbody th,
  .monitor.monitor-rank tbody td { white-space: nowrap; }
  .monitor.monitor-rank .use { min-width: 0; white-space: nowrap; }
}

@media (max-width: 47rem) {
  .brand-sub, .ri-n, .rail-k, .kicker, .bar-head, .tile-k, h2.tag,
  .w-k, thead th, .parts, .v-tied, .cp-k, .procon h3, .group-h { font-size: 11px; }
  .rail-k { letter-spacing: .117em; }
  .cp-k { letter-spacing: .09em; }
  .heat .hc, .heat .hv { font-size: 11.5px; }
}
