/* === Blog listing === */
    .blog-card {
      --accent: #419fd8;
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.85rem 1.5rem;
      padding: 1.75rem 1.5rem 1.75rem 1.25rem;
      border-top: 1px solid rgba(232, 236, 242, 0.06);
      border-left: 2px solid color-mix(in srgb, var(--accent) 85%, transparent);
      background: transparent;
      transition: background 0.3s ease, border-left-width 0.3s ease, transform 0.3s ease;
    }
    .blog-card:hover {
      background: rgba(31, 33, 40, 0.4);
      border-left-width: 6px;
      transform: translateY(-1px);
    }
    .blog-card-index {
      font-family: 'IBM Plex Mono', monospace;
      font-size: 0.7rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--accent) 92%, #e8ecf2);
      opacity: 0.9;
      padding-top: 0.25rem;
      min-width: 2.25rem;
    }
    .blog-card-body { min-width: 0; }
    .blog-card-kicker {
      font-family: 'IBM Plex Mono', monospace;
      font-size: 0.65rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--accent) 92%, #e8ecf2);
      opacity: 0.9;
    }
    .blog-card-title {
      margin-top: 0.75rem;
      font-size: clamp(1.4rem, 2.6vw, 2.25rem);
      font-weight: 600;
      letter-spacing: -0.02em;
      line-height: 1.15;
      color: #e8ecf2;
      transition: color 0.25s ease;
    }
    .blog-card:hover .blog-card-title {
      color: color-mix(in srgb, var(--accent) 65%, #e8ecf2);
    }
    .blog-card-excerpt {
      margin-top: 0.85rem;
      max-width: 56rem;
      color: rgba(154, 165, 181, 0.95);
      line-height: 1.7;
      font-size: 0.95rem;
    }
    .blog-card-arrow {
      color: color-mix(in srgb, var(--accent) 70%, #e8ecf2);
      transition: transform 0.25s ease;
    }
    .blog-card:hover .blog-card-arrow { transform: translateX(2px); }
    .blog-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem;
      font-family: 'IBM Plex Mono', monospace;
      font-size: 0.65rem;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: rgba(154, 165, 181, 0.8);
    }
    .blog-pagination {
      margin-top: 3rem;
      padding-top: 2rem;
      border-top: 1px solid rgba(232, 236, 242, 0.06);
    }
    .blog-pagination .page-numbers {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 0.5rem 0.75rem;
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .blog-pagination .page-numbers li {
      margin: 0;
      padding: 0;
    }
    .blog-pagination a.page-numbers,
    .blog-pagination span.page-numbers {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 2.5rem;
      min-height: 2.5rem;
      padding: 0.5rem 0.85rem;
      border: 1px solid rgba(232, 236, 242, 0.08);
      border-radius: 9999px;
      font-family: 'IBM Plex Mono', monospace;
      font-size: 0.65rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(154, 165, 181, 0.95);
      text-decoration: none;
      transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
    }
    .blog-pagination a.page-numbers:hover {
      border-color: rgba(65, 159, 216, 0.45);
      color: #e8ecf2;
      background: rgba(31, 33, 40, 0.45);
    }
    .blog-pagination a.page-numbers:focus-visible {
      outline: none;
      box-shadow: 0 0 0 2px rgba(65, 159, 216, 0.45);
    }
    .blog-pagination span.page-numbers.current {
      border-color: rgba(65, 159, 216, 0.55);
      color: #e8ecf2;
      background: rgba(65, 159, 216, 0.12);
    }
    .blog-pagination .page-numbers .prev,
    .blog-pagination .page-numbers .next {
      min-width: auto;
      padding-inline: 1rem;
    }
    .blog-pagination .page-numbers .dots {
      border-color: transparent;
      min-width: auto;
      padding-inline: 0.25rem;
      color: rgba(154, 165, 181, 0.55);
    }

