
  :root {
    --bg:#0b0b0b; --fg:#33ff33; --line:#1e3a1e; --dim:#2f7a2f;
    --green:#4dff4d; --amber:#ffbf00; --red:#ff453a; --grey:#808080;
    --pad-y:1.5rem; --pad-x:2rem; --row-y:.35rem; --h2-top:2rem;
  }
  /* Compact trades whitespace for rows on screen; nothing is hidden. */
  :root[data-density="compact"] {
    --pad-y:.9rem; --pad-x:1.1rem; --row-y:.18rem; --h2-top:1.15rem;
  }
  /* Scanlines are off unless asked for: they cost legibility, and this page is
     read to answer "is anything wrong", not admired. */
  body::after {
    content:""; position:fixed; inset:0; pointer-events:none; z-index:9999;
    opacity:0; transition:opacity .2s;
    background:repeating-linear-gradient(0deg,
      rgba(0,0,0,.17) 0px, rgba(0,0,0,.17) 1px, transparent 1px, transparent 2px);
    mix-blend-mode:multiply;
  }
  :root[data-scanlines="on"] body::after { opacity:1; }
  * { box-sizing: border-box; }
  body { font-family:'Courier New', Courier, monospace;
         margin:var(--pad-y) var(--pad-x) 3rem;
         background:var(--bg); color:var(--fg); font-size:14px; line-height:1.45; }
  a { color:var(--fg); text-decoration:none; border-bottom:1px dotted var(--dim); }
  a:hover { color:var(--green); border-bottom-color:var(--green); }
  h1 { font-size:1.1rem; letter-spacing:.18em; margin:0 0 .2rem; text-transform:uppercase; }
  h2 { font-size:.95rem; letter-spacing:.14em; margin:var(--h2-top) 0 .4rem; text-transform:uppercase;
       border-bottom:1px solid var(--line); padding-bottom:.3rem; }
  h2 .note { float:right; color:var(--dim); letter-spacing:0; text-transform:none; font-weight:normal; }
  pre { margin:.6rem 0 0; }
  .dim  { color:var(--dim); }
  .green{ color:var(--green); }
  .amber{ color:var(--amber); }
  .red  { color:var(--red); }
  .grey { color:var(--grey); }

  nav { margin:.8rem 0 0; padding-bottom:.6rem; border-bottom:1px solid var(--line); }
  nav a { margin-right:1.4rem; border:0; letter-spacing:.1em; }
  nav a.on { color:var(--green); }
  nav a::before { content:"["; color:var(--dim); margin-right:.35rem; }
  nav a::after  { content:"]"; color:var(--dim); margin-left:.35rem; }

  .banner { margin:1rem 0; padding:.55rem .9rem; border:1px solid; letter-spacing:.1em; }
  .banner.red   { border-color:var(--red);   background:#1a0806; }
  .banner.amber { border-color:var(--amber); background:#171203; }
  .banner.green { border-color:var(--green); background:#061406; }

  .tiles { display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0 .3rem; }
  .tile { border:1px solid var(--line); padding:.5rem .9rem; min-width:8.5rem; }
  .tile .n { font-size:1.9rem; line-height:1.1; }
  .tile .k { color:var(--dim); letter-spacing:.12em; font-size:.72rem; }

  .scroll { overflow-x:auto; }
  table { border-collapse:collapse; margin-top:.4rem; width:100%; }
  th { text-align:left; color:var(--dim); font-weight:normal; letter-spacing:.1em;
       font-size:.72rem; text-transform:uppercase; }
  th, td { padding:.28rem 1.1rem .28rem 0; border-bottom:1px solid var(--line);
           white-space:nowrap; vertical-align:top; }
  tr:hover td { background:#111a11; }
  td.wide { white-space:normal; min-width:22rem; }

  .pill { display:inline-block; min-width:4.2rem; text-align:center; font-size:.72rem;
          letter-spacing:.1em; padding:.05rem .35rem; border:1px solid currentColor; }

  footer { margin-top:2.5rem; padding-top:.6rem; border-top:1px solid var(--line);
           color:var(--dim); font-size:.78rem; }
  .notice { color:var(--amber); border:1px dashed var(--amber); padding:.3rem .6rem;
          display:inline-block; margin-bottom:.9rem; font-size:.75rem; letter-spacing:.1em; }
  .entitlement { margin:.8rem 0 0; padding:.4rem .8rem; border-left:3px solid var(--dim);
                 background:#0e140e; font-size:.8rem; }
