You could keep the bigint PK, but for user interaction-related purposes (if that is why you want to reduce the length of the values) you could introduce a generated column that would return a string of characters representing your PK value in the desired form.
ALTER TABLE
YourTable
ADD
MyBigintIDInBaseN text
GENERATED ALWAYS AS MyDecimalToBaseNConversionFunction(MyBigintID) STORED
;
The conversion function would need to be a custom function (because I do not believe PostgreSQL offers a built-in one for this task), marked as IMMUTABLE so that it can be used in a generated column expression.
That way you would continue using the bigint PK internally, including as a sorting criterion where necessary and as a reference target for other tables' FKs. For display purposes, however, you would use the computed column.
If your custom representations of PKs need to be used as query arguments as well, it would be a good idea to create an index on the computed column to help the performance.