@font-face {
  font-family: "Anton";
  src: url("../font/Anton-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}
html {
  font-size: 2.3255813953vw;
  scroll-padding-top: 8rem;
}
@media (min-width: 768px) {
  html {
    font-size: 0.5208333333vw;
  }
}
@media (min-width: 1921px) {
  html {
    font-size: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  min-width: 32rem;
  color: #000;
  background: #fff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) {
  body {
    font-size: 2rem;
  }
}

body.is-menu-open {
  overflow: hidden;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  cursor: pointer;
}

input,
select,
textarea {
  border-radius: 0;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
[type=button]:focus-visible,
[type=submit]:focus-visible,
a:focus-visible,
[tabindex="0"]:focus-visible {
  outline: 0.3rem solid #fff500;
  outline-offset: 0.3rem;
}

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

a[x-apple-data-detectors] {
  color: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

img,
picture {
  display: block;
}

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

main {
  overflow-x: clip;
}

.container {
  position: relative;
  z-index: 1;
  width: calc(100% - 7rem);
  margin-inline: auto;
}
@media (min-width: 768px) {
  .container {
    width: 151.5rem;
    max-width: calc(100% - 28rem);
  }
}

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

.pc-only {
  display: none;
}
@media (min-width: 768px) {
  .pc-only {
    display: initial;
  }
}

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

@media (min-width: 768px) {
  .hover-opacity:hover, .hover-opacity:focus-visible {
    opacity: 0.6;
  }
}
@media (min-width: 768px) {
  .hover-opacity {
    transition: opacity 0.3s;
  }
}

.hover-sweep {
  --hover-sweep-color: transparent;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.hover-sweep::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--hover-sweep-color);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
}
@media (min-width: 768px) {
  .hover-sweep::before {
    transition: transform 0.25s ease;
  }
}
@media (min-width: 768px) {
  .hover-sweep:hover::before, .hover-sweep:focus-visible::before, .hover-sweep-trigger:hover .hover-sweep::before, .hover-sweep-trigger:focus-visible .hover-sweep::before {
    transform: scaleX(1);
    transform-origin: left;
  }
}

.hover-underline {
  --hover-underline-color: currentColor;
  --hover-underline-offset-y: 0px;
  --hover-underline-thickness: 2px;
  --hover-underline-duration: 0.25s;
  --hover-underline-stagger: .08s;
  background-image: linear-gradient(var(--hover-underline-color), var(--hover-underline-color));
  background-position: right calc(100% - var(--hover-underline-offset-y));
  background-size: 0 var(--hover-underline-thickness);
  background-repeat: no-repeat;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
@media (min-width: 768px) {
  .hover-underline {
    transition: background-size 0.25s ease;
  }
}

@media (min-width: 768px) {
  .hover-underline:hover,
  .hover-underline:focus-visible,
  .hover-underline-trigger:hover .hover-underline,
  .hover-underline-trigger:focus-visible .hover-underline {
    background-position: left calc(100% - var(--hover-underline-offset-y));
    background-size: 100% var(--hover-underline-thickness);
  }
}

.hover-underline-trigger.is-hover-underline-lines-ready {
  position: relative;
}
.hover-underline-trigger.is-hover-underline-lines-ready .hover-underline {
  background-image: none;
  transition: none;
}

.hover-underline__lines {
  position: absolute;
  inset: 0;
  z-index: 2;
  color: inherit;
  pointer-events: none;
}

.hover-underline__line {
  position: absolute;
  top: calc(var(--hover-underline-line-bottom) - var(--hover-underline-thickness) - var(--hover-underline-offset-y));
  left: var(--hover-underline-line-left);
  width: var(--hover-underline-line-width);
  height: var(--hover-underline-thickness);
  background: var(--hover-underline-color);
  transform: scaleX(0);
  transform-origin: right;
}
@media (min-width: 768px) {
  .hover-underline__line {
    transition: transform var(--hover-underline-duration) ease;
    transition-delay: calc(var(--hover-underline-reverse-index) * var(--hover-underline-stagger));
  }
}

@media (min-width: 768px) {
  .hover-underline-trigger:hover .hover-underline__line,
  .hover-underline-trigger:focus-visible .hover-underline__line {
    transform: scaleX(1);
    transform-origin: left;
    transition-delay: calc(var(--hover-underline-index) * var(--hover-underline-stagger));
  }
}

.hover-zoom {
  --hover-zoom-scale: 1.06;
}
@media (min-width: 768px) {
  .hover-zoom .hover-zoom__target {
    transition: transform 0.4s ease;
  }
}
@media (min-width: 768px) {
  .hover-zoom:hover .hover-zoom__target, .hover-zoom:focus-visible .hover-zoom__target {
    transform: scale(var(--hover-zoom-scale));
  }
}

.reveal {
  --reveal-translate-y: 0;
  opacity: 1;
  translate: 0 0;
  transition: opacity 0.75s ease, translate 0.75s ease;
}

.reveal--text {
  --reveal-translate-y: 15%;
}

.is-reveal-ready .reveal {
  opacity: 0;
  translate: 0 var(--reveal-translate-y);
}

.is-reveal-ready .reveal.is-visible {
  opacity: 1;
  translate: 0 0;
}

.reveal.reveal--children {
  translate: none;
  transition: none;
}
.reveal.reveal--children > .reveal__item {
  opacity: 1;
  translate: 0 0;
  transition: opacity 0.75s ease, translate 0.75s ease;
}

.is-reveal-ready .reveal.reveal--children > .reveal__item {
  opacity: 0;
  translate: 0 var(--reveal-translate-y);
}
.is-reveal-ready .reveal.reveal--children.is-visible > .reveal__item {
  opacity: 1;
  translate: 0 0;
}

.image-wipe {
  --image-wipe-color: #fff500;
  position: relative;
  display: block;
  isolation: isolate;
  overflow: hidden;
}
.image-wipe:not(.image-wipe--clip-curtain)::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--image-wipe-color);
  content: "";
  transform: scaleX(0);
  transform-origin: left;
}

.image-wipe--clip-curtain .image-wipe__curtain {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  clip-path: inset(0 100% 0 0);
  pointer-events: none;
}
.image-wipe--clip-curtain .image-wipe__curtain::before {
  position: absolute;
  inset: 0;
  background: var(--image-wipe-color);
  clip-path: var(--image-wipe-clip);
  content: "";
}

.is-reveal-ready .reveal--image-wipe {
  opacity: 1;
  translate: 0 0;
  transition: none;
}
.is-reveal-ready .reveal--image-wipe .image-wipe__target {
  opacity: 0;
}
.is-reveal-ready .reveal--image-wipe.is-visible .image-wipe__target {
  opacity: 1;
  transition: opacity 0s 0.55s;
}
.is-reveal-ready .reveal--image-wipe.is-visible:not(.image-wipe--clip-curtain)::after {
  animation: image-wipe 1.1s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}
.is-reveal-ready .reveal--image-wipe.is-visible.image-wipe--clip-curtain .image-wipe__curtain {
  animation: image-wipe-clip 1.1s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

@keyframes image-wipe {
  0% {
    transform: scaleX(0);
    transform-origin: left;
  }
  50% {
    transform: scaleX(1);
    transform-origin: left;
  }
  50.01% {
    transform: scaleX(1);
    transform-origin: right;
  }
  100% {
    transform: scaleX(0);
    transform-origin: right;
  }
}
@keyframes image-wipe-clip {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  50% {
    clip-path: inset(0 0 0 0);
  }
  50.01% {
    clip-path: inset(0 0 0 0);
  }
  100% {
    clip-path: inset(0 0 0 100%);
  }
}
.text-stack > p + p {
  margin-top: 2em;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__track {
    will-change: auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .is-reveal-ready .reveal--image-wipe .image-wipe__target {
    opacity: 1 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .image-wipe::after,
  .image-wipe .image-wipe__curtain {
    display: none;
  }
}
