html > body > #grid .blocks {
  /** Required arguments with purportedly ridiculous defaults */
  --element-background: red;
  --element-gap: 200px;
  --element-gap-inner: 200px;
  --element-padding: 200px;
  --element-icon-text-overlay: red;

  /** Optional arguments with sensible defaults */
  --element-clip-path: none;
  --element-border-radius: none;

  display: grid;
  gap: var(--element-gap);
  width: 100%;
  grid-template-columns: repeat(auto-fill, minmax(20rem, auto));
  align-items: start;

  > figure {
    background: var(--element-background);
    padding: var(--element-padding);
    clip-path: var(--element-clip-path);
    border-radius: var(--element-border-radius);
    display: flex;
    flex-direction: column;
    gap: var(--element-gap-inner);
    word-break: break-word;

    > h3 {
      font-size: x-large;

      &[data-icon]:not([data-icon=""]) {
        display: flex;
        flex-direction: row;

        &::before {
          color: transparent;
          background: var(--element-icon-text-overlay);
          background-clip: text;
        }
      }
    }

    > h4,
    > ul {
      font-size: smaller;
      font-style: italic;
    }

    > ul {
      display: flex;
      flex-wrap: wrap;
      gap: var(--element-gap-inner);
    }
  }
}
