*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html { -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

html, body {
  overflow-x: hidden;
  max-width: 100%;
}

body { min-height: 100vh; min-height: 100dvh; line-height: var(--lh-base); }

img, picture, video, canvas, svg { display: block; max-width: 100%; }

input, button, textarea, select { font: inherit; color: inherit; background: none; border: 0; padding: 0; }

button { cursor: pointer; }

button:disabled { cursor: not-allowed; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

ul, ol { list-style: none; padding: 0; }

a { color: inherit; text-decoration: none; }

table { border-collapse: collapse; border-spacing: 0; }

dialog { padding: 0; border: 0; background: none; color: inherit; max-width: none; max-height: none; }

dialog::backdrop { background: var(--bg-overlay); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

::selection { background: var(--accent); color: var(--ink-on-accent); }

:focus { outline: none; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-sm); }

[hidden] { display: none !important; }

[inert] { pointer-events: none; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-0); }
::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: var(--r-pill); border: 2px solid var(--bg-0); }
::-webkit-scrollbar-thumb:hover { background: var(--bg-4); }
