/* GENERATED by tools/home2.py from src/ds/foundations.json — do not edit.
   To change a value, change it in Figma, re-run tools/figma/export-foundations.js
   (use_figma), save its output as src/ds/foundations.json and build. */

/* Palette, Type Scale, Spacing — one value each */
:root {
  --color-aqua: #5ef5fa;  /* Secondary/Aqua */
  --color-black: #02030b;  /* Black/Black */
  --color-black-10: #02030b1a;  /* Black/Black 10 */
  --color-black-15: #02030b26;  /* Black/Black 15 */
  --color-black-20: #02030b33;  /* Black/Black 20 */
  --color-black-30: #02030b4d;  /* Black/Black 30 */
  --color-black-40: #02030b66;  /* Black/Black 40 */
  --color-black-5: #02030b0d;  /* Black/Black 5 */
  --color-black-50: #02030b80;  /* Black/Black 50 */
  --color-black-60: #02030b99;  /* Black/Black 60 */
  --color-black-70: #02030bb2;  /* Black/Black 70 */
  --color-black-80: #02030bcc;  /* Black/Black 80 */
  --color-black-90: #02030be5;  /* Black/Black 90 */
  --color-blue: #0541e9;  /* Blue/Blue */
  --color-blue-10: #0541e91a;  /* Blue/Blue 10 */
  --color-blue-20: #0541e933;  /* Blue/Blue 20 */
  --color-blue-30: #0541e94d;  /* Blue/Blue 30 */
  --color-blue-40: #0541e966;  /* Blue/Blue 40 */
  --color-blue-5: #0541e90d;  /* Blue/Blue 5 */
  --color-blue-50: #0541e980;  /* Blue/Blue 50 */
  --color-blue-60: #0541e999;  /* Blue/Blue 60 */
  --color-blue-70: #0541e9b2;  /* Blue/Blue 70 */
  --color-blue-80: #0541e9cc;  /* Blue/Blue 80 */
  --color-blue-90: #0541e9e5;  /* Blue/Blue 90 */
  --color-copper: #877c68;  /* Secondary/Copper */
  --color-cyan: #29ddfd;  /* Secondary/Cyan */
  --color-gray: #f5f5f5;  /* Gray/Gray */
  --color-green: #9bcead;  /* Secondary/Green */
  --color-ice: #c3f2f2;  /* Secondary/Ice */
  --color-mid-blue: #1c99ff;  /* Secondary/Mid Blue */
  --color-mist: #b8e6e6;  /* Secondary/Mist */
  --color-placeholder: #d9dbe0;  /* Gray/Placeholder */
  --color-red: #a33e1b;  /* Secondary/Red */
  --color-sea-glass: #acd6d6;  /* Secondary/Sea Glass */
  --color-sky-blue: #00bbff;  /* Secondary/Sky Blue */
  --color-teal: #c7ffff;  /* Teal/Teal */
  --color-teal-10: #c7ffff1a;  /* Teal/Teal 10 */
  --color-teal-20: #c7ffff33;  /* Teal/Teal 20 */
  --color-teal-30: #c7ffff4d;  /* Teal/Teal 30 */
  --color-teal-40: #c7ffff66;  /* Teal/Teal 40 */
  --color-teal-5: #c7ffff0d;  /* Teal/Teal 5 */
  --color-teal-50: #c7ffff80;  /* Teal/Teal 50 */
  --color-teal-60: #c7ffff99;  /* Teal/Teal 60 */
  --color-teal-70: #c7ffffb2;  /* Teal/Teal 70 */
  --color-teal-80: #c7ffffcc;  /* Teal/Teal 80 */
  --color-teal-90: #c7ffffe5;  /* Teal/Teal 90 */
  --color-warm-white: #f6f0eb;  /* Secondary/Warm White */
  --color-white: #ffffff;  /* White/White */
  --color-white-10: #ffffff1a;  /* White/White 10 */
  --color-white-20: #ffffff33;  /* White/White 20 */
  --color-white-30: #ffffff4d;  /* White/White 30 */
  --color-white-40: #ffffff66;  /* White/White 40 */
  --color-white-5: #ffffff0d;  /* White/White 5 */
  --color-white-50: #ffffff80;  /* White/White 50 */
  --color-white-60: #ffffff99;  /* White/White 60 */
  --color-white-70: #ffffffb2;  /* White/White 70 */
  --color-white-80: #ffffffcc;  /* White/White 80 */
  --color-white-90: #ffffffe5;  /* White/White 90 */
  --font-size-104: 104px;  /* font-size/104 */
  --font-size-12: 12px;  /* font-size/12 */
  --font-size-124: 124px;  /* font-size/124 */
  --font-size-14: 14px;  /* font-size/14 */
  --font-size-144: 144px;  /* font-size/144 */
  --font-size-16: 16px;  /* font-size/16 */
  --font-size-18: 18px;  /* font-size/18 */
  --font-size-24: 24px;  /* font-size/24 */
  --font-size-32: 32px;  /* font-size/32 */
  --font-size-44: 44px;  /* font-size/44 */
  --font-size-64: 64px;  /* font-size/64 */
  --font-size-84: 84px;  /* font-size/84 */
  --font-size-94: 94px;  /* font-size/94 */
  --line-height-116: 116px;  /* line-height/116 */
  --line-height-134: 134px;  /* line-height/134 */
  --line-height-16: 16px;  /* line-height/16 */
  --line-height-18: 18px;  /* line-height/18 */
  --line-height-20: 20px;  /* line-height/20 */
  --line-height-22: 22px;  /* line-height/22 */
  --line-height-24: 24px;  /* line-height/24 */
  --line-height-26: 26px;  /* line-height/26 */
  --line-height-28: 28px;  /* line-height/28 */
  --line-height-32: 32px;  /* line-height/32 */
  --line-height-34: 34px;  /* line-height/34 */
  --line-height-42: 42px;  /* line-height/42 */
  --line-height-46: 46px;  /* line-height/46 */
  --line-height-62: 62px;  /* line-height/62 */
  --line-height-80: 80px;  /* line-height/80 */
  --line-height-90: 90px;  /* line-height/90 */
  --line-height-98: 98px;  /* line-height/98 */
  --space-0: 0;  /* space/0 */
  --space-12: 12px;  /* space/12 */
  --space-120: 120px;  /* space/120 */
  --space-16: 16px;  /* space/16 */
  --space-160: 160px;  /* space/160 */
  --space-2: 2px;  /* space/2 */
  --space-20: 20px;  /* space/20 */
  --space-24: 24px;  /* space/24 */
  --space-240: 240px;  /* space/240 */
  --space-32: 32px;  /* space/32 */
  --space-4: 4px;  /* space/4 */
  --space-40: 40px;  /* space/40 */
  --space-48: 48px;  /* space/48 */
  --space-64: 64px;  /* space/64 */
  --space-8: 8px;  /* space/8 */
  --space-80: 80px;  /* space/80 */
  --space-96: 96px;  /* space/96 */
}

/* Breakpoint · Mobile — Mobile (420), the base */
:root {
  --body-default-font-size: var(--font-size-16);  /* body-default/font-size */
  --body-default-line-height: var(--line-height-24);  /* body-default/line-height */
  --body-lead-font-size: var(--font-size-18);  /* body-lead/font-size */
  --body-lead-line-height: var(--line-height-28);  /* body-lead/line-height */
  --body-small-font-size: var(--font-size-14);  /* body-small/font-size */
  --body-small-line-height: var(--line-height-20);  /* body-small/line-height */
  --button-default-font-size: var(--font-size-14);  /* button-default/font-size */
  --button-default-line-height: var(--line-height-16);  /* button-default/line-height */
  --display-banner-font-size: var(--font-size-44);  /* display-banner/font-size */
  --display-banner-line-height: var(--line-height-46);  /* display-banner/line-height */
  --display-hero-font-size: var(--font-size-44);  /* display-hero/font-size */
  --display-hero-line-height: var(--line-height-46);  /* display-hero/line-height */
  --display-stat-font-size: var(--font-size-44);  /* display-stat/font-size */
  --display-stat-line-height: var(--line-height-46);  /* display-stat/line-height */
  --heading-card-font-size: var(--font-size-18);  /* heading-card/font-size */
  --heading-card-large-font-size: var(--font-size-24);  /* heading-card-large/font-size */
  --heading-card-large-line-height: var(--line-height-26);  /* heading-card-large/line-height */
  --heading-card-line-height: var(--line-height-20);  /* heading-card/line-height */
  --heading-card-small-font-size: var(--font-size-18);  /* heading-card-small/font-size */
  --heading-card-small-line-height: var(--line-height-20);  /* heading-card-small/line-height */
  --heading-item-font-size: var(--font-size-24);  /* heading-item/font-size */
  --heading-item-line-height: var(--line-height-26);  /* heading-item/line-height */
  --heading-section-font-size: var(--font-size-32);  /* heading-section/font-size */
  --heading-section-line-height: var(--line-height-34);  /* heading-section/line-height */
  --label-eyebrow-font-size: var(--font-size-14);  /* label-eyebrow/font-size */
  --label-eyebrow-line-height: var(--line-height-20);  /* label-eyebrow/line-height */
  --radius-box: 4px;  /* radius/box */
  --size-icon: 32px;  /* size/icon */
  --spacing-card-padding: var(--space-24);  /* spacing/card-padding */
  --spacing-grid-gutter: var(--space-16);  /* spacing/grid-gutter */
  --spacing-inline-s: var(--space-12);  /* spacing/inline-s */
  --spacing-inline-xs: var(--space-4);  /* spacing/inline-xs */
  --spacing-media-inset: var(--space-20);  /* spacing/media-inset */
  --spacing-page-margin: var(--space-24);  /* spacing/page-margin */
  --spacing-section-gap: var(--space-40);  /* spacing/section-gap */
  --spacing-section-padding: var(--space-64);  /* spacing/section-padding */
  --spacing-stack-l: var(--space-24);  /* spacing/stack-l */
  --spacing-stack-m: var(--space-16);  /* spacing/stack-m */
  --spacing-stack-s: var(--space-12);  /* spacing/stack-s */
  --spacing-stack-xl: var(--space-32);  /* spacing/stack-xl */
  --spacing-stack-xs: var(--space-8);  /* spacing/stack-xs */
  --viewport-width: 420px;  /* viewport/width */
}

/* Breakpoint · Tablet — Tablet (1024), from 1024px */
@media (min-width: 1024px) {
  :root {
    --body-default-font-size: var(--font-size-14);  /* body-default/font-size */
    --body-default-line-height: var(--line-height-20);  /* body-default/line-height */
    --body-lead-font-size: var(--font-size-16);  /* body-lead/font-size */
    --body-lead-line-height: var(--line-height-24);  /* body-lead/line-height */
    --display-banner-font-size: var(--font-size-64);  /* display-banner/font-size */
    --display-banner-line-height: var(--line-height-62);  /* display-banner/line-height */
    --display-hero-font-size: var(--font-size-64);  /* display-hero/font-size */
    --display-hero-line-height: var(--line-height-62);  /* display-hero/line-height */
    --display-stat-font-size: var(--font-size-32);  /* display-stat/font-size */
    --display-stat-line-height: var(--line-height-34);  /* display-stat/line-height */
    --heading-card-font-size: var(--font-size-24);  /* heading-card/font-size */
    --heading-card-large-line-height: var(--line-height-20);  /* heading-card-large/line-height */
    --heading-card-small-font-size: var(--font-size-16);  /* heading-card-small/font-size */
    --label-eyebrow-font-size: var(--font-size-12);  /* label-eyebrow/font-size */
    --label-eyebrow-line-height: var(--line-height-18);  /* label-eyebrow/line-height */
    --spacing-media-inset: var(--space-24);  /* spacing/media-inset */
    --spacing-page-margin: var(--space-96);  /* spacing/page-margin */
    --spacing-section-gap: var(--space-48);  /* spacing/section-gap */
    --spacing-section-padding: var(--space-80);  /* spacing/section-padding */
    --spacing-stack-m: var(--space-20);  /* spacing/stack-m */
    --spacing-stack-xl: var(--space-40);  /* spacing/stack-xl */
    --viewport-width: 1024px;  /* viewport/width */
  }
}

/* Breakpoint · Desktop — Desktop (1440), from 1392px */
@media (min-width: 1392px) {
  :root {
    --body-default-font-size: var(--font-size-16);  /* body-default/font-size */
    --body-default-line-height: var(--line-height-24);  /* body-default/line-height */
    --body-lead-font-size: var(--font-size-24);  /* body-lead/font-size */
    --body-lead-line-height: var(--line-height-34);  /* body-lead/line-height */
    --body-small-font-size: var(--font-size-16);  /* body-small/font-size */
    --body-small-line-height: var(--line-height-24);  /* body-small/line-height */
    --button-default-font-size: var(--font-size-16);  /* button-default/font-size */
    --display-banner-font-size: var(--font-size-124);  /* display-banner/font-size */
    --display-banner-line-height: var(--line-height-116);  /* display-banner/line-height */
    --display-hero-font-size: var(--font-size-104);  /* display-hero/font-size */
    --display-hero-line-height: var(--line-height-98);  /* display-hero/line-height */
    --display-stat-font-size: var(--font-size-44);  /* display-stat/font-size */
    --display-stat-line-height: var(--line-height-46);  /* display-stat/line-height */
    --heading-card-large-font-size: var(--font-size-32);  /* heading-card-large/font-size */
    --heading-card-large-line-height: var(--line-height-34);  /* heading-card-large/line-height */
    --heading-card-line-height: var(--line-height-26);  /* heading-card/line-height */
    --heading-card-small-font-size: var(--font-size-24);  /* heading-card-small/font-size */
    --heading-card-small-line-height: var(--line-height-26);  /* heading-card-small/line-height */
    --heading-item-font-size: var(--font-size-32);  /* heading-item/font-size */
    --heading-item-line-height: var(--line-height-34);  /* heading-item/line-height */
    --heading-section-font-size: var(--font-size-44);  /* heading-section/font-size */
    --heading-section-line-height: var(--line-height-46);  /* heading-section/line-height */
    --label-eyebrow-font-size: var(--font-size-14);  /* label-eyebrow/font-size */
    --label-eyebrow-line-height: var(--line-height-20);  /* label-eyebrow/line-height */
    --size-icon: 44px;  /* size/icon */
    --spacing-card-padding: var(--space-32);  /* spacing/card-padding */
    --spacing-grid-gutter: var(--space-24);  /* spacing/grid-gutter */
    --spacing-media-inset: var(--space-32);  /* spacing/media-inset */
    --spacing-page-margin: var(--space-120);  /* spacing/page-margin */
    --spacing-section-gap: var(--space-64);  /* spacing/section-gap */
    --spacing-section-padding: var(--space-120);  /* spacing/section-padding */
    --spacing-stack-l: var(--space-40);  /* spacing/stack-l */
    --spacing-stack-m: var(--space-24);  /* spacing/stack-m */
    --spacing-stack-s: var(--space-16);  /* spacing/stack-s */
    --spacing-stack-xl: var(--space-48);  /* spacing/stack-xl */
    --viewport-width: 1440px;  /* viewport/width */
  }
}

/* Breakpoint · Large Screen — Large Screen (1920+), from 1920px */
@media (min-width: 1920px) {
  :root {
    --body-default-font-size: var(--font-size-18);  /* body-default/font-size */
    --body-default-line-height: var(--line-height-28);  /* body-default/line-height */
    --display-banner-font-size: var(--font-size-144);  /* display-banner/font-size */
    --display-banner-line-height: var(--line-height-134);  /* display-banner/line-height */
    --display-hero-font-size: var(--font-size-124);  /* display-hero/font-size */
    --display-hero-line-height: var(--line-height-116);  /* display-hero/line-height */
    --display-stat-font-size: var(--font-size-94);  /* display-stat/font-size */
    --display-stat-line-height: var(--line-height-90);  /* display-stat/line-height */
    --heading-card-font-size: var(--font-size-32);  /* heading-card/font-size */
    --heading-card-large-font-size: var(--font-size-44);  /* heading-card-large/font-size */
    --heading-card-large-line-height: var(--line-height-46);  /* heading-card-large/line-height */
    --heading-card-line-height: var(--line-height-34);  /* heading-card/line-height */
    --heading-section-font-size: var(--font-size-64);  /* heading-section/font-size */
    --heading-section-line-height: var(--line-height-62);  /* heading-section/line-height */
    --label-eyebrow-font-size: var(--font-size-16);  /* label-eyebrow/font-size */
    --label-eyebrow-line-height: var(--line-height-22);  /* label-eyebrow/line-height */
    --radius-box: 6px;  /* radius/box */
    --spacing-card-padding: var(--space-40);  /* spacing/card-padding */
    --spacing-grid-gutter: var(--space-32);  /* spacing/grid-gutter */
    --spacing-page-margin: var(--space-240);  /* spacing/page-margin */
    --spacing-section-gap: var(--space-80);  /* spacing/section-gap */
    --spacing-section-padding: var(--space-160);  /* spacing/section-padding */
    --spacing-stack-l: var(--space-48);  /* spacing/stack-l */
    --spacing-stack-m: var(--space-32);  /* spacing/stack-m */
    --spacing-stack-s: var(--space-20);  /* spacing/stack-s */
    --spacing-stack-xl: var(--space-64);  /* spacing/stack-xl */
    --viewport-width: 1920px;  /* viewport/width */
  }
}

/* Module Background — a module's own ground: <section data-bg="white|gray-5|gray-10"> */
:root, [data-bg="white"] { --card-background: var(--color-black-5); --module-background: var(--color-white); }
[data-bg="gray-5"] { --card-background: var(--color-white); --module-background: var(--color-black-5); }
[data-bg="gray-10"] { --card-background: var(--color-white); --module-background: var(--color-black-10); }

/* Text styles — one class per Figma text style.
   Letter spacing is a percentage in Figma, so it is written in em. */
.t-body-default { font-family: var(--font-sans); font-weight: 400; font-size: var(--body-default-font-size); line-height: var(--body-default-line-height); letter-spacing: -0.02em; }  /* Body/Default */
.t-body-lead { font-family: var(--font-sans); font-weight: 500; font-size: var(--body-lead-font-size); line-height: var(--body-lead-line-height); letter-spacing: -0.02em; }  /* Body/Lead */
.t-body-small { font-family: var(--font-sans); font-weight: 400; font-size: var(--body-small-font-size); line-height: var(--body-small-line-height); letter-spacing: -0.02em; }  /* Body/Small */
.t-button-default { font-family: var(--font-sans); font-weight: 500; font-size: var(--button-default-font-size); line-height: var(--button-default-line-height); letter-spacing: -0.02em; font-feature-settings: "calt" 0; }  /* Button/Default */
.t-display-banner { font-family: var(--font-sans); font-weight: 500; font-size: var(--display-banner-font-size); line-height: var(--display-banner-line-height); letter-spacing: -0.03em; }  /* Display/Banner */
.t-display-hero { font-family: var(--font-sans); font-weight: 500; font-size: var(--display-hero-font-size); line-height: var(--display-hero-line-height); letter-spacing: -0.03em; }  /* Display/Hero */
.t-display-stat { font-family: var(--font-sans); font-weight: 500; font-size: var(--display-stat-font-size); line-height: var(--display-stat-line-height); letter-spacing: -0.03em; }  /* Display/Stat */
.t-heading-card { font-family: var(--font-sans); font-weight: 500; font-size: var(--heading-card-font-size); line-height: var(--heading-card-line-height); letter-spacing: -0.03em; }  /* Heading/Card */
.t-heading-card-large { font-family: var(--font-sans); font-weight: 500; font-size: var(--heading-card-large-font-size); line-height: var(--heading-card-large-line-height); letter-spacing: -0.03em; }  /* Heading/Card Large */
.t-heading-card-small { font-family: var(--font-sans); font-weight: 500; font-size: var(--heading-card-small-font-size); line-height: var(--heading-card-small-line-height); letter-spacing: -0.03em; }  /* Heading/Card Small */
.t-heading-item { font-family: var(--font-sans); font-weight: 500; font-size: var(--heading-item-font-size); line-height: var(--heading-item-line-height); letter-spacing: -0.03em; }  /* Heading/Item */
.t-heading-section { font-family: var(--font-sans); font-weight: 500; font-size: var(--heading-section-font-size); line-height: var(--heading-section-line-height); letter-spacing: -0.03em; }  /* Heading/Section */
.t-label-eyebrow { font-family: var(--font-mono); font-weight: 400; font-size: var(--label-eyebrow-font-size); line-height: var(--label-eyebrow-line-height); letter-spacing: 0; text-transform: uppercase; }  /* Label/Eyebrow */

/* ── LEGACY — not in the design system any more; still used by the code.
   Remove each as the modules that use it move onto the system. */
:root {
  --full: 1000px;  /* Full */
  --label-small-font-size: 14px;  /* label-small/font-size */
  --label-small-line-height: 20px;  /* label-small/line-height */
}
@media (min-width: 1024px) {
  :root {
    --label-small-font-size: 12px;  /* label-small/font-size */
    --label-small-line-height: 18px;  /* label-small/line-height */
  }
}
@media (min-width: 1392px) {
  :root {
    --label-small-font-size: 14px;  /* label-small/font-size */
    --label-small-line-height: 20px;  /* label-small/line-height */
  }
}
.t-label-small { font-family: var(--font-mono); font-weight: 400; font-size: var(--label-small-font-size); line-height: var(--label-small-line-height); letter-spacing: 0; text-transform: uppercase; }  /* Label/Small — legacy */
