After rotateCalibration, map tape tick A→B through bakeTiltTransform into baked cal coords, orient overlay bbox with orientedRect(..., tapeAngle), and pass optional axis into buildOverlayPlan so length || tape and widths ⊥ tape.
- One crop_fill (default 0.9) replaces duplicated FILL in inventory/overlay - Thin localStorage settings store; crop % only moves long-axis end insets - Pure tapeGeometry: fixed stage line, stage↔image map, tick span → px - measure() prefers tape tick span for scale; maskSpanAlong demoted - rotateCalibration bakes cal tilt into inventory + overlay only - Fix stale 80%-fill comment on slabBounds