* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: #02040b;
}

body {
  min-height: 100vh;
  min-height: 100svh;
}

.space-scene {
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: #02040b;
}

.background {
  position: absolute;
  inset: -2%;
  z-index: 0;
  background:
    radial-gradient(circle at 72% 18%, rgba(157, 209, 255, 0.12), transparent 24%),
    radial-gradient(circle at 29% 78%, rgba(188, 96, 255, 0.09), transparent 30%),
    url("assets/space-broken-planet.png") center / cover no-repeat;
  filter: saturate(1.08) contrast(1.08) brightness(0.88);
  transform: scale(1.02);
}

.background::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 42%, rgba(0, 0, 0, 0.42) 100%),
    linear-gradient(180deg, rgba(2, 4, 11, 0.06), rgba(2, 4, 11, 0.32));
  mix-blend-mode: multiply;
}

#stars,
#shooting-stars {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

#stars {
  z-index: 1;
}

#shooting-stars {
  z-index: 2;
  overflow: hidden;
}

.shooting-star {
  position: absolute;
  left: var(--start-x);
  top: var(--start-y);
  width: var(--length);
  height: 2px;
  opacity: 0;
  transform: rotate(var(--angle)) translate3d(0, 0, 0);
  transform-origin: right center;
  animation: shoot var(--duration) cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  filter: drop-shadow(0 0 8px rgba(196, 228, 255, 0.82));
}

.shooting-star::before,
.shooting-star::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
}

.shooting-star::before {
  background: linear-gradient(90deg, transparent, rgba(141, 196, 255, 0.06) 18%, rgba(201, 230, 255, 0.68) 72%, #fff 100%);
}

.shooting-star::after {
  right: -2px;
  left: auto;
  width: 8px;
  height: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: radial-gradient(circle, #fff 0 22%, rgba(199, 226, 255, 0.9) 42%, transparent 74%);
  box-shadow: 0 0 16px rgba(185, 219, 255, 0.95), 0 0 34px rgba(100, 153, 255, 0.44);
}

@keyframes shoot {
  0% {
    opacity: 0;
    transform: rotate(var(--angle)) translate3d(0, 0, 0) scaleX(0.62);
  }

  11% {
    opacity: var(--opacity);
  }

  78% {
    opacity: var(--opacity);
  }

  100% {
    opacity: 0;
    transform: rotate(var(--angle)) translate3d(var(--travel), 0, 0) scaleX(1.04);
  }
}

@media (max-width: 760px) {
  .background {
    background-position: 62% center;
  }
}
