.past-events { padding: 72px 0 0; }
.upcoming-card img { height: auto; aspect-ratio: 1; object-fit: contain; }
.upcoming-intro { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 40px; margin: 40px 0 64px; }
.upcoming-intro .event-intro { margin: 0; }
.upcoming-intro h1 { font-size: clamp(36px, 5vw, 64px); }
.event-program { max-width: 900px; scroll-margin-top: 24px; }
.event-program h2 { font: 700 36px/1.2 Oswald, sans-serif; margin: 8px 0 32px; }
.schedule-day { margin-bottom: 36px; }
.schedule-day h3 { font: 600 25px/1.35 Oswald, sans-serif; background: #eeeae2; border-left: 4px solid var(--red); padding: 20px; margin: 0; }
.schedule-list { list-style: none; padding: 0; margin: 0; }
.schedule-list li { display: grid; grid-template-columns: 130px 1fr; gap: 24px; padding: 22px 0; border-bottom: 1px solid #ded8cc; }
.schedule-time { font-weight: 700; color: var(--red); font-variant-numeric: tabular-nums; }
.schedule-list p { margin: 0; }
.schedule-list .schedule-maps { margin-top: 10px; font-size: 15px; }
@media (max-width: 750px) { .upcoming-intro { grid-template-columns: 1fr; gap: 28px; } .upcoming-intro .event-poster { width: min(100%, 480px); margin: auto; } }
@media (max-width: 520px) { .schedule-list li { grid-template-columns: 1fr; gap: 8px; } }
.past-events .section-head { gap: 20px; flex-wrap: wrap; }
.past-events .section-head > a, .event-page a:not(.brand):not(.btn) { color: inherit; text-underline-offset: 5px; }
.past-event-card { display: grid; grid-template-columns: 1fr 1fr; background: #eeeae2; border: 1px solid #ded8cc; }
.past-event-cover { display: flex; align-items: center; background: #e1e0db; }
.past-event-cover img { display: block; width: 100%; height: auto; }
.past-event-card + .past-event-card { margin-top: 24px; }
.past-event-logo { justify-content: center; padding: 24px; background: #080808; }
.past-event-logo img { max-width: 320px; }
.past-event-copy { padding: clamp(24px, 4vw, 56px); align-self: center; }
.past-event-copy h3 { font: 700 clamp(28px, 4vw, 42px)/1.15 Oswald, sans-serif; margin: 12px 0; }
.past-event-copy p:not(.kicker) { color: #56605d; }
.event-header { background: #152026; color: #fff; }
.event-nav { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 0; }
.event-nav > a:last-child { font-size: 15px; }
.event-main { padding-top: 30px; padding-bottom: 72px; }
.event-back { font-size: 15px; }
.event-intro { max-width: 850px; margin: 48px 0 36px; }
.event-intro h1 { font: 700 clamp(38px, 7vw, 80px)/1.08 Oswald, sans-serif; margin: 12px 0 22px; }
.event-intro > p:last-child { font-size: 20px; color: #56605d; max-width: 660px; }
.event-poster { margin: 0; }
.event-logo > a { background: #080808; padding: clamp(20px, 4vw, 40px); }
.event-logo img { max-width: 520px; margin: auto; }
.event-poster img { width: 100%; height: auto; display: block; }
.event-poster figcaption { padding: 12px 0; color: #697278; font-size: 14px; border-bottom: 1px solid #ded8cc; }
.event-album { margin-top: 64px; }
.album-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.album-heading h2 { font: 700 36px/1.2 Oswald, sans-serif; margin: 0; }
.album-heading > p { font-size: 14px; color: #697278; margin: 0; }
.event-photo-grid { columns: 2; column-gap: 24px; }
.event-photo { margin: 0 0 24px; break-inside: avoid; }
.event-photo a, .event-poster a { display: block; cursor: zoom-in; }
.event-photo img { width: 100%; height: auto; display: block; background: #eeeae2; }
.event-photo figcaption { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; color: #697278; font-size: 13px; }
.event-end { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; border-top: 1px solid #ded8cc; padding-top: 32px; margin-top: 32px; }
.event-page a:focus-visible, .past-events a:focus-visible, .photo-viewer button:focus-visible { outline: 3px solid #c62525; outline-offset: 5px; }
.photo-viewer { width: min(1400px, calc(100% - 24px)); max-width: none; max-height: calc(100dvh - 24px); padding: 16px; border: 0; background: #152026; color: #fff; }
.photo-viewer::backdrop { background: #08100feb; }
.viewer-toolbar, .viewer-controls { display: flex; align-items: center; gap: 16px; justify-content: space-between; }
.viewer-toolbar { margin-bottom: 12px; flex-wrap: wrap; }
.viewer-count { margin: 0; margin-right: auto; }
.photo-viewer button, .viewer-original { color: #fff; font: inherit; font-size: 14px; }
.photo-viewer button { background: transparent; border: 1px solid #8d9798; padding: 10px 16px; cursor: pointer; border-radius: 3px; }
.viewer-image { display: block; width: 100%; height: min(72dvh, 1000px); object-fit: contain; }
.viewer-controls { margin-top: 12px; }
html.photo-viewer-open { overflow: hidden; }
@media (max-width: 650px) {
  .past-event-card { grid-template-columns: 1fr; }
  .event-nav { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
  .event-intro { margin-top: 36px; }
  .event-intro > p:last-child { font-size: 18px; }
  .event-photo-grid { columns: 1; }
  .event-album { margin-top: 40px; }
  .viewer-image { height: 60dvh; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
