/* Reset mínimo */
*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
/* Ojo: además del list-style hay que anular el padding-inline-start que
   el navegador le da por defecto a ul/ol (40px), o la lista queda con
   sangría respecto del resto del contenido. */
ul[role='list'], ol[role='list'] { list-style: none; padding: 0; margin: 0; }
html:focus-within { scroll-behavior: smooth; }

/* SCROLL SNAP: la página traba en cada sección, así el borde superior de
   la sección siempre cae en el mismo lugar respecto del header y el
   espaciado de la etiqueta deja de depender de dónde frenó el scroll.
   Es "proximity" y no "mandatory" a propósito: con mandatory, una sección
   más alta que la pantalla (por ejemplo con las cards desplegadas) puede
   volverse imposible de recorrer. Con proximity el navegador solo traba
   cuando ya estás cerca del borde.
   El offset respecto del header no se pone acá con scroll-padding-top:
   lo aporta el scroll-margin-top de .section-full, y ponerlo en los dos
   lugares se sumaría. */
html {
  scroll-snap-type: y proximity;
}
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: var(--lh-body);
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
}
img, picture { max-width: 100%; display: block; }
input, button, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
