diff --git a/package.json b/package.json
index f78f63f9..af2d9920 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,7 @@
     "@vueuse/gesture": "^2.0.0",
     "@vueuse/integrations": "^10.8.0",
     "@vueuse/math": "^10.8.0",
-    "@vueuse/motion": "2.1.0",
+    "@vueuse/motion": "2.2.3",
     "@vueuse/nuxt": "^10.8.0",
     "blurhash": "^2.0.5",
     "browser-fs-access": "^0.35.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e6a8697a..fcfcac3e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -115,8 +115,8 @@ importers:
         specifier: ^10.8.0
         version: 10.8.0(vue@3.4.21(typescript@5.4.4))
       '@vueuse/motion':
-        specifier: 2.1.0
-        version: 2.1.0(rollup@2.79.1)(vue@3.4.21(typescript@5.4.4))
+        specifier: 2.2.3
+        version: 2.2.3(rollup@2.79.1)(vue@3.4.21(typescript@5.4.4))
       '@vueuse/nuxt':
         specifier: ^10.8.0
         version: 10.8.0(nuxt@3.11.2(@parcel/watcher@2.4.1)(@types/node@20.8.6)(@unocss/reset@0.58.9)(@upstash/redis@1.27.1)(@vercel/kv@1.0.1)(change-case@4.1.2)(encoding@0.1.13)(eslint@8.57.0)(floating-vue@5.2.2(@nuxt/kit@3.11.2(rollup@2.79.1))(vue@3.4.21(typescript@5.4.4)))(fuse.js@6.6.2)(idb-keyval@6.2.1)(ioredis@5.3.2)(optionator@0.9.3)(rollup@2.79.1)(terser@5.22.0)(typescript@5.4.4)(unocss@0.58.9(@unocss/webpack@0.58.9(rollup@2.79.1)(webpack@5.89.0(esbuild@0.20.2)))(postcss@8.4.38)(rollup@2.79.1)(vite@5.2.8(@types/node@20.8.6)(terser@5.22.0)))(vite@5.2.8(@types/node@20.8.6)(terser@5.22.0))(vue-tsc@2.0.10(typescript@5.4.4)))(rollup@2.79.1)(vue@3.4.21(typescript@5.4.4))
@@ -3199,6 +3199,9 @@ packages:
   '@vueuse/components@10.9.0':
     resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==}
 
+  '@vueuse/core@10.10.0':
+    resolution: {integrity: sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==}
+
   '@vueuse/core@10.8.0':
     resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==}
 
@@ -3266,6 +3269,9 @@ packages:
   '@vueuse/math@10.8.0':
     resolution: {integrity: sha512-BDuYmR/2D6T/REl9i6m0jYRpCr/901Jo/B1edkIhwqMeHgHxwHUlq47I4QXdQv0aYHoPADLuiB02cP7uJK7rkg==}
 
+  '@vueuse/metadata@10.10.0':
+    resolution: {integrity: sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==}
+
   '@vueuse/metadata@10.8.0':
     resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==}
 
@@ -3275,8 +3281,8 @@ packages:
   '@vueuse/metadata@9.13.0':
     resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
 
-  '@vueuse/motion@2.1.0':
-    resolution: {integrity: sha512-n8RtzTQa22kt2OPOQxjHteD+3rnjoAqCd6xiYdQMgFW4HcYMSdemiKcUwRx+hVUFe0zOyLDaTrySYVcHb5HgHA==}
+  '@vueuse/motion@2.2.3':
+    resolution: {integrity: sha512-QsS9P7MDKFF2j4eDPuo6lezUDPE7MQp4+unBeR2Ym8RkhtMEw/oVbnHPHL986rsmnnlUZkHVSv5kKoHJzjbtmQ==}
     peerDependencies:
       vue: ^3.4.21
 
@@ -3285,6 +3291,9 @@ packages:
     peerDependencies:
       nuxt: ^3.0.0
 
+  '@vueuse/shared@10.10.0':
+    resolution: {integrity: sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==}
+
   '@vueuse/shared@10.8.0':
     resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==}
 
@@ -12335,6 +12344,16 @@ snapshots:
       - '@vue/composition-api'
       - vue
 
+  '@vueuse/core@10.10.0(vue@3.4.21(typescript@5.4.4))':
+    dependencies:
+      '@types/web-bluetooth': 0.0.20
+      '@vueuse/metadata': 10.10.0
+      '@vueuse/shared': 10.10.0(vue@3.4.21(typescript@5.4.4))
+      vue-demi: 0.14.7(vue@3.4.21(typescript@5.4.4))
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+
   '@vueuse/core@10.8.0(vue@3.4.21(typescript@5.4.4))':
     dependencies:
       '@types/web-bluetooth': 0.0.20
@@ -12403,16 +12422,18 @@ snapshots:
       - '@vue/composition-api'
       - vue
 
+  '@vueuse/metadata@10.10.0': {}
+
   '@vueuse/metadata@10.8.0': {}
 
   '@vueuse/metadata@10.9.0': {}
 
   '@vueuse/metadata@9.13.0': {}
 
-  '@vueuse/motion@2.1.0(rollup@2.79.1)(vue@3.4.21(typescript@5.4.4))':
+  '@vueuse/motion@2.2.3(rollup@2.79.1)(vue@3.4.21(typescript@5.4.4))':
     dependencies:
-      '@vueuse/core': 10.9.0(vue@3.4.21(typescript@5.4.4))
-      '@vueuse/shared': 10.9.0(vue@3.4.21(typescript@5.4.4))
+      '@vueuse/core': 10.10.0(vue@3.4.21(typescript@5.4.4))
+      '@vueuse/shared': 10.10.0(vue@3.4.21(typescript@5.4.4))
       csstype: 3.1.3
       framesync: 6.1.2
       popmotion: 11.0.5
@@ -12453,6 +12474,13 @@ snapshots:
       - supports-color
       - vue
 
+  '@vueuse/shared@10.10.0(vue@3.4.21(typescript@5.4.4))':
+    dependencies:
+      vue-demi: 0.14.7(vue@3.4.21(typescript@5.4.4))
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+
   '@vueuse/shared@10.8.0(vue@3.4.21(typescript@5.4.4))':
     dependencies:
       vue-demi: 0.14.7(vue@3.4.21(typescript@5.4.4))