* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--hg-text);
  background:
    radial-gradient(circle at 15% 0%, rgba(155, 100, 255, 0.1), transparent 34rem),
    var(--hg-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  content: "";
  pointer-events: none;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--hg-cyan); outline-offset: 4px; }
::selection { color: white; background: rgba(255, 61, 146, 0.7); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; z-index: 100; top: 0.75rem; left: 0.75rem; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; padding: 0.7rem 1rem; border-radius: var(--hg-radius-sm); color: var(--hg-bg); background: var(--hg-cyan); font-weight: 800; white-space: normal; }
