.aec-events-hub{
  --aec-hub-bg:#0a0a0a;
  --aec-hub-text:#fff;
  --aec-hub-muted:#a3a3a3;
  --aec-hub-accent:#f4ff00;
  --aec-hub-month-bg:#151515;
  --aec-hub-month-text:#fff;
  --aec-hub-month-active-bg:#f4ff00;
  --aec-hub-month-active-text:#0a0a0a;
  --aec-hub-border:#303030;
  --aec-hub-max-width:1440px;
  --aec-hub-hero-top:84px;
  --aec-hub-hero-bottom:46px;
  --aec-hub-gutter:32px;
  --aec-hub-heading-size:86px;
  --aec-hub-body-size:17px;
  --aec-hub-meta-size:12px;
  --aec-hub-month-width:42%;
  --aec-hub-month-width-mobile:76%;
  --aec-hub-month-gap:18px;
  --aec-hub-month-side-scale:.84;
  --aec-hub-month-side-opacity:.58;
  --aec-hub-month-radius:16px;
  --aec-qv-overlay:#000000;
  --aec-qv-bg:#151515;
  --aec-qv-text:#ffffff;
  --aec-qv-muted:#a3a3a3;
  --aec-qv-accent:#f4ff00;
  --aec-qv-border:#303030;
  --aec-qv-width:980px;
  --aec-qv-media-width:42%;
  --aec-qv-radius:18px;
  width:100%;
  background:var(--aec-hub-bg);
  color:var(--aec-hub-text);
}
.aec-events-hub *{box-sizing:border-box}
.aec-events-hub__inner{
  width:min(var(--aec-hub-max-width),100%);
  margin-inline:auto;
  padding-inline:var(--aec-hub-gutter);
}
.aec-events-hub__hero{
  padding-top:var(--aec-hub-hero-top);
  padding-bottom:var(--aec-hub-hero-bottom);
}
.aec-events-hub__eyebrow{
  margin:0 0 .55rem;
  color:var(--aec-hub-accent);
  font:800 var(--aec-hub-meta-size)/1 var(--aec-font-accent,"Another Typewriter","Courier New",monospace);
  letter-spacing:.11em;
  text-transform:uppercase;
}
.aec-events-hub__heading{
  max-width:12ch;
  margin:0;
  font:850 clamp(3rem,8vw,var(--aec-hub-heading-size))/.88 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:-.05em;
  text-transform:uppercase;
}
.aec-events-hub__intro{
  max-width:780px;
  margin:1.25rem 0 0;
  color:var(--aec-hub-muted);
  font:400 var(--aec-hub-body-size)/1.55 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
}
.aec-events-hub__month-section{
  padding:1rem 0 3rem;
}
.aec-events-hub__month-heading{
  display:flex;
  align-items:baseline;
  gap:.6rem;
  margin-bottom:.8rem;
}
.aec-events-hub__month-heading span{
  color:var(--aec-hub-accent);
  font:800 var(--aec-hub-meta-size)/1 var(--aec-font-accent,"Another Typewriter","Courier New",monospace);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.aec-events-hub__month-heading strong{
  font:850 clamp(1.35rem,3vw,2rem)/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  text-transform:uppercase;
}
.aec-events-hub__month-browser{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 46px;
  gap:.75rem;
  align-items:center;
}
.aec-events-hub__month-track{
  --aec-hub-month-card-width:var(--aec-hub-month-width);
  display:flex;
  align-items:center;
  gap:var(--aec-hub-month-gap);
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:calc((100% - var(--aec-hub-month-card-width)) / 2);
  padding-block:.75rem;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  outline:none;
}
.aec-events-hub__month-track::-webkit-scrollbar{display:none}
.aec-events-hub__month-card{
  --aec-hub-month-distance:1;
  flex:0 0 var(--aec-hub-month-card-width);
  min-height:130px;
  padding:1.1rem;
  border:1px solid var(--aec-hub-border);
  border-radius:var(--aec-hub-month-radius);
  background:var(--aec-hub-month-bg);
  color:var(--aec-hub-month-text);
  scroll-snap-align:center;
  opacity:calc(1 - ((1 - var(--aec-hub-month-side-opacity)) * var(--aec-hub-month-distance)));
  transform:scale(calc(1 - ((1 - var(--aec-hub-month-side-scale)) * var(--aec-hub-month-distance))));
  transform-origin:center;
  transition:opacity 100ms linear,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease;
  cursor:pointer;
}
.aec-events-hub__month-card:first-child{
  margin-inline-start:calc((100% - var(--aec-hub-month-card-width)) / 2);
}
.aec-events-hub__month-card:last-child{
  margin-inline-end:calc((100% - var(--aec-hub-month-card-width)) / 2);
}
.aec-events-hub__month-card.is-active{
  z-index:2;
  opacity:1;
  transform:scale(1);
  border-color:var(--aec-hub-month-active-bg);
  background:var(--aec-hub-month-active-bg);
  color:var(--aec-hub-month-active-text);
  box-shadow:0 18px 42px rgba(0,0,0,.16);
}
.aec-events-hub__month-card.is-active span,
.aec-events-hub__month-card.is-active strong,
.aec-events-hub__month-card.is-active small{
  color:var(--aec-hub-month-active-text);
}
.aec-events-hub__month-card span{
  display:block;
  font:850 clamp(1.35rem,3vw,2.2rem)/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:-.03em;
}
.aec-events-hub__month-card strong{
  display:block;
  margin:.2rem 0 .55rem;
  font:750 var(--aec-hub-meta-size)/1 var(--aec-font-accent,"Another Typewriter","Courier New",monospace);
}
.aec-events-hub__month-card small{
  display:block;
  opacity:.72;
  font:750 var(--aec-hub-meta-size)/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  text-transform:uppercase;
}

.aec-events-hub .aec-events-hub__month-card.is-active,
.aec-events-hub .aec-events-hub__month-card.is-active span,
.aec-events-hub .aec-events-hub__month-card.is-active strong,
.aec-events-hub .aec-events-hub__month-card.is-active small{
  color:#0a0a0a!important;
}

.aec-events-hub__month-arrow{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border:1px solid var(--aec-hub-border);
  border-radius:999px;
  background:transparent;
  color:var(--aec-hub-text);
  font:800 1.55rem/1 sans-serif;
  cursor:pointer;
}
.aec-events-hub__month-arrow:disabled{opacity:.3;cursor:not-allowed}
.aec-events-hub__month-arrow:focus-visible,
.aec-events-hub__month-track:focus-visible,
.aec-events-hub__month-card:focus-visible{
  outline:2px solid var(--aec-hub-accent);
  outline-offset:3px;
}

/* Keep nested modules visually contiguous with the Hub page. */
.aec-events-hub__calendar .aec-event-calendar,
.aec-events-hub__upcoming .aec-event-list{
  border-top:1px solid var(--aec-hub-border);
}
@media(max-width:700px){
  .aec-events-hub__inner{
    padding-inline:min(var(--aec-hub-gutter),1rem);
  }
  .aec-events-hub__hero{
    padding-top:min(var(--aec-hub-hero-top),4rem);
    padding-bottom:min(var(--aec-hub-hero-bottom),2.5rem);
  }
  .aec-events-hub__month-browser{
    grid-template-columns:38px minmax(0,1fr) 38px;
    gap:.35rem;
  }
  .aec-events-hub__month-arrow{
    width:38px;
    height:38px;
    font-size:1.35rem;
  }
  .aec-events-hub__month-track{
    --aec-hub-month-card-width:var(--aec-hub-month-width-mobile);
    scroll-padding-inline:calc((100% - var(--aec-hub-month-card-width)) / 2);
  }
  .aec-events-hub__month-card{
    min-height:112px;
  }
}
@media(prefers-reduced-motion:reduce){
  .aec-events-hub__month-card{transition-duration:.001ms!important}
}


html.aec-quick-view-open{overflow:hidden}
.aec-event-quick-view{
  position:fixed;
  inset:0;
  z-index:999999;
  display:grid;
  place-items:center;
  padding:clamp(1rem,3vw,2.5rem);
  opacity:0;
  transition:opacity 180ms ease;
}
.aec-event-quick-view[hidden]{display:none}
.aec-event-quick-view.is-open{opacity:1}
.aec-event-quick-view__backdrop{
  position:absolute;
  inset:0;
  background:color-mix(in srgb,var(--aec-qv-overlay) 82%,transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.aec-event-quick-view__dialog{
  position:relative;
  z-index:1;
  width:min(var(--aec-qv-width),100%);
  max-height:min(820px,calc(100vh - 2rem));
  overflow:auto;
  border:1px solid var(--aec-qv-border);
  border-radius:var(--aec-qv-radius);
  background:var(--aec-qv-bg);
  color:var(--aec-qv-text);
  box-shadow:0 28px 90px rgba(0,0,0,.45);
  outline:none;
  transform:translateY(14px) scale(.985);
  transition:transform 180ms cubic-bezier(.22,.61,.36,1);
}
.aec-event-quick-view.is-open .aec-event-quick-view__dialog{transform:translateY(0) scale(1)}
.aec-event-quick-view__close{
  position:absolute;
  top:.8rem;
  right:.8rem;
  z-index:4;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid var(--aec-qv-border);
  border-radius:999px;
  background:rgba(0,0,0,.58);
  color:#fff;
  font:400 1.8rem/1 sans-serif;
  cursor:pointer;
}
.aec-event-quick-view__loading,
.aec-event-quick-view__error{
  padding:4rem 2rem;
  color:var(--aec-qv-muted);
  text-align:center;
  font-family:var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
}
.aec-event-quick-view__content{
  display:grid;
  grid-template-columns:minmax(0,var(--aec-qv-media-width)) minmax(0,1fr);
  min-height:540px;
}
.aec-event-quick-view__media{
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:#0f0f0f;
}
.aec-event-quick-view__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.aec-event-quick-view [hidden]{
  display:none!important;
}
.aec-event-quick-view__media-fallback{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:2rem;
  color:#fff;
  text-align:center;
  font:850 clamp(2rem,6vw,5rem)/.9 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  text-transform:uppercase;
}
.aec-event-quick-view__info{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.9rem;
  padding:clamp(1.5rem,4vw,3.2rem);
}
.aec-event-quick-view__types{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
}
.aec-event-quick-view__types span{
  padding:.35rem .5rem;
  border:1px solid var(--aec-qv-border);
  border-radius:999px;
  color:var(--aec-qv-muted);
  font:800 .65rem/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  text-transform:uppercase;
}
.aec-event-quick-view__status{
  padding:.4rem .55rem;
  border-radius:999px;
  background:var(--aec-qv-text);
  color:var(--aec-qv-bg);
  font:850 .62rem/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:.07em;
  text-transform:uppercase;
}
.aec-event-quick-view__status.is-live{background:#ff3131;color:#fff}
.aec-event-quick-view__title{
  margin:0;
  font:850 clamp(2.2rem,5vw,4.8rem)/.9 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:-.045em;
  text-transform:uppercase;
}
.aec-event-quick-view__meta{
  margin:0;
  color:var(--aec-qv-accent);
  font:700 .8rem/1.45 var(--aec-font-accent,"Another Typewriter","Courier New",monospace);
}
.aec-event-quick-view__excerpt{
  margin:0;
  color:var(--aec-qv-muted);
  font:400 1rem/1.55 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
}
.aec-event-quick-view__schedule-summary{
  width:100%;
  padding:1rem;
  border:1px solid var(--aec-qv-border);
  border-radius:12px;
}
.aec-event-quick-view__schedule-summary > strong{
  display:block;
  margin-bottom:.7rem;
  color:var(--aec-qv-accent);
  font:800 .72rem/1.2 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.aec-event-quick-view__schedule-row{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:.15rem .8rem;
  padding:.45rem 0;
  border-top:1px solid color-mix(in srgb,var(--aec-qv-border) 70%,transparent);
}
.aec-event-quick-view__schedule-row:first-child{border-top:0}
.aec-event-quick-view__schedule-row span{
  color:var(--aec-qv-muted);
  font:700 .7rem/1.25 var(--aec-font-accent,"Another Typewriter","Courier New",monospace);
}
.aec-event-quick-view__schedule-row strong{
  font:800 .82rem/1.2 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
}
.aec-event-quick-view__schedule-row small{
  grid-column:2;
  color:var(--aec-qv-muted);
  font:600 .7rem/1.2 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
}
.aec-event-quick-view__full{
  display:inline-flex;
  min-height:46px;
  align-items:center;
  justify-content:center;
  margin-top:.25rem;
  padding:.75rem 1.1rem;
  border-radius:999px;
  background:var(--aec-qv-accent);
  color:#0a0a0a;
  font:850 .72rem/1 var(--aec-font-primary,"Space Grotesk",Arial,sans-serif);
  letter-spacing:.07em;
  text-decoration:none;
  text-transform:uppercase;
}
@media(max-width:760px){
  .aec-event-quick-view{padding:.7rem}
  .aec-event-quick-view__dialog{max-height:calc(100vh - 1.4rem)}
  .aec-event-quick-view__content{grid-template-columns:1fr;min-height:0}
  .aec-event-quick-view__media{min-height:300px;aspect-ratio:4/5}
  .aec-event-quick-view__info{padding:1.4rem}
  .aec-event-quick-view__schedule-row{grid-template-columns:92px minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .aec-event-quick-view,
  .aec-event-quick-view__dialog{transition-duration:.001ms!important}
}
