{
  "meta": {
    "name": "Central Praia · Design System",
    "version": "1.0.0",
    "date": "2026-10-06",
    "locale": "pt-BR",
    "status": "Especificação v1 derivada; não representa aprovação adicional do cliente nem publicação no Figma.",
    "format": "JSON próprio: valores resolvidos e referências locais. Nenhuma compatibilidade de importação externa foi validada.",
    "sources": [
      "../../human-output/dna/central-praia/resultado/DNA.md",
      "../../human-output/dna/central-praia/referencias/04-brandbook-figma-v3.md",
      "../../build_brandbook_svg.mjs"
    ],
    "units": "px para medidas numéricas salvo indicação; rem no CSS de tipografia/espaçamento considera base padrão de 16px."
  },
  "primitive": {
    "color": {
      "cal": "#EAE3DC",
      "concreto": "#C5BEB5",
      "cimento": "#A7A19A",
      "asfalto": "#0D0816",
      "grafite": "#2B2730",
      "coral": "#D7474E",
      "obra": "#DF7026",
      "sodio": "#F1B94E",
      "pink": "#F31F78",
      "corpo": "#17131D",
      "apoio": "#514B58",
      "legenda": "#746D78",
      "linha": "#B4ADA6"
    },
    "fontFamily": {
      "display": "\"Archivo Expanded\", \"Arial Black\", sans-serif",
      "editorial": "\"Syne\", sans-serif",
      "body": "\"Inter Tight\", \"Arial\", sans-serif",
      "data": "\"Martian Mono\", \"Courier New\", monospace"
    },
    "spacePx": {
      "0": 0,
      "4": 4,
      "8": 8,
      "12": 12,
      "16": 16,
      "20": 20,
      "24": 24,
      "32": 32,
      "40": 40,
      "48": 48,
      "64": 64,
      "80": 80,
      "96": 96,
      "128": 128
    },
    "radiusPx": {
      "none": 0,
      "sm": 4,
      "md": 8
    },
    "borderWidthPx": {
      "default": 1,
      "strong": 2,
      "editorial": 4
    },
    "durationMs": {
      "fast": 120,
      "standard": 180,
      "slow": 240
    },
    "easing": {
      "standard": "cubic-bezier(0.2, 0, 0, 1)"
    },
    "zIndex": {
      "base": 0,
      "sticky": 10,
      "dropdown": 20,
      "overlay": 30,
      "dialog": 40,
      "toast": 50
    }
  },
  "semantic": {
    "light": {
      "bg": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-bg"
      },
      "surface": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-surface"
      },
      "surface-muted": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-surface-muted"
      },
      "surface-strong": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-surface-strong"
      },
      "text": {
        "ref": "primitive.color.corpo",
        "value": "#17131D",
        "css": "--cp-text"
      },
      "text-strong": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-text-strong"
      },
      "text-muted": {
        "ref": "primitive.color.apoio",
        "value": "#514B58",
        "css": "--cp-text-muted"
      },
      "text-on-dark": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-text-on-dark"
      },
      "text-muted-on-dark": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-text-muted-on-dark"
      },
      "border": {
        "ref": "primitive.color.linha",
        "value": "#B4ADA6",
        "css": "--cp-border"
      },
      "border-control": {
        "ref": "primitive.color.apoio",
        "value": "#514B58",
        "css": "--cp-border-control"
      },
      "accent": {
        "ref": "primitive.color.coral",
        "value": "#D7474E",
        "css": "--cp-accent"
      },
      "on-accent": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-on-accent"
      },
      "link": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-link"
      },
      "focus-light": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-focus-light"
      },
      "focus-dark": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-focus-dark"
      },
      "disabled-bg": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-disabled-bg"
      },
      "disabled-text": {
        "ref": "primitive.color.apoio",
        "value": "#514B58",
        "css": "--cp-disabled-text"
      },
      "disabled-border": {
        "ref": "primitive.color.cimento",
        "value": "#A7A19A",
        "css": "--cp-disabled-border"
      },
      "selected-bg": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-selected-bg"
      },
      "selected-text": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-selected-text"
      },
      "feedback-bg": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-feedback-bg"
      },
      "feedback-text": {
        "ref": "primitive.color.corpo",
        "value": "#17131D",
        "css": "--cp-feedback-text"
      },
      "feedback-border": {
        "ref": "primitive.color.apoio",
        "value": "#514B58",
        "css": "--cp-feedback-border"
      },
      "warning-bg": {
        "ref": "primitive.color.sodio",
        "value": "#F1B94E",
        "css": "--cp-warning-bg"
      },
      "warning-text": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-warning-text"
      }
    },
    "darkOverrides": {
      "bg": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-bg"
      },
      "surface": {
        "ref": "primitive.color.grafite",
        "value": "#2B2730",
        "css": "--cp-surface"
      },
      "surface-muted": {
        "ref": "primitive.color.grafite",
        "value": "#2B2730",
        "css": "--cp-surface-muted"
      },
      "surface-strong": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-surface-strong"
      },
      "text": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-text"
      },
      "text-strong": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-text-strong"
      },
      "text-muted": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-text-muted"
      },
      "border": {
        "ref": "primitive.color.apoio",
        "value": "#514B58",
        "css": "--cp-border"
      },
      "border-control": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-border-control"
      },
      "link": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-link"
      },
      "selected-bg": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-selected-bg"
      },
      "selected-text": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-selected-text"
      },
      "feedback-bg": {
        "ref": "primitive.color.grafite",
        "value": "#2B2730",
        "css": "--cp-feedback-bg"
      },
      "feedback-text": {
        "ref": "primitive.color.cal",
        "value": "#EAE3DC",
        "css": "--cp-feedback-text"
      },
      "feedback-border": {
        "ref": "primitive.color.concreto",
        "value": "#C5BEB5",
        "css": "--cp-feedback-border"
      }
    },
    "obraAccentOverrides": {
      "accent": {
        "ref": "primitive.color.obra",
        "value": "#DF7026",
        "css": "--cp-accent"
      },
      "on-accent": {
        "ref": "primitive.color.asfalto",
        "value": "#0D0816",
        "css": "--cp-on-accent"
      }
    }
  },
  "typography": {
    "display-xl": {
      "family": "display",
      "weight": 900,
      "sizeDesktopPx": 80,
      "sizeMobilePx": 40,
      "lineHeight": 1.0,
      "letterSpacingEm": -0.035
    },
    "display-lg": {
      "family": "display",
      "weight": 900,
      "sizeDesktopPx": 56,
      "sizeMobilePx": 32,
      "lineHeight": 1.05,
      "letterSpacingEm": -0.03
    },
    "heading-1": {
      "family": "display",
      "weight": 800,
      "sizeDesktopPx": 40,
      "sizeMobilePx": 28,
      "lineHeight": 1.1,
      "letterSpacingEm": -0.025
    },
    "heading-2": {
      "family": "display",
      "weight": 800,
      "sizeDesktopPx": 28,
      "sizeMobilePx": 24,
      "lineHeight": 1.15,
      "letterSpacingEm": -0.02
    },
    "heading-3": {
      "family": "display",
      "weight": 800,
      "sizeDesktopPx": 20,
      "sizeMobilePx": 20,
      "lineHeight": 1.2,
      "letterSpacingEm": -0.01
    },
    "editorial": {
      "family": "editorial",
      "weight": 800,
      "sizeDesktopPx": 40,
      "sizeMobilePx": 28,
      "lineHeight": 1.05,
      "letterSpacingEm": -0.02
    },
    "body-lg": {
      "family": "body",
      "weight": 400,
      "sizeDesktopPx": 20,
      "sizeMobilePx": 18,
      "lineHeight": 1.5,
      "letterSpacingEm": 0
    },
    "body": {
      "family": "body",
      "weight": 400,
      "sizeDesktopPx": 16,
      "sizeMobilePx": 16,
      "lineHeight": 1.5,
      "letterSpacingEm": 0
    },
    "body-sm": {
      "family": "body",
      "weight": 400,
      "sizeDesktopPx": 14,
      "sizeMobilePx": 14,
      "lineHeight": 1.5,
      "letterSpacingEm": 0
    },
    "label": {
      "family": "body",
      "weight": 600,
      "sizeDesktopPx": 16,
      "sizeMobilePx": 16,
      "lineHeight": 1.25,
      "letterSpacingEm": 0
    },
    "data": {
      "family": "data",
      "weight": 500,
      "sizeDesktopPx": 14,
      "sizeMobilePx": 14,
      "lineHeight": 1.5,
      "letterSpacingEm": 0
    },
    "data-lg": {
      "family": "data",
      "weight": 600,
      "sizeDesktopPx": 32,
      "sizeMobilePx": 28,
      "lineHeight": 1.2,
      "letterSpacingEm": -0.02
    },
    "micro": {
      "family": "data",
      "weight": 500,
      "sizeDesktopPx": 12,
      "sizeMobilePx": 12,
      "lineHeight": 1.5,
      "letterSpacingEm": 0
    }
  },
  "layout": {
    "maxWidthPx": 1280,
    "textMaxWidthCh": 65,
    "baseUnitPx": 4,
    "breakpoints": {
      "compact": {
        "minPx": 0,
        "columns": 4,
        "gutterPx": 16,
        "marginPx": 16
      },
      "medium": {
        "minPx": 600,
        "columns": 8,
        "gutterPx": 24,
        "marginPx": 24
      },
      "wide": {
        "minPx": 1024,
        "columns": 12,
        "gutterPx": 24,
        "marginPx": 40
      },
      "large": {
        "minPx": 1440,
        "columns": 12,
        "gutterPx": 32,
        "marginPx": 48
      }
    },
    "sectionGapPx": {
      "mobile": 48,
      "desktop": 80
    }
  },
  "components": {
    "button": {
      "minHeightPx": 48,
      "minTargetPx": 48,
      "compactMinHeightPx": 44,
      "paddingInlinePx": 20,
      "gapPx": 8,
      "radius": "sm",
      "font": "label",
      "primaryBg": "accent",
      "primaryText": "on-accent",
      "primaryBorder": "asfalto"
    },
    "field": {
      "minHeightPx": 48,
      "paddingInlinePx": 16,
      "paddingBlockPx": 12,
      "labelGapPx": 8,
      "helpGapPx": 8,
      "radius": "sm",
      "font": "body",
      "border": "border-control"
    },
    "card": {
      "paddingMobilePx": 16,
      "paddingDesktopPx": 24,
      "gapPx": 16,
      "radius": "md",
      "shadow": "none"
    },
    "badge": {
      "paddingInlinePx": 8,
      "paddingBlockPx": 4,
      "font": "micro",
      "radius": "none",
      "interactiveMinTargetPx": 48
    },
    "icon": {
      "sizePx": [
        16,
        20,
        24
      ],
      "strokeWidthPx": 2,
      "cap": "round",
      "join": "round"
    },
    "logo": {
      "minimumDigitalWidthPx": 24,
      "minimumPrintWidthMm": 8,
      "preferredDigitalWidthPx": 48,
      "recommendedCrowdedContextMinWidthPx": 32,
      "clearSpaceGeometryUnits": 30,
      "referenceViewBoxUnits": 512,
      "clearSpaceRatioOfViewBox": 0.05859375,
      "clearSpaceMeasurement": "A partir dos limites visíveis do símbolo, em cada lado. Não medir apenas da caixa do SVG.",
      "clearSpaceRenderedFormula": "renderedViewBoxWidthPx * 30 / 512",
      "reducedUsage": "Somente o símbolo.",
      "status": "Mínimos digital/impresso e respiro preservados do capítulo Respiro e Escala do brandbook; 32px em contexto cheio e 48px preferidos são recomendações adicionais da v1."
    },
    "focus": {
      "innerColor": "cal",
      "innerRingPx": 2,
      "outerColor": "asfalto",
      "outerRingTotalPx": 4,
      "requiredClearancePx": 4
    },
    "chart": {
      "primary": "asfalto",
      "accent": "coral",
      "support": "apoio",
      "requireLabels": true,
      "noColorOnlyMeaning": true
    }
  },
  "usageConstraints": [
    "Não alterar os 13 HEX de marca.",
    "Asfalto é o único texto normal recomendado sobre Coral; não substituir por Corpo ou Cal.",
    "Legenda não serve para metadado pequeno em Cal; usar Apoio.",
    "Linha e Cimento não servem como único contorno de controles em Cal.",
    "O tema escuro é um conjunto de aliases para blocos; revisar toda tela antes de declarar suporte a modo escuro.",
    "Não aplicar opacity, blend ou transparência aos pares auditados.",
    "Breakpoints do JSON exigem media queries literais; custom properties não funcionam como limites de media queries nativas.",
    "Dados ilustrativos sempre rotulados; disponibilidade e nota nunca inferidas."
  ]
}
