/* nps-tokens.css — Cut Shop token contract. Only file with :root / [data-theme]. */

:root,
[data-theme="light"] {
  color-scheme: light;

  --nps-page: #F4EDE3;
  --nps-page-soft: #EDE4D6;
  --nps-surface: #FBF7F0;
  --nps-surface-raised: #FFFDF8;
  --nps-surface-inset: #EBE3D6;
  --nps-surface-strong: #E6DCCE;

  --nps-ink: #2A241C;
  --nps-ink-strong: #1A160F;
  --nps-ink-muted: #6B6156;
  --nps-ink-faint: #9A9084;
  --nps-ink-onAccent: #1A160F;
  --nps-ink-onLevel: #1A160F;
  --nps-ink-inverse: #FFFDF8;

  --nps-border: #D9CFC2;
  --nps-border-strong: #C4B8A8;
  --nps-divider: #E6DCCE;

  --nps-accent: #C9A227;
  --nps-accent-hover: #B8921F;
  --nps-accent-press: #A07E1A;
  --nps-accent-soft: rgba(201, 162, 39, 0.16);
  --nps-accent-strong: #8F7016;
  --nps-accent-ring: rgba(201, 162, 39, 0.45);

  --nps-success: #3F6F4A;
  --nps-success-fg: #2E5437;
  --nps-success-soft: #D7E6D9;
  --nps-warning: #8B6914;
  --nps-warning-fg: #6F5310;
  --nps-warning-soft: #F5E6C8;
  --nps-danger: #A33B2A;
  --nps-danger-fg: #822E21;
  --nps-danger-soft: #F3D8D2;
  --nps-info: #2F5D73;
  --nps-info-fg: #24485A;
  --nps-info-soft: #D5E4EA;
  --nps-neutral: #6B6156;
  --nps-neutral-fg: #534A41;
  --nps-neutral-soft: #E8E2D8;

  --nps-focus-ring: var(--nps-accent-ring);
  --nps-focus-outline: #8F7016;
  --nps-selection-bg: var(--nps-accent-soft);
  --nps-selection-fg: var(--nps-ink-strong);

  --nps-theme-meta: #F4EDE3;

  --nps-scrollbar-track: #EDE4D6;
  --nps-scrollbar-thumb: #C4B8A8;
  --nps-scrollbar-thumb-hover: #A89884;

  --nps-shadow-xs: 0 1px 0 rgba(26, 22, 15, 0.06);
  --nps-shadow-sm: 0 1px 2px rgba(26, 22, 15, 0.08), 0 1px 0 rgba(26, 22, 15, 0.04);
  --nps-shadow-md: 0 4px 12px rgba(26, 22, 15, 0.10), 0 1px 0 rgba(26, 22, 15, 0.05);
  --nps-shadow-lg: 0 12px 28px rgba(26, 22, 15, 0.14);
  --nps-shadow-modal: 0 24px 48px rgba(26, 22, 15, 0.22);
  --nps-shadow-inset: inset 0 1px 2px rgba(26, 22, 15, 0.08);
  --nps-shadow-ring-accent: 0 0 0 3px var(--nps-accent-ring);
  --nps-select-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%236B6156' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

[data-theme="dark"] {
  color-scheme: dark;

  --nps-page: #1C1914;
  --nps-page-soft: #16130F;
  --nps-surface: #26221B;
  --nps-surface-raised: #2F2A22;
  --nps-surface-inset: #14110D;
  --nps-surface-strong: #3A342B;

  --nps-ink: #EDE6D9;
  --nps-ink-strong: #F7F1E6;
  --nps-ink-muted: #A89F90;
  --nps-ink-faint: #7A7368;
  --nps-ink-onAccent: #1A160F;
  --nps-ink-onLevel: #1A160F;
  --nps-ink-inverse: #FFFDF8;

  --nps-border: #3A342B;
  --nps-border-strong: #524A3E;
  --nps-divider: #2F2A22;

  --nps-accent: #E0B83A;
  --nps-accent-hover: #E8C65A;
  --nps-accent-press: #C9A227;
  --nps-accent-soft: rgba(224, 184, 58, 0.16);
  --nps-accent-strong: #F0D070;
  --nps-accent-ring: rgba(224, 184, 58, 0.42);

  --nps-success: #7CB087;
  --nps-success-fg: #9CC9A4;
  --nps-success-soft: rgba(124, 176, 135, 0.18);
  --nps-warning: #E0A45A;
  --nps-warning-fg: #F0C080;
  --nps-warning-soft: rgba(224, 164, 90, 0.18);
  --nps-danger: #E07A68;
  --nps-danger-fg: #F09A8C;
  --nps-danger-soft: rgba(224, 122, 104, 0.18);
  --nps-info: #8BB4C4;
  --nps-info-fg: #A8C8D4;
  --nps-info-soft: rgba(139, 180, 196, 0.18);
  --nps-neutral: #A89F90;
  --nps-neutral-fg: #C4BBAE;
  --nps-neutral-soft: rgba(168, 159, 144, 0.16);

  --nps-focus-ring: var(--nps-accent-ring);
  --nps-focus-outline: #F0D070;
  --nps-selection-bg: var(--nps-accent-soft);
  --nps-selection-fg: var(--nps-ink-strong);

  --nps-theme-meta: #1C1914;

  --nps-scrollbar-track: #16130F;
  --nps-scrollbar-thumb: #524A3E;
  --nps-scrollbar-thumb-hover: #6B6156;

  --nps-shadow-xs: 0 1px 0 rgba(0, 0, 0, 0.35);
  --nps-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --nps-shadow-md: 0 6px 16px rgba(0, 0, 0, 0.45);
  --nps-shadow-lg: 0 16px 32px rgba(0, 0, 0, 0.5);
  --nps-shadow-modal: 0 28px 56px rgba(0, 0, 0, 0.62);
  --nps-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.4);
  --nps-shadow-ring-accent: 0 0 0 3px var(--nps-accent-ring);
  --nps-select-caret: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m6 9 6 6 6-6' stroke='%23A89F90' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

:root {
  --nps-font-display: "Bricolage Grotesque", "Segoe UI", sans-serif;
  --nps-font-ui: "Source Sans 3", "Segoe UI", sans-serif;
  --nps-font-mono: "Martian Mono", ui-monospace, monospace;

  --nps-fs-display-1: clamp(2.5rem, 6vw, 4rem);
  --nps-fs-display-2: clamp(2rem, 4.5vw, 3rem);
  --nps-fs-display-3: clamp(1.5rem, 3vw, 2.125rem);
  --nps-fs-headline: 1.5rem;
  --nps-fs-title: 1.125rem;
  --nps-fs-body: 1rem;
  --nps-fs-caption: 0.875rem;
  --nps-fs-micro: 0.75rem;
  --nps-fs-nano: 0.625rem;

  --nps-lh-tight: 1.15;
  --nps-lh-snug: 1.3;
  --nps-lh-body: 1.5;
  --nps-lh-loose: 1.65;

  --nps-fw-regular: 400;
  --nps-fw-medium: 500;
  --nps-fw-semibold: 600;
  --nps-fw-bold: 700;

  --nps-tracking-tight: -0.03em;
  --nps-tracking-display: -0.02em;
  --nps-tracking-normal: 0;
  --nps-tracking-wide: 0.06em;
  --nps-tracking-caps: 0.12em;

  --nps-space-0: 0;
  --nps-space-1: 0.25rem;
  --nps-space-2: 0.5rem;
  --nps-space-3: 0.75rem;
  --nps-space-4: 1rem;
  --nps-space-5: 1.25rem;
  --nps-space-6: 1.5rem;
  --nps-space-7: 2rem;
  --nps-space-8: 2.5rem;
  --nps-space-9: 3rem;
  --nps-space-10: 4rem;
  --nps-space-11: 5rem;

  --nps-radius-xs: 0.125rem;
  --nps-radius-sm: 0.25rem;
  --nps-radius-md: 0.375rem;
  --nps-radius-lg: 0.5rem;
  --nps-radius-xl: 0.75rem;
  --nps-radius-2xl: 1rem;
  --nps-radius-pill: 999px;

  --nps-ease-standard: cubic-bezier(0.2, 0.7, 0.2, 1);
  --nps-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --nps-ease-in: cubic-bezier(0.55, 0, 1, 0.45);
  --nps-duration-instant: 80ms;
  --nps-duration-fast: 140ms;
  --nps-duration-normal: 200ms;
  --nps-duration-slow: 320ms;

  --nps-z-base: 0;
  --nps-z-sticky: 10;
  --nps-z-sidebar: 20;
  --nps-z-topbar: 30;
  --nps-z-popover: 40;
  --nps-z-overlay: 50;
  --nps-z-modal: 60;
  --nps-z-toast: 70;
  --nps-z-max: 100;

  --nps-topbar-h: 3.5rem;
  --nps-sidebar-w: 16.5rem;
  --nps-content-max: 80rem;
  --nps-touch-target: 2.75rem;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --nps-duration-instant: 0ms;
    --nps-duration-fast: 0ms;
    --nps-duration-normal: 0ms;
    --nps-duration-slow: 0ms;
  }
}
