@font-face {
    font-family: 'Source Serif 4';
    font-style: normal;
    font-weight: 200 900;
    font-display: swap;
    src: url('../fonts/source-serif-4-latin-var.woff2') format('woff2');
}

:root {
    --font-display: 'Source Serif 4', Georgia, 'Times New Roman', serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    --font-mono: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --display-weight: 600;
    --display-tracking: -0.01em;
    --hairline: #E5DFD6;
}

html { font-synthesis: none; }

h1, h2, h3 { font-optical-sizing: auto; }

.logo, .rv-hero .wordmark strong, .rv-footer .brand strong { font-family: var(--font-body); }

.rv-hero-split { padding: calc(var(--nav-height) + 2rem) 0 2rem; }
.rv-hero-split .wrap {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 1.5rem 3rem;
    align-items: end;
}
.rv-hero-split h1 {
    font-weight: 550;
    letter-spacing: -0.015em;
    line-height: 1.08;
    font-size: clamp(2.125rem, 1.3rem + 2.6vw, 3.125rem);
    max-width: none;
    margin-bottom: 0;
}
.rv-hero-split .lede { font-size: 1.0625rem; margin-bottom: 1.25rem; max-width: 44ch; }
.rv-hero-split .cta-buttons { gap: 0.5rem; }
.rv-hero-split .btn { padding: 0.75rem 1.25rem; }

.rv-compare-tray { padding-top: 0.5rem; }
.rv-tray {

    border: 1px solid var(--hairline);
    border-radius: 12px;
    background: #FFFFFF;
    padding: 1.25rem 1.5rem 1.25rem;
}
.rv-cats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding-bottom: 1rem;
    margin-bottom: 1.125rem;
    border-bottom: 1px solid var(--border-light);
}
.rv-cats .kicker { margin: 0; }
.rv-cats .rv-labels { margin: 0; gap: 0.375rem; }
.rv-cats .rv-label, .rv-cats .rv-label:nth-child(2) { font-size: 0.9375rem; padding: 0.25rem 0.75rem; }
.rv-cats .note { font-size: 0.875rem; color: var(--text-secondary); }
.rv-chainblock {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 1.5rem 2.5rem;
    align-items: start;
}
.rv-chainblock .kicker { margin-bottom: 0.5rem; }
.rv-chaintext .rv-story { margin-bottom: 0.75rem; }
.rv-chainblock .rv-chain > li { grid-template-columns: 32px 8rem minmax(0, 1fr); }

.rv-legend { font-size: 0.9375rem; color: var(--text-secondary); margin-top: 0.5rem; }

code.rv-id {
    font-family: var(--font-mono);
    font-size: 0.8125em;
    font-weight: 600;
    padding: 0.05em 0.4em;
    border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
    border-radius: 4px;
    background: #FFFFFF;
    color: var(--hue, var(--stage-b));
    white-space: nowrap;
}

.rv-section h2,
main.tp-container .tp-section h2,
main.tp-container .tp-cite summary {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.rv-section h2::after,
main.tp-container .tp-section h2::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--hairline);
}

main.tp-container .tp-cite summary::after { order: 1; margin-left: 0; }
main.tp-container .tp-cite summary::before {
    content: "";
    order: 2;
    flex: 1;
    height: 1px;
    background: var(--hairline);
}
.rv-prose p a { color: var(--link); }

@media (max-width: 980px) {
    .rv-hero-split .wrap { grid-template-columns: 1fr; }
    .rv-chainblock { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .rv-tray { padding: 1rem; }
    .rv-chainblock .rv-chain > li { grid-template-columns: 32px minmax(0, 1fr); }
}

.rv-chain .rv-stagename { color: var(--text-primary); }
a.rv-stage .go { color: var(--link); }
a.rv-stage:hover { border-color: var(--primary); }
.rv-seq small { font-style: normal; font-size: 0.875rem; }
.rv-legend { gap: 0.25rem 1rem; }
.rv-legend .lg { display: inline-flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.rv-legend .rv-key { margin-left: 0; }

button.rv-tech {
    font: inherit;
    font-size: 0.9375rem;
    cursor: pointer;
    text-align: left;
}

button.rv-tech:focus-visible, .rv-def a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

.rv-def {
    flex-basis: 100%;
    grid-column: 2 / -1;
    margin: 0.5rem 0 0.25rem;
    padding: 0.75rem 1rem;
    background: #FFFFFF;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    max-width: 60ch;
}
.rv-def[hidden] { display: none; }
.rv-def .def-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; margin-bottom: 0.25rem; }
.rv-def .def-id { font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 600; }
.rv-def .def-name { font-weight: 600; }
.rv-def p { font-size: 0.9375rem; color: var(--text-primary); line-height: 1.55; margin: 0 0 0.375rem; }
.rv-def a { color: var(--link); font-size: 0.9375rem; font-weight: 500; }

main.tp-container .tp-header h1 { font-family: var(--font-display); font-weight: 550; letter-spacing: -0.015em; }
main.tp-container .tp-section h2,
main.tp-container .tp-cite summary { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.01em; }
main.tp-container .tp-tag { background: rgba(139, 115, 85, 0.08); color: var(--text-secondary); }

main.tp-container .tp-sublist li { padding: 0.5rem 0; }
main.tp-container .tp-sublist .tp-subdesc { margin-top: 0.375rem; }
main.tp-container .tp-pagenav > div { display: flex; flex-direction: column; gap: 0.375rem; max-width: 48%; }
main.tp-container .tp-pagenav > .tp-navnext { align-items: flex-end; text-align: right; }
main.tp-container .tp-breadcrumb a { color: var(--text-secondary); }

.rv-compare-tray h2 { max-width: none; font-size: 1.625rem; font-weight: 600; letter-spacing: -0.01em; }
main.tp-container .tp-description a:not(.rv-pill) { color: var(--link); text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }

.rv-chain-toggle { display: none; }

@media (max-width: 640px) {
    .rv-chain-toggle {
        display: inline-flex;
        margin-top: 0.75rem;
        font: inherit;
        font-size: 0.9375rem;
        font-weight: 600;
        color: var(--link);
        background: #FFFFFF;
        border: 1px solid var(--hairline);
        border-radius: 8px;
        padding: 0.5rem 0.875rem;
        cursor: pointer;
    }
    .rv-chain-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

    .rv-chainblock.is-condensed .rv-legend-block,
    .rv-chainblock.is-condensed .rv-seq small { display: none; }

    .rv-chainblock.is-condensed .rv-stagename,
    .rv-chainblock.is-condensed .rv-tech .pill-name {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .rv-chainblock.is-condensed .rv-chain > li { grid-template-columns: 32px minmax(0, 1fr); padding: 0.25rem 0; }
    .rv-chainblock.is-condensed .rv-chain > li > .rv-techs { grid-column: 2; }
    .rv-chainblock.is-condensed .rv-seq { flex-direction: row; flex-wrap: wrap; gap: 0.375rem; }
    .rv-chainblock.is-condensed .rv-seq > li { padding: 0 0 0 1.5rem; }
    .rv-chainblock.is-condensed .rv-seq > li::after { display: none; }
    .rv-chainblock.is-condensed .rv-def { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .rv-hero-split { padding: calc(var(--nav-height) + 1.25rem) 0 1.25rem; }
    .rv-hero-split .wrap { gap: 0.75rem; }
    .rv-hero .wordmark { margin-bottom: 0.5rem; gap: 0.25rem 0.5rem; }
    .rv-hero .wordmark strong { font-size: 1.125rem; }
    .rv-hero .wordmark span { font-size: 0.8125rem; }
    .rv-hero-split h1 { font-size: 1.875rem; }
    .rv-hero-split .lede { font-size: 1rem; margin-bottom: 1rem; }
    .rv-hero-split .btn { padding: 0.625rem 1rem; }
    .rv-compare-tray h2 { font-size: 1.375rem; margin-bottom: 0.875rem; }
    .rv-cats { padding-bottom: 0.75rem; margin-bottom: 0.75rem; }
}

.rv-tech, a.rv-stage { transition: none; }

.rv-letter { font-family: var(--font-body); }

h1, h2, h3 { text-wrap: balance; }

.tp-idbadge, code.rv-id, .rv-def .def-id, .tp-breadcrumb span:last-child {
    font-family: var(--font-mono);
    font-feature-settings: "tnum" 1, "zero" 1;
}
main.tp-container .tp-cite pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.rv-chain .rv-pill { border-color: color-mix(in srgb, var(--ph) 28%, transparent); }
.rv-chain .rv-pill.st-A { background: var(--tint-a); } .rv-chain .rv-pill.st-B { background: var(--tint-b); }
.rv-chain .rv-pill.st-C { background: var(--tint-c); } .rv-chain .rv-pill.st-D { background: var(--tint-d); }
.rv-chain .rv-pill.st-E { background: var(--tint-e); } .rv-chain .rv-pill.st-F { background: var(--tint-f); }
.rv-chain .rv-pill.is-focal, .rv-chain button.rv-pill[aria-expanded="true"] { box-shadow: 0 0 0 2px var(--ph); }
.rv-chain .rv-pill:hover .pill-name { text-decoration: none; }

:root { --primary: #7A6345; }

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

.rv-legend-block { margin-top: 0.75rem; }
.rv-legend-block .rv-legend { margin-top: 0; }
.rv-legend-note { font-size: 0.9375rem; color: var(--text-secondary); margin-top: 0.375rem; line-height: 1.5; }

.rv-audience-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem 2rem;
}
.rv-audience h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 0.25rem; }
.rv-audience p { font-size: 0.9875rem; color: var(--text-secondary); line-height: 1.55; max-width: 38ch; }
@media (max-width: 980px) { .rv-audience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rv-audience-grid { grid-template-columns: 1fr; gap: 1.125rem; } }
.rv-stats .about-line a { color: var(--link); }
