grid.html
<div class="grid">
    <div style="background:#00f2">
        <code>.grid</code> defaults to one column.
    </div>
</div>

<div class="grid -columns-2">
    <div style="background:#00f2">You can
        change this by adding a modifier: <code>.-columns-N</code>.
    </div>
</div>

<div class="grid -columns-3">
    <div class="cell -span-2" style="background:#00f2">
        You can use <code>.cell.-span-N</code> as a utility to span columns.
    </div>
</div>

<div class="grid -columns-3">
    <div class="cell -right" style="background:#00f2">
        You can use <code>.cell.-right</code> to right align an element.
    </div>
</div>

<div class="grid -columns-12">
    <div class="cell -span-4 -center" style="background: #0f02">
        4 middle cells
    </div>
</div>

<div class="grid -columns-9">
    <div class="cell -span-5 -center" style="background:#00f2">
        You can use <code>.cell.-center-N</code> to center an element, as best as it can.
    </div>
</div>

<h5>Examples</h5>

<section class="section accent-primary container">
  <div class="grid -columns-2">
    <div class="cell section__content placeholder" style="aspect-ratio: 634 / 368"></div>
    <div class="cell section__content -prioritize">
      <h3>This section is grid -columns-2.</h3>
      <p>
        Al of the layout for these sections are being done using .grid and .cell. 
      </p>
    </div>
  </div>
</section>

<section class="section accent-secondary container">
  <div class="grid -columns-3">
    <div class="cell -span-2 section__content -prioritize">
      <h3>This shows how to do two-thirds content.</h3>
      <p>Mauris euismod sit amet dolor vel vehicula. Nulla lacinia augue sem, accumsan luctus nunc facilisis Duis ex libero, auctor a semper in, condimentum sit amet enim. Vestibulum et consectetur arcu. <a href="#">Nam nunc justo,</a> varius id metus eu praesent dictum sit amet quam efficitur placerat. </p>
    </div>
    <div class="cell section__content placeholder" style="aspect-ratio: 634 / 368"></div>
  </div>
</section>

<section class="section accent-tertiary container">
  <div class="grid -columns-4">
    <div class="cell -center -span-2 section__content -prioritize">
      <h3>And here's an example centering the content.</h3>
      <p>Mauris euismod sit amet dolor vel vehicula. Nulla lacinia augue sem, accumsan luctus nunc facilisis Duis ex libero, auctor a semper in, condimentum sit amet enim. Vestibulum et consectetur arcu. <a href="#">Nam nunc justo,</a> varius id metus eu praesent dictum sit amet quam efficitur placerat. </p>
      <div class="actions">
        <a class="button -outline" href="#">Learn More</a>
        <a class="button -accent-primary" href="#">Buy Now</a>
      </div>
    </div>
  </div>
</section>

cell.scss
.cell {
  --cell-span: min(var(--columns, 1), round(var(--span, 1) * var(--root-breakpoint-lg) / var(--root-breakpoint-sm)));
  grid-column: span var(--cell-span);

  &.-left {
    grid-column: main / span var(--cell-span);
  }

  &.-right {
    grid-column: span var(--cell-span) / main;
  }

  &.-center {
    grid-column-start: round(down, 1 + (var(--columns, 1) - var(--cell-span)) / 2, 1);
    grid-column-end: span calc(var(--cell-span) + mod(var(--columns) - var(--cell-span), 2));

    :where(.container) > & {
      grid-column-start: round(down, 2 + (var(--columns, 1) - var(--cell-span)) / 2, 1);
    }
  }

  &.-prioritize {
    order: -1;

    @media (min-width: 808px) {
      order: unset;
    }
  }


  @for $i from 1 through 12 {
    &.-span-#{$i} {
      --span: #{$i};
    }
  }

  @media (min-width: 368px) {
    --cell-span: min(var(--columns, 1), round(var(--span, 1) * var(--root-breakpoint-lg) / var(--root-breakpoint-md)));
  }

  @media (min-width: 808px) {
    --cell-span: var(--span, 1);
  }
}
index.scss
@use "cell";

.grid {
  --columns: 1;
  --gap: var(--root-gap, 16px);

  display: grid;
  gap: var(--gap);
  grid: auto / [wide-start main-start] repeat(var(--columns), 1fr) [main-end wide-end];

  > * {
    min-width: 0;
  }

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