/* Styles for the static person pages and the people index. Written by
   build_site.py; edit it there. No scripts, no web fonts, no CDN. */
:root { --paper:#f5f0e6; --card:#fdfbf5; --ink:#2b2620; --navy:#1f3557; --navy2:#16263f;
        --brick:#8c2f2f; --gold:#b08d3e; --rule:#d8cdb4; --muted:#6e6455; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink);
       font:17px/1.6 "Source Serif 4", Georgia, "Times New Roman", serif; }
a { color:var(--navy); }
a:hover { color:var(--brick); }
a:focus-visible { outline:2px solid var(--brick); outline-offset:2px; }
header.site { background:var(--navy); border-bottom:4px solid var(--brick);
              padding:18px 16px; display:flex; flex-wrap:wrap; gap:10px 24px;
              align-items:baseline; justify-content:space-between; }
header.site .brand { color:#fff; text-decoration:none; font-size:1.35rem;
                     font-weight:700; letter-spacing:.03em; }
header.site .brand span { color:var(--gold); }
header.site nav a { color:#d9d2c0; text-decoration:none; text-transform:uppercase;
                    font-size:.75rem; letter-spacing:.12em; font-weight:600;
                    margin-right:18px; padding:6px 0; display:inline-block; }
header.site nav a:hover { color:#fff; text-decoration:underline; }
main { max-width:860px; margin:24px auto; padding:24px 20px; background:var(--card);
       border:1px solid var(--rule); border-radius:3px; }
h1 { font-size:2rem; line-height:1.2; color:var(--navy); margin:0 0 6px; }
h2 { font-size:1.2rem; color:var(--navy); border-bottom:1px solid var(--rule);
     padding-bottom:4px; margin:30px 0 12px; }
h3 { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted);
     margin:16px 0 4px; }
.vitals { color:var(--muted); margin:0 0 16px; }
.open { margin:0 0 8px; }
.open span { color:var(--muted); font-size:.85rem; margin-left:8px; }
.button { display:inline-block; background:var(--navy); color:#fff; text-decoration:none;
          padding:9px 16px; border-radius:3px; font-size:.8rem; font-weight:600;
          text-transform:uppercase; letter-spacing:.08em; }
.button:hover { background:var(--navy2); color:#fff; }
ul { margin:0; padding-left:20px; }
.family li { margin:2px 0; }
.role { color:var(--muted); font-size:.8rem; }
dl.events { margin:0; }
dl.events dt { font-size:.75rem; font-weight:700; text-transform:uppercase;
               letter-spacing:.08em; color:var(--brick); margin-top:12px; }
dl.events dt .date { color:var(--muted); font-weight:400; letter-spacing:0;
                     text-transform:none; margin-left:8px; }
dl.events dd { margin:2px 0 0; }
sup { font-size:.7em; line-height:0; }
ol.sources { font-size:.85rem; color:#4d453a; padding-left:28px; }
ol.sources li { margin:4px 0; overflow-wrap:anywhere; }
ol.sources li:target { background:#f0e6c8; outline:2px solid var(--brick); }
ul.media { list-style:none; padding:0; display:grid; gap:12px;
           grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
ul.media a { display:block; text-decoration:none; background:var(--paper);
             border:1px solid var(--rule); border-radius:3px; overflow:hidden; }
ul.media img { display:block; width:100%; height:auto; aspect-ratio:4/3;
               object-fit:contain; background:#e9e2d0; }
ul.media span { display:block; padding:4px 6px; font-size:.7rem; line-height:1.3;
                color:#4d453a; }
nav.letters { margin:0 0 8px; line-height:2.2; }
nav.letters a { display:inline-block; min-width:2em; text-align:center; padding:0 6px;
                border:1px solid var(--rule); border-radius:3px; text-decoration:none;
                background:var(--paper); }
ul.index { list-style:none; padding:0; columns:260px 3; column-gap:24px; }
ul.index li { break-inside:avoid; padding:1px 0; font-size:.95rem; }
footer.site { max-width:860px; margin:0 auto 32px; padding:0 20px; color:var(--muted);
              font-size:.8rem; }
footer.site p { margin:2px 0; }
@media (max-width:520px) { body { font-size:16px; } h1 { font-size:1.6rem; }
  main { margin:0; border-left:0; border-right:0; padding:20px 16px; }
  .open span { display:block; margin:6px 0 0; } }
