/* Studio 95 — Typography
   Headlines = Hanken Grotesk (Google Fonts), body/UI = Aptos.
   TRIAL (27. 8. 2026): serif claim variant — Operetta (Adobe kit) for the hero/photo claim
   only; two treatments, see guidelines/type-claim-operetta.card.html. Everything else stays
   Hanken Grotesk.
   Max 4 font sizes across any surface — hierarchy comes from weight, not more sizes.
   Two signature moves:
   1) DISPLAY — Hanken Grotesk, large, tight tracking (editorial calm).
   2) LABEL   — small, UPPERCASE, wide tracking — FUNCTIONAL micro-labels only
      (table heads, meta). Eyebrows above headings are BANNED (26. 8. 2026). */
:root{
  --font-sans:'Aptos',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* Headlines — Hanken Grotesk. */
  --font-display:'Hanken Grotesk','Aptos Display',sans-serif;
  /* TRIAL 27. 8.: serif face for the hero claim on photography (Operetta, Adobe kit).
     Weight 400/500 only; italic carries the swash forms. Claim only — never UI/body. */
  --font-claim:'operetta-12',Georgia,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)';

  /* ---- THE 4 SIZES (26. 8. 2026) — the only sizes any surface may use ----
     Hierarchy beyond these comes from weight and case, never a fifth size. */
  --size-display:4rem;      /* 64 — hero / page display */
  --size-heading:2.25rem;   /* 36 — section & card headings */
  --size-body:1rem;         /* 16 — all running text & UI */
  --size-small:0.8125rem;   /* 13 — labels, captions, meta */

  /* Legacy scale — kept as ALIASES so older cards/components keep working.
     Do not use in new work; pick one of the 4 sizes above. */
  --text-2xs:var(--size-small);
  --text-xs:var(--size-small);
  --text-sm:var(--size-small);
  --text-base:var(--size-body);
  --text-md:var(--size-body);
  --text-lg:var(--size-body);
  --text-xl:var(--size-heading);
  --text-2xl:var(--size-heading);
  --text-3xl:var(--size-heading);
  --text-4xl:var(--size-display);
  --text-5xl:var(--size-display);
  --text-6xl:var(--size-display);
  --text-7xl:var(--size-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 functional labels */

  /* Role tokens — all resolve to one of THE 4 SIZES; weight does the rest */
  --display-size:var(--size-display);  --display-leading:var(--leading-tight);  --display-weight:var(--weight-regular); --display-tracking:var(--tracking-tight);
  --h1-size:var(--size-display);       --h1-leading:var(--leading-tight);       --h1-weight:var(--weight-regular);      --h1-tracking:var(--tracking-tight);
  --h2-size:var(--size-heading);       --h2-leading:var(--leading-tight);       --h2-weight:var(--weight-regular);      --h2-tracking:var(--tracking-tight);
  --h3-size:var(--size-heading);       --h3-leading:var(--leading-snug);        --h3-weight:var(--weight-medium);       --h3-tracking:var(--tracking-tight);
  --h4-size:var(--size-body);          --h4-leading:var(--leading-snug);        --h4-weight:var(--weight-semibold);     --h4-tracking:var(--tracking-normal);
  --body-size:var(--size-body);        --body-leading:var(--leading-relaxed);   --body-weight:var(--weight-regular);
  --lead-size:var(--size-body);        --lead-leading:var(--leading-normal);    --lead-weight:var(--weight-regular);
  --small-size:var(--size-small);      --small-leading:var(--leading-normal);
  --label-size:var(--size-small);      --label-weight:var(--weight-semibold);   --label-tracking:var(--tracking-label);
}
