/* Animated topographic background layer (assets/js/topo.js draws the contour lines on <canvas class="topo-bg">).
   Works without JS: body::before is a theme-tinted gradient; the canvas sits on top of it. Both are fixed, behind content. */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(ellipse 90% 70% at 15% -5%, var(--bg-glow-a, rgba(133,178,0,.10)) 0%, transparent 62%),
    radial-gradient(ellipse 80% 70% at 100% 105%, var(--bg-glow-b, rgba(116,181,224,.04)) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg-top, #1b1d17) 0%, var(--bg-bottom, #121212) 100%);
}
.topo-bg { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; display: block; opacity: 0; transition: opacity 1.2s ease; }
.topo-bg.ready { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .topo-bg { transition: none; } }
@media print { body::before, .topo-bg { display: none; } }
