@charset "utf-8";
/* ======================================
  Layout
====================================== */
.l-fv {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
/* ======================================
  Utility
====================================== */
.u-section {
  width: calc(1240/1440*100vw);
  margin: 0 auto;
}
.u-font__en {
  font-family: 'Lexend Tera', sans-serif;
}
.u-mt1em {
  margin-top: 1em;
}
/* ======================================
  Page
====================================== */
.p-fv {
  position: relative;
  overflow: hidden;
  background-color: #f9c10a;
}
.p-fv__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: calc(96/1440*100vw);
  font-weight: 600;
  text-transform: uppercase;
}
.p-fv__ttlBox {
  position: relative;
  z-index: 99;
  padding: .1em .2em;
}
.p-fv__ttlBox:not(:first-child) {
  margin-top: .3em;
}
.p-fv__ttlBox::before {
  content: '';
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #212121;
  -webkit-transform: scaleX(0);
      -ms-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-animation: passing-bar cubic-bezier(0.6, 0, 0.4, 1) backwards;
          animation: passing-bar cubic-bezier(0.6, 0, 0.4, 1) backwards;
}
.p-fv__ttlBoxTxt {
  -webkit-animation: passing-txt ease-in-out backwards;
          animation: passing-txt ease-in-out backwards;
}
.p-fv__ttlBox.is-first::before,
.p-fv__ttlBox.is-first .p-fv__ttlBoxTxt {
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}
.p-fv__ttlBox.is-second::before,
.p-fv__ttlBox.is-second .p-fv__ttlBoxTxt {
  -webkit-animation-duration: 1.1s;
          animation-duration: 1.1s;
  -webkit-animation-delay: .5s;
          animation-delay: .5s;
}
.p-fv__ttlBox.is-third::before,
.p-fv__ttlBox.is-third .p-fv__ttlBoxTxt {
  -webkit-animation-duration: 1.1s;
          animation-duration: 1.1s;
  -webkit-animation-delay: 1.3s;
          animation-delay: 1.3s;
}
.p-fv__ttlBox.is-third::before {
  -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.35, 1);
          animation-timing-function: cubic-bezier(0.35, 0, 0.35, 1);
}
.p-fv__kanji {
  position: absolute;
  top: calc(50/1440*100vw*-1);
  right: calc(100/1440*100vw*-1);
  -webkit-user-select:none;
     -moz-user-select:none;
      -ms-user-select:none;
          user-select:none;
  font-size: calc(640/1440*100vw);
  font-family: "Sawarabi Mincho";
  color: #999;
  mix-blend-mode: overlay;
  -webkit-animation: opacity-obj 3s ease-in-out 2.4s backwards;
          animation: opacity-obj 3s ease-in-out 2.4s backwards;
}
.p-fv__btn {
  display: block;
  position: absolute;
  bottom: calc(200/1440*100vw*-1);
  right: calc(200/1440*100vw*-1);
  z-index: 99;
  width: calc(400/1440*100vw);
  height: calc(400/1440*100vw);
  border-radius: 50%;
  background-color: #f12b1f;
  -webkit-transition: -webkit-transform 1s cubic-bezier(0.5, 0, 0.5, 1);
  transition: -webkit-transform 1s cubic-bezier(0.5, 0, 0.5, 1);
  transition: transform 1s cubic-bezier(0.5, 0, 0.5, 1);
  transition: transform 1s cubic-bezier(0.5, 0, 0.5, 1), -webkit-transform 1s cubic-bezier(0.5, 0, 0.5, 1);
  -webkit-animation: scale-obj 1.6s cubic-bezier(0, 0, 0, 1) 2.8s backwards;
          animation: scale-obj 1.6s cubic-bezier(0, 0, 0, 1) 2.8s backwards;
}
.p-fv__btnTxt {
  position: absolute;
  top: calc(88/1400*100vw);
  left: 0;
  font-size: calc(36/1400*100vw);
  font-weight: 600;
  text-transform: uppercase;
  color: #fff;
  opacity: 1;
  -webkit-transition: opacity 0s ease-in-out 1.3s;
  transition: opacity 0s ease-in-out 1.3s;
}
.is-open .p-fv__btn {
  -webkit-transform: scale(12,12);
      -ms-transform: scale(12,12);
          transform: scale(12,12);
  -webkit-transition: -webkit-transform 1s cubic-bezier(0.36, -0.46, 0.07, 1.35);
  transition: -webkit-transform 1s cubic-bezier(0.36, -0.46, 0.07, 1.35);
  transition: transform 1s cubic-bezier(0.36, -0.46, 0.07, 1.35);
  transition: transform 1s cubic-bezier(0.36, -0.46, 0.07, 1.35), -webkit-transform 1s cubic-bezier(0.36, -0.46, 0.07, 1.35);
}
.is-open .p-fv__btn .p-fv__btnTxt {
  opacity: 0;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.p-fv__message {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 999;
  cursor: pointer;
  background-color: #f12b1f;
  -webkit-transform: translate(100%, 100%);
      -ms-transform: translate(100%, 100%);
          transform: translate(100%, 100%);
  -webkit-transition: -webkit-transform 0s ease-in-out 0s;
  transition: -webkit-transform 0s ease-in-out 0s;
  transition: transform 0s ease-in-out 0s;
  transition: transform 0s ease-in-out 0s, -webkit-transform 0s ease-in-out 0s;
}
.p-fv__messageWrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
}
.p-fv__messageWrapperBody {
  line-height: 1.8;
  font-size: calc(20em/16);
  color: #fff;
  opacity: 0;
  -webkit-transition: opacity 0s ease-in-out;
  transition: opacity 0s ease-in-out;
}
.is-open .p-fv__message {
  -webkit-transform: translate(0);
      -ms-transform: translate(0);
          transform: translate(0);
  -webkit-transition: -webkit-transform .8s ease-in-out .2s;
  transition: -webkit-transform .8s ease-in-out .2s;
  transition: transform .8s ease-in-out .2s;
  transition: transform .8s ease-in-out .2s, -webkit-transform .8s ease-in-out .2s;
}
.is-open .p-fv__messageWrapperBody {
  opacity: 1;
  -webkit-transition-duration: .4s;
          transition-duration: .4s;
  -webkit-transition-delay: .9s;
          transition-delay: .9s;
}
@media (max-width: 1024px) {
  .p-fv__ttl {
    font-size: calc(88/1024*100vw);
  }
  .p-fv__kanji {
    font-size: calc(600/1024*100vw);
  }
  .p-fv__btn {
    bottom: calc(200/1024*100vw*-1);
    right: calc(200/1024*100vw*-1);
    width: calc(400/1024*100vw);
    height: calc(400/1024*100vw);
  }
  .p-fv__btnTxt {
    top: calc(88/1024*100vw);
    font-size: calc(36/1024*100vw);
  }
}
@media (min-width: 550px) and (max-height: 500px) {
  .p-fv {
    height: calc(700em/16);
  }
}
@media (max-width: 550px) {
  .p-fv__ttl {
    font-size: calc(52/550*100vw);
  }
  .p-fv__kanji {
    top: calc(80/550*100vw*-1);
    right: calc(80/550*100vw*-1);
    font-size: calc(520/550*100vw);
  }
  .p-fv__btn {
    bottom: calc(80/550*100vw);
    right: 0;
    left: 0;
    margin: 0 auto;
    width: calc(160/550*100vw);
    height: calc(160/550*100vw);
    -webkit-transition-duration: 1.3s;
            transition-duration: 1.3s;
  }
  .p-fv__btnTxt {
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    line-height: calc(160/550*100vw);
    text-align: center;
    font-size: calc(24/550*100vw);
  }
  .p-fv__message {
    -webkit-transition-delay: .8s;
            transition-delay: .8s;
    -webkit-transition-duration: 0s;
            transition-duration: 0s;
  }
  .p-fv__messageWrapperBody {
    font-size: calc(18em/16);
  }
  .is-open .p-fv__message {
    -webkit-transition-delay: .8s;
            transition-delay: .8s;
    -webkit-transition-duration: 0s;
            transition-duration: 0s;
  }
  .is-open .p-fv__messageWrapperBody {
    -webkit-transition-delay: 0.8s;
            transition-delay: 0.8s;
  }
}
@media (max-width: 375px) {
  .p-fv__messageWrapperBody {
    font-size: calc(16em/16);
  }
}
/* ======================================
  Animation
====================================== */
@-webkit-keyframes passing-bar {
  0% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transform-origin: top left;
            transform-origin: top left;
  }
  50% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    -webkit-transform-origin: top left;
            transform-origin: top left;
  }
  51% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    -webkit-transform-origin: top right;
            transform-origin: top right;
  }
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transform-origin:top right;
            transform-origin:top right;
  }
}
@keyframes passing-bar {
  0% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transform-origin: top left;
            transform-origin: top left;
  }
  50% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    -webkit-transform-origin: top left;
            transform-origin: top left;
  }
  51% {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
    -webkit-transform-origin: top right;
            transform-origin: top right;
  }
  100% {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
    -webkit-transform-origin:top right;
            transform-origin:top right;
  }
}
@-webkit-keyframes passing-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  51% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
@keyframes passing-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  51% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes opacity-obj {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes opacity-obj {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes scale-obj {
  0% {
    -webkit-transform: scale(0,0);
            transform: scale(0,0)
  }
  70% {
    -webkit-transform: scale(1.5,1.5);
            transform: scale(1.5,1.5);
  }
  75% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  80% {
    -webkit-transform: scale(1.25,1.25);
            transform: scale(1.25,1.25);
  }
  84% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  88% {
    -webkit-transform: scale(1.125,1.125);
            transform: scale(1.125,1.125);
  }
  91% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  95% {
    -webkit-transform: scale(1.1,1.1);
            transform: scale(1.1,1.1);
  }
  98% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  99% {
    -webkit-transform: scale(1.05,1.05);
            transform: scale(1.05,1.05);
  }
  100% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
}
@keyframes scale-obj {
  0% {
    -webkit-transform: scale(0,0);
            transform: scale(0,0)
  }
  70% {
    -webkit-transform: scale(1.5,1.5);
            transform: scale(1.5,1.5);
  }
  75% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  80% {
    -webkit-transform: scale(1.25,1.25);
            transform: scale(1.25,1.25);
  }
  84% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  88% {
    -webkit-transform: scale(1.125,1.125);
            transform: scale(1.125,1.125);
  }
  91% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  95% {
    -webkit-transform: scale(1.1,1.1);
            transform: scale(1.1,1.1);
  }
  98% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
  99% {
    -webkit-transform: scale(1.05,1.05);
            transform: scale(1.05,1.05);
  }
  100% {
    -webkit-transform: scale(1,1);
            transform: scale(1,1);
  }
}
