{
  "palette": { "bone": "#f1efe9", "ink": "#08090b", "signal": "#f2541b", "muted": "#a0a4ad" },
  "rules": [
    { "id": "palette", "text": "Text and shapes use brand colours only." },
    { "id": "fonts", "text": "Headline in Instrument Serif, everything else in Hanken Grotesk, both actually loaded." },
    { "id": "margin", "text": "Logo and text stay 5% of the short side away from every edge." },
    { "id": "clearspace", "text": "Nothing comes closer to the logo than the height of the logo." },
    { "id": "minsize", "text": "No text smaller than 2.3% of the short side." },
    { "id": "contrast", "text": "Text against the picture behind it: at least 4.5 to 1, headline included. Measured on the rendered pixels." },
    { "id": "fit", "text": "Headline on three lines at most, no text cut off, no blocks overlapping." },
    { "id": "accent", "text": "The signal colour appears exactly once." },
    { "id": "product", "text": "The product is actually in the picture: with the photo removed, at least 12% of the banner changes visibly." }
  ],
  "formats": [ ["square", 1080, 1080], ["portrait", 1080, 1350], ["story", 1080, 1920], ["landscape", 1200, 628], ["strip", 1600, 500] ],
  "variants": ["steel-blue", "gold-green", "black-salmon", "dial-macro"]
}
