/* ── The site's night background ──────────────────────────────────────────────
   One copy of the All Teams recipe (2026-09-29): dark blue base, a slowly drifting
   ice-blue glow, film grain, and the diagonal light streaks from the landing page.
   Every page links this file and includes partials/_night_bg.html first thing in
   <body>; a page never re-declares its own body background. Content sits above the
   fixed layers because each page's top wrapper is position:relative; z-index:1.
   If the streaks prove too busy on dense pages, hide .night-streaks there. */
:root { --night-base:#0B1218; }
html, body { background:var(--night-base); }
body::after {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  opacity:.30; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.15 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.night-ambient {
  position:fixed; pointer-events:none; z-index:0; inset:-10%;
  background:
    radial-gradient(1600px 1000px at 80% -10%, rgba(122,200,220,0.14), transparent 60%),
    radial-gradient(1200px  800px at 10% 115%, rgba(140,180,215,0.10), transparent 60%),
    radial-gradient( 900px  600px at 50%  50%, rgba(166,220,232,0.045),transparent 70%),
    radial-gradient( 700px  500px at 90%  80%, rgba(79,208,230,0.040),transparent 65%);
  animation: nightDrift 28s ease-in-out infinite alternate;
}
@keyframes nightDrift {
  0%   { transform: translate(0,0) scale(1); }
  100% { transform: translate(-50px,30px) scale(1.05); }
}
.night-streaks { position:fixed; inset:-20%; pointer-events:none; z-index:0;
  transform:rotate(-18deg); opacity:.5; }
.night-streaks i {
  position:absolute; height:2px; left:-30%; width:60%; border-radius:2px;
  background:linear-gradient(90deg, transparent, rgba(139,228,242,0.7), transparent);
  animation:nightStreak 3s linear infinite;
}
@keyframes nightStreak {
  0%{transform:translateX(0);opacity:0;}
  10%{opacity:1;} 60%{opacity:1;}
  100%{transform:translateX(220%);opacity:0;}
}
.night-streaks i:nth-child(1){top:18%;height:2px;animation-duration:2.8s;animation-delay:0s;opacity:.9;}
.night-streaks i:nth-child(2){top:31%;height:1px;animation-duration:3.6s;animation-delay:.9s;opacity:.6;}
.night-streaks i:nth-child(3){top:44%;height:3px;animation-duration:2.4s;animation-delay:1.6s;}
.night-streaks i:nth-child(4){top:58%;height:1px;animation-duration:4s;animation-delay:.4s;opacity:.5;}
.night-streaks i:nth-child(5){top:71%;height:2px;animation-duration:3.1s;animation-delay:2.1s;opacity:.8;}
.night-streaks i:nth-child(6){top:85%;height:1px;animation-duration:3.7s;animation-delay:1.2s;opacity:.55;}
@media (prefers-reduced-motion: reduce) {
  .night-streaks { display:none; }
  .night-ambient { animation:none; }
}
