/* Blog cards, grid and states. Uses the site's color tokens (--paper, --sheet, --rule, --ink, --muted, --blue, --blue-soft). */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:960px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.post-grid{grid-template-columns:1fr}}
.card{background:var(--sheet);border:1px solid var(--rule);border-radius:4px;overflow:hidden;min-width:0;display:flex}
.card-link{display:flex;flex-direction:column;color:inherit;text-decoration:none;width:100%}
.card-link:hover h3{color:var(--blue)}
.card-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;max-width:100%;background:var(--blue-soft);height:auto}
.card-cover--empty{display:flex;align-items:center;justify-content:center;font:700 1.4rem/1 var(--f-display);color:var(--blue);letter-spacing:.08em}
.card-body{display:grid;gap:8px;padding:18px 20px 22px;align-content:start}
.card-body h3{font:600 1.18rem/1.3 var(--f-display);margin:0;color:var(--ink);text-wrap:balance}
.card-body .excerpt{color:var(--muted);font-size:.93rem;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-body time,.card-body .byline{font:400 .78rem/1.4 var(--f-mono);color:var(--muted)}
.card-body .eyebrow{font-size:.7rem}
.skel{background:var(--sheet);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.skel .s-img{aspect-ratio:16/9;background:var(--blue-soft)}
.skel .s-line{height:12px;margin:16px 20px 0;background:var(--blue-soft);border-radius:2px}
.skel .s-line.short{width:45%;margin-bottom:22px}
@media (prefers-reduced-motion:no-preference){.skel .s-img,.skel .s-line{animation:pulse 1.4s ease-in-out infinite}}
@keyframes pulse{50%{opacity:.55}}
.feed-status{color:var(--muted);padding-block:24px}
.feed-status.error{color:var(--red)}
.more-row{display:flex;justify-content:center;margin-top:32px}
.btn[disabled]{opacity:.55;cursor:default}