:root{
  --paper:#fffaf8;
  --ink:#493747;
  --purple:#7b507e;
  --pink:#cf86a8;
  --line:#eadde5;
  --blush:#fbf1f5;
  --cream:#fff6ed;
}
body{background:var(--paper);color:var(--ink)}
header{background:#fffaf8ed;border-bottom-color:var(--line);box-shadow:0 5px 24px #68405b0a}
.eyebrow{color:#8b527d;font-weight:600;letter-spacing:.24em}
.button{background:linear-gradient(135deg,#865689,#704875);box-shadow:0 10px 24px #69436f20}
.button:hover{background:linear-gradient(135deg,#955f92,#7a4a7c)}
.hero.immersive:after{background:linear-gradient(180deg,#5b334200 5%,#6f3e4d42 42%,#362238d9 100%)}
.hero-center .button{background:#fff6f2;color:#704875}
.event-overview{background:var(--paper)}
.notice{background:linear-gradient(90deg,#fbf0f5,#fff7ef);border-color:var(--line)}
.cast-section{background:linear-gradient(180deg,#f8edf3,#fff9f7);padding-top:90px;padding-bottom:90px}
.section-heading h2,.visit h2,.faq h2,.movie h2,.rules h2{color:#50384e}
.cast-card img{border-radius:18px;box-shadow:0 14px 34px #68485f18}
.cast-card>div{border-bottom-color:#dfcfd9}
.cast-more{margin-top:38px}
.visit{max-width:1180px;margin:auto}
.steps{display:grid;gap:14px}
.steps article{padding:24px 26px!important;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px #68405b0b}
.steps article>span{background:linear-gradient(135deg,#f7e8f0,#efe5f6);color:#835582}
.rules{max-width:1040px;margin-left:auto;margin-right:auto;background:linear-gradient(135deg,#f8edf4,#fff8f2);border-color:#c89eba;border-radius:24px}
.rules summary{background:linear-gradient(135deg,#865689,#704875);border-radius:14px}
.faq{max-width:1180px;margin:auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:0 20px}
.faq details[open]{box-shadow:0 10px 26px #68405b0c}
.movie{background:linear-gradient(135deg,#faf0f5,#fff8f0)}
.movie-link{height:auto;aspect-ratio:16/9;background:#eadce7;box-shadow:0 16px 36px #68405b18}
.movie-link iframe{display:block;width:100%;height:100%;border:0}
.closing{background:linear-gradient(135deg,#f9e5ef,#eee5f5)}
footer{background:#fffaf8;border-color:var(--line)}

.cast-page{max-width:1180px}
.cast-page .page-title{margin:0 -6vw 35px;padding:70px 6vw;background:linear-gradient(135deg,#fbecf3,#fff7ef);border-radius:0 0 36px 36px}
.cast-page section{margin-bottom:20px}
.cast-page section h2{padding-bottom:12px;border-bottom:1px solid var(--line);color:#563e54}
.cast-page .cast-card img{border-radius:18px;box-shadow:0 14px 32px #68485f17}
.cast-page .cast-card>div{padding:16px 4px}
.cast-page .staff-section{background:linear-gradient(135deg,#f8eff5,#fff8f3);border:1px solid var(--line);border-radius:24px}

@media(max-width:900px){
  .cast-section,.section{padding-top:70px;padding-bottom:70px}
  .visit{margin:0}
  .steps article{padding:20px!important}
  .movie{gap:36px}
  .cast-page .page-title{padding-top:50px;padding-bottom:50px}
}
@media(max-width:600px){
  .cast-section,.section{padding-top:56px;padding-bottom:56px}
  .cast-section{margin:0;border-radius:0}
  .steps article{border-radius:14px}
  .rules{border-radius:18px}
  .faq details{padding:0 16px}
  .movie-link{height:auto}
  .cast-page .page-title{margin-left:-6%;margin-right:-6%;border-radius:0 0 24px 24px}
}

/* Stable desktop canvas: browser zoom keeps the composition intact. */
@media (pointer:fine){
  html,body{min-width:1180px}
  header{width:100%;min-width:1180px;height:82px;padding:0 72px}
  header nav{display:flex;gap:34px}
  header nav>a:not(.button){display:inline-flex}
  .hero.immersive{width:100%;min-width:1180px;height:760px;min-height:760px;max-height:760px}
  .hero-gallery{grid-template-columns:1fr 1.12fr 1fr}
  .hero-gallery img{height:760px;object-position:center 23%}
  .hero-center{left:20px;right:20px;bottom:90px}
  .event-overview{width:1060px;max-width:none;grid-template-columns:repeat(3,1fr)}
  .notice{min-width:1180px;padding-left:108px;padding-right:108px}
  .about{display:block;width:100%;min-width:1180px;max-width:none;padding:0}
  .about-photo{width:100%;height:auto;aspect-ratio:16/9;border-radius:0}
  .about-photo img{position:static;width:100%;height:auto;max-width:none;aspect-ratio:16/9;border-radius:0}
  .about-content{position:absolute;left:96px;top:50%;width:560px;padding:0;transform:translateY(-50%);text-align:left}
  .about-content h2{font-size:52px}
  .about-copy{font-size:18px;text-align:left}
  .cast-section{width:100%;min-width:1180px;margin:0;padding:90px max(84px,calc((100% - 1050px)/2))}
  .pickup-grid{grid-template-columns:repeat(5,190px);gap:25px}
  .visit,.faq,.movie{width:1100px;max-width:none;margin-left:auto;margin-right:auto}
  .visit{display:grid;grid-template-columns:420px 600px;gap:80px;padding:110px 0 75px}
  .visit-heading>p:not(.eyebrow){width:360px}
  .steps{width:600px}
  .steps article{width:600px}
  .rules{width:1040px;max-width:none}
  .faq{display:grid;grid-template-columns:400px 620px;gap:80px;padding:70px 0 90px}
  .movie{display:grid;grid-template-columns:550px 470px;gap:80px;padding:75px 0}
  .movie-link{width:550px;height:309px}
  .closing{min-width:1180px}
  footer{min-width:1180px}
  .cast-page{width:1100px;max-width:none;padding-left:0;padding-right:0}
  .cast-page .page-title{margin-left:calc((1100px - 100vw)/2);margin-right:calc((1100px - 100vw)/2)}
  .cast-page .cast-grid{grid-template-columns:repeat(4,242px);gap:44px}
  .cast-page .cast-card{width:242px}
}
