@charset "UTF-8";
:root {
  --color-text-primary: #000000;
  --color-text-primary-rgb: 0, 0, 0;
  --color-black: #000000;
  --color-black-rgb: 0, 0, 0;
  --color-inverse: #FFFFFF;
  --color-inverse-rgb: 255, 255, 255;
  --color-bg: #F0EFED;
  --color-bg-rgb: 240, 239, 237;
  --color-accent: #F07800;
  --color-accent-rgb: 240, 120, 0;
  --color-border: rgba(0, 0, 0, 0.12);
  --ff-base: "YakuHanMP", "Noto Serif JP", serif;
  --ff-en: "Space Grotesk", sans-serif;
  --canvas-width: 1440px;
  --inner-width: 1200px;
  --inner-width-no-unit: 1200;
  --sp-max-width: 767px;
  --padding-base: 30px;
  --header-height-sm: 75px;
  --header-height-md: 10rem;
  --layer-loading: 300;
  --layer-modal: 100;
  --layer-drawer: 20;
  --layer-floating: 30;
  --layer-header: 40;
  --layer-footer: 10;
  --layer-default: 1;
  --shadow1: drop-shadow(0px 0px 32px #FFF);
  scrollbar-gutter: stable;
}

*,
::before,
::after {
  box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td {
  border: 0;
  margin: 0;
  padding: 0;
}

ol,
ul {
  list-style: none;
  list-style-type: none;
}

img {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}

html {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  font-feature-settings: "palt";
  font-size: 10px;
}
@media (max-width: 767px) {
  html {
    font-size: clamp(9px, 2.55vw, 11px);
  }
}
@media (min-width: 768px) {
  html {
    font-size: max(10 / 1200 * 100vw, 7px);
  }
}
@media screen and (min-width: 1200px) {
  html {
    font-size: 10px;
  }
}

body {
  background-color: var(--color-black);
  color: var(--color-text-primary);
  display: flex;
  flex-direction: column;
  font-family: var(--ff-base);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.55;
  margin: 0;
  max-width: 100%;
  min-height: 100vh;
  overflow-x: clip;
  width: 100%;
}
@media (min-width: 768px) {
  body {
    font-size: 1.6rem;
  }
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

[hidden],
template {
  display: none;
}

a {
  background-color: transparent;
}

a:active,
a:hover {
  outline: 0;
}

b,
strong {
  font-weight: bold;
}

*:focus {
  outline: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
}

.l-wrapper {
  overflow: clip;
  width: 100%;
}

img {
  -webkit-touch-callout: none; /* iOS用：これが一番大事 */
  -webkit-user-select: none; /* 画像選択の無効化 */
  -moz-user-select: none;
  border: 0;
  height: auto;
  max-width: 100%;
  user-select: none; /* Android等の選択無効化 */
}

iframe {
  border: none;
}

a {
  color: inherit;
  transition: opacity 0.3s;
}

@media (hover: hover) and (pointer: fine) {
  a:hover {
    opacity: 0.7;
  }
}
.l-inner {
  margin-inline: auto;
  max-width: 550px;
  width: calc(100% - 2 * var(--padding-base));
}
@media (min-width: 768px) {
  .l-inner {
    max-width: 1440px;
    width: 80%;
  }
}
@media screen and (min-width: 1200px) {
  .l-inner {
    width: 75%;
  }
}

.l-inner.has-line {
  position: relative;
}
.l-inner.has-line::before, .l-inner.has-line::after {
  background-color: var(--color-text-primary);
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 1px;
  z-index: 1;
}
.l-inner.has-line::before {
  left: 0;
}
.l-inner.has-line::after {
  right: 0;
}

.l-inner.has-line--inverse::before, .l-inner.has-line--inverse::after {
  background-color: var(--color-inverse);
}

@media (max-width: 767px) {
  .l-inner.has-line.--lg-only::before, .l-inner.has-line.--lg-only::after {
    display: none;
  }
}

.uppercase {
  text-transform: uppercase;
}

.lowercase {
  text-transform: lowercase;
}

.img-shadow {
  filter: drop-shadow(0px 20px 20px rgba(0, 0, 0, 0.5));
  transform: translateZ(0);
}

body.is-loading {
  overflow: hidden;
}

.l-loading {
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9999;
}

.l-loading__inner {
  background: url(../images/loading_bg-sm.webp) no-repeat center center/cover;
  height: 100%;
  position: relative;
  width: 100%;
}
@media (min-width: 768px) {
  .l-loading__inner {
    background-image: url(../images/loading_bg-lg.webp);
  }
}

.l-loading__title {
  filter: blur(6px);
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: filter 1.6s ease, opacity 1.4s ease, top 1s ease;
}

.l-loading__title.is-visible {
  filter: blur(0);
  opacity: 1;
  top: 50%;
}

.l-loading__copy {
  display: flex;
  filter: blur(13px);
  flex-direction: row-reverse;
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: filter 2.4s ease, opacity 2s ease;
}
.l-loading__copy p {
  font-feature-settings: "vpal" 1, "vkrn" 1;
  color: var(--color-inverse);
  font-family: "Noto Serif JP", serif;
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  writing-mode: vertical-rl;
}
.l-loading__copy p:last-child {
  align-items: center;
  display: flex;
  gap: 1rem;
  padding-inline-start: 2em;
}
.l-loading__copy p:last-child::after {
  background-color: var(--color-inverse);
  content: "";
  display: block;
  height: 1.5em;
  width: 1px;
}

.l-loading__copy.is-visible {
  filter: blur(0);
  opacity: 1;
}

.l-loading__gear {
  aspect-ratio: 232/233;
  opacity: 0;
  position: absolute;
  transition: opacity 1s ease;
  width: 27.4rem;
  z-index: 2;
}
@media (min-width: 768px) {
  .l-loading__gear {
    width: 61.79951rem;
  }
}
@media screen and (min-width: 1200px) {
  .l-loading__gear {
    width: clamp(61.79951rem, 61.79951rem + 19.10049rem * (100vw - 1440px) / 480px, 80.9rem);
  }
}
.l-loading__gear img {
  width: 100%;
}

.l-loading__gear.is-visible {
  opacity: 1;
}

.l-loading__gear01 {
  right: -16rem;
  top: -8rem;
}
@media (min-width: 768px) {
  .l-loading__gear01 {
    right: -45.834rem;
    top: -30.556rem;
  }
}

.l-loading__gear02 {
  bottom: -16rem;
  left: -10rem;
}
@media (min-width: 768px) {
  .l-loading__gear02 {
    bottom: -34.3755rem;
    left: -49.6535rem;
  }
}

.l-header__hamburger {
  align-items: center;
  background: rgba(0, 0, 0, 0.8);
  border: none;
  border: 1px solid var(--color-black);
  display: flex;
  flex-direction: column;
  gap: 3px;
  height: 50px;
  justify-content: center;
  margin-left: auto;
  position: fixed;
  right: 10px;
  top: 10px;
  transition: background-color 0.2s;
  width: 50px;
  z-index: 80;
}
@media (min-width: 768px) {
  .l-header__hamburger {
    right: 24px;
    top: 24px;
  }
}
.l-header__hamburger .hamburger-line-wrap {
  height: 19px;
  overflow: hidden;
  position: relative;
  width: 19px;
}
.l-header__hamburger .hamburger-line {
  background-color: var(--color-inverse);
  display: block;
  height: 1px;
  position: absolute;
  transition: background-color 0.3s, top 0.3s, transform 0.3s, opacity 0.3s;
  width: 100%;
}
.l-header__hamburger .hamburger-line.top {
  top: 3px;
}
.l-header__hamburger .hamburger-line.middle {
  top: calc(50% - 1px);
}
.l-header__hamburger .hamburger-line.bottom {
  top: 14px;
}

.l-header__hamburger.is-active {
  background-color: var(--color-inverse);
}
.l-header__hamburger.is-active .hamburger-line.top {
  background-color: var(--color-black);
  top: calc(50% - 1px);
  transform: rotate(35deg);
}
.l-header__hamburger.is-active .hamburger-line.middle {
  opacity: 0;
}
.l-header__hamburger.is-active .hamburger-line.bottom {
  background-color: var(--color-black);
  top: calc(50% - 1px);
  transform: rotate(-35deg);
}

.l-drawer {
  background-color: rgba(0, 0, 0, 0.7);
  display: flex;
  height: 100dvh;
  opacity: 0;
  position: fixed;
  right: 0;
  top: 0;
  transition: opacity 0.3s, visibility 0.3s;
  visibility: hidden;
  width: 100%;
  z-index: 79;
}
@media (min-width: 768px) {
  .l-drawer {
    max-width: 480px;
  }
}

.l-drawer.is-visible {
  opacity: 1;
  visibility: visible;
}

.l-drawer__inner {
  background-color: var(--color-inverse);
  height: -moz-fit-content;
  height: fit-content;
  padding: 4rem 2.4rem 6.4rem;
  width: 100%;
}
@media (min-width: 768px) {
  .l-drawer__inner {
    height: 100%;
    padding: 4rem 4rem 6.4rem;
  }
}

.l-drawer__nav {
  margin-top: 3.6rem;
}
.l-drawer__nav ul {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
}
.l-drawer__nav ul li a span {
  display: block;
}
.l-drawer__nav ul li a span:first-child {
  font-family: var(--ff-en);
  font-size: 2.5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.21;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .l-drawer__nav ul li a span:first-child {
    font-size: 28px;
  }
}
.l-drawer__nav ul li a span:last-child {
  font-family: var(--ff-serif);
  font-size: 11px;
  font-weight: 500;
}
@media (min-width: 768px) {
  .l-drawer__nav ul li a span:last-child {
    font-size: 15px;
  }
}

.l-footer {
  background-color: var(--color-black);
  border-top: 1px solid var(--color-inverse);
  padding-block-end: 13.4rem;
  padding-block-start: 9.5rem;
  position: relative;
  text-align: center;
}
@media (min-width: 768px) {
  .l-footer {
    padding-block-end: r(196);
  }
}

.l-footer__text p {
  color: var(--color-inverse);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .l-footer__text p {
    font-size: 1.5rem;
  }
}

@keyframes fadeUp {
  0% {
    filter: blur(6px);
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    filter: blur(0);
    opacity: 1;
    transform: translateY(0);
  }
}
.js-anime.fadeUp {
  filter: blur(6px);
  opacity: 0;
  transform: translateY(20px);
}

@keyframes fadeDown {
  0% {
    filter: blur(6px);
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    filter: blur(0);
    opacity: 1;
    transform: translateY(0);
  }
}
.js-anime.fadeDown {
  opacity: 0;
  transform: translateY(-20px);
}

.fadeUp.fadeUpFast.is-visible {
  animation: fadeUp 0.3s ease-out forwards;
}

.fadeUp.is-visible {
  animation: fadeUp 0.5s ease-in forwards;
}

.fadeDown.is-visible {
  animation: fadeDown 0.3s ease-out forwards;
}

@keyframes gear-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes gear-rotate-reverse {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(-360deg);
  }
}
.gear-rotate {
  animation: gear-rotate 20s linear infinite;
}

.gear-rotate--reverse {
  animation: gear-rotate-reverse 20s linear infinite;
}

.gear-rotate--slow {
  animation-duration: 35s;
}

.c-heading {
  color: var(--color-text-primary);
  font-family: var(--ff-en);
  font-size: 4.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .c-heading {
    line-height: 1.27;
    text-align: center;
  }
}
@media (min-width: 768px) {
  .c-heading {
    font-size: 6.1112rem;
  }
}
@media screen and (min-width: 1200px) {
  .c-heading {
    font-size: clamp(6.1112rem, 6.1112rem + 1.8888rem * (100vw - 1440px) / 480px, 8rem);
  }
}

.c-heading.color-inverse {
  color: var(--color-inverse);
}

.c_buttonWrap {
  display: flex;
  justify-content: center;
}

.c_button {
  background-color: var(--color-black);
  border-radius: 12px;
  color: var(--color-inverse);
  display: inline-block;
  font-family: var(--ff-manrope);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  padding: 16px 80px;
  text-align: center;
  text-transform: uppercase;
  transition: opacity 0.3s ease;
}
@media (min-width: 768px) {
  .c_button {
    min-width: 240px;
    padding: 20px;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c_button:hover {
    opacity: 0.7;
  }
}

.p-top {
  filter: blur(16px);
  opacity: 0;
  overflow: clip;
  position: relative;
  transform: translateY(20px);
  transition: opacity 1s ease-out, filter 1s ease-out, transform 0.5s ease-out;
}
.p-top.is-visible {
  filter: blur(0);
  opacity: 1;
  transform: translateY(0);
}
@media (min-width: 768px) {
  .p-top {
    background: url(../images/top_bg-lg.webp) no-repeat center center/cover;
  }
}

.p-kv {
  position: relative;
  z-index: 1;
}
@media (max-width: 767px) {
  .p-kv {
    padding-block-end: 3rem;
  }
}
.p-kv::before {
  background: linear-gradient(to bottom, #000, rgba(0, 0, 0, 0));
  content: "";
  display: block;
  height: 50%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.p-kv::after {
  background-color: var(--color-inverse);
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  z-index: 1;
}

@media (min-width: 768px) {
  .p-kv__bg {
    background-color: rgba(0, 0, 0, 0.75);
    height: 50%;
    position: absolute;
    width: 10vw;
    z-index: 2;
  }
}
@media screen and (min-width: 1200px) {
  .p-kv__bg {
    width: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-kv__bg {
    width: calc((100vw - 1440px) / 2);
  }
}

.p-kv__bg01 {
  left: -10vw;
  top: 0;
}
@media screen and (min-width: 1200px) {
  .p-kv__bg01 {
    left: -12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-kv__bg01 {
    left: calc((100vw - 1440px) / -2);
  }
}

.p-kv__bg02 {
  bottom: 0;
  right: -10vw;
}
@media screen and (min-width: 1200px) {
  .p-kv__bg02 {
    right: -12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-kv__bg02 {
    right: calc((100vw - 1440px) / -2);
  }
}

.p-kv__gear {
  aspect-ratio: 809/781;
  position: absolute;
  width: 61.79951rem;
  z-index: 3;
}
@media screen and (min-width: 1200px) {
  .p-kv__gear {
    width: clamp(61.79951rem, 61.79951rem + 19.10049rem * (100vw - 1440px) / 480px, 80.9rem);
  }
}

.p-kv__gear01 {
  bottom: -9.9307rem;
  left: -10.6946rem;
}
@media screen and (min-width: 1200px) {
  .p-kv__gear01 {
    bottom: clamp(-9.9307rem, -9.9307rem + -3.0693rem * (100vw - 1440px) / 480px, -13rem);
    left: clamp(-26.7365rem, -26.7365rem + -8.2635rem * (100vw - 1440px) / 480px, -35rem);
  }
}

.p-kv__gear02 {
  right: -38.195rem;
  top: -30.556rem;
}
@media screen and (min-width: 1200px) {
  .p-kv__gear02 {
    right: clamp(-38.195rem, -38.195rem + -11.805rem * (100vw - 1440px) / 480px, -50rem);
    top: clamp(-38.195rem, -38.195rem + -11.805rem * (100vw - 1440px) / 480px, -50rem);
    width: clamp(61.79951rem, 61.79951rem + 19.10049rem * (100vw - 1440px) / 480px, 80.9rem);
  }
}

@media (max-width: 767px) {
  .p-kv__inner {
    max-width: unset;
    padding: 0;
    width: unset;
  }
}

.p-kv__visual {
  position: relative;
  z-index: 4;
}
.p-kv__visual img {
  display: block;
  width: 100%;
}

.p-intro {
  border-top: 1px solid var(--color-inverse);
  position: relative;
  z-index: 2;
}
.p-intro::before, .p-intro::after {
  background-color: var(--color-inverse);
  content: "";
  display: block;
  height: 7.7rem;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 1px;
}
@media (min-width: 768px) {
  .p-intro::before, .p-intro::after {
    height: 5.88203rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro::before, .p-intro::after {
    height: clamp(5.88203rem, 5.88203rem + 1.81797rem * (100vw - 1440px) / 480px, 7.7rem);
  }
}
.p-intro::before {
  top: 6rem;
}
@media (min-width: 768px) {
  .p-intro::before {
    top: 2.44448rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro::before {
    top: clamp(2.44448rem, 2.44448rem + 0.75552rem * (100vw - 1440px) / 480px, 3.2rem);
  }
}
.p-intro::after {
  bottom: 4rem;
}
@media (min-width: 768px) {
  .p-intro::after {
    bottom: 3.36116rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro::after {
    bottom: clamp(3.36116rem, 3.36116rem + 1.03884rem * (100vw - 1440px) / 480px, 4.4rem);
  }
}

.p-intro__inner {
  padding-block-end: 17.5rem;
  padding-block-start: 20rem;
  position: relative;
}
@media (min-width: 768px) {
  .p-intro__inner {
    background-color: rgba(0, 0, 0, 0.5);
    padding-block-end: 13.44464rem;
    padding-block-start: 9.9307rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro__inner {
    padding-block-end: clamp(13.44464rem, 13.44464rem + 4.15536rem * (100vw - 1440px) / 480px, 17.6rem);
    padding-block-start: clamp(9.9307rem, 9.9307rem + 3.0693rem * (100vw - 1440px) / 480px, 13rem);
  }
}

.p-intro__smoke {
  bottom: 0;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
}
@media (max-width: 767px) {
  .p-intro__smoke {
    aspect-ratio: 611/1027;
    width: 155.47vw;
  }
}
@media (min-width: 768px) {
  .p-intro__smoke {
    aspect-ratio: 983/654;
    width: 75.09137rem;
  }
}

.p-intro__gear {
  position: absolute;
  z-index: 2;
}
.p-intro__gear img {
  -o-object-fit: contain;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.p-intro__gear01 {
  aspect-ratio: 407/392;
  left: -9rem;
  top: -6.6rem;
  width: 20.3rem;
}
@media (min-width: 768px) {
  .p-intro__gear01 {
    left: -12.29879rem;
    top: 25%;
    width: 31.09073rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro__gear01 {
    left: clamp(-12.29879rem, -12.29879rem + -3.80121rem * (100vw - 1440px) / 480px, -16.1rem);
    width: clamp(31.09073rem, 31.09073rem + 9.60927rem * (100vw - 1440px) / 480px, 40.7rem);
  }
}

.p-intro__gear02 {
  aspect-ratio: 450/451;
  left: -14.6rem;
  width: 22.5rem;
}
@media (max-width: 767px) {
  .p-intro__gear02 {
    top: 11.5rem;
  }
}
@media (min-width: 768px) {
  .p-intro__gear02 {
    bottom: -3.8195rem;
    left: -22.30588rem;
    width: 34.3755rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro__gear02 {
    left: calc(clamp(22.30588rem, 22.30588rem + 6.89412rem * (100vw - 1440px) / 480px, 29.2rem) * -1);
    width: clamp(34.3755rem, 34.3755rem + 10.6245rem * (100vw - 1440px) / 480px, 45rem);
  }
}

.p-intro__gear03 {
  aspect-ratio: 407/392;
  bottom: -2rem;
  right: -5rem;
  width: 20.3rem;
  z-index: 4;
}
@media (min-width: 768px) {
  .p-intro__gear03 {
    bottom: 15%;
    right: -12.9863rem;
    width: 31.09073rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-intro__gear03 {
    right: clamp(-12.9863rem, -12.9863rem + -4.0137rem * (100vw - 1440px) / 480px, -17rem);
    width: clamp(31.09073rem, 31.09073rem + 9.60927rem * (100vw - 1440px) / 480px, 40.7rem);
  }
}

.p-intro__gear04 {
  aspect-ratio: 1;
  bottom: -19.70862rem;
  right: -21.3892rem;
  width: 39.41724rem;
}
@media screen and (min-width: 1200px) {
  .p-intro__gear04 {
    bottom: clamp(-19.70862rem, -19.70862rem + -6.09138rem * (100vw - 1440px) / 480px, -25.8rem);
    right: clamp(-21.3892rem, -21.3892rem + -6.6108rem * (100vw - 1440px) / 480px, -28rem);
    width: clamp(39.41724rem, 39.41724rem + 12.18276rem * (100vw - 1440px) / 480px, 51.6rem);
  }
}

.p-intro__heading {
  position: relative;
  text-align: center;
  z-index: 5;
}
@media (max-width: 767px) {
  .p-intro__heading {
    font-size: 4rem;
  }
}

.p-intro__texts {
  margin-block-start: 3.2rem;
  position: relative;
  z-index: 5;
}
.p-intro__texts p {
  color: var(--color-inverse);
  font-size: 1.5rem;
  line-height: 1.75;
  text-align: center;
}
@media screen and (min-width: 1200px) {
  .p-intro__texts p {
    font-size: clamp(1.37502rem, 1.37502rem + 0.42498rem * (100vw - 1440px) / 480px, 1.8rem);
  }
}
.p-intro__texts p + p {
  margin-block-start: 1.8em;
}

.p-message {
  background: url(../images/message_bg-sm.webp) no-repeat center center/cover;
  position: relative;
}
@media (max-width: 767px) {
  .p-message {
    overflow: clip;
  }
}
@media (min-width: 768px) {
  .p-message {
    background-image: url(../images/message_bg-lg.webp);
  }
}

.p-message__wrapper {
  height: 100%;
  overflow: clip;
  position: relative;
  width: 100%;
}

.p-message__gear01 {
  aspect-ratio: 294/294;
  position: absolute;
  right: -18rem;
  top: -18rem;
  width: 29.4rem;
}
@media (min-width: 768px) {
  .p-message__gear01 {
    right: -21.3892rem;
    top: -22.917rem;
    width: 39.41724rem;
    z-index: 2;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__gear01 {
    right: clamp(-21.3892rem, -21.3892rem + -6.6108rem * (100vw - 1440px) / 480px, -28rem);
    top: clamp(-22.917rem, -22.917rem + -7.083rem * (100vw - 1440px) / 480px, -30rem);
    width: clamp(39.41724rem, 39.41724rem + 12.18276rem * (100vw - 1440px) / 480px, 51.6rem);
  }
}
.p-message__gear01 img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-message__gear02 {
  aspect-ratio: 294/294;
  bottom: -26.7365rem;
  left: -21.3892rem;
  position: absolute;
  width: 39.41724rem;
  z-index: 2;
}
@media screen and (min-width: 1200px) {
  .p-message__gear02 {
    bottom: clamp(-28.2643rem, -28.2643rem + -8.7357rem * (100vw - 1440px) / 480px, -37rem);
    left: clamp(-21.3892rem, -21.3892rem + -6.6108rem * (100vw - 1440px) / 480px, -28rem);
    width: clamp(39.41724rem, 39.41724rem + 12.18276rem * (100vw - 1440px) / 480px, 51.6rem);
  }
}
.p-message__gear02 img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-message__heading-wrap {
  animation: infiniteLoop 30s linear infinite;
  display: flex;
  gap: 1em;
  position: absolute;
  top: -1.6rem;
}
.p-message__heading-wrap > * {
  font-size: 9.6rem;
  line-height: 1;
  white-space: nowrap;
}

@keyframes infiniteLoop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.p-message__inner {
  padding-block-end: 43.5rem;
  padding-block-start: 17rem;
}
@media (min-width: 768px) {
  .p-message__inner {
    padding-block-end: 9.1668rem;
    padding-block-start: 13.13908rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__inner {
    padding-block-end: clamp(9.1668rem, 9.1668rem + 2.8332rem * (100vw - 1440px) / 480px, 12rem);
    padding-block-start: clamp(13.13908rem, 13.13908rem + 4.06092rem * (100vw - 1440px) / 480px, 17.2rem);
  }
}

@media (max-width: 767px) {
  .p-message__heading {
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
  }
}
@media (min-width: 768px) {
  .p-message__heading {
    font-size: 9.31958rem;
    left: 50%;
    line-height: 1;
    position: absolute;
    text-align: center;
    top: -1.5278rem;
    transform: translateX(-50%);
    width: 100vw;
    z-index: 3;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__heading {
    font-size: clamp(10.23626rem, 10.23626rem + 3.16374rem * (100vw - 1440px) / 480px, 13.4rem);
    top: calc(clamp(1.5278rem, 1.5278rem + 0.4722rem * (100vw - 1440px) / 480px, 2rem) * -1);
  }
}
@media screen and (min-width: 1440px) {
  .p-message__heading {
    font-size: clamp(11.68767rem, 11.68767rem + 3.61233rem * (100vw - 1440px) / 480px, 15.3rem);
  }
}

.p-message__content {
  padding-block-end: 8rem;
  position: relative;
}
@media (min-width: 768px) {
  .p-message__content {
    border-left: 1px solid var(--color-text-primary);
    border-right: 1px solid var(--color-text-primary);
    margin-inline: auto;
    padding-block-end: 32px;
    padding-inline: 6.1112rem;
    text-align: center;
    width: min(80%, 1008px);
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content {
    padding-inline: clamp(6.1112rem, 6.1112rem + 1.8888rem * (100vw - 1440px) / 480px, 8rem);
  }
}
.p-message__content::before, .p-message__content::after {
  background-color: var(--color-text-primary);
  content: "";
  display: block;
  position: absolute;
}
.p-message__content::before {
  height: 1px;
  width: 23.2rem;
}
@media (max-width: 767px) {
  .p-message__content::before {
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (min-width: 768px) {
  .p-message__content::before {
    left: -2.97921rem;
    top: 50%;
    transform: translateY(-50%);
    width: 5.95842rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content::before {
    left: calc(clamp(2.97921rem, 2.97921rem + 0.92079rem * (100vw - 1440px) / 480px, 3.9rem) * -1);
    width: clamp(5.95842rem, 5.95842rem + 1.84158rem * (100vw - 1440px) / 480px, 7.8rem);
  }
}
.p-message__content::after {
  height: 5.8rem;
  width: 1px;
}
@media (max-width: 767px) {
  .p-message__content::after {
    bottom: -2.9rem;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (min-width: 768px) {
  .p-message__content::after {
    height: 1px;
    right: -2.97921rem;
    top: 50%;
    transform: translateY(-50%);
    width: 5.95842rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content::after {
    right: calc(clamp(2.97921rem, 2.97921rem + 0.92079rem * (100vw - 1440px) / 480px, 3.9rem) * -1);
    width: clamp(5.95842rem, 5.95842rem + 1.84158rem * (100vw - 1440px) / 480px, 7.8rem);
  }
}
.p-message__content .role {
  font-size: 2.1rem;
  line-height: 1.1;
}
@media (min-width: 768px) {
  .p-message__content .role {
    font-size: 2.13892rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .role {
    font-size: clamp(2.13892rem, 2.13892rem + 0.66108rem * (100vw - 1440px) / 480px, 2.8rem);
  }
}
.p-message__content .flex {
  display: flex;
  gap: 2.4rem;
  margin-block-start: 2rem;
}
@media (min-width: 768px) {
  .p-message__content .flex {
    flex-direction: column;
    gap: 4.43062rem;
    margin-block-start: 16px;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .flex {
    gap: clamp(4.43062rem, 4.43062rem + 1.36938rem * (100vw - 1440px) / 480px, 5.8rem);
  }
}
.p-message__content .name {
  align-items: center;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 3.8rem;
}
@media (min-width: 768px) {
  .p-message__content .name {
    gap: 15px;
    position: relative;
  }
}
@media (min-width: 768px) {
  .p-message__content .name::after {
    background-color: var(--color-text-primary);
    bottom: -1.22224rem;
    content: "";
    display: block;
    height: 1px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 5.95842rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .name::after {
    bottom: clamp(-1.22224rem, -1.22224rem + -0.37776rem * (100vw - 1440px) / 480px, -1.6rem);
    width: clamp(5.95842rem, 5.95842rem + 1.84158rem * (100vw - 1440px) / 480px, 7.8rem);
  }
}
.p-message__content .name h3 {
  font-size: 4.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.1;
}
@media (max-width: 767px) {
  .p-message__content .name h3 {
    min-height: 6em;
    writing-mode: vertical-rl;
  }
}
@media (min-width: 768px) {
  .p-message__content .name h3 {
    font-size: 4.96535rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .name h3 {
    font-size: clamp(4.96535rem, 4.96535rem + 1.53465rem * (100vw - 1440px) / 480px, 6.5rem);
  }
}
.p-message__content .name span {
  display: inline-block;
  font-family: var(--ff-en);
  font-size: 1.8rem;
  font-weight: 300;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .p-message__content .name span {
    white-space: nowrap;
    writing-mode: vertical-rl;
  }
}
@media (min-width: 768px) {
  .p-message__content .name span {
    font-size: 3.0556rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .name span {
    font-size: clamp(3.0556rem, 3.0556rem + 0.9444rem * (100vw - 1440px) / 480px, 4rem);
  }
}
.p-message__content .msg {
  flex-grow: 1;
  font-size: 1.5rem;
  letter-spacing: 0;
  line-height: 1.75;
  text-align: justify;
}
@media (min-width: 768px) {
  .p-message__content .msg {
    padding-block-end: 2rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .msg {
    font-size: clamp(1.37502rem, 1.37502rem + 0.42498rem * (100vw - 1440px) / 480px, 1.8rem);
  }
}
.p-message__content .msg .heading {
  display: block;
  font-weight: 600;
  margin-block-end: 1.6rem;
}
.p-message__content .msg .coming-soon {
  color: #888;
  display: block;
  font-size: 2.4rem;
  font-weight: 600;
  min-height: 6em;
  width: 100%;
}
@media (min-width: 768px) {
  .p-message__content .msg .coming-soon {
    font-size: 3.0556rem;
    text-align: center;
  }
}
@media screen and (min-width: 1200px) {
  .p-message__content .msg .coming-soon {
    font-size: clamp(3.0556rem, 3.0556rem + 0.9444rem * (100vw - 1440px) / 480px, 4rem);
  }
}

.p-message__smoke--sm {
  aspect-ratio: 393/367;
  bottom: 0;
  left: 50%;
  max-width: 550px;
  position: absolute;
  transform: translateX(-50%);
  width: 100vw;
}
.p-message__smoke--sm img {
  width: 100%;
}

.p-message__smoke--lg01 {
  height: 100%;
  left: -10vw;
  position: absolute;
  top: 0;
  width: 10vw;
}
@media screen and (min-width: 1200px) {
  .p-message__smoke--lg01 {
    left: -12.5vw;
    width: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-message__smoke--lg01 {
    left: calc((100vw - 1440px) / 2 * -1);
    width: calc((100vw - 1440px) / 2);
  }
}
.p-message__smoke--lg01 img {
  -o-object-fit: cover;
  -o-object-position: top;
  height: 100%;
  object-fit: cover;
  object-position: top;
  width: 100%;
}

.p-message__smoke--lg02 {
  aspect-ratio: 143/654;
  bottom: 0;
  position: absolute;
  right: -10.92377rem;
  width: 10.92377rem;
}

.p-views {
  border-top: 1px solid var(--color-inverse);
  position: relative;
}

.p-views__gear {
  position: absolute;
}
.p-views__gear img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-views__gear01 {
  aspect-ratio: 232/233;
  left: 50%;
  top: -11.6rem;
  transform: translateX(-50%);
  width: 23.2rem;
  z-index: 2;
}

.p-views__gear02 {
  aspect-ratio: 1;
  left: 50%;
  top: 3%;
  transform: translateX(-50%);
  width: 188.5vw;
}
@media (min-width: 768px) {
  .p-views__gear02 {
    top: 5.80564rem;
    width: 72.64689rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__gear02 {
    top: clamp(5.80564rem, 5.80564rem + 1.79436rem * (100vw - 1440px) / 480px, 7.6rem);
    width: clamp(72.64689rem, 72.64689rem + 22.45311rem * (100vw - 1440px) / 480px, 95.1rem);
  }
}

@media (min-width: 768px) {
  .p-views__gear03 {
    aspect-ratio: 379/379;
    left: -29.0282rem;
    top: 18.3336rem;
    width: 28.95181rem;
  }
}

.p-views__texture {
  position: absolute;
  top: 0;
  z-index: 1;
}
@media (min-width: 768px) {
  .p-views__texture {
    height: 100%;
    right: -10vw;
    width: 10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__texture {
    right: -12.5vw;
    width: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-views__texture {
    right: calc((100vw - 1440px) / 2 * -1);
    width: calc((100vw - 1440px) / 2);
  }
}
.p-views__texture img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-views__inner {
  padding-block-end: 3.8rem;
  padding-block-start: 20.3rem;
}
@media (min-width: 768px) {
  .p-views__inner {
    padding-block-end: 32px;
    padding-block-start: 12.2224rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__inner {
    padding-block-end: 44px;
    padding-block-start: clamp(12.2224rem, 12.2224rem + 3.7776rem * (100vw - 1440px) / 480px, 16rem);
  }
}

.p-views__heading {
  text-align: center;
}

.p-views__lead {
  color: var(--color-inverse);
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-block-start: 4.2rem;
  text-align: center;
}
@media (min-width: 768px) {
  .p-views__lead {
    font-size: 1.98614rem;
    margin-top: 20px;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__lead {
    font-size: clamp(1.98614rem, 1.98614rem + 0.61386rem * (100vw - 1440px) / 480px, 2.6rem);
  }
}

.p-views__wrapper {
  padding-block-start: 9.2rem;
  padding-inline-start: var(--padding-base);
  position: relative;
}
@media (min-width: 768px) {
  .p-views__wrapper {
    padding-inline-start: 10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__wrapper {
    padding-inline-start: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-views__wrapper {
    padding-inline-start: calc((100vw - 1440px) / 2);
  }
}
.p-views__wrapper::before {
  background-color: var(--color-inverse);
  content: "";
  display: block;
  height: 1px;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100vw;
}

.p-views__content {
  position: relative;
  z-index: 2;
}

.p-views__list {
  display: flex;
  flex-wrap: nowrap;
  gap: 2.4rem;
  padding-inline-end: var(--padding-base);
  position: relative;
  width: -moz-max-content;
  width: max-content;
  z-index: 2;
}
@media (min-width: 768px) {
  .p-views__list {
    gap: 3.66672rem;
    padding-inline-end: 10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__list {
    gap: clamp(5.50008rem, 5.50008rem + 1.69992rem * (100vw - 1440px) / 480px, 7.2rem);
    padding-inline-end: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-views__list {
    padding-inline-end: calc((100vw - 1440px) / 2);
  }
}

.p-views__item {
  flex-shrink: 0;
  width: 28rem;
}
@media (min-width: 768px) {
  .p-views__item {
    width: 42.7784rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-views__item {
    width: clamp(42.7784rem, 42.7784rem + 13.2216rem * (100vw - 1440px) / 480px, 56rem);
  }
}
.p-views__item img {
  aspect-ratio: 1;
}
.p-views__item .caption {
  color: var(--color-inverse);
  font-size: 1.5rem;
  font-weight: 500;
  margin-block-start: 1.6rem;
  position: relative;
  text-align: center;
  z-index: 2;
}
@media (max-width: 767px) {
  .p-views__item .caption {
    font-size: 14.5px;
  }
}

/* インジケーター全体の配置設定 */
.p-views__scroll {
  bottom: 20px;
  display: flex;
  flex-direction: row-reverse;
  gap: 5px;
  left: -8px;
  position: absolute;
  z-index: 1000;
}
@media (min-width: 768px) {
  .p-views__scroll {
    bottom: 40px;
    left: -48px;
  }
}

/* 縦書きテキストのスタイル */
.p-views__scroll-text {
  color: #FFF;
  font-family: var(--ff-en);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-orientation: sideways;
  writing-mode: vertical-rl;
}
@media (min-width: 768px) {
  .p-views__scroll-text {
    font-size: 15px;
  }
}

/* スクロールライン（背景の線）のスタイル */
.p-views__scroll-line {
  background-color: #FFF;
  height: 80px;
  position: relative;
  width: 1px;
}
@media (min-width: 768px) {
  .p-views__scroll-line {
    height: 100px;
    width: 1.5px;
  }
}
.p-views__scroll-line::after {
  background-color: #FFF;
  bottom: 3px;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  right: -8px;
  transform: rotate(-45deg);
  width: 10px;
}
@media (min-width: 768px) {
  .p-views__scroll-line::after {
    height: 1.5px;
  }
}

/* 動くドットのスタイル */
.p-views__scroll-dot {
  animation: scrollDown 1.5s linear infinite;
  background-color: #FFF;
  border-radius: 50%;
  height: 6px;
  left: -2px;
  position: absolute;
  top: 0;
  width: 6px;
}
@media (min-width: 768px) {
  .p-views__scroll-dot {
    height: 8px;
    left: -3px;
    width: 8px;
  }
}

/* ドットが上から下へ動くアニメーションの定義 */
@keyframes scrollDown {
  0% {
    opacity: 0;
    top: -1%; /* 線の少し上からスタート（非表示状態） */
  }
  30% {
    opacity: 1;
    top: 20%; /* 動き出しでフェードイン */
  }
  80% {
    opacity: 1;
    top: 60%; /* 下部まで移動 */
  }
  100% {
    opacity: 0;
    top: 90%; /* 線の少し下でフェードアウト */
  }
}
.p-release {
  border-bottom: 1px solid var(--color-inverse);
  border-top: 1px solid var(--color-inverse);
  overflow: clip;
  position: relative;
}

.p-release__gear {
  position: absolute;
}
.p-release__gear img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-release__gear01 {
  aspect-ratio: 709/709;
  left: 50%;
  top: -45%;
  transform: translateX(-50%);
  width: 120vw;
  z-index: 2;
}
@media (min-width: 768px) {
  .p-release__gear01 {
    top: -40%;
    width: 54.16051rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__gear01 {
    width: clamp(54.16051rem, 54.16051rem + 16.73949rem * (100vw - 1440px) / 480px, 70.9rem);
  }
}

.p-release__gear02 {
  aspect-ratio: 435/436;
  left: -33.6116rem;
  top: 50%;
  transform: translateY(-50%);
  width: 33.22965rem;
  z-index: 2;
}

.p-release__gear03 {
  aspect-ratio: 435/436;
  right: -33.6116rem;
  top: 50%;
  transform: translateY(-50%);
  width: 33.22965rem;
  z-index: 2;
}

.p-release__gear04 {
  aspect-ratio: 326/326;
  bottom: -16.3rem;
  left: 50%;
  position: absolute;
  transform: translateX(calc(-50% - 0.2rem));
  width: 32.6rem;
  z-index: 2;
}

.p-release__side-bg {
  position: absolute;
  top: 0;
  width: 5.3rem;
  z-index: 1;
}
@media (max-width: 767px) {
  .p-release__side-bg {
    aspect-ratio: 53/767;
  }
}
@media (min-width: 768px) {
  .p-release__side-bg {
    height: 100%;
    width: 10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__side-bg {
    width: 12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-release__side-bg {
    width: calc((100vw - 1440px) / 2);
  }
}
@media (min-width: 768px) {
  .p-release__side-bg img {
    -o-object-fit: cover;
    height: 100%;
    object-fit: cover;
    width: 100%;
  }
}

.p-release__side-bg01 {
  left: -5.3rem;
}
@media (min-width: 768px) {
  .p-release__side-bg01 {
    left: -10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__side-bg01 {
    left: -12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-release__side-bg01 {
    left: calc((100vw - 1440px) / 2 * -1);
  }
}

.p-release__side-bg02 {
  right: -5.3rem;
}
@media (min-width: 768px) {
  .p-release__side-bg02 {
    right: -10vw;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__side-bg02 {
    right: -12.5vw;
  }
}
@media screen and (min-width: 1920px) {
  .p-release__side-bg02 {
    right: calc((100vw - 1440px) / 2 * -1);
  }
}

.p-release__inner {
  background: url(../images/release_bg-sm.webp) no-repeat center center/cover;
  padding-block-end: 20.4rem;
  padding-block-start: 24.1rem;
  position: relative;
}
@media (max-width: 767px) {
  .p-release__inner {
    width: calc(100% - 80px);
  }
}
@media (min-width: 768px) {
  .p-release__inner {
    background-image: url(../images/release_bg-lg.webp);
    padding-block-end: 7.639rem;
    padding-block-start: 13.36825rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__inner {
    padding-block-end: clamp(7.639rem, 7.639rem + 2.361rem * (100vw - 1440px) / 480px, 10rem);
    padding-block-start: clamp(13.36825rem, 13.36825rem + 4.13175rem * (100vw - 1440px) / 480px, 17.5rem);
  }
}

.p-release__heading {
  position: relative;
  z-index: 3;
}
@media (max-width: 767px) {
  .p-release__heading {
    left: 50%;
    position: absolute;
    top: 10.4rem;
    transform: translateX(-50%);
    width: 100vw;
  }
}
@media (min-width: 768px) {
  .p-release__heading {
    text-align: center;
  }
}

.p-release__content {
  position: relative;
  z-index: 3;
}
@media (min-width: 768px) {
  .p-release__content {
    margin-block-start: 4.5834rem;
    padding-inline: 1px;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__content {
    margin-block-start: clamp(4.5834rem, 4.5834rem + 1.4166rem * (100vw - 1440px) / 480px, 6rem);
  }
}
@media (max-width: 767px) {
  .p-release__content .swiper {
    overflow: visible;
  }
}
.p-release__content .p-release__button-prev,
.p-release__content .p-release__button-next {
  background: var(--color-inverse) url(../images/chevron.png) no-repeat center center/8px auto;
  height: 8.4rem;
  top: 30%;
  transition: opacity 0.3s;
  width: 2.4rem;
}
@media (min-width: 768px) {
  .p-release__content .p-release__button-prev,
  .p-release__content .p-release__button-next {
    background-size: auto 60%;
    height: 50px;
    top: 40%;
    width: 50px;
  }
}
@media screen and (min-width: 1440px) {
  .p-release__content .p-release__button-prev,
  .p-release__content .p-release__button-next {
    height: 68px;
    width: 68px;
  }
}
.p-release__content .p-release__button-prev::after,
.p-release__content .p-release__button-next::after {
  display: none;
}
@media (hover: hover) and (pointer: fine) {
  .p-release__content .p-release__button-prev:hover,
  .p-release__content .p-release__button-next:hover {
    opacity: 0.9;
  }
}
.p-release__content .p-release__button-prev {
  left: -40px;
}
@media (min-width: 768px) {
  .p-release__content .p-release__button-prev {
    left: 16px;
  }
}
.p-release__content .p-release__button-next {
  right: -40px;
  transform: scale(-1, 1);
}
@media (min-width: 768px) {
  .p-release__content .p-release__button-next {
    right: 16px;
  }
}
.p-release__content .p-release__pagination {
  bottom: unset;
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-block-start: 4.2rem;
  position: relative;
}
@media (min-width: 768px) {
  .p-release__content .p-release__pagination {
    margin-block-start: 42px;
    margin-inline: auto;
    width: 75% !important;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__content .p-release__pagination {
    margin-block-start: 60px;
  }
}
.p-release__content .p-release__pagination .swiper-pagination-bullet {
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 0;
  display: block;
  flex: 1 1 100%;
  height: 4px;
  margin: 0 !important;
  opacity: 1;
  width: unset;
}
.p-release__content .p-release__pagination .swiper-pagination-bullet-active {
  background-color: var(--color-inverse);
}

.p-release__item {
  color: var(--color-inverse);
}
.p-release__item .image {
  aspect-ratio: 1030/677;
}
.p-release__item .image img {
  -o-object-fit: contain;
  filter: drop-shadow(0 20px 20px rgba(0, 0, 0, 0.39));
  height: 100%;
  object-fit: contain;
  width: 100%;
}
.p-release__item .text-area {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-inline: auto;
  margin-top: 12px;
  width: 80%;
}
@media (min-width: 768px) {
  .p-release__item .text-area {
    gap: 32px;
    margin-top: 32px;
  }
}
.p-release__item .text-area .new {
  border-right: 1px solid var(--color-inverse);
  display: grid;
  flex-shrink: 0;
  font-family: var(--ff-en);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding-inline: 10px;
  place-items: center;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .p-release__item .text-area .new {
    font-size: 2.52087rem;
    padding-inline: 3.2rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__item .text-area .new {
    font-size: clamp(2.52087rem, 2.52087rem + 0.77913rem * (100vw - 1440px) / 480px, 3.3rem);
  }
}
.p-release__item .text-area .caption {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .p-release__item .text-area .caption {
    font-size: 1.90975rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-release__item .text-area .caption {
    font-size: clamp(1.90975rem, 1.90975rem + 0.59025rem * (100vw - 1440px) / 480px, 2.5rem);
  }
}

.p-information {
  background: url(../images/information_bg-sm.webp) no-repeat center center/cover;
  overflow: clip;
  position: relative;
}
@media (min-width: 768px) {
  .p-information {
    background-image: url(../images/information_bg-lg.webp);
  }
}

@media (max-width: 767px) {
  .p-information__inner {
    max-width: unset;
    padding: 0;
    width: unset;
  }
}
@media (min-width: 768px) {
  .p-information__inner {
    position: relative;
  }
}

.p-information__smoke {
  position: absolute;
  top: 0;
  z-index: 3;
}

.p-information__smoke01 {
  aspect-ratio: 290/654;
  left: -22.1531rem;
  width: 22.1531rem;
}
@media screen and (min-width: 1200px) {
  .p-information__smoke01 {
    left: calc(clamp(22.1531rem, 22.1531rem + 6.8469rem * (100vw - 1440px) / 480px, 29rem) * -1);
    width: clamp(22.1531rem, 22.1531rem + 6.8469rem * (100vw - 1440px) / 480px, 29rem);
  }
}

.p-information__smoke02 {
  aspect-ratio: 448/1146;
  right: -34.22272rem;
  width: 34.22272rem;
}
@media screen and (min-width: 1200px) {
  .p-information__smoke02 {
    right: calc(clamp(34.22272rem, 34.22272rem + 10.57728rem * (100vw - 1440px) / 480px, 44.8rem) * -1);
    width: clamp(34.22272rem, 34.22272rem + 10.57728rem * (100vw - 1440px) / 480px, 44.8rem);
  }
}

.p-information__bg {
  position: relative;
}
.p-information__bg::before {
  background: url(../images/information_inner-bg-sm.webp) no-repeat center center/cover;
  content: "";
  inset: 0;
  position: absolute;
}
@media (max-width: 767px) {
  .p-information__bg::before {
    opacity: 0.7;
  }
}
@media (min-width: 768px) {
  .p-information__bg::before {
    background-image: url(../images/information_inner-bg-lg.webp);
  }
}

.p-information__gear {
  position: absolute;
  z-index: 4;
}

.p-information__gear01 {
  aspect-ratio: 698/698;
  left: -53.32022rem;
  top: 20%;
  width: 53.32022rem;
}
@media screen and (min-width: 1200px) {
  .p-information__gear01 {
    left: calc(clamp(53.32022rem, 53.32022rem + 16.47978rem * (100vw - 1440px) / 480px, 69.8rem) * -1);
    width: clamp(53.32022rem, 53.32022rem + 16.47978rem * (100vw - 1440px) / 480px, 69.8rem);
  }
}

.p-information__gear02 {
  aspect-ratio: 314/314;
  bottom: -3.0556rem;
  right: -22.917rem;
  width: 23.98646rem;
}
@media screen and (min-width: 1200px) {
  .p-information__gear02 {
    bottom: clamp(-3.0556rem, -3.0556rem + -0.9444rem * (100vw - 1440px) / 480px, -4rem);
    right: calc(clamp(22.917rem, 22.917rem + 7.083rem * (100vw - 1440px) / 480px, 30rem) * -1);
    width: clamp(23.98646rem, 23.98646rem + 7.41354rem * (100vw - 1440px) / 480px, 31.4rem);
  }
}

.p-profile {
  overflow: clip;
  position: relative;
}
@media (max-width: 767px) {
  .p-profile {
    padding-block-end: 20.8rem;
    padding-block-start: 23.2rem;
  }
}
@media (min-width: 768px) {
  .p-profile {
    padding-block-end: 12.75713rem;
    padding-block-start: 17.64609rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile {
    padding-block-end: clamp(12.75713rem, 12.75713rem + 3.94287rem * (100vw - 1440px) / 480px, 16.7rem);
    padding-block-start: clamp(17.64609rem, 17.64609rem + 5.45391rem * (100vw - 1440px) / 480px, 23.1rem);
  }
}

.p-profile__gear {
  position: absolute;
  z-index: 2;
}

.p-profile__gear01 {
  left: 50%;
  top: -16.2rem;
  transform: translateX(-50%);
  width: 32.4rem;
}
@media (min-width: 768px) {
  .p-profile__gear01 {
    width: 31.09073rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__gear01 {
    width: clamp(31.09073rem, 31.09073rem + 9.60927rem * (100vw - 1440px) / 480px, 40.7rem);
  }
}

.p-profile__gear02 {
  left: 80%;
  top: -8.7rem;
  width: 17.4rem;
}
@media (min-width: 768px) {
  .p-profile__gear02 {
    left: 61%;
    top: -8.86124rem;
    width: 17.72248rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__gear02 {
    top: clamp(-8.86124rem, -8.86124rem + -2.73876rem * (100vw - 1440px) / 480px, -11.6rem);
    width: clamp(17.72248rem, 17.72248rem + 5.47752rem * (100vw - 1440px) / 480px, 23.2rem);
  }
}

.p-profile__inner {
  margin-inline: auto;
}
@media (max-width: 767px) {
  .p-profile__inner {
    max-width: 550px;
    padding-inline: var(--padding-base);
    width: 100%;
  }
}
@media (min-width: 768px) {
  .p-profile__inner {
    width: min(90%, 1100px);
  }
}

@media (min-width: 768px) {
  .p-profile__heading {
    text-align: center;
  }
}

.p-profile__content {
  display: flex;
  gap: 3.8rem;
  margin-block-start: 7.6rem;
}
@media (max-width: 767px) {
  .p-profile__content {
    flex-direction: column;
  }
}
@media (min-width: 768px) {
  .p-profile__content {
    margin-block-start: 4.04867rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__content {
    gap: 4.5rem;
    margin-block-start: clamp(4.04867rem, 4.04867rem + 1.25133rem * (100vw - 1440px) / 480px, 5.3rem);
  }
}

@media (min-width: 768px) {
  .p-profile__image {
    flex-shrink: 0;
    width: 32.36%;
  }
}
.p-profile__image img {
  width: 100%;
}

@media (min-width: 768px) {
  .p-profile__texts {
    flex-grow: 1;
  }
}
.p-profile__texts .name {
  font-size: 5.4rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .p-profile__texts .name {
    text-align: center;
  }
}
@media (min-width: 768px) {
  .p-profile__texts .name {
    font-size: 4.35423rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__texts .name {
    font-size: clamp(4.35423rem, 4.35423rem + 1.34577rem * (100vw - 1440px) / 480px, 5.7rem);
  }
}
.p-profile__texts .name span {
  display: block;
  font-family: var(--ff-en);
  font-size: 2.2rem;
  font-weight: 300;
  letter-spacing: 0.2em;
  margin-block-start: 12px;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .p-profile__texts .name span {
    font-size: 1.68058rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__texts .name span {
    font-size: clamp(1.68058rem, 1.68058rem + 0.51942rem * (100vw - 1440px) / 480px, 2.2rem);
  }
}
.p-profile__texts .desc {
  margin-block-start: 3.8rem;
}
@media (max-width: 767px) {
  .p-profile__texts .desc {
    line-height: 1.75;
  }
}
@media (min-width: 768px) {
  .p-profile__texts .desc {
    font-size: 1.5278rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-profile__texts .desc {
    font-size: clamp(1.37502rem, 1.37502rem + 0.42498rem * (100vw - 1440px) / 480px, 1.8rem);
  }
}

.p-profile__smoke {
  aspect-ratio: 579/196;
  bottom: 0;
  left: -1.7rem;
  position: absolute;
  width: 147.3vw;
  z-index: 2;
}
.p-profile__smoke img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-benefit {
  position: relative;
}
@media (max-width: 767px) {
  .p-benefit {
    padding-block-end: 16.3rem;
    padding-block-start: 12rem;
  }
}
@media (min-width: 768px) {
  .p-benefit {
    padding-block-end: 4.88896rem;
    padding-block-start: 4.88896rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-benefit {
    padding-block-end: clamp(4.88896rem, 4.88896rem + 1.51104rem * (100vw - 1440px) / 480px, 6.4rem);
    padding-block-start: clamp(4.88896rem, 4.88896rem + 1.51104rem * (100vw - 1440px) / 480px, 6.4rem);
  }
}
.p-benefit::before {
  background-color: var(--color-text-primary);
  content: "";
  height: 1px;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 200vw;
  z-index: 2;
}

.p-benefit__inner {
  margin-inline: auto;
}
@media (max-width: 767px) {
  .p-benefit__inner {
    max-width: 550px;
    padding-inline: var(--padding-base);
    width: 100%;
  }
}
@media (min-width: 768px) {
  .p-benefit__inner {
    width: min(90%, 1100px);
  }
}

.p-benefit__content {
  display: flex;
  gap: 3.8rem;
}
@media (max-width: 767px) {
  .p-benefit__content {
    flex-direction: column;
    margin-block-start: 7rem;
  }
}
@media (min-width: 768px) {
  .p-benefit__content {
    align-items: center;
  }
}

.p-benefit__image {
  margin-inline: auto;
  width: 85%;
}
@media (min-width: 768px) {
  .p-benefit__image {
    flex-shrink: 0;
    width: 30.36%;
  }
}
.p-benefit__image img {
  width: 100%;
}

@media (max-width: 767px) {
  .p-benefit__texts {
    text-align: center;
  }
}
.p-benefit__texts .title {
  font-size: 4.4rem;
  font-weight: 600;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .p-benefit__texts .title {
    font-size: 4.35423rem;
    margin-block-start: 4.5834rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-benefit__texts .title {
    font-size: clamp(4.35423rem, 4.35423rem + 1.34577rem * (100vw - 1440px) / 480px, 5.7rem);
    margin-block-start: clamp(4.5834rem, 4.5834rem + 1.4166rem * (100vw - 1440px) / 480px, 6rem);
  }
}
.p-benefit__texts .title .label {
  background-color: var(--color-text-primary);
  color: var(--color-inverse);
  display: block;
  font-size: 3.6rem;
  font-weight: 600;
  line-height: 1.2;
  margin-block-end: 10px;
  padding: 6px;
  width: -moz-fit-content;
  width: fit-content;
}
@media (max-width: 767px) {
  .p-benefit__texts .title .label {
    margin-inline: auto;
  }
}
@media (min-width: 768px) {
  .p-benefit__texts .title .label {
    font-size: 4.35423rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-benefit__texts .title .label {
    font-size: clamp(4.35423rem, 4.35423rem + 1.34577rem * (100vw - 1440px) / 480px, 5.7rem);
  }
}
.p-benefit__texts .text {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-block-start: 2rem;
}
@media (min-width: 768px) {
  .p-benefit__texts .text {
    font-size: 1.98614rem;
    margin-top: 12px;
  }
}
@media screen and (min-width: 1200px) {
  .p-benefit__texts .text {
    font-size: clamp(1.98614rem, 1.98614rem + 0.61386rem * (100vw - 1440px) / 480px, 2.6rem);
  }
}
.p-benefit__texts .notes {
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-block-start: 1.2rem;
}
@media (min-width: 768px) {
  .p-benefit__texts .notes {
    font-size: 1.4rem;
    margin-block-start: 12px;
  }
}

.p-benefit__gear {
  aspect-ratio: 314/314;
  bottom: -15.7rem;
  position: absolute;
  right: -15.7rem;
  width: 31.4rem;
  z-index: 2;
}
.p-benefit__gear img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-schedule {
  background: url(../images/schedule_bg-sm.webp) no-repeat center center/cover;
  color: var(--color-inverse);
}
@media (min-width: 768px) {
  .p-schedule {
    background-image: url(../images/schedule_bg-lg.webp);
  }
}

.p-schedule__inner {
  padding-block-end: 17rem;
  padding-block-start: 12rem;
}
@media (min-width: 768px) {
  .p-schedule__inner {
    padding-block-end: 13.13908rem;
    padding-block-start: 4.88896rem;
    padding-inline: 4%;
  }
}
@media screen and (min-width: 1200px) {
  .p-schedule__inner {
    padding-block-end: clamp(13.13908rem, 13.13908rem + 4.06092rem * (100vw - 1440px) / 480px, 17.2rem);
    padding-block-start: clamp(4.88896rem, 4.88896rem + 1.51104rem * (100vw - 1440px) / 480px, 6.4rem);
  }
}
@media screen and (min-width: 1440px) {
  .p-schedule__inner {
    display: flex;
    gap: 5rem;
    padding-inline: 0;
    padding-inline: 2% min(4%, 60px);
  }
}

@media screen and (min-width: 1440px) {
  .p-schedule__heading {
    writing-mode: vertical-rl;
  }
}

.p-schedule__list {
  display: grid;
  gap: 1.8rem;
  margin-block-start: 7rem;
}
@media (min-width: 768px) {
  .p-schedule__list {
    gap: 3.2rem;
    grid-template-columns: repeat(2, 1fr);
    margin-block-start: 4rem;
  }
}
@media screen and (min-width: 1440px) {
  .p-schedule__list {
    flex-grow: 1;
    margin-block-start: 0;
  }
}

.p-schedule__item {
  border: 1.5px solid var(--color-inverse);
  padding: 1.8rem 2.4rem;
}
@media (min-width: 768px) {
  .p-schedule__item {
    border-width: 2px;
    display: flex;
    flex-direction: column;
    padding: 1.83336rem 2.44448rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-schedule__item {
    padding: clamp(1.83336rem, 1.83336rem + 0.56664rem * (100vw - 1440px) / 480px, 2.4rem) clamp(2.44448rem, 2.44448rem + 0.75552rem * (100vw - 1440px) / 480px, 3.2rem);
  }
}
.p-schedule__item .dates {
  align-items: center;
  border-bottom: 1px solid var(--color-inverse);
  display: flex;
  gap: 8px;
  padding-block-end: 1.2rem;
}
@media (min-width: 768px) {
  .p-schedule__item .dates {
    gap: 2rem;
  }
}
.p-schedule__item .date {
  align-items: baseline;
  display: flex;
  font-family: var(--ff-en);
  font-size: 2.5rem;
  font-weight: 600;
  gap: 5px;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media (min-width: 768px) {
  .p-schedule__item .date {
    font-size: 3.0556rem;
    gap: 7px;
  }
}
@media screen and (min-width: 1200px) {
  .p-schedule__item .date {
    font-size: clamp(3.59033rem, 3.59033rem + 1.10967rem * (100vw - 1440px) / 480px, 4.7rem);
  }
}
.p-schedule__item .date .day {
  font-size: 1.6rem;
  letter-spacing: 0;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .p-schedule__item .date .day {
    font-size: 2.2rem;
  }
}
.p-schedule__item .line {
  background-color: var(--color-inverse);
  display: inline-block;
  height: 2px;
  width: 2rem;
}
.p-schedule__item .location {
  margin-block-start: 1.8rem;
}
.p-schedule__item .title {
  font-size: 3.4rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and (min-width: 1200px) {
  .p-schedule__item .title {
    font-size: clamp(4.20145rem, 4.20145rem + 1.29855rem * (100vw - 1440px) / 480px, 5.5rem);
  }
}
.p-schedule__item .place {
  display: block;
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
  margin-block-start: 1.2rem;
}
@media (min-width: 768px) {
  .p-schedule__item .place {
    font-size: 1.98614rem;
    margin-block-start: 16px;
  }
}
@media screen and (min-width: 1200px) {
  .p-schedule__item .place {
    font-size: clamp(1.98614rem, 1.98614rem + 0.61386rem * (100vw - 1440px) / 480px, 2.6rem);
  }
}
@media (min-width: 768px) {
  .p-schedule__item .notes-area {
    flex-grow: 1;
  }
}
.p-schedule__item .notes {
  font-size: 1.4rem;
  margin-block-start: 1.8rem;
}
@media (min-width: 768px) {
  .p-schedule__item .notes {
    margin-block-start: max(2.4rem, 20px);
  }
}
.p-schedule__item .button {
  margin-block-start: 1.8rem;
  text-align: right;
}
@media (min-width: 768px) {
  .p-schedule__item .button {
    margin-block-start: max(2.4rem, 20px);
  }
}
.p-schedule__item .button a {
  align-items: center;
  border-bottom: 1px solid var(--color-inverse);
  display: inline-flex;
  font-size: 1.6rem;
  font-weight: 600;
  gap: 1rem;
  letter-spacing: 0.05em;
  line-height: 1;
  padding-block: 0.9rem;
}
@media (min-width: 768px) {
  .p-schedule__item .button a {
    font-size: 1.98614rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-schedule__item .button a {
    font-size: clamp(1.98614rem, 1.98614rem + 0.61386rem * (100vw - 1440px) / 480px, 2.6rem);
  }
}
.p-schedule__item .button a::after {
  aspect-ratio: 53/19;
  background: url(../images/schedule_button-arrow.png) no-repeat center center/contain;
  content: "";
  width: 2.8rem;
}
@media (min-width: 768px) {
  .p-schedule__item .button a::after {
    width: 4.8rem;
  }
}

@media (max-width: 767px) {
  .u-hidden-sm {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .u-hidden-md {
    display: none !important;
  }
}

@media screen and (min-width: 1024px) {
  .u-hidden-lg {
    display: none !important;
  }
}

.is_hidden {
  display: none !important;
}

@media (min-width: 768px) {
  .is_only_sp {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .is_only_pc {
    display: none !important;
  }
}

.sr-only {
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}
/*# sourceMappingURL=sourcemaps/style.css.map */