/* Shared public-site accessibility affordances. Keep this file separate so the
   presentation system can evolve without hiding keyboard behavior in a bundle. */
a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--warm);
  outline-offset: 4px;
  border-radius: 5px;
}

.skip-link {
  position: absolute;
  z-index: 10;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  border-radius: 8px;
  background: var(--warm);
  color: var(--bg);
  font-weight: 800;
  transform: translateY(-160%);
  transition: transform .2s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.status-check[aria-busy="true"] .status-dot {
  animation: public-status-pulse 1.4s ease-in-out infinite;
}

@keyframes public-status-pulse {
  50% { opacity: .35; }
}

@media (prefers-reduced-motion: reduce) {
  .skip-link { transition: none; }
  .status-check[aria-busy="true"] .status-dot { animation: none; }
}
