{
  "$comment": "Gritmind brand tokens - SOURCE OF TRUTH for every colour, type, spacing, motion and shadow value. Edit here, then run `node scripts/build-skill.mjs`. Consumers (the website and others) pin a released brand tag and generate their own files from this one.",
  "meta": {
    "name": "Gritmind"
  },
  "brand": {
    "offWhite": "#fafafa",
    "slate": "#a4aebb",
    "navy": "#131938",
    "signal": "#93e0c6"
  },
  "semantic": {
    "light": {
      "bg": "#fafafa",
      "ink": "#131938",
      "muted": "#5c6475",
      "subtle": "#8b93a5",
      "surface": "#ffffff",
      "surface-2": "#fafafa",
      "border": "#e9e9ec",
      "hairline": "rgba(19,25,56,.10)",
      "navy-raised": "#131938",
      "signal": "#5e8e81",
      "signal-tint": "rgba(147,224,198,.16)",
      "error": "#fb0102",
      "body": "#333a49",
      "focus": "#2563eb",
      "draft": "#2563eb"
    },
    "dark": {
      "bg": "#20243a",
      "ink": "#ffffff",
      "muted": "#95a2be",
      "subtle": "#7c88a3",
      "surface": "#262b45",
      "surface-2": "#1b1f33",
      "border": "rgba(233,236,245,.14)",
      "hairline": "rgba(233,236,245,.14)",
      "navy-raised": "#2c3150",
      "signal": "#93e0c6",
      "signal-tint": "rgba(147,224,198,.16)",
      "error": "#ff452d",
      "body": "#cdd6e8",
      "focus": "#5b8cff",
      "draft": "#5b8cff"
    }
  },
  "$accentComment": "Mint is the primary brand accent. Blue and green are sanctioned alternates for SCOPED use - apply data-accent to any subtree (a page wrapper, a section, an article) and everything inside recolors, CSS and canvas alike. There is no visitor-facing palette switcher. Error states use the separate `error` token and never follow the accent.",
  "accents": {
    "mint": {
      "light": {
        "signal": "#5e8e81",
        "signal-tint": "rgba(147,224,198,.16)"
      },
      "dark": {
        "signal": "#93e0c6",
        "signal-tint": "rgba(147,224,198,.16)"
      }
    },
    "blue": {
      "light": {
        "signal": "#2156f6",
        "signal-tint": "rgba(33,86,246,.10)"
      },
      "dark": {
        "signal": "#3898ff",
        "signal-tint": "rgba(0,183,255,.16)"
      }
    },
    "green": {
      "light": {
        "signal": "#06a550",
        "signal-tint": "rgba(6,165,80,.12)"
      },
      "dark": {
        "signal": "#38ff81",
        "signal-tint": "rgba(56,255,129,.16)"
      }
    }
  },
  "canvas": {
    "$comment": "RGB triplets for canvas 2D drawing. In dark mode `navy` inverts to a light value so strokes stay visible on the dark ground.",
    "light": {
      "navy": [
        19,
        25,
        56
      ],
      "slate": [
        124,
        132,
        152
      ],
      "steel": [
        96,
        116,
        150
      ],
      "sage": [
        120,
        146,
        140
      ]
    },
    "dark": {
      "navy": [
        233,
        236,
        245
      ],
      "slate": [
        149,
        162,
        190
      ],
      "steel": [
        150,
        165,
        200
      ],
      "sage": [
        150,
        175,
        168
      ]
    }
  },
  "type": {
    "sans": {
      "family": "Alliance No.2",
      "stack": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif",
      "weights": [
        300,
        400,
        500,
        600,
        700,
        800,
        900
      ]
    },
    "mono": {
      "family": "JetBrains Mono",
      "stack": "ui-monospace, \"SF Mono\", SFMono-Regular, Menlo, Consolas, monospace",
      "weights": [
        400,
        500
      ]
    },
    "scale": {
      "display": {
        "size": "clamp(34px,4.4vw,52px)",
        "line": "1.08",
        "tracking": "-0.02em",
        "weight": 500
      },
      "h2": {
        "size": "clamp(30px,3.6vw,46px)",
        "line": "1.1",
        "tracking": "-0.02em",
        "weight": 500
      },
      "h3": {
        "size": "26px",
        "line": "1.15",
        "tracking": "-0.02em",
        "weight": 500
      },
      "h4": {
        "size": "20px",
        "line": "1.2",
        "tracking": "-0.02em",
        "weight": 600
      },
      "lede": {
        "size": "20px",
        "line": "1.4",
        "tracking": "-0.02em",
        "weight": 400
      },
      "body": {
        "size": "16px",
        "line": "1.5",
        "tracking": "-0.02em",
        "weight": 400
      },
      "body-lg": {
        "size": "18px",
        "line": "1.6",
        "tracking": "-0.01em",
        "weight": 400
      },
      "small": {
        "size": "14px",
        "line": "20px",
        "tracking": "-0.28px",
        "weight": 400
      },
      "eyebrow": {
        "size": "14px",
        "line": "20px",
        "tracking": "-0.28px",
        "weight": 400,
        "font": "mono",
        "transform": "uppercase"
      },
      "stat": {
        "size": "52px",
        "line": "56px",
        "tracking": "-1.04px",
        "weight": 500,
        "font": "mono"
      }
    }
  },
  "layout": {
    "maxWidth": "1240px",
    "gutter": "40px",
    "gutterSm": "22px",
    "navHeight": "68px",
    "radius": {
      "card": "20px",
      "control": "10px",
      "pill": "999px",
      "input": "8px"
    },
    "section": {
      "y": "100px",
      "ySm": "64px"
    }
  },
  "motion": {
    "$comment": "Every duration here is drawn from the delivered prototypes. Honor prefers-reduced-motion everywhere.",
    "duration": {
      "hover": "180ms",
      "card": "250ms",
      "modal": "300ms",
      "resolve": "450ms",
      "theme": "160ms"
    },
    "easing": {
      "spring": "cubic-bezier(.34,1.56,.64,1)",
      "modal": "cubic-bezier(.34,1.3,.5,1)",
      "standard": "ease",
      "out": "cubic-bezier(.16,1,.3,1)"
    },
    "marquee": {
      "logos": "34s",
      "testimonials": "80s"
    },
    "lift": {
      "card": "-4px",
      "cardSmall": "-3px",
      "testimonial": "-8px"
    }
  },
  "shadow": {
    "light": {
      "card": "0 16px 40px rgba(19,25,56,.10)",
      "control": "0 6px 24px rgba(19,25,56,.16)",
      "raised": "0 10px 30px rgba(19,25,56,.22)"
    },
    "dark": {
      "card": "0 16px 40px rgba(0,0,0,.5)",
      "control": "0 6px 24px rgba(0,0,0,.5)",
      "raised": "0 12px 34px rgba(0,0,0,.55)"
    }
  }
}
