{
  "$description": "AC Creations design tokens. W3C Design Tokens Community Group format (2025.10). Three tiers: primitive -> semantic -> component. Semantic and component tiers reference by path and must never carry a raw value. Generated against the rulings on 'AC Creations - the surface system' (Notion), 4 Sep 2026.",

  "primitive": {
    "$description": "Raw values. No meaning, no role. Nothing in the product references this tier directly.",

    "navy": {
      "950": { "$type": "color", "$value": "#000C82", "$description": "The mark's own blue. The brand colour on light grounds." },
      "900": { "$type": "color", "$value": "#04139A" },
      "800": { "$type": "color", "$value": "#091DB3" },
      "700": { "$type": "color", "$value": "#0D28D3" },
      "600": { "$type": "color", "$value": "#1436F5" },
      "500": { "$type": "color", "$value": "#4D65FF" },
      "400": { "$type": "color", "$value": "#7A8EFF", "$description": "Navy lifted. The brand colour on dark grounds - navy itself is invisible there (contrast 1.2)." },
      "300": { "$type": "color", "$value": "#A3AFFF" },
      "200": { "$type": "color", "$value": "#C7CDFF" },
      "100": { "$type": "color", "$value": "#E0E3FF" },
      "050": { "$type": "color", "$value": "#F2F3FF" },
      "975": { "$type": "color", "$value": "#00074C", "$description": "Navy 975, the ground: navy at 15% lightness. The dark ground. Ruled 4 Sep 2026 after terracotta was withdrawn on the proportion argument." }
    },

    "bone": {
      "100": { "$type": "color", "$value": "#F4F2EE", "$description": "The light ground. Warm, not clinical - it belongs to the terracotta rather than fighting it." },
      "200": { "$type": "color", "$value": "#E7E2F2", "$description": "The second light surface." },
      "white": { "$type": "color", "$value": "#FEFEFE" }
    },

    "terracotta": {
      "500": { "$type": "color", "$value": "#A7534B", "$description": "The contrast colour. Accent only - never a ground." },
      "300": { "$type": "color", "$value": "#C87C72", "$description": "Terracotta lifted, for dark grounds. Clears 4.5:1." }
    },

    "purple": {
      "500": { "$type": "color", "$value": "#783487", "$description": "Gradients only, never a flat fill." },
      "300": { "$type": "color", "$value": "#BA73C9", "$description": "Purple lifted, for dark grounds." }
    },

    "neutral": {
      "charcoal": { "$type": "color", "$value": "#2B2B2A" },
      "ink": { "$type": "color", "$value": "#1A1A2E", "$description": "Body text on light. NOT a ground - rejected as one on 4 Sep 2026." }
    },

    "font": {
      "display": { "$type": "fontFamily", "$value": ["Space Grotesk", "system-ui", "sans-serif"] },
      "body": { "$type": "fontFamily", "$value": ["Fira Sans", "system-ui", "sans-serif"] },
      "mono": { "$type": "fontFamily", "$value": ["Fira Code", "ui-monospace", "monospace"] }
    },

    "size": {
      "display-xl": { "$type": "dimension", "$value": "72px" },
      "display-l":  { "$type": "dimension", "$value": "56px" },
      "h1":         { "$type": "dimension", "$value": "44px" },
      "h2":         { "$type": "dimension", "$value": "34px" },
      "h3":         { "$type": "dimension", "$value": "26px" },
      "lede":       { "$type": "dimension", "$value": "20px" },
      "body":       { "$type": "dimension", "$value": "17px" },
      "caption":    { "$type": "dimension", "$value": "14px" },
      "eyebrow":    { "$type": "dimension", "$value": "12px" },
      "micro":      { "$type": "dimension", "$value": "12.5px" }
    },

    "leading": {
      "display-xl": { "$type": "dimension", "$value": "76px" },
      "display-l":  { "$type": "dimension", "$value": "60px" },
      "h1":         { "$type": "dimension", "$value": "48px" },
      "h2":         { "$type": "dimension", "$value": "39px" },
      "h3":         { "$type": "dimension", "$value": "31px" },
      "lede":       { "$type": "dimension", "$value": "32px" },
      "body":       { "$type": "dimension", "$value": "28px" },
      "caption":    { "$type": "dimension", "$value": "21px" },
      "eyebrow":    { "$type": "dimension", "$value": "18px" },
      "micro":      { "$type": "dimension", "$value": "19px" }
    },

    "tracking": {
      "display-xl": { "$type": "dimension", "$value": "-0.02em" },
      "display-l":  { "$type": "dimension", "$value": "-0.015em" },
      "h1":         { "$type": "dimension", "$value": "-0.01em" },
      "h2":         { "$type": "dimension", "$value": "-0.01em" },
      "h3":         { "$type": "dimension", "$value": "0em" },
      "body":       { "$type": "dimension", "$value": "0em" },
      "caption":    { "$type": "dimension", "$value": "0.01em" },
      "eyebrow":    { "$type": "dimension", "$value": "0.14em" },
      "micro":      { "$type": "dimension", "$value": "0.02em" }
    },

    "weight": {
      "regular": { "$type": "fontWeight", "$value": 400 },
      "medium":  { "$type": "fontWeight", "$value": 600 },
      "bold":    { "$type": "fontWeight", "$value": 700 }
    },

    "space": {
      "$description": "Every value is a multiple of 20 - the Weave tile - so components land on the page grid and the grain runs unbroken across boundaries.",
      "1":  { "$type": "dimension", "$value": "20px" },
      "2":  { "$type": "dimension", "$value": "40px" },
      "3":  { "$type": "dimension", "$value": "60px" },
      "4":  { "$type": "dimension", "$value": "80px" },
      "6":  { "$type": "dimension", "$value": "120px" },
      "8":  { "$type": "dimension", "$value": "160px" },
      "half":    { "$type": "dimension", "$value": "10px" },
      "quarter": { "$type": "dimension", "$value": "5px" }
    },

    "duration": {
      "press": { "$type": "duration", "$value": "100ms" },
      "fast":  { "$type": "duration", "$value": "200ms" },
      "base":  { "$type": "duration", "$value": "700ms" },
      "room":  { "$type": "duration", "$value": "1200ms" },
      "lead":  { "$type": "duration", "$value": "80ms", "$description": "Colour leads shape by this much. Ch. V's lamp-lit principle, as a number." }
    },

    "easing": {
      "settle": { "$type": "cubicBezier", "$value": [0.22, 1, 0.36, 1] },
      "press":  { "$type": "cubicBezier", "$value": [0.4, 0, 0.2, 1] }
    }
  },

  "semantic": {
    "$description": "Role. This is the tier the product references. A component that reaches past this into primitive is a bug.",

    "ground": {
      "light":   { "$type": "color", "$value": "{primitive.bone.100}" },
      "light-2": { "$type": "color", "$value": "{primitive.bone.200}" },
      "raised":  { "$type": "color", "$value": "{primitive.bone.white}" },
      "dark":    { "$type": "color", "$value": "{primitive.navy.975}", "$description": "LAW: only navy and bone may hold a ground, in either mode. Terracotta and purple never do - a ground becomes primary by surface area regardless of what the law calls it." }
    },

    "brand": {
      "on-light": { "$type": "color", "$value": "{primitive.navy.950}" },
      "on-dark":  { "$type": "color", "$value": "{primitive.navy.400}", "$description": "The lift law. Navy never appears on a dark ground." }
    },

    "accent": {
      "on-light": { "$type": "color", "$value": "{primitive.terracotta.500}" },
      "on-dark":  { "$type": "color", "$value": "{primitive.terracotta.300}" }
    },

    "flourish": {
      "on-light": { "$type": "color", "$value": "{primitive.purple.500}" },
      "on-dark":  { "$type": "color", "$value": "{primitive.purple.300}" }
    },

    "text": {
      "on-light":        { "$type": "color", "$value": "{primitive.neutral.ink}" },
      "on-light-muted":  { "$type": "color", "$value": "rgba(26,26,46,0.75)" },
      "on-dark":         { "$type": "color", "$value": "{primitive.bone.100}" },
      "on-dark-muted":   { "$type": "color", "$value": "rgba(244,242,238,0.82)" },
      "heading-light":   { "$type": "color", "$value": "{primitive.navy.950}" },
      "heading-dark":    { "$type": "color", "$value": "{primitive.bone.100}" },
      "eyebrow-light":   { "$type": "color", "$value": "rgba(0,12,130,0.60)" },
      "eyebrow-dark":    { "$type": "color", "$value": "{primitive.terracotta.300}" }
    },

    "section": {
      "$description": "Colour encodes WHERE YOU ARE, not rank. Ruled 4 Sep 2026.",
      "work":    { "$type": "color", "$value": "{primitive.navy.950}" },
      "notes":   { "$type": "color", "$value": "{primitive.terracotta.500}" },
      "library": { "$type": "color", "$value": "{primitive.purple.500}" },
      "about":   { "$type": "color", "$value": "{primitive.neutral.charcoal}" }
    },

    "state": {
      "focus-ring":     { "$type": "color", "$value": "{primitive.terracotta.500}", "$description": "2px, offset 2px, and it FOLLOWS THE SHOULDER - never a rectangle around a shaped control." },
      "selection":      { "$type": "color", "$value": "rgba(0,12,130,0.18)", "$description": "Light enough that the Weave stays visible underneath." },
      "disabled-light": { "$type": "color", "$value": "rgba(26,26,46,0.35)" }
    },

    "weave": {
      "$description": "One grain since 16 Oct 2026 (FW-01 ruling 02): the monogram at 10px in a half-drop, a 20 x 10px repeat, so the 20px grid still holds. The 42px tone and 20px fine tiles failed the 1x countability test and are retired. Role is carried by presence (the ladder), never by resizing the tile.",
      "grain":           { "$type": "dimension", "$value": "10px" },
      "repeat":          { "$type": "dimension", "$value": "20px 10px" },
      "opacity-fine":    { "$type": "number", "$value": 0.09, "$description": "The ceiling; above it the half-drop starts to read as dots." },
      "opacity-stripe":  { "$type": "number", "$value": 0.04 },
      "ladder":          { "$type": "number", "$value": [0.09, 0.06, 0.03, 0], "$description": "Presence by date: this month · this year · one to three years · older (deliberately nothing)." },
      "min-surface":     { "$type": "dimension", "$value": "100px", "$description": "Below about five tiles across it stops being tone and becomes a countable motif. Do not use the Weave under this." }
    },

    "grid": {
      "tile": { "$type": "dimension", "$value": "{primitive.space.1}", "$description": "Every component's x and y offset is a whole number of these, so the Weave belongs to the page rather than to the component." }
    }
  },

  "component": {
    "$description": "Specific. Derived from semantic, never from primitive.",

    "shoulder": {
      "$description": "THE RULE: one corner takes a radius of half the component's height; every other corner stays at 6px. The crown peaks near its left and then runs quiet - so does the button.",
      "quiet":  { "$type": "dimension", "$value": "6px" },
      "chip":   { "$type": "dimension", "$value": "16px 4px 4px 4px" },
      "button": { "$type": "dimension", "$value": "24px 6px 6px 6px" },
      "input":  { "$type": "dimension", "$value": "26px 6px 6px 6px" },
      "card":   { "$type": "dimension", "$value": "44px 6px 6px 6px" },
      "panel":  { "$type": "dimension", "$value": "60px 6px 6px 6px" }
    },

    "button": {
      "height":     { "$type": "dimension", "$value": "48px" },
      "bg-primary": { "$type": "color", "$value": "{semantic.brand.on-light}" },
      "fg-primary": { "$type": "color", "$value": "{primitive.bone.white}" },
      "bg-accent":  { "$type": "color", "$value": "{semantic.accent.on-light}" }
    },

    "card": {
      "bg":     { "$type": "color", "$value": "{semantic.ground.raised}" },
      "border": { "$type": "color", "$value": "rgba(0,12,130,0.14)" }
    },

    "code": {
      "bg":      { "$type": "color", "$value": "rgba(0,12,130,0.05)" },
      "gutter":  { "$type": "color", "$value": "rgba(0,12,130,0.40)" },
      "family":  { "$type": "fontFamily", "$value": "{primitive.font.mono}" }
    },

    "rule": {
      "$description": "The horizontal rule dissolves at one end, inheriting the accent's fade. Weakest derivation in the system - flagged for replacement if a stronger option appears.",
      "gradient": { "$type": "color", "$value": "linear-gradient(90deg, #000C82 0%, rgba(0,12,130,0.55) 55%, rgba(0,12,130,0) 100%)" }
    },

    "print": {
      "$description": "One colour, navy. No gradients, no tint under 15%, nothing needing a second pass. THE WEAVE DOES NOT PRINT.",
      "ink":     { "$type": "color", "$value": "{primitive.navy.950}" },
      "body":    { "$type": "dimension", "$value": "11.5px" },
      "leading": { "$type": "dimension", "$value": "18px" },
      "measure": { "$type": "number", "$value": 65 }
    }
  }
}
