@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("/assets/jbm.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } :root { --sl-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --sl-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; --sl-content-width: 54rem; --sl-sidebar-width: 18.5rem; } /* Docs share the site's ground and mauve. Prose stays in a reading sans rather than the marketing mono — docs is a tool, not a statement. The ramp is the marketing scale, not a separate one: the same near-neutral ground and the same text triad, so the two surfaces cannot drift apart on the next palette change. Chroma is drained for the reason it was drained there — saturated blue at low luminance softens the edges of light text, and a side-by-side read easier without it. Surfaces are luminance-matched to what they replace; text is taken straight from the marketing scale, which lands every step at or above its old contrast except gray-3, and that one stays clear of AA. Contrast on the ground: white 14.7, gray-1 11.9, gray-2 9.3, gray-3 5.3, gray-4 4.2, accent 8.8. */ :root, :root[data-theme="dark"] { --sl-color-accent-low: #3f364b; --sl-color-accent: #cba6f7; --sl-color-accent-high: #ddc4fb; --sl-color-white: #eae8ee; --sl-color-gray-1: #d5d1dd; --sl-color-gray-2: #bdb9c9; --sl-color-gray-3: #8e8a98; --sl-color-gray-4: #7c7887; --sl-color-gray-5: #4a4851; --sl-color-gray-6: #35353d; --sl-color-gray-7: #26262b; --sl-color-black: #17171a; --sl-color-bg: #17171a; --sl-color-bg-nav: #1e1e22; --sl-color-bg-sidebar: #1e1e22; --sl-color-bg-inline-code: #26262b; --sl-color-hairline: #26262b; --sl-color-hairline-light: #35353d; } /* the brand display face, same pairing as the marketing pages: Archivo for the branded headings, mono for everything code-adjacent */ :root { --sl-font-display: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif; } /* paper — the same ground the marketing pages use, with the mauve dropped to a value that holds on a light background */ :root[data-theme="light"] { --sl-color-accent-low: #ded3f2; --sl-color-accent: #8839ef; --sl-color-accent-high: #5b2ba3; --sl-color-white: #15140f; --sl-color-gray-1: #26241d; --sl-color-gray-2: #55534a; --sl-color-gray-3: #6f6c60; --sl-color-gray-4: #86826f; --sl-color-gray-5: #a8a493; --sl-color-gray-6: #cbc5b6; --sl-color-gray-7: #e2ded4; --sl-color-black: #efece5; --sl-color-bg: #efece5; --sl-color-bg-nav: #e7e3da; --sl-color-bg-sidebar: #e7e3da; --sl-color-bg-inline-code: #ddd8cc; --sl-color-hairline: #e2ded4; --sl-color-hairline-light: #cbc5b6; } .site-title { font-family: var(--sl-font-mono); font-weight: 700; letter-spacing: -0.04em; } .docs-brand-logo { position: relative; display: inline-block; width: 32px; height: 32px; flex: 0 0 auto; border: 1px solid var(--sl-color-hairline); border-radius: 4px; background: var(--sl-color-bg-nav); } .docs-brand-logo::before { content: ""; position: absolute; inset: 2px; background: var(--sl-color-white); -webkit-mask: url("/assets/agent-icons/herdr-mask.svg") center / contain no-repeat; mask: url("/assets/agent-icons/herdr-mask.svg") center / contain no-repeat; } .docs-hero-logo { display: block; width: min(20rem, 62vw); aspect-ratio: 1; background: var(--sl-color-white); -webkit-mask: url("/assets/agent-icons/herdr-mask.svg") center / contain no-repeat; mask: url("/assets/agent-icons/herdr-mask.svg") center / contain no-repeat; } .sl-markdown-content { font-size: 1rem; line-height: 1.65; } .sl-markdown-content h1, .hero h1 { letter-spacing: -0.03em; line-height: 1.1; font-weight: 900; font-size: clamp(2rem, 5vw, 3.2rem); font-family: var(--sl-font-display); letter-spacing: -0.045em; } .sl-markdown-content h2 { margin-top: 2.4rem; letter-spacing: -0.03em; font-family: var(--sl-font-display); font-weight: 800; } .sl-markdown-content h3 { letter-spacing: -0.01em; font-family: var(--sl-font-mono); font-weight: 400; } .sl-markdown-content > p:first-child { font-size: 1.05rem; color: var(--sl-color-gray-1); } #starlight__sidebar a[aria-current="page"] { background: color-mix(in srgb, var(--sl-color-accent) 8%, transparent); color: var(--sl-color-accent-high); box-shadow: inset 2px 0 0 var(--sl-color-accent); } .mobile-doc-shots { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; margin: 1.25rem 0; } .mobile-doc-shots figure { margin: 0; } .mobile-doc-shots img { display: block; width: 100%; border: 1px solid var(--sl-color-hairline); border-radius: 4px; } .mobile-doc-shots figcaption { margin-top: 0.45rem; color: var(--sl-color-gray-3); font-size: var(--sl-text-sm); text-align: center; } .sl-markdown-content a:not(:where(.not-content *)) { text-decoration-thickness: 1px; text-underline-offset: 0.18em; color: var(--sl-color-accent); } .sl-markdown-content .heading-link-copy-feedback { position: absolute; z-index: 10; bottom: calc(100% + 0.4rem); inset-inline-start: 50%; padding: 0.25rem 0.45rem; border: 1px solid var(--sl-color-hairline-light); border-radius: 3px; background: var(--sl-color-bg-nav); color: var(--sl-color-white); font-family: var(--sl-font); font-size: var(--sl-text-xs); font-weight: 500; line-height: 1.2; white-space: nowrap; pointer-events: none; transform: translateX(-50%); animation: heading-link-copied 1.4s ease both; } @keyframes heading-link-copied { 0% { opacity: 0; transform: translate(-50%, 0.25rem); } 15%, 75% { opacity: 1; transform: translate(-50%, 0); } 100% { opacity: 0; transform: translate(-50%, -0.15rem); } } @media (prefers-reduced-motion: reduce) { .sl-markdown-content .heading-link-copy-feedback { animation: none; } } .sl-markdown-content code:not(:where(.not-content *)) { border: 1px solid var(--sl-color-hairline); border-radius: 2px; font-size: 0.88em; background: var(--sl-color-bg-inline-code); } .sl-markdown-content pre { border: 1px solid var(--sl-color-hairline); border-radius: 4px; } .expressive-code { margin: 1rem 0 1.35rem; } .expressive-code .frame { border: 1px solid var(--sl-color-hairline) !important; border-radius: 4px !important; box-shadow: none !important; overflow: hidden; } .expressive-code .frame.is-terminal { --button-spacing: 0.4rem; } .expressive-code .frame.is-terminal .header { display: none; } .expressive-code .frame pre { border: 0 !important; border-radius: 0 !important; } .expressive-code .frame.has-title:not(.is-terminal) .header { background: var(--sl-color-bg-nav) !important; border-color: var(--sl-color-hairline) !important; } .sl-markdown-content .card { border-color: var(--sl-color-hairline); background: linear-gradient(180deg, color-mix(in srgb, var(--sl-color-accent) 4%, transparent), transparent 58%), var(--sl-color-black); border-radius: 4px; } .sl-markdown-content .card .title { color: var(--sl-color-white); } .hero img { image-rendering: auto; border-radius: 4px; }