/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 1000px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 20px;
  --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: #fefcfb;
  --accent-2: #fff5ee;
  --accent-3: #ffead8;
  --accent-4: #ffd8ba;
  --accent-5: #ffcaa4;
  --accent-6: #ffbb8b;
  --accent-7: #ffa770;
  --accent-8: #f58e4b;
  --accent-9: #f7904d;
  --accent-10: #eb8541;
  --accent-11: #c05f0d;
  --accent-12: #592d0e;

  --accent-a1: #c0400004;
  --accent-a2: #ff690011;
  --accent-a3: #ff760027;
  --accent-a4: #ff6f0045;
  --accent-a5: #ff6b015b;
  --accent-a6: #ff6a0074;
  --accent-a7: #ff62008f;
  --accent-a8: #f15f00b4;
  --accent-a9: #f46000b2;
  --accent-a10: #e45b00be;
  --accent-a11: #bd5600f2;
  --accent-a12: #4f2100f1;

  --accent-contrast: #fff;
  --accent-surface: #fff3eacc;
  --accent-indicator: #f7904d;
  --accent-track: #f7904d;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.2% 0.003 51.57);
      --accent-2: oklch(97.9% 0.0173 51.57);
      --accent-3: oklch(95.8% 0.0415 51.57);
      --accent-4: oklch(92% 0.0914 51.57);
      --accent-5: oklch(89% 0.1201 51.57);
      --accent-6: oklch(85.7% 0.1239 51.57);
      --accent-7: oklch(80.5% 0.1268 51.57);
      --accent-8: oklch(74.5% 0.1489 51.57);
      --accent-9: oklch(75.1% 0.1489 51.57);
      --accent-10: oklch(71.6% 0.1489 51.57);
      --accent-11: oklch(59.2% 0.1489 51.57);
      --accent-12: oklch(35% 0.0774 51.57);

      --accent-a1: color(display-p3 0.7569 0.2667 0.0235 / 0.016);
      --accent-a2: color(display-p3 0.8784 0.3804 0.0078 / 0.063);
      --accent-a3: color(display-p3 0.8941 0.4667 0.0078 / 0.146);
      --accent-a4: color(display-p3 0.9098 0.4157 0.0039 / 0.255);
      --accent-a5: color(display-p3 0.9098 0.4118 0.0039 / 0.338);
      --accent-a6: color(display-p3 0.9098 0.4039 0.0039 / 0.428);
      --accent-a7: color(display-p3 0.902 0.3765 0 / 0.526);
      --accent-a8: color(display-p3 0.8549 0.349 0 / 0.651);
      --accent-a9: color(display-p3 0.8667 0.3529 0 / 0.644);
      --accent-a10: color(display-p3 0.8039 0.3333 0 / 0.687);
      --accent-a11: color(display-p3 0.651 0.2784 0 / 0.844);
      --accent-a12: color(display-p3 0.2667 0.1098 0 / 0.918);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 1 0.9569 0.9216 / 0.8);
      --accent-indicator: oklch(75.1% 0.1489 51.57);
      --accent-track: oklch(75.1% 0.1489 51.57);
    }
  }
}


.light, :root {
  --grayscale-1: #fdfdfc;
  --grayscale-2: #f9f9f8;
  --grayscale-3: #f1f0ef;
  --grayscale-4: #e9e8e6;
  --grayscale-5: #e2e1de;
  --grayscale-6: #dad9d6;
  --grayscale-7: #cfceca;
  --grayscale-8: #bcbbb5;
  --grayscale-9: #8d8d86;
  --grayscale-10: #82827c;
  --grayscale-11: #63635e;
  --grayscale-12: #21201c;

  --grayscale-a1: #55550003;
  --grayscale-a2: #25250007;
  --grayscale-a3: #20100010;
  --grayscale-a4: #1f150019;
  --grayscale-a5: #1f180021;
  --grayscale-a6: #19130029;
  --grayscale-a7: #19140035;
  --grayscale-a8: #1915014a;
  --grayscale-a9: #0f0f0079;
  --grayscale-a10: #0c0c0083;
  --grayscale-a11: #080800a1;
  --grayscale-a12: #060500e3;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.992 0.992 0.989);
      --grayscale-2: color(display-p3 0.977 0.977 0.973);
      --grayscale-3: color(display-p3 0.943 0.942 0.936);
      --grayscale-4: color(display-p3 0.913 0.912 0.903);
      --grayscale-5: color(display-p3 0.885 0.883 0.873);
      --grayscale-6: color(display-p3 0.854 0.852 0.839);
      --grayscale-7: color(display-p3 0.813 0.81 0.794);
      --grayscale-8: color(display-p3 0.738 0.734 0.713);
      --grayscale-9: color(display-p3 0.553 0.553 0.528);
      --grayscale-10: color(display-p3 0.511 0.511 0.488);
      --grayscale-11: color(display-p3 0.388 0.388 0.37);
      --grayscale-12: color(display-p3 0.129 0.126 0.111);

      --grayscale-a1: #55550003;
      --grayscale-a2: #25250007;
      --grayscale-a3: #20100010;
      --grayscale-a4: #1f150019;
      --grayscale-a5: #1f180021;
      --grayscale-a6: #19130029;
      --grayscale-a7: #19140035;
      --grayscale-a8: #1915014a;
      --grayscale-a9: #0f0f0079;
      --grayscale-a10: #0c0c0083;
      --grayscale-a11: #080800a1;
      --grayscale-a12: #060500e3;

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


.dark {
  --accent-1: #000;
  --accent-2: #0d1316;
  --accent-3: #14262e;
  --accent-4: #18333f;
  --accent-5: #22414e;
  --accent-6: #2e505f;
  --accent-7: #3c6273;
  --accent-8: #4b7a8f;
  --accent-9: #5a98b3;
  --accent-10: #4e8ca6;
  --accent-11: #86c3df;
  --accent-12: #c9e6f4;

  --accent-a1: #00000000;
  --accent-a2: #97ddff16;
  --accent-a3: #6fd3ff2e;
  --accent-a4: #62cfff3f;
  --accent-a5: #70d5ff4e;
  --accent-a6: #7cd7ff5f;
  --accent-a7: #86daff73;
  --accent-a8: #86daff8f;
  --accent-a9: #80d9ffb3;
  --accent-a10: #78d7ffa6;
  --accent-a11: #99dfffdf;
  --accent-a12: #d2f0fff4;

  --accent-contrast: #fff;
  --accent-surface: #1a262c80;
  --accent-indicator: #5a98b3;
  --accent-track: #5a98b3;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(0% 0.0106 227.9);
      --accent-2: oklch(18.2% 0.0114 227.9);
      --accent-3: oklch(25.7% 0.0274 227.9);
      --accent-4: oklch(30.7% 0.0391 227.9);
      --accent-5: oklch(35.7% 0.0437 227.9);
      --accent-6: oklch(41.1% 0.0465 227.9);
      --accent-7: oklch(47.6% 0.0515 227.9);
      --accent-8: oklch(55.5% 0.0612 227.9);
      --accent-9: oklch(64.8% 0.0757 227.9);
      --accent-10: oklch(60.8% 0.0757 227.9);
      --accent-11: oklch(78.6% 0.0743 227.9);
      --accent-12: oklch(90.9% 0.0367 227.9);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 0.6314 0.8588 0.9922 / 0.087);
      --accent-a3: color(display-p3 0.5333 0.8431 1 / 0.177);
      --accent-a4: color(display-p3 0.502 0.8039 1 / 0.244);
      --accent-a5: color(display-p3 0.5333 0.8314 1 / 0.302);
      --accent-a6: color(display-p3 0.5804 0.851 1 / 0.365);
      --accent-a7: color(display-p3 0.6118 0.8588 1 / 0.444);
      --accent-a8: color(display-p3 0.6118 0.8588 1 / 0.553);
      --accent-a9: color(display-p3 0.5922 0.851 1 / 0.691);
      --accent-a10: color(display-p3 0.5725 0.8471 1 / 0.64);
      --accent-a11: color(display-p3 0.6667 0.8784 1 / 0.863);
      --accent-a12: color(display-p3 0.8549 0.9451 1 / 0.95);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1098 0.149 0.1725 / 0.5);
      --accent-indicator: oklch(64.8% 0.0757 227.9);
      --accent-track: oklch(64.8% 0.0757 227.9);
    }
  }
}


.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(247, 144, 77, 1);
  --background: #fff;
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #f7904d;
}

.dark {
  color-scheme: dark;
  --accent: rgba(90, 152, 179, 1);
  --background: #000;
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #5a98b3;
}

.fern-background-image {
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--accent), var(--background) 90%) 0, var(--background) 100%);
}

.dark .fern-background-image {
  background-image: linear-gradient(to bottom, var(--background) 0, color-mix(in srgb, var(--accent), var(--background) 90%) 100%);
}

/* Canvas Body Theme */
:root [data-body-theme="canvas"] .canvas-wrapper {
  display: flex;
  width: 100%;
  overflow: auto;
  height: 100%;
  border-radius: 16px 16px 16px 16px;
  justify-content: center;
  align-items: flex-start;
  margin-right: 12px;
  margin-bottom: 12px;
  height: calc(100vh - var(--header-height-real) - 12px);
  border: 1px solid var(--border);
  background-color: var(--card-background);
}

:root [data-body-theme="canvas"] body {
  overflow: hidden;
}


:root [data-body-theme="canvas"] #fern-toc {
  position: sticky;
  max-height: calc(100vh - var(--header-height-real) - 12px);
  overflow-y: auto;
  overflow-x: hidden;
  top: 0;
}

:root [data-body-theme="canvas"] #fern-toc:has(> *) {
  margin-right: 12px;
}

:root [data-body-theme="canvas"] .fern-layout-guide,
:root [data-body-theme="canvas"] .fern-layout-overview {
  width: 100%;
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

:root [data-body-theme="canvas"] .fern-layout-reference {
  width: 100%;
  border: none;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  position: relative;
}

/* The sticky changelog day label offsets its top by the header height by default
   (window scroll). On canvas the scroll container already starts below the fixed
   header, so zero the offset to keep the date from pinning too early. */
:root [data-body-theme="canvas"] {
  --fern-changelog-sticky-top: 0px;
}

/* Bubble Tabs Theme */
:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item]::after {
  display: none;
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item] {
  position: relative;
  isolation: isolate;
  transition: color 0.15s ease-in-out;
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item]::before {
  content: "";
  position: absolute;
  inset: 6px 0;
  border-radius: 9999px;
  z-index: -1;
  transition: background-color 0.15s ease-in-out;
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"] {
  color: var(--accent-a11);
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"]::before {
  background-color: var(--accent-a3);
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"] > span {
  -webkit-text-stroke: 0.5px currentcolor;
}

:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="inactive"]:hover::before {
  background-color: var(--grayscale-a3);
}
:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="inactive"]:focus-visible::before {
  background-color: var(--grayscale-a3);
}

.dark [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"] {
  color: var(--accent-a11);
}

.dark [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"]::before {
  background-color: var(--accent-a3);
}

.dark [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="inactive"]:hover::before {
  background-color: var(--grayscale-a3);
}
.dark [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="inactive"]:focus-visible::before {
  background-color: var(--grayscale-a3);
}

/* Bubble theme: reset parent bg on active+focus-visible to avoid stacked alpha with the ::before pill */
:root [data-tabs-theme="bubble"] #fern-header [data-radix-collection-item][data-state="active"]:focus-visible {
  background: transparent;
}

/* =============================================================================
   StereoLabs Docs Theme — Custom CSS for Fern
   https://www.stereolabs.com/docs

   This file is SELF-CONTAINED. It overrides every color, typography, layout,
   and component token that docs.yml would normally control, so your docs.yml
   can remain minimal (just instances, navigation, and logo paths).

   Reference docs.yml only needs:
     css: ./styles.css

   All accent, grayscale, background, border, card, typography, radius, and
   layout variables are set here for both light and dark modes.
   ============================================================================= */


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 0 — @FONT-FACE (mirroring stereolabs.com/docs)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Roboto Mono for code (Hugo _fonts.scss).
   Declared inline as @font-face instead of @import: an @import of Google's
   stylesheet is render-blocking and serializes the request chain
   (styles.css → googleapis.com CSS → gstatic.com woff2). These rules hit
   gstatic.com directly and, unlike @import, do not block first paint.
   Only the `latin` subset is shipped — Roboto Mono is used solely for code,
   which is ASCII. */
@font-face {
  font-family: "Roboto Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Roboto Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Roboto Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("https://fonts.gstatic.com/s/robotomono/v31/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "NB Akademie Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/312a457e57325e02a8badc6600d1adfde760a8d5.woff2")
    format("woff2");
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "NB Akademie Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/312a457e57325e02a8badc6600d1adfde760a8d5.woff2")
    format("woff2");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "NB Akademie Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/d6b203d96b2ba043552121ef7278d61420949b58.woff2")
    format("woff2");
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "NB Akademie Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/d6b203d96b2ba043552121ef7278d61420949b58.woff2")
    format("woff2");
  font-weight: 600;
  font-display: swap;
}

/* Map weight 700 to the same semibold file so browsers don't synthesize faux-bold.
   StereoLabs only ships NB Akademie Pro at ~300 and ~500/600 weights — asking for 700
   would otherwise aliased-thicken the 600 glyphs. */
@font-face {
  font-family: "NB Akademie Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/d6b203d96b2ba043552121ef7278d61420949b58.woff2")
    format("woff2");
  font-weight: 700;
  font-display: swap;
}

/* Disable faux-bold synthesis globally as a belt-and-braces measure */
body {
  font-synthesis-weight: none;
  -webkit-font-synthesis: none;
}

@font-face {
  font-family: "NB Akademie Mono Pro";
  src: url("https://cdn.sanity.io/files/s18ewfw4/production/1662fceb03c5225551f96ef7137198fede59f1e9.woff2")
    format("woff2");
  font-weight: 400;
  font-display: swap;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 1 — DESIGN TOKENS: LIGHT MODE (from _defaults.scss theme-light)
   ═══════════════════════════════════════════════════════════════════════════════ */

:root {
  /* ── Accent scale (StereoLabs link blue: #050505 for links, lime for CTA) ── */
  --accent-1:  #f5f5f5;
  --accent-2:  #ebebeb;
  --accent-3:  #d6d6d6;
  --accent-4:  #b8b8b8;
  --accent-5:  #8a8a8a;
  --accent-6:  #5c5c5c;
  --accent-7:  #3d3d3d;
  --accent-8:  #1f1f1f;
  --accent-9:  #050505;
  --accent-10: #030303;
  --accent-11: #050505;
  --accent-12: #000000;

  /* ── Accent with alpha ───────────────────────────────────────────────────── */
  --accent:          #050505;
  --accent-a3:       rgba(5, 5, 5, 0.06);
  --accent-a4:       rgba(5, 5, 5, 0.08);
  --accent-a5:       rgba(5, 5, 5, 0.12);
  --accent-a9:       #050505;
  --accent-a11:      #353535;
  --accent-a12:      #000000;
  --accent-contrast: #ffffff;
  --accent-track:    rgba(5, 5, 5, 0.25);

  /* ── Grayscale scale (from --gray-100/200/500) ───────────────────────────── */
  --grayscale-1:  #fcfcfd;
  --grayscale-2:  #f8f9fa;   /* --gray-100 */
  --grayscale-3:  #f1f3f5;
  --grayscale-4:  #e9ecef;   /* --gray-200 */
  --grayscale-5:  #dee2e6;
  --grayscale-6:  #ced4da;
  --grayscale-7:  #adb5bd;   /* --gray-500 */
  --grayscale-8:  #868e96;
  --grayscale-9:  #6c757d;
  --grayscale-10: #495057;
  --grayscale-11: #343a40;
  --grayscale-12: #050505;   /* --body-font-color */

  /* ── Grayscale with alpha ────────────────────────────────────────────────── */
  --grayscale-a2:  rgba(0, 0, 0, 0.02);
  --grayscale-a3:  rgba(0, 0, 0, 0.04);
  --grayscale-a4:  rgba(0, 0, 0, 0.06);
  --grayscale-a5:  rgba(0, 0, 0, 0.08);
  --grayscale-a9:  #6c757d;
  --grayscale-a10: #495057;
  --grayscale-a11: #343a40;
  --grayscale-a12: #050505;

  /* ── Surface / Background ────────────────────────────────────────────────── */
  --background:       #ffffff;  /* --body-background */
  --card-background:  #f8f9fa;  /* --gray-100 */
  --card-solid:       #ffffff;
  --card-border:      #e9ecef;  /* --gray-200 */

  /* ── Border ──────────────────────────────────────────────────────────────── */
  --border-default: #e9ecef;    /* --gray-200 */

  /* ── Text ────────────────────────────────────────────────────────────────── */
  --text-body: #050505;         /* --body-font-color */

  /* ── Hints / Callout colors ──────────────────────────────────────────────── */
  --hint-info:    #6bf;   /* --hint-color-info */
  --hint-warning: #fd6;   /* --hint-color-warning */
  --hint-danger:  #f66;   /* --hint-color-danger */

  /* ── StereoLabs lime accent (CTA buttons, highlights) ────────────────────── */
  --color-lime:       #d9ff42;
  --color-lime-hover: #bbe124;

  /* ── Header & sidebar backgrounds (same as content) ──────────────────────── */
  --header-background: #ffffff;
  --sidebar-background: #ffffff;

  /* ── Scrollbar ───────────────────────────────────────────────────────────── */
  --scrollbar-bg: #fafafa;
  --thumb-bg:     #babac0;

  /* ── Radius (StereoLabs uses subtle rounding) ────────────────────────────── */
  --radius-1:    3px;
  --radius-2:    5px;
  --radius-3:    12px;
  --radius-3\/2: 4px;
  --radius-4:    10px;

  /* ── Layout (from _defaults.scss) ──────────────────────────────────────── */
  --header-height:          58px;   /* $header-height */
  --spacing-header-height-real: 58px;
  --page-width-padded:      75%; /* $main-max-width */
  --page-padding:           1rem;   /* $padding-16 */
  --content-wide-width:     920px;
  --aside-offset:           0px;

  /* ── Typography (NB Akademie Pro for text, Roboto Mono for code — mirrors Hugo _fonts.scss) ── */
  --font-body: "NB Akademie Pro", Helvetica, Arial, sans-serif;
  --font-headings: "NB Akademie Pro", Helvetica, Arial, sans-serif;
  --font-mono: "Roboto Mono", "Courier New", "Courier", monospace;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 2 — DESIGN TOKENS: DARK MODE
   StereoLabs docs is primarily a dark site with a near-black background.
   ═══════════════════════════════════════════════════════════════════════════════ */

.dark {
  /* ── Accent scale (lighter teal for dark backgrounds) ────────────────────── */
  --accent-1:  #0c1726;
  --accent-2:  #0e1e33;
  --accent-3:  #102b47;
  --accent-4:  #133c5e;
  --accent-5:  #195078;
  --accent-6:  #216896;
  --accent-7:  #2d82b5;
  --accent-8:  #3a9ae0;
  --accent-9:  #3AA0E8;
  --accent-10: #5db3ed;
  --accent-11: #8ccaf3;
  --accent-12: #d4edfb;

  --accent:          #3AA0E8;
  --accent-a3:       rgba(58, 160, 232, 0.10);
  --accent-a4:       rgba(58, 160, 232, 0.14);
  --accent-a5:       rgba(58, 160, 232, 0.18);
  --accent-a9:       #d9ff42;
  --accent-a11:      #bbe124;
  --accent-a12:      #d4edfb;
  --accent-contrast: #0a0f1a;
  --accent-track:    rgba(58, 160, 232, 0.25);

  /* ── Grayscale scale (dark) ──────────────────────────────────────────────── */
  --grayscale-1:  #111318;
  --grayscale-2:  #1a1d25;
  --grayscale-3:  #22252f;
  --grayscale-4:  #2b2f3a;
  --grayscale-5:  #353944;
  --grayscale-6:  #3f4450;
  --grayscale-7:  #525762;
  --grayscale-8:  #6b7080;
  --grayscale-9:  #848996;
  --grayscale-10: #979baa;
  --grayscale-11: #adb1bd;
  --grayscale-12: #e4e6eb;

  --grayscale-a2:  rgba(255, 255, 255, 0.03);
  --grayscale-a3:  rgba(255, 255, 255, 0.06);
  --grayscale-a4:  rgba(255, 255, 255, 0.08);
  --grayscale-a5:  rgba(255, 255, 255, 0.10);
  --grayscale-a9:  #848996;
  --grayscale-a10: #979baa;
  --grayscale-a11: #adb1bd;
  --grayscale-a12: #e4e6eb;

  /* ── Surface / Background (deep charcoal) ────────────────────────────────── */
  --background:       #0f1117;
  --card-background:  #161922;
  --card-solid:       #1a1d28;
  --card-border:      #282c38;

  /* ── Border ──────────────────────────────────────────────────────────────── */
  --border-default: #282c38;

  /* ── Text ────────────────────────────────────────────────────────────────── */
  --text-body: #d1d5db;
}


/* ── Dark mode: cover all possible Fern dark selectors ─────────────────────── */
:root.dark,
:root[data-theme="dark"],
[data-theme="dark"],
html.dark,
html[data-theme="dark"] {
  --sidebar-background: #0f1117 !important;
  --header-background: #0f1117 !important;
  --background: #0f1117 !important;
}

@media (prefers-color-scheme: dark) {

  :root {
    --sidebar-background: #0f1117;
    --header-background: #0f1117;
  }

}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 3 — GLOBAL TYPOGRAPHY
   ═══════════════════════════════════════════════════════════════════════════════ */

body {
  font-family: var(--font-body);
  font-size: 17px !important;          /* $body-font-size */
  font-weight: 400;                    /* $body-font-weight */
  line-height: 26px !important;        /* $body-line-height */
  letter-spacing: 0.2px;               /* Hugo body letter-spacing */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* optimizeLegibility was removed: it forces kerning/ligature computation
     over all body text and measurably slows first layout on long docs pages.
     `auto` (the default) lets the browser pick the fast path. */
}

.prose {
  font-size: 17px !important;
  line-height: 26px !important;
}

/* Hugo uses weight 500 across all heading levels */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-headings);
  font-weight: 500;
  color: var(--grayscale-12);
}

h1 {
  font-size: 40px;
  line-height: 40px;
  letter-spacing: -0.03em;
}

h2 {
  font-size: 28px;
  line-height: 31px;
  letter-spacing: -0.01em;
  margin-top: 1.8em;
}

h3 {
  font-size: 16.5px;
  padding-top: 2rem;
  padding-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
}

h4 {
  font-size: 21px;
  font-weight: 500;
  color: rgba(0, 0, 0, 0.83);
  padding-bottom: 3px;
}

.dark h4 { color: rgba(255, 255, 255, 0.83); }

h5 { font-size: 0.875em; }
h6 { font-size: 0.75em; }

/* Bold elements — cap weight at 600 (NB Akademie Pro only ships 300–600;
   default <strong>/<b> weight 700 triggers faux-bold which looks muddy) */
.prose strong, .prose b,
.fern-prose strong, .fern-prose b,
.fern-callout strong, .fern-callout b,
.fern-layout-guide strong, .fern-layout-guide b,
.fern-layout-overview strong, .fern-layout-overview b,
.fern-layout-reference strong, .fern-layout-reference b {
  font-weight: 600;
}

/* Catch-all: no link should render as default browser blue */
.prose a:not(.fern-mdx-link):not(.fern-button),
.fern-prose a:not(.fern-mdx-link):not(.fern-button),
.fern-layout-guide a:not(.fern-mdx-link):not(.fern-button),
.fern-layout-overview a:not(.fern-mdx-link):not(.fern-button),
.fern-layout-reference a:not(.fern-mdx-link):not(.fern-button),
.fern-callout a {
  color: var(--accent-a11);
}

.dark .prose a:not(.fern-mdx-link):not(.fern-button),
.dark .fern-prose a:not(.fern-mdx-link):not(.fern-button),
.dark .fern-layout-guide a:not(.fern-mdx-link):not(.fern-button),
.dark .fern-layout-overview a:not(.fern-mdx-link):not(.fern-button),
.dark .fern-layout-reference a:not(.fern-mdx-link):not(.fern-button),
.dark .fern-callout a {
  color: var(--color-lime);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 4 — HEADER
   StereoLabs: clean bar, frosted glass, thin border-bottom separator.
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-header {
  backdrop-filter: blur(12px) saturate(1.2);
  background-color: var(--background) !important;
  border-bottom: 1px solid rgba(240, 240, 240, 0.8);
}

.dark .fern-header {
  border-bottom-color: var(--border-default);
}

/* Navbar links — Hugo sizing (docs.yml navbar-links) */
.fern-header nav a,
.fern-header-tabs a {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05px;
  line-height: 19px;
}

.fern-background-image {
  background-color: var(--background) !important;
  background-image: none !important;
  background: var(--background) none !important;
}

.fern-background-image.fern-background-image {
  background-image: none !important;
  background: var(--background) !important;
}

.dark .fern-background-image {
  background-color: var(--background) !important;
  background-image: none !important;
  background: var(--background) none !important;
}

.dark .fern-header {
  background-color: var(--background) !important;
}

.fern-header-tabs {
  backdrop-filter: blur(12px);
  background-color: var(--background) !important;
  border-bottom: 1px solid var(--border-default);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 5 — SIDEBAR
   StereoLabs: compact, muted section headings, thin active indicator.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Force canvas wrapper background to match content */
.canvas-wrapper {
  background-color: var(--background) !important;
}

.fern-sidebar-header {
  border-bottom-color: var(--border-default);
  background-color: var(--background) !important;
}

.dark .fern-sidebar-header {
  background-color: var(--background) !important;
}

/* Force page-wide background to white / dark */
html,
body,
#__next,
#fern-docs,
[data-fern-docs],
main,
aside,
.fern-layout-page,
.fern-layout-guide,
.fern-layout-overview,
.fern-layout-reference,
.fern-layout-changelog,
#fern-toc,
[class*="toc"],
[id*="toc"],
[data-aside-state],
[class*="aside"] {
  background-color: var(--background) !important;
}

.toc-root:after {
  background-color: var(--color-lime) !important;
  height: var(--height, 20px);
  transform: translateY(calc(var(--top, 0px)));
  transition: transform .25s, height .25s;
  border-left: 3.5px solid var(--color-lime);
}

/* Section headings — Hugo .section_title: 16px, weight 500, near-black, not uppercase */
.fern-sidebar-heading-content {
  font-size: 16px;
  font-weight: 500;
  line-height: 19px;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--grayscale-12);
  padding: 6px 0;
  margin-top: 16px;
}

@media (min-width: 1024px) {

  .fern-sidebar-heading-content {
    font-size: 16px;
  }

}

/* Sidebar links — StereoLabs uses ~14px */
.fern-sidebar-link {
  color: var(--grayscale-a11);
  font-size: 0.9375rem;
  line-height: 1.4;
  padding: 0.35rem 0.5rem;
  border-radius: var(--radius-1);
}

@media (min-width: 1024px) {

  .fern-sidebar-link {
    font-size: 0.875rem;
    padding: 0.35rem 0.5rem;
  }

}

.fern-sidebar-link:hover {
  color: var(--grayscale-a12);
  background-color: var(--background) !important;
  font-weight: 500 !important;
}
.fern-sidebar-link:focus-visible {
  color: var(--grayscale-a12);
  background-color: var(--background) !important;
  font-weight: 500 !important; outline: none;
}

.fern-sidebar-link[data-state="active"] {
  color: var(--grayscale-12);
  background-color: var(--background) !important;
  font-weight: 700 !important;
  position: relative;
}

/* Left accent bar on active link */
.fern-sidebar-link[data-state="active"]::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 0 !important;
  border-radius: 1px;
  background-color: var(--accent-a9);
}

.fern-sidebar-link.nested[data-state=active]:before {
  width: 0 !important;
}

/* Sidebar groups — tighter spacing */
.fern-sidebar-group {
  margin-bottom: 0.25rem;
}

/* Hugo-style vertical guide — only on expanded sections (matches Hugo's
   .has-sub > ul border-left, which is visible only when max-height > 0).
   No bar on first-level items. */
[data-state="open"] > .fern-sidebar-group,
[data-state="open"] > ul,
.fern-sidebar-group[data-state="open"] > ul,
.fern-sidebar-group[data-level]:not([data-level="0"]):not([data-level="1"]) {
  border-left: 2px solid #dadde1;
  padding-left: 0;
  margin-left: 0.5rem;
}

.dark [data-state="open"] > .fern-sidebar-group,
.dark [data-state="open"] > ul,
.dark .fern-sidebar-group[data-state="open"] > ul,
.dark .fern-sidebar-group[data-level]:not([data-level="0"]):not([data-level="1"]) {
  border-left-color: var(--grayscale-5);
}

.fern-sidebar-tabs {
  margin-top: 1rem;
  margin-bottom: 1.25rem;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 6 — PAGE HEADING & BREADCRUMBS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-page-heading {
    font-size: 40px;
    line-height: 40px;
    padding: 0;
    color: var(--grayscale-12);
    margin-bottom: .5em;
    padding-bottom: 6px;
}

.fern-breadcrumb-item {
  font-size: 0.8125rem;
  color: var(--grayscale-9);
}

.fern-breadcrumb-arrow {
  color: var(--grayscale-9);
  opacity: 0.5;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 7 — CARDS
   StereoLabs: flat, clean 1px border, no drop shadow at rest.
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-card {
  background-color: var(--background);
  border: 1px solid var(--grayscale-4);   /* --gray-200 */
  border-radius: var(--radius-3\/2);       /* 4px — Hugo book-expand */
  box-shadow: none;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.fern-card:hover {
  color: var(--text-body);
}
.fern-card:focus-visible {
  color: var(--text-body); outline: none;
}

.fern-card.interactive:hover {
  border-color: #050505;
  background-color: var(--card-background);   /* subtle gray fill on hover */
  box-shadow: none;
}
.fern-card.interactive:focus-visible {
  border-color: #050505;
  background-color: var(--card-background);   /* subtle gray fill on hover */
  box-shadow: none; outline: none;
}

.dark .fern-card.interactive:hover {
  border-color: var(--grayscale-12);
}
.dark .fern-card.interactive:focus-visible {
  border-color: var(--grayscale-12); outline: none;
}

.fern-card.elevated {
  border-color: var(--grayscale-4);
  box-shadow: none;
}

/* Card icon — match text color */
.card-icon,
[class*="card-icon"] {
  color: var(--accent-a11) !important;
  fill: var(--accent-a11) !important;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 8 — CODE BLOCKS
   Hugo uses flat, square-cornered code blocks. No shadow, no rounding.
   ═══════════════════════════════════════════════════════════════════════════════ */

pre[class*="language-"],
code[class*="language-"] {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  line-height: 1.65;
  tab-size: 2;
}

/* Flat code block — Hugo _markdown.scss pre: #f8f9fa bg, 1rem padding, no radius, no border, no chrome */
.fern-code-block,
.fern-code-block-root,
.fern-code-block-container,
pre {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fern-code-block > *,
.fern-code-block-root > *,
.fern-code-block-container > * {
  border-radius: 0 !important;
}

/* Code block body — light #f8f9fa, dark pale */
.fern-code-block pre,
.fern-code-block-root pre,
.fern-code-block-container pre {
  background-color: #f8f9fa !important;   /* --gray-100 */
  padding: 1rem !important;
  border: none !important;
}

.dark .fern-code-block pre,
.dark .fern-code-block-root pre,
.dark .fern-code-block-container pre {
  background-color: var(--grayscale-2) !important;
}

/* Hide Fern's code-block title / chrome header if empty (Hugo had none) */
.fern-code-block-title-bar:empty {
  display: none !important;
}

/* Inline code in prose — Hugo: .87em, muted gray, square, no shadow */
.prose :not(pre) > code,
.fern-prose :not(pre) > code,
.fern-layout-guide :not(pre) > code,
.fern-layout-overview :not(pre) > code,
.fern-layout-reference :not(pre) > code {
  font-family: var(--font-mono);
  font-size: 0.87em;
  line-height: 21px;
  letter-spacing: 0.05px;
  background-color: rgba(0, 0, 0, 0.06);
  padding: 0.15rem 0.3rem;
  border-radius: 0 !important;
}

.dark .prose :not(pre) > code,
.dark .fern-prose :not(pre) > code,
.dark .fern-layout-guide :not(pre) > code,
.dark .fern-layout-overview :not(pre) > code,
.dark .fern-layout-reference :not(pre) > code {
  background-color: rgba(255, 255, 255, 0.10);
}

/* Inline code inside list items — Hugo makes these slightly bolder */
.prose li > code,
.fern-prose li > code,
.fern-layout-guide li > code,
.fern-layout-overview li > code {
  font-weight: 500;
  white-space: nowrap;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 8b — TABS (StereoLabs black / lime treatment)
   Matches Hugo _shortcodes.scss .ui-tabs-tab: black bg + white text,
   active tab = lime bg + black text; uppercase, tiny, letter-spaced.

   FIX NOTES:
   - Fern renders the tab label inside an inner <span> that carries its own
     color utility (t-muted / t-default → grayscale tokens). Setting `color`
     on the button alone never reaches that span, which produced the
     unreadable dark-gray-on-black inactive tabs ("YUM"). The descendant
     `color: inherit` rule below forces the label to follow the button.
   - The inner span also carries its own pill padding/background utilities;
     these are neutralized so the tab stays a flat block.
   - All selectors are scoped to the content layouts so Radix tabs in
     portaled UI (search dialog, API playground) keep Fern's defaults.
   ═══════════════════════════════════════════════════════════════════════════════ */

:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tablist"],
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-list {
  border-bottom: 1px solid #c2c2c2 !important;
  margin-top: 0.5rem;
  margin-bottom: 0;
  padding: 0 !important;
  gap: 0;
  /* The strip must not paint its own surface behind the tabs — a themed
     tablist background is what shows through as a wedge when radii differ */
  background: transparent !important;
  border-top-left-radius: var(--radius-3) !important;
  overflow: clip;
}

.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tablist"],
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-list {
  border-bottom-color: var(--grayscale-5) !important;
}

:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"],
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger {
  padding: 1em 1.5em !important;
  background-color: #050505 !important;
  color: #fff !important;
  font-weight: 500 !important;
  font-size: 0.625rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
  border: none !important;
  border-bottom: 0 !important;
  border-radius: 0 !important;
  line-height: 1;
  transition: background-color 0.15s ease;
}

/* THE FIX — the label lives in an inner <span> with its own color utility;
   force every descendant to inherit the button's color so white/black text
   actually renders in both themes */
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"] span,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger span {
  color: inherit !important;
}

/* Rounded code-group card with a guaranteed-matching tab corner.
   The card's class names are hashed upstream, so it is targeted
   structurally (parent / grandparent of the tab strip). We force the
   radius to a value WE own (--radius-3) and clip the children: the lime
   tab's corner is then cut by the card itself, so card and tab share the
   exact same curve by construction — no value to keep in sync, no
   crescent artifact. `overflow: clip` does not create a scroll container,
   and code scrolling is unaffected because <pre> has its own overflow. */
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) div:has(> [role="tablist"]),
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) div:has(> * > [role="tablist"]),
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) div:has(> .fern-tabs-list) {
  border-radius: var(--radius-3) !important;   /* 8px */
  overflow: clip;
}

/* The first tab carries the SAME radius as the tablist and the card rule
   below — every layer stacked in that corner shares one curve (8px), so a
   mismatch wedge cannot appear regardless of which layer paints last */
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:first-of-type,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:first-of-type {
  border-top-left-radius: var(--radius-3) !important;
}

/* Neutralize Fern's inner pill (padding + hover/active background on the span) */
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"] > span,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger > span {
  background-color: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Dark mode — a #050505 tab on the #0f1117 page is a black-on-black block;
   lift inactive tabs onto the dark card surface so their edges are visible */
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:not([data-state="active"]):not([aria-selected="true"]),
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:not([data-state="active"]):not([aria-selected="true"]) {
  background-color: var(--grayscale-2) !important;   /* #1a1d25 */
  color: var(--grayscale-11) !important;
}

:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:hover,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:hover {
  background-color: #3c3c3c !important;
  color: #fff !important;
  opacity: 1 !important;
}
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:focus-visible,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:focus-visible {
  background-color: #3c3c3c !important;
  color: #fff !important;
  opacity: 1 !important; outline: none;
}

.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:not([data-state="active"]):not([aria-selected="true"]):hover,
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:not([data-state="active"]):not([aria-selected="true"]):hover {
  background-color: var(--grayscale-3) !important;   /* #22252f */
  color: var(--grayscale-12) !important;
}
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"]:not([data-state="active"]):not([aria-selected="true"]):focus-visible,
.dark :is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger:not([data-state="active"]):not([aria-selected="true"]):focus-visible {
  background-color: var(--grayscale-3) !important;   /* #22252f */
  color: var(--grayscale-12) !important; outline: none;
}

:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][data-state="active"],
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][aria-selected="true"],
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[data-state="active"],
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[aria-selected="true"] {
  background-color: var(--color-lime) !important;
  color: #050505 !important;
  cursor: default !important;
}

:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][data-state="active"]:hover,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][aria-selected="true"]:hover,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[data-state="active"]:hover,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[aria-selected="true"]:hover {
  background-color: var(--color-lime) !important;
  color: #050505 !important;
}
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][data-state="active"]:focus-visible,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) [role="tab"][aria-selected="true"]:focus-visible,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[data-state="active"]:focus-visible,
:is(.fern-layout-guide, .fern-layout-overview, .fern-layout-reference, .fern-layout-changelog) .fern-tabs-trigger[aria-selected="true"]:focus-visible {
  background-color: var(--color-lime) !important;
  color: #050505 !important; outline: none;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 9 — TABLES (from StereoLabs _defaults.scss)
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-table-root {
  border: none;
  border-radius: 0;
  background-color: transparent;
  backdrop-filter: none;
  overflow: auto;
  font-size: 15px;
}

.fern-table {
  border-spacing: 0;
  border-collapse: collapse;
  margin-top: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #050505;
}

.dark .fern-table {
  border-bottom-color: var(--grayscale-7);
}

.fern-table tr {
  border-top: 1px solid #050505;
}

.dark .fern-table tr {
  border-top-color: var(--grayscale-7);
}

.fern-table td,
.fern-table th {
  padding: 16px;
  text-align: left;
  border-bottom: none;
  height: auto;
}

.fern-table thead tr th {
  background-color: transparent;
  min-width: 100px;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  font-size: 15px;
  font-weight: 500;
  vertical-align: middle;
  padding: 16px;
  color: var(--grayscale-12);
}

.fern-table tbody tr td:first-child {
  font-weight: 600;
  color: #333;
  letter-spacing: -0.1px;
}

.dark .fern-table tbody tr td:first-child {
  color: var(--grayscale-12);
}

.fern-table td {
  font-size: 15px;
}

/* HR — thin separator matching StereoLabs */
hr {
  height: 1px;
  border: none;
  background: var(--grayscale-4);  /* --gray-200 */
}

/* Blockquote — Hugo style: dark left border + pale gray fill */
.prose blockquote,
.fern-prose blockquote,
.fern-layout-guide blockquote,
.fern-layout-overview blockquote,
.fern-layout-reference blockquote,
blockquote {
  margin: 0.5rem 0;
  padding: 0.5rem 1rem;
  border-inline-start: 0.25rem solid #050505;
  background-color: #f7f7f7;
  font-style: normal;
}

.dark .prose blockquote,
.dark .fern-prose blockquote,
.dark .fern-layout-guide blockquote,
.dark .fern-layout-overview blockquote,
.dark .fern-layout-reference blockquote,
.dark blockquote {
  border-inline-start-color: var(--grayscale-12);
  background-color: var(--card-background);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 10 — CALLOUTS / ADMONITIONS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-callout {
  border-radius: var(--radius-2);
  border: 1px solid transparent;
  border-left-width: 4px;
  padding: 0.875rem 1rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-body);
}

/* Body text stays readable regardless of intent */
.fern-callout,
.fern-callout p,
.fern-callout li,
.fern-callout strong,
.fern-callout code {
  color: var(--text-body);
}

.dark .fern-callout,
.dark .fern-callout p,
.dark .fern-callout li,
.dark .fern-callout strong {
  color: var(--grayscale-12);
}

/* ── info / note / launch: neutral (Hugo blockquote style — no blue tint) ─ */
.fern-callout[data-intent="info"],
.fern-callout[data-intent="note"],
.fern-callout[data-intent="launch"] {
  background-color: #f7f7f7;
  border-color: rgba(5, 5, 5, 0.10);
  border-left-color: #050505;
}

.dark .fern-callout[data-intent="info"],
.dark .fern-callout[data-intent="note"],
.dark .fern-callout[data-intent="launch"] {
  background-color: var(--card-background);
  border-color: var(--border-default);
  border-left-color: var(--grayscale-12);
}

/* ── warning: yellow (Hugo #fd6), keep icon crisp ───────────────────────── */
.fern-callout[data-intent="warning"] {
  background-color: rgba(253, 204, 51, 0.18);
  border-color: rgba(253, 204, 51, 0.55);
  border-left-color: #e0a800;
}

.dark .fern-callout[data-intent="warning"] {
  background-color: rgba(253, 204, 51, 0.14);
  border-color: rgba(253, 204, 51, 0.45);
  border-left-color: #fd6;
}

/* ── error / danger: red (Hugo #f66) ────────────────────────────────────── */
.fern-callout[data-intent="error"] {
  background-color: rgba(255, 102, 102, 0.14);
  border-color: rgba(255, 102, 102, 0.45);
  border-left-color: #e63946;
}

.dark .fern-callout[data-intent="error"] {
  background-color: rgba(255, 102, 102, 0.14);
  border-color: rgba(255, 102, 102, 0.45);
  border-left-color: #f66;
}

/* ── success / tip / check: StereoLabs lime accent ──────────────────────── */
.fern-callout[data-intent="success"],
.fern-callout[data-intent="tip"],
.fern-callout[data-intent="check"] {
  background-color: rgba(217, 255, 66, 0.18);
  border-color: rgba(187, 225, 36, 0.55);
  border-left-color: #9bbf16;
}

.dark .fern-callout[data-intent="success"],
.dark .fern-callout[data-intent="tip"],
.dark .fern-callout[data-intent="check"] {
  background-color: rgba(217, 255, 66, 0.12);
  border-color: rgba(217, 255, 66, 0.35);
  border-left-color: var(--color-lime);
}

/* Callout icon — keep it intent-colored but a touch darker for contrast */
.fern-callout[data-intent="warning"] svg {
  color: #b8860b;
}

/* Keep Fern's default icon for note/info/launch — just tint it neutrally */
.fern-callout[data-intent="info"] svg,
.fern-callout[data-intent="note"] svg,
.fern-callout[data-intent="launch"] svg {
  color: #525252;
}

.dark .fern-callout[data-intent="info"] svg,
.dark .fern-callout[data-intent="note"] svg,
.dark .fern-callout[data-intent="launch"] svg {
  color: var(--grayscale-11);
}
.fern-callout[data-intent="error"] svg {
  color: #c0392b;
}
.fern-callout[data-intent="success"] svg,
.fern-callout[data-intent="tip"] svg,
.fern-callout[data-intent="check"] svg {
  color: #7ba017;
}

.dark .fern-callout[data-intent="warning"] svg { color: #fd6; }
.dark .fern-callout[data-intent="error"] svg { color: #f66; }
.dark .fern-callout[data-intent="success"] svg,
.dark .fern-callout[data-intent="tip"] svg,
.dark .fern-callout[data-intent="check"] svg { color: var(--color-lime); }


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 11 — LINKS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-mdx-link {
  color: var(--accent-a11);
  font-weight: 500;
  text-decoration: none !important;
  border-bottom: 1px dotted currentColor;
  transition: opacity 0.15s ease;
}

.fern-mdx-link:hover {
  color: var(--accent-a11);
  opacity: 0.5;
  border-bottom: 1px dotted currentColor;
}
.fern-mdx-link:focus-visible {
  color: var(--accent-a11);
  opacity: 0.5;
  border-bottom: 1px dotted currentColor; outline: none;
}

/* Images-in-links get no underline (Hugo: a:has(img.sub)) */
.fern-mdx-link:has(img) {
  border-bottom: none;
}

.dark .fern-mdx-link {
  color: var(--color-lime);
}

.dark .fern-mdx-link:hover {
  color: var(--color-lime);
  opacity: 0.5;
}
.dark .fern-mdx-link:focus-visible {
  color: var(--color-lime);
  opacity: 0.5; outline: none;
}

.fern-mdx-link svg.external-link-icon {
  margin-bottom: var(--spacing);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 12 — BUTTONS
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Buttons — Hugo .book-btn: 1px dark border, square-ish, no fill by default */
.fern-button {
  line-height: 19px !important;
  border-radius: var(--radius-3\/2);    /* 4px */
  font-weight: 500 !important;
  font-size: 16px !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  letter-spacing: .05px !important;
  box-shadow: none !important;
}

.fern-button.filled.primary {
  background-color: #050505;
  color: #ffffff;
  border: 1px solid #050505;
}

.fern-button.filled.primary:hover {
  background-color: #3c3c3c;
  border-color: #3c3c3c;
}
.fern-button.filled.primary:focus-visible {
  background-color: #3c3c3c;
  border-color: #3c3c3c; outline: none;
}

.dark .fern-button.filled.primary {
  background-color: var(--color-lime);
  color: #050505;
  border-color: var(--color-lime);
}

.dark .fern-button.filled.primary:hover {
  background-color: var(--color-lime-hover);
  border-color: var(--color-lime-hover);
}
.dark .fern-button.filled.primary:focus-visible {
  background-color: var(--color-lime-hover);
  border-color: var(--color-lime-hover); outline: none;
}

.fern-button.outlined {
  border: 1px solid #050505;
  background-color: transparent;
  color: #050505;
}

.fern-button.outlined:hover {
  background-color: #050505;
  color: #ffffff;
}
.fern-button.outlined:focus-visible {
  background-color: #050505;
  color: #ffffff; outline: none;
}

.dark .fern-button.outlined {
  border-color: var(--grayscale-12);
  color: var(--grayscale-12);
}

.dark .fern-button.outlined:hover {
  background-color: var(--grayscale-12);
  color: #050505;
}
.dark .fern-button.outlined:focus-visible {
  background-color: var(--grayscale-12);
  color: #050505; outline: none;
}

.fern-copy-button,
.fern-expand-button {
  backdrop-filter: blur(8px);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 13 — BADGES
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-docs-badge {
  font-weight: 700;
  letter-spacing: 0.02em;
}

.fern-docs-badge.small {
  border-radius: var(--radius-1);
  font-size: 0.75rem;
}

.fern-docs-badge[data-badge-type="http-method"],
.fern-docs-badge[data-badge-type="status-code"] {
  font-family: var(--font-mono) !important;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 14 — FOOTER NAVIGATION
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Footer prev/next — flat Hugo aesthetic: 1px gray border, 4px radius, no tint */
.fern-footer-nav {
  background-color: transparent !important;
  background: transparent !important;
  border-radius: var(--radius-3\/2);
  padding: 0;
  margin: 0;
  gap: 0.75rem;
}

.fern-footer-nav--simple {
  background-color: transparent !important;
  background: transparent !important;
}

.fern-footer-next,
.fern-footer-prev {
  border-radius: var(--radius-3\/2);
  border: 1px solid var(--grayscale-4);
  background-color: var(--background) !important;
  background: var(--background) !important;
  opacity: 1;
  transition: border-color 0.15s ease, background-color 0.15s ease;
  box-shadow: none;
}

.fern-footer-next:hover,
.fern-footer-prev:hover {
  border-color: #050505;
  background-color: #f8f9fa !important;
}
.fern-footer-next:focus-visible,
.fern-footer-prev:focus-visible {
  border-color: #050505;
  background-color: #f8f9fa !important; outline: none;
}

.dark .fern-footer-next:hover,
.dark .fern-footer-prev:hover {
  border-color: var(--grayscale-12);
  background-color: var(--grayscale-2) !important;
}
.dark .fern-footer-next:focus-visible,
.dark .fern-footer-prev:focus-visible {
  border-color: var(--grayscale-12);
  background-color: var(--grayscale-2) !important; outline: none;
}

.fern-layout-footer.not-prose {
  margin-top: 3rem !important;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 15 — STEPS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-steps {
  border-left: 1px solid var(--border-default);
  margin-left: 0.5rem;
  padding-left: 1.5rem;
  margin-top: 0.75rem;
  margin-bottom: 2.5rem;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 16 — API REFERENCE PROPERTIES
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-api-property-key {
  color: var(--grayscale-12);
  font-family: var(--font-mono);
  font-size: 0.875rem;
  font-weight: 600;
}

.fern-api-property-meta {
  color: var(--grayscale-9);
  font-size: 0.75rem;
}

.fern-api-property {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 17 — SCROLLBAR
   Thin, unobtrusive, like StereoLabs.
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-scroll-area-scrollbar {
  background-color: transparent;
}

.fern-scroll-area-scrollbar[data-orientation="vertical"] {
  width: 3px;
}

.fern-scroll-area-scrollbar[data-orientation="vertical"]:hover {
  width: 5px;
}
.fern-scroll-area-scrollbar[data-orientation="vertical"]:focus-visible {
  width: 5px; outline: none;
}

.fern-scroll-area-scrollbar[data-orientation="horizontal"] {
  height: 3px;
}

.fern-scroll-area-scrollbar[data-orientation="horizontal"]:hover {
  height: 5px;
}
.fern-scroll-area-scrollbar[data-orientation="horizontal"]:focus-visible {
  height: 5px; outline: none;
}

.fern-scroll-area-thumb {
  background-color: #babac0;  /* --thumb-bg */
}

.dark .fern-scroll-area-thumb {
  background-color: #babac0;  /* same --thumb-bg in dark */
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 18 — DROPDOWNS
   Frosted glass, deep shadow.
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-dropdown {
  background-color: var(--card-background);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-2);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.10);
  backdrop-filter: blur(16px);
}

.dark .fern-dropdown {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
}

.fern-dropdown-item[data-highlighted] {
  background-color: var(--accent-9);
  color: var(--accent-contrast);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 19 — ACCORDIONS
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Accordion — Hugo _shortcodes.scss .book-expand: 1px gray-200 border, 4px radius,
   #f8f9fa header bar, white body */
.fern-accordion {
  border: 1px solid var(--grayscale-4);   /* --gray-200 */
  border-radius: var(--radius-3\/2);       /* 4px */
  overflow: hidden;
  background-color: var(--background);
}

.fern-accordion-trigger {
  padding: 0.5rem 1rem;   /* Hugo: 0.5rem 1rem */
  gap: 0.5rem;
  background-color: #f8f9fa;
  cursor: pointer;
}

.dark .fern-accordion-trigger {
  background-color: var(--grayscale-2);
}

.fern-accordion-trigger:hover {
  background-color: var(--grayscale-4);
}
.fern-accordion-trigger:focus-visible {
  background-color: var(--grayscale-4); outline: none;
}

.dark .fern-accordion-trigger:hover {
  background-color: var(--grayscale-3);
}
.dark .fern-accordion-trigger:focus-visible {
  background-color: var(--grayscale-3); outline: none;
}

.fern-accordion-trigger-title {
  font-size: 0.9375rem;
  font-weight: 500;
}

.fern-accordion-content {
  padding: 1rem;
  background-color: var(--background);
}

/* Native <details>/<summary> — same Hugo treatment */
.prose details,
.fern-prose details,
.fern-layout-guide details,
.fern-layout-overview details,
.fern-layout-reference details {
  padding: 1rem;
  border: 1px solid var(--grayscale-4);
  border-radius: var(--radius-3\/2);
  background-color: var(--background);
}

.prose details > summary,
.fern-prose details > summary,
.fern-layout-guide details > summary,
.fern-layout-overview details > summary,
.fern-layout-reference details > summary {
  line-height: 1;
  padding: 1rem;
  margin: -1rem;
  cursor: pointer;
  background-color: #f8f9fa;
}

.dark .prose details > summary,
.dark .fern-prose details > summary,
.dark .fern-layout-guide details > summary,
.dark .fern-layout-overview details > summary,
.dark .fern-layout-reference details > summary {
  background-color: var(--grayscale-2);
}

.prose details[open] > summary,
.fern-prose details[open] > summary,
.fern-layout-guide details[open] > summary,
.fern-layout-overview details[open] > summary,
.fern-layout-reference details[open] > summary {
  margin-bottom: 0;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 20 — INPUTS & FORMS (API playground)
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-input {
  font-size: 0.8125rem;
}

.fern-input-group {
  border-color: var(--border-default);
  border-radius: var(--radius-2);
  background-color: var(--card-background);
}

.dark .fern-input-group {
  background-color: var(--grayscale-a2);
}

.fern-input-group:focus-within {
  border-color: var(--accent-a5);
  box-shadow: 0 0 0 2px var(--accent-a3);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 21 — PAGE ACTIONS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-page-actions {
  border: 0 !important;
}

.fern-page-actions > *:not(:last-child) {
  border-right-color: var(--border-default);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 22 — SELECTION ITEMS (product/version selectors)
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-selection-item {
  border-radius: var(--radius-2);
}

.fern-selection-item:hover {
  color: var(--accent-a11);
  background-color: var(--grayscale-a3);
}
.fern-selection-item:focus-visible {
  color: var(--accent-a11);
  background-color: var(--grayscale-a3); outline: none;
}

.fern-selection-item-title {
  color: var(--grayscale-12);
  font-weight: 600;
  font-size: 0.8125rem;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 23 — INDENT COMPONENT
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-indent::before {
  border-left: 1px solid var(--border-default);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 24 — ANCHORS
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-anchor-icon:not(.copied) {
  color: var(--grayscale-a11);
  background-color: var(--card-background);
  border: 1px solid var(--card-border);
}

.fern-anchor-icon.copied {
  background-color: var(--accent-a3);
  border-color: var(--accent-a5);
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 25 — CHANGELOG
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-changelog-date {
  color: var(--grayscale-9);
  font-size: 0.875rem;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 26 — LISTS (StereoLabs lime dot bullet — page content only)
   ═══════════════════════════════════════════════════════════════════════════════ */

.fern-layout-guide ul,
.fern-layout-overview ul,
.fern-layout-reference ul,
.fern-layout-changelog ul {
  list-style: none !important;
  padding-left: 4.5em;
}

.fern-layout-guide ul > li,
.fern-layout-overview ul > li,
.fern-layout-reference ul > li,
.fern-layout-changelog ul > li {
  position: relative;
  padding-left: 0;
  list-style: none !important;
  list-style-type: none !important;
  list-style-image: none !important;
}

.fern-layout-guide ul > li::marker,
.fern-layout-overview ul > li::marker,
.fern-layout-reference ul > li::marker,
.fern-layout-changelog ul > li::marker {
  content: "" !important;
  font-size: 0 !important;
  display: none !important;
}

.fern-layout-guide ul > li::before,
.fern-layout-overview ul > li::before,
.fern-layout-reference ul > li::before,
.fern-layout-changelog ul > li::before {
  content: "" !important;
  display: inline-block !important;
  position: absolute;
  left: -1.3em;
  top: 0.45em;
  width: 12px;
  height: 12px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='%23D9FF42' stroke='%23000000' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><circle cx='6' cy='6' r='4'/></svg>");
  background-size: 12px 12px;
  background-repeat: no-repeat;
}

.dark .fern-layout-guide ul > li::before,
.dark .fern-layout-overview ul > li::before,
.dark .fern-layout-reference ul > li::before,
.dark .fern-layout-changelog ul > li::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='%23D9FF42' stroke='%23e9ecef' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'><circle cx='6' cy='6' r='4'/></svg>");
}


/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 27 — GLOBAL UTILITIES
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Smooth transitions */
a, button {
  transition: color 0.15s ease, background-color 0.15s ease,
    border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Selection highlight */
::selection {
  background-color: var(--accent-a5);
  color: var(--grayscale-12);
}

/* Focus ring — accessible, accent-colored */
:focus-visible {
  outline: 0px solid var(--accent-a9) !important;
  outline-offset: 2px;
}

/* Highlighted text */
.fern-highlight {
  color: var(--accent-12);
  background-color: transparent;
  font-weight: 700;
}

/* Tooltip trigger */
.fern-mdx-tooltip-trigger {
  --tooltip-underline-color: var(--grayscale-9);
  --tooltip-underline-hover-color: var(--grayscale-12);
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION 28 — IMAGES & VIDEOS
   ═══════════════════════════════════════════════════════════════════════════════ */

img, video {
    max-width: 90% !important;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}