/*==========================================================================
  Splash screen
==========================================================================*/
@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.splash-screen {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  opacity: 1;
  transition: opacity 1.2s ease;

  &.fade-out {
    opacity: 0;
    pointer-events: none;
  }
}

.splash-wrapper {
  display: flex;
  gap: 70px;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
  width: 100%;
  max-width: 950px;
  position: relative;
}

.splash-catch {
  width: 50%;

  svg {
    max-width: 600px;
    width: 100%;
    height: auto;
  }

  p {
    font-size: clamp(1.75rem, calc(1rem + 2vw), 2.5rem);
    /* min: 28px, max: 40px */
    ;
    font-weight: 700;

    &.splash-catch_en {
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: .7rem;
      width: fit-content;
      margin-inline: auto;
    }
  }
}

.splash-catch_jp {
  margin-bottom: 0;

  img {
    max-width: 520px;
    height: auto;
  }
}

.splash-catch_en {
  font-family: "Oswald", sans-serif;
}

.splash-image {
  margin-bottom: 0;

  img {
    max-width: 520px;
    height: auto;
  }
}

.splash-skip {
  position: absolute;
  bottom: 20px;
  right: 20px;
  padding: 8px 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #000;
}

.splash-image {
  flex: 1;
  position: relative;

  .family {
    width: 100%;
    visibility: hidden;
    opacity: 0;
    transition: opacity 2.5s ease;

    &.show {
      opacity: 1;
      visibility: visible;
    }

    &.hide {
      opacity: 0;
    }
  }
}

#catchcopy-text>g,
#catchcopy-mark circle {
  opacity: 0;
  transform: translateY(20px);

  &.show {
    opacity: 1;
    transform: translateY(0);
  }
}

#catchcopy-text>g {
  transition: opacity 2.5s ease, transform 2.5s ease;
}

#catchcopy-mark circle {
  transition: opacity 1.3s ease, transform 1.3s ease;
}

@media (max-width:768px) {
  .splash-wrapper {
    flex-direction: column;
    row-gap: 60px;
    padding-inline: 30px;
  }

  .splash-catch {
    position: static;
    left: auto;
    transform: translateX(0);
  }

  .splash-catch {
    width: 100%;
    text-align: center;

    svg {
      max-width: 500px;
    }
  }

  .splash-image {
    max-width: 400px;
    width: 100%;
    text-align: center;

    .family {
      margin-inline: auto;
    }

    img {
      max-width: 250px;
      width: 100%;
    }
  }
}