diff --git a/examples/example-app-router-playground/messages/de.json b/examples/example-app-router-playground/messages/de.json
index 42dfccb6c..b03d43c4e 100644
--- a/examples/example-app-router-playground/messages/de.json
+++ b/examples/example-app-router-playground/messages/de.json
@@ -3,7 +3,7 @@
     "hello": "Hallo {name}!"
   },
   "AsyncComponent": {
-    "basic": "AsyncComponent",
+    "basic": "AsyncComponent (de)",
     "markup": "Markup with <important>bold content</important>",
     "rich": "This is a <important>rich</important> text."
   },
diff --git a/examples/example-app-router-playground/src/app/[locale]/about/page.tsx b/examples/example-app-router-playground/src/app/[locale]/about/page.tsx
index dd743536c..90bd77faa 100644
--- a/examples/example-app-router-playground/src/app/[locale]/about/page.tsx
+++ b/examples/example-app-router-playground/src/app/[locale]/about/page.tsx
@@ -1,13 +1,7 @@
-import {Locale} from 'next-intl';
+import {getLocale} from 'next-intl/server';
 
-type Props = {
-  params: Promise<{
-    locale: Locale;
-  }>;
-};
-
-export default async function AboutPage({params}: Props) {
-  const {locale} = await params;
+export default async function AboutPage() {
+  const locale = await getLocale();
   const Content = (await import(`./${locale}.mdx`)).default;
   return <Content />;
 }
diff --git a/examples/example-app-router-playground/src/app/[locale]/api/route.ts b/examples/example-app-router-playground/src/app/[locale]/api/route.ts
index 9ea968a94..c35b451df 100644
--- a/examples/example-app-router-playground/src/app/[locale]/api/route.ts
+++ b/examples/example-app-router-playground/src/app/[locale]/api/route.ts
@@ -1,22 +1,12 @@
 import {NextRequest, NextResponse} from 'next/server';
-import {Locale} from 'next-intl';
 import {getTranslations} from 'next-intl/server';
 
-type Props = {
-  params: Promise<{
-    locale: Locale;
-  }>;
-};
-
-export async function GET(request: NextRequest, props: Props) {
-  const params = await props.params;
-  const {locale} = params;
-
+export async function GET(request: NextRequest) {
   const name = request.nextUrl.searchParams.get('name');
   if (!name) {
     return new Response('Search param `name` was not provided.', {status: 400});
   }
 
-  const t = await getTranslations({locale, namespace: 'ApiRoute'});
+  const t = await getTranslations('ApiRoute');
   return NextResponse.json({message: t('hello', {name})});
 }
diff --git a/examples/example-app-router-playground/src/app/[locale]/layout.tsx b/examples/example-app-router-playground/src/app/[locale]/layout.tsx
index 4f64aadfa..d2413ddf6 100644
--- a/examples/example-app-router-playground/src/app/[locale]/layout.tsx
+++ b/examples/example-app-router-playground/src/app/[locale]/layout.tsx
@@ -1,7 +1,5 @@
 import {Metadata} from 'next';
-import {Inter} from 'next/font/google';
-import {notFound} from 'next/navigation';
-import {Locale, NextIntlClientProvider, hasLocale} from 'next-intl';
+import {NextIntlClientProvider, useLocale} from 'next-intl';
 import {
   getFormatter,
   getNow,
@@ -9,26 +7,23 @@ import {
   getTranslations
 } from 'next-intl/server';
 import {ReactNode} from 'react';
+import {Inter} from 'next/font/google';
 import {routing} from '@/i18n/routing';
 import Navigation from '../../components/Navigation';
 
-type Props = {
-  children: ReactNode;
-  params: Promise<{locale: Locale}>;
-};
-
 const inter = Inter({subsets: ['latin']});
 
-export async function generateMetadata(
-  props: Omit<Props, 'children'>
-): Promise<Metadata> {
-  const params = await props.params;
-  const {locale} = params;
+export async function generateStaticParams() {
+  return routing.locales.map((locale) => ({locale}));
+}
+
+export const dynamicParams = false;
 
-  const t = await getTranslations({locale, namespace: 'LocaleLayout'});
-  const formatter = await getFormatter({locale});
-  const now = await getNow({locale});
-  const timeZone = await getTimeZone({locale});
+export async function generateMetadata(): Promise<Metadata> {
+  const t = await getTranslations('LocaleLayout');
+  const formatter = await getFormatter();
+  const now = await getNow();
+  const timeZone = await getTimeZone();
 
   return {
     metadataBase: new URL('http://localhost:3000'),
@@ -41,13 +36,12 @@ export async function generateMetadata(
   };
 }
 
-export default async function LocaleLayout({params, children}: Props) {
-  const {locale} = await params;
+type Props = {
+  children: ReactNode;
+};
 
-  // Ensure that the incoming `locale` is valid
-  if (!hasLocale(routing.locales, locale)) {
-    notFound();
-  }
+export default function LocaleLayout({children}: Props) {
+  const locale = useLocale();
 
   return (
     <html className={inter.className} lang={locale}>
diff --git a/examples/example-app-router-playground/src/app/[locale]/news/[articleId]/page.tsx b/examples/example-app-router-playground/src/app/[locale]/news/[articleId]/page.tsx
index 409b0bd1d..17a91a76a 100644
--- a/examples/example-app-router-playground/src/app/[locale]/news/[articleId]/page.tsx
+++ b/examples/example-app-router-playground/src/app/[locale]/news/[articleId]/page.tsx
@@ -1,17 +1,18 @@
 import {Metadata} from 'next';
-import {Locale, useTranslations} from 'next-intl';
+import {useTranslations} from 'next-intl';
+import {getLocale} from 'next-intl/server';
 import {use} from 'react';
 import {getPathname} from '@/i18n/navigation';
 
 type Props = {
   params: Promise<{
-    locale: Locale;
     articleId: string;
   }>;
 };
 
 export async function generateMetadata({params}: Props): Promise<Metadata> {
-  const {locale, articleId} = await params;
+  const {articleId} = await params;
+  const locale = await getLocale();
 
   return {
     alternates: {
@@ -26,8 +27,8 @@ export async function generateMetadata({params}: Props): Promise<Metadata> {
   };
 }
 
-export default function NewsArticle(props: Props) {
-  const {articleId} = use(props.params);
+export default function NewsArticle({params}: Props) {
+  const {articleId} = use(params);
   const t = useTranslations('NewsArticle');
   return <h1>{t('title', {articleId})}</h1>;
 }
diff --git a/examples/example-app-router-playground/src/app/[locale]/opengraph-image.tsx b/examples/example-app-router-playground/src/app/[locale]/opengraph-image.tsx
index ffa13ed2e..0f24de5e6 100644
--- a/examples/example-app-router-playground/src/app/[locale]/opengraph-image.tsx
+++ b/examples/example-app-router-playground/src/app/[locale]/opengraph-image.tsx
@@ -1,14 +1,7 @@
 import {ImageResponse} from 'next/og';
-import {Locale} from 'next-intl';
 import {getTranslations} from 'next-intl/server';
 
-type Props = {
-  params: {
-    locale: Locale;
-  };
-};
-
-export default async function Image({params: {locale}}: Props) {
-  const t = await getTranslations({locale, namespace: 'OpenGraph'});
+export default async function Image() {
+  const t = await getTranslations('OpenGraph');
   return new ImageResponse(<div style={{fontSize: 128}}>{t('title')}</div>);
 }
diff --git a/examples/example-app-router-playground/src/app/[locale]/page.tsx b/examples/example-app-router-playground/src/app/[locale]/page.tsx
index efb1e9ec5..a733393de 100644
--- a/examples/example-app-router-playground/src/app/[locale]/page.tsx
+++ b/examples/example-app-router-playground/src/app/[locale]/page.tsx
@@ -4,7 +4,9 @@ import {use} from 'react';
 import DropdownMenu from '@/components/DropdownMenu';
 import RichText from '@/components/RichText';
 import {Link} from '@/i18n/navigation';
-import AsyncComponent from '../../components/AsyncComponent';
+import AsyncComponent, {
+  AsyncComponentGerman
+} from '../../components/AsyncComponent';
 import AsyncComponentWithNamespaceAndLocale from '../../components/AsyncComponentWithNamespaceAndLocale';
 import AsyncComponentWithoutNamespace from '../../components/AsyncComponentWithoutNamespace';
 import AsyncComponentWithoutNamespaceAndLocale from '../../components/AsyncComponentWithoutNamespaceAndLocale';
@@ -62,6 +64,7 @@ export default function Index(props: Props) {
       <Image alt="" height={77} priority src="/assets/image.jpg" width={128} />
       <AsyncComponent />
       <AsyncComponentWithNamespaceAndLocale />
+      <AsyncComponentGerman />
       <AsyncComponentWithoutNamespace />
       <AsyncComponentWithoutNamespaceAndLocale />
       <DropdownMenu />
diff --git a/examples/example-app-router-playground/src/app/not-found.tsx b/examples/example-app-router-playground/src/app/not-found.tsx
deleted file mode 100644
index ed4705cb1..000000000
--- a/examples/example-app-router-playground/src/app/not-found.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-'use client';
-
-import Error from 'next/error';
-
-// Render the default Next.js 404 page when a route
-// is requested that doesn't match the middleware and
-// therefore doesn't have a locale associated with it.
-
-export default function NotFound() {
-  return (
-    <html lang="en">
-      <body>
-        <Error statusCode={404} />
-      </body>
-    </html>
-  );
-}
diff --git a/examples/example-app-router-playground/src/components/AsyncComponent.tsx b/examples/example-app-router-playground/src/components/AsyncComponent.tsx
index aa4b17029..75ba88a8c 100644
--- a/examples/example-app-router-playground/src/components/AsyncComponent.tsx
+++ b/examples/example-app-router-playground/src/components/AsyncComponent.tsx
@@ -17,6 +17,15 @@ export default async function AsyncComponent() {
   );
 }
 
+export async function AsyncComponentGerman() {
+  const t = await getTranslations({locale: 'de', namespace: 'AsyncComponent'});
+  return (
+    <p data-testid="AsyncComponentGerman" lang="de">
+      {t('basic')}
+    </p>
+  );
+}
+
 export async function TypeTest() {
   const t = await getTranslations('AsyncComponent');
 
diff --git a/examples/example-app-router-playground/src/components/AsyncComponentWithNamespaceAndLocale.tsx b/examples/example-app-router-playground/src/components/AsyncComponentWithNamespaceAndLocale.tsx
index 71efe8662..2780b3e3f 100644
--- a/examples/example-app-router-playground/src/components/AsyncComponentWithNamespaceAndLocale.tsx
+++ b/examples/example-app-router-playground/src/components/AsyncComponentWithNamespaceAndLocale.tsx
@@ -1,8 +1,7 @@
-import {getLocale, getTranslations} from 'next-intl/server';
+import {getTranslations} from 'next-intl/server';
 
 export default async function AsyncComponentWithNamespaceAndLocale() {
-  const locale = await getLocale();
-  const t = await getTranslations({locale, namespace: 'AsyncComponent'});
+  const t = await getTranslations('AsyncComponent');
 
   return (
     <div data-testid="AsyncComponentWithoutNamespaceAndLocale">
@@ -12,11 +11,10 @@ export default async function AsyncComponentWithNamespaceAndLocale() {
 }
 
 export async function TypeTest() {
-  const locale = await getLocale();
-  const t = await getTranslations({locale});
+  const t = await getTranslations();
 
   // @ts-expect-error
-  await getTranslations({locale, namespace: 'Unknown'});
+  await getTranslations('Unknown');
 
   // @ts-expect-error
   t('AsyncComponent.unknown');
diff --git a/examples/example-app-router-playground/src/components/AsyncComponentWithoutNamespaceAndLocale.tsx b/examples/example-app-router-playground/src/components/AsyncComponentWithoutNamespaceAndLocale.tsx
index 3986dacd9..1fd8b1d09 100644
--- a/examples/example-app-router-playground/src/components/AsyncComponentWithoutNamespaceAndLocale.tsx
+++ b/examples/example-app-router-playground/src/components/AsyncComponentWithoutNamespaceAndLocale.tsx
@@ -1,8 +1,7 @@
-import {getLocale, getTranslations} from 'next-intl/server';
+import {getTranslations} from 'next-intl/server';
 
 export default async function AsyncComponentWithoutNamespaceAndLocale() {
-  const locale = await getLocale();
-  const t = await getTranslations({locale});
+  const t = await getTranslations();
 
   return (
     <div data-testid="AsyncComponentWithoutNamespaceAndLocale">
@@ -12,8 +11,7 @@ export default async function AsyncComponentWithoutNamespaceAndLocale() {
 }
 
 export async function TypeTest() {
-  const locale = await getLocale();
-  const t = await getTranslations({locale});
+  const t = await getTranslations();
 
   // @ts-expect-error
   t('AsyncComponent.unknown');
diff --git a/examples/example-app-router-playground/src/i18n/request.tsx b/examples/example-app-router-playground/src/i18n/request.tsx
index ee1fa2264..d237604ce 100644
--- a/examples/example-app-router-playground/src/i18n/request.tsx
+++ b/examples/example-app-router-playground/src/i18n/request.tsx
@@ -1,4 +1,5 @@
 import {headers} from 'next/headers';
+import {unstable_rootParams as rootParams} from 'next/server';
 import {Formats, hasLocale} from 'next-intl';
 import {getRequestConfig} from 'next-intl/server';
 import defaultMessages from '../../messages/en.json';
@@ -30,12 +31,13 @@ export const formats = {
   }
 } satisfies Formats;
 
-export default getRequestConfig(async ({requestLocale}) => {
-  // Typically corresponds to the `[locale]` segment
-  const requested = await requestLocale;
-  const locale = hasLocale(routing.locales, requested)
-    ? requested
-    : routing.defaultLocale;
+export default getRequestConfig(async ({locale}) => {
+  if (!locale) {
+    const params = await rootParams();
+    locale = hasLocale(routing.locales, params.locale)
+      ? params.locale
+      : routing.defaultLocale;
+  }
 
   const now = (await headers()).get('x-now');
   const timeZone = (await headers()).get('x-time-zone') ?? 'Europe/Vienna';
diff --git a/examples/example-app-router-playground/tests/main.spec.ts b/examples/example-app-router-playground/tests/main.spec.ts
index 61d522dd3..f9b7f987d 100644
--- a/examples/example-app-router-playground/tests/main.spec.ts
+++ b/examples/example-app-router-playground/tests/main.spec.ts
@@ -681,6 +681,13 @@ it('can use async APIs in async components', async ({page}) => {
     .getByText('AsyncComponent');
 });
 
+it('can use an explicit locale in an async component', async ({page}) => {
+  await page.goto('/de');
+  await expect(page.getByTestId('AsyncComponentGerman')).toHaveText(
+    'AsyncComponent (de)'
+  );
+});
+
 it('supports custom prefixes', async ({page}) => {
   await page.goto('/spain');
   await expect(page).toHaveURL('/spain');
diff --git a/examples/example-app-router-playground/src/app/layout.tsx b/examples/example-app-router/src/app/(unlocalized)/layout.tsx
similarity index 54%
rename from examples/example-app-router-playground/src/app/layout.tsx
rename to examples/example-app-router/src/app/(unlocalized)/layout.tsx
index e05792cc7..b2b918bd7 100644
--- a/examples/example-app-router-playground/src/app/layout.tsx
+++ b/examples/example-app-router/src/app/(unlocalized)/layout.tsx
@@ -4,8 +4,7 @@ type Props = {
   children: ReactNode;
 };
 
-// Since we have a `not-found.tsx` page on the root, a layout file
-// is required, even if it's just passing children through.
 export default function RootLayout({children}: Props) {
+  // No need for a layout, as this only renders a redirect
   return children;
 }
diff --git a/examples/example-app-router/src/app/page.tsx b/examples/example-app-router/src/app/(unlocalized)/page.tsx
similarity index 77%
rename from examples/example-app-router/src/app/page.tsx
rename to examples/example-app-router/src/app/(unlocalized)/page.tsx
index d5d37ccca..2e49dc5ba 100644
--- a/examples/example-app-router/src/app/page.tsx
+++ b/examples/example-app-router/src/app/(unlocalized)/page.tsx
@@ -1,6 +1,6 @@
 import {redirect} from 'next/navigation';
 
 // This page only renders when the app is built statically (output: 'export')
-export default function RootPage() {
+export default function RootRedirect() {
   redirect('/en');
 }
diff --git a/examples/example-app-router/src/app/[locale]/layout.tsx b/examples/example-app-router/src/app/[locale]/layout.tsx
index ab05d540c..0303f2d9d 100644
--- a/examples/example-app-router/src/app/[locale]/layout.tsx
+++ b/examples/example-app-router/src/app/[locale]/layout.tsx
@@ -1,15 +1,14 @@
-import {notFound} from 'next/navigation';
-import {Locale, hasLocale, NextIntlClientProvider} from 'next-intl';
-import {getTranslations, setRequestLocale} from 'next-intl/server';
+import {NextIntlClientProvider} from 'next-intl';
+import {getLocale, getTranslations} from 'next-intl/server';
 import {ReactNode} from 'react';
 import {clsx} from 'clsx';
 import {Inter} from 'next/font/google';
 import {routing} from '@/i18n/routing';
 import Navigation from '@/components/Navigation';
+import '@/styles.css';
 
 type Props = {
   children: ReactNode;
-  params: Promise<{locale: Locale}>;
 };
 
 const inter = Inter({subsets: ['latin']});
@@ -18,25 +17,18 @@ export function generateStaticParams() {
   return routing.locales.map((locale) => ({locale}));
 }
 
-export async function generateMetadata(props: Omit<Props, 'children'>) {
-  const {locale} = await props.params;
+export const dynamicParams = false;
 
-  const t = await getTranslations({locale, namespace: 'LocaleLayout'});
+export async function generateMetadata() {
+  const t = await getTranslations('LocaleLayout');
 
   return {
     title: t('title')
   };
 }
 
-export default async function LocaleLayout({children, params}: Props) {
-  // Ensure that the incoming `locale` is valid
-  const {locale} = await params;
-  if (!hasLocale(routing.locales, locale)) {
-    notFound();
-  }
-
-  // Enable static rendering
-  setRequestLocale(locale);
+export default async function LocaleLayout({children}: Props) {
+  const locale = await getLocale();
 
   return (
     <html className="h-full" lang={locale}>
diff --git a/examples/example-app-router/src/app/[locale]/page.tsx b/examples/example-app-router/src/app/[locale]/page.tsx
index f640ce5ad..c3a9bd142 100644
--- a/examples/example-app-router/src/app/[locale]/page.tsx
+++ b/examples/example-app-router/src/app/[locale]/page.tsx
@@ -1,18 +1,7 @@
-import {Locale, useTranslations} from 'next-intl';
-import {setRequestLocale} from 'next-intl/server';
-import {use} from 'react';
+import {useTranslations} from 'next-intl';
 import PageLayout from '@/components/PageLayout';
 
-type Props = {
-  params: Promise<{locale: Locale}>;
-};
-
-export default function IndexPage({params}: Props) {
-  const {locale} = use(params);
-
-  // Enable static rendering
-  setRequestLocale(locale);
-
+export default function IndexPage() {
   const t = useTranslations('IndexPage');
 
   return (
diff --git a/examples/example-app-router/src/app/[locale]/pathnames/page.tsx b/examples/example-app-router/src/app/[locale]/pathnames/page.tsx
index fad686586..ecadf9581 100644
--- a/examples/example-app-router/src/app/[locale]/pathnames/page.tsx
+++ b/examples/example-app-router/src/app/[locale]/pathnames/page.tsx
@@ -1,18 +1,7 @@
-import {Locale, useTranslations} from 'next-intl';
-import {setRequestLocale} from 'next-intl/server';
-import {use} from 'react';
+import {useTranslations} from 'next-intl';
 import PageLayout from '@/components/PageLayout';
 
-type Props = {
-  params: Promise<{locale: Locale}>;
-};
-
-export default function PathnamesPage({params}: Props) {
-  const {locale} = use(params);
-
-  // Enable static rendering
-  setRequestLocale(locale);
-
+export default function PathnamesPage() {
   const t = useTranslations('PathnamesPage');
 
   return (
diff --git a/examples/example-app-router/src/app/layout.tsx b/examples/example-app-router/src/app/layout.tsx
deleted file mode 100644
index aae3d9f0c..000000000
--- a/examples/example-app-router/src/app/layout.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import {ReactNode} from 'react';
-import './styles.css';
-
-type Props = {
-  children: ReactNode;
-};
-
-// Since we have a `not-found.tsx` page on the root, a layout file
-// is required, even if it's just passing children through.
-export default function RootLayout({children}: Props) {
-  return children;
-}
diff --git a/examples/example-app-router/src/app/not-found.tsx b/examples/example-app-router/src/app/not-found.tsx
deleted file mode 100644
index 47de61028..000000000
--- a/examples/example-app-router/src/app/not-found.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-'use client';
-
-import Error from 'next/error';
-
-// This page renders when a route like `/unknown.txt` is requested.
-// In this case, the layout at `app/[locale]/layout.tsx` receives
-// an invalid value as the `[locale]` param and calls `notFound()`.
-
-export default function GlobalNotFound() {
-  return (
-    <html lang="en">
-      <body>
-        <Error statusCode={404} />;
-      </body>
-    </html>
-  );
-}
diff --git a/examples/example-app-router/src/i18n/request.ts b/examples/example-app-router/src/i18n/request.ts
index 370fc6d0c..81ba3e509 100644
--- a/examples/example-app-router/src/i18n/request.ts
+++ b/examples/example-app-router/src/i18n/request.ts
@@ -1,12 +1,12 @@
+import {unstable_rootParams as rootParams} from 'next/server';
 import {hasLocale} from 'next-intl';
 import {getRequestConfig} from 'next-intl/server';
 import {routing} from './routing';
 
-export default getRequestConfig(async ({requestLocale}) => {
-  // Typically corresponds to the `[locale]` segment
-  const requested = await requestLocale;
-  const locale = hasLocale(routing.locales, requested)
-    ? requested
+export default getRequestConfig(async () => {
+  const params = await rootParams();
+  const locale = hasLocale(routing.locales, params.locale)
+    ? params.locale
     : routing.defaultLocale;
 
   return {
diff --git a/examples/example-app-router/src/app/styles.css b/examples/example-app-router/src/styles.css
similarity index 100%
rename from examples/example-app-router/src/app/styles.css
rename to examples/example-app-router/src/styles.css
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6b3e1d6c8..b27593ab8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -349,7 +349,7 @@ importers:
         version: 29.7.0
       '@mdx-js/loader':
         specifier: ^3.0.1
-        version: 3.1.0(webpack@5.97.1(esbuild@0.24.2))
+        version: 3.1.0(acorn@8.14.0)(webpack@5.97.1(esbuild@0.24.2))
       '@mdx-js/react':
         specifier: ^3.0.1
         version: 3.1.0(@types/react@18.3.12)(react@18.3.1)
@@ -358,7 +358,7 @@ importers:
         version: 15.1.6
       '@next/mdx':
         specifier: ^15.0.0-rc.1
-        version: 15.0.0-rc.1(@mdx-js/loader@3.1.0(webpack@5.97.1(esbuild@0.24.2)))(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))
+        version: 15.0.0-rc.1(@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1(esbuild@0.24.2)))(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))
       '@playwright/test':
         specifier: ^1.48.1
         version: 1.48.1
@@ -3350,9 +3350,6 @@ packages:
   '@mdx-js/mdx@2.3.0':
     resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==}
 
-  '@mdx-js/mdx@3.0.1':
-    resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==}
-
   '@mdx-js/mdx@3.1.0':
     resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==}
 
@@ -12453,9 +12450,6 @@ packages:
   remark-mdx@2.3.0:
     resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==}
 
-  remark-mdx@3.0.1:
-    resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==}
-
   remark-mdx@3.1.0:
     resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
 
@@ -17726,13 +17720,14 @@ snapshots:
       - supports-color
       - typescript
 
-  '@mdx-js/loader@3.1.0(webpack@5.97.1(esbuild@0.24.2))':
+  '@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1(esbuild@0.24.2))':
     dependencies:
-      '@mdx-js/mdx': 3.0.1
+      '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
       source-map: 0.7.4
     optionalDependencies:
       webpack: 5.97.1(esbuild@0.24.2)
     transitivePeerDependencies:
+      - acorn
       - supports-color
 
   '@mdx-js/mdx@2.3.0':
@@ -17757,34 +17752,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@mdx-js/mdx@3.0.1':
-    dependencies:
-      '@types/estree': 1.0.6
-      '@types/estree-jsx': 1.0.5
-      '@types/hast': 3.0.4
-      '@types/mdx': 2.0.13
-      collapse-white-space: 2.1.0
-      devlop: 1.1.0
-      estree-util-build-jsx: 3.0.1
-      estree-util-is-identifier-name: 3.0.0
-      estree-util-to-js: 2.0.0
-      estree-walker: 3.0.3
-      hast-util-to-estree: 3.1.0
-      hast-util-to-jsx-runtime: 2.3.2
-      markdown-extensions: 2.0.0
-      periscopic: 3.1.0
-      remark-mdx: 3.0.1
-      remark-parse: 11.0.0
-      remark-rehype: 11.1.1
-      source-map: 0.7.4
-      unified: 11.0.5
-      unist-util-position-from-estree: 2.0.0
-      unist-util-stringify-position: 4.0.0
-      unist-util-visit: 5.0.0
-      vfile: 6.0.3
-    transitivePeerDependencies:
-      - supports-color
-
   '@mdx-js/mdx@3.1.0(acorn@8.14.0)':
     dependencies:
       '@types/estree': 1.0.6
@@ -17903,11 +17870,11 @@ snapshots:
     dependencies:
       fast-glob: 3.3.1
 
-  '@next/mdx@15.0.0-rc.1(@mdx-js/loader@3.1.0(webpack@5.97.1(esbuild@0.24.2)))(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))':
+  '@next/mdx@15.0.0-rc.1(@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1(esbuild@0.24.2)))(@mdx-js/react@3.1.0(@types/react@18.3.12)(react@18.3.1))':
     dependencies:
       source-map: 0.7.4
     optionalDependencies:
-      '@mdx-js/loader': 3.1.0(webpack@5.97.1(esbuild@0.24.2))
+      '@mdx-js/loader': 3.1.0(acorn@8.14.0)(webpack@5.97.1(esbuild@0.24.2))
       '@mdx-js/react': 3.1.0(@types/react@18.3.12)(react@18.3.1)
 
   '@next/swc-android-arm-eabi@12.3.4':
@@ -30221,13 +30188,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  remark-mdx@3.0.1:
-    dependencies:
-      mdast-util-mdx: 3.0.0
-      micromark-extension-mdxjs: 3.0.0
-    transitivePeerDependencies:
-      - supports-color
-
   remark-mdx@3.1.0:
     dependencies:
       mdast-util-mdx: 3.0.0