Address the review findings on the earlier font upload fix.
parse-font-family now lives in app.common.media and separates a
style token glued to a weight token, so "Roboto-BoldItalic" yields
family "Roboto". oblique is recognized as italic in parse-font-style
and in the weight lookahead, avoiding a collision with the regular
face.
The upload now sends :variant-name to create-font-variant, which
accepts it as an optional param, so the foundry name survives the
upload. prepare-font-entry is extracted and covered by a regression
test for the parsed and woff2 branches.
Closes#10436
AI-assisted-by: deepseek-v4.1-flash