*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--color-text); background: var(--color-background); font-family: var(--font); font-size: var(--font-size-body); line-height: 1.5; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { color: inherit; font: inherit; }
button, select { cursor: pointer; }
button { border: 0; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
table { border-collapse: collapse; border-spacing: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(109, 40, 217, .25); outline-offset: 2px; }
::selection { color: #fff; background: var(--color-primary); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; left: 16px; top: -80px; padding: 10px 16px; color: #fff; background: var(--color-primary-dark); border-radius: var(--radius-sm); transition: top var(--transition); }
.skip-link:focus { top: 12px; }
