/*fern-site-stylesheet*/@font-face {
    font-family: 'Geist';
    src: url('/_fern-files/recursiv.docs.buildwithfern.com/5eb88b972cad22bd9937079e8e8c7fd9fae22dd8e621ea23c2e733bb3e8c2ee5/assets/Geist.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01CD-01E9, U+0218-0237, U+0259, U+02B9-02DD, U+0300-0338, U+039B-03C0, U+0400-04EF, U+0E3F, U+1E20-1E21, U+1E80-1EBD, U+1EF2-1EF9, U+2070-20BD, U+2107-2117, U+2153-215E, U+2190-21B5, U+21E4-2265, U+23CE, U+240B-240C, U+2460-2468, U+24EA-24FF, U+25B2-25CF, U+2639-263A, U+2776-277E, U+3003-301C, U+A78B-A78C, U+F8FF, U+FB01-FB02;
}
@font-face {
    font-family: 'Geist';
    src: url('/_fern-img/5eb88b972cad22bd9937079e8e8c7fd9-v1.latin.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2032-2033, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212;
}
@font-face {
    font-family: 'Geist Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 104.76%;
    ascent-override: 95.94%;
    descent-override: 28.16%;
    line-gap-override: 0.00%;
}

:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 640px;
  --sidebar-width: 288px;
  --page-width: 1408px;
  --logo-height: 36px;
  --font-body: 'Geist', 'Geist Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'Geist', 'Geist Fallback', 'Geist', 'Geist Fallback', 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: #fbfefc;
  --accent-2: #f4fbf7;
  --accent-3: #e4f7ed;
  --accent-4: #d3f1e2;
  --accent-5: #c1e9d5;
  --accent-6: #a9dec4;
  --accent-7: #89cfae;
  --accent-8: #55b98f;
  --accent-9: #059669;
  --accent-10: #008a5b;
  --accent-11: #008156;
  --accent-12: #193b2c;

  --accent-a1: #00c04004;
  --accent-a2: #00a3460b;
  --accent-a3: #00b4551b;
  --accent-a4: #00ae572c;
  --accent-a5: #00a5533e;
  --accent-a6: #009e5156;
  --accent-a7: #00985076;
  --accent-a8: #009657aa;
  --accent-a9: #009466fa;
  --accent-a10: #008a5b;
  --accent-a11: #008156;
  --accent-a12: #002615e6;

  --accent-contrast: #fff;
  --accent-surface: #f1faf5cc;
  --accent-indicator: #059669;
  --accent-track: #059669;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0043 163.2);
      --accent-2: oklch(98.2% 0.0094 163.2);
      --accent-3: oklch(95.9% 0.0235 163.2);
      --accent-4: oklch(93.3% 0.0372 163.2);
      --accent-5: oklch(90% 0.0506 163.2);
      --accent-6: oklch(85.7% 0.0656 163.2);
      --accent-7: oklch(79.8% 0.0853 163.2);
      --accent-8: oklch(71.5% 0.1141 163.2);
      --accent-9: oklch(59.6% 0.1274 163.2);
      --accent-10: oklch(55.3% 0.1361 163.2);
      --accent-11: oklch(52.9% 0.1274 163.2);
      --accent-12: oklch(32.2% 0.0479 163.2);

      --accent-a1: color(display-p3 0.0235 0.6745 0.0235 / 0.012);
      --accent-a2: color(display-p3 0.0235 0.6118 0.2196 / 0.04);
      --accent-a3: color(display-p3 0.0118 0.6157 0.2706 / 0.091);
      --accent-a4: color(display-p3 0.0078 0.6078 0.2706 / 0.15);
      --accent-a5: color(display-p3 0.0039 0.5765 0.2431 / 0.212);
      --accent-a6: color(display-p3 0.0039 0.549 0.2431 / 0.295);
      --accent-a7: color(display-p3 0 0.5098 0.2275 / 0.4);
      --accent-a8: color(display-p3 0 0.498 0.2392 / 0.561);
      --accent-a9: color(display-p3 0 0.4314 0.2196 / 0.738);
      --accent-a10: color(display-p3 0 0.3882 0.1804 / 0.765);
      --accent-a11: color(display-p3 0 0.3569 0.1647 / 0.781);
      --accent-a12: color(display-p3 0 0.1098 0.051 / 0.867);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9529 0.9804 0.9608 / 0.8);
      --accent-indicator: oklch(59.6% 0.1274 163.2);
      --accent-track: oklch(59.6% 0.1274 163.2);
    }
  }
}


.light, :root {
  --grayscale-1: #fbfdfc;
  --grayscale-2: #f7f9f8;
  --grayscale-3: #eef1f0;
  --grayscale-4: #e6e9e8;
  --grayscale-5: #dfe2e0;
  --grayscale-6: #d7dad9;
  --grayscale-7: #cbcfcd;
  --grayscale-8: #b8bcba;
  --grayscale-9: #868e8b;
  --grayscale-10: #7c8481;
  --grayscale-11: #5f6563;
  --grayscale-12: #1a211e;

  --grayscale-a1: #00804004;
  --grayscale-a2: #00402008;
  --grayscale-a3: #002d1e11;
  --grayscale-a4: #001f1519;
  --grayscale-a5: #00180820;
  --grayscale-a6: #00140d28;
  --grayscale-a7: #00140a34;
  --grayscale-a8: #000f0847;
  --grayscale-a9: #00110b79;
  --grayscale-a10: #00100a83;
  --grayscale-a11: #000a07a0;
  --grayscale-a12: #000805e5;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #868e8b;
  --grayscale-track: #868e8b;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.986 0.992 0.988);
      --grayscale-2: color(display-p3 0.97 0.977 0.974);
      --grayscale-3: color(display-p3 0.935 0.944 0.94);
      --grayscale-4: color(display-p3 0.904 0.913 0.909);
      --grayscale-5: color(display-p3 0.875 0.885 0.88);
      --grayscale-6: color(display-p3 0.844 0.854 0.849);
      --grayscale-7: color(display-p3 0.8 0.811 0.806);
      --grayscale-8: color(display-p3 0.725 0.738 0.732);
      --grayscale-9: color(display-p3 0.531 0.556 0.546);
      --grayscale-10: color(display-p3 0.492 0.515 0.506);
      --grayscale-11: color(display-p3 0.377 0.395 0.389);
      --grayscale-12: color(display-p3 0.107 0.129 0.118);

      --grayscale-a1: #00804004;
      --grayscale-a2: #00402008;
      --grayscale-a3: #002d1e11;
      --grayscale-a4: #001f1519;
      --grayscale-a5: #00180820;
      --grayscale-a6: #00140d28;
      --grayscale-a7: #00140a34;
      --grayscale-a8: #000f0847;
      --grayscale-a9: #00110b79;
      --grayscale-a10: #00100a83;
      --grayscale-a11: #000a07a0;
      --grayscale-a12: #000805e5;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.531 0.556 0.546);
      --grayscale-track: color(display-p3 0.531 0.556 0.546);
    }
  }
}


.dark {
  --accent-1: #060c09;
  --accent-2: #111a16;
  --accent-3: #112c20;
  --accent-4: #113a29;
  --accent-5: #184834;
  --accent-6: #225640;
  --accent-7: #2c674e;
  --accent-8: #357d5e;
  --accent-9: #34d399;
  --accent-10: #1fc88e;
  --accent-11: #39d79c;
  --accent-12: #b1f0d1;

  --accent-a1: #00b40003;
  --accent-a2: #73fabe11;
  --accent-a3: #3cfba624;
  --accent-a4: #2effa932;
  --accent-a5: #41feaf41;
  --accent-a6: #57fdb750;
  --accent-a7: #64ffbd61;
  --accent-a8: #66ffbd78;
  --accent-a9: #3dfeb7d2;
  --accent-a10: #25ffb4c6;
  --accent-a11: #42feb8d6;
  --accent-a12: #bbfeddf0;

  --accent-contrast: #0d281c;
  --accent-surface: #182a2280;
  --accent-indicator: #34d399;
  --accent-track: #34d399;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(14.5% 0.0131 163.2);
      --accent-2: oklch(20.8% 0.0168 163.2);
      --accent-3: oklch(26.9% 0.0398 163.2);
      --accent-4: oklch(31.5% 0.0555 163.2);
      --accent-5: oklch(36.2% 0.0626 163.2);
      --accent-6: oklch(41.1% 0.0674 163.2);
      --accent-7: oklch(46.8% 0.0748 163.2);
      --accent-8: oklch(53.4% 0.0871 163.2);
      --accent-9: oklch(77.3% 0.1535 163.2);
      --accent-10: oklch(73.9% 0.1535 163.2);
      --accent-11: oklch(78.4% 0.1535 163.2);
      --accent-12: oklch(90.3% 0.0765 163.2);

      --accent-a1: color(display-p3 0 0.9137 0 / 0.009);
      --accent-a2: color(display-p3 0.5765 0.9922 0.7529 / 0.066);
      --accent-a3: color(display-p3 0.4471 1 0.7098 / 0.135);
      --accent-a4: color(display-p3 0.4275 1 0.6941 / 0.192);
      --accent-a5: color(display-p3 0.4784 1 0.7137 / 0.249);
      --accent-a6: color(display-p3 0.5255 1 0.7569 / 0.307);
      --accent-a7: color(display-p3 0.5608 1 0.7725 / 0.376);
      --accent-a8: color(display-p3 0.5686 1 0.7725 / 0.462);
      --accent-a9: color(display-p3 0.5059 1 0.7529 / 0.809);
      --accent-a10: color(display-p3 0.4784 1 0.7412 / 0.764);
      --accent-a11: color(display-p3 0.5098 1 0.7529 / 0.825);
      --accent-a12: color(display-p3 0.7961 1 0.8863 / 0.931);

      --accent-contrast: #0d281c;
      --accent-surface: color(display-p3 0.1098 0.1647 0.1333 / 0.5);
      --accent-indicator: oklch(77.3% 0.1535 163.2);
      --accent-track: oklch(77.3% 0.1535 163.2);
    }
  }
}


.dark {
  --grayscale-1: #111111;
  --grayscale-2: #191919;
  --grayscale-3: #222222;
  --grayscale-4: #2a2a2a;
  --grayscale-5: #313131;
  --grayscale-6: #3a3a3a;
  --grayscale-7: #484848;
  --grayscale-8: #606060;
  --grayscale-9: #6e6e6e;
  --grayscale-10: #7b7b7b;
  --grayscale-11: #b4b4b4;
  --grayscale-12: #eeeeee;

  --grayscale-a1: #00000000;
  --grayscale-a2: #ffffff09;
  --grayscale-a3: #ffffff12;
  --grayscale-a4: #ffffff1b;
  --grayscale-a5: #ffffff22;
  --grayscale-a6: #ffffff2c;
  --grayscale-a7: #ffffff3b;
  --grayscale-a8: #ffffff55;
  --grayscale-a9: #ffffff64;
  --grayscale-a10: #ffffff72;
  --grayscale-a11: #ffffffaf;
  --grayscale-a12: #ffffffed;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.067 0.067);
      --grayscale-2: color(display-p3 0.098 0.098 0.098);
      --grayscale-3: color(display-p3 0.135 0.135 0.135);
      --grayscale-4: color(display-p3 0.163 0.163 0.163);
      --grayscale-5: color(display-p3 0.192 0.192 0.192);
      --grayscale-6: color(display-p3 0.228 0.228 0.228);
      --grayscale-7: color(display-p3 0.283 0.283 0.283);
      --grayscale-8: color(display-p3 0.375 0.375 0.375);
      --grayscale-9: color(display-p3 0.431 0.431 0.431);
      --grayscale-10: color(display-p3 0.484 0.484 0.484);
      --grayscale-11: color(display-p3 0.706 0.706 0.706);
      --grayscale-12: color(display-p3 0.933 0.933 0.933);

      --grayscale-a1: #00000000;
      --grayscale-a2: #ffffff09;
      --grayscale-a3: #ffffff12;
      --grayscale-a4: #ffffff1b;
      --grayscale-a5: #ffffff22;
      --grayscale-a6: #ffffff2c;
      --grayscale-a7: #ffffff3b;
      --grayscale-a8: #ffffff55;
      --grayscale-a9: #ffffff64;
      --grayscale-a10: #ffffff72;
      --grayscale-a11: #ffffffaf;
      --grayscale-a12: #ffffffed;

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

.light, :root {
  color-scheme: light;
  --accent: rgba(5, 150, 105, 1);
  --background: rgba(255, 255, 255, 1);
  --border: initial;
  --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(52, 211, 153, 1);
  --background: rgba(10, 10, 10, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0a0a0a;
}

/* Match Recursiv homepage brand */

/* Import Space Grotesk */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');

/* Emerald accent for links, buttons, highlights */
:root {
  --accent-primary: #10B981;
  --accent-primary-hover: #059669;
}

/* Primary CTA buttons — emerald green */
.fern-button[data-variant="primary"],
button[data-variant="primary"] {
  background-color: #10B981 !important;
  border-color: #10B981 !important;
}
.fern-button[data-variant="primary"]:hover,
button[data-variant="primary"]:hover {
  background-color: #059669 !important;
  border-color: #059669 !important;
}
.fern-button[data-variant="primary"]:focus-visible,
button[data-variant="primary"]:focus-visible {
  background-color: #059669 !important;
  border-color: #059669 !important;
}

/* Sidebar active link — emerald */
[data-active="true"] {
  color: #10B981 !important;
}

/* Code block styling — slightly softer background */
[data-theme="dark"] pre {
  background-color: #111111 !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

[data-theme="light"] pre {
  background-color: #f6f6f6 !important;
  border: 1px solid rgba(25, 25, 25, 0.1);
}

/* Inline code — subtle emerald tint */
:not(pre) > code {
  background-color: rgba(16, 185, 129, 0.08) !important;
  color: inherit !important;
  border-radius: 4px;
  padding: 2px 5px;
}

/* Table header — subtle */
[data-theme="dark"] th {
  background-color: rgba(255, 255, 255, 0.04) !important;
}

[data-theme="light"] th {
  background-color: rgba(25, 25, 25, 0.03) !important;
}

/* Navbar — match homepage minimal style */
[data-theme="dark"] nav,
[data-theme="dark"] header {
  border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="light"] nav,
[data-theme="light"] header {
  border-bottom-color: rgba(25, 25, 25, 0.1) !important;
}
