/* Homepage News box (#plan): the latest two updates, built by dev/build-news.mjs. */
.home-news { margin: 8px 24px 20px; padding: 14px 16px; border: 1px solid var(--ink); background: var(--paper-2); }
.home-news h3 { margin: 0 0 8px; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--red-ink); padding-inline: 2px; }
.home-news ul { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.home-news li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.home-news time { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-2); padding-inline: 2px; }
.home-news .box { letter-spacing: .16em; padding-inline: 12px; }
@media (max-width: 560px) { .home-news { margin-inline: 20px; } }

/* Build progress summary (#plan), built by dev/sync-roadmap.py from the roadmap. */
.plan-sum { margin: 16px; padding: 18px 20px; border: 1px solid var(--ink); background: var(--paper); }
.plan-sum__head { margin: 0; font: 400 clamp(30px, 5vw, 40px)/1.05 var(--serif); }
.plan-sum__sub { margin: 8px 0 16px; font: 400 17px/1.5 var(--sans); color: var(--ink-2); }
.plan-sum__row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; }
.plan-sum__bar { position: relative; display: block; height: 14px; border: 1px solid var(--ink); background: var(--paper); }
.plan-sum__bar i { position: absolute; top: 2px; bottom: 2px; left: 2px; max-width: calc(100% - 4px); background: var(--ink); }
.plan-sum__pct { font-size: 13px; letter-spacing: .16em; padding: 2px 4px; }
@media (max-width: 560px) { .plan-sum { margin: 12px; padding: 14px; } }
