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: 7.15em;
  --top-offset: 67.9vh;
  --fall-duration: 11.81s;
  --fall-delay: 0.754s;
}
.star:nth-child(2) {
  --star-tail-length: 6.81em;
  --top-offset: 68.49vh;
  --fall-duration: 9.077s;
  --fall-delay: 9.493s;
}
.star:nth-child(3) {
  --star-tail-length: 7.3em;
  --top-offset: 45.61vh;
  --fall-duration: 7.834s;
  --fall-delay: 0.097s;
}
.star:nth-child(4) {
  --star-tail-length: 6.25em;
  --top-offset: 14.29vh;
  --fall-duration: 8.758s;
  --fall-delay: 0.44s;
}
.star:nth-child(5) {
  --star-tail-length: 6.78em;
  --top-offset: 92.83vh;
  --fall-duration: 8.628s;
  --fall-delay: 6.34s;
}
.star:nth-child(6) {
  --star-tail-length: 6.19em;
  --top-offset: 80.59vh;
  --fall-duration: 8.448s;
  --fall-delay: 2.914s;
}
.star:nth-child(7) {
  --star-tail-length: 5.17em;
  --top-offset: 46.67vh;
  --fall-duration: 10.293s;
  --fall-delay: 1.339s;
}
.star:nth-child(8) {
  --star-tail-length: 6.44em;
  --top-offset: 16.24vh;
  --fall-duration: 7.36s;
  --fall-delay: 4.339s;
}
.star:nth-child(9) {
  --star-tail-length: 6.07em;
  --top-offset: 19.41vh;
  --fall-duration: 7.592s;
  --fall-delay: 4.767s;
}
.star:nth-child(10) {
  --star-tail-length: 6.65em;
  --top-offset: 61.16vh;
  --fall-duration: 10.316s;
  --fall-delay: 4.892s;
}
.star:nth-child(11) {
  --star-tail-length: 5.12em;
  --top-offset: 34.9vh;
  --fall-duration: 7.274s;
  --fall-delay: 8s;
}
.star:nth-child(12) {
  --star-tail-length: 7.44em;
  --top-offset: 11.07vh;
  --fall-duration: 7.747s;
  --fall-delay: 0.626s;
}
.star:nth-child(13) {
  --star-tail-length: 5.08em;
  --top-offset: 29.22vh;
  --fall-duration: 6.985s;
  --fall-delay: 4.132s;
}
.star:nth-child(14) {
  --star-tail-length: 6.13em;
  --top-offset: 10.99vh;
  --fall-duration: 7.81s;
  --fall-delay: 5.954s;
}
.star:nth-child(15) {
  --star-tail-length: 5.98em;
  --top-offset: 42.77vh;
  --fall-duration: 11.4s;
  --fall-delay: 6.097s;
}
.star:nth-child(16) {
  --star-tail-length: 6.29em;
  --top-offset: 30.8vh;
  --fall-duration: 10.442s;
  --fall-delay: 0.246s;
}
.star:nth-child(17) {
  --star-tail-length: 5.64em;
  --top-offset: 80.08vh;
  --fall-duration: 6.253s;
  --fall-delay: 1.203s;
}
.star:nth-child(18) {
  --star-tail-length: 7.31em;
  --top-offset: 82.42vh;
  --fall-duration: 8.078s;
  --fall-delay: 0.594s;
}
.star:nth-child(19) {
  --star-tail-length: 5.88em;
  --top-offset: 80.62vh;
  --fall-duration: 10.644s;
  --fall-delay: 1.24s;
}
.star:nth-child(20) {
  --star-tail-length: 5.65em;
  --top-offset: 80.61vh;
  --fall-duration: 10.564s;
  --fall-delay: 3.721s;
}
.star:nth-child(21) {
  --star-tail-length: 7.42em;
  --top-offset: 95.63vh;
  --fall-duration: 9.734s;
  --fall-delay: 8.957s;
}
.star:nth-child(22) {
  --star-tail-length: 6.36em;
  --top-offset: 86.65vh;
  --fall-duration: 10.426s;
  --fall-delay: 4.301s;
}
.star:nth-child(23) {
  --star-tail-length: 6.77em;
  --top-offset: 45.75vh;
  --fall-duration: 6.587s;
  --fall-delay: 2.037s;
}
.star:nth-child(24) {
  --star-tail-length: 5.83em;
  --top-offset: 49.65vh;
  --fall-duration: 9.686s;
  --fall-delay: 4.577s;
}
.star:nth-child(25) {
  --star-tail-length: 5.64em;
  --top-offset: 38.87vh;
  --fall-duration: 7.513s;
  --fall-delay: 6.12s;
}
.star:nth-child(26) {
  --star-tail-length: 5.88em;
  --top-offset: 61.14vh;
  --fall-duration: 8.567s;
  --fall-delay: 8.109s;
}
.star:nth-child(27) {
  --star-tail-length: 5.48em;
  --top-offset: 35.07vh;
  --fall-duration: 6.602s;
  --fall-delay: 0.776s;
}
.star:nth-child(28) {
  --star-tail-length: 7.1em;
  --top-offset: 68.6vh;
  --fall-duration: 7.298s;
  --fall-delay: 5.735s;
}
.star:nth-child(29) {
  --star-tail-length: 5.08em;
  --top-offset: 35.33vh;
  --fall-duration: 9.718s;
  --fall-delay: 1.932s;
}
.star:nth-child(30) {
  --star-tail-length: 5.56em;
  --top-offset: 32.67vh;
  --fall-duration: 11.213s;
  --fall-delay: 2.912s;
}
.star:nth-child(31) {
  --star-tail-length: 6.13em;
  --top-offset: 15.92vh;
  --fall-duration: 8.119s;
  --fall-delay: 3.842s;
}
.star:nth-child(32) {
  --star-tail-length: 5.09em;
  --top-offset: 33.47vh;
  --fall-duration: 9.145s;
  --fall-delay: 7.785s;
}
.star:nth-child(33) {
  --star-tail-length: 5.05em;
  --top-offset: 45.83vh;
  --fall-duration: 8.574s;
  --fall-delay: 1.963s;
}
.star:nth-child(34) {
  --star-tail-length: 6.19em;
  --top-offset: 37.79vh;
  --fall-duration: 6.529s;
  --fall-delay: 8.374s;
}
.star:nth-child(35) {
  --star-tail-length: 7.33em;
  --top-offset: 55.54vh;
  --fall-duration: 10.704s;
  --fall-delay: 6.772s;
}
.star:nth-child(36) {
  --star-tail-length: 6.46em;
  --top-offset: 6.84vh;
  --fall-duration: 6.804s;
  --fall-delay: 7.519s;
}
.star:nth-child(37) {
  --star-tail-length: 5.31em;
  --top-offset: 82.97vh;
  --fall-duration: 10.822s;
  --fall-delay: 8.76s;
}
.star:nth-child(38) {
  --star-tail-length: 6.83em;
  --top-offset: 71.56vh;
  --fall-duration: 6.751s;
  --fall-delay: 7.771s;
}
.star:nth-child(39) {
  --star-tail-length: 6.96em;
  --top-offset: 98.13vh;
  --fall-duration: 10.97s;
  --fall-delay: 6.725s;
}
.star:nth-child(40) {
  --star-tail-length: 6.14em;
  --top-offset: 16.13vh;
  --fall-duration: 11.11s;
  --fall-delay: 1.385s;
}
.star:nth-child(41) {
  --star-tail-length: 5.64em;
  --top-offset: 64.53vh;
  --fall-duration: 6.189s;
  --fall-delay: 1.699s;
}
.star:nth-child(42) {
  --star-tail-length: 6.99em;
  --top-offset: 48.57vh;
  --fall-duration: 9.202s;
  --fall-delay: 8.375s;
}
.star:nth-child(43) {
  --star-tail-length: 5.17em;
  --top-offset: 1.66vh;
  --fall-duration: 10.589s;
  --fall-delay: 8.765s;
}
.star:nth-child(44) {
  --star-tail-length: 5.76em;
  --top-offset: 81.53vh;
  --fall-duration: 9.274s;
  --fall-delay: 3.376s;
}
.star:nth-child(45) {
  --star-tail-length: 5.72em;
  --top-offset: 18.19vh;
  --fall-duration: 6.33s;
  --fall-delay: 1.114s;
}
.star:nth-child(46) {
  --star-tail-length: 7.39em;
  --top-offset: 47.52vh;
  --fall-duration: 10.715s;
  --fall-delay: 4.304s;
}
.star:nth-child(47) {
  --star-tail-length: 6.15em;
  --top-offset: 25.47vh;
  --fall-duration: 8.729s;
  --fall-delay: 5.402s;
}
.star:nth-child(48) {
  --star-tail-length: 7.25em;
  --top-offset: 99.79vh;
  --fall-duration: 7.828s;
  --fall-delay: 3.14s;
}
.star:nth-child(49) {
  --star-tail-length: 6.75em;
  --top-offset: 62.61vh;
  --fall-duration: 11.987s;
  --fall-delay: 0.935s;
}
.star:nth-child(50) {
  --star-tail-length: 5.68em;
  --top-offset: 91.98vh;
  --fall-duration: 6.399s;
  --fall-delay: 4.067s;
}
.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;
  }
}