Add visual-text component, move shared css to _layout.scss