@charset "utf-8";
/* CSS Document */
#kv-container {
  margin: 0 auto;
  position: relative;
  max-width: 1280px;
  height: 760px;
  overflow: hidden;
  aspect-ratio: 1280 / 700;
}

.replay {
  margin: 0 auto;
  width: 240px;
  font-size: 1rem;
}
.white-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: white;
  opacity: 0;
  z-index: 5;
  display: none;
}
.main-content, #footer {
  display: none;
  z-index: 1;
  height: auto;
  overflow: visible;
}
.img-posy, .img-earth, .img-final, .img-mini-posy {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 1280px) {
  #kv-container {
    width: 100%;
    height: auto;
    position: relative;
  }
}
@media (max-width: 768px) {
  .img-posy, .img-earth, .img-final, .img-mini-posy {
    width: 100%;
    height: auto;
  }
}
.posy, .img-hand {
  opacity: 0;
  position: absolute;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  width: min(25vw, 256px);
  height: auto;
}
.img-hand {
  z-index: 4;
  bottom: 0;
}
@media (max-width: 1280px) {
  .posy, .img-hand {
    left: 50%;
    transform: translateX(-50%);
    width: 25vw;
    height: auto;
    bottom: 8vh;
  }
  .img-hand {
    height: auto;
    bottom: 0;
  }
}

.earth {
  opacity: 0;
  position: absolute;
  z-index: 2;
}

/* PC用 */
@media (min-width: 1281px) {
  .earth {
    bottom: 166px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 80px;
    transition: transform 2s ease;
  }
}

/* SP用 */
@media (max-width: 1280px) {
  .earth {
    bottom: 12vh;
    width: 8vw;
    height: 8vw;
    display: none;
    left: auto;
    transform: none;
  }
}

@keyframes float {
  0%   { transform: translateX(-50%) translateY(0); }
  50%  { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
.earth.floating {
  animation: float 1s ease-in-out infinite;
}
.final-illustration, .mini-posy {
  display: none;
  opacity: 0;
  position: absolute;
}
.final-illustration {
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 6;
  aspect-ratio: 1280 / 700;
}
@media (max-width: 1280px) {
  .final-illustration {
    width: 100vw;
    height: auto;
    aspect-ratio: auto;
  }
  .final-illustration img {
    width: 100%;
    height: auto;
  }
}

.mini-posy {
  width: 160px;
  height: auto;
  bottom: 20px;
  left: 200px;
  transform: translateX(-50%);
  z-index: 7;
}

.character .description {
  position: absolute;
  top: -10%;
  left: 120px;
  background: #fff;
  padding: 8px;
  border: 1px solid #fff;
  border-radius: 10px;
  box-shadow: 2px 2px 2px 2px rgba(0,0,0,.1);
  width: 240px;
  z-index: 10;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}
.description span {
  font-size: 0.8rem;
  font-weight: 400;
  display: block;
}
@media (max-width: 1280px) {
  .character .description {
    left: 80%;
    transform: translateX(-20%);
    top: -7vh;
    width: 180px;
    font-size: 0.8rem;
  }
  .description span {
    font-size: 0.6rem;
  }
}

@media (max-width: 768px) {
  .final-illustration {
    height: auto;
  }
  .mini-posy {
    width: 12vw;
    height: auto;
    bottom: 1.5vh;
    left: 16vw;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
@media (prefers-reduced-motion: reduce) {
  .animated-element {
    animation: none !important;
    transition: none !important;
  }
}

