:root,
[data-theme="light"],
[data-theme="default"] {
  color-scheme: light;

  /* Semantic color system */
  --color-background: #f5f4f0;
  --color-background-alternate: #eceae4;
  --color-surface: #fbfaf7;
  --color-surface-hover: #f2f4f5;
  --color-border: #d1d6da;
  --color-border-strong: #aab4bd;
  --color-text-primary: #18222c;
  --color-text-secondary: #465462;
  --color-text-muted: #687582;
  --color-accent: #285f8f;
  --color-accent-hover: #17466c;
  --color-accent-contrast: #ffffff;
  --color-link: var(--color-accent);
  --color-link-hover: var(--color-accent-hover);
  --color-focus: #9a5900;
  --color-header-background: rgb(245 244 240 / 94%);

  /* Typography */
  --font-family-primary: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --font-size-body: clamp(1rem, 0.97rem + 0.14vw, 1.08rem);
  --font-size-small: 0.875rem;
  --font-size-label: 0.78rem;
  --font-size-heading-sm: clamp(1.1rem, 1.04rem + 0.3vw, 1.28rem);
  --font-size-heading-md: clamp(1.8rem, 1.5rem + 1.4vw, 2.75rem);
  --font-size-heading-lg: clamp(2.8rem, 2rem + 4vw, 5.5rem);
  --font-weight-regular: 400;
  --font-weight-medium: 550;
  --font-weight-semibold: 650;
  --font-weight-bold: 750;
  --line-height-body: 1.7;
  --line-height-heading: 1.08;
  --line-height-compact: 1.35;
  --letter-spacing-heading: -0.035em;
  --letter-spacing-label: 0.12em;

  /* Spacing and sizing */
  --spacing-2xs: 0.25rem;
  --spacing-xs: 0.5rem;
  --spacing-sm: 0.75rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-2xl: 3rem;
  --spacing-3xl: 4.5rem;
  --spacing-section: clamp(4.5rem, 3.5rem + 4vw, 8rem);
  --spacing-page-gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
  --spacing-card: clamp(1.25rem, 1rem + 1vw, 2rem);
  --container-max-width: 72rem;
  --content-measure: 46rem;
  --layout-column-min: 18rem;
  --layout-grid-responsive: repeat(auto-fit, minmax(min(100%, var(--layout-column-min)), 1fr));
  --navigation-min-height: 4.75rem;
  --navigation-scroll-offset: 8rem;
  --navigation-padding-block: 0.55rem;
  --navigation-row-gap: 0.35rem;
  --navigation-status-gap: var(--spacing-xs);
  --navigation-link-gap-block: var(--spacing-2xs);
  --navigation-link-gap-inline: var(--spacing-lg);
  --headshot-size: clamp(4.5rem, 7vw, 6rem);
  --headshot-aspect-ratio: 1;
  --headshot-object-position: center 28%;
  --status-card-gap: var(--spacing-lg);
  --contact-icon-size: 1.15rem;
  --contact-icon-gap: var(--spacing-xs);
  --contact-icon-stroke-width: 1.75;

  /* Borders, radii, and elevation */
  --border-width: 0.0625rem;
  --focus-width: 0.1875rem;
  --radius-small: 0.35rem;
  --radius-card: 0.7rem;
  --radius-round: 50%;
  --shadow-card: 0 1rem 2.5rem rgb(28 39 49 / 9%);
  --shadow-header: 0 0.35rem 1.5rem rgb(28 39 49 / 7%);

  /* Component tokens */
  --button-padding-block: 0.72rem;
  --button-padding-inline: 1.1rem;
  --button-font-size: var(--font-size-small);
  --button-font-weight: var(--font-weight-semibold);
  --card-background: var(--color-surface);
  --card-border: var(--color-border);
  --card-radius: var(--radius-card);
  --card-shadow: var(--shadow-card);
  --navigation-background: var(--color-header-background);
  --navigation-border: var(--color-border);
  --navigation-link-color: var(--color-text-secondary);
  --navigation-link-hover-color: var(--color-text-primary);
  --headshot-border: var(--color-border-strong);
  --headshot-radius: var(--radius-round);
  --headshot-shadow: var(--shadow-card);
  --contact-icon-color: var(--color-accent);
  --theme-toggle-size: 2.25rem;
  --theme-toggle-icon-size: 1.1rem;
  --theme-toggle-background: var(--color-surface);
  --theme-toggle-background-hover: var(--color-surface-hover);
  --theme-toggle-border: var(--color-border-strong);
  --theme-toggle-color: var(--color-text-primary);
  --theme-toggle-radius: var(--radius-round);
  --theme-toggle-stroke-width: 1.75;

  /* Motion and effects */
  --duration-instant: 0.01ms;
  --duration-fast: 160ms;
  --timing-standard: ease-out;
  --transition-interactive: color var(--duration-fast) var(--timing-standard),
    background-color var(--duration-fast) var(--timing-standard),
    border-color var(--duration-fast) var(--timing-standard);
  --header-blur: 0.75rem;
  --skip-link-hidden-transform: translateY(-200%);
  --skip-link-visible-transform: translateY(0);
}

[data-theme="dark"] {
  color-scheme: dark;

  --color-background: #0c1118;
  --color-background-alternate: #0f1620;
  --color-surface: #141d28;
  --color-surface-hover: #192534;
  --color-border: #2a3849;
  --color-border-strong: #3b4d63;
  --color-text-primary: #f4f7fb;
  --color-text-secondary: #aeb9c7;
  --color-text-muted: #8593a5;
  --color-accent: #79b8ff;
  --color-accent-hover: #a4ceff;
  --color-accent-contrast: #08111c;
  --color-focus: #ffd166;
  --color-header-background: rgb(12 17 24 / 94%);
  --shadow-card: 0 1rem 2.5rem rgb(0 0 0 / 16%);
  --shadow-header: 0 0.35rem 1.5rem rgb(0 0 0 / 14%);
}
