/* Shared typography and fine rules for the public footer destinations. */
html body.site-page {
    --site-bg: #030303;
    --site-ink: #e8e9e4;
    --site-muted: #a0a39b;
    --site-line: #292c28;
    --site-accent: #5ab9a9;
    --site-surface: #0a0b0a;
    background: var(--site-bg);
    color: var(--site-ink);
    font-family: 'IBM Plex Sans', sans-serif;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
html:not(.dark) body.site-adaptive {
    --site-bg: #fff;
    --site-ink: #262626;
    --site-muted: #62645f;
    --site-line: #dcded8;
    --site-accent: #0f766e;
    --site-surface: #f5f6f2;
}
.site-page a:focus-visible,
.site-page button:focus-visible,
.site-page summary:focus-visible {
    outline: 2px solid var(--site-accent);
    outline-offset: 4px;
}
.site-page main,
.site-page article { min-width: 0; }
.site-page h1,
.site-page h2,
.site-page h3 { text-wrap: balance; overflow-wrap: anywhere; }
.site-page h1 {
    font-size: clamp(2.2rem, 4.6vw, 3.5rem);
    font-weight: 400;
    line-height: 1.13;
    letter-spacing: -0.04em;
}
.site-page h2,
.site-page .prose h2 {
    color: var(--site-ink);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: -0.03em;
}
.site-page h3,
.site-page .prose h3 { color: var(--site-ink); font-weight: 500; letter-spacing: -0.015em; }
.site-page .prose h2 { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--site-line); }
.site-page .prose p,
.site-page .prose ul,
.site-page .prose ol { color: var(--site-muted); line-height: 1.85; }
.site-page .prose strong { color: var(--site-ink); font-weight: 500; }
html .site-page .text-neutral-400,
html .site-page .text-gray-600 { color: var(--site-muted); }
html .site-page .text-brand-400,
html .site-page .text-brand-500 { color: var(--site-accent); }
.site-page .site-nav {
    background: var(--site-bg);
    border-bottom: 1px solid var(--site-line);
    backdrop-filter: none;
}
.site-page .site-nav > div { height: 76px; }
.site-page .site-footer { border-top: 1px solid var(--site-line); background: var(--site-bg); }
.site-page .site-footer h4,
.site-page .site-footer .font-display {
    color: var(--site-muted);
    font: 400 11px/1.6 'JetBrains Mono', monospace;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.site-page .site-footer a { text-underline-offset: 5px; }
.site-page .site-footer a:hover { color: var(--site-accent); }
.site-page .site-rule { border-color: var(--site-line); border-width: 1px 0 0; }
.site-page .site-block,
html .site-page .card {
    min-width: 0;
    padding: 24px 0;
    border: 0;
    border-top: 1px solid var(--site-line);
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
    box-shadow: none;
    text-align: left;
}
.site-page .site-block-body { padding: 0; }
.site-page .site-note { padding: 8px 0 8px 20px; border-top: 0; border-left: 1px solid var(--site-accent); }
html .site-page .blog-card:hover,
html .site-page .card:hover { transform: none; box-shadow: none; border-color: var(--site-accent); }
.site-page .site-icon {
    width: 24px;
    height: 24px;
    margin-inline: 0;
    background: transparent;
    border-radius: 0;
    font: 400 14px 'JetBrains Mono', monospace;
}
.site-page .site-eyebrow {
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--site-muted);
    font: 400 11px/1.6 'JetBrains Mono', monospace;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.site-page .site-label {
    padding: 0;
    background: transparent;
    border-radius: 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 400;
}
.site-page .site-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 10px 18px;
    border: 1px solid var(--site-line);
    border-radius: 3px;
    background: transparent;
    color: var(--site-ink);
    font-size: 14px;
    font-weight: 400;
    transition: border-color 150ms, color 150ms;
}
.site-page .site-button:hover { background: transparent; border-color: var(--site-accent); color: var(--site-accent); }
.site-page .site-table { overflow-x: auto; }
.site-page table { border-collapse: collapse; width: 100%; }
.site-page th,
.site-page td { border-color: var(--site-line); vertical-align: top; }
.site-page th { font-weight: 500; }
.site-page code,
.site-page pre,
.site-page .font-mono { font-family: 'JetBrains Mono', monospace; }
.site-page pre,
.site-page pre[class*="language-"] {
    padding: 24px 20px;
    margin-block: 20px;
    border: 0;
    border-block: 1px solid var(--site-line);
    border-radius: 0;
    background: var(--site-surface);
    color: var(--site-ink);
    font: 400 13px/1.85 'JetBrains Mono', monospace;
    overflow-x: auto;
}
.site-page pre code { padding: 0; background: transparent; color: inherit; font-size: inherit; line-height: inherit; }
.site-page :not(pre) > code { background: transparent; border-radius: 0; overflow-wrap: anywhere; }
.site-page .site-metric { font-family: 'JetBrains Mono', monospace; font-weight: 400; font-variant-numeric: tabular-nums; }
.site-page .billing-switch { gap: 24px; padding: 0; border-radius: 0; border-bottom: 1px solid var(--site-line); background: transparent; }
.site-page .billing-tab {
    padding: 10px 0;
    margin-bottom: -1px;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--site-muted);
    font: 400 12px/1.6 'JetBrains Mono', monospace;
}
.site-page .billing-tab.active { background: transparent; color: var(--site-ink); border-bottom-color: var(--site-accent); }
.site-page .billing-tab .billing-save { color: var(--site-accent); }
.site-page .timeline-line { width: 1px; background: var(--site-line); }
.site-page .site-timeline-marker { width: 7px; height: 7px; border: 0; background: var(--site-accent); animation: none; }
.site-page .reveal { opacity: 1; transform: none; transition: none; }
.site-page .site-sidebar {
    width: 264px;
    top: 76px;
    height: calc(100dvh - 76px);
    background: transparent;
    border-right: 1px solid var(--site-line);
    scrollbar-width: thin;
    scrollbar-color: var(--site-line) transparent;
}
.site-page .sidebar-link { border-radius: 0; background: transparent; }
.site-page .sidebar-link:hover,
.site-page .sidebar-link.active { color: var(--site-accent); background: rgb(90 185 169 / 10%); }
.site-page .site-reference-layout { padding-top: 76px; }
.site-page section[id] { scroll-margin-top: 100px; }
.site-page .site-sidebar h3 { color: var(--site-muted); font: 400 11px/1.6 'JetBrains Mono', monospace; letter-spacing: 0.1em; }
.site-page .site-api-content section + section { padding-top: 32px; border-top: 1px solid var(--site-line); }
.site-page [class*="method-"] { background: transparent; padding: 0; border-radius: 0; font-weight: 400; }
html .site-page .filter-btn {
    padding: 10px 0;
    margin-inline: 8px;
    background: transparent;
    border-radius: 0;
    border-bottom: 1px solid transparent;
    color: var(--site-muted);
    font: 400 12px/1.6 'JetBrains Mono', monospace;
}
html .site-page .filter-btn[aria-pressed="true"] { color: var(--site-ink); border-bottom-color: var(--site-accent); }
.site-page .pagination-btn { background: transparent; border: 1px solid var(--site-line); border-radius: 0; font: 12px 'JetBrains Mono', monospace; }
.site-page .pagination-btn.active { background: transparent; color: var(--site-accent); border-color: var(--site-accent); }
.site-page .theme-toggle-knob { box-shadow: none; }
@media (min-width: 1024px) {
    .site-page .site-api-content,
    .site-page .site-api-footer { margin-left: 264px; }
}
@media (max-width: 640px) {
    .site-page .site-nav .dr-brand { width: 128px; }
    .site-page .site-block { padding-block: 20px; }
    .site-page .site-button { padding: 8px 12px; font-size: 13px; }
    .site-page pre { padding-inline: 14px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    html:has(.site-page) { scroll-behavior: auto; }
    .site-page *, .site-page *::before, .site-page *::after { animation: none !important; transition: none !important; }
}
