.tanabata-main {
  --tanabata-vh: 100vh;

  background: #000;
  width: 100%;
  height: var(--tanabata-vh);
  max-height: var(--tanabata-vh);
  display: grid;
  place-items: center;
  overflow: hidden;
}

@supports (height: 100svh) {
  .tanabata-main {
    --tanabata-vh: 100svh;
  }
}

.tanabata-main__inner {
  position: relative;

  /*
    画像比率：1200 / 1539
    高さ100vh以内、かつ横幅が画面から見切れないように調整
  */
  width: min(100vw, 100%, 1000px, calc(var(--tanabata-vh) * 0.77973));
  max-width: 1000px;
  aspect-ratio: 1200 / 1539;

  background-image: url("../img/main_bg.jpg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: contain;

  overflow: hidden;
}

.tanabata-main__chara,
.tanabata-main__foot {
  position: absolute;
  left: 0;
  width: 100%;
  height: auto;
  opacity: 0;
  transform: translateY(80px);
  animation: tanabataFadeUp 3s ease-out forwards;
  pointer-events: none;
}

.tanabata-main__chara {
  bottom: 0;
  z-index: 2;
}

.tanabata-main__foot {
  bottom: 0;
  z-index: 3;
}

.tanabata-main__buttons {
  position: absolute;
  left: 50%;
  bottom: 10.5%;
  z-index: 4;

  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;

  width: 94%;
  transform: translateX(-50%);
}

.tanabata-main__button {
  display: block;
  width: 50%;
  line-height: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.tanabata-main__button img {
  display: block;
  width: 100%;
  height: auto;
}

.tanabata-main__button:hover {
  opacity: 0.9;
  transform: translateY(-3px);
}

@keyframes tanabataFadeUp {
  from {
    opacity: 0;
    transform: translateY(80px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}