.wrap.wide{max-width:72rem}
.hero.small{padding:3rem 0 2rem}
.hero.small h1{font-size:clamp(2.2rem,7vw,3.5rem)}
.hero.small .lead{margin-top:.75rem;max-width:42rem}
.grid{list-style:none;margin:0 0 3rem;padding:0;display:grid;gap:1.25rem;grid-template-columns:1fr}
@media (min-width:640px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border:1px solid var(--soft);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.thumb{display:block;position:relative;border-bottom:1px solid var(--soft)}
.thumb img{display:block;width:100%;height:auto;aspect-ratio:640/398;object-fit:cover;object-position:top}
.thumb:hover img{opacity:.9}
.card-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}
.card-title{font-size:1.1rem;margin:0;letter-spacing:0;text-transform:none;color:var(--fg);font-weight:650}
.year{color:var(--muted);font-size:.875rem;white-space:nowrap}
.desc{margin:0;color:var(--muted);font-size:.95rem}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.tags li{font-size:.75rem;border:1px solid var(--soft);border-radius:999px;padding:.1rem .55rem;color:var(--muted)}
.site-link{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:.3rem;min-height:40px;font-weight:600;text-decoration:none}
.site-link:hover{text-decoration:underline}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.foot a{color:inherit}
