 section on margin collapsing.

#a is not "in the flow" since it’s a float, which makes #b the first in-flow child of <body>, which makes the top margins of <body> and #b "adjoining" (even if the former is zero) which makes them collapse.

So the quoted rule applies and there’s an hypothetical block around #a. Since that blocks has no in-flow content, margins collapse through it.

Then I believe this rule applies:

https://drafts.csswg.org/css2/box.html#collapsed-through

    If the element's margins ar