.mainvisual {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.mainvisual::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: image-set(url("../images/top_mainvisual.webp?2") 1x, url("../images/top_mainvisual@2x.webp?2") 2x);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1.05);
  filter: blur(6px);
  opacity: 0;
  animation: mv_bg_soft_in 3s cubic-bezier(0.19, 1, 0.22, 1) forwards;
  will-change: transform, filter, opacity;
  pointer-events: none;
  z-index: 0;
}
.mainvisual .copy_wrapper {
  position: relative;
  z-index: 1;
  opacity: 0;
  animation: mv_copy_fade_in 2.4s ease 1.2s forwards;
}
.mainvisual .copy,
.mainvisual .copy_description {
  color: #fff;
}

@keyframes mv_bg_soft_in {
  0% {
    transform: scale(1.05);
    filter: blur(6px);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    filter: blur(0);
    opacity: 1;
  }
}
@keyframes mv_copy_fade_in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}