@charset "UTF-8";
@font-face {
  font-family: "genkai-mincho";
  src: url("../fonts/genkai-mincho.ttf") format("truetype");
  font-weight: 900;
  font-style: normal;
}
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  padding: 0;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

html {
  font-size: min(3.5vw, 14px);
  font-weight: 300;
  font-style: normal;
  font-family: source-han-sans-japanese, sans-serif;
  color: #fff;
  line-height: 2;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  -webkit-transition: opacity 1s ease;
  transition: opacity 1s ease;
  opacity: 0;
}
html.wf-active, html.loading-delay {
  opacity: 1 !important;
}

body {
  width: 100%;
  height: 100vh;
  height: 100svh;
  background: #000;
  overflow-x: hidden;
  position: relative;
  -webkit-transition: height 0.3s ease;
  transition: height 0.3s ease;
}
body::before {
  content: "";
  width: 100%;
  height: 105vh;
  background: url(../img/bg__sp.webp);
  background-size: contain;
  opacity: 0.6;
  position: fixed;
  top: 0;
  left: 0;
}

a {
  color: #0066c0;
}

p {
  text-align: justify;
  word-break: break-all;
}
p:not(:last-of-type) {
  margin-bottom: 20px;
}
p span {
  display: inline-block;
}

span.red {
  color: red;
}
span.strong {
  font-size: 1.25rem;
  font-weight: 900;
}

strong {
  font-weight: 900;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), color-stop(0%, rgba(255, 143, 0, 0.7)));
  background: linear-gradient(transparent 60%, rgba(255, 143, 0, 0.7) 0%);
}

img {
  max-width: 100%;
  height: auto;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
}

@media screen and (min-width: 600px) {
  html {
    font-size: 20px;
  }
  body::after {
    background-size: 96px auto;
  }
  p:not(:last-of-type) {
    margin-bottom: 24px;
  }
}
@media screen and (min-width: 1280px) {
  body::before {
    background: url(../img/bg__pc.webp);
    background-size: 100% auto;
  }
  a.link:hover {
    text-decoration: underline;
  }
}
.btn {
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.btn.bg-white a {
  background: #fff;
  border: 2px solid #fff;
}
.btn.bg-white a span.svg svg path {
  fill: #000;
}
.btn.bg-white a span.txt {
  color: #000;
}
.btn.bg-white a span.arrow::after {
  border-top: 2px solid #000;
  border-right: 2px solid #000;
}
.btn a {
  width: 100%;
  padding: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  grid-template-columns: repeat(2, minmax(auto, auto));
  background: #d61519;
  color: #fff;
  line-height: 1;
  text-align: center;
}
.btn a span {
  line-height: 1;
}
.btn a span:not([class]) {
  translate: 0 -1px;
}
.btn a span.svg {
  width: 1.25rem;
  height: auto;
  aspect-ratio: 1/1;
  margin-right: 1rem;
  display: grid;
  place-items: center;
}
.btn a span.svg svg {
  width: 100%;
  aspect-ratio: 1/1;
}
.btn a span.svg svg path {
  fill: #fff;
}
.btn a span.txt {
  color: #fff;
  position: relative;
  translate: 0 0.25px;
}
.btn a span.arrow {
  margin-left: 1rem;
  width: 0.5rem;
  height: 0.5rem;
  display: grid;
  place-items: center;
  position: relative;
}
.btn a span.arrow::after {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  display: block;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  rotate: 45deg;
}

@media screen and (min-width: 1280px) {
  .btn.bg-white a {
    -webkit-transition: background-color 0.3s ease;
    transition: background-color 0.3s ease;
  }
  .btn.bg-white a:hover {
    background: #000;
  }
  .btn.bg-white a:hover span.svg path {
    fill: #fff;
  }
  .btn.bg-white a:hover span.txt {
    color: #fff;
  }
  .btn.bg-white a:hover span.arrow::after {
    border-color: #fff;
    translate: 50% -50%;
  }
  .btn.bg-white a span.arrow::after {
    -webkit-transition: border-color 0.3s ease, translate 0.3s ease;
    transition: border-color 0.3s ease, translate 0.3s ease;
  }
  .btn:not(.style-border) a {
    border: 2px solid rgba(255, 255, 255, 0);
    -webkit-transition: background-color 0.3s ease, border 0.3s ease;
    transition: background-color 0.3s ease, border 0.3s ease;
  }
  .btn:not(.style-border) a:hover {
    background: #d61519;
    border: 2px solid white;
  }
  .btn:not(.style-border) a:hover span.arrow::after {
    translate: 50% -50%;
  }
  .btn:not(.style-border) a span.arrow::after {
    -webkit-transition: translate 0.3s ease;
    transition: translate 0.3s ease;
  }
}
.notes {
  padding: 1rem;
  background: rgba(255, 255, 255, 0.25);
  border: 1px solid #000;
  border-radius: 0.25rem;
  position: relative;
  overflow: hidden;
}
.notes > p {
  padding-left: 1rem;
  font-size: 0.75rem;
  text-align: left !important;
  position: relative;
}
.notes > p:not(:last-of-type) {
  margin-bottom: 2px;
}
.notes > p::before {
  content: "※";
  font-size: 0.75rem;
  position: absolute;
  left: 0;
}

@media screen and (min-width: 600px) {
  .notes > p:not(:last-of-type) {
    margin-bottom: 4px;
  }
}
.header {
  width: 100%;
  height: 56px;
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.header__container {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
}
.header__container__btn {
  height: 56px;
  aspect-ratio: 1/1;
  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;
  row-gap: 0.5rem;
  background: #fff;
  border: 2px solid #000;
  z-index: 999;
  position: absolute;
  top: 8px;
  right: 8px;
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.header__container__btn.is-show {
  opacity: 1;
  pointer-events: fill;
  cursor: pointer;
}
.header__container__btn > p {
  width: 100%;
  font-size: 0.725rem;
  font-weight: 900;
  letter-spacing: -1px;
  line-height: 1;
  font-family: "genkai-mincho", sans-serif;
  text-align: center;
  color: #000;
  position: absolute;
  bottom: 0.125rem;
  left: 50%;
  translate: -50% 0;
}
.header__container__btn .hamburger {
  width: 32px;
  height: 16px;
  margin: 0 auto;
  position: relative;
  translate: 0 -0.4rem;
}
.header__container__btn .hamburger.on span {
  -webkit-box-shadow: 0 0 4px rgba(255, 255, 255, 0);
          box-shadow: 0 0 4px rgba(255, 255, 255, 0);
}
.header__container__btn .hamburger.on span:nth-child(1) {
  top: 12px;
  translate: -50% -3px;
  rotate: -45deg;
}
.header__container__btn .hamburger.on span:nth-child(2) {
  opacity: 0;
  translate: -60% 0;
}
.header__container__btn .hamburger.on span:nth-child(3) {
  top: 12px;
  translate: -50% -3px;
  rotate: 45deg;
}
.header__container__btn .hamburger span {
  width: 32px;
  height: 2px;
  display: inline-block;
  background: #000;
  position: absolute;
  left: 50%;
  -webkit-transition: top 0.3s ease, translate 0.3s ease, opacity 0.3s ease, rotate 0.3s ease;
  transition: top 0.3s ease, translate 0.3s ease, opacity 0.3s ease, rotate 0.3s ease;
}
.header__container__btn .hamburger span:nth-child(1) {
  top: 0;
  translate: -50% 0;
}
.header__container__btn .hamburger span:nth-child(2) {
  top: 8px;
  translate: -50% 0;
}
.header__container__btn .hamburger span:nth-child(3) {
  top: 16px;
  translate: -50% 0;
}
.header__container__nav {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  padding: 1rem;
  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;
  background: #000;
  background-size: 100% auto;
  background-position: center center;
  position: fixed;
  top: 0;
  right: 0;
  scale: 1.125 1.125;
  opacity: 0;
  -webkit-transition: scale 0.3s ease, opacity 0.3s ease;
  transition: scale 0.3s ease, opacity 0.3s ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
  will-change: auto;
}
.header__container__nav.show {
  scale: 1 1;
  opacity: 1;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto;
  pointer-events: fill;
  will-change: transform;
}
.header__container__nav.show::before {
  top: 0;
  left: 0;
}
.header__container__nav.show::after {
  bottom: 0;
  right: 0;
}
.header__container__nav .header-nav {
  width: min(100%, 600px);
  min-height: 50vh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  place-items: center;
  position: relative;
}
.header__container__nav .header-nav__title {
  display: none;
}
.header__container__nav .header-nav__list {
  padding: 2.5rem 0;
  display: grid;
  gap: 3rem;
  z-index: 1;
}
.header__container__nav .header-nav__list__item {
  display: grid;
  place-items: center;
  position: relative;
}
.header__container__nav .header-nav__list__item::before {
  content: "";
  width: 10rem;
  height: auto;
  aspect-ratio: 136/91;
  background: url(../img/bullet-hole--red.webp);
  background-size: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -40% -57.5%;
  z-index: 2;
  scale: 1.1;
  opacity: 0;
  -webkit-transition: scale 0.2s ease, opacity 0.2s ease;
  transition: scale 0.2s ease, opacity 0.2s ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
}
.header__container__nav .header-nav__list__item:not(:last-of-type)::after {
  content: "";
  width: 1px;
  height: 2.5rem;
  background: #fff;
  position: absolute;
  bottom: -2.75rem;
  left: 50%;
  -webkit-transform: rotate(15deg);
          transform: rotate(15deg);
}
.header__container__nav .header-nav__list__item.current {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  pointer-events: none;
}
.header__container__nav .header-nav__list__item.current::before {
  opacity: 1;
  scale: 1;
}
.header__container__nav .header-nav__list__item.current a {
  opacity: 0.75;
  -webkit-transform: rotate(-8deg);
          transform: rotate(-8deg);
}
.header__container__nav .header-nav__list__item a {
  display: grid;
  place-items: center;
  line-height: 1;
  color: #fff;
  font-family: "genkai-mincho", sans-serif;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.header__container__nav .header-nav__list__item a .main {
  font-size: 1.875rem;
  text-transform: uppercase;
}
.header__container__nav .header-nav__list__item a .sub {
  font-size: 0.725rem;
  position: relative;
}

@media screen and (min-width: 900px) {
  .header {
    width: 100%;
    height: 100%;
    position: relative;
    pointer-events: fill;
    -webkit-user-select: auto;
       -moz-user-select: auto;
        -ms-user-select: auto;
            user-select: auto;
    position: absolute;
    right: 0;
    z-index: 2;
  }
  .header__container__btn {
    display: none;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
  }
  .header__container__nav {
    width: calc(40% - 1rem);
    padding: min(2vw, 24px);
    background: initial;
    scale: 1 1;
    opacity: 1;
    -webkit-user-select: auto;
       -moz-user-select: auto;
        -ms-user-select: auto;
            user-select: auto;
    pointer-events: fill;
  }
  .header__container__nav::before, .header__container__nav::after {
    display: none;
  }
  .header__container__nav .header-nav {
    --borderWidth: 48px;
    --borderHeight: 48px;
  }
  .header__container__nav .header-nav__title {
    width: auto;
    height: min(6vw, 75px);
    aspect-ratio: 112/27;
    display: block;
    z-index: 1;
    position: absolute;
    top: calc(-1 * min(6vw, 75px) / 2);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    pointer-events: none;
  }
  .header__container__nav .header-nav__list {
    padding-top: calc(min(6vw, 75px) / 1.5);
  }
  .header__container__nav .header-nav__list__item.current a {
    opacity: 0.5;
  }
  .header__container__nav .header-nav__list__item a .main {
    font-size: min(2.5vw, 28px);
  }
}
@media screen and (min-width: 1280px) {
  .header__container__nav .header-nav {
    --borderWidth: 56px;
    --borderHeight: 56px;
  }
  .header__container__nav .header-nav__list li a:hover {
    opacity: 0.5;
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .header__container__nav .header-nav__list li a .main {
    font-size: min(2vw, 28px);
  }
}
@media screen and (min-width: 1600px) {
  .header__container__nav {
    width: 27.5%;
  }
}
footer {
  position: relative;
  background: #3c3c3c;
  z-index: 1;
}
footer .footer__container {
  padding: 48px 24px;
  display: grid;
  gap: 48px;
  position: relative;
}
footer .footer__container__share {
  display: grid;
  place-items: center;
  gap: 16px;
}
footer .footer__container__share > p {
  padding: 8px 32px;
  border: 1px solid #fff;
  border-radius: calc(infinity * 1px);
  font-size: 0.825rem;
  line-height: 1;
  color: #fff;
}
footer .footer__container__share .share-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 48px));
  gap: 8px;
}
footer .footer__container__share .share-list__item {
  height: 48px;
}
footer .footer__container__share .share-list__item.share__twitter a {
  background: #000;
}
footer .footer__container__share .share-list__item.share__line a {
  background: #00C300;
}
footer .footer__container__share .share-list__item.share__facebook a {
  background: #3B5998;
}
footer .footer__container__share .share-list__item a {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  border: 1px solid #fff;
  padding: 8px;
  border-radius: 50%;
}
footer .footer__container__share .share-list__item a svg {
  display: block;
  width: 24px;
  height: 24px;
}
footer .footer__container__share .share-list__item a svg path {
  fill: #fff;
}
footer .footer__container__logo a {
  max-width: 400px;
  margin: 0 auto;
  padding: 8px;
  display: block;
  border: 1px solid #fff;
  border-radius: 4px;
  overflow: hidden;
}
footer .footer__container__txt {
  padding: 24px 16px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid #fff;
  border-radius: 0.5rem;
}
footer .footer__container__txt p {
  text-align: center;
}
footer .footer__container__copy p {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 1rem;
     -moz-column-gap: 1rem;
          column-gap: 1rem;
  row-gap: 4px;
  font-size: 0.675rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  color: #fff;
}
footer .footer__container__notes {
  padding: 16px 8px;
  background: rgba(0, 0, 0, 0.125);
  border-radius: 4px;
}
footer .footer__container__notes p {
  font-size: 10px;
  font-weight: 500;
  color: #fff;
}

@media screen and (min-width: 600px) {
  footer {
    border-radius: 0;
  }
  footer .footer__container {
    width: calc(100% - min(8vw, 144px));
    margin: 0 auto;
    padding: min(4vw, 72px) 0;
    gap: min(4vw, 72px);
  }
  footer .footer__container__share {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  footer .footer__container__txt {
    border-radius: 24px;
  }
  footer .footer__container__notes {
    padding: min(4vw, 72px);
    border-radius: 24px;
  }
  footer .footer__container__notes p {
    font-size: 12px;
  }
}
@media screen and (min-width: 1280px) {
  footer .footer__container__share .share-list__item a:hover svg {
    scale: 1.25;
  }
  footer .footer__container__share .share-list__item a svg {
    -webkit-transition: scale 0.3s ease;
    transition: scale 0.3s ease;
  }
  footer .footer__container__logo a {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  footer .footer__container__logo a:hover {
    opacity: 0.5;
  }
  footer .footer__container__logo a:hover img {
    scale: 1.075;
  }
  footer .footer__container__logo a img {
    -webkit-transition: scale 0.3s ease;
    transition: scale 0.3s ease;
  }
  footer .footer__container__notes {
    padding: 32px;
  }
  footer .footer__container__notes p {
    font-size: 13px;
  }
}