:root{
--font-display:'Neue Regrade','Plus Jakarta Sans',-apple-system,system-ui,sans-serif;
--font-body:'Plus Jakarta Sans',-apple-system,system-ui,sans-serif;

/* DISPLAY — fluid between the 375px and 1440px frames, clamped at both ends.
   Tracking is in em so it stays proportional as the size interpolates. */
--display-xl-size:clamp(40px,32.96px + 1.878vw,60px);
--display-xl-lh:1.0; /* @kind font */
--display-xl-ls:-0.0083em; /* @kind font */
--display-lg-size:clamp(26px,23.89px + 0.563vw,32px);
--display-lg-lh:1.1; /* @kind font */
--display-lg-ls:-0.0125em; /* @kind font */
--display-md-size:clamp(21px,19.94px + 0.282vw,24px);
--display-md-lh:1.18; /* @kind font */
--display-md-ls:-0.0083em; /* @kind font */
--display-sm-size:clamp(18px,17.3px + 0.188vw,20px);
--display-sm-lh:1.22; /* @kind font */
--display-sm-ls:-0.005em; /* @kind font */
--rating-display-size:clamp(44px,36.96px + 1.878vw,64px);
--rating-display-lh:1.1; /* @kind font */
--rating-display-ls:-0.0156em; /* @kind font */

/* FUNCTIONAL — fixed at every breakpoint. Body copy is 16px on mobile and stays 16px.
   MINIMUM TYPE SIZE: nothing in the system renders below 14px — badges, micro labels and
   captions all sit at 14px. body-sm (14px) is for meta rows, timestamps and table cells —
   never paragraphs; paragraphs use body-md (16px). Headers may go larger, never smaller. */
--title-md-size:16px;
--title-md-weight:600; /* @kind font */
--title-md-lh:1.25; /* @kind font */
--title-sm-size:16px;
--title-sm-weight:500; /* @kind font */
--title-sm-lh:1.25; /* @kind font */
--body-md-size:16px;
--body-md-lh:1.5; /* @kind font */
--body-sm-size:14px;
--body-sm-lh:1.43; /* @kind font */
--caption-size:14px;
--caption-weight:500; /* @kind font */
--caption-lh:1.29; /* @kind font */
--caption-sm-size:14px;
--caption-sm-lh:1.43; /* @kind font */
--badge-size:14px;
--badge-weight:600; /* @kind font */
--badge-lh:1.18; /* @kind font */
--micro-label-size:14px;
--micro-label-weight:700; /* @kind font */
--micro-label-lh:1.33; /* @kind font */
--uppercase-tag-size:8px;
--uppercase-tag-weight:700; /* @kind font */
--uppercase-tag-lh:1.25; /* @kind font */
--uppercase-tag-ls:0.32px; /* @kind font */
--button-md-size:16px;
--button-md-weight:600; /* @kind font */
--button-md-lh:1.25; /* @kind font */
--button-sm-size:14px;
--button-sm-weight:600; /* @kind font */
--button-sm-lh:1.29; /* @kind font */
--nav-link-size:16px;
--nav-link-weight:600; /* @kind font */
--nav-link-lh:1.25; /* @kind font */
--link-size:14px;
--link-lh:1.43; /* @kind font */
--weight-display:700; /* @kind font */

/* Measure — caps line length independent of container width. */
--measure-body:66ch;
--measure-lead:46ch;
}
/* Leading tightens as display type gets larger. */
@media (min-width:768px){:root{
--display-xl-lh:0.96; /* @kind font */
--display-lg-lh:1.08; /* @kind font */
}}
@media (min-width:1024px){:root{
--display-xl-lh:0.92; /* @kind font */
--display-lg-lh:1.05; /* @kind font */
--display-md-lh:1.15; /* @kind font */
--display-sm-lh:1.20; /* @kind font */
}}

.sg-display-xl{font-family:var(--font-display);font-size:var(--display-xl-size);font-weight:700;line-height:var(--display-xl-lh);letter-spacing:var(--display-xl-ls)}
.sg-display-lg{font-family:var(--font-display);font-size:var(--display-lg-size);font-weight:700;line-height:var(--display-lg-lh);letter-spacing:var(--display-lg-ls)}
.sg-display-md{font-family:var(--font-display);font-size:var(--display-md-size);font-weight:700;line-height:var(--display-md-lh);letter-spacing:var(--display-md-ls)}
.sg-display-sm{font-family:var(--font-display);font-size:var(--display-sm-size);font-weight:700;line-height:var(--display-sm-lh);letter-spacing:var(--display-sm-ls)}
.sg-rating-display{font-family:var(--font-display);font-size:var(--rating-display-size);font-weight:700;line-height:var(--rating-display-lh);letter-spacing:var(--rating-display-ls)}
.sg-title-md{font-family:var(--font-body);font-size:var(--title-md-size);font-weight:600;line-height:var(--title-md-lh)}
.sg-title-sm{font-family:var(--font-body);font-size:var(--title-sm-size);font-weight:500;line-height:var(--title-sm-lh)}
.sg-body-md{font-family:var(--font-body);font-size:var(--body-md-size);font-weight:400;line-height:var(--body-md-lh)}
.sg-body-sm{font-family:var(--font-body);font-size:var(--body-sm-size);font-weight:400;line-height:var(--body-sm-lh)}
.sg-caption{font-family:var(--font-body);font-size:var(--caption-size);font-weight:500;line-height:var(--caption-lh)}
.sg-caption-sm{font-family:var(--font-body);font-size:var(--caption-sm-size);font-weight:400;line-height:var(--caption-sm-lh)}
.sg-badge{font-family:var(--font-body);font-size:var(--badge-size);font-weight:600;line-height:var(--badge-lh)}
.sg-micro-label{font-family:var(--font-body);font-size:var(--micro-label-size);font-weight:700;line-height:var(--micro-label-lh)}
.sg-uppercase-tag{font-family:var(--font-body);font-size:var(--uppercase-tag-size);font-weight:700;line-height:var(--uppercase-tag-lh);letter-spacing:var(--uppercase-tag-ls);text-transform:uppercase}
.sg-measure{max-width:var(--measure-body)}
.sg-measure-lead{max-width:var(--measure-lead)}
