/* Native document scrolling keeps viewport-based reveal animations reliable. */
* { box-sizing: border-box; }
html { scroll-behavior:smooth; scroll-padding-top:88px; }
body { margin:0; padding:0; isolation:isolate; color:var(--color-ink); background:#ffffff; font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--color-blue); outline-offset: 6px; }
.skip-link { position: absolute; left: 24px; top: -80px; z-index: 100; padding: 12px; background: var(--color-paper); }
.skip-link:focus { top: 12px; }
.page-shell { position:relative; max-width:var(--page-width); min-height:100svh; margin:0 auto; padding:0 var(--page-margin); background:var(--color-paper); border-radius:0; box-shadow:none; }
.muted { color: var(--color-muted); }
.visually-hidden { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

@media(max-width:700px) {
  html { scroll-padding-top:120px; }
}
@media print {
  body { padding:0; background:white; }
  body::before { display:none; }
  .page-shell { box-shadow:none; border-radius:0; }
}

/* Shared page padding scales continuously from mobile to desktop. */
