/*
 * Bitruvius theming for the generated API reference.
 *
 * Palette matches the developers portal and the bvc-rs book
 * (docs/book/theme/bitruvius.css) so the SDK reference, the Rust books and the
 * portal read as one product: cyan #00d4ff on near-black for dark, #0891b2 on
 * slate-white for light.
 *
 * Typedoc derives every colour from a --light-color-* / --dark-color-* pair and
 * picks a set via prefers-color-scheme or an explicit [data-theme] set by its
 * own header toggle. Overriding the SOURCE pairs (rather than the derived
 * --color-* values) means both paths inherit the palette and the toggle keeps
 * working untouched.
 *
 * The wordmark is inlined as a data URI: typedoc copies customCss into assets/
 * but does not copy images it references, so a separate file would 404. It is
 * bound once to --bv-wordmark and reused, rather than pasted per rule.
 */

:root {
  /* Dark: portal dark palette. */
  --dark-color-background: #050508;
  --dark-color-background-secondary: #0a0a12;
  --dark-color-background-active: #11111a;
  --dark-color-accent: #1f2937;
  --dark-color-text: #f0f0f0;
  --dark-color-text-aside: #9aa4b2;
  --dark-color-link: #00d4ff;
  --dark-color-active-menu-item: rgba(0, 212, 255, 0.12);
  --dark-color-focus-outline: rgba(0, 212, 255, 0.6);
  --dark-color-icon-background: #0a0a12;

  /* Light: portal light palette. */
  --light-color-background: #f8fafc;
  --light-color-background-secondary: #f1f5f9;
  --light-color-background-active: #e2e8f0;
  --light-color-accent: #cbd5e1;
  --light-color-text: #0f172a;
  --light-color-text-aside: #475569;
  --light-color-link: #0891b2;
  --light-color-active-menu-item: rgba(8, 145, 178, 0.12);
  --light-color-focus-outline: rgba(8, 145, 178, 0.6);
  --light-color-icon-background: #ffffff;

  --bv-wordmark-on-dark: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjI3LjQgMjcuNCA1OTMuOTggOTMuMiIgd2lkdGg9IjU5My45OCIgaGVpZ2h0PSI5My4yIj4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxNDguMCkgc2NhbGUoMSAtMSkiPgoKPGNpcmNsZSBjeD0iNzQuMDAiIGN5PSI3NC4wMCIgcj0iNDUuMDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwRDRGRiIgc3Ryb2tlLW9wYWNpdHk9IjAuNyIgc3Ryb2tlLXdpZHRoPSIyLjYwIi8+CjxjaXJjbGUgY3g9Ijc0LjAwIiBjeT0iNzQuMDAiIHI9IjMwLjAwIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMEQ0RkYiIHN0cm9rZS1vcGFjaXR5PSIxIiBzdHJva2Utd2lkdGg9IjMuMjAiLz4KPHJlY3QgeD0iNDQuMDAiIHk9IjQ0LjAwIiB3aWR0aD0iNjAuMDAiIGhlaWdodD0iNjAuMDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwRDRGRiIgc3Ryb2tlLW9wYWNpdHk9IjEiIHN0cm9rZS13aWR0aD0iMi42MCIvPgo8cGF0aCBkPSJNMTM3LjA0IDQ1LjAwIEwxMzcuMDQgMTAzLjAwIEwxNjAuMjYgMTAzLjAwIEMxNjQuNTMgMTAzLjAwIDE2OC4wOSAxMDIuMzcgMTcwLjk0IDEwMS4xMCBDMTczLjc5IDk5Ljg0IDE3NS45MyA5OC4wOSAxNzcuMzcgOTUuODUgQzE3OC44MCA5My42MSAxNzkuNTIgOTEuMDQgMTc5LjUyIDg4LjEzIEMxNzkuNTIgODUuODcgMTc5LjA3IDgzLjg4IDE3OC4xNiA4Mi4xNyBDMTc3LjI2IDgwLjQ2IDE3Ni4wMSA3OS4wNiAxNzQuNDQgNzcuOTggQzE3Mi44NiA3Ni44OSAxNzEuMDYgNzYuMTIgMTY5LjA0IDc1LjY3IEwxNjkuMDQgNzUuMTAgQzE3MS4yNSA3NS4wMSAxNzMuMzIgNzQuMzkgMTc1LjI2IDczLjI0IEMxNzcuMTkgNzIuMDggMTc4Ljc3IDcwLjQ3IDE3OS45NyA2OC40MSBDMTgxLjE4IDY2LjM0IDE4MS43OSA2My44OCAxODEuNzkgNjEuMDMgQzE4MS43OSA1Ny45NSAxODEuMDMgNTUuMjEgMTc5LjUxIDUyLjgwIEMxNzcuOTkgNTAuNDAgMTc1Ljc1IDQ4LjQ5IDE3Mi43OCA0Ny4xMCBDMTY5LjgyIDQ1LjcwIDE2Ni4xNiA0NS4wMCAxNjEuODIgNDUuMDAgWiBNMTQ5LjMwIDU1LjAzIEwxNTkuMzAgNTUuMDMgQzE2Mi43MiA1NS4wMyAxNjUuMjEgNTUuNjggMTY2Ljc4IDU2Ljk5IEMxNjguMzQgNTguMzEgMTY5LjEzIDYwLjA2IDE2OS4xMyA2Mi4yNSBDMTY5LjEzIDYzLjg1IDE2OC43NCA2NS4yNyAxNjcuOTcgNjYuNTAgQzE2Ny4xOSA2Ny43MiAxNjYuMDkgNjguNjkgMTY0LjY3IDY5LjM4IEMxNjMuMjQgNzAuMDggMTYxLjU1IDcwLjQzIDE1OS41OCA3MC40MyBMMTQ5LjMwIDcwLjQzIFogTTE0OS4zMCA3OC43MyBMMTU4LjM5IDc4LjczIEMxNjAuMDcgNzguNzMgMTYxLjU3IDc5LjAzIDE2Mi44OCA3OS42MiBDMTY0LjIwIDgwLjIyIDE2NS4yMyA4MS4wNiAxNjYuMDAgODIuMTYgQzE2Ni43NiA4My4yNSAxNjcuMTUgODQuNTYgMTY3LjE1IDg2LjA5IEMxNjcuMTUgODguMTkgMTY2LjQwIDg5Ljg4IDE2NC45MiA5MS4xNiBDMTYzLjQ0IDkyLjQ1IDE2MS4zNCA5My4wOSAxNTguNjIgOTMuMDkgTDE0OS4zMCA5My4wOSBaIiBmaWxsPSIjY2ZmYWZlIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTIwNi4wMCAxMDMuMDAgTDIwNi4wMCA0NS4wMCBMMTkzLjczIDQ1LjAwIEwxOTMuNzMgMTAzLjAwIFoiIGZpbGw9IiNjZmZhZmUiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNMjE3Ljg4IDkyLjg5IEwyMTcuODggMTAzLjAwIEwyNjUuNTIgMTAzLjAwIEwyNjUuNTIgOTIuODkgTDI0Ny43NiA5Mi44OSBMMjQ3Ljc2IDQ1LjAwIEwyMzUuNjQgNDUuMDAgTDIzNS42NCA5Mi44OSBaIiBmaWxsPSIjY2ZmYWZlIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTI3Ny4zOCA0NS4wMCBMMjc3LjM4IDEwMy4wMCBMMzAwLjI2IDEwMy4wMCBDMzA0LjY0IDEwMy4wMCAzMDguMzkgMTAyLjIyIDMxMS40OSAxMDAuNjYgQzMxNC42MCA5OS4xMSAzMTYuOTcgOTYuOTEgMzE4LjYwIDk0LjA2IEMzMjAuMjMgOTEuMjIgMzIxLjA1IDg3Ljg5IDMyMS4wNSA4NC4wNSBDMzIxLjA1IDgwLjIwIDMyMC4yMiA3Ni44OSAzMTguNTYgNzQuMTMgQzMxNi45MCA3MS4zNiAzMTQuNDkgNjkuMjQgMzExLjM1IDY3Ljc3IEMzMDguMjEgNjYuMzAgMzA0LjQxIDY1LjU2IDI5OS45NSA2NS41NiBMMjg0LjYzIDY1LjU2IEwyODQuNjMgNzUuNDIgTDI5Ny45NyA3NS40MiBDMzAwLjMxIDc1LjQyIDMwMi4yNSA3NS43NCAzMDMuODAgNzYuMzggQzMwNS4zNSA3Ny4wMiAzMDYuNTEgNzcuOTggMzA3LjI3IDc5LjI3IEMzMDguMDQgODAuNTUgMzA4LjQyIDgyLjE1IDMwOC40MiA4NC4wNSBDMzA4LjQyIDg1Ljk4IDMwOC4wNCA4Ny42MCAzMDcuMjcgODguOTIgQzMwNi41MSA5MC4yNSAzMDUuMzUgOTEuMjUgMzAzLjc5IDkxLjk0IEMzMDIuMjMgOTIuNjMgMzAwLjI3IDkyLjk3IDI5Ny45MSA5Mi45NyBMMjg5LjY0IDkyLjk3IEwyODkuNjQgNDUuMDAgWiBNMzA4LjcwIDcxLjM5IEwzMjMuMTIgNDUuMDAgTDMwOS41OCA0NS4wMCBMMjk1LjQ4IDcxLjM5IFoiIGZpbGw9IiNjZmZhZmUiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNMzY5LjUzIDEwMy4wMCBMMzgxLjc5IDEwMy4wMCBMMzgxLjc5IDY1LjMzIEMzODEuNzkgNjEuMTAgMzgwLjc5IDU3LjQwIDM3OC43NyA1NC4yMyBDMzc2Ljc2IDUxLjA2IDM3My45NiA0OC41OSAzNzAuMzUgNDYuODMgQzM2Ni43NCA0NS4wNiAzNjIuNTQgNDQuMTggMzU3Ljc1IDQ0LjE4IEMzNTIuOTMgNDQuMTggMzQ4LjcyIDQ1LjA2IDM0NS4xMiA0Ni44MyBDMzQxLjUxIDQ4LjU5IDMzOC43MSA1MS4wNiAzMzYuNzAgNTQuMjMgQzMzNC43MCA1Ny40MCAzMzMuNzAgNjEuMTAgMzMzLjcwIDY1LjMzIEwzMzMuNzAgMTAzLjAwIEwzNDUuOTcgMTAzLjAwIEwzNDUuOTcgNjYuMzggQzM0NS45NyA2NC4xNyAzNDYuNDUgNjIuMjEgMzQ3LjQyIDYwLjQ5IEMzNDguNDAgNTguNzcgMzQ5Ljc3IDU3LjQyIDM1MS41NCA1Ni40NCBDMzUzLjMyIDU1LjQ2IDM1NS4zOSA1NC45NyAzNTcuNzUgNTQuOTcgQzM2MC4xMyA1NC45NyAzNjIuMjAgNTUuNDYgMzYzLjk2IDU2LjQ0IEMzNjUuNzMgNTcuNDIgMzY3LjEwIDU4Ljc3IDM2OC4wNyA2MC40OSBDMzY5LjA0IDYyLjIxIDM2OS41MyA2NC4xNyAzNjkuNTMgNjYuMzggWiIgZmlsbD0iI2NmZmFmZSIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik00MDYuMzQgMTAzLjAwIEw0MjAuMzYgNTguOTMgTDQyMC45MCA1OC45MyBMNDM0Ljk0IDEwMy4wMCBMNDQ4LjU0IDEwMy4wMCBMNDI4LjU0IDQ1LjAwIEw0MTIuNzQgNDUuMDAgTDM5Mi43MiAxMDMuMDAgWiIgZmlsbD0iI2NmZmFmZSIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik00NzEuNzUgMTAzLjAwIEw0NzEuNzUgNDUuMDAgTDQ1OS40OSA0NS4wMCBMNDU5LjQ5IDEwMy4wMCBaIiBmaWxsPSIjY2ZmYWZlIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTUyMS42OCAxMDMuMDAgTDUzMy45NCAxMDMuMDAgTDUzMy45NCA2NS4zMyBDNTMzLjk0IDYxLjEwIDUzMi45MyA1Ny40MCA1MzAuOTIgNTQuMjMgQzUyOC45MSA1MS4wNiA1MjYuMTAgNDguNTkgNTIyLjUwIDQ2LjgzIEM1MTguODkgNDUuMDYgNTE0LjY5IDQ0LjE4IDUwOS44OSA0NC4xOCBDNTA1LjA4IDQ0LjE4IDUwMC44NyA0NS4wNiA0OTcuMjYgNDYuODMgQzQ5My42NiA0OC41OSA0OTAuODUgNTEuMDYgNDg4Ljg1IDU0LjIzIEM0ODYuODUgNTcuNDAgNDg1Ljg1IDYxLjEwIDQ4NS44NSA2NS4zMyBMNDg1Ljg1IDEwMy4wMCBMNDk4LjExIDEwMy4wMCBMNDk4LjExIDY2LjM4IEM0OTguMTEgNjQuMTcgNDk4LjYwIDYyLjIxIDQ5OS41NyA2MC40OSBDNTAwLjU0IDU4Ljc3IDUwMS45MiA1Ny40MiA1MDMuNjkgNTYuNDQgQzUwNS40NyA1NS40NiA1MDcuNTMgNTQuOTcgNTA5Ljg5IDU0Ljk3IEM1MTIuMjcgNTQuOTcgNTE0LjM1IDU1LjQ2IDUxNi4xMSA1Ni40NCBDNTE3Ljg4IDU3LjQyIDUxOS4yNSA1OC43NyA1MjAuMjIgNjAuNDkgQzUyMS4xOSA2Mi4yMSA1MjEuNjggNjQuMTcgNTIxLjY4IDY2LjM4IFoiIGZpbGw9IiNjZmZhZmUiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNNTc5LjQ3IDg2LjMyIEM1NzkuMjUgODguNjAgNTc4LjI3IDkwLjM4IDU3Ni41NiA5MS42NCBDNTc0Ljg0IDkyLjkxIDU3Mi41MSA5My41NCA1NjkuNTYgOTMuNTQgQzU2Ny41NiA5My41NCA1NjUuODcgOTMuMjYgNTY0LjQ5IDkyLjcxIEM1NjMuMTEgOTIuMTUgNTYyLjA2IDkxLjM4IDU2MS4zMyA5MC40MCBDNTYwLjYxIDg5LjQyIDU2MC4yNCA4OC4zMCA1NjAuMjQgODcuMDYgQzU2MC4yMSA4Ni4wMiA1NjAuNDMgODUuMTEgNTYwLjkxIDg0LjM0IEM1NjEuMzkgODMuNTYgNTYyLjA2IDgyLjkwIDU2Mi45MCA4Mi4zNCBDNTYzLjc1IDgxLjc4IDU2NC43NCA4MS4zMCA1NjUuODUgODAuOTAgQzU2Ni45NiA4MC40OSA1NjguMTUgODAuMTUgNTY5LjQyIDc5Ljg2IEw1NzQuNjMgNzguNjIgQzU3Ny4xNiA3OC4wNSA1NzkuNDggNzcuMjkgNTgxLjYwIDc2LjM1IEM1ODMuNzEgNzUuNDEgNTg1LjU0IDc0LjI1IDU4Ny4wOSA3Mi44NyBDNTg4LjY0IDcxLjQ5IDU4OS44NCA2OS44NyA1OTAuNzAgNjguMDAgQzU5MS41NiA2Ni4xMyA1OTIuMDAgNjMuOTggNTkyLjAyIDYxLjU3IEM1OTIuMDAgNTguMDIgNTkxLjEwIDU0Ljk1IDU4OS4zMSA1Mi4zNSBDNTg3LjUzIDQ5Ljc1IDU4NC45NiA0Ny43NCA1ODEuNjEgNDYuMzIgQzU3OC4yNiA0NC44OSA1NzQuMjIgNDQuMTggNTY5LjUwIDQ0LjE4IEM1NjQuODIgNDQuMTggNTYwLjc1IDQ0LjkwIDU1Ny4yOCA0Ni4zMyBDNTUzLjgyIDQ3Ljc3IDU1MS4xMiA0OS44OSA1NDkuMTggNTIuNzIgQzU0Ny4yNSA1NS41NCA1NDYuMjMgNTkuMDQgNTQ2LjE0IDYzLjIxIEw1NTguMDEgNjMuMjEgQzU1OC4xNCA2MS4yNyA1NTguNzAgNTkuNjUgNTU5LjY5IDU4LjM1IEM1NjAuNjggNTcuMDYgNTYyLjAxIDU2LjA5IDU2My42OCA1NS40NCBDNTY1LjM1IDU0Ljc4IDU2Ny4yNSA1NC40NiA1NjkuMzYgNTQuNDYgQzU3MS40NCA1NC40NiA1NzMuMjUgNTQuNzYgNTc0Ljc5IDU1LjM3IEM1NzYuMzIgNTUuOTcgNTc3LjUyIDU2LjgxIDU3OC4zNyA1Ny44OSBDNTc5LjIyIDU4Ljk2IDU3OS42NCA2MC4yMCA1NzkuNjQgNjEuNjAgQzU3OS42NCA2Mi45MCA1NzkuMjYgNjMuOTkgNTc4LjUwIDY0Ljg4IEM1NzcuNzMgNjUuNzcgNTc2LjYyIDY2LjUyIDU3NS4xNSA2Ny4xNSBDNTczLjY5IDY3Ljc3IDU3MS45MCA2OC4zNCA1NjkuNzkgNjguODUgTDU2My40NyA3MC40MyBDNTU4LjU4IDcxLjYyIDU1NC43MiA3My40OCA1NTEuODkgNzYuMDEgQzU0OS4wNiA3OC41NCA1NDcuNjUgODEuOTUgNTQ3LjY3IDg2LjIzIEM1NDcuNjUgODkuNzUgNTQ4LjU5IDkyLjgxIDU1MC40OSA5NS40NCBDNTUyLjM4IDk4LjA2IDU1NC45OSAxMDAuMTEgNTU4LjMyIDEwMS41OCBDNTYxLjY0IDEwMy4wNiA1NjUuNDIgMTAzLjc5IDU2OS42NSAxMDMuNzkgQzU3My45NSAxMDMuNzkgNTc3LjcxIDEwMy4wNiA1ODAuOTMgMTAxLjU4IEM1ODQuMTUgMTAwLjExIDU4Ni42NiA5OC4wNiA1ODguNDUgOTUuNDQgQzU5MC4yNCA5Mi44MSA1OTEuMTcgODkuNzcgNTkxLjIzIDg2LjMyIFoiIGZpbGw9IiNjZmZhZmUiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNNTk4LjY4IDUzLjI2IEw1OTguNjggNTUuMDAgTDYwNi44OSA1NS4wMCBMNjA2Ljg5IDUzLjI2IEw2MDMuODMgNTMuMjYgTDYwMy44MyA0NS4wMCBMNjAxLjc0IDQ1LjAwIEw2MDEuNzQgNTMuMjYgWiIgZmlsbD0iI2NmZmFmZSIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik02MDguOTQgNTUuMDAgTDYxMS41NCA1NS4wMCBMNjE0LjMwIDQ4LjI4IEw2MTQuNDEgNDguMjggTDYxNy4xNyA1NS4wMCBMNjE5Ljc4IDU1LjAwIEw2MTkuNzggNDUuMDAgTDYxNy43MyA0NS4wMCBMNjE3LjczIDUxLjUxIEw2MTcuNjQgNTEuNTEgTDYxNS4wNSA0NS4wNSBMNjEzLjY2IDQ1LjA1IEw2MTEuMDcgNTEuNTMgTDYxMC45OSA1MS41MyBMNjEwLjk5IDQ1LjAwIEw2MDguOTQgNDUuMDAgWiIgZmlsbD0iI2NmZmFmZSIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjwvZz48L3N2Zz4=');
  --bv-wordmark-on-light: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjI3LjQgMjcuNCA1OTMuOTggOTMuMiIgd2lkdGg9IjU5My45OCIgaGVpZ2h0PSI5My4yIj4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxNDguMCkgc2NhbGUoMSAtMSkiPgo8Y2lyY2xlIGN4PSI3NC4wMCIgY3k9Ijc0LjAwIiByPSI0NS4wMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDBENEZGIiBzdHJva2Utb3BhY2l0eT0iMC43IiBzdHJva2Utd2lkdGg9IjIuNjAiLz4KPGNpcmNsZSBjeD0iNzQuMDAiIGN5PSI3NC4wMCIgcj0iMzAuMDAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwRDRGRiIgc3Ryb2tlLW9wYWNpdHk9IjEiIHN0cm9rZS13aWR0aD0iMy4yMCIvPgo8cmVjdCB4PSI0NC4wMCIgeT0iNDQuMDAiIHdpZHRoPSI2MC4wMCIgaGVpZ2h0PSI2MC4wMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDBENEZGIiBzdHJva2Utb3BhY2l0eT0iMSIgc3Ryb2tlLXdpZHRoPSIyLjYwIi8+CjxwYXRoIGQ9Ik0xMzcuMDQgNDUuMDAgTDEzNy4wNCAxMDMuMDAgTDE2MC4yNiAxMDMuMDAgQzE2NC41MyAxMDMuMDAgMTY4LjA5IDEwMi4zNyAxNzAuOTQgMTAxLjEwIEMxNzMuNzkgOTkuODQgMTc1LjkzIDk4LjA5IDE3Ny4zNyA5NS44NSBDMTc4LjgwIDkzLjYxIDE3OS41MiA5MS4wNCAxNzkuNTIgODguMTMgQzE3OS41MiA4NS44NyAxNzkuMDcgODMuODggMTc4LjE2IDgyLjE3IEMxNzcuMjYgODAuNDYgMTc2LjAxIDc5LjA2IDE3NC40NCA3Ny45OCBDMTcyLjg2IDc2Ljg5IDE3MS4wNiA3Ni4xMiAxNjkuMDQgNzUuNjcgTDE2OS4wNCA3NS4xMCBDMTcxLjI1IDc1LjAxIDE3My4zMiA3NC4zOSAxNzUuMjYgNzMuMjQgQzE3Ny4xOSA3Mi4wOCAxNzguNzcgNzAuNDcgMTc5Ljk3IDY4LjQxIEMxODEuMTggNjYuMzQgMTgxLjc5IDYzLjg4IDE4MS43OSA2MS4wMyBDMTgxLjc5IDU3Ljk1IDE4MS4wMyA1NS4yMSAxNzkuNTEgNTIuODAgQzE3Ny45OSA1MC40MCAxNzUuNzUgNDguNDkgMTcyLjc4IDQ3LjEwIEMxNjkuODIgNDUuNzAgMTY2LjE2IDQ1LjAwIDE2MS44MiA0NS4wMCBaIE0xNDkuMzAgNTUuMDMgTDE1OS4zMCA1NS4wMyBDMTYyLjcyIDU1LjAzIDE2NS4yMSA1NS42OCAxNjYuNzggNTYuOTkgQzE2OC4zNCA1OC4zMSAxNjkuMTMgNjAuMDYgMTY5LjEzIDYyLjI1IEMxNjkuMTMgNjMuODUgMTY4Ljc0IDY1LjI3IDE2Ny45NyA2Ni41MCBDMTY3LjE5IDY3LjcyIDE2Ni4wOSA2OC42OSAxNjQuNjcgNjkuMzggQzE2My4yNCA3MC4wOCAxNjEuNTUgNzAuNDMgMTU5LjU4IDcwLjQzIEwxNDkuMzAgNzAuNDMgWiBNMTQ5LjMwIDc4LjczIEwxNTguMzkgNzguNzMgQzE2MC4wNyA3OC43MyAxNjEuNTcgNzkuMDMgMTYyLjg4IDc5LjYyIEMxNjQuMjAgODAuMjIgMTY1LjIzIDgxLjA2IDE2Ni4wMCA4Mi4xNiBDMTY2Ljc2IDgzLjI1IDE2Ny4xNSA4NC41NiAxNjcuMTUgODYuMDkgQzE2Ny4xNSA4OC4xOSAxNjYuNDAgODkuODggMTY0LjkyIDkxLjE2IEMxNjMuNDQgOTIuNDUgMTYxLjM0IDkzLjA5IDE1OC42MiA5My4wOSBMMTQ5LjMwIDkzLjA5IFoiIGZpbGw9IiMwYTBhMGYiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNMjA2LjAwIDEwMy4wMCBMMjA2LjAwIDQ1LjAwIEwxOTMuNzMgNDUuMDAgTDE5My43MyAxMDMuMDAgWiIgZmlsbD0iIzBhMGEwZiIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik0yMTcuODggOTIuODkgTDIxNy44OCAxMDMuMDAgTDI2NS41MiAxMDMuMDAgTDI2NS41MiA5Mi44OSBMMjQ3Ljc2IDkyLjg5IEwyNDcuNzYgNDUuMDAgTDIzNS42NCA0NS4wMCBMMjM1LjY0IDkyLjg5IFoiIGZpbGw9IiMwYTBhMGYiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNMjc3LjM4IDQ1LjAwIEwyNzcuMzggMTAzLjAwIEwzMDAuMjYgMTAzLjAwIEMzMDQuNjQgMTAzLjAwIDMwOC4zOSAxMDIuMjIgMzExLjQ5IDEwMC42NiBDMzE0LjYwIDk5LjExIDMxNi45NyA5Ni45MSAzMTguNjAgOTQuMDYgQzMyMC4yMyA5MS4yMiAzMjEuMDUgODcuODkgMzIxLjA1IDg0LjA1IEMzMjEuMDUgODAuMjAgMzIwLjIyIDc2Ljg5IDMxOC41NiA3NC4xMyBDMzE2LjkwIDcxLjM2IDMxNC40OSA2OS4yNCAzMTEuMzUgNjcuNzcgQzMwOC4yMSA2Ni4zMCAzMDQuNDEgNjUuNTYgMjk5Ljk1IDY1LjU2IEwyODQuNjMgNjUuNTYgTDI4NC42MyA3NS40MiBMMjk3Ljk3IDc1LjQyIEMzMDAuMzEgNzUuNDIgMzAyLjI1IDc1Ljc0IDMwMy44MCA3Ni4zOCBDMzA1LjM1IDc3LjAyIDMwNi41MSA3Ny45OCAzMDcuMjcgNzkuMjcgQzMwOC4wNCA4MC41NSAzMDguNDIgODIuMTUgMzA4LjQyIDg0LjA1IEMzMDguNDIgODUuOTggMzA4LjA0IDg3LjYwIDMwNy4yNyA4OC45MiBDMzA2LjUxIDkwLjI1IDMwNS4zNSA5MS4yNSAzMDMuNzkgOTEuOTQgQzMwMi4yMyA5Mi42MyAzMDAuMjcgOTIuOTcgMjk3LjkxIDkyLjk3IEwyODkuNjQgOTIuOTcgTDI4OS42NCA0NS4wMCBaIE0zMDguNzAgNzEuMzkgTDMyMy4xMiA0NS4wMCBMMzA5LjU4IDQ1LjAwIEwyOTUuNDggNzEuMzkgWiIgZmlsbD0iIzBhMGEwZiIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik0zNjkuNTMgMTAzLjAwIEwzODEuNzkgMTAzLjAwIEwzODEuNzkgNjUuMzMgQzM4MS43OSA2MS4xMCAzODAuNzkgNTcuNDAgMzc4Ljc3IDU0LjIzIEMzNzYuNzYgNTEuMDYgMzczLjk2IDQ4LjU5IDM3MC4zNSA0Ni44MyBDMzY2Ljc0IDQ1LjA2IDM2Mi41NCA0NC4xOCAzNTcuNzUgNDQuMTggQzM1Mi45MyA0NC4xOCAzNDguNzIgNDUuMDYgMzQ1LjEyIDQ2LjgzIEMzNDEuNTEgNDguNTkgMzM4LjcxIDUxLjA2IDMzNi43MCA1NC4yMyBDMzM0LjcwIDU3LjQwIDMzMy43MCA2MS4xMCAzMzMuNzAgNjUuMzMgTDMzMy43MCAxMDMuMDAgTDM0NS45NyAxMDMuMDAgTDM0NS45NyA2Ni4zOCBDMzQ1Ljk3IDY0LjE3IDM0Ni40NSA2Mi4yMSAzNDcuNDIgNjAuNDkgQzM0OC40MCA1OC43NyAzNDkuNzcgNTcuNDIgMzUxLjU0IDU2LjQ0IEMzNTMuMzIgNTUuNDYgMzU1LjM5IDU0Ljk3IDM1Ny43NSA1NC45NyBDMzYwLjEzIDU0Ljk3IDM2Mi4yMCA1NS40NiAzNjMuOTYgNTYuNDQgQzM2NS43MyA1Ny40MiAzNjcuMTAgNTguNzcgMzY4LjA3IDYwLjQ5IEMzNjkuMDQgNjIuMjEgMzY5LjUzIDY0LjE3IDM2OS41MyA2Ni4zOCBaIiBmaWxsPSIjMGEwYTBmIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTQwNi4zNCAxMDMuMDAgTDQyMC4zNiA1OC45MyBMNDIwLjkwIDU4LjkzIEw0MzQuOTQgMTAzLjAwIEw0NDguNTQgMTAzLjAwIEw0MjguNTQgNDUuMDAgTDQxMi43NCA0NS4wMCBMMzkyLjcyIDEwMy4wMCBaIiBmaWxsPSIjMGEwYTBmIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTQ3MS43NSAxMDMuMDAgTDQ3MS43NSA0NS4wMCBMNDU5LjQ5IDQ1LjAwIEw0NTkuNDkgMTAzLjAwIFoiIGZpbGw9IiMwYTBhMGYiIGZpbGwtcnVsZT0ibm9uemVybyIvPgo8cGF0aCBkPSJNNTIxLjY4IDEwMy4wMCBMNTMzLjk0IDEwMy4wMCBMNTMzLjk0IDY1LjMzIEM1MzMuOTQgNjEuMTAgNTMyLjkzIDU3LjQwIDUzMC45MiA1NC4yMyBDNTI4LjkxIDUxLjA2IDUyNi4xMCA0OC41OSA1MjIuNTAgNDYuODMgQzUxOC44OSA0NS4wNiA1MTQuNjkgNDQuMTggNTA5Ljg5IDQ0LjE4IEM1MDUuMDggNDQuMTggNTAwLjg3IDQ1LjA2IDQ5Ny4yNiA0Ni44MyBDNDkzLjY2IDQ4LjU5IDQ5MC44NSA1MS4wNiA0ODguODUgNTQuMjMgQzQ4Ni44NSA1Ny40MCA0ODUuODUgNjEuMTAgNDg1Ljg1IDY1LjMzIEw0ODUuODUgMTAzLjAwIEw0OTguMTEgMTAzLjAwIEw0OTguMTEgNjYuMzggQzQ5OC4xMSA2NC4xNyA0OTguNjAgNjIuMjEgNDk5LjU3IDYwLjQ5IEM1MDAuNTQgNTguNzcgNTAxLjkyIDU3LjQyIDUwMy42OSA1Ni40NCBDNTA1LjQ3IDU1LjQ2IDUwNy41MyA1NC45NyA1MDkuODkgNTQuOTcgQzUxMi4yNyA1NC45NyA1MTQuMzUgNTUuNDYgNTE2LjExIDU2LjQ0IEM1MTcuODggNTcuNDIgNTE5LjI1IDU4Ljc3IDUyMC4yMiA2MC40OSBDNTIxLjE5IDYyLjIxIDUyMS42OCA2NC4xNyA1MjEuNjggNjYuMzggWiIgZmlsbD0iIzBhMGEwZiIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik01NzkuNDcgODYuMzIgQzU3OS4yNSA4OC42MCA1NzguMjcgOTAuMzggNTc2LjU2IDkxLjY0IEM1NzQuODQgOTIuOTEgNTcyLjUxIDkzLjU0IDU2OS41NiA5My41NCBDNTY3LjU2IDkzLjU0IDU2NS44NyA5My4yNiA1NjQuNDkgOTIuNzEgQzU2My4xMSA5Mi4xNSA1NjIuMDYgOTEuMzggNTYxLjMzIDkwLjQwIEM1NjAuNjEgODkuNDIgNTYwLjI0IDg4LjMwIDU2MC4yNCA4Ny4wNiBDNTYwLjIxIDg2LjAyIDU2MC40MyA4NS4xMSA1NjAuOTEgODQuMzQgQzU2MS4zOSA4My41NiA1NjIuMDYgODIuOTAgNTYyLjkwIDgyLjM0IEM1NjMuNzUgODEuNzggNTY0Ljc0IDgxLjMwIDU2NS44NSA4MC45MCBDNTY2Ljk2IDgwLjQ5IDU2OC4xNSA4MC4xNSA1NjkuNDIgNzkuODYgTDU3NC42MyA3OC42MiBDNTc3LjE2IDc4LjA1IDU3OS40OCA3Ny4yOSA1ODEuNjAgNzYuMzUgQzU4My43MSA3NS40MSA1ODUuNTQgNzQuMjUgNTg3LjA5IDcyLjg3IEM1ODguNjQgNzEuNDkgNTg5Ljg0IDY5Ljg3IDU5MC43MCA2OC4wMCBDNTkxLjU2IDY2LjEzIDU5Mi4wMCA2My45OCA1OTIuMDIgNjEuNTcgQzU5Mi4wMCA1OC4wMiA1OTEuMTAgNTQuOTUgNTg5LjMxIDUyLjM1IEM1ODcuNTMgNDkuNzUgNTg0Ljk2IDQ3Ljc0IDU4MS42MSA0Ni4zMiBDNTc4LjI2IDQ0Ljg5IDU3NC4yMiA0NC4xOCA1NjkuNTAgNDQuMTggQzU2NC44MiA0NC4xOCA1NjAuNzUgNDQuOTAgNTU3LjI4IDQ2LjMzIEM1NTMuODIgNDcuNzcgNTUxLjEyIDQ5Ljg5IDU0OS4xOCA1Mi43MiBDNTQ3LjI1IDU1LjU0IDU0Ni4yMyA1OS4wNCA1NDYuMTQgNjMuMjEgTDU1OC4wMSA2My4yMSBDNTU4LjE0IDYxLjI3IDU1OC43MCA1OS42NSA1NTkuNjkgNTguMzUgQzU2MC42OCA1Ny4wNiA1NjIuMDEgNTYuMDkgNTYzLjY4IDU1LjQ0IEM1NjUuMzUgNTQuNzggNTY3LjI1IDU0LjQ2IDU2OS4zNiA1NC40NiBDNTcxLjQ0IDU0LjQ2IDU3My4yNSA1NC43NiA1NzQuNzkgNTUuMzcgQzU3Ni4zMiA1NS45NyA1NzcuNTIgNTYuODEgNTc4LjM3IDU3Ljg5IEM1NzkuMjIgNTguOTYgNTc5LjY0IDYwLjIwIDU3OS42NCA2MS42MCBDNTc5LjY0IDYyLjkwIDU3OS4yNiA2My45OSA1NzguNTAgNjQuODggQzU3Ny43MyA2NS43NyA1NzYuNjIgNjYuNTIgNTc1LjE1IDY3LjE1IEM1NzMuNjkgNjcuNzcgNTcxLjkwIDY4LjM0IDU2OS43OSA2OC44NSBMNTYzLjQ3IDcwLjQzIEM1NTguNTggNzEuNjIgNTU0LjcyIDczLjQ4IDU1MS44OSA3Ni4wMSBDNTQ5LjA2IDc4LjU0IDU0Ny42NSA4MS45NSA1NDcuNjcgODYuMjMgQzU0Ny42NSA4OS43NSA1NDguNTkgOTIuODEgNTUwLjQ5IDk1LjQ0IEM1NTIuMzggOTguMDYgNTU0Ljk5IDEwMC4xMSA1NTguMzIgMTAxLjU4IEM1NjEuNjQgMTAzLjA2IDU2NS40MiAxMDMuNzkgNTY5LjY1IDEwMy43OSBDNTczLjk1IDEwMy43OSA1NzcuNzEgMTAzLjA2IDU4MC45MyAxMDEuNTggQzU4NC4xNSAxMDAuMTEgNTg2LjY2IDk4LjA2IDU4OC40NSA5NS40NCBDNTkwLjI0IDkyLjgxIDU5MS4xNyA4OS43NyA1OTEuMjMgODYuMzIgWiIgZmlsbD0iIzBhMGEwZiIgZmlsbC1ydWxlPSJub256ZXJvIi8+CjxwYXRoIGQ9Ik01OTguNjggNTMuMjYgTDU5OC42OCA1NS4wMCBMNjA2Ljg5IDU1LjAwIEw2MDYuODkgNTMuMjYgTDYwMy44MyA1My4yNiBMNjAzLjgzIDQ1LjAwIEw2MDEuNzQgNDUuMDAgTDYwMS43NCA1My4yNiBaIiBmaWxsPSIjNzE3MTdhIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPHBhdGggZD0iTTYwOC45NCA1NS4wMCBMNjExLjU0IDU1LjAwIEw2MTQuMzAgNDguMjggTDYxNC40MSA0OC4yOCBMNjE3LjE3IDU1LjAwIEw2MTkuNzggNTUuMDAgTDYxOS43OCA0NS4wMCBMNjE3LjczIDQ1LjAwIEw2MTcuNzMgNTEuNTEgTDYxNy42NCA1MS41MSBMNjE1LjA1IDQ1LjA1IEw2MTMuNjYgNDUuMDUgTDYxMS4wNyA1MS41MyBMNjEwLjk5IDUxLjUzIEw2MTAuOTkgNDUuMDAgTDYwOC45NCA0NS4wMCBaIiBmaWxsPSIjNzE3MTdhIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz4KPC9nPjwvc3ZnPg==');

  /* Default (and the [data-theme='light'] case). Overridden below per theme. */
  --bv-wordmark: var(--bv-wordmark-on-light);

  /* The wordmark's INK bounds, not the shipped viewBox. The published asset
     pads the art inside a 644.6x148 canvas (and the on-dark variant paints a
     #0a0a0f plate across it), so a box sized to that canvas renders the mark
     ~40% smaller than the space it occupies and opens a gap beside it. The
     data URIs above are re-cropped to the measured ink, plate stripped, so a
     height set here is the height the mark actually draws at. */
  --bv-wordmark-ratio: 593.98 / 93.2;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --bv-wordmark: var(--bv-wordmark-on-dark);
  }
}

:root[data-theme='dark'] {
  --bv-wordmark: var(--bv-wordmark-on-dark);
}

:root[data-theme='light'] {
  --bv-wordmark: var(--bv-wordmark-on-light);
}

/* Shared wordmark box. Height is set by each use site. */
.tsd-page-toolbar a.title::before,
.tsd-page-title > h1:first-child::before {
  content: '';
  aspect-ratio: var(--bv-wordmark-ratio);
  flex: 0 0 auto;
  background-image: var(--bv-wordmark);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
}

/* Header: the wordmark, then typedoc's `name`. */
.tsd-page-toolbar a.title {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.tsd-page-toolbar a.title::before {
  height: 1.2rem;
}

/*
 * Index page title: same lockup, at heading scale.
 *
 * Scoped to `h1:first-child` because the index page is the ONLY page whose
 * .tsd-page-title leads with the h1. Every other page emits a breadcrumb <ul>
 * first, so this cannot leak onto class, function or module pages.
 */
.tsd-page-title > h1:first-child {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.42em;
}

.tsd-page-title > h1:first-child::before {
  /* Cap-height match: the wordmark reads as part of the line, not an icon
     bolted onto it. Sized in `em` so it tracks the h1 at every breakpoint. */
  height: 1.3em;
}

/*
 * Phones.
 *
 * The wordmark is a 6.4:1 asset sized by `height` with `aspect-ratio`, so its WIDTH is
 * derived. At heading scale that came to ~248px, and with `flex: 0 0 auto` it could not
 * shrink: the h1 lockup exceeded a 393px viewport, the document became wider than the
 * screen, and the toolbar — laid out to document width — pushed its right-aligned search
 * and menu widgets off-screen. The menu widget is the ONLY way to open the API sidebar on
 * mobile, so a decorative heading made the entire navigation unreachable on a phone.
 *
 * Sizing the lockup down is the fix; `max-width` is the belt-and-braces so a future asset
 * with a wider ratio cannot reintroduce it.
 */
@media (max-width: 769px) {
  .tsd-page-title > h1:first-child {
    font-size: 1.5rem;
    overflow-wrap: anywhere;
  }

  .tsd-page-title > h1:first-child::before {
    height: 1.15em;
    max-width: 100%;
  }

  /* The toolbar lockup is small already, but it shares the row with the widgets that
     must stay reachable, so it never gets to push them out either. */
  .tsd-page-toolbar a.title {
    min-width: 0;
    overflow: hidden;
  }
}

/*
 * Phone drawer: API navigation first.
 *
 * `.col-sidebar` holds `.page-menu` then `.site-menu` in that DOM order, which is right on a
 * desktop where the two sit in separate columns. Below 770px the theme collapses both into
 * one off-canvas drawer, so that order puts THIS PAGE's contents at the top and the whole API
 * tree underneath it. On a long page the tree is far enough down to look absent: the drawer
 * opens, shows a table of contents, and a reader concludes the API navigation is missing.
 *
 * `.col-sidebar` is `display: block`, so `order` alone would do nothing; the flex context is
 * what makes it apply. Loaded from custom.css, which the theme links last, so this wins
 * without !important.
 */
@media (max-width: 769px) {
  .col-sidebar {
    display: flex;
    flex-direction: column;
  }

  .site-menu {
    order: -1;
  }
}
