/* Nyorsoft ambient glows: soft, slowly drifting light spots that liven up dark sections.
   Usage: put .nyx-glow-host on a section and add <span class="nyx-glow nyx-glow--X" aria-hidden="true"></span>
   children. Glows sit behind the section content (z-index -1 inside an isolated host). */
.nyx-glow-host { position: relative; isolation: isolate; }
.nyx-glow {
  position: absolute;
  z-index: -1;
  width: var(--g-size, 420px);
  height: var(--g-size, 420px);
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle at center, var(--g-color, rgba(51,163,255,.45)) 0%, transparent 68%);
  filter: blur(var(--g-blur, 40px));
  opacity: var(--g-opacity, .55);
  animation: nyx-glow-drift var(--g-speed, 18s) ease-in-out infinite alternate;
  will-change: transform, opacity;
}
/* Glow drawn over an opaque 3D scene (e.g. the About robot): lighten instead of cover */
.nyx-glow--over { z-index: 1; mix-blend-mode: screen; }

.nyx-glow--cyan   { --g-color: rgba(51,163,255,.55); }
.nyx-glow--teal   { --g-color: rgba(0,214,255,.40); }
.nyx-glow--indigo { --g-color: rgba(84,96,255,.45); }
.nyx-glow--violet { --g-color: rgba(140,90,255,.35); }
.nyx-glow--light  { --g-color: rgba(150,215,255,.38); }

.nyx-glow--sm { --g-size: 260px; --g-blur: 30px; }
.nyx-glow--lg { --g-size: 620px; --g-blur: 60px; }
.nyx-glow--slow { --g-speed: 26s; }
.nyx-glow--fast { --g-speed: 12s; }

@keyframes nyx-glow-drift {
  0%   { transform: translate(0, 0) scale(1);        opacity: var(--g-opacity, .55); }
  50%  { transform: translate(30px, -25px) scale(1.12); opacity: calc(var(--g-opacity, .55) + .15); }
  100% { transform: translate(-25px, 20px) scale(.92);  opacity: calc(var(--g-opacity, .55) - .15); }
}
@media (max-width: 767px) {
  .nyx-glow { --g-size: 260px; }
  .nyx-glow--lg { --g-size: 380px; }
}
@media (prefers-reduced-motion: reduce) {
  .nyx-glow { animation: none; }
}

/* Cards sit ON TOP of the glows: give the translucent cards an opaque base in the
   same tone they had over the page background, so light doesn't shine through them. */
.nyx-glow-host .price-card    { background-color: #0a1830; }
.nyx-glow-host .blog-card     { background-color: #16233a; }
.nyx-glow-host .manifesto-item{ background-color: #0f1d34; }
.nyx-glow-host .service-card  { background: linear-gradient(rgba(26,111,196,.05), rgba(26,111,196,.05)), #0a1830 !important; }
