/* Studio 95 — Typography
   One family does everything: Aptos (fallback Hanken Grotesk). Voice comes from weight,
   size and tracking, not from a second face. Two signature moves:
   1) DISPLAY — light-to-medium weight, large, tight tracking (editorial calm).
   2) LABEL   — small, UPPERCASE, wide tracking (architectural captions / eyebrows). */
:root{
  --font-sans:'Aptos',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:'Aptos Display','Aptos',system-ui,sans-serif;
  --font-mono:'Aptos Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  /* The wordmark is artwork, never a font. This var only names the intent. */
  --font-logo:'Studio 95 Script (artwork only)';

  /* Type scale — 1.25ish, tuned by hand */
  --text-2xs:0.6875rem;   /* 11 */
  --text-xs:0.75rem;      /* 12 */
  --text-sm:0.875rem;     /* 14 */
  --text-base:1rem;       /* 16 */
  --text-md:1.125rem;     /* 18 */
  --text-lg:1.25rem;      /* 20 */
  --text-xl:1.5rem;       /* 24 */
  --text-2xl:1.875rem;    /* 30 */
  --text-3xl:2.375rem;    /* 38 */
  --text-4xl:3rem;        /* 48 */
  --text-5xl:4rem;        /* 64 */
  --text-6xl:5.25rem;     /* 84 */
  --text-7xl:6.875rem;    /* 110 — hero display */

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

  /* Line heights */
  --leading-none:1;
  --leading-tight:1.08;
  --leading-snug:1.2;
  --leading-normal:1.5;
  --leading-relaxed:1.65;

  /* Letter spacing */
  --tracking-tighter:-0.03em;
  --tracking-tight:-0.015em;
  --tracking-normal:0em;
  --tracking-wide:0.03em;
  --tracking-wider:0.08em;
  --tracking-label:0.18em;   /* uppercase eyebrows / captions */

  /* Role tokens (size / line-height pairs used by the type helper classes) */
  --display-size:var(--text-7xl);   --display-leading:var(--leading-none);   --display-weight:var(--weight-light);   --display-tracking:var(--tracking-tighter);
  --h1-size:var(--text-5xl);        --h1-leading:var(--leading-tight);       --h1-weight:var(--weight-regular);      --h1-tracking:var(--tracking-tight);
  --h2-size:var(--text-3xl);        --h2-leading:var(--leading-tight);       --h2-weight:var(--weight-regular);      --h2-tracking:var(--tracking-tight);
  --h3-size:var(--text-2xl);        --h3-leading:var(--leading-snug);        --h3-weight:var(--weight-medium);       --h3-tracking:var(--tracking-tight);
  --h4-size:var(--text-lg);         --h4-leading:var(--leading-snug);        --h4-weight:var(--weight-semibold);     --h4-tracking:var(--tracking-normal);
  --body-size:var(--text-base);     --body-leading:var(--leading-relaxed);   --body-weight:var(--weight-regular);
  --lead-size:var(--text-md);       --lead-leading:var(--leading-normal);    --lead-weight:var(--weight-regular);
  --small-size:var(--text-sm);      --small-leading:var(--leading-normal);
  --label-size:var(--text-xs);      --label-weight:var(--weight-semibold);   --label-tracking:var(--tracking-label);
}
