vinext silently ignored `experimental.lightningCssFeatures` because the
options were never plumbed into Vite's CSS pipeline. `light-dark()` and
other modern CSS features were still lowered to polyfills even when the
user explicitly listed them under `exclude`.
Resolve `experimental.useLightningcss` and convert the dash-case feature
names from `experimental.lightningCssFeatures` into the numeric bitmask
expected by lightningcss (mirroring Next.js's `featureNamesToMask` in
`packages/next/src/build/webpack/loaders/lightningcss-loader/src/loader.ts`
and `crates/next-core/src/next_config.rs`). When `useLightningcss` is on,
forward `transformer: 'lightningcss'` plus the resolved `include`/`exclude`
masks to Vite's `css.lightningcss` bridge.
Adds a regression test that builds a fixture with
`exclude: ['light-dark']` and asserts the function survives untouched in
the emitted CSS, plus an inverse `include: ['light-dark']` case and unit
coverage for the feature-name → bitmask helper.
Ported from Next.js:
test/e2e/app-dir/experimental-lightningcss-features/experimental-lightningcss-features.test.ts