/* Persistent atmosphere shared by the product and prelaunch shells. */
body:has(> .home-sky) { isolation: isolate; }

.home-sky {
  position: fixed;
  z-index: -2;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 85% at 0% 0%, rgba(74, 143, 174, .12), transparent 72%),
    radial-gradient(ellipse 80% 85% at 100% 100%, rgba(214, 168, 95, .13), transparent 72%),
    linear-gradient(to bottom right, #06131d 0%, #050b11 50%, #1b140e 100%);
}

/* One continuous field, blended below the stationary texture and stars. */
.home-sky__aurora {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  mix-blend-mode: screen;
}

/* Very low-opacity neutral noise dithers dark transitions after blending. */
.home-sky::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("./home-sky-grain.svg") repeat;
  background-size: 192px 192px;
  opacity: .018;
  pointer-events: none;
}

/* Trial finish: remove the modifier to restore the smooth sky. */
.home-sky--matte::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("./home-sky-grain.svg") repeat;
  background-size: 192px 192px;
  mix-blend-mode: soft-light;
  opacity: .22;
  pointer-events: none;
}

[data-page="home"] > .landing-hero-scene {
  background: transparent;
}

[data-page="home"] > .landing-hero-scene::before,
[data-page="home"] > .landing-hero-scene::after {
  content: none;
}

.home-sky > .cosmic-scene__starfield { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

.site-firefly { --firefly-x: 50%; --firefly-y: 42%; position: fixed; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; opacity: 1; mix-blend-mode: screen; }
.site-firefly::before, .site-firefly::after { content: ""; position: absolute; left: var(--firefly-x); top: var(--firefly-y); aspect-ratio: 1; border-radius: 50%; transform: translate(-50%, -50%); will-change: transform, opacity, filter; }
.site-firefly::before { width: 370px; background: radial-gradient(circle, rgba(255,253,238,.16) 0, rgba(255,229,173,.1) 10%, rgba(246,201,124,.065) 29%, rgba(126,177,194,.038) 52%, transparent 78%); animation: site-lumos-breathe 4.8s ease-in-out infinite; }
.site-firefly::after { width: 350px; background: radial-gradient(circle, rgba(255,253,238,.1) 0, rgba(255,229,173,.075) 18%, rgba(246,201,124,.045) 40%, rgba(126,177,194,.024) 60%, transparent 78%); animation: site-lumos-wave 3.9s cubic-bezier(.2,.62,.3,1) infinite; }
@keyframes site-lumos-breathe { 0%, 100% { opacity: .8; filter: blur(13px) brightness(.94); transform: translate(-50%, -50%) scale(.98); } 52% { opacity: .94; filter: blur(14px) brightness(1.03); transform: translate(-50%, -50%) scale(1.025); } }
@keyframes site-lumos-wave { 0% { opacity: .52; filter: blur(12px) brightness(1.08); transform: translate(-50%, -50%) scale(.18); } 24% { opacity: .4; } 68% { opacity: .14; } 100% { opacity: 0; filter: blur(16px) brightness(.9); transform: translate(-50%, -50%) scale(1.55); } }

.site-firefly.is-paused::before, .site-firefly.is-paused::after { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  .site-firefly::before, .site-firefly::after { animation: none; will-change: auto; }
  .site-firefly::after { opacity: 0; }
}
