/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 640px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 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: #f7f7f8;
  --accent-2: #f0f3f9;
  --accent-3: #e5ecf7;
  --accent-4: #d5e4fa;
  --accent-5: #c4d9fa;
  --accent-6: #aeccfa;
  --accent-7: #96baf0;
  --accent-8: #73a1e6;
  --accent-9: #0051b6;
  --accent-10: #0040a4;
  --accent-11: #0d59bf;
  --accent-12: #12305c;

  --accent-a1: #c6623005;
  --accent-a2: #1634a709;
  --accent-a3: #0648bd14;
  --accent-a4: #015fee24;
  --accent-a5: #035ff336;
  --accent-a6: #0361f64d;
  --accent-a7: #0159de65;
  --accent-a8: #0054d389;
  --accent-a9: #0051b6;
  --accent-a10: #0040a4;
  --accent-a11: #0050bcf2;
  --accent-a12: #002050ed;

  --accent-contrast: #fff;
  --accent-surface: #eef1f9cc;
  --accent-indicator: #0051b6;
  --accent-track: #0051b6;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(97.7% 0.0015 258.5);
      --accent-2: oklch(96.4% 0.0081 258.5);
      --accent-3: oklch(94.1% 0.0173 258.5);
      --accent-4: oklch(91.4% 0.034 258.5);
      --accent-5: oklch(88.1% 0.0515 258.5);
      --accent-6: oklch(83.9% 0.0719 258.5);
      --accent-7: oklch(78.2% 0.0875 258.5);
      --accent-8: oklch(70.5% 0.1141 258.5);
      --accent-9: oklch(45.9% 0.174 258.5);
      --accent-10: oklch(40.5% 0.174 258.5);
      --accent-11: oklch(48.5% 0.174 258.5);
      --accent-12: oklch(31.3% 0.0862 258.5);

      --accent-a1: color(display-p3 0.7294 0.2471 0.0118 / 0.016);
      --accent-a2: color(display-p3 0.0275 0.0353 0.451 / 0.029);
      --accent-a3: color(display-p3 0.0078 0.2314 0.6667 / 0.073);
      --accent-a4: color(display-p3 0.0078 0.3137 0.8706 / 0.13);
      --accent-a5: color(display-p3 0.0039 0.2902 0.8902 / 0.194);
      --accent-a6: color(display-p3 0.0039 0.3137 0.902 / 0.275);
      --accent-a7: color(display-p3 0.0039 0.2863 0.8039 / 0.367);
      --accent-a8: color(display-p3 0.0039 0.2706 0.7765 / 0.496);
      --accent-a9: color(display-p3 0 0.2157 0.6431 / 0.871);
      --accent-a10: color(display-p3 0 0.1686 0.5804 / 0.904);
      --accent-a11: color(display-p3 0 0.2235 0.6706 / 0.839);
      --accent-a12: color(display-p3 0 0.0902 0.2745 / 0.896);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9333 0.9451 0.9725 / 0.8);
      --accent-indicator: oklch(45.9% 0.174 258.5);
      --accent-track: oklch(45.9% 0.174 258.5);
    }
  }
}


.light, :root {
  --grayscale-1: #fcfcfd;
  --grayscale-2: #f9f9fb;
  --grayscale-3: #f0f0f3;
  --grayscale-4: #e8e8ec;
  --grayscale-5: #e0e1e6;
  --grayscale-6: #d9d9e0;
  --grayscale-7: #cdced6;
  --grayscale-8: #b9bbc6;
  --grayscale-9: #8b8d98;
  --grayscale-10: #80838d;
  --grayscale-11: #60646c;
  --grayscale-12: #1c2024;

  --grayscale-a1: #00005503;
  --grayscale-a2: #00005506;
  --grayscale-a3: #0000330f;
  --grayscale-a4: #00002d17;
  --grayscale-a5: #0009321f;
  --grayscale-a6: #00002f26;
  --grayscale-a7: #00062e32;
  --grayscale-a8: #00083046;
  --grayscale-a9: #00051d74;
  --grayscale-a10: #00071b7f;
  --grayscale-a11: #0007149f;
  --grayscale-a12: #000509e3;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.988 0.988 0.992);
      --grayscale-2: color(display-p3 0.976 0.976 0.984);
      --grayscale-3: color(display-p3 0.94 0.941 0.953);
      --grayscale-4: color(display-p3 0.908 0.909 0.925);
      --grayscale-5: color(display-p3 0.88 0.881 0.901);
      --grayscale-6: color(display-p3 0.85 0.852 0.876);
      --grayscale-7: color(display-p3 0.805 0.808 0.838);
      --grayscale-8: color(display-p3 0.727 0.733 0.773);
      --grayscale-9: color(display-p3 0.547 0.553 0.592);
      --grayscale-10: color(display-p3 0.503 0.512 0.549);
      --grayscale-11: color(display-p3 0.379 0.392 0.421);
      --grayscale-12: color(display-p3 0.113 0.125 0.14);

      --grayscale-a1: #00005503;
      --grayscale-a2: #00005506;
      --grayscale-a3: #0000330f;
      --grayscale-a4: #00002d17;
      --grayscale-a5: #0009321f;
      --grayscale-a6: #00002f26;
      --grayscale-a7: #00062e32;
      --grayscale-a8: #00083046;
      --grayscale-a9: #00051d74;
      --grayscale-a10: #00071b7f;
      --grayscale-a11: #0007149f;
      --grayscale-a12: #000509e3;

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


.dark {
  --accent-1: #030710;
  --accent-2: #0e1823;
  --accent-3: #11273e;
  --accent-4: #153455;
  --accent-5: #1d4168;
  --accent-6: #28507b;
  --accent-7: #346193;
  --accent-8: #3f75b1;
  --accent-9: #91c3fc;
  --accent-10: #87b8f1;
  --accent-11: #8cbef7;
  --accent-12: #d1eaff;

  --accent-a1: #82860002;
  --accent-a2: #a4f8b913;
  --accent-a3: #5bcaff2b;
  --accent-a4: #49b1fd45;
  --accent-a5: #4faefd5a;
  --accent-a6: #5bb2ff6e;
  --accent-a7: #5faffe89;
  --accent-a8: #5dadfeaa;
  --accent-a9: #93c5fffc;
  --accent-a10: #8fc4fff0;
  --accent-a11: #91c4fef7;
  --accent-a12: #d1eaff;

  --accent-contrast: #132334;
  --accent-surface: #1a2a2f80;
  --accent-indicator: #91c3fc;
  --accent-track: #91c3fc;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(12.9% 0.0226 252.3);
      --accent-2: oklch(20.5% 0.027 252.3);
      --accent-3: oklch(26.7% 0.0523 252.3);
      --accent-4: oklch(31.8% 0.0698 252.3);
      --accent-5: oklch(37% 0.0784 252.3);
      --accent-6: oklch(42.4% 0.0853 252.3);
      --accent-7: oklch(48.5% 0.0947 252.3);
      --accent-8: oklch(55.4% 0.1098 252.3);
      --accent-9: oklch(80.3% 0.097 252.3);
      --accent-10: oklch(77% 0.097 252.3);
      --accent-11: oklch(78.8% 0.097 252.3);
      --accent-12: oklch(92.9% 0.048 252.3);

      --accent-a1: color(display-p3 0.8 0.8118 0 / 0.005);
      --accent-a2: color(display-p3 0.7137 0.9922 0.7333 / 0.073);
      --accent-a3: color(display-p3 0.4627 0.7922 0.9961 / 0.164);
      --accent-a4: color(display-p3 0.4078 0.7098 1 / 0.258);
      --accent-a5: color(display-p3 0.4157 0.6941 0.9961 / 0.34);
      --accent-a6: color(display-p3 0.451 0.7059 1 / 0.421);
      --accent-a7: color(display-p3 0.4667 0.702 0.9961 / 0.52);
      --accent-a8: color(display-p3 0.4588 0.6941 1 / 0.644);
      --accent-a9: color(display-p3 0.6275 0.7882 1 / 0.966);
      --accent-a10: color(display-p3 0.6196 0.7804 1 / 0.919);
      --accent-a11: color(display-p3 0.6235 0.7843 1 / 0.945);
      --accent-a12: color(display-p3 0.8471 0.9216 1 / 0.992);

      --accent-contrast: #132334;
      --accent-surface: color(display-p3 0.1098 0.1647 0.1804 / 0.5);
      --accent-indicator: oklch(80.3% 0.097 252.3);
      --accent-track: oklch(80.3% 0.097 252.3);
    }
  }
}


.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(0, 81, 182, 1);
  --background: rgba(248, 250, 252, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #f8fafc;
}

.dark {
  color-scheme: dark;
  --accent: rgba(145, 195, 252, 1);
  --background: rgba(2, 6, 23, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #020617;
}

:root {
  --header-border-color: #e5e7eb;
}

.dark {
  --header-border-color: #12152b;
}

.dark .fern-button.filled.primary {
  background-color: #006ce0;
  color: #ffffff;
}

.dark .fern-button.filled.primary:hover {
  background-color: #0051b6;
}
.dark .fern-button.filled.primary:focus-visible {
  background-color: #0051b6; outline: none;
}

/* Header bottom border */
.fern-header-content {
  border-bottom: 1px solid var(--header-border-color);
}

/* Full-width grid background - applied to html to escape stacking contexts */
html:has(.fern-layout-overview)::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  z-index: 0;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 80%);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 80%);
}

html.dark:has(.fern-layout-overview)::before {
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
}

/* Button styles using the Astropods primary accent color */
.button-group {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: 24px 0;
}

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 36px;
  padding: 12px 16px;
  border: none;
  border-radius: 6px;
  background-color: #0051b6;
  box-shadow: 0px 0px 1px 0px rgba(0,0,0,0.05), 0px 0px 0px 1px rgba(0,0,0,0.02);
  color: #ffffff;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.button:hover {
  background-color: #004192;
  text-decoration: none;
}
.button:focus-visible {
  background-color: #004192;
  text-decoration: none; outline: none;
}

.button.alt {
  background-color: #ffffff;
  border: 1px solid #e5e7eb;
  color: #3f3f46;
}

.dark .button.alt {
  background-color: #27272a;
  border-color: #3f3f46;
  color: #d4d4d8;
}

.button.alt:hover {
  background-color: #f9fafb;
}
.button.alt:focus-visible {
  background-color: #f9fafb; outline: none;
}

.dark .button.alt:hover {
  background-color: #3f3f46;
}
.dark .button.alt:focus-visible {
  background-color: #3f3f46; outline: none;
}

.button svg {
  display: none;
}

/* Remote Sandbox diagrams */
.sbx-diagram {
  --sbx-box-fill: #ffffff;
  --sbx-box-stroke: #cbd5e1;
  --sbx-accent: #0051b6;
  --sbx-accent-fill: #eff6ff;
  --sbx-band-fill: #f1f5f9;
  --sbx-line: #64748b;
  --sbx-title: #0f172a;
  --sbx-text: #475569;
  --sbx-muted: #94a3b8;
  display: block;
  width: 100%;
  height: auto;
  margin: 28px 0;
  font-family: inherit;
}

.dark .sbx-diagram {
  --sbx-box-fill: #0f172a;
  --sbx-box-stroke: #334155;
  --sbx-accent: #91c3fc;
  --sbx-accent-fill: #0b1f3a;
  --sbx-band-fill: #0b1224;
  --sbx-line: #94a3b8;
  --sbx-title: #f1f5f9;
  --sbx-text: #94a3b8;
  --sbx-muted: #64748b;
}

.sbx-diagram text { font-family: inherit; }
.sbx-box { fill: var(--sbx-box-fill); stroke: var(--sbx-box-stroke); stroke-width: 1.5; }
.sbx-box-accent { fill: var(--sbx-accent-fill); stroke: var(--sbx-accent); stroke-width: 2; }
.sbx-box-muted { fill: none; stroke: var(--sbx-muted); stroke-width: 1.5; stroke-dasharray: 6 5; }
.sbx-region { fill: none; stroke: var(--sbx-muted); stroke-width: 1.5; stroke-dasharray: 7 6; }
.sbx-region-accent { fill: var(--sbx-accent-fill); stroke: var(--sbx-accent); stroke-width: 2; }
.sbx-band { fill: var(--sbx-band-fill); }
.sbx-band-accent { fill: var(--sbx-accent-fill); }
.sbx-line { fill: none; stroke: var(--sbx-line); stroke-width: 1.75; }
.sbx-line-thin { fill: none; stroke: var(--sbx-box-stroke); stroke-width: 1.5; }
.sbx-line-accent { fill: none; stroke: var(--sbx-accent); stroke-width: 2.5; }
.sbx-lifeline { stroke: var(--sbx-box-stroke); stroke-width: 1.5; stroke-dasharray: 4 5; }
.sbx-dashed { stroke-dasharray: 6 5; }
.sbx-head { fill: var(--sbx-line); }
.sbx-head-accent { fill: var(--sbx-accent); }
.sbx-dot { fill: var(--sbx-line); }
.sbx-step { fill: var(--sbx-line); }
.sbx-step-accent { fill: var(--sbx-accent); }
.sbx-step-text { fill: var(--sbx-box-fill); font-size: 14px; font-weight: 700; }
.sbx-title { fill: var(--sbx-title); font-size: 17px; font-weight: 600; }
.sbx-title-mono { fill: var(--sbx-title); font-size: 16px; font-weight: 600; font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important; }
.sbx-title-muted { fill: var(--sbx-muted); font-size: 17px; font-weight: 600; }
.sbx-text { fill: var(--sbx-text); font-size: 14px; }
.sbx-text-strong { fill: var(--sbx-title); font-size: 14px; font-weight: 600; }
.sbx-label { fill: var(--sbx-text); font-size: 15px; }
.sbx-label-mono { fill: var(--sbx-text); font-size: 15px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important; }
.sbx-region-label { fill: var(--sbx-text); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.sbx-region-label-accent { fill: var(--sbx-accent); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.sbx-band-label { fill: var(--sbx-muted); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }
.sbx-band-label-accent { fill: var(--sbx-accent); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }

/* Astro Fern Footer - matches astropods.com footer styling */
.astro-footer {
  border-top: 1px solid hsl(233 40% 18%);
  padding: 24px 32px;
  font-family: Inter, system-ui, -apple-system, sans-serif;
  font-size: 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.astro-footer a,
.astro-footer button {
  color: hsl(225 15% 65%) !important;
  text-decoration: none !important;
  transition: color 0.15s;
  background: none !important;
  border: none !important;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px !important;
}

.astro-footer a:hover,
.astro-footer button:hover {
  color: hsl(220 20% 92%) !important;
}
.astro-footer a:focus-visible,
.astro-footer button:focus-visible {
  color: hsl(220 20% 92%) !important; outline: none;
}

.astro-footer-copyright {
  color: hsl(225 15% 65%);
  font-size: 12px;
  margin: 0;
}

/* DNSS visibility controlled by dnss-regime.js based on user regime */

@media (max-width: 640px) {

  .astro-footer {
    flex-direction: column;
    gap: 12px;
  }

}
