Adds a Special Themes row to Settings > Appearance > Theme. Halloween is a
scheme on the existing data-scheme axis that is always dark: the applier and
the boot script force .dark while it is on, and the color mode control is
dimmed with a hint.
- Palette for the whole app (surfaces, dashboard, Vacay glass, Journey,
mobile chrome) in theme/special/halloween.tokens.css, loaded with index.css.
- Decor as a lazy chunk mounted by SpecialThemeLayer while the scheme is on:
fog, embers, bat flocks, a passing ghost, corner cobwebs, spiders that drop
on a thread and flee when poked, a pumpkin patch and an ember running along
the navbar. Figures are pre-rendered 3D sprite sheets.
- Nothing is drawn over a map: the Atlas gets no decor, the trip planner only
dresses its side panels. Marker clusters turn into lanterns.
- The 3D mascot plays its own Halloween clips in every scene (witch hat, a
spider on the brim, a lit pumpkin beside it); the SVG fallback wears the
same costume.
- Reduced motion stills everything, transparency off drops the fog, shared
pages never show it.
- Navbar, bottom nav, notifications, Atlas and Collections read the dark flag
off the .dark class instead of settings.dark_mode, so a forced dark theme
reaches them.