{
  "$schema": "https://design-tokens.github.io/community-group/format/",
  "$description": "allGaia CVI 3.0 design tokens. Source of truth: allgaia.com (evenra-theme, measured 2026-11-11) + social colours from 'SMM post changes - final' (2026-11-09). Mirror of css/allgaia-tokens.css; if the two disagree, the CSS wins and this file is fixed.",
  "version": "3.0.0",
  "updated": "2026-11-11",

  "color": {
    "cream":      { "$value": "#FBF8F2", "$type": "color", "role": "Page ground (light)." },
    "paper":      { "$value": "#F3F3EB", "$type": "color", "role": "Light card on cream." },
    "sand":       { "$value": "#EFE9E1", "$type": "color", "role": "Tile, image placeholder." },
    "linen":      { "$value": "#E3DDD3", "$type": "color", "role": "Hairlines on light." },
    "white":      { "$value": "#FFFFFF", "$type": "color", "role": "White sections; headlines and body on dark posts." },
    "ink":        { "$value": "#1D4249", "$type": "color", "role": "Body text on light (10.3:1 on cream). Dark card ground." },
    "slate":      { "$value": "#4E6466", "$type": "color", "role": "Headings and secondary text on light (5.9:1 on cream)." },
    "graphite":   { "$value": "#343739", "$type": "color", "role": "Buttons on light." },
    "anthracite": { "$value": "#22272A", "$type": "color", "role": "Ticker band, floating buy bar." },
    "tide":       { "$value": "#1F5962", "$type": "color", "role": "Accent text on light (7.4:1), button hover." },
    "deep":       { "$value": "#13434F", "$type": "color", "role": "Footer ground." },
    "abyss":      { "$value": "#042832", "$type": "color", "role": "Social post ground; badge text." },
    "night":      { "$value": "#08141C", "$type": "color", "role": "Photo shade, hero floor." },
    "sachet":     { "$value": "#2DB8CE", "$type": "color", "role": "The sachet colour. Badge fill, graphic fills. NEVER text on light (2.2:1)." },
    "gaiaTeal":   { "$value": "#2AA8A8", "$type": "color", "role": "Packaging master. Print C75 M0 Y0 K34, PANTONE 2225 C / 2225 U." },
    "signal":     { "$value": "#51D1EC", "$type": "color", "role": "Labels, arrows, URLs on dark (6.1:1 on ink, 8.6:1 on abyss). Dark only." },
    "mist":       { "$value": "#78C8D2", "$type": "color", "role": "Huge decorative numerals at ~25% opacity. Dark only." },
    "aqua":       { "$value": "#A9E2E0", "$type": "color", "role": "Eyebrows and ticks on dark photos (site hero). Dark only." },
    "ice":        { "$value": "#CEFFFF", "$type": "color", "role": "Light-teal sub-lines on dark (10:1 on ink). Dark only." },
    "rule":       { "$value": "#467884", "$type": "color", "role": "Divider lines on dark. Not for text." },
    "sun":        { "$value": "#C8642F", "$type": "color", "role": "Warm accent, sparing; large text or fills only." },
    "clay":       { "$value": "#D39A6A", "$type": "color", "role": "Warm tint, sparing." },
    "berry":      { "$value": "#8B2F26", "$type": "color", "role": "Plants / tart cherry accent, sparing." }
  },

  "surface": {
    "$description": "Put one surface class on a container; the semantic roles below are then set for everything inside it.",
    "light":  { "class": "ag-light",  "bg": "cream",  "heading": "slate", "text": "ink",   "text2": "slate", "accent": "tide",   "highlight": "ink", "line": "linen", "button": ["graphite", "cream"], "badge": ["ink", "cream"] },
    "paper":  { "class": "ag-paper",  "bg": "paper",  "heading": "slate", "text": "ink",   "text2": "slate", "accent": "tide",   "highlight": "ink", "line": "linen", "button": ["graphite", "cream"], "badge": ["ink", "cream"] },
    "white":  { "class": "ag-white",  "bg": "white",  "heading": "slate", "text": "ink",   "text2": "slate", "accent": "tide",   "highlight": "ink", "line": "linen", "button": ["graphite", "cream"], "badge": ["ink", "cream"] },
    "dark":   { "class": "ag-dark",   "bg": "ink",    "heading": "white", "text": "white", "text2": "cream @ 78%", "accent": "signal", "highlight": "ice", "line": "cream @ 16% / rule", "button": ["cream", "graphite"], "badge": ["sachet", "abyss"] },
    "deep":   { "class": "ag-deep",   "bg": "deep",   "heading": "white", "text": "white", "text2": "cream @ 78%", "accent": "signal", "highlight": "ice", "line": "cream @ 16% / rule", "button": ["cream", "graphite"], "badge": ["sachet", "abyss"] },
    "night":  { "class": "ag-night ag-grad", "bg": "abyss + teal glow gradient", "heading": "white", "text": "white", "text2": "cream @ 78%", "accent": "signal", "highlight": "ice", "line": "rule", "button": ["cream", "graphite"], "badge": ["sachet", "abyss"] },
    "photo":  { "class": "ag-photo",  "bg": "photo + night shade", "heading": "white", "text": "white", "text2": "cream @ 78%", "accent": "signal", "highlight": "ice", "line": "cream @ 16%", "button": ["cream", "graphite"], "badge": ["sachet", "abyss"] },
    "sachet": { "class": "ag-sachet", "bg": "sachet", "heading": "abyss", "text": "abyss", "text2": "abyss @ 82%", "accent": "abyss", "highlight": "abyss", "line": "abyss @ 22%", "button": ["abyss", "white"], "badge": ["abyss", "ice"] }
  },

  "font": {
    "family": { "$value": "Public Sans", "fallback": "system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif", "license": "SIL OFL 1.1", "files": ["fonts/public-sans-400.woff2", "fonts/public-sans-600.woff2"] },
    "weight": { "regular": 400, "strong": 600, "note": "Headings are 400 (as on the site). 600 only for emphasis, labels, row titles, prices, badges." },
    "tracking": { "heading": "-0.02em", "display": "-0.025em", "caps": "0.06em", "eyebrow": "0.14em" }
  },

  "typeScale": {
    "web":    { "display": "clamp(38px,4.6vw,68px)", "h1": "clamp(38px,4.4vw,64px)", "h2": "clamp(30px,3.4vw,48px)", "h3": "clamp(22px,1.8vw,32px)", "lead": "clamp(18px,1.5vw,21px)", "body": "17px", "small": "15px", "micro": "13px", "lineHeight": { "heading": 1.08, "body": 1.5 } },
    "social": { "display": "124px", "h1": "92px", "h2": "72px", "h3": "52px", "lead": "44px", "body": "36px", "small": "28px", "label": "24px", "lineHeight": { "heading": 1.04, "body": 1.42 }, "note": "Canvas px at 1080 wide. Never set body below 28px on a 1080 canvas." }
  },

  "radius": { "lg": "32px", "card": "24px", "sm": "16px", "button": "14px", "chip": "6px", "pill": "999px" },
  "space":  { "boxGap": "24px (12px on phones)", "cardPadding": "48px desktop / 36px 22px phone" },

  "social": {
    "formats": {
      "portrait":  { "size": "1080x1350", "use": "Instagram/Facebook feed, carousels (default)" },
      "square":    { "size": "1080x1080", "use": "Feed, LinkedIn" },
      "story":     { "size": "1080x1920", "use": "Stories, Reels covers; keep text out of top 250px and bottom 300px" },
      "landscape": { "size": "1200x628",  "use": "Link previews, LinkedIn/Facebook link posts" },
      "linkedin-banner": { "size": "1584x396", "use": "Profile banner; content centred, never bottom-left (avatar)" }
    },
    "margins": { "x": "104px", "top": "120px", "bottom": "96px" },
    "arrow": { "color": "signal on dark / tide on light", "size": "56px", "position": "bottom 62px, right 76px", "rule": "On every carousel slide except the last." }
  }
}
