You can use the `--luks2-metadata-size` and `--luks2-keyslots-size` options for `cryptsetup luksFormat` to minimize the header.

```
cryptsetup luksFormat --luks2-metadata-size=16k --luks2-keyslots-size=256k <device>
```

will give you a 1 MiB LUKS header limited to just one keyslot. You can make this even smaller by telling cryptsetup to not align the data area with `--align-payload=1` giving you about 300 KiB header. (If you want detached header you don't need the `align-payload` option.)