:root {
  /* Color — institucional, confirmado. No modificar ningún valor. */
  --red: #932E24;
  --gold: #CC9342;
  --dark: #494949;
  --mid: #9E9E9E;
  --light: #F5F5F5;
  --white: #FFFFFF;


  /* --- Ampliación aprobada (handoff Portal 2026). No reemplaza ningún valor anterior. --- */
  --black:            #1A1A1A;   /* negro del sistema: fondo estructural, títulos sobre claro, globo de WhatsApp */
  --red-dark:         #6E1F18;   /* hover de enlaces y botones */
  --hairline-light:   #DEDEDE;   /* divisor sobre blanco */
  --hairline-strong:  #C8C8C8;   /* divisor sobre --light */
  --hairline-dark:    #3F3F3F;   /* divisor sobre --black */
  --border-dark:      #494949;   /* borde de superficies sobre --black (mismo valor que --dark) */

  /* Tipografía — dos familias, cuatro pesos, sin cursivas. */
  --font-display: "Instrument Sans", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;

  /*
   * Prohibidos los pesos 300, 600, 800 y 900. La jerarquía se resuelve con
   * peso, escala y espacio — nunca agregando estilos nuevos. Si algo parece
   * necesitar un peso que no está en esta lista, el problema es la
   * jerarquía, no la tipografía.
   */

  /* Escala — fluida entre mobile (375px) y desktop (1440px), en rem para respetar el zoom de texto del navegador. */
  --text-display-1: clamp(2.75rem, 2.1rem + 3.2vw, 5.5rem);   /* ~44px→88px: titular de una línea, hero y afirmaciones de apertura */
  --text-display-2: clamp(2rem, 1.65rem + 1.75vw, 3.5rem);    /* ~32px→56px: títulos de sección, H2 */
  --text-display-3: clamp(1.375rem, 1.2rem + 0.85vw, 2rem);   /* ~22px→32px: subtítulos, afirmaciones cortas, H3 */
  --text-body-lg: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);    /* ~17px→20px: intro de sección, texto destacado, llamados a la acción */
  --text-body-base: clamp(0.9375rem, 0.9rem + 0.15vw, 1rem);  /* ~15px→16px: cuerpo de texto y utilidades (nav, etiquetas, footer) */

  /* --- Movimiento (base reutilizable · sin tiempos por escena todavía) ---
   * Duraciones cortas y curvas sin rebote (handoff: fundidos y desplazamientos
   * de 2–4px, cubic-bezier(0.2,0,0.2,1), 120–320ms). Nada está animado aún. */
  --dur-fast: 150ms;                              /* micro-transiciones: hover, foco */
  --dur-medium: 300ms;                            /* entradas de elemento, fundidos */
  --dur-slow: 600ms;                              /* dibujos progresivos, recorridos largos */
  --ease-enter: cubic-bezier(0.2, 0, 0.2, 1);     /* aparición / desplazamiento de entrada */
  --ease-transform: cubic-bezier(0.4, 0, 0.2, 1); /* movimiento y cambios de forma */
  --delay-short: 60ms;                            /* escalonado fino entre pares de elementos */
  --delay-medium: 140ms;                          /* escalonado entre bloques */

  /* --- Movimiento · tiempos y curvas del guion (handoff movimiento, rev. 5) ---
   * Bloque nuevo. NO reemplaza los tokens base de arriba: los agrega.
   * Cuatro easings, cada uno con un trabajo asignado; duraciones con nombre.
   * Los milisegundos son valores fundados, sujetos a verificación en dispositivo. */
  --ease-standard: cubic-bezier(0.2, 0, 0.2, 1);   /* entradas, salidas, cambios de intensidad */
  --ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);  /* trazados que llegan y se apoyan (08) */
  --ease-accel:    cubic-bezier(0.85, 0, 1, 1);    /* series que aceleran: los términos de la 01 */
  --ease-draw:     cubic-bezier(0.9, 0, 1, 1);     /* el trazado de la curva de la 01, sólo ahí */

  --dur-micro:  120ms;
  --dur-short:  220ms;
  --dur-base:   320ms;
  --dur-long:   680ms;
  --dur-draw:  1400ms;   /* la recta de la 01: lineal, sin easing */
  --dur-curve:        2200ms;  /* la curva de la 01, escritorio */
  --dur-curve-mobile: 1900ms;  /* la curva de la 01, teléfono: MÁS RÁPIDA */
  --dur-underline:     600ms;
  --dur-read:         2000ms;  /* lectura de una frase sola en pantalla (no se recorta) */
  --dur-cut:           400ms;  /* el negro intermedio de la 01 */
  --dur-pause:         520ms;  /* el silencio de la 06 */
  --stagger:            90ms;
  --travel:             16px;  /* desplazamiento de entrada. 10px en teléfono. Techo absoluto */

  /* --- 01 · recta dorada (reconstrucción "marco fijo", sept. 2026) ---
   * Reemplaza el rol de la curva exponencial, que se descartó. Ingreso muy
   * lento hasta ~el primer tercio y cierre con leve aceleración; NO es el
   * "whip" de --ease-draw. Después la recta queda continua y fija.
   * Sólo agrega; no toca ningún valor anterior. */
  --dur-s01-line:  3400ms;
  --ease-s01-line: cubic-bezier(0.72, 0, 0.85, 0.2);

  /* La línea de la pantalla 03 es el "reloj" de la escena: trazado largo y
   * casi lineal, para que los rótulos se enciendan a tiempos predecibles. */
  --dur-s03-line:  5500ms;

  /* Revelado de textos "que se desarrollan": lento y sin golpe. Curva
   * suave de entrada y salida. Se usa en la 03 (y donde un fade quede
   * abrupto). */
  --ease-reveal: cubic-bezier(0.33, 0, 0.3, 1);

  /* Cruce de las palabras de fondo de la 01: aceleración SUAVE (lento al
   * principio, se apura sólo un poco) para que algo se alcance a leer. */
  --ease-terms: cubic-bezier(0.5, 0, 0.75, 0.35);
}
