*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; overflow-x: hidden; background: var(--color-bg-deep); scroll-behavior: auto; }
body { margin: 0; min-height: 100vh; overflow-x: hidden; background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); line-height: 1.45; }
button, input, textarea, select { font: inherit; }
button { color: inherit; cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid rgb(89 139 255 / 72%); outline-offset: 2px; }
button:disabled, input:disabled, textarea:disabled, select:disabled { cursor: not-allowed; opacity: .58; }
h1, h2, p { margin-top: 0; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
.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; }
[hidden] { display: none !important; }
