{{-- The theme and the navigation rail's width, decided before the first paint. Include it in
, ahead of @vite. It reads the visitor's choice from localStorage (`livewire-material.theme.storage_key`): `light`, `dark` or `system`, falling back to `theme.default`. `system` follows the operating system, now and whenever it changes. The result is written to , which is the only thing the stylesheet keys on; the choice itself is , where `$store.theme` picks it up. A value under one of `theme.legacy_keys` — an earlier toggle's key, which may be JSON-encoded (maryUI's `"dark"`) — is adopted once and removed. Nothing is written for a visitor who never chose, so changing `theme.default` later reaches them too. M3's contrast level rides the same rails (`livewire-material.theme.contrast`): `standard`, `medium`, `high` or `system`, kept under `contrast.storage_key`. `system` asks the operating system, now and whenever it changes, and takes `more` as high. The result is , which the generated stylesheet keys its medium and high blocks on — standard writes no attribute, because the plain blocks are already it. The choice is , where `$store.theme` picks it up. `livewire-material.motion.scheme` is M3's motion scheme: `standard` is written to (and swaps the spatial springs for the restrained set), `expressive`, the default, writes nothing. With colour profiles (`livewire-material.profiles`, generated by `material:scheme`), the active one — `Scheme::profile()`, which asks the application's resolver — is written to , which the generated stylesheet keys each profile on. The rail rides along for the theme's reason: is `expanded` or `collapsed` (`livewire-material.rail.storage_key`, falling back to `rail.default`), and a collapsible rail's width is CSS keyed on it (the `rail-collapsed:` variant). Set any later, a collapsed rail would paint wide and snap shut on every load. `$store.rail` (resources/js/navigation.js) changes it. rides with it and says nothing was stored — the value is only `rail.default`, not a choice — so `