OK, so this was the answer:
In TOML, the root table ends as soon as the first header (e.g. [params]
) appears. Any bare keys that come after[params]
are part of that table, not the root. In your file.
I had a [params] section starting before the theme config. So in short I just had a bug in hugo.toml
I overlooked it at first as the tab after the keys under [params] made it look like indentation "scoped" the values. But forgot that the whitespace does not have scoping semantics in TOML.