.marrow-ground {
  position: relative;
  overflow: clip;
  isolation: isolate;
  background-color: #060914;
}

.marrow-sheet {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.marrow-item {
  position: absolute;
  animation-play-state: paused;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}

.marrow-running .marrow-item {
  animation-play-state: running;
}

.marrow-item {
  border-radius: 50%;
  background-color: rgba(255, 59, 104, 1);
  box-shadow: 0 0 5px rgba(255, 59, 104, 0.55);
  animation-name: marrow-travel;
}

@keyframes marrow-travel {
  0% { transform: translate3d(0, 0, 0) scale(0.7); opacity: 0; }
  11% { opacity: var(--marrow-peak, 0.5); }
  23% { opacity: calc(var(--marrow-peak, 0.5) * 0.35); }
  37% { opacity: var(--marrow-peak, 0.5); }
  52% { transform: translate3d(calc(var(--marrow-wander, 12px) * 0.6), -92px, 0) scale(1); }
  59% { opacity: calc(var(--marrow-peak, 0.5) * 0.4); }
  71% { opacity: var(--marrow-peak, 0.5); }
  88% { opacity: calc(var(--marrow-peak, 0.5) * 0.5); }
  100% { transform: translate3d(var(--marrow-wander, 12px), -184px, 0) scale(0.55); opacity: 0; }
}

.marrow-top {
  position: relative;
  z-index: 1;
}

@media print {
  .marrow-sheet { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .marrow-running .marrow-item { animation-play-state: paused; }
}
