.main_inner {
  margin: 0 auto;
}
@media (min-width: 769px) {
  .main_inner {
    max-width: 112rem;
    padding: 21rem 10px 0;
  }
}
@media (max-width: 768px) {
  .main_inner {
    max-width: 82.667%;
    padding: 31.3rem 0 0;
  }
}

.story_head {
  display: flex;
  flex-direction: column;
}
@media (min-width: 769px) {
  .story_head {
    row-gap: 3.5rem;
    padding: 0 0 11.5rem;
  }
}
@media (max-width: 768px) {
  .story_head {
    row-gap: 4.5rem;
    padding: 0 0 19.5rem;
  }
}
.story_head h1 {
  letter-spacing: 0.015em;
  line-height: 1;
}
@media (min-width: 769px) {
  .story_head h1 {
    font-size: 7.2rem;
  }
}
@media (max-width: 768px) {
  .story_head h1 {
    font-size: 9.2rem;
  }
}
.story_head p {
  letter-spacing: 0.05em;
}
@media (min-width: 769px) {
  .story_head p {
    line-height: 1.556;
    font-size: 1.8rem;
  }
}
@media (max-width: 768px) {
  .story_head p {
    line-height: 1.786;
    font-size: 2.8rem;
  }
}
.story_body {
  position: relative;
}
.story_block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
}
@media (min-width: 769px) {
  .story_block {
    min-height: 52rem;
    padding: 7rem 0 8rem;
  }
}
@media (max-width: 768px) {
  .story_block {
    min-height: 68rem;
    padding: 12rem 0 11rem;
  }
}
@media (min-width: 769px) {
  .story_block + .story_block {
    margin-top: 2rem;
  }
}
.story_block_bg {
  position: absolute;
  width: 100vw;
  left: 50%;
  top: 0;
  bottom: 0;
  translate: -50% 0;
  pointer-events: none;
}
.story_block_bg img {
  object-fit: cover;
}
.story_block_index {
  position: relative;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media (min-width: 769px) {
  .story_block_index {
    font-size: 1.8rem;
  }
}
@media (max-width: 768px) {
  .story_block_index {
    font-size: 2.8rem;
  }
}
.story_block_title {
  position: relative;
  letter-spacing: 0.015em;
  font-weight: 500;
  text-align: center;
}
@media (min-width: 769px) {
  .story_block_title {
    padding-top: 4rem;
    line-height: 1.182;
    font-size: 4.4rem;
  }
  .story_block_title > h2 {
    font: inherit;
  }
  .story_block_title > h2:first-of-type {
    margin-top: -0.09em;
  }
  .story_block_title > h2:last-of-type {
    margin-bottom: -0.09em;
  }
}
@media (max-width: 768px) {
  .story_block_title {
    padding-top: 4rem;
    line-height: 1.27;
    font-size: 5.2rem;
    white-space: nowrap;
  }
  .story_block_title > h2 {
    font: inherit;
  }
  .story_block_title > h2:first-of-type {
    margin-top: -0.134em;
  }
  .story_block_title > h2:last-of-type {
    margin-bottom: -0.134em;
  }
}
.story_block_buttons {
  display: flex;
  justify-content: center;
  position: relative;
}
@media (min-width: 769px) {
  .story_block_buttons {
    padding-top: 5rem;
  }
}
@media (max-width: 768px) {
  .story_block_buttons {
    padding-top: 6rem;
  }
}
.story_button {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  letter-spacing: 0.015em;
  fill: #fff;
  color: #fff;
  cursor: pointer;
}
@media (min-width: 769px) {
  .story_button {
    border-radius: 6.2rem;
    width: 26rem;
    height: 6.2rem;
    padding: 1rem 3rem;
    font-size: 1.6rem;
  }
}
@media (max-width: 768px) {
  .story_button {
    border-radius: 10rem;
    width: 40rem;
    height: 10rem;
    padding: 2rem 5rem;
    font-size: 2.8rem;
  }
}
.story_button::before {
  content: "";
  position: absolute;
  border: 1px solid;
  inset: 0;
  pointer-events: none;
}
@media (min-width: 769px) {
  .story_button::before {
    border-radius: 6.2rem;
  }
}
@media (max-width: 768px) {
  .story_button::before {
    border-radius: 10rem;
  }
}
.story_button > div {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.story_button > div > p {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 0.875em;
  position: absolute;
  inset: 0;
  overflow: hidden;
  transform-origin: left top;
  white-space: nowrap;
}
.story_button > div > p svg {
  flex-shrink: 0;
  width: 1.125em;
  height: 1.125em;
}
.story_button > div > p:nth-of-type(1) {
  rotate: 0deg;
  translate: 0 0;
  transition: 0.3s ease-out;
}
.story_button > div > p:nth-of-type(2) {
  rotate: 30deg;
  translate: 0 100%;
  transition: 0.3s ease-in;
}
.story_button:hover > div > p:nth-of-type(1) {
  rotate: -30deg;
  translate: 0 -100%;
  transition-timing-function: ease-in;
}
.story_button:hover > div > p:nth-of-type(2) {
  rotate: 0deg;
  translate: 0 0;
  transition-timing-function: ease-out;
}

.epi_head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media (min-width: 769px) {
  .epi_head {
    row-gap: 5rem;
  }
}
@media (max-width: 768px) {
  .epi_head {
    row-gap: 8rem;
  }
}
.epi_head_p {
  position: relative;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media (min-width: 769px) {
  .epi_head_p {
    padding-bottom: 0.8rem;
    font-size: 2.2rem;
  }
}
@media (max-width: 768px) {
  .epi_head_p {
    padding-bottom: 1.1rem;
    font-size: 3.8rem;
  }
}
.epi_head_p::before {
  content: "";
  position: absolute;
  border-bottom: 1px solid;
  height: 0;
  bottom: 0;
  pointer-events: none;
}
@media (min-width: 769px) {
  .epi_head_p::before {
    left: -0.4rem;
    right: -0.4rem;
  }
}
@media (max-width: 768px) {
  .epi_head_p::before {
    left: -1rem;
    right: -1rem;
  }
}
.epi_head_h1 {
  letter-spacing: 0.015em;
  font-weight: 500;
}
@media (min-width: 769px) {
  .epi_head_h1 {
    line-height: 1.2;
    font-size: 6rem;
  }
  .epi_head_h1 > h1 {
    font: inherit;
  }
  .epi_head_h1 > h1:first-of-type {
    margin-top: -0.1em;
  }
  .epi_head_h1 > h1:last-of-type {
    margin-bottom: -0.1em;
  }
}
@media (max-width: 768px) {
  .epi_head_h1 {
    line-height: 1.171;
    font-size: 8.2rem;
  }
  .epi_head_h1 > h1 {
    font: inherit;
  }
  .epi_head_h1 > h1:first-of-type {
    margin-top: -0.085em;
  }
  .epi_head_h1 > h1:last-of-type {
    margin-bottom: -0.085em;
  }
}
@media (min-width: 769px) {
  .epi_head + .epi_body {
    margin-top: 10rem;
  }
}
@media (max-width: 768px) {
  .epi_head + .epi_body {
    margin-top: 15rem;
  }
}
.epi_body {
  position: relative;
  margin: 0 auto;
}
@media (min-width: 769px) {
  .epi_body {
    max-width: 79rem;
  }
}
.epi_kv {
  position: relative;
}
@media (min-width: 769px) {
  .epi_kv {
    width: 100vw;
    height: 52rem;
    margin: 0 calc(405px - 50vw);
  }
}
@media (max-width: 768px) {
  .epi_kv {
    width: 120.968%;
    margin: 0 -10.483%;
  }
}
@media (min-width: 769px) {
  .epi_kv + .epi_caption {
    padding-top: 10rem;
  }
}
@media (max-width: 768px) {
  .epi_kv + .epi_caption {
    padding-top: 15rem;
  }
}
.epi_caption {
  position: relative;
}
@media (min-width: 769px) {
  .epi_caption + .epi_image {
    padding-top: 13rem;
  }
}
@media (max-width: 768px) {
  .epi_caption + .epi_image {
    padding-top: 27rem;
  }
}
@media (min-width: 769px) {
  .epi_caption + .epi_nav {
    padding-top: 14.5rem;
  }
}
@media (max-width: 768px) {
  .epi_caption + .epi_nav {
    padding-top: 24rem;
  }
}
.epi_lead {
  letter-spacing: 0.015em;
  font-weight: 500;
}
@media (min-width: 769px) {
  .epi_lead {
    line-height: 1.462;
    font-size: 2.6rem;
  }
  .epi_lead > p {
    font: inherit;
  }
  .epi_lead > p:first-of-type {
    margin-top: -0.23em;
  }
  .epi_lead > p:last-of-type {
    margin-bottom: -0.23em;
  }
}
@media (max-width: 768px) {
  .epi_lead {
    line-height: 1.45;
    font-size: 4rem;
  }
  .epi_lead > p {
    font: inherit;
  }
  .epi_lead > p:first-of-type {
    margin-top: -0.225em;
  }
  .epi_lead > p:last-of-type {
    margin-bottom: -0.225em;
  }
}
@media (min-width: 769px) {
  .epi_lead + .epi_text {
    padding-top: 5rem;
  }
}
@media (max-width: 768px) {
  .epi_lead + .epi_text {
    padding-top: 8rem;
  }
}
.epi_text {
  letter-spacing: 0.05em;
}
@media (min-width: 769px) {
  .epi_text {
    line-height: 1.778;
    font-size: 1.8rem;
  }
  .epi_text > p {
    font: inherit;
  }
  .epi_text > p:first-of-type {
    margin-top: -0.388em;
  }
  .epi_text > p:last-of-type {
    margin-bottom: -0.388em;
  }
}
@media (max-width: 768px) {
  .epi_text {
    line-height: 1.786;
    font-size: 2.8rem;
  }
  .epi_text > p {
    font: inherit;
  }
  .epi_text > p:first-of-type {
    margin-top: -0.392em;
  }
  .epi_text > p:last-of-type {
    margin-bottom: -0.392em;
  }
}
.epi_image {
  position: relative;
}
@media (min-width: 769px) {
  .epi_image + .epi_nav {
    padding-top: 11.5rem;
  }
}
@media (max-width: 768px) {
  .epi_image + .epi_nav {
    padding-top: 14rem;
  }
}
.epi_nav_list {
  display: flex;
  justify-content: center;
}
@media (max-width: 768px) {
  .epi_nav_list {
    flex-wrap: wrap;
    row-gap: 5rem;
  }
}
.epi_nav_list > li {
  display: flex;
  justify-content: center;
  position: relative;
}
@media (min-width: 769px) {
  .epi_nav_list > li {
    padding: 0 5rem;
  }
}
@media (max-width: 768px) {
  .epi_nav_list > li {
    width: 26.4rem;
  }
  .epi_nav_list > li::after {
    content: "";
    position: absolute;
    border-left: 1px solid;
    height: 2.8rem;
    top: 50%;
    translate: 0 -50%;
    pointer-events: none;
  }
  .epi_nav_list > li:nth-of-type(2n+1)::after {
    left: 0;
  }
  .epi_nav_list > li:nth-of-type(2n)::after {
    right: 0;
  }
  .epi_nav_list > li:nth-of-type(2n)::before {
    content: "";
    position: absolute;
    border-left: 1px solid;
    height: 2.8rem;
    left: 0;
    top: 50%;
    translate: -50% -50%;
    pointer-events: none;
  }
}
@media (min-width: 769px) {
  .epi_nav_list > li + li::before {
    content: "";
    position: absolute;
    border-left: 1px solid;
    height: 1.6rem;
    left: 0;
    top: 50%;
    translate: -50% -50%;
    pointer-events: none;
  }
}
.epi_nav_link {
  letter-spacing: 0.015em;
}
@media (min-width: 769px) {
  .epi_nav_link {
    line-height: 1.556;
    font-size: 1.8rem;
  }
}
@media (max-width: 768px) {
  .epi_nav_link {
    line-height: 1.715;
    font-size: 2.8rem;
  }
}
.epi_nav_link.is-current {
  opacity: 0.5;
  pointer-events: none;
}
.epi_nav_link span {
  position: relative;
}
.epi_nav_link span::before {
  content: "";
  position: absolute;
  border-bottom: 1px solid;
  left: 0;
  right: 0;
  bottom: 0.05em;
  scale: 0 1;
  transition: scale 0.2s linear;
  transform-origin: right bottom;
  pointer-events: none;
}
.epi_nav_link:hover span::before {
  scale: 1 1;
  transform-origin: left bottom;
}