/**
 * Design tokens — Virtual Space CR (VSCR-02C).
 *
 * Traducción literal de la tabla de tokens de
 * docs/Handoff/design_handoff_virtual_space_cr/README.md. No cambiar
 * un valor aquí sin actualizar esa fuente: es la especificación
 * aprobada en VSCR-27, no una decisión de esta unidad.
 */
:root {
  /* Color */
  --azul-profundo: #0B1157;
  --azul-profundo-900: #070B36;
  --dorado: #F0BF2E;
  --azul-senal: #146AA8;
  --azul-malla: #2E9BE6;
  --tinta: #14171F;
  --tinta-60: #4A5160;
  --tinta-45: #6B7382;
  --tinta-30: #8B93A3;
  --fondo-suave: #F4F6F8;
  --borde: #E3E6EC;
  --borde-campo: #C9CFD8;
  --blanco: #FFFFFF;
  --error: #B3261E;
  --error-fondo: #FFF7F6;
  --exito: #1B7A4B;
  --exito-fondo: #F6FBF8;
  --sobre-oscuro: #B9C4E0;
  --sobre-oscuro-2: #A9B4D4;
  --sobre-oscuro-3: #8E9AC4;
  --borde-oscuro: #263173;
  --borde-oscuro-2: #222A63;

  /* Tipografía */
  --fuente-titulos: 'Montserrat', sans-serif;
  --fuente-texto: 'Open Sans', sans-serif;
  --fuente-mono: 'IBM Plex Mono', monospace;

  --h1-desktop: 52px;
  --h1-interna-desktop: 44px;
  --h1-mobile: 32px;
  --h2-desktop: 38px;
  --h2-sub-desktop: 30px;
  --h2-mobile: 26px;
  --h3-desktop: 26px;
  --h3-mobile: 22px;
  --h4-desktop: 19px;
  --h4-mobile: 18px;
  --lead-desktop: 18px;
  --lead-mobile: 16px;
  --cuerpo-desktop: 16px;
  --cuerpo-mobile: 15px;
  --nav-desktop: 14px;
  --nav-mobile: 17px;
  --boton-desktop: 15px;
  --boton-mobile: 16px;
  --mono-desktop: 12px;
  --mono-mobile: 11px;
  --meta-desktop: 14px;
  --meta-mobile: 13px;

  /* Espaciado — escala base 4px */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 10px;
  --sp-4: 12px;
  --sp-5: 14px;
  --sp-6: 16px;
  --sp-7: 20px;
  --sp-8: 24px;
  --sp-9: 28px;
  --sp-10: 32px;
  --sp-11: 40px;
  --sp-12: 44px;
  --sp-13: 48px;
  --sp-14: 56px;
  --sp-15: 64px;
  --sp-16: 88px;

  --seccion-py-desktop: var(--sp-16);
  --seccion-py-tablet: var(--sp-14);
  --seccion-py-mobile: 36px;
  --contenedor-margen-desktop: var(--sp-14);
  --contenedor-margen-tablet: var(--sp-10);
  --contenedor-margen-mobile: var(--sp-7);
  --contenedor-margen-mobile-360: var(--sp-6);
  --contenedor-max: 1440px;

  /* Medidas de lectura (VSCR-74).
     Se expresan en `ch` a propósito: la medida se define en caracteres, no
     en píxeles, así que se normaliza sola entre el cuerpo (15px) y el lead
     (16px) sin duplicar valores por tamaño de fuente. Ambas están calibradas
     contra la línea real medida en Chrome — a 15px Open Sans el cuerpo da 74
     caracteres a 62ch y 76 a 64ch; a partir de ~68ch se pasa de los 80
     caracteres que marca el objetivo de legibilidad. */
  --medida-intro: 66ch;
  --medida-editorial: 64ch;

  /* Radios y sombras */
  --radio: 0;
  --sombra-overlay: 0 12px 40px rgba(11, 17, 87, .08);
  --borde-estructura: 1px solid var(--borde);
  --borde-campo-normal: 1.5px solid var(--borde-campo);
  --borde-boton-secundario: 1.5px solid var(--azul-profundo);

  /* Movimiento */
  --dur-hover: 150ms;
  --dur-acordeon: 220ms;
  --dur-reveal: 300ms;
  --curva: cubic-bezier(.2, 0, 0, 1);
}
