
/* nashnova Web 2.0 · International visual baseline + existing navigation contract.
   Load at the Web application root. Does not load fonts or alter native App tokens. */
:root {
  --web-bg: #faf9f6;
  --web-bg-soft: #f0eeeb;
  --web-bg-editorial: var(--web-bg);
  --web-bg-tint: #f0edf5;
  --web-surface: #ffffff;
  --web-sidebar-bg: #f3f1ee;
  --web-user-message: #f2f0f5;
  --web-ink: #242328;
  --web-ink-2: #3d3944;
  --web-ink-3: #544f59;
  --web-muted: #68656d;
  --web-muted-2: #79747d;
  --web-line: #dedbde;
  --web-line-2: #cbc7cf;
  --web-line-editorial: var(--web-line);
  --web-brand: #65518b;
  --web-brand-2: #544076;
  --web-brand-soft: #f0edf5;
  --web-brand-softer: #f6f3f8;
  --web-selected: #e7e1ee;
  --web-error: #8a2d45;
  --web-market-up: #3d7a5f;
  --web-market-down: #a94a3f;
  /* Optional local dark section; not the default shell. */
  --web-dark: #11101a;
  --web-on-dark: #ffffff;
  --web-editorial-ink: var(--web-ink);
  --web-editorial-ink-2: var(--web-ink-3);
  --web-editorial-muted: var(--web-muted);

  --font-web-ui: Overpass, Arial, Helvetica, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-web-zh: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  --font-web-mono: "JetBrains Mono", ui-monospace, monospace;
  --font-web-heading: var(--font-web-ui);
  /* Compatibility: editorial no longer implies a serif face. */
  --font-web-editorial: var(--font-web-heading);
  --web-text-body: 1rem;
  --web-text-meta: 0.8125rem;
  --web-leading-body: 1.7;

  --web-max-wide: 1440px;
  --web-max-standard: 1200px;
  --web-max-article-shell: 1120px;
  --web-max-copy: 720px;
  --web-sidebar: 232px;
  --web-nav-rail: 76px;
  --web-drawer-width: min(312px, 86vw);
  --web-aside: 240px;
  --web-gutter-desktop: 42px;
  --web-gutter-tablet: 30px;
  --web-gutter-mobile: 23px;
  --web-site-gutter: 64px;

  --web-radius-control: 8px;
  --web-radius-media: 12px;
  --web-radius-card: 12px;
  --web-radius-panel: 12px;
  --web-radius-hero: 12px;
  --web-radius-dialog: 14px;
  --web-radius-tag: 4px;
  --web-radius-pill: 999px; /* Opt-in chips only; not the button default. */
  --web-space-1: 4px;
  --web-space-2: 8px;
  --web-space-3: 12px;
  --web-space-4: 16px;
  --web-space-5: 20px;
  --web-space-6: 24px;
  --web-space-8: 32px;
  --web-space-10: 40px;
  --web-space-12: 48px;
  --web-space-16: 64px;
  --web-space-20: 80px;

  --web-shadow-card: 0 18px 54px rgba(57, 49, 61, 0.043);
  --web-shadow-input: 0 7px 24px rgba(72, 55, 81, 0.027);
  --web-shadow-float: 0 24px 80px rgba(81, 68, 100, 0.12);
  --web-shadow-dark-card: 0 18px 60px rgba(81, 68, 100, 0.18);
  --web-focus-ring: 3px solid var(--web-brand);
  --web-motion-fast: 180ms;
  --web-ease: cubic-bezier(0.2, 0, 0, 1);
  --web-duration-fast: var(--web-motion-fast);
  --web-duration-card: var(--web-motion-fast);
  --web-duration-header: var(--web-motion-fast);
  --web-ease-standard: var(--web-ease);
  --web-scroll-behavior: smooth;
}

/* CSS variables cannot serve as media-query conditions.
   Navigation boundaries are explicitly 640 / 980px in component CSS. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --web-motion-fast: 0ms;
    --web-scroll-behavior: auto;
  }
}

