Advance Query - Query two different tags in the same page

I am still getting my head around datalog and datomic, but I have been trying to query pages that have two tags occuring in themsimultaneously, from the advanced example project example:

 #+BEGIN_QUERY
{:title "All todos with tag project"
 :query [:find (pull ?b [*])
       :where
       [?p :block/name "project"]
       [?b :block/ref-pages ?p]]}
#+END_QUERY

However, while I can get an or clause to work, using an and clause does not find pages with both tags in them. I am assuming I am misunderstanding something obvious about the syntax, but could use some help. So, the following does not work:

#+BEGIN_QUERY
{:title "All todos with tag project"
 :query [:find (pull ?b [*])
       :where
       (and 
       [?p :block/name "2021w34"]
        [?p :block/name "prm"]
       )
       [?b :block/ref-pages ?p]]}
#+END_QUERY

I could use a little help to fix this up and understand (more to the point) why an OR works here but not the AND (and basically, how to query two different tags occuring in the same page.

merci!
Daryl,.