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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  color: #242424;
  background: #ffffff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, p, figure, ul, ol {
  margin: 0;
  padding: 0;
}

ul, ol {
  list-style: none;
}

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

img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

@media (max-width: 768px) {
  body {
    overflow-x: hidden;
    line-height: 1.5;
  }
}
.js .reveal {
  opacity: 0;
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity;
}

.js .reveal.is-visible {
  opacity: 1;
}

.js .reveal--up {
  opacity: 0;
  translate: 0 30px;
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), translate 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, translate;
}

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

.pc-logo {
  position: fixed;
  top: 50px;
  left: 50px;
  width: 87px;
  height: 146px;
  margin: 0;
  z-index: 100;
  pointer-events: none;
}
.pc-logo > img {
  display: block;
  width: 100%;
  height: auto;
}

.gnav,
.gnav-toggle,
.sp-logo {
  display: none;
}

@media (max-width: 768px) {
  .pc-logo {
    display: none;
  }
  .sp-logo {
    display: block;
    position: fixed;
    top: 5.3333333333vw;
    left: 3.4666666667vw;
    width: 9.8666666667vw;
    height: 16.5333333333vw;
    margin: 0;
    z-index: 100;
    pointer-events: none;
  }
  .sp-logo > img {
    display: block;
    width: 100%;
    height: 100%;
  }
  .gnav-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 4.2666666667vw;
    right: 4.2666666667vw;
    width: 12.8vw;
    height: 12.8vw;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    z-index: 100;
    -webkit-tap-highlight-color: transparent;
  }
  .gnav-toggle__bars {
    position: relative;
    width: 5.3333333333vw;
    height: 3.7333333333vw;
  }
  .gnav-toggle__bar {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background: #242424;
    border-radius: 1px;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.25s ease;
  }
  .gnav-toggle__bar:nth-child(1) {
    top: 0;
  }
  .gnav-toggle__bar:nth-child(2) {
    top: 50%;
    transform: translateY(-50%);
  }
  .gnav-toggle__bar:nth-child(3) {
    bottom: 0;
  }
  .is-gnav-open .gnav-toggle__bar:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
  }
  .is-gnav-open .gnav-toggle__bar:nth-child(2) {
    opacity: 0;
    transform: translateY(-50%) scaleX(0);
  }
  .is-gnav-open .gnav-toggle__bar:nth-child(3) {
    top: 50%;
    bottom: auto;
    transform: translateY(-50%) rotate(-45deg);
  }
  .is-gnav-open .gnav-toggle {
    background: #ffffff;
  }
  .gnav {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    inset: 0;
    background: rgba(230, 0, 3, 0.95);
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.4s;
  }
  .is-gnav-open .gnav {
    opacity: 1;
    visibility: visible;
  }
  .gnav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
  }
  .gnav__item {
    opacity: 0;
    transform: translateY(5.3333333333vw);
    transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .is-gnav-open .gnav__item {
    opacity: 1;
    transform: translateY(0);
  }
  .is-gnav-open .gnav__item:nth-child(1) {
    transition-delay: 0.14s;
  }
  .is-gnav-open .gnav__item:nth-child(2) {
    transition-delay: 0.2s;
  }
  .is-gnav-open .gnav__item:nth-child(3) {
    transition-delay: 0.26s;
  }
  .is-gnav-open .gnav__item:nth-child(4) {
    transition-delay: 0.32s;
  }
  .is-gnav-open .gnav__item:nth-child(5) {
    transition-delay: 0.38s;
  }
  .is-gnav-open .gnav__item:nth-child(6) {
    transition-delay: 0.44s;
  }
  .gnav__link {
    display: block;
    padding: 4.2666666667vw 6.4vw;
    font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
    font-size: 7.4666666667vw;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #ffffff;
    text-transform: uppercase;
    transition: opacity 0.2s ease;
  }
  .gnav__link:active {
    opacity: 0.7;
  }
  .gnav__link-sub {
    display: block;
    font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
    font-size: 2.9333333333vw;
    font-weight: 400;
    letter-spacing: 0.1em;
    margin-top: 0.5333333333vw;
    opacity: 0.8;
  }
}
.mv {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/1334;
  overflow: hidden;
  background: #ffffff;
}

.mv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}

.mv__float {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
.mv__float img {
  display: block;
  width: 100%;
  height: auto;
}

.mv__float--01 {
  top: 4vw;
  left: -3vw;
  width: 23.0729166667vw;
}

.mv__float--02 {
  top: 22.992504%;
  left: 66.666667%;
  width: 30.041667vw;
  z-index: 0;
}

.mv__person {
  position: absolute;
  z-index: 2;
  opacity: 0;
  animation: mvFadeIn 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  will-change: transform, opacity;
}
.mv__person img {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: 50% 100%;
  animation: mvSway 4s ease-in-out infinite;
  will-change: transform;
}

.mv__person--01 {
  top: 13.1184407796%;
  left: 1.0416666667%;
  width: 20.1041666667%;
  animation-delay: 0.15s;
}
.mv__person--01 img {
  animation-duration: 4.2s;
  animation-delay: -0.4s;
}

.mv__person--02 {
  top: 0.6746626687%;
  left: 26.7708333333%;
  width: 17.96875%;
  animation-delay: 0.3s;
}
.mv__person--02 img {
  animation-duration: 4.6s;
  animation-delay: -1.1s;
}

.mv__person--03 {
  top: 0%;
  left: 55.625%;
  width: 21.6145833333%;
  animation-delay: 0.45s;
}
.mv__person--03 img {
  animation-duration: 3.8s;
  animation-delay: -0.6s;
}

.mv__person--04 {
  top: 17.691154%;
  left: 74.270833%;
  width: 22.4375%;
  animation-delay: 0.6s;
}
.mv__person--04 img {
  animation-duration: 4.4s;
  animation-delay: -1.5s;
}

.mv__person--05 {
  top: 52.9985007496%;
  left: 10.78125%;
  width: 27.5%;
  animation-delay: 0.2s;
}
.mv__person--05 img {
  animation-duration: 5s;
  animation-delay: -0.8s;
}

.mv__person--06 {
  top: 64.2428785607%;
  left: 48.2291666667%;
  width: 24.2708333333%;
  z-index: 4;
  animation-delay: 0.5s;
}
.mv__person--06 img {
  animation-duration: 4s;
  animation-delay: -2s;
}

.mv__person--07,
.mv__person--08,
.mv__person--09,
.mv__person--10,
.mv__person--11 {
  display: none;
}

.mv__title {
  position: absolute;
  top: 26.6116941529%;
  left: 38.3333333333%;
  width: 23.28125%;
  z-index: 3;
  opacity: 0;
  animation: mvFadeIn 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.7s forwards;
}
.mv__title img {
  width: 100%;
  height: auto;
}

.mv__title-side {
  position: absolute;
  top: 38.2308845577%;
  left: 24.0104166667%;
  width: 10%;
  z-index: 3;
  opacity: 0;
  animation: mvFadeIn 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.85s forwards;
}
.mv__title-side img {
  width: 100%;
  height: auto;
}

.mv__date {
  position: absolute;
  top: 47.1514242879%;
  left: 71.3541666667%;
  width: 29.0104166667%;
  z-index: 3;
  opacity: 0;
  animation: mvFadeIn 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.9s forwards;
}
.mv__date img {
  width: 100%;
  height: auto;
}

@media (max-width: 768px) {
  .mv {
    aspect-ratio: 375/772;
  }
  .mv__bg {
    width: 112.8vw;
    max-width: none;
    height: auto;
    top: -6.333333vw;
    left: 50%;
    transform: translateX(-50%);
  }
  .mv__float--01 {
    top: 8vw;
    left: -9vw;
    width: 46.1333333333vw;
  }
  .mv__float--02 {
    display: none;
  }
  .mv__person--07,
  .mv__person--08,
  .mv__person--09,
  .mv__person--10,
  .mv__person--11 {
    display: block;
  }
  .mv__person--01 {
    top: 14.5077720207%;
    left: 1.0666666667%;
    width: 17.8666666667%;
  }
  .mv__person--02 {
    top: 10.621761658%;
    left: 12.8%;
    width: 19.7333333333%;
  }
  .mv__person--03 {
    top: 4.792746114%;
    left: 47.4666666667%;
    width: 13.6%;
  }
  .mv__person--04 {
    top: 3.6269430052%;
    left: 52.8%;
    width: 11.4666666667%;
  }
  .mv__person--05 {
    top: 1.6839378238%;
    left: 59.4666666667%;
    width: 16%;
  }
  .mv__person--06 {
    top: 15.1554404145%;
    left: 54.4%;
    width: 41.6%;
  }
  .mv__person--07 {
    top: 58.9378238342%;
    left: 52.2%;
    width: 13.3333333333%;
    z-index: 6;
  }
  .mv__person--08 {
    top: 58.8082901554%;
    left: 19.2%;
    width: 12.8%;
    z-index: 6;
  }
  .mv__person--09 {
    top: 58.5492227979%;
    left: 32%;
    width: 14.9333333333%;
    z-index: 6;
  }
  .mv__person--10 {
    top: 28.7564766839%;
    left: 7.2%;
    width: 37.3333333333%;
  }
  .mv__person--11 {
    top: 50.1295336788%;
    left: 55.2%;
    width: 49.3333333333%;
    z-index: 4;
  }
  .mv__title {
    top: 29.792746114%;
    left: 32.2666666667%;
    width: 35.4666666667%;
    z-index: 10;
  }
  .mv__title-side {
    top: 39.5077720207%;
    left: 74.6666666667%;
    width: 18.6666666667%;
  }
  .mv__date {
    top: auto;
    bottom: 8vw;
    left: 0;
    width: 100%;
    height: 27.6%;
    background: #d00010;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5.3333333333vw;
    z-index: 5;
  }
  .mv__date img {
    width: 77.3333333333vw;
  }
}
@keyframes mvFadeIn {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes mvSway {
  0% {
    transform: rotate(-1.6deg);
  }
  50% {
    transform: rotate(1.6deg);
  }
  100% {
    transform: rotate(-1.6deg);
  }
}
.about {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/790;
  background: #ffffff;
  overflow: visible;
  z-index: 1;
}

.about__float {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}
.about__float img {
  display: block;
  width: 100%;
  height: auto;
}

.about__float--01 {
  top: 12.7604166667vw;
  left: 0;
  width: 9.2708333333vw;
}

.about__float--02 {
  top: 26.072917vw;
  left: 64.6354166667vw;
  width: 22.65625vw;
  z-index: 2;
}

.about__float--sp-01 {
  display: none;
}

.about__title {
  position: absolute;
  top: 3.125vw;
  left: 9.8958333333vw;
  display: flex;
  align-items: baseline;
  gap: 0.3vw;
  margin: 0;
  white-space: nowrap;
  font-weight: 700;
  color: #242424;
}

.about__title-main {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 3.2291666667vw;
  line-height: 1;
}

.about__title-sub {
  font-size: 2.1875vw;
  line-height: 1;
}

.about__divider {
  position: absolute;
  top: 7.2916666667vw;
  left: 9.8958333333vw;
  width: 24.4791666667vw;
  height: 1px;
  margin: 0;
  background: #242424;
  border: 0;
}

.about__text {
  position: absolute;
  top: 9.84375vw;
  left: 9.8958333333vw;
  width: 30.2604166667vw;
  margin: 0;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 0.9375vw;
  line-height: 2.2222222222;
  letter-spacing: 0.05em;
  color: #242424;
}

.about__photo {
  position: absolute;
  top: 0;
  border-radius: 0.4166666667vw;
  object-fit: cover;
}

.about__photo--01 {
  left: 44.84375vw;
  width: 32.8125vw;
  aspect-ratio: 630/490;
}

.about__photo--02 {
  left: 78.1770833333vw;
  width: 21.8229166667vw;
  aspect-ratio: 419/490;
}

@media (max-width: 768px) {
  .about {
    aspect-ratio: 375/858;
    overflow: hidden;
    z-index: auto;
  }
  .about__float {
    display: none;
  }
  .about__float--sp-01 {
    display: block;
    top: 66.333333vw;
    left: 66.133333vw;
    width: 208px;
    z-index: 0;
  }
  .about__title {
    top: 7.5757575758%;
    left: 6.6666666667%;
    gap: 2.1333333333vw;
  }
  .about__title-main {
    font-size: 8.5333333333vw;
  }
  .about__title-sub {
    font-size: 5.8666666667vw;
  }
  .about__divider {
    top: 12.5874125874%;
    left: 6.6666666667%;
    width: 67.4666666667%;
  }
  .about__text {
    top: 16.0839160839%;
    left: 6.6666666667%;
    width: 86.6666666667%;
    font-size: 3.2vw;
    line-height: 2;
    letter-spacing: 0.05em;
  }
  .about__photo {
    border-radius: 10.6666666667vw;
  }
  .about__photo--01 {
    left: 0;
    top: 46.5034965035%;
    width: 100%;
    aspect-ratio: 375/222;
  }
  .about__photo--02 {
    left: 0;
    top: 74.1258741259%;
    width: 100%;
    aspect-ratio: 375/222;
    object-position: 50% 20%;
  }
}
.schedule {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/1750;
  margin-top: -3.75vw;
  background: #dedede;
  overflow: visible;
}
.schedule::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5.2083333333vw;
  background: #f5f5f5;
  z-index: 1;
}
.schedule::after {
  content: "";
  position: absolute;
  top: 39.84375vw;
  left: 20.5729166667vw;
  width: 58.8541666667vw;
  height: 33.75vw;
  background: #ffffff;
  border-radius: 1.0416666667vw;
  z-index: 1;
}

.schedule__float {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
.schedule__float img {
  display: block;
  width: 100%;
  height: auto;
}

.schedule__float--01 {
  top: 0;
  left: 6.1458333333vw;
  width: 23.0729166667vw;
  z-index: 2;
}

.schedule__float--02 {
  top: 11.1458333333vw;
  left: 0;
  width: 26.40625vw;
}

.schedule__float--03 {
  top: 36.71875vw;
  left: 74.53125vw;
  width: 19.0625vw;
}

.schedule__float--04 {
  top: 77.760417vw;
  left: 57.9166666667vw;
  width: 22.7083333333vw;
}

.schedule__float--05 {
  bottom: -12vw;
  left: -7.208333vw;
  width: 43.739583vw;
}

.schedule__float--sp-01,
.schedule__float--sp-02 {
  display: none;
}

.schedule__heading {
  position: absolute;
  top: 11.9270833333vw;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 2;
}

.schedule__sub {
  margin: 0 0 0.2083333333vw;
  font-size: 1.1458333333vw;
  font-weight: 500;
  color: #e60003;
  letter-spacing: 0.1em;
}

.schedule__title {
  margin: 0;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 4.1666666667vw;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #242424;
}

.schedule__dates {
  position: absolute;
  top: 22.34375vw;
  left: 0;
  width: 100%;
  z-index: 2;
}

.schedule__date {
  position: absolute;
  text-align: center;
  color: #242424;
}
.schedule__date img {
  display: block;
  width: 100%;
  height: auto;
}

.schedule__date--gifu {
  left: 30.2604166667vw;
  width: 16.3020833333vw;
}

.schedule__date--nagoya {
  left: 52.3958333333vw;
  width: 16.3541666667vw;
}

.schedule__venue {
  margin: 0.4166666667vw 0 0;
  font-size: 0.78125vw;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.schedule__map {
  display: inline-flex;
  align-items: center;
  gap: 0.3125vw;
  margin-top: 1.0416666667vw;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.0416666667vw;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.2083333333vw;
  color: #242424;
}
.schedule__map::after {
  content: "";
  width: 0.7291666667vw;
  height: 0.7291666667vw;
  background: currentColor;
  mask-image: url("../images/blank-icon.svg");
  mask-repeat: no-repeat;
  mask-size: contain;
}
.schedule__map:hover {
  opacity: 0.7;
}

.schedule__scroll-hint {
  display: none;
}

.schedule__timeline {
  position: absolute;
  top: 44.0104166667vw;
  left: 24.2708333333vw;
  width: 50.3125vw;
  height: auto;
  z-index: 2;
}

.schedule__woman {
  position: absolute;
  top: 50.3645833333vw;
  left: 10.4166666667vw;
  width: 13.125vw;
  aspect-ratio: 252/491;
  z-index: 3;
}
.schedule__woman img {
  display: block;
  width: 100%;
  height: auto;
  transform-origin: 50% 100%;
  animation: scheduleSway 4.2s ease-in-out infinite;
  will-change: transform;
}

@keyframes scheduleSway {
  0% {
    transform: rotate(-1.6deg);
  }
  50% {
    transform: rotate(1.6deg);
  }
  100% {
    transform: rotate(-1.6deg);
  }
}
.schedule__cta {
  position: absolute;
  top: 77.7604166667vw;
  left: 39.0104166667vw;
  width: 22.03125vw;
  height: 4.1145833333vw;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2.0833333333vw;
  background: url("../images/schedule-cta-bg.svg") no-repeat center/100% 100%;
  color: #ffffff;
  font-size: 1.4583333333vw;
  font-weight: 800;
  letter-spacing: 0.05em;
  z-index: 2;
  transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}
.schedule__cta:hover {
  transform: translateY(2px);
}

.schedule__cta-arrow {
  font-size: 1.4583333333vw;
}

@media (max-width: 768px) {
  .schedule {
    aspect-ratio: 375/1201;
    margin-top: -22.9333333333vw;
    overflow: hidden;
  }
  .schedule::before {
    display: none;
  }
  .schedule::after {
    display: none;
  }
  .schedule__float {
    display: none;
  }
  .schedule__float--sp-01 {
    display: block;
    top: 9.2vw;
    left: -32.5333333333vw;
    width: 81.0666666667vw;
    z-index: 1;
  }
  .schedule__float--sp-01 img {
    height: 32vw;
    width: auto;
  }
  .schedule__float--sp-02 {
    display: block;
    top: 90.6666666667vw;
    left: 57.0666666667vw;
    width: 59.2vw;
    z-index: 1;
  }
  .schedule__heading {
    top: 23.7333333333vw;
  }
  .schedule__sub {
    font-size: 3.2vw;
    margin-bottom: 1.0666666667vw;
    letter-spacing: 0.15em;
    color: #bb0115;
    white-space: nowrap;
  }
  .schedule__title {
    font-size: 9.6vw;
    font-weight: 600;
    white-space: nowrap;
  }
  .schedule__dates {
    top: 53.8666666667vw;
  }
  .schedule__date {
    left: 50%;
    transform: translateX(-50%);
  }
  .schedule__date--gifu {
    width: 60vw;
  }
  .schedule__date--nagoya {
    top: 60.2666666667vw;
    width: 60.5333333333vw;
  }
  .schedule__venue {
    display: none;
  }
  .schedule__map {
    font-size: 4.8vw;
    margin-top: 5.3333333333vw;
    gap: 1.6vw;
    text-underline-offset: 1.0666666667vw;
  }
  .schedule__map::after {
    width: 5.0666666667vw;
    height: 5.0666666667vw;
  }
  .schedule__timeline-wrap {
    position: absolute;
    top: 174.4vw;
    left: 6.6666666667vw;
    width: 86.6666666667vw;
    height: 99vw;
    background: #ffffff;
    border-radius: 5.3333333333vw;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    z-index: 1;
  }
  .schedule__timeline {
    position: static;
    display: block;
    width: 710px;
    max-width: none;
    height: auto;
    padding: 5.3333333333vw;
  }
  .schedule__scroll-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 0;
    background: transparent;
    border-radius: 5.3333333333vw;
    z-index: 10;
    cursor: pointer;
    transition: opacity 0.4s ease;
  }
  .schedule__scroll-hint.is-hidden {
    opacity: 0;
    pointer-events: none;
  }
  .schedule__scroll-hint img {
    display: block;
    width: 42.6666666667vw;
    height: auto;
  }
  .schedule__woman {
    display: none;
  }
  .schedule__cta {
    top: 291.4666666667vw;
    left: 50%;
    transform: translateX(-50%);
    width: 68.8vw;
    height: 12.8vw;
    border-radius: 6.4vw;
    font-size: 3.7333333333vw;
    font-weight: 700;
    gap: 4.2666666667vw;
  }
  .schedule__cta:hover {
    transform: translateX(-50%) translateY(2px);
  }
  .schedule__cta-arrow {
    font-size: 3.7333333333vw;
  }
}
.movie {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/896;
  background: #ffffff;
  overflow: visible;
}

.movie__float--01 {
  position: absolute;
  top: 8.3333333333vw;
  left: -13vw;
  width: 19.8958333333vw;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
.movie__float--01 img {
  display: block;
  width: 100%;
  height: auto;
}

.movie__heading {
  position: absolute;
  top: 8.1770833333vw;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 2;
}

.movie__sub {
  margin: 0 0 0.2083333333vw;
  font-size: 1.1458333333vw;
  font-weight: 500;
  color: #e60003;
  letter-spacing: 0.1em;
}

.movie__title {
  margin: 0;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 4.1666666667vw;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #242424;
}

.movie__card {
  position: absolute;
  top: 17.5520833333vw;
  width: 25.46875vw;
  height: 20.78125vw;
  z-index: 2;
}

.movie__card--01 {
  left: 9.8958333333vw;
}

.movie__card--02 {
  left: 37.2916666667vw;
}

.movie__card--03 {
  left: 64.6354166667vw;
}

.movie__card-bg {
  position: absolute;
  top: 1.5625vw;
  left: 0;
  width: 25.46875vw;
  height: 17.65625vw;
  background: transparent;
  border: 0.1041666667vw solid #242424;
  border-radius: 2.0833333333vw;
  pointer-events: none;
  z-index: 1;
}

.movie__year-bg {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 7.5520833333vw;
  height: 3.125vw;
  background: #ffffff;
  z-index: 2;
  pointer-events: none;
}

.movie__year {
  position: absolute;
  top: 0.2604166667vw;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 2.0833333333vw;
  font-weight: 400;
  line-height: 1.2;
  color: #242424;
  letter-spacing: 0.02em;
  white-space: nowrap;
  z-index: 3;
}

.movie__thumb {
  position: absolute;
  top: 4.2708333333vw;
  left: 2.7083333333vw;
  width: 20.0520833333vw;
  height: 12.2395833333vw;
  padding: 0;
  border: 0;
  border-radius: 0.4166666667vw;
  overflow: hidden;
  background: #242424;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.movie__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.movie__thumb:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.4166666667vw 1.25vw rgba(0, 0, 0, 0.2);
}
.movie__thumb:hover img {
  transform: scale(1.05);
}
.movie__thumb:hover .movie__play {
  background: #e60003;
}

.movie__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3.75vw;
  height: 3.75vw;
  transform: translate(-50%, -50%);
  background: rgba(36, 36, 36, 0.75);
  border-radius: 50%;
  pointer-events: none;
  transition: background 0.25s ease;
}
.movie__play::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  width: 0;
  height: 0;
  border-left: 1.0416666667vw solid #ffffff;
  border-top: 0.6770833333vw solid transparent;
  border-bottom: 0.6770833333vw solid transparent;
  transform: translate(-50%, -50%);
}

.movie__btn {
  position: absolute;
  top: 17.96875vw;
  left: 7.03125vw;
  width: 11.4583333333vw;
  height: 2.8125vw;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.78125vw;
  padding: 0;
  background: #bb0115;
  color: #ffffff;
  border: 0;
  border-radius: 2.9166666667vw;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 1.4583333333vw;
  font-weight: 400;
  letter-spacing: 0.04em;
  cursor: pointer;
  z-index: 2;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.movie__btn:hover {
  transform: translateY(-2px);
  opacity: 0.9;
}

.movie__btn-arrow {
  font-size: 1.3020833333vw;
}

@media (max-width: 768px) {
  .movie {
    aspect-ratio: 375/1045;
    overflow: hidden;
  }
  .movie__float--01 {
    display: none;
  }
  .movie__heading {
    top: 13.0666666667vw;
  }
  .movie__sub {
    font-size: 3.2vw;
    margin-bottom: 1.0666666667vw;
    letter-spacing: 0.15em;
    color: #bb0115;
    white-space: nowrap;
  }
  .movie__title {
    font-size: 9.6vw;
    font-weight: 600;
    white-space: nowrap;
  }
  .movie__card {
    left: 6.6666666667vw;
    width: 86.6666666667vw;
    height: 60vw;
  }
  .movie__card--01 {
    top: 43.2vw;
  }
  .movie__card--02 {
    top: 120.2666666667vw;
  }
  .movie__card--03 {
    top: 197.3333333333vw;
  }
  .movie__card-bg {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-width: 1px;
    border-radius: 5.3333333333vw;
  }
  .movie__year-bg {
    top: -5.3333333333vw;
    width: 25.8666666667vw;
    height: 10.6666666667vw;
  }
  .movie__year {
    top: -4.5333333333vw;
    font-size: 6.9333333333vw;
  }
  .movie__thumb {
    top: 9.0666666667vw;
    left: 9.3333333333vw;
    width: 68vw;
    height: 41.8666666667vw;
    border-radius: 2.1333333333vw;
  }
  .movie__play {
    width: 12.8vw;
    height: 12.8vw;
  }
  .movie__play::before {
    border-left-width: 3.7333333333vw;
    border-top-width: 2.4vw;
    border-bottom-width: 2.4vw;
  }
  .movie__btn {
    top: 55.7333333333vw;
    left: 50%;
    transform: translateX(-50%);
    width: 38.9333333333vw;
    height: 9.6vw;
    border-radius: 14.9333333333vw;
    font-size: 4.2666666667vw;
    gap: 2.6666666667vw;
  }
  .movie__btn:hover {
    transform: translateX(-50%) translateY(-2px);
  }
  .movie__btn-arrow {
    font-size: 4.5333333333vw;
  }
}
.movie__thumb.is-playing {
  cursor: default;
}
.movie__thumb.is-playing img,
.movie__thumb.is-playing > picture,
.movie__thumb.is-playing > .movie__play {
  display: none;
}
.movie__thumb.is-playing > iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.sponsors {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/734;
  background: #f5f5f5;
  overflow: hidden;
}

.sponsors__heading {
  position: absolute;
  top: 8.1770833333vw;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
}

.sponsors__sub {
  margin: 0 0 0.2083333333vw;
  font-size: 1.1458333333vw;
  font-weight: 500;
  color: #e60003;
  letter-spacing: 0.1em;
}

.sponsors__title {
  margin: 0;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 4.1666666667vw;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #242424;
}

.sponsors__logos {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sponsors__logo {
  position: absolute;
  display: block;
}
.sponsors__logo > a,
.sponsors__logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity 0.2s ease;
}
.sponsors__logo > a:hover {
  opacity: 0.7;
}

.sponsors__logo--01 {
  top: 18.90625vw;
  left: 26.40625vw;
  width: 12.5520833333vw;
  height: 9.3229166667vw;
}

.sponsors__logo--02 {
  top: 16.3541666667vw;
  left: 43.28125vw;
  width: 13.28125vw;
  height: 13.59375vw;
}

.sponsors__logo--03 {
  top: 20.6770833333vw;
  left: 57.7604166667vw;
  width: 19.6875vw;
  height: 4.4791666667vw;
}

@media (max-width: 768px) {
  .sponsors {
    aspect-ratio: 375/620;
    background: #dedede;
  }
  .sponsors__heading {
    top: 13.3333333333vw;
  }
  .sponsors__sub {
    font-size: 3.2vw;
    margin-bottom: 1.0666666667vw;
    letter-spacing: 0.15em;
    color: #bb0115;
    white-space: nowrap;
  }
  .sponsors__title {
    font-size: 9.6vw;
    font-weight: 600;
    white-space: nowrap;
  }
  .sponsors__logo--01 {
    top: 44vw;
    left: 28.5333333333vw;
    width: 42.9333333333vw;
    height: 31.7333333333vw;
  }
  .sponsors__logo--02 {
    top: 83.2vw;
    left: 28.5333333333vw;
    width: 42.9333333333vw;
    height: 44vw;
  }
  .sponsors__logo--03 {
    top: 132.5333333333vw;
    left: 50%;
    transform: translateX(-50%);
    width: 73.3333333333vw;
    height: 16.8vw;
  }
}
.event {
  position: relative;
  width: 100%;
  aspect-ratio: 1920/3710;
  margin-top: -9.541667vw;
  background: transparent;
  overflow: hidden;
}
.event::before {
  content: "";
  position: absolute;
  top: 10.5208333333vw;
  left: 0;
  width: 100%;
  height: 181.9270833333vw;
  background: #f5f5f5;
  z-index: 0;
}
.event::after {
  content: "";
  position: absolute;
  top: 26.1458333333vw;
  left: 49.85vw;
  width: 0;
  height: 155.8854166667vw;
  border-left: 0.2604166667vw dotted #f5f5f5;
  z-index: 3;
}

.event__heading {
  position: absolute;
  top: 16.6145833333vw;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  z-index: 2;
}

.event__sub {
  margin: 0 0 0.2083333333vw;
  font-size: 1.1458333333vw;
  font-weight: 500;
  color: #e60003;
  letter-spacing: 0.1em;
}

.event__title {
  margin: 0;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 4.1666666667vw;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #242424;
}

.event__obj {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
.event__obj img {
  display: block;
  width: 100%;
  height: auto;
}

.event__obj--01 {
  top: 7.7083333333vw;
  left: -8.4895833333vw;
  width: 50.9895833333vw;
}

.event__obj--02 {
  top: 126.0416666667vw;
  left: 61.25vw;
  width: 41.875vw;
  height: 44.8958333333vw;
}
.event__obj--02 img {
  height: 100%;
  -webkit-mask-image: url("../images/event-obj02-mask1.svg");
  mask-image: url("../images/event-obj02-mask1.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.event__float {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  user-select: none;
}
.event__float img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-mask-image: url("../images/event-float01-mask1.svg");
  mask-image: url("../images/event-float01-mask1.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.event__float--01 {
  top: 58.40625vw;
  left: 85.96875vw;
  width: 19.8958333333vw;
}

.event__float--02 {
  top: 114.59375vw;
  left: -1.229167vw;
  width: 20.625vw;
}
.event__float--02 img {
  -webkit-mask-image: url("../images/event-float02-mask1.svg");
  mask-image: url("../images/event-float02-mask1.svg");
}

.event__float--sp-02 {
  display: none;
}

.event__float--sp-03 {
  display: none;
}

.event__float--sp-04 {
  display: none;
}

.event__person {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  user-select: none;
}
.event__person img {
  display: block;
  width: 100%;
  height: auto;
}

.event__person--01,
.event__person--02 {
  animation: eventPersonClimb 12s linear infinite;
  will-change: transform, opacity;
}
.event__person--01 img,
.event__person--02 img {
  animation: mvSway 4s ease-in-out infinite;
  transform-origin: 50% 100%;
  will-change: transform;
}

.event__person--01 {
  top: 0;
  left: 11.875vw;
  width: 9.2708333333vw;
}

.event__person--02 {
  top: 2.5520833333vw;
  left: 5vw;
  width: 10.625vw;
}
.event__person--02 img {
  animation-delay: -1.2s;
  animation-duration: 4.4s;
}

.event__person--03 {
  top: 14.2708333333vw;
  left: 80.3125vw;
  width: 10.6770833333vw;
}

.event__person--04 {
  top: 111.40625vw;
  left: 1.9270833333vw;
  width: 8.59375vw;
}

.event__person--05 {
  top: 111.875vw;
  left: 7.8645833333vw;
  width: 8.28125vw;
}

.event__person--06,
.event__person--07,
.event__person--08,
.event__person--09,
.event__person--10 {
  animation: eventPersonDance 12s linear infinite;
  will-change: transform, opacity;
}

.event__person--06 {
  top: 178.6979166667vw;
  left: 61.6145833333vw;
  width: 7.65625vw;
}

.event__person--07 {
  top: 180.9375vw;
  left: 68.4895833333vw;
  width: 6.0416666667vw;
}

.event__person--08 {
  top: 178.6458333333vw;
  left: 74.5833333333vw;
  width: 7.4479166667vw;
}

.event__person--09 {
  top: 178.4375vw;
  left: 82.0833333333vw;
  width: 7.0833333333vw;
}

.event__person--10 {
  top: 178.0729166667vw;
  left: 89.1666666667vw;
  width: 8.2291666667vw;
}

@keyframes eventPersonClimb {
  0% {
    transform: translate(-1.4583333333vw, 4.6875vw);
    opacity: 0;
  }
  10% {
    transform: translate(-1.1458333333vw, 3.75vw);
    opacity: 1;
  }
  30% {
    transform: translate(-0.5208333333vw, 2.3958333333vw);
  }
  55% {
    transform: translate(0.3125vw, 0.9375vw);
  }
  80% {
    transform: translate(1.1458333333vw, -0.5208333333vw);
  }
  92% {
    transform: translate(1.5625vw, -1.3541666667vw);
    opacity: 1;
  }
  100% {
    transform: translate(1.875vw, -2.0833333333vw);
    opacity: 0;
  }
}
@keyframes eventPersonDance {
  0% {
    transform: translate(-4.1666666667vw, 0) rotate(-1.5deg);
    opacity: 0;
  }
  6% {
    transform: translate(-4.1666666667vw, 0) rotate(-1.5deg);
    opacity: 1;
  }
  14% {
    transform: translate(-3.3333333333vw, -0.3125vw) rotate(1.5deg);
  }
  22% {
    transform: translate(-2.5vw, 0) rotate(-1.5deg);
  }
  30% {
    transform: translate(-1.6666666667vw, -0.3125vw) rotate(1.5deg);
  }
  38% {
    transform: translate(-0.8333333333vw, 0) rotate(-1.5deg);
  }
  46% {
    transform: translate(0, -0.3125vw) rotate(1.5deg);
  }
  54% {
    transform: translate(0.8333333333vw, 0) rotate(-1.5deg);
  }
  62% {
    transform: translate(1.6666666667vw, -0.3125vw) rotate(1.5deg);
  }
  70% {
    transform: translate(2.5vw, 0) rotate(-1.5deg);
  }
  78% {
    transform: translate(3.3333333333vw, -0.3125vw) rotate(1.5deg);
  }
  86% {
    transform: translate(4.1666666667vw, 0) rotate(-1.5deg);
  }
  94% {
    transform: translate(4.1666666667vw, 0) rotate(-1.5deg);
    opacity: 1;
  }
  100% {
    transform: translate(4.1666666667vw, 0) rotate(-1.5deg);
    opacity: 0;
  }
}
.event__card {
  position: absolute;
  width: 40.1041666667vw;
  height: 38.59375vw;
  padding: 0;
  background: #ffffff;
  border-radius: 2.0833333333vw;
  z-index: 2;
}
.event__card--tall {
  height: 40.15625vw;
}
.event__card:not(.event__card--07):not(.event__card--08)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 36.9375vw;
  height: 0;
  border-bottom: 0.2604166667vw dotted #f5f5f5;
  z-index: 5;
}

.event__card--01 {
  left: 9.8958333333vw;
  top: 26.1458333333vw;
  --card-color: #e60003;
}

.event__card--02 {
  left: 50vw;
  top: 26.1458333333vw;
  --card-color: #008842;
}

.event__card--03 {
  left: 9.8958333333vw;
  top: 64.7395833333vw;
  --card-color: #1d2088;
}

.event__card--04 {
  left: 50vw;
  top: 64.7395833333vw;
  --card-color: #f39800;
}

.event__card--05 {
  left: 9.8958333333vw;
  top: 104.8958333333vw;
  --card-color: #e4007f;
}

.event__card--06 {
  left: 50vw;
  top: 104.8958333333vw;
  --card-color: #92308d;
}

.event__card--07 {
  left: 9.8958333333vw;
  top: 143.4375vw;
  --card-color: #599dc9;
}

.event__card--08 {
  left: 50vw;
  top: 143.4375vw;
  --card-color: #e9551f;
}

.event__card-title {
  position: absolute;
  top: 3.9583333333vw;
  left: 4.1666666667vw;
  margin: 0;
  font-size: 1.875vw;
  font-weight: 800;
  line-height: 40/36;
  letter-spacing: 0.05em;
  color: var(--card-color);
  white-space: nowrap;
}

.event__card-note {
  position: absolute;
  top: 4.5833333333vw;
  left: 15.6770833333vw;
  margin: 0;
  font-size: 0.9375vw;
  line-height: 1.6;
  color: #242424;
  white-space: nowrap;
}

.event__card-link {
  position: absolute;
  top: 3.90625vw;
  left: 15.4166666667vw;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 12.7083333333vw;
  height: 2.34375vw;
  padding: 0 1.0416666667vw;
  background: var(--card-color);
  color: #ffffff;
  border-radius: 1.1979166667vw;
  font-size: 0.8333333333vw;
  letter-spacing: 0.05em;
  line-height: 1;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.event__card-link:hover {
  opacity: 0.85;
  transform: translateY(-1px);
}

.event__card-figure {
  position: absolute;
  top: 7.7083333333vw;
  left: 4.1666666667vw;
  width: 31.7708333333vw;
  height: 20.6770833333vw;
  margin: 0;
  background: #f5f5f5;
  border-radius: 1.6666666667vw;
  overflow: hidden;
}
.event__card-figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.event__card--tall .event__card-figure {
  height: 22.2395833333vw;
}

.event__card-desc {
  position: absolute;
  top: 30.46875vw;
  left: 4.1666666667vw;
  right: 4.1666666667vw;
  margin: 0;
  font-size: 0.8333333333vw;
  line-height: 30/16;
  letter-spacing: 0.05em;
  color: #242424;
}

@media (max-width: 768px) {
  .event {
    aspect-ratio: 375/3504;
    margin-top: 0;
    overflow: hidden;
  }
  .event::before {
    top: 12.8vw;
    height: 898.6666666667vw;
  }
  .event__heading {
    top: 25.8666666667vw;
  }
  .event__sub {
    font-size: 3.2vw;
    margin-bottom: 1.0666666667vw;
    letter-spacing: 0.15em;
    color: #bb0115;
    white-space: nowrap;
  }
  .event__title {
    font-size: 9.6vw;
    font-weight: 600;
    white-space: nowrap;
  }
  .event__obj {
    display: none;
  }
  .event__float {
    display: none;
  }
  .event__person {
    display: none;
  }
  .event__obj--01 {
    display: block;
    top: 18.1333333333vw;
    left: -2.4vw;
    width: 133.6vw;
    z-index: 1;
  }
  .event__float--sp-02 {
    display: block;
    top: 208.2666666667vw;
    left: 60.5333333333vw;
    width: 57.8666666667vw;
    z-index: 1;
  }
  .event__float--sp-02 img {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .event__float--sp-03 {
    display: block;
    top: 402.6666666667vw;
    left: -14.4vw;
    width: 75.4666666667vw;
    z-index: 1;
  }
  .event__float--sp-03 img {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .event__float--sp-04 {
    display: block;
    top: 512.2666666667vw;
    right: -10.9333333333vw;
    left: auto;
    width: 35.2vw;
    z-index: 1;
  }
  .event__float--sp-04 img {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .event__person--06 {
    display: block;
    animation: none;
    top: 896.5333333333vw;
    left: 6.6666666667vw;
    width: 18.4vw;
  }
  .event__person--07 {
    display: block;
    animation: none;
    top: 901.8666666667vw;
    left: 23.2vw;
    width: 14.6666666667vw;
  }
  .event__person--08 {
    display: block;
    animation: none;
    top: 896.2666666667vw;
    left: 38.1333333333vw;
    width: 17.8666666667vw;
  }
  .event__person--09 {
    display: block;
    animation: none;
    top: 896vw;
    left: 56.2666666667vw;
    width: 17.0666666667vw;
  }
  .event__person--10 {
    display: block;
    animation: none;
    top: 894.9333333333vw;
    left: 73.3333333333vw;
    width: 20vw;
  }
  .event__card {
    left: 6.6666666667vw;
    width: 86.6666666667vw;
    border-radius: 5.3333333333vw;
  }
  .event__card--01 {
    top: 49.0666666667vw;
    height: 118.6666666667vw;
  }
  .event__card--02 {
    top: 167.7333333333vw;
    height: 106.9333333333vw;
  }
  .event__card--03 {
    top: 274.6666666667vw;
    height: 110.4vw;
  }
  .event__card--04 {
    top: 385.0666666667vw;
    height: 117.3333333333vw;
  }
  .event__card--05 {
    top: 502.4vw;
    height: 98.6666666667vw;
  }
  .event__card--06 {
    top: 601.0666666667vw;
    height: 86.9333333333vw;
  }
  .event__card--07 {
    top: 688vw;
    height: 98.6666666667vw;
  }
  .event__card--08 {
    top: 786.6666666667vw;
    height: 98.6666666667vw;
  }
  .event::after {
    display: none;
  }
  .event__card:not(.event__card--07):not(.event__card--08)::after {
    width: 100vw;
    border-bottom: 1.5vw dotted #f5f5f5;
  }
  .event__card--07::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    height: 0;
    border-bottom: 1.5vw dotted #f5f5f5;
    z-index: 5;
  }
  .event__card-title {
    top: 6.6666666667vw;
    left: 50%;
    transform: translateX(-50%);
    font-size: 4.8vw;
  }
  .event__card-link {
    top: auto;
    left: 23.2vw;
    bottom: 6.6666666667vw;
    width: 40.5333333333vw;
    height: 9.8666666667vw;
    border-radius: 5.3333333333vw;
    font-size: 3.2vw;
    padding: 0 4.2666666667vw;
  }
  .event__card-note {
    top: 13.8666666667vw;
    left: 50%;
    transform: translateX(-50%);
    font-size: 2.6666666667vw;
    white-space: nowrap;
  }
  .event__card-figure {
    top: 17.0666666667vw;
    left: 6.6666666667vw;
    width: 73.3333333333vw;
    height: 47.7333333333vw;
    bottom: auto;
    border-radius: 4.2666666667vw;
  }
  .event__card--tall .event__card-figure {
    height: 47.7333333333vw;
  }
  .event__card--04 .event__card-figure {
    top: 23.2vw;
  }
  .event__card-desc {
    top: 68vw;
    left: 6.6666666667vw;
    right: 6.6666666667vw;
    font-size: 3.2vw;
    line-height: 1.8333333333;
    letter-spacing: 0.05em;
  }
  .event__card--04 .event__card-desc {
    top: 74.1333333333vw;
  }
}
.footer {
  position: relative;
  width: 100%;
  margin-top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
}

.footer__obj {
  position: absolute;
  top: -4vw;
  left: 20.270833vw;
  width: 49.208333vw;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.footer__obj img {
  display: block;
  width: 100%;
  height: auto;
}

.footer__organizer {
  margin: 4.1666666667vw 0 2.0833333333vw;
  font-size: 1.3541666667vw;
  font-weight: 400;
  color: #ffffff;
  letter-spacing: 0.15em;
  white-space: nowrap;
  z-index: 1;
}

.footer__logo {
  width: 16.9270833333vw;
  height: auto;
  z-index: 1;
}

.footer__support {
  margin: 3.125vw 0;
  font-size: 1.3541666667vw;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 0.1em;
  white-space: nowrap;
  z-index: 1;
}

.footer__follow {
  display: flex;
  align-items: center;
  gap: 1.1458333333vw;
  z-index: 1;
}

.footer__follow-label {
  margin: 0;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 0.9375vw;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #ffffff;
  line-height: 1;
}

.footer__sns {
  display: flex;
  align-items: center;
  gap: 0.625vw;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer__sns-item {
  width: 1.6145833333vw;
  height: 1.6145833333vw;
}
.footer__sns-item > a {
  display: block;
  width: 100%;
  height: 100%;
  transition: opacity 0.2s ease;
}
.footer__sns-item > a:hover {
  opacity: 0.7;
}
.footer__sns-item img {
  display: block;
  width: 100%;
  height: 100%;
}

.footer__copy {
  margin: 1.0416666667vw 0 2.0833333333vw;
  font-family: "Barlow", "Helvetica Neue", Arial, sans-serif;
  font-size: 0.7291666667vw;
  font-weight: 400;
  color: #ffffff;
  letter-spacing: 0.04em;
  white-space: nowrap;
  z-index: 1;
}

@media (max-width: 768px) {
  .footer {
    aspect-ratio: 375/475;
    margin-top: -8vw;
    background: #f5f5f5;
    overflow: hidden;
  }
  .footer__obj {
    top: -4vw;
    left: 0;
    width: 100%;
    height: auto;
  }
  .footer__organizer {
    display: block;
    position: absolute;
    top: 16.5333333333vw;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 3.7333333333vw;
    font-weight: 400;
    color: #ffffff;
    letter-spacing: 0.15em;
    white-space: nowrap;
    z-index: 1;
  }
  .footer__logo {
    position: absolute;
    top: 28.8vw;
    left: 50%;
    transform: translateX(-50%);
    width: 45.8666666667vw;
  }
  .footer__support {
    display: block;
    position: absolute;
    top: 59.7333333333vw;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 3.7333333333vw;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.1em;
    white-space: nowrap;
    z-index: 1;
  }
  .footer__follow {
    position: absolute;
    top: 74.4vw;
    left: 50%;
    transform: translateX(-50%);
    flex-direction: column;
    gap: 4.8vw;
  }
  .footer__follow-label {
    font-size: 3.2vw;
    letter-spacing: 0.1em;
  }
  .footer__sns {
    gap: 3.4666666667vw;
  }
  .footer__sns-item {
    width: 10.6666666667vw;
    height: 10.6666666667vw;
  }
  .footer__copy {
    position: absolute;
    top: 96.8vw;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    font-size: 3.2vw;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
}
