:root{
  --bg:#e9eee6; --ink:#17233a; --muted:#4a566b; --card:#f7f9f4;
  --orange:#d9560f; --sage:#7fbf8e; --tan:#c9b79a;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Atkinson Hyperlegible",Verdana,system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#121a2a; --ink:#e8eee4; --muted:#a9b4c6; --card:#1b2639; --orange:#ff8a3d; --tan:#4a4538}
}
*{box-sizing:border-box}
html{scroll-padding-top:4rem}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.65 var(--body)}
a{color:var(--orange);text-underline-offset:3px}
a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
img{max-width:100%;height:auto;display:block}
main,.top,footer{max-width:62rem;margin:0 auto;padding:0 1.25rem}

.top{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;padding-bottom:1rem}
.mark{font:800 1.6rem/1 var(--display);letter-spacing:.04em;color:var(--ink);text-decoration:none}
nav a{margin-left:1.25rem;color:var(--ink);text-decoration:none;padding-bottom:2px;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--orange)}

.qsl{display:grid;grid-template-columns:1.3fr 1fr;background:var(--card);border:3px solid var(--ink);border-radius:6px;overflow:hidden;margin:1rem 0 3rem}
.qsl-id{padding:2rem 2rem 2.25rem;background:linear-gradient(var(--card),var(--card)) padding-box;border-right:3px solid var(--ink)}
.qsl h1{font:800 clamp(4.5rem,13vw,8.5rem)/.9 var(--display);letter-spacing:.02em;margin:0;color:var(--orange)}
.sub{margin:.5rem 0 1.5rem;color:var(--muted);font-size:1.15rem}
.qsl table{border-collapse:collapse;width:100%}
.qsl th,.qsl td{text-align:left;padding:.55rem 0;border-top:1px solid var(--ink);vertical-align:top}
.qsl th{width:7rem;font-weight:700}
.qsl figure{margin:0;background:var(--tan)}
.qsl figure img{width:100%;height:100%;object-fit:cover}

.story h2,.pagehead{font:800 clamp(2rem,5vw,3rem)/1.05 var(--display);letter-spacing:.02em;margin:0 0 1.5rem}
.lede{font-size:1.2rem;max-width:42rem;color:var(--muted)}
.timeline{list-style:none;margin:0 0 3rem;padding:0 0 0 1.75rem;border-left:4px solid var(--sage);max-width:42rem}
.timeline li{position:relative;padding-bottom:1.75rem}
.timeline li::before{content:"";position:absolute;left:-2.1rem;top:.45rem;width:.9rem;height:.9rem;background:var(--orange);border:3px solid var(--bg);border-radius:50%;box-sizing:content-box}
.timeline h3{margin:0 0 .25rem;font-size:1.15rem}
.timeline p{margin:0}

.gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:3rem}
.gallery figure{margin:0;background:var(--card);border:2px solid var(--ink);border-radius:6px;overflow:hidden}
.gallery .wide{grid-column:1/-1}
.gallery img{width:100%;height:20rem;object-fit:cover}
.gallery .wide img{height:auto;max-height:30rem}
figcaption{padding:.9rem 1.1rem;font-size:.97rem;color:var(--muted)}
figcaption strong{color:var(--ink)}

footer{padding-top:1.5rem;padding-bottom:2.5rem;border-top:2px solid var(--ink);color:var(--muted)}
footer p{margin:.25rem 0}

@media (max-width:720px){
  .qsl{grid-template-columns:1fr}
  .qsl-id{border-right:0;border-bottom:3px solid var(--ink)}
  .qsl figure{max-height:24rem}
  .gallery{grid-template-columns:1fr}
}

/* QSL cards page */
.filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin:1.5rem 0 .5rem}
.filters label{display:flex;flex-direction:column;gap:.25rem;font-weight:700;font-size:.95rem}
.filters input,.filters select{font:inherit;padding:.5rem .7rem;min-width:11rem;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:4px}
.filters button{font:inherit;font-weight:700;padding:.55rem 1.2rem;color:#fff;background:var(--orange);border:2px solid var(--ink);border-radius:4px;cursor:pointer}
.filters input:focus-visible,.filters select:focus-visible,.filters button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.count{color:var(--muted);margin:0 0 1.5rem}
.empty{margin:2rem 0 4rem;font-size:1.1rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.5rem;margin-bottom:2rem}
.cards figure{margin:0;background:var(--card);border:2px solid var(--ink);border-radius:6px;overflow:hidden}
.cards img,.noimg{width:100%;aspect-ratio:3/2;object-fit:contain;background:var(--tan)}
.noimg{display:grid;place-items:center;color:var(--muted);font-size:.95rem}
.pager{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin:0 0 3rem}
.pager a{font-weight:700}
.cards figure a{display:block;cursor:zoom-in}
