/* Shared baseline; presentation values come from 01-tokens.css. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scrollbar-gutter: stable; }
html.hub-search-open { overflow: hidden; }
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; margin: 0; background: var(--hub-color-canvas); color: var(--hub-color-text); font-family: var(--hub-font-sans); font-size: var(--hub-text-base); line-height: var(--hub-leading-body); overflow-wrap: break-word; }
[hidden] { display: none !important; }
img, video { max-width: 100%; height: auto; }
img, svg { vertical-align: middle; }
button, input, textarea, select { font: inherit; }
button, input[type="submit"], summary { cursor: pointer; }
button:disabled, input:disabled { cursor: not-allowed; opacity: .55; }
a { color: var(--hub-color-link); text-underline-offset: .2em; }
a:hover { color: var(--hub-color-link-hover); }
h1, h2, h3, h4, h5, h6 { color: var(--hub-color-text); font-family: var(--hub-font-heading); font-weight: var(--hub-weight-semibold); line-height: var(--hub-leading-heading); overflow-wrap: anywhere; margin: 0 0 var(--hub-space-4); }
h1 { font-size: var(--hub-text-h1); }
h2 { font-size: var(--hub-text-h2); }
h3 { font-size: var(--hub-text-h3); }
h4 { font-size: var(--hub-text-lg); }
h5, h6 { font-size: var(--hub-text-base); }
p, ul, ol, dl, figure, blockquote { margin: 0 0 var(--hub-space-5); }
ul, ol { padding-inline-start: var(--hub-space-6); }
p:last-child { margin-bottom: 0; }
figure { margin-inline: 0; }
code, kbd, samp { font-family: var(--hub-font-mono); font-size: .9em; }
code { overflow-wrap: anywhere; }
hr { border: 0; border-top: 1px solid var(--hub-color-border); margin-block: var(--hub-space-8); }
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline: var(--hub-focus-width) solid var(--hub-color-focus); outline-offset: var(--hub-focus-offset); }
main[tabindex="-1"]:focus { outline: 0; }
.sr-only, .screen-reader-text:not(:focus), .hub-skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.hub-skip-link:focus { position: fixed; inset-block-start: var(--hub-space-4); inset-inline-start: var(--hub-space-4); z-index: 100000; padding: var(--hub-space-3) var(--hub-space-4); background: var(--hub-color-surface); color: var(--hub-color-link); border: 1px solid var(--hub-color-border-strong); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
