@font-face {
  font-family: "Calendar Inter";
  src: url("/assets/fonts/calendar/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
.cp-page {
  --cp-ink: #0a0a0b;
  --cp-muted: #534e46;
  --cp-link: #1f648e;
  --cp-line: #d7d0c4;
  color: var(--cp-ink);
  background: var(--color-paper, #f4f1ea);
  padding: 28px 5% 64px;
  font-family: "Calendar Inter", var(--font-site), sans-serif;
  scroll-margin-top: 90px;
  min-width: 0;
}
.cp-page * { box-sizing: border-box; }
.cp-page :is(a,button,input,select,summary):focus-visible { outline: 3px solid var(--cp-link); outline-offset: 4px; }
.cp-page a { color: var(--cp-link); text-decoration: none; }
.cp-page a:not(.cp-event):hover { text-decoration: underline; text-underline-offset: 3px; }
.cp-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 32px 0; }
.cp-heading :is(h1,h2) { font-family: var(--font-heading); font-size: clamp(64px, 7vw, 100px); font-weight: 400; line-height: .95; margin: 0; }
.cp-filters { border: 1px solid #b7aa96; background: #dfd5c4; padding: 24px; scroll-margin-top: 78px; }
.cp-filters > summary { display: none; }
.cp-filters form { display: grid; grid-template-columns: minmax(0,1fr) 170px; gap: 0 16px; align-items: center; }
.cp-fields { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.35fr) minmax(0,.9fr) minmax(65px,.6fr); gap: 12px; }
.cp-fields label { display: block; font-size: 12px; font-weight: 600; min-width: 0; }
.cp-fields :is(input,select) { width: 100%; max-width: 100%; height: 48px; border: 1px solid #b1aa9f; background: #fffdf8; color: var(--cp-ink); padding: 10px 12px; margin-top: 8px; border-radius: 3px; font: 400 14px "Calendar Inter", sans-serif; }
.cp-fields select { padding-right: 4px; }
.cp-fields input::placeholder { color: #696258; opacity: 1; }
.cp-page [hidden] { display: none !important; }
.cp-filter-actions { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
#cp-filter-help { grid-column: 1/-1; font-size: 12px; color: var(--cp-muted); margin: 12px 0 0; }
#cp-filter-help:empty { display: none; }
.cp-filter-actions a { font-size: 12px; padding: 2px 0; text-align: center; }
.cp-filter-actions button,.cp-primary-link { background: var(--cp-link); color: #fff !important; padding: 13px 18px; border-radius: 3px; min-height: 48px; font: 600 14px "Calendar Inter", sans-serif; display: inline-flex; align-items: center; justify-content: center; gap: 20px; cursor: pointer; }
.cp-filter-actions button:hover,.cp-primary-link:hover { background: #164d70; }
.cp-filter-actions button { padding: 12px 10px; gap: 8px; white-space: nowrap; }
.cp-chips { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 18px; }
.cp-chips a { display: inline-flex; align-items: center; gap: 16px; background: #fffdf8; border: 1px solid #a6bbca; padding: 8px 12px; border-radius: 3px; min-height: 44px; font-size: 13px; overflow-wrap: anywhere; }
.cp-chips a span { font-size: 20px; }
.cp-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 28px 0 22px; scroll-margin-top: 90px; }
.cp-period { display: flex; align-items: center; gap: 18px; }
.cp-period h2 { margin: 0; font: 600 25px "Calendar Inter", sans-serif; letter-spacing: -.045em; }
.cp-period p { font-size: 12px; color: var(--cp-muted); margin: 6px 0 0; }
.cp-icon-button { width: 44px; height: 44px; display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; border: 1px solid #b1aa9f; border-radius: 3px; font: 28px Arial, sans-serif; color: var(--cp-ink) !important; }
.cp-icon-button:hover { background: #eee8dd; text-decoration: none !important; }
.cp-view-controls { display: flex; align-items: center; gap: 20px; font-size: 13px; }
.cp-filter-shortcut { display: none; }
.cp-current-month { padding: 14px 0; white-space: nowrap; }
.cp-view-switch { display: flex; padding: 4px; border: 1px solid var(--cp-line); border-radius: 4px; }
.cp-view-switch a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; color: var(--cp-muted); border-radius: 2px; }
.cp-page[data-view="auto"] [data-view-link="grid"],.cp-page[data-view="grid"] [data-view-link="grid"],.cp-page[data-view="list"] [data-view-link="list"] { background: var(--cp-ink); color: #fff; }
.cp-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); border: 1px solid var(--cp-line); border-right: 0; border-bottom: 0; }
.cp-weekday { padding: 13px 12px; background: #d3c5ae; border-right: 1px solid #b7aa96; border-bottom: 1px solid #b7aa96; font-size: 12px; font-weight: 600; }
.cp-cell { min-height: 180px; min-width: 0; padding: 12px 10px; border-right: 1px solid var(--cp-line); border-bottom: 1px solid var(--cp-line); background: #fffdf8; }
.cp-cell.cp-outside { background: #eee8dd; }
.cp-cell.cp-past:not(.cp-outside) { background: #f2eee6; }
.cp-cell-head { display: flex; align-items: center; justify-content: space-between; gap: 4px; margin-bottom: 13px; }
.cp-cell-head time { font-size: 19px; font-weight: 600; font-variant-numeric: tabular-nums; }
.cp-outside .cp-cell-head time { color: #756e63; }
.cp-cell-head span,.cp-today-label { font-size: 10px; font-weight: 600; padding: 4px 6px; background: #f5c65b; border-radius: 3px; color: #0a0a0b; }
.cp-cell.cp-today { box-shadow: inset 0 3px #bf5701; background: #fff9e9; }
.cp-page .cp-event { display: flex; gap: 16px; align-items: center; color: var(--cp-ink); padding: 20px 0; border-top: 1px solid var(--cp-line); text-decoration: none; }
.cp-page .cp-event:hover { text-decoration: none; }
.cp-event-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 6px; }
.cp-performer { display: block; font: 600 18px/1.4 "Calendar Inter", sans-serif; overflow-wrap: anywhere; letter-spacing: -.025em; }
.cp-location { display: block; font-size: 13px; line-height: 1.5; color: var(--cp-muted); overflow-wrap: anywhere; }
.cp-event-context { font-size: 11px; line-height: 1.5; color: var(--cp-muted); overflow-wrap: anywhere; }
.cp-event-arrow { width: 36px; flex: 0 0 36px; font-size: 23px; color: var(--cp-link); text-align: center; }
.cp-time { color: var(--cp-muted); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cp-page .cp-event:hover .cp-performer { color: var(--cp-link); text-decoration: underline; text-underline-offset: 3px; }
.cp-page .cp-event-compact { display: block; padding: 10px 0; }
.cp-event-compact .cp-performer { font-size: 14px; line-height: 1.4; }
.cp-event-compact .cp-location { font-size: 11px; }
.cp-event-compact .cp-parent-context { display: none; }
.cp-event-compact .cp-time { display: block; margin-top: 5px; font-size: 11px; }
.cp-agenda { display: none; border-top: 1px solid var(--cp-line); }
.cp-page[data-view="list"] .cp-grid { display: none; }
.cp-page[data-view="list"] .cp-agenda { display: block; }
.cp-agenda-day { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 26px 0 8px; }
.cp-date-stamp { text-align: center; display: flex; flex-direction: column; align-items: center; padding: 14px 10px; background: #eee8dd; align-self: start; border-radius: 3px; }
.cp-date-stamp strong { font-size: 35px; line-height: 1.2; font-weight: 600; font-variant-numeric: tabular-nums; }
.cp-date-stamp > span { color: var(--cp-muted); font-size: 11px; letter-spacing: .05em; }
.cp-day-body { min-width: 0; }
.cp-day-body h3 { font: 500 13px "Calendar Inter", sans-serif; color: var(--cp-muted); margin: 0 0 14px; display: flex; gap: 12px; align-items: center; }
.cp-today .cp-date-stamp { background: #f5c65b; }
.cp-earlier { margin-top: 26px; border-top: 1px solid var(--cp-line); }
.cp-earlier > summary { padding: 20px 0; cursor: pointer; color: var(--cp-link); font-size: 14px; }
.cp-earlier summary span { margin-left: 8px; background: #eee8dd; padding: 3px 8px; border-radius: 3px; color: var(--cp-muted); }
.cp-bottom,.cp-pagination { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 28px 0; border-bottom: 1px solid var(--cp-line); font-size: 13px; }
.cp-bottom p { color: var(--cp-muted); margin: 0; }
.cp-bottom a,.cp-pagination a { padding: 12px 0; font-weight: 600; }
.cp-footnote { color: var(--cp-muted); font-size: 12px; line-height: 1.6; margin: 20px 0 0; }
.cp-empty { padding: 64px 24px; text-align: center; background: #eee8dd; border: 1px solid var(--cp-line); }
.cp-empty > span { font-size: 40px; color: var(--cp-link); }
.cp-empty h3 { font: 600 26px "Calendar Inter", sans-serif; margin: 12px 0; }
.cp-empty p { color: var(--cp-muted); font-size: 14px; line-height: 1.7; max-width: 34rem; margin: 0 auto 24px; }
.cp-empty > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; font-size: 14px; }
.cp-notice { color: var(--cp-muted); background: #fff9e9; padding: 14px; border-left: 3px solid #bf5701; font-size: 13px; }
@media (max-width: 1023px) {
  .cp-filters form { grid-template-columns: 1fr; gap: 18px; }
  .cp-filter-actions { justify-self: end; min-width: 190px; }
  .cp-grid,.cp-view-switch { display: none !important; }
  .cp-agenda { display: block; }
  .cp-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cp-fields .cp-search-label { grid-column: 1/-1; }
  .cp-period h2 { font-size: 23px; }
}
@media (max-width: 767px) {
  .cp-page { padding: 22px 5% 42px; scroll-margin-top: 76px; }
  .cp-heading { padding: 26px 0; gap: 12px; }
  .cp-heading h1 { font-size: 72px; }
  .cp-filters { padding: 0; }
  .cp-filters > summary { display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: 12px 16px; font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; }
  .cp-filters > summary::-webkit-details-marker { display: none; }
  .cp-filters[open] > summary { border-bottom: 1px solid var(--cp-line); }
  .cp-filters[open] > summary span { transform: rotate(45deg); }
  .cp-filters form { padding: 18px 16px; }
  .cp-fields { gap: 18px 12px; }
  .cp-fields label:nth-child(-n+3) { grid-column: 1/-1; }
  .cp-fields :is(input,select) { font-size: 16px; }
  .cp-filter-actions { justify-self: stretch; }
  .cp-filter-actions a { min-height: 44px; display: flex; align-items: center; justify-content: center; }
  .cp-toolbar { position: sticky; top: 64px; z-index: 12; background: #f4f1ea; padding: 20px 0 16px; gap: 10px; flex-wrap: wrap; border-bottom: 1px solid var(--cp-line); }
  .cp-period { width: 100%; justify-content: space-between; gap: 10px; }
  .cp-period > div { flex: 1; text-align: center; }
  .cp-period h2 { font-size: 22px; }
  .cp-view-controls { width: 100%; justify-content: space-between; }
  .cp-filter-shortcut { display: inline-flex; min-height: 44px; align-items: center; background: transparent; color: var(--cp-link); font: 600 12px "Calendar Inter",sans-serif; padding: 8px 0; cursor: pointer; }
  .cp-current-month { font-size: 12px; padding: 6px 0; min-height: 44px; display: inline-flex; align-items: center; }
  .cp-agenda { border-top: 0; }
  .cp-agenda-day { grid-template-columns: 50px minmax(0,1fr); gap: 14px; padding-top: 22px; }
  .cp-date-stamp { padding: 9px 3px; }
  .cp-date-stamp strong { font-size: 27px; }
  .cp-date-stamp > span { font-size: 10px; }
  .cp-day-body h3 { font-size: 11px; gap: 6px; flex-wrap: wrap; min-height: 20px; margin-bottom: 10px; }
  .cp-page .cp-event { gap: 8px; padding: 16px 0; flex-wrap: wrap; }
  .cp-performer { font-size: 17px; line-height: 1.45; }
  .cp-location { font-size: 12px; }
  .cp-event-copy { flex-basis: calc(100% - 32px); }
  .cp-event-arrow { width: 22px; flex-basis: 22px; }
  .cp-time { order: 3; }
  .cp-bottom { flex-direction: column; align-items: flex-start; gap: 4px; }
  .cp-empty { padding: 32px 16px; }
  .cp-empty h3 { font-size: 23px; }
  .cp-empty .cp-primary-link { font-size: 13px; }
}
.cp-page--home {
  --cp-ink: #f4f1ea;
  --cp-muted: #bdb7ad;
  --cp-link: #f5c65b;
  --cp-line: #403a34;
  color-scheme: dark;
  background: #0b0807;
  padding-top: 36px;
  padding-bottom: 48px;
}
.cp-page--home .cp-heading h2 { font-size: clamp(52px,6vw,80px); }
.cp-page--home .cp-heading > a { font-size: 13px; padding: 12px 0; }
.cp-page--home .cp-filters { background: #161312; border-color: #403a34; }
.cp-page--home .cp-fields :is(input,select) { background: #332d27; color: #f4f1ea; border-color: #a69683; }
.cp-page--home .cp-fields input::placeholder { color: #bdb7ad; }
.cp-page--home .cp-weekday { background: #211b16; border-color: #403a34; color: #f5c65b; }
.cp-page--home .cp-cell { background: #100e0d; }
.cp-page--home .cp-cell.cp-past { background: #0b0807; }
.cp-page--home .cp-cell.cp-today { background: #211a0e; box-shadow: inset 0 3px #f5c65b; }
.cp-page--home :is(.cp-empty,.cp-date-stamp,.cp-notice) { background: #161312; }
.cp-page--home .cp-today .cp-date-stamp { background: #f5c65b; color: #0a0a0b; }
.cp-page--home .cp-today .cp-date-stamp > span { color: #0a0a0b; }
.cp-page--home .cp-toolbar { background: #0b0807; }
.cp-page--home .cp-icon-button { border-color: #827667; color: #f5c65b !important; }
.cp-page--home .cp-icon-button:hover { background: #211b16; }
.cp-page--home .cp-chips a { background: #161312; border-color: #827667; }
.cp-page--home :is(.cp-filter-actions button,.cp-primary-link) { background: #f5c65b; color: #0a0a0b !important; }
.cp-page--home :is(.cp-filter-actions button,.cp-primary-link):hover { background: #ffda85; }
.cp-page--home :is([data-view-link][aria-current="true"]) { background: #f5c65b; color: #0a0a0b; }
.cp-page--home[data-view="auto"] [data-view-link="grid"],.cp-page--home[data-view="grid"] [data-view-link="grid"],.cp-page--home[data-view="list"] [data-view-link="list"] { background: #f5c65b; color: #0a0a0b; }
@media (prefers-reduced-motion: reduce) { .cp-page * { scroll-behavior: auto !important; transition: none !important; } }
.story-calendar-before-widget .cp-page--home { padding: 0; }
.story-calendar-before-widget .cp-heading { padding-top: 0; }
.story-calendar-before-widget .cp-loading { min-height: 240px; }
[data-calendar-widget][aria-busy="true"] .cp-page { opacity: .65; }
.cp-widget-error { color: #f4f1ea; padding: 16px 0; }
.cp-widget-error button { color: #f5c65b; text-decoration: underline; margin-left: 12px; }
