The /oidc/[...] server catch-all was intercepting /oidc/login before the Nuxt page router could render it. Moving the page outside /oidc/ avoids the conflict entirely.