/* Nomnetic design tokens — GENERATED by packages/tokens/build.mjs. Do not edit. */
:root {
  --font-sans: "Archivo", ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-max-number-scale: 1.35;
  --font-width-normal: 100%;
  --font-width-semi-expanded: 112.5%;
  --font-width-expanded: 125%;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --space-0: 0px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;
  --space-4-5: 18px;
  --space-0-5: 2px;
  --radius-marker: 3px;
  --radius-none: 0px;
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 30px;
  --radius-full: 999px;
  --size-photo-divider: 3px;
  --size-photo-knob: 44px;
  --size-stroke-border: 1px;
  --size-stroke-focus: 2px;
  --size-nutrition-bar: 10px;
  --size-nutrition-key: 10px;
  --size-touch-min: 48px;
  --size-icon-sm: 16px;
  --size-icon-md: 20px;
  --size-icon-lg: 24px;
  --size-icon-xl: 32px;
  --size-control-button-lg: 52px;
  --size-control-button-md: 48px;
  --size-control-button-sm: 36px;
  --size-control-input: 52px;
  --size-control-list-row: 60px;
  --size-control-top-bar: 52px;
  --size-control-tab-bar: 64px;
  --size-control-fab: 60px;
  --size-control-avatar: 36px;
  --size-control-thumb: 44px;
  --size-layout-gutter-compact: 20px;
  --size-layout-gutter-medium: 24px;
  --size-layout-gutter-expanded: 32px;
  --size-layout-sidebar: 248px;
  --size-layout-rail: 88px;
  --size-layout-content-max: 1120px;
  --size-layout-consent-max: 440px;
  --size-layout-reading-max: 640px;
  --size-layout-sheet-max: 560px;
  --size-layout-action-max: 400px;
  --size-layout-hero-max: 1080px;
  --size-layout-lede-max: 460px;
  --size-layout-hero-header: 84px;
  --size-layout-hero-footer: 72px;
  --breakpoint-medium: 600px;
  --breakpoint-expanded: 1024px;
  --breakpoint-wide: 1440px;
  --duration-instant: 80ms;
  --duration-fast: 140ms;
  --duration-base: 220ms;
  --duration-slow: 320ms;
  --duration-gauge: 700ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-decelerate: cubic-bezier(0, 0, 0, 1);
  --ease-accelerate: cubic-bezier(0.3, 0, 1, 1);
  --z-base: 0;
  --z-sticky: 10;
  --z-nav: 20;
  --z-fab: 30;
  --z-sheet: 40;
  --z-modal: 50;
  --z-toast: 60;
  --opacity-disabled: 0.4;
  --opacity-photo-ghost: 0.35;
  --type-weight-hero-size: 28px;
  --type-weight-hero-line: 34px;
  --type-weight-hero-weight: 700;
  --type-weight-hero-width: 100%;
  --type-weight-hero-tracking: -1px;
  --type-review-metric-size: 20px;
  --type-review-metric-line: 26px;
  --type-review-metric-weight: 700;
  --type-review-metric-width: 100%;
  --type-review-metric-tracking: -0.2px;
  --type-title-accessible-size: 17px;
  --type-title-accessible-line: 22px;
  --type-title-accessible-weight: 700;
  --type-title-accessible-width: 100%;
  --type-title-accessible-tracking: -0.4px;
  --type-review-title-size: 22px;
  --type-review-title-line: 28px;
  --type-review-title-weight: 700;
  --type-review-title-width: 100%;
  --type-review-title-tracking: -0.4px;
  --type-hero-size: 56px;
  --type-hero-line: 56px;
  --type-hero-weight: 800;
  --type-hero-width: 125%;
  --type-hero-tracking: -1.5px;
  --type-display-size: 40px;
  --type-display-line: 44px;
  --type-display-weight: 800;
  --type-display-width: 125%;
  --type-display-tracking: -1px;
  --type-form-title-size: 30px;
  --type-form-title-line: 36px;
  --type-form-title-weight: 800;
  --type-form-title-width: 125%;
  --type-form-title-tracking: -0.8px;
  --type-display-wide-size: 56px;
  --type-display-wide-line: 60px;
  --type-display-wide-weight: 800;
  --type-display-wide-width: 125%;
  --type-display-wide-tracking: -1.5px;
  --type-title-l-size: 28px;
  --type-title-l-line: 34px;
  --type-title-l-weight: 700;
  --type-title-l-width: 112.5%;
  --type-title-l-tracking: -0.4px;
  --type-title-m-size: 20px;
  --type-title-m-line: 26px;
  --type-title-m-weight: 700;
  --type-title-m-width: 112.5%;
  --type-title-m-tracking: -0.2px;
  --type-title-s-size: 17px;
  --type-title-s-line: 22px;
  --type-title-s-weight: 600;
  --type-title-s-width: 100%;
  --type-title-s-tracking: 0px;
  --type-body-l-size: 17px;
  --type-body-l-line: 24px;
  --type-body-l-weight: 400;
  --type-body-l-width: 100%;
  --type-body-l-tracking: 0px;
  --type-body-m-size: 15px;
  --type-body-m-line: 22px;
  --type-body-m-weight: 400;
  --type-body-m-width: 100%;
  --type-body-m-tracking: 0px;
  --type-body-s-size: 13px;
  --type-body-s-line: 18px;
  --type-body-s-weight: 400;
  --type-body-s-width: 100%;
  --type-body-s-tracking: 0.1px;
  --type-label-l-size: 17px;
  --type-label-l-line: 22px;
  --type-label-l-weight: 600;
  --type-label-l-width: 100%;
  --type-label-l-tracking: 0px;
  --type-label-m-size: 15px;
  --type-label-m-line: 20px;
  --type-label-m-weight: 600;
  --type-label-m-width: 100%;
  --type-label-m-tracking: 0px;
  --type-label-s-size: 13px;
  --type-label-s-line: 16px;
  --type-label-s-weight: 600;
  --type-label-s-width: 100%;
  --type-label-s-tracking: 0.1px;
  --type-caption-size: 12px;
  --type-caption-line: 16px;
  --type-caption-weight: 500;
  --type-caption-width: 100%;
  --type-caption-tracking: 0.2px;
  --type-num-l-size: 28px;
  --type-num-l-line: 32px;
  --type-num-l-weight: 800;
  --type-num-l-width: 125%;
  --type-num-l-tracking: -0.5px;
  --type-num-m-size: 20px;
  --type-num-m-line: 24px;
  --type-num-m-weight: 700;
  --type-num-m-width: 112.5%;
  --type-num-m-tracking: -0.2px;
  --type-num-s-size: 15px;
  --type-num-s-line: 20px;
  --type-num-s-weight: 600;
  --type-num-s-width: 100%;
  --type-num-s-tracking: 0px;
}

:root {
  color-scheme: light;
  --color-photo-overlay: rgba(22, 24, 29, 0.72);
  --color-photo-text: #FFFFFF;
  --color-bg-canvas: #F3F3F0;
  --color-bg-surface: #FFFFFF;
  --color-bg-raised: #FFFFFF;
  --color-bg-inset: #EDEDE9;
  --color-bg-inverse: #16181D;
  --color-bg-scrim: rgba(22, 24, 29, 0.40);
  --color-bg-pressed: rgba(22, 24, 29, 0.06);
  --color-border-subtle: #E3E3DE;
  --color-border-default: #D2D2CB;
  --color-border-strong: #6B6E76;
  --color-border-focus: #2747E8;
  --color-text-primary: #16181D;
  --color-text-secondary: #5C5F66;
  --color-text-tertiary: #6B6E76;
  --color-text-disabled: #A9AAA6;
  --color-text-inverse: #FFFFFF;
  --color-text-on-accent: #FFFFFF;
  --color-text-link: #2747E8;
  --color-accent-default: #2747E8;
  --color-accent-pressed: #1E3AC4;
  --color-accent-soft: #EEF1FF;
  --color-accent-soft-text: #1E3AC4;
  --color-accent-track: #E3E8FF;
  --color-brand-tile: #2747E8;
  --color-brand-mark: #FFFFFF;
  --color-brand-base: #16181D;
  --color-brand-wordmark: #16181D;
  --color-brand-glow: rgba(39, 71, 232, 0.12);
  --color-macro-protein: #E34C82;
  --color-macro-carbs: #BA7D00;
  --color-macro-fat: #6B5CF2;
  --color-macro-protein-track: #FCE4EE;
  --color-macro-carbs-track: #FAEFD6;
  --color-macro-fat-track: #ECE9FF;
  --color-status-success: #157544;
  --color-status-success-soft: #E2F4EA;
  --color-status-warning: #A15400;
  --color-status-warning-soft: #FDF0DD;
  --color-status-danger: #C4223A;
  --color-status-danger-soft: #FDE7E9;
  --color-status-on-danger: #FFFFFF;
  --color-chart-grid: #E3E3DE;
  --color-chart-axis: #6B6E76;
  --color-chart-series: #2747E8;
  --color-chart-series-soft: rgba(39, 71, 232, 0.10);
  --color-chart-raw: #A9AAA6;
  --color-chart-reference: #6B6E76;
  --color-skeleton-base: #EDEDE9;
  --color-skeleton-highlight: #F7F7F5;
  --shadow-1: 0 1px 2px rgba(22, 24, 29, 0.06);
  --shadow-2: 0 2px 6px rgba(22, 24, 29, 0.06), 0 8px 24px rgba(22, 24, 29, 0.10);
  --shadow-3: 0 12px 48px rgba(22, 24, 29, 0.20);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --color-photo-overlay: rgba(22, 24, 29, 0.72);
    --color-photo-text: #FFFFFF;
    --color-bg-canvas: #0E1013;
    --color-bg-surface: #1B1E23;
    --color-bg-raised: #252930;
    --color-bg-inset: #252930;
    --color-bg-inverse: #F2F3F5;
    --color-bg-scrim: rgba(0, 0, 0, 0.60);
    --color-bg-pressed: rgba(242, 243, 245, 0.08);
    --color-border-subtle: #2E333B;
    --color-border-default: #3C424C;
    --color-border-strong: #8A8F99;
    --color-border-focus: #8EA0FF;
    --color-text-primary: #F2F3F5;
    --color-text-secondary: #A9AEB8;
    --color-text-tertiary: #8A8F99;
    --color-text-disabled: #3C424C;
    --color-text-inverse: #0E1013;
    --color-text-on-accent: #FFFFFF;
    --color-text-link: #8EA0FF;
    --color-accent-default: #4A63F5;
    --color-accent-pressed: #2747E8;
    --color-accent-soft: #1A2040;
    --color-accent-soft-text: #A3B2FF;
    --color-accent-track: #1D2342;
    --color-brand-tile: #4A63F5;
    --color-brand-mark: #FFFFFF;
    --color-brand-base: #16181D;
    --color-brand-wordmark: #F2F3F5;
    --color-brand-glow: rgba(74, 99, 245, 0.34);
    --color-macro-protein: #E55689;
    --color-macro-carbs: #BF8A0B;
    --color-macro-fat: #8574F7;
    --color-macro-protein-track: #3A1F2B;
    --color-macro-carbs-track: #352A12;
    --color-macro-fat-track: #2A2550;
    --color-status-success: #3DCB7F;
    --color-status-success-soft: #173323;
    --color-status-warning: #F0A040;
    --color-status-warning-soft: #3A2A14;
    --color-status-danger: #FF6B78;
    --color-status-danger-soft: #3D1E22;
    --color-status-on-danger: #0E1013;
    --color-chart-grid: #2E333B;
    --color-chart-axis: #8A8F99;
    --color-chart-series: #8EA0FF;
    --color-chart-series-soft: rgba(142, 160, 255, 0.12);
    --color-chart-raw: #3C424C;
    --color-chart-reference: #8A8F99;
    --color-skeleton-base: #252930;
    --color-skeleton-highlight: #2E333B;
    --shadow-1: 0 0 0 1px rgba(255, 255, 255, 0.04);
    --shadow-2: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 8px 24px rgba(0, 0, 0, 0.50);
    --shadow-3: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 48px rgba(0, 0, 0, 0.60);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --color-photo-overlay: rgba(22, 24, 29, 0.72);
  --color-photo-text: #FFFFFF;
  --color-bg-canvas: #0E1013;
  --color-bg-surface: #1B1E23;
  --color-bg-raised: #252930;
  --color-bg-inset: #252930;
  --color-bg-inverse: #F2F3F5;
  --color-bg-scrim: rgba(0, 0, 0, 0.60);
  --color-bg-pressed: rgba(242, 243, 245, 0.08);
  --color-border-subtle: #2E333B;
  --color-border-default: #3C424C;
  --color-border-strong: #8A8F99;
  --color-border-focus: #8EA0FF;
  --color-text-primary: #F2F3F5;
  --color-text-secondary: #A9AEB8;
  --color-text-tertiary: #8A8F99;
  --color-text-disabled: #3C424C;
  --color-text-inverse: #0E1013;
  --color-text-on-accent: #FFFFFF;
  --color-text-link: #8EA0FF;
  --color-accent-default: #4A63F5;
  --color-accent-pressed: #2747E8;
  --color-accent-soft: #1A2040;
  --color-accent-soft-text: #A3B2FF;
  --color-accent-track: #1D2342;
  --color-brand-tile: #4A63F5;
  --color-brand-mark: #FFFFFF;
  --color-brand-base: #16181D;
  --color-brand-wordmark: #F2F3F5;
  --color-brand-glow: rgba(74, 99, 245, 0.34);
  --color-macro-protein: #E55689;
  --color-macro-carbs: #BF8A0B;
  --color-macro-fat: #8574F7;
  --color-macro-protein-track: #3A1F2B;
  --color-macro-carbs-track: #352A12;
  --color-macro-fat-track: #2A2550;
  --color-status-success: #3DCB7F;
  --color-status-success-soft: #173323;
  --color-status-warning: #F0A040;
  --color-status-warning-soft: #3A2A14;
  --color-status-danger: #FF6B78;
  --color-status-danger-soft: #3D1E22;
  --color-status-on-danger: #0E1013;
  --color-chart-grid: #2E333B;
  --color-chart-axis: #8A8F99;
  --color-chart-series: #8EA0FF;
  --color-chart-series-soft: rgba(142, 160, 255, 0.12);
  --color-chart-raw: #3C424C;
  --color-chart-reference: #8A8F99;
  --color-skeleton-base: #252930;
  --color-skeleton-highlight: #2E333B;
  --shadow-1: 0 0 0 1px rgba(255, 255, 255, 0.04);
  --shadow-2: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 8px 24px rgba(0, 0, 0, 0.50);
  --shadow-3: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 48px rgba(0, 0, 0, 0.60);
}

/* Typography roles — use these classes (web) or tokens.type (native). */
.type-weight-hero {
  font-family: var(--font-sans);
  font-size: var(--type-weight-hero-size);
  line-height: var(--type-weight-hero-line);
  font-weight: var(--type-weight-hero-weight);
  font-stretch: var(--type-weight-hero-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-weight-hero-tracking);
  font-variant-numeric: tabular-nums;
}
.type-review-metric {
  font-family: var(--font-sans);
  font-size: var(--type-review-metric-size);
  line-height: var(--type-review-metric-line);
  font-weight: var(--type-review-metric-weight);
  font-stretch: var(--type-review-metric-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-review-metric-tracking);
}
.type-title-accessible {
  font-family: var(--font-sans);
  font-size: var(--type-title-accessible-size);
  line-height: var(--type-title-accessible-line);
  font-weight: var(--type-title-accessible-weight);
  font-stretch: var(--type-title-accessible-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-title-accessible-tracking);
}
.type-review-title {
  font-family: var(--font-sans);
  font-size: var(--type-review-title-size);
  line-height: var(--type-review-title-line);
  font-weight: var(--type-review-title-weight);
  font-stretch: var(--type-review-title-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-review-title-tracking);
}
.type-hero {
  font-family: var(--font-sans);
  font-size: var(--type-hero-size);
  line-height: var(--type-hero-line);
  font-weight: var(--type-hero-weight);
  font-stretch: var(--type-hero-width);
  font-variation-settings: "wdth" 125;
  letter-spacing: var(--type-hero-tracking);
}
.type-display {
  font-family: var(--font-sans);
  font-size: var(--type-display-size);
  line-height: var(--type-display-line);
  font-weight: var(--type-display-weight);
  font-stretch: var(--type-display-width);
  font-variation-settings: "wdth" 125;
  letter-spacing: var(--type-display-tracking);
}
.type-form-title {
  font-family: var(--font-sans);
  font-size: var(--type-form-title-size);
  line-height: var(--type-form-title-line);
  font-weight: var(--type-form-title-weight);
  font-stretch: var(--type-form-title-width);
  font-variation-settings: "wdth" 125;
  letter-spacing: var(--type-form-title-tracking);
}
.type-display-wide {
  font-family: var(--font-sans);
  font-size: var(--type-display-wide-size);
  line-height: var(--type-display-wide-line);
  font-weight: var(--type-display-wide-weight);
  font-stretch: var(--type-display-wide-width);
  font-variation-settings: "wdth" 125;
  letter-spacing: var(--type-display-wide-tracking);
}
.type-title-l {
  font-family: var(--font-sans);
  font-size: var(--type-title-l-size);
  line-height: var(--type-title-l-line);
  font-weight: var(--type-title-l-weight);
  font-stretch: var(--type-title-l-width);
  font-variation-settings: "wdth" 112.5;
  letter-spacing: var(--type-title-l-tracking);
}
.type-title-m {
  font-family: var(--font-sans);
  font-size: var(--type-title-m-size);
  line-height: var(--type-title-m-line);
  font-weight: var(--type-title-m-weight);
  font-stretch: var(--type-title-m-width);
  font-variation-settings: "wdth" 112.5;
  letter-spacing: var(--type-title-m-tracking);
}
.type-title-s {
  font-family: var(--font-sans);
  font-size: var(--type-title-s-size);
  line-height: var(--type-title-s-line);
  font-weight: var(--type-title-s-weight);
  font-stretch: var(--type-title-s-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-title-s-tracking);
}
.type-body-l {
  font-family: var(--font-sans);
  font-size: var(--type-body-l-size);
  line-height: var(--type-body-l-line);
  font-weight: var(--type-body-l-weight);
  font-stretch: var(--type-body-l-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-body-l-tracking);
}
.type-body-m {
  font-family: var(--font-sans);
  font-size: var(--type-body-m-size);
  line-height: var(--type-body-m-line);
  font-weight: var(--type-body-m-weight);
  font-stretch: var(--type-body-m-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-body-m-tracking);
}
.type-body-s {
  font-family: var(--font-sans);
  font-size: var(--type-body-s-size);
  line-height: var(--type-body-s-line);
  font-weight: var(--type-body-s-weight);
  font-stretch: var(--type-body-s-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-body-s-tracking);
}
.type-label-l {
  font-family: var(--font-sans);
  font-size: var(--type-label-l-size);
  line-height: var(--type-label-l-line);
  font-weight: var(--type-label-l-weight);
  font-stretch: var(--type-label-l-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-label-l-tracking);
}
.type-label-m {
  font-family: var(--font-sans);
  font-size: var(--type-label-m-size);
  line-height: var(--type-label-m-line);
  font-weight: var(--type-label-m-weight);
  font-stretch: var(--type-label-m-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-label-m-tracking);
}
.type-label-s {
  font-family: var(--font-sans);
  font-size: var(--type-label-s-size);
  line-height: var(--type-label-s-line);
  font-weight: var(--type-label-s-weight);
  font-stretch: var(--type-label-s-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-label-s-tracking);
}
.type-caption {
  font-family: var(--font-sans);
  font-size: var(--type-caption-size);
  line-height: var(--type-caption-line);
  font-weight: var(--type-caption-weight);
  font-stretch: var(--type-caption-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-caption-tracking);
}
.type-num-l {
  font-family: var(--font-sans);
  font-size: var(--type-num-l-size);
  line-height: var(--type-num-l-line);
  font-weight: var(--type-num-l-weight);
  font-stretch: var(--type-num-l-width);
  font-variation-settings: "wdth" 125;
  letter-spacing: var(--type-num-l-tracking);
}
.type-num-m {
  font-family: var(--font-sans);
  font-size: var(--type-num-m-size);
  line-height: var(--type-num-m-line);
  font-weight: var(--type-num-m-weight);
  font-stretch: var(--type-num-m-width);
  font-variation-settings: "wdth" 112.5;
  letter-spacing: var(--type-num-m-tracking);
  font-variant-numeric: tabular-nums;
}
.type-num-s {
  font-family: var(--font-sans);
  font-size: var(--type-num-s-size);
  line-height: var(--type-num-s-line);
  font-weight: var(--type-num-s-weight);
  font-stretch: var(--type-num-s-width);
  font-variation-settings: "wdth" 100;
  letter-spacing: var(--type-num-s-tracking);
  font-variant-numeric: tabular-nums;
}
