{
  "$schema": "https://schemas.arcasiles.com/design-tokens-1.0",
  "_meta.name": "Arcasiles Group Design Tokens",
  "_meta.version": "5.0.1",
  "_meta.source": "design-system.md + decisiones del operador (v1.5.0 = rojo danger + Tech monocromo; v1.6.0 = accentLine tech amarilla + scale_slide_pt + Button v2; v1.7.0 = ronda 3: Tech negro+amarillo en charts y portada, Callout absorbe Toast con tonos semánticos + iconos, hover de botón ilumina; v1.7.1 = Música AAA: el naranja que lleva texto usa deepOrange-900 #6f472d [#f5f5f5 7.37:1], el #da7835 vibrante queda como accentLine; v1.7.2 = SSOT total (spec-003 G1+G2): el dataset de paleta y la constante de versión se GENERAN desde este canon vía sd.build.mjs (único escritor); web y kit dejan de copiar hex a mano, guard cross-lang activo; v2.0.0 = spec-005 M1: se COLAPSA la taxonomía de 5 divisiones en 4 acentos semánticos (amber | lila | deep-orange | ink), cada uno con fill / on-fill / text-safe [+ accentLine decorativa en deep-orange]. Revisiones de paleta que SUBEN conformidad [D-005-15]: lila-como-texto usa lila-700 #533f76 [AA→AAA], ámbar es fill-only, ink [#272727] se reclasifica como acento monocromo. divisions.tokens.json + dist/divisions.css eliminados sin shim. BREAKING.; v2.1.0 = restauración de diseño (wave 1 foundation): (a) radius.badge vuelve al PILL 100px [el chip cuadrado 4pt rompía el diseño y no tenía relación a11y; la desambiguación Button↔Badge es de peso/tipo/interactividad, no de esquina]; (b) la paleta de acentos se AMPLÍA de 4 a 7 hues seleccionables — se ASCIENDE el naranja vibrante #da7835 [antes accentLine decorativa de deep-orange] a acento de primera clase `orange`, y se REINSTAURAN `pink` #e887a7 y `green` #7fbf80. Los tres nuevos son fill-only [fill claro/medio → onFill tinta #272727 + text-safe = stop -900 de su rampa, AA/AAA sobre claro]; deep-orange conserva su accentLine. Additive: no se sacrifica ningún win previo [a11y WCAG 2.2, mobile-first, contraste no-texto 1.4.11].; v2.2.0 = spec-005 wave B (sistema de color): (a) se RETIRA el acento `deep-orange` [fill #6f472d marrón fangoso, no elegido por el operador] y con él su accentLine; sus hex #6f472d/#da7835 SIGUEN disponibles como stops dark/text-safe del acento `orange`. (b) Entra el acento `blue` que equilibra la paleta cálida: fill = deepBlue #114F82 [onFill blanco 7.82:1, AAA], text-safe = blue-900 #275466 [8.25:1 sobre blanco, AAA] — dark-fill como lila/ink. Set seleccionable final [7]: amber, lila, blue, ink, orange, pink, green. Sin accentLine en ningún acento [el ambient --arc-accent-line sigue mapeando al fill vía accentAmbientVars]. Reasignación de capítulos deep-orange→blue [Tipografía, MCP], sin dos capítulos adyacentes con el mismo hue. Charts a11y: las LÍNEAS/puntos usan el stop text-safe oscuro del acento [≥3:1 sobre el plot], el total central del donut y las cifras de Metric/precio van en tinta #272727. BREAKING [muere el acento deep-orange sin shim].; v2.3.0 = spec-005 wave E3 (rampas estudiadas): se REDISENAN las 7 rampas cromaticas (primary/lila/pinkLila/deepOrange/green/blue/red) como escalas perceptualmente armonicas en OKLCH — tono ~constante con torsion de matiz en los oscuros (los 700/900 rotan calidos/profundos para leer como sombra RICA on-hue: el ambar oscurece a bronce #8d5d27 [no oliva]; verde a bosque #386848; naranja a terracota #794224; rosa a vino #7c485e; azul a navy-teal #135471) con croma SOSTENIDO [no colapsado] en los stops profundos; los tints 100/300 conservan croma para leer tenidos [limpios, no grises]. 500 = valor de marca INTACTO en las 7. neutral [grises] sin cambios. Todo stop que resuelve fill/text-safe de acento sigue pasando el gate de contraste: text-safe fill-only ambar/verde AA, naranja/rosa AAA; dark-fill lila/blue AAA; iconos de Callout >=3:1 sobre su -100. Sin cambio de acentos, hues de marca ni motion.; v3.0.0 = spec-008 sub-002 (canon de color): las tres taxonomias solapadas core/secondary/tertiary COLAPSAN en cuatro buckets con nombres en ingles [D-008-03]: neutral = escala de 5 pasos black #272727 · darkGray · gray · lightGray · white; surface = paper #faf9f7 [antes core.light: no es un neutro, es una superficie, D-008-15]; brand = los 6 hues de marca como alias del stop 500 de su rampa + deepBlue #114F82 [que no es stop de ninguna rampa]; ramps sin cambio de valor. Los nombres compuestos mueren SIN SHIM [regla 13.3, D-008-18]: pinkLila→pink y deepOrange→orange [tono y familia de rampa a la vez], deepGreen #3b5e5f BORRADO [cero consumidores]. SWAP DE VALOR: el paso final de la escala y lightGray INTERCAMBIAN sus dos valores claros; el blanco-tinta de la marca [el texto que va sobre fondo oscuro] pasa a llamarse lightGray. Los 21 hex de acento y los 40 stops de rampa quedan INTACTOS: la paleta no se redisena, solo su taxonomia. BREAKING.; v4.0.0 = el paso claro que porta tinta RECUPERA su nombre: neutral.lightGray -> neutral.whitesmoke (--arc-light-gray -> --arc-whitesmoke). El hex #f5f5f5 NO se mueve y su rol tampoco: sigue siendo el claro que lleva texto sobre oscuro y el onFill de lila/blue/ink. El nombre viejo mentia desde el swap de v3.0.0 -- #f5f5f5 es literalmente el color CSS `whitesmoke`, y llamarlo lightGray obligaba a leer el hex para saber cual de los dos claros era. La escala neutra queda black #272727 . darkGray #afafaf . gray #e9e9e9 . whitesmoke #f5f5f5 . white [claro frio]: monotona en luminancia y con cinco nombres descriptivos. Sin shim (regla 13.3). El relleno de LOGOTIPO que se llamaba `whitesmoke` y entintaba #e2e2e2 pasa a llamarse `soft` en el mismo cambio, para que la palabra `whitesmoke` nombre un solo valor en todo el sistema; su tinta no se toca. BREAKING.; v4.1.0 = motion por BANDAS. La escala de duracion dejaba de decir para QUE servia cada valor y se aplicaba una sola a todo: 26 interacciones de puntero heredaban la duracion de ENTRADA (480ms) -- el hover del CTA principal tardaba medio segundo. Se anade `durationPress` 120ms [feedback de pulsacion; Emil Kowalski 100-160ms, Apple ~100ms y responde en pointer-down] y `durationFast` baja 280 -> 200ms [hover/foco/estado, banda 125-250ms]. `duration` 480ms y `durationSlow` 720ms NO se tocan: son la calma que pidio el operador en 77b3cf4 y caen dentro de la banda 200-500ms de modales y superficies. Un solo easing, sin cambios.); v5.0.0 = spec-010: se RETIRA el quinto paso neutral redundante sin alias; neutral queda en cuatro pasos y Paper se consolida como unica superficie clara de marca. Whitesmoke conserva la tinta clara sobre fondos oscuros y el blanco puro sigue siendo solo una utilidad tecnica. BREAKING.",
  "_meta.lang": "es",
  "_meta.note": "Fuente única de verdad MÁQUINA. Los 7 acentos semánticos seleccionables (amber | lila | blue | ink | orange | pink | green) = Brand Guideline (confirmado por el operador).",
  "color.neutral.black": "#272727",
  "color.neutral.darkGray": "#afafaf",
  "color.neutral.gray": "#e9e9e9",
  "color.neutral.whitesmoke": "#f5f5f5",
  "color.surface.paper": "#faf9f7",
  "color.brand.primary": "#f9be4a",
  "color.brand.green": "#7fbf80",
  "color.brand.blue": "#2797c4",
  "color.brand.lila": "#674a98",
  "color.brand.pink": "#e887a7",
  "color.brand.orange": "#da7835",
  "color.brand.deepBlue": "#114F82",
  "color.functional.calloutBgYellow": "#FFF8E7",
  "color.functional.calloutBgLila": "#F3EFF8",
  "color.functional.link": "#114F82",
  "color.functional.success": "#7fbf80",
  "color.functional.info": "#2797c4",
  "color.functional.warn": "#f9be4a",
  "color.functional.danger": "#b3362a",
  "color.ramps._note": "Rampas planas 2026-07-14 (tints/shades de hues de marca; 500 = valor de marca). Colores extendidos para dataviz/visuales salen SOLO de aquí.",
  "color.ramps.primary.100": "#ffefd0",
  "color.ramps.primary.300": "#ffda9e",
  "color.ramps.primary.500": "#f9be4a",
  "color.ramps.primary.700": "#bd8638",
  "color.ramps.primary.900": "#8d5d27",
  "color.ramps.lila.100": "#eae4f8",
  "color.ramps.lila.300": "#b8a6dc",
  "color.ramps.lila.500": "#674a98",
  "color.ramps.lila.700": "#553d79",
  "color.ramps.lila.900": "#412f59",
  "color.ramps.pink.100": "#ffebf1",
  "color.ramps.pink.300": "#febcd0",
  "color.ramps.pink.500": "#e887a7",
  "color.ramps.pink.700": "#b26481",
  "color.ramps.pink.900": "#7c485e",
  "color.ramps.orange.100": "#feeadd",
  "color.ramps.orange.300": "#f8b991",
  "color.ramps.orange.500": "#da7835",
  "color.ramps.orange.700": "#ab5d2b",
  "color.ramps.orange.900": "#794224",
  "color.ramps.green.100": "#e6f8e7",
  "color.ramps.green.300": "#b1e1b5",
  "color.ramps.green.500": "#7fbf80",
  "color.ramps.green.700": "#4a8d5b",
  "color.ramps.green.900": "#386848",
  "color.ramps.blue.100": "#daf1fe",
  "color.ramps.blue.300": "#8acdee",
  "color.ramps.blue.500": "#2797c4",
  "color.ramps.blue.700": "#17759b",
  "color.ramps.blue.900": "#135471",
  "color.ramps.red.100": "#fde0dd",
  "color.ramps.red.300": "#e39992",
  "color.ramps.red.500": "#b3362a",
  "color.ramps.red.700": "#8e2a2a",
  "color.ramps.red.900": "#692426",
  "color.ramps.neutral.100": "#f3f3f3",
  "color.ramps.neutral.300": "#d7d7d7",
  "color.ramps.neutral.500": "#afafaf",
  "color.ramps.neutral.700": "#868686",
  "color.ramps.neutral.900": "#5d5d5d",
  "accent.amber.fill": "#f9be4a",
  "accent.amber.onFill": "#272727",
  "accent.amber.textSafe": "#8d5d27",
  "accent.lila.fill": "#674a98",
  "accent.lila.onFill": "#f5f5f5",
  "accent.lila.textSafe": "#553d79",
  "accent.blue.fill": "#114F82",
  "accent.blue.onFill": "#f5f5f5",
  "accent.blue.textSafe": "#135471",
  "accent.ink.fill": "#272727",
  "accent.ink.onFill": "#f5f5f5",
  "accent.ink.textSafe": "#272727",
  "accent.orange.fill": "#da7835",
  "accent.orange.onFill": "#272727",
  "accent.orange.textSafe": "#794224",
  "accent.pink.fill": "#e887a7",
  "accent.pink.onFill": "#272727",
  "accent.pink.textSafe": "#7c485e",
  "accent.green.fill": "#7fbf80",
  "accent.green.onFill": "#272727",
  "accent.green.textSafe": "#386848",
  "typography.fonts.display.family": "BDSupperBold",
  "typography.fonts.display.file": "fonts/BDSupperBold.ttf",
  "typography.fonts.display.use": "títulos de página, métricas, número de beneficio, CTA",
  "typography.fonts.text.family": "Lexend",
  "typography.fonts.text.file": "fonts/Lexend/",
  "typography.fonts.text.weights": [
    300,
    400,
    500,
    600,
    700
  ],
  "typography.fonts.text.use": "titulares y cuerpo",
  "typography.scale_web_pt.coverTitle.font": "Lexend",
  "typography.scale_web_pt.coverTitle.size": 34,
  "typography.scale_web_pt.coverTitle.weight": 700,
  "typography.scale_web_pt.coverTitle.color": "#272727",
  "typography.scale_web_pt.h1.font": "BDSupperBold",
  "typography.scale_web_pt.h1.size": 24,
  "typography.scale_web_pt.h1.color": "#272727",
  "typography.scale_web_pt.h2.font": "Lexend",
  "typography.scale_web_pt.h2.size": 13,
  "typography.scale_web_pt.h2.weight": 600,
  "typography.scale_web_pt.h2.color": "#272727",
  "typography.scale_web_pt.h3.font": "Lexend",
  "typography.scale_web_pt.h3.size": 11,
  "typography.scale_web_pt.h3.weight": 600,
  "typography.scale_web_pt.h3.color": "accent|#272727",
  "typography.scale_web_pt.body.font": "Lexend",
  "typography.scale_web_pt.body.size": 10.5,
  "typography.scale_web_pt.body.weight": 400,
  "typography.scale_web_pt.body.color": "#272727",
  "typography.scale_web_pt.bodyEmphasis.font": "Lexend",
  "typography.scale_web_pt.bodyEmphasis.size": 10.5,
  "typography.scale_web_pt.bodyEmphasis.weight": 600,
  "typography.scale_web_pt.tableCell.font": "Lexend",
  "typography.scale_web_pt.tableCell.size": 9.5,
  "typography.scale_web_pt.tableCell.weight": 400,
  "typography.scale_web_pt.badge.font": "Lexend",
  "typography.scale_web_pt.badge.size": 9,
  "typography.scale_web_pt.badge.weight": 600,
  "typography.scale_web_pt.badge.color": "#f5f5f5",
  "typography.scale_web_pt.caption.font": "Lexend",
  "typography.scale_web_pt.caption.size": 9,
  "typography.scale_web_pt.caption.weight": 300,
  "typography.scale_web_pt.caption.color": "#afafaf",
  "typography.scale_web_pt.metricValue.font": "BDSupperBold",
  "typography.scale_web_pt.metricValue.size": 28,
  "typography.scale_web_pt.metricValue.color": "accent",
  "typography.scale_web_pt.benefitNumber.font": "BDSupperBold",
  "typography.scale_web_pt.benefitNumber.size": 22,
  "typography.scale_web_pt.benefitNumber.color": "accent",
  "typography.scale_web_pt.ctaTitle.font": "BDSupperBold",
  "typography.scale_web_pt.ctaTitle.size": 40,
  "typography.scale_web_pt.ctaTitle.color": "#f5f5f5",
  "typography.scale_web_pt.copyright.font": "Lexend",
  "typography.scale_web_pt.copyright.size": 8,
  "typography.scale_web_pt.copyright.weight": 400,
  "typography.scale_web_pt.copyright.color": "#afafaf",
  "typography.scale_web_pt.subtitle.font": "Lexend",
  "typography.scale_web_pt.subtitle.size": 14,
  "typography.scale_web_pt.subtitle.weight": 400,
  "typography.scale_web_pt.subtitle.color": "#5d5d5d",
  "typography.scale_web_pt.subtitle.note": "subtítulo de documento bajo h1 (A4); cierra el salto 24pt→13pt",
  "typography.scale_slide_pt._note": "Escala para presentaciones 16:9 (PPTX / SlidePage, lienzo 254×142.9mm). Misma jerarquía que A4, cuerpos mayores por distancia de lectura.",
  "typography.scale_slide_pt.slideTitle.font": "BDSupperBold",
  "typography.scale_slide_pt.slideTitle.size": 30,
  "typography.scale_slide_pt.slideTitle.color": "#272727",
  "typography.scale_slide_pt.slideSubtitle.font": "Lexend",
  "typography.scale_slide_pt.slideSubtitle.size": 16,
  "typography.scale_slide_pt.slideSubtitle.weight": 400,
  "typography.scale_slide_pt.slideSubtitle.color": "#5d5d5d",
  "typography.scale_slide_pt.slideH2.font": "Lexend",
  "typography.scale_slide_pt.slideH2.size": 20,
  "typography.scale_slide_pt.slideH2.weight": 700,
  "typography.scale_slide_pt.slideH2.color": "#272727",
  "typography.scale_slide_pt.slideBody.font": "Lexend",
  "typography.scale_slide_pt.slideBody.size": 13,
  "typography.scale_slide_pt.slideBody.weight": 400,
  "typography.scale_slide_pt.slideBody.color": "#272727",
  "typography.scale_slide_pt.slideCaption.font": "Lexend",
  "typography.scale_slide_pt.slideCaption.size": 10,
  "typography.scale_slide_pt.slideCaption.weight": 300,
  "typography.scale_slide_pt.slideCaption.color": "#5d5d5d",
  "typography.lineHeight.display": 1.1,
  "typography.lineHeight.headings": 1.25,
  "typography.lineHeight.body": 1.6,
  "typography.minLegiblePt": 8,
  "spacing_pt": [
    3,
    5,
    8,
    10,
    12,
    14,
    16,
    18,
    20,
    36
  ],
  "sizes_pt._note": "Escalas de tamaño con valores explícitos (review 2026-07-14): máximo 3 tamaños por componente.",
  "sizes_pt.avatar.sm": 20,
  "sizes_pt.avatar.md": 28,
  "sizes_pt.avatar.lg": 36,
  "sizes_pt.logo.nav": 38,
  "sizes_pt.logo.footer": 30,
  "sizes_pt.logo.coverMin": 220,
  "sizes_pt.icon.sm": 11,
  "sizes_pt.icon.md": 16,
  "sizes_pt.icon.lg": 20,
  "radius.metric": "6pt",
  "radius.card": "8pt",
  "radius.badge": "100px",
  "motion._note": "Cuatro bandas por TIPO de interaccion, no una escala aplicada a todo (2026-07-27, ver motion.md). press 120ms = feedback de pulsacion [Emil Kowalski 100-160ms; Apple: responde en pointer-down]. fast 200ms = hover, foco y cambio de estado [125-250ms]. duration 480ms = aparicion de un elemento, modal, popover [200-500ms]. slow 720ms = superficie grande y entrada al hacer scroll [puede ser mas larga]. Un solo easing: cubic-bezier(0.19,1,0.22,1), ease-out exponencial. Salidas mas rapidas que entradas.",
  "motion.durationPressMs": 120,
  "motion.durationFastMs": 200,
  "motion.durationMs": 480,
  "motion.durationSlowMs": 720,
  "motion.ease": "cubic-bezier(0.19, 1, 0.22, 1)",
  "layout.page": "A4 (210x297mm)",
  "layout.marginsMm": 25.4,
  "layout.footer": "bottom 8mm, right margin (idéntico en TODAS las páginas)",
  "layout.maxEmptySpacePct": 20,
  "rules.prohibited": [
    "texto amarillo sobre fondo blanco (contraste)",
    "recrear el logo con texto",
    "más de dos fuentes",
    "una tarjeta, panel o contenedor con una franja de color pegada solo al borde superior, inferior, izquierdo o derecho"
  ],
  "rules.calc": "siempre con espacios alrededor de +/- en calc()",
  "rules.focus": "foco visible siempre: outline 2pt solid var(--arc-blue) con outline-offset 2px; sobre superficie de acento el anillo pasa a var(--arc-black) con halo box-shadow 0 0 0 5px rgba(245,245,245,.85) — el azul da 1.98:1 sobre el ámbar"
}
