{
 "note": "THE BRAND, said once. Every page, card and slide takes its colours, type and shapes from here, and the brand page (site/brand/) is built from this file too. A value used anywhere else is a second copy: checks/one_palette.py fails it. Each entry says what it is for and why it is what it is, and checks/brand_reasons.py fails one that does not. A colour that is another colour in a different role says `same_as`, never a copied value.",
 "status": "draft",
 "idea": "The look follows the name. Wherefore asks why, so the display face is a literary serif. It compiles, so the page is a terminal's black and anything a person could type is set in monospace. And one bright accent marks the point of a line, the way a passing build does.",
 "color": {
  "ground": {
   "value": "#0B0C0E",
   "role": "the page",
   "why": "a terminal's black, faintly cool: the product lives in a shell"
  },
  "surface": {
   "value": "#111317",
   "role": "cards and panels, and what sits on them",
   "why": "one step up from the ground, so a card reads as an object without a shadow; what sits on a card is told apart by its border, not a third shade"
  },
  "line": {
   "value": "#2A2D33",
   "role": "borders and rules",
   "why": "visible on the ground and on a card, never louder than text"
  },
  "ink": {
   "value": "#EDEBE6",
   "role": "text",
   "why": "a warm off-white: paper, on a terminal"
  },
  "muted": {
   "value": "#A3A6AD",
   "role": "secondary text: captions, labels and fine print",
   "why": "for what supports a line, not what makes it; one grey, because a second one nobody could tell apart"
  },
  "accent": {
   "value": "#C3FF0F",
   "role": "the one thing to look at: actions, and the point of a line",
   "why": "a passing build's green, pushed to highlighter strength. Used sparingly, it means 'this'"
  },
  "on-accent": {
   "same_as": "ground",
   "role": "text on the accent",
   "why": "the ground's own black, so the accent reads as a highlight on the page. A role, not a new colour: said as the ground, so it moves if the ground does"
  },
  "caution": {
   "value": "#F4D35E",
   "role": "drafts, and what is still being built",
   "why": "a warning that is not an error: nothing is wrong, it is just not finished"
  },
  "fail": {
   "value": "#FF8A6B",
   "role": "a failed check",
   "why": "warm and plainly not the accent, so a failure never reads as a pass"
  }
 },
 "contrast": {
  "note": "Every text colour on every ground the pages put it on, and the least it must reach: 4.5:1 for body text (WCAG AA). checks/contrast.py computes each and fails one that falls short.",
  "pairs": [
   {"text": "ink", "on": "ground", "min": 4.5},
   {"text": "ink", "on": "surface", "min": 4.5},
   {"text": "muted", "on": "ground", "min": 4.5},
   {"text": "muted", "on": "surface", "min": 4.5},
   {"text": "accent", "on": "ground", "min": 4.5},
   {"text": "accent", "on": "surface", "min": 4.5},
   {"text": "on-accent", "on": "accent", "min": 4.5},
   {"text": "on-accent", "on": "caution", "min": 4.5},
   {"text": "on-accent", "on": "fail", "min": 4.5},
   {"text": "caution", "on": "ground", "min": 4.5},
   {"text": "caution", "on": "surface", "min": 4.5},
   {"text": "fail", "on": "ground", "min": 4.5},
   {"text": "fail", "on": "surface", "min": 4.5}
  ]
 },
 "type": {
  "display": {
   "family": "Instrument Serif",
   "fallback": "Georgia, 'Times New Roman', serif",
   "role": "headlines and the wordmark",
   "why": "the literary half of the name: 'wherefore art thou'. Set large, where its contrast has room",
   "source": "@fontsource/instrument-serif 5.3.0",
   "licence": "instrument-serif/OFL.txt",
   "faces": [
    {"weight": 400, "style": "normal", "file": "instrument-serif/instrument-serif-latin-400-normal.woff2"},
    {"weight": 400, "style": "italic", "file": "instrument-serif/instrument-serif-latin-400-italic.woff2"}
   ]
  },
  "body": {
   "family": "Inter",
   "fallback": "system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
   "role": "everything that is read rather than looked at",
   "why": "built for screens at small sizes, and quiet enough to let the serif and the mono speak",
   "source": "@fontsource/inter 5.3.0",
   "licence": "inter/OFL.txt",
   "faces": [
    {"weight": 400, "style": "normal", "file": "inter/inter-latin-400-normal.woff2"},
    {"weight": 500, "style": "normal", "file": "inter/inter-latin-500-normal.woff2"},
    {"weight": 600, "style": "normal", "file": "inter/inter-latin-600-normal.woff2"}
   ]
  },
  "mono": {
   "family": "JetBrains Mono",
   "fallback": "ui-monospace, 'SF Mono', Menlo, Consolas, monospace",
   "role": "commands, file names, labels",
   "why": "the compiler half of the name: anything a person could type is set in it",
   "source": "@fontsource/jetbrains-mono 5.3.0",
   "licence": "jetbrains-mono/OFL.txt",
   "faces": [
    {"weight": 400, "style": "normal", "file": "jetbrains-mono/jetbrains-mono-latin-400-normal.woff2"},
    {"weight": 500, "style": "normal", "file": "jetbrains-mono/jetbrains-mono-latin-500-normal.woff2"}
   ]
  }
 },
 "radius": {
  "card": {
   "value": "16px",
   "role": "cards, panels, tiles and the boxes on them",
   "why": "soft enough to read as an object, square enough to stay a document"
  },
  "control": {
   "value": "999px",
   "role": "buttons, tabs, chips and badges",
   "why": "every action is a pill, so anything round can be pressed"
  }
 },
 "wordmark": {
  "type": "display",
  "style": "italic",
  "why": "the company's name, set in the display face's italic and never redrawn: until there is a drawn mark, the type is the mark"
 },
 "icon": {
  "glyph": "w",
  "type": "display",
  "style": "italic",
  "color": "accent",
  "on": "ground",
  "size": 104,
  "x": 50,
  "y": 76,
  "role": "the picture beside the name wherever the company has an account: GitHub, and every social profile",
  "why": "the wordmark's first letter, set the way the page sets “compiled.”: the display italic, in the accent, on the terminal's black. One letter still reads at the size of a tab, and every platform crops to a circle, so it sits in the middle with room all round"
 }
}
