Centralise the app's motion vocabulary in CalendarTransitions.kt and route
every surface through it so animation is consistent app-wide:
- Shared expand/collapse, list-item and fade-through helpers; the event-edit
expand pattern is now the shared one (no duplicate).
- Settings reminder-override rows and the reminder Custom field now expand/
collapse instead of bare-fading.
- Search and agenda rows animate (fade/relocate) via animateItem.
- Month/week/day slide and the onboarding gates honour the new helpers.
- View switching (month/week/day/agenda) now fades through instead of
snapping — lateral navigation per M3, while in-view paging keeps its slide.
Add full predictive-back support:
- enableOnBackInvokedCallback in the manifest.
- New Modifier.predictiveBack(onBack) drives the standard preview transform
(scale/shift/round) following the back gesture; applied to detail, edit,
search, settings (+ sub-screens & calendar manager via CollapsingScaffold),
the calendar editor and import — each keeping its existing back semantics.
Reduced-motion guardrail throughout: rememberReduceMotion() (reads the OS
"remove animations" setting, which Compose ignores by default) collapses
spatial motion to a quick fade and skips the back preview.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>