{
  "$description": "Ritwic Singh portfolio design tokens (concept v2). W3C Design Tokens (DTCG) format. Values match styles.css and theme.css.",
  "color": {
    "dark": {
      "bg":      { "$type": "color", "$value": "#0a0a0c", "$description": "Ground. Never pure black." },
      "bg-2":    { "$type": "color", "$value": "#141417" },
      "fg":      { "$type": "color", "$value": "#f7f7f5", "$description": "Ink. 18.4:1 on bg." },
      "soft":    { "$type": "color", "$value": "#b8b5ae", "$description": "Reading subtext. 9.7:1." },
      "muted":   { "$type": "color", "$value": "#a9a69f", "$description": "Labels. 8.1:1." },
      "quiet":   { "$type": "color", "$value": "#8d8a82", "$description": "'Clearer ways through.' at rest. 5.7:1." },
      "line":    { "$type": "color", "$value": "#2a2a2f" },
      "line-2":  { "$type": "color", "$value": "#3d3d44" },
      "opal-1":  { "$type": "color", "$value": "#c6d6ff" },
      "opal-2":  { "$type": "color", "$value": "#e9d7ff" },
      "opal-3":  { "$type": "color", "$value": "#ffd9ec" },
      "opal-4":  { "$type": "color", "$value": "#ffe6d1" },
      "opal-5":  { "$type": "color", "$value": "#d9f7ec" },
      "cta-ink": { "$type": "color", "$value": "#16161a", "$description": "Text on the Opal CTA. 16.2:1 or more." }
    },
    "light": {
      "bg":      { "$type": "color", "$value": "#f5f4f0", "$description": "Warm paper." },
      "bg-2":    { "$type": "color", "$value": "#ebe9e4" },
      "fg":      { "$type": "color", "$value": "#121215", "$description": "17.0:1 on bg." },
      "soft":    { "$type": "color", "$value": "#47453f", "$description": "8.7:1." },
      "muted":   { "$type": "color", "$value": "#55524c", "$description": "7.1:1." },
      "quiet":   { "$type": "color", "$value": "#6b6862", "$description": "5.0:1." },
      "line":    { "$type": "color", "$value": "#d9d6cf" },
      "line-2":  { "$type": "color", "$value": "#b9b5ac" },
      "opal-1":  { "$type": "color", "$value": "#1e2540", "$description": "Pearlescent black: the Opal spectrum pushed almost to black." },
      "opal-2":  { "$type": "color", "$value": "#2b2038" },
      "opal-3":  { "$type": "color", "$value": "#3a2030" },
      "opal-4":  { "$type": "color", "$value": "#3a2a1e" },
      "opal-5":  { "$type": "color", "$value": "#1b3a31" },
      "cta-ink": { "$type": "color", "$value": "#f5f4f0", "$description": "Text on the pearlescent CTA. 15.5:1 or more." }
    }
  },
  "gradient": {
    "opal-soft-dark":  { "$type": "gradient", "$value": "linear-gradient(90deg,#eef3ff,#f5efff,#fff1f7,#fff5ec,#effbf6)" },
    "opal-soft-light": { "$type": "gradient", "$value": "linear-gradient(90deg,#171a26,#1d1726,#251821,#241c16,#15211d)" }
  },
  "font": {
    "display": { "$type": "fontFamily", "$value": ["Bricolage Grotesque", "Arial", "sans-serif"], "$description": "Titles. opsz 96, wdth 80, wght 560, tracking -0.035em, leading 0.94." },
    "body":    { "$type": "fontFamily", "$value": ["Instrument Sans", "Arial", "sans-serif"], "$description": "Reading. 17px, leading 1.6." },
    "serif":   { "$type": "fontFamily", "$value": ["Newsreader", "Georgia", "serif"], "$description": "Hero subtext only." },
    "mono":    { "$type": "fontFamily", "$value": ["JetBrains Mono", "Consolas", "monospace"], "$description": "Labels, nav, CTAs. 13px." }
  },
  "size": {
    "hero":          { "$type": "dimension", "$value": "clamp(3.2rem, 9.2vw, 8.75rem)" },
    "case-title":    { "$type": "dimension", "$value": "clamp(2.75rem, 7.5vw, 7rem)" },
    "section-title": { "$type": "dimension", "$value": "clamp(2.25rem, 5vw, 4.25rem)" },
    "card-title":    { "$type": "dimension", "$value": "1.75rem" },
    "lead":          { "$type": "dimension", "$value": "clamp(1.125rem, 1.6vw, 1.375rem)" },
    "body":          { "$type": "dimension", "$value": "1.0625rem" },
    "label":         { "$type": "dimension", "$value": "0.8125rem" },
    "tag":           { "$type": "dimension", "$value": "0.75rem" },
    "gutter":        { "$type": "dimension", "$value": "clamp(16px, 4vw, 64px)" },
    "max-width":     { "$type": "dimension", "$value": "1360px" },
    "nav-height":    { "$type": "dimension", "$value": "40px" },
    "cta-height":    { "$type": "dimension", "$value": "48px" },
    "target-min":    { "$type": "dimension", "$value": "44px", "$description": "Minimum hit area for links and controls." },
    "logo":          { "$type": "dimension", "$value": "32px" },
    "halo":          { "$type": "dimension", "$value": "76px" }
  },
  "motion": {
    "settle":  { "$type": "cubicBezier", "$value": [0.22, 1, 0.36, 1], "$description": "Nav pill, logo fan, intro. 600–700ms." },
    "reveal":  { "$type": "cubicBezier", "$value": [0.2, 0.7, 0.2, 1], "$description": "Section reveal, 800ms, 28px rise." },
    "pill":    { "$type": "duration", "$value": "700ms" },
    "fan":     { "$type": "duration", "$value": "600ms" },
    "reveal-duration": { "$type": "duration", "$value": "800ms" },
    "intro-max": { "$type": "duration", "$value": "900ms", "$description": "Intro must stay under 1s, once per session, never blocking." }
  }
}
