{
  "$schema": "https://skillmzansi.com/brand-pack/brand.schema.json",
  "name": "SkillMzansi",
  "version": "1.0",
  "updated": "2026-07-30",
  "legalEntity": "OG Masdama (Pty) Ltd t/a SkillMzansi",
  "tagline": "Practical Skills. Real Opportunities. Career Confidence.",
  "missionLine": "Preparing people for opportunity through practical, career and employability skills.",
  "endline": "Building South Africa's Future Workforce.",
  "handle": "@skillmzansi",
  "domain": "skillmzansi.com",
  "whatsapp": "+27 79 403 2751",
  "market": "South Africa",
  "locale": "en-ZA",

  "voice": {
    "personality": ["direct", "warm", "practical", "dignified", "never hype"],
    "rules": [
      "Speak to one person, not an audience.",
      "Lead with the useful thing. No throat-clearing.",
      "Sentence case everywhere except eyebrows and labels.",
      "Use South African English spelling (organise, programme, colour, CV not resume).",
      "Say what it costs and what it takes. No false promises about jobs.",
      "Prefer verbs over adjectives. 'Build a CV that gets read' beats 'amazing CV solutions'.",
      "Never use exclamation marks in headlines.",
      "Rands as R1 200 (thin space). Dates as 28 July 2026."
    ],
    "avoid": ["unlock", "supercharge", "game-changer", "revolutionary", "guru", "ninja", "!!!"]
  },

  "color": {
    "paper":     { "hex": "#FBF7ED", "role": "Primary light surface",       "usageRatio": 0.55, "onColor": "#0D1418" },
    "inkBlack":  { "hex": "#000000", "role": "Dark surface, mastheads",     "usageRatio": 0.25, "onColor": "#FFFFFF" },
    "gold":      { "hex": "#C9A962", "role": "Identity accent",             "usageRatio": 0.12, "onColor": "#000000" },
    "green":     { "hex": "#087F75", "role": "Accent on light, bullets",    "usageRatio": 0.08, "onColor": "#FFFFFF" },
    "ink":       { "hex": "#0D1418", "role": "Body text on light" },
    "paperDeep": { "hex": "#EFE6D2", "role": "Tinted panels, table headers" },
    "coral":     { "hex": "#F2714E", "role": "Sparse highlight only" },
    "line":      { "hex": "#D9CFBA", "role": "Hairline rules on paper" },
    "muted":     { "hex": "#5C574F", "role": "Secondary text on paper" },
    "creamWhite":{ "hex": "#FFFDF6", "role": "Alternating table rows" },
    "white":     { "hex": "#FFFFFF", "role": "Text on dark surfaces" },
    "printDark": { "hex": "#17231D", "role": "Dark blocks in print (softer than pure black)" },
    "printLime": { "hex": "#B7D83F", "role": "Eyebrow on dark blocks in print only" }
  },

  "colorRules": [
    "Gold and green are accents, never wall colours. One gold accent per layout.",
    "Never set long body copy in gold.",
    "Coral is reserved for a single highlight element (e.g. a goals box border).",
    "On dark surfaces use white body text and gold for labels/eyebrows.",
    "On paper use ink for body and green for eyebrows, bullets and links.",
    "In print, swap pure black blocks for printDark #17231D and eyebrows to printLime #B7D83F."
  ],

  "contrast": {
    "pass": [
      { "fg": "#0D1418", "bg": "#FBF7ED", "level": "AAA", "use": "body on paper" },
      { "fg": "#FFFFFF", "bg": "#000000", "level": "AAA", "use": "body on dark" },
      { "fg": "#087F75", "bg": "#FBF7ED", "level": "AA",  "use": "eyebrows/links 16px+" },
      { "fg": "#C9A962", "bg": "#000000", "level": "AA-large", "use": "display text & labels only" }
    ],
    "fail": [
      { "fg": "#C9A962", "bg": "#FBF7ED", "note": "gold on paper — never for text" },
      { "fg": "#D9CFBA", "bg": "#FBF7ED", "note": "line colour is not a text colour" }
    ]
  },

  "typography": {
    "families": {
      "display": { "name": "Playfair Display", "fallback": "Georgia, 'Times New Roman', serif", "weights": [500, 600, 700], "source": "https://fonts.google.com/specimen/Playfair+Display" },
      "body":    { "name": "Inter", "fallback": "ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif", "weights": [400, 500, 600, 700, 800], "source": "https://fonts.google.com/specimen/Inter" },
      "label":   { "name": "Montserrat", "fallback": "Inter, sans-serif", "weights": [600, 700, 800], "source": "https://fonts.google.com/specimen/Montserrat", "note": "Interchangeable with Inter 700-800 for eyebrows" }
    },
    "scale": {
      "displayXl": { "size": "clamp(3rem, 6.8vw, 5.6rem)", "family": "display", "weight": 700, "lineHeight": 0.98, "tracking": "-0.04em", "use": "Covers, hero" },
      "displayL":  { "size": "clamp(2.5rem, 5vw, 4.2rem)",  "family": "display", "weight": 700, "lineHeight": 1.02, "tracking": "-0.035em", "use": "Chapter / part headers" },
      "displayM":  { "size": "clamp(2.2rem, 4.6vw, 3.6rem)","family": "display", "weight": 700, "lineHeight": 1.02, "tracking": "-0.03em", "use": "Section headings" },
      "displayS":  { "size": "clamp(1.7rem, 3.4vw, 2.3rem)","family": "display", "weight": 700, "lineHeight": 1.12, "tracking": "-0.02em", "use": "Subsection headings" },
      "quote":     { "size": "1.35rem", "family": "display", "weight": 500, "style": "italic", "lineHeight": 1.4, "use": "Pull quotes" },
      "body":      { "size": "1rem",    "family": "body", "weight": 400, "lineHeight": 1.65 },
      "bodySmall": { "size": "0.9rem",  "family": "body", "weight": 400, "lineHeight": 1.55 },
      "eyebrow":   { "size": "0.72rem", "family": "body", "weight": 800, "tracking": "0.16em", "transform": "uppercase", "color": "green|gold", "use": "Kickers above headings" },
      "label":     { "size": "0.66rem", "family": "label", "weight": 700, "tracking": "0.14em", "transform": "uppercase", "use": "Tile labels, footers" }
    },
    "rules": [
      "Headlines are sentence case. Only eyebrows and labels are uppercase.",
      "Display type always gets negative tracking; uppercase labels always get positive tracking.",
      "Measure for body copy: 60-75 characters (about 680px).",
      "The stack is always eyebrow -> headline -> body. Never headline -> eyebrow.",
      "Two-line headlines beat one long line. Break with intent."
    ]
  },

  "spacing": {
    "scale": { "s2": 8, "s3": 16, "s4": 24, "s5": 40, "s6": 64, "s7": 104 },
    "unit": "px",
    "rule": "Everything is a multiple of 8. Section padding uses s6/s7; component padding uses s4/s5."
  },

  "layout": {
    "documentGutter": { "desktop": 72, "tablet": 40, "mobile": 24, "unit": "px" },
    "documentMeasure": 680,
    "documentColumn": 920,
    "marketingContainer": 1180,
    "borderRadius": 0,
    "rules": [
      "Square corners everywhere. No border-radius except circular avatars.",
      "One shared gutter variable drives page padding, header padding and footer padding so everything aligns to the same vertical line.",
      "Full-bleed dark headers are achieved with negative margins equal to the gutter.",
      "Hairline rules are 1px solid line colour; heavy dividers are 12px solid ink black."
    ]
  },

  "logo": {
    "files": {
      "wordmarkStackedLight": "logos/wordmark-stacked-light.png",
      "wordmarkStackedDark":  "logos/wordmark-stacked-dark.png",
      "wordmarkWideLight":    "logos/wordmark-wide-light.png",
      "wordmarkWideDark":     "logos/wordmark-wide-dark.png",
      "monogramStackedLight": "logos/monogram-stacked-light.png",
      "monogramStackedDark":  "logos/monogram-stacked-dark.png",
      "monogramWideLight":    "logos/monogram-wide-light.png",
      "monogramWideDark":     "logos/monogram-wide-dark.png",
      "appIcon":              "logos/app-icon-96.png"
    },
    "concept": "A gold sunrise: rays fanning from a half-sun on a horizon line. 'SKILL' in white/ink, 'MZANSI' in gold.",
    "variantRule": "Use *-dark.png on dark surfaces (white + gold artwork). Use *-light.png on light surfaces (white becomes ink #0D1418, gold retained).",
    "clearSpace": "Equal to the height of the sun arc on all four sides.",
    "minSize": { "wordmark": "160px wide", "monogram": "28px wide" },
    "placement": "Once per layout. Wordmark bottom-left or top-left; monogram top-right or centred. Never both marks in one layout.",
    "donts": [
      "Do not stretch or distort.",
      "Do not recolour or apply hue shifts.",
      "Do not add shadows, glows or outlines.",
      "Do not place on busy or low-contrast backgrounds.",
      "Do not trace, redraw or rebuild the PNGs as vectors."
    ]
  },

  "motion": {
    "assets": {
      "pageEntry":    { "file": "loaders/page-entry.svg",    "duration": "2.6s", "loop": false, "use": "First page load only" },
      "buttonRays":   { "file": "loaders/button-rays.svg",   "duration": "1.3s", "loop": true,  "use": "Busy buttons, inline waits" },
      "arcTravel":    { "file": "loaders/arc-travel.svg",    "duration": "1.8s", "loop": true,  "use": "Data in motion, syncing" },
      "contentSweep": { "file": "loaders/content-sweep.svg", "duration": "1.6s", "loop": true,  "use": "Skeleton content loading" }
    },
    "doctrine": [
      "The full sunrise draws once, on first entry. Never loop it.",
      "Fragments (rays, arc, shimmer) carry everyday waits.",
      "Nothing animates for interactions under 300ms.",
      "Reveals are opacity 0->1 plus translateY(22px)->0 over 700ms, staggered 70ms.",
      "Every animation must honour prefers-reduced-motion."
    ],
    "easing": { "enter": "cubic-bezier(.22,.61,.36,1)", "standard": "ease-out" }
  },

  "surfaces": {
    "paper": { "bg": "#FBF7ED", "text": "#0D1418", "accent": "#087F75", "rule": "#D9CFBA", "use": "Documents, content slides, light web" },
    "dark":  { "bg": "#000000", "text": "#FFFFFF", "accent": "#C9A962", "rule": "rgba(255,255,255,.12)", "use": "Covers, section dividers, mastheads, social posts" },
    "tinted":{ "bg": "#EFE6D2", "text": "#0D1418", "accent": "#087F75", "use": "Callouts, table headers, quote panels" }
  },

  "socialSpecs": {
    "instagramPost":  { "size": "1080x1080", "aspect": "1:1",  "safeMargin": 96 },
    "instagramStory": { "size": "1080x1920", "aspect": "9:16", "safeMargin": 96, "topSafe": 250, "bottomSafe": 250 },
    "linkedinCard":   { "size": "1200x627",  "aspect": "1.91:1" },
    "whatsappStatus": { "size": "1080x1920", "aspect": "9:16" },
    "rules": [
      "Black or paper canvas. One gold accent. Playfair headline, Inter support.",
      "Logo appears once: wordmark bottom-left or monogram top-centre.",
      "Always include @skillmzansi and skillmzansi.com in the meta row.",
      "Headline maximum 8 words. If it needs more, it is two posts.",
      "A 44px gold underline bar sits under the headline as the single accent."
    ]
  },

  "presentation": {
    "file": "SkillMzansi_Brand_Template.pptx",
    "slideSize": { "width": 13.333, "height": 7.5, "unit": "in", "aspect": "16:9" },
    "margin": 0.83,
    "borderInset": 0.24,
    "layouts": [
      "SkillMzansi · Cover (Dark)",
      "SkillMzansi · Section Divider (Dark)",
      "SkillMzansi · Content (Paper)",
      "SkillMzansi · Two Column (Paper)",
      "SkillMzansi · Title Only (Paper)",
      "SkillMzansi · Blank (Paper)",
      "SkillMzansi · Closing (Dark)"
    ],
    "typeSizes": { "coverTitle": 44, "sectionTitle": 40, "contentTitle": 27, "body": 15, "twoColBody": 14, "eyebrow": 13, "footer": 8, "unit": "pt" },
    "rules": [
      "Border frame, logo, footer and title styling live on the layouts — never draw them on a slide.",
      "Content slides carry a 0.9in x 0.045in gold underline bar under the title.",
      "Table header row is ink black with gold uppercase labels; body rows alternate creamWhite and paperDeep.",
      "Six lines maximum per content slide."
    ]
  },

  "print": {
    "page": "A4 portrait",
    "margin": "16mm 16mm 18mm",
    "runningHeader": "SKILL MZANSI  /  <DOCUMENT NAME>",
    "rules": [
      "Cover gets a 2px ink border and no running header or page number.",
      "Each chapter starts on a new page with a full-bleed dark header block.",
      "Dark blocks use #17231D and eyebrows use #B7D83F for ink economy.",
      "Set print-color-adjust: exact on any element whose background carries meaning."
    ]
  },

  "assets": {
    "brandPackPage": "brand-pack.html",
    "zip": "skillmzansi-brand-pack.zip",
    "readme": "README.md",
    "llms": "llms.txt",
    "llmsFull": "llms-full.txt",
    "css": "brand.css",
    "agents": "AGENTS.md"
  }
}
