/* Tokens de marca — espejo ejecutable de brand-tokens.md.
   Si cambia uno, cambia el otro. */

/* --- Fuentes auto-hospedadas (cap. 08 del manual: sin CDN) --- */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter-400.da03732a27e1.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/inter-500.51205681a1ba.woff2") format("woff2");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/cormorant-400.87d22046a89f.woff2") format("woff2");
}

@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/cormorant-500.efeea72c7a42.woff2") format("woff2");
}

:root {
  /* --- Paleta (cap. 07) --- */
  --carbon: #4b4b4d;
  --blanco: #ffffff;
  --marfil: #f6f2ec;
  --piedra: #b8afa3;
  --arena: #cdbba1;
  --niebla: #dad8d4;

  /* Excepción funcional de producto: destructivo y error. Nada más. */
  --oxido: #8c3a2b;

  /* --- Escala cerrada de tints de carbón (cap. 07.3, corrección U4) ---
     Mezcla de carbón hacia marfil, escrita en hex fijo para que
     tests/test_contraste.py pueda verificarla: color-mix() solo lo resuelve
     el navegador. El paso secundario es 80% y no el 75% del manual, que mide
     4.12:1 sobre marfil y no llega a AA. El 55% no alcanza ni AA grande:
     nunca va en texto. */
  --carbon-80: #6d6c6d; /* 5.23:1 blanco · 4.69:1 marfil */
  --carbon-55: #989695; /* 2.94:1 blanco · 2.64:1 marfil — no es texto */
  --carbon-12: #e1ded9;
  --carbon-05: #edeae4;

  /* --- Roles semánticos --- */
  --lienzo: var(--marfil);
  --superficie: var(--blanco);
  --tinta: var(--carbon);
  /* Dos niveles de texto, los dos AA. No hay un tercero: el gris que seguía
     no se leía (U4). La jerarquía de lo secundario la dan tamaño y peso. */
  --tinta-suave: var(--carbon-80);
  --filete: var(--niebla);
  --filete-fuerte: var(--carbon);

  /* --- Series de datos (gráficas del panel) ---
     Escala cerrada de seis, alternando frío y cálido para que dos segmentos
     vecinos no se confundan. Las gráficas además separan segmento de segmento
     con un filete de 1px del color de la superficie, que es lo que garantiza
     la lectura aunque dos tintes queden cerca. Más de seis series se agrupan
     en "Otras": una barra de astillas no se lee ni se etiqueta. */
  --serie-1: var(--carbon);
  --serie-2: var(--arena);
  --serie-3: var(--carbon-55);
  --serie-4: var(--piedra);
  --serie-5: var(--carbon-80);
  --serie-6: var(--carbon-12);

  /* --- Tipografía (cap. 08) --- */
  --fuente-texto: "Inter", ui-sans-serif, system-ui, sans-serif;
  --fuente-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;

  --texto-xs: 0.75rem;
  --texto-sm: 0.875rem;
  --texto-base: 1rem;
  --texto-lg: 1.125rem;
  --texto-xl: 1.375rem;
  --texto-2xl: 1.75rem;
  --texto-3xl: 2.25rem;

  --tracking-etiqueta: 0.18em;
  --tracking-display: -0.015em;
  --interlineado-cuerpo: 1.65;

  /* --- Ritmo espacial: base 4px --- */
  --e1: 0.25rem;
  --e2: 0.5rem;
  --e3: 0.75rem;
  --e4: 1rem;
  --e5: 1.25rem;
  --e6: 1.5rem;
  --e8: 2rem;
  --e12: 3rem;

  /* --- Movimiento --- */
  --ease-salida: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-hoja: cubic-bezier(0.32, 0.72, 0, 1);
  --dur-tap: 120ms;
  --dur-linea: 140ms;
  --dur-hoja-entra: 220ms;
  --dur-hoja-sale: 160ms;
  /* El acordeón no lleva token: es <details> nativo y abre al instante. */

  /* --- Alturas de toque: mínimo 48px en todo lo tapeable --- */
  --toque: 48px;
  --toque-alto: 56px;
  --barra-inferior: 72px;
}
