/* Blog card grid — extracted from the generated /blog/ listing so the voice blog
   reuses the exact same card look instead of a second, drifting copy.
   Selectors: .posts .post .pimg .pbody .pmeta .ptag .pbyline .av .glyph */
.glyph {
      font-family: "Instrument Serif", serif;
      font-size: 120px;
      color: rgba(255,255,255,.9);
      font-style: italic;
      text-shadow: 0 8px 30px rgba(0,0,0,.3);
      position: relative;
    }
.glyph { display: none; }
.post .tcover-title { font-size: clamp(20px, 2.1vw, 26px); line-height: 1.15; }
.av {
      width: 32px; height: 32px;
      border-radius: 50%;
      background: linear-gradient(135deg, #a78bfa, #7c3aed);
      color: #fff;
      display: grid; place-items: center;
      font-size: 12px; font-weight: 700;
    }
.posts {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
    }
.post {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 16px;
      overflow: hidden;
      display: flex; flex-direction: column;
      transition: transform .15s ease, box-shadow .2s ease;
      position: relative;
    }
.post > a { position: absolute; inset: 0; z-index: 1; }
.post:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -20px rgba(15,23,42,.18); }
.post .pimg {
      height: 200px;
      flex: 0 0 200px;
      position: relative;
      display: grid; place-items: center;
      color: #fff;
      overflow: hidden;
    }
.post .pimg img {
      width: 100% !important;
      height: 100% !important;
      max-width: none !important;
      object-fit: cover;
      display: block;
    }
.post .pimg .glyph {
      font-family: "Instrument Serif", serif;
      font-size: 64px;
      font-style: italic;
      color: rgba(255,255,255,.9);
      text-shadow: 0 4px 20px rgba(0,0,0,.25);
    }
.post .pimg:has(img) .glyph { display: none; }
.post .pimg { overflow: hidden; }
.post .pimg:has(.tcover) .glyph { display: none; }
.post .pimg::after {
      content: "";
      position: absolute; inset: -30%;
      background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.10), transparent 50%),
        radial-gradient(circle at 70% 70%, rgba(255,255,255,.08), transparent 50%);
      pointer-events: none; opacity: 0;
    }
.post .pimg:has(.tcover)::after {
      opacity: 1;
      animation: fpDrift 22s ease-in-out infinite alternate;
    }
.post.detection .pimg { background: linear-gradient(135deg, #2c6cb0, #5aa3e8); }
.post.AI rewriter .pimg { background: linear-gradient(135deg, #7c3aed, #a78bfa); }
.post.seo .pimg { background: linear-gradient(135deg, #b45309, #f59e0b); }
.post.education .pimg { background: linear-gradient(135deg, #059669, #10b981); }
.post.product .pimg { background: linear-gradient(135deg, #1f2937, #475569); }
.post.industry .pimg { background: linear-gradient(135deg, #b91c1c, #ef4444); }
.post .pbody { padding: 22px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.post .pmeta {
      display: flex; gap: 8px;
      font-size: 11px; font-weight: 800;
      letter-spacing: .08em;
      color: var(--muted);
      text-transform: uppercase;
    }
.post .pmeta .ptag { padding: 3px 8px; border-radius: 5px; font-size: 10px; }
.post.detection .ptag { background: var(--brand-softer); color: var(--brand); }
.post.AI rewriter .ptag { background: var(--violet-soft); color: var(--violet); }
.post.seo .ptag { background: #fff5e6; color: #b45309; }
.post.education .ptag { background: var(--green-soft); color: var(--green); }
.post.product .ptag { background: var(--surface-2); color: var(--ink); }
.post.industry .ptag { background: var(--red-soft); color: var(--red); }
.post h3 {
      margin: 10px 0 8px;
      font-size: 19px;
      font-weight: 700;
      letter-spacing: -.015em;
      line-height: 1.25;
      color: var(--ink);
    }
.post h3 a, .feat-post h2 a { color: inherit; text-decoration: none; }
.post .pexcerpt {
      font-size: 14px;
      line-height: 1.55;
      color: var(--muted);
      flex: 1;
    }
.post .pbyline {
      display: flex; align-items: center; gap: 8px;
      margin-top: 14px;
      font-size: 12px;
      color: var(--muted);
    }
.post .pbyline .av {
      width: 24px; height: 24px;
      border-radius: 50%;
      display: grid; place-items: center;
      font-size: 10px; font-weight: 700;
      color: #fff;
    }
.post .pbyline .av.b1 { background: linear-gradient(135deg, #5aa3e8, #2c6cb0); }
.post .pbyline .av.b2 { background: linear-gradient(135deg, #a78bfa, #7c3aed); }
.post .pbyline .av.b3 { background: linear-gradient(135deg, #10b981, #059669); }
.post .pbyline .av.b4 { background: linear-gradient(135deg, #f59e0b, #b45309); }
.post .pbyline b { color: var(--ink); font-weight: 700; }
.post.hidden { display: none; }
.glyph { font-size: 80px; }
.posts { grid-template-columns: 1fr 1fr; }
.posts { grid-template-columns: 1fr; }
/* voice blog grid — same breakpoints as the main listing */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px}
@media (max-width:700px){ .posts{grid-template-columns:1fr} }
