A container cannot query itself.
The common read: container-type marks an element as queryable, so a @container rule styles that element too once it is wide enough.
Four. The four replies each resolve the condition against the thread, which is 600px wide, and the thread resolves it against nothing at all. A @container rule with no name is evaluated against the nearest ANCESTOR query container of the element being styled, and no element is an ancestor of itself, so the search for the thread's container starts at the thread's parent and walks up.
There is no query container up there, so there is nothing eligible to evaluate the condition against, and the declarations never reach the thread. Measured on the pinned engines: getComputedStyle(thread).gridTemplateColumns returns "none" while all four replies return "48px 552px", and the control that adds one query container above the thread turns the thread's own value into "48px 552px" and takes the count to five of five, without changing the rule, the selector or a single declared width.
This never came up with media queries, and that is worth saying plainly rather than treating the reader as careless: the thing a media query asks about is the viewport, the viewport is above every element on the page, and so "the element I am styling" and "the box I am asking about" could not collide. Container queries put both jobs in your tree, and the moment they land on one element the rule goes quiet.
Quiet is the whole problem. Nothing throws, nothing warns, the console stays empty in all three engines, and the rule is sitting in the CSSOM as a live CSSContainerRule the whole time. Take the same fixture and delete container-type altogether and you get the same silence with a wider blast radius: no eligible container anywhere means no styled element anywhere, five of five unchanged, still with an empty console.
So the element that carries container-type is not a candidate for the rules it enables, and the fix is structural rather than clever. Give the styled thing a parent, put container-type on the parent, and let the rule target the child.
