html { scroll-behavior: smooth; }
body {
  min-height: 100vh;
  background: var(--color-background);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
h1, h2, h3 { color: var(--color-primary); line-height: 1.14; letter-spacing: -.025em; }
h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); }
h2 { font-size: clamp(1.45rem, 2.5vw, 2rem); }
h3 { font-size: 1.15rem; }
p { color: var(--color-text-muted); }
a { text-decoration-thickness: .08em; text-underline-offset: .18em; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
::selection { background: #bfdbfe; color: var(--color-primary); }
.skip-link { position: fixed; z-index: 1000; top: var(--space-3); left: var(--space-3); padding: var(--space-2) var(--space-4); background: var(--color-surface); color: var(--color-primary); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.noscript-message { padding: var(--space-3); text-align: center; background: #fff4ce; color: var(--color-warning); }
