/* aurora + particles background — full-viewport by default, `.is-scoped` contains it to a parent.
   Palette: muted indigo / violet / green, kept "in retreat" (low opacity, small hue drift). */
.bg-aurora {
  --aur-blur: 80px;
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  background:
    radial-gradient(1100px 750px at 70% -12%, rgba(20, 30, 58, .5), transparent),
    var(--bg, #0f1729);
}
.bg-aurora.is-scoped {
  position: absolute;
  z-index: 0;
  border-radius: inherit;
  --aur-blur: 36px;
}

/* blobs are generated by aurora.js with random size / position / colour / timing (each load differs);
   this rule only carries what they all share. */
.bg-aurora .aurora {
  position: absolute;
  border-radius: 50%;
  filter: blur(var(--aur-blur));
  opacity: .4;
  mix-blend-mode: screen;
  will-change: transform, filter, opacity;
}

/* gentle, small drifts — slow and subtle */
@keyframes move1 {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(6vw, 7vh) scale(1.12); }
  100% { transform: translate(-4vw, 4vh) scale(.96); }
}
@keyframes move2 {
  0%   { transform: translate(0, 0) scale(1.05); }
  50%  { transform: translate(-6vw, 6vh) scale(.9); }
  100% { transform: translate(-3vw, -4vh) scale(1.1); }
}
@keyframes move3 {
  0%   { transform: translate(0, 0) scale(.95); }
  50%  { transform: translate(5vw, -6vh) scale(1.15); }
  100% { transform: translate(-4vw, -3vh) scale(1); }
}
/* colour drift kept within ±12° so it stays in the indigo/violet/green family (no pink) */
@keyframes hue {
  0%   { filter: blur(var(--aur-blur)) hue-rotate(-12deg); }
  50%  { filter: blur(var(--aur-blur)) hue-rotate(12deg); }
  100% { filter: blur(var(--aur-blur)) hue-rotate(-12deg); }
}
/* intensity breathing — low, "in retreat" */
@keyframes pulse {
  0%, 100% { opacity: .26; }
  50%      { opacity: .48; }
}

.bg-aurora .aurora-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  .bg-aurora .aurora { animation: none; }
}
