/* Page-scoped archive styles; independent of global card dimensions. */
.rv-archive {
    --ar-surface: #fff; --ar-soft: #f5f6fb; --ar-line: #dce1eb;
    --ar-text: #1c263a; --ar-muted: #59677d; --ar-accent: #4c49b8;
    color: var(--ar-text); padding: 38px clamp(16px, 3vw, 48px) 64px;
    font: 16px/1.6 Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
}
.dark .rv-archive {
    --ar-surface: #151e30; --ar-soft: #1c2840; --ar-line: #33415a;
    --ar-text: #edf1f9; --ar-muted: #b1bdd0; --ar-accent: #b6b4ff;
}
.rv-archive *, .rv-archive *::before, .rv-archive *::after { box-sizing: border-box; }
.rv-archive [hidden] { display: none !important; }
.rv-archive h1, .rv-archive h2, .rv-archive p { margin: 0; }
.rv-archive-shell { max-width: 1240px; margin-inline: auto; }
.rv-archive-header { padding-bottom: 28px; max-width: 850px; }
.rv-archive-eyebrow { color: var(--ar-accent); font: 600 12px/1.5 ui-monospace, monospace; letter-spacing: 2px; }
.rv-archive h1 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.2; font-weight: 750; letter-spacing: -.8px; margin: 10px 0 12px; }
.rv-archive-intro { color: var(--ar-muted); font-size: 16px; line-height: 1.75; }
.rv-archive-filters { background: var(--ar-surface); border: 1px solid var(--ar-line); border-radius: 14px; padding: 22px; }
.rv-archive label { display: block; color: var(--ar-muted); font-size: 13px; font-weight: 600; margin-bottom: 7px; }
.rv-archive-search-field { position: relative; }
.rv-archive-search-field svg { position: absolute; top: 14px; left: 15px; color: var(--ar-muted); pointer-events: none; }
.rv-archive input, .rv-archive select { width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--ar-line); border-radius: 8px; background-color: var(--ar-surface); color: var(--ar-text); font: inherit; font-size: 15px; padding: 10px 12px; }
.rv-archive input[type="search"] { padding-left: 44px; background: var(--ar-soft); }
.rv-archive input::placeholder { color: var(--ar-muted); opacity: 1; }
.rv-archive select { cursor: pointer; }
.rv-archive-filter-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, .8fr) auto; align-items: end; gap: 16px; margin-top: 18px; }
.rv-archive-button { min-height: 46px; border: 1px solid var(--ar-line); border-radius: 8px; padding: 10px 20px; background: var(--ar-surface); color: var(--ar-text); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.5; cursor: pointer; }
.rv-archive-button:hover:not(:disabled) { border-color: var(--ar-accent); color: var(--ar-accent); background: var(--ar-soft); }
.rv-archive-button:disabled { opacity: .4; cursor: not-allowed; }
.rv-archive :is(a, button, input, select):focus-visible { outline: 3px solid var(--ar-accent); outline-offset: 3px; }
.rv-archive-feedback { display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: center; justify-content: space-between; padding: 22px 2px 14px; font-size: 13px; color: var(--ar-muted); }
#archive-count { color: var(--ar-text); font-weight: 600; }
.rv-archive-text-button { padding: 4px 6px; font: inherit; color: var(--ar-accent); text-decoration: underline; cursor: pointer; background: transparent; border: 0; }
.rv-archive-feed { display: grid; gap: 12px; scroll-margin-top: 160px; outline-offset: 5px; }
.rv-archive-card { min-width: 0; border: 1px solid var(--ar-line); border-radius: 12px; background: var(--ar-surface); transition: border-color .15s; }
.rv-archive-card:hover { border-color: var(--ar-accent); }
.rv-archive-card-link { display: grid; grid-template-columns: 176px minmax(0, 1fr) 20px; align-items: start; gap: 22px; padding: 20px; color: inherit !important; text-decoration: none !important; border-radius: 12px; }
.rv-archive-image { aspect-ratio: 3/2; border-radius: 7px; background: var(--ar-soft); display: grid; place-items: center; overflow: hidden; }
.rv-archive-image img { width: 100%; height: 100%; object-fit: cover; }
.rv-archive-image span { font: 600 17px/1.8 ui-monospace, monospace; color: var(--ar-muted); letter-spacing: 2px; }
.rv-archive-card-body { min-width: 0; }
.rv-archive-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 9px; font-size: 12px; color: var(--ar-muted); }
.rv-archive-tag { color: var(--ar-accent); font-weight: 650; }
.rv-archive-badge { border: 1px solid var(--ar-line); border-radius: 4px; padding: 0 6px; font-size: 11px; }
.rv-archive .gh-card-title { font-size: clamp(18px, 1.5vw, 21px); font-weight: 650; line-height: 1.45; letter-spacing: -.25px; color: var(--ar-text); overflow-wrap: anywhere; }
.rv-archive .gh-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 8px; font-size: 14px; line-height: 1.7; color: var(--ar-muted); }
.rv-archive-byline { margin-top: 10px !important; font-size: 12px; color: var(--ar-muted); }
.rv-archive-arrow { color: var(--ar-accent); font-size: 22px; }
.rv-archive-pagination { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ar-line); font-size: 14px; color: var(--ar-muted); }
.rv-archive-empty { text-align: center; padding: 64px 20px; border: 1px dashed var(--ar-line); border-radius: 12px; background: var(--ar-surface); }
.rv-archive-empty h2 { font-size: 22px; }
.rv-archive-empty p { margin: 8px 0 20px; color: var(--ar-muted); }
.rv-archive-note { margin-bottom: 24px !important; font-size: 14px; color: var(--ar-muted); }
@media (max-width: 900px) {
    .rv-archive-filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .rv-archive-reset { grid-column: 1 / -1; justify-self: start; }
    .rv-archive-card-link { grid-template-columns: 130px minmax(0, 1fr); gap: 18px; }
    .rv-archive-arrow { display: none; }
}
@media (max-width: 540px) {
    .rv-archive { padding-top: 26px; }
    .rv-archive-header { padding-bottom: 22px; }
    .rv-archive-filters { padding: 16px; }
    .rv-archive input, .rv-archive select { font-size: 16px; }
    .rv-archive-card-link { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 14px; }
    .rv-archive-image { width: 100%; aspect-ratio: 2/1; }
    .rv-archive-meta { gap: 6px 10px; }
    .rv-archive-pagination { gap: 12px; justify-content: space-between; }
    .rv-archive-button { padding-inline: 14px; }
    #page-info { text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .rv-archive-card { transition: none; } }
