{
  "brand": "Zoru",
  "generated": "2026-09-28",
  "source": [
    "numo-site/style.css",
    "numo-site/pages.css",
    "zoru/src/index.css"
  ],
  "colours": {
    "Core": [
      {
        "name": "Zoru Green",
        "hex": "#5DA92F",
        "rgb": [
          93,
          169,
          47
        ],
        "use": "Brand gradient start. Site --brand-start, app --ng1."
      },
      {
        "name": "Zoru Lime",
        "hex": "#9BD46A",
        "rgb": [
          155,
          212,
          106
        ],
        "use": "Brand gradient end. Site --brand-end, app --ng2, app emissions lozenge."
      },
      {
        "name": "Space",
        "hex": "#060A14",
        "rgb": [
          6,
          10,
          20
        ],
        "use": "Deep space. Dark page background on zoru.earth (--space)."
      },
      {
        "name": "Space Light",
        "hex": "#0C1224",
        "rgb": [
          12,
          18,
          36
        ],
        "use": "Dark panels and the navy behind the logo (--space-light)."
      },
      {
        "name": "Ink",
        "hex": "#181D25",
        "rgb": [
          24,
          29,
          37
        ],
        "use": "Body text on light surfaces (app --numo-ink). Also the text colour on the green CTA."
      },
      {
        "name": "White",
        "hex": "#FFFFFF",
        "rgb": [
          255,
          255,
          255
        ],
        "use": "Cards and text on dark."
      },
      {
        "name": "Off White",
        "hex": "#F8F9FB",
        "rgb": [
          248,
          249,
          251
        ],
        "use": "Light page sections on zoru.earth (--off-white)."
      },
      {
        "name": "App Surface",
        "hex": "#F6F8FA",
        "rgb": [
          246,
          248,
          250
        ],
        "use": "App page background behind white cards (--numo-surface-muted)."
      }
    ],
    "Neutrals": [
      {
        "name": "Grey 50",
        "hex": "#F4F5F7",
        "rgb": [
          244,
          245,
          247
        ],
        "use": "--gray-50"
      },
      {
        "name": "Grey 100",
        "hex": "#EAECF0",
        "rgb": [
          234,
          236,
          240
        ],
        "use": "--gray-100 dividers"
      },
      {
        "name": "Grey 200",
        "hex": "#D0D5DD",
        "rgb": [
          208,
          213,
          221
        ],
        "use": "--gray-200"
      },
      {
        "name": "Boundary",
        "hex": "#D8DEE5",
        "rgb": [
          216,
          222,
          229
        ],
        "use": "App card edge on white (--numo-boundary)"
      },
      {
        "name": "Grey 300",
        "hex": "#B0B8C8",
        "rgb": [
          176,
          184,
          200
        ],
        "use": "--gray-300"
      },
      {
        "name": "Grey 400",
        "hex": "#98A2B3",
        "rgb": [
          152,
          162,
          179
        ],
        "use": "--gray-400 placeholder"
      },
      {
        "name": "Grey 500",
        "hex": "#667085",
        "rgb": [
          102,
          112,
          133
        ],
        "use": "--gray-500 secondary text"
      },
      {
        "name": "Muted",
        "hex": "#515B69",
        "rgb": [
          81,
          91,
          105
        ],
        "use": "App supporting text and control edges (--numo-muted)"
      },
      {
        "name": "Grey 600",
        "hex": "#475467",
        "rgb": [
          71,
          84,
          103
        ],
        "use": "--gray-600"
      },
      {
        "name": "Grey 700",
        "hex": "#344054",
        "rgb": [
          52,
          64,
          84
        ],
        "use": "--gray-700"
      },
      {
        "name": "Grey 900",
        "hex": "#101828",
        "rgb": [
          16,
          24,
          40
        ],
        "use": "--gray-900 headings on light"
      },
      {
        "name": "Sidebar",
        "hex": "#181D25",
        "rgb": [
          24,
          29,
          37
        ],
        "use": "App sidebar background (hsl 220 20% 12%)"
      }
    ],
    "Semantic": [
      {
        "name": "Success",
        "hex": "#2D8659",
        "rgb": [
          45,
          134,
          89
        ],
        "use": "Muted forest green. Ticks, positive deltas, 'responded' (site + app --success)."
      },
      {
        "name": "Success Dark",
        "hex": "#236B47",
        "rgb": [
          35,
          107,
          71
        ],
        "use": "Success ink on tinted chips."
      },
      {
        "name": "Complete",
        "hex": "#1E5E1E",
        "rgb": [
          30,
          94,
          30
        ],
        "use": "Saved/complete ink, 7.85:1 on white (app --numo-complete)."
      },
      {
        "name": "Warning",
        "hex": "#DAA520",
        "rgb": [
          218,
          165,
          32
        ],
        "use": "Muted amber (app --warning, site amber dots)."
      },
      {
        "name": "Warning Ink",
        "hex": "#8B6508",
        "rgb": [
          139,
          101,
          8
        ],
        "use": "Amber text on tinted chips."
      },
      {
        "name": "Error",
        "hex": "#DC3545",
        "rgb": [
          220,
          53,
          69
        ],
        "use": "Problem states (site). App destructive is hsl(0 84% 60%) = #EF4343."
      },
      {
        "name": "Next Blue",
        "hex": "#2563EB",
        "rgb": [
          37,
          99,
          235
        ],
        "use": "Current/next step accent in the app (--numo-next-blue)."
      },
      {
        "name": "Attention Navy",
        "hex": "#0A2540",
        "rgb": [
          10,
          37,
          64
        ],
        "use": "Attention icon, badge fill, ink on light (--numo-attention)."
      },
      {
        "name": "Deep Violet",
        "hex": "#1A0F40",
        "rgb": [
          26,
          15,
          64
        ],
        "use": "Pairs with navy on dark panels (--numo-violet)."
      }
    ],
    "Atmosphere (background only)": [
      {
        "name": "Cosmic Violet",
        "hex": "#5433FF",
        "rgb": [
          84,
          51,
          255
        ],
        "use": "Cosmic canvas orbs at 4-7% opacity. Never text, never a CTA."
      },
      {
        "name": "Cosmic Blue",
        "hex": "#20BDFF",
        "rgb": [
          32,
          189,
          255
        ],
        "use": "Cosmic canvas orbs at 3-5% opacity; app --info."
      },
      {
        "name": "Aqua",
        "hex": "#A5FECB",
        "rgb": [
          165,
          254,
          203
        ],
        "use": "Shooting-star tails and 10% tint chips. Never solid fills."
      }
    ],
    "Charts": [
      {
        "name": "Chart 1",
        "hex": "#5DA82E",
        "rgb": [
          93,
          168,
          46
        ],
        "use": "Scope 1 / primary series (= Zoru Green)"
      },
      {
        "name": "Chart 2",
        "hex": "#9BD369",
        "rgb": [
          155,
          211,
          105
        ],
        "use": "Scope 2 (= Zoru Lime)"
      },
      {
        "name": "Chart 3",
        "hex": "#2EB860",
        "rgb": [
          46,
          184,
          96
        ],
        "use": "Scope 3"
      },
      {
        "name": "Chart 4",
        "hex": "#9FC653",
        "rgb": [
          159,
          198,
          83
        ],
        "use": "Fourth series"
      },
      {
        "name": "Chart 5",
        "hex": "#59B946",
        "rgb": [
          89,
          185,
          70
        ],
        "use": "Fifth series"
      }
    ]
  },
  "gradients": [
    {
      "name": "Brand (site)",
      "css": "linear-gradient(90deg, #5DA92F, #9BD46A)",
      "stops": [
        "#5DA92F",
        "#9BD46A"
      ],
      "use": "Underlines, progress, wordmark accents. Site --brand-gradient."
    },
    {
      "name": "Primary CTA",
      "css": "linear-gradient(135deg, #5DA92F, #9BD46A)",
      "stops": [
        "#5DA92F",
        "#9BD46A"
      ],
      "use": "Buttons. Text is Ink #181D25 (4.5:1+). White text on this fails AA at 14px."
    },
    {
      "name": "Violet panel",
      "css": "linear-gradient(160deg, #1A0F40, #2A1866)",
      "stops": [
        "#1A0F40",
        "#2A1866"
      ],
      "use": "'Estimated' badges, violet bento cards. White text."
    },
    {
      "name": "Navy panel",
      "css": "linear-gradient(160deg, #0A2540, #0D3460)",
      "stops": [
        "#0A2540",
        "#0D3460"
      ],
      "use": "'Partly itemised' badges, navy bento cards. White text."
    },
    {
      "name": "Green tint panel",
      "css": "linear-gradient(160deg, #E8F5E9, #C8E6C9)",
      "stops": [
        "#E8F5E9",
        "#C8E6C9"
      ],
      "use": "Light green bento cards. Grey 900 text."
    },
    {
      "name": "Cream panel",
      "css": "linear-gradient(160deg, #FAF5EB, #F0E8D4)",
      "stops": [
        "#FAF5EB",
        "#F0E8D4"
      ],
      "use": "Cream bento cards. Grey 900 text."
    },
    {
      "name": "Photo overlay",
      "css": "linear-gradient(180deg, rgba(6,10,20,.25), rgba(6,10,20,.6))",
      "stops": [
        "#060A14",
        "#060A14"
      ],
      "use": "Laid over every full-bleed photo so white type stays legible."
    },
    {
      "name": "Dark illustration",
      "css": "linear-gradient(135deg, #0F1623, #1A1040)",
      "stops": [
        "#0F1623",
        "#1A1040"
      ],
      "use": "Background of social cards and feature illustrations."
    }
  ],
  "type": {
    "body": "Inter",
    "headings": "IBM Plex Sans",
    "logo": "Marble (outlined in the logo files; not for headings)"
  },
  "radius": {
    "control": 8,
    "button": 10,
    "card": 12,
    "tile": 16,
    "container": 22,
    "photo": 24,
    "pill": 100
  }
}