/* ============================================================
   PLUTUS — TYPOGRAPHY TOKENS
   Display: Youth (CDN-hosted, loads in-browser)
   Body:    Banana Grotesk → substituted with Karla (see fonts/fonts.css)
   Deck/Data: Geist + Geist Mono (investor deck)
   ============================================================ */

:root {
  /* ---- FONT FAMILIES ---- */
  --font-display: 'Youth', 'Nunito', system-ui, sans-serif;          /* headlines, hero stats, slide titles */
  --font-body:    'Banana Grotesk', 'Karla', system-ui, sans-serif;  /* body, labels, supporting copy */
  --font-deck:    'Geist', system-ui, sans-serif;                    /* investor deck headings */
  --font-mono:    'Geist Mono', ui-monospace, 'SF Mono', monospace;  /* numbers, data, code */

  /* ---- WEIGHTS ---- */
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* ---- TYPE SCALE (px) ---- */
  --text-display-2xl: 96px;  /* hero numbers (deck) */
  --text-display-xl:  72px;  /* slide titles */
  --text-display-lg:  56px;
  --text-display-md:  40px;
  --text-h1:          32px;
  --text-h2:          26px;
  --text-h3:          21px;
  --text-lg:          18px;
  --text-base:        16px;
  --text-sm:          14px;
  --text-xs:          12px;

  /* ---- TRACKING (brand rules) ---- */
  --track-display: -0.015em; /* headings -1.5% */
  --track-heading: -0.005em; /* medium headings -0.5% */
  --track-body:    -0.01em;  /* body -1% */
  --track-flat:    0;        /* @kind other */

  /* ---- LEADING (brand rules) ---- */
  --leading-display: 0.9;  /* short headings 90% */
  --leading-heading: 1.0;  /* long headings 100% */
  --leading-snug:    1.2;  /* short body 120% */
  --leading-body:    1.25; /* medium body 125% */
  --leading-relaxed: 1.3;  /* long body 130% */

  /* ============================================================
     SEMANTIC TYPE ALIASES
     ============================================================ */
  --type-hero-number: var(--weight-bold) var(--text-display-2xl)/var(--leading-display) var(--font-display);
  --type-slide-title: var(--weight-medium) var(--text-display-xl)/var(--leading-display) var(--font-display);
  --type-h1:          var(--weight-medium) var(--text-h1)/var(--leading-heading) var(--font-display);
  --type-h2:          var(--weight-medium) var(--text-h2)/var(--leading-heading) var(--font-display);
  --type-body:        var(--weight-regular) var(--text-base)/var(--leading-snug) var(--font-body);
  --type-label:       var(--weight-medium) var(--text-sm)/var(--leading-snug) var(--font-body);
  --type-data:        var(--weight-medium) var(--text-base)/var(--leading-snug) var(--font-mono);
}

/* Brand typographic defaults — opt in with .plutus-type on a wrapper */
.plutus-type h1, .plutus-type .h1 { font: var(--type-h1); letter-spacing: var(--track-display); }
.plutus-type h2, .plutus-type .h2 { font: var(--type-h2); letter-spacing: var(--track-heading); }
.plutus-type p,  .plutus-type .body { font: var(--type-body); letter-spacing: var(--track-body); }
