Three independent grain layers, one per surface: the cream page (body::after), the dark projects section (.projects::after), and the coloured project-card bars (.project__bar). Each is tuned separately because no single blend mode reads on both near-white and near-black. The hero lockup is left grain-free on purpose — it is already the busiest animation on the page.
The Light background controls below now drive one sheet over everything — page, dark section and bars. The other two groups are off.