The ident() function is an arbitrary substitution function that can be used to manually construct <custom-ident> values from several parts.
I do not understand why it is defined as an arbitrary substitution function.
If a property value contains one or more arbitrary substitution functions, and those functions are themselves syntactically valid, the entire value’s grammar must be assumed to be valid at parse time.
Both color: rgb(0 0 var(--blue)) and animation-name: ident(custom- var(--id)) are valid at parse time because the property value includes var(), but rgb() is not an arbitrary substitution function.
What am I missing?