/* ============================================================
   ABC Normal (Dinamo) — self-hosted webfonts
   Weight map (usWeightClass -> role):
     300 Book · 400 Regular · 500 Medium · 600 Bold · 700 Heavy
   ============================================================ */

@font-face {
  font-family: "ABC Normal";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("ABCNormal-Book.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("ABCNormal-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("ABCNormal-RegularOblique.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("ABCNormal-Medium.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("ABCNormal-MediumOblique.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("ABCNormal-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "ABC Normal";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("ABCNormal-Heavy.woff2") format("woff2");
}

/* Swap the theme's base font family. Everything (body, headings, buttons,
   inputs) resolves through this one variable; icon fonts set their own
   font-family and are unaffected. */
:root {
  --bs-font-sans-serif: "ABC Normal", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
    "Segoe UI Emoji", "Segoe UI Symbol";
}

/* Reading rhythm tuned for ABC Normal's proportions. */
:root {
  --bs-body-font-size: 1rem;   /* 16px — chosen for optimal reading */
  --bs-body-line-height: 1.55;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  letter-spacing: -0.003em;
}
