Why is CSS so weird? An introduction