Use the 'qrcode' npm package instead of shelling out to the 'qrencode' binary. Load via createRequire for ESM/CJS interop. Use margin: 2 to avoid the utf8 renderer's invalid array length bug with odd margins.