{
  "$description": "Brand: BBC — light mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette bbc@1.0.0",
      "postbox": {
        "$value": "#B80000",
        "$type": "color",
        "$description": "BBC signature red — the brand's primary identity color."
      },
      "postbox-30": {
        "$value": "#EAB3B3",
        "$type": "color",
        "$description": "Light tint of postbox — quiet emphasis backgrounds."
      },
      "black": {
        "$value": "#000000",
        "$type": "color",
        "$description": "BBC blocks logo black; the primary text on white."
      },
      "ebon": {
        "$value": "#222222",
        "$type": "color",
        "$description": "Body text on light surfaces."
      },
      "midnight-black": {
        "$value": "#121212",
        "$type": "color",
        "$description": "Dark-mode canvas; the deep BBC night surface."
      },
      "white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Page canvas — bright BBC background."
      },
      "ghost": {
        "$value": "#FDFDFD",
        "$type": "color",
        "$description": "Faintly warm off-white — large-area canvas alternative."
      },
      "chalk": {
        "$value": "#ECEAE7",
        "$type": "color",
        "$description": "Warm neutral background — the BBC paper tone."
      },
      "oat-light": {
        "$value": "#F5F3F1",
        "$type": "color",
        "$description": "Lighter warm-paper tone for elevated surfaces."
      },
      "lunar": {
        "$value": "#F2F2F2",
        "$type": "color",
        "$description": "Cool quiet surface; alternate page tint."
      },
      "lunar-light": {
        "$value": "#F8F8F8",
        "$type": "color",
        "$description": "Lightest cool surface — quiet inset."
      },
      "grey-3": {
        "$value": "#E6E8EA",
        "$type": "color",
        "$description": "Hairline divider; quiet card border."
      },
      "grey-4": {
        "$value": "#B0B2B4",
        "$type": "color",
        "$description": "Disabled / decorative border weight."
      },
      "grey-5": {
        "$value": "#8A8C8E",
        "$type": "color",
        "$description": "Quiet meta text on light surface."
      },
      "grey-6": {
        "$value": "#545658",
        "$type": "color",
        "$description": "Secondary body text."
      },
      "grey-7": {
        "$value": "#3A3C3E",
        "$type": "color",
        "$description": "Dark surface; secondary text on dark."
      },
      "service-neutral": {
        "$value": "#0071F1",
        "$type": "color",
        "$description": "Service-neutral link blue."
      },
      "service-neutral-dark": {
        "$value": "#0051AD",
        "$type": "color",
        "$description": "Pressed / active variant of service-neutral."
      },
      "live-core": {
        "$value": "#009E9E",
        "$type": "color",
        "$description": "BBC LIVE teal — live-coverage status color."
      },
      "live-light": {
        "$value": "#00CCC7",
        "$type": "color",
        "$description": "Brighter LIVE teal for dark surfaces."
      },
      "sport-yellow": {
        "$value": "#FFD230",
        "$type": "color",
        "$description": "BBC Sport accent yellow."
      },
      "error-core": {
        "$value": "#E51854",
        "$type": "color",
        "$description": "Error / failure state color (Simorgh standard)."
      },
      "success-core": {
        "$value": "#148A00",
        "$type": "color",
        "$description": "Confirmation / success state."
      }
    },
    "roles": {
      "$description": "Semantic color roles (light mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "background role → White"
      },
      "surface": {
        "$value": "{color.swatches.chalk}",
        "$type": "color",
        "$description": "surface role → Chalk"
      },
      "surface-elevated": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "surface-elevated role → White"
      },
      "text-primary": {
        "$value": "{color.swatches.ebon}",
        "$type": "color",
        "$description": "text-primary role → Ebon"
      },
      "text-secondary": {
        "$value": "{color.swatches.grey-6}",
        "$type": "color",
        "$description": "text-secondary role → Grey 6"
      },
      "text-tertiary": {
        "$value": "{color.swatches.grey-5}",
        "$type": "color",
        "$description": "text-tertiary role → Grey 5"
      },
      "primary": {
        "$value": "{color.swatches.postbox}",
        "$type": "color",
        "$description": "primary role → Postbox"
      },
      "primary-hover": {
        "$value": "{color.swatches.service-neutral-dark}",
        "$type": "color",
        "$description": "primary-hover role → Service Neutral Dark"
      },
      "accent": {
        "$value": "{color.swatches.postbox}",
        "$type": "color",
        "$description": "accent role → Postbox"
      },
      "accent-hover": {
        "$value": "{color.swatches.service-neutral}",
        "$type": "color",
        "$description": "accent-hover role → Service Neutral"
      },
      "warning": {
        "$value": "{color.swatches.sport-yellow}",
        "$type": "color",
        "$description": "warning role → Sport Yellow"
      },
      "error": {
        "$value": "{color.swatches.error-core}",
        "$type": "color",
        "$description": "error role → Error Core"
      },
      "success": {
        "$value": "{color.swatches.success-core}",
        "$type": "color",
        "$description": "success role → Success Core"
      },
      "border": {
        "$value": "{color.swatches.grey-3}",
        "$type": "color",
        "$description": "border role → Grey 3"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.postbox}",
          "$type": "color",
          "$description": "Brand role identity → Postbox"
        },
        "on-identity": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role on-identity → White"
        },
        "primary": {
          "$value": "{color.swatches.postbox}",
          "$type": "color",
          "$description": "Brand role primary → Postbox"
        },
        "primary-hover": {
          "$value": "{color.swatches.service-neutral-dark}",
          "$type": "color",
          "$description": "Brand role primary-hover → Service Neutral Dark"
        },
        "accent": {
          "$value": "{color.swatches.postbox}",
          "$type": "color",
          "$description": "Brand role accent → Postbox"
        },
        "accent-hover": {
          "$value": "{color.swatches.live-core}",
          "$type": "color",
          "$description": "Brand role accent-hover → Live Core"
        },
        "mark": {
          "$value": "{color.swatches.postbox}",
          "$type": "color",
          "$description": "Brand role mark → Postbox"
        },
        "success": {
          "$value": "{color.swatches.success-core}",
          "$type": "color",
          "$description": "Brand role success → Success Core"
        },
        "warning": {
          "$value": "{color.swatches.sport-yellow}",
          "$type": "color",
          "$description": "Brand role warning → Sport Yellow"
        },
        "error": {
          "$value": "{color.swatches.error-core}",
          "$type": "color",
          "$description": "Brand role error → Error Core"
        },
        "text-primary-light": {
          "$value": "{color.swatches.ebon}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Ebon"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → White"
        },
        "background-light": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role background-light → White"
        },
        "background-dark": {
          "$value": "{color.swatches.midnight-black}",
          "$type": "color",
          "$description": "Brand role background-dark → Midnight Black"
        },
        "surface-light": {
          "$value": "{color.swatches.chalk}",
          "$type": "color",
          "$description": "Brand role surface-light → Chalk"
        },
        "surface-dark": {
          "$value": "{color.swatches.grey-7}",
          "$type": "color",
          "$description": "Brand role surface-dark → Grey 7"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.grey-6}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Grey 6"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.grey-5}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Grey 5"
        },
        "border-light": {
          "$value": "{color.swatches.grey-3}",
          "$type": "color",
          "$description": "Brand role border-light → Grey 3"
        }
      }
    }
  },
  "font": {
    "$description": "Typography roles mapped to font atoms",
    "heading": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "heading 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"
      }
    },
    "body": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "body 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"
      }
    }
  }
}
