/* One look for every live number on the site (views, votes, reactions, visitors).
   Digits are tabular so a number changing never shifts the layout; a quiet marker appears once a figure is confirmed live. */
[data-view-count], [data-story-view-count], [data-site-visitors], [data-reaction-count], .vote-count, .stat-count, .wk-count,
[data-detail-upvotes], [data-detail-clicks], [data-detail-views], [data-product-clicks] .stat-num {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
[data-site-visitors][data-count-live]::before,
[data-view-count][data-count-live]::before {
  content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%;
  background: var(--accent); vertical-align: 0.12em; box-shadow: 0 0 0 0 var(--accent-soft);
  animation: if-live 2.4s ease-out 1;
}
@keyframes if-live { 0% { box-shadow: 0 0 0 0 var(--accent); } 100% { box-shadow: 0 0 0 8px transparent; } }
[data-count-live] { transition: opacity .2s; }
[data-reaction][aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--ink); }
[data-reaction][aria-pressed="true"] [data-reaction-count] { font-weight: 700; }
.launch-upvote-btn.is-voted .vote-count { color: inherit; }
@media (prefers-reduced-motion: reduce) { [data-count-live]::before { animation: none !important; } }
