diff --git a/AGENTS.md b/AGENTS.md
index 894bb0cbe..fb5e60273 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -102,6 +102,7 @@ export class MyComponent extends AsyncHandler {
- Do not add Angular Material. Use the controls in `src/app/ui/controls` (form field, select, autocomplete, chip list, tabs, tooltip, spinner, progress bar, dialog close, toasts) and the Angular CDK (dialog, menu, overlay). Their styles are in `src/styles.css`
- Form errors: put `
` in an `app-form-field`. It shows when its `[formField]` or `ngModel` control is touched and invalid
- Add a `ripple` attribute to an element for a press ripple. Use native `` for checkboxes, with `role="switch"` for a switch
+- Motion: each route change is a view transition (styles in `src/styles.css`). Add a `page-transition` attribute to a routed content area to crossfade it. For enter motion use the `animate-fade-in`, `animate-dialog-enter` and `animate-slide-in-up` classes. For exit motion use `animate.leave`. Stop motion that moves or scales for `prefers-reduced-motion`
- Use **IconComponent** for icons. The default icon font is a subset of the icons in the source. After you add icons, run `bun config/icon-subset.ts` (needs `pip install fonttools brotli`). An icon that is not in the subset still shows, but it loads the full 420 KB font
- `src/index.html` has a splash that shows until the app loads. Lighthouse measures its title as the largest contentful paint, so keep the title larger than the content of the first page
- Use `feat/*`, `fix/*`, `perf/*`, or `refactor/*` for branch names
diff --git a/src/app/admin/admin.component.ts b/src/app/admin/admin.component.ts
index 272a7f916..1dd2bf011 100644
--- a/src/app/admin/admin.component.ts
+++ b/src/app/admin/admin.component.ts
@@ -22,6 +22,7 @@ import { TranslatePipe } from '../ui/translate.pipe';