@font-face {
  font-family: "Nunito Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/src/fonts/nunito-sans-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Quicksand";
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("/src/fonts/quicksand-latin.woff2") format("woff2");
}

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: 11vh;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: 'Nunito Sans', 'Segoe UI', sans-serif;
  font-weight: 400;
  font-size: 17px;
  line-height: 1.7;
  color: #e2e8f0;
  background: #0b1220;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: clip;
}

h1, h2, h3, h4 {
  font-family: 'Quicksand', 'Nunito Sans', sans-serif;
  font-weight: 700;
  line-height: 1.15;
  color: #f8fafc;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(30px, 3.4vw, 50px); }
h2 { font-size: clamp(26px, 2.4vw, 36px); margin-bottom: 1.618rem; }
h3 { font-size: clamp(19px, 1.4vw, 22px); margin-bottom: 0.618rem; }

p { margin-bottom: 1rem; max-width: 68ch; }
p:last-child { margin-bottom: 0; }

a {
  color: #93c5fd;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.25s ease;
}
a:hover { color: #fdba74; }

ul, ol { padding-left: 1.2em; }
li { margin-bottom: 0.4rem; }

img { display: block; max-width: 100%; height: auto; }

strong { color: #f8fafc; font-weight: 700; }

table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; vertical-align: top; }

button {
  cursor: pointer;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
}

input {
  font: inherit;
  color: inherit;
}

abbr[title] { text-decoration: underline dotted; cursor: help; }

:focus-visible {
  outline: 3px solid #fb923c;
  outline-offset: 3px;
}

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