CSS custom properties (variables)
Variables built into CSS — declared with --name and used with var(--name). Unlike preprocessor variables (Sass) they live in the browser at runtime: they inherit through the cascade, can be changed with JavaScript, and are recomputed dynamically.
Difference from Sass variables: Sass variables are static and disappear at compile time. CSS custom properties are "live" — they exist in the DOM, are inherited by child elements (set --accent on :root and everything can read it), can be changed per element or via media queries, and read/written from JS (style.setProperty). Use case: themes (switch light/dark by swapping a few variables), design tokens (a central place for colors/spacing), dynamic styling that reacts to state, and passing values from JS to CSS. Combined powerfully with calc() and clamp(). Supported everywhere for a long time. One of the most used modern CSS features and the backbone of design systems. Related to clamp() and cascade layers.