/* SHOWS page only: a dedicated festival artwork; other pages keep their own scenes. */
.shows-page { background:#090b14; }
.shows-main { position:relative; isolation:isolate; background:radial-gradient(ellipse at 4% 16%,rgba(104,52,166,.22),transparent 58%),linear-gradient(140deg,#121025,#090b14 60%,#121020); }
.shows-page .shows-section { position:relative; max-width:1920px; min-height:calc(100svh - 230px); margin:auto; padding:142px 7vw 70px; background:transparent; border:0; }
.shows-page-scene { position:absolute; z-index:-1; top:0; right:0; width:100%; height:900px; max-height:100%; overflow:hidden; pointer-events:none; }
.shows-page-scene img { display:block; width:100%; height:100%; object-fit:cover; object-position:74% top; }
.shows-page-scene::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#090b14 0%,rgba(9,11,20,.92) 8%,transparent 38%),linear-gradient(90deg,rgba(9,11,20,.78) 0%,rgba(9,11,20,.57) 36%,rgba(9,11,20,.14) 64%,rgba(9,11,20,.02) 82%,rgba(9,11,20,.06)),linear-gradient(180deg,rgba(9,11,20,.42),transparent 30%); }
.shows-skip { position:fixed; z-index:110; top:12px; left:12px; padding:12px 18px; background:#fff; color:#111827; font-weight:900; transform:translateY(-200%); }
.shows-skip:focus { transform:none; outline:2px solid var(--red); outline-offset:3px; }
.shows-back { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-bottom:24px; color:#c8cfdb; font-size:16px; font-weight:900; line-height:1.4; letter-spacing:.06em; text-transform:uppercase; transition:color .25s; }
.shows-back:is(:hover,:focus-visible) { color:#fff; }
.shows-back:focus-visible { outline:2px solid var(--red); outline-offset:5px; }
.shows-page .shows-heading { margin-top:30px; }
.shows-heading h1 { display:block; margin:0; line-height:.82; letter-spacing:-.065em; transform:none; text-shadow:0 2px 18px rgba(0,0,0,.65); }
.shows-heading h1 em { font-style:normal; color:var(--red); }
.shows-page .shows-section>.section-tag { color:#b5bacf; }
.shows-page .shows-section>.section-tag::after { background:rgba(181,186,207,.35); }
.shows-page .shows-list { margin-top:38px; border-color:rgba(175,182,224,.25); background:linear-gradient(135deg,rgba(46,49,86,.93),rgba(16,25,41,.97)); }
.shows-page .shows-columns { color:#d5d8e6; border-color:rgba(175,182,224,.2); }
.shows-top { display:flex; width:fit-content; max-width:100%; margin:32px auto 0; padding:14px 22px; border:1px solid var(--red); color:#fff; line-height:1.4; }
.shows-top:is(:hover,:focus-visible,:active) { background:#fff; color:var(--red); border-color:#fff; }
.shows-top:focus-visible { outline:2px solid var(--red); outline-offset:4px; }
.shows-page .mobile-drawer nav a.drawer-shows[aria-current="page"] { color:#f1be69; }
@media (min-width:701px) and (max-width:1100px) {
  .shows-page .shows-section { padding:130px 6vw 64px; }
  .shows-page-scene { height:760px; }
  .shows-heading h1 em { display:block; }
}
@media (min-width:701px) and (max-width:1100px), (min-width:701px) and (pointer:coarse) {
  .shows-back,.shows-skip { -webkit-text-stroke:.25px currentColor; }
}
@media (max-width:700px) {
  .shows-page .shows-section { padding:108px 6vw 56px; }
  .shows-page .shows-heading { margin-top:24px; }
  .shows-heading h1 em { display:block; }
  .shows-page-scene { height:500px; }
  .shows-page-scene img { object-position:74% top; }
  .shows-page-scene::after { background:linear-gradient(0deg,#090b14 0%,rgba(9,11,20,.94) 8%,transparent 40%),linear-gradient(90deg,rgba(9,11,20,.68),rgba(9,11,20,.42) 48%,rgba(9,11,20,.16)),linear-gradient(180deg,rgba(9,11,20,.22),transparent 35%); }
  .shows-back { margin-bottom:18px; }
  .shows-page .shows-list { margin-top:28px; }
  .shows-top { margin-top:28px; -webkit-text-stroke:.25px currentColor; }
}
@media (max-width:420px) {
  .shows-page .shows-section { padding-left:5vw; padding-right:5vw; }
}

/* Keep the footer below the first viewport while the shows list is empty. */
.shows-page .shows-section.shows-section--empty {
  min-height:calc(100vh + 48px);
  min-height:calc(100svh + 48px);
}
@media (max-width:700px) {
  .shows-page .shows-section.shows-section--empty .shows-list {
    margin-bottom:clamp(100px,16svh,160px);
  }
}

