diff --git a/src/components/admin/api-token-overview-section.tsx b/src/components/admin/api-token-overview-section.tsx
index f8ed57313..1ab015c19 100644
--- a/src/components/admin/api-token-overview-section.tsx
+++ b/src/components/admin/api-token-overview-section.tsx
@@ -170,7 +170,7 @@ export function ApiTokenOverviewSection() {
) : !tokens?.length ? (
// v1.4.15 phase-C5: empty state explains where tokens come
// from (native client sign-in / Settings → Account) so a
- // fresh admin doesn motion-reduce:animate-none't think they need to create them here.
+ // fresh admin doesn't think they need to create them here.
}
title={t("admin.tokensEmptyTitle")}
diff --git a/src/components/charts/health-chart.tsx b/src/components/charts/health-chart.tsx
index 3a6447571..5da206e54 100644
--- a/src/components/charts/health-chart.tsx
+++ b/src/components/charts/health-chart.tsx
@@ -1164,7 +1164,7 @@ export function HealthChart({
) : !chartData?.length ? null : (chartData?.length ?? 0) < 3 ? (
// v1.4.16 B1a — sparse-data placeholder. <3 daily points is too
// few to render a meaningful trend; paint a friendly hint
- // instead so the dashboard doesn motion-reduce:animate-none't look broken.
+ // instead so the dashboard doesn't look broken.
{isLoading ? (
-
+
) : !chartData?.length ? (
diff --git a/src/components/dashboard/glp1-tile.tsx b/src/components/dashboard/glp1-tile.tsx
index 6b55e3b52..1470f7e39 100644
--- a/src/components/dashboard/glp1-tile.tsx
+++ b/src/components/dashboard/glp1-tile.tsx
@@ -430,7 +430,7 @@ export function Glp1Tile() {
}
/**
- * v1.4.27 B1 — small segmented-control button used by the tile motion-reduce:animate-none's
+ * v1.4.27 B1 — small segmented-control button used by the tile's
* tab strip. Carved into its own component so the active/inactive
* styling lives in one place and the test can pin the data-slot
* markers per tab.
diff --git a/src/components/medications/DrugLevelChart.tsx b/src/components/medications/DrugLevelChart.tsx
index f15fb8c90..4d8964c7d 100644
--- a/src/components/medications/DrugLevelChart.tsx
+++ b/src/components/medications/DrugLevelChart.tsx
@@ -365,7 +365,7 @@ function GatedPlaceholder({
// Three distinguishable states:
// - Research Mode is off entirely.
// - Research Mode is on but the acknowledged version is stale.
- // - We don motion-reduce:animate-none't know yet (server returned null) — still render the
+ // - We don't know yet (server returned null) — still render the
// opt-in CTA so the user has a path forward.
const stale = !!knownState?.enabled && !versionsAligned;
return (
diff --git a/src/components/medications/glp1-medication-card.tsx b/src/components/medications/glp1-medication-card.tsx
index 8d35b4fcd..d81aedefa 100644
--- a/src/components/medications/glp1-medication-card.tsx
+++ b/src/components/medications/glp1-medication-card.tsx
@@ -511,5 +511,5 @@ function siteSuffix(site: InjectionSiteKey): string {
.join("");
}
-/** Re-export so the parent doesn motion-reduce:animate-none't need to import describeInjectionSite. */
+/** Re-export so the parent doesn't need to import describeInjectionSite. */
export { describeInjectionSite };
diff --git a/src/components/settings/about-section.tsx b/src/components/settings/about-section.tsx
index 298d6be75..7831f9261 100644
--- a/src/components/settings/about-section.tsx
+++ b/src/components/settings/about-section.tsx
@@ -265,7 +265,7 @@ export function AboutSection() {
{/* Updates — proper heading + last-check timestamp + manual button
that proxies through `/api/version/check-updates`. The v1.4.2
version called `api.github.com` directly from the browser, which
- the production CSP blocked silently — that motion-reduce:animate-none's why "nothing
+ the production CSP blocked silently — that's why "nothing
happened" when the user clicked the button. */}
{version && (
diff --git a/src/components/settings/account-section.tsx b/src/components/settings/account-section.tsx
index 7c7698286..5a37c8b16 100644
--- a/src/components/settings/account-section.tsx
+++ b/src/components/settings/account-section.tsx
@@ -407,7 +407,7 @@ export function AccountSection() {
wide on sm+). Date of birth is the bottom of the
biological-profile block; language is the only UI
preference on this card. They sit together to close the
- "single-cell row" gap that broke the form motion-reduce:animate-none's grid. */}
+ "single-cell row" gap that broke the form's grid. */}
@@ -728,7 +728,7 @@ function PasskeyListSection({ isAuthenticated }: { isAuthenticated: boolean }) {
which on a 393px viewport hid the right-most column —
including the destructive delete action. Render the desktop
table only at `≥ md`, and at `< md` paint a card-list where
- every passkey motion-reduce:animate-none's name, device type, backup status, created
+ every passkey's name, device type, backup status, created
date, and delete action are all visible without scrolling. */}
diff --git a/src/components/settings/ai-section.tsx b/src/components/settings/ai-section.tsx
index fac256f31..088f11b51 100644
--- a/src/components/settings/ai-section.tsx
+++ b/src/components/settings/ai-section.tsx
@@ -716,7 +716,7 @@ function CodexProviderForm({
/* ────────────────────────────────────────────────────────────────
* OpenAI form — API key + model select + collapsed Base URL override.
* Save mutation flips both `aiProvider` (for the legacy single-result
- * resolver) and `aiOpenaiKeyEncrypted` (the user motion-reduce:animate-none's key) so an OPENAI
+ * resolver) and `aiOpenaiKeyEncrypted` (the user's key) so an OPENAI
* pick is visible to every code path that reads the row.
* ──────────────────────────────────────────────────────────────── */