body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: radial-gradient(ellipse at bottom, #0d1d31 0%, #0c0d13 100%);
  overflow: hidden;
}

.stars {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 120%;
  transform: rotate(-45deg);
}

.star {
  --star-color: var(--primary-color);
  --star-tail-length: 6em;
  --star-tail-height: 2px;
  --star-width: calc(var(--star-tail-length) / 6);
  --fall-duration: 9s;
  --tail-fade-duration: var(--fall-duration);
  position: absolute;
  top: var(--top-offset);
  left: 0;
  width: var(--star-tail-length);
  height: var(--star-tail-height);
  color: var(--star-color);
  background: linear-gradient(45deg, currentColor, transparent);
  border-radius: 50%;
  filter: drop-shadow(0 0 6px currentColor);
  transform: translate3d(104em, 0, 0);
  animation: fall var(--fall-duration) var(--fall-delay) linear infinite, tail-fade var(--tail-fade-duration) var(--fall-delay) ease-out infinite;
}
@media screen and (max-width: 750px) {
  .star {
    animation: fall var(--fall-duration) var(--fall-delay) linear infinite;
  }
}
.star:nth-child(1) {
  --star-tail-length: 5.09em;
  --top-offset: 1.53vh;
  --fall-duration: 9.856s;
  --fall-delay: 9.853s;
}
.star:nth-child(2) {
  --star-tail-length: 6.77em;
  --top-offset: 16.17vh;
  --fall-duration: 11.873s;
  --fall-delay: 5.979s;
}
.star:nth-child(3) {
  --star-tail-length: 6.03em;
  --top-offset: 99.9vh;
  --fall-duration: 11.033s;
  --fall-delay: 4.695s;
}
.star:nth-child(4) {
  --star-tail-length: 5.38em;
  --top-offset: 69.48vh;
  --fall-duration: 7.21s;
  --fall-delay: 9.53s;
}
.star:nth-child(5) {
  --star-tail-length: 7.3em;
  --top-offset: 31.03vh;
  --fall-duration: 6.907s;
  --fall-delay: 9.953s;
}
.star:nth-child(6) {
  --star-tail-length: 6.45em;
  --top-offset: 85.95vh;
  --fall-duration: 8.041s;
  --fall-delay: 6.49s;
}
.star:nth-child(7) {
  --star-tail-length: 6.54em;
  --top-offset: 15.99vh;
  --fall-duration: 7.47s;
  --fall-delay: 8.649s;
}
.star:nth-child(8) {
  --star-tail-length: 7.04em;
  --top-offset: 15.7vh;
  --fall-duration: 11.45s;
  --fall-delay: 7.747s;
}
.star:nth-child(9) {
  --star-tail-length: 6.57em;
  --top-offset: 24.1vh;
  --fall-duration: 7.304s;
  --fall-delay: 0.665s;
}
.star:nth-child(10) {
  --star-tail-length: 6.43em;
  --top-offset: 54.78vh;
  --fall-duration: 11.377s;
  --fall-delay: 3.029s;
}
.star:nth-child(11) {
  --star-tail-length: 6.41em;
  --top-offset: 76.06vh;
  --fall-duration: 8.744s;
  --fall-delay: 0.088s;
}
.star:nth-child(12) {
  --star-tail-length: 6.3em;
  --top-offset: 13.58vh;
  --fall-duration: 11.724s;
  --fall-delay: 3.026s;
}
.star:nth-child(13) {
  --star-tail-length: 5.89em;
  --top-offset: 49.11vh;
  --fall-duration: 6.033s;
  --fall-delay: 5.475s;
}
.star:nth-child(14) {
  --star-tail-length: 5.38em;
  --top-offset: 91.68vh;
  --fall-duration: 10.036s;
  --fall-delay: 3.305s;
}
.star:nth-child(15) {
  --star-tail-length: 7.45em;
  --top-offset: 61.86vh;
  --fall-duration: 9.239s;
  --fall-delay: 3.049s;
}
.star:nth-child(16) {
  --star-tail-length: 6.31em;
  --top-offset: 83.01vh;
  --fall-duration: 6.471s;
  --fall-delay: 0.086s;
}
.star:nth-child(17) {
  --star-tail-length: 5.58em;
  --top-offset: 80.2vh;
  --fall-duration: 7.605s;
  --fall-delay: 1.31s;
}
.star:nth-child(18) {
  --star-tail-length: 7.14em;
  --top-offset: 44.12vh;
  --fall-duration: 6.061s;
  --fall-delay: 9.421s;
}
.star:nth-child(19) {
  --star-tail-length: 5.71em;
  --top-offset: 68.83vh;
  --fall-duration: 8.928s;
  --fall-delay: 8.567s;
}
.star:nth-child(20) {
  --star-tail-length: 6.56em;
  --top-offset: 46.48vh;
  --fall-duration: 10.328s;
  --fall-delay: 1.969s;
}
.star:nth-child(21) {
  --star-tail-length: 7.32em;
  --top-offset: 20.01vh;
  --fall-duration: 6.893s;
  --fall-delay: 5.937s;
}
.star:nth-child(22) {
  --star-tail-length: 5.54em;
  --top-offset: 70.57vh;
  --fall-duration: 11.218s;
  --fall-delay: 2.914s;
}
.star:nth-child(23) {
  --star-tail-length: 7.02em;
  --top-offset: 72.57vh;
  --fall-duration: 10.472s;
  --fall-delay: 9.153s;
}
.star:nth-child(24) {
  --star-tail-length: 6.77em;
  --top-offset: 5.2vh;
  --fall-duration: 7.816s;
  --fall-delay: 5.562s;
}
.star:nth-child(25) {
  --star-tail-length: 6.31em;
  --top-offset: 60.66vh;
  --fall-duration: 7.728s;
  --fall-delay: 0.315s;
}
.star:nth-child(26) {
  --star-tail-length: 6.53em;
  --top-offset: 32.94vh;
  --fall-duration: 10.568s;
  --fall-delay: 0.214s;
}
.star:nth-child(27) {
  --star-tail-length: 6.74em;
  --top-offset: 42.79vh;
  --fall-duration: 11.114s;
  --fall-delay: 7.354s;
}
.star:nth-child(28) {
  --star-tail-length: 6.94em;
  --top-offset: 22.73vh;
  --fall-duration: 6.094s;
  --fall-delay: 6.449s;
}
.star:nth-child(29) {
  --star-tail-length: 6.3em;
  --top-offset: 91.06vh;
  --fall-duration: 11.902s;
  --fall-delay: 4.734s;
}
.star:nth-child(30) {
  --star-tail-length: 6.91em;
  --top-offset: 8.38vh;
  --fall-duration: 8.025s;
  --fall-delay: 5.049s;
}
.star:nth-child(31) {
  --star-tail-length: 6.56em;
  --top-offset: 5.46vh;
  --fall-duration: 8.803s;
  --fall-delay: 9.561s;
}
.star:nth-child(32) {
  --star-tail-length: 5.26em;
  --top-offset: 48.75vh;
  --fall-duration: 9.998s;
  --fall-delay: 1.497s;
}
.star:nth-child(33) {
  --star-tail-length: 6.05em;
  --top-offset: 90.47vh;
  --fall-duration: 7.716s;
  --fall-delay: 6.488s;
}
.star:nth-child(34) {
  --star-tail-length: 5.56em;
  --top-offset: 64.22vh;
  --fall-duration: 9.158s;
  --fall-delay: 1.243s;
}
.star:nth-child(35) {
  --star-tail-length: 7.15em;
  --top-offset: 15.86vh;
  --fall-duration: 9.746s;
  --fall-delay: 1.616s;
}
.star:nth-child(36) {
  --star-tail-length: 7.45em;
  --top-offset: 34.44vh;
  --fall-duration: 10.023s;
  --fall-delay: 2.711s;
}
.star:nth-child(37) {
  --star-tail-length: 5.87em;
  --top-offset: 29.47vh;
  --fall-duration: 7.564s;
  --fall-delay: 7.241s;
}
.star:nth-child(38) {
  --star-tail-length: 5.82em;
  --top-offset: 51.91vh;
  --fall-duration: 6.542s;
  --fall-delay: 0.265s;
}
.star:nth-child(39) {
  --star-tail-length: 5.39em;
  --top-offset: 72.44vh;
  --fall-duration: 8.859s;
  --fall-delay: 5.709s;
}
.star:nth-child(40) {
  --star-tail-length: 5.99em;
  --top-offset: 8.81vh;
  --fall-duration: 7.422s;
  --fall-delay: 8.252s;
}
.star:nth-child(41) {
  --star-tail-length: 5.74em;
  --top-offset: 70.09vh;
  --fall-duration: 6.988s;
  --fall-delay: 5.026s;
}
.star:nth-child(42) {
  --star-tail-length: 5em;
  --top-offset: 58.65vh;
  --fall-duration: 10.678s;
  --fall-delay: 6.44s;
}
.star:nth-child(43) {
  --star-tail-length: 6.14em;
  --top-offset: 32.04vh;
  --fall-duration: 9.927s;
  --fall-delay: 9.819s;
}
.star:nth-child(44) {
  --star-tail-length: 5.18em;
  --top-offset: 41.62vh;
  --fall-duration: 10.447s;
  --fall-delay: 7.553s;
}
.star:nth-child(45) {
  --star-tail-length: 6.55em;
  --top-offset: 34.31vh;
  --fall-duration: 7.559s;
  --fall-delay: 5.115s;
}
.star:nth-child(46) {
  --star-tail-length: 5.1em;
  --top-offset: 83.19vh;
  --fall-duration: 8.862s;
  --fall-delay: 4.989s;
}
.star:nth-child(47) {
  --star-tail-length: 6.24em;
  --top-offset: 12.85vh;
  --fall-duration: 7.893s;
  --fall-delay: 9.94s;
}
.star:nth-child(48) {
  --star-tail-length: 6.99em;
  --top-offset: 36.82vh;
  --fall-duration: 9.65s;
  --fall-delay: 5.58s;
}
.star:nth-child(49) {
  --star-tail-length: 5.74em;
  --top-offset: 57.14vh;
  --fall-duration: 11.869s;
  --fall-delay: 8.875s;
}
.star:nth-child(50) {
  --star-tail-length: 6.85em;
  --top-offset: 23.38vh;
  --fall-duration: 7.327s;
  --fall-delay: 1.327s;
}
.star::before, .star::after {
  position: absolute;
  content: "";
  top: 0;
  left: calc(var(--star-width) / -2);
  width: var(--star-width);
  height: 100%;
  background: linear-gradient(45deg, transparent, currentColor, transparent);
  border-radius: inherit;
  animation: blink 2s linear infinite;
}
.star::before {
  transform: rotate(45deg);
}
.star::after {
  transform: rotate(-45deg);
}

@keyframes fall {
  to {
    transform: translate3d(-30em, 0, 0);
  }
}
@keyframes tail-fade {
  0%, 50% {
    width: var(--star-tail-length);
    opacity: 1;
  }
  70%, 80% {
    width: 0;
    opacity: 0.4;
  }
  100% {
    width: 0;
    opacity: 0;
  }
}
@keyframes blink {
  50% {
    opacity: 0.6;
  }
}