*, *::before, *::after { box-sizing: border-box; }
html { min-width: 100%; background: var(--bg); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; min-height: 100dvh; font-family: var(--font-sans); font-size: var(--text-base); line-height: var(--line-normal); color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body, button, input, select, textarea { font: inherit; }
button, input, select, textarea { color: inherit; }
button { border: 0; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: var(--line-tight); text-wrap: balance; }
h1 { font-size: var(--text-3xl); font-weight: var(--weight-bold); letter-spacing: -.03em; }
h2 { font-size: var(--text-2xl); font-weight: var(--weight-bold); letter-spacing: -.025em; }
h3 { font-size: var(--text-xl); font-weight: var(--weight-semibold); letter-spacing: -.02em; }
p { text-wrap: pretty; }
[hidden] { display: none !important; }
::selection { background: var(--selection); color: var(--text); }
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: var(--radius-sm); }
button, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
@media (hover: none) { button { cursor: default; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }
