/* NVIDIA — generated by tools/brand_tokens.py. Do not hand-edit.

   Every value below is transcribed from awesome-design-md/design-md/nvidia/DESIGN.md, read 2026-09-16
   or SOLVED from those values. What is solved is which colour each role takes:
   the published value nearest its limit that still clears its role's WCAG
   ratio against the worst ground in its own theme, so a secondary colour
   legible on the page is also legible in the band beside it.

   Depth: Almost none. No drop shadow on a card or a content surface; the only shadow the system allows is a 5px ambient on sticky chrome. Depth is the alternation of a black chapter against a white one.
   Motion: Not published. The reference documents no duration and no easing, and lists hover states as a known gap. The two rungs here are this portfolio's.

   An explicit data-theme wins over the system preference in both directions,
   so an in-page toggle is not fighting a media query.
*/
:root {
  color-scheme: light dark;
  --nv-paper: #ffffff;
  --nv-raise: #ffffff;
  --nv-sink: #f7f7f7;
  --nv-ink: #000000;
  --nv-ink-2: #1a1a1a;
  --nv-ink-3: #5e5e5e;
  --nv-stroke: #898989;
  --nv-rule: #cccccc;
  --nv-accent: #76b900;
  --nv-on-accent: #000000;
  --nv-accent-text: #0046a4;
  --nv-accent-quiet: #f7fbf3;
  --nv-focus: #000000;
  --nv-error: #e52020;
  --nv-error-text: #e1181b;
  --nv-accent-press: #5a8d00;

  /* Fixed in every theme: a band the brand pins rather than
     one the reader's preference moves. */
  --nv-chapter-bg: #000000;
  --nv-chapter-raise: #1a1a1a;
  --nv-chapter-ink: #ffffff;
  --nv-chapter-ink-2: #a7a7a7;
  --nv-chapter-rule: #5e5e5e;

  --nv-family-sans: 'Inter', Arial, Helvetica, sans-serif;

  --nv-weight-regular: 400;
  --nv-weight-bold: 700;

  --nv-text-display-xl: clamp(2rem, 1.6479rem + 1.5023vw, 3rem);
  --nv-leading-display-xl: 1.25;
  --nv-text-display-lg: clamp(1.75rem, 1.5739rem + 0.7512vw, 2.25rem);
  --nv-leading-display-lg: 1.25;
  --nv-text-heading-xl: 1.5rem;
  --nv-leading-heading-xl: 1.25;
  --nv-text-heading-md: 1.25rem;
  --nv-leading-heading-md: 1.25;
  --nv-text-card-title: 1.0625rem;
  --nv-leading-card-title: 1.47;
  --nv-text-body: 1rem;
  --nv-leading-body: 1.5;
  --nv-text-body-sm: 0.9375rem;
  --nv-leading-body-sm: 1.67;
  --nv-text-caption: 0.875rem;
  --nv-leading-caption: 1.43;
  --nv-text-caption-sm: 0.75rem;
  --nv-leading-caption-sm: 1.25;
  --nv-text-chip: 0.6875rem;
  --nv-leading-chip: 1;

  --nv-sp-2: 0.125rem;
  --nv-sp-4: 0.25rem;
  --nv-sp-8: 0.5rem;
  --nv-sp-12: 0.75rem;
  --nv-sp-16: 1rem;
  --nv-sp-24: 1.5rem;
  --nv-sp-32: 2rem;
  --nv-sp-64: 4rem;

  --nv-radius-base: 2px;
  --nv-radius-round: 50%;

  --nv-duration-base: 160ms;
  --nv-duration-exit: 120ms;
  --nv-ease-base: cubic-bezier(0.2, 0, 0, 1);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --nv-paper: #000000;
    --nv-raise: #1a1a1a;
    --nv-sink: #000000;
    --nv-ink: #ffffff;
    --nv-ink-2: #a7a7a7;
    --nv-ink-3: #898989;
    --nv-stroke: #757575;
    --nv-rule: #1a1a1a;
    --nv-accent: #76b900;
    --nv-on-accent: #000000;
    --nv-accent-text: #76b900;
    --nv-accent-quiet: #000100;
    --nv-focus: #ffffff;
    --nv-error: #e52020;
    --nv-error-text: #f5352f;
    --nv-accent-press: #5a8d00;
  }
}

:root[data-theme="dark"] {
  --nv-paper: #000000;
  --nv-raise: #1a1a1a;
  --nv-sink: #000000;
  --nv-ink: #ffffff;
  --nv-ink-2: #a7a7a7;
  --nv-ink-3: #898989;
  --nv-stroke: #757575;
  --nv-rule: #1a1a1a;
  --nv-accent: #76b900;
  --nv-on-accent: #000000;
  --nv-accent-text: #76b900;
  --nv-accent-quiet: #000100;
  --nv-focus: #ffffff;
  --nv-error: #e52020;
  --nv-error-text: #f5352f;
  --nv-accent-press: #5a8d00;
}
