Fix #2: Create gallery directory if missing