{
  "$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
  "$description": "prfct base tokens — typography, shape, elevation, motion",
  "font": {
    "family": {
      "sans": {
        "$type": "fontFamily",
        "$value": [
          "Inter",
          "ui-sans-serif",
          "system-ui",
          "sans-serif"
        ]
      },
      "mono": {
        "$type": "fontFamily",
        "$value": [
          "Geist Mono",
          "ui-monospace",
          "monospace"
        ]
      }
    }
  },
  "typography": {
    "display-2xl": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 4.5,
          "unit": "rem"
        },
        "lineHeight": 1,
        "letterSpacing": {
          "value": -0.032,
          "unit": "em"
        },
        "fontWeight": 620
      },
      "$description": "Hero headlines on marketing surfaces."
    },
    "display-xl": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 3.75,
          "unit": "rem"
        },
        "lineHeight": 1.0333333333333334,
        "letterSpacing": {
          "value": -0.03,
          "unit": "em"
        },
        "fontWeight": 620
      },
      "$description": "Page heroes."
    },
    "display-lg": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 3,
          "unit": "rem"
        },
        "lineHeight": 1.0833333333333333,
        "letterSpacing": {
          "value": -0.028,
          "unit": "em"
        },
        "fontWeight": 620
      },
      "$description": "Section openers."
    },
    "display-md": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 2.5,
          "unit": "rem"
        },
        "lineHeight": 1.1,
        "letterSpacing": {
          "value": -0.025,
          "unit": "em"
        },
        "fontWeight": 620
      },
      "$description": "Feature titles."
    },
    "display-sm": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 2,
          "unit": "rem"
        },
        "lineHeight": 1.1875,
        "letterSpacing": {
          "value": -0.022,
          "unit": "em"
        },
        "fontWeight": 620
      },
      "$description": "Documentation page titles."
    },
    "heading-xl": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1.75,
          "unit": "rem"
        },
        "lineHeight": 1.2857142857142858,
        "letterSpacing": {
          "value": -0.021,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Top-level app page titles."
    },
    "heading-lg": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1.5,
          "unit": "rem"
        },
        "lineHeight": 1.3333333333333333,
        "letterSpacing": {
          "value": -0.019,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Section titles in product UI."
    },
    "heading-md": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1.25,
          "unit": "rem"
        },
        "lineHeight": 1.4,
        "letterSpacing": {
          "value": -0.016,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Card and dialog titles."
    },
    "heading-sm": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1,
          "unit": "rem"
        },
        "lineHeight": 1.5,
        "letterSpacing": {
          "value": -0.011,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Group and panel titles."
    },
    "heading-xs": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.875,
          "unit": "rem"
        },
        "lineHeight": 1.4285714285714286,
        "letterSpacing": {
          "value": -0.006,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Dense list and table headings."
    },
    "body-lg": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1.125,
          "unit": "rem"
        },
        "lineHeight": 1.5555555555555556,
        "letterSpacing": {
          "value": -0.014,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Lead paragraphs, introductions."
    },
    "body-md": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1,
          "unit": "rem"
        },
        "lineHeight": 1.625,
        "letterSpacing": {
          "value": -0.011,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Long-form reading."
    },
    "body-sm": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.875,
          "unit": "rem"
        },
        "lineHeight": 1.5714285714285714,
        "letterSpacing": {
          "value": -0.006,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Default product UI copy."
    },
    "body-xs": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.8125,
          "unit": "rem"
        },
        "lineHeight": 1.5384615384615385,
        "letterSpacing": {
          "value": -0.003,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Secondary copy in dense UI."
    },
    "label-lg": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 1,
          "unit": "rem"
        },
        "lineHeight": 1.5,
        "letterSpacing": {
          "value": -0.011,
          "unit": "em"
        },
        "fontWeight": 500
      },
      "$description": "Large controls."
    },
    "label-md": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.875,
          "unit": "rem"
        },
        "lineHeight": 1.4285714285714286,
        "letterSpacing": {
          "value": -0.006,
          "unit": "em"
        },
        "fontWeight": 500
      },
      "$description": "Buttons, inputs, menu items."
    },
    "label-sm": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.8125,
          "unit": "rem"
        },
        "lineHeight": 1.3846153846153846,
        "letterSpacing": {
          "value": -0.003,
          "unit": "em"
        },
        "fontWeight": 500
      },
      "$description": "Compact controls, badges."
    },
    "label-xs": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.75,
          "unit": "rem"
        },
        "lineHeight": 1.3333333333333333,
        "letterSpacing": {
          "value": 0,
          "unit": "em"
        },
        "fontWeight": 500
      },
      "$description": "Micro labels, counters."
    },
    "caption": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.75,
          "unit": "rem"
        },
        "lineHeight": 1.3333333333333333,
        "letterSpacing": {
          "value": 0.002,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Captions, timestamps, helper text."
    },
    "overline": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.sans}",
        "fontSize": {
          "value": 0.6875,
          "unit": "rem"
        },
        "lineHeight": 1.4545454545454546,
        "letterSpacing": {
          "value": 0.08,
          "unit": "em"
        },
        "fontWeight": 600
      },
      "$description": "Eyebrows above headings. Uppercase."
    },
    "code": {
      "$type": "typography",
      "$value": {
        "fontFamily": "{font.family.mono}",
        "fontSize": {
          "value": 0.8125,
          "unit": "rem"
        },
        "lineHeight": 1.6923076923076923,
        "letterSpacing": {
          "value": 0,
          "unit": "em"
        },
        "fontWeight": 400
      },
      "$description": "Inline and block code (mono)."
    }
  },
  "radius": {
    "xs": {
      "$type": "dimension",
      "$value": {
        "value": 0.125,
        "unit": "rem"
      },
      "$description": "Focus-ring insets, tiny indicators"
    },
    "sm": {
      "$type": "dimension",
      "$value": {
        "value": 0.25,
        "unit": "rem"
      },
      "$description": "Checkboxes, kbd, small badges"
    },
    "md": {
      "$type": "dimension",
      "$value": {
        "value": 0.375,
        "unit": "rem"
      },
      "$description": "Small buttons and inputs"
    },
    "lg": {
      "$type": "dimension",
      "$value": {
        "value": 0.5,
        "unit": "rem"
      },
      "$description": "Buttons, inputs, selects, menu items"
    },
    "xl": {
      "$type": "dimension",
      "$value": {
        "value": 0.75,
        "unit": "rem"
      },
      "$description": "Cards, popovers, menus"
    },
    "2xl": {
      "$type": "dimension",
      "$value": {
        "value": 1,
        "unit": "rem"
      },
      "$description": "Dialogs, sheets, large cards"
    },
    "3xl": {
      "$type": "dimension",
      "$value": {
        "value": 1.5,
        "unit": "rem"
      },
      "$description": "Marketing tiles"
    },
    "4xl": {
      "$type": "dimension",
      "$value": {
        "value": 2,
        "unit": "rem"
      },
      "$description": "Hero media"
    }
  },
  "duration": {
    "instant": {
      "$type": "duration",
      "$value": {
        "value": 0,
        "unit": "ms"
      },
      "$description": "Reduced-motion fallbacks, immediate feedback."
    },
    "fast": {
      "$type": "duration",
      "$value": {
        "value": 100,
        "unit": "ms"
      },
      "$description": "Hover, press, color and opacity changes."
    },
    "base": {
      "$type": "duration",
      "$value": {
        "value": 160,
        "unit": "ms"
      },
      "$description": "Small state changes: toggles, checks, tabs."
    },
    "moderate": {
      "$type": "duration",
      "$value": {
        "value": 220,
        "unit": "ms"
      },
      "$description": "Menus, popovers and tooltips entering."
    },
    "slow": {
      "$type": "duration",
      "$value": {
        "value": 320,
        "unit": "ms"
      },
      "$description": "Dialogs and sheets entering."
    },
    "slower": {
      "$type": "duration",
      "$value": {
        "value": 480,
        "unit": "ms"
      },
      "$description": "Large layout changes, page-level reveals."
    }
  },
  "easing": {
    "standard": {
      "$type": "cubicBezier",
      "$value": [
        0.2,
        0,
        0,
        1
      ],
      "$description": "Default for elements that change in place."
    },
    "enter": {
      "$type": "cubicBezier",
      "$value": [
        0.16,
        1,
        0.3,
        1
      ],
      "$description": "Elements entering the screen. Fast start, long settle."
    },
    "exit": {
      "$type": "cubicBezier",
      "$value": [
        0.4,
        0,
        1,
        1
      ],
      "$description": "Elements leaving. Accelerates away; pair with shorter durations."
    },
    "move": {
      "$type": "cubicBezier",
      "$value": [
        0.65,
        0,
        0.35,
        1
      ],
      "$description": "Elements moving from one place to another on screen."
    }
  }
}
