.wrap {
  position: relative;
  text-align: center;
  height: calc(100% - var(--header-height));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 50px;
}

.main {
  height: 650px;
  width: 650px;
  position: relative;
  display: flex;
  justify-content: center;
  .neos-pic {
    max-width: 100%;
    max-height: 100%;
    filter: drop-shadow(0 0 50px #ffffff7d) drop-shadow(0 10px 0.5rem #0a3c71ce);
  }
  .neos-logo {
    filter: drop-shadow(0 0 2rem #ffffffbc);
    position: absolute;
    top: 50%;
    width: 90%;
    height: fit-content;
    left: 52%;
    transform: translateX(-50%);
  }
}

.start-btn {
  cursor: pointer;
  width: 200px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 12px 40px;
  border: 3px solid hsla(0, 0%, 100%, 0.3);
  border-radius: 8px;
  background-clip: padding-box;
  background-color: hsla(0, 0%, 100%, 0.9);
  color: #0d0d0d;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.2px;
  transition: 0.2s;

  &:hover {
    background-color: hsla(0, 0%, 100%, 1.1);
  }

  &::before {
    position: absolute;
    z-index: -1;
    top: 5px;
    right: 5px;
    bottom: 0;
    left: 5px;
    border-radius: 6px;
    background: conic-gradient(
      from 147.14deg at 50% 50%,
      #0294fe -55.68deg,
      #ff2136 113.23deg,
      #9b4dff 195deg,
      #0294fe 304.32deg,
      #ff2136 473.23deg
    );
    content: "";
    filter: blur(20px);
    opacity: 0.6;
  }
}

// 以下是粒子动画的样式

.particles-container {
  width: 100%;
  height: 100%;
  position: relative;
}

.particle-container {
  $particleNum: 200;
  $particleColor: hsl(180, 100%, 80%);

  position: absolute;
  transform: translateY(-10vh);
  animation-iteration-count: infinite;
  animation-timing-function: linear;

  .particle {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    mix-blend-mode: screen;
    background-image: radial-gradient(
      hsl(180, 100%, 80%),
      hsl(180, 100%, 80%) 10%,
      hsla(180, 100%, 80%, 0) 56%
    );

    animation: fadein-frames 200ms infinite, scale-frames 2s infinite;
  }

  @keyframes fadein-frames {
    0% {
      opacity: 1;
    }

    50% {
      opacity: 0.7;
    }

    100% {
      opacity: 1;
    }
  }

  @keyframes scale-frames {
    0% {
      transform: scale3d(0.4, 0.4, 1);
    }

    50% {
      transform: scale3d(2.2, 2.2, 1);
    }

    100% {
      transform: scale3d(0.4, 0.4, 1);
    }
  }

  $particleBaseSize: 10;

  @for $i from 1 to $particleNum {
    &:nth-child(#{$i}) {
      $particleSize: random($particleBaseSize);
      width: $particleSize + px;
      height: $particleSize + px;

      $startPositionY: random(10) + 80;
      $framesName: "move-frames" + $i;
      $moveDuration: 28000 + random(9000) + ms;

      animation-name: #{$framesName};
      animation-duration: $moveDuration;
      animation-delay: random(37000) + ms;

      @keyframes #{$framesName} {
        from {
          transform: translate3d(
            #{random(90) + vw},
            #{$startPositionY + vh},
            0
          );
        }

        to {
          transform: translate3d(
            #{random(90) + vw},
            #{- $startPositionY - random(30) + vh},
            0
          );
        }
      }

      .particle {
        animation-delay: random(4000) + ms;
      }
    }
  }
}
