container.html
<div class="container">
    <div style="background:#f002">
        The basic <code>.grid.-container</code> blah blah.
    </div>
</div>

<div class="container -columns-12">
    <div class="cell -span-6 -left" style="background:#00f2">.-span-6</div>
    <div class="cell -span-6 -center" style="background:#00f2">.-center-6</div>
    <div class="cell -span-6 -right" style="background:#00f2">.-last-6</div>
</div>
index.scss
.container {
  --columns: 1;
  --gap: var(--root-gap, 16px);
  --container-width: 320px;

  display: grid;
  gap: var(--gap);
  grid: auto /
    [wide-start]
      1fr
    [main-start]
      repeat(var(--columns), minmax(0, calc((var(--container-width) - (var(--columns) - 1) * var(--gap)) / var(--columns))))
    [main-end]
      1fr
    [wide-end];

  @for $i from 2 through 12 {
    &.-columns-#{$i} {
      --columns: #{$i};
    }
  }

  > * {
    grid-column: main / main;
  }

  /* should be max mobile columns + tablet outer gutters */
  @media (min-width: 368px) {
    --container-width: 744px;
  }

  /* should be max tablet columns + desktop outer gutters */
  @media (min-width: 808px) {
    --container-width: 1300px;
  }
}