add prev/next arrow buttons (only in gallery mode with >1 image) and ArrowLeft/ArrowRight keyboard handling. switching uses a 150ms fade-out -> swap src -> fade-in (no fly, matching Medium). originNode is updated to the new image so close/scroll-close flies back to the right place; openScrollY is reset to keep scroll-close baseline valid.