/* Shared keyboard, touch, and reflow refinements. The Atlas palette is retained. */
body :is(a,button,summary,[tabindex="0"]):focus-visible { outline: 3px solid #171b19; outline-offset: 3px; box-shadow: 0 0 0 3px #f6f6ee; }
.research-program summary:focus-visible { outline: 3px solid var(--lime); outline-offset: 6px; }
.skip { z-index: 1000; }
/* Keep the reader shortcut available to keyboards without exposing it above the sticky contents. */
.reader-skip { top: auto; left: auto; width: 1px; height: 1px; padding: 0; margin: -1px; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.reader-skip:focus { position: fixed; top: 12px; left: 12px; width: auto; height: auto; max-width: calc(100vw - 24px); padding: 12px; margin: 0; overflow: visible; clip-path: none; white-space: normal; }
.site-header #navigation a { min-height: 32px; display: inline-flex; align-items: center; }
.site-header .menu { min-width: 80px; min-height: 44px; }
.site-footer .footer-links a { min-height: 32px; display: inline-flex; align-items: center; }
.site-footer .site-copyright { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 15px 30px; }
.privacy-link { display: inline-flex; align-items: center; min-height: 32px; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.page-nav > .frame { scroll-padding-inline: 20px; }
.page-nav a { display: inline-flex; align-items: center; min-height: 28px; padding-block: 3px; }
.page-nav a:focus-visible { outline-offset: 2px; }
body[data-section-nav] main [id] { scroll-margin-top: 86px; }
.essay-body a { text-decoration: underline; text-underline-offset: 3px; }
.essay-body a:focus-visible { scroll-margin-top: 100px; }
@media(max-width:900px) {
 .essay-body { scroll-margin-top: 86px; }
 .site-header #navigation a { min-height: 44px; }
 .contents a:focus-visible { outline-offset: -3px; }
 .site-footer .footer-links a { min-height: 40px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media(forced-colors:active) {
 a { text-decoration: underline; }
 :focus-visible { outline: 3px solid Highlight !important; }
 .architecture-selector button[aria-pressed="true"] { border: 2px solid ButtonText; }
}
