/* Keep the upcoming calendar separate from completed performances. */
#upcoming{grid-template-rows:auto auto auto}
#upcoming .event-directory{margin-bottom:0}
#upcoming .halloween-event{margin-top:3vw}
.festival-announcement{grid-column:1/-1;display:grid;grid-template-columns:.65fr 1.35fr;gap:5vw;margin-top:3vw;padding:5vw;border:1px solid #345789;background:radial-gradient(ellipse at 5% 25%,rgba(39,117,255,.2),transparent 60%),#0b111c;scroll-margin-top:30px}
.festival-announcement-date{display:flex;flex-direction:column;justify-content:center;gap:24px;color:#8fdcff;font:500 12px var(--mono);letter-spacing:.14em}
.festival-announcement-date strong{font:800 clamp(110px,15vw,220px)/.85 "Unbounded",var(--sans);letter-spacing:-.1em;color:#e9edf1}
.festival-announcement-copy h3{font-size:clamp(26px,3.8vw,56px);line-height:1.04;letter-spacing:-.05em;margin:24px 0}
.festival-announcement-copy h3 em{font-style:normal;color:#2775ff}
.festival-announcement-copy>p:not(.section-index){font-size:14px;line-height:1.7;color:#c1cbd8}
.festival-announcement-copy .festival-set-time{padding-top:18px;border-top:1px solid #34435c;letter-spacing:.1em;font-family:var(--mono);font-size:11px}
.festival-set-time strong{margin-left:15px;color:#8fdcff}
.festival-ticket-link{display:inline-flex;gap:28px;align-items:center;padding:16px 20px;margin-top:18px;border:1px solid #6085bc;font:500 11px var(--mono);letter-spacing:.08em}
.festival-ticket-link:hover,.festival-ticket-link:focus-visible{background:#2775ff;color:white}
.past-events{padding:7vw 8vw 8vw;background:#0b1019;border-top:1px solid #273140;scroll-margin-top:30px}
.past-events-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:4vw}
.past-events-head .section-index{color:#97a9c1}
.past-event-story{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:16px}
.past-event-feature{position:relative;isolation:isolate;min-height:clamp(580px,46vw,700px);display:flex;align-items:flex-end;overflow:hidden;border:1px solid #33445e;background:#080b11}
.festival-photo-column{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,2.15fr);gap:16px;pointer-events:none}
.festival-photo-column>div{background-size:cover;background-repeat:no-repeat;border:1px solid #33445e}
.festival-stage-photo{background-image:url('assets/pauly-cee-thai-festival-stage.webp');background-position:58% center}
.festival-closeup-photo{background-image:url('assets/pauly-cee-thai-festival-closeup.webp');background-position:center 30%}
.festival-background-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:65% center;pointer-events:none}
.past-event-feature:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,rgba(3,7,14,.97),rgba(3,7,14,.78) 20%,rgba(3,7,14,.12) 60%,transparent)}
.past-event-details{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:32px;width:100%;text-shadow:0 2px 12px #000}
.past-event-details time{font:500 22px var(--mono);color:#8fdcff}
.past-event-details time span{display:block;margin-top:8px;font-size:12px;color:#97a9c1}
.past-event-details h3{font-size:clamp(25px,3vw,44px);letter-spacing:-.04em;margin:0 0 14px;line-height:1.1}
.past-event-details p{font-size:14px;line-height:1.7;margin:0;color:#e2e8f0}
.past-event-details .past-event-note{font-size:12px;color:#b4c1d3;margin-top:12px}
@media(max-width:760px){
  .festival-announcement{grid-template-columns:minmax(0,1fr);padding:32px 24px;gap:32px;margin-top:32px}
  .festival-announcement-date{gap:16px}
  .festival-announcement-date strong{font-size:110px}
  .festival-announcement-copy h3{font-size:30px}
  .festival-ticket-link{font-size:10px;padding:16px;gap:18px}
  .past-event-story{grid-template-columns:minmax(0,1fr)}
  .festival-photo-column{grid-template-rows:auto auto}
  .festival-stage-photo{aspect-ratio:1849/851}
  .festival-closeup-photo{aspect-ratio:1144/1134}
  .past-event-feature{min-height:620px}
  .festival-background-video{object-position:76% center}
  .past-events{padding:70px 24px}
  .past-events-head{display:block;margin-bottom:32px}
  .past-events-head>span{display:block;margin-top:24px}
  .past-event-details{grid-template-columns:1fr;gap:18px;width:100%;padding:28px 22px}
  .past-event-details time span{display:inline;margin-left:12px}
  #upcoming .halloween-event{margin-top:32px}
}
