:root {
    --blue: #17458f;
    --blue-bright: #0067c5;
    --navy: #061c3f;
    --navy-2: #0b2d63;
    --gold: #f7a81b;
    --gold-soft: #ffd46c;
    --ink: #101828;
    --muted: #5f6b7a;
    --line: #dce3ec;
    --paper: #ffffff;
    --wash: #f3f7fc;
    --success: #087a55;
    --warning: #a96000;
    --danger: #b42318;
    --radius: 1.25rem;
    --shadow: 0 1.5rem 5rem rgba(7, 31, 72, .12);
    --shell: min(1180px, calc(100% - 2.5rem));
    --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font); font-size: 1rem; line-height: 1.65; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.04em; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(3rem, 7vw, 6.6rem); }
h2 { font-size: clamp(2.15rem, 4.5vw, 4.2rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
p { text-wrap: pretty; }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(5rem, 9vw, 8.5rem) 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; padding: .75rem 1rem; color: white; background: var(--navy); border-radius: .5rem; transition: top .2s; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(23,69,143,.1); backdrop-filter: blur(18px); }
.header-inner { min-height: 5.75rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: block; width: 12.5rem; text-decoration: none; }
.brand img { width: 100%; }
.site-nav { display: flex; align-items: center; gap: clamp(.85rem, 2vw, 1.8rem); }
.site-nav a { position: relative; color: #26364a; font-size: .92rem; font-weight: 650; text-decoration: none; }
.site-nav a:not(.nav-support)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.52rem; height: 2px; background: var(--gold); transition: right .25s ease; }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right: 0; }
.nav-support { padding: .68rem 1rem; color: white !important; background: var(--blue); border-radius: 999px; }
.nav-support:hover { background: var(--navy); }
.language-switch { min-width: 2.4rem; padding: .35rem .55rem; text-align: center; color: var(--blue) !important; border: 1px solid var(--line); border-radius: 999px; font-size: .75rem !important; font-weight: 850 !important; letter-spacing: .08em; }
.a11y-trigger { display: inline-flex; width: 2.75rem; height: 2.75rem; padding: 0; align-items: center; justify-content: center; color: var(--blue); background: white; border: 1px solid var(--line); border-radius: 999px; font-weight: 850; cursor: pointer; }
.a11y-trigger[aria-expanded="true"] { color: white; background: var(--navy); border-color: var(--navy); }
.nav-toggle { display: none; width: 2.8rem; height: 2.8rem; padding: .7rem; border: 0; background: transparent; }
.nav-toggle > span:not(.sr-only) { display: block; width: 100%; height: 2px; margin: .3rem 0; background: var(--navy); transition: transform .2s, opacity .2s; }

.a11y-panel { position: fixed; z-index: 250; top: 6.5rem; right: max(1rem, calc((100vw - 1180px) / 2)); width: min(28rem, calc(100% - 2rem)); max-height: calc(100vh - 7.5rem); overflow: auto; padding: 1.25rem; color: var(--ink); background: white; border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 1rem; box-shadow: var(--shadow); }
.a11y-panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.a11y-panel h2 { margin-bottom: .75rem; font-size: 1.55rem; letter-spacing: -.02em; }
.a11y-panel > p { color: var(--muted); }
.a11y-kicker { margin-bottom: .25rem; color: var(--blue); font-size: .75rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.a11y-close { display: inline-flex; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; color: var(--navy); background: var(--wash); border: 1px solid var(--line); border-radius: 999px; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.a11y-options { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin: 1rem 0; padding: 0; border: 0; }
.a11y-options legend { width: 100%; margin-bottom: .55rem; color: var(--navy); font-size: .86rem; font-weight: 850; }
.a11y-options button, .a11y-reset, .a11y-speech-actions button { min-height: 3rem; padding: .7rem .8rem; color: var(--navy); background: white; border: 1px solid var(--line); border-radius: .65rem; font-weight: 700; text-align: left; cursor: pointer; }
.a11y-options button[aria-pressed="true"] { color: white; background: var(--blue); border-color: var(--blue); box-shadow: inset 0 0 0 2px white; }
.a11y-reset { width: 100%; color: var(--blue); text-align: center; }
.a11y-speech { margin: 1rem 0; padding: 1rem; background: var(--wash); border: 1px solid var(--line); border-radius: .75rem; }
.a11y-speech h3 { margin-bottom: .35rem; color: var(--navy); font-size: 1rem; letter-spacing: 0; }
.a11y-speech p { margin-bottom: .8rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.a11y-speech-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.a11y-speech-actions button { flex: 1 1 6.5rem; min-height: 2.75rem; text-align: center; }
.a11y-speech-actions button:disabled { opacity: .48; cursor: not-allowed; }

html.a11y-large-text { font-size: 125%; }
html.a11y-text-spacing body { line-height: 1.7; letter-spacing: .12em; word-spacing: .16em; overflow-wrap: anywhere; }
html.a11y-text-spacing p { margin-bottom: 2em; }
html.a11y-text-spacing h1, html.a11y-text-spacing h2, html.a11y-text-spacing h3 { letter-spacing: .04em; line-height: 1.35; }
html.a11y-readable-links body a:not(.button):not(.brand):not(.nav-support) { text-decoration: underline; text-decoration-thickness: .12em; text-underline-offset: .2em; }
html.a11y-color-cues body a:not(.button):not(.brand):not(.nav-support) { text-decoration: underline; text-decoration-thickness: .12em; text-underline-offset: .2em; }
html.a11y-color-cues .status { gap: .42rem; color: #111111; background: #ffffff; border: 2px solid currentColor; }
html.a11y-color-cues .status::before { content: ""; flex: 0 0 auto; width: .62rem; height: .62rem; background: currentColor; }
html.a11y-color-cues .status-active::before { border-radius: 50%; }
html.a11y-color-cues .status-planned { border-style: dashed; }
html.a11y-color-cues .status-planned::before { transform: rotate(45deg); }
html.a11y-color-cues .status-completed { border-style: double; border-width: 4px; }
html.a11y-color-cues .status-completed::before { background: transparent; border: 2px solid currentColor; border-radius: 50%; }
html.a11y-color-cues :focus-visible { outline-color: #000000; outline-style: double; outline-width: 5px; }
html.a11y-high-contrast { --blue: #004a99; --navy: #000000; --navy-2: #000000; --ink: #000000; --muted: #303030; --line: #595959; --wash: #ffffff; --shadow: 0 0 0 2px #000000; }
html.a11y-high-contrast .site-header, html.a11y-high-contrast .a11y-panel { background: #ffffff; backdrop-filter: none; }
html.a11y-high-contrast .section-dark, html.a11y-high-contrast .impact-band, html.a11y-high-contrast .support-teaser, html.a11y-high-contrast .support-inline, html.a11y-high-contrast .detail-hero, html.a11y-high-contrast .support-hero, html.a11y-high-contrast .site-footer { color: #ffffff; background: #000000; }
html.a11y-high-contrast .section-dark p, html.a11y-high-contrast .impact-band p, html.a11y-high-contrast .support-teaser p, html.a11y-high-contrast .support-hero p, html.a11y-high-contrast .site-footer p, html.a11y-high-contrast .site-footer a, html.a11y-high-contrast .site-footer span { color: #ffffff; }
html.a11y-high-contrast :focus-visible { outline-color: #ffbf00; outline-width: 4px; }
html.a11y-reduce-motion { scroll-behavior: auto; }
html.a11y-reduce-motion *, html.a11y-reduce-motion *::before, html.a11y-reduce-motion *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }

.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.button { display: inline-flex; min-height: 3.25rem; padding: .78rem 1.25rem; align-items: center; justify-content: center; gap: .45rem; border: 1px solid transparent; border-radius: 999px; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform .2s, background .2s, color .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--blue); box-shadow: 0 .7rem 1.8rem rgba(23,69,143,.2); }
.button-primary:hover { background: var(--navy); }
.button-ghost { color: var(--navy); border-color: var(--line); background: white; }
.button-ghost:hover, .button-secondary:hover { border-color: var(--blue); color: var(--blue); }
.button-light { color: var(--navy); background: white; }
.button-gold { color: var(--navy); background: var(--gold); }
.button-secondary { color: var(--navy); border-color: var(--line); background: transparent; }
.text-link { display: inline-flex; gap: .38rem; align-items: center; color: var(--blue); font-weight: 750; text-decoration: none; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(.15rem, -.15rem); }
.kicker, .section-label, .admin-kicker { color: var(--blue); font-size: .76rem; font-weight: 800; letter-spacing: .15em; line-height: 1.3; text-transform: uppercase; }
.kicker { display: flex; align-items: center; gap: .65rem; }
.kicker > span { width: 2.75rem; height: 1px; background: var(--gold); }
.section-label-light, .kicker-light { color: var(--gold-soft); }
.section-dark .section-label { color: var(--gold-soft); }

.hero { position: relative; overflow: hidden; min-height: calc(100vh - 5.75rem); padding: clamp(3.5rem, 7vw, 6.5rem) 0; background: radial-gradient(circle at 78% 25%, rgba(0,103,197,.13), transparent 28%), linear-gradient(180deg, #f8fbff, #fff 70%); }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .45; background-image: linear-gradient(rgba(23,69,143,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(23,69,143,.055) 1px, transparent 1px); background-size: 3.5rem 3.5rem; mask-image: linear-gradient(to right, black, transparent 65%); }
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .65fr); align-items: center; gap: clamp(3rem, 7vw, 8rem); }
.hero-copy h1 { max-width: 11ch; margin: 1.5rem 0 1.65rem; color: var(--navy); font-weight: 780; }
.hero-copy h1 em { color: var(--blue); font-style: normal; }
.hero-lead { max-width: 40rem; color: #435266; font-size: clamp(1.08rem, 1.7vw, 1.3rem); }
.hero-facts { display: flex; gap: clamp(1.5rem, 4vw, 3.5rem); margin: 3.5rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.hero-facts div { display: grid; gap: .1rem; }
.hero-facts dt { color: var(--navy); font-size: 1.18rem; font-weight: 800; }
.hero-facts dd { margin: 0; color: var(--muted); font-size: .82rem; }
.hero-visual { position: relative; min-height: 42rem; display: grid; align-items: center; justify-items: center; }
.banner-frame { position: relative; z-index: 2; width: min(25rem, 90%); padding: .55rem; overflow: hidden; background: white; border: 1px solid rgba(23,69,143,.15); border-radius: 2rem; box-shadow: var(--shadow); transform: rotate(1.6deg); }
.banner-frame::after { content: ""; position: absolute; inset: .55rem; pointer-events: none; border: 1px solid rgba(247,168,27,.38); border-radius: 1.5rem; }
.banner-frame img { width: 100%; max-height: 43rem; object-fit: cover; object-position: top; border-radius: 1.5rem; }
.hero-orbit { position: absolute; width: 36rem; aspect-ratio: 1; border: 1px solid rgba(23,69,143,.18); border-radius: 50%; }
.hero-orbit::before, .hero-orbit::after { content: ""; position: absolute; border-radius: 50%; }
.hero-orbit::before { inset: 12%; border: 1px dashed rgba(247,168,27,.45); animation: orbit 26s linear infinite; }
.hero-orbit::after { left: 4%; top: 44%; width: .75rem; aspect-ratio: 1; background: var(--gold); box-shadow: 0 0 0 .45rem rgba(247,168,27,.18); }
.hero-note { position: absolute; z-index: 3; right: -1rem; bottom: 2rem; margin: 0; padding: .8rem 1rem; color: white; background: var(--navy); border-radius: .8rem; font-size: .74rem; font-weight: 800; letter-spacing: .08em; line-height: 1.45; text-transform: uppercase; box-shadow: var(--shadow); }
.hero-note span { color: var(--gold-soft); font-weight: 650; }
@keyframes orbit { to { transform: rotate(360deg); } }

.section-dark { color: white; background: var(--navy); }
.statement { padding: clamp(5rem, 10vw, 9rem) 0; }
.statement-grid { display: grid; grid-template-columns: 1fr 3fr; gap: 3rem; }
.statement h2 { max-width: 16ch; margin-bottom: 2rem; }
.statement-grid > div > p { max-width: 50rem; color: #c7d4e7; font-size: 1.2rem; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 3rem; }
.section-heading h2 { margin: .65rem 0 0; color: var(--navy); }
.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.project-card { min-height: 25rem; display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.25rem); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; transition: background .25s, transform .25s, box-shadow .25s; }
.project-card:hover { position: relative; z-index: 2; background: var(--wash); transform: translateY(-.35rem); box-shadow: var(--shadow); }
.project-card-top { min-height: 2rem; display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.project-index { color: #64748b; font-size: 1.25rem; font-weight: 800; }
.status { display: inline-flex; padding: .35rem .65rem; color: var(--blue); background: #e9f2ff; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.status-active { color: #087a55; background: #dcf8ed; }
.status-completed { color: #58657a; background: #edf0f4; }
.status-planned { color: #9a5800; background: #fff1d5; }
.project-card .eyebrow { margin: 3.3rem 0 1rem; color: var(--blue); font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.project-card h3 { margin-bottom: 1.1rem; }
.project-card h3 a { color: var(--navy); text-decoration: none; }
.project-card p:not(.eyebrow) { color: var(--muted); }
.project-card .text-link { margin-top: auto; }
.project-grid-full { grid-template-columns: repeat(2, 1fr); }

.impact-band { color: white; background: linear-gradient(120deg, var(--blue), var(--navy-2)); }
.impact-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(3rem, 8vw, 7rem); align-items: end; }
.impact-grid h2 { max-width: 15ch; margin-bottom: 0; }
.impact-copy p { color: #dbe8f9; font-size: 1.1rem; }
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.article-grid-list { row-gap: 3rem; }
.article-card { overflow: hidden; background: white; border: 1px solid var(--line); border-radius: var(--radius); transition: transform .25s, box-shadow .25s; }
.article-card:hover { transform: translateY(-.35rem); box-shadow: var(--shadow); }
.article-image { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--wash); }
.article-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.article-card:hover .article-image img { transform: scale(1.035); }
.article-card-body { padding: 1.4rem; }
.article-meta { display: flex; flex-wrap: wrap; gap: .45rem 1rem; color: var(--muted); font-size: .76rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.article-meta span { color: var(--blue); }
.article-card h3 { margin: 1rem 0 .8rem; }
.article-card h3 a { color: var(--navy); text-decoration: none; }
.article-card p { color: var(--muted); }
.pagination { display: grid; grid-template-columns: minmax(8rem, 1fr) auto minmax(8rem, 1fr); gap: 1rem; align-items: center; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.pagination a, .pagination span { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .55rem; font-size: .85rem; font-weight: 800; text-decoration: none; }
.pagination a { color: var(--navy); border: 1px solid var(--line); background: white; transition: color .2s, background .2s, border-color .2s; }
.pagination a:hover { color: white; border-color: var(--blue); background: var(--blue); }
.pagination-pages { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; justify-content: center; }
.pagination-pages .is-current { color: white; background: var(--navy); }
.pagination-edge:first-child { justify-self: start; }
.pagination-edge:last-child { justify-self: end; }
.pagination .is-disabled { color: #8490a1; }
.support-teaser { padding: clamp(4.5rem, 8vw, 7.5rem) 0; color: white; background: var(--navy); }
.support-teaser-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; align-items: center; }
.support-teaser h2 { max-width: 12ch; }
.support-teaser-grid > div:last-child p { color: #c7d4e7; font-size: 1.08rem; }

.page-hero { padding: clamp(5rem, 10vw, 9rem) 0; background: linear-gradient(135deg, #f6faff 0%, white 70%); border-bottom: 1px solid var(--line); }
.page-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(3rem, 8vw, 7rem); align-items: end; }
.page-hero h1 { max-width: 13ch; margin: 1.25rem 0 0; color: var(--navy); font-size: clamp(3rem, 6vw, 5.6rem); }
.page-hero-grid > p { margin-bottom: .8rem; color: var(--muted); font-size: clamp(1.05rem, 1.8vw, 1.3rem); }
.editorial-grid, .article-layout { display: grid; grid-template-columns: minmax(11rem, .55fr) minmax(0, 2fr); gap: clamp(3rem, 9vw, 8rem); }
.editorial-grid aside strong { color: var(--navy); font-size: 1.1rem; }
.prose { max-width: 48rem; }
.prose h2 { color: var(--navy); }
.prose p { color: #37465a; }
.prose-large p { font-size: clamp(1.08rem, 1.7vw, 1.27rem); line-height: 1.8; }
.prose-article p { font-size: 1.1rem; line-height: 1.9; }
.values-section { background: var(--wash); }
.values-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid #cdd8e5; border-left: 1px solid #cdd8e5; }
.values-grid article { padding: clamp(2rem, 4vw, 3.3rem); border-right: 1px solid #cdd8e5; border-bottom: 1px solid #cdd8e5; }
.values-grid span { color: var(--gold); font-size: .85rem; font-weight: 850; }
.values-grid h3 { margin-top: 2rem; color: var(--navy); }
.values-grid p { max-width: 30rem; color: var(--muted); }
.cta-section, .project-next { border-top: 1px solid var(--line); }
.cta-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; align-items: center; }
.cta-grid h2 { color: var(--navy); }
.cta-grid > div p { color: var(--muted); font-size: 1.1rem; }
.support-inline { padding: 4rem 0; color: white; background: var(--blue); }
.support-inline .shell { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.support-inline h2 { max-width: 20ch; margin-bottom: 0; font-size: clamp(2rem, 4vw, 3.2rem); }

.detail-hero { padding: clamp(5rem, 10vw, 9rem) 0; color: white; background: var(--navy); }
.detail-hero-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 4rem; align-items: end; }
.detail-hero h1 { max-width: 12ch; margin: 1.5rem 0; font-size: clamp(3rem, 6.5vw, 6rem); }
.detail-lead { max-width: 43rem; color: #ced9e8; font-size: clamp(1.08rem, 1.8vw, 1.3rem); }
.detail-status { padding-left: 2rem; border-left: 1px solid rgba(255,255,255,.18); }
.detail-status p { margin-top: 2rem; color: #aebed4; font-size: .9rem; }
.article-hero { padding: clamp(5rem, 9vw, 8rem) 0 4rem; background: var(--wash); }
.article-hero-inner { max-width: 58rem; }
.article-hero h1 { margin: 1.5rem 0; color: var(--navy); font-size: clamp(3rem, 6vw, 5.4rem); }
.article-hero-inner > p { max-width: 45rem; color: var(--muted); font-size: 1.22rem; }
.article-cover { margin-top: -1px; padding-top: 3rem; }
.article-cover img { width: 100%; max-height: 44rem; object-fit: cover; border-radius: var(--radius); }
.article-fact { display: grid; gap: .35rem; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.article-fact span { color: var(--muted); font-size: .76rem; font-weight: 750; text-transform: uppercase; }
.empty-state { max-width: 45rem; padding: 4rem; background: var(--wash); border-radius: var(--radius); }
.empty-state h2 { color: var(--navy); }

.support-hero { padding: clamp(3rem, 6vw, 5.5rem) 0; color: white; background: radial-gradient(circle at 82% 18%, rgba(247,168,27,.2), transparent 28%), radial-gradient(circle at 8% 90%, rgba(0,103,197,.18), transparent 35%), var(--navy); }
.support-donate-hero { min-height: calc(100svh - 5.75rem); display: grid; align-items: center; }
.support-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr); gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.support-hero h1 { max-width: 11ch; margin: 1.2rem 0; font-size: clamp(2.9rem, 5.2vw, 5rem); }
.support-hero-intro { max-width: 42rem; color: #c9d6e7; font-size: 1.2rem; }
.support-hero-action { margin-top: 1rem; }
.support-donate-copy .donate-direct-label { margin: 1.35rem 0 .15rem; color: #9fb2cc; }
.support-donate-copy .donate-direct-link { color: white; }
.support-trust-line { display: flex; max-width: 38rem; gap: .9rem; align-items: center; margin-top: 1.6rem; padding-top: 1.15rem; border-top: 1px solid rgba(255,255,255,.15); }
.support-trust-line .status-dot { flex: 0 0 auto; width: .72rem; height: .72rem; background: var(--gold); border-radius: 50%; box-shadow: 0 0 0 .38rem rgba(247,168,27,.14); }
.support-trust-line strong, .support-trust-line small { display: block; }
.support-trust-line strong { color: white; font-size: .9rem; }
.support-trust-line small { margin-top: .12rem; color: #aebed4; }
.donate-direct-label { margin: 1.7rem 0 .2rem; color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.donate-direct-link { display: inline-block; max-width: 100%; color: var(--blue); font-weight: 750; overflow-wrap: anywhere; }
.donate-qr-card { width: min(100%, 29rem); margin: 0; padding: clamp(1.2rem, 3vw, 2rem); justify-self: end; background: white; border: 1px solid rgba(23,69,143,.16); border-radius: 1.75rem; box-shadow: var(--shadow); }
.donate-qr-card-hero { width: min(100%, 25rem); padding: clamp(1rem, 2vw, 1.45rem); box-shadow: 0 2rem 6rem rgba(0,0,0,.28); }
.donate-qr-link { display: block; color: var(--navy); text-align: center; text-decoration: none; border-radius: 1.15rem; }
.donate-qr-frame { display: block; padding: clamp(.65rem, 1.5vw, 1rem); overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 1.15rem; transition: border-color .2s, transform .2s, box-shadow .2s; }
.donate-qr-frame img { width: 100%; aspect-ratio: 723 / 754; object-fit: contain; }
.donate-qr-link:hover .donate-qr-frame { border-color: var(--blue); transform: translateY(-3px); box-shadow: 0 1rem 2rem rgba(7,31,72,.12); }
.donate-qr-action { display: inline-flex; min-height: 2.75rem; margin-top: .85rem; align-items: center; justify-content: center; gap: .35rem; color: var(--blue); font-weight: 850; }
.donate-qr-card figcaption { margin-top: .25rem; color: var(--muted); font-size: .86rem; text-align: center; }
.support-assurance { background: linear-gradient(180deg, #ffffff, #f5f9ff); }
.support-assurance-heading { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 1rem clamp(2rem, 7vw, 6rem); align-items: end; }
.support-assurance-heading .section-label { grid-column: 1 / -1; margin-bottom: 0; }
.support-assurance-heading h2 { max-width: 12ch; margin: 0; color: var(--navy); }
.support-assurance-heading > p:last-child { margin: 0 0 .4rem; color: var(--muted); font-size: clamp(1.05rem, 1.5vw, 1.2rem); }
.support-assurance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: clamp(2.5rem, 5vw, 4.5rem) 0 0; padding: 0; overflow: hidden; background: #cad6e5; border: 1px solid #cad6e5; border-radius: var(--radius); list-style: none; }
.support-assurance-grid li { min-height: 12rem; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 3vw, 2.4rem); color: #34445a; background: white; }
.support-assurance-grid span { color: var(--gold); font-size: .8rem; font-weight: 900; letter-spacing: .12em; }
.support-legal { padding: clamp(4.5rem, 8vw, 7rem) 0; color: white; background: linear-gradient(135deg, var(--navy), var(--navy-2)); }
.support-legal-grid { display: grid; grid-template-columns: minmax(15rem, .7fr) minmax(0, 1.3fr); gap: clamp(2.5rem, 8vw, 7rem); }
.support-legal h2 { max-width: 10ch; margin: 1rem 0 0; }
.support-legal-copy { display: grid; gap: 1rem; }
.support-legal-copy p { margin: 0; color: #d5e0ef; }
.support-legal-copy a { color: var(--gold-soft); font-weight: 750; overflow-wrap: anywhere; }
html.a11y-high-contrast .support-assurance, html.a11y-high-contrast .donate-qr-card, html.a11y-high-contrast .donate-qr-frame, html.a11y-high-contrast .support-assurance-grid li { background: #ffffff; }
html.a11y-high-contrast .donate-qr-card, html.a11y-high-contrast .donate-qr-frame { border-color: #000000; }
html.a11y-high-contrast .support-legal { color: #ffffff; background: #000000; }
html.a11y-high-contrast .support-legal p, html.a11y-high-contrast .support-legal a { color: #ffffff; }
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 9vw, 8rem); }
.contact-email { display: block; margin: 1.2rem 0 2rem; color: var(--blue); font-size: clamp(1.1rem, 2vw, 1.45rem); font-weight: 800; overflow-wrap: anywhere; }
.contact-details > p { color: var(--muted); }
.contact-note { margin-top: 3rem; padding: 1.25rem; background: var(--wash); border-left: 3px solid var(--gold); }
.contact-note p { margin: .4rem 0 0; color: var(--muted); font-size: .9rem; }
.contact-form, .admin-form { display: grid; gap: 1.3rem; }
.contact-form label, .admin-form label, .admin-form legend { color: var(--navy); font-size: .86rem; font-weight: 750; }
input, textarea, select { width: 100%; margin-top: .42rem; padding: .85rem 1rem; color: var(--ink); background: white; border: 1px solid #c8d3e0; border-radius: .65rem; }
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--blue); outline: 3px solid rgba(23,69,143,.12); }
.hp-field { position: absolute; left: -9999px; }
.form-message { margin-bottom: 1rem; padding: 1rem; color: var(--navy); background: #e8f1fc; border-radius: .7rem; }
.form-message.success { color: #075c43; background: #dff7ee; }
.form-message.error { color: #8f261f; background: #ffebe9; }
[aria-invalid="true"] { border-color: var(--danger) !important; box-shadow: 0 0 0 2px rgba(180,35,24,.18); }
.not-found { min-height: 65vh; display: grid; place-items: center; padding: 5rem 0; text-align: center; }
.error-code { margin-bottom: 0; color: var(--gold); font-size: clamp(5rem, 15vw, 11rem); font-weight: 900; letter-spacing: -.08em; line-height: .8; }
.not-found h1 { margin: 2rem 0 1rem; color: var(--navy); font-size: clamp(2.4rem, 5vw, 4.3rem); }

.site-footer { padding: 5rem 0 1.5rem; color: #c7d4e7; background: #04152f; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .7fr 1fr; gap: 4rem; }
.footer-logo { width: 12rem; padding: .3rem; filter: brightness(0) invert(1); opacity: .95; }
.footer-grid > div:first-child p { max-width: 28rem; margin-top: 1.5rem; }
.footer-grid h2 { margin-bottom: 1.2rem; color: white; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-grid a, .footer-grid span { display: block; margin: .5rem 0; color: #c7d4e7; text-decoration: none; }
.footer-grid a:hover { color: var(--gold-soft); }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
.footer-bottom a { color: inherit; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: end; gap: .7rem 1.2rem; }
.footer-legal button { padding: 0; color: inherit; background: none; border: 0; font: inherit; cursor: pointer; }
.footer-legal a:hover, .footer-legal button:hover { color: var(--gold-soft); }

.consent-banner[hidden] { display: none; }
.has-consent-banner { padding-bottom: 15rem; }
.consent-banner { position: fixed; z-index: 500; right: 1.25rem; bottom: 1.25rem; width: min(43rem, calc(100% - 2.5rem)); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: end; padding: 1.5rem; color: white; background: rgba(4,21,47,.98); border: 1px solid rgba(255,255,255,.18); border-radius: 1.15rem; box-shadow: 0 1.5rem 5rem rgba(4,21,47,.35); }
.consent-kicker { margin-bottom: .35rem; color: var(--gold-soft); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.consent-banner h2 { margin-bottom: .6rem; font-size: 1.3rem; letter-spacing: -.02em; }
.consent-banner p { margin-bottom: 0; color: #d5e0ef; font-size: .88rem; line-height: 1.55; }
.consent-banner p a { color: white; }
.consent-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .55rem; }
.consent-actions .button { min-height: 2.8rem; padding: .6rem .9rem; white-space: nowrap; font-size: .8rem; }
.consent-actions .button-secondary { color: white; border-color: rgba(255,255,255,.35); }

/* Admin */
.admin-body { min-height: 100vh; background: #f2f5f9; }
.admin-header { min-height: 4.5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 0 max(1.25rem, calc((100% - 1180px)/2)); color: white; background: var(--navy); }
.admin-nav { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.admin-nav a { color: #dce7f5; font-size: .82rem; font-weight: 700; text-decoration: none; }
.admin-nav a:hover { color: var(--gold); }
.admin-user { color: var(--gold-soft); font-size: .8rem; }
.admin-brand { color: white; font-weight: 900; letter-spacing: .04em; text-decoration: none; }
.admin-brand span { color: var(--gold); }
.admin-actions { display: flex; align-items: center; gap: 1.5rem; }
.admin-actions a, .link-button { color: #dce7f5; background: none; border: 0; font-size: .88rem; text-decoration: none; cursor: pointer; }
.admin-actions form { margin: 0; }
.admin-main { min-height: calc(100vh - 4.5rem); }
.admin-container { width: min(1180px, calc(100% - 2.5rem)); margin: 0 auto; padding: 3rem 0 6rem; }
.admin-title-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.admin-title-row h1 { margin: .45rem 0 0; color: var(--navy); font-size: clamp(2.2rem, 4vw, 3.5rem); }
.admin-quick-actions { display: flex; gap: .7rem; }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; }
.admin-stats article { display: flex; align-items: end; justify-content: space-between; padding: 1.5rem; background: white; border: 1px solid var(--line); border-radius: 1rem; }
.admin-stats span { color: var(--muted); font-size: .88rem; font-weight: 750; }
.admin-stats strong { color: var(--blue); font-size: 2.2rem; line-height: 1; }
.admin-panel { margin-top: 1rem; overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 1rem; }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 1.4rem; border-bottom: 1px solid var(--line); }
.admin-panel-heading h2 { margin: 0; color: var(--navy); font-size: 1.25rem; }
.admin-panel-heading a { color: var(--blue); font-size: .88rem; font-weight: 750; }
.admin-table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 1rem 1.4rem; border-bottom: 1px solid #edf0f4; text-align: left; vertical-align: middle; }
.admin-table th { color: var(--muted); background: #fbfcfe; font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.admin-table td { font-size: .88rem; }
.table-actions { display: flex; justify-content: end; gap: .75rem; white-space: nowrap; }
.table-actions a, .table-actions button { padding: 0; color: var(--blue); background: none; border: 0; font: inherit; cursor: pointer; }
.table-actions button { color: var(--danger); }
.contact-message-cell { min-width: 22rem; max-width: 35rem; white-space: pre-wrap; }
.admin-empty { margin: 0; padding: 2rem 1.4rem; color: var(--muted); }
.admin-status { display: inline-flex; padding: .25rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.admin-status-published { color: var(--success); background: #dcf8ed; }
.admin-status-draft { color: var(--warning); background: #fff1d5; }
.admin-language { display: inline-flex; margin-top: .35rem; padding: .12rem .42rem; color: var(--blue); background: #e9f2ff; border-radius: 999px; font-size: .68rem; font-weight: 850; letter-spacing: .08em; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at 80% 20%, rgba(247,168,27,.2), transparent 30%), var(--navy); }
.auth-card { width: min(31rem, 100%); padding: clamp(2rem, 5vw, 3rem); background: white; border-radius: 1.5rem; box-shadow: 0 2rem 6rem rgba(0,0,0,.25); }
.auth-card > img { width: 12rem; margin-bottom: 2.5rem; }
.auth-card h1 { margin: .6rem 0 1rem; color: var(--navy); font-size: clamp(2rem, 5vw, 3rem); }
.auth-card > p:not(.admin-kicker) { color: var(--muted); }
.admin-form small { display: block; margin-top: .35rem; color: var(--muted); font-size: .74rem; font-weight: 500; }
.back-link { display: inline-block; margin-top: 1.5rem; color: var(--blue); font-weight: 700; text-decoration: none; }
.admin-form-wide { padding: clamp(1.4rem, 3vw, 2.4rem); background: white; border: 1px solid var(--line); border-radius: 1rem; }
.admin-draft-notice { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border: 1px solid #b8cbea; border-radius: .7rem; color: var(--navy); background: #edf4ff; font-size: .82rem; font-weight: 700; }
.admin-draft-status { border-color: #b9dfcd; color: #075c43; background: #e8f8f0; }
.admin-draft-recovery { border-color: #e4c36e; color: #563900; background: #fff6dc; }
.admin-draft-warning { border-color: #e6a49e; color: #81251e; background: #fff0ee; }
.admin-draft-notice .button { flex: 0 0 auto; padding: .55rem .75rem; font-size: .75rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.checkbox-label { display: flex; align-items: center; gap: .6rem; }
.checkbox-label input { width: 1.15rem; height: 1.15rem; margin: 0; }
.event-fields { margin: .4rem 0; padding: 1.2rem; border: 1px solid var(--line); border-radius: .8rem; }
.event-fields legend { padding: 0 .5rem; }
.form-actions { display: flex; flex-wrap: wrap; gap: .7rem; padding-top: .5rem; }
.admin-panel-content { padding: 1.5rem; }
.editor-section { display: grid; gap: 1rem; margin-top: .5rem; padding: 1.3rem; border: 1px solid var(--line); border-radius: .9rem; background: #fbfcfe; }
.editor-section-heading { display: flex; align-items: start; justify-content: space-between; gap: 2rem; }
.editor-section-heading span { color: var(--blue); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.editor-section-heading h2 { margin: .2rem 0 0; color: var(--navy); font-size: 1.25rem; }
.editor-section-heading p { max-width: 31rem; margin: 0; color: var(--muted); font-size: .78rem; }
.editor-section code, .setup-secret { padding: .12rem .32rem; background: #edf3fb; border-radius: .25rem; overflow-wrap: anywhere; }
.block-editor { display: grid; gap: .8rem; }
.block-empty { margin: 0; padding: 1.4rem; color: var(--muted); text-align: center; border: 1px dashed #bdcad9; border-radius: .65rem; }
.editor-block { padding: .8rem; background: white; border: 1px solid #cfd8e4; border-radius: .7rem; }
.editor-block-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.editor-block-heading strong { color: var(--navy); font-size: .78rem; }
.editor-block-heading button, .block-toolbar button { padding: .35rem .55rem; color: var(--blue); background: #edf3fb; border: 0; border-radius: .4rem; cursor: pointer; }
.editor-block-heading button + button { margin-left: .3rem; }
.editor-block-heading .remove-block { color: var(--danger); background: #fff0ee; }
.editor-block textarea { min-height: 5rem; }
.block-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; }
.snippet-preview { padding: 1rem 1.1rem; background: white; border: 1px solid var(--line); border-radius: .7rem; }
.snippet-preview small { display: block; color: #44604b; }
.snippet-preview strong { display: block; margin: .3rem 0; color: #1647a5; font-size: 1.15rem; font-weight: 500; }
.snippet-preview p { margin: 0; color: #4d5156; font-size: .87rem; }
.button-danger { color: white; background: var(--danger); }
.recovery-panel pre { width: fit-content; padding: 1rem 1.5rem; color: white; background: var(--navy); border-radius: .7rem; font-size: 1rem; letter-spacing: .08em; }
.setup-steps { display: grid; gap: .7rem; padding-left: 1.4rem; }
.inline-security-form { max-width: 30rem; }
.user-grid, .module-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: 1rem; }
.user-card, .module-card { display: grid; gap: .9rem; padding: 1.2rem; background: white; border: 1px solid var(--line); border-radius: .8rem; }
.user-card-title { display: flex; justify-content: space-between; gap: 1rem; color: var(--navy); }
.user-card-title span, .module-version { color: var(--muted); font-size: .74rem; }
.module-card { justify-content: space-between; }
.module-card h2 { margin: .35rem 0; color: var(--navy); }
.module-card p, .module-card li { color: var(--muted); font-size: .86rem; }
.module-warning { margin-bottom: 1rem; padding: 1.2rem; color: #563900; background: #fff3d8; border: 1px solid #f3d18a; border-radius: .8rem; }
.module-warning p { margin: .35rem 0 0; }
.module-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.module-actions form { margin: 0; }
.settings-checklist { display: grid; gap: .55rem; margin: 0; padding-left: 1.2rem; color: var(--muted); }
.content-callout { margin: 2rem 0; padding: 1.2rem 1.4rem; background: var(--wash); border-left: 4px solid var(--gold); }
.prose blockquote { margin: 2rem 0; padding-left: 1.4rem; border-left: 3px solid var(--blue); font-size: 1.1em; }
.schema-panel { border-color: #b8cbea; background: linear-gradient(135deg, #fbfdff, #f3f7fd); }
.schema-panel fieldset { padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; }
.schema-panel legend { padding: 0 .45rem; color: var(--navy); font-weight: 750; }
.field-help { margin: -.3rem 0 0; color: var(--muted); font-size: .78rem; }
.seo-audit-table { min-width: 880px; }
.seo-score { display: inline-flex; min-width: 4.5rem; justify-content: center; padding: .3rem .55rem; border-radius: 999px; font-weight: 850; }
.seo-score-good { color: #0d5b31; background: #def5e7; }
.seo-score-warn { color: #6b4500; background: #fff1ca; }
.seo-score-bad { color: #8d1d12; background: #ffe4df; }
.seo-issues { display: grid; gap: .2rem; margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .78rem; }
.seo-ok { color: #0d5b31; font-weight: 750; }
.schema-preview { max-height: 68vh; margin: 1rem 0 0; padding: 1.2rem; overflow: auto; color: #eaf2ff; background: #061c3f; border-radius: .8rem; font-size: .82rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }

/* AIR Threat Map */
.air-map-hero { background: radial-gradient(circle at 82% 28%, rgba(0,103,197,.15), transparent 24%), linear-gradient(135deg, #f6faff 0%, white 70%); }
.air-map-hero h1 { max-width: 15ch; }
.air-map-section { padding-top: clamp(3rem, 7vw, 6rem); }
.air-map-notice { display: grid; grid-template-columns: minmax(14rem, .75fr) minmax(0, 1.25fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; margin-bottom: 2rem; padding: clamp(1.4rem, 3vw, 2.2rem); color: #402d00; background: #fff7df; border: 1px solid #ebca73; border-left: .45rem solid #c87900; border-radius: var(--radius); }
.air-map-notice h2 { margin: .55rem 0 0; color: #513700; font-size: clamp(1.35rem, 2.3vw, 2rem); }
.air-map-notice p:last-child { margin: 0; line-height: 1.75; }
.air-map-shell { position: relative; min-height: clamp(34rem, 72vh, 58rem); overflow: hidden; background: #02090f; border: 1px solid #173a4c; border-radius: clamp(1rem, 2vw, 1.6rem); box-shadow: 0 1.8rem 4.5rem rgba(3,25,49,.2); }
.air-map-placeholder { min-height: inherit; display: grid; grid-template-columns: minmax(16rem, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(2rem, 7vw, 7rem); padding: clamp(2rem, 7vw, 6rem); color: #d7f7ff; background-color: #02090f; background-image: linear-gradient(rgba(53,230,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(53,230,255,.045) 1px, transparent 1px), radial-gradient(circle at 25% 50%, rgba(53,230,255,.12), transparent 28%); background-size: 3rem 3rem, 3rem 3rem, auto; }
.air-map-placeholder-copy { position: relative; z-index: 1; max-width: 43rem; }
.air-map-placeholder h2 { margin: .65rem 0 1rem; color: #f2fcff; font-size: clamp(2rem, 4.4vw, 4rem); }
.air-map-placeholder-copy > p:not(.section-label):not(.air-map-privacy) { color: #a9c5ce; font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.7; }
.button-map-outline { color: #d7f7ff; border-color: rgba(53,230,255,.45); background: rgba(3,17,25,.7); }
.button-map-outline:hover { color: white; border-color: #35e6ff; background: rgba(53,230,255,.1); }
.air-map-privacy { margin: 1.2rem 0 0; color: #829faa; font-size: .82rem; line-height: 1.55; }
.air-map-privacy a { color: #b9ebf5; text-underline-offset: .18em; }
.air-map-radar { position: relative; width: min(26rem, 100%); aspect-ratio: 1; justify-self: center; overflow: hidden; border: 1px solid rgba(53,230,255,.45); border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 17%, rgba(53,230,255,.2) 17.3% 17.8%, transparent 18.1% 34%); box-shadow: inset 0 0 4rem rgba(53,230,255,.08), 0 0 3rem rgba(53,230,255,.08); }
.air-map-radar::before, .air-map-radar::after { content: ""; position: absolute; inset: 50% 0 auto; height: 1px; background: rgba(53,230,255,.32); }
.air-map-radar::after { transform: rotate(90deg); }
.air-map-radar span { position: absolute; inset: 50% 50% auto auto; width: 50%; height: 50%; transform-origin: 0 0; background: conic-gradient(from -18deg at 0 0, rgba(53,230,255,.4), transparent 21deg); animation: air-map-sweep 5s linear infinite; }
.air-map-radar span::after { content: ""; position: absolute; right: 34%; bottom: 40%; width: .65rem; aspect-ratio: 1; border-radius: 50%; background: #ffcc4d; box-shadow: 0 0 0 .35rem rgba(255,204,77,.14), 0 0 1.2rem #ffcc4d; }
@keyframes air-map-sweep { to { transform: rotate(1turn); } }
.air-map-toolbar { min-height: 3.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; color: #a9c5ce; background: #04131c; border-bottom: 1px solid rgba(53,230,255,.2); font-size: .78rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.air-map-toolbar[hidden] { display: none; }
.air-map-toolbar a { color: #d7f7ff; text-decoration: none; }
.air-map-toolbar a:hover { color: #35e6ff; }
.air-map-frame { display: block; width: 100%; height: calc(clamp(34rem, 72vh, 58rem) - 3.25rem); border: 0; background: #02090f; }
.air-map-noscript { margin: 1rem; padding: 1rem; color: white; }
.air-map-noscript a { color: #35e6ff; }
.air-map-details { display: grid; grid-template-columns: minmax(14rem, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 7vw, 7rem); padding: clamp(4rem, 9vw, 8rem) 0 0; }
.air-map-details h2 { max-width: 12ch; margin-top: .7rem; color: var(--navy); }
html.a11y-high-contrast .air-map-notice { color: #000; background: #fff; border: 3px solid #000; }
html.a11y-high-contrast .air-map-notice h2 { color: #000; }

@media (max-width: 900px) {
    .admin-nav { display: none; }
    .nav-toggle { display: block; }
    .site-nav { position: fixed; top: 5.75rem; left: 0; right: 0; display: grid; gap: 0; padding: 1rem 1.25rem 1.5rem; background: white; border-bottom: 1px solid var(--line); box-shadow: 0 1.2rem 2rem rgba(7,31,72,.12); transform: translateY(-130%); opacity: 0; pointer-events: none; transition: transform .25s, opacity .25s; }
    .site-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
    .site-nav a { padding: .8rem 0; }
    .site-nav a::after { display: none; }
    .nav-support { margin-top: .5rem; padding-inline: 1rem !important; text-align: center; }
    .language-switch { width: 4rem; margin-top: .35rem; padding: .45rem .6rem !important; }
    .a11y-trigger { width: 4rem; margin-top: .35rem; }
    .a11y-panel { top: 5.75rem; right: 1rem; }
    .nav-toggle[aria-expanded="true"] > span:first-child { transform: translateY(.5rem) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
    .nav-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-.5rem) rotate(-45deg); }
    .hero-grid, .page-hero-grid, .detail-hero-grid, .support-hero-grid, .support-teaser-grid, .impact-grid, .cta-grid, .contact-grid, .support-legal-grid, .support-assurance-heading { grid-template-columns: 1fr; }
    .donate-qr-card { justify-self: start; }
    .support-donate-hero { min-height: auto; }
    .support-assurance-heading .section-label { grid-column: auto; }
    .support-assurance-grid { grid-template-columns: 1fr; }
    .support-assurance-grid li { min-height: auto; }
    .hero { min-height: auto; }
    .hero-visual { min-height: 35rem; }
    .hero-note { right: 0; }
    .statement-grid { grid-template-columns: 1fr; }
    .project-grid, .article-grid { grid-template-columns: repeat(2, 1fr); }
    .editorial-grid, .article-layout { grid-template-columns: 1fr; }
    .article-layout aside { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
    .air-map-notice, .air-map-details { grid-template-columns: 1fr; }
    .air-map-placeholder { grid-template-columns: 1fr; text-align: center; }
    .air-map-radar { width: min(18rem, 70vw); }
    .air-map-placeholder-copy { justify-self: center; }
    .air-map-placeholder .section-label { justify-content: center; }
    .air-map-placeholder .button-row { justify-content: center; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid > div:first-child { grid-column: 1 / -1; }
    .admin-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .user-grid, .module-grid { grid-template-columns: 1fr; }
    .editor-section-heading { flex-direction: column; gap: .6rem; }
    :root { --shell: min(100% - 1.5rem, 1180px); }
    .header-inner { min-height: 5rem; }
    .brand { width: 10.5rem; }
    .site-nav { top: 5rem; }
    .hero { padding-top: 3rem; }
    .hero-copy h1 { font-size: clamp(2.85rem, 15vw, 4.4rem); }
    .hero-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
    .hero-facts dt { font-size: .95rem; }
    .hero-facts dd { font-size: .7rem; }
    .hero-visual { min-height: 31rem; }
    .hero-orbit { width: 29rem; }
    .banner-frame { width: min(19rem, 88%); }
    .banner-frame img { max-height: 32rem; }
    .section-heading { align-items: start; flex-direction: column; }
    .project-grid, .project-grid-full, .article-grid, .values-grid { grid-template-columns: 1fr; }
    .project-card { min-height: 22rem; }
    .support-inline .shell, .footer-bottom, .admin-title-row { align-items: start; flex-direction: column; }
    .donate-qr-card { width: 100%; padding: 1rem; border-radius: 1.25rem; }
    .support-hero { padding: 2.6rem 0 3.2rem; }
    .support-hero h1 { font-size: clamp(2.55rem, 12vw, 3.6rem); }
    .support-hero-grid { gap: 2rem; }
    .support-hero-intro { font-size: 1.02rem; }
    .support-hero-action { width: 100%; }
    .donate-qr-card-hero { width: min(100%, 22rem); justify-self: center; }
    .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
    .footer-grid > div:first-child { grid-column: auto; }
    .form-grid, .admin-stats { grid-template-columns: 1fr; }
    .admin-draft-notice { align-items: stretch; flex-direction: column; }
    .pagination { grid-template-columns: 1fr 1fr; }
    .pagination-pages { grid-column: 1 / -1; grid-row: 1; }
    .pagination-edge { width: 100%; }
    .admin-header { padding-inline: .9rem; }
    .admin-actions a { display: none; }
    .admin-container { width: calc(100% - 1rem); padding-top: 1.5rem; }
    .admin-quick-actions { width: 100%; flex-direction: column; }
    .admin-quick-actions .button { width: 100%; }
    .article-layout aside { align-items: start; flex-direction: column; }
    .consent-banner { right: .75rem; bottom: .75rem; width: calc(100% - 1.5rem); grid-template-columns: 1fr; padding: 1.2rem; }
    .has-consent-banner { padding-bottom: 27rem; }
    .a11y-panel { top: 5.25rem; right: .75rem; width: calc(100% - 1.5rem); max-height: calc(100vh - 6rem); overflow: auto; }
    .a11y-options { grid-template-columns: 1fr; }
    .consent-actions { justify-content: stretch; }
    .consent-actions .button { flex: 1 1 10rem; }
    .footer-legal { justify-content: start; }
    .air-map-shell { min-height: 42rem; }
    .air-map-frame { height: calc(78svh - 3.25rem); min-height: 36rem; }
    .air-map-placeholder { min-height: 42rem; padding: 2rem 1.25rem; }
    .air-map-toolbar { align-items: flex-start; flex-direction: column; }
}

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

@media (forced-colors: active) {
    :focus-visible { outline: 3px solid Highlight; }
    .a11y-trigger, .a11y-panel, .a11y-options button, .a11y-speech, .a11y-speech-actions button, .a11y-reset, .button, .status { border: 1px solid ButtonText; forced-color-adjust: auto; }
    .status::before { border: 1px solid currentColor; }
}
.builder-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.rcki-spacer{height:4rem}.rcki-builder-page:empty{display:none}
@media(max-width:760px){.builder-two-columns{grid-template-columns:1fr}}
