*,
*::after,
*::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  user-select: none;
}

body, html, .section {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.section {
  background-repeat: no-repeat;
  background-size: cover;
  background-position-y:top;
  animation: scalar 35s linear infinite;

  span {
    --size: 6px;
    position: absolute;
    top: -5%;
    left: calc(var(--r) * 1%);
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    background-color: #7b68ee;
    box-shadow: 0 0 0 4px #7b68ee11, 0 0 0 8px #7b68ee11, 0 0 20px #7b68ee;
    animation: fall 4s linear infinite;
    

    &::before {
      width: 300px;
      height: 1px;
      background-image: linear-gradient(90deg, #7b68eedd, transparent);
      top: 50%;
      transform: translateY(-50%);
      content: '';
      position: absolute;
    }
  }
  
  span:nth-child(even) {
    animation-delay: calc(var(--r) * -1s);
    animation-duration: calc(var(--r) * .2s);
  }
}


@keyframes scalar {
  0%, 100% {
    scale: 1;
  }
  50% {
    scale: 1.3;
  }
}

@keyframes fall {
  0% {
    transform: rotate(-130deg) translateX(0px);
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: rotate(-130deg) translateX(-1000px);;
    opacity: 0;
  }
}

