/*
 * CIFRADO — Design tokens, Nivel 01 ("Protocolo de Acceso")
 * Entrega 5 — Sistema visual. Ruta 3 "La Evidencia", con las dos reglas
 * importadas de la Ruta 2 (rojo como firma de estado, no decorativo; dos
 * voces tipográficas: sistema/mono vs. narrativa/editorial).
 *
 * Tema único, deliberado: esta pantalla no se adapta a "modo claro". El
 * negro carbón y el rojo lacre son parte del concepto (evidencia,
 * chiaroscuro de "El Mensajero"), no una preferencia de color de
 * contenido general — igual que ya se documentó en portal/css/terminal.css.
 *
 * Sin fuentes externas: todos los stacks son de sistema. Evita una
 * dependencia de red y respeta el requisito de rendimiento del prompt
 * maestro (sección 8) sin sacrificar carácter tipográfico.
 */

:root {
  /* — Color: base — */
  --cf-negro-carbon: #0d0705;   /* fondo — cálido, no negro puro */
  --cf-negro-panel: #17110d;    /* superficie ligeramente elevada */
  --cf-hueso: #efe8da;          /* texto primario — cálido, no blanco puro */
  --cf-gris-tenue: #8f8676;     /* texto secundario / voz de sistema en reposo */
  --cf-borde-tenue: rgba(239, 232, 218, 0.14);

  /* — Color: rojo lacre, uso restringido (ver reglas del sello) — */
  --cf-rojo-lacre: #7a0e14;     /* superficie grande / el sello mismo */
  --cf-rojo-texto: #ff5347;     /* texto — contraste verificado sobre carbón */

  /* — Color: solo dentro de tratamiento fotográfico, nunca en UI — */
  --cf-ambar-practico: #a6672b;
  --cf-sombra-fria: #1b242c;

  /* — Tipografía: dos voces, ninguna es una fuente cargada por red — */
  --cf-fuente-sistema: ui-monospace, "Cascadia Code", "SF Mono", "Roboto Mono",
    "JetBrains Mono", Consolas, monospace;
  --cf-fuente-narrativa: ui-serif, "New York", "Iowan Old Style", Georgia,
    "Times New Roman", serif;
  /* El wordmark condensado (CI/FRA/DO.) NO es un token tipográfico: es un
     asset de marca fijo, usado tal cual, nunca como fuente de párrafo. */

  --cf-escala-base: 1rem;
  --cf-interlineado: 1.6;

  /* — Espaciado: escala de 8 pasos, base 4px — */
  --cf-espacio-1: 0.25rem;  /*  4px */
  --cf-espacio-2: 0.5rem;   /*  8px */
  --cf-espacio-3: 0.75rem;  /* 12px */
  --cf-espacio-4: 1rem;     /* 16px */
  --cf-espacio-5: 1.5rem;   /* 24px */
  --cf-espacio-6: 2rem;     /* 32px */
  --cf-espacio-7: 3rem;     /* 48px */
  --cf-espacio-8: 4rem;     /* 64px */

  /* — Retícula — */
  --cf-columna-lectura: 42rem;  /* ya en producción, portal/css/terminal.css */
  --cf-margen-movil: 1.25rem;
  --cf-margen-escritorio: 3.5rem;
  /* Escritorio no añade columnas: añade --cf-margen-escritorio de espacio
     negativo alrededor de la misma --cf-columna-lectura (decisión de la
     Entrega 4, ver entregas/04-wireframes.md). */

  /* — Movimiento — */
  --cf-duracion-linea: 220ms;         /* revelar una línea de log */
  --cf-duracion-descifrado: 2200ms;   /* dentro del rango 1.5–3s pedido */
  --cf-duracion-estado: 160ms;        /* hover/foco/disabled */
  --cf-curva-salida: cubic-bezier(0.22, 1, 0.36, 1); /* ease-out, sin rebote */

  /* — Foco y accesibilidad — */
  --cf-anillo-foco: 2px solid var(--cf-rojo-texto);
  --cf-objetivo-tactil-min: 44px;
}

/* Movimiento reducido: los tokens de duración colapsan a 0, no se borran
   las reglas de motion — así cualquier componente que ya use estas
   variables queda instantáneo sin tocarlo dos veces. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --cf-duracion-linea: 0ms;
    --cf-duracion-descifrado: 0ms;
    --cf-duracion-estado: 0ms;
  }
}
