.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.article-card{border:1px solid var(--color-border);border-radius:.5rem;overflow:hidden;transition:all .2s;background:var(--color-surface)}.article-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #0066cc14;transform:translateY(-2px)}.article-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;height:100%}.article-content{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1}.article-media{width:100%;height:300px;background:var(--color-bg-alt);overflow:hidden;border-bottom:1px solid var(--color-border);position:relative;padding:0;margin:0}.article-media-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;margin:0;padding:0;position:absolute;top:0;left:0}.article-media-placeholder{width:100%;height:100%}.article-content h2{font-size:1.25rem;margin-bottom:.75rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:600;color:var(--color-text-primary);letter-spacing:-.01em}.summary{color:var(--color-text-secondary);font-size:1rem;margin-bottom:0;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-date{color:var(--color-text-light);font-size:.8125rem;margin-top:.75rem;margin-bottom:0}@media (max-width: 768px){.articles-grid{grid-template-columns:1fr}}.filters{margin:0 0 1.5rem}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .75rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-primary);text-decoration:none;font-size:.9rem;line-height:1;white-space:nowrap}.chip:hover{border-color:var(--color-border-strong);text-decoration:none}.chip--active{border-color:var(--color-border-strong);background:var(--color-bg);font-weight:600}.chip--ghost{background:transparent}.chip-count{font-size:.8rem;color:var(--color-text-secondary)}
