Package vs presentation

The folders split into two kinds, and the line between them is the most important one in the project. profile/ is the package: the shared vocabulary — primitives, roles, themes, the accessibility floor. It's the noun, the API surface, the part that would ship if anything did. Everything else — document/, components/, the borrowed resets and vendors — is consumer code: verbs, spending the vocabulary, demonstrating what it builds.

The proof is the dependency arrow, and it runs one way. Delete a consumer and the package still stands; delete the package and every consumer goes dark. document/ reaches into profile/ constantly; profile/ never reaches back. That asymmetry is the boundary — not a rule imposed on the code, a fact about it.

It's also the line between what's shipped and what's given away. Through profile/ is the contract — the words, with public standing, the thing you'd build against. After it is opinion: one way to spend the vocabulary, mine, a worked example you'd delete and rewrite for your own site. The package is held to a higher standard because it's the part a reader installs against; the consumers can be looser, more authorial.

Which is why profile/ was finished and locked first, and the rest left freer. You polish the dictionary before the essays. One contract beneath; as many presentations over it as you care to write.