{
  "$description": "Brand: The Washington Post — dark mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette wapo@1.0.0",
      "gray-0": {
        "$value": "#000000",
        "$type": "color",
        "$description": "WPDS gray0 — absolute black; mark fills."
      },
      "gray-20": {
        "$value": "#111111",
        "$type": "color",
        "$description": "WPDS gray20 — primary text; the WaPo ink."
      },
      "gray-40": {
        "$value": "#2A2A2A",
        "$type": "color",
        "$description": "WPDS gray40 — heading deck and body emphasis."
      },
      "gray-60": {
        "$value": "#494949",
        "$type": "color",
        "$description": "WPDS gray60 — secondary text."
      },
      "gray-80": {
        "$value": "#666666",
        "$type": "color",
        "$description": "WPDS gray80 — accessible quiet text on white."
      },
      "gray-100": {
        "$value": "#737373",
        "$type": "color",
        "$description": "WPDS gray100 — meta text; tertiary surfaces."
      },
      "gray-200": {
        "$value": "#AAAAAA",
        "$type": "color",
        "$description": "WPDS gray200 — divider weight."
      },
      "gray-300": {
        "$value": "#D4D4D4",
        "$type": "color",
        "$description": "WPDS gray300 — border on light."
      },
      "gray-400": {
        "$value": "#E9E9E9",
        "$type": "color",
        "$description": "WPDS gray400 — quiet surface tint."
      },
      "gray-500": {
        "$value": "#F0F0F0",
        "$type": "color",
        "$description": "WPDS gray500 — alternating row tint."
      },
      "gray-600": {
        "$value": "#F7F7F7",
        "$type": "color",
        "$description": "WPDS gray600 — subtle inset surface."
      },
      "gray-700": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "WPDS gray700 — white canvas."
      },
      "blue-40": {
        "$value": "#0A3258",
        "$type": "color",
        "$description": "WPDS blue40 — deepest navy ink-blue."
      },
      "blue-60": {
        "$value": "#0F4B84",
        "$type": "color",
        "$description": "WPDS blue60 — heading-blue and trusted-source link."
      },
      "blue-80": {
        "$value": "#1366B3",
        "$type": "color",
        "$description": "WPDS blue80 — quiet primary on dark surfaces."
      },
      "blue-100": {
        "$value": "#166DFC",
        "$type": "color",
        "$description": "WPDS blue100 — primary CTA blue."
      },
      "blue-200": {
        "$value": "#5784C5",
        "$type": "color",
        "$description": "WPDS blue200 — calmer link on lighter contexts."
      },
      "red-60": {
        "$value": "#8E1F1B",
        "$type": "color",
        "$description": "WPDS red60 — deep newsroom red."
      },
      "red-80": {
        "$value": "#BE2C25",
        "$type": "color",
        "$description": "WPDS red80 — emphasis and breaking-news pulse."
      },
      "red-100": {
        "$value": "#EA0017",
        "$type": "color",
        "$description": "WPDS red100 — masthead-bright breaking red."
      },
      "orange-80": {
        "$value": "#D86100",
        "$type": "color",
        "$description": "WPDS orange80 — warning emphasis."
      },
      "green-80": {
        "$value": "#499327",
        "$type": "color",
        "$description": "WPDS green80 — confirmation / positive change."
      },
      "gold-60": {
        "$value": "#9E6105",
        "$type": "color",
        "$description": "WPDS gold60 — opinion/analysis category accent."
      }
    },
    "roles": {
      "$description": "Semantic color roles (dark mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.gray-20}",
        "$type": "color",
        "$description": "background role → Gray 20"
      },
      "surface": {
        "$value": "{color.swatches.gray-40}",
        "$type": "color",
        "$description": "surface role → Gray 40"
      },
      "surface-elevated": {
        "$value": "{color.swatches.gray-60}",
        "$type": "color",
        "$description": "surface-elevated role → Gray 60"
      },
      "text-primary": {
        "$value": "{color.swatches.gray-700}",
        "$type": "color",
        "$description": "text-primary role → Gray 700"
      },
      "text-secondary": {
        "$value": "{color.swatches.gray-400}",
        "$type": "color",
        "$description": "text-secondary role → Gray 400"
      },
      "text-tertiary": {
        "$value": "{color.swatches.gray-300}",
        "$type": "color",
        "$description": "text-tertiary role → Gray 300"
      },
      "primary": {
        "$value": "{color.swatches.blue-200}",
        "$type": "color",
        "$description": "primary role → Blue 200"
      },
      "primary-hover": {
        "$value": "{color.swatches.blue-100}",
        "$type": "color",
        "$description": "primary-hover role → Blue 100"
      },
      "accent": {
        "$value": "{color.swatches.red-80}",
        "$type": "color",
        "$description": "accent role → Red 80"
      },
      "accent-hover": {
        "$value": "{color.swatches.red-100}",
        "$type": "color",
        "$description": "accent-hover role → Red 100"
      },
      "warning": {
        "$value": "{color.swatches.orange-80}",
        "$type": "color",
        "$description": "warning role → Orange 80"
      },
      "error": {
        "$value": "{color.swatches.red-100}",
        "$type": "color",
        "$description": "error role → Red 100"
      },
      "success": {
        "$value": "{color.swatches.green-80}",
        "$type": "color",
        "$description": "success role → Green 80"
      },
      "border": {
        "$value": "{color.swatches.gray-60}",
        "$type": "color",
        "$description": "border role → Gray 60"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.gray-700}",
          "$type": "color",
          "$description": "Brand role identity → Gray 700"
        },
        "on-identity": {
          "$value": "{color.swatches.gray-20}",
          "$type": "color",
          "$description": "Brand role on-identity → Gray 20"
        },
        "primary": {
          "$value": "{color.swatches.blue-100}",
          "$type": "color",
          "$description": "Brand role primary → Blue 100"
        },
        "primary-hover": {
          "$value": "{color.swatches.blue-80}",
          "$type": "color",
          "$description": "Brand role primary-hover → Blue 80"
        },
        "accent": {
          "$value": "{color.swatches.red-80}",
          "$type": "color",
          "$description": "Brand role accent → Red 80"
        },
        "accent-hover": {
          "$value": "{color.swatches.red-60}",
          "$type": "color",
          "$description": "Brand role accent-hover → Red 60"
        },
        "mark": {
          "$value": "{color.swatches.gray-0}",
          "$type": "color",
          "$description": "Brand role mark → Gray 0"
        },
        "success": {
          "$value": "{color.swatches.green-80}",
          "$type": "color",
          "$description": "Brand role success → Green 80"
        },
        "warning": {
          "$value": "{color.swatches.orange-80}",
          "$type": "color",
          "$description": "Brand role warning → Orange 80"
        },
        "error": {
          "$value": "{color.swatches.red-100}",
          "$type": "color",
          "$description": "Brand role error → Red 100"
        },
        "text-primary-light": {
          "$value": "{color.swatches.gray-20}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Gray 20"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.gray-700}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → Gray 700"
        },
        "background-light": {
          "$value": "{color.swatches.gray-700}",
          "$type": "color",
          "$description": "Brand role background-light → Gray 700"
        },
        "background-dark": {
          "$value": "{color.swatches.gray-20}",
          "$type": "color",
          "$description": "Brand role background-dark → Gray 20"
        },
        "surface-light": {
          "$value": "{color.swatches.gray-600}",
          "$type": "color",
          "$description": "Brand role surface-light → Gray 600"
        },
        "surface-dark": {
          "$value": "{color.swatches.gray-40}",
          "$type": "color",
          "$description": "Brand role surface-dark → Gray 40"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.gray-60}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Gray 60"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.gray-80}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Gray 80"
        },
        "border-light": {
          "$value": "{color.swatches.gray-300}",
          "$type": "color",
          "$description": "Brand role border-light → Gray 300"
        }
      }
    }
  },
  "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": [
          "PT Serif",
          "Charter",
          "Georgia",
          "Times New Roman",
          "serif"
        ],
        "$type": "fontFamily",
        "$description": "body role → PT Serif (pt-serif@1.0.0)"
      },
      "weight": {
        "400": {
          "$value": 400,
          "$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"
      }
    }
  }
}
