#particle-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none; /* Чтобы частицы не мешали кликать по сайту */
  z-index: 99999999999999; /* Отрегулируйте, чтобы фон был ниже текста */
  overflow: hidden;
}


.particle {
  position: absolute;
  border-radius: 50%;
  mix-blend-mode: screen;
  /* Добавляем плавный переход для смещения от мыши */
  transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform, opacity;
}

/* Оборачиваем базовую анимацию в контейнер или комбинируем в JS. 
   Чтобы анимация покачивания не конфликтовала со смещением мыши, 
   мы применим покачивание через keyframes, а смещение — через инлайн-стиль. */
/* Оставляем в CSS только пульсацию яркости, чтобы не ломать transform в JS */
@keyframes pulseOnly {
  0% { opacity: 0.15; }
  50% { opacity: 0.6; }
  100% { opacity: 0.25; }
}
