@charset "UTF-8";
/* Base */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          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 {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: normal;
  font-size: 100%;
  vertical-align: baseline;
}

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

ol,
ul {
  list-style: none;
}

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

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

button {
  margin: 0;
  padding: 0;
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

input,
select,
textarea {
  font: inherit;
  color: inherit;
  vertical-align: top;
}

body {
  font-size: 16px;
  line-height: 1.7;
  color: #725CFF;
  font-family: "Inter", sans-serif;
  background: #040026;
}

@media screen and (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}

.u-pc-only {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-pc-only {
    display: block;
  }
}

.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Components */
.c-inner {
  width: min(92%, 1140px);
  margin-inline: auto;
}

.c-title {
  font-size: clamp(40px, 5vw, 48px);
  font-weight: 500;
  color: #725CFF;
  text-transform: uppercase;
  font-family: "Inter", sans-serif;
}
.c-title__accent {
  color: #DC0004;
  font-family: "Inter", sans-serif;
  font-weight: 500;
}

.c-arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}

.c-arrow__text {
  font-size: clamp(20px, 3vw, 36px);
  font-weight: 400;
  color: #725CFF;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
}

.c-arrow__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 24px;
  height: 24px;
  color: #DC0004;
}
.c-arrow__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.c-section-title {
  font-family: "Klee One", sans-serif;
  font-weight: 600;
  font-size: clamp(2.5rem, 1.6197183099rem + 3.7558685446vw, 5rem);
  line-height: 1.2;
  color: #725CFF;
  border-bottom: 3px solid #725CFF;
}

.c-section-title__text {
  position: relative;
  display: inline-block;
  vertical-align: top;
  padding-bottom: 3px;
  margin-bottom: -3px;
}
.c-section-title__text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background-color: #DC0004;
  -webkit-transform-origin: left;
          transform-origin: left;
}

.is-rise-wait .c-section-title__text::after {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}

.is-rise .c-section-title__text::after {
  -webkit-animation: c-section-title-line 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1.1s both;
          animation: c-section-title-line 0.6s cubic-bezier(0.22, 1, 0.36, 1) 1.1s both;
}

@media (prefers-reduced-motion: reduce) {
  .is-rise-wait .c-section-title__text::after,
  .is-rise .c-section-title__text::after {
    -webkit-transform: none;
            transform: none;
    -webkit-animation: none;
            animation: none;
  }
}
@-webkit-keyframes c-section-title-line {
  from {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  to {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
@keyframes c-section-title-line {
  from {
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
  }
  to {
    -webkit-transform: scaleX(1);
            transform: scaleX(1);
  }
}
.c-frame {
  display: grid;
  grid-template-columns: 100%;
  place-items: center;
  padding: 6%;
  background-color: #111;
  border: 3px solid #725CFF;
}

.c-frame__image {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border: 4px solid #725CFF;
}

.c-screenshot {
  border: 2px solid #725CFF;
}

.c-rise {
  display: block;
  overflow: hidden;
  vertical-align: top;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}

.c-rise__inner {
  display: block;
  -webkit-animation-duration: 0.9s;
          animation-duration: 0.9s;
  -webkit-animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
          animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-animation-delay: calc(var(--i, 0) * 0.15s + 0.2s);
          animation-delay: calc(var(--i, 0) * 0.15s + 0.2s);
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}
@media (prefers-reduced-motion: reduce) {
  .c-rise__inner {
    -webkit-animation: none !important;
            animation: none !important;
  }
}

.is-rise-wait .c-rise__inner {
  -webkit-transform: translateY(110%);
          transform: translateY(110%);
}
@media (prefers-reduced-motion: reduce) {
  .is-rise-wait .c-rise__inner {
    -webkit-transform: none;
            transform: none;
  }
}

.is-rise .c-rise__inner {
  -webkit-animation-name: c-rise;
          animation-name: c-rise;
}

@-webkit-keyframes c-rise {
  from {
    -webkit-transform: translateY(110%);
            transform: translateY(110%);
  }
  to {
    -webkit-transform: none;
            transform: none;
  }
}

@keyframes c-rise {
  from {
    -webkit-transform: translateY(110%);
            transform: translateY(110%);
  }
  to {
    -webkit-transform: none;
            transform: none;
  }
}
.c-underline {
  padding-bottom: 0.12em;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#DC0004), to(#DC0004));
  background-image: linear-gradient(#DC0004, #DC0004);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 0.07em;
}

.is-rise-wait .c-underline {
  background-size: 0 0.07em;
}

.is-rise .c-underline {
  -webkit-animation: c-underline 1s cubic-bezier(0.65, 0, 0.35, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
          animation: c-underline 1s cubic-bezier(0.65, 0, 0.35, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
}

@media (prefers-reduced-motion: reduce) {
  .is-rise-wait .c-underline,
  .is-rise .c-underline {
    background-size: 100% 0.07em;
    -webkit-animation: none;
            animation: none;
  }
}
@-webkit-keyframes c-underline {
  from {
    background-size: 0 0.07em;
  }
  to {
    background-size: 100% 0.07em;
  }
}
@keyframes c-underline {
  from {
    background-size: 0 0.07em;
  }
  to {
    background-size: 100% 0.07em;
  }
}
.c-link-label {
  position: relative;
  display: inline-block;
  vertical-align: top;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#DC0004), to(#DC0004));
  background-image: linear-gradient(#DC0004, #DC0004);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0 max(2px, 0.06em);
  -webkit-transition: background-size 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  transition: background-size 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.c-link-label__inner {
  display: inline-block;
}

.c-link .c-arrow__icon {
  overflow: hidden;
}

@media (hover: hover) {
  .c-link:hover .c-link-label {
    background-size: 100% max(2px, 0.06em);
  }
  .c-link:hover .c-arrow__icon svg {
    -webkit-animation: c-link-arrow-loop 1.2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
            animation: c-link-arrow-loop 1.2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
  }
  .c-link--external:hover .c-arrow__icon svg {
    -webkit-animation-name: c-link-arrow-loop-external;
            animation-name: c-link-arrow-loop-external;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-link-label {
    -webkit-transition: none;
    transition: none;
  }
  .c-link .c-arrow__icon svg {
    -webkit-animation: none !important;
            animation: none !important;
  }
}
@-webkit-keyframes c-link-arrow-loop {
  0% {
    -webkit-transform: none;
            transform: none;
  }
  35% {
    -webkit-transform: translateX(110%);
            transform: translateX(110%);
  }
  36% {
    -webkit-transform: translateX(-110%);
            transform: translateX(-110%);
  }
  70%, 100% {
    -webkit-transform: none;
            transform: none;
  }
}
@keyframes c-link-arrow-loop {
  0% {
    -webkit-transform: none;
            transform: none;
  }
  35% {
    -webkit-transform: translateX(110%);
            transform: translateX(110%);
  }
  36% {
    -webkit-transform: translateX(-110%);
            transform: translateX(-110%);
  }
  70%, 100% {
    -webkit-transform: none;
            transform: none;
  }
}
@-webkit-keyframes c-link-arrow-loop-external {
  0% {
    -webkit-transform: none;
            transform: none;
  }
  35% {
    -webkit-transform: translate(110%, -110%);
            transform: translate(110%, -110%);
  }
  36% {
    -webkit-transform: translate(-110%, 110%);
            transform: translate(-110%, 110%);
  }
  70%, 100% {
    -webkit-transform: none;
            transform: none;
  }
}
@keyframes c-link-arrow-loop-external {
  0% {
    -webkit-transform: none;
            transform: none;
  }
  35% {
    -webkit-transform: translate(110%, -110%);
            transform: translate(110%, -110%);
  }
  36% {
    -webkit-transform: translate(-110%, 110%);
            transform: translate(-110%, 110%);
  }
  70%, 100% {
    -webkit-transform: none;
            transform: none;
  }
}
.c-text-link {
  color: inherit;
}
.is-rise .c-text-link .c-underline {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}

.c-text-link__icon {
  display: inline-block;
  width: 0.9em;
  height: 0.9em;
  margin-left: 0.1em;
  overflow: hidden;
  vertical-align: -0.1em;
  color: #DC0004;
}
.c-text-link__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (hover: hover) {
  .c-text-link:hover .c-text-link__icon svg {
    -webkit-animation: c-link-arrow-loop-external 1.2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
            animation: c-link-arrow-loop-external 1.2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-text-link__icon svg {
    -webkit-animation: none !important;
            animation: none !important;
  }
}
/* Global */
/* Layout */
.l-header {
  position: fixed;
  top: var(--wp-admin--admin-bar--height, 0);
  left: 0;
  width: 100%;
  z-index: 100;
  background: #040026;
  padding: 10px 0;
  height: 48px;
}

.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.l-header__title {
  font-size: 16px;
  font-weight: 700;
  color: #725CFF;
}

.l-header__nav {
  font-size: 16px;
  font-weight: 400;
  color: #725CFF;
}

.l-header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: 20px;
}

.l-header__nav-item {
  list-style: none;
}

/*=================
  Contact
=================*/
.l-contact {
  padding: 100px 0;
}

.l-contact__inner {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-contact__content {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 30px;
}

.l-contact__text-wrapper {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-contact__title {
  margin-top: 40px;
}

.l-contact__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: clamp(24px, 10vw, 120px);
}

.l-contact__link-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.25em;
}

.l-contact__link-icon {
  width: 0.8em;
  height: 0.8em;
}

/*=================
  Footer
=================*/
.l-footer {
  padding: 50px 0 10px;
  background: #1A1251;
}

.l-footer__inner {
  width: 83%;
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-footer__content {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  gap: 30px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.l-footer__next-text {
  font-size: clamp(24px, 10vw, 120px);
  font-weight: 500;
  color: #DC0004;
  text-transform: uppercase;
  font-family: "Inter", sans-serif;
}

.l-footer__arrow {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 1.5em;
          flex: 0 0 1.5em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: clamp(24px, 10vw, 120px);
  color: #DC0004;
  -webkit-transition: flex-grow 1.2s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-flex 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: flex-grow 1.2s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-flex 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: flex-grow 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  transition: flex-grow 1.2s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-flex 1.2s cubic-bezier(0.22, 1, 0.36, 1), -ms-flex-positive 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.l-footer__arrow.is-inview {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
@media (prefers-reduced-motion: reduce) {
  .l-footer__arrow {
    -webkit-transition: none;
    transition: none;
  }
}

.l-footer__arrow-line {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  height: 0.05em;
  background-color: currentColor;
  border-radius: 0.025em;
}

.l-footer__arrow-head {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.6em;
  height: 0.6em;
  margin-left: -0.5em;
}

.l-footer__page-wrapper {
  margin-left: auto;
  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-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-footer__page-text {
  font-size: clamp(24px, 5vw, 48px);
  font-weight: 500;
}

.l-footer__copyright-wrapper {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-footer__tagline-wrapper {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.l-footer__tagline {
  font-size: clamp(24px, 10vw, 120px);
  font-weight: 500;
  color: #725CFF;
  text-transform: uppercase;
  font-family: "Elms Sans", sans-serif;
}

.l-footer__tagline-word {
  display: inline-block;
}

.l-footer__tagline-accent {
  color: #DC0004;
}

.l-footer__copyright-text {
  font-size: 14px;
  font-weight: 400;
  color: #8876FF;
  font-family: "Elms Sans", sans-serif;
}

/* Page */
/*=================
  FV
=================*/
.p-fv {
  display: grid;
  min-height: 100svh;
  padding: calc(48px + 20px) 0 40px;
}
@media screen and (min-width: 768px) {
  .p-fv {
    min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
  }
}

.p-fv__inner {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-fv__tagline {
  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-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 30px;
  font-size: clamp(24px, 10vw, 120px);
  font-weight: 500;
  color: #725CFF;
  text-transform: uppercase;
  font-family: "Elms Sans", sans-serif;
}
.p-fv__tagline-accent {
  color: #DC0004;
}
@media screen and (max-width: 767px) {
  .p-fv__tagline {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    width: 100%;
    font-size: 16vw;
    line-height: 1.1;
  }
}

@media screen and (max-width: 767px) {
  .p-fv__line {
    display: contents;
  }
}

@media screen and (max-width: 767px) {
  .p-fv__word:nth-child(2) {
    -ms-flex-item-align: end;
        align-self: flex-end;
  }
}

.p-fv__word {
  display: inline-block;
}
.p-fv__word .c-rise__inner {
  -webkit-animation-name: c-rise;
          animation-name: c-rise;
}

/*=================
  Works
=================*/
.p-works {
  padding: 100px 0 0;
}

.p-works__inner {
  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-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-works__heading {
  display: grid;
  grid-template-columns: 1fr;
}

.p-works__title {
  font-size: clamp(24px, 10vw, 120px);
  font-weight: 500;
  line-height: 1.1;
  color: #725CFF;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  text-align: center;
}

.p-works__link {
  gap: 0;
  margin-left: auto;
  margin-right: 0;
}
@media screen and (min-width: 768px) {
  .p-works__link {
    gap: 10px;
  }
}

.p-works__link-text {
  font-size: clamp(20px, 3vw, 36px);
  font-weight: 400;
  color: #725CFF;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
}

.p-works__link-icon {
  width: 20px;
  height: 20px;
}

.p-works__content {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-works__content::after {
  content: "";
  width: 100%;
  height: calc(80svh + calc(100svh - (48px + var(--wp-admin--admin-bar--height, 0px))));
}

.p-works__item {
  width: 100%;
  height: calc(100svh - (48px + var(--wp-admin--admin-bar--height, 0px)));
  margin-bottom: 80svh;
  position: sticky;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + 48px);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}
.p-works__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000000;
  opacity: 0.84;
  z-index: 1;
  -webkit-transition: opacity 0.8s ease;
  transition: opacity 0.8s ease;
}
.p-works__item:last-of-type {
  margin-bottom: 0;
}
.p-works__item.is-rise-wait::before {
  opacity: 0;
}
.p-works__item .c-rise__inner {
  -webkit-animation-delay: calc(var(--i, 0) * 0.15s + 0.6s);
          animation-delay: calc(var(--i, 0) * 0.15s + 0.6s);
}
@media (prefers-reduced-motion: reduce) {
  .p-works__item::before {
    -webkit-transition: none;
    transition: none;
  }
}

.p-works__item-inner {
  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-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 50px;
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  .p-works__item-inner {
    height: 100%;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.p-works__item-title {
  font-size: clamp(50px, 10vw, 128px);
  font-weight: 500;
  color: #DC0004;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  max-width: 60%;
  line-height: 1;
}

.p-works__item-description-inner {
  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-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}

.p-works__item-label {
  font-size: clamp(20px, 3vw, 24px);
  font-weight: 500;
  color: #725CFF;
  font-family: "Inter", sans-serif;
}

.p-works__item-types {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-works__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-works__item-text + .p-works__item-text::before {
  content: ",";
  margin-right: 10px;
}

.p-works__item-link-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media screen and (min-width: 768px) {
  .p-works__item-link {
    position: absolute;
    right: 0;
    bottom: clamp(35px, 10svh, 75px);
  }
}

/*=================
  About
=================*/
.p-about {
  padding: 100px 0;
  background-color: #1A1251;
  position: relative;
  z-index: 3;
  margin-top: calc(-1 * calc(100svh - (48px + var(--wp-admin--admin-bar--height, 0px))));
}

.p-about__inner {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.p-about__title {
  width: 100%;
  font-size: clamp(24px, 10vw, 120px);
  line-height: 1.1;
  text-align: center;
}

.p-about__content {
  width: 100%;
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}
@media screen and (min-width: 768px) {
  .p-about__content {
    display: grid;
    grid-template-areas: "text name" "text image" "text link";
    grid-template-columns: minmax(0, 1fr) auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: 60px;
       -moz-column-gap: 60px;
            column-gap: 60px;
    row-gap: 10px;
  }
}

.p-about__text-wrapper {
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
}
@media screen and (min-width: 768px) {
  .p-about__text-wrapper {
    grid-area: text;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.p-about__text {
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.4;
  font-weight: 400;
  color: #725CFF;
  font-family: "Klee One", sans-serif;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about__text {
    text-align: left;
  }
}

.p-about__image-wrapper {
  --image-wrapper-padding: 30px;
  grid-area: image;
  padding: var(--image-wrapper-padding);
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  background: rgba(114, 92, 255, 0.25);
  position: relative;
}

.p-about__my-image {
  aspect-ratio: 165/233;
}

.p-about__mask-image {
  position: absolute;
  top: 15%;
  left: 50%;
  -webkit-transform: translateX(-50%) rotate(23deg);
          transform: translateX(-50%) rotate(23deg);
  width: 32.718974359%;
  -webkit-animation: p-about-mask 0.4s steps(1) infinite;
          animation: p-about-mask 0.4s steps(1) infinite;
}
.p-about__mask-image--alt {
  width: 34.4791723466%;
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s;
}
@media (prefers-reduced-motion: reduce) {
  .p-about__mask-image {
    -webkit-animation: none;
            animation: none;
  }
  .p-about__mask-image--alt {
    display: none;
  }
}

@-webkit-keyframes p-about-mask {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}

@keyframes p-about-mask {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
.p-about__name {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about__name {
    grid-area: name;
  }
}

@media screen and (min-width: 768px) {
  .p-about__link {
    grid-area: link;
    justify-self: center;
  }
}

.p-about__accent {
  font-weight: 500;
  background: -webkit-gradient(linear, left top, right top, color-stop(45%, #DC0004), color-stop(55%, #725CFF)) left/220% 100% no-repeat;
  background: linear-gradient(to right, #DC0004 45%, #725CFF 55%) left/220% 100% no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.is-rise-wait .p-about__accent {
  background-position: right;
}
.is-rise .p-about__accent {
  -webkit-animation: p-about-accent 1s cubic-bezier(0.65, 0, 0.35, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
          animation: p-about-accent 1s cubic-bezier(0.65, 0, 0.35, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
}
@media (prefers-reduced-motion: reduce) {
  .is-rise-wait .p-about__accent, .is-rise .p-about__accent {
    background-position: left;
    -webkit-animation: none;
            animation: none;
  }
}

@-webkit-keyframes p-about-accent {
  from {
    background-position: right;
  }
  to {
    background-position: left;
  }
}

@keyframes p-about-accent {
  from {
    background-position: right;
  }
  to {
    background-position: left;
  }
}
/*=================
  セクションの重なり
=================*/
[data-stack] {
  min-height: calc(100svh - (48px + var(--wp-admin--admin-bar--height, 0px)));
  background-color: #040026;
}
[data-stack]:not(:last-child) {
  margin-bottom: 80svh;
}

.is-stacked {
  position: sticky;
  top: var(--stack-top, 0px);
}

/*=================
  About FV
=================*/
.p-about-fv {
  display: grid;
  height: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
  padding: calc(48px + 16px) 0 24px;
}

.p-about-fv__inner {
  display: grid;
  grid-template-areas: "title" "image" "body" "name";
  grid-template-rows: auto minmax(0, 466px) auto auto;
  -ms-flex-line-pack: center;
      align-content: center;
  gap: clamp(12px, 2svh, 32px);
}
@media screen and (min-width: 1024px) {
  .p-about-fv__inner {
    grid-template-areas: "title image" "body  image" "name  name";
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto;
    -webkit-column-gap: 40px;
       -moz-column-gap: 40px;
            column-gap: 40px;
  }
}

.p-about-fv__title {
  grid-area: title;
  font-size: clamp(40px, min(15vw, 12svh), 160px);
  font-weight: 600;
  line-height: 1.2;
  color: #DC0004;
  text-transform: uppercase;
}

.p-about-fv__body {
  grid-area: body;
  display: grid;
  -ms-flex-line-pack: start;
      align-content: start;
  gap: clamp(12px, 2svh, 24px);
}

.p-about-fv__catch {
  font-size: clamp(20px, min(4.2vw, 5.5svh), 60px);
  font-weight: 600;
  line-height: 1.3;
}

.p-about-fv__lead {
  font-size: clamp(14px, min(1.7vw, 2.4svh), 24px);
  font-weight: 600;
  line-height: 1.3;
}

.p-about-fv__image-wrapper {
  grid-area: image;
  justify-self: center;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 330/466;
}
@media screen and (min-width: 1024px) {
  .p-about-fv__image-wrapper {
    height: auto;
    width: clamp(200px, (100svh - 300px) * 330 / 466, 420px);
  }
}

.p-about-fv__image-inner {
  position: relative;
  height: 100%;
  background-color: #A2B69A;
}

.p-about-fv__image-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.p-about-fv__image {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-about-fv__name {
  grid-area: name;
  font-family: "Klee One", sans-serif;
  font-size: clamp(40px, min(14vw, 11svh), 160px);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-align: end;
}
@media screen and (min-width: 1024px) {
  .p-about-fv__name {
    justify-self: end;
  }
}

/*=================
  これまでの歩み
=================*/
.p-history {
  padding: 80px 0;
}

.p-history__list {
  display: grid;
  gap: 80px;
  margin-top: 64px;
  list-style: none;
}

.p-history__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 1024px) {
  .p-history__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
  }
}

.p-history__text-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  width: 100%;
}

.p-history__date {
  font-size: clamp(1.375rem, 1.110915493rem + 1.1267605634vw, 2.125rem);
  line-height: 1.3;
}

.p-history__role {
  font-size: clamp(1.375rem, 1.110915493rem + 1.1267605634vw, 2.125rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-history__catch {
  font-size: clamp(1.75rem, 1.1778169014rem + 2.441314554vw, 3.375rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-history__text {
  max-width: 350px;
  font-size: clamp(0.9375rem, 0.8714788732rem + 0.2816901408vw, 1.125rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-history__image-wrapper {
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-history__image-wrapper {
    max-width: 40%;
  }
}

.p-history__image-mask {
  width: 100%;
}

.p-history__image {
  aspect-ratio: 426/377;
}
.p-history__image--top {
  -o-object-position: top;
     object-position: top;
}

/*=================
  強み
=================*/
.p-strengths {
  padding: 80px 0;
}

.p-strengths__list {
  display: grid;
  gap: 64px;
  margin-top: 64px;
  list-style: none;
}
@media screen and (min-width: 1024px) {
  .p-strengths__list {
    grid-template-columns: repeat(3, 1fr);
    -webkit-column-gap: 40px;
       -moz-column-gap: 40px;
            column-gap: 40px;
  }
}

.p-strengths__item {
  display: grid;
  -ms-flex-line-pack: start;
      align-content: start;
  gap: 16px;
}

.p-strengths__number {
  font-family: "Elms Sans", sans-serif;
  font-size: clamp(2rem, 1.6478873239rem + 1.5023474178vw, 3rem);
  line-height: 1;
  color: #DC0004;
}

.p-strengths__name {
  font-size: clamp(1.375rem, 1.2429577465rem + 0.5633802817vw, 1.75rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-strengths__text {
  font-size: clamp(0.9375rem, 0.8714788732rem + 0.2816901408vw, 1.125rem);
  font-weight: 600;
  line-height: 1.6;
}

/*=================
  スキル
=================*/
.p-skills {
  padding: 80px 0;
}

.p-skills__list {
  display: grid;
  gap: 64px;
  margin-top: 64px;
  list-style: none;
}
@media screen and (min-width: 1024px) {
  .p-skills__list {
    grid-template-columns: repeat(2, 1fr);
  }
}

.p-skills__item {
  display: grid;
  gap: 24px;
}

.p-skills__name {
  font-size: clamp(1.375rem, 1.110915493rem + 1.1267605634vw, 2.125rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-skills__name-text {
  position: relative;
  display: inline-block;
  vertical-align: top;
  padding-bottom: 6px;
}
.p-skills__name-text::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background-color: #DC0004;
  -webkit-transform-origin: left;
          transform-origin: left;
}
.is-rise-wait .p-skills__name-text::after {
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}
.is-rise .p-skills__name-text::after {
  -webkit-animation: c-section-title-line 0.6s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
          animation: c-section-title-line 0.6s cubic-bezier(0.22, 1, 0.36, 1) calc(var(--i, 0) * 0.15s + 1.1s) both;
}
@media (prefers-reduced-motion: reduce) {
  .is-rise-wait .p-skills__name-text::after, .is-rise .p-skills__name-text::after {
    -webkit-transform: none;
            transform: none;
    -webkit-animation: none;
            animation: none;
  }
}

.p-skills__text {
  max-width: 350px;
  font-size: clamp(0.9375rem, 0.8714788732rem + 0.2816901408vw, 1.125rem);
  font-weight: 600;
  line-height: 1.3;
}

/*=================
  趣味
=================*/
.p-hobbies {
  padding: 80px 0 120px;
}

.p-hobbies__name {
  margin-top: 64px;
  font-size: clamp(1.375rem, 1.110915493rem + 1.1267605634vw, 2.125rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-hobbies__lead {
  max-width: 640px;
  margin-top: 16px;
  font-size: clamp(0.9375rem, 0.8714788732rem + 0.2816901408vw, 1.125rem);
  font-weight: 600;
  line-height: 1.6;
}

.p-hobbies__list {
  display: grid;
  gap: 48px;
  margin-top: 48px;
  list-style: none;
}
@media screen and (min-width: 1024px) {
  .p-hobbies__list {
    grid-template-columns: repeat(3, 1fr);
    -webkit-column-gap: 40px;
       -moz-column-gap: 40px;
            column-gap: 40px;
  }
}

.p-hobbies__item {
  display: grid;
  -ms-flex-line-pack: start;
      align-content: start;
  gap: 16px;
  padding-top: 24px;
  border-top: 3px solid #DC0004;
}

.p-hobbies__image-mask {
  width: 100%;
}

.p-hobbies__image {
  aspect-ratio: 720/1018;
}

.p-hobbies__movie-title {
  font-size: clamp(1.25rem, 1.1179577465rem + 0.5633802817vw, 1.625rem);
  font-weight: 600;
  line-height: 1.3;
}

.p-hobbies__quote {
  font-size: clamp(0.9375rem, 0.8934859155rem + 0.1877934272vw, 1.0625rem);
  font-weight: 600;
  line-height: 1.6;
  color: #DC0004;
}

.p-hobbies__text {
  font-size: clamp(0.875rem, 0.8309859155rem + 0.1877934272vw, 1rem);
  line-height: 1.7;
}

/*=================
  Works 一覧
=================*/
.p-works-archive {
  --thumbs-width: 40px;
  --thumbs-gap: 20px;
  position: relative;
  min-height: 100svh;
  padding: 80px 15px 40px calc(var(--thumbs-width) + 45px);
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-works-archive {
    --thumbs-width: 50px;
    --thumbs-gap: 30px;
    padding: 80px 30px 40px calc(var(--thumbs-width) + 120px);
  }
}
.p-works-archive .c-rise__inner {
  -webkit-animation-name: c-rise;
          animation-name: c-rise;
}

.p-works-archive__thumbs {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 15px;
  width: var(--thumbs-width);
  overflow: hidden;
}
@media screen and (min-width: 1024px) {
  .p-works-archive__thumbs {
    left: 30px;
  }
}

.p-works-archive__thumbs-track {
  -webkit-animation: works-thumbs-flow 40s linear infinite;
          animation: works-thumbs-flow 40s linear infinite;
}
.p-works-archive__thumbs:hover .p-works-archive__thumbs-track {
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
  .p-works-archive__thumbs-track {
    -webkit-animation: none;
            animation: none;
  }
}

@-webkit-keyframes works-thumbs-flow {
  to {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}

@keyframes works-thumbs-flow {
  to {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}
.p-works-archive__thumbs-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: var(--thumbs-gap);
  padding-bottom: var(--thumbs-gap);
  list-style: none;
}

.p-works-archive__thumb {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 50/65;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
}
.p-works-archive__thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  opacity: 0;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.p-works-archive__thumb.is-active::after {
  opacity: 1;
}

.p-works-archive__thumb-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-works-archive__content {
  display: grid;
  gap: 40px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (min-width: 1024px) {
  .p-works-archive__content {
    grid-template-columns: 1fr 1fr;
    min-height: calc(100svh - 300px);
    padding-right: 10%;
  }
}

.p-works-archive__label {
  font-family: "Elms Sans", sans-serif;
  font-size: 24px;
  line-height: 1.2;
}

.p-works-archive__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 10px;
  margin-top: 20px;
  list-style: none;
}

.p-works-archive__list-button {
  padding: 0;
  border: none;
  background: none;
  font-size: 14px;
  line-height: 1.2;
  color: #725CFF;
  text-align: left;
  cursor: pointer;
}
.p-works-archive__list-button.is-active {
  color: #DC0004;
}
.p-works-archive__list-button:focus-visible {
  outline-offset: -2px;
}

.p-works-archive__main {
  width: 100%;
}

.p-works-archive__main-inner {
  display: grid;
}

.p-works-archive__main-item {
  position: relative;
  grid-area: 1/1;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.5s, visibility 0.5s;
  transition: opacity 0.5s, visibility 0.5s;
}
.p-works-archive__main-item.is-active {
  opacity: 1;
  visibility: visible;
}

.p-works-archive__main-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
  .p-works-archive__thumb:hover .p-works-archive__thumb-image {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .p-works-archive__main-item:hover .p-works-archive__main-image {
    -webkit-transform: scale(1.04);
            transform: scale(1.04);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-works-archive__thumb-image,
  .p-works-archive__main-image {
    -webkit-transition: none;
    transition: none;
  }
}
.p-works-archive__title {
  margin-top: 40px;
  font-size: clamp(4rem, 0.6549295775rem + 14.2723004695vw, 13.5rem);
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

/*=================
  Works 一覧：表紙エリア
=================*/
.p-works-showcase {
  height: calc(var(--panel-count, 1) * 100svh);
}

.p-works-showcase__stage {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}

.p-works-showcase__panel {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 180px 15px 100px;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.6s, visibility 0.6s;
  transition: opacity 0.6s, visibility 0.6s;
}
@media screen and (min-width: 1024px) {
  .p-works-showcase__panel {
    padding: 160px 30px 120px;
  }
}
.p-works-showcase__panel.is-active {
  opacity: 1;
  visibility: visible;
}

.p-works-showcase.is-ready .p-works-showcase__panel:not(.is-rise) .c-rise__inner {
  -webkit-transform: translateY(110%);
          transform: translateY(110%);
}
@media (prefers-reduced-motion: reduce) {
  .p-works-showcase.is-ready .p-works-showcase__panel:not(.is-rise) .c-rise__inner {
    -webkit-transform: none;
            transform: none;
  }
}

.p-works-showcase__title {
  position: absolute;
  top: 60px;
  left: 15px;
  font-size: clamp(3rem, 1.6355633803rem + 5.8215962441vw, 6.875rem);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
}
@media screen and (min-width: 1024px) {
  .p-works-showcase__title {
    left: 30px;
  }
}

.p-works-showcase__cover {
  display: grid;
  gap: 40px;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-works-showcase__cover {
    grid-template-columns: 1fr minmax(0, 625px) 1fr;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

@media screen and (min-width: 1024px) {
  .p-works-showcase__image-wrapper {
    grid-column: 2;
    grid-row: 1;
  }
}

.p-works-showcase__image {
  width: 100%;
  height: auto;
  aspect-ratio: 625/391;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (min-width: 1024px) {
  .p-works-showcase__point {
    grid-column: 1;
    grid-row: 1;
    padding-left: 60px;
  }
}

@media screen and (min-width: 1024px) {
  .p-works-showcase__info {
    grid-column: 3;
    grid-row: 1;
  }
}

.p-works-showcase__label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.p-works-showcase__point-text,
.p-works-showcase__info-text {
  margin-top: 12px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

.p-works-showcase__site-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 4px;
  margin-top: 12px;
  font-size: 13px;
  text-decoration: underline;
}

.p-works-showcase__site-icon {
  width: 1.2em;
  height: 1.2em;
}

.p-works-showcase__detail-link {
  position: absolute;
  right: 15px;
  bottom: 20px;
  font-size: clamp(2rem, 0.9436619718rem + 4.5070422535vw, 5rem);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
}
@media screen and (min-width: 1024px) {
  .p-works-showcase__detail-link {
    right: 30px;
  }
}

.p-works-showcase__detail-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
}

.p-works-showcase__detail-icon {
  width: 1.1em;
  height: 1.1em;
}

/*=================
  Works 詳細：ヒーロー
=================*/
.p-work__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-work-hero {
  padding: 120px 0 80px;
}

.p-work-hero__inner {
  display: grid;
  gap: 32px;
}
@media screen and (min-width: 1024px) {
  .p-work-hero__inner {
    grid-template-columns: 1fr 240px;
    -webkit-column-gap: 60px;
       -moz-column-gap: 60px;
            column-gap: 60px;
  }
}

@media screen and (min-width: 1024px) {
  .p-work-hero__heading {
    grid-column: 1/-1;
  }
}

.p-work-hero__type {
  font-family: "Elms Sans", sans-serif;
  font-size: 14px;
  line-height: 1.2;
  color: #DC0004;
}

.p-work-hero__title {
  margin-top: 8px;
  font-size: clamp(3rem, 1.6355633803rem + 5.8215962441vw, 6.875rem);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
}

.p-work-hero__point {
  margin-top: 16px;
  font-size: clamp(1rem, 0.823943662rem + 0.7511737089vw, 1.5rem);
  font-weight: 600;
  line-height: 1.4;
}

.p-work-hero__image {
  width: 100%;
  height: auto;
}

.p-work-hero__label {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.p-work-hero__info-text {
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.6;
}

.p-work-hero__site-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 4px;
  margin-top: 12px;
  font-size: 14px;
  text-decoration: underline;
}

.p-work-hero__site-icon {
  width: 1.2em;
  height: 1.2em;
}

/*=================
  Works 詳細：ケーススタディ
=================*/
.p-work-case {
  padding: 60px 0;
}

.p-work-case__label {
  font-family: "Elms Sans", sans-serif;
  font-size: 16px;
  line-height: 1.2;
  color: #DC0004;
}

.p-work-case__title {
  margin-top: 8px;
}

.p-work-case__item {
  margin-top: 40px;
}
.p-work-case__item + .p-work-case__item {
  margin-top: 60px;
}
.p-work-case__item--has-image {
  display: grid;
  gap: 24px;
}
@media screen and (min-width: 1024px) {
  .p-work-case__item--has-image {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    -webkit-column-gap: 60px;
       -moz-column-gap: 60px;
            column-gap: 60px;
  }
}

.p-work-case__figure {
  margin: 0;
}

.p-work-case__image {
  width: 100%;
  height: auto;
}

.p-work-case__caption {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.6;
}

.p-work-case__body {
  max-width: 800px;
  font-size: clamp(0.9375rem, 0.8934859155rem + 0.1877934272vw, 1.0625rem);
  line-height: 1.9;
}
.p-work-case__body > * + * {
  margin-top: 1.2em;
}
.p-work-case__body h3 {
  font-size: 1.3em;
  font-weight: 600;
  line-height: 1.4;
}
.p-work-case__body ul,
.p-work-case__body ol {
  padding-left: 1.5em;
}
.p-work-case__body a {
  text-decoration: underline;
}
.p-work-case__body img {
  max-width: 100%;
  height: auto;
}

/*=================
  Works 詳細：一覧へ戻る
=================*/
.p-work-back {
  padding: 60px 0 100px;
}

.p-work-back__link {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

/*=================
  Contact ページ
=================*/
.p-contact-page {
  padding: 120px 0 100px;
  background-color: #1A1251;
}

.p-contact-page__inner {
  max-width: 720px;
}

.p-contact-page__title {
  font-size: clamp(3rem, 1.6355633803rem + 5.8215962441vw, 6.875rem);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
}

.p-contact-page__lead {
  margin-top: 24px;
  font-size: clamp(0.9375rem, 0.8714788732rem + 0.2816901408vw, 1.125rem);
  line-height: 1.7;
  color: #8876FF;
}

.p-contact-page__form {
  margin-top: 60px;
}
.p-contact-page__form p + p {
  margin-top: 28px;
}
.p-contact-page__form label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #8876FF;
}
.p-contact-page__form input:not([type=submit]),
.p-contact-page__form textarea {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px 14px;
  border: 1px solid #725CFF;
  border-radius: 0;
  background-color: #040026;
  font: inherit;
  color: #725CFF;
  -webkit-transition: -webkit-box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1), -webkit-box-shadow 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.p-contact-page__form input:not([type=submit]):focus,
.p-contact-page__form textarea:focus {
  outline: 2px solid #DC0004;
  outline-offset: 2px;
}
@media (hover: hover) {
  .p-contact-page__form input:not([type=submit]):hover,
  .p-contact-page__form textarea:hover {
    -webkit-box-shadow: inset 0 0 0 2px #725CFF;
            box-shadow: inset 0 0 0 2px #725CFF;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-contact-page__form input:not([type=submit]),
  .p-contact-page__form textarea {
    -webkit-transition: none;
    transition: none;
  }
}
.p-contact-page__form textarea {
  min-height: 200px;
  resize: vertical;
}
.p-contact-page__form input[type=submit] {
  padding: 14px 48px;
  border: 1px solid #725CFF;
  border-radius: 5px;
  background: -webkit-gradient(linear, left top, left bottom, from(#725CFF), to(#725CFF)) left/0 100% no-repeat, #040026;
  background: linear-gradient(#725CFF, #725CFF) left/0 100% no-repeat, #040026;
  font: inherit;
  font-weight: 500;
  color: #725CFF;
  cursor: pointer;
  -webkit-transition: background-size 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s;
  transition: background-size 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s;
  align-self: center;
  grid-column: 2;
}
@media (hover: hover) {
  .p-contact-page__form input[type=submit]:hover {
    background-size: 100% 100%, auto;
    color: #040026;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-contact-page__form input[type=submit] {
    -webkit-transition: none;
    transition: none;
  }
}
.p-contact-page__form input[type=submit]:focus-visible {
  outline: 2px solid #DC0004;
  outline-offset: 2px;
}
.p-contact-page__form p:has(input[type=submit]) {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
}