.post-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);height:100%;overflow:hidden;transition:transform var(--duration-normal) var(--ease-out-quart),box-shadow var(--duration-normal) var(--ease-out-quart)}.post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.post-card__media{display:block;aspect-ratio:16 / 9;overflow:hidden}.post-card__img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out-quart)}.post-card:hover .post-card__img{transform:scale(1.04)}.post-card__body{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);flex-grow:1}.post-card__meta{display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-xs);color:var(--color-text-muted)}.post-card__tag{background:var(--color-secondary-soft);color:var(--color-secondary);padding:.1em .6em;border-radius:var(--radius-pill);text-transform:capitalize}.post-card__title{font-size:var(--text-lg)}.post-card__title a{color:var(--color-text);text-decoration:none}.post-card__title a:hover{color:var(--color-accent-strong)}.post-card__excerpt{color:var(--color-text-soft);font-size:var(--text-sm);flex-grow:1}.post-card__more{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-accent-strong);text-decoration:none}.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-2xl)}.pagination__pages{display:flex;gap:var(--space-xs)}.pagination__page,.pagination__edge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-inline:var(--space-sm);border-radius:var(--radius-md);text-decoration:none;font-weight:var(--weight-medium);color:var(--color-text-soft)}.pagination__page:hover,.pagination__edge:hover{background:var(--color-surface-sunken);color:var(--color-text)}.pagination__page.is-current{background:var(--color-accent);color:var(--color-text-on-accent)}.is-disabled{opacity:.4;pointer-events:none}.post-grid{display:grid;gap:var(--space-lg);grid-template-columns:1fr}@media(min-width:38rem){.post-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:60rem){.post-grid{grid-template-columns:repeat(3,1fr)}}
