.articles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.article {
  display: flex;
  flex-direction: column;
  gap: 16px;
  border: 1px solid var(--line);
  padding: 24px;
  background: var(--bg-1);
  transition: border-color .25s ease, transform .25s ease;
  cursor: pointer;
}
.article:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}
.article-thumb {
  aspect-ratio: 16 / 10;
  background:
    linear-gradient(135deg, rgba(0, 217, 255, 0.1), rgba(124, 58, 237, 0.08)),
    repeating-linear-gradient(45deg, transparent 0 8px, rgba(255,255,255,0.02) 8px 9px),
    var(--bg-2);
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.article-thumb-mark {
  position: absolute;
  top: 12px; left: 12px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--accent);
  padding: 3px 7px;
  background: rgba(6, 9, 15, 0.7);
  border: 1px solid var(--accent);
}
.article-thumb-num {
  position: absolute;
  bottom: 12px; right: 14px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 80px;
  line-height: 1;
  color: rgba(255, 255, 255, 0.06);
  letter-spacing: -0.04em;
}
.article-meta {
  display: flex;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--fg-2);
}
.article-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--fg-0);
  transition: color .2s ease;
}
.article:hover .article-title { color: var(--accent); }
.article-excerpt {
  font-size: 14px;
  line-height: 1.55;
  color: var(--fg-2);
}
.article-link {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--fg-1);
  display: inline-flex;
  gap: 8px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  transition: color .2s ease;
}
.article:hover .article-link { color: var(--accent); }

@media (max-width: 880px) { .articles { grid-template-columns: 1fr; } }
