/* Header and footer shared by every page, including self-contained benchmark
   reports. Selectors stay under .site-header/.site-footer and define their own
   tokens, so a page's own element styles cannot reach them. */
.site-header, .site-footer {
  --paper: #f8f5ec;
  --ink: #203f35;
  --muted: #56685c;
  --line: #cbd3c1;
  --rose: #96445e;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font: 12px/1.5 var(--sans);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
.site-header *, .site-footer * { box-sizing: border-box; }
.site-header { position: sticky; top: 0; z-index: 10; border-bottom: 1px solid var(--line); }
.site-header-inner, .site-footer-inner { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.site-header-inner { min-height: 72px; display: flex; align-items: center; gap: 24px; }
.site-header a, .site-footer a { color: inherit; text-underline-offset: 4px; -webkit-tap-highlight-color: transparent; }
.site-header a:hover, .site-footer a:hover { color: var(--rose); }
.site-header :focus-visible, .site-footer :focus-visible { outline: 3px solid var(--rose); outline-offset: 4px; }
.site-brand { display: inline-flex; align-items: center; gap: 8px; font: 750 30px/1 var(--sans); letter-spacing: -1.7px; text-decoration: none; white-space: nowrap; }
.site-brand img { display: block; width: 31px; height: 31px; margin: 0; transition: transform .2s ease; }
.site-brand:hover img { transform: rotate(30deg); }
.site-brand-dot { color: var(--rose); }
.site-links { margin-left: auto; display: flex; align-items: center; gap: 25px; font-weight: 600; }
.site-links a { text-decoration: none; white-space: nowrap; }
.site-links a[aria-current="page"] { color: var(--rose); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.site-repository { padding: 5px 11px; border: 1px solid var(--ink); border-radius: 6px; }
.site-menu { display: none; }
.site-footer { margin-top: 12px; border-top: 1px solid var(--line); }
.site-footer-inner { display: flex; align-items: center; gap: 22px; padding-block: 20px 24px; color: var(--muted); font-size: 11px; }
.site-footer .site-brand { font-size: 24px; color: var(--ink); }
.site-footer .site-brand img { width: 25px; height: 25px; }
.site-footer p { margin: 0; }
.site-footer-links { margin-left: auto; display: flex; flex-wrap: wrap; gap: 8px 19px; }
@media (max-width: 820px) {
  .site-header-inner { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; padding-block: 10px; }
  .site-links { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-left: 0; font-size: 11px; text-align: center; }
  .site-links a { padding: 6px 2px; }
  .site-links a[aria-current="page"] { text-underline-offset: 4px; }
  .site-menu { grid-column: 2; grid-row: 1; justify-self: end; }
  .js-enabled .site-menu { display: inline-flex; gap: 10px; align-items: center; padding: 5px 9px; border: 1px solid var(--line); border-radius: 5px; background: transparent; color: var(--ink); font: 600 11px/1.5 var(--sans); cursor: pointer; }
}
@media (max-width: 720px) {
  .site-header-inner, .site-footer-inner { width: calc(100% - 32px); }
  .site-header-inner { min-height: 64px; }
  .site-header .site-brand { font-size: 27px; }
  .site-header .site-brand img { width: 27px; height: 27px; }
  .site-footer-inner { flex-wrap: wrap; gap: 10px 18px; }
  .site-footer-links { width: 100%; margin: 0; gap: 8px 18px; }
}
@media print { .site-header, .site-footer { display: none !important; } }
@media (prefers-reduced-motion: reduce) { .site-brand img { transition: none; } }
