:root{--fg:#33ff66;--dim:#1a8038;--amber:#ffb000;--bg:#020a04;--red:#ff5a5a}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg)}
body{color:var(--fg);font-family:"VT323",ui-monospace,Menlo,monospace;font-size:1.55rem;
  line-height:1.5;text-shadow:0 0 6px var(--fg);position:relative;min-height:100vh}
/* Bold: VT323 has no bold face — synthetic bold smears. Emphasize with amber
   (normal weight, tight glow) instead. Verdict cells keep their own colour. */
strong{font-weight:normal;color:var(--amber);text-shadow:0 0 4px var(--amber)}
.verdicts strong{color:inherit;text-shadow:inherit}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.28) 3px,rgba(0,0,0,0) 4px)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.04) 0%,rgba(0,0,0,0) 55%,rgba(0,0,0,.55) 100%)}
main{max-width:64rem;margin:0 auto;padding:1rem 1.5rem 5rem;position:relative;z-index:1}
a{color:var(--fg)}a:hover{color:var(--amber);text-shadow:0 0 6px var(--amber)}
h1,h2,h3{font-weight:normal;letter-spacing:.05em}
h1{font-size:clamp(2rem,6vw,3.4rem);margin:1.5rem 0 .3rem;min-height:1.2em}
h2{color:var(--amber);text-shadow:0 0 6px var(--amber);font-size:1.7rem;margin-top:2.6rem;
  border-bottom:1px solid var(--dim);padding-bottom:.2em}
h3{color:var(--amber);font-size:1.3rem;margin-top:1.6rem}
.topnav{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:1.1rem;
  padding:.6rem 1.5rem;background:rgba(2,10,4,.92);border-bottom:1px solid var(--dim);
  font-size:1.05rem;text-shadow:none}
.topnav a{text-decoration:none;color:var(--dim)}
.topnav a:hover,.topnav a[aria-current]{color:var(--fg);text-shadow:0 0 6px var(--fg)}
.hero .sub{color:var(--dim);text-shadow:none;font-size:1.1rem}
.cursor{display:inline-block;width:.55em;height:1em;background:var(--fg);
  vertical-align:text-bottom;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
table{border-collapse:collapse;width:100%;font-size:1.1rem;margin:1rem 0}
th,td{text-align:left;padding:.3em .8em .3em 0;border-bottom:1px dashed var(--dim)}
th{color:var(--amber);text-shadow:0 0 5px var(--amber);font-weight:normal}
.verdict-yes{color:var(--fg)}.verdict-no{color:var(--red);text-shadow:0 0 6px var(--red)}
.verdict-partial{color:var(--amber)}
/* Fourth status, same family: the scene map's "candidate — open contribution"
   rows. Dim, because nobody has built it yet. */
.verdict-open{color:var(--dim);text-shadow:none}
pre{overflow-x:auto;border:1px solid var(--dim);padding:1rem;font-size:1rem;line-height:1.25}
code,pre{font-family:inherit}  /* stop inline <code> falling back to system monospace */
code{color:var(--amber)}
pre code{color:var(--fg)}
blockquote{border-left:2px solid var(--dim);margin:1rem 0;padding:.2rem 0 .2rem 1rem;color:var(--amber)}
.btn{display:inline-block;border:1px solid var(--fg);padding:.35em 1.2em;text-decoration:none;margin:.5rem 1rem .5rem 0}
.btn:hover{background:var(--fg);color:var(--bg);text-shadow:none}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s}
.reveal.shown{opacity:1;transform:none}
.fed{width:100%;height:auto;margin:1.5rem 0}
.fed .node rect{fill:transparent;stroke:var(--fg);stroke-width:1.2}
.fed .node.db rect{stroke:var(--dim)}
.fed .node text{fill:var(--fg);text-anchor:middle;font-family:inherit;font-size:15px}
.fed .edge path{fill:none;stroke:var(--dim);stroke-width:1.2}
.fed .pulse circle{fill:var(--fg)}.fed .pulse.amber circle{fill:var(--amber)}
footer{color:var(--dim);text-shadow:none;font-size:1rem;margin:4rem auto 0;max-width:64rem;
  padding:1rem 1.5rem;border-top:1px solid var(--dim)}
.station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1.5rem 0}
.station-card{display:block;min-height:10rem;border:1px solid var(--dim);padding:1rem;text-decoration:none;background:rgba(51,255,102,.035)}
.station-card:hover{border-color:var(--amber);background:rgba(255,176,0,.06)}
.station-card strong{display:block;font-size:1.45rem;margin:.35rem 0;color:var(--fg);text-shadow:0 0 6px var(--fg)}
.station-card span{display:block}
.station-kicker{color:var(--amber);font-size:1rem;text-shadow:0 0 4px var(--amber)}
.monitor-wall{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:10rem 10rem;gap:1rem;margin:1.5rem 0}
.monitor-tile{border:1px solid var(--dim);text-decoration:none;display:flex;align-items:flex-end;padding:.8rem;min-height:8rem;background:linear-gradient(180deg,rgba(51,255,102,.08),rgba(51,255,102,.015))}
.monitor-tile:hover{border-color:var(--amber)}
.monitor-1{grid-row:span 2}
.monitor-tile span{background:rgba(2,10,4,.86);padding:.15rem .4rem}
@media(max-width:760px){.monitor-wall{display:block}.monitor-tile{margin:1rem 0}.monitor-1{grid-row:auto}}
.secret{font-family:inherit;font-size:inherit;background:rgba(255,176,0,.08);color:var(--amber);border:1px solid var(--dim);padding:.05em .5em;cursor:pointer;letter-spacing:.15em;text-shadow:0 0 4px var(--amber)}
.secret:hover{border-color:var(--amber)}
.secret.shown{background:rgba(51,255,102,.1);color:var(--fg);border-color:var(--fg);letter-spacing:normal;text-shadow:0 0 5px var(--fg)}
@media(prefers-reduced-motion:reduce){.cursor{animation:none}.fed animate,.fed animateMotion{display:none}}
