Add the bridge between the JS engine and the DOM crate (Phase 11, issue 2 of 8).
- DomBridge struct holds shared Document and wrapper identity cache
- Vm::attach_document() registers document global with structural properties
- document.documentElement, .head, .body, .title properties
- document.getElementById, getElementsByTagName, getElementsByClassName
- document.querySelector/querySelectorAll (reuses css/style selector matching)
- document.createElement, createTextNode factory methods
- Element wrappers with tagName, nodeName, nodeType, id, className
- Wrapper identity: same NodeId always returns same JS object
- NodeId::from_index added to dom crate
- Parser::parse_selectors added to css crate
- 20 tests covering all acceptance criteria
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>