{
  "$description": "Brand: ProPublica — light mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette propublica@1.0.0",
      "warm-black": {
        "$value": "#111110",
        "$type": "color",
        "$description": "--p-color-warm-black — primary text and warm ink."
      },
      "black": {
        "$value": "#000000",
        "$type": "color",
        "$description": "--p-color-black — absolute black; mark fills."
      },
      "warm-white": {
        "$value": "#F2F1ED",
        "$type": "color",
        "$description": "--p-color-warm-white — the warm cream canvas."
      },
      "white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "--p-color-white — bright canvas alternate."
      },
      "investigative-red": {
        "$value": "#D92D03",
        "$type": "color",
        "$description": "ProPublica promo red — the CTA and emphasis color."
      },
      "investigative-red-deep": {
        "$value": "#A00000",
        "$type": "color",
        "$description": "Pressed / active variant of investigative red."
      },
      "theme-blue": {
        "$value": "#304154",
        "$type": "color",
        "$description": "Deep slate-blue theme accent from the propublica-2026 theme."
      },
      "gray-warm": {
        "$value": "#5A5A5A",
        "$type": "color",
        "$description": "Warm gray secondary text."
      },
      "gray-medium": {
        "$value": "#727272",
        "$type": "color",
        "$description": "Medium gray tertiary text and meta."
      },
      "gray-quiet": {
        "$value": "#979797",
        "$type": "color",
        "$description": "Quiet gray for disabled / meta."
      },
      "gray-border": {
        "$value": "#C7C7C7",
        "$type": "color",
        "$description": "Heavier border weight."
      },
      "gray-divider": {
        "$value": "#DFDFDF",
        "$type": "color",
        "$description": "Quiet rule weight."
      },
      "gray-tint": {
        "$value": "#EBEBEB",
        "$type": "color",
        "$description": "Quiet surface tint."
      }
    },
    "roles": {
      "$description": "Semantic color roles (light mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.warm-white}",
        "$type": "color",
        "$description": "background role → Warm White"
      },
      "surface": {
        "$value": "{color.swatches.gray-tint}",
        "$type": "color",
        "$description": "surface role → Gray Tint"
      },
      "surface-elevated": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "surface-elevated role → White"
      },
      "text-primary": {
        "$value": "{color.swatches.warm-black}",
        "$type": "color",
        "$description": "text-primary role → Warm Black"
      },
      "text-secondary": {
        "$value": "{color.swatches.gray-warm}",
        "$type": "color",
        "$description": "text-secondary role → Gray Warm"
      },
      "text-tertiary": {
        "$value": "{color.swatches.gray-medium}",
        "$type": "color",
        "$description": "text-tertiary role → Gray Medium"
      },
      "primary": {
        "$value": "{color.swatches.investigative-red}",
        "$type": "color",
        "$description": "primary role → Investigative Red"
      },
      "primary-hover": {
        "$value": "{color.swatches.investigative-red-deep}",
        "$type": "color",
        "$description": "primary-hover role → Investigative Red Deep"
      },
      "accent": {
        "$value": "{color.swatches.investigative-red}",
        "$type": "color",
        "$description": "accent role → Investigative Red"
      },
      "accent-hover": {
        "$value": "{color.swatches.investigative-red-deep}",
        "$type": "color",
        "$description": "accent-hover role → Investigative Red Deep"
      },
      "error": {
        "$value": "{color.swatches.investigative-red-deep}",
        "$type": "color",
        "$description": "error role → Investigative Red Deep"
      },
      "border": {
        "$value": "{color.swatches.gray-divider}",
        "$type": "color",
        "$description": "border role → Gray Divider"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.warm-white}",
          "$type": "color",
          "$description": "Brand role identity → Warm White"
        },
        "on-identity": {
          "$value": "{color.swatches.warm-black}",
          "$type": "color",
          "$description": "Brand role on-identity → Warm Black"
        },
        "primary": {
          "$value": "{color.swatches.investigative-red}",
          "$type": "color",
          "$description": "Brand role primary → Investigative Red"
        },
        "primary-hover": {
          "$value": "{color.swatches.investigative-red-deep}",
          "$type": "color",
          "$description": "Brand role primary-hover → Investigative Red Deep"
        },
        "accent": {
          "$value": "{color.swatches.investigative-red}",
          "$type": "color",
          "$description": "Brand role accent → Investigative Red"
        },
        "accent-hover": {
          "$value": "{color.swatches.investigative-red-deep}",
          "$type": "color",
          "$description": "Brand role accent-hover → Investigative Red Deep"
        },
        "mark": {
          "$value": "{color.swatches.warm-black}",
          "$type": "color",
          "$description": "Brand role mark → Warm Black"
        },
        "error": {
          "$value": "{color.swatches.investigative-red-deep}",
          "$type": "color",
          "$description": "Brand role error → Investigative Red Deep"
        },
        "text-primary-light": {
          "$value": "{color.swatches.warm-black}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Warm Black"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.warm-white}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → Warm White"
        },
        "background-light": {
          "$value": "{color.swatches.warm-white}",
          "$type": "color",
          "$description": "Brand role background-light → Warm White"
        },
        "background-dark": {
          "$value": "{color.swatches.warm-black}",
          "$type": "color",
          "$description": "Brand role background-dark → Warm Black"
        },
        "surface-light": {
          "$value": "{color.swatches.gray-tint}",
          "$type": "color",
          "$description": "Brand role surface-light → Gray Tint"
        },
        "surface-dark": {
          "$value": "{color.swatches.theme-blue}",
          "$type": "color",
          "$description": "Brand role surface-dark → Theme Blue"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.gray-warm}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Gray Warm"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.gray-medium}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Gray Medium"
        },
        "border-light": {
          "$value": "{color.swatches.gray-divider}",
          "$type": "color",
          "$description": "Brand role border-light → Gray Divider"
        }
      }
    }
  },
  "font": {
    "$description": "Typography roles mapped to font atoms",
    "heading": {
      "family": {
        "$value": [
          "Playfair Display",
          "Iowan Old Style",
          "Apple Garamond",
          "Baskerville",
          "Times New Roman",
          "serif"
        ],
        "$type": "fontFamily",
        "$description": "heading role → Playfair Display (playfair-display@1.0.0)"
      },
      "weight": {
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "body": {
      "family": {
        "$value": [
          "Lora",
          "Iowan Old Style",
          "Apple Garamond",
          "Baskerville",
          "Times New Roman",
          "serif"
        ],
        "$type": "fontFamily",
        "$description": "body role → Lora (lora@1.0.0)"
      },
      "weight": {
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "sans": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "sans role → Inter (inter@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "mono": {
      "family": {
        "$value": [
          "JetBrainsMono Nerd Font",
          "JetBrains Mono",
          "Fira Code",
          "Menlo",
          "Monaco",
          "Consolas",
          "Liberation Mono",
          "monospace"
        ],
        "$type": "fontFamily",
        "$description": "mono role → JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    }
  }
}
