/* nulldB "coming soon": Tiefnavy, one Laser-Cyan accent, IBM Plex (OFL, fonts/). */
@font-face { font-family: "Plex Mono"; src: url("/fonts/IBMPlexMono-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Plex Sans"; src: url("/fonts/IBMPlexSans-Regular.ttf") format("truetype"); font-display: swap; }
:root { --navy: #0B1B2B; --card: #102539; --line: #1f3a52; --cyan: #19C3D6; --text: #F5F8FA; --muted: #9AA5B1; --amber: #FFD23F; }
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: var(--navy); color: var(--text);
  font: 17px/1.6 "Plex Sans", system-ui, sans-serif;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  min-height: 100vh; padding: 2rem;
}
main { max-width: 34rem; width: 100%; padding: 2.25rem; background: var(--card); border: 1px solid var(--line); border-radius: 6px; }
.logo { font: 2.5rem/1 "Plex Mono", monospace; margin: 0 0 1.5rem; }
.logo span { color: var(--cyan); }
.logo .cursor { animation: blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .logo .cursor { animation: none; } }
h1 { font: 600 1.35rem/1.3 "Plex Mono", monospace; margin: 0 0 .5rem; }
.lead { color: var(--muted); margin: 0 0 1.5rem; }
.log { list-style: none; margin: 0; padding: 1rem; font: .95rem/1.8 "Plex Mono", monospace; border: 1px solid var(--line); border-radius: 4px; }
.ok { color: var(--cyan); }
.wait { color: var(--amber); }
footer { color: var(--muted); font: .8rem "Plex Mono", monospace; margin-top: 1.5rem; }
