@charset "UTF-8";
* {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  margin: 0;
  background: #a5d8d8;
  font-family: "Zen Maru Gothic", sans-serif;
}

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

h1 {
  margin: 0;
}

.scroll-reveal {
  opacity: 0;
  translate: 0 5rem;
  transition: opacity 0.7s ease-out 0.5s, translate 0.7s ease-out 0.5s;
}

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

@media (prefers-reduced-motion: reduce) {
  .scroll-reveal {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
.page {
  isolation: isolate;
  min-height: 100vh;
  min-height: 100svh;
}

.page::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: #a5d8d8;
  background-image: url("../img/texcha.webp"), url("../img/footer-landscape.svg");
  background-position: left top, center bottom;
  background-size: auto, 100% auto;
  background-repeat: repeat, no-repeat;
  background-blend-mode: multiply, normal;
}

.footer-drive {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.footer-drive__truck {
  position: absolute;
  bottom: calc(12vw + 2rem);
  left: 100%;
  width: clamp(8rem, 12vw, 17.6rem);
  max-width: none;
  animation: footer-truck-drive 17s linear 0.5s infinite both;
}

@keyframes footer-truck-drive {
  from {
    transform: translateX(0);
  }
  82.352941%, 100% {
    transform: translateX(calc(-100vw - 100%));
  }
}
@media (prefers-reduced-motion: reduce) {
  .footer-drive {
    display: none;
  }
  .footer-drive__truck {
    animation: none;
  }
}
.content {
  width: min(100% - 4rem, 120rem);
  margin-inline: auto;
}

.hero {
  container-type: inline-size;
  display: grid;
  grid-template-columns: 30.666667% 38.59699% 30.736343%;
  grid-template-rows: auto;
  aspect-ratio: 1200/551;
  align-items: start;
}

.hero__intro {
  grid-area: 1/1/2/4;
  display: flex;
  align-items: flex-start;
  gap: 2.416667cqw;
  pointer-events: none;
}

.hero__venue-logo {
  width: 8.083333cqw;
}

.hero__catch {
  width: 25cqw;
  margin-top: 3.916667cqw;
}

.hero__title {
  grid-area: 1/2;
  width: 100%;
  margin-top: 3.916667cqw;
}

.hero__title img {
  width: 100%;
}

.hero__badge {
  grid-area: 1/2;
  justify-self: end;
  width: 10.833333cqw;
  margin-top: 3.916667cqw;
  transform: translateX(8.15301cqw);
}

.hero__date {
  grid-area: 1/1;
  align-self: end;
  width: 19.166667cqw;
  margin-left: 6.029046cqw;
}

.hero__map {
  grid-area: 1/3;
  justify-self: end;
  align-self: end;
  width: 24.166667cqw;
  margin-bottom: 3.25cqw;
}

.events {
  width: 83.333333%;
  margin-inline: auto;
}

.events img, .schedule img, .sponsors img {
  width: 100%;
}

.event-credits {
  width: min(90%, 80rem);
  margin: clamp(2.4rem, 3vw, 3.5rem) auto 0;
  color: #231815;
  font-family: inherit;
  font-size: clamp(1.5rem, 1.4vw, 2rem);
  line-height: 1.8;
  font-weight: 500;
}

.event-credits__row {
  display: flex;
  align-items: flex-start;
}

.event-credits__row dt {
  flex: 0 0 auto;
}

.event-credits__row dt::after {
  content: "｜";
}

.event-credits__row dd {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.event-credits__organization {
  display: inline-block;
  white-space: nowrap;
}

.schedule {
  margin-top: clamp(1.2rem, 2.916667vw, 3.5rem);
}

.schedule__title {
  width: 33.6%;
  margin: 0 auto;
}

.schedule__frame {
  margin-top: -4%;
  aspect-ratio: 2501/1861;
  padding: 9.5% 7.137% 5%;
  background: url("../img/time_schedule_frame.webp") center/100% 100% no-repeat;
}

.schedule__scroll {
  overflow-x: auto;
}

.schedule__scroll:focus-visible {
  outline: 0.2rem solid #231815;
  outline-offset: 0.2rem;
}

.sponsors {
  margin-top: -0.4rem;
  transform: translateX(0.3rem);
}

.contact-footer {
  margin-top: clamp(2rem, 3vw, 4rem);
  padding: clamp(1.6rem, 2vw, 2.4rem);
  background-color: #007862;
}

.footer-credit {
  width: min(100%, 80rem);
  margin-inline: auto;
}

@media (max-width: 1200px) {
  .schedule {
    margin-top: calc((100vw - 4rem) * 35 / 1200);
  }
  .sponsors {
    margin-top: calc((100vw - 4rem) * -4 / 1200);
    transform: none;
  }
}
@media (max-width: 768px) {
  .content {
    width: calc(100% - 3.2rem);
  }
  .hero {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    aspect-ratio: auto;
    row-gap: clamp(1.6rem, 4vw, 3.2rem);
  }
  .hero__intro {
    grid-area: 1/1/2/3;
    gap: 4cqw;
    align-items: center;
  }
  .hero__venue-logo {
    width: 15cqw;
  }
  .hero__catch {
    width: 56cqw;
    margin-top: 0;
  }
  .hero__title {
    grid-area: 2/1/3/3;
    width: 78%;
    justify-self: center;
    margin-top: 0;
  }
  .hero__badge {
    grid-area: 2/2;
    width: 21cqw;
    margin-top: 0;
    transform: none;
  }
  .hero__date {
    grid-area: 3/1;
    width: 34cqw;
    margin-left: 4cqw;
    align-self: center;
  }
  .hero__map {
    grid-area: 3/2;
    width: 100%;
    margin-bottom: 0;
    align-self: center;
  }
  .events {
    width: 100%;
    margin-top: clamp(2.4rem, 5vw, 3.5rem);
  }
  .schedule {
    margin-top: clamp(2.4rem, 5vw, 3.5rem);
  }
  .schedule__title {
    width: 60%;
  }
  .schedule__frame {
    width: calc(100% + 3.2rem);
    margin-top: -8vw;
    margin-inline: -1.6rem;
    aspect-ratio: 2501/3722;
    padding: 20vw 1.6rem 0;
    background-size: 200% 100%;
  }
  .schedule__scroll {
    overscroll-behavior-x: contain;
  }
  .schedule__scroll .schedule__inner {
    width: 180%;
    max-width: none;
  }
  .sponsors {
    margin-top: 0;
  }
}
