/* Winderland's separate Halloween edition. Original illustrations stay intact. */
:root {
  --ink:#171421; --deep:#100f1b; --navy:#242039;
  --gold:#c6a16e; --gold-light:#f1d09a; --cream:#f6ecde;
  --muted:#c1b6bd; --wine:#553049; --line:rgba(205,159,100,.3);
  --pumpkin:#f2a057; --violet:#9f82c2;
}
body { background:radial-gradient(ellipse at 15% 25%,#3c224322,transparent 48%),var(--ink); }
.site-header { background:rgba(20,16,32,.95); border-bottom-color:#ba854f42; }
.brand-mark,.eyebrow { color:var(--pumpkin); }
.brand small { color:var(--violet); }
.intro-dialogue { border-color:#d7a26799; background:linear-gradient(115deg,#1b1425f5,#21182ae8); }
.intro-dialogue:before,.intro-dialogue:after { background:var(--pumpkin); }
.intro-active .language-control select { background:#19122299; }
.intro-speaker { color:#f5cf91; }
.music-play { border-color:#c18b5966; }
.music-seek { accent-color:var(--pumpkin); }
.gate-touch { color:var(--gold-light); }
.entrance { overflow:clip; }
.door-left { transform-origin:19% 60%; }
.door-right { transform-origin:81.5% 60%; }
/* Full source canvases are positioned over the new gate; no artwork is cropped. */
.door-left img { width:57.62%; height:57.859%; left:14.914%; top:26.37%; }
.door-right img { width:99.629%; height:99.756%; left:.205%; top:.089%; }
.gate-hit { left:17.5%; top:32%; width:65%; height:45.5%; }
.gate-closed { transition:opacity .16s ease; }
.gate-stage.opening .door-left,.gate-stage.open .door-left { transform:rotateY(-102deg); }
.gate-stage.opening .door-right,.gate-stage.open .door-right { transform:rotateY(102deg); }
.season-banner { width:min(100%,760px); margin:0 auto 22px; }
.season-garland { display:block; width:100%; height:165px; object-fit:contain; }
.season-label { display:table; margin:0 0 28px; padding:6px 15px; border:1px solid #b9875559; color:#e7b576; font-size:10px; letter-spacing:2px; line-height:1.6; }
.map-section { position:relative; }
.map-shell { border-color:#ba854f5c; box-shadow:0 22px 80px #08061133; }
.map-topline,.map-bottomline { background:#100e1a; }
.map-topline>p>span:first-child { color:var(--pumpkin); }
.map-pin img { max-height:125px; }
.map-pin:hover img,.map-pin:focus-visible img { filter:drop-shadow(0 0 9px #f2a05799); }
.pin-label { border-color:#cf9c666e; background:#191224ed; }
.places-list button:hover { color:var(--pumpkin); }
.astra-section { background:radial-gradient(ellipse at 85% 30%,#67334919,transparent 55%); }
.astra-heading { position:relative; padding-bottom:18px; }
.season-pumpkins { position:absolute; width:130px; height:auto; right:10px; bottom:-20px; pointer-events:none; }
.gallery-tabs button[aria-selected="true"] { color:var(--pumpkin); border-bottom-color:var(--pumpkin); }
.scene-number { background:#201529cc; }
.show-program { background:linear-gradient(110deg,#2a192332,#221b34); border-color:#bd8e5c55; }
.member-portrait { background:linear-gradient(145deg,#2c1d2c,#1d182b); }
.member-portrait:before { border-color:#bc8c5a65; }
.member-number,.member-role { color:#ddae79; }
.other-members { position:relative; padding-top:10px; }
.season-ghost { display:block; width:105px; height:auto; margin:0 auto 18px; animation:ghost-drift 5s ease-in-out infinite; pointer-events:none; }
.closing-image { opacity:.34; object-position:center 58%; }
.closing-star { color:var(--pumpkin); }
.button-outline { border-color:#d9a4669c; background:#1d122543; }
.button-outline:hover { background:#5c3b3b66; color:#fff0d4; }
.place-dialog { border-color:#b5865866; background:#191523; }
.place-photo { background:#100c19; }
.dialog-close { background:#1c1427e8; }
.dialog-caption { color:#e7b576; }
@keyframes ghost-drift { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-8px) rotate(2deg); } }
@media(min-width:851px) {
  .intro-active .music-bar { padding:6px 10px; border:1px solid #d2a16344; border-radius:4px; background:#170f2266; }
  .entrance .del-guide { height:calc(100svh - var(--dialogue-height,225px) - 120px); max-height:600px; width:auto; max-width:30vw; right:2vw; bottom:calc(var(--dialogue-height,225px) - 80px); }
}
@media(max-width:850px) {
  .site-header,.intro-active .site-header { background:#140f20eb; }
  .header-nav { background:#181121f7; }
  .season-garland { height:115px; }
  .season-banner { margin-bottom:18px; }
  .season-label { font-size:10px; letter-spacing:1.2px; margin-bottom:22px; }
  .season-pumpkins { width:95px; right:-8px; bottom:-34px; }
  .astra-heading { padding-bottom:28px; margin-bottom:36px; }
  .astra-heading h2 { position:relative; z-index:1; }
  .map-pin img { max-height:none; }
  .season-ghost { width:86px; }
  .entrance .del-guide { width:auto; height:min(46svh,calc(100svh - var(--dialogue-height,215px) - 140px)); max-width:58vw; right:8px; bottom:calc(var(--dialogue-height,215px) - 45px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:600px) {
  .season-garland { height:88px; }
  .season-label { margin-bottom:18px; }
  .season-pumpkins { width:73px; right:0; bottom:-20px; }
  .astra-heading { padding-bottom:25px; }
  .intro-active .music-bar { gap:8px; }
  .music-name { flex-basis:124px; }
  .music-name>span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) { .season-ghost { animation:none; } }
@media(max-width:850px) and (max-height:540px) {
  .entrance .del-guide { height:calc(100svh - 105px); max-width:29vw; right:4px; bottom:0; }
}
