/* Public changelog (/updates) + the home page's "recently shipped" block.
   Deliberately quiet: this page exists to be believed, not admired, so it
   borrows the methodology page's prose measure rather than the landing's
   panel language. */

.updates-page {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 18px 56px;
}
.updates-page h1 {
  font-size: 1.7rem;
  margin: 0 0 .5rem;
  letter-spacing: -0.01em;
}
.updates-page .meta {
  color: var(--ink-2, #5b5750);
  margin: 0 0 1.6rem;
  line-height: 1.55;
}

/* ---- Activity pulse ---- */
.upd-pulse {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px 22px;
  padding: 16px 18px;
  margin: 0 0 2rem;
  border: 1px solid var(--rule, #e1e4e8);
  border-radius: 8px;
  background: var(--paper-2, #fbfaf8);
}
.upd-pulse__item { display: flex; flex-direction: column; gap: 2px; }
.upd-pulse__num {
  font-variant-numeric: tabular-nums;
  font-size: 1.25rem;
  letter-spacing: -0.01em;
}
.upd-pulse__label {
  font-size: .78rem;
  line-height: 1.35;
  color: var(--ink-3, #7a746c);
}

/* ---- Entry list ---- */
.upd-list { list-style: none; margin: 0; padding: 0; }
.upd-item {
  padding: 18px 0;
  border-top: 1px solid var(--rule, #e1e4e8);
}
.upd-item:first-child { border-top: 0; padding-top: 0; }
.upd-item__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 5px;
}
.upd-item__date {
  font-size: .76rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink-3, #7a746c);
  font-variant-numeric: tabular-nums;
}
.upd-item__title {
  font-size: 1.02rem;
  font-weight: 500;
  margin: 0 0 .35rem;
  line-height: 1.4;
}
.upd-item__body {
  margin: 0;
  color: var(--ink-2, #5b5750);
  line-height: 1.55;
  font-size: .93rem;
}
.upd-empty { color: var(--ink-3, #7a746c); }
.upd-foot {
  margin: 2.4rem 0 0;
  padding-top: 1.2rem;
  border-top: 1px solid var(--rule, #e1e4e8);
  font-size: .88rem;
  color: var(--ink-3, #7a746c);
}

/* ---- Category chip ----
   Four hues, each carrying a word as well as a colour, so the chip is never
   the sole signal. Unknown categories fall to the neutral chip rather than
   failing, which is why migration 091 has no CHECK on the column. */
.upd-chip {
  font-size: .66rem;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 3px;
  border: 1px solid currentColor;
  line-height: 1.5;
}
.upd-chip--new      { color: #1f6f43; background: #eaf5ee; }
.upd-chip--improved { color: #3f5b8c; background: #eef2fa; }
.upd-chip--fixed    { color: #8a4b1f; background: #fbf1e8; }
.upd-chip--data     { color: #5a4a86; background: #f2effa; }
.upd-chip--other    { color: #6b6660; background: #f2f1ee; }

@media (prefers-color-scheme: dark) {
  .upd-chip--new      { color: #7fd0a0; background: #16271d; }
  .upd-chip--improved { color: #9db6e4; background: #1a2030; }
  .upd-chip--fixed    { color: #e0a878; background: #2a1e14; }
  .upd-chip--data     { color: #b3a4e0; background: #211c30; }
  .upd-chip--other    { color: #a8a29a; background: #232220; }
}
