The main stylesheet grew in three layers: an original release around line 400, a redesign around
line 1000, and another around line 4400. Each layer re-declared selectors the earlier ones had
already set, without removing what it replaced. So the file stated .status-pill twice with
different padding, colour, font size and text transform, and .inner-page three times with
different backgrounds and four different brand colours.
None of this reached a visitor. The later declaration always wins, and the per-page purge keeps
unused rules out of delivered bytes, so the cost was not performance. The cost was that reading
the file told you the wrong thing. Anyone changing .status-pill would naturally edit the first
block they found, see nothing happen, and conclude the stylesheet was haunted.
Sixty-seven declarations that could not apply
Two rule blocks with byte-identical selector text, in the same at-rule context, in the same file, have identical specificity — so source order decides, and a property declared in both is dead in the earlier one. That is the whole rule, and it is narrow on purpose: nothing was reordered and no blocks were merged, because only provably unreachable declarations were removed. What remains keeps its exact position in the cascade.
The one exception is importance. An earlier !important beats a later normal declaration, so that
pair is left alone.
Sixty-seven declarations across thirty selectors went, taking the authored stylesheet from 118 KB to 114 KB and its bundle from 95 KB to 92 KB. Every other stylesheet in the repository was already clean.
Four colours that nothing wanted any more
Removing those declarations made something else visible. --bg, --electric-blue,
--electric-purple and --sammy-orange were defined on :root and on .inner-page, and the only
rules that referenced them were among the superseded ones. With those gone the four tokens had no
reader at all, and the custom-property check added in an earlier pass said so immediately. Their
definitions are removed too — a second layer of dead code that only became reachable once the
first was cleared.
How “it changes nothing” was established
Not by looking at the pages. For every stylesheet, every combination of at-rule context, selector and property was flattened to the declaration that wins, honouring importance, and the two maps compared: 2,725 winning declarations before, 2,725 after, and no difference in a single one. That is deterministic, and it is the actual claim — only losers were removed, so what applies cannot have moved.
The browser was used as a cross-check rather than the proof, and it is worth saying why. A
computed-style snapshot of fourteen routes at two widths, 434,220 measurements, showed sixteen
differences, all on /work/. Running the same build four times showed eleven to thirty
differences on that same route, in the same elements — the platform feed headers, whose text wraps
differently depending on whether a lazily loaded platform icon has arrived yet. The browser
measurement is noisier than the change it was meant to verify, which is exactly why the
deterministic check is the one that counts.
Validation evidence
165 delivery tests, 263 built-output tests, 77 Worker and feature tests, 7 feed-delivery tests,
the release audit across 35 canonical pages, the browser suite across 35 routes with zero
failures, and 80 responsive, keyboard and print checks with zero failures. Unreachable CSS remains
at 0 of 202,098 bytes. A check now fails if any stylesheet declares a property a later identical
selector has already overridden, with eight fixtures proving it catches the three-layer case, the
emptied rule, the custom property, the selector list that only looks identical, the media query
that is a different context, and both directions of !important.
