Most of CSS OM is already implemented in Javascript which can come in handy for this project:
https://github.com/NV/CSSOM
https://github.com/jsdom/cssstyle
(both of which jsdom use internally. cssstyle is a kind of updated version for some parts of CSSOM)
Not sure if we could reuse these packages though, since we'd need to expose an API from Rust to JS anyway.