/* Shared fixed-size bubbles and glints for the home and internal sections. */
.hero-ambient,.page-title-ambient,.process-ambient{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:paint}
.hero-particle{position:absolute;inset-block:0;pointer-events:none;opacity:0;animation:hero-atmosphere-rise var(--rise-duration) var(--rise-delay) linear infinite}
.hero-particle::before{content:'';position:absolute;bottom:-115px;left:0;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 30%,#73e2ffcc,#2bc3ff66 52%,#0fb7f019 74%)}
.hero-particle.is-glint::before{bottom:-5px;background:#e3faff;box-shadow:0 0 8px 2px #a3edff70;animation:hero-glint-pulse 5s var(--rise-delay) linear infinite alternate}
.hero-ambient.is-offscreen .hero-particle,.hero-ambient.is-offscreen .hero-particle::before,
.page-title-ambient.is-offscreen .hero-particle,.page-title-ambient.is-offscreen .hero-particle::before,
.process-ambient.is-offscreen .hero-particle,.process-ambient.is-offscreen .hero-particle::before,
.page-hidden .hero-particle,.page-hidden .hero-particle::before{animation-play-state:paused}
.motion-paused .hero-particle{animation:hero-atmosphere-rise var(--rise-duration) var(--rise-delay) linear infinite!important;animation-play-state:paused!important}
.motion-paused .hero-particle.is-glint::before{animation:hero-glint-pulse 5s var(--rise-delay) linear infinite alternate!important;animation-play-state:paused!important}
@keyframes hero-atmosphere-rise{
  0%{transform:translate3d(0,0,0);opacity:0}
  12%{opacity:var(--rise-opacity)}
  82%{opacity:var(--rise-opacity)}
  100%{transform:translate3d(var(--rise-drift),-110%,0);opacity:0}
}
@keyframes hero-glint-pulse{from{opacity:.25}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.hero-particle,.hero-particle::before,.motion-paused .hero-particle,.motion-paused .hero-particle.is-glint::before{animation:none!important}}
