{
  "$descripcion": "Tokens de diseño de Biocod para la app, ya resueltos en la paleta final dos tintas (D35). Fuente: src/styles/tokens.css y src/ui/retro/dos-tintas.css del repo astrocod-site. Los px son px CSS a 1x: en Android van como dp y en iOS como pt. Ver docs/handoff/DISENO-APP.md.",
  "version": "2026-10-25",
  "color": {
    "papel": {
      "hueso": { "valor": "#fbfaf6", "rol": "Fondo principal de toda la app" },
      "papel": {
        "valor": "#edf0f4",
        "rol": "La trama de añil: fondo alterno, bandas, el chat del cuaderno"
      },
      "superficie": { "valor": "#ffffff", "rol": "Tarjetas y campos" },
      "linea": {
        "valor": "#d8dee6",
        "rol": "Bordes de tarjeta y divisores (decorativo, 1.3:1)"
      },
      "bordeControl": {
        "valor": "#687b93",
        "rol": "Borde de campos y controles (4.15:1 sobre hueso)"
      }
    },
    "tinta": {
      "tinta": {
        "valor": "#1f2f46",
        "rol": "Todo el texto de lectura, títulos e íconos. 12.94:1 sobre hueso"
      },
      "tintaSuave": {
        "valor": "#4b5d78",
        "rol": "Solo datos cortos (fechas, notas). 6.41:1 sobre hueso"
      },
      "foco": { "valor": "#2f4a6d", "rol": "Anillo de foco (2px, offset 2px)" }
    },
    "anil": {
      "anil": {
        "valor": "#2f4a6d",
        "rol": "La tinta de marca: bandas llenas, acentos, avatar, el botón Hablar. 8.66:1 sobre hueso"
      },
      "anilHondo": {
        "valor": "#22385a",
        "rol": "Hover y presionado de lo añil. 11.29:1"
      },
      "anilTenue": {
        "valor": "#dce3ec",
        "rol": "Rellenos suaves, píldoras del árbol"
      },
      "anilClaro": {
        "valor": "#46679b",
        "rol": "El antiguo nopal: lazos, enlaces secundarios. 5.47:1 sobre hueso"
      },
      "anilClaroTenue": { "valor": "#ced8e6", "rol": "Relleno del anil claro" },
      "onAnil": { "valor": "#fbfaf6", "rol": "Texto sobre añil" }
    },
    "cempasuchil": {
      "cempasuchil": {
        "valor": "#f2a900",
        "rol": "La luz: el hilo, el logo, el sol, pétalos y el botón de acción. NUNCA texto sobre claro (1.92:1). Sobre añil 4.50:1"
      },
      "cempasuchilHover": {
        "valor": "#f4b524",
        "rol": "Hover del botón principal (cempasúchil 86% con blanco)"
      },
      "cempasuchilTenue": { "valor": "#fbe7b0", "rol": "Relleno suave cálido" },
      "barroTenueDosTintas": {
        "valor": "#f9e8c0",
        "rol": "Selección de una opción, píldora activa de la barra de pestañas"
      },
      "onCempasuchil": {
        "valor": "#1f2f46",
        "rol": "Texto sobre cempasúchil (6.73:1)"
      },
      "pespunte": { "valor": "#f7d687", "rol": "Costuras sobre papel" },
      "hiloTextoArchivo": {
        "valor": "#8a5a00",
        "rol": "Solo si un amarillo tiene que leerse como texto (5.67:1). En dos tintas se prefiere añil"
      }
    },
    "alerta": {
      "grana": {
        "valor": "#9b2c3a",
        "rol": "Reservado. No es error en rojo: los errores van en tinta con una marca"
      },
      "granaTenue": { "valor": "#f1d9dc", "rol": "Reservado" }
    },
    "logo": {
      "hilo": {
        "valor": "#f2a900",
        "rol": "El Hilo del símbolo, siempre, también de noche"
      },
      "palabraMaestro": {
        "valor": "#2f3328",
        "rol": "La palabra en los maestros del kit (tinta vieja). Ver nota de la sección 3.6 del handoff"
      },
      "palabraHueso": {
        "valor": "#fbfaf6",
        "rol": "La palabra sobre fondos oscuros"
      },
      "iconoFondo": {
        "valor": "#2f4a6d",
        "rol": "Fondo del ícono de app y del favicon; también theme-color"
      }
    },
    "emociones": {
      "$regla": "Son contenido, no interfaz: solo en el color del día. Cada color siempre con su nombre escrito. base para formas y auras, hondo para texto sobre hueso, noche para fondos oscuros (reloj).",
      "ilusion": {
        "nombre": "Ilusión",
        "pigmento": "Cempasúchil",
        "base": "#f2a900",
        "hondo": "#966900",
        "noche": "#f2a900"
      },
      "cansancioDulce": {
        "nombre": "Cansancio dulce",
        "pigmento": "Piloncillo",
        "base": "#d39556",
        "hondo": "#9f6529",
        "noche": "#d39556"
      },
      "coraje": {
        "nombre": "Coraje",
        "pigmento": "Achiote",
        "base": "#d2552f",
        "hondo": "#c04d2a",
        "noche": "#d55f3c"
      },
      "ternura": {
        "nombre": "Ternura",
        "pigmento": "Rosa mexicano",
        "base": "#ee8ab0",
        "hondo": "#d92066",
        "noche": "#ee8ab0"
      },
      "dueloTibio": {
        "nombre": "Duelo tibio",
        "pigmento": "Terciopelo",
        "base": "#a3416a",
        "hondo": "#a3416a",
        "noche": "#c2658c"
      },
      "querencia": {
        "nombre": "Querencia",
        "pigmento": "Jade",
        "base": "#5e9c84",
        "hondo": "#4a7b68",
        "noche": "#5e9c84"
      },
      "alivio": {
        "nombre": "Alivio",
        "pigmento": "Cal",
        "base": "#efe3c4",
        "hondo": "#8a6e25",
        "noche": "#efe3c4"
      },
      "pendiente": {
        "nombre": "Pendiente",
        "pigmento": "Cielo de lluvia",
        "base": "#8da9bc",
        "hondo": "#53768d",
        "noche": "#8da9bc"
      },
      "anoranza": {
        "nombre": "Añoranza",
        "pigmento": "Añil",
        "base": "#5f7fb5",
        "hondo": "#4f71ab",
        "noche": "#6685b8"
      },
      "desasosiego": {
        "nombre": "Desasosiego",
        "pigmento": "Muicle",
        "base": "#8a7fc8",
        "hondo": "#7366bd",
        "noche": "#8a7fc8"
      },
      "nostalgia": {
        "nombre": "Nostalgia de domingo",
        "pigmento": "Palo de Campeche",
        "base": "#8e5a9e",
        "hondo": "#8e5a9e",
        "noche": "#a072af"
      },
      "carga": {
        "nombre": "Carga",
        "pigmento": "Copal",
        "base": "#9c948f",
        "hondo": "#79706b",
        "noche": "#9c948f"
      },
      "deuda": {
        "nombre": "Deuda",
        "pigmento": "Café de olla",
        "base": "#7a5641",
        "hondo": "#7a5641",
        "noche": "#a8785d"
      },
      "orgullo": {
        "nombre": "Orgullo callado",
        "pigmento": "Obsidiana",
        "base": "#3f4756",
        "hondo": "#3f4756",
        "noche": "#77839b"
      }
    },
    "cueroPlus": {
      "$regla": "Cuero para lo que identifica (Biocod Plus, la carta del hilo, el cuaderno de la sesión). Papel para lo que se lee.",
      "base": "#26405e",
      "luz": "#3a5a80",
      "sombra": "#101c2c",
      "hilo": "#f2a900",
      "relleno": "#f6ebd3",
      "textoClaro": "#fbf1e2",
      "contraste": "Crema #f6ebd3 sobre cuero añil 8.97:1; hilo #f2a900 sobre cuero añil 5.29:1"
    },
    "reloj": {
      "fondo": "#000000",
      "texto": "#ffffff",
      "boton": "#2c2c2e",
      "botonAccion": "#f2a900",
      "textoBotonAccion": "#1c1306"
    }
  },
  "tipografia": {
    "familias": {
      "voz": {
        "familia": "Literata",
        "uso": "Todo lo que Biocod dice: preguntas, lecturas, títulos de sección, el texto de la sesión",
        "archivo": "public/fonts/literata-latin-opsz-normal.woff2 (pesos 200 a 900, eje opsz)"
      },
      "interfaz": {
        "familia": "Instrument Sans",
        "uso": "Todo lo que la interfaz hace: botones, pestañas, etiquetas, campos, notas",
        "archivo": "public/fonts/instrument-sans-latin-wght-normal.woff2 (400 a 700)"
      },
      "display": {
        "familia": "Fraunces",
        "instancia": "peso 450, opsz 144, SOFT 100, WONK 0",
        "uso": "Solo títulos grandes (la adivinanza de Hoy, el título de cada pestaña)",
        "archivo": "public/fonts/fraunces-display-450.woff2"
      },
      "crayola": {
        "familia": "Caveat Brush horneada en 3 cuadros (Crayola Biocod 1, 2, 3)",
        "uso": "Solo el remate de un título de 32 px o más. Hierve a 8 cuadros por segundo",
        "archivos": "public/fonts/crayola-*.woff2, textura public/texturas/cera.png"
      }
    },
    "escala": {
      "$nota": "La landing usa rem con clamp. En la app, tamaños fijos en sp/pt que respetan la letra del sistema. Piso absoluto: 16.",
      "display": {
        "min": 44,
        "max": 96,
        "lineHeight": 0.98,
        "tracking": "-0.015em"
      },
      "tituloPantalla": {
        "tamano": 34,
        "familia": "display",
        "fuente": "mockups (Mi árbol, Hoy)"
      },
      "h2": {
        "min": 32,
        "max": 56,
        "peso": 600,
        "lineHeight": 1.05,
        "tracking": "-0.01em"
      },
      "h3": { "tamano": 26, "peso": 600, "lineHeight": 32 },
      "lectura": {
        "tamano": 18,
        "lineHeight": 29,
        "tamanoGrande": 20,
        "lineHeightGrande": 32,
        "anchoMaximo": "62ch"
      },
      "interfaz": { "tamano": 18, "lineHeight": 1.5 },
      "boton": { "tamano": 17, "peso": 600, "lineHeight": 1.1 },
      "nota": { "tamano": 16, "lineHeight": 22 },
      "sobretitulo": {
        "tamano": 16,
        "peso": 600,
        "tracking": "0.01em",
        "caso": "tipo oración, nunca mayúsculas"
      },
      "burbujaSesion": { "tamano": 26, "familia": "voz" },
      "pestana": { "tamano": 16, "pesoInactiva": 500, "pesoActiva": 600 }
    }
  },
  "espacio": {
    "1": 4,
    "2": 8,
    "3": 12,
    "4": 16,
    "5": 24,
    "6": 32,
    "7": 48,
    "8": 72,
    "9": 112,
    "canalTelefono": 16
  },
  "tactil": {
    "minimo": 48,
    "principal": 56,
    "botonAlto": 56,
    "aireEntreToques": 8
  },
  "radio": {
    "campo": 12,
    "tarjetaApp": 18,
    "tarjeta": 20,
    "hoja": 28,
    "pantalla": 36,
    "pildora": 999
  },
  "sombra": {
    "$regla": "El papel va plano (borde de 1.5px, sin sombra). Las sombras son para el cuero, el canto de los botones y los aparatos.",
    "cantoBoton": "0 3px 0 #1f2f46, con borde interior de 1.5px #1f2f46",
    "cantoBotonPresionado": "0 1px 0 #1f2f46 y se baja 2px",
    "cuero": "inset brillo rgba(255,214,170,.3), inset 0 -3px 10px rgba(30,12,4,.4), borde inset 1px, caída 0 20px 36px -18px rgba(74,35,18,.6)"
  },
  "grano": {
    "procedural": "Tesela de ruido gris de 128x128, generada en el dispositivo, mezcla soft-light",
    "opacidad": {
      "hero": 0.23,
      "pantallaHoy": 0.23,
      "cierre": 0.14,
      "auraDelDia": 0.7
    },
    "regla": "Solo sobre auras y supergráficas, nunca sobre texto ni sobre controles. Nunca opacity ni isolation en el contenedor padre"
  },
  "movimiento": {
    "duracion": {
      "rapida": 200,
      "base": 400,
      "lenta": 800,
      "costura": 1600,
      "presion": 120,
      "gesto": 520,
      "arbol": 3800,
      "respiracionAura": 8000,
      "rotacionPlaca": 5000
    },
    "curvas": {
      "hilo": "cubic-bezier(0.65, 0, 0.35, 1)",
      "rebote": "cubic-bezier(0.34, 1.4, 0.64, 1)",
      "colocado": "cubic-bezier(0.19, 1, 0.22, 1)",
      "nodo": "cubic-bezier(0.34, 1.56, 0.64, 1)"
    },
    "regla": "Todo lo que da vueltas se detiene fuera de pantalla, con el control global de pausa y con movimiento reducido del sistema"
  }
}
