:root {
  --snow: #f7f5f0;
  --paper: #fffdf9;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --unit-1: 0.25rem;
  --unit-2: 0.5rem;
  --unit-3: 0.75rem;
  --unit-4: 1rem;
  --unit-6: 1.5rem;
  --unit-8: 2rem;
  --round-6: 6px;
  --size-14: 0.875rem;
  --size-17: 1.0625rem;
  --size-20: 1.25rem;
  --size-lg: 1.25rem;
  --size-xl: clamp(1.375rem, 1.2rem + 0.75vw, 1.75rem);
  --unit-12: 3rem;
  --unit-16: clamp(3.5rem, 2rem + 5vw, 6.5rem);
  --unit-24: clamp(4.5rem, 3rem + 6vw, 9rem);
  --navy-600: #3a5072;
  --navy-800: #1b2e4d;
  --navy-900: #10203a;
  --navy-950: #0a1424;
  --round-12: 12px;
  --round-20: 20px;
  --size-xxl: clamp(1.875rem, 1.4rem + 2vw, 3rem);
  --width-44: 46rem;
  --width-72: 76rem;
  --width-90: 92rem;
  --stone-100: #ede8de;
  --stone-300: #cfc6b6;
  --stone-600: #5f594e;
  --sunset-100: #fbe6da;
  --sunset-300: #f2a27c;
  --sunset-600: #ad401c;
  --sunset-700: #943515;
  --glacier-100: #ddeff3;
  --glacier-300: #9ed0dd;
  --glacier-700: #1f6378;
  --font-manrope: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --leading-body: 1.65;
  --overlay-dark: #0a1424a6;
  --size-display: clamp(2.5rem, 1.6rem + 3.8vw, 4.5rem);
  --font-fraunces: "Fraunces", Georgia, "Times New Roman", serif;
  --leading-tight: 1.08;
  --weight-regular: 400;
  --weight-semibold: 600;
  --space-1: var(--unit-1);
  --space-2: var(--unit-2);
  --space-3: var(--unit-3);
  --space-4: var(--unit-4);
  --space-6: var(--unit-6);
  --space-8: var(--unit-8);
  --space-12: var(--unit-12);
  --space-16: var(--unit-16);
  --space-24: var(--unit-24);
  --font-body: var(--font-manrope);
  --radius-lg: var(--round-20);
  --radius-md: var(--round-12);
  --radius-sm: var(--round-6);
  --color-link: var(--glacier-700);
  --color-text: var(--navy-900);
  --layout-wide: var(--width-90);
  --color-border: var(--stone-100);
  --font-heading: var(--font-fraunces);
  --font-size-h1: var(--size-display);
  --font-size-h2: var(--size-xxl);
  --font-size-h3: var(--size-xl);
  --font-size-h4: var(--size-lg);
  --font-size-lg: var(--size-20);
  --font-size-sm: var(--size-14);
  --color-heading: var(--navy-950);
  --color-overlay: var(--overlay-dark);
  --color-primary: var(--sunset-600);
  --color-surface: var(--snow);
  --layout-gutter: var(--gutter);
  --layout-narrow: var(--width-44);
  --font-size-base: var(--size-17);
  --layout-default: var(--width-72);
  --color-secondary: var(--glacier-700);
  --color-on-overlay: var(--snow);
  --color-on-primary: var(--paper);
  --color-text-muted: var(--stone-600);
  --font-weight-body: var(--weight-regular);
  --line-height-body: var(--leading-body);
  --color-surface-alt: var(--paper);
  --color-on-secondary: var(--paper);
  --font-weight-heading: var(--weight-semibold);
  --line-height-heading: var(--leading-tight);
  --card-radius: var(--radius-lg);
  --card-background: var(--color-surface-alt);
  --header-background: var(--color-surface);
  --snow-100: #fffefb;
  --snow-200: #fdfcf8;
  --snow-300: #fbf9f6;
  --snow-400: #f9f7f3;
  --snow-600: #c7c5c1;
  --snow-700: #999894;
  --snow-800: #6e6d69;
  --snow-900: #464441;
  --paper-100: #fffffe;
  --paper-200: #fffefd;
  --paper-300: #fffefc;
  --paper-400: #fffdfa;
  --paper-600: #ceccc8;
  --paper-700: #9f9d9a;
  --paper-800: #72706e;
  --paper-900: #484744;
  --navy-600-100: #e1edff;
  --navy-600-200: #b2c4de;
  --navy-600-300: #889bb9;
  --navy-600-400: #607595;
  --navy-600-600: #2b3f5d;
  --navy-600-700: #1c2e49;
  --navy-600-800: #0f1e36;
  --navy-600-900: #040f24;
  --navy-800-100: #dbe9ff;
  --navy-800-200: #a6b6d0;
  --navy-800-300: #7486a2;
  --navy-800-400: #465877;
  --navy-800-600: #12233f;
  --navy-800-700: #091831;
  --navy-800-800: #030e24;
  --navy-800-900: #000517;
  --navy-900-100: #dbe7fb;
  --navy-900-200: #a2b0c7;
  --navy-900-300: #6d7d95;
  --navy-900-400: #3c4c66;
  --navy-900-600: #09172f;
  --navy-900-700: #040f24;
  --navy-900-800: #01071a;
  --navy-900-900: #000210;
  --navy-950-100: #dde5f2;
  --navy-950-200: #a1abb9;
  --navy-950-300: #6a7484;
  --navy-950-400: #374152;
  --navy-950-600: #050e1c;
  --navy-950-700: #030814;
  --navy-950-800: #01040d;
  --navy-950-900: #000107;
  --stone-100-100: #fffdf8;
  --stone-100-200: #fbf7f1;
  --stone-100-300: #f6f2ea;
  --stone-100-400: #f2ede4;
  --stone-100-600: #bfbbb2;
  --stone-100-700: #938f87;
  --stone-100-800: #6a665f;
  --stone-100-900: #43403a;
  --stone-300-100: #fef9f0;
  --stone-300-200: #f2ece1;
  --stone-300-300: #e6dfd2;
  --stone-300-400: #dbd2c4;
  --stone-300-600: #a79f91;
  --stone-300-700: #817a6d;
  --stone-300-800: #5c564b;
  --stone-300-900: #3a352b;
  --stone-600-100: #f1ede6;
  --stone-600-200: #cac6bd;
  --stone-600-300: #a5a096;
  --stone-600-400: #817b71;
  --stone-600-600: #4b463c;
  --stone-600-700: #39342b;
  --stone-600-800: #27231b;
  --stone-600-900: #16130c;
  --sunset-100-100: #fffcfb;
  --sunset-100-200: #fff7f2;
  --sunset-100-300: #fff1e9;
  --sunset-100-400: #feebe0;
  --sunset-100-600: #ccb9ae;
  --sunset-100-700: #9e8d84;
  --sunset-100-800: #73645c;
  --sunset-100-900: #4b3e37;
  --sunset-300-100: #fff6f1;
  --sunset-300-200: #ffe0d2;
  --sunset-300-300: #ffcab2;
  --sunset-300-400: #fdb493;
  --sunset-300-600: #c77f5d;
  --sunset-300-700: #9e5e3f;
  --sunset-300-800: #773f22;
  --sunset-300-900: #512105;
  --sunset-600-100: #ffeae3;
  --sunset-600-200: #ffb8a2;
  --sunset-600-300: #e88e73;
  --sunset-600-400: #cb6849;
  --sunset-600-600: #8f2c05;
  --sunset-600-700: #6f1d00;
  --sunset-600-800: #4e1200;
  --sunset-600-900: #300700;
  --sunset-700-100: #ffe7e0;
  --sunset-700-200: #f9b29c;
  --sunset-700-300: #d8886f;
  --sunset-700-400: #b65f44;
  --sunset-700-600: #7a2302;
  --sunset-700-700: #5e1800;
  --sunset-700-800: #420e00;
  --sunset-700-900: #280500;
  --glacier-100-100: #fafeff;
  --glacier-100-200: #effbfe;
  --glacier-100-300: #e9f7fa;
  --glacier-100-400: #e3f3f7;
  --glacier-100-600: #b1c1c4;
  --glacier-100-700: #869598;
  --glacier-100-800: #5e6b6e;
  --glacier-100-900: #394446;
  --glacier-300-100: #f0fcff;
  --glacier-300-200: #d2f3fc;
  --glacier-300-300: #c1e7f2;
  --glacier-300-400: #afdce7;
  --glacier-300-600: #7aa8b4;
  --glacier-300-700: #59828c;
  --glacier-300-800: #385d66;
  --glacier-300-900: #1a3b43;
  --glacier-700-100: #d5f3ff;
  --glacier-700-200: #a4cede;
  --glacier-700-300: #79a9bb;
  --glacier-700-400: #4e8599;
  --glacier-700-600: #0b4f62;
  --glacier-700-700: #003b4b;
  --glacier-700-800: #002834;
  --glacier-700-900: #00161e;
  --overlay-dark-100: #dde5f2a6;
  --overlay-dark-200: #a1abb9a6;
  --overlay-dark-300: #6a7484a6;
  --overlay-dark-400: #374152a6;
  --overlay-dark-600: #050e1ca6;
  --overlay-dark-700: #030814a6;
  --overlay-dark-800: #01040da6;
  --overlay-dark-900: #000107a6;
}

:root {
  --text-h1-font: var(--font-heading);
  --text-h1-weight: 600;
  --text-h1-size: clamp(2.5rem, 1.7077rem + 3.3803vw, 4.75rem);
  --text-h1-line-height: 1.02;
  --text-h1-letter-spacing: -0.02em;
  --text-h1-case: none;
  --text-h1-style: normal;
  --text-h2-font: var(--font-heading);
  --text-h2-weight: 600;
  --text-h2-size: clamp(1.875rem, 1.4789rem + 1.6901vw, 3rem);
  --text-h2-line-height: 1.08;
  --text-h2-letter-spacing: -0.015em;
  --text-h2-case: none;
  --text-h2-style: normal;
  --text-h3-font: var(--font-manrope);
  --text-h3-weight: 700;
  --text-h3-size: clamp(1.1875rem, 1.1435rem + 0.1878vw, 1.3125rem);
  --text-h3-line-height: 1.3;
  --text-h3-letter-spacing: normal;
  --text-h3-case: none;
  --text-h3-style: normal;
  --text-h4-font: var(--font-heading);
  --text-h4-weight: var(--font-weight-heading);
  --text-h4-size: var(--font-size-h4);
  --text-h4-line-height: var(--line-height-heading);
  --text-h4-letter-spacing: normal;
  --text-h4-case: none;
  --text-h4-style: normal;
  --text-h5-font: var(--text-p-font);
  --text-h5-weight: bold;
  --text-h5-size: 0.83em;
  --text-h5-line-height: var(--text-p-line-height);
  --text-h5-letter-spacing: normal;
  --text-h5-case: none;
  --text-h5-style: normal;
  --text-h6-font: var(--text-p-font);
  --text-h6-weight: bold;
  --text-h6-size: 0.67em;
  --text-h6-line-height: var(--text-p-line-height);
  --text-h6-letter-spacing: normal;
  --text-h6-case: none;
  --text-h6-style: normal;
  --text-p-font: var(--font-body);
  --text-p-weight: var(--font-weight-body);
  --text-p-size: clamp(1rem, 0.978rem + 0.0939vw, 1.0625rem);
  --text-p-line-height: 1.65;
  --text-p-letter-spacing: normal;
  --text-p-case: none;
  --text-p-style: normal;
  --text-p-large-font: var(--text-p-font);
  --text-p-large-weight: var(--text-p-weight);
  --text-p-large-size: clamp(1.125rem, 1.059rem + 0.2817vw, 1.3125rem);
  --text-p-large-line-height: 1.55;
  --text-p-large-letter-spacing: normal;
  --text-p-large-case: none;
  --text-p-large-style: normal;
  --text-p-small-font: var(--text-p-font);
  --text-p-small-weight: var(--text-p-weight);
  --text-p-small-size: var(--font-size-sm);
  --text-p-small-line-height: var(--text-p-line-height);
  --text-p-small-letter-spacing: normal;
  --text-p-small-case: none;
  --text-p-small-style: normal;
}

.theme-dark {
  --color-link: var(--sunset-300);
  --color-text: var(--snow);
  --color-border: var(--navy-600);
  --color-heading: var(--snow);
  --color-surface: var(--navy-900);
  --color-text-muted: var(--stone-300);
  --color-surface-alt: var(--navy-800);
  --card-background: var(--color-surface-alt);
  --header-background: var(--color-surface);
}

.theme-brand {
  --color-link: var(--snow);
  --color-text: var(--snow);
  --color-border: var(--sunset-300);
  --color-heading: var(--snow);
  --color-primary: var(--snow);
  --color-surface: var(--sunset-600);
  --color-on-primary: var(--sunset-700);
  --color-text-muted: var(--sunset-100);
  --color-surface-alt: var(--sunset-700);
  --card-background: var(--color-surface-alt);
  --header-background: var(--color-surface);
}

.theme-muted {
  --color-border: var(--stone-300);
  --color-surface: var(--stone-100);
  --color-surface-alt: var(--paper);
  --card-background: var(--color-surface-alt);
  --header-background: var(--color-surface);
}

.theme-glacier {
  --color-border: var(--glacier-300);
  --color-surface: var(--glacier-100);
  --color-text-muted: var(--navy-600);
  --color-surface-alt: var(--paper);
  --card-background: var(--color-surface-alt);
  --header-background: var(--color-surface);
}

.btn.btn--primary {
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-radius: 999px;
  font-weight: 700;
}

.btn.btn--primary:hover {
  border-color: var(--button-primary-hover-border, transparent);
  background: var(--button-primary-hover-background, var(--color-primary));
  color: var(--button-primary-hover-text, var(--color-on-primary));
}

.btn.btn--secondary {
  border-color: currentColor;
  color: inherit;
  border-radius: 999px;
  font-weight: 700;
}

.btn.btn--text {
  padding-inline: 0;
  color: var(--color-link);
  text-decoration: underline;
  font-weight: 700;
}
