:root {
  color: var(--text-primary);
  background:
    radial-gradient(circle at top left, rgba(44, 133, 247, 0.22), transparent 32%),
    radial-gradient(circle at top right, rgba(114, 184, 255, 0.18), transparent 26%),
    linear-gradient(180deg, var(--bg-page) 0%, #f7fbff 100%);
  font-family: var(--font-sans);
  line-height: 1.5;
  font-weight: 400;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

html,
body,
#app {
  min-height: 100%;
}

body {
  margin: 0;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(20, 47, 95, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 47, 95, 0.02) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: radial-gradient(circle at center, black, transparent 75%);
}

img {
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

a {
  color: inherit;
}
