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

html {
  background: var(--surface-0);
  scroll-behavior: smooth;
  scrollbar-color: var(--surface-3) var(--surface-0);
}

body {
  min-width: 20rem;
  margin: 0;
  overflow-x: hidden;
  color: var(--ink-1);
  background:
    radial-gradient(circle at 78% -10%, rgba(124, 140, 255, 0.13), transparent 31rem),
    radial-gradient(circle at 5% 22%, rgba(78, 216, 199, 0.06), transparent 28rem),
    var(--surface-0);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4, p, ul, ol, dl, blockquote { margin-top: 0; }
button, input, select, textarea { color: inherit; }
[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--cyan);
  outline-offset: 3px;
  border-radius: 0.25rem;
}

::selection { color: #06100f; background: #4ed8c7; }
