/* Groundcraft marketing-site tokens - concatenation of the _ds token files in styles.css import order:
   fonts (self-hosted @font-face replaces the Google @imports), colors, dark, typography, spacing, motion, base. */

/* Groundcraft self-hosted webfonts — woff2 pulled from the Google Fonts CSS API (latin + latin-ext). No external font requests. */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/space-grotesk-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/space-grotesk-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/space-grotesk-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/space-grotesk-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/space-grotesk-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/space-grotesk-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/inter-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/inter-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jetbrains-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jetbrains-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jetbrains-mono-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jetbrains-mono-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-800-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/plus-jakarta-sans-800-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==== _ds tokens/colors.css ==== */
/* Groundcraft colour system — light theme (default).
   Two brand anchors: graphite #525750 and signal green #9bd45f.
   Ramps are green-warmed greys (never cold slate) + a lime ramp. */
:root{
  /* --- base: graphite ramp (anchored on brand grey #525750) --- */
  --grey-0:#ffffff;
  --grey-25:#f7f8f4;
  --grey-50:#f1f2ed;
  --grey-100:#e5e7e0;
  --grey-200:#d2d5cc;
  --grey-300:#b2b6ab;
  --grey-400:#8e938a;
  --grey-500:#6e7369;
  --grey-600:#525750; /* brand graphite */
  --grey-700:#42463f;
  --grey-800:#32352e;
  --grey-900:#232620;
  --grey-950:#171a15;

  /* --- base: signal green ramp (anchored on brand green #9bd45f) --- */
  --green-100:#eef7df;
  --green-200:#ddefc0;
  --green-300:#c5e59c;
  --green-400:#aedc79;
  --green-500:#9bd45f; /* brand green */
  --green-600:#7cb63e;
  --green-700:#527d21; /* AA on white */
  --green-800:#3f611a;
  --green-900:#2b4310;
  --green-950:#1c2e0a; /* ink on lime */

  /* --- semantic: brand --- */
  --brand:var(--green-500);
  --brand-strong:var(--green-700);   /* links, eyebrows, emphasis on light */
  --brand-hover:#446819;
  --brand-ink:var(--green-950);      /* text on lime */
  --brand-soft:var(--green-100);     /* selected bg, focus glow */

  /* --- semantic: surfaces & ink --- */
  --canvas:var(--grey-25);
  --surface:var(--grey-0);
  --surface-2:var(--grey-50);
  --surface-3:var(--grey-100);
  --ink:#1b1e19;
  --ink-2:var(--grey-600);
  --muted:#787d74;
  --border:#e3e5dc;
  --border-strong:#ced1c6;

  /* --- semantic: the one dark chrome (sidebar / top bar) --- */
  --nav-bg:#20231e;
  --nav-bg-deep:var(--grey-950);
  --nav-ink:#b6bbb0;
  --nav-ink-strong:#f2f3ef;
  --nav-border:#33372f;
  --nav-hover:rgba(255,255,255,.06);
  --nav-active-bg:var(--green-500);
  --nav-active-ink:var(--green-950);
  --nav-eyebrow:#7d837a;

  /* --- semantic: status --- */
  --success:#1e8e5a;--success-bg:#e3f3ea;
  --warning:#b26e0e;--warning-bg:#fbefd8;
  --danger:#ce4040;--danger-bg:#fbe5e5;
  --info:#2e6fcb;--info-bg:#e4edfb;
  --ai:var(--green-500);--ai-bg:var(--green-100); /* AI-signal = brand green, never a new hue */

  /* --- data-viz (discrete series; no gradients) --- */
  --chart-1:#9bd45f;
  --chart-2:#5fae6e;
  --chart-3:#2e6fcb;
  --chart-4:#b26e0e;
  --chart-grid:#e3e5dc;
  --chart-label:#787d74;

  /* --- text tokens --- */
  --text-body:var(--ink-2);
  --text-heading:var(--ink);
  --text-link:var(--brand-strong);
  --text-link-hover:var(--brand-hover);
  --surface-card:var(--surface);
  --focus-ring:0 0 0 3px var(--brand-soft);
  --selection-bg:var(--green-200);
}

/* ==== _ds tokens/dark.css ==== */
/* Groundcraft dark theme — first-class, graphite-led (never cold slate).
   Apply with <html data-theme="dark"> or any container scope. */
[data-theme="dark"]{
  color-scheme:dark;
  --canvas:#141613;
  --surface:#1b1e19;
  --surface-2:#22251f;
  --surface-3:#2a2d26;
  --ink:#eceee7;
  --ink-2:#b5bab0;
  --muted:#878d82;
  --border:#2c2f29;
  --border-strong:#3b3f37;

  --brand-strong:#a5da70;      /* on dark, links go lime */
  --brand-hover:#b8e38c;
  --brand-soft:rgba(155,212,95,.14);

  --nav-bg:#101210;
  --nav-border:#22251f;

  --success:#4cc088;--success-bg:#12271c;
  --warning:#e0a145;--warning-bg:#2e2210;
  --danger:#e77272;--danger-bg:#301717;
  --info:#6ea4ec;--info-bg:#14243c;
  --ai-bg:rgba(155,212,95,.12);

  --chart-grid:#2c2f29;
  --chart-label:#878d82;

  --shadow-card:0 1px 2px rgba(0,0,0,.4);
  --shadow-pop:0 12px 32px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.35);
  --shadow-modal:0 24px 60px rgba(0,0,0,.6);
  --focus-ring:0 0 0 3px rgba(155,212,95,.22);
  --selection-bg:rgba(155,212,95,.3);
}

/* ==== _ds tokens/typography.css ==== */
/* Groundcraft typography — Space Grotesk (display) / Inter (body) / JetBrains Mono (data). */
:root{
  --font-display:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  --font-body:"Inter",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;

  /* scale anchors (console-calibrated; marketing scales up) */
  --text-hero:clamp(40px,5vw,64px);  /* marketing hero, Space Grotesk 700, -0.02em */
  --text-h1:27px;                    /* page title, 700, -0.01em */
  --text-h2:18px;                    /* card/section head, 600 */
  --text-h3:14px;                    /* panel head, 600 */
  --text-stat:26px;                  /* stat numbers, display 700 */
  --text-body-lg:15px;
  --text-body-size:14px;             /* body 400, lh 1.5 */
  --text-sm:13px;
  --text-input:13.5px;
  --text-eyebrow:11px;               /* 600, uppercase, tracking .14em */
  --text-badge:11px;                 /* 600 */
  --text-code:12.5px;                /* mono, lh 1.6 */

  --track-tight:-0.01em;             /* all display headings */
  --track-hero:-0.02em;
  --track-eyebrow:0.14em;
  --leading-body:1.5;
  --leading-code:1.6;
  --leading-display:1.1;
}

/* ==== _ds tokens/spacing.css ==== */
/* Groundcraft spacing, radii, borders, shadows, layout. */
:root{
  /* spacing (px) */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;

  /* radii */
  --r-sm:10px;   /* buttons, inputs, nav items */
  --r-md:16px;   /* cards, modals */
  --r-lg:22px;   /* panels, hero surfaces */
  --r-pill:999px;
  --r-mark:9px;  /* brandmark chip */

  /* borders: hairlines everywhere */
  --hairline:1px solid var(--border);
  --hairline-strong:1px solid var(--border-strong);

  /* shadows — always graphite-tinted, never neutral grey */
  --shadow-card:0 1px 2px rgba(23,26,21,.05);
  --shadow-pop:0 12px 32px rgba(23,26,21,.14),0 2px 6px rgba(23,26,21,.08);
  --shadow-modal:0 24px 60px rgba(23,26,21,.3);

  /* layout rhythm */
  --maxw-console:1320px;
  --maxw-site:1180px;
  --maxw-prose:640px;
  --row-h:44px;       /* list/table rows */
  --card-pad:16px;
  --panel-pad:20px;
  --space-page:28px;
  --sidebar-w:212px;
  --header-h:64px;
}

/* ==== _ds tokens/motion.css ==== */
/* Groundcraft motion — fast, CSS-only, restrained. No parallax, no decorative motion. */
:root{
  --ease:ease; /* @kind other */
  --t-fast:0.12s; /* @kind other */ /* hover: background, border, colour, shadow */
  --t-enter:0.22s; /* @kind other */ /* page/section entry */
  --t-scale:0.18s; /* @kind other */ /* modal/pop entry */
}
@keyframes gc-page-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes gc-scale-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@keyframes gc-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes gc-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes gc-thinking{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* ==== _ds tokens/base.css ==== */
/* Groundcraft base element defaults. */
html,body{margin:0;padding:0}
body{background:var(--canvas);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-body-size);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);letter-spacing:var(--track-tight);margin:0}
p{margin:0}
a{color:var(--text-link);text-decoration:none;transition:color var(--t-fast) var(--ease)}
a:hover{color:var(--text-link-hover)}
code,pre,kbd{font-family:var(--font-mono);font-size:var(--text-code);line-height:var(--leading-code)}
::selection{background:var(--selection-bg);color:var(--ink)}
button{font-family:inherit}
input,select,textarea{font-family:inherit}

