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

html{ scroll-behavior: smooth; overflow-x: hidden; }

body{
  margin: 0;
  background-color: #020617;
  background-image: url("../img/bg-pattern.jpg");
  background-repeat: repeat;
  background-size: 600px 600px;
  background-attachment: fixed;
  color: var(--text);
  font-family: var(--font-body);
  text-wrap: pretty;
}

h1, h2, h3{
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.005em;
  margin: 0;
}

p{ margin: 0; }
ul{ list-style: none; margin: 0; padding: 0; }

a{ color: var(--text); text-decoration: none; transition: color var(--duration-fast) var(--ease); }
a:hover{ color: var(--turquoise); }

img{ max-width: 100%; display: block; }
button{ font-family: inherit; }

/* Visible keyboard focus everywhere — required for accessible navigation */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline: 2px solid var(--turquoise);
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
