.center {
  box-sizing: content-box;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--measure);
  --gutter: var(--s1);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.cover {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  --space: var(--s1);
  padding: var(--space);
}

.cover > * {
  margin-top: var(--space);
  margin-bottom: var(--space);
}

.cover > :first-child:not(.centered) {
  margin-top: 0;
}

.cover > :last-child:not(.centered) {
  margin-bottom: 0;
}

.cover > .centered {
  margin-top: auto;
  margin-bottom: auto;
}

.cluster {
  --space: var(--s1);
}

.cluster > * {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  margin: calc(var(--space) / 2 * -1);
}

.cluster > * > * {
  margin: calc(var(--space) / 2);
}

.stack {
  --space: var(--s1);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.stack > * {
  margin-top: 0;
  margin-bottom: 0;
}

.stack > * + * {
  margin-top: var(--space);
}
