fyi: [hidden] is a lie

hidden is a Boolean attribute often used to hide elements, since browsers will (theoretically) not show elements with hidden set, like this:
  <div hidden>I am not displayed</div>
This is unfortunately a lie: the hidden rule is a User Agent style, which means it's less specific than a moderate sneeze [ref]. This means that your favourite display style will override it:
    div { display: block; }
  <div hidden>
      lol guess who's not hidden anymore
      hint: it's this thing
The solution is tragic and it's to either not use hidden (because it's a lie), or to pepper your apps with
  [hidden] { display: none !important}
and they both suck, so have fun!