@charset "UTF-8";
/* webfont 変数　*/
/* blockeffects */
@-webkit-keyframes fadeIn {
  0% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
  100% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    opacity: 1;
  }
}
@keyframes fadeIn {
  0% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    opacity: 0;
  }
  100% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    opacity: 1;
  }
}

@-webkit-keyframes overlayIn {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

@keyframes overlayIn {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

/*伸びたブロックを横に追いやるアニメーション*/
@-webkit-keyframes overlayOutL {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(102%);
    transform: translateX(102%);
  }
}
@keyframes overlayOutL {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(102%);
    transform: translateX(102%);
  }
}

@-webkit-keyframes overlayOutR {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-102%);
    transform: translateX(-102%);
  }
}

@keyframes overlayOutR {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-102%);
    transform: translateX(-102%);
  }
}

/* upeffects */
@-webkit-keyframes margintop {
  0% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    margin-top: 100px;
    opacity: 0;
  }
  100% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    margin-top: 0;
    opacity: 1;
  }
}
@keyframes margintop {
  0% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    margin-top: 100px;
    opacity: 0;
  }
  100% {
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    margin-top: 0;
    opacity: 1;
  }
}

/* ofi */

/*====================================================================

topanimation.css

=====================================================================*/
.main-view {
  position: relative;
}

.main-view__filter {
  display: block;
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
}

.main-view .l-cont {
  z-index: 2;
  position: relative;
  width: 100%;
  height: 100%;
}

.main-view__catch {
  z-index: 3;
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  font-weight: 400;
  text-align: center;
  text-align: center;
}

.main-view__catch__inner {
  display: inline-block;
  position: relative;
  max-width: 640px;
  padding: 32px 4%;
  padding: 2rem 4%;
  background: transparent;
  color: #fff;
}

.catch-01 {
  position: relative;
  max-height: 40px;
  margin-bottom: 0.5em;
  overflow: hidden;
}

.catch-01 span {
  display: block;
  padding-bottom: 0.4em;
  font-family: Noto Sans JP, sans-serif;
  font-size: calc(1.14rem + 10 * (100vw - 320px) / 880);
  letter-spacing: 0.1em;
  line-height: 1;
}

.catch-02 {
  position: relative;
  max-height: 30px;
  overflow: hidden;
}

.catch-02 span {
  display: inline-block;
  position: relative;
  padding-top: 0.1em;
  font-family: Roboto Condensed, sans-serif;
  font-size: calc(1rem + 4 * (100vw - 320px) / 880);
  line-height: 1;
}

.catch-line1,
.catch-line2 {
  box-sizing: content-box;
  z-index: 2;
  position: absolute;
  width: 0%;
  height: 0%;
  border-bottom: 2px solid #fff;
  content: "";
}

.catch-line1 {
  top: calc(50% + 5px);
  right: 50%;
}

.catch-line2 {
  top: calc(50% + 5px);
  left: 50%;
}

.catch-line3,
.catch-line4 {
  box-sizing: content-box;
  z-index: 2;
  position: absolute;
  width: 0%;
  height: 0%;
  border: 2px solid transparent;
  content: "";
}

.catch-line3.display,
.catch-line4.display {
  width: 100%;
  height: 100%;
  transition: height 0.4s, width 0.4s 0.3s;
}

.catch-line3 {
  top: -2px;
  left: -2px;
}

.catch-line3.display {
  border-bottom-color: #fff;
  border-left-color: #fff;
}

.catch-line4 {
  right: -2px;
  bottom: -2px;
}

.catch-line4.display {
  border-top-color: #fff;
  border-right-color: #fff;
}

@media (min-width: 376px) {
  /*====================================================================/
/*--iPhone 以上--
/====================================================================*/
}

@media (min-width: 576px) {
  /*====================================================================/
/*--スマホ 以上--
/====================================================================*/
}

@media (min-width: 576px) and (max-width: 767px) {
  /*====================================================================/
/*--スマホ以上 タブレット iPadmini未満--
/====================================================================*/
}

@media (min-width: 768px) {
  /*====================================================================/
/*--タブレット　iPadmini 以上--
/====================================================================*/
  .catch-02 span {
    letter-spacing: 0.1em;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  /*====================================================================/
/*--タブレット iPadmini以上 XGAサイズ iPadPro未満--
/====================================================================*/
}

@media (min-width: 1024px) {
  /*====================================================================/
/*--XGAサイズ　iPadPro 以上--
/====================================================================*/
  .main-view__catch__inner {
    padding: 3rem 5rem 3rem;
  }
}

@media (min-width: 1024px) and (max-width: 1256px) {
  /*====================================================================/
/*--XGAサイズ iPadPro以上 PC未満--
/====================================================================*/
}

@media (min-width: 1257px) {
  /*====================================================================/
/*---PC 以上--
/====================================================================*/
  .catch-01 span {
    font-size: 1.88rem;
  }
  .catch-02 span {
    font-size: 1.38rem;
  }
}

@media (min-width: 1257px) and (max-width: 1639px) {
  /*====================================================================/
/*--px以上 Large PC未満--
/====================================================================*/
}

@media (min-width: 1640px) {
  /*====================================================================/
/*--Large PC 以上--
/====================================================================*/
}

@media (max-width: 1639px) {
  /*====================================================================/
/*--Large PC 未満--
/====================================================================*/
}

@media (max-width: 1256px) {
  /*====================================================================/
/*--PC 未満--
/====================================================================*/
}

@media (max-width: 1023px) {
  /*====================================================================/
/*--XGAサイズ iPadPro 未満--
/====================================================================*/
}

@media (max-width: 767px) {
  /*====================================================================/
/*--タブレット iPadmini 未満--
/====================================================================*/
}

@media (max-width: 575px) {
  /*====================================================================/
/*--iPhone 以下--
/====================================================================*/
}
