/* registry-hash: 12a15068e01920f0 */
/* AI Cloud module: Typography — AUTO-GENERATED from data/typography.json by
 * TypographyService::regenerate(). Do NOT hand-edit this file; edit the config via the
 * Typography admin page (admin/typography) or data/typography.json, then Regenerate.
 *
 * Tier 0 — web-font loading built from the font config: self-host @font-face rules (default)
 *          or a CDN @import. Foundation no longer loads Inter; this asset owns fonts now.
 * Tier 1 — the :root primitive tokens: --mp-fs-* (size), --mp-fw-* (weight),
 *          --mp-lh-* (leading), --mp-ls-* (tracking), --mp-ff-* (family).
 * Tier 2 — the .mp-t-* role classes composing those primitives.
 *
 * Module consumers should reference a primitive with the current literal as a fallback,
 * e.g. font-size:var(--mp-fs-base,13px), so type degrades gracefully when this module is
 * disabled. The @font-face/@import block is emitted first, before the consuming rules. */
@import url('https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,400;0,500;0,600;0,800;1,400;1,500;1,600;1,800&display=swap');
:root{
  /* Font families */
  --mp-ff-sans:Karla,sans-serif;
  --mp-ff-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* Size scale */
  --mp-fs-2xs:10px;
  --mp-fs-xs:11px;
  --mp-fs-sm:12px;
  --mp-fs-base:13px;
  --mp-fs-md:14px;
  --mp-fs-lg:16px;
  --mp-fs-xl:18px;
  --mp-fs-2xl:20px;
  --mp-fs-3xl:24px;
  --mp-fs-4xl:32px;
  /* Weight scale */
  --mp-fw-regular:400;
  --mp-fw-medium:400;
  --mp-fw-semibold:500;
  --mp-fw-bold:500;
  --mp-fw-heavy:600;
  --mp-fw-black:600;
  /* Line height (leading) */
  --mp-lh-none:1;
  --mp-lh-tight:1.1;
  --mp-lh-snug:1.25;
  --mp-lh-normal:1.4;
  --mp-lh-relaxed:1.5;
  /* Letter spacing (tracking) */
  --mp-ls-tighter:-0.03em;
  --mp-ls-tight:-0.01em;
  --mp-ls-normal:0;
  --mp-ls-wide:0.04em;
  --mp-ls-wider:0.08em;
}

/* Semantic role classes (tier-2) — each role from data/typography.json, defined once. */
.mp-t-display{font-size:var(--mp-fs-4xl);font-weight:var(--mp-fw-black);line-height:var(--mp-lh-tight);letter-spacing:var(--mp-ls-tighter)}
.mp-t-h1{font-size:var(--mp-fs-4xl);font-weight:var(--mp-fw-black);line-height:var(--mp-lh-tight);letter-spacing:var(--mp-ls-tighter)}
.mp-t-h2{font-size:var(--mp-fs-3xl);font-weight:var(--mp-fw-heavy);line-height:var(--mp-lh-snug);letter-spacing:var(--mp-ls-tight)}
.mp-t-h3{font-size:var(--mp-fs-xl);font-weight:var(--mp-fw-heavy);line-height:var(--mp-lh-snug);letter-spacing:var(--mp-ls-tight)}
.mp-t-title{font-size:var(--mp-fs-lg);font-weight:var(--mp-fw-bold);letter-spacing:var(--mp-ls-normal)}
.mp-t-body{font-size:var(--mp-fs-base);font-weight:var(--mp-fw-regular);line-height:var(--mp-lh-normal);letter-spacing:var(--mp-ls-normal)}
.mp-t-body-strong{font-size:var(--mp-fs-base);font-weight:var(--mp-fw-bold);letter-spacing:var(--mp-ls-normal)}
.mp-t-label{font-size:var(--mp-fs-xs);font-weight:var(--mp-fw-semibold);letter-spacing:var(--mp-ls-normal)}
.mp-t-caption{font-size:var(--mp-fs-xs);font-weight:var(--mp-fw-regular);line-height:var(--mp-lh-snug);letter-spacing:var(--mp-ls-normal)}
.mp-t-meta{font-size:var(--mp-fs-2xs);font-weight:var(--mp-fw-heavy);line-height:var(--mp-lh-tight);letter-spacing:var(--mp-ls-wider);text-transform:uppercase}
.mp-t-code{font-size:var(--mp-fs-sm);font-weight:var(--mp-fw-regular);line-height:var(--mp-lh-normal);letter-spacing:var(--mp-ls-normal);font-family:var(--mp-ff-mono)}
