/* ============================================================
   MIZAN AI — blog styles
   ============================================================ */

/* ---------- category filter ---------- */
.cat-filter{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:6px 0 44px}
.cat-btn{
  border:1px solid var(--ink-4);background:transparent;color:var(--parch-dim);border-radius:999px;
  padding:8px 18px;font-size:13.5px;cursor:pointer;font-family:var(--sans);font-weight:500;
  transition:background .15s,color .15s,border-color .15s;
}
.cat-btn:hover{color:var(--parch);border-color:var(--amber-dim)}
.cat-btn.on{background:var(--amber);color:#231703;border-color:var(--amber)}

/* ---------- featured post ---------- */
.featured-post{
  display:grid;grid-template-columns:1.12fr .88fr;border:1px solid var(--amber-dim);border-radius:16px;
  overflow:hidden;background:rgba(17,27,46,.5);box-shadow:var(--shadow-1);margin-bottom:56px;
}
.fp-body{padding:38px 40px;display:flex;flex-direction:column;gap:14px}
.fp-body .h-2{margin:0}
.fp-body .excerpt{color:var(--parch-dim);font-size:15px;line-height:1.7;margin:0}
.fp-body .readmore{margin-top:auto;padding-top:18px}
.fp-art{
  position:relative;min-height:320px;border-left:1px solid var(--ink-3);
  background:
    radial-gradient(60% 50% at 30% 20%,rgba(232,163,61,.12),transparent 70%),
    radial-gradient(50% 40% at 80% 85%,rgba(139,123,216,.09),transparent 70%),
    rgba(11,18,32,.85);
  display:grid;place-items:center;padding:30px;
}
.fp-art::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--ink-3) 1px,transparent 1px),linear-gradient(90deg,var(--ink-3) 1px,transparent 1px);
  background-size:40px 40px;opacity:.5;
}
.fp-art>*{position:relative}
@media(max-width:900px){.featured-post{grid-template-columns:1fr}.fp-art{min-height:220px;border-left:none;border-top:1px solid var(--ink-3)}}

/* ---------- post grid ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.blog-card{
  border:1px solid var(--ink-3);border-radius:12px;background:rgba(17,27,46,.45);overflow:hidden;
  display:flex;flex-direction:column;text-decoration:none;color:var(--parch);
  transition:border-color .18s,transform .18s,background .18s;
}
.blog-card:hover{border-color:var(--ink-4);transform:translateY(-3px);background:rgba(17,27,46,.8);color:var(--parch)}
.blog-art{height:132px;border-bottom:1px solid var(--ink-3);position:relative;overflow:hidden;display:grid;place-items:center}
.blog-art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--ink-3) 1px,transparent 1px),linear-gradient(90deg,var(--ink-3) 1px,transparent 1px);background-size:40px 40px;opacity:.4}
.blog-art>*{position:relative}
.bc-body{padding:20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.bc-body h3{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.25;margin:0;color:var(--parch)}
.bc-body .excerpt{font-size:13.5px;color:var(--parch-dim);margin:0;line-height:1.6}
.bc-body .readmore{margin-top:auto;padding-top:8px;font-size:13px;color:var(--amber)}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.blog-grid{grid-template-columns:1fr}}

/* ---------- post meta ---------- */
.post-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--parch-faint);letter-spacing:.04em}
.post-meta .sep{color:var(--ink-4)}
.post-meta .chip{margin:0}
.post-meta .avatar{width:26px;height:26px;font-size:11px}

/* ---------- single post ---------- */
.post{max-width:780px;margin:0 auto}
.post-head{margin-bottom:44px}
.post-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.4vw,48px);line-height:1.08;margin:18px 0 14px}
.post-head .dek{font-size:18px;color:var(--parch-dim);line-height:1.6;margin:0}
.post-body{font-size:16px;color:var(--parch-dim);line-height:1.85}
.post-body p{margin:0 0 22px}
.post-body p b,.post-body li b{color:var(--parch)}
.post-body h2{font-family:var(--serif);font-weight:400;font-size:27px;color:var(--parch);margin:44px 0 16px;line-height:1.2}
.post-body h3{font-family:var(--serif);font-weight:400;font-size:21px;color:var(--parch);margin:32px 0 12px}
.post-body ul,.post-body ol{padding-left:24px;margin:0 0 22px}
.post-body li{margin-bottom:9px}
.post-body blockquote{
  margin:28px 0;padding:20px 24px;border-left:2px solid var(--amber);border-radius:0 10px 10px 0;
  background:rgba(232,163,61,.05);font-family:var(--serif);font-size:19px;color:var(--parch);line-height:1.5;
}
.post-body blockquote .who{display:block;margin-top:10px;font-family:var(--mono);font-size:11.5px;color:var(--parch-faint);letter-spacing:.06em}
.post-body table{border-collapse:collapse;width:100%;margin:24px 0;font-size:13.5px;border:1px solid var(--ink-3);border-radius:8px;overflow:hidden}
.post-body th{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--parch-faint);background:rgba(11,18,32,.7);padding:11px 14px;text-align:left}
.post-body td{padding:11px 14px;border-top:1px solid var(--ink-3);color:var(--parch-dim)}
.post-body td b{color:var(--parch)}
.post-body hr{border:none;border-top:1px solid var(--ink-3);margin:34px 0}

/* callout boxes inside posts */
.pull{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--ink-3);border-radius:10px;background:rgba(17,27,46,.5);padding:18px 20px;margin:26px 0;font-size:14.5px;color:var(--parch-dim)}
.pull svg{width:18px;height:18px;color:var(--amber);flex-shrink:0;margin-top:3px}
.pull b{color:var(--parch)}
.pull.verd{border-color:rgba(79,180,154,.35)}.pull.verd svg{color:var(--verd)}
.pull.crimson{border-color:rgba(217,84,79,.4)}.pull.crimson svg{color:var(--crimson)}

/* author box */
.author-box{
  display:flex;gap:16px;border:1px solid var(--ink-3);border-radius:12px;padding:22px 24px;
  background:rgba(17,27,46,.4);margin:44px 0 0;align-items:flex-start;
}
.author-box .avatar{width:52px;height:52px;font-size:19px;flex-shrink:0}
.author-box .nm{font-weight:600;font-size:15px}
.author-box .rl{font-family:var(--mono);font-size:10.5px;color:var(--amber);letter-spacing:.08em;text-transform:uppercase;margin:2px 0 8px}
.author-box p{font-size:13.5px;color:var(--parch-dim);margin:0;line-height:1.65}

/* related posts */
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.related-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.related-grid{grid-template-columns:1fr}}
.related-grid .blog-card .blog-art{height:96px}

/* small art variations for post covers */
.art-names{font-family:var(--mono);font-size:11px;line-height:2;color:var(--parch-dim);text-align:left;padding:0 24px}
.art-names .hl{color:var(--amber)}
.art-names .hit{color:var(--crimson)}
.art-names .ok{color:var(--verd)}
.art-trace{font-family:var(--mono);font-size:10.5px;line-height:1.9;color:var(--parch-dim);text-align:left;padding:0 22px}
.art-trace .agent{color:var(--violet)}
.art-trace .out{color:var(--amber)}
.art-dial{display:flex;flex-direction:column;align-items:center;gap:6px}
.art-dial .num{font-family:var(--mono);font-size:44px;font-weight:600;color:var(--crimson);line-height:1}
.art-dial .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--parch-faint)}
.art-dial .ring{position:relative;width:104px;height:104px}
.art-dial .ring .dv{position:absolute;inset:0;display:grid;place-items:center;flex-direction:column}
.art-pulse{width:10px;height:10px;border-radius:50%;background:var(--verd);box-shadow:0 0 0 0 rgba(79,180,154,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(79,180,154,.45)}70%{box-shadow:0 0 0 12px rgba(79,180,154,0)}100%{box-shadow:0 0 0 0 rgba(79,180,154,0)}}
.art-steps{font-family:var(--mono);font-size:10.5px;line-height:2.1;color:var(--parch-dim);text-align:left}
.art-steps .n{color:var(--amber)}
.art-steps .bad{color:var(--crimson)}
