title: how to reset web components over specified style with `all: initial`?
body: <p>I’m building a widget that is aimed to be embedded on other websites. I’d like to avoid using iframe so I was looking at <code>all: initial</code>. 
  “This keyword specifies that all property values set on the element all is set on — or inherited from the element's parent” seemed to be perfect but I’m having an issue when previous rules have a greater specificity.</p>
  
  <p>here is an example of the issue:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>/* external css */
  #color {
    color: red;
  }
  
  span {
    text-decoration: underline;
  }
  
  span {
    font-weight: bold !important;
  }
  
  /* my widget css */
  /* reset */
  
  widget,
  widget * {
    all: initial;
  }
  
  /* then my widget style */
  widget span {
    color: blue
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div id="div"&gt;
    Lorem &lt;span id="color"&gt;ipsum&lt;/span&gt; dolor sit amet,
    &lt;widget&gt;consectetur &lt;span id="color"&gt;adipiscing&lt;/span&gt; elit.&lt;/widget&gt;
    Phasellus eget velit sagittis.
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>At this point the only style inside the widget should be the word “adipiscing” printed in blue the text-decoration has as intended be cleared but it’s still red and bold</p>
  
  <p>I’ve tried prefixing the rules with ids it kinda work, but not for the <code>!important</code> rule. I also tried to add <code>!important</code> in some or each of the widget rules but it only makes things worst</p>
  
  <p>Is there a way to make this work without touching at the external css?</p>