@import url("theme.css");

/* Accessibility enhancements layered on top of the visual stylesheet. */

.skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 1000;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  background: #101828;
  color: #ffffff;
  font-weight: 700;
  transform: translateY(-200%);
  transition: transform 120ms ease;
}

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

:focus-visible {
  outline: 3px solid #f79009;
  outline-offset: 4px;
}

.site-nav a:focus-visible,
.button:focus-visible,
.brand:focus-visible,
.nav-toggle:focus-visible,
.theme-toggle:focus-visible {
  border-radius: 0.5rem;
}

/* Content must remain available when JavaScript is disabled or fails. */
.reveal,
.reveal.visible {
  opacity: 1;
  transform: none;
}

/* Improve target visibility beneath the sticky header. */
main [id] {
  scroll-margin-top: 6rem;
}

/* Decorative elements should never communicate meaning by colour alone. */
.hero-glow,
.code-bar,
.status-dot {
  speak: never;
}

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

@media (forced-colors: active) {
  .button,
  .nav-cta,
  .brand-mark,
  .service-card,
  .hero-card,
  .contact-panel,
  .tags span,
  .theme-toggle {
    border: 1px solid ButtonText;
  }

  .status-dot {
    forced-color-adjust: none;
  }
}
