@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap");
.ab {
  --ab-white: #ffffff;
  --ab-black: #000000;
  --ab-bg: #ffffff;
  --ab-bg-secondary: #f8f8f8;
  --ab-text-primary: #121212;
  --ab-text-secondary: #696969;
  --ab-text-muted: #bfbfbf;
  --ab-border: #bfbfbf;
  --ab-border-strong: #121212;
  --ab-accent: #E8490F;
  --ab-basel: #0044FF;
  --ab-hongkong: #E6007E;
  --ab-miami: #00B140;
  --ab-paris: #7B2D8E;
  --ab-focus: #006FD6;
  --ab-error: #E6007E;
  --ab-warning: #E8490F;
  --ab-success: #00B140;
  --ab-info: #0044FF;
  --ab-font-family: 'Inter', -apple-system, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --ab-font-size-xs: 0.6875rem;
  --ab-font-size-sm: 0.75rem;
  --ab-font-size-body: 0.875rem;
  --ab-font-size-md: 1rem;
  --ab-font-size-lg: 1.25rem;
  --ab-font-size-xl: 1.5rem;
  --ab-font-size-2xl: 2rem;
  --ab-font-size-3xl: 2.5rem;
  --ab-font-size-4xl: 3.5rem;
  --ab-font-weight-regular: 400;
  --ab-font-weight-medium: 500;
  --ab-font-weight-bold: 700;
  --ab-line-height-tight: 1.1;
  --ab-line-height-heading: 1.2;
  --ab-line-height-body: 1.5;
  --ab-letter-spacing-tight: -0.01em;
  --ab-letter-spacing-normal: 0;
  --ab-letter-spacing-wide: 0.05em;
  --ab-letter-spacing-wider: 0.1em;
  --ab-space-xs: 4px;
  --ab-space-sm: 8px;
  --ab-space-md: 16px;
  --ab-space-lg: 24px;
  --ab-space-xl: 32px;
  --ab-space-2xl: 48px;
  --ab-space-3xl: 64px;
  --ab-space-section: 80px;
  --ab-radius: 0px;
  --ab-shadow: none;
  --ab-transition: 0.3s ease-in-out;
  --ab-loading-bar-height: 2px;
  --ab-divider: 1px solid var(--ab-border);
  --ab-divider-strong: 1px solid var(--ab-border-strong);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  line-height: var(--ab-line-height-body);
  color: var(--ab-text-primary);
  background-color: var(--ab-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.ab *, .ab *::before, .ab *::after {
  box-sizing: border-box;
}
.ab.dark, .ab[data-theme=dark] {
  --ab-bg: #121212;
  --ab-bg-secondary: #1a1a1a;
  --ab-text-primary: #ffffff;
  --ab-text-secondary: #a0a0a0;
  --ab-text-muted: #666666;
  --ab-border: #333333;
  --ab-border-strong: #ffffff;
  --ab-divider: 1px solid #333333;
  --ab-divider-strong: 1px solid #ffffff;
}

.ab-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border: 2px solid var(--ab-text-primary);
  border-radius: 0;
  background-color: var(--ab-text-primary);
  color: var(--ab-white);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-weight: var(--ab-font-weight-medium);
  line-height: 1;
  letter-spacing: var(--ab-letter-spacing-wide);
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--ab-transition), color var(--ab-transition), border-color var(--ab-transition), transform var(--ab-transition);
  white-space: nowrap;
  -webkit-user-select: none;
  user-select: none;
}
.ab-btn:hover {
  background-color: var(--ab-accent);
  border-color: var(--ab-accent);
  color: var(--ab-white);
}
.ab-btn:focus-visible {
  outline: 2px solid var(--ab-focus);
  outline-offset: 2px;
}
.ab-btn:active {
  transform: scale(0.98);
}
.ab-btn:disabled, .ab-btn[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}
.ab-btn--outlined {
  background-color: transparent;
  color: var(--ab-text-primary);
}
.ab-btn--outlined:hover {
  background-color: var(--ab-text-primary);
  color: var(--ab-white);
}
.ab-btn--text {
  background-color: transparent;
  border-color: transparent;
  color: var(--ab-text-primary);
  padding-left: 0;
  padding-right: 0;
}
.ab-btn--text::after {
  content: "→";
  display: inline-block;
  transition: transform var(--ab-transition);
}
.ab-btn--text:hover {
  background-color: transparent;
  border-color: transparent;
  color: var(--ab-accent);
}
.ab-btn--text:hover::after {
  transform: translateX(4px);
}
.ab-btn--orange {
  background-color: var(--ab-accent);
  border-color: var(--ab-accent);
  color: var(--ab-white);
}
.ab-btn--orange:hover {
  background-color: #c93d0d;
  border-color: #c93d0d;
}
.ab-btn--ghost {
  background-color: transparent;
  border-color: var(--ab-white);
  color: var(--ab-white);
}
.ab-btn--ghost:hover {
  background-color: var(--ab-white);
  color: var(--ab-text-primary);
}
.ab-btn--basel {
  background-color: var(--ab-basel);
  border-color: var(--ab-basel);
  color: var(--ab-white);
}
.ab-btn--basel:hover {
  background-color: #0036cc;
  border-color: #0036cc;
}
.ab-btn--hongkong {
  background-color: var(--ab-hongkong);
  border-color: var(--ab-hongkong);
  color: var(--ab-white);
}
.ab-btn--hongkong:hover {
  background-color: #c20069;
  border-color: #c20069;
}
.ab-btn--miami {
  background-color: var(--ab-miami);
  border-color: var(--ab-miami);
  color: var(--ab-white);
}
.ab-btn--miami:hover {
  background-color: #009635;
  border-color: #009635;
}
.ab-btn--paris {
  background-color: var(--ab-paris);
  border-color: var(--ab-paris);
  color: var(--ab-white);
}
.ab-btn--paris:hover {
  background-color: #652475;
  border-color: #652475;
}
.ab-btn--sm {
  padding: 8px 16px;
  font-size: var(--ab-font-size-sm);
}
.ab-btn--lg {
  padding: 18px 36px;
  font-size: var(--ab-font-size-md);
}

.ab-card {
  display: flex;
  flex-direction: column;
  border-radius: 0;
  background-color: var(--ab-bg);
  overflow: hidden;
  transition: opacity var(--ab-transition);
}
.ab-card:hover .ab-card__media img {
  transform: scale(1.02);
}
.ab-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  background-color: var(--ab-bg-secondary);
}
.ab-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--ab-transition);
}
.ab-card__label {
  display: inline-block;
  margin-top: var(--ab-space-md);
  margin-bottom: var(--ab-space-xs);
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-bold);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  color: var(--ab-accent);
}
.ab-card__label--basel {
  color: var(--ab-basel);
}
.ab-card__label--hongkong {
  color: var(--ab-hongkong);
}
.ab-card__label--miami {
  color: var(--ab-miami);
}
.ab-card__label--paris {
  color: var(--ab-paris);
}
.ab-card__title {
  margin: 0 0 var(--ab-space-sm);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-lg);
  font-weight: var(--ab-font-weight-bold);
  line-height: var(--ab-line-height-heading);
  letter-spacing: var(--ab-letter-spacing-tight);
  color: var(--ab-text-primary);
}
.ab-card__title a {
  color: inherit;
  text-decoration: none;
}
.ab-card__title a:hover {
  color: var(--ab-accent);
}
.ab-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ab-space-sm);
  margin-bottom: var(--ab-space-sm);
  font-size: var(--ab-font-size-sm);
  color: var(--ab-text-secondary);
}
.ab-card__body {
  flex: 1;
  font-size: var(--ab-font-size-body);
  line-height: var(--ab-line-height-body);
  color: var(--ab-text-secondary);
  margin-bottom: var(--ab-space-md);
}
.ab-card__actions {
  display: flex;
  gap: var(--ab-space-md);
  margin-top: auto;
  padding-top: var(--ab-space-md);
  border-top: var(--ab-divider);
}
.ab-card--square .ab-card__media {
  aspect-ratio: 1/1;
}
.ab-card--horizontal {
  flex-direction: row;
}
.ab-card--horizontal .ab-card__media {
  flex: 0 0 40%;
  aspect-ratio: auto;
  min-height: 200px;
}
.ab-card--horizontal .ab-card__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: var(--ab-space-md) var(--ab-space-lg);
}
@media (max-width: 640px) {
  .ab-card--horizontal {
    flex-direction: column;
  }
  .ab-card--horizontal .ab-card__media {
    flex: none;
    aspect-ratio: 16/9;
    min-height: auto;
  }
  .ab-card--horizontal .ab-card__content {
    padding: var(--ab-space-md) 0;
  }
}
.ab-card--featured {
  position: relative;
}
.ab-card--featured .ab-card__media {
  aspect-ratio: 16/9;
}
.ab-card--featured .ab-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, rgba(0, 0, 0, 0.3) 40%, transparent 70%);
  transition: opacity var(--ab-transition);
}
.ab-card--featured .ab-card__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--ab-space-lg);
  z-index: 1;
  color: var(--ab-white);
}
.ab-card--featured .ab-card__label {
  margin-top: 0;
  color: var(--ab-white);
  opacity: 0.85;
}
.ab-card--featured .ab-card__title {
  color: var(--ab-white);
  font-size: var(--ab-font-size-xl);
}
.ab-card--featured .ab-card__title a:hover {
  color: var(--ab-accent);
}
.ab-card--featured .ab-card__meta {
  color: rgba(255, 255, 255, 0.75);
}
@media (min-width: 768px) {
  .ab-card--featured .ab-card__overlay {
    padding: var(--ab-space-xl);
  }
  .ab-card--featured .ab-card__title {
    font-size: var(--ab-font-size-2xl);
  }
}

.ab-field {
  display: flex;
  flex-direction: column;
  gap: var(--ab-space-sm);
}
.ab-field__label {
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-medium);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  color: var(--ab-text-secondary);
}
.ab-field__helper {
  font-size: var(--ab-font-size-sm);
  color: var(--ab-text-muted);
}
.ab-field__error {
  font-size: var(--ab-font-size-sm);
  color: var(--ab-error);
}
.ab-field--error .ab-input,
.ab-field--error .ab-select,
.ab-field--error .ab-textarea {
  border-bottom-color: var(--ab-error);
}

.ab-input {
  width: 100%;
  padding: 12px 0;
  border: none;
  border-bottom: 1px solid var(--ab-border);
  border-radius: 0;
  background-color: transparent;
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-weight: var(--ab-font-weight-regular);
  line-height: var(--ab-line-height-body);
  transition: border-color var(--ab-transition);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.ab-input::placeholder {
  color: var(--ab-text-muted);
}
.ab-input:focus {
  border-bottom: 2px solid var(--ab-text-primary);
  padding-bottom: 11px;
}
.ab-input:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ab-select {
  width: 100%;
  padding: 12px 28px 12px 0;
  border: none;
  border-bottom: 1px solid var(--ab-border);
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23696969' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-weight: var(--ab-font-weight-regular);
  line-height: var(--ab-line-height-body);
  transition: border-color var(--ab-transition);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
.ab-select:focus {
  border-bottom: 2px solid var(--ab-text-primary);
  padding-bottom: 11px;
}
.ab-select:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ab-textarea {
  width: 100%;
  padding: 12px 0;
  border: none;
  border-bottom: 1px solid var(--ab-border);
  border-radius: 0;
  background-color: transparent;
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-weight: var(--ab-font-weight-regular);
  line-height: var(--ab-line-height-body);
  transition: border-color var(--ab-transition);
  outline: none;
  resize: vertical;
  min-height: 80px;
  -webkit-appearance: none;
  appearance: none;
}
.ab-textarea::placeholder {
  color: var(--ab-text-muted);
}
.ab-textarea:focus {
  border-bottom: 2px solid var(--ab-text-primary);
  padding-bottom: 11px;
}
.ab-textarea:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.ab-search {
  position: relative;
  width: 100%;
}
.ab-search__icon {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  color: var(--ab-text-muted);
  pointer-events: none;
}
.ab-search__icon::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}
.ab-search__input {
  width: 100%;
  height: 48px;
  padding: 0 0 0 32px;
  border: none;
  border-bottom: 1px solid var(--ab-border);
  border-radius: 0;
  background-color: transparent;
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-md);
  font-weight: var(--ab-font-weight-regular);
  line-height: 48px;
  transition: border-color var(--ab-transition);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.ab-search__input::placeholder {
  color: var(--ab-text-muted);
}
.ab-search__input:focus {
  border-bottom: 2px solid var(--ab-text-primary);
}
.ab-search__clear {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--ab-text-muted);
  font-size: 18px;
  cursor: pointer;
  transition: color var(--ab-transition);
}
.ab-search__clear:hover {
  color: var(--ab-text-primary);
}

.ab-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 0;
  background-color: var(--ab-bg-secondary);
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-bold);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  line-height: 1.4;
  white-space: nowrap;
}
.ab-badge--orange {
  background-color: var(--ab-accent);
  color: var(--ab-white);
}
.ab-badge--basel {
  background-color: var(--ab-basel);
  color: var(--ab-white);
}
.ab-badge--hongkong {
  background-color: var(--ab-hongkong);
  color: var(--ab-white);
}
.ab-badge--miami {
  background-color: var(--ab-miami);
  color: var(--ab-white);
}
.ab-badge--paris {
  background-color: var(--ab-paris);
  color: var(--ab-white);
}
.ab-badge--dark {
  background-color: var(--ab-black);
  color: var(--ab-white);
}
.ab-badge--outlined {
  background-color: transparent;
  border: 1px solid var(--ab-border);
  color: var(--ab-text-secondary);
}

.ab-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 0;
  background-color: var(--ab-text-primary);
  color: var(--ab-white);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-weight: var(--ab-font-weight-medium);
  letter-spacing: var(--ab-letter-spacing-wide);
  text-transform: uppercase;
  overflow: hidden;
  flex-shrink: 0;
}
.ab-avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ab-avatar--sm {
  width: 28px;
  height: 28px;
  font-size: var(--ab-font-size-xs);
}
.ab-avatar--lg {
  width: 56px;
  height: 56px;
  font-size: var(--ab-font-size-lg);
}
.ab-avatar--xl {
  width: 80px;
  height: 80px;
  font-size: var(--ab-font-size-xl);
}
.ab-avatar-group {
  display: flex;
}
.ab-avatar-group .ab-avatar + .ab-avatar {
  margin-left: -8px;
  border: 2px solid var(--ab-bg);
}

.ab-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--ab-space-md);
  padding: var(--ab-space-md) var(--ab-space-lg);
  border-radius: 0;
  border-top: 3px solid var(--ab-text-primary);
  background-color: var(--ab-bg-secondary);
  color: var(--ab-text-primary);
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  line-height: var(--ab-line-height-body);
}
.ab-alert__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
}
.ab-alert__content {
  flex: 1;
  min-width: 0;
}
.ab-alert__title {
  font-weight: var(--ab-font-weight-bold);
  font-size: var(--ab-font-size-body);
  letter-spacing: var(--ab-letter-spacing-wide);
  text-transform: uppercase;
  margin-bottom: var(--ab-space-xs);
}
.ab-alert__message {
  color: var(--ab-text-secondary);
  font-size: var(--ab-font-size-body);
}
.ab-alert__close {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--ab-text-muted);
  font-size: 16px;
  cursor: pointer;
  transition: color var(--ab-transition);
}
.ab-alert__close:hover {
  color: var(--ab-text-primary);
}
.ab-alert--info {
  border-top-color: var(--ab-info);
}
.ab-alert--info .ab-alert__icon {
  color: var(--ab-info);
}
.ab-alert--warning {
  border-top-color: var(--ab-warning);
}
.ab-alert--warning .ab-alert__icon {
  color: var(--ab-warning);
}
.ab-alert--error {
  border-top-color: var(--ab-error);
}
.ab-alert--error .ab-alert__icon {
  color: var(--ab-error);
}
.ab-alert--success {
  border-top-color: var(--ab-success);
}
.ab-alert--success .ab-alert__icon {
  color: var(--ab-success);
}

.ab-event-list {
  display: flex;
  flex-direction: column;
}
.ab-event-list .ab-event + .ab-event {
  border-top: var(--ab-divider);
}

.ab-event {
  display: flex;
  gap: var(--ab-space-lg);
  padding: var(--ab-space-lg) 0;
}
.ab-event__date {
  flex-shrink: 0;
  width: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.ab-event__day {
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-3xl);
  font-weight: var(--ab-font-weight-bold);
  line-height: 1;
  letter-spacing: var(--ab-letter-spacing-tight);
  color: var(--ab-text-primary);
}
.ab-event__month {
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-medium);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  color: var(--ab-text-secondary);
  margin-top: var(--ab-space-xs);
}
.ab-event__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ab-space-sm);
}
.ab-event__label {
  display: inline-block;
  padding: 2px 8px;
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-bold);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  color: var(--ab-white);
  background-color: var(--ab-accent);
  border-radius: 0;
  align-self: flex-start;
}
.ab-event__label--basel {
  background-color: var(--ab-basel);
}
.ab-event__label--hongkong {
  background-color: var(--ab-hongkong);
}
.ab-event__label--miami {
  background-color: var(--ab-miami);
}
.ab-event__label--paris {
  background-color: var(--ab-paris);
}
.ab-event__title {
  margin: 0;
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-lg);
  font-weight: var(--ab-font-weight-bold);
  line-height: var(--ab-line-height-heading);
  letter-spacing: var(--ab-letter-spacing-tight);
  color: var(--ab-text-primary);
}
.ab-event__title a {
  color: inherit;
  text-decoration: none;
}
.ab-event__title a:hover {
  color: var(--ab-accent);
}
.ab-event__venue {
  font-size: var(--ab-font-size-body);
  color: var(--ab-text-secondary);
  display: flex;
  align-items: center;
  gap: var(--ab-space-xs);
}
.ab-event__venue::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  background-color: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}
.ab-event__time {
  font-size: var(--ab-font-size-sm);
  color: var(--ab-text-muted);
  display: flex;
  align-items: center;
  gap: var(--ab-space-xs);
}
.ab-event__description {
  font-size: var(--ab-font-size-body);
  line-height: var(--ab-line-height-body);
  color: var(--ab-text-secondary);
  margin-top: var(--ab-space-xs);
}
.ab-event__actions {
  display: flex;
  gap: var(--ab-space-md);
  margin-top: var(--ab-space-sm);
}
@media (max-width: 640px) {
  .ab-event {
    flex-direction: column;
    gap: var(--ab-space-md);
  }
  .ab-event__date {
    width: auto;
    flex-direction: row;
    gap: var(--ab-space-sm);
    align-items: baseline;
  }
  .ab-event__day {
    font-size: var(--ab-font-size-xl);
  }
  .ab-event__month {
    margin-top: 0;
  }
}

.ab-gallery {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  overflow: hidden;
  cursor: pointer;
}
.ab-gallery__image {
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  background-color: var(--ab-bg-secondary);
}
.ab-gallery__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--ab-transition);
}
.ab-gallery__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--ab-space-lg);
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--ab-transition), transform var(--ab-transition);
  color: var(--ab-white);
}
.ab-gallery__name {
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-md);
  font-weight: var(--ab-font-weight-bold);
  line-height: var(--ab-line-height-heading);
  letter-spacing: var(--ab-letter-spacing-tight);
  color: var(--ab-white);
  margin-bottom: var(--ab-space-xs);
}
.ab-gallery__artist {
  font-family: var(--ab-font-family);
  font-size: var(--ab-font-size-body);
  font-style: italic;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: var(--ab-space-sm);
}
.ab-gallery__sector {
  display: inline-block;
  padding: 2px 8px;
  font-size: var(--ab-font-size-xs);
  font-weight: var(--ab-font-weight-bold);
  letter-spacing: var(--ab-letter-spacing-wider);
  text-transform: uppercase;
  color: var(--ab-white);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 0;
  align-self: flex-start;
}
.ab-gallery__info {
  padding: var(--ab-space-md) 0;
}
.ab-gallery__info .ab-gallery__name {
  color: var(--ab-text-primary);
  font-size: var(--ab-font-size-body);
}
.ab-gallery__info .ab-gallery__artist {
  color: var(--ab-text-secondary);
  font-size: var(--ab-font-size-sm);
}
.ab-gallery:hover .ab-gallery__image img {
  transform: scale(1.04);
}
.ab-gallery:hover .ab-gallery__overlay {
  opacity: 1;
  transform: translateY(0);
}
.ab-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--ab-space-md);
}
@media (min-width: 768px) {
  .ab-gallery-grid {
    gap: var(--ab-space-lg);
  }
}

.ab-icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  background-color: currentColor;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  vertical-align: middle;
  flex-shrink: 0;
}
.ab-icon--sm {
  width: 16px;
  height: 16px;
}
.ab-icon--lg {
  width: 32px;
  height: 32px;
}
.ab-icon--arrow-right {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E");
  transition: transform var(--ab-transition);
}
.ab-icon--arrow-right:hover, a:hover > .ab-icon--arrow-right, button:hover > .ab-icon--arrow-right {
  transform: translateX(4px);
}
.ab-icon--arrow-left {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='19' y1='12' x2='5' y2='12'/%3E%3Cpolyline points='12 19 5 12 12 5'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='19' y1='12' x2='5' y2='12'/%3E%3Cpolyline points='12 19 5 12 12 5'/%3E%3C/svg%3E");
  transition: transform var(--ab-transition);
}
.ab-icon--arrow-left:hover, a:hover > .ab-icon--arrow-left, button:hover > .ab-icon--arrow-left {
  transform: translateX(-4px);
}
.ab-icon--chevron-down {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
.ab-icon--search {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
}
.ab-icon--calendar {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='0'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='0'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}
.ab-icon--location {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
.ab-icon--close {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
.ab-icon--menu {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cline x1='3' y1='12' x2='21' y2='12'/%3E%3Cline x1='3' y1='18' x2='21' y2='18'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cline x1='3' y1='12' x2='21' y2='12'/%3E%3Cline x1='3' y1='18' x2='21' y2='18'/%3E%3C/svg%3E");
}
.ab-icon--share {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'/%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'/%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'/%3E%3C/svg%3E");
}
.ab-icon--bookmark {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
}
