/* Arcade Night: optional "8-bit" theme. All visual overrides are strictly opt-in. */
@font-face {
  font-family: "Arcade Pixel";
  src: url("/assets/arcade-pixel.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

body.theme-dark.theme-arcade {
  color-scheme: dark;
  accent-color: #7FE3EE;
  --arcade-bg: #11182F;
  --arcade-surface: #1C2944;
  --arcade-field: #13233A;
  --arcade-text: #F3F7FF;
  --arcade-muted: #BDCCE5;
  --arcade-accent: #7FE3EE;
  --arcade-on-accent: #13233A;
  --arcade-border: #708AB1;
  --arcade-error: #FF9B92;
  --arcade-warning: #FFD166;
  --bg: var(--arcade-bg);
  --paper: var(--arcade-surface);
  --card: var(--arcade-surface);
  --field: var(--arcade-field);
  --ink: var(--arcade-text);
  --muted: var(--arcade-muted);
  --line: var(--arcade-border);
  --accent: var(--arcade-accent);
  --accent-dark: var(--arcade-accent);
  --green: var(--arcade-field);
  --lime: var(--arcade-accent);
  --warn: var(--arcade-error);
  --radius: 0;
  --shadow: rgba(3, 7, 18, .72);
  background-color: var(--arcade-bg);
  background-image:
    linear-gradient(90deg, rgba(196, 148, 246, .10) 16px, transparent 16px),
    linear-gradient(180deg, rgba(196, 148, 246, .10) 16px, transparent 16px),
    linear-gradient(90deg, transparent calc(100% - 48px), rgba(244, 166, 119, .09) calc(100% - 48px)),
    linear-gradient(180deg, transparent 48px, rgba(244, 166, 119, .09) 48px, rgba(244, 166, 119, .09) 64px, transparent 64px);
  background-size: 64px 64px, 64px 64px, 96px 96px, 96px 96px;
  color: var(--arcade-text);
}

/* Keep hidden application state hidden; the existing yellow wordmark is the sole exception. */
body.theme-dark.theme-arcade [hidden]:not(.m-brand-logo),
body.theme-dark.theme-arcade .hidden {
  display: none !important;
}

body.theme-dark.theme-arcade *,
body.theme-dark.theme-arcade *::before,
body.theme-dark.theme-arcade *::after {
  animation: none !important;
  transition: none !important;
}

body.theme-dark.theme-arcade header,
body.theme-dark.theme-arcade .site-header {
  background: rgba(17, 24, 47, .96);
  border-color: var(--arcade-border);
  border-bottom-width: 4px;
  backdrop-filter: none;
}

body.theme-dark.theme-arcade .brand-logo-light,
body.theme-dark.theme-arcade .brand-logo-dark,
body.theme-dark.theme-arcade .site-brand-logo-light,
body.theme-dark.theme-arcade .site-brand-logo-dark,
body.theme-dark.theme-arcade .footer-logo-light,
body.theme-dark.theme-arcade .footer-logo-dark {
  display: none !important;
}

body.theme-dark.theme-arcade .m-brand-logo[hidden] {
  display: block !important;
  width: auto;
  max-width: 100%;
  height: 56px;
  object-fit: contain;
  object-position: left center;
  flex: 0 1 auto;
}

body.theme-dark.theme-arcade .footer-logo.m-brand-logo { height: 54px; }

/* The bitmap face is reserved for short labels; prose, long headings, forms and buttons stay regular. */
body.theme-dark.theme-arcade .kicker,
body.theme-dark.theme-arcade .eyebrow,
body.theme-dark.theme-arcade .age-card-tag,
body.theme-dark.theme-arcade .filter-heading {
  font-family: "Arcade Pixel", ui-monospace, monospace;
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.45;
}

body.theme-dark.theme-arcade .kicker::before,
body.theme-dark.theme-arcade .eyebrow::before,
body.theme-dark.theme-arcade .filter-heading::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin: 0 17px 1px 1px;
  background: #C494F6;
  box-shadow: 8px 0 #C494F6, 8px 8px #F4A677;
  pointer-events: none;
}

body.theme-dark.theme-arcade h1,
body.theme-dark.theme-arcade h2,
body.theme-dark.theme-arcade h3,
body.theme-dark.theme-arcade h4,
body.theme-dark.theme-arcade p,
body.theme-dark.theme-arcade label,
body.theme-dark.theme-arcade input,
body.theme-dark.theme-arcade textarea,
body.theme-dark.theme-arcade select,
body.theme-dark.theme-arcade button,
body.theme-dark.theme-arcade .btn,
body.theme-dark.theme-arcade .site-btn,
body.theme-dark.theme-arcade .button-link,
body.theme-dark.theme-arcade .date,
body.theme-dark.theme-arcade .time,
body.theme-dark.theme-arcade .money,
body.theme-dark.theme-arcade .price,
body.theme-dark.theme-arcade .total {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Only the two short, static booking headings use the display face. */
body.theme-dark.theme-arcade .calendar-block > h2,
body.theme-dark.theme-arcade .cart > h2 {
  font-family: "Arcade Pixel", ui-monospace, monospace;
  font-size: clamp(14px, 4vw, 18px);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
}

body.theme-dark.theme-arcade .theme-option[data-theme-choice="arcade"] {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: normal;
  text-transform: none;
}

body.theme-dark.theme-arcade .schedule,
body.theme-dark.theme-arcade .cart,
body.theme-dark.theme-arcade .panel,
body.theme-dark.theme-arcade .calendar-block,
body.theme-dark.theme-arcade .card,
body.theme-dark.theme-arcade .item,
body.theme-dark.theme-arcade .change,
body.theme-dark.theme-arcade .change-panel,
body.theme-dark.theme-arcade .summary-box,
body.theme-dark.theme-arcade .payment-card,
body.theme-dark.theme-arcade .notification-card,
body.theme-dark.theme-arcade .current-slot-summary,
body.theme-dark.theme-arcade .slot-card,
body.theme-dark.theme-arcade .family-switcher,
body.theme-dark.theme-arcade .family-profile,
body.theme-dark.theme-arcade .recipient-card,
body.theme-dark.theme-arcade .channel-card,
body.theme-dark.theme-arcade .trainer-details,
body.theme-dark.theme-arcade .more-menu-popover,
body.theme-dark.theme-arcade dialog,
body.theme-dark.theme-arcade details,
body.theme-dark.theme-arcade .program-item,
body.theme-dark.theme-arcade .compact-band,
body.theme-dark.theme-arcade .statement-panel,
body.theme-dark.theme-arcade .trainer-panel,
body.theme-dark.theme-arcade .place-panel,
body.theme-dark.theme-arcade .booking-embed-panel,
body.theme-dark.theme-arcade .schedule-panel,
body.theme-dark.theme-arcade .age-card,
body.theme-dark.theme-arcade .metrics-panel,
body.theme-dark.theme-arcade .light-card,
body.theme-dark.theme-arcade .cta-box,
body.theme-dark.theme-arcade .panel-recovery,
body.theme-dark.theme-arcade .landing-block,
body.theme-dark.theme-arcade .block-panel,
body.theme-dark.theme-arcade .lfc-info-card,
body.theme-dark.theme-arcade .camp-info-card {
  background: var(--arcade-surface);
  border: 2px solid var(--arcade-border);
  border-radius: 0;
  color: var(--arcade-text);
  box-shadow: 8px 8px 0 rgba(3, 7, 18, .76);
}

body.theme-dark.theme-arcade .hero,
body.theme-dark.theme-arcade .confirm,
body.theme-dark.theme-arcade .foundation-panel,
body.theme-dark.theme-arcade .dark-panel,
body.theme-dark.theme-arcade .two-col-card,
body.theme-dark.theme-arcade .why-panel,
body.theme-dark.theme-arcade .note {
  background: var(--arcade-surface);
  border: 2px solid var(--arcade-border);
  border-radius: 0;
  color: var(--arcade-text);
  box-shadow: 8px 8px 0 rgba(3, 7, 18, .76);
}

body.theme-dark.theme-arcade .age-card:nth-child(3n + 1),
body.theme-dark.theme-arcade .program-item:nth-child(3n + 1) { border-top-color: #C494F6; }
body.theme-dark.theme-arcade .age-card:nth-child(3n + 2),
body.theme-dark.theme-arcade .program-item:nth-child(3n + 2) { border-top-color: #F4A677; }

body.theme-dark.theme-arcade button,
body.theme-dark.theme-arcade .group-tab,
body.theme-dark.theme-arcade .training-slot,
body.theme-dark.theme-arcade .calendar-day,
body.theme-dark.theme-arcade input,
body.theme-dark.theme-arcade textarea,
body.theme-dark.theme-arcade select,
body.theme-dark.theme-arcade .copy-row,
body.theme-dark.theme-arcade .delivery-row,
body.theme-dark.theme-arcade .registration-step,
body.theme-dark.theme-arcade .draft-note,
body.theme-dark.theme-arcade .calendar-button,
body.theme-dark.theme-arcade .language-switch a,
body.theme-dark.theme-arcade .theme-option,
body.theme-dark.theme-arcade .social-links a,
body.theme-dark.theme-arcade button.ghost,
body.theme-dark.theme-arcade .ghost,
body.theme-dark.theme-arcade .button-link,
body.theme-dark.theme-arcade .more-menu > summary,
body.theme-dark.theme-arcade .pill,
body.theme-dark.theme-arcade .contact-square,
body.theme-dark.theme-arcade .attendance-chip {
  background: var(--arcade-field);
  color: var(--arcade-text);
  border: 2px solid var(--arcade-border);
  border-radius: 0;
  box-shadow: 4px 4px 0 rgba(3, 7, 18, .72);
}

body.theme-dark.theme-arcade input[type="checkbox"],
body.theme-dark.theme-arcade input[type="radio"] {
  box-shadow: none;
}

body.theme-dark.theme-arcade .cal-sub,
body.theme-dark.theme-arcade .empty,
body.theme-dark.theme-arcade .hint,
body.theme-dark.theme-arcade .meta,
body.theme-dark.theme-arcade .small,
body.theme-dark.theme-arcade p,
body.theme-dark.theme-arcade .lead,
body.theme-dark.theme-arcade .details,
body.theme-dark.theme-arcade .label,
body.theme-dark.theme-arcade .page-footer,
body.theme-dark.theme-arcade .calendar-weekday,
body.theme-dark.theme-arcade .sports-card-note,
body.theme-dark.theme-arcade .standard-total-line,
body.theme-dark.theme-arcade .card-info,
body.theme-dark.theme-arcade .qty-control,
body.theme-dark.theme-arcade .site-navlinks,
body.theme-dark.theme-arcade .footer-official-info,
body.theme-dark.theme-arcade .archive-help {
  color: var(--arcade-muted);
}

body.theme-dark.theme-arcade .date,
body.theme-dark.theme-arcade .weekday,
body.theme-dark.theme-arcade .time,
body.theme-dark.theme-arcade .page-footer strong,
body.theme-dark.theme-arcade .footer-info-item strong,
body.theme-dark.theme-arcade .camp-title-button,
body.theme-dark.theme-arcade .registration-step strong,
body.theme-dark.theme-arcade .value,
body.theme-dark.theme-arcade .attendee-name {
  color: var(--arcade-text);
}

body.theme-dark.theme-arcade .site-btn,
body.theme-dark.theme-arcade .account-panel-btn,
body.theme-dark.theme-arcade .btn,
body.theme-dark.theme-arcade .btn.accent,
body.theme-dark.theme-arcade .checkout,
body.theme-dark.theme-arcade button.active,
body.theme-dark.theme-arcade .calendar-day.selected,
body.theme-dark.theme-arcade .calendar-day.has.selected,
body.theme-dark.theme-arcade .theme-option.active,
body.theme-dark.theme-arcade .language-switch a.active,
body.theme-dark.theme-arcade .tab.active,
body.theme-dark.theme-arcade .slot-chip.active,
body.theme-dark.theme-arcade .family-profile.active,
body.theme-dark.theme-arcade .attendance .selected,
body.theme-dark.theme-arcade .tabs button.active {
  background: var(--arcade-accent);
  color: var(--arcade-on-accent);
  border: 2px solid var(--arcade-accent);
  border-radius: 0;
  box-shadow: 4px 4px 0 #3E6477;
}

body.theme-dark.theme-arcade .site-btn:hover,
body.theme-dark.theme-arcade .account-panel-btn:hover,
body.theme-dark.theme-arcade .btn:hover,
body.theme-dark.theme-arcade .checkout:hover,
body.theme-dark.theme-arcade button.active:hover {
  background: #A9F4FA;
  color: var(--arcade-on-accent);
  transform: none;
}

body.theme-dark.theme-arcade .calendar-day.has,
body.theme-dark.theme-arcade .sports-card-box,
body.theme-dark.theme-arcade .client-warning,
body.theme-dark.theme-arcade .selected-day-note,
body.theme-dark.theme-arcade .registration-step.active {
  background: #182E49;
  border: 2px solid var(--arcade-accent);
  border-radius: 0;
  color: var(--arcade-text);
}

body.theme-dark.theme-arcade .sandbox-banner {
  background: #2A3042;
  border: 2px solid var(--arcade-warning);
  border-radius: 0;
  color: var(--arcade-warning);
}

body.theme-dark.theme-arcade .added,
body.theme-dark.theme-arcade button.added,
body.theme-dark.theme-arcade .bottom .added,
body.theme-dark.theme-arcade .badge:not(.warn),
body.theme-dark.theme-arcade .capacity-readout,
body.theme-dark.theme-arcade .attendance-chip,
body.theme-dark.theme-arcade .attendee,
body.theme-dark.theme-arcade .notification-count,
body.theme-dark.theme-arcade .change-diff > div,
body.theme-dark.theme-arcade .summary-line {
  background: var(--arcade-field);
  color: var(--arcade-text);
  border-color: var(--arcade-border);
  border-radius: 0;
}

body.theme-dark.theme-arcade .error,
body.theme-dark.theme-arcade .action-status.error,
body.theme-dark.theme-arcade .hero > .status.error,
body.theme-dark.theme-arcade .delivery-fail,
body.theme-dark.theme-arcade .urgent-banner,
body.theme-dark.theme-arcade .badge.warn,
body.theme-dark.theme-arcade .attendance-chip.absent,
body.theme-dark.theme-arcade .danger,
body.theme-dark.theme-arcade .money,
body.theme-dark.theme-arcade .note.err {
  color: var(--arcade-error);
}

body.theme-dark.theme-arcade .urgent-banner,
body.theme-dark.theme-arcade .badge.warn,
body.theme-dark.theme-arcade .attendance-chip.absent,
body.theme-dark.theme-arcade .note.err {
  background: #371F35;
  border: 2px solid var(--arcade-error);
  border-radius: 0;
}

body.theme-dark.theme-arcade .status:not(.error),
body.theme-dark.theme-arcade .kicker,
body.theme-dark.theme-arcade .age-card-tag,
body.theme-dark.theme-arcade .statement-signature,
body.theme-dark.theme-arcade .required-star,
body.theme-dark.theme-arcade .slot-card-note,
body.theme-dark.theme-arcade .meta a,
body.theme-dark.theme-arcade .hint a,
body.theme-dark.theme-arcade .note.ok {
  color: var(--arcade-accent);
}

body.theme-dark.theme-arcade .note.ok {
  background: #153A46;
  border-color: var(--arcade-accent);
}

body.theme-dark.theme-arcade a:focus-visible,
body.theme-dark.theme-arcade button:focus-visible,
body.theme-dark.theme-arcade input:focus-visible,
body.theme-dark.theme-arcade textarea:focus-visible,
body.theme-dark.theme-arcade select:focus-visible,
body.theme-dark.theme-arcade summary:focus-visible {
  outline: 3px solid var(--arcade-accent);
  outline-offset: 4px;
}

body.theme-dark.theme-arcade .booking-frame { background: var(--arcade-bg); }
body.theme-dark.theme-arcade .family-profile.active .hint,
body.theme-dark.theme-arcade .family-profile.active strong,
body.theme-dark.theme-arcade .tab.active .small { color: var(--arcade-on-accent); }
body.theme-dark.theme-arcade dialog::backdrop { background: rgba(3, 7, 18, .82); }
body.theme-dark.theme-arcade .gallery-thumb.active { outline-color: var(--arcade-accent); }

@media (max-width: 540px) {
  body.theme-dark.theme-arcade .m-brand-logo {
    width: auto;
    max-width: min(100%, calc(100vw - 40px));
    height: 58px;
    object-fit: contain;
  }
  body.theme-dark.theme-arcade .footer-logo.m-brand-logo { height: 48px; }

  body.theme-dark.theme-arcade .schedule,
  body.theme-dark.theme-arcade .cart,
  body.theme-dark.theme-arcade .panel,
  body.theme-dark.theme-arcade .card,
  body.theme-dark.theme-arcade .hero {
    box-shadow: 5px 5px 0 rgba(3, 7, 18, .76);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.theme-dark.theme-arcade *,
  body.theme-dark.theme-arcade *::before,
  body.theme-dark.theme-arcade *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
