/* A larger drifting ember orb; the original dark backdrop stays intact. */
#vsl { position: relative; isolation: isolate; }
#vsl .vsl-aurora {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  contain: paint;
}
#vsl .vsl-orb { position: absolute; inset: 0; pointer-events: none; }
#vsl .vsl-orb::before,
#vsl .vsl-orb::after {
  content: "";
  position: absolute;
  left: 50%;
  border-radius: 50%;
  pointer-events: none;
}
#vsl .vsl-orb::before {
  bottom: -100px;
  width: clamp(340px, 48vw, 680px);
  height: clamp(240px, 34vw, 460px);
  background: radial-gradient(ellipse at 50% 55%, rgb(255 90 0 / 24%), rgb(255 90 0 / 8%) 36%, transparent 70%);
  animation: vsl-orb-halo 19s ease-in-out infinite;
}
#vsl .vsl-orb::after {
  bottom: -65px;
  width: clamp(190px, 25vw, 340px);
  aspect-ratio: 1;
  background:
    radial-gradient(circle at 42% 24%, rgb(255 201 132 / 50%), transparent 30%),
    radial-gradient(circle at 48% 35%, rgb(255 112 32 / 64%), rgb(178 49 0 / 24%) 48%, rgb(7 9 14 / 12%) 65%, transparent 73%);
  filter: blur(9px);
  animation: vsl-orb-rise 19s ease-in-out infinite;
}
@keyframes vsl-orb-rise {
  0%, 100% { opacity: 0; transform: translate(-50%, 36px) scale(0.84); }
  28% { opacity: 0.38; }
  52% { opacity: 0.48; transform: translate(-50%, -10px) scale(1); }
  76% { opacity: 0.18; transform: translate(-50%, -22px) scale(1.05); }
}
@keyframes vsl-orb-halo {
  0%, 100% { opacity: 0; transform: translateX(-50%) scale(0.8); }
  48% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  78% { opacity: 0.12; transform: translateX(-50%) scale(1.08); }
}
@media (max-width: 780px) {
  #vsl .vsl-aurora { opacity: 0.8; }
}
#vsl .vsl-orb::before, #vsl .vsl-orb::after { animation-play-state: var(--orb-motion, running); }
@media (prefers-reduced-motion: reduce) {
  #vsl .vsl-orb { transform: none !important; }
  #vsl .vsl-orb::before,
  #vsl .vsl-orb::after { animation: none; opacity: 0.2; transform: translateX(-50%); }
}
