/* ==========================================================================
   NOOS / Opsus Rate — Typography tokens + @font-face
   Fonts identified in SPEC §19: Mirai, Archia, PP Neue Machina.
   Roles (inferred from letterform + SPEC "tecnica, limpa, arquitetonica"):
     Archia          -> display / headline (geometric, matches wordmark warmth)
     Mirai           -> UI + body text (has weight range + italics, high legibility)
     PP Neue Machina -> technical/data accent (labels, stat figures, mono-esque)
   ========================================================================== */

@font-face {
  font-family: "Archia";
  src: url("../assets/fonts/Archia-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-Light.otf") format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-LightItalic.otf") format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-Italic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Mirai";
  src: url("../assets/fonts/Mirai-MediumItalic.otf") format("opentype");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "PP Neue Machina";
  src: url("../assets/fonts/PPNeueMachina-InktrapRegular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  /* ---- Font families ---- */
  --font-display: "Archia", "Georgia", serif;
  --font-body: "Mirai", "Helvetica Neue", Arial, sans-serif;
  --font-technical: "PP Neue Machina", "Mirai", monospace;

  /* ---- Type scale (px) ---- */
  --text-2xs: 11px;
  --text-xs:  12px;
  --text-sm:  13px;
  --text-base: 15px;
  --text-md:  17px;
  --text-lg:  20px;
  --text-xl:  24px;
  --text-2xl: 30px;
  --text-3xl: 38px;
  --text-4xl: 48px;
  --text-5xl: 64px;

  /* ---- Line heights ---- */
  --leading-tight: 1.1;
  --leading-snug: 1.3;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;

  /* ---- Letter spacing ---- */
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-wider: 0.12em;

  /* ---- Semantic type roles ---- */
  --font-h1: 400 var(--text-4xl)/var(--leading-tight) var(--font-display);
  --font-h2: 400 var(--text-3xl)/var(--leading-tight) var(--font-display);
  --font-h3: 400 var(--text-2xl)/var(--leading-snug) var(--font-display);
  --font-h4: 500 var(--text-xl)/var(--leading-snug) var(--font-body);
  --font-body-lg: 400 var(--text-md)/var(--leading-normal) var(--font-body);
  --font-body-base: 400 var(--text-base)/var(--leading-normal) var(--font-body);
  --font-body-sm: 400 var(--text-sm)/var(--leading-normal) var(--font-body);
  --font-label: 500 var(--text-xs)/var(--leading-snug) var(--font-body);
  --font-eyebrow: 500 var(--text-xs)/var(--leading-snug) var(--font-body);
  /* Large numerals use Mirai Medium, not PP Neue Machina: the Inktrap's notches
     are legible as small technical accents but read as odd/quirky spurs on "1"
     and "9" once blown up to display size. Reserve Neue Machina for -base/-sm. */
  --font-data-lg: 500 var(--text-2xl)/var(--leading-tight) var(--font-body);
  --font-data-base: 400 var(--text-base)/var(--leading-normal) var(--font-technical);
  --font-data-sm: 400 var(--text-xs)/var(--leading-normal) var(--font-technical);
}
