/* Accessibility and interaction safeguards. */

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 15000;
  padding: 0.62rem 0.9rem;
  border-radius: 0.65rem;
  background: #0f172a;
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.01em;
  transform: translateY(-160%);
  transition: transform 0.24s ease;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.25);
}

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

:where(
  a,
  button,
  input,
  select,
  textarea,
  [role="button"],
  [tabindex]:not([tabindex="-1"])
):focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

.nav-link:focus-visible,
.nav-cta:focus-visible,
.nav-toggle:focus-visible,
.btn:focus-visible,
.hero-social:focus-visible,
.project-link:focus-visible,
.contact-submit:focus-visible {
  border-color: rgba(var(--accent-primary-rgb), 0.5);
}

body.theme-light .form-group label {
  color: rgba(15, 23, 42, 0.76);
}

.contact-form-status.is-error {
  color: #b42318;
}

.contact-form-status:not(.is-error) {
  color: #065f46;
}

@media (max-width: 768px) {
  .nav-toggle,
  .nav-link,
  .nav-mobile-signout,
  .btn,
  .hero-social,
  .social-link {
    min-height: var(--touch-target);
  }
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  .skip-link {
    transition: none;
  }
}
