/* ============================================================
   Nova Academy — Typography tokens
   Primary: Geist (display + UI + body). Secondary: Inter (footer
   headings, some supporting copy). Accent: Caveat Brush (rare,
   hand-lettered). CJK: Noto Sans SC (星光学院 lockup).
   Fonts are served from Google Fonts (the .fig references these
   families but ships no binaries — see readme.md "Font note").
   Letterspacing in the file: -0.05em on display, -0.03em on UI/body.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@200;300;400;500;600;700;800;900&family=Inter:wght@400;500;600;700&family=Caveat+Brush&family=Noto+Sans+SC:wght@400;500;700&display=swap');

:root {
  /* ---- Families ---- */
  --font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-secondary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --font-accent: "Caveat Brush", "Comic Sans MS", cursive;   /* hand-drawn accent */
  --font-cjk: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;

  /* ---- Weights (Geist named instances used in file) ---- */
  --fw-ultralight: 200; /* @kind font */
  --fw-regular: 400; /* @kind font */
  --fw-medium: 500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold: 700; /* @kind font */
  --fw-black: 900; /* @kind font */

  /* ---- Tracking ---- */
  --tracking-display: -0.05em; /* @kind font */
  --tracking-ui: -0.03em;      /* @kind font */
  --tracking-normal: 0;        /* @kind font */

  /* ---- Type sizes (px values from the file) ---- */
  --text-display-2xl: 111px; /* @kind font */
  --text-display-xl: 48px;   /* @kind font */
  --text-display-lg: 36px;   /* @kind font */
  --text-display-md: 32px;   /* @kind font */
  --text-title: 24px;        /* @kind font */
  --text-subheading: 20px;   /* @kind font */
  --text-body-lg: 18px;      /* @kind font */
  --text-body: 16px;         /* @kind font */
  --text-sm: 14px;           /* @kind font */
  --text-xs: 12px;           /* @kind font */

  /* ---- Line heights ---- */
  --lh-display-2xl: 1;   /* @kind font */
  --lh-display-xl: 55px; /* @kind font */
  --lh-display-lg: 1;    /* @kind font */
  --lh-display-md: 1;    /* @kind font */
  --lh-title: 1.25;      /* @kind font */
  --lh-subheading: 1.4;  /* @kind font */
  --lh-body-lg: 1.5;     /* @kind font */
  --lh-body: 1.5;        /* @kind font */
  --lh-sm: 20px;         /* @kind font */
  --lh-xs: 20px;         /* @kind font */
}

/* ---- Ready-made text style classes ---- */
.nova-display-2xl { font-family: var(--font-sans); font-weight: var(--fw-black); font-size: var(--text-display-2xl); line-height: var(--lh-display-2xl); letter-spacing: var(--tracking-display); color: var(--text-primary); }
.nova-display-xl  { font-family: var(--font-sans); font-weight: var(--fw-black); font-size: var(--text-display-xl); line-height: var(--lh-display-xl); letter-spacing: var(--tracking-display); color: var(--text-primary); }
.nova-heading     { font-family: var(--font-sans); font-weight: var(--fw-bold); font-size: var(--text-display-lg); line-height: var(--lh-display-lg); letter-spacing: var(--tracking-display); color: var(--text-primary); }
.nova-heading-feature { font-family: var(--font-sans); font-weight: var(--fw-bold); font-size: var(--text-display-md); line-height: var(--lh-display-md); letter-spacing: var(--tracking-display); color: var(--text-brand); }
.nova-subheading  { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--text-subheading); line-height: var(--lh-subheading); letter-spacing: var(--tracking-ui); color: var(--text-primary); }
.nova-body        { font-family: var(--font-sans); font-weight: var(--fw-regular); font-size: var(--text-body); line-height: var(--lh-body); letter-spacing: var(--tracking-ui); color: var(--text-primary); }
.nova-label       { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--text-body); line-height: 24px; letter-spacing: var(--tracking-ui); }
.nova-meta        { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--text-sm); line-height: var(--lh-sm); letter-spacing: var(--tracking-ui); color: var(--text-muted); }
.nova-eyebrow     { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--text-xs); line-height: var(--lh-xs); letter-spacing: var(--tracking-ui); }
.nova-accent      { font-family: var(--font-accent); font-weight: var(--fw-regular); }
.nova-cjk         { font-family: var(--font-cjk); }
