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

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

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) {
  html {
    scroll-behavior: auto;
  }
  .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: clamp(4rem, 5.3vw, 8rem);
  transform: translateX(0.3rem);
}

.sponsors__title {
  width: clamp(18rem, 16.3vw, 19.5rem);
  aspect-ratio: 355/88;
  margin: 0;
  background: url("../img/sponsors.png") left top/616.056338% 580.681818% no-repeat;
}

.sponsors__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 3rem;
  list-style: none;
  background: #fff;
}

.sponsors__logo {
  display: grid;
  place-items: center;
  aspect-ratio: 2/1;
  min-width: 0;
  padding: 1.5rem;
}

.sponsors__logo img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
}

.floor-map {
  margin-block: clamp(3.5rem, 4.63vw, 7rem) clamp(4rem, 6.8vw, 10.273rem);
}

.floor-map__title {
  width: 33.333333%;
  margin: 0 auto clamp(2rem, 2.58vw, 3.9rem);
}

.floor-map__title img {
  width: 100%;
}

.floor-map__scroll {
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.floor-map__canvas {
  position: relative;
  container-type: inline-size;
  width: 100%;
  aspect-ratio: 1200/699;
  background: url("../img/floor_map.webp") center/100% 100% no-repeat;
}

.floor-map__marker {
  position: absolute;
  display: grid;
  place-items: center;
  width: 2.5%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #161515;
  color: #fff;
  font-size: 1.666667cqw;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
  .floor-map__marker:hover {
    transform: scale(1.2);
  }
}
.floor-map__marker:focus-visible {
  transform: scale(1.2);
}

@media (prefers-reduced-motion: reduce) {
  .floor-map__marker {
    transition: none;
  }
}
.floor-map__marker:focus-visible, .floor-map__scroll:focus-visible {
  outline: 0.2rem solid #007862;
  outline-offset: 0.3rem;
}

.floor-map__marker--1 {
  left: 13.666667%;
  top: 27.743111%;
}

.floor-map__marker--2 {
  left: 41.727275%;
  top: 35.296401%;
}

.floor-map__marker--3 {
  left: 50.5%;
  top: 57.891306%;
}

.floor-map__marker--4 {
  left: 58.5%;
  top: 78.653149%;
}

.floor-map__marker--5 {
  left: 74.25%;
  top: 31.318254%;
}

.floor-map__marker--6 {
  left: 92.416667%;
  top: 43.330735%;
}

.floor-map__marker--7 {
  left: 52.916667%;
  top: 81.656269%;
}

.floor-map__marker--8 {
  left: 73%;
  top: 12.441498%;
}

.event-list__title {
  width: 33.333333%;
  margin: 0 auto;
}

.event-list__title img {
  width: 100%;
}

.event-list__cards {
  display: grid;
  gap: clamp(2rem, 2.67vw, 3.2rem);
}

.event-card {
  position: relative;
  display: grid;
  grid-template-columns: 32rem minmax(0, 1fr);
  gap: clamp(2rem, 2.12vw, 3.2rem);
  padding: 2.5rem;
  border: 0.4rem dotted #50ac62;
  border-radius: 1.5rem;
  background: #fff;
  color: #000;
  font-size: 1.6rem;
  font-weight: 500;
  scroll-margin-top: 2rem;
}

.event-card__photo {
  width: 100%;
  aspect-ratio: 320/414;
  object-fit: cover;
  border-radius: 1.5rem;
}

.event-card__content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
}

.event-card__content p {
  margin: 0;
}

.event-details {
  width: 100%;
  margin: 0;
  display: grid;
  gap: 0.2rem;
  line-height: 1.6;
}

.event-details__row {
  display: grid;
  grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
  gap: 0.2rem 1.2rem;
  align-items: stretch;
}

.event-details dt {
  padding: 0.6rem 1rem;
  background: #e5f3e8;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.event-details dd {
  min-width: 0;
  margin: 0;
  padding-block: 0.6rem;
  overflow-wrap: anywhere;
}

.event-details dd p + p {
  margin-top: 1.2rem;
}

.event-details small {
  display: block;
}

.event-details__notice {
  color: #ec685e;
  font-size: calc(1em - 0.266667rem);
}

.event-card__heading {
  min-width: 0;
}

.event-card__heading-text {
  display: inline;
  background: linear-gradient(#ffef35, #ffef35) left 90%/100% 0.35em no-repeat;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.event-card.scroll-reveal .event-card__heading-text {
  background-size: 0% 0.35em;
  transition: background-size 0.8s ease-out 0.7s;
}

.event-card.is-visible .event-card__heading-text, .event-card:target .event-card__heading-text {
  background-size: 100% 0.35em;
}

@media (prefers-reduced-motion: reduce) {
  .event-card.scroll-reveal .event-card__heading-text {
    background-size: 100% 0.35em;
    transition: none;
  }
}
.event-card--text > .event-card__content {
  grid-column: 1/-1;
}

.event-card__booking {
  display: grid;
  gap: 1.5rem;
}

.event-card__booking a {
  overflow-wrap: anywhere;
}

.event-card__title {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin: 0;
  font-size: clamp(2rem, 1.852vw, 2.8rem);
  font-weight: 700;
  line-height: 1.46;
}

.event-card__number {
  display: grid;
  place-items: center;
  flex: 0 0 3.96774rem;
  aspect-ratio: 1;
  margin-top: 0.25rem;
  border-radius: 50%;
  background: #161515;
  color: #fff;
  font-size: 2.51717rem;
  font-weight: 900;
  line-height: 1;
}

.event-card__venue, .event-card__time {
  font-size: clamp(1.8rem, 1.588vw, 2.4rem);
  font-weight: 700;
  line-height: 1.46;
}

.event-card__venue {
  color: #25b3e8;
}

.event-card__notice {
  color: #ec685e;
  line-height: 1.4375;
}

.event-card__description {
  line-height: 1.3125;
}

.event-card__ticket {
  font-size: clamp(1.6rem, 1.323vw, 2rem);
  line-height: 1.45;
}

.event-card__ticket small {
  display: block;
  font-size: 1.3rem;
  line-height: 1.385;
}

.event-card:target {
  opacity: 1;
  translate: none;
  transition: none;
}

.event-card__media {
  display: grid;
  align-content: start;
  gap: 1.5rem;
}

.event-card__media img {
  width: 100%;
  height: auto;
}

.event-card__figure {
  min-width: 0;
  margin: 0;
}

.event-card__caption {
  margin-top: 0.6rem;
  font-size: 1rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.event-card--gallery > .event-card__content {
  grid-column: 1/-1;
}

.event-card--gallery > .event-card__media {
  grid-column: 1/-1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  gap: clamp(0.8rem, 1.25vw, 1.5rem);
}

.event-card--gallery > .event-card__media > img:first-child {
  border-radius: 9% 0 0 9%/12% 0 0 12%;
}

.event-card__subevents {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2.4rem, 3vw, 4rem);
}

.event-card__subevent {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5rem;
  border-top: 0.4rem dotted #50ac62;
  padding-top: clamp(1.6rem, 2vw, 2.4rem);
}

.event-card__subevent h4 {
  margin: 0;
  font-size: clamp(1.8rem, 1.588vw, 2.4rem);
}

.event-card__subevent p {
  margin: 0;
}

.event-card__subevent ul {
  margin: 0;
  padding-left: 1.5em;
}

.event-card__subevent img {
  width: min(100%, 32rem);
}

.visually-hidden {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.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) {
  .event-card {
    grid-template-columns: 28% minmax(0, 1fr);
  }
  .schedule {
    margin-top: calc((100vw - 4rem) * 35 / 1200);
  }
  .sponsors {
    transform: none;
  }
}
@media (max-width: 768px) {
  .sponsors__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .event-details__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.2rem;
  }
  .event-details dd {
    padding: 0.6rem 1rem;
  }
  .event-card__media {
    width: min(100%, 32rem);
    margin-inline: auto;
  }
  .event-card__subevents {
    grid-template-columns: minmax(0, 1fr);
  }
  .event-list__title {
    width: 60%;
  }
  .event-card {
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(1.6rem, 3vw, 2.5rem);
  }
  .event-card__photo {
    width: min(100%, 32rem);
    margin-inline: auto;
  }
  .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;
  }
  .floor-map__title {
    width: 60%;
  }
  .floor-map__canvas {
    width: 200%;
  }
}/*# sourceMappingURL=style.css.map */