/* =====================================================================
   blog.css — o que é só do blog.

   O sistema de design NÃO mora aqui. As páginas do blog carregam
   /assets/css/styles.css (a folha do site) ANTES deste arquivo, e é de
   lá que vêm cabeçalho, rodapé, tokens, tipografia, botões, larguras e
   tema escuro. Mexer no cabeçalho do site é mexer no do blog.

   REGRA DE NOME — a cascata do CSS FUNDE propriedades de regras com o
   mesmo seletor: carregar depois não resolve colisão. Então toda classe
   que é do blog começa com `b-` ou com um prefixo de bloco (`r-`, `c-`,
   `pg-`, `mod-`). As únicas classes do site usadas aqui de propósito
   estão na lista `HERDADAS` de testes/navegador.test.mjs, e o teste
   falha se aparecer qualquer outra em comum. Não crie classe nova sem
   prefixo.

   Do site vêm, entre outras: .site-header .wrap .brand .nav-links
   .nav-item .submenu .header-right .icon-btn .nav-toggle .site-footer
   .hero .lead .sec-eyebrow .mark .section .btn .btn-p .kw .skip
   ===================================================================== */

:root{
  --err:#9B3B2E;
  --code-bg:#F4EEE2; --code-fg:#2c241a;
}
[data-theme="dark"]{
  --err:#D98A78;
  --code-bg:#1B1509; --code-fg:#DCD0BA;
}

/* O quadrado de latão do site é o .mark (::before, 0.62em). Dentro de
   títulos grandes ele cresce demais, então o blog tem o seu, de tamanho
   fixo, para usar em h2. */
.b-blk{display:inline-block;width:8px;height:13px;background:var(--brass);flex:0 0 auto}

/* rótulo miúdo — o mesmo tipo do `.abstract .lbl` do site, mas com nome
   próprio: o `.lbl` do site não declara tamanho e herdaria o do corpo. */
.b-lbl{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;color:var(--brass-deep);display:block;margin:0 0 10px;
}

/* ---------- hero ----------
   .hero, .hero h1 e .hero .lead são do site. Aqui só o que o blog soma. */
.hero .lead{max-width:62ch}
.b-stats{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);padding-top:18px}
.b-stat{padding-right:38px;margin-right:38px;border-right:1px solid var(--line)}
.b-stat:last-child{border-right:0;margin-right:0;padding-right:0}
.b-stat b{display:block;font-family:var(--serif);font-size:29px;font-weight:600;line-height:1.1;color:var(--ink)}
.b-stat span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}

/* ---------- largura ----------
   O site estreita .hero .wrap e .section .wrap para --content. As seções
   do blog seguem a mesma largura, senão o hero fica com 900 e o resto
   com 1180 — foi o que deixava os cartões estourando para fora. */
.b-sec > .wrap{max-width:var(--content)}
.b-sec{padding:0}
/* respiro antes do rodapé. A faixa escura do rodapé é uma borda dura: com
   pouco espaço, o fim do conteúdo parece encostar nela. */
.b-sec:last-child{padding-bottom:160px}

/* ---------- perfis (as duas frentes) ---------- */
.b-profiles{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--line)}
.b-profile{
  text-align:left;padding:28px 30px 26px;border-right:1px solid var(--line);
  position:relative;transition:.16s;background:none;border-top:0;border-left:0;border-bottom:0;
}
.b-profile:last-child{border-right:0}
.b-profile:hover{background:var(--bg2)}
.b-profile[aria-selected="true"]{background:var(--bg2)}
.b-profile[aria-selected="true"]::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brass);
}
.b-profile h2{
  font-family:var(--serif);font-weight:600;font-size:clamp(21px,2.4vw,27px);margin:0 0 8px;
  display:flex;align-items:center;gap:11px;color:var(--ink);line-height:1.2;letter-spacing:0;
}
.b-profile .b-blk{background:var(--line2)}
.b-profile[aria-selected="true"] .b-blk{background:var(--brass)}
.b-profile p{margin:0;font-size:14.5px;color:var(--muted);line-height:1.55;max-width:52ch}
.b-profile .b-pn{
  position:absolute;top:28px;right:28px;font-family:var(--mono);font-size:12px;
  color:var(--faint);letter-spacing:.06em;
}

/* ---------- barra de busca e ordenação ---------- */
.b-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:22px 0 6px}
.b-search{
  flex:1 1 260px;display:flex;align-items:center;gap:9px;border:1px solid var(--line2);
  border-radius:11px;padding:9px 13px;background:var(--bg);transition:.16s;
}
.b-search:focus-within{border-color:var(--brass);box-shadow:var(--sh-brass)}
.b-search input{border:0;outline:0;background:none;flex:1;font-family:var(--read);font-size:15.5px;color:var(--fg)}
.b-search svg{color:var(--faint);flex:none}
.b-sortsel{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--line2);border-radius:11px;padding:10px 13px;color:var(--muted);
  background:var(--bg);cursor:pointer;
}
.b-chips{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0 4px;margin:0;list-style:none}
.b-chip{
  font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--muted);
  background:var(--bg);transition:.16s;
}
.b-chip:hover{border-color:var(--brass);color:var(--fg)}
.b-chip[aria-pressed="true"]{background:var(--brass);border-color:var(--brass);color:var(--on-brass)}
.b-chip .b-n{opacity:.55;margin-left:5px}
.b-chips-lbl{
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faint);padding:16px 0 0;margin:0;
}

/* ---------- séries ---------- */
.b-series{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:26px 0 4px}
.b-serie{
  border:1px solid var(--line);border-left:2px solid var(--brass);border-radius:0 12px 12px 0;
  padding:16px 18px;text-align:left;transition:.16s;background:var(--bg);
}
.b-serie:hover{box-shadow:var(--sh-paper);border-left-color:var(--brass-deep)}
.b-serie .b-sk{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.b-serie h3{font-family:var(--serif);font-weight:600;font-size:17.5px;margin:7px 0 5px;line-height:1.25;color:var(--ink)}
.b-serie p{margin:0;font-family:var(--mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em}

/* ---------- lista ---------- */
.b-count{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--faint);padding:26px 0 10px;border-bottom:1px solid var(--line);margin:0;
}
.b-list{list-style:none;margin:0;padding:0}
.b-row{border-bottom:1px solid var(--line)}
.b-row a{
  display:grid;grid-template-columns:92px 1fr 132px;gap:26px;align-items:start;
  padding:26px 0;text-decoration:none;transition:.16s;color:var(--fg);
}
.b-row a:hover{background:var(--bg2)}
.b-row a:hover .b-rt{color:var(--brass-deep)}
.b-rdate{font-family:var(--mono);font-size:11.5px;color:var(--faint);letter-spacing:.05em;padding-top:5px;white-space:nowrap}
.b-rbadge{
  display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass-deep);border:1px solid var(--line2);border-radius:4px;padding:2px 6px;margin-bottom:9px;
}
.b-rt{
  font-family:var(--serif);font-weight:600;font-size:clamp(19px,2.1vw,23px);line-height:1.28;
  margin:0 0 8px;transition:.16s;color:var(--ink);
}
.b-rx{margin:0;font-size:15.5px;color:var(--muted);line-height:1.58;max-width:80ch}
.b-rmeta{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);margin-top:11px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;
}
.b-rthumb{width:132px;height:88px;border-radius:10px;overflow:hidden;background:var(--bg2);border:1px solid var(--line)}
.b-rthumb img{width:100%;height:100%;object-fit:cover;display:block}
.b-empty{padding:70px 0;text-align:center;color:var(--muted);font-size:16px}

/* ---------- navegador de páginas ---------- */
.b-pager{display:flex;align-items:center;gap:8px;justify-content:center;padding:34px 0 6px;flex-wrap:wrap}
.b-pg{
  font-family:var(--mono);font-size:12px;min-width:34px;height:34px;padding:0 11px;
  border:1px solid var(--line2);border-radius:9px;color:var(--muted);background:var(--bg);
  display:inline-flex;align-items:center;justify-content:center;transition:.16s;
}
.b-pg:hover:not(:disabled){border-color:var(--brass);color:var(--fg)}
.b-pg[aria-current="page"]{background:var(--brass);border-color:var(--brass);color:var(--on-brass);font-weight:600}
.b-pg:disabled{opacity:.35;cursor:default}
.b-pg-gap{font-family:var(--mono);font-size:12px;color:var(--faint);padding:0 2px}
.b-pg-info{
  text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);padding-bottom:20px;margin:0;
}

/* ---------- leitor ----------
   Mesma largura de conteúdo das páginas do site (--content), com o corpo
   do texto na medida de leitura (--measure). */
.b-reader{max-width:var(--content);margin:0 auto;padding:52px 28px 10px}
.b-backlink{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;display:inline-flex;gap:8px;align-items:center;margin-bottom:30px;
}
.b-backlink:hover{color:var(--brass-deep)}
/* o .sec-eyebrow do site é inline-flex; aqui ele vem depois do "voltar"
   e precisa da própria linha */
.b-reader > .sec-eyebrow{display:flex;margin:0 0 18px}
.b-reader h1{
  font-family:var(--serif);font-weight:600;font-size:clamp(32px,5vw,50px);line-height:1.08;
  margin:0 0 18px;letter-spacing:-.01em;color:var(--ink);
}
.r-sub{font-family:var(--read);font-style:italic;font-size:20px;color:var(--read-abstract);margin:0 0 26px;line-height:1.4;max-width:var(--measure)}
.r-meta{
  display:flex;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;letter-spacing:.03em;
  color:var(--faint);padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.r-meta b{color:var(--fg);font-weight:500}
/* A pílula da palavra-chave é a do site (.kw span) — a mesma da trilogia.
   O rótulo fica FORA do .kw: dentro, ele também seria um span e viraria
   uma pílula da largura inteira. */
.r-kw-lbl{margin:24px 0 8px;color:var(--faint)}
.kw a.b-kwl{text-decoration:none}
.kw a.b-kwl:hover > span{border-color:var(--brass);color:var(--brass-deep);background:var(--bg)}
.r-share{display:flex;gap:9px;align-items:center;margin:26px 0 4px;flex-wrap:wrap}
.r-share .b-lbl{color:var(--faint);margin:0;letter-spacing:.1em;font-size:11px}
.r-sbtn{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--line2);color:var(--fg);
  display:grid;place-items:center;transition:.18s;background:var(--bg);
}
.r-sbtn svg{width:16px;height:16px}
.r-sbtn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper-on-ink)}
.r-actions{margin-left:auto;display:flex;gap:9px;align-items:center}
/* Curtir e Comentar têm de sair idênticos. Um é <button> e o outro é <a>,
   e cada um resolve o line-height do próprio jeito — por isso a altura é
   declarada, não deixada para o cálculo. */
.b-acao,.b-likebtn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:34px;padding:0 15px;box-sizing:border-box;
  border:1px solid var(--line2);border-radius:999px;background:var(--bg);
  color:var(--fg);font-family:var(--mono);font-size:12px;line-height:1;
  text-decoration:none;transition:.18s;cursor:pointer;
}
.b-acao svg,.b-likebtn svg{width:16px;height:16px;transition:.18s}
.b-acao:hover,.b-likebtn:hover{border-color:var(--brass);color:var(--brass-deep)}
.b-likebtn.b-on{border-color:var(--brass);color:var(--brass-deep)}
.b-likebtn.b-on svg{fill:var(--brass);stroke:var(--brass)}
.b-likebtn .b-lk-n{font-weight:600}
.b-likebtn .b-lk-t{letter-spacing:.04em}
.b-toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--ink);
  color:var(--paper-on-ink);font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
  padding:10px 18px;border-radius:999px;z-index:80;box-shadow:var(--sh-paper);
}

/* ---------- corpo do texto ---------- */
.b-article{max-width:var(--measure);color:var(--read-body);font-size:18.5px;line-height:1.72;margin-top:34px}
.b-article p.b-dropcap::first-letter{
  font-family:var(--serif);font-size:3.5em;float:left;line-height:.86;
  padding:4px 10px 0 0;color:var(--brass-deep);
}
.b-article h2{font-family:var(--serif);font-weight:600;font-size:29px;line-height:1.2;margin:44px 0 14px;color:var(--ink)}
.b-article h3{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.25;margin:38px 0 12px;color:var(--ink)}
.b-article h4{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass-deep);margin:34px 0 10px;font-weight:500;
}
.b-article p{margin:0 0 20px}
.b-article a{color:var(--brass-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.b-article ul,.b-article ol{margin:0 0 22px;padding-left:24px}
.b-article li{margin-bottom:9px}
.b-article strong{color:var(--ink)}
.b-article blockquote{margin:26px 0;padding:4px 0 4px 22px;border-left:2px solid var(--brass);color:var(--read-abstract);font-style:italic}
.b-article blockquote p:last-child{margin-bottom:0}
.b-article hr{border:0;border-top:1px solid var(--line);margin:38px 0}
.b-article code{font-family:var(--mono);font-size:.86em;background:var(--code-bg);color:var(--code-fg);padding:2px 5px;border-radius:4px}
.b-article pre{background:var(--code-bg);border:1px solid var(--line);border-radius:12px;padding:16px 18px;overflow-x:auto;margin:0 0 24px}
.b-article pre code{background:none;padding:0;font-size:13px;line-height:1.62;color:var(--code-fg)}
.b-article figure{margin:30px 0}
.b-article figure img{border-radius:12px;border:1px solid var(--line);width:100%}
.b-article figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--faint);margin-top:9px;text-align:center}
.b-article table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:15.5px}
.b-article th,.b-article td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.b-article th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--bg2)}
.b-hero-img{margin:30px 0 0}
.b-hero-img img{border-radius:14px;border:1px solid var(--line);width:100%}

.b-origin{
  max-width:var(--measure);margin:40px 0 0;padding:16px 18px;border:1px solid var(--line);
  border-radius:12px;background:var(--bg2);font-family:var(--mono);font-size:11.5px;
  letter-spacing:.05em;color:var(--muted);line-height:1.7;
}
.b-origin a{color:var(--brass-deep)}
.b-serie-nav{max-width:var(--measure);display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0 0}
.b-serie-nav a{border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;transition:.16s;color:var(--fg)}
.b-serie-nav a:hover{border-color:var(--brass);box-shadow:var(--sh-brass)}
.b-serie-nav .b-k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.b-serie-nav .b-t{font-family:var(--serif);font-size:16px;line-height:1.3;margin-top:6px;display:block;color:var(--ink)}
.b-serie-nav .b-next{text-align:right}

/* ---------- comentários ----------
   Mesma caixa e mesmo recuo do leitor: alinhado com o texto acima. */
.b-comments{max-width:var(--content);margin:8px auto 0;padding:24px 28px 160px}
.b-comments > *{max-width:var(--measure)}
.c-head{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:26px;font-weight:600;color:var(--ink);margin:0}
.c-head .b-blk{width:9px;height:15px}
.c-head .c-count{font-family:var(--mono);font-size:14px;color:var(--faint);font-weight:400}
.c-note{font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--faint);margin:8px 0 22px}
.c-form{display:flex;flex-direction:column;gap:10px;margin-bottom:34px;position:relative}
.c-in,.c-ta{
  font-family:var(--read);font-size:15.5px;color:var(--fg);background:var(--bg);
  border:1px solid var(--line2);border-radius:10px;padding:12px 14px;width:100%;
}
.c-in:focus,.c-ta:focus{outline:none;border-color:var(--brass)}
.c-ta{resize:vertical;min-height:80px;line-height:1.5}
.c-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.c-form-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}
.c-msg{font-size:13px}
.c-msg.c-ok{color:var(--brass-deep)}
.c-msg.c-err{color:var(--err)}
.c-list{display:flex;flex-direction:column;gap:20px}
.c-item{border-top:1px solid var(--line2);padding-top:18px}
.c-item-h{display:flex;align-items:baseline;gap:12px;margin-bottom:5px}
.c-name{font-family:var(--serif);font-weight:600;font-size:16px;color:var(--ink)}
.c-date{font-family:var(--mono);font-size:11px;color:var(--faint)}
.c-body{margin:0;font-family:var(--read);font-size:15.5px;line-height:1.6;color:var(--fg);white-space:pre-wrap;overflow-wrap:break-word}
.c-empty{color:var(--muted);font-style:italic}

/* ---------- telas estreitas ---------- */
@media (max-width:900px){
  .b-profiles{grid-template-columns:1fr}
  .b-profile{border-right:0;border-bottom:1px solid var(--line)}
  .b-series{grid-template-columns:1fr}
  .b-row a{grid-template-columns:1fr;gap:10px}
  .b-rthumb{width:100%;height:170px;order:-1}
  .b-rdate{padding-top:0}
  .b-serie-nav{grid-template-columns:1fr}
  .b-serie-nav .b-next{text-align:left}
  .b-stat{padding-right:22px;margin-right:22px}
}
@media (max-width:640px){
  .b-reader{padding:36px 24px 10px}
  .b-comments{padding:20px 24px 104px}
  .b-sec:last-child{padding-bottom:104px}
  .r-actions{margin-left:0;width:100%}
  .b-stats{gap:14px 0}
  .b-stat{border-right:0;padding-right:0;margin-right:28px}
}
