/* Shared accessibility behavior. Original artwork is kept in its source files. */
:root {
  --agrft-muted: var(--agrft-lavender);
  --agrft-sticky-offset: calc(104px + var(--agrft-admin-bar-offset));
  --agrft-occurrence-height: 0px;
  --agrft-ink-violet: var(--agrft-violet);
  --agrft-ink-red: var(--agrft-pink);
  --agrft-ink-white: #fff;
  --agrft-ink-black: #000;
}

html {
  scroll-padding-top: var(--agrft-sticky-offset);
  scroll-padding-bottom: calc(max(var(--agrft-occurrence-height), var(--agrft-search-height, 0px)) + 12px);
}

[hidden] { display: none !important; }

h1, h2, h3, p, a, label, legend, button { overflow-wrap: anywhere; }

:focus-visible {
  outline: none;
  outline-offset: 0;
  box-shadow: none;
}

.agrft-header { background-image: none; }

.agrft-header:not(.agrft-header--home)::before {
  position: absolute;
  inset: 0;
  background: var(--agrft-header-artwork, none) center / 150px 50px no-repeat;
  content: "";
  pointer-events: none;
}

.agrft-hero__nav.is-docked a { min-height: 25px; }
.agrft-expanded-nav { --agrft-header: calc(108px + 2.8rem); --agrft-header-link-top: 100px; }
.agrft-expanded-nav .agrft-header::before { background-position: top center; background-size: 150px 50px; }
.agrft-expanded-nav .agrft-header__program,
.agrft-expanded-nav .agrft-header__contact,
.agrft-expanded-nav .agrft-hero__nav.is-docked a { top: 100px; }
.agrft-expanded-nav .agrft-hero__nav-slot { min-height: calc(24px + 2.8rem); }

.agrft-intro h1 { white-space: normal; }
.agrft-intro__copy { height: auto; min-height: 176px; }
.agrft-intro__welcome { height: auto; min-height: 76px; padding-bottom: 24px; }
.agrft-home-section-title, .agrft-program__date-title { height: auto; min-height: 72px; padding-block: 18px; }
.agrft-upcoming__note { height: auto; min-height: 96px; padding-bottom: 16px; }

.agrft-upcoming__track { height: auto; min-height: 352px; }
.agrft-upcoming__slide { flex-basis: min(342px, 100%); }
.agrft-upcoming .agrft-card,
.agrft-card.agrft-card--featured { display: flex; flex-direction: column; height: 100%; min-height: 352px; }
.agrft-upcoming .agrft-card__date,
.agrft-upcoming .agrft-card__type,
.agrft-upcoming .agrft-card h3,
.agrft-upcoming .agrft-card__venue,
.agrft-upcoming .agrft-card__time,
.agrft-card--featured .agrft-card__date,
.agrft-card--featured .agrft-card__type,
.agrft-card--featured h3,
.agrft-card--featured .agrft-card__venue,
.agrft-card--featured .agrft-card__time {
  position: static;
  width: auto;
}
.agrft-upcoming .agrft-card__date, .agrft-card--featured .agrft-card__date { margin-bottom: 9px; }
.agrft-upcoming .agrft-card__type, .agrft-card--featured .agrft-card__type { margin-bottom: 6px; }
.agrft-upcoming .agrft-card h3, .agrft-card--featured h3 { margin-bottom: 21px; }
.agrft-upcoming .agrft-card__venue, .agrft-card--featured .agrft-card__venue { position: relative; inset: auto; margin-top: auto; }
.agrft-upcoming .agrft-card__time, .agrft-card--featured .agrft-card__time { margin-top: auto; padding-top: 18px; }
.agrft-card__time { display: grid; grid-template-columns: minmax(0, 1fr) 114px; gap: 12px; }
.agrft-card__time time { min-width: 0; overflow-wrap: anywhere; }
.agrft-card__badge { min-height: 44px; height: auto; min-width: 0; width: 100%; margin: 0; padding: 8px; text-align: center; }
.agrft-card__badge.agrft-no-reservation { padding: 4px 8px; font-size: .75rem; letter-spacing: .02em; line-height: 1rem; }
.agrft-card__badge.is-muted, .agrft-no-reservation { color: var(--agrft-violet); white-space: normal; }
.agrft-no-reservation.is-not-required { color: var(--agrft-white); background: var(--agrft-violet); }
.agrft-card__badge.is-muted { width: auto; max-width: 100%; }
.agrft-upcoming__dots, .agrft-gallery__dots { display: none; }

/* Keep the XD red and the 114 × 44 slot; large white lettering needs 3:1. */
.agrft-card__badge[data-agrft-reserve] {
  padding: 10px 8px;
  font-family: "Eric Machat Headline", sans-serif;
  font-size: 1.333334rem;
  letter-spacing: .12em;
  line-height: 1;
}

/* Small copy and text on grey use the darker colour from the same XD palette. */
.agrft-intro__welcome,
.agrft-card__date,
.agrft-card__venue-link,
.agrft-card__venue-address,
.agrft-event__venue a,
.agrft-event__venue-address,
.agrft-dialog__venue-link,
.agrft-dialog__venue-address,
.agrft-dialog__slot time,
.agrft-dialog__header h2 { color: var(--agrft-violet); }
html[data-agrft-contrast="default"] .agrft-dialog__header h2 { color: var(--agrft-pink); }

.agrft-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: auto;
  min-height: 942px;
  padding: 222px 24px 30px;
  overflow: visible;
}
.agrft-footer__logo {
  position: static;
  align-self: center;
  flex-shrink: 0;
  width: 100%;
  max-width: 342px;
  height: auto;
  transform: none;
  margin: 0 0 24px;
}
.agrft-footer__university-logo {
  position: static;
  align-self: center;
  flex: 0 0 auto;
  margin-top: 24px;
}
.agrft-footer hr { position: static; width: 100%; margin: 0 0 24px; }
.agrft-footer .agrft-footer__follow,
.agrft-footer .agrft-footer__social,
.agrft-footer .agrft-footer__reservation,
.agrft-footer .agrft-footer__question,
.agrft-footer .agrft-footer__email,
.agrft-footer .agrft-footer__copyright,
.agrft-footer__nav { position: static; }
.agrft-footer .agrft-footer__follow { margin-bottom: 6px; }
.agrft-footer .agrft-footer__social { margin-bottom: 32px; }
.agrft-footer .agrft-footer__reservation { margin-bottom: 18px; }
.agrft-footer .agrft-footer__question { margin-bottom: 6px; }
.agrft-footer .agrft-footer__email { margin-bottom: 32px; }
.agrft-footer__nav { gap: 24px; }
.agrft-footer__nav--reservation { margin-bottom: 12px; }
.agrft-footer__nav--legal { margin-bottom: 28px; }
.agrft-footer__nav a { display: flex; justify-content: center; align-items: center; min-height: 1.4rem; }
.agrft-footer .agrft-footer__copyright { margin-top: auto; }
.agrft-footer .agrft-footer__editor-row { position: static; margin-top: 14px; text-align: center; }
.agrft-search input::placeholder, .agrft-reservation input::placeholder { color: var(--agrft-muted); opacity: 1; }
.agrft-search input { height: auto; min-height: 48px; line-height: 1.3; }
.agrft-search button { width: 44px; height: 44px; top: 2px; right: 2px; color: var(--agrft-white); background: transparent; }
.agrft-search button::before {
  position: absolute;
  inset: 4px;
  background: var(--agrft-violet);
  content: "";
}
.agrft-search button::after {
  position: absolute;
  inset: 4px;
  background: currentColor;
  -webkit-mask: var(--agrft-icon-search) center / 36px 36px no-repeat;
  mask: var(--agrft-icon-search) center / 36px 36px no-repeat;
  content: "";
}
.agrft-program__day { scroll-margin-top: var(--agrft-sticky-offset); }
.agrft-program__list { padding-bottom: 24px; }
.agrft-days a { color: var(--agrft-violet); opacity: 1; }
.agrft-days a.is-active { color: var(--agrft-violet); }

.agrft-occurrence-dock { background: var(--agrft-white); }
.agrft-js .agrft-occurrence-dock {
  position: fixed;
  bottom: 0;
  left: 50%;
  z-index: 45;
  width: min(100%, var(--agrft-column));
  max-height: 45dvh;
  overflow-y: auto;
  border-top: 2px solid var(--agrft-violet);
  transform: translateX(-50%);
  transition: transform .4s ease-out;
  /* Paint the home-indicator area with the dock background; keep controls above it. */
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.agrft-js .agrft-occurrence-dock.is-footer-hidden {
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 100%);
  transition: transform .4s ease-out, visibility 0s linear .4s;
}
.agrft-event__occurrences {
  position: static;
  width: 100%;
  height: auto;
  transform: none;
  scroll-snap-type: x proximity;
}
.agrft-event__slot { min-width: 0; padding-bottom: 12px; }
.agrft-event__slot > div, .agrft-dialog__slot { flex-wrap: wrap; gap: 8px; }
.agrft-event__slot time { max-width: 100%; }
.agrft-no-reservation, .agrft-reserve-trigger { height: auto; }
.agrft-gallery { scroll-snap-type: x proximity; }
.agrft-gallery figure { flex-basis: min(var(--agrft-gallery-width, 330px), calc(100vw - 48px)); min-width: 0; }
.agrft-gallery img { width: 100%; height: auto; max-height: 204px; object-fit: contain; object-position: center; }
.agrft-event-nav { height: auto; min-height: 36px; }
.agrft-event-nav a { padding-block: 0; min-height: 36px; }

.agrft-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 0;
  color: var(--agrft-violet);
  background: var(--agrft-white);
}
.agrft-upcoming .agrft-carousel-controls { padding-block: 3px 15px; }
.agrft-carousel-dots { display: flex; flex-wrap: wrap; justify-content: center; max-width: 100%; }
.agrft-carousel-dot {
  position: relative;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
}
.agrft-carousel-dot::before { position: absolute; inset: 9px; background: transparent; box-shadow: inset 0 0 0 1px currentColor; content: ""; }
.agrft-carousel-dot[aria-current="true"]::before { background: currentColor; }

.agrft-dialog { min-height: 100dvh; }
.agrft-dialog__header { display: flex; flex-direction: column; overflow: visible; padding-top: 24px; background-image: none; }
.agrft-dialog__type { padding-right: 44px; }
.agrft-dialog__header::before {
  position: absolute;
  inset: 0 0 auto;
  height: 195px;
  background: var(--agrft-white);
  -webkit-mask: var(--agrft-icon-teeth-overlay) top center / 390px 195px no-repeat;
  mask: var(--agrft-icon-teeth-overlay) top center / 390px 195px no-repeat;
  opacity: 1;
  content: "";
  pointer-events: none;
}
.agrft-dialog__venue { position: relative !important; inset: auto; margin: auto 0 0; padding-top: 24px; }
.agrft-dialog__close {
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  background: transparent;
  color: var(--agrft-violet);
  border: 0;
}
.agrft-dialog__close:focus {
  outline: 0;
  outline-offset: 0;
  box-shadow: none;
}
.agrft-dialog__close::before {
  position: absolute;
  inset: 9px;
  background: currentColor;
  -webkit-mask: var(--agrft-icon-close) center / contain no-repeat;
  mask: var(--agrft-icon-close) center / contain no-repeat;
  content: "";
}
.agrft-reservation {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: auto;
  min-height: 418px;
  padding: 18px 24px 24px;
}
.agrft-reservation__title,
.agrft-stepper,
.agrft-reservation__availability,
#agrft-reservation-email,
.agrft-reservation__explanation,
.agrft-reservation__error,
.agrft-reservation .agrft-button,
.agrft-reservation__confirmation {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  margin: 0;
}
.agrft-reservation__availability {
  display: grid;
  line-height: 1.2;
}
.agrft-reservation__availability::before,
.agrft-reservation__availability > span {
  grid-area: 1 / 1;
}
.agrft-reservation__availability::before {
  visibility: hidden;
  content: attr(data-layout-text);
}
.agrft-stepper { grid-template-columns: 36px minmax(0, 1fr) 36px; min-height: 48px; }
.agrft-stepper button { position: relative; height: 36px; min-height: 36px; }
.agrft-stepper button::after { position: absolute; inset: -4px; content: ""; }
.agrft-reservation .agrft-stepper input { min-width: 0; height: 36px; min-height: 36px; }
.agrft-reservation input { min-height: 48px; height: auto; border: 2px solid transparent; }
.agrft-reservation input[aria-invalid="true"] { border-color: currentColor; outline: 2px dashed currentColor; outline-offset: 2px; }
.agrft-reservation__label { font-weight: 600; line-height: 1.4; }
.agrft-reservation__error:empty { padding: 0; border: 0; min-height: 0; }
.agrft-reservation__error { min-height: 0; line-height: 1.4; }
.agrft-reservation__demo { display: block; margin: 0; font-size: .833333rem; line-height: 1.4; }
.agrft-reservation__confirmation { line-height: 1.4; }
.agrft-reservation .agrft-button { font-size: 1.333334rem; line-height: 1; }
.agrft-reserve-trigger:not(.agrft-no-reservation) { font-size: 1.333334rem; line-height: 1.2; }

.agrft-basic-page { line-height: 1.6; }
.agrft-basic-page h1 { font-size: 2rem; line-height: 1.15; margin-bottom: 24px; }
.agrft-basic-page h2 { font-size: 1.333333rem; line-height: 1.3; margin: 32px 0 12px; }
.agrft-basic-page h3 { font-size: 1.111111rem; margin: 24px 0 8px; }
.agrft-basic-page ul, .agrft-basic-page ol { padding-left: 1.25em; }
.agrft-basic-page li + li { margin-top: .5em; }
.agrft-accessibility-settings { border-block: 2px solid; padding-block: 12px 24px; }
.agrft-accessibility-settings fieldset { min-width: 0; padding: 12px; border: 1px solid; }
.agrft-accessibility-settings legend { padding-inline: 4px; font-weight: 600; }
.agrft-accessibility-settings label { display: flex; align-items: flex-start; gap: 10px; padding-block: 10px; min-height: 44px; line-height: 1.4; }
.agrft-accessibility-settings input {
  appearance: none;
  display: grid;
  place-content: center;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin: 2px 0 0;
  padding: 0;
  border: 2px solid currentColor;
  border-radius: 50%;
  color: var(--agrft-violet);
  background: var(--agrft-white);
}
.agrft-accessibility-settings input::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: currentColor;
  visibility: hidden;
}
.agrft-accessibility-settings input:checked::before { visibility: visible; }
.agrft-accessibility-settings input:disabled { border-style: dashed; }
.agrft-accessibility-settings p { margin-block: 12px; }
.agrft-accessibility-status:empty { margin: 0; }

/* Shared palette for compositor masks and the SVG fallback. */
.agrft-ink {
  --agrft-ink-base: var(--agrft-ink-violet);
  position: fixed;
  inset: 0;
  z-index: 10001;
  overflow: hidden;
  contain: layout paint;
  pointer-events: none;
}
.agrft-ink[data-mode="light"] { --agrft-ink-base: var(--agrft-ink-white); }
.agrft-ink[data-mode="dark"] { --agrft-ink-base: var(--agrft-ink-black); }
.agrft-ink svg {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  filter: none !important;
}
.agrft-ink__cover { fill: var(--agrft-ink-base); }
.agrft-ink__leading { fill: var(--agrft-ink-violet); color: var(--agrft-ink-violet); }
.agrft-ink__pigment { fill: var(--agrft-ink-red); color: var(--agrft-ink-red); }
.agrft-ink__trace { fill: var(--agrft-ink-white); color: var(--agrft-ink-white); }
.agrft-ink[data-mode="light"] :is(.agrft-ink__leading, .agrft-ink__trace) { fill: var(--agrft-ink-black); color: var(--agrft-ink-black); }
.agrft-ink[data-mode="dark"] :is(.agrft-ink__leading, .agrft-ink__trace) { fill: var(--agrft-ink-white); color: var(--agrft-ink-white); }
.agrft-ink:is([data-mode="light"], [data-mode="dark"]) .agrft-ink__pigment { fill: var(--agrft-ink-base); color: var(--agrft-ink-base); }
.agrft-ink__surface { display: none; position: absolute; inset: 0; }
html[data-agrft-ink="native"] .agrft-ink__surface { display: block; }
html[data-agrft-ink="native"] .agrft-ink svg { display: none; }
html[data-agrft-ink="native"]::view-transition { pointer-events: none; }
html[data-agrft-ink="native"]::view-transition-group(root),
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-leading),
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-pigment),
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-trace),
html[data-agrft-ink="native"]::view-transition-old(root),
html[data-agrft-ink="native"]::view-transition-new(root),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-leading),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-pigment),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-trace) {
  animation: none;
  mix-blend-mode: normal;
  pointer-events: none;
}
html[data-agrft-ink="native"]::view-transition-group(root) { z-index: 0; }
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-leading) { z-index: 1; }
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-pigment) { z-index: 2; }
html[data-agrft-ink="native"]::view-transition-group(agrft-ink-trace) { z-index: 3; }
/* Empty source boxes do not occlude the page during capture (Firefox).
   Paint the pigment on the pseudo itself, including in WebKit. */
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-leading) { background: var(--agrft-ink-violet); }
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-pigment) { background: var(--agrft-ink-red); }
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-trace) { background: var(--agrft-ink-white); }
html[data-agrft-ink="native"][data-agrft-contrast="light"]::view-transition-new(agrft-ink-leading),
html[data-agrft-ink="native"][data-agrft-contrast="light"]::view-transition-new(agrft-ink-trace),
html[data-agrft-ink="native"][data-agrft-contrast="dark"]::view-transition-new(agrft-ink-pigment) { background: var(--agrft-ink-black); }
html[data-agrft-ink="native"][data-agrft-contrast="dark"]::view-transition-new(agrft-ink-leading),
html[data-agrft-ink="native"][data-agrft-contrast="dark"]::view-transition-new(agrft-ink-trace),
html[data-agrft-ink="native"][data-agrft-contrast="light"]::view-transition-new(agrft-ink-pigment) { background: var(--agrft-ink-white); }
html[data-agrft-ink="native"]::view-transition-image-pair(root) { isolation: auto; }
html[data-agrft-ink="native"]::view-transition-old(root) { z-index: 0; }
html[data-agrft-ink="native"]::view-transition-new(root) {
  z-index: 1;
}
html[data-agrft-ink="native"]::view-transition-new(root),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-leading),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-pigment),
html[data-agrft-ink="native"]::view-transition-new(agrft-ink-trace) {
  clip-path: inset(50%);
}
@media (prefers-reduced-motion: reduce), (forced-colors: active), print {
  .agrft-ink { display: none !important; }
}
html[data-agrft-motion="reduce"] .agrft-ink { display: none !important; }

/* The high contrast palette also applies to blocks inserted by the editor. */
.agrft-hero > .agrft-artwork--contrast { display: none; }
html[data-agrft-contrast="light"] {
  --agrft-foreground: #000;
  --agrft-background: #fff;
  --agrft-artwork-filter: none;
  --agrft-mark-filter: brightness(0);
  color-scheme: light;
}
html[data-agrft-contrast="dark"] {
  --agrft-foreground: #fff;
  --agrft-background: #000;
  --agrft-artwork-filter: invert(1);
  --agrft-mark-filter: brightness(0) invert(1);
  color-scheme: dark;
}
html[data-agrft-contrast="light"], html[data-agrft-contrast="dark"] {
  --agrft-violet: var(--agrft-foreground);
  --agrft-pink: var(--agrft-foreground);
  --agrft-lavender: var(--agrft-foreground);
  --agrft-grey: var(--agrft-background);
  --agrft-white: var(--agrft-background);
  --agrft-black: var(--agrft-foreground);
  --agrft-muted: var(--agrft-foreground);
  color: var(--agrft-foreground);
  background: var(--agrft-background);
}
html[data-agrft-contrast="light"] body, html[data-agrft-contrast="dark"] body { color: var(--agrft-foreground); background: var(--agrft-background); }
html[data-agrft-contrast="light"] :is(h1, h2, h3, h4, h5, h6),
html[data-agrft-contrast="dark"] :is(h1, h2, h3, h4, h5, h6) { color: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-site *, html[data-agrft-contrast="dark"] .agrft-site * {
  text-shadow: none !important;
}
html[data-agrft-contrast="light"] :is(.agrft-basic-page, .agrft-event__content, .agrft-privacy-page) *,
html[data-agrft-contrast="dark"] :is(.agrft-basic-page, .agrft-event__content, .agrft-privacy-page) * {
  color: var(--agrft-foreground) !important;
  background-color: var(--agrft-background) !important;
}
/* Content media keep their original colours; only theme artwork changes below. */
html[data-agrft-contrast="light"] .agrft-hero > .agrft-artwork--color,
html[data-agrft-contrast="dark"] .agrft-hero > .agrft-artwork--color { display: none; }
html[data-agrft-contrast="light"] .agrft-hero > .agrft-artwork--contrast,
html[data-agrft-contrast="dark"] .agrft-hero > .agrft-artwork--contrast {
  display: block;
  filter: var(--agrft-artwork-filter);
}
html[data-agrft-contrast="light"] .agrft-header::before,
html[data-agrft-contrast="dark"] .agrft-header::before {
  background-image: var(--agrft-header-artwork-contrast, none);
  filter: var(--agrft-artwork-filter);
}
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-footer {
  --agrft-footer-ink: var(--agrft-background);
  --agrft-footer-surface: var(--agrft-foreground);
  --agrft-footer-edge: var(--agrft-background);
  color: var(--agrft-footer-ink);
  background: var(--agrft-footer-surface);
}
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-view-program .agrft-footer {
  --agrft-footer-ink: var(--agrft-foreground);
  --agrft-footer-surface: var(--agrft-background);
  --agrft-footer-edge: var(--agrft-foreground);
}
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-footer :is(a, .agrft-footer__university-logo) {
  color: var(--agrft-footer-ink);
}
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-footer hr {
  border-color: var(--agrft-footer-ink);
}
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-footer__university-logo::before {
  background: var(--agrft-footer-ink);
}
html[data-agrft-contrast="light"] .agrft-footer__logo { filter: brightness(0) invert(1); }
html[data-agrft-contrast="dark"] .agrft-footer__logo { filter: brightness(0); }
html[data-agrft-contrast="light"] .agrft-view-program .agrft-footer__logo { filter: brightness(0); }
html[data-agrft-contrast="dark"] .agrft-view-program .agrft-footer__logo { filter: brightness(0) invert(1); }
html:is([data-agrft-contrast="light"], [data-agrft-contrast="dark"]) .agrft-footer__teeth {
  background: var(--agrft-footer-edge);
  -webkit-mask: var(--agrft-icon-teeth-fill) top center / 390px 195px no-repeat;
  mask: var(--agrft-icon-teeth-fill) top center / 390px 195px no-repeat;
  filter: none;
}
@media (min-width: 768px) {
  html[data-agrft-contrast="light"] .agrft-footer__teeth,
  html[data-agrft-contrast="dark"] .agrft-footer__teeth {
    -webkit-mask-repeat: repeat-x;
    mask-repeat: repeat-x;
  }
}
html[data-agrft-contrast="light"] .agrft-dialog__header::before,
html[data-agrft-contrast="dark"] .agrft-dialog__header::before { display: none; }
html[data-agrft-contrast="light"] .agrft-column, html[data-agrft-contrast="dark"] .agrft-column { box-shadow: none; }
/* Keep the reading surfaces on the selected palette and invert only the programme canvas/gutters. */
html[data-agrft-contrast="light"] .agrft-view-program .agrft-program,
html[data-agrft-contrast="dark"] .agrft-view-program .agrft-program,
html[data-agrft-contrast="light"] .agrft-view-program .agrft-program__list,
html[data-agrft-contrast="dark"] .agrft-view-program .agrft-program__list { color: var(--agrft-foreground); background: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-program__list .agrft-card,
html[data-agrft-contrast="dark"] .agrft-program__list .agrft-card { color: var(--agrft-foreground); background: var(--agrft-background); }
html[data-agrft-contrast="light"] .agrft-program__list :is(.agrft-program__date-title, .agrft-program-group, .agrft-empty-state),
html[data-agrft-contrast="dark"] .agrft-program__list :is(.agrft-program__date-title, .agrft-program-group, .agrft-empty-state) {
  color: var(--agrft-foreground);
  background: var(--agrft-background);
}
html[data-agrft-contrast="light"] .agrft-empty-state,
html[data-agrft-contrast="dark"] .agrft-empty-state {
  color: var(--agrft-foreground);
  background: var(--agrft-background);
}
html[data-agrft-contrast="light"] .agrft-empty-state__motif::before,
html[data-agrft-contrast="dark"] .agrft-empty-state__motif::before { background: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-empty-state__motif::after,
html[data-agrft-contrast="dark"] .agrft-empty-state__motif::after { background: var(--agrft-background); border-color: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-empty-state__action,
html[data-agrft-contrast="dark"] .agrft-empty-state__action { color: var(--agrft-background); background: var(--agrft-foreground); border-color: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-upcoming__slide::after,
html[data-agrft-contrast="dark"] .agrft-upcoming__slide::after {
  background: var(--agrft-foreground);
}
html[data-agrft-contrast="light"] :is(.agrft-featured__inner, .agrft-card--featured, .agrft-featured__description, .agrft-featured__media),
html[data-agrft-contrast="dark"] :is(.agrft-featured__inner, .agrft-card--featured, .agrft-featured__description, .agrft-featured__media) { color: var(--agrft-background); background: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-featured .agrft-home-section-title,
html[data-agrft-contrast="dark"] .agrft-featured .agrft-home-section-title { color: var(--agrft-foreground); background: var(--agrft-background); }
html[data-agrft-contrast="light"] .agrft-card--featured :is(.agrft-card__date, .agrft-card__type, h3, .agrft-card__venue, .agrft-card__venue-link, .agrft-card__venue-address, .agrft-card__time, .agrft-card__badge.is-muted, .agrft-no-reservation),
html[data-agrft-contrast="dark"] .agrft-card--featured :is(.agrft-card__date, .agrft-card__type, h3, .agrft-card__venue, .agrft-card__venue-link, .agrft-card__venue-address, .agrft-card__time, .agrft-card__badge.is-muted, .agrft-no-reservation) { color: var(--agrft-background); }
html[data-agrft-contrast="light"] .agrft-card--featured .agrft-card__date > span[aria-hidden],
html[data-agrft-contrast="dark"] .agrft-card--featured .agrft-card__date > span[aria-hidden],
html[data-agrft-contrast="light"] .agrft-card--featured .agrft-card__venue.has-location::before,
html[data-agrft-contrast="dark"] .agrft-card--featured .agrft-card__venue.has-location::before { background: var(--agrft-background); }
html[data-agrft-contrast="light"] :is(.agrft-featured__description, .agrft-featured__media)::after,
html[data-agrft-contrast="dark"] :is(.agrft-featured__description, .agrft-featured__media)::after { background: var(--agrft-background); }
html[data-agrft-contrast="light"] .agrft-footer__editor-row a,
html[data-agrft-contrast="dark"] .agrft-footer__editor-row a { color: var(--agrft-footer-ink); opacity: .65; }
html[data-agrft-contrast="light"] :is(.agrft-button, .agrft-card__badge:not(.is-muted):not(.agrft-no-reservation), .agrft-reserve-trigger:not(.agrft-no-reservation), .agrft-stepper button, .agrft-intro h1),
html[data-agrft-contrast="dark"] :is(.agrft-button, .agrft-card__badge:not(.is-muted):not(.agrft-no-reservation), .agrft-reserve-trigger:not(.agrft-no-reservation), .agrft-stepper button, .agrft-intro h1) {
  color: var(--agrft-background);
  background-color: var(--agrft-foreground);
}
html[data-agrft-contrast="light"] .agrft-reservation .agrft-button.agrft-button--pink,
html[data-agrft-contrast="dark"] .agrft-reservation .agrft-button.agrft-button--pink {
  color: var(--agrft-foreground);
  background: var(--agrft-background);
}
html[data-agrft-contrast="light"] .agrft-search input,
html[data-agrft-contrast="dark"] .agrft-search input { color: var(--agrft-foreground); background: var(--agrft-background); }
html[data-agrft-contrast="light"] .agrft-search input::placeholder,
html[data-agrft-contrast="dark"] .agrft-search input::placeholder { color: var(--agrft-foreground); }
html[data-agrft-contrast="light"] .agrft-dialog-layer,
html[data-agrft-contrast="dark"] .agrft-dialog-layer { background: #000; }
html[data-agrft-contrast="light"] .agrft-related :is(h2, li + li),
html[data-agrft-contrast="dark"] .agrft-related :is(h2, li + li) { border-color: var(--agrft-foreground); }
html[data-agrft-contrast="light"] button:disabled,
html[data-agrft-contrast="dark"] button:disabled { opacity: 1; }
html[data-agrft-contrast="light"] .agrft-days a,
html[data-agrft-contrast="dark"] .agrft-days a { opacity: 1; }
html[data-agrft-contrast="light"] .agrft-carousel-dot::before,
html[data-agrft-contrast="dark"] .agrft-carousel-dot::before { opacity: 1; box-shadow: inset 0 0 0 1px currentColor; background: transparent; }
html[data-agrft-contrast="light"] .agrft-carousel-dot[aria-current="true"]::before,
html[data-agrft-contrast="dark"] .agrft-carousel-dot[aria-current="true"]::before { background: currentColor; }

/* Recolor functional SVGs through their alpha mask, including generated arrows. */
.agrft-button span { background: currentColor; -webkit-mask: var(--agrft-icon-arrow-external) center / contain no-repeat; mask: var(--agrft-icon-arrow-external) center / contain no-repeat; }
.agrft-card__date > span[aria-hidden], .agrft-program__list .agrft-card::after {
  background: var(--agrft-pink);
  -webkit-mask: var(--agrft-icon-arrow-external) center / contain no-repeat;
  mask: var(--agrft-icon-arrow-external) center / contain no-repeat;
}
.agrft-event-nav__previous::before { background: currentColor; -webkit-mask: var(--agrft-icon-arrow-left) center / contain no-repeat; mask: var(--agrft-icon-arrow-left) center / contain no-repeat; }
.agrft-event-nav__next::after { background: currentColor; -webkit-mask: var(--agrft-icon-arrow-right) center / contain no-repeat; mask: var(--agrft-icon-arrow-right) center / contain no-repeat; }

html[data-agrft-motion="reduce"],
html[data-agrft-motion="reduce"] *,
html[data-agrft-motion="reduce"] *::before,
html[data-agrft-motion="reduce"] *::after {
  scroll-behavior: auto !important;
  animation: none !important;
  transition: none !important;
}

@media (forced-colors: active) {
  :root { --agrft-violet: CanvasText; --agrft-pink: LinkText; --agrft-white: Canvas; --agrft-grey: Canvas; }
  :focus-visible { outline: 3px solid Highlight !important; outline-offset: 3px; box-shadow: none !important; }
  button, input, fieldset, .agrft-card { border: 2px solid ButtonText !important; }
  .agrft-accessibility-settings input::before { background: ButtonText; forced-color-adjust: none; }
  .agrft-days a.is-active::after { background: Highlight; forced-color-adjust: none; }
  .agrft-intro__directions { background: Canvas; forced-color-adjust: none; }
  .agrft-card__venue.has-location::before,
  .agrft-event__venue.has-location::before,
  .agrft-schedule-slot__venue.has-location::before,
  .agrft-dialog__venue.has-location::before,
  .agrft-footer__university-logo::before { background: CanvasText; forced-color-adjust: none; }
  .agrft-card--featured .agrft-card__venue.has-location::before,
  .agrft-card--featured .agrft-card__date > span[aria-hidden] { background: Canvas; forced-color-adjust: none; }
  :is(.agrft-featured__description, .agrft-featured__media)::after { background: Canvas; forced-color-adjust: none; }
  .agrft-featured__inner,
  .agrft-card.agrft-card--featured,
  .agrft-featured__description,
  .agrft-featured__media { color: Canvas; background: CanvasText; border-color: Canvas; forced-color-adjust: none; }
  .agrft-featured .agrft-home-section-title { color: CanvasText; background: Canvas; border-color: CanvasText; forced-color-adjust: none; }
  .agrft-footer__editor-row a { color: LinkText; opacity: 1; }
  .agrft-header__brand::after { content: "AGRFT"; color: LinkText; background: Canvas; }
  .agrft-search button::before, .agrft-dialog__close::before { background: ButtonText; forced-color-adjust: none; }
  .agrft-search button::after { background: Canvas; forced-color-adjust: none; }
  img, svg { filter: none !important; }
  .agrft-empty-state__motif::before { background: CanvasText; forced-color-adjust: none; }
  .agrft-empty-state__motif::after { background: Canvas; border-color: CanvasText; forced-color-adjust: none; }
  .agrft-empty-state__action { color: LinkText; background: Canvas; border-color: LinkText; }
  .agrft-upcoming__slide::after { background: CanvasText; forced-color-adjust: none; }
}

@media print {
  .agrft-search-dock { display: none; }
  .agrft-view-program { padding-bottom: 0; }
  .agrft-js .agrft-occurrence-dock { position: static; transform: none; max-height: none; }
  .agrft-carousel-controls, .agrft-accessibility-settings { display: none !important; }
  .agrft-upcoming__track, .agrft-gallery, .agrft-event__occurrences { display: block; overflow: visible; }
  .agrft-upcoming__track::after { display: none; }
  .agrft-view-event { padding-bottom: 0; }
  .agrft-program__list--empty,
  .agrft-empty-state { min-height: 0; padding-block: 24px; }
  .agrft-empty-state__motif { display: none; }
}

/* At landscape/400% zoom, leave the small viewport available for the content. */
@media (max-height: 480px) {
  .agrft-header, .agrft-days, .agrft-event-nav { position: relative; top: auto; }
  .agrft-header--home { display: none; }
  .agrft-hero__nav.is-docked { position: relative; inset: auto; height: auto; min-height: 54px; transform: none; }
  .agrft-hero__nav.is-docked a { position: static; }
  .agrft-js .agrft-occurrence-dock { position: static; transform: none; max-height: none; }
  .agrft-view-event { padding-bottom: 0; }
}
