Map each data-elevation rung to a chrome bundle (fill / border / radius / shadow) via low-specificity attribute selectors — the rung's shadow is the rune surface's restingbox-shadow depth, kept distinct from frame-shadow's per-guest drop-shadow (SPEC-107 §1); map each data-prominence value to a header type register (using the v0.22.0 type tokens).
Set Lumina's per-rune defaultElevation / defaultProminence (and defaultWidth where a rune was a banner) so today's appearance is preserved: card-bucket runes → raised/flat, inline → flush, inset → sunken, banner → flush + width: full.
Replace the four surfaces.css rune-name buckets (and the two nested :where(.rf-card, …) media-chrome lists) with [data-elevation] / [data-prominence] selectors.
Acceptance Criteria
surfaces.css no longer enumerates rune names; chrome is selected by [data-elevation="…"] (and media-chrome by attribute, not the :where rune lists).
Per-rune defaults in Lumina's config reproduce the current card/inline/inset/banner appearance (no unintended visual change for unchanged content).
prominence registers are wired to the type tokens; CSS-coverage tests + structure contracts stay green.
Dependencies
Requires WORK-423 + WORK-424 (the axes + defaults).