/* ============================================================
   Accessibility — shared across all pages
   ============================================================ */

/* D2 brand display weight — Cormorant Garamond headings need 600 for presence */
h1,h2,h3,h4,.display{font-weight:600}

/* Skip-to-content link: visible only when keyboard-focused */
.skip-link{
  position:absolute;
  top:-100px;
  left:0;
  background:#e6c98f;
  color:#060f1a;
  padding:14px 22px;
  font-family:'Cormorant Garamond',sans-serif;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  z-index:99999;
  font-weight:600;
  border-radius:0 0 4px 0;
}
.skip-link:focus{
  top:0;
  outline:none;
}

/* Visible focus indicators on every interactive element.
   Default browser outlines are inconsistent across browsers; this
   normalizes to a brand-aligned focus ring on every focusable element. */
*:focus-visible{
  outline:2px solid #e6c98f;
  outline-offset:3px;
  border-radius:3px;
}
/* Buttons + links get a slightly tighter ring */
a:focus-visible,
button:focus-visible{
  outline:2px solid #e6c98f;
  outline-offset:3px;
}
/* Form fields focus their own border instead of an outline */
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:none;
  border-color:#e6c98f !important;
  box-shadow:0 0 0 3px rgba(230,201,143,.18);
}

/* Honor user motion preference — kill animations + transitions */
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  /* Specifically defang the 3D book mouse-follow + spin */
  .book,
  .book-wrap:hover .book,
  .book.show-front,
  .book.show-back{
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }
  .book-shadow,
  .floor-shadow,
  .book-shadow-wrap::before,
  .book-shadow-wrap::after{
    animation:none !important;
  }
}

/* Screen-reader-only text helper */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
