.article-hearts{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;max-width:780px;margin:24px auto;padding-inline:28px}
.prose-wrap .article-hearts{padding-inline:0;margin:28px 0}
.heart-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 18px;border:1px solid var(--border,#795e88);border-radius:999px;background:var(--soft,#30203c);color:var(--text,#f6edf8);font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;transition:background .2s,border-color .2s}
.heart-button svg{width:21px;height:21px;fill:transparent;stroke:var(--accent,#eba3f3);stroke-width:1.7;stroke-linejoin:round}
.heart-button[data-liked=true]{border-color:#c96baf;background:#49203d;color:#ffe5f4}
.heart-button[data-liked=true] svg{fill:#f28ac4;stroke:#f28ac4}
.heart-button:hover{border-color:var(--accent,#eba3f3)}
.heart-button:focus-visible{outline:3px solid var(--accent,#eba3f3);outline-offset:4px}
.heart-button:disabled{opacity:.65;cursor:wait}
.heart-status{font-size:13px;color:var(--muted,#c2b6d0)}
@media(max-width:640px){.article-hearts{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){.heart-button{transition:none}}

.article-hearts[hidden]{display:none}

.heart-remove{font:inherit;font-size:12px;background:none;border:0;padding:8px;color:var(--muted,#c2b6d0);text-decoration:underline;cursor:pointer;min-height:44px}
.heart-remove[hidden]{display:none}.heart-remove:focus-visible{outline:2px solid var(--accent,#eba3f3);outline-offset:3px}
