Problem of cardinal assignment 
A weak cardinal assignment is any definite operation on sets $A\mapsto |A|$ which satisfies (C1) and (C3), and it is a strong cardinal assignment if it also satisfies (C2). The cardinal numbers (relative to a given cardinal assignment) are its values, $$Card(\kappa)\iff \kappa \in Card\iff_{def} (\exists A)(\kappa=|A|)$$
(C1) $A=_c|A|$ (notation: $A=_c B$ if there is a bijection between the sets $A$ and $B$)
(C2) if $A=_c B$ then $|A|=|B|$
(C3) for each set of sets $\mathscr E$, $\{|X|: X\in \mathscr E\}$ is a set

How should I understand the word "operation"? Is it a "rule" that assign to every element of the class of sets another element of the class of sets? (So $Card$ is sort of an alanogue of a function between sets; but here we consider classes instead of sets.) Can the notion of "rule" be formalized (as in the case of sets when there is a formal definition of a function)?

Notice that there is only one choice for $|\emptyset|$, $$0=_{def} |\emptyset|=\emptyset,$$ since only $|\emptyset|=\emptyset$ satisfies $\emptyset=_c|\emptyset|$. It is also convenient to set $$1=_{def}|\{0\}|, 2=_{def}|\{0,1\}|$$ so we have handy names for the cardinal numbers of singletons and doubletons.

Why does only $\emptyset$ satisfy $\emptyset=_c|\emptyset|$? Doesn't any set $A$ satisfy $A=_c |A|$ by (C1)? Moreover, isn't $|A|$ supposed to be a set for any set $A$? (According to how I described the operation $A\mapsto |A|$.) $0$ is not a set, how can it be equal to the set $|\emptyset|$? Further, why does $|\emptyset|=\emptyset$ hold?
Similarly, how can the non-set $1$ be equal to the set $|\{0\}|$, and similarly for $2$?
 A: The most formalistic way to understand what is going on is that to ZFC (or whatever set theory we're using) we've added a new function symbol that we happen to write in outfix notation. That is, if $t$ is some term in the new extended theory, then $|t|$ is also a term. There is no notion of "rule" that needs to be explained. You can understand this as a "function" except between classes but this doesn't really help and can lead to a lot of confusion, in my opinion. It is $|{\_}|$ that is the "operation", not $Card$. $Card$ is a predicate symbol. In this case, though, this predicate symbol can be added to our extended ZFC via an extension by definition. Indeed, the definition is $Card(\kappa)\iff \exists A.\kappa=|A|$. Personally, I would not write $\kappa\in Card$ since this suggests that $Card$ is a set which it is not. Many authors like to describe sets as special kinds of classes and use the $\in$ syntax for arbitrary classes. I think this is a mistake and is definitely not what's happening formally speaking in ZFC. Some other set theories do have a formal notion of "class", but this is a very subtly different thing. Personally, I strongly prefer to just talk about predicates rather than talking about classes.
As James states, $|\emptyset|=\emptyset$ because, by C1, we must have $|\emptyset|=_c\emptyset$ but there is only one set that is in bijection with $\emptyset$, namely $\emptyset$ itself. This doesn't hold for any other set. As I stated in the comment, the text you quoted is explicitly defining $0$ to be $\emptyset$. It's also explicitly defining $1$ to be $|\{\emptyset\}|$, and similarly for $2$. This does not actually tell us which sets $1$ or $2$ are. All we know is that they are in bijection with $\{\emptyset\}$ and $\{\emptyset, |\{\emptyset\}|\}$ respectively. Formalistically, you can view these as additional extensions by definitions. To drive this home a bit, formal presentations of ZFC, e.g. this one, usually do not define any closed terms. For example, $\emptyset$ is not a term of ZFC. All the "normal" set theoretic notation can be understood as various extensions by definitions over these minimalistic presentations of ZFC. Regardless, it doesn't make sense to say "$0$ is not a set". Either $0$ is a term of your set theory, in which case it is a set because we're working in a single-sorted logic and thus all terms are the same kind of thing, which is sets in a set theory1, or $0$ is not a term and it is simply meaningless to talk about expressions involving it at all. That is, either $0$ is a set because there's nothing else for it to be, or any statement about $0$ is meaningless.
1 We could work in a multi-sorted logic to allow different kinds of terms. Alternatively, there are (single-sorted) set theories, even variations of ZFC, that have urelements (aka atoms). In these theories, it would be possible to define $0$ to be an atom and thus not a set. The individuals of these theories, though, are no longer just sets.
