/* HarborBeat — Live blog (Apple aesthetic). */
.hb-liveblog {
  margin: 2rem 0;
  border: 1px solid var(--line, #d2d2d7);
  border-radius: var(--radius, 18px);
  background: var(--bg-2, #f5f5f7);
  overflow: hidden;
}
.hb-liveblog-head {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .85rem 1.1rem;
  border-bottom: 1px solid var(--line, #d2d2d7);
  background: #fff;
}
.hb-liveblog-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #c1432a;
  background: rgba(193, 67, 42, .1);
  padding: .25rem .55rem;
  border-radius: 999px;
}
.hb-liveblog-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c1432a;
  animation: hb-liveblog-pulse 1.6s ease-in-out infinite;
}
@keyframes hb-liveblog-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .35; transform: scale(.7); }
}
@media (prefers-reduced-motion: reduce) {
  .hb-liveblog-dot { animation: none; }
}
.hb-liveblog-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink, #1d1d1f);
}
.hb-liveblog-status {
  margin-left: auto;
  font-size: .78rem;
  color: var(--ink-2, #6e6e73);
}
.hb-liveblog-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hb-liveblog-entry {
  padding: 1rem 1.1rem;
  border-bottom: 1px solid var(--line, #d2d2d7);
  background: #fff;
}
.hb-liveblog-entry:last-child { border-bottom: 0; }
.hb-liveblog-entry.is-pinned { background: #fffdf3; }
.hb-liveblog-entry.is-new { animation: hb-liveblog-in .6s ease; }
@keyframes hb-liveblog-in {
  from { background: rgba(0, 113, 227, .08); }
  to { background: #fff; }
}
.hb-liveblog-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  font-size: .78rem;
  color: var(--ink-2, #6e6e73);
  margin-bottom: .35rem;
}
.hb-liveblog-meta time { font-variant-numeric: tabular-nums; }
.hb-liveblog-author::before { content: "·"; margin-right: .55rem; color: var(--line, #d2d2d7); }
.hb-liveblog-pin {
  color: #b8860b;
  font-weight: 600;
}
.hb-liveblog-headline {
  margin: 0 0 .35rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink, #1d1d1f);
}
.hb-liveblog-body { font-size: .95rem; line-height: 1.6; color: var(--ink, #1d1d1f); }
.hb-liveblog-body :is(p, ul, ol):last-child { margin-bottom: 0; }
.hb-liveblog-body img,
.hb-liveblog-body iframe {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}
.hb-liveblog-body iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; }
