/* State and accessibility rules, kept independent from decorative styling. */
[hidden] { display: none !important; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.site-bar a:focus-visible, .contact-block a:focus-visible, .nav-links li:last-child a:focus-visible { outline-color: #50715b; }
main:focus { outline: none; }
.form-success:focus, .form-message:focus { outline: 2px solid var(--red); outline-offset: 6px; }
.visually-hidden, .honeypot { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.honeypot { pointer-events: none; }
.skip-link { position: fixed; top: 8px; left: 8px; transform: translateY(-180%); z-index: 100; background: var(--basalt); color: white; padding: 12px 18px; }
.skip-link:focus { transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .site-bar, .site-header, footer, .skip-link, .article-navigation, .contact-form, .seal { display: none !important; }
  body { background: white; color: black; }
  .ledger { width: 100%; }
  .ledger::before { display: none; }
  .page-hero, .ledger .article-body { padding: 0 0 18px; }
  .page-title { font-size: 2rem; }
  .section { padding: 18px 0; }
  .folio-row, .editorial-grid { display: block; }
  .work-row, .resource-row, .note-entry, .worksheet { break-inside: avoid; }
}
