[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
html { scroll-padding-block: 1rem 6rem; }
:focus { scroll-margin-block: 1rem 6rem; }
.skip-link { position: fixed; z-index: 1000; top: .5rem; left: .5rem; padding: .75rem 1rem; color: #fff; background: #082c4c; border: 2px solid #fff; border-radius: .5rem; font-weight: 800; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.accessibility-header, .accessibility-launcher { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-width: 2.75rem; min-height: 2.75rem; padding: .6rem; border: 1px solid #aac5d0; border-radius: .7rem; color: var(--navy); background: #fff; font-weight: 750; cursor: pointer; }
.accessibility-header { font-size: 1.1rem; flex-shrink: 0; }
.accessibility-launcher { position: fixed; z-index: 110; right: 1rem; bottom: max(.75rem, env(safe-area-inset-bottom)); padding: .65rem 1rem; color: #fff; background: #082c4c; border: 2px solid #fff; border-radius: 999px; box-shadow: 0 2px 10px #082c4c26; font-size: .9375rem; }
.accessibility-launcher .icon { width: 1.5rem; height: 1.5rem; }
.accessibility-dialog { width: min(32rem, calc(100% - 1.5rem)); max-width: calc(100% - 1.5rem); max-height: calc(100dvh - 2rem); margin: auto; overflow-y: auto; padding: 1.5rem; border: 1px solid #aac5d0; border-radius: 1rem; color: var(--ink); background: #fff; overscroll-behavior: contain; }
.accessibility-dialog::backdrop { background: #082c4c80; }
.accessibility-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.accessibility-heading h2 { font-size: 1.65rem; margin: .3rem 0 .5rem; }
.accessibility-close { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid #aac5d0; border-radius: .6rem; color: var(--navy); background: #f2f7fa; font-size: 1.6rem; cursor: pointer; }
.accessibility-size { padding: 0; margin: 1.25rem 0; border: 0; }
.accessibility-size legend { font-weight: 750; margin-bottom: .5rem; }
.accessibility-size > div { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .4rem; }
.accessibility-size button { min-height: 2.75rem; padding: .5rem .25rem; border: 2px solid #b1c7d0; border-radius: .5rem; background: #fff; color: var(--navy); cursor: pointer; font-weight: 700; }
.accessibility-size button[aria-pressed="true"] { color: #fff; background: #006779; border-color: #006779; }
.accessibility-options { display: grid; gap: .4rem; }
.accessibility-options label { display: flex; align-items: center; gap: .85rem; min-height: 3rem; padding: .65rem; border: 1px solid #d6e1e8; border-radius: .6rem; cursor: pointer; }
.accessibility-options label:has(:checked) { border-color: #006779; background: #edf8fb; }
.accessibility-options input { width: 1.4rem; height: 1.4rem; min-height: 1.4rem; margin: 0; flex-shrink: 0; accent-color: #006779; }
.accessibility-options span { display: grid; gap: .15rem; }
.accessibility-options small { color: var(--muted); font-size: .875rem; line-height: 1.35; }
.accessibility-simple, .accessibility-reader { margin-block: 1.1rem; padding: 1rem; border: 1px solid #d6e1e8; border-radius: .75rem; background: #f6fafc; }
.accessibility-simple h3, .accessibility-reader h3 { margin-bottom: .25rem; font-size: 1.05rem; letter-spacing: 0; }
.accessibility-simple p, .accessibility-reader p { margin-bottom: .75rem; }
.accessibility-reader-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.accessibility-reader-actions .button { min-height: 2.75rem; padding: .6rem .8rem; }
.accessibility-reader-actions button:disabled { opacity: .55; cursor: not-allowed; }
.accessibility-reader-status { min-height: 1.5em; margin: .65rem 0 0 !important; color: var(--muted); font-size: .875rem; }
.accessibility-storage { font-size: .875rem; color: var(--muted); margin: 1rem 0; }
.accessibility-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.accessibility-dialog > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
html[data-text-size="90"] { font-size: 90%; }
html[data-text-size="100"] { font-size: 100%; }
html[data-text-size="125"] { font-size: 125%; }
html[data-text-size="150"] { font-size: 150%; }
html[data-text-size="200"] { font-size: 200%; }
html.display-readable { --font: Arial, Helvetica, sans-serif; }
html.display-spacing :is(p, a, button, label, input, textarea, li, h1, h2, h3, small, summary, dd, dt) { line-height: 1.65 !important; letter-spacing: .035em !important; word-spacing: .09em !important; }
html.display-links a { text-decoration: underline !important; text-decoration-thickness: .12em; text-underline-offset: .2em; }
html.display-motion *, html.display-motion *::before, html.display-motion *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
html.display-motion { scroll-behavior: auto !important; }
/* Keep every rendered surface legible, including hardcoded status colors. */
html.display-contrast body :is(header, main, footer, section, article, aside, div, form, fieldset, nav, dialog, p, span, strong, small, li, dt, dd, label, summary, h1, h2, h3) { background-color: #fff !important; color: #111 !important; background-image: none !important; border-color: #333 !important; box-shadow: none !important; }
html.display-contrast body :is(a, a span, a strong, a small) { color: #003f85 !important; background: #fff !important; }
html.display-contrast body :is(button, .button, .button span) { color: #fff !important; background: #111 !important; border-color: #111 !important; }
html.display-contrast body button :is(span, strong, small) { color: #fff !important; background: #111 !important; }
html.display-contrast body button[aria-pressed="true"] { outline: 3px solid #0056a6; outline-offset: 2px; }
html.display-contrast :is(input, textarea, select) { color: #111 !important; background: #fff !important; border-color: #111 !important; accent-color: #111; }
html.display-contrast :focus-visible { outline-color: #0056a6 !important; outline-width: 3px; }
html.display-contrast .topic-icon svg { color: #111; }
/* Reflow large type without clipping cards, titles or form controls. */
html[data-text-size="150"] .primary-nav, html[data-text-size="200"] .primary-nav { flex-wrap: wrap; }
html[data-text-size="150"] .header-inner, html[data-text-size="200"] .header-inner { flex-wrap: wrap; }
html[data-text-size="150"] .homepage :is(.hero-grid, .guide-panel, .knowledge-grid), html[data-text-size="200"] :is(.hero-grid, .guide-panel, .knowledge-grid, .content-aside, .form-grid, .choice-grid, .match-card, .detail-hero) { grid-template-columns: minmax(0, 1fr); }
html[data-text-size="150"] .homepage .guide-main, html[data-text-size="200"] .homepage .guide-main { border-right: 0; padding-right: 0; }
html[data-text-size="150"] .activity-grid, html[data-text-size="200"] .activity-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
html[data-text-size="200"] .homepage .topic-grid { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; }
html[data-text-size="200"] .homepage .closing-panel { grid-template-columns: 1fr; padding: 1.25rem; }
html[data-text-size="200"] .closing-photo { display: none; }
html[data-text-size="200"] .homepage .closing-panel .button { grid-column: 1; }
html[data-text-size="200"] .match-actions { grid-column: 1; }
html[data-text-size="200"] .detail-list div { grid-template-columns: 1fr; }
html[data-text-size="200"] .accessibility-size > div { grid-template-columns: repeat(2, 1fr); }
body { overflow-wrap: anywhere; }
@media (max-width: 36rem) { .accessibility-launcher { right: .5rem; font-size: .875rem; } .accessibility-dialog { padding: 1rem; } .accessibility-size > div { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 36rem) {
    .header-inner { flex-wrap: wrap; }
    .menu-toggle { flex-shrink: 0; white-space: nowrap; }
    html[data-text-size="200"] .header-inner .brand { flex: 1 1 100%; min-width: 0; }
    html[data-text-size="200"] .brand-copy { min-width: 0; }
    html[data-text-size="200"] .brand-copy strong { font-size: 1rem; overflow-wrap: anywhere; }
    html[data-text-size="200"] .homepage .hero-copy { padding-inline: .25rem; }
    html[data-text-size="200"] .homepage .hero-copy h1 { font-size: 2rem; }
    html[data-text-size="200"] .accessibility-launcher { font-size: .65rem; padding: .5rem; }
    html[data-text-size="200"] .filter-row { flex-wrap: wrap; overflow: visible; }
    html[data-text-size="200"] .filter-pill { white-space: normal; }
}
@media (forced-colors: active) { .accessibility-size button[aria-pressed="true"] { outline: 3px solid Highlight; } .accessibility-options input { appearance: auto; } }
@media print { .accessibility-launcher, .accessibility-header, .accessibility-dialog { display: none !important; } }
