*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    linear-gradient(rgba(120, 170, 195, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 170, 195, 0.025) 1px, transparent 1px),
    radial-gradient(circle at 78% 12%, rgba(109, 235, 255, 0.05), transparent 30%),
    var(--bg);
  background-size: 40px 40px, 40px 40px, auto, auto;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
img, svg, canvas { display: block; max-width: 100%; }
h1, h2, h3, h4, p, dl, dd, ol, ul { margin-top: 0; }
h1, h2, h3, h4, p, li, dt, dd {
  word-break: keep-all;
  overflow-wrap: break-word;
}
h1, h2, h3, h4 { line-height: 1.15; text-wrap: balance; }
p { text-wrap: pretty; }
code { font-family: var(--font-mono); word-break: normal; overflow-wrap: anywhere; }
:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
::selection { color: #071008; background: var(--lime); }
.skip-link {
  position: fixed; z-index: 1000; left: 16px; top: 12px; padding: 10px 14px;
  color: #071008; background: var(--lime); transform: translateY(-150%); transition: transform .2s;
}
.skip-link:focus { transform: translateY(0); }
.noscript { margin: 24px; padding: 16px; color: #111; background: #fff; }
