title: CSS not() with attribute selector doesn't seem to work
body: <p>I have a very simple selector that works, but when adding it to a <code>:not()</code> it no longer seems to recognize it.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>h2:not([random-attribute~="value"] h2){
    color: red;
  }
  [random-attribute~="value"] h2{
    color: blue;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div class="content"&gt;
    &lt;h2&gt;Same valid selector, not working&lt;/h2&gt;
    &lt;div random-attribute="value"&gt;
        &lt;h2&gt;Valid selector turned blue.&lt;/h2&gt;
    &lt;/div&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>From what I understand, if you put a valid selector inside the <code>not()</code> you will get any <code>h2</code> element that is <strong>not</strong> whatever is inside the parenthesis. This is intuitive.</p>
  
  <p>What isn't intuitive, is that the selector within the <code>not()</code> is valid and works when used alone, but when added to the <code>not()</code> it doesn't seem to work. </p>
  
  <p>Is this not a valid way to write this?</p>