* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--text); background: var(--paper); font: 16px/1.5 var(--font-body); }
/* Keep Android landscape text sizing predictable without disabling browser zoom. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
h1,h2,h3,h4,p,figure,dl,dd { margin: 0; }
a { color: inherit; text-decoration: none; }
button,input,select,textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; height: auto; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #2477cf; outline-offset: 4px; }
[hidden] { display: none !important; }
button:disabled { cursor: wait; opacity: .65; }
@media (pointer: coarse), (max-width: 600px) {
  a,button { min-width: 48px; min-height: 48px; touch-action: manipulation; }
  a:not(.site-brand),button { display: inline-flex; align-items: center; justify-content: center; }
  input,select,textarea { scroll-margin-block: 24px; }
  a:active,button:active { -webkit-tap-highlight-color: #ff173026; }
}
.sr-only,.honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 20px; color: white; background: var(--ink); transform: translateY(-200%); border-radius: 8px; }
.skip-link:focus { transform: none; }
.accent { color: var(--brand-heading); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
