@media (forced-colors: active) {
:focus-visible { outline: 2px solid Highlight; outline-offset: 3px; }
.btn, .btn-solid, .btn-ghost, .nav-cta, .nav-toggle, .float-btn, .float-btn-contact,
.float-dismiss, .skip-link, .modal-close, .clamp-toggle {
border: 1px solid ButtonText;
}
.btn-solid, .nav-cta, .float-btn { border-width: 2px; }
.card, .member, .modal-box, .section-photo, .badge-pill, .glass {
border: 1px solid CanvasText;
}
.site-header { border-bottom: 1px solid CanvasText; }
.site-footer { border-top: 1px solid CanvasText; }
.form-field input, .form-field textarea, .form-field select, :where(input[type="search"]) {
border: 1px solid FieldText;
}
.form-field [aria-invalid="true"] { border-width: 3px; }
.nav-links a.active::after { background: Highlight; }
.nav-links a.active, .nav-links a[aria-current="page"] {
font-weight: 700;
}
.photo-missing { border: 1px dashed CanvasText; background: Canvas; color: CanvasText; }
.logo-mark .lm-ring { fill: Canvas; stroke: CanvasText; }
.logo-mark .lm-letter { fill: CanvasText; }
.form-status { border: 1px solid CanvasText; padding: 8px 12px; }
.form-status.err { border-style: double; border-width: 4px; }
.avatar-icon, .avatar-icon path, .card-illustration svg, .ornate-divider svg, svg.icon {
fill: currentColor; stroke: none; color: CanvasText;
}
.ornate-divider svg path { stroke: currentColor; }
.eyebrow, .eyebrow::before { color: CanvasText; }
.hero h1, .hero .lede, .hero .eyebrow, .hero-badge, .photo-hero h1, .photo-hero .lede, .photo-hero .eyebrow {
forced-color-adjust: none; color: #fff; text-shadow: 0 1px 12px #000;
}
.hero h1, .hero .lede, .hero .eyebrow, .hero-badge, .hero-tagline, .hero .trust-line, .hero .flourish span, .hero .suit-row span,
.photo-hero h1, .photo-hero h2, .photo-hero .lede, .photo-hero .eyebrow, .photo-hero p, .photo-hero .flourish span,
.photo-band h2, .photo-band h3, .photo-band p, .photo-band .eyebrow, .photo-band blockquote, .photo-band cite,
.photo-band .trust-line, .photo-band .flourish span, .photo-band .video-caption strong, .photo-band .video-caption span,
.page-hero.header-photo .form-status {
forced-color-adjust: auto; background-color: Canvas; color: CanvasText; text-shadow: none;
padding-inline: .3em; -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.hero h1, .photo-hero h1, .photo-hero .lede, .hero .lede { width: fit-content; max-width: 100%; margin-inline: auto; }
.hero .btn, .hero:has(img.bg-img) .btn:not(.btn-solid), .photo-hero .btn, .photo-band .btn { forced-color-adjust: auto; background-color: ButtonFace; color: ButtonText; }
hr { border-top-color: CanvasText; }
.nav-search::before, .nav-toggle::before, .nav-toggle::after { forced-color-adjust: none; background-color: CanvasText; }
.hero::after { display: none; }
.chip-bar, .site-notice { border-bottom: 1px solid CanvasText; }
.chip-bar a, .chips-links a, .toc a, .snap-btn, .quick-links a, .ev-card, .ev-date, .home-upcoming .ev-card, .chips li { border: 1px solid CanvasText; }
.chip-bar a[aria-current], .chips-links a[aria-current] { border-width: 3px; font-weight: 700; }
.form-status, .flash, .notice, .sys-auth-alert { border: 1px solid CanvasText; }
.form-status.err, .sys-auth-alert { border-style: double; border-width: 4px; }
.ev-media, .member-photo .portrait { border-top: 1px solid CanvasText; }
.nav-links a.active, .nav-links a[aria-current="page"] { text-decoration: underline; }
}
@media (prefers-contrast: more) {
:root {
--line: #8e8e93; --line-soft: #6e6e73; --field-line: #c7c7cc;
--paper-dim: #f5f5f7; --muted: #d2d2d7;
--header-bg: #000000; --header-solid: #000000; --menu-bg: #000000; --header-line: rgba(255, 255, 255, .6);
--glass: #1d1d1f; --on-dark-dim: #ffffff; --link: #99ccff; --link-hover: #c2e0ff; --focus: #99ccff;
}
a { text-decoration: underline; text-underline-offset: 3px; }
.btn, .btn-ghost { border-width: 2px; border-color: var(--paper); }
.card, .member, .modal-box, .badge-pill { border: 1px solid var(--line); }
.nav-links a { opacity: 1; }
.form-field input, .form-field textarea, .form-field select, :where(input[type="search"]) { border-width: 2px; }
.site-header, .nav-links, .chip-bar { -webkit-backdrop-filter: none; backdrop-filter: none; }
.chip-bar { background: var(--header-solid); }
.ev-card, .quick-links a, .site-notice { border: 1px solid var(--line); }
:focus-visible { outline-width: 3px; }
.hero-badge, .photo-hero .eyebrow, .page-hero.header-photo .eyebrow a { background: rgba(0, 0, 0, .72); }
.brand small, .footer-bottom, .form-note, .tag-oath { color: var(--paper-dim); }
.photo-missing { border: 2px solid var(--paper); background-image: none; color: var(--paper); }
.photo-missing-cap::before { opacity: .8; }
.logo-mark .lm-ring { stroke-width: 2.5; }
}
@media (prefers-contrast: more) and (prefers-color-scheme: light) {
:root {
--line: #6e6e73; --line-soft: #8e8e93; --field-line: #3a3a3c;
--paper-dim: #1d1d1f; --muted: #424245; --brass: #6b3b00;
--header-bg: #ffffff; --header-solid: #ffffff; --menu-bg: #ffffff; --header-line: rgba(0, 0, 0, .6);
--glass: #ffffff; --link: #003d7a;
}
body.admin { --line: #4a373d; --line-soft: #2b1f24; --field-line: #8a7479; --paper-dim: #d9cfc0; --muted: #b3a79b; --brass: #d9ae5c; --link: #e6c27a; --header-bg: rgba(11, 8, 9, .78); --menu-bg: rgba(11, 8, 9, .97); --glass: rgba(27, 19, 22, .9); }
}
