.mainVisual {
  height: 100svh;
  z-index: 2;
}
.mainVisual .start {
  background: #494441;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  transition: opacity 1s ease-in-out;
}
.mainVisual .start > div {
  position: absolute;
  width: 100%;
  height: 100%;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: min(30px, 5.5vw);
  text-align: center;
  line-height: 2;
  letter-spacing: 0.05em;
  transition: 0s 1.5s ease;
}
@media (max-width: 767px) {
  .mainVisual .start > div {
    letter-spacing: 0.3em;
  }
}
.mainVisual .start > div .randomspan {
  opacity: 0;
}
.mainVisual .start > div .randomspan.on {
  opacity: 1;
}
.mainVisual .start > div span {
  display: inline-block;
  opacity: 0;
  transition: opacity 1.5s ease;
  min-width: 0.5em;
}
.mainVisual .start > div span.s1 {
  transition-delay: 0s;
}
.mainVisual .start > div span.s2 {
  transition-delay: 0.05s;
}
.mainVisual .start > div span.s3 {
  transition-delay: 0.1s;
}
.mainVisual .start > div span.s4 {
  transition-delay: 0.15s;
}
.mainVisual .start > div span.s5 {
  transition-delay: 0.2s;
}
.mainVisual .start > div span.s6 {
  transition-delay: 0.25s;
}
.mainVisual .start > div span.s7 {
  transition-delay: 0.3s;
}
.mainVisual .start > div span.s8 {
  transition-delay: 0.35s;
}
.mainVisual .start > div span.s9 {
  transition-delay: 0.4s;
}
.mainVisual .start > div span.s10 {
  transition-delay: 0.45s;
}
.mainVisual .start > div span.s11 {
  transition-delay: 0.5s;
}
.mainVisual .start > div span.s12 {
  transition-delay: 0.55s;
}
.mainVisual .start.first > div.first {
  transform: scale(1.05);
  letter-spacing: 0.3em;
  transition: transform 8s ease, letter-spacing 12s ease;
}
@media (max-width: 767px) {
  .mainVisual .start.first > div.first {
    transform: scale(1.1);
  }
}
.mainVisual .start.first > div.first span {
  opacity: 1;
}
.mainVisual .start.second div.first span {
  opacity: 0;
  transition-duration: 0.3s;
}
.mainVisual .start.second div.second {
  opacity: 1;
  transform: scale(1.05);
  letter-spacing: 0.3em;
  transition: transform 8s ease, letter-spacing 12s ease, opacity 2s ease;
}
@media (max-width: 767px) {
  .mainVisual .start.second div.second {
    transform: scale(1.1);
  }
}
.mainVisual .start.second div.second span {
  opacity: 1;
}
.mainVisual.finish .start {
  opacity: 0;
}
.mainVisual .top_btn_play {
  z-index: 6;
  cursor: pointer;
  transition: color 0.3s ease-in-out;
}
.mainVisual .top_btn_play::after {
  transition: color 0.3s ease-in-out;
  content: "PLAY";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: rgba(255, 255, 255, 0);
  display: flex;
  justify-content: center;
  align-items: center;
}
.mainVisual.finish .top_btn_play {
  color: rgba(255, 255, 255, 0);
}
.mainVisual.finish .top_btn_play::after {
  color: #fff;
}
.mainVisual.finish .mvvideo {
  opacity: 0;
}

.mainVisual__inner {
  height: 100svh;
}
@media (max-width: 767px) {
  .mainVisual__inner {
    height: calc(100svh - 40px);
  }
}
.mainVisual__inner .mainVisual__picture {
  display: inline-block;
  transform: scale(1.05);
  transition: transform 0s 1s;
  width: 100%;
  height: 100%;
}
.mainVisual__inner .mainVisual__picture img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
.mainVisual__inner .mainVisual_txt img {
  display: inline-block;
  opacity: 0;
  transform: scale(1.2);
  transition: opacity 0s 1s, transform 0s 1s;
}
.finish .mainVisual__inner .mainVisual__picture {
  transform: scale(1);
  transition: transform 1.6s 0s ease-in-out;
}
.finish .mainVisual__inner .mainVisual_txt img {
  transform: scale(1);
  opacity: 1;
  transition: opacity 1.5s 0.5s ease-in-out, transform 1.5s 0.5s ease-in-out;
}

.top_main_under {
  overflow: unset;
  contain: paint;
  width: 100%;
  height: auto;
  padding-bottom: 1px;
}
.top_main_under .top_main_under_upper {
  height: 100vh;
  margin-bottom: -50vh;
  margin-bottom: -1px;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  left: 0;
}
.top_main_under .top_main_under_lower {
  position: relative;
  top: 0;
  left: 0;
  overflow: unset;
  padding: 0;
  z-index: 2;
  width: 100%;
  height: auto;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  margin-bottom: 100vh;
}
.top_main_under .top_main_under_lower .top_main_under_window_wrapper {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.top_main_under .top_main_under_lower .top_main_under_window {
  height: auto;
  position: relative;
  top: unset;
  left: unset;
  top: 0;
  transform: none;
  width: 90%;
  transition: width 1s 0.7s ease-in-out, top 1s ease-in-out;
  justify-content: center;
  align-items: center;
}
.top_main_under .top_main_under_lower .top_main_under_window .top_main_under_window_inner {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 767px) {
  .top_main_under .top_main_under_lower .top_main_under_window .top_main_under_window_inner {
    flex-direction: column;
  }
}
.top_main_under .top_main_under_lower .top_main_under_window .top_main_under_w01 {
  opacity: 1;
  transition: opacity 1s 1s ease-in-out;
}
.top_main_under .top_main_under_lower .top_main_under_window .top_main_under_w02 {
  opacity: 1;
  transition: opacity 1s 1.2s ease-in-out;
}
.top_main_under .top_main_under_lower .top_main_under_window .top_main_under_w02 h3 {
  font-size: min(16px, 1.2vw);
  line-height: 48px;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .top_main_under .top_main_under_lower .top_main_under_window .top_main_under_w02 h3 {
    font-size: 3vw;
    line-height: 2.4;
  }
}
.top_main_under .top_main_under_lower .top_main_under_window.out {
  width: 450px;
  top: 50vh;
}
.top_main_under .top_main_under_lower .top_main_under_window.out .top_main_under_w01 {
  transition: opacity 1s 0s ease-in-out;
  opacity: 0;
}
.top_main_under .top_main_under_lower .top_main_under_window.out .top_main_under_w02 {
  transition: opacity 1s 0s ease-in-out;
  opacity: 0;
}
.top_main_under .top_main_bottom {
  height: 20vh;
}

.infoBox {
  z-index: 10;
}
/*# sourceMappingURL=contents_2.css.map */