:root { --ink: #202326; --muted: #62686d; --paper: #f4f1eb; --line: #d8d0c4; --accent: #1f5b68; --accent-dark: #153d47; --warm: #b86b45; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Georgia, "Times New Roman", serif; }
a { color: var(--accent-dark); }
.site-header { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem max(1.25rem, calc((100% - 1200px) / 2)); background: #182c31; color: #fff; }
.site-header a { color: #fff; text-decoration: none; }.site-header nav { display: flex; gap: 1.2rem; font-size: .95rem; }
.page-shell { max-width: 1200px; margin: auto; padding: 4rem 1.25rem 6rem; }.page-intro { max-width: 800px; }.eyebrow { color: var(--warm); font-weight: bold; letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; }.page-intro h1 { margin: .45rem 0 1rem; font-size: clamp(2.4rem, 6vw, 5rem); line-height: 1; font-weight: 400; }.lede { font-size: 1.2rem; line-height: 1.6; }.status-guide { margin-top: 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1rem 0; }.status-guide summary { cursor: pointer; font-weight: bold; }.status-guide p { line-height: 1.55; color: var(--muted); }.status-definitions { display: grid; gap: 1.25rem; margin: 1.25rem 0 0; }.status-definitions div { padding-top: 1.25rem; border-top: 1px solid var(--line); }.status-definitions dt { color: var(--accent-dark); font-weight: bold; }.status-definitions dd { margin: .5rem 0 0; line-height: 1.55; color: var(--muted); }
.controls { display: grid; grid-template-columns: minmax(0, 2fr) repeat(5, minmax(0, 1fr)); gap: .75rem; margin: 3rem 0 1.25rem; padding: 1rem; background: #fff; border: 1px solid var(--line); }.controls label { display: grid; min-width: 0; gap: .35rem; color: var(--muted); font-size: .75rem; font-weight: bold; letter-spacing: .05em; text-transform: uppercase; }.controls input, .controls select { width: 100%; min-width: 0; min-height: 2.7rem; padding: .55rem .65rem; border: 1px solid #aaa; border-radius: 0; background: #fff; color: var(--ink); font: inherit; font-size: .95rem; text-transform: none; }.results-summary { color: var(--muted); }.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }.research-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); }.research-image { width: 100%; aspect-ratio: 1.4; object-fit: cover; }.research-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.2rem; }.research-card h2 { margin: 0; font-size: 1.45rem; line-height: 1.15; }.alternate, .location, .meta, .verified, .editorial-note { color: var(--muted); font-size: .9rem; line-height: 1.45; }.alternate { font-style: italic; margin-bottom: 0; }.status-badge { align-self: flex-start; margin: .5rem 0; padding: .35rem .55rem; border: 1px solid var(--accent); color: var(--accent-dark); font-size: .78rem; line-height: 1.2; }.editorial-note { border-left: 3px solid var(--warm); padding-left: .7rem; }.verified { margin-top: auto; font-size: .78rem; }.card-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }.button { display: inline-block; padding: .65rem .85rem; border: 1px solid var(--accent-dark); background: var(--accent-dark); color: #fff; text-decoration: none; cursor: pointer; font: inherit; }.button-secondary { display: block; margin: 2rem auto 0; background: transparent; color: var(--accent-dark); }.source-count { color: var(--muted); font-size: .8rem; }.notice { padding: 1.2rem; margin: 1.5rem 0; background: #fff; border: 1px solid var(--line); }.notice-error { border-color: #a43d33; color: #7b211b; }
:focus-visible { outline: 3px solid #e39b52; outline-offset: 2px; }
@media (max-width: 950px) { .controls { grid-template-columns: repeat(3, 1fr); }.search-field { grid-column: span 3; }.card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .site-header { display: block; }.site-header nav { margin-top: .75rem; }.page-shell { padding-top: 2.5rem; }.controls { grid-template-columns: 1fr; }.search-field { grid-column: auto; }.card-grid { grid-template-columns: 1fr; } }
.detail-section { max-width: 820px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid var(--line); }.detail-section h2 { margin-top: 0; font-size: 1.8rem; font-weight: 400; }.detail-section h3 { margin-bottom: .4rem; color: var(--accent-dark); }.detail-section p, .detail-section li { line-height: 1.6; }.detail-section ul { padding-left: 1.2rem; }
