*,
*::before,
*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: none; text-size-adjust: none; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; scroll-behavior: smooth; scroll-padding-top: 100px; }
body { min-height: 100dvh; line-height: 1.5; font-family: var(--font-body); font-size: var(--text-base); color: var(--ink); background: var(--paper); }
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
a { color: inherit; text-decoration: none; }
h1,h2,h3 { text-wrap: balance; font-weight: 400; line-height: 1.08; }
p,li { text-wrap: pretty; max-width: 70ch; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
::selection { background: var(--accent); color: var(--paper); }
[hidden] { display: none !important; }
a,button { transition: color 180ms ease, background 180ms ease, border-color 180ms ease, opacity 180ms ease; }
button:active,.button:active { opacity: .72; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important; } }
