/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 640px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 22px;
  --font-body: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

:root {
  --typography-body-font-family: var(--font-body);
  --typography-heading-font-family: var(--font-heading);
  --typography-code-font-family: var(--font-code);
}


.light, :root {
  --accent-1: #fcfdfe;
  --accent-2: #f6f9ff;
  --accent-3: #ebf2ff;
  --accent-4: #dceaff;
  --accent-5: #cbe0ff;
  --accent-6: #b7d3ff;
  --accent-7: #9fc0ff;
  --accent-8: #7da7f8;
  --accent-9: #2563eb;
  --accent-10: #2057d1;
  --accent-11: #255dd7;
  --accent-12: #152e63;

  --accent-a1: #0055aa03;
  --accent-a2: #0055ff09;
  --accent-a3: #005aff14;
  --accent-a4: #0066ff23;
  --accent-a5: #0067ff34;
  --accent-a6: #0064ff48;
  --accent-a7: #0058ff60;
  --accent-a8: #0053f282;
  --accent-a9: #0049e8da;
  --accent-a10: #003fcadf;
  --accent-a11: #0042d0da;
  --accent-a12: #001b55ea;

  --accent-contrast: #fff;
  --accent-surface: #f4f8ffcc;
  --accent-indicator: #2563eb;
  --accent-track: #2563eb;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0019 262.9);
      --accent-2: oklch(98.3% 0.0092 262.9);
      --accent-3: oklch(96.1% 0.0194 262.9);
      --accent-4: oklch(93.6% 0.038 262.9);
      --accent-5: oklch(90.4% 0.0573 262.9);
      --accent-6: oklch(86.3% 0.0789 262.9);
      --accent-7: oklch(80.7% 0.0968 262.9);
      --accent-8: oklch(73.1% 0.1273 262.9);
      --accent-9: oklch(54.6% 0.2152 262.9);
      --accent-10: oklch(50% 0.1972 262.9);
      --accent-11: oklch(51.7% 0.1972 262.9);
      --accent-12: oklch(31.4% 0.0984 262.9);

      --accent-a1: color(display-p3 0.0235 0.349 0.6745 / 0.012);
      --accent-a2: color(display-p3 0.0196 0.2667 0.8784 / 0.032);
      --accent-a3: color(display-p3 0.0078 0.3216 0.949 / 0.075);
      --accent-a4: color(display-p3 0.0078 0.349 0.9412 / 0.126);
      --accent-a5: color(display-p3 0.0078 0.3373 0.9412 / 0.189);
      --accent-a6: color(display-p3 0.0039 0.3294 0.9412 / 0.263);
      --accent-a7: color(display-p3 0.0039 0.2902 0.9451 / 0.353);
      --accent-a8: color(display-p3 0.0039 0.2667 0.8941 / 0.475);
      --accent-a9: color(display-p3 0 0.2196 0.8588 / 0.789);
      --accent-a10: color(display-p3 0 0.1882 0.7451 / 0.816);
      --accent-a11: color(display-p3 0 0.1961 0.7647 / 0.797);
      --accent-a12: color(display-p3 0 0.0784 0.302 / 0.895);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9608 0.9725 1 / 0.8);
      --accent-indicator: oklch(54.6% 0.2152 262.9);
      --accent-track: oklch(54.6% 0.2152 262.9);
    }
  }
}


.light, :root {
  --grayscale-1: #fdfcfd;
  --grayscale-2: #faf9fb;
  --grayscale-3: #f2eff3;
  --grayscale-4: #eae7ec;
  --grayscale-5: #e3dfe6;
  --grayscale-6: #dbd8e0;
  --grayscale-7: #d0cdd7;
  --grayscale-8: #bcbac7;
  --grayscale-9: #8e8c99;
  --grayscale-10: #84828e;
  --grayscale-11: #65636d;
  --grayscale-12: #211f26;

  --grayscale-a1: #55005503;
  --grayscale-a2: #2b005506;
  --grayscale-a3: #30004010;
  --grayscale-a4: #20003618;
  --grayscale-a5: #20003820;
  --grayscale-a6: #14003527;
  --grayscale-a7: #10003332;
  --grayscale-a8: #08003145;
  --grayscale-a9: #05001d73;
  --grayscale-a10: #0500197d;
  --grayscale-a11: #0400119c;
  --grayscale-a12: #020008e0;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #8e8c99;
  --grayscale-track: #8e8c99;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.991 0.988 0.992);
      --grayscale-2: color(display-p3 0.98 0.976 0.984);
      --grayscale-3: color(display-p3 0.946 0.938 0.952);
      --grayscale-4: color(display-p3 0.915 0.906 0.925);
      --grayscale-5: color(display-p3 0.886 0.876 0.901);
      --grayscale-6: color(display-p3 0.856 0.846 0.875);
      --grayscale-7: color(display-p3 0.814 0.804 0.84);
      --grayscale-8: color(display-p3 0.735 0.728 0.777);
      --grayscale-9: color(display-p3 0.555 0.549 0.596);
      --grayscale-10: color(display-p3 0.514 0.508 0.552);
      --grayscale-11: color(display-p3 0.395 0.388 0.424);
      --grayscale-12: color(display-p3 0.128 0.122 0.147);

      --grayscale-a1: #55005503;
      --grayscale-a2: #2b005506;
      --grayscale-a3: #30004010;
      --grayscale-a4: #20003618;
      --grayscale-a5: #20003820;
      --grayscale-a6: #14003527;
      --grayscale-a7: #10003332;
      --grayscale-a8: #08003145;
      --grayscale-a9: #05001d73;
      --grayscale-a10: #0500197d;
      --grayscale-a11: #0400119c;
      --grayscale-a12: #020008e0;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.555 0.549 0.596);
      --grayscale-track: color(display-p3 0.555 0.549 0.596);
    }
  }
}


.dark {
  --accent-1: #060c16;
  --accent-2: #0f1724;
  --accent-3: #122646;
  --accent-4: #123061;
  --accent-5: #1a3c74;
  --accent-6: #244985;
  --accent-7: #2f589a;
  --accent-8: #3868b8;
  --accent-9: #3b82f6;
  --accent-10: #2e75e8;
  --accent-11: #85b5ff;
  --accent-12: #d0e2ff;

  --accent-a1: #000deb07;
  --accent-a2: #448cf816;
  --accent-a3: #2e7ffe3a;
  --accent-a4: #2176fd57;
  --accent-a5: #307fff6b;
  --accent-a6: #4089ff7d;
  --accent-a7: #4a8ffe94;
  --accent-a8: #4b8efeb4;
  --accent-a9: #3d87fef6;
  --accent-a10: #3280fee7;
  --accent-a11: #85b5ff;
  --accent-a12: #d0e2ff;

  --accent-contrast: #fff;
  --accent-surface: #14223880;
  --accent-indicator: #3b82f6;
  --accent-track: #3b82f6;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(15.4% 0.0246 259.8);
      --accent-2: oklch(20.5% 0.0291 259.8);
      --accent-3: oklch(27% 0.0665 259.8);
      --accent-4: oklch(31.6% 0.0948 259.8);
      --accent-5: oklch(36.3% 0.1042 259.8);
      --accent-6: oklch(41.1% 0.1091 259.8);
      --accent-7: oklch(46.5% 0.118 259.8);
      --accent-8: oklch(52.5% 0.1356 259.8);
      --accent-9: oklch(62.3% 0.188 259.8);
      --accent-10: oklch(58.2% 0.188 259.8);
      --accent-11: oklch(77.2% 0.1255 259.8);
      --accent-12: oklch(90.9% 0.0454 259.8);

      --accent-a1: color(display-p3 0 0.051 1 / 0.021);
      --accent-a2: color(display-p3 0.3843 0.5882 0.9961 / 0.08);
      --accent-a3: color(display-p3 0.2745 0.5176 0.9961 / 0.218);
      --accent-a4: color(display-p3 0.2314 0.4706 1 / 0.327);
      --accent-a5: color(display-p3 0.2863 0.5059 0.9961 / 0.402);
      --accent-a6: color(display-p3 0.3294 0.5451 1 / 0.473);
      --accent-a7: color(display-p3 0.3725 0.5765 1 / 0.557);
      --accent-a8: color(display-p3 0.3765 0.5725 1 / 0.678);
      --accent-a9: color(display-p3 0.3255 0.5373 1 / 0.929);
      --accent-a10: color(display-p3 0.2941 0.5098 1 / 0.871);
      --accent-a11: color(display-p3 0.5765 0.7255 1 / 0.975);
      --accent-a12: color(display-p3 0.8392 0.8941 1 / 0.988);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.0941 0.1333 0.2118 / 0.5);
      --accent-indicator: oklch(62.3% 0.188 259.8);
      --accent-track: oklch(62.3% 0.188 259.8);
    }
  }
}


.dark {
  --grayscale-1: #111113;
  --grayscale-2: #18191b;
  --grayscale-3: #212225;
  --grayscale-4: #272a2d;
  --grayscale-5: #2e3135;
  --grayscale-6: #363a3f;
  --grayscale-7: #43484e;
  --grayscale-8: #5a6169;
  --grayscale-9: #696e77;
  --grayscale-10: #777b84;
  --grayscale-11: #b0b4ba;
  --grayscale-12: #edeef0;

  --grayscale-a1: #00000000;
  --grayscale-a2: #d8f4f609;
  --grayscale-a3: #ddeaf814;
  --grayscale-a4: #d3edf81d;
  --grayscale-a5: #d9edfe25;
  --grayscale-a6: #d6ebfd30;
  --grayscale-a7: #d9edff40;
  --grayscale-a8: #d9edff5d;
  --grayscale-a9: #dfebfd6d;
  --grayscale-a10: #e5edfd7b;
  --grayscale-a11: #f1f7feb5;
  --grayscale-a12: #fcfdffef;

  --grayscale-contrast: #fff;
  --grayscale-surface: rgba(0, 0, 0, 0.05);
  --grayscale-indicator: #696e77;
  --grayscale-track: #696e77;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.067 0.074);
      --grayscale-2: color(display-p3 0.095 0.098 0.105);
      --grayscale-3: color(display-p3 0.13 0.135 0.145);
      --grayscale-4: color(display-p3 0.156 0.163 0.176);
      --grayscale-5: color(display-p3 0.183 0.191 0.206);
      --grayscale-6: color(display-p3 0.215 0.226 0.244);
      --grayscale-7: color(display-p3 0.265 0.28 0.302);
      --grayscale-8: color(display-p3 0.357 0.381 0.409);
      --grayscale-9: color(display-p3 0.415 0.431 0.463);
      --grayscale-10: color(display-p3 0.469 0.483 0.514);
      --grayscale-11: color(display-p3 0.692 0.704 0.728);
      --grayscale-12: color(display-p3 0.93 0.933 0.94);

      --grayscale-a1: #00000000;
      --grayscale-a2: #d8f4f609;
      --grayscale-a3: #ddeaf814;
      --grayscale-a4: #d3edf81d;
      --grayscale-a5: #d9edfe25;
      --grayscale-a6: #d6ebfd30;
      --grayscale-a7: #d9edff40;
      --grayscale-a8: #d9edff5d;
      --grayscale-a9: #dfebfd6d;
      --grayscale-a10: #e5edfd7b;
      --grayscale-a11: #f1f7feb5;
      --grayscale-a12: #fcfdffef;

      --grayscale-contrast: #fff;
      --grayscale-surface: color(display-p3 0 0 0 / 5%);
      --grayscale-indicator: color(display-p3 0.415 0.431 0.463);
      --grayscale-track: color(display-p3 0.415 0.431 0.463);
    }
  }
}

.light, :root {
  color-scheme: light;
  --accent: rgba(37, 99, 235, 1);
  --background: rgba(255, 255, 255, 1);
  --border: rgba(229, 231, 235, 1);
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #fff;
}

.dark {
  color-scheme: dark;
  --accent: rgba(59, 130, 246, 1);
  --background: rgba(10, 12, 16, 1);
  --border: rgba(46, 51, 64, 1);
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0a0c10;
}

/* ============================================================================
   Clossir — Fern docs design language
   Ported from signum-app (app/globals.css). The animated GSAP/Lenis visuals
   can't run inside Fern's hosted MDX; this brings over the *design language*:
   the blue brand accent (--signum-blue* token names kept for parity with
   globals.css), the intent-color ladder, DM Sans / JetBrains Mono, blueprint
   grids, hairline dividers, glows, mono section-labels, and the 6px --radius
   calc scale. Where this disagrees with the starter, this file wins.
   ============================================================================ */

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600&display=swap");

/* ── Clossir design tokens (verbatim from globals.css) ────────────────────── */
:root {

  --font-dm-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --font-jetbrains-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;

  /* Dark register */
  --color-surface-black: #050608;
  --color-surface-dark: #0a0c10;
  --color-surface-dark-card: #12141a;
  --color-surface-dark-2: #1a1d25;
  --color-surface-midnight: #0b0e18;
  --color-surface-diagram-dark: #0f1116;
  --color-border-dark: #2e3340;
  --color-border-dark-subtle: #1e2028;
  --color-text-primary: #e8ecf1;
  --color-text-secondary: #9ca3af;
  --color-text-muted: #6b7280;

  /* Light register (dominant proof mode) */
  --color-surface-light: #ffffff;
  --color-surface-panel: #fafafa;
  --color-border-light: #e5e7eb;
  --color-ink: #0a0c10;
  --color-ink-body: #4b5563;
  --color-ink-soft: #9ca3af;

  /* Brand blue — token names kept verbatim from globals.css for parity
     (--signum-blue* is a real token identifier, not brand prose). Light register. */
  --signum-blue: #1d4ed8;
  --signum-blue-light: #2563eb;
  --signum-blue-dim: rgba(29, 78, 216, 0.15);
  --signum-blue-dark: #1e40af;
  --signum-blue-deep: #1e3a5f;

  /* Accent maps onto the brand blue so downstream selectors (links, focus ring,
     .section-label, .glow-blue) resolve against the single source of truth. */
  --color-accent: var(--signum-blue-light);
  --color-accent-light: #3b82f6;
  --color-accent-dark: var(--signum-blue);

  /* ── Intent color ladder — full parity port from globals.css L149–188.
     5 families {primary,success,danger,warning,info} × 7 rungs
     {-, -fg, -ghost, -subtle, -dim, -medium, -bold, -solid}. Light register.
     Reusable MDX utilities + the ported pitch-deck SVG visuals consume individual
     rungs, so the whole ladder is ported (deliberate parity, not over-porting). */
  --intent-primary: #1d4ed8;
  --intent-primary-fg: #172554;
  --intent-primary-ghost: rgba(29, 78, 216, 0.06);
  --intent-primary-subtle: rgba(29, 78, 216, 0.12);
  --intent-primary-dim: rgba(29, 78, 216, 0.18);
  --intent-primary-medium: rgba(29, 78, 216, 0.28);
  --intent-primary-bold: rgba(29, 78, 216, 0.4);
  --intent-primary-solid: #a4baea;
  --intent-success: #22c55e;
  --intent-success-fg: #052e16;
  --intent-success-ghost: rgba(34, 197, 94, 0.06);
  --intent-success-subtle: rgba(34, 197, 94, 0.12);
  --intent-success-dim: rgba(34, 197, 94, 0.18);
  --intent-success-medium: rgba(34, 197, 94, 0.28);
  --intent-success-bold: rgba(34, 197, 94, 0.4);
  --intent-success-solid: #a7e8bf;
  --intent-danger: #ef4444;
  --intent-danger-fg: #450a0a;
  --intent-danger-ghost: rgba(239, 68, 68, 0.06);
  --intent-danger-subtle: rgba(239, 68, 68, 0.12);
  --intent-danger-dim: rgba(239, 68, 68, 0.18);
  --intent-danger-medium: rgba(239, 68, 68, 0.28);
  --intent-danger-bold: rgba(239, 68, 68, 0.4);
  --intent-danger-solid: #f9b4b4;
  --intent-warning: #fbbf24;
  --intent-warning-fg: #1a1207;
  --intent-warning-ghost: rgba(251, 191, 36, 0.06);
  --intent-warning-subtle: rgba(251, 191, 36, 0.12);
  --intent-warning-dim: rgba(251, 191, 36, 0.18);
  --intent-warning-medium: rgba(251, 191, 36, 0.28);
  --intent-warning-bold: rgba(251, 191, 36, 0.4);
  --intent-warning-solid: #fde5a7;
  --intent-info: #9333ea;
  --intent-info-fg: #1a0a2e;
  --intent-info-ghost: rgba(147, 51, 234, 0.06);
  --intent-info-subtle: rgba(147, 51, 234, 0.12);
  --intent-info-dim: rgba(147, 51, 234, 0.18);
  --intent-info-medium: rgba(147, 51, 234, 0.28);
  --intent-info-bold: rgba(147, 51, 234, 0.4);
  --intent-info-solid: #c9a4f0;

  /* Compliance states — semantic, never decorative */
  --color-state-verified: #16a34a;
  --color-state-blocked: #dc2626;
  --color-state-pending: #b45309;
  --color-state-verified-bright: #4ade80;
  --color-state-blocked-bright: #f87171;
  --color-state-pending-bright: #fbbf24;
  --color-kicker: #22c55e;

  /* Accent alpha ladder */
  --blue-faint: rgba(37, 99, 235, 0.04);
  --blue-soft: rgba(37, 99, 235, 0.15);
  --blue-border: rgba(37, 99, 235, 0.35);
  --blue-glow: rgba(37, 99, 235, 0.55);

  /* Blueprint overlay lines (dark) */
  --bp-line: rgba(255, 255, 255, 0.06);
  --bp-line-strong: rgba(255, 255, 255, 0.12);

  /* ── Map Signum tokens onto Fern's own theme variables ── */
  --typography-bodyFont: var(--font-dm-sans);
  --typography-headingsFont: var(--font-dm-sans);
  --typography-codeFont: var(--font-jetbrains-mono);

  /* Radius — 6px base + calc scale, verbatim from globals.css L382–386.
     Change --radius once and the whole scale moves. */
  --radius: 6px;
  --radius-sm: calc(var(--radius) - 2px);
  --radius-md: var(--radius);
  --radius-lg: calc(var(--radius) + 2px);
  --radius-xl: calc(var(--radius) + 4px);
  --radius-2xl: calc(var(--radius) + 8px);

}

/* Dark register overrides — verbatim from globals.css L297–346.
   Brand blue + accent + the full intent ladder shift to the dark values. */
:root.dark {
  --signum-blue: #2563eb;
  --signum-blue-light: #3b82f6;
  --signum-blue-dim: rgba(37, 99, 235, 0.15);
  --signum-blue-dark: #1d4ed8;
  --signum-blue-deep: #1e3a5f;

  --color-accent: var(--signum-blue-light);
  --color-accent-dark: var(--signum-blue);

  --intent-primary: #2563eb;
  --intent-primary-fg: #172554;
  --intent-primary-ghost: rgba(37, 99, 235, 0.04);
  --intent-primary-subtle: rgba(37, 99, 235, 0.08);
  --intent-primary-dim: rgba(37, 99, 235, 0.12);
  --intent-primary-medium: rgba(37, 99, 235, 0.2);
  --intent-primary-bold: rgba(37, 99, 235, 0.3);
  --intent-primary-solid: #162a58;
  --intent-success: #4ade80;
  --intent-success-fg: #052e16;
  --intent-success-ghost: rgba(74, 222, 128, 0.04);
  --intent-success-subtle: rgba(74, 222, 128, 0.08);
  --intent-success-dim: rgba(74, 222, 128, 0.12);
  --intent-success-medium: rgba(74, 222, 128, 0.2);
  --intent-success-bold: rgba(74, 222, 128, 0.3);
  --intent-success-solid: #214f38;
  --intent-danger: #f87171;
  --intent-danger-fg: #450a0a;
  --intent-danger-ghost: rgba(248, 113, 113, 0.04);
  --intent-danger-subtle: rgba(248, 113, 113, 0.08);
  --intent-danger-dim: rgba(248, 113, 113, 0.12);
  --intent-danger-medium: rgba(248, 113, 113, 0.2);
  --intent-danger-bold: rgba(248, 113, 113, 0.3);
  --intent-danger-solid: #552f33;
  --intent-warning: #fbbf24;
  --intent-warning-fg: #1a1207;
  --intent-warning-ghost: rgba(251, 191, 36, 0.04);
  --intent-warning-subtle: rgba(251, 191, 36, 0.08);
  --intent-warning-dim: rgba(251, 191, 36, 0.12);
  --intent-warning-medium: rgba(251, 191, 36, 0.2);
  --intent-warning-bold: rgba(251, 191, 36, 0.3);
  --intent-warning-solid: #56461c;
  --intent-info: #a855f7;
  --intent-info-fg: #1a0a2e;
  --intent-info-ghost: rgba(168, 85, 247, 0.04);
  --intent-info-subtle: rgba(168, 85, 247, 0.08);
  --intent-info-dim: rgba(168, 85, 247, 0.12);
  --intent-info-medium: rgba(168, 85, 247, 0.2);
  --intent-info-bold: rgba(168, 85, 247, 0.3);
  --intent-info-solid: #3d265c;
}

/* ── Typography: DM Sans everywhere, JetBrains Mono for code ──────────────────
   Fonts flow through Fern's own typography system (--typography-bodyFont/
   headingsFont/codeFont above) plus the body cascade. We deliberately do NOT
   use broad `[class*="fern"|"code"|"mono"|"heading"]` substring selectors here:
   those bled our fonts + a `!important` mono override into Fern's own chrome
   (the search modal, nav, sidebar), styling it incorrectly. Scope to `body`,
   real semantic elements, and explicit Fern content classes only. */
body,
.fern-docs {
  font-family: var(--font-dm-sans);
  font-feature-settings: "cv11", "ss01";
}

h1, h2, h3, h4, h5, h6,
.fern-title {
  font-family: var(--font-dm-sans);
  letter-spacing: -0.01em;
}

code, pre, kbd, samp,
.fern-code {
  font-family: var(--font-jetbrains-mono) !important;
  font-variant-ligatures: none;
}

/* Fern surfaces inherit their own rounding, driven by the --radius scale above;
   no blanket flatten. Override a specific surface only where a rung is needed. */

/* ── Accent: links, focus ring (brand blue) ──────────────────────────────── */
a { text-underline-offset: 2px; }
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* ── Page atmosphere: faint blue wash (no grid) ──────────────────────────── */
/* The blueprint grid lines (60px repeating at 6% opacity) caused visible
   right-angle artifacts on the fixed inset-0 overlay where the faint lines
   crossed against the page background. Removed the grid; kept the blue wash. */
.fern-background-image {
  background-image:
    linear-gradient(180deg, var(--blue-faint) 0%, transparent 45%);
}
:root.dark .fern-background-image {
  background-image:
    linear-gradient(180deg, rgba(37, 99, 235, 0.05) 0%, transparent 45%);
}

/* ============================================================================
   Reusable MDX utilities — use as <div className="…"> inside .mdx pages.
   Mirror signum-site's @utility layer (globals.css).
   ============================================================================ */

/* Mono instrument-panel label: `NN / SECTION NAME` */
.section-label {
  font-family: var(--font-jetbrains-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-accent);
  opacity: 0.85;
  display: inline-block;
  margin-bottom: 0.75rem;
}

/* 1px gradient hairline dividers */
.signum-divider {
  height: 1px; border: 0; margin: 2rem 0;
  background: linear-gradient(90deg, transparent, var(--color-border-light), transparent);
}
:root.dark .signum-divider {
  background: linear-gradient(90deg, transparent, var(--color-border-dark), transparent);
}
.signum-divider-blue {
  height: 1px; border: 0; margin: 2rem 0;
  background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
}

/* Blueprint panel — grid-20 schematic surface */
.blueprint {
  position: relative;
  border: 1px solid var(--color-border-light);
  background-color: var(--color-surface-panel);
  background-image:
    linear-gradient(to right, rgba(10, 12, 16, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(10, 12, 16, 0.05) 1px, transparent 1px);
  background-size: 20px 20px;
  padding: 1.25rem 1.5rem;
  border-radius: var(--radius-sm);
}
:root.dark .blueprint {
  border-color: var(--color-border-dark);
  background-color: var(--color-surface-diagram-dark);
  background-image:
    linear-gradient(to right, var(--bp-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--bp-line) 1px, transparent 1px);
}

/* Visual hero — centers a ported pitch-deck SVG over a faint blueprint field */
.signum-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 2.25rem 1.5rem;
  margin: 0.5rem 0 1.75rem;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface-panel);
  background-image:
    linear-gradient(to right, rgba(10, 12, 16, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(10, 12, 16, 0.04) 1px, transparent 1px);
  background-size: 22px 22px;
  color: var(--color-ink);
}
:root.dark .signum-hero {
  border-color: var(--color-border-dark);
  background-color: var(--color-surface-diagram-dark);
  background-image:
    linear-gradient(to right, var(--bp-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--bp-line) 1px, transparent 1px);
  color: var(--color-text-primary);
}
.signum-hero svg { flex: none; }

/* Glows (no elevation shadows — only glows) */
.glow-blue     { box-shadow: 0 0 20px rgba(37, 99, 235, 0.2); }
.glow-approved { box-shadow: 0 0 20px rgba(74, 222, 128, 0.25); }
.glow-rejected { box-shadow: 0 0 20px rgba(248, 113, 113, 0.4); }

/* Compliance state pills — semantic, never decorative */
.pill {
  font-family: var(--font-jetbrains-mono);
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 2px 8px; border-radius: var(--radius-sm);
  border: 1px solid currentColor;
}
.pill-verified { color: var(--color-state-verified); }
.pill-blocked  { color: var(--color-state-blocked); }
.pill-pending  { color: var(--color-state-pending); }
:root.dark .pill-verified { color: var(--color-state-verified-bright); }
:root.dark .pill-blocked  { color: var(--color-state-blocked-bright); }
:root.dark .pill-pending  { color: var(--color-state-pending-bright); }
