/*
 * base.css
 * ─────────────────────────────────────────────────────
 * Reset, estilos base del body, tipografía global
 * y keyframes de animación reutilizables.
 * ─────────────────────────────────────────────────────
 */

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

html, body {
  height: 100%;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-negro);
  background: var(--color-crema);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* ── Tipografía de display ── */
h1, h2, h3, .brand {
  font-family: var(--font-display);
}

a {
  text-decoration: none;
  color: inherit;
}

button {
  cursor: pointer;
  font-family: var(--font-body);
}

input, select, textarea {
  font-family: var(--font-body);
}

/* ── Scrollbar personalizado ── */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: var(--color-gris-light);
}
::-webkit-scrollbar-thumb {
  background: var(--color-tierra);
  border-radius: 3px;
}

/* ── Keyframes reutilizables ── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: none; }
}

@keyframes pageIn {
  from { opacity: 0; transform: translateX(8px); }
  to   { opacity: 1; transform: none; }
}

@keyframes flicker {
  0%   { transform: scale(1)    rotate(-2deg); }
  100% { transform: scale(1.08) rotate(2deg);  }
}
