@namespace binds a prefix to an XML namespace URI so selectors can tell same-named elements apart. It follows @charset and @import and precedes everything else. Without a prefix it sets the default namespace; selectors use prefix|element, *|element (any) or |element (none).
@namespace url(http://www.w3.org/1999/xhtml); /* unprefixed selectors = HTML */
@namespace svg url(http://www.w3.org/2000/svg);
a { color: #1565c0; } /* HTML <a> only */
svg|a { fill: #ef6c00; } /* <a> inside inline SVG */It matters in HTML because the parser puts inline <svg> and <math> in their own namespaces, and SVG has its own <a>, <title> and <style>. Baseline widely available; it applies only to the declaring stylesheet.