@media (min-width: 0px) {
  .open-source-intro {
    align-items: center;
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 40rem) {
  .open-source-intro {
    grid-template-columns: repeat(8, 1fr);
  }
}

@media (min-width: 64rem) {
  .open-source-intro {
    grid-template-columns: repeat(12, 1fr);
  }
}

.open-source-intro {
  column-gap: var(--gutter);
  display: grid;
  row-gap: 0px;
  margin-top: var(--space-xxl);

  >div {
    padding-left: var(--gutter);

    >p {
      position: relative;

      &::before {
        background-color: var(--color-downriver-400);
        content: "";
        display: block;
        height: 1.5em;
        left: calc(-1 * var(--gutter));
        position: absolute;
        top: 0px;
        width: 1px;
        z-index: 1;
      }
    }
  }

  @media (min-width: 0px) {
    >div {
      grid-row: 1 / 2;
      grid-column: 1 / span 4;
    }
  }

  @media (min-width: 40rem) {
    >div {
      grid-column: 2 / span 6;
    }
  }

  @media (min-width: 64rem) {
    >div {
      grid-column: 3 / span 8;
    }
  }

  @media (min-width: 75rem) {
    >div {
      grid-column: 4 / span 6;
    }
  }
}

.open-source-projects {
  margin-top: var(--space-xxl);
}