*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; color: var(--color-text); background: var(--color-paper); font: 1rem/1.65 var(--font-body); }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
h1 { font-size: clamp(2.6rem, 6vw, 5.6rem); font-weight: 600; }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 550; }
h3 { font-size: 1.5rem; font-weight: 550; }
a { color: inherit; text-underline-offset: .25em; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 5px; }
[hidden], [v-cloak] { display: none !important; }
button:disabled { cursor: not-allowed; opacity: .65; }
img { display: block; max-width: 100%; height: auto; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
