{
  "$schema": "https://design-tokens.github.io/community-group/format/",
  "name": "Rental Vault Design Tokens",
  "version": "0.2.0",
  "source": "rv.design-system — sheets 06/07/08/13/19; colour values battle-tested by scripts/colour-engine.mjs (WCAG 2.1, OKLCH-derived)",
  "color": {
    "vault-black": {
      "value": "#1A1A1A",
      "oklch": "oklch(21.8% 0 0)",
      "role": "primary ink · monogram R · wordmark"
    },
    "vault-green": {
      "value": "#00AF13",
      "oklch": "oklch(65.4% 0.218 143)",
      "role": "the check · fills & icons — never small text (2.9:1)"
    },
    "foundation-cream": {
      "value": "#F5F2ED",
      "oklch": "oklch(96.2% 0.007 81)",
      "role": "primary background"
    },
    "white": {
      "value": "#FFFFFF",
      "oklch": "oklch(100% 0 0)",
      "role": "cards · canvas · reversed ink"
    },
    "dark-grey": {
      "value": "#333333",
      "oklch": "oklch(32.1% 0 0)",
      "role": "body text · AAA on light"
    },
    "mid-grey": {
      "value": "#666666",
      "oklch": "oklch(51.0% 0 0)",
      "role": "secondary text · functional borders (5.7:1)"
    },
    "light-grey": {
      "value": "#CCCCCC",
      "oklch": "oklch(84.5% 0 0)",
      "role": "hairlines · decorative only (1.6:1)"
    },
    "shade-1": {
      "value": "#008A0F",
      "oklch": "oklch(54.9% 0.183 143)",
      "role": "CTA surface · icons · green text on white (4.52:1)"
    },
    "text-green": {
      "value": "#087F10",
      "oklch": "oklch(51.8% 0.170 143)",
      "role": "links & green text on cream (4.64:1) and white (5.18:1)"
    },
    "tint-1": {
      "value": "#4DC75A",
      "oklch": "oklch(73.7% 0.185 145)",
      "role": "chips · chart fills (decorative)"
    },
    "ui-subtle": {
      "value": "#E6F7E7",
      "oklch": "oklch(95.9% 0.028 147)",
      "role": "success washes · verified rows"
    },
    "warm-beige": {
      "value": "#E8E2D8",
      "oklch": "oklch(91.5% 0.015 81)",
      "role": "section alternation · panels"
    },
    "shadow-cream": {
      "value": "#D6CFC2",
      "oklch": "oklch(85.7% 0.019 83)",
      "role": "shadows on cream · dividers"
    },
    "dark-beige": {
      "value": "#988873",
      "oklch": "oklch(63.5% 0.036 75)",
      "role": "muted labels · large only on cream (3.1:1)"
    },
    "deep-green-wash": {
      "value": "#0E5220",
      "oklch": "oklch(38.6% 0.104 148)",
      "role": "poster & livery fields · reversed mark"
    }
  },
  "colorRules": {
    "cta-primary": "vault-green surface + vault-black label (5.92:1) — never white on vault-green (2.94:1)",
    "cta-alt": "shade-1 surface + white label (4.52:1)",
    "green-text": "text-green on cream/white · shade-1 acceptable on white only",
    "focus-ring": "2px shade-1, offset 2",
    "matrix": "see /system/colour — generated from contrast.json"
  },
  "font": {
    "display": {
      "family": "Quicksand",
      "weights": [
        300,
        400,
        500,
        700
      ],
      "role": "brand voice · headlines · buttons"
    },
    "body": {
      "family": "Inter",
      "weights": [
        400,
        500,
        600,
        700
      ],
      "role": "product UI · long-form"
    },
    "mono": {
      "family": "IBM Plex Mono",
      "weights": [
        400,
        500,
        600
      ],
      "role": "record IDs · timestamps · proof"
    }
  },
  "typeScale": {
    "display": {
      "size": 56,
      "lineHeight": 1.05,
      "font": "display",
      "weight": 700
    },
    "h1": {
      "size": 40,
      "lineHeight": 1.1,
      "font": "display",
      "weight": 700
    },
    "h2": {
      "size": 28,
      "lineHeight": 1.2,
      "font": "display",
      "weight": 500
    },
    "h3": {
      "size": 20,
      "lineHeight": 1.3,
      "font": "display",
      "weight": 500
    },
    "body": {
      "size": 16,
      "lineHeight": 1.55,
      "font": "body",
      "weight": 400
    },
    "small": {
      "size": 13,
      "lineHeight": 1.45,
      "font": "body",
      "weight": 400
    },
    "caption": {
      "size": 11,
      "lineHeight": 1.4,
      "font": "body",
      "weight": 500,
      "transform": "uppercase"
    },
    "data": {
      "size": 13,
      "lineHeight": 1.4,
      "font": "mono",
      "weight": 500
    }
  },
  "space": {
    "base": 4,
    "scale": [
      4,
      8,
      12,
      16,
      24,
      32,
      48,
      64,
      96
    ],
    "sectionRhythm": {
      "desktop": 96,
      "mobile": 64
    }
  },
  "radius": {
    "sm": 8,
    "md": 12,
    "lg": 16,
    "pill": 999
  },
  "shadow": {
    "sm": "0 3px 10px rgba(26,26,26,0.10)",
    "md": "0 8px 22px rgba(26,26,26,0.14)",
    "lg": "0 16px 40px rgba(26,26,26,0.18)"
  },
  "breakpoint": {
    "mobile": 360,
    "tablet": 768,
    "desktop": 1024,
    "wide": 1440
  },
  "layout": {
    "container": 1200,
    "gutter": 24,
    "columns": {
      "desktop": 12,
      "tablet": 8,
      "mobile": 4
    }
  },
  "motion": {
    "micro": 150,
    "standard": 300,
    "signature": 600,
    "easing": "cubic-bezier(0.2, 0, 0, 1)",
    "reducedMotion": "150ms fade — always honoured"
  },
  "assets": {
    "logo": "/logo/",
    "monogram": "/logo/rv-monogram.svg",
    "lockup": "/logo/rv-lockup-horizontal.svg",
    "badgeCircle": "/logo/rv-badge-circle.svg",
    "verifiedBadge": "/logo/rv-badge-verified.svg",
    "seal": "/logo/rv-seal.svg",
    "icons": "/icons/",
    "iconManifest": "/icons/icons.json"
  }
}
