:root {
  --color-blue: #00acc0;
  --color-red: #ff1639;
  --color-black: #000;
  --color-white: #fff;
  --font-jp: "Zen Old Mincho", sans-serif;
  --font-en: "Outfit", sans-serif;
}

.is-active .p-character__content-list-item-image {
  -webkit-transform: scale(1);
          transform: scale(1);
}

.p-character__content-list-item-detail .p-in-name.--long {
  font-size: min(4.5vw, 86px);
  letter-spacing: -0.1em;
}
@media screen and (min-width: 768px) {
  .p-character__content-list-item-detail .p-in-name.--long {
    width: 120%;
  }
}
@media screen and (max-width: 767px) {
  .p-character__content-list-item-detail .p-in-name.--long {
    font-size: 3.5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-character__content-list-item-inner {
    width: 88.5%;
  }
}

@media screen and (min-width: 768px) {
  .p-character__content-nav {
    width: 5%;
  }
}
@media screen and (max-width: 767px) {
  .p-character__content-nav {
    top: 12%;
  }
}

.p-kv__x {
  -webkit-filter: blur(0);
          filter: blur(0);
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media screen and (max-width: 767px) {
  .p-kv__x {
    position: relative;
    font-family: var(--font-en);
    letter-spacing: 0.1em;
    font-weight: 500;
    -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s;
    transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s;
    transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s;
    transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 1.85s;
    -webkit-filter: blur(8px);
            filter: blur(8px);
    opacity: 0;
    -webkit-transform: scale(1.03);
            transform: scale(1.03);
  }
  .p-kv__x::before {
    content: "";
    display: block;
    width: 6px;
    height: 6px;
    position: absolute;
    right: 5.3vw;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    background-color: var(--color-black);
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    -webkit-transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
    transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  }
  .is-load .p-kv__x {
    -webkit-filter: blur(0);
            filter: blur(0);
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@media screen and (max-width: 767px) {
  .p-kv__x + .p-kv__x {
    margin-top: 10px;
  }
}

.p-header__x.is-pc a {
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-header__x.is-pc a {
    font-size: 1.6rem;
    line-height: 1;
    vertical-align: baseline;
  }
}
.p-header__x.is-pc a + a {
  margin-top: 42px;
}
@media screen and (min-width: 768px) {
  .p-header__x.is-pc a + a::before {
    content: "";
    position: absolute;
    top: -22px;
    left: 0.35rem;
    width: 11px;
    height: 1px;
    background: var(--color-black);
  }
}

@media screen and (max-width: 767px) {
  .p-header__content-list {
    margin-bottom: 12%;
  }
}
@media screen and (max-width: 767px) {
  .p-header__content-list-item.--x {
    margin-bottom: 4%;
  }
}

/******************
ENDcard modal
*******************/
.m-modal[data-modal-type=template] .m-modal__bg {
  background: rgba(255, 255, 255, 0.8);
}

.p-endmodal {
  position: relative;
}
.p-endmodal::before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  display: block;
  width: 0;
  height: 1px;
  background: var(--color-black);
  -webkit-transition: width 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  transition: width 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  z-index: 2;
}
.p-endmodal::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 1px;
  height: 0;
  background: var(--color-black);
  -webkit-transition: height 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  transition: height 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  z-index: 2;
}
.p-endmodal.is-load-modal::before {
  width: 100%;
}
.p-endmodal.is-load-modal::after {
  height: 100%;
}
.p-endmodal__main {
  position: relative;
}
.p-endmodal__main::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 0;
  height: 1px;
  background: var(--color-black);
  -webkit-transition: width 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  transition: width 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  z-index: 2;
}
.p-endmodal__main::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 1px;
  height: 0;
  background: var(--color-black);
  -webkit-transition: height 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  transition: height 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  z-index: 2;
}
.is-load-modal .p-endmodal__main::before {
  width: 100%;
}
.is-load-modal .p-endmodal__main::after {
  height: 100%;
}
.p-endmodal__main-cap {
  position: relative;
  padding: 25px 0;
  font-size: 30px;
  text-align: center;
  color: #fff;
  font-weight: bold;
  opacity: 0;
  -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
}
.is-load-modal .p-endmodal__main-cap {
  opacity: 1;
}
@media screen and (max-width: 767px) {
  .p-endmodal__main-cap {
    padding: 11px 0;
    font-size: 1.4rem;
  }
}
.p-endmodal__main-cap span {
  opacity: 0;
  -webkit-filter: blur(8px);
          filter: blur(8px);
  -webkit-transform: scale(1.03);
          transform: scale(1.03);
  -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s;
  transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s;
  transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.2s;
}
.is-load-modal .p-endmodal__main-cap span {
  opacity: 1;
  -webkit-filter: blur(0);
          filter: blur(0);
  -webkit-transform: scale(1);
          transform: scale(1);
}
.p-endmodal__main-cap::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: var(--color-black);
  opacity: 0;
  -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
}
.is-load-modal .p-endmodal__main-cap::before {
  opacity: 1;
}
.p-endmodal__main-cap::after {
  content: "";
  display: block;
  width: 8px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: -webkit-gradient(linear, left bottom, left top, from(var(--color-red)), to(var(--color-blue)));
  background: linear-gradient(to top, var(--color-red), var(--color-blue));
}
@media screen and (max-width: 767px) {
  .p-endmodal__main-cap::after {
    width: 3px;
  }
}
.p-endmodal__main-cap span {
  vertical-align: baseline;
}
.p-endmodal__main-cap-btn {
  display: block;
  width: 33px;
  height: 33px;
  cursor: pointer;
  position: absolute;
  top: 25px;
  right: 20px;
}
@media screen and (min-width: 768px) {
  .p-endmodal__main-cap-btn {
    -webkit-transform: rotate(0);
            transform: rotate(0);
    -webkit-transition: -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1);
    transition: -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1);
    transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1);
    transition: transform 0.7s cubic-bezier(0.33, 1, 0.68, 1), -webkit-transform 0.7s cubic-bezier(0.33, 1, 0.68, 1);
  }
  .p-endmodal__main-cap-btn:hover {
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
  }
}
@media screen and (max-width: 767px) {
  .p-endmodal__main-cap-btn {
    top: 10px;
    right: 11px;
    width: 15px;
    height: 15px;
  }
}
.p-endmodal__main-cap-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  background-color: #fff;
  width: 1px;
  height: 35px;
}
@media screen and (max-width: 767px) {
  .p-endmodal__main-cap-btn::before {
    height: 16px;
  }
}
.p-endmodal__main-cap-btn::after {
  content: "";
  position: absolute;
  top: 0px;
  left: 50%;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  background-color: #fff;
  width: 1px;
  height: 35px;
}
@media screen and (max-width: 767px) {
  .p-endmodal__main-cap-btn::after {
    height: 16px;
  }
}
.p-endmodal__main-img {
  display: block;
  opacity: 0;
  overflow: hidden;
  -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
}
.is-load-modal .p-endmodal__main-img {
  opacity: 1;
}
.is-load-modal .p-endmodal__main-img img {
  opacity: 1;
  -webkit-filter: blur(0);
          filter: blur(0);
}
.p-endmodal__main-img img {
  display: block;
  opacity: 0;
  -webkit-filter: blur(8px);
          filter: blur(8px);
  -webkit-transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
  transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s, filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s, -webkit-filter 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.4s;
}