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: #4EC0E9;
  --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.44em;
  --top-offset: 71.01vh;
  --fall-duration: 7.811s;
  --fall-delay: 9.595s;
}
.star:nth-child(2) {
  --star-tail-length: 5.76em;
  --top-offset: 99.91vh;
  --fall-duration: 9.532s;
  --fall-delay: 4.208s;
}
.star:nth-child(3) {
  --star-tail-length: 6.24em;
  --top-offset: 33.61vh;
  --fall-duration: 11.684s;
  --fall-delay: 2.219s;
}
.star:nth-child(4) {
  --star-tail-length: 5.59em;
  --top-offset: 55.54vh;
  --fall-duration: 11.498s;
  --fall-delay: 9.185s;
}
.star:nth-child(5) {
  --star-tail-length: 5.13em;
  --top-offset: 91.03vh;
  --fall-duration: 7.014s;
  --fall-delay: 3.103s;
}
.star:nth-child(6) {
  --star-tail-length: 7.16em;
  --top-offset: 28.68vh;
  --fall-duration: 9.314s;
  --fall-delay: 0.503s;
}
.star:nth-child(7) {
  --star-tail-length: 6.46em;
  --top-offset: 95.26vh;
  --fall-duration: 10.384s;
  --fall-delay: 5.057s;
}
.star:nth-child(8) {
  --star-tail-length: 7.13em;
  --top-offset: 17.42vh;
  --fall-duration: 6.602s;
  --fall-delay: 5.997s;
}
.star:nth-child(9) {
  --star-tail-length: 5.39em;
  --top-offset: 53.5vh;
  --fall-duration: 8.478s;
  --fall-delay: 4.886s;
}
.star:nth-child(10) {
  --star-tail-length: 6.6em;
  --top-offset: 21.12vh;
  --fall-duration: 6.06s;
  --fall-delay: 8.043s;
}
.star:nth-child(11) {
  --star-tail-length: 5.85em;
  --top-offset: 89.1vh;
  --fall-duration: 9.982s;
  --fall-delay: 9.007s;
}
.star:nth-child(12) {
  --star-tail-length: 6.32em;
  --top-offset: 15.25vh;
  --fall-duration: 10.007s;
  --fall-delay: 5.028s;
}
.star:nth-child(13) {
  --star-tail-length: 7.25em;
  --top-offset: 86.79vh;
  --fall-duration: 10.521s;
  --fall-delay: 6.997s;
}
.star:nth-child(14) {
  --star-tail-length: 5.99em;
  --top-offset: 8.68vh;
  --fall-duration: 10.382s;
  --fall-delay: 0.038s;
}
.star:nth-child(15) {
  --star-tail-length: 7.4em;
  --top-offset: 78.4vh;
  --fall-duration: 10.046s;
  --fall-delay: 4.969s;
}
.star:nth-child(16) {
  --star-tail-length: 7.22em;
  --top-offset: 97.15vh;
  --fall-duration: 8.126s;
  --fall-delay: 8.309s;
}
.star:nth-child(17) {
  --star-tail-length: 6.21em;
  --top-offset: 60.64vh;
  --fall-duration: 7.687s;
  --fall-delay: 8.967s;
}
.star:nth-child(18) {
  --star-tail-length: 7.34em;
  --top-offset: 41.84vh;
  --fall-duration: 9.076s;
  --fall-delay: 9.333s;
}
.star:nth-child(19) {
  --star-tail-length: 5.19em;
  --top-offset: 12.84vh;
  --fall-duration: 6.947s;
  --fall-delay: 8.576s;
}
.star:nth-child(20) {
  --star-tail-length: 7.27em;
  --top-offset: 8.16vh;
  --fall-duration: 9.468s;
  --fall-delay: 1.095s;
}
.star:nth-child(21) {
  --star-tail-length: 5.8em;
  --top-offset: 19.57vh;
  --fall-duration: 8.85s;
  --fall-delay: 7.36s;
}
.star:nth-child(22) {
  --star-tail-length: 6.64em;
  --top-offset: 15.27vh;
  --fall-duration: 10.929s;
  --fall-delay: 5.102s;
}
.star:nth-child(23) {
  --star-tail-length: 5.94em;
  --top-offset: 0.47vh;
  --fall-duration: 11.011s;
  --fall-delay: 5.657s;
}
.star:nth-child(24) {
  --star-tail-length: 6.63em;
  --top-offset: 64.21vh;
  --fall-duration: 9.908s;
  --fall-delay: 2.332s;
}
.star:nth-child(25) {
  --star-tail-length: 7.35em;
  --top-offset: 79.66vh;
  --fall-duration: 8.425s;
  --fall-delay: 3.242s;
}
.star:nth-child(26) {
  --star-tail-length: 6.69em;
  --top-offset: 24.94vh;
  --fall-duration: 6.925s;
  --fall-delay: 1.568s;
}
.star:nth-child(27) {
  --star-tail-length: 5.38em;
  --top-offset: 59.46vh;
  --fall-duration: 8.277s;
  --fall-delay: 4.748s;
}
.star:nth-child(28) {
  --star-tail-length: 7.29em;
  --top-offset: 70.74vh;
  --fall-duration: 8.277s;
  --fall-delay: 7.256s;
}
.star:nth-child(29) {
  --star-tail-length: 7.04em;
  --top-offset: 92.32vh;
  --fall-duration: 6.983s;
  --fall-delay: 4.967s;
}
.star:nth-child(30) {
  --star-tail-length: 7.13em;
  --top-offset: 29.92vh;
  --fall-duration: 7.983s;
  --fall-delay: 1.988s;
}
.star:nth-child(31) {
  --star-tail-length: 7.2em;
  --top-offset: 59.37vh;
  --fall-duration: 10.712s;
  --fall-delay: 9.451s;
}
.star:nth-child(32) {
  --star-tail-length: 5.94em;
  --top-offset: 17.9vh;
  --fall-duration: 7.849s;
  --fall-delay: 1.564s;
}
.star:nth-child(33) {
  --star-tail-length: 5.05em;
  --top-offset: 95.28vh;
  --fall-duration: 10.751s;
  --fall-delay: 9.992s;
}
.star:nth-child(34) {
  --star-tail-length: 5.66em;
  --top-offset: 15.52vh;
  --fall-duration: 7.717s;
  --fall-delay: 7.738s;
}
.star:nth-child(35) {
  --star-tail-length: 6.22em;
  --top-offset: 57.86vh;
  --fall-duration: 9.927s;
  --fall-delay: 4.311s;
}
.star:nth-child(36) {
  --star-tail-length: 6.74em;
  --top-offset: 99.61vh;
  --fall-duration: 10.513s;
  --fall-delay: 5.43s;
}
.star:nth-child(37) {
  --star-tail-length: 5.28em;
  --top-offset: 35.66vh;
  --fall-duration: 11.541s;
  --fall-delay: 6.394s;
}
.star:nth-child(38) {
  --star-tail-length: 7.04em;
  --top-offset: 64.1vh;
  --fall-duration: 8.78s;
  --fall-delay: 4.038s;
}
.star:nth-child(39) {
  --star-tail-length: 5.12em;
  --top-offset: 42.88vh;
  --fall-duration: 10.806s;
  --fall-delay: 6.844s;
}
.star:nth-child(40) {
  --star-tail-length: 7.2em;
  --top-offset: 26.4vh;
  --fall-duration: 6.977s;
  --fall-delay: 6.831s;
}
.star:nth-child(41) {
  --star-tail-length: 5.37em;
  --top-offset: 23.62vh;
  --fall-duration: 6.232s;
  --fall-delay: 3.827s;
}
.star:nth-child(42) {
  --star-tail-length: 6.19em;
  --top-offset: 23.67vh;
  --fall-duration: 10.177s;
  --fall-delay: 0.169s;
}
.star:nth-child(43) {
  --star-tail-length: 6.37em;
  --top-offset: 21.01vh;
  --fall-duration: 9.536s;
  --fall-delay: 4.098s;
}
.star:nth-child(44) {
  --star-tail-length: 6.74em;
  --top-offset: 13.28vh;
  --fall-duration: 7.249s;
  --fall-delay: 4.849s;
}
.star:nth-child(45) {
  --star-tail-length: 5.06em;
  --top-offset: 34.53vh;
  --fall-duration: 6.124s;
  --fall-delay: 5.043s;
}
.star:nth-child(46) {
  --star-tail-length: 7.04em;
  --top-offset: 58.37vh;
  --fall-duration: 8.094s;
  --fall-delay: 5.148s;
}
.star:nth-child(47) {
  --star-tail-length: 5.11em;
  --top-offset: 45.91vh;
  --fall-duration: 6.829s;
  --fall-delay: 5.231s;
}
.star:nth-child(48) {
  --star-tail-length: 6.63em;
  --top-offset: 25.4vh;
  --fall-duration: 6.134s;
  --fall-delay: 2.874s;
}
.star:nth-child(49) {
  --star-tail-length: 7.01em;
  --top-offset: 74.3vh;
  --fall-duration: 8.585s;
  --fall-delay: 9.297s;
}
.star:nth-child(50) {
  --star-tail-length: 5.74em;
  --top-offset: 16.75vh;
  --fall-duration: 10.183s;
  --fall-delay: 1.963s;
}
.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;
  }
}
