/* Light dust sits behind the glass; no pointer tracking or interactive surface. */
.ambient-dust {
  position: absolute; inset: 0; z-index: 2; overflow: hidden;
  pointer-events: none; opacity: 0; transition: opacity .65s ease;
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0,0,0,.22) 0%, rgba(0,0,0,.55) 30%, #000 65%);
  mask-image: radial-gradient(ellipse at center, rgba(0,0,0,.22) 0%, rgba(0,0,0,.55) 30%, #000 65%);
}
.ambient-dust.is-visible { opacity: 1; }
.ambient-bg.has-dust .aurora-specks { opacity: 0; }
.ambient-dust-particle {
  position: absolute; left: var(--dust-x); top: 108%;
  width: var(--dust-size); height: var(--dust-size); border-radius: 50%;
  background: radial-gradient(circle, rgba(238,255,252,.94) 0%, rgba(182,242,247,.54) 27%, rgba(163,225,241,.13) 55%, transparent 74%);
  filter: blur(var(--dust-blur));
  animation: ambient-dust-rise var(--dust-duration) linear infinite;
  animation-delay: var(--dust-delay); animation-play-state: paused;
}
.ambient-dust.is-visible:not(.is-paused) .ambient-dust-particle { animation-play-state: running; }
@keyframes ambient-dust-rise {
  0% { transform: translate3d(0,0,0); opacity: 0; }
  12% { opacity: var(--dust-alpha); }
  35% { transform: translate3d(var(--dust-sway),-40vh,0); opacity: calc(var(--dust-alpha) * .6); }
  58% { opacity: var(--dust-alpha); }
  70% { transform: translate3d(calc(var(--dust-sway) * -.4),-82vh,0); opacity: calc(var(--dust-alpha) * .7); }
  88% { opacity: var(--dust-alpha); }
  100% { transform: translate3d(var(--dust-drift),-120vh,0); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ambient-dust { display: none; transition: none; }
}
