/* obsidianbay — "signal through the static"
 *
 * Radio/static visual layer. The terminal theme loads its own css/*.css first,
 * then this file last (see themes/terminal/layouts/partials/head.html), so the
 * :root overrides below win.
 *
 * NOTE: this file is what makes the palette green. This version of the theme
 * does NOT honor the `themeColor` param — it ships amber (--accent:#eec35e) in
 * main.css regardless. The greens below are therefore load-bearing, not just
 * polish. Edit them here, not in config.toml.
 */

:root {
  --background: #0c100c;
  --foreground: #cdeed6;
  --accent: #2ee05a;
  /* radio palette — dim = labels/chrome, faint = the noise floor */
  --green-dim: #1a8a39;
  --green-faint: #103e1d;
}

body {
  /* phosphor glow */
  text-shadow: 0 0 2px rgba(46, 224, 90, 0.30);
}

/* ---- the noise floor: faint, slow film grain over everything ---- */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.035;
  animation: ob-grain 2s steps(3) infinite;
}

@keyframes ob-grain {
  0%   { transform: translate(0, 0); }
  33%  { transform: translate(-2%, 1%); }
  66%  { transform: translate(1%, -2%); }
  100% { transform: translate(2%, 2%); }
}

/* ---- hairline CRT scanlines ---- */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 9997;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0px,
    rgba(0, 0, 0, 0) 3px,
    rgba(0, 0, 0, 0.10) 4px,
    rgba(0, 0, 0, 0.10) 5px
  );
}

/* respect reduced-motion: hold the grain still */
@media (prefers-reduced-motion: reduce) {
  body::before { animation: none; }
}

/* ---- masthead callsign (· N6SH) ---- */
.logo .callsign {
  color: var(--green-dim);
  font-weight: 400;
  font-size: 0.62em;
  letter-spacing: 0.08em;
}

/* ---- subtitle under the logo ---- */
.site-subtitle {
  color: var(--green-dim);
  letter-spacing: 0.18em;
  text-transform: lowercase;
  font-size: 0.9rem;
  margin: 0.15rem 0 0;
}

/* ---- ASCII static band — the element shared with the Gemini capsule.
 *      There it's a preformatted block; here it's a masthead rule. ---- */
.static-band {
  white-space: pre;
  overflow: hidden;
  color: var(--green-faint);
  font-size: 0.9rem;
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 1rem 0 1.4rem;
  opacity: 0.85;
  user-select: none;
}

/* ---- per-post RST signal report on the date line ---- */
.post-rst {
  color: var(--green-dim);
  font-size: 0.82em;
  letter-spacing: 0.1em;
}
