/* Empower public site: accessibility base (Tier 2 audit, 2026-09-21).
   Behavior only. It introduces no color, font or size of its own: every value
   below is an existing design-system token (with the canonical hex as the
   fallback) or inherits from the page. Linked after each page's inline styles.
   Companion script: /js/a11y-base.js (About menu + hamburger ARIA state). */

/* 1. One visible keyboard focus ring, the existing gold. !important because
   many page rules set outline:none on inputs and links at higher specificity. */
:focus-visible{outline:1px solid var(--gold,#C9A96E)!important;outline-offset:2px}
/* The skip link target receives programmatic focus only; no ring on the region. */
main[tabindex="-1"]:focus{outline:none}

/* 2. Skip link: visually hidden until it receives keyboard focus. */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100000;padding:12px 20px;background:var(--noir,#0A0A0A);color:var(--gold,#C9A96E);font:inherit;text-decoration:none}
.skip-link:focus,.skip-link:focus-visible{left:16px;top:16px}

/* 3. Visually hidden, still announced by screen readers. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* 4. About menu: the trigger is a <button>; strip the user agent button chrome
   so the page's own nav link styles (duplicated onto .nav-drop-trigger) hold. */
button.nav-drop-trigger{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit;-webkit-appearance:none;appearance:none;cursor:pointer}
/* Keyboard: the menu opens while focus is anywhere inside it. */
.nav-drop:focus-within .nav-dropdown,.nav-drop.nav-drop-open .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto}
/* Visibility flips at once for keyboard focus (only opacity fades), so a fast
   second Tab lands on the first menu link instead of skipping the menu. */
.nav-drop:focus-within .nav-dropdown{transition-property:opacity}
/* Escape (or a second activation) closes it even while focus stays on the trigger. */
.nav-drop.nav-drop-closed .nav-dropdown{opacity:0;visibility:hidden;pointer-events:none}

/* 5. Content revealed on scroll (.rv) stays visible when JavaScript never runs.
   The inline head script adds class "js" to <html> before first paint. */
html:not(.js) .rv{opacity:1;transform:none}

/* 6. Reduced motion: no reveal animation, no smooth scrolling. */
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1!important;transform:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
