/*
  Boot Presentation Gate
  Keep the first paint black until the particle runtime has initialized, then
  reveal the complete stage as one composition instead of letting DOM and
  WebGL appear in separate visual jumps.
*/

html,
body {
  background: #080808;
}

.stage {
  opacity: 1;
  transition: opacity 820ms cubic-bezier(.22, .61, .36, 1);
}

body.is-booting .stage {
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}

body.is-boot-ready .stage {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .stage {
    transition-duration: 160ms;
  }
}
