Phantom fix (audit wave 3): both properties are parsed (css/style.rs:90-92) but the paint pivot is hardcoded to box center (paint_pass.rs:184-187). Implement: resolve transform-origin/perspective-origin (keyword, %, px forms) into the pivot used by apply_transform for 2D and 3D paths. Unlocks hinge/edge rotations (3D doors, cards pivoting from a side). Red-first pixel tests: rotate around left edge vs center produce measurably different pixel distributions; default stays center (byte-identical renders without the properties).
Phantom fix (audit wave 3): both properties are parsed (css/style.rs:90-92) but the paint pivot is hardcoded to box center (paint_pass.rs:184-187). Implement: resolve transform-origin/perspective-origin (keyword, %, px forms) into the pivot used by apply_transform for 2D and 3D paths. Unlocks hinge/edge rotations (3D doors, cards pivoting from a side). Red-first pixel tests: rotate around left edge vs center produce measurably different pixel distributions; default stays center (byte-identical renders without the properties).