@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  src: url("../fonts/inter-variable.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 200 900;
  src: url("../fonts/source-serif-4-variable.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --color-bg-primary: #f7f9f8;
  --color-bg-secondary: #ffffff;
  --color-bg-tertiary: #e8f0ef;
  --color-bg-inverse: #102238;
  --color-text-primary: #102238;
  --color-text-secondary: #485b6a;
  --color-text-tertiary: #687985;
  --color-text-inverse: #f7fbfa;
  --color-text-link: #06665e;
  --color-border-primary: #b8c9c7;
  --color-border-secondary: #d9e3e2;
  --color-border-focus: #0c756c;
  --color-accent-primary: #087f75;
  --color-accent-primary-hover: #06665e;
  --color-accent-primary-active: #054f49;
  --color-accent-secondary: #16324f;
  --color-status-success: #10704f;
  --color-status-warning: #b85200;
  --color-status-error: #b4232c;
  --color-status-info: #246b91;
  --color-highlight: #fff0b8;
  --color-surface-overlay: rgba(16, 34, 56, 0.66);
  --space-0: 0;
  --space-1: 0.125rem;
  --space-2: 0.25rem;
  --space-3: 0.5rem;
  --space-4: 0.75rem;
  --space-5: 1rem;
  --space-6: 1.5rem;
  --space-7: 2rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --space-10: 6rem;
  --space-11: 8rem;
  --space-12: 10rem;
  --font-family-display: "Source Serif 4", Georgia, serif;
  --font-family-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-md: 1.125rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: clamp(1.45rem, 2vw, 1.75rem);
  --font-size-2xl: clamp(1.75rem, 3vw, 2.4rem);
  --font-size-3xl: clamp(2.2rem, 5vw, 3.6rem);
  --font-size-4xl: clamp(2.65rem, 7vw, 5.25rem);
  --font-weight-normal: 400;
  --font-weight-medium: 550;
  --font-weight-semibold: 650;
  --font-weight-bold: 760;
  --line-height-tight: 1.1;
  --line-height-normal: 1.55;
  --line-height-relaxed: 1.72;
  --letter-spacing-tight: -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: 0.08em;
  --max-width-content: 45rem;
  --max-width-wide: 73.75rem;
  --max-width-page: 90rem;
  --border-radius-sm: 0.35rem;
  --border-radius-md: 0.65rem;
  --border-radius-lg: 1.15rem;
  --border-radius-full: 999px;
  --shadow-sm: 0 1px 2px rgba(16, 34, 56, 0.08);
  --shadow-md: 0 12px 30px rgba(16, 34, 56, 0.09);
  --shadow-lg: 0 24px 65px rgba(16, 34, 56, 0.14);
  --shadow-focus: 0 0 0 3px rgba(8, 127, 117, 0.28);
  --duration-instant: 50ms;
  --duration-fast: 150ms;
  --duration-normal: 250ms;
  --duration-slow: 400ms;
  --duration-slower: 600ms;
  --easing-default: cubic-bezier(0.4, 0, 0.2, 1);
  --easing-in: cubic-bezier(0.4, 0, 1, 1);
  --easing-out: cubic-bezier(0, 0, 0.2, 1);
  --easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --breakpoint-sm: 375px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;
}

[data-theme="dark"] {
  color-scheme: dark;
  --color-bg-primary: #0e1b2a;
  --color-bg-secondary: #14263a;
  --color-bg-tertiary: #1b3445;
  --color-bg-inverse: #edf5f3;
  --color-text-primary: #edf5f3;
  --color-text-secondary: #b7c8cf;
  --color-text-tertiary: #90a6b0;
  --color-text-inverse: #102238;
  --color-text-link: #66d4c5;
  --color-border-primary: #45606d;
  --color-border-secondary: #294353;
  --color-border-focus: #66d4c5;
  --color-accent-primary: #43b7a9;
  --color-accent-primary-hover: #66d4c5;
  --color-accent-primary-active: #8de5d9;
  --color-accent-secondary: #b9d7e9;
  --color-status-success: #66d39e;
  --color-status-warning: #ffad66;
  --color-status-error: #ff8790;
  --color-status-info: #78c8ef;
  --color-highlight: #594b1d;
  --color-surface-overlay: rgba(4, 11, 18, 0.78);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 12px 30px rgba(0, 0, 0, 0.32);
  --shadow-lg: 0 24px 65px rgba(0, 0, 0, 0.42);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --color-bg-primary: #0e1b2a;
    --color-bg-secondary: #14263a;
    --color-bg-tertiary: #1b3445;
    --color-bg-inverse: #edf5f3;
    --color-text-primary: #edf5f3;
    --color-text-secondary: #b7c8cf;
    --color-text-tertiary: #90a6b0;
    --color-text-inverse: #102238;
    --color-text-link: #66d4c5;
    --color-border-primary: #45606d;
    --color-border-secondary: #294353;
    --color-border-focus: #66d4c5;
    --color-accent-primary: #43b7a9;
    --color-accent-primary-hover: #66d4c5;
    --color-accent-primary-active: #8de5d9;
    --color-accent-secondary: #b9d7e9;
    --color-status-success: #66d39e;
    --color-status-warning: #ffad66;
    --color-status-error: #ff8790;
    --color-status-info: #78c8ef;
    --color-highlight: #594b1d;
    --color-surface-overlay: rgba(4, 11, 18, 0.78);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 12px 30px rgba(0, 0, 0, 0.32);
    --shadow-lg: 0 24px 65px rgba(0, 0, 0, 0.42);
  }
}
