diff --git a/web/package-lock.json b/web/package-lock.json
index 6940507..86d931a 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -10,11 +10,11 @@
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tailwindcss/vite": "^4.1.8",
"cpc": "file:../pkg",
- "svelte": "^5.33.10",
+ "svelte": "^5.33.13",
"svelte-check": "^4.2.1",
"tailwindcss": "^4.1.8",
"typescript": "^5.8.3",
- "vercel": "^42.2.0",
+ "vercel": "^42.3.0",
"vite": "^6.3.5",
"vite-plugin-top-level-await": "^1.5.0",
"vite-plugin-wasm": "^3.4.1",
@@ -1752,9 +1752,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "22.15.27",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.27.tgz",
- "integrity": "sha512-5fF+eu5mwihV2BeVtX5vijhdaZOfkQTATrePEaXTcKqI16LhJ7gi2/Vhd9OZM0UojcdmiOCVg5rrax+i1MdoQQ==",
+ "version": "22.15.29",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.29.tgz",
+ "integrity": "sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -1984,9 +1984,9 @@
}
},
"node_modules/@vercel/gatsby-plugin-vercel-builder": {
- "version": "2.0.82",
- "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.82.tgz",
- "integrity": "sha512-KlJcfdS+pEjXQ7mmEv67RorxqUwbtRWB7RN8F/nPn9eUaoNCirvfgfO83CJyljWEOoaXcBv3U9rGzs/YtKjF/A==",
+ "version": "2.0.83",
+ "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.83.tgz",
+ "integrity": "sha512-SSuCIHZmTTMc6HEnipkAkW2+cbEmCHGnOyF3uvOfEzjiQX9zB50ziq0DV3yPltSxp37MFkYKDUeWJe2ESXPJaA==",
"dev": true,
"dependencies": {
"@sinclair/typebox": "0.25.24",
@@ -2040,13 +2040,13 @@
"license": "Apache-2.0"
},
"node_modules/@vercel/hydrogen": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-1.2.1.tgz",
- "integrity": "sha512-pHHiYkvCI+SkRHVDzBsp0HoV3pLymIJIFmRsifCyWryBzhFIg4nA8XUuG2cHGJxOTrnnc85o1Xw6DyagDT34dQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-1.2.2.tgz",
+ "integrity": "sha512-PRA3r1/ZRcklGgs/hczprQZ27jX9Avyq/iEbtmzAFNbFovkTlkE0Wy93pVKJfJ4ISCBzBgUSMktX9+6wgjs32A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@vercel/static-config": "3.1.0",
+ "@vercel/static-config": "3.1.1",
"ts-morph": "12.0.0"
}
},
@@ -2088,9 +2088,9 @@
}
},
"node_modules/@vercel/nft": {
- "version": "0.29.3",
- "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.29.3.tgz",
- "integrity": "sha512-aVV0E6vJpuvImiMwU1/5QKkw2N96BRFE7mBYGS7FhXUoS6V7SarQ+8tuj33o7ofECz8JtHpmQ9JW+oVzOoB7MA==",
+ "version": "0.29.4",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.29.4.tgz",
+ "integrity": "sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2115,9 +2115,9 @@
}
},
"node_modules/@vercel/node": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@vercel/node/-/node-5.2.0.tgz",
- "integrity": "sha512-E8LpLhU13v7tKU+RxXESYtQZDVkt4CepK6uNN7CrzZzEuZqphkC8QrXg1Yrdb9kt8NgJaFjGeBtp9BkiRRC8WA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@vercel/node/-/node-5.2.1.tgz",
+ "integrity": "sha512-0+YV01grkqfHIHhmWeCXWmgeP6GsuzXtgWBri3+qESwfAZ6dOTBG4GJp9z2E7sEi+wP60S0/eNGRj8z77uk3JQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -2128,7 +2128,7 @@
"@vercel/build-utils": "10.6.0",
"@vercel/error-utils": "2.0.3",
"@vercel/nft": "0.29.2",
- "@vercel/static-config": "3.1.0",
+ "@vercel/static-config": "3.1.1",
"async-listen": "3.0.0",
"cjs-module-lexer": "1.2.3",
"edge-runtime": "2.5.9",
@@ -2267,14 +2267,14 @@
"license": "Apache-2.0"
},
"node_modules/@vercel/redwood": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.3.2.tgz",
- "integrity": "sha512-nAzihiYucoz7nzQNW3DkLnaeyFSujkEI8mEBb5LUM2iUXHCvSIqhh/cCu17KZg10aho/R5YOIWLoPPDMkMYFzA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.3.3.tgz",
+ "integrity": "sha512-9Dfith+CYNNt/5Mkrklu7xWroWgSJVR4uh7mwu/2IvuCiJMNa24ReR9xtQNyGFAwAjdeweQ/nHfImz+12ORfpQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@vercel/nft": "0.29.2",
- "@vercel/static-config": "3.1.0",
+ "@vercel/static-config": "3.1.1",
"semver": "6.3.1",
"ts-morph": "12.0.0"
}
@@ -2317,15 +2317,15 @@
}
},
"node_modules/@vercel/remix-builder": {
- "version": "5.4.8",
- "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-5.4.8.tgz",
- "integrity": "sha512-lQql/nohy4CFr+fo+eOAWqh0PSP8dJuwhzlwH6J8QB9nUZd5PvaJg165y5+Dz5I3hBxYfTQCqBvqmMp/NZCzzQ==",
+ "version": "5.4.9",
+ "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-5.4.9.tgz",
+ "integrity": "sha512-+fWdMjVI6bO0GUBJbw2seBDnLvPi2dd9aBQHVG2TCbJobBPfXgyEMgRWDS+4gjhXn4jLatX4B5C5iJykkeMqNQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@vercel/error-utils": "2.0.3",
"@vercel/nft": "0.29.2",
- "@vercel/static-config": "3.1.0",
+ "@vercel/static-config": "3.1.1",
"path-to-regexp": "6.1.0",
"path-to-regexp-updated": "npm:path-to-regexp@6.3.0",
"ts-morph": "12.0.0"
@@ -2366,22 +2366,22 @@
"license": "Apache-2.0"
},
"node_modules/@vercel/static-build": {
- "version": "2.7.8",
- "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.7.8.tgz",
- "integrity": "sha512-2mx8QVogdtmnVK26wf3mBYwBEK5GVIcxjuBN/JVu0ozX3UskHvEZwf+BJo7J0RzwSh37mR4ERLP90qpCuWLM8g==",
+ "version": "2.7.9",
+ "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.7.9.tgz",
+ "integrity": "sha512-0AuRrNAE0wntRjZo0CrmQTwvRVO5/7jtcSShgkAKcx2CsPphDjBh2Ah6Kcwb2w9inqJr5Bpg0pxi/Y915hj2oQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@vercel/gatsby-plugin-vercel-analytics": "1.0.11",
- "@vercel/gatsby-plugin-vercel-builder": "2.0.82",
- "@vercel/static-config": "3.1.0",
+ "@vercel/gatsby-plugin-vercel-builder": "2.0.83",
+ "@vercel/static-config": "3.1.1",
"ts-morph": "12.0.0"
}
},
"node_modules/@vercel/static-config": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@vercel/static-config/-/static-config-3.1.0.tgz",
- "integrity": "sha512-NUUdlTvqmCrg+/Kd/T1yONDym3bMiUJW+wlaZoqgUNMANvmIkO10/lk/2fFRQtGkYaPlnM+TUrL+U2FghccHQg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@vercel/static-config/-/static-config-3.1.1.tgz",
+ "integrity": "sha512-IRtKnm9N1Uqd2ayIbLPjRtdwcl1GTWvqF1PuEVNm9O43kmoI+m9VpGlW8oga+5LQq1LmJ2Y67zHr7NbjrH1rrw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -5045,9 +5045,9 @@
}
},
"node_modules/svelte": {
- "version": "5.33.10",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.33.10.tgz",
- "integrity": "sha512-/yArPQIBoQS2p86LKnvJywOXkVHeEXnFgrDPSxkEfIAEkykopYuy2bF6UUqHG4IbZlJD6OurLxJT8Kn7kTk9WA==",
+ "version": "5.33.13",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.33.13.tgz",
+ "integrity": "sha512-uT3BAPpHGaJqpOgdwJwIK7P4JkBkSS0vylbaRXxQjt1gr+DZ9BiPkhmbZw3ql8LJofUyz5XyrzzQDgQQdfP86Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5375,23 +5375,23 @@
"license": "MIT"
},
"node_modules/vercel": {
- "version": "42.2.0",
- "resolved": "https://registry.npmjs.org/vercel/-/vercel-42.2.0.tgz",
- "integrity": "sha512-a733x8TmsOagZoYJyVUxMpNI1UOFmp+dw/1/j2iH+ZmkEbYfiEJo96TtqgqPgzX2qF6iEO63i0wDwwFI6aZssA==",
+ "version": "42.3.0",
+ "resolved": "https://registry.npmjs.org/vercel/-/vercel-42.3.0.tgz",
+ "integrity": "sha512-hLiqfcvsjI7IRm5gYIAE7d7wIAqnn797oyDdMkaw76pAQh6aFqvrw4EYcByuxuCSe/5bwck5LNcJ3neXeceGbQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@vercel/build-utils": "10.6.0",
"@vercel/fun": "1.1.6",
"@vercel/go": "3.2.1",
- "@vercel/hydrogen": "1.2.1",
+ "@vercel/hydrogen": "1.2.2",
"@vercel/next": "4.8.0",
- "@vercel/node": "5.2.0",
+ "@vercel/node": "5.2.1",
"@vercel/python": "4.7.2",
- "@vercel/redwood": "2.3.2",
- "@vercel/remix-builder": "5.4.8",
+ "@vercel/redwood": "2.3.3",
+ "@vercel/remix-builder": "5.4.9",
"@vercel/ruby": "2.2.0",
- "@vercel/static-build": "2.7.8",
+ "@vercel/static-build": "2.7.9",
"chokidar": "4.0.0",
"jose": "5.9.6"
},
diff --git a/web/package.json b/web/package.json
index 3e09785..0377a6b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -16,11 +16,11 @@
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"@tailwindcss/vite": "^4.1.8",
"cpc": "file:../pkg",
- "svelte": "^5.33.10",
+ "svelte": "^5.33.13",
"svelte-check": "^4.2.1",
"tailwindcss": "^4.1.8",
"typescript": "^5.8.3",
- "vercel": "^42.2.0",
+ "vercel": "^42.3.0",
"vite": "^6.3.5",
"vite-plugin-top-level-await": "^1.5.0",
"vite-plugin-wasm": "^3.4.1",
diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte
index 801be90..cd1e494 100644
--- a/web/src/routes/+layout.svelte
+++ b/web/src/routes/+layout.svelte
@@ -1,7 +1,5 @@
-{@render children()}
+
diff --git a/web/src/routes/+layout.ts b/web/src/routes/+layout.ts
index 89da957..189f71e 100644
--- a/web/src/routes/+layout.ts
+++ b/web/src/routes/+layout.ts
@@ -1,2 +1 @@
-export const ssr = false;
export const prerender = true;
diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte
index 3482b53..759c363 100644
--- a/web/src/routes/+page.svelte
+++ b/web/src/routes/+page.svelte
@@ -1,16 +1,22 @@