/*fern-site-stylesheet*/@font-face {
    font-family: 'Fellix';
    src: url('/_fern-files/hume.docs.buildwithfern.com/464f5d4b418f11343b105e0ccfe08adbeac9f64ccd67c7aa5ff792cb93f977bc/docs/fonts/Fellix-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fellix';
    src: url('/_fern-files/hume.docs.buildwithfern.com/0bc8ae19736c5aba794bf3c111f2ac5d3f99cf1d8bea9f44c7444b2d2b540293/docs/fonts/Fellix-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fellix';
    src: url('/_fern-files/hume.docs.buildwithfern.com/fea3eab70d2b4fbfa2d68b4c86ce11845810d80874e62f25b558b8673afd1032/docs/fonts/Fellix-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fellix';
    src: url('/_fern-files/hume.docs.buildwithfern.com/0bc8ae19736c5aba794bf3c111f2ac5d3f99cf1d8bea9f44c7444b2d2b540293/docs/fonts/Fellix-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fraktion';
    src: url('/_fern-files/hume.docs.buildwithfern.com/4fb4c37d2deb1baa5296bf03640d54f938d85096bf5817c6d580f0861c6216da/docs/fonts/FraktionMono-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Fraktion';
    src: url('/_fern-files/hume.docs.buildwithfern.com/bcc616b4e329e5ac8ff32467f987dc0b4207fcacdb4111053d849002ebd6ef23/docs/fonts/FraktionMono-Bold.woff2') format('woff2');
    font-weight: 500 600;
    font-style: normal;
    font-display: swap;
}

:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 704px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 20px;
  --font-body: 'Fellix', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'Fellix', 'Fellix', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: 'Fraktion', 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: #fdfdfd;
  --accent-2: #f9f9f9;
  --accent-3: #f0f0f0;
  --accent-4: #e7e7e7;
  --accent-5: #ddd;
  --accent-6: #d1d1d1;
  --accent-7: #c2c2c2;
  --accent-8: #ababab;
  --accent-9: #353535;
  --accent-10: #474747;
  --accent-11: #676767;
  --accent-12: #353535;

  --accent-a1: #00000002;
  --accent-a2: #00000006;
  --accent-a3: #0000000f;
  --accent-a4: #00000018;
  --accent-a5: #00000022;
  --accent-a6: #0000002e;
  --accent-a7: #0000003d;
  --accent-a8: #00000054;
  --accent-a9: #000000ca;
  --accent-a10: #000000b8;
  --accent-a11: #00000098;
  --accent-a12: #000000ca;

  --accent-contrast: #fff;
  --accent-surface: #f8f8f8cc;
  --accent-indicator: #353535;
  --accent-track: #353535;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0 none);
      --accent-2: oklch(98.3% 0 none);
      --accent-3: oklch(95.5% 0 none);
      --accent-4: oklch(92.8% 0 none);
      --accent-5: oklch(89.8% 0 none);
      --accent-6: oklch(86.2% 0 none);
      --accent-7: oklch(81.3% 0 none);
      --accent-8: oklch(74.2% 0 none);
      --accent-9: oklch(32.9% 0 none);
      --accent-10: oklch(39.9% 0 none);
      --accent-11: oklch(51.5% 0 none);
      --accent-12: oklch(33% 0 none);

      --accent-a1: color(display-p3 0 0 0 / 0.0078);
      --accent-a2: color(display-p3 0 0 0 / 0.0235);
      --accent-a3: color(display-p3 0 0 0 / 0.0588);
      --accent-a4: color(display-p3 0 0 0 / 0.0941);
      --accent-a5: color(display-p3 0 0 0 / 0.1333);
      --accent-a6: color(display-p3 0 0 0 / 0.1804);
      --accent-a7: color(display-p3 0 0 0 / 0.2392);
      --accent-a8: color(display-p3 0 0 0 / 0.3294);
      --accent-a9: color(display-p3 0 0 0 / 0.7922);
      --accent-a10: color(display-p3 0 0 0 / 0.7216);
      --accent-a11: color(display-p3 0 0 0 / 0.5961);
      --accent-a12: color(display-p3 0 0 0 / 0.7922);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9725 0.9725 0.9725 / 0.8);
      --accent-indicator: oklch(32.9% 0 none);
      --accent-track: oklch(32.9% 0 none);
    }
  }
}


.light, :root {
  --grayscale-1: #fcfcfc;
  --grayscale-2: #f9f9f9;
  --grayscale-3: #f0f0f0;
  --grayscale-4: #e8e8e8;
  --grayscale-5: #e0e0e0;
  --grayscale-6: #d9d9d9;
  --grayscale-7: #cecece;
  --grayscale-8: #bbbbbb;
  --grayscale-9: #8d8d8d;
  --grayscale-10: #838383;
  --grayscale-11: #646464;
  --grayscale-12: #202020;

  --grayscale-a1: #00000003;
  --grayscale-a2: #00000006;
  --grayscale-a3: #0000000f;
  --grayscale-a4: #00000017;
  --grayscale-a5: #0000001f;
  --grayscale-a6: #00000026;
  --grayscale-a7: #00000031;
  --grayscale-a8: #00000044;
  --grayscale-a9: #00000072;
  --grayscale-a10: #0000007c;
  --grayscale-a11: #0000009b;
  --grayscale-a12: #000000df;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.988 0.988 0.988);
      --grayscale-2: color(display-p3 0.975 0.975 0.975);
      --grayscale-3: color(display-p3 0.939 0.939 0.939);
      --grayscale-4: color(display-p3 0.908 0.908 0.908);
      --grayscale-5: color(display-p3 0.88 0.88 0.88);
      --grayscale-6: color(display-p3 0.849 0.849 0.849);
      --grayscale-7: color(display-p3 0.807 0.807 0.807);
      --grayscale-8: color(display-p3 0.732 0.732 0.732);
      --grayscale-9: color(display-p3 0.553 0.553 0.553);
      --grayscale-10: color(display-p3 0.512 0.512 0.512);
      --grayscale-11: color(display-p3 0.392 0.392 0.392);
      --grayscale-12: color(display-p3 0.125 0.125 0.125);

      --grayscale-a1: #00000003;
      --grayscale-a2: #00000006;
      --grayscale-a3: #0000000f;
      --grayscale-a4: #00000017;
      --grayscale-a5: #0000001f;
      --grayscale-a6: #00000026;
      --grayscale-a7: #00000031;
      --grayscale-a8: #00000044;
      --grayscale-a9: #00000072;
      --grayscale-a10: #0000007c;
      --grayscale-a11: #0000009b;
      --grayscale-a12: #000000df;

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


.dark {
  --accent-1: #171717;
  --accent-2: #1e1e1e;
  --accent-3: #262626;
  --accent-4: #2c2c2c;
  --accent-5: #333;
  --accent-6: #3b3b3b;
  --accent-7: #494949;
  --accent-8: #606060;
  --accent-9: #fff;
  --accent-10: #f6f6f6;
  --accent-11: #b4b4b4;
  --accent-12: #eee;

  --accent-a1: #00000000;
  --accent-a2: #ffffff08;
  --accent-a3: #ffffff10;
  --accent-a4: #ffffff17;
  --accent-a5: #ffffff1f;
  --accent-a6: #ffffff28;
  --accent-a7: #ffffff37;
  --accent-a8: #ffffff50;
  --accent-a9: #ffffff;
  --accent-a10: #fffffff5;
  --accent-a11: #ffffffad;
  --accent-a12: #ffffffec;

  --accent-contrast: #311921;
  --accent-surface: #25252580;
  --accent-indicator: #fff;
  --accent-track: #fff;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(20.5% 0 none);
      --accent-2: oklch(23.5% 0 none);
      --accent-3: oklch(27% 0 none);
      --accent-4: oklch(29.4% 0 none);
      --accent-5: oklch(32% 0 none);
      --accent-6: oklch(35.3% 0 none);
      --accent-7: oklch(40.4% 0 none);
      --accent-8: oklch(48.8% 0 none);
      --accent-9: oklch(100% 0 none);
      --accent-10: oklch(97.3% 0 none);
      --accent-11: oklch(77% 0 none);
      --accent-12: oklch(94.9% 0 none);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 1 1 1 / 0.0302);
      --accent-a3: color(display-p3 1 1 1 / 0.0647);
      --accent-a4: color(display-p3 1 1 1 / 0.0905);
      --accent-a5: color(display-p3 1 1 1 / 0.1207);
      --accent-a6: color(display-p3 1 1 1 / 0.1552);
      --accent-a7: color(display-p3 1 1 1 / 0.2155);
      --accent-a8: color(display-p3 1 1 1 / 0.3147);
      --accent-a9: color(display-p3 1 1 1);
      --accent-a10: color(display-p3 1 1 1 / 0.9612);
      --accent-a11: color(display-p3 1 1 1 / 0.6767);
      --accent-a12: color(display-p3 1 1 1 / 0.9267);

      --accent-contrast: #311921;
      --accent-surface: color(display-p3 0.1412 0.1412 0.1412 / 0.5);
      --accent-indicator: oklch(100% 0 none);
      --accent-track: oklch(100% 0 none);
    }
  }
}


.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(53, 53, 53, 1);
  --background: rgba(255, 255, 255, 1);
  --border: rgba(229, 229, 229, 1);
  --sidebar-background: rgba(255, 255, 255, 1);
  --header-background: rgba(255, 255, 255, 1);
  --card-background: rgba(255, 255, 255, 1);
  --theme-color: #fff;
}

.dark {
  color-scheme: dark;
  --accent: rgba(255, 255, 255, 1);
  --background: rgba(23, 23, 23, 1);
  --border: rgba(68, 68, 68, 1);
  --sidebar-background: rgba(23, 23, 23, 1);
  --header-background: rgba(23, 23, 23, 1);
  --card-background: rgba(23, 23, 23, 1);
  --theme-color: #171717;
}

/**
* ---------------------------------
* Global Section
* ---------------------------------
*/
html.light body {
  --body-text: 53, 53, 53; // #353535
}

/**
* ---------------------------------
* Anchor Section
* ---------------------------------
*/
a.fern-mdx-link {
  text-decoration-color: currentColor !important;
}

/**
* ---------------------------------
* Sidebar Section
* ---------------------------------
*/
nav.fern-sidebar-container div.px-4 div.fern-sidebar-header {
  /* this height prop could be configured in `docs.yml` but changing it here since we are also updating margins */
  height: 80px;
  margin-left: 4px;
  margin-right: 8px;
}

div.fern-logo-container img {
  height: 20px !important;
  width: auto !important;
}

ul.fern-sidebar-tabs {
  margin-bottom: 0px !important;
}

ul.fern-sidebar-tabs + ul.fern-sidebar-group > li:first-child {
  margin-top: 1.25rem !important;
}

/**
* ---------------------------------
* Card Section
* ---------------------------------
*/
.fern-card span.card-icon {
  opacity: 0.7;
}

/**
* ---------------------------------
* Accordion Section
* ---------------------------------
*/
.fern-accordion-trigger .fern-accordion-trigger-title {
  font-weight: 500;
}

/**
* ---------------------------------
* Callout Section
* ---------------------------------
*/

/* all callouts use a "light mode" appearance. */
html.light div.fern-callout *,
html.light div.fern-callout-info *,
html.light div.fern-callout-warning *,
html.light div.fern-callout-tip *,
html.dark div.fern-callout *,
html.dark div.fern-callout-info *,
html.dark div.fern-callout-warning *,
html.dark div.fern-callout-tip * {
  color: #1a1a1a !important;
}

/* change appearance of code blocks inside of all callouts */
html.light div.fern-callout code,
html.light div.fern-callout-info code,
html.light div.fern-callout-warning code,
html.light div.fern-callout-tip code,
html.dark div.fern-callout code,
html.dark div.fern-callout-info code,
html.dark div.fern-callout-warning code,
html.dark div.fern-callout-tip code {
  background-color: rgba(255, 255, 255, 0) !important;
  box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.3) !important;
}

/* remove border and set border radius for all callouts */
html.light div.fern-callout,
html.light div.fern-callout-info,
html.light div.fern-callout-warning,
html.light div.fern-callout-tip,
html.dark div.fern-callout,
html.dark div.fern-callout-info,
html.dark div.fern-callout-warning,
html.dark div.fern-callout-tip {
  border-width: 0px !important;
  box-shadow: none !important;
  border-radius: 12px !important;
}

/* change outlined background */
html.light div.fern-callout {
  background: rgba(187, 171, 237, 0.5) !important;
}
html.dark div.fern-callout {
  background: rgba(187, 171, 237, 0.95) !important;
}

/* change warning background */
html.light div.fern-callout-warning,
html.dark div.fern-callout-warning {
  background: rgba(255, 209, 164, 0.95) !important;
}

/* change info background */
html.light div.fern-callout-info,
html.dark div.fern-callout-info {
  background: rgba(160, 176, 246, 0.95) !important;
}

/* change tip background */
html.light div.fern-callout-tip {
  background: rgba(200, 210, 198, 0.95) !important;
}
html.dark div.fern-callout-tip {
  background: rgba(200, 210, 198, 0.95) !important;
}

/* updated styles for new frontend */

html.light
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\)
  *,
html.light
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\)
  *,
html.light
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\)
  *,
html.light
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\)
  *,
html.dark
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\)
  *,
html.dark
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\)
  *,
html.dark
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\)
  *,
html.dark
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\)
  * {
  color: #1a1a1a !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\)
  code,
html.light
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\)
  code,
html.light
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\)
  code,
html.light
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\)
  code,
html.dark
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\)
  code,
html.dark
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\)
  code,
html.dark
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\)
  code,
html.dark
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\)
  code {
  background-color: rgba(255, 255, 255, 0) !important;
  box-shadow: inset 0px 0px 0px 1px rgba(0, 0, 0, 0.3) !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\),
html.light
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\),
html.light
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\),
html.light
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\) {
  border-width: 0px !important;
  box-shadow: none !important;
  border-radius: 12px !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\) {
  background: rgba(187, 171, 237, 0.5) !important;
}

html.dark
  body#fern-docs
  div.bg-\(color\:--grayscale-a2\).border-\(color\:--grayscale-a6\).text-\(color\:--grayscale-a11\) {
  background: rgba(187, 171, 237, 0.95) !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--amber-a2\).border-\(color\:--amber-a6\).text-\(color\:--amber-a11\) {
  background: rgba(255, 209, 164, 0.95) !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--blue-a2\).border-\(color\:--blue-a6\).text-\(color\:--blue-a11\) {
  background: rgba(160, 176, 246, 0.95) !important;
}

html.light
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\),
html.dark
  body#fern-docs
  div.bg-\(color\:--green-a2\).border-\(color\:--green-a6\).text-\(color\:--green-a11\) {
  background: rgba(200, 210, 198, 0.95) !important;
}

/**
* ---------------------------------
* Message Flow Section
* ---------------------------------
*/

/* The lane's dashed side borders are the two lifelines, so every row continues them. */
.message-flow {
  --message-flow-time-width: 8.25rem;
  --message-flow-lifeline: var(--grayscale-a6);
  --message-flow-arrow: var(--grayscale-a11);
  --message-flow-arrow-offset: 0.75rem;
  padding-inline: 2.5rem;
  font-size: 0.9375rem;
}

.message-flow.timed {
  padding-left: 0;
}

.message-flow-head,
.message-flow-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.message-flow.timed .message-flow-head,
.message-flow.timed .message-flow-row {
  grid-template-columns: var(--message-flow-time-width) minmax(0, 1fr);
}

.message-flow-head {
  align-items: end;
  padding-bottom: 0.5rem;
}

.message-flow-head .message-flow-lane {
  display: flex;
  justify-content: space-between;
}

.message-flow-actor {
  border: 1px solid var(--message-flow-lifeline);
  border-radius: 0.5rem;
  background: var(--grayscale-a2);
  padding: 0.25rem 0.75rem;
  font-weight: 500;
  color: var(--grayscale-12);
}

.message-flow-actor:first-child {
  transform: translateX(-50%);
}

.message-flow-actor:last-child {
  transform: translateX(50%);
}

.message-flow-row .message-flow-lane {
  position: relative;
  border-inline: 1px dashed var(--message-flow-lifeline);
  padding: 0.625rem 1rem calc(var(--message-flow-arrow-offset) + 0.5rem);
  text-align: center;
}

.message-flow-row .message-flow-lane::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: var(--message-flow-arrow-offset);
  border-top: 1px solid var(--message-flow-arrow);
}

.message-flow-row .message-flow-lane::after {
  content: "";
  position: absolute;
  bottom: calc(var(--message-flow-arrow-offset) - 4px);
  border-block: 4.5px solid transparent;
}

.message-flow-row.send .message-flow-lane::after {
  right: 0;
  border-left: 8px solid var(--message-flow-arrow);
}

.message-flow-row.receive .message-flow-lane::after {
  left: 0;
  border-right: 8px solid var(--message-flow-arrow);
}

.message-flow-message {
  display: block;
  line-height: 1.45;
  color: var(--grayscale-a11);
}

.message-flow .message-flow-message code {
  border: 0;
  box-shadow: none;
  background: none;
  padding: 0;
  font-family: var(--font-code);
  font-size: 0.875rem;
  color: var(--grayscale-12);
}

.message-flow-time {
  align-self: end;
  padding-right: 1rem;
  padding-bottom: calc(var(--message-flow-arrow-offset) - 0.5rem);
  text-align: right;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  color: var(--grayscale-a10);
}

.message-flow-head .message-flow-time {
  padding-bottom: 0.375rem;
  padding-right: 3rem;
}

.message-flow-direction {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (max-width: 40rem) {

  .message-flow {
    --message-flow-time-width: 5.5rem;
    padding-inline: 2rem;
  }

  .message-flow-actor {
    padding: 0.25rem 0.625rem;
    font-size: var(--text-sm);
  }

  .message-flow-head .message-flow-time {
    padding-right: 2.5rem;
    font-size: var(--text-xs);
  }

}

/**
* ---------------------------------
* Scroll Walkthrough Section
* ---------------------------------
*/

/* The notes carry the page's explanations, so they use the body text color rather than Fern's secondary gray. */
.fern-scroll-walkthrough-step-body,
.fern-scroll-walkthrough-substep-body {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: inherit;
}

/* Pages that hold a walkthrough use the overview layout, whose column is wide enough for the notes and code panel side by side. Prose at that width runs past 100 characters a line, so everything else is capped at a narrower width, aligned to the walkthrough's left edge. The published build wraps the page content in an astro-island element that the local preview omits, so each rule names both structures. */
.fern-layout-overview .fern-prose > div > *,
.fern-layout-overview .fern-prose > astro-island > div > * {
  max-width: 52rem;
}

/* Below 64rem the code panel is hidden and the walkthrough is a single column, so it takes the same cap. */
@media (min-width: 64rem) {

  .fern-layout-overview .fern-prose > div > :is(.fern-scroll-walkthrough, :has(.fern-scroll-walkthrough)),
  .fern-layout-overview .fern-prose > astro-island > div > :is(.fern-scroll-walkthrough, :has(.fern-scroll-walkthrough)) {
    max-width: none;
  }

}
