/* ============================================================
   blog.css — Blog index page styles
============================================================ */

.blog-index {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 1rem 4rem;
}

/* Header */
.blog-index__header {
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border-subtle, #222);
}

.blog-index__header h1 {
  font-size: var(--fs-h2, 1.75rem);
  font-weight: 700;
  color: var(--text-heading, #d8d8d8);
  margin-bottom: .4rem;
}

.blog-index__meta {
  font-size: .85rem;
  color: var(--text-muted, #888);
}

/* Tag filters */
.blog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: 2rem;
}

.blog-filter {
  padding: .25rem .75rem;
  border: 1px solid var(--border-subtle, #222);
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted, #888);
  font-size: .8rem;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}

.blog-filter:hover {
  border-color: #444;
  color: var(--text-body, #d1d1d1);
}

.blog-filter--active {
  border-color: var(--accent, #38bdf8);
  color: var(--accent, #38bdf8);
  background: color-mix(in srgb, var(--accent, #38bdf8) 8%, transparent);
}

/* Post list */
.blog-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.blog-post {
  display: flex;
  gap: 1.25rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--border-subtle, #222);
  transition: opacity .15s;
}

.blog-post[hidden] {
  display: none;
}

.blog-post:last-child {
  border-bottom: none;
}

/* Date column */
.blog-post__date {
  flex-shrink: 0;
  width: 5.5rem;
  padding-top: .2rem;
  font-size: .78rem;
  color: var(--text-dim, #555);
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}

/* Content column */
.blog-post__body {
  flex: 1;
  min-width: 0;
}

.blog-post__title-row {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  margin-bottom: .35rem;
  flex-wrap: wrap;
}

.blog-post__icon {
  font-size: .9rem;
  flex-shrink: 0;
}

.blog-post__title {
  font-size: var(--fs-h4, 1.2rem);
  font-weight: 600;
  line-height: 1.3;
  color: var(--text-heading, #d8d8d8);
  text-decoration: none;
  transition: color .15s;
}

.blog-post__title:hover {
  color: var(--accent, #38bdf8);
}

.blog-post__desc {
  font-size: .9rem;
  color: var(--text-muted, #888);
  line-height: 1.55;
  margin-bottom: .6rem;
}

.blog-post__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
}

.blog-tag {
  font-size: .72rem;
  padding: .15rem .5rem;
  border: 1px solid #2a2a2a;
  border-radius: 999px;
  color: var(--text-dim, #555);
  background: #111;
}

/* Thumbnail (optional) */
.blog-post__thumb {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--border-subtle, #222);
  align-self: flex-start;
  margin-top: .1rem;
}

.blog-post__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Empty state */
.blog-empty {
  color: var(--text-muted, #888);
  font-style: italic;
  font-size: .9rem;
  padding: 2rem 0;
}

@media (max-width: 540px) {
  .blog-post {
    flex-wrap: wrap;
    gap: .6rem;
  }

  .blog-post__date {
    width: 100%;
    padding-top: 0;
  }

  .blog-post__thumb {
    display: none;
  }
}
