/* Tower Defense Hub — accessibility helpers. */

.skip-link {
  position: absolute; left: 12px; top: -100px; z-index: 200;
  background: var(--primary); color: var(--on-primary); padding: 12px 18px; border-radius: 10px; font-weight: 800; text-decoration: none;
}
.skip-link:focus { top: 12px; color: var(--on-primary); }

.sr-only {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

:focus { outline: none; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.btn:focus-visible, .icon-btn:focus-visible, .fav-btn:focus-visible { outline-offset: 3px; }
.td-game :focus-visible { outline: 3px solid #ffd166; outline-offset: 2px; }
a:focus-visible { outline-offset: 3px; }

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

@media (forced-colors: active) {
  .btn, .icon-btn, .td-btn, .td-tower-btn, .fav-btn, .chip { border: 1px solid ButtonText; }
  .td-tower-btn.active, .td-btn[aria-pressed="true"] { outline: 2px solid Highlight; }
}
