.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.wrap--narrow { max-width: 860px; }
.section { padding-block: var(--space-section); }
.section--flush-top { padding-top: 0; }
.section--page-top { padding-top: var(--space-page-top); }
.mono { font-family: var(--font-mono); }
.muted { color: var(--color-muted); }
.nowrap { white-space: nowrap; }
.text-accent { color: var(--color-accent); }
.lede { font-size: clamp(var(--text-lg), 1.8vw, var(--text-xl)); color: var(--color-muted); max-width: 640px; line-height: var(--leading-normal); }
.lede--sm { font-size: var(--text-lg); }
.stack { display: grid; gap: var(--stack-gap, var(--measure-md)); }
.stack--start { justify-items: start; }
.cluster { display: flex; flex-wrap: wrap; gap: var(--cluster-gap, var(--measure-sm)); align-items: center; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap, var(--measure-xl)); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap, var(--measure-md)); }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap, var(--measure-md)); }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--space-layout); align-items: start; }
.split--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.split--lead { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.sticky { position: sticky; top: calc(var(--header-h) + 40px); }
.placeholder-text { color: var(--color-accent-text); font-weight: var(--weight-semibold); }

@media (max-width: 960px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split, .split--even, .split--lead { grid-template-columns: 1fr; }
  .sticky { position: static; }
}

@media (max-width: 600px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}
