/* Footer-origin discovery particles. They are part of the document, never a fixed viewport layer. */
body[data-particles="on"] { position: relative; }
.page-particles {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.page-particle {
  position: absolute;
  top: var(--particle-start, 90%);
  left: var(--particle-left, 50%);
  color: var(--particle-colour, #8a13ad);
  opacity: 0;
  font-size: var(--particle-size, 22px);
  line-height: 1;
  transform: translate3d(0,0,0) rotate(var(--particle-rotate,0deg));
  animation: caParticleRise var(--particle-duration, 85s) linear var(--particle-delay, 0s) infinite;
}
@keyframes caParticleRise {
  0% { opacity: 0; transform: translate3d(0,0,0) rotate(var(--particle-rotate,0deg)); }
  7% { opacity: var(--particle-opacity,.1); }
  88% { opacity: var(--particle-opacity,.1); }
  100% { opacity: 0; transform: translate3d(var(--particle-drift,30px), calc(var(--particle-travel,1000px) * -1), 0) rotate(calc(var(--particle-rotate,0deg) + 55deg)); }
}
body[data-particles="on"] main,
body[data-particles="on"] .site-header,
body[data-particles="on"] .site-footer { position: relative; z-index: 2; }
.ca-page-hidden .page-particle { animation-play-state: paused !important; }
@media (max-width:760px){ .page-particle:nth-child(n+7){display:none;} }
@media (prefers-reduced-motion:reduce){ .page-particles{display:none!important;} }
