/* ============================================================
   utilities.css — spacing & layout helpers (token-driven)
   ============================================================ */
.flow > * + * { margin-top: var(--space-4); }
.flow-lg > * + * { margin-top: var(--space-8); }

.cluster { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.cluster--between { justify-content: space-between; }
.stack { display: flex; flex-direction: column; gap: var(--space-4); }
.center { text-align: center; }
.center-x { margin-inline: auto; }

.mt-0 { margin-top: 0; }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mt-8 { margin-top: var(--space-8); }
.mt-12 { margin-top: var(--space-12); }
.mt-16 { margin-top: var(--space-16); }
.mb-0 { margin-bottom: 0; }
.mb-4 { margin-bottom: var(--space-4); }
.mb-8 { margin-bottom: var(--space-8); }
.mb-12 { margin-bottom: var(--space-12); }

.text-muted { color: var(--color-text-muted); }
.text-subtle { color: var(--color-text-subtle); }
.text-accent { color: var(--color-accent); }
.text-ink { color: var(--color-text); }
.text-center { text-align: center; }
.text-balance { text-wrap: balance; }
.text-green { color: var(--color-primary); }
.text-cyan { color: var(--color-cyan); }
.text-mono { font-family: var(--font-mono); }

.maxw-narrow { max-width: var(--container-narrow); }
.maxw-prose { max-width: 72ch; }

.hide-mobile { display: initial; }
.show-mobile { display: none; }
@media (max-width: 767px) {
  .hide-mobile { display: none; }
  .show-mobile { display: initial; }
}

.full-bleed { width: 100%; }
.relative { position: relative; }
.divider { height: 1px; background: var(--color-line); border: none; }

.split { display: grid; gap: var(--space-12); align-items: center; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1fr; } .split--wide-left { grid-template-columns: 1.2fr 0.8fr; } }

/* ---- additional helpers ---- */
.justify-center { justify-content: center; }
.flex-end { display: flex; align-items: flex-end; }
.m-0 { margin: 0; }
.mt-10 { margin-top: var(--space-10); }
.maxw-60 { max-width: 60ch; }
.maxw-52 { max-width: 52ch; }
.maxw-head { max-width: 820px; }
.pad-block-xl { padding-block: var(--space-24); }
.display-xl { font-family: var(--font-display); font-weight: var(--fw-book); font-size: var(--fs-display); line-height: 1.04; letter-spacing: -0.02em; }
.text-accent-soft { color: var(--color-accent); }
.link-underline { color: var(--color-accent-ink); text-decoration: underline; text-underline-offset: 3px; }
.meta-sub { color: var(--color-text-subtle); font-size: var(--fs-caption); }
.serif { font-family: var(--font-display); }

/* ---- Glow effects — removed ---- */
.glow-green { }
.glow-accent { }
.border-glow { position: relative; }
