*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-ui); font-size: 1rem; line-height: 1.55; }
img, svg { display: block; max-width: 100%; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--blue); text-underline-offset: .18em; }
a:hover { color: var(--blue-dark); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.35rem, 3vw, 1.75rem); font-weight: 800; line-height: 1.15; letter-spacing: -.02em; }
h2 { margin-bottom: var(--space-3); font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.12; letter-spacing: -.025em; }
.shell { width: min(100% - (2 * var(--gutter)), var(--content)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: var(--space-3); left: var(--space-3); padding: var(--space-3) var(--space-4); color: white; background: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.eyebrow { margin-bottom: var(--space-2); color: var(--blue); font-size: .8rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.section-block { padding-block: var(--space-8); }
.section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-6); }
.section-heading p:last-child { color: var(--ink-soft); }
.button { min-height: 44px; padding: .7rem 1rem; border: 1px solid var(--blue); border-radius: var(--radius-sm); cursor: pointer; font-weight: 700; }
.button--primary { color: white; background: var(--ink); box-shadow: none; }
.button--primary:hover { color: white; border-color: var(--blue-dark); background: var(--blue-dark); }
.button--quiet { color: var(--blue); background: transparent; }
.text-button, .star-button { min-height: 44px; padding: .55rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); cursor: pointer; text-decoration: none; }
.text-button:hover, .star-button:hover { border-color: var(--ink); }
.star-button { min-width: 44px; padding-inline: .65rem; font-size: .8em; vertical-align: middle; }
.chip-list, .layer-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.chip { min-height: 40px; padding: .45rem .85rem; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); cursor: pointer; }
.chip.is-active { border-color: var(--ink); color: white; background: var(--ink); box-shadow: none; }
.chip:disabled { cursor: not-allowed; opacity: .5; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
