.main-visual {
  width: 100%;
  background: #030307;
  padding: 20px 0 40px;
}

.slider {
  position: relative;

  width: min(1100px, 94%);
  height: 420px;

  margin: 0 auto;

  overflow: hidden;

  background: #111;
  border-radius: 8px;

  box-shadow:
    0 0 10px rgba(100, 150, 255, 0.25),
    0 0 30px rgba(80, 80, 255, 0.12);
}

.slide {
  position: absolute;
  inset: 0;

  opacity: 0;

  transition: opacity 0.7s ease;
}

.slide.active {
  opacity: 1;
}

.slide img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  display: block;
}


/* 左右ボタン */
.prev,
.next {
  position: absolute;

  top: 50%;
  transform: translateY(-50%);

  z-index: 10;

  border: none;
  background: rgba(0, 0, 0, 0.35);

  color: white;

  font-size: 34px;

  width: 55px;
  height: 70px;

  cursor: pointer;

  transition: 0.2s;
}

.prev {
  left: 15px;
}

.next {
  right: 15px;
}

.prev:hover,
.next:hover {
  background: rgba(0, 0, 0, 0.7);
}


/* 下の丸 */
.dots {
  position: absolute;

  bottom: 18px;
  left: 50%;

  transform: translateX(-50%);

  display: flex;
  gap: 12px;

  z-index: 10;
}

.dot {
  width: 14px;
  height: 14px;

  border: none;
  border-radius: 50%;

  background: rgba(255,255,255,.35);

  cursor: pointer;
}

.dot.active {
  background: white;

  box-shadow:
    0 0 8px white,
    0 0 15px #6f8cff;
}

.space-area {
  position: relative;
  width: 100%;
  height: 700px;
  overflow: hidden;

  background: radial-gradient(circle at center, #120000 0%, #030307 70%);
}

#surfer {
  position: absolute;
  width: 260px;
  height: auto;
  left: 0;
  top: 0;

  pointer-events: none;
  will-change: transform;
}


/* スマホ */
@media (max-width: 700px) {

  .main-visual {
    padding: 10px 0 25px;
  }

  .slider {
    width: 96%;
    height: auto;

    aspect-ratio: 16 / 9;

    border-radius: 5px;
  }

  .slide {
    width: 100%;
    height: 100%;
  }

  .slide img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
  }


  /* 左右ボタン */
  .prev,
  .next {
    width: 38px;
    height: 50px;

    font-size: 22px;

    background: rgba(0, 0, 0, 0.4);
  }

  .prev {
    left: 5px;
  }

  .next {
    right: 5px;
  }


  /* 下の丸 */
  .dots {
    bottom: 10px;
    gap: 8px;
  }

  .dot {
    width: 10px;
    height: 10px;
  }
}

@media (max-width: 768px) {
  .title-text {
  font-size: 22px;
}
 img {
    max-width: 100%;
  height: auto;
}
}