:root {
  --pink: #dd3a7b;
  --cream: #f9f2e4;
  --ink: #271d21;
  --overlay-main: rgb(0 0 0 / 40%);
  --overlay-feature: rgb(0 0 0 / 60%);
  --content-width: 500px;
  --inner-width: 460px;
  --font-body: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); font-family: var(--font-body); font-weight: 600; font-size: 16px; line-height: 1.85; background: #151015; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
p, h1, h2, h3, dl, dd { margin: 0; }
a { color: inherit; }
.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; }
.background-slideshow { position: fixed; inset: 0; z-index: 0; overflow: hidden; background: #1d1721 url("../assets/images/fade_1.png") center / cover no-repeat; pointer-events: none; }
.background-slideshow__slide { position: absolute; inset: 0; background-repeat: no-repeat; background-size: cover; background-position: center; opacity: 0; animation: imageCycle 30s linear infinite; }
.background-slideshow__slide--1 { background-image: url("../assets/images/fade_1.png"); animation-delay: -3s; }
.background-slideshow__slide--2 { background-image: url("../assets/images/fade_2.png"); animation-delay: 3s; }
.background-slideshow__slide--3 { background-image: url("../assets/images/fade_3.png"); animation-delay: 9s; }
.background-slideshow__slide--4 { background-image: url("../assets/images/fade_4.png"); animation-delay: 15s; }
.background-slideshow__slide--5 { background-image: url("../assets/images/fade_5.png"); animation-delay: 21s; }
@keyframes imageCycle { 0% { opacity: 0; } 6.667%, 20% { opacity: 1; } 26.667%, 100% { opacity: 0; } }
.background-slideshow::after { content: ""; position: absolute; inset: 0; background: var(--overlay-main); }
.site-shell { position: relative; z-index: 1; height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior-y: contain; }
.site-content { width: min(var(--content-width), 100%); margin-left: auto; margin-right: auto; background: var(--cream); min-width: 0; }
.main-visual img { width: 100%; height: auto; }
.inner { width: calc(100% - 40px); max-width: var(--inner-width); margin-inline: auto; }
.section { padding-block: 46px 52px; }
.section--cream { background: var(--cream); }
.section-heading { font-size: 29px; line-height: 1.4; text-align: center; color: var(--ink); margin-bottom: 30px; overflow-wrap: anywhere; }
.section-heading::after { content: ""; display: block; width: 164px; height: 25px; margin: 13px auto 0; background: url("../assets/svg/symbol.svg") no-repeat center / contain; }
.section-heading--light { color: #fff; }
.section-heading--spaced { margin-top: 58px; }
.button { display: flex; align-items: center; justify-content: center; min-height: 52px; margin: 30px auto 0; padding: 12px 14px; width: 100%; text-align: center; color: #fff; background: var(--pink); border: 1px solid var(--pink); text-decoration: none; font-size: 16px; line-height: 1.5; transition: background-color .2s ease, color .2s ease; }
.button[href]:hover { color: var(--pink); background: white; }
.button[href]:focus-visible, summary:focus-visible { outline: 3px solid var(--pink); outline-offset: 3px; }
.button.is-pending { opacity: .72; cursor: not-allowed; }
.button__note { font-size: 12px; margin-left: .4em; }
.center-text { text-align: center; overflow-wrap: anywhere; }
.center-text + .center-text { margin-top: 16px; }
.content-image { width: 100%; height: auto; }
.content-image--card { max-width: 320px; margin-inline: auto; }
.section--prizes .center-text { margin-top: 18px; }
.section-image { margin-top: 20px; }
.information-list { text-align: center; }
.information-list__item { background: #fff; padding: 20px 10px 21px; }
.information-list__item + .information-list__item { margin-top: 5px; }
.information-list dt { color: var(--pink); font-size: 16px; line-height: 1.5; margin-bottom: 10px; }
.information-list dd { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.information-list__note { display: block; color: var(--pink); font-size: 13px; margin-top: 6px; }
.information-list--compact .information-list__item + .information-list__item { margin-top: 5px; }
.feature { position: relative; isolation: isolate; color: #fff; padding-block: 55px 58px; background-size: cover; background-repeat: no-repeat; background-position: center; }
.feature::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--overlay-feature); }
.feature--intro { background-image: url("../assets/images/back1.png"); }
.feature--side { background-image: url("../assets/images/back2.png"); }
.feature--about { background-image: url("../assets/images/back3.png"); }
.feature__inner > p { text-align: center; margin-top: 16px; overflow-wrap: anywhere; }
.feature__subheading { text-align: center; font-size: 23px; margin-bottom: 10px; }
.information-panel { background: rgb(249 242 228 / 94%); color: var(--ink); padding: 28px 18px; margin-top: 26px; }
.side-event-panel .information-list__item { background: transparent; padding: 7px 0; }
.side-event-panel .information-list__item + .information-list__item { margin-top: 8px; }
.side-event-panel .feature__subheading { color: var(--pink); }
.side-event-panel__lead { text-align: center; font-size: 15px; line-height: 1.8; margin-bottom: 24px; }
.side-event-panel__prizes { font-size: 14px !important; line-height: 2.1 !important; }
.pantheon-gallery { background: var(--cream); padding: 12px 0 0; }
.pantheon-gallery img + img { margin-top: 12px; }
.coming-soon {  width: 100%;}
.coming-soon img { width: 100%; margin-inline: auto; }
.body-copy p + p { margin-top: 18px; }
.note { font-size: 13px; }
.faq-list { display: grid; gap: 8px; }
.faq { background: #fff; }
.faq summary { color: var(--pink); display: flex; justify-content: space-between; gap: 10px; padding: 17px 18px; cursor: pointer; list-style: none; line-height: 1.6; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: 0 0 1.2em; text-align: center; color: var(--pink); font-size: 22px; line-height: 1.15; }
.faq[open] summary::after { content: "−"; }
.faq__answer { font-size: 15px; padding: 0 18px 20px; overflow-wrap: anywhere; }
.faq__answer p + p { margin-top: 14px; }
.faq__answer ul { padding-left: 1.4em; margin: 10px 0 16px; }
.faq__answer li + li { margin-top: 8px; }
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .faq::details-content { block-size: 0; overflow: hidden; transition: block-size .35s ease, content-visibility .35s ease; }
  .faq[open]::details-content { block-size: auto; }
}
.access__map { margin-top: 24px; }
.access__map iframe { display: block; width: 100%; height: 290px; border: 0; }
.footer { padding: 25px 20px; text-align: center; background: var(--pink); color: #fff; font-size: 10px; }
.background-logo { position: fixed; top: 24px; left: 24px; z-index: 2; display: block; width: min(300px, calc((100vw - 500px) / 2 - 36px)); line-height: 0; }
.background-logo img { width: 100%; height: auto; }
.background-logo:focus-visible { outline: 3px solid var(--pink); outline-offset: 5px; }
@media (max-width: 850px) {
  .background-logo { display: none; }
  .site-shell { height: auto; overflow: visible; overscroll-behavior-y: auto; }
  .site-content { margin-inline: auto; }
}
@media (max-width: 500px) {
  .section { padding-block: 38px 44px; }
  .section-heading { font-size: 25px; }
  .feature { padding-block: 42px 46px; }
  .button { font-size: 15px; }
  .information-list dt { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .background-slideshow__slide { animation: none; opacity: 0; }
  .background-slideshow__slide--1 { opacity: 1; }
  .faq::details-content { transition: none; }
  .button { transition: none; }
}
