.shell {
  width: min(100% - 2rem, var(--shell));
  margin-inline: auto;
}

.wide {
  width: min(100% - 2rem, 90rem);
  margin-inline: auto;
}

.stack > * + * {
  margin-block-start: var(--flow, var(--gap-m));
}

.stack-s > * + * {
  margin-block-start: var(--gap-s);
}

.stack-l > * + * {
  margin-block-start: var(--gap-l);
}

.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-s);
  align-items: center;
}

.cluster-between {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gap-s);
  align-items: center;
  justify-content: space-between;
}

.grid-auto {
  display: grid;
  gap: var(--gap-m);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.grid-2 {
  display: grid;
  gap: var(--gap-m);
  grid-template-columns: 1fr;
}

.grid-3 {
  display: grid;
  gap: var(--gap-m);
  grid-template-columns: 1fr;
}

.section {
  padding-block: var(--gap-2xl);
}

.section-tight {
  padding-block: var(--gap-xl);
}

.rail-layout {
  display: grid;
  gap: var(--gap-l);
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.split {
  display: grid;
  gap: var(--gap-l);
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.split-media {
  display: grid;
  gap: var(--gap-l);
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.frame {
  border: var(--line-ink);
  background: var(--white);
  padding: var(--gap-m);
}

.panel {
  background: var(--white);
  border: var(--line);
  padding: var(--gap-m);
  border-radius: var(--radius-2);
}

.center-copy {
  max-width: 42rem;
}

@media (min-width: 48rem) {
  .grid-2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
  .split {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  }
  .split-media {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }
}

@media (min-width: 64rem) {
  .rail-layout {
    grid-template-columns: var(--rail) minmax(0, 1fr);
    gap: var(--gap-xl);
  }
}
