/*fern-site-stylesheet*/@font-face {
    font-family: 'Inter';
    src: url('/_fern-files/harmonic-mediakind.docs.buildwithfern.com/3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62/assets/fonts/Inter-Variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Inter';
    src: url('/_fern-files/harmonic-mediakind.docs.buildwithfern.com/3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62/assets/fonts/Inter-Variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'JetBrains Mono';
    src: url('/_fern-files/harmonic-mediakind.docs.buildwithfern.com/18be452724bfdc236c074ca94a249a7f41a86752c7d04ab258ce9ed5651f6a7e/assets/fonts/JetBrainsMono-Variable.woff2') format('woff2');
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
}

:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 832px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 23px;
  --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'Inter', 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: 'JetBrains Mono', 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: #f9fdff;
  --accent-2: #f1faff;
  --accent-3: #dff5ff;
  --accent-4: #d0edff;
  --accent-5: #bde3ff;
  --accent-6: #a4d6ff;
  --accent-7: #82c5ff;
  --accent-8: #4aacff;
  --accent-9: #004b87;
  --accent-10: #003a75;
  --accent-11: #006dcf;
  --accent-12: #003873;

  --accent-a1: #00aaff06;
  --accent-a2: #00a4ff0e;
  --accent-a3: #00b0ff20;
  --accent-a4: #009eff2f;
  --accent-a5: #0093ff42;
  --accent-a6: #018dff5b;
  --accent-a7: #0089ff7d;
  --accent-a8: #008affb5;
  --accent-a9: #004b87;
  --accent-a10: #003a75;
  --accent-a11: #006dcf;
  --accent-a12: #003873;

  --accent-contrast: #fff;
  --accent-surface: #eef9ffcc;
  --accent-indicator: #004b87;
  --accent-track: #004b87;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.3% 0.0079 250.9);
      --accent-2: oklch(98% 0.0167 250.9);
      --accent-3: oklch(96% 0.0388 250.9);
      --accent-4: oklch(93.6% 0.0619 250.9);
      --accent-5: oklch(90.4% 0.0832 250.9);
      --accent-6: oklch(86.2% 0.1045 250.9);
      --accent-7: oklch(80.7% 0.132 250.9);
      --accent-8: oklch(73.1% 0.1778 250.9);
      --accent-9: oklch(40.8% 0.1186 250.9);
      --accent-10: oklch(34.9% 0.1186 250.9);
      --accent-11: oklch(53.6% 0.1778 250.9);
      --accent-12: oklch(34.2% 0.1186 250.9);

      --accent-a1: color(display-p3 0.0196 0.6078 1 / 0.02);
      --accent-a2: color(display-p3 0.0235 0.5922 0.9216 / 0.048);
      --accent-a3: color(display-p3 0.0039 0.6078 0.9647 / 0.11);
      --accent-a4: color(display-p3 0.0039 0.5373 0.9529 / 0.161);
      --accent-a5: color(display-p3 0.0039 0.5098 0.9529 / 0.232);
      --accent-a6: color(display-p3 0.0039 0.4824 0.9529 / 0.318);
      --accent-a7: color(display-p3 0.0039 0.4549 0.9569 / 0.432);
      --accent-a8: color(display-p3 0 0.451 0.9569 / 0.604);
      --accent-a9: color(display-p3 0 0.2 0.451 / 0.887);
      --accent-a10: color(display-p3 0 0.1529 0.3922 / 0.918);
      --accent-a11: color(display-p3 0 0.2941 0.7373 / 0.82);
      --accent-a12: color(display-p3 0 0.149 0.3882 / 0.922);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9373 0.9725 1 / 0.8);
      --accent-indicator: oklch(40.8% 0.1186 250.9);
      --accent-track: oklch(40.8% 0.1186 250.9);
    }
  }
}


.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: #041117;
  --accent-2: #091b23;
  --accent-3: #002b3c;
  --accent-4: #003951;
  --accent-5: #004763;
  --accent-6: #005776;
  --accent-7: #00698e;
  --accent-8: #0080ac;
  --accent-9: #5cc6f2;
  --accent-10: #50bbe7;
  --accent-11: #5fc9f5;
  --accent-12: #bdf0ff;

  --accent-a1: #0048f209;
  --accent-a2: #009bf716;
  --accent-a3: #00a4ff30;
  --accent-a4: #00a6fd47;
  --accent-a5: #00aefd5a;
  --accent-a6: #00b5fd6e;
  --accent-a7: #00b9ff87;
  --accent-a8: #00bcffa7;
  --accent-a9: #60d0fef2;
  --accent-a10: #58ceffe6;
  --accent-a11: #62d0fef5;
  --accent-a12: #bdf0ff;

  --accent-contrast: #092531;
  --accent-surface: #04273780;
  --accent-indicator: #5cc6f2;
  --accent-track: #5cc6f2;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(16.8% 0.0242 228.2);
      --accent-2: oklch(21.2% 0.0287 228.2);
      --accent-3: oklch(27% 0.0566 228.2);
      --accent-4: oklch(31.9% 0.0753 228.2);
      --accent-5: oklch(36.9% 0.0854 228.2);
      --accent-6: oklch(42.3% 0.0938 228.2);
      --accent-7: oklch(48.5% 0.1052 228.2);
      --accent-8: oklch(55.7% 0.1235 228.2);
      --accent-9: oklch(78.1% 0.1155 228.2);
      --accent-10: oklch(74.7% 0.1155 228.2);
      --accent-11: oklch(79.1% 0.1155 228.2);
      --accent-12: oklch(92.7% 0.0608 228.2);

      --accent-a1: color(display-p3 0 0.3216 0.9765 / 0.03);
      --accent-a2: color(display-p3 0 0.6471 0.9922 / 0.08);
      --accent-a3: color(display-p3 0.0392 0.6471 0.9961 / 0.18);
      --accent-a4: color(display-p3 0.149 0.6627 1 / 0.267);
      --accent-a5: color(display-p3 0.2 0.698 1 / 0.338);
      --accent-a6: color(display-p3 0.2471 0.7255 1 / 0.417);
      --accent-a7: color(display-p3 0.2824 0.7294 1 / 0.517);
      --accent-a8: color(display-p3 0.3059 0.7412 1 / 0.638);
      --accent-a9: color(display-p3 0.502 0.8235 1 / 0.93);
      --accent-a10: color(display-p3 0.4745 0.8118 1 / 0.884);
      --accent-a11: color(display-p3 0.5098 0.8235 1 / 0.942);
      --accent-a12: color(display-p3 0.7882 0.9451 1 / 0.992);

      --accent-contrast: #092531;
      --accent-surface: color(display-p3 0.051 0.149 0.2039 / 0.5);
      --accent-indicator: oklch(78.1% 0.1155 228.2);
      --accent-track: oklch(78.1% 0.1155 228.2);
    }
  }
}


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

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

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

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

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

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

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

.dark {
  color-scheme: dark;
  --accent: rgba(92, 198, 242, 1);
  --background: rgba(15, 15, 15, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0f0f0f;
}

/* MediaKind docs — ported from docs.mediakind.com's compiled stylesheet so the
 * site matches theirs rather than approximating it.
 *
 * Brand palette (MediaKind Pantone set):
 *   Cyan #009fe3 | 301 #004b87 | 192 #e40046 | 4284 #726a7a
 */

/* The hero and the landing-page header share one colour per theme, declared on
 * :root so the theme switch is a simple variable flip rather than a
 * specificity contest between descendant selectors. */
:root {
  --mk-hero-bg: #050821;
  --mk-hero-border: #ffffff1f;
  --mk-hero-nav-h: 76px;                 /* their landing nav height */
  --mk-foot-h: 69px;                     /* the copyright-only footer */
}
:root:is(.dark, [data-theme="dark"]) {
  --mk-hero-bg: #020410;
  --mk-hero-border: #ffffff1a;
}

/* ======================================================================
 * Landing page — ported from docs.mediakind.com's live `.mk-home-v2` layout.
 * Values are taken verbatim from their compiled stylesheet.
 *
 * Structure:  hero (dark gradient + search)
 *             grid-v2  ->  col-left (2 cards) | col-middle (2 cards) | rail
 *             help-banner
 * Breakpoints: 768px -> 2 columns, 1100px -> 3 columns, 1800px -> wider rail
 * ====================================================================== */

.mk-home-v2 {
  --mk-pantone-cyan: #009fe3;
  --mk-pantone-301: #004b87;
  --mk-home-display: system-ui, -apple-system, "Segoe UI", sans-serif;
  --mk-home-body: system-ui, -apple-system, "Segoe UI", sans-serif;
  --mk-home-page-zoom: 0.9;
  --mk-hero-nav-h: 76px;                 /* their landing nav height */
  --mk-foot-h: 69px;                     /* the copyright-only footer */

  zoom: var(--mk-home-page-zoom);        /* their landing page renders at 90% */
  font-family: var(--mk-home-body);
  isolation: isolate;
  position: relative;
  padding: 0;
  background: none !important;
}

/* rebind Fern's type vars; their landing page uses a system stack, not Inter */
.mk-home-v2 {
  --font-body: var(--mk-home-body);
  --font-heading: var(--mk-home-display);
  --typography-body-font-family: var(--mk-home-body);
  --typography-heading-font-family: var(--mk-home-display);
}

/* ---- hero ---- */
.mk-home-v2 .mk-home-hero-section {
  position: relative;
  z-index: 10;
  /* full-bleed. Inside the .9 zoom, 100vw resolves to 100vw * zoom, so the
   * zoom is divided back out to reach the real viewport width. */
  width: calc(100vw / var(--mk-home-page-zoom));
  margin-left: calc(50% - (50vw / var(--mk-home-page-zoom)));
  /* slide up under the nav so the gradient continues behind it, the way the
   * source site does with a negative margin against its nav height */
  margin-top: calc(-1 * var(--mk-hero-nav-h) / var(--mk-home-page-zoom));
  color: #f8fafc;
  background-color: var(--mk-hero-bg);
  background-image:
    radial-gradient(1200px 600px at 85% 20%, #009fe32e, #0000 60%),
    radial-gradient(900px 360px at 20% 10%, #5032a04d, #0000 65%),
    linear-gradient(#0a0f3d 0%, #050821 100%);
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-hero-section {
  background-image:
    radial-gradient(1200px 400px at 85% 20%, #009fe31a, #0000 60%),
    radial-gradient(900px 360px at 20% 10%, #5032a02e, #0000 65%),
    linear-gradient(#060920 0%, #020410 100%);
}

.mk-home-v2 .mk-home-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 94rem;
  margin: 0 auto;
  padding: calc(2rem + var(--mk-hero-nav-h)) 1.5rem 3.25rem;
}
@media (min-width: 768px) {

  .mk-home-v2 .mk-home-hero-inner { padding: calc(2.5rem + var(--mk-hero-nav-h)) 2rem 4rem; }

}
@media (min-width: 1800px) {

  .mk-home-v2 .mk-home-hero-inner { max-width: 108rem; }

}

.mk-home-v2 .mk-home-title {
  display: block;
  margin: 0 0 1.25rem;
  font-family: var(--mk-home-display);
  font-size: clamp(2.2rem, 4.8vw, 3.8rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  text-indent: -0.04em;
  color: #fff;
  /* Fern turns every heading into a click-to-copy anchor target and sets an
   * inline cursor: pointer. The hero title is not a link, so make it inert. */
  cursor: default !important;
  pointer-events: none;
}
.mk-home-v2 .mk-home-subtitle {
  max-width: 44rem;
  margin: 0 0 2rem;
  font-size: 1.05rem;
  line-height: 1.6;
  color: #e2e8f0c7;
}

/* ---- hero search ---- */
.mk-home-v2 .mk-home-search-bar { max-width: 46rem; }
.mk-home-v2 .mk-home-search-trigger {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  width: 100%;
  min-height: 3.1rem;
  padding: 0.85rem 1rem;
  text-align: left;
  cursor: pointer;
  color: #64748b;
  background: #f7f7f8;
  border: 1px solid #ffffff8c;
  border-radius: 0.4rem;
  box-shadow: 0 1px 2px #0000002e;
  transition: border-color 0.15s, box-shadow 0.15s, color 0.15s;
}
.mk-home-v2 .mk-home-search-trigger:hover,
.mk-home-v2 .mk-home-search-trigger:focus-visible {
  color: #004b87;
  border-color: #009fe3a6;
  outline: none;
  box-shadow: 0 0 0 3px #009fe324;
}
.mk-home-v2 .mk-home-search-trigger span { font-size: 1.05rem; }
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-search-trigger {
  color: #e2e8f0b8;
  background: #ffffff0f;
  border-color: #ffffff2e;
}

.mk-home-v2 .mk-home-search-try {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.7rem;
  margin-top: 0.65rem;
  font-size: 0.85rem;
  line-height: 1.4;
  color: #e2e8f0ad;
}
.mk-home-v2 .mk-home-search-try-label { color: #e2e8f094; font-weight: 500; }
.mk-home-v2 .mk-home-search-try-button {
  appearance: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: #f8fafcd6;
  background: none;
  border: 0;
  text-decoration: underline 1px #f8fafcb8;
  text-underline-offset: 0.18em;
  transition: color 0.16s, text-decoration-color 0.16s;
}
.mk-home-v2 .mk-home-search-try-button:hover,
.mk-home-v2 .mk-home-search-try-button:focus-visible {
  color: #fff;
  outline: none;
  text-decoration-color: #fff;
}

/* ---- main grid ---- */
.mk-home-v2 .mk-home-main-v2 {
  flex-grow: 1;
  width: 100%;
  padding: 2.5rem 1.5rem 3.5rem;
  background: none;
}
@media (min-width: 768px) {

  .mk-home-v2 .mk-home-main-v2 { padding: 3rem 2rem 4rem; }

}

.mk-home-v2 .mk-home-grid-v2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 1.5rem;
  max-width: 90rem;
  margin: 0 auto;
}
@media (min-width: 768px) {

  .mk-home-v2 .mk-home-grid-v2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

}
@media (min-width: 1100px) {

  .mk-home-v2 .mk-home-grid-v2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(18rem, 22rem);
  }

}
@media (min-width: 1800px) {

  .mk-home-v2 .mk-home-grid-v2 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(20rem, 24rem);
    gap: 1.75rem;
    max-width: 104rem;
  }

}

.mk-home-v2 .mk-home-col {
  display: flex;
  flex-direction: column;
  align-self: start;
  gap: 1.5rem;
  min-width: 0;
}
@media (min-width: 768px) {

  .mk-home-v2 .mk-home-col-left,
  .mk-home-v2 .mk-home-col-middle {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .mk-home-v2 .mk-home-col-left > .mk-product-card,
  .mk-home-v2 .mk-home-col-middle > .mk-product-card {
    min-height: 0;
    height: 100% !important;
  }

}

/* ---- product cards ---- */
.mk-home-v2 .mk-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: #fffffff2;                 /* bg-white/95 */
  border: 1px solid #94a3b8;             /* measured on the live site */
  border-radius: 0.375rem;               /* rounded-md */
  box-shadow: 0 1px 2px 0 #0000000d;     /* shadow-sm */
  transition: border-color 0.3s, box-shadow 0.3s;
}
.mk-home-v2 .mk-product-card:hover {
  border-color: #009fe380;
  box-shadow: 0 0 32px rgba(0, 0, 0, 0.12);
}
.mk-home-v2 .mk-product-card:focus-visible {
  border-color: #009fe380;
  box-shadow: 0 0 32px rgba(0, 0, 0, 0.12); outline: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card {
  background: #121424 !important;
  border-color: #94a3b82e;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card:hover {
  border-color: #00a2e9 !important;
  box-shadow: 0 0 32px rgba(0, 0, 0, 0.45);
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card:focus-visible {
  border-color: #00a2e9 !important;
  box-shadow: 0 0 32px rgba(0, 0, 0, 0.45); outline: none;
}

.mk-home-v2 .mk-product-card-body {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  padding: 2rem 2rem 0.5rem;             /* measured 32 / 32 / 8 */
  text-decoration: none;
}
.mk-home-v2 .mk-product-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;                 /* mb-6 */
}
.mk-home-v2 .mk-product-card-head h3 {
  margin: 0;
  font-size: 1.5rem;                     /* text-2xl */
  font-weight: 600;
  line-height: 2rem;                     /* measured 32px */
  letter-spacing: -0.025em;
  color: #0f172a;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card-head h3 { color: #fff; }

.mk-home-v2 .mk-arrow-card {
  flex-shrink: 0;
  color: #cbd5e1;                        /* slate-300 */
  transition: color 0.3s;
}
.mk-home-v2 .mk-product-card-body:hover .mk-arrow-card { color: #009fe3; }
.mk-home-v2 .mk-product-card-body:focus-within .mk-arrow-card { color: #009fe3; outline: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-arrow-card { color: #475569; }

.mk-home-v2 .mk-product-card-desc {
  margin: 0 0 1rem;                      /* mb-4 */
  font-weight: 400;
  line-height: 1.625;                    /* leading-relaxed */
  color: #64748b;                        /* slate-500 */
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card-desc { color: #9ca3af; }

.mk-home-v2 .mk-product-card-links {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;                          /* space-y-1 */
  margin: auto 0 0;
  padding: 0 1.25rem 1.5rem;
  list-style: none;
}
.mk-home-v2 .mk-product-card-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.875rem;              /* py-2 px-3.5 */
  border: 1px solid transparent;
  border-radius: 0.5rem;                 /* rounded-lg */
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.mk-home-v2 .mk-product-card-links a:hover {
  background: #f8fafccc;                 /* slate-50/80 */
  border-color: #f1f5f9e6;               /* slate-100/90 */
}
.mk-home-v2 .mk-product-card-links a:focus-visible {
  background: #f8fafccc;                 /* slate-50/80 */
  border-color: #f1f5f9e6;               /* slate-100/90 */; outline: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card-links a:hover {
  background: #ffffff0d;
  border-color: #ffffff1a;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card-links a:focus-visible {
  background: #ffffff0d;
  border-color: #ffffff1a; outline: none;
}
.mk-home-v2 .mk-product-card-links span {
  overflow: hidden;
  font-size: 1rem;
  font-weight: 500;
  color: #334155;                        /* slate-700 */
  text-overflow: ellipsis;
  white-space: nowrap;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-product-card-links span { color: #e2e8f0; }
.mk-home-v2 .mk-arrow-item {
  flex-shrink: 0;
  color: #cbd5e1;
  transition: color 0.3s;
}
.mk-home-v2 .mk-product-card-links a:hover .mk-arrow-item { color: #009fe3; }
.mk-home-v2 .mk-product-card-links a:focus-within .mk-arrow-item { color: #009fe3; outline: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-arrow-item { color: #475569; }

.mk-home-v2 .mk-product-card-compact .mk-product-card-body { flex-grow: 0; padding-bottom: 0.875rem; }
.mk-home-v2 .mk-product-card-compact .mk-product-card-links { padding-bottom: 0.875rem; }

/* ---- right rail: quick links ---- */
.mk-home-v2 .mk-home-quick {
  display: flex;
  flex-direction: column;
  flex: none;
  padding: 1.5rem;
  background: #fff;
  border: 1.5px solid #94a3b873;
  border-radius: 0.4rem;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick {
  background: #121424;
  border-color: #ffffff2e;
}
.mk-home-v2 .mk-home-quick-title {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: #0b1224;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-title { color: #fff; }

.mk-home-v2 .mk-home-quick-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.mk-home-v2 .mk-home-quick-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.6rem 0.25rem;
  color: inherit;
  text-decoration: none;
  border-radius: 0.5rem;
  transition: background 0.15s;
}
.mk-home-v2 .mk-home-quick-item:hover { background: #0f172a0a; }
.mk-home-v2 .mk-home-quick-item:focus-visible { background: #0f172a0a; outline: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-item:hover { background: #ffffff0d; }
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-item:focus-visible { background: #ffffff0d; outline: none;
}
.mk-home-v2 .mk-home-quick-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  color: #334155;
  background: #0f172a0d;
  border-radius: 0.5rem;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-icon {
  color: #e2e8f0;
  background: #ffffff0f;
}
.mk-home-v2 .mk-home-quick-text {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-width: 0;
}
.mk-home-v2 .mk-home-quick-name {
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: #0b1224;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-name { color: #fff; }
.mk-home-v2 .mk-home-quick-desc { font-size: 0.8rem; line-height: 1.35; color: #64748b; }
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-quick-desc { color: #ffffff8c; }
.mk-home-v2 .mk-home-quick-arrow { flex-shrink: 0; color: #cbd5e1; }
.mk-home-v2 .mk-home-quick-item:hover .mk-home-quick-arrow { color: var(--mk-pantone-cyan); }
.mk-home-v2 .mk-home-quick-item:focus-within .mk-home-quick-arrow { color: var(--mk-pantone-cyan); outline: none;
}

/* ---- right rail: "new to" callout ---- */
.mk-home-v2 .mk-home-newto {
  display: flex;
  flex-direction: column;
  flex: none;
  align-items: flex-start;
  justify-content: center;
  padding: 1.5rem;
  background: #009fe314;
  border: 1.5px solid #009fe338;
  border-radius: 0.4rem;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-newto { background: #009fe31a; }
.mk-home-v2 .mk-home-newto-title {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: #0b1224;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-newto-title { color: #fff; }
.mk-home-v2 .mk-home-newto-copy {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #475569;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-newto-copy { color: #ffffffb3; }
.mk-home-v2 .mk-home-newto-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--mk-pantone-301);
  text-decoration: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-newto-link { color: var(--mk-pantone-cyan); }

/* ---- help banner ---- */
.mk-home-v2 .mk-home-help-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: 90rem;
  margin: 2rem auto 0;
  padding: 1rem 1.5rem;
  background: #fff;
  border: 1.5px solid #94a3b873;
  border-radius: 0.4rem;
}
@media (min-width: 1800px) {
 .mk-home-v2 .mk-home-help-banner { max-width: 104rem; } 
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-banner {
  background: #121424;
  border-color: #ffffff2e;
}
.mk-home-v2 .mk-home-help-text {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: #334155;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-text { color: #ffffffbf; }
.mk-home-v2 .mk-home-help-text strong { font-weight: 600; color: #0b1224; }
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-text strong { color: #fff; }
.mk-home-v2 .mk-home-help-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  color: #64748b;
  background: #64748b1f;
  border-radius: 999px;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-icon {
  color: #ffffffb3;
  background: #ffffff14;
}
.mk-home-v2 .mk-home-help-copy { color: #64748b; }
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-copy { color: #fff9; }
.mk-home-v2 .mk-home-help-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--mk-pantone-301);
  text-decoration: none;
}
:is(.dark, [data-theme="dark"]) .mk-home-v2 .mk-home-help-cta { color: var(--mk-pantone-cyan); }

/* Fern's prose styles add bullets to these lists; the source site has none. */
.mk-home-v2 :is(ul, ol) { list-style: none !important; margin: 0; padding-left: 0; }
.mk-home-v2 :is(ul, ol) > li { list-style: none !important; }
.mk-home-v2 :is(ul, ol) > li::marker { content: none !important; }

/* ======================================================================
 * Content pages — measured from docs.mediakind.com's article layout.
 * Fern wraps prose in .fern-prose.
 * ====================================================================== */

/* Their code face is IBM Plex Mono, not the JetBrains Mono used in chrome. */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("./assets/fonts/IBMPlexMono-400.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("./assets/fonts/IBMPlexMono-500.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("./assets/fonts/IBMPlexMono-600.woff2") format("woff2");
}

.fern-prose {
  --mk-ink: #1c2538;         /* body copy    rgb(28, 37, 56)  */
  --mk-heading: #111827;     /* headings     rgb(17, 24, 39)  */
  --mk-link: #004b87;        /* Pantone 301                   */
  --mk-code-bg: rgba(0, 75, 135, 0.08);
  --mk-pre-bg: #f8fafc;      /* rgb(248, 250, 252)            */
  --mk-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.7;          /* 27.2px at 16px */
  color: var(--mk-ink);
}

:is(.dark, [data-theme="dark"]) .fern-prose {
  --mk-ink: #e2e8f0;
  --mk-heading: #f8fafc;
  --mk-link: #5cc6f2;
  --mk-code-bg: rgba(0, 159, 227, 0.16);
  --mk-pre-bg: #18181f;
}

.fern-prose :is(h1, h2, h3, h4, h5, h6) {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--mk-heading);
  letter-spacing: normal;
}
.fern-prose h1 { font-size: 2.0625rem; font-weight: 700; line-height: 1.2;  margin: 0.55rem 0 1rem; }
.fern-prose h2 { font-size: 1.375rem; font-weight: 600; line-height: 1.364; margin: 2rem 0 0.75rem; }
.fern-prose h3 { font-size: 1.125rem; font-weight: 600; line-height: 1.5;   margin: 1.5rem 0 0.5rem; }

.fern-prose p  { margin: 0.85rem 0; line-height: 1.7; }
.fern-prose :is(ul, ol) { margin: 0.85rem 0; }
.fern-prose li { margin-top: 0.35rem; line-height: 1.7; }

.fern-prose a {
  color: var(--mk-link);
  font-weight: 500;
  text-decoration: none;
}
.fern-prose a:hover { text-decoration: underline; text-underline-offset: 2px; }
.fern-prose a:focus-visible { text-decoration: underline; text-underline-offset: 2px; outline: none;
}

/* inline code: tinted with the brand blue rather than grey */
.fern-prose :not(pre) > code {
  font-family: var(--mk-mono);
  font-size: 0.84rem;
  background: var(--mk-code-bg);
  color: var(--mk-link);
  border-radius: 0.28rem;
  padding: 0.126rem 0.336rem;
  border: 0;
}

.fern-prose pre,
.fern-prose pre code {
  font-family: var(--mk-mono);
  font-size: 0.82rem;
  line-height: 1.65;
}
.fern-prose pre {
  background: var(--mk-pre-bg);
  border-radius: 0;
  padding: 1rem 1.25rem;
  border: 0;
}

.fern-prose table { font-size: 0.95rem; border-collapse: collapse; width: 100%; }
.fern-prose :is(th, td) {
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--grayscale-a4, #e2e8f0);
  text-align: left;
}
.fern-prose th { font-weight: 600; color: var(--mk-heading); }

/* A short page would otherwise leave the footer floating mid-screen with the
 * page background below it. Make the container that holds both the content
 * region and the footer a full-height flex column, and let the content region
 * absorb the slack, so the footer always lands on the bottom edge.
 * (Sticky with top:100vh does not work here: the footer's immediate parent
 * hugs its height, leaving sticky no room inside its containing block.) */
div:has(> .fern-main):has(> footer) {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}
div:has(> .fern-main):has(> footer) > .fern-main {
  flex: 1 1 auto;
}

/* ======================================================================
 * Footer — components/MediaKindFooter.tsx
 * The source site's footer is a single hairline border over the page
 * background with one copyright line; the Fern wordmark is our addition.
 * ====================================================================== */
.mk-sitefoot {
  border-top: 1px solid #d0ced5;
  background: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #1c2538;
}
:is(.dark, [data-theme="dark"]) .mk-sitefoot {
  border-top-color: #18181f;
  background: #121424;
  color: #e2e8f0;
}

.mk-sf-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
  max-width: 94rem;
  margin: 0 auto;
  padding: 1.5rem 2rem;
}

.mk-sf-copy { margin: 0; font-size: 0.85rem; color: inherit; opacity: 0.75; }



@media (width <= 48rem) {

  .mk-sf-inner { padding-inline: 1.5rem; }

}


/* Remove the "Built with Fern" badge site-wide; the custom footer carries the
 * attribution instead. Matches the approach used in fern-demo/mailchimp.
 * Fern guards the badge with `html body #builtwithfern { display: flex
 * !important }` (0,1,2), so the override has to outrank that -- hence the
 * `html body` prefix here rather than a bare attribute selector. */
html body a[href*="buildwithfern.com"],
html body #builtwithfern {
  display: none !important;
}

/* Fern renders the page title outside .fern-prose, as .fern-page-heading, so
 * the h1 has to be targeted there to match the source site's article header. */
.fern-page-heading {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 2.0625rem;                  /* 33px */
  font-weight: 700;
  line-height: 1.2;                      /* 39.6px */
  letter-spacing: normal;
  color: #111827;                         /* rgb(17, 24, 39) */
}
:is(.dark, [data-theme="dark"]) .fern-page-heading { color: #f8fafc; }

/* h2 at exactly 30px rather than a ratio that lands on 30.008px */
.fern-prose h2 { line-height: 30px; }

/* The source site's code blocks are a flat slate-50 panel with square corners
 * and no border. Fern paints the background on .fern-code-block, not the <pre>. */
.fern-prose .fern-code-block,
.fern-code-block {
  background: #f8fafc !important;        /* rgb(248, 250, 252) */
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
:is(.dark, [data-theme="dark"]) :is(.fern-prose .fern-code-block, .fern-code-block) {
  background: #18181f !important;
}

/* ======================================================================
 * Landing-page header — on the source site the nav sits in flow over the hero
 * and is transparent, so it reads as the hero colour. Fern's header is
 * position: fixed, so transparency would reveal whatever scrolls underneath
 * instead; it is painted with the hero's own base colour per theme. Scoped
 * with :has() to pages that actually contain the hero.
 * ====================================================================== */
body:has(.mk-home-hero-section) #fern-header {
  position: relative !important;         /* in flow over the hero, as theirs is */
  height: 76px !important;
  background-color: transparent !important;
  background-image: none !important;
  backdrop-filter: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  z-index: 20;
}
/* With the nav in flow, Fern's reserved top offset for a fixed header
 * double-counts, pushing the hero down by the header height twice. */
body:has(.mk-home-hero-section) .fern-main {
  margin-top: 0 !important;
}

body:has(.mk-home-hero-section) #fern-header,
body:has(.mk-home-hero-section) #fern-header a,
body:has(.mk-home-hero-section) #fern-header button {
  color: #ffffffd9 !important;
}
body:has(.mk-home-hero-section) #fern-header button:hover {
  background-color: #ffffff26 !important;
}
body:has(.mk-home-hero-section) #fern-header button:focus-visible {
  background-color: #ffffff26 !important; outline: none;
}
/* the light logo would vanish on the dark hero; use the dark-theme variant */
body:has(.mk-home-hero-section) #fern-header img[src*="logo-light"] { display: none !important; }
body:has(.mk-home-hero-section) #fern-header img[src*="logo-dark"]  { display: block !important; }

/* ======================================================================
 * Product-switch layout hold.
 * Fern swaps the content region on navigation. `.fern-main` has no
 * min-height, so while the incoming product's content is in flight the
 * region collapses to ~0 and the custom footer rides up under the header --
 * you see a bare tab strip with the footer directly beneath it, then the
 * content appears and pushes everything back down.
 * Reserving a viewport's worth of height keeps the footer where it belongs
 * for the whole transition.
 * ====================================================================== */
.fern-main {
  min-height: calc(100dvh - var(--header-height, 108px));
}
