/* Binary Bliss accessibility utilities -------------------------------------
   Keyboard skip link. Accessibility feature: it must stay in the DOM as the
   first focusable element on the page. It is visually hidden during normal
   browsing and revealed only when it receives keyboard focus, so it never
   shifts layout or covers the header logo. */
.skip-link{
  position:absolute;
  top:0;
  left:0;
  z-index:100000;
  display:inline-block;
  padding:12px 22px;
  background:#14233b;
  color:#fff !important;
  font-weight:700;
  font-size:.95rem;
  line-height:1.25;
  text-decoration:none;
  border-radius:0 0 12px 0;
  box-shadow:0 12px 30px rgba(25,62,99,.28);
  transform:translateY(-130%);
  transition:transform .16s ease-out;
  pointer-events:none;
}
/* Reveal on keyboard focus (works with Tab); :focus-visible keeps mouse users uncluttered. */
.skip-link:focus,
.skip-link:focus-visible{
  transform:translateY(0);
  pointer-events:auto;
  outline:3px solid #087ed5;
  outline-offset:2px;
  text-decoration:none;
}
.skip-link:focus:hover{color:#fff !important}
/* Anchor targets should not land underneath the sticky navigation bar. */
main[id],
a[name],
[id]:target{scroll-margin-top:110px}
@media (prefers-reduced-motion: reduce){
  .skip-link{transition:none}
}
@media (max-width:767px){
  .skip-link{padding:10px 16px;font-size:.9rem;border-radius:0 0 10px 0}
}

/* The skip-link target is focusable programmatically (tabindex="-1") so the link moves focus,
   not only the scroll position. The container itself must not show a focus ring. */
main[id]:focus,
main[id]:focus-visible{outline:none}
