/* =============================================
Top
============================================= */

@keyframes top-main-fade {
  0% {
    opacity: 0;
    filter: blur(1.5rem);
  }

  100% {
    opacity: 1;
    filter: blur(0);
  }
}

#top_mainvisual-area {
  width: 100%;
  margin: auto;
}

#top_mainvisual {
  width: 100%;
  aspect-ratio: 1920 / 1240;
  /* for animation */
  opacity: 0;
  animation: top-main-fade 1s forwards;
}

#top_mainvisual>span {
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../img/top/mv2_pc.jpg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
}

@media all and (max-width: 767px) {
  #top_mainvisual {
    aspect-ratio: 860 / 1180;
  }

  #top_mainvisual>span {
    background-image: url(../img/top/mv2_smp.jpg);
  }
}

.box {
  margin-bottom: 40px;
}


/* top-banner
=================================== */
/*
#top-banner {
  width: 1000px;
  margin: 20px auto -20px auto;
  text-align: center;
}

#bn-ceremony .banner a {
  background-image: url(../img/top/bn_ceremony.png);
}

#bn-quo {
  width: 280px;
  margin: 0 auto 2% auto;
}
#bn-quo .banner {
  padding-top:calc(269% / 398 * 100);
}
#bn-quo .banner a {
  background-image: url(../img/top/bn_quo.jpg);
}
*/
/* ---- Media Queries ---- */
/*
@media all and (max-width: 767px) {

  #top-banner {
    width: auto;
    margin: 4% 1% -2% 1%;
    box-sizing: border-box;
  }

}*/


/* top-info
=============================================== */

#top-info {
  width: 1000px;
  margin:20px auto 0 auto;
}

#top-info p {
  display: block;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
  border-radius: 20px;
  border: 5px solid #ddd;
  color: var(--cl-red1);
  font-size: 160%;
  line-height: 140%;
  font-weight: 900;
  text-align: center;
}

#top-info p  a {
  color: var(--cl-red1);
  text-decoration: underline;
}

/* ---- Media Queries ---- */

@media all and (max-width: 999px) {

  #top-info {
    width: 94%;
    margin: 10px 3%;
  }

  #top-info p {
    padding: 10px;
    border-radius: 10px;
    font-size: 120%;
  }

}


/* schedule
=================================== */

#top-schedule {
  padding-top: 20px;
}

.schedule-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2%;
}

.next-date {
  width: 49%;
  margin-bottom: 20px;
  padding: 1px 0 20px 0;
  box-sizing: border-box;
  background: url(../img/top/next_bg.jpg) no-repeat center top;
  background-size: cover;
}

.nxdt-box {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
}

.nxdt-ttl {
  margin: 15px 0 20px 0;
  padding: 10px 0;
  border-top: #fff 1px solid;
  border-bottom: #fff 1px solid;
}

.nxdt-ttl>.ttl {
  width: calc(258px / 2);
  aspect-ratio: 258 / 92;
  margin: auto;
  background: url(../img/top/next_ttl.png) no-repeat center center;
  background-size: cover;
  text-indent: -9999px;
}

.nxdt-l,
.nxdt-r {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nxdt-l img,
.nxdt-r img {
  width: 5.0em;
  height: auto;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 1000px;
  box-sizing: border-box;
}

.cnt-name {
  margin-top: 0.5em;
  font-weight: 700;
  font-size: 120%;
}

.nxdt-c {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 1em;
  font-family: "gotham", sans-serif;
  font-weight: 700;
}

.nxdt-ch-ttl {
  margin-bottom: 0.4em;
  text-align: center;
  width: 100%;
}

.nxdt-ch {
  display: block;
  padding: 0.1em 0.5em;
  background-color: #fff;
  color: var(--cl-m-blue);
  font-size: 120%;
}

.nxdt-oatm {
  display: block;
  margin-bottom: 0.8em;
  padding: 0.3em 0;
  box-sizing: border-box;
  border: 2px solid #fff;
  color: #fff;
  font-size: 90%;
}

.nxdt-dt {
  font-size: 240%;
}

.nxdt-yb {
  font-size: 50%;
}

.nxdt-tm {
  margin-bottom: 0.2em;
  font-size: 300%;
}

.nxdt-tmzn {
  display: inline-block;
  font-size: 40%;
  width: 1em;
}

.nxdt-rd {
  margin-bottom: 0.5em;
}

.top-mov {
  width: 49%;
  margin-bottom: 20px;
}

.schedule-jp-w,
.schedule-jp-m {
  width: 49%;
  aspect-ratio: 1290 / 1286;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  text-indent: -9999px;
}

.schedule-jp-w {
  background-color: var(--cl-w-red);
}

.schedule-jp-m {
  background-color: var(--cl-m-blue);
}

/* ----- media queries ----- */

@media all and (max-width: 767px) {

  .next-date {
    width: 96%;
    margin: 0 2% 1vw;
    padding: 1px 0 4vw;
    font-size: 3.6vw;
  }

  .top-mov {
    width: 96%;
    margin: 0 2% 2vw;
  }

  .schedule-box {
    gap: 2vw;
    flex-direction: column;
  }

  .schedule-jp-w,
  .schedule-jp-m {
    width: 100%;
  }

}

/* outline
=================================== */

#outline .subttl>.ttl {
  width: calc(374px / 2);
  aspect-ratio: 374 / 132;
  background-image: url(../img/top/outline_ttl.png);
}

.outline-box {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  transition: aspect-ratio 0.8s ease-in-out;
}

.outline-box.is-open {
  aspect-ratio: 1410 / 6788;
}

.outline-box::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #ffffff;
  background: linear-gradient(0deg, rgba(255, 255, 255, 1) 5%, rgba(255, 255, 255, 0.01) 100%);
  /* for animation */
  opacity: 1;
  transition: opacity 0.4s ease;
}

.outline-box.is-open::before {
  opacity: 0;
  pointer-events: none;
}

.outline-pic {
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
}

:root {
  --outline-pic-whole-width: 940;
  --outline-pic-whole-height: 4525;
  --outline-pic-dgm-width: 920;
  --outline-pic-dgm-height: 500;
  --outline-pic-dgm-left: 10;
  --outline-pic-dgm-f-top: 3278;
  --outline-pic-dgm-m-top: 4015;
}

.dgm-final {
  position: absolute;
  z-index: 2;
  left: calc(var(--outline-pic-dgm-left) / var(--outline-pic-whole-width) * 100%);
  width: calc(var(--outline-pic-dgm-width) / var(--outline-pic-whole-width) * 100%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease-out;
}

.outline-box.is-open .dgm-final {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.4s ease-in-out 0.5s;
}

#dgm-final-f {
  top: calc(var(--outline-pic-dgm-f-top) / var(--outline-pic-whole-height) * 100%);
}

#dgm-final-m {
  top: calc(var(--outline-pic-dgm-m-top) / var(--outline-pic-whole-height) * 100%);
}

.dgm-final p {
  aspect-ratio: var(--outline-pic-dgm-width) / var(--outline-pic-dgm-height);
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
}

.btn-open {
  position: absolute;
  z-index: 3;
  bottom: 20px;
  left: 25%;
  width: 50%;
  aspect-ratio: 1194 / 135;
  background: url(../img/top/btn_viewall.png) no-repeat center center;
  background-size: cover;
  text-indent: -9999px;
  cursor: pointer;
  transition: opacity 0.4s;
}

@media (hover: hover) {
  .btn-open:hover {
    opacity: 0.8;
  }
}

/* ----- media queries ----- */

@media all and (max-width: 767px) {

  .outline-box {
    margin: 0 2%;
  }

  .btn-open {
    left: 5%;
    width: 90%;
  }

}


/* special
=================================== */

#special .subttl>.ttl {
  width: calc(738px / 2);
  aspect-ratio: 738 / 128;
  background-image: url(../img/special/special_ttl.png);
}

.special-link {
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}

.special-link li {
  flex: 0 0 calc(100% / 2 - 1%);
}

.special-link .tmb {
  aspect-ratio: 16 / 9;
  background-color: #ddd;
}

.special-link .tmb a {
  display: block;
  width: 100%;
  height: 100%;
  /* hover fade */
  transition: opacity 0.2s ease-out;
}

@media (hover: hover) {
  .special-link .tmb a:hover {
    opacity: 0.5;
  }
}

.special-link .tmb a span {
  display: block;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
}

.special-link .btn a {
  display: block;
  aspect-ratio: 1194 / 135;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
  cursor: pointer;
  transition: opacity 0.4s;
}

@media (hover: hover) {
  .special-link .btn a:hover {
    opacity: 0.8;
  }
}

.special-link li:nth-child(1) .btn a {
  background-image: url(../img/top/btn_vsall.png);
}

.special-link li:nth-child(2) .btn a {
  background-image: url(../img/top/btn_mvall.png);
}

/* ----- media queries ----- */

@media all and (max-width: 767px) {

  .special-link {
    display: block;
  }

  .special-link li {
    margin-bottom: 2%;
  }

}


@media all and (max-width: 500px) {

  #special .subttl>.ttl {
    width: calc(738px / 2.5);
  }

}



/* supporter
=================================== */

#supporter {
  padding-top: 15px;
  background-color: var(--cl-gold);
}

#supporter .subttl {
  width: 100%;
  border-top-color: #fff;
  border-bottom-color: #fff;
}

#supporter .subttl>.ttl {
  width: calc(568px / 2);
  aspect-ratio: 568 / 134;
  background-image: url(../img/top/supporter_ttl.png);
}

#supporter .inner {
  display: flex;
  flex-wrap: wrap;
  padding: 0 20px 20px 20px;
}

.supporter-pic {
  width: 50%;
}

.supporter-pic .picture {
  aspect-ratio: 861 / 501;
  background: url(../img/top/supporter_pic.jpg) no-repeat center center;
  background-size: cover;
  text-indent: -9999px;
}

.supporter-text {
  display: flex;
  align-items: center;
  width: 50%;
  padding: 0 0 0 20px;
  box-sizing: border-box;
  font-size: 120%;
  line-height: 1.6;
  font-weight: 700;
}

/* ----- media queries ----- */

@media all and (max-width: 767px) {

  #supporter .subttl {
    margin-bottom: 15px;
  }

  #supporter .inner {
    display: block;
    padding: 0;
  }

  .supporter-pic {
    width: 100%;
  }

  .supporter-text {
    display: block;
    width: 100%;
    padding: 3vw;
    font-size: 4.0vw;
  }

}



/* message
=================================== */

.message-pic {
  aspect-ratio: 1600 / 900;
  background-image: url(../img/top/message2_pc.jpg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  text-indent: -9999px;
}

/* ----- media queries ----- */

@media all and (max-width: 767px) {

  .message-pic {
    aspect-ratio: 860 / 1200;
    background-image: url(../img/top/message2_smp.jpg);
  }

}

/*eof*/
