/* a11y.css — WCAG AA sweep N-06 (2026-06-06)
   Visually-invisible accessibility utilities. Sighted users see no change.
   Loaded after polish.css.
*/

/* ===== SKIP-TO-CONTENT LINK =====
   Hidden until focused. Critical keyboard-nav escape hatch. */
.skip-to-content {
  position: absolute;
  top: 0;
  left: 0;
  background: #00E5FF;
  color: #001018;
  padding: 10px 16px;
  font-weight: 700;
  font-size: 14px;
  border-radius: 0 0 6px 0;
  text-decoration: none;
  z-index: 100000;
  transform: translateY(-110%);
  transition: transform 160ms ease-out;
}

.skip-to-content:focus,
.skip-to-content:focus-visible {
  transform: translateY(0);
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .skip-to-content { transition: none; }
}

/* ===== SR-ONLY =====
   Visually hidden but available to screen readers + Voice Control. */
.sr-only,
.visually-hidden {
  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;
}

/* ===== HERO TEXT CONTRAST BOOST (optional helper) =====
   For pages where light hero text sits on cosmic gradient and falls
   under 4.5:1 — add class="text-shadow-a11y" to bump contrast without
   changing palette. */
.text-shadow-a11y {
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.65),
    0 0 12px rgba(0, 0, 0, 0.45);
}

/* ===== KEYBOARD-ONLY FOCUS RING FALLBACK =====
   For pages that don't yet import polish.css. */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #00E5FF;
  outline-offset: 2px;
  border-radius: 4px;
}
