diff --git a/.forgejo/workflows/signal-rebuild.yml b/.forgejo/workflows/signal-rebuild.yml
new file mode 100644
index 0000000..5df2118
--- /dev/null
+++ b/.forgejo/workflows/signal-rebuild.yml
@@ -0,0 +1,23 @@
+name: Rebuild signaller for deprived.dev to rebuild site
+
+on: [push]
+
+jobs:
+  test_service:
+    runs-on: native
+
+    steps:
+      - name: Get branch
+        run: echo "BRANCH=$(echo "${{ gitea.ref }}" | cut -d'/' -f3)" >> $GITHUB_ENV
+      - name: Signal deprived.dev for rebuild
+        env:
+          SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}
+        run: |
+          sshkey=$(mktemp)
+          trap "rm -rf $sshkey" exit
+          echo -e $SSH_PRIVATE_KEY > $sshkey
+          service="build-deprived-website-$BRANCH"
+          sshargs="-o LogLevel=ERROR -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
+          echo "Starting systemd oneshot service: $service"
+          ssh -i $sshkey -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no deprivedbuilder@deprived.dev -t "sudo /run/current-system/sw/bin/systemctl start $service"
+          echo "Build Log: $(ssh -i $sshkey $sshargs deprivedbuilder@deprived.dev "cat ~/latest_build.log")"
diff --git a/.gitignore b/.gitignore
index 6635cf5..699266e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,10 @@
-.DS_Store
-node_modules
-/build
-/.svelte-kit
-/package
-.env
-.env.*
-!.env.example
-vite.config.js.timestamp-*
-vite.config.ts.timestamp-*
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
diff --git a/.npmrc b/.npmrc
index b6f27f1..596f221 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1 @@
-engine-strict=true
+engine-strict=true
diff --git a/build.log b/build.log
new file mode 100644
index 0000000..e69de29
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..28bc160
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+# motherfucking hate npm. Spent 3 hours debugging that when
+# NODE_ENV is set to production, npm won't install anything
+unset NODE_ENV
+
+git pull
+git reset --hard main
+
+npm ci
+
+echo "Ready to build, building..."
+
+npm run build
+
+echo "Done rebuilding!"
diff --git a/jsconfig.json b/jsconfig.json
index 73b46e8..813ca08 100644
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -1,19 +1,24 @@
-{
-	"extends": "./.svelte-kit/tsconfig.json",
-	"compilerOptions": {
-		"allowJs": true,
-		"checkJs": true,
-		"esModuleInterop": true,
-		"forceConsistentCasingInFileNames": true,
-		"resolveJsonModule": true,
-		"skipLibCheck": true,
-		"sourceMap": true,
-		"strict": true,
-		"moduleResolution": "bundler",
-        "allowImportingTsExtensions": true
-	}
-	// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias and https://kit.svelte.dev/docs/configuration#files
-	//
-	// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
-	// from the referenced tsconfig.json - TypeScript does not merge them in
-}
+{
+	"extends": "./.svelte-kit/tsconfig.json",
+	"compilerOptions": {
+		"allowJs": true,
+		"checkJs": true,
+		"esModuleInterop": true,
+		"forceConsistentCasingInFileNames": true,
+		"resolveJsonModule": true,
+		"skipLibCheck": true,
+		"sourceMap": true,
+		"strict": true,
+		"moduleResolution": "bundler",
+        "allowImportingTsExtensions": true,
+		"paths": {
+			"@images/*": ["./src/images/*"],
+			"@src/*": ["./src/*"],
+			"@static/*": ["./static/*"]
+		}
+	}
+	// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias and https://kit.svelte.dev/docs/configuration#files
+	//
+	// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
+	// from the referenced tsconfig.json - TypeScript does not merge them in
+}
diff --git a/package-lock.json b/package-lock.json
index de24fce..f222fa9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,47 +8,31 @@
 			"name": "deprived-main-website",
 			"version": "0.0.1",
 			"dependencies": {
+				"@lucide/svelte": "^0.487.0",
+				"@tailwindcss/vite": "^4.1.3",
+				"lucide-svelte": "^0.475.0",
+				"svelte-katex": "^0.1.2",
 				"svelte-media-queries": "^1.6.2",
-				"svelte-particles": "^2.12.0",
-				"theme-change": "^2.5.0",
-				"tsparticles-slim": "^2.12.0"
+				"theme-change": "^2.5.0"
 			},
 			"devDependencies": {
-				"@poppanator/sveltekit-svg": "^4.2.1",
 				"@sveltejs/adapter-auto": "^3.0.0",
 				"@sveltejs/adapter-static": "^3.0.1",
-				"@sveltejs/kit": "^2.0.0",
+				"@sveltejs/kit": "^2.20.4",
 				"@sveltejs/vite-plugin-svelte": "^3.0.0",
 				"@tailwindcss/typography": "^0.5.15",
-				"@zerodevx/svelte-img": "^2.1.0",
 				"autoprefixer": "^10.4.20",
-				"daisyui": "^4.12.12",
-				"postcss": "^8.4.47",
+				"daisyui": "^5.0.12",
 				"sass": "^1.77.4",
-				"svelte": "^4.2.7",
-				"svelte-check": "^3.6.0",
-				"svelte-confetti": "^1.0.0",
+				"svelte": "^5.25.7",
+				"svelte-check": "^3.8.6",
 				"svelte-highlight": "^7.6.0",
-				"svelte-parallax": "^0.6.0",
-				"tailwindcss": "^3.4.13",
+				"tailwindcss": "^4.1.3",
 				"typescript": "^5.0.0",
 				"vite": "^5.0.3",
 				"vite-plugin-svgr": "^4.2.0"
 			}
 		},
-		"node_modules/@alloc/quick-lru": {
-			"version": "5.2.0",
-			"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
-			"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=10"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
 		"node_modules/@ampproject/remapping": {
 			"version": "2.3.0",
 			"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@@ -62,12 +46,14 @@
 			}
 		},
 		"node_modules/@babel/code-frame": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
-			"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+			"version": "7.26.2",
+			"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+			"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
-				"@babel/highlight": "^7.24.7",
+				"@babel/helper-validator-identifier": "^7.25.9",
+				"js-tokens": "^4.0.0",
 				"picocolors": "^1.0.0"
 			},
 			"engines": {
@@ -257,19 +243,21 @@
 			}
 		},
 		"node_modules/@babel/helper-string-parser": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
-			"integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+			"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
 			"dev": true,
+			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/helper-validator-identifier": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
-			"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+			"version": "7.25.9",
+			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+			"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
 			"dev": true,
+			"license": "MIT",
 			"engines": {
 				"node": ">=6.9.0"
 			}
@@ -284,38 +272,28 @@
 			}
 		},
 		"node_modules/@babel/helpers": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz",
-			"integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==",
+			"version": "7.27.0",
+			"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
+			"integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
-				"@babel/template": "^7.24.7",
-				"@babel/types": "^7.24.7"
-			},
-			"engines": {
-				"node": ">=6.9.0"
-			}
-		},
-		"node_modules/@babel/highlight": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
-			"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
-			"dev": true,
-			"dependencies": {
-				"@babel/helper-validator-identifier": "^7.24.7",
-				"chalk": "^2.4.2",
-				"js-tokens": "^4.0.0",
-				"picocolors": "^1.0.0"
+				"@babel/template": "^7.27.0",
+				"@babel/types": "^7.27.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
 			}
 		},
 		"node_modules/@babel/parser": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
-			"integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+			"version": "7.27.0",
+			"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
+			"integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
 			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@babel/types": "^7.27.0"
+			},
 			"bin": {
 				"parser": "bin/babel-parser.js"
 			},
@@ -324,14 +302,15 @@
 			}
 		},
 		"node_modules/@babel/template": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
-			"integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+			"version": "7.27.0",
+			"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
+			"integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
-				"@babel/code-frame": "^7.24.7",
-				"@babel/parser": "^7.24.7",
-				"@babel/types": "^7.24.7"
+				"@babel/code-frame": "^7.26.2",
+				"@babel/parser": "^7.27.0",
+				"@babel/types": "^7.27.0"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -359,14 +338,14 @@
 			}
 		},
 		"node_modules/@babel/types": {
-			"version": "7.24.7",
-			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
-			"integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
+			"version": "7.27.0",
+			"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
+			"integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
-				"@babel/helper-string-parser": "^7.24.7",
-				"@babel/helper-validator-identifier": "^7.24.7",
-				"to-fast-properties": "^2.0.0"
+				"@babel/helper-string-parser": "^7.25.9",
+				"@babel/helper-validator-identifier": "^7.25.9"
 			},
 			"engines": {
 				"node": ">=6.9.0"
@@ -379,7 +358,6 @@
 			"cpu": [
 				"ppc64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -396,7 +374,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -413,7 +390,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -430,7 +406,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -447,7 +422,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -464,7 +438,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -481,7 +454,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -498,7 +470,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -515,7 +486,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -532,7 +502,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -549,7 +518,6 @@
 			"cpu": [
 				"ia32"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -566,7 +534,6 @@
 			"cpu": [
 				"loong64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -583,7 +550,6 @@
 			"cpu": [
 				"mips64el"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -600,7 +566,6 @@
 			"cpu": [
 				"ppc64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -617,7 +582,6 @@
 			"cpu": [
 				"riscv64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -634,7 +598,6 @@
 			"cpu": [
 				"s390x"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -651,7 +614,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -668,7 +630,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -685,7 +646,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -702,7 +662,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -719,7 +678,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -736,7 +694,6 @@
 			"cpu": [
 				"ia32"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -753,7 +710,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -763,24 +719,6 @@
 				"node": ">=12"
 			}
 		},
-		"node_modules/@isaacs/cliui": {
-			"version": "8.0.2",
-			"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
-			"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"string-width": "^5.1.2",
-				"string-width-cjs": "npm:string-width@^4.2.0",
-				"strip-ansi": "^7.0.1",
-				"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
-				"wrap-ansi": "^8.1.0",
-				"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
-			},
-			"engines": {
-				"node": ">=12"
-			}
-		},
 		"node_modules/@jridgewell/gen-mapping": {
 			"version": "0.3.5",
 			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
@@ -811,9 +749,10 @@
 			}
 		},
 		"node_modules/@jridgewell/sourcemap-codec": {
-			"version": "1.4.15",
-			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
-			"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+			"version": "1.5.0",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+			"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+			"license": "MIT"
 		},
 		"node_modules/@jridgewell/trace-mapping": {
 			"version": "0.3.25",
@@ -824,71 +763,21 @@
 				"@jridgewell/sourcemap-codec": "^1.4.14"
 			}
 		},
-		"node_modules/@nodelib/fs.scandir": {
-			"version": "2.1.5",
-			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-			"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-			"dev": true,
-			"dependencies": {
-				"@nodelib/fs.stat": "2.0.5",
-				"run-parallel": "^1.1.9"
-			},
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/@nodelib/fs.stat": {
-			"version": "2.0.5",
-			"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-			"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-			"dev": true,
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/@nodelib/fs.walk": {
-			"version": "1.2.8",
-			"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-			"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-			"dev": true,
-			"dependencies": {
-				"@nodelib/fs.scandir": "2.1.5",
-				"fastq": "^1.6.0"
-			},
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/@pkgjs/parseargs": {
-			"version": "0.11.0",
-			"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
-			"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
-			"dev": true,
-			"license": "MIT",
-			"optional": true,
-			"engines": {
-				"node": ">=14"
+		"node_modules/@lucide/svelte": {
+			"version": "0.487.0",
+			"resolved": "https://registry.npmjs.org/@lucide/svelte/-/svelte-0.487.0.tgz",
+			"integrity": "sha512-27b/wUzWrqDJu97+1iSV2X8L2JGRWH/mAWAjHgazWxhGxVu/kS0p3SbNu6w3skNmQNEku33EKU1v44IVwULzbw==",
+			"license": "ISC",
+			"peerDependencies": {
+				"svelte": "^5"
 			}
 		},
 		"node_modules/@polka/url": {
-			"version": "1.0.0-next.25",
-			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
-			"integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
-			"dev": true
-		},
-		"node_modules/@poppanator/sveltekit-svg": {
-			"version": "4.2.1",
-			"resolved": "https://registry.npmjs.org/@poppanator/sveltekit-svg/-/sveltekit-svg-4.2.1.tgz",
-			"integrity": "sha512-w7jl4EVOOF+X+uv2BEUiMDJwds+GfbczwGpcS0+rsjIsKYmqmwMi4ts3bVZR9ZvdFHWy5rS84U+pSBClz6cbBg==",
+			"version": "1.0.0-next.28",
+			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+			"integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
 			"dev": true,
-			"dependencies": {
-				"@rollup/pluginutils": "^5.1.0"
-			},
-			"peerDependencies": {
-				"svelte": ">=4.x",
-				"svgo": ">=3.x",
-				"vite": ">=4.x"
-			}
+			"license": "MIT"
 		},
 		"node_modules/@rollup/pluginutils": {
 			"version": "5.1.0",
@@ -925,7 +814,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -939,7 +827,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -953,7 +840,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -967,7 +853,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -981,7 +866,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -995,7 +879,6 @@
 			"cpu": [
 				"arm"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1009,7 +892,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1023,7 +905,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1037,7 +918,6 @@
 			"cpu": [
 				"ppc64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1051,7 +931,6 @@
 			"cpu": [
 				"riscv64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1065,7 +944,6 @@
 			"cpu": [
 				"s390x"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1079,7 +957,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1093,7 +970,6 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1107,7 +983,6 @@
 			"cpu": [
 				"arm64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1121,7 +996,6 @@
 			"cpu": [
 				"ia32"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
@@ -1135,13 +1009,21 @@
 			"cpu": [
 				"x64"
 			],
-			"dev": true,
 			"license": "MIT",
 			"optional": true,
 			"os": [
 				"win32"
 			]
 		},
+		"node_modules/@sveltejs/acorn-typescript": {
+			"version": "1.0.5",
+			"resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz",
+			"integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==",
+			"license": "MIT",
+			"peerDependencies": {
+				"acorn": "^8.9.0"
+			}
+		},
 		"node_modules/@sveltejs/adapter-auto": {
 			"version": "3.2.5",
 			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.5.tgz",
@@ -1166,25 +1048,23 @@
 			}
 		},
 		"node_modules/@sveltejs/kit": {
-			"version": "2.6.3",
-			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.6.3.tgz",
-			"integrity": "sha512-baIAnmfMqAISrPtTC/22w6ay5kTEIQ/vq9bctiaQgRIoLCPBNhb6LEidTuWQS7OzPYCDBMuMX1t/fMvi4r3q/g==",
+			"version": "2.20.4",
+			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.20.4.tgz",
+			"integrity": "sha512-B3Y1mb1Qjt57zXLVch5tfqsK/ebHe6uYTcFSnGFNwRpId3+fplLgQK6Z2zhDVBezSsPuhDq6Pry+9PA88ocN6Q==",
 			"dev": true,
-			"hasInstallScript": true,
 			"license": "MIT",
 			"dependencies": {
 				"@types/cookie": "^0.6.0",
 				"cookie": "^0.6.0",
 				"devalue": "^5.1.0",
-				"esm-env": "^1.0.0",
+				"esm-env": "^1.2.2",
 				"import-meta-resolve": "^4.1.0",
 				"kleur": "^4.1.5",
 				"magic-string": "^0.30.5",
 				"mrmime": "^2.0.0",
 				"sade": "^1.8.1",
 				"set-cookie-parser": "^2.6.0",
-				"sirv": "^2.0.4",
-				"tiny-glob": "^0.2.9"
+				"sirv": "^3.0.0"
 			},
 			"bin": {
 				"svelte-kit": "svelte-kit.js"
@@ -1193,9 +1073,9 @@
 				"node": ">=18.13"
 			},
 			"peerDependencies": {
-				"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1",
+				"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0",
 				"svelte": "^4.0.0 || ^5.0.0-next.0",
-				"vite": "^5.0.3"
+				"vite": "^5.0.3 || ^6.0.0"
 			}
 		},
 		"node_modules/@sveltejs/vite-plugin-svelte": {
@@ -1237,6 +1117,19 @@
 				"vite": "^5.0.0"
 			}
 		},
+		"node_modules/@sveltejs/vite-plugin-svelte/node_modules/svelte-hmr": {
+			"version": "0.16.0",
+			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
+			"integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
+			"dev": true,
+			"license": "ISC",
+			"engines": {
+				"node": "^12.20 || ^14.13.1 || >= 16"
+			},
+			"peerDependencies": {
+				"svelte": "^3.19.0 || ^4.0.0"
+			}
+		},
 		"node_modules/@svgr/babel-plugin-add-jsx-attribute": {
 			"version": "8.0.0",
 			"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
@@ -1450,6 +1343,216 @@
 				"@svgr/core": "*"
 			}
 		},
+		"node_modules/@tailwindcss/node": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.3.tgz",
+			"integrity": "sha512-H/6r6IPFJkCfBJZ2dKZiPJ7Ueb2wbL592+9bQEl2r73qbX6yGnmQVIfiUvDRB2YI0a3PWDrzUwkvQx1XW1bNkA==",
+			"license": "MIT",
+			"dependencies": {
+				"enhanced-resolve": "^5.18.1",
+				"jiti": "^2.4.2",
+				"lightningcss": "1.29.2",
+				"tailwindcss": "4.1.3"
+			}
+		},
+		"node_modules/@tailwindcss/oxide": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.3.tgz",
+			"integrity": "sha512-t16lpHCU7LBxDe/8dCj9ntyNpXaSTAgxWm1u2XQP5NiIu4KGSyrDJJRlK9hJ4U9yJxx0UKCVI67MJWFNll5mOQ==",
+			"license": "MIT",
+			"engines": {
+				"node": ">= 10"
+			},
+			"optionalDependencies": {
+				"@tailwindcss/oxide-android-arm64": "4.1.3",
+				"@tailwindcss/oxide-darwin-arm64": "4.1.3",
+				"@tailwindcss/oxide-darwin-x64": "4.1.3",
+				"@tailwindcss/oxide-freebsd-x64": "4.1.3",
+				"@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.3",
+				"@tailwindcss/oxide-linux-arm64-gnu": "4.1.3",
+				"@tailwindcss/oxide-linux-arm64-musl": "4.1.3",
+				"@tailwindcss/oxide-linux-x64-gnu": "4.1.3",
+				"@tailwindcss/oxide-linux-x64-musl": "4.1.3",
+				"@tailwindcss/oxide-win32-arm64-msvc": "4.1.3",
+				"@tailwindcss/oxide-win32-x64-msvc": "4.1.3"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-android-arm64": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.3.tgz",
+			"integrity": "sha512-cxklKjtNLwFl3mDYw4XpEfBY+G8ssSg9ADL4Wm6//5woi3XGqlxFsnV5Zb6v07dxw1NvEX2uoqsxO/zWQsgR+g==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-darwin-arm64": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.3.tgz",
+			"integrity": "sha512-mqkf2tLR5VCrjBvuRDwzKNShRu99gCAVMkVsaEOFvv6cCjlEKXRecPu9DEnxp6STk5z+Vlbh1M5zY3nQCXMXhw==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-darwin-x64": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.3.tgz",
+			"integrity": "sha512-7sGraGaWzXvCLyxrc7d+CCpUN3fYnkkcso3rCzwUmo/LteAl2ZGCDlGvDD8Y/1D3ngxT8KgDj1DSwOnNewKhmg==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-freebsd-x64": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.3.tgz",
+			"integrity": "sha512-E2+PbcbzIReaAYZe997wb9rId246yDkCwAakllAWSGqe6VTg9hHle67hfH6ExjpV2LSK/siRzBUs5wVff3RW9w==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.3.tgz",
+			"integrity": "sha512-GvfbJ8wjSSjbLFFE3UYz4Eh8i4L6GiEYqCtA8j2Zd2oXriPuom/Ah/64pg/szWycQpzRnbDiJozoxFU2oJZyfg==",
+			"cpu": [
+				"arm"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.3.tgz",
+			"integrity": "sha512-35UkuCWQTeG9BHcBQXndDOrpsnt3Pj9NVIB4CgNiKmpG8GnCNXeMczkUpOoqcOhO6Cc/mM2W7kaQ/MTEENDDXg==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.3.tgz",
+			"integrity": "sha512-dm18aQiML5QCj9DQo7wMbt1Z2tl3Giht54uVR87a84X8qRtuXxUqnKQkRDK5B4bCOmcZ580lF9YcoMkbDYTXHQ==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.3.tgz",
+			"integrity": "sha512-LMdTmGe/NPtGOaOfV2HuO7w07jI3cflPrVq5CXl+2O93DCewADK0uW1ORNAcfu2YxDUS035eY2W38TxrsqngxA==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-x64-musl": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.3.tgz",
+			"integrity": "sha512-aalNWwIi54bbFEizwl1/XpmdDrOaCjRFQRgtbv9slWjmNPuJJTIKPHf5/XXDARc9CneW9FkSTqTbyvNecYAEGw==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.3.tgz",
+			"integrity": "sha512-PEj7XR4OGTGoboTIAdXicKuWl4EQIjKHKuR+bFy9oYN7CFZo0eu74+70O4XuERX4yjqVZGAkCdglBODlgqcCXg==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.3.tgz",
+			"integrity": "sha512-T8gfxECWDBENotpw3HR9SmNiHC9AOJdxs+woasRZ8Q/J4VHN0OMs7F+4yVNZ9EVN26Wv6mZbK0jv7eHYuLJLwA==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 10"
+			}
+		},
 		"node_modules/@tailwindcss/typography": {
 			"version": "0.5.15",
 			"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz",
@@ -1478,14 +1581,18 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/@trysound/sax": {
-			"version": "0.2.0",
-			"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
-			"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
-			"dev": true,
-			"peer": true,
-			"engines": {
-				"node": ">=10.13.0"
+		"node_modules/@tailwindcss/vite": {
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.3.tgz",
+			"integrity": "sha512-lUI/QaDxLtlV52Lho6pu07CG9pSnRYLOPmKGIQjyHdTBagemc6HmgZxyjGAQ/5HMPrNeWBfTVIpQl0/jLXvWHQ==",
+			"license": "MIT",
+			"dependencies": {
+				"@tailwindcss/node": "4.1.3",
+				"@tailwindcss/oxide": "4.1.3",
+				"tailwindcss": "4.1.3"
+			},
+			"peerDependencies": {
+				"vite": "^5.2.0 || ^6"
 			}
 		},
 		"node_modules/@types/cookie": {
@@ -1506,22 +1613,11 @@
 			"integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==",
 			"dev": true
 		},
-		"node_modules/@zerodevx/svelte-img": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/@zerodevx/svelte-img/-/svelte-img-2.1.0.tgz",
-			"integrity": "sha512-ktOcv5svIm8qQQ7sBnSST1zaA5mJpTp+MbzaMeDNBEw4hulwzSD0VRPtq/pvYsjacA1OAw+JIN/qmBl7doh7HA==",
-			"dev": true,
-			"dependencies": {
-				"vite-imagetools": "5.0.8"
-			},
-			"peerDependencies": {
-				"svelte": "^3.55.1 || ^4.0.0"
-			}
-		},
 		"node_modules/acorn": {
-			"version": "8.11.3",
-			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
-			"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+			"version": "8.14.1",
+			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+			"integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+			"license": "MIT",
 			"bin": {
 				"acorn": "bin/acorn"
 			},
@@ -1529,58 +1625,11 @@
 				"node": ">=0.4.0"
 			}
 		},
-		"node_modules/ansi-regex": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
-			"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/ansi-regex?sponsor=1"
-			}
-		},
-		"node_modules/ansi-styles": {
-			"version": "3.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-			"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/ansi-styles/node_modules/color-convert": {
-			"version": "1.9.3",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-			"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "1.1.3"
-			}
-		},
-		"node_modules/ansi-styles/node_modules/color-name": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-			"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-			"dev": true
-		},
-		"node_modules/any-promise": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
-			"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/anymatch": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
 			"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"normalize-path": "^3.0.0",
 				"picomatch": "^2.0.4"
@@ -1589,13 +1638,6 @@
 				"node": ">= 8"
 			}
 		},
-		"node_modules/arg": {
-			"version": "5.0.2",
-			"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
-			"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/argparse": {
 			"version": "2.0.1",
 			"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -1603,11 +1645,12 @@
 			"dev": true
 		},
 		"node_modules/aria-query": {
-			"version": "5.3.0",
-			"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
-			"integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
-			"dependencies": {
-				"dequal": "^2.0.3"
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+			"integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">= 0.4"
 			}
 		},
 		"node_modules/autoprefixer": {
@@ -1649,96 +1692,25 @@
 			}
 		},
 		"node_modules/axobject-query": {
-			"version": "4.0.0",
-			"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz",
-			"integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==",
-			"dependencies": {
-				"dequal": "^2.0.3"
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+			"integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">= 0.4"
 			}
 		},
-		"node_modules/b4a": {
-			"version": "1.6.6",
-			"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
-			"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==",
-			"dev": true
-		},
 		"node_modules/balanced-match": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
 			"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
 			"dev": true
 		},
-		"node_modules/bare-events": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.3.1.tgz",
-			"integrity": "sha512-sJnSOTVESURZ61XgEleqmP255T6zTYwHPwE4r6SssIh0U9/uDvfpdoJYpVUerJJZH2fueO+CdT8ZT+OC/7aZDA==",
-			"dev": true,
-			"optional": true
-		},
-		"node_modules/bare-fs": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.1.tgz",
-			"integrity": "sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==",
-			"dev": true,
-			"optional": true,
-			"dependencies": {
-				"bare-events": "^2.0.0",
-				"bare-path": "^2.0.0",
-				"bare-stream": "^2.0.0"
-			}
-		},
-		"node_modules/bare-os": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz",
-			"integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==",
-			"dev": true,
-			"optional": true
-		},
-		"node_modules/bare-path": {
-			"version": "2.1.3",
-			"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
-			"integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
-			"dev": true,
-			"optional": true,
-			"dependencies": {
-				"bare-os": "^2.1.0"
-			}
-		},
-		"node_modules/bare-stream": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.0.1.tgz",
-			"integrity": "sha512-ubLyoDqPnUf5o0kSFp709HC0WRZuxVuh4pbte5eY95Xvx5bdvz07c2JFmXBfqqe60q+9PJ8S4X5GRvmcNSKMxg==",
-			"dev": true,
-			"optional": true,
-			"dependencies": {
-				"streamx": "^2.18.0"
-			}
-		},
-		"node_modules/base64-js": {
-			"version": "1.5.1",
-			"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
-			"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			]
-		},
 		"node_modules/binary-extensions": {
 			"version": "2.3.0",
 			"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
 			"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
-			"dev": true,
+			"devOptional": true,
 			"engines": {
 				"node": ">=8"
 			},
@@ -1746,24 +1718,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/bl": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
-			"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
-			"dev": true,
-			"dependencies": {
-				"buffer": "^5.5.0",
-				"inherits": "^2.0.4",
-				"readable-stream": "^3.4.0"
-			}
-		},
-		"node_modules/boolbase": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
-			"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
-			"dev": true,
-			"peer": true
-		},
 		"node_modules/brace-expansion": {
 			"version": "1.1.11",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1778,7 +1732,7 @@
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
 			"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"fill-range": "^7.1.1"
 			},
@@ -1819,30 +1773,6 @@
 				"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
 			}
 		},
-		"node_modules/buffer": {
-			"version": "5.7.1",
-			"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
-			"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			],
-			"dependencies": {
-				"base64-js": "^1.3.1",
-				"ieee754": "^1.1.13"
-			}
-		},
 		"node_modules/buffer-crc32": {
 			"version": "0.2.13",
 			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
@@ -1873,16 +1803,6 @@
 				"url": "https://github.com/sponsors/sindresorhus"
 			}
 		},
-		"node_modules/camelcase-css": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
-			"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">= 6"
-			}
-		},
 		"node_modules/caniuse-lite": {
 			"version": "1.0.30001667",
 			"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz",
@@ -1904,25 +1824,11 @@
 			],
 			"license": "CC-BY-4.0"
 		},
-		"node_modules/chalk": {
-			"version": "2.4.2",
-			"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-			"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-			"dev": true,
-			"dependencies": {
-				"ansi-styles": "^3.2.1",
-				"escape-string-regexp": "^1.0.5",
-				"supports-color": "^5.3.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/chokidar": {
 			"version": "3.6.0",
 			"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
 			"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"anymatch": "~3.1.2",
 				"braces": "~3.0.2",
@@ -1942,73 +1848,13 @@
 				"fsevents": "~2.3.2"
 			}
 		},
-		"node_modules/chownr": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
-			"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
-			"dev": true
-		},
-		"node_modules/code-red": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
-			"integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
-			"dependencies": {
-				"@jridgewell/sourcemap-codec": "^1.4.15",
-				"@types/estree": "^1.0.1",
-				"acorn": "^8.10.0",
-				"estree-walker": "^3.0.3",
-				"periscopic": "^3.1.0"
-			}
-		},
-		"node_modules/color": {
-			"version": "4.2.3",
-			"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
-			"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
-			"dev": true,
-			"dependencies": {
-				"color-convert": "^2.0.1",
-				"color-string": "^1.9.0"
-			},
-			"engines": {
-				"node": ">=12.5.0"
-			}
-		},
-		"node_modules/color-convert": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-			"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "~1.1.4"
-			},
-			"engines": {
-				"node": ">=7.0.0"
-			}
-		},
-		"node_modules/color-name": {
-			"version": "1.1.4",
-			"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-			"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-			"dev": true
-		},
-		"node_modules/color-string": {
-			"version": "1.9.1",
-			"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
-			"integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
-			"dev": true,
-			"dependencies": {
-				"color-name": "^1.0.0",
-				"simple-swizzle": "^0.2.2"
-			}
-		},
-		"node_modules/commander": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
-			"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
-			"dev": true,
+		"node_modules/clsx": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+			"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
 			"license": "MIT",
 			"engines": {
-				"node": ">= 6"
+				"node": ">=6"
 			}
 		},
 		"node_modules/concat-map": {
@@ -2058,74 +1904,6 @@
 				}
 			}
 		},
-		"node_modules/cross-spawn": {
-			"version": "7.0.3",
-			"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
-			"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"path-key": "^3.1.0",
-				"shebang-command": "^2.0.0",
-				"which": "^2.0.1"
-			},
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/css-select": {
-			"version": "5.1.0",
-			"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
-			"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"boolbase": "^1.0.0",
-				"css-what": "^6.1.0",
-				"domhandler": "^5.0.2",
-				"domutils": "^3.0.1",
-				"nth-check": "^2.0.1"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/fb55"
-			}
-		},
-		"node_modules/css-selector-tokenizer": {
-			"version": "0.8.0",
-			"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
-			"integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"cssesc": "^3.0.0",
-				"fastparse": "^1.1.2"
-			}
-		},
-		"node_modules/css-tree": {
-			"version": "2.3.1",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
-			"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
-			"dependencies": {
-				"mdn-data": "2.0.30",
-				"source-map-js": "^1.0.1"
-			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
-			}
-		},
-		"node_modules/css-what": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
-			"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
-			"dev": true,
-			"peer": true,
-			"engines": {
-				"node": ">= 6"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/fb55"
-			}
-		},
 		"node_modules/cssesc": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -2139,70 +1917,14 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/csso": {
-			"version": "5.0.5",
-			"resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
-			"integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"css-tree": "~2.2.0"
-			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
-				"npm": ">=7.0.0"
-			}
-		},
-		"node_modules/csso/node_modules/css-tree": {
-			"version": "2.2.1",
-			"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
-			"integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"mdn-data": "2.0.28",
-				"source-map-js": "^1.0.1"
-			},
-			"engines": {
-				"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
-				"npm": ">=7.0.0"
-			}
-		},
-		"node_modules/csso/node_modules/mdn-data": {
-			"version": "2.0.28",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
-			"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
-			"dev": true,
-			"peer": true
-		},
-		"node_modules/culori": {
-			"version": "3.3.0",
-			"resolved": "https://registry.npmjs.org/culori/-/culori-3.3.0.tgz",
-			"integrity": "sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
-			}
-		},
 		"node_modules/daisyui": {
-			"version": "4.12.12",
-			"resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.12.12.tgz",
-			"integrity": "sha512-xmCZ4piuWOjhNyB0VDKczB5vKFCipTA7UxaZNOzCz6cT8kvWgv5BDtUo+Hk9gOFufByOlfuBdzLpfhY5GsebTQ==",
+			"version": "5.0.12",
+			"resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.0.12.tgz",
+			"integrity": "sha512-01DU0eYBcHgPtuf5fxcrkGkIN6/Uyaqmkle5Yo3ZyW9YVAu036ALZbjv2KH5euvUbeQ4r9q3gAarGcf7Tywhng==",
 			"dev": true,
 			"license": "MIT",
-			"dependencies": {
-				"css-selector-tokenizer": "^0.8",
-				"culori": "^3",
-				"picocolors": "^1",
-				"postcss-js": "^4"
-			},
-			"engines": {
-				"node": ">=16.9.0"
-			},
 			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/daisyui"
+				"url": "https://github.com/saadeghi/daisyui?sponsor=1"
 			}
 		},
 		"node_modules/debug": {
@@ -2222,30 +1944,6 @@
 				}
 			}
 		},
-		"node_modules/decompress-response": {
-			"version": "6.0.0",
-			"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
-			"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
-			"dev": true,
-			"dependencies": {
-				"mimic-response": "^3.1.0"
-			},
-			"engines": {
-				"node": ">=10"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
-		"node_modules/deep-extend": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-			"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-			"dev": true,
-			"engines": {
-				"node": ">=4.0.0"
-			}
-		},
 		"node_modules/deepmerge": {
 			"version": "4.3.1",
 			"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
@@ -2255,14 +1953,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/dequal": {
-			"version": "2.0.3",
-			"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
-			"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
-			"engines": {
-				"node": ">=6"
-			}
-		},
 		"node_modules/detect-indent": {
 			"version": "6.1.0",
 			"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
@@ -2276,7 +1966,7 @@
 			"version": "2.0.3",
 			"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
 			"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
-			"dev": true,
+			"license": "Apache-2.0",
 			"engines": {
 				"node": ">=8"
 			}
@@ -2288,79 +1978,6 @@
 			"dev": true,
 			"license": "MIT"
 		},
-		"node_modules/didyoumean": {
-			"version": "1.2.2",
-			"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
-			"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
-			"dev": true,
-			"license": "Apache-2.0"
-		},
-		"node_modules/dlv": {
-			"version": "1.1.3",
-			"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
-			"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/dom-serializer": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
-			"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.2",
-				"entities": "^4.2.0"
-			},
-			"funding": {
-				"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
-			}
-		},
-		"node_modules/domelementtype": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
-			"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/fb55"
-				}
-			],
-			"peer": true
-		},
-		"node_modules/domhandler": {
-			"version": "5.0.3",
-			"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
-			"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"domelementtype": "^2.3.0"
-			},
-			"engines": {
-				"node": ">= 4"
-			},
-			"funding": {
-				"url": "https://github.com/fb55/domhandler?sponsor=1"
-			}
-		},
-		"node_modules/domutils": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
-			"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"dom-serializer": "^2.0.0",
-				"domelementtype": "^2.3.0",
-				"domhandler": "^5.0.3"
-			},
-			"funding": {
-				"url": "https://github.com/fb55/domutils?sponsor=1"
-			}
-		},
 		"node_modules/dot-case": {
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
@@ -2371,13 +1988,6 @@
 				"tslib": "^2.0.3"
 			}
 		},
-		"node_modules/eastasianwidth": {
-			"version": "0.2.0",
-			"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
-			"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
-			"dev": true,
-			"license": "MIT"
-		},
 		"node_modules/electron-to-chromium": {
 			"version": "1.5.33",
 			"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz",
@@ -2385,20 +1995,17 @@
 			"dev": true,
 			"license": "ISC"
 		},
-		"node_modules/emoji-regex": {
-			"version": "9.2.2",
-			"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
-			"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/end-of-stream": {
-			"version": "1.4.4",
-			"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
-			"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-			"dev": true,
+		"node_modules/enhanced-resolve": {
+			"version": "5.18.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+			"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+			"license": "MIT",
 			"dependencies": {
-				"once": "^1.4.0"
+				"graceful-fs": "^4.2.4",
+				"tapable": "^2.2.0"
+			},
+			"engines": {
+				"node": ">=10.13.0"
 			}
 		},
 		"node_modules/entities": {
@@ -2438,7 +2045,6 @@
 			"version": "0.21.5",
 			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
 			"integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
-			"dev": true,
 			"hasInstallScript": true,
 			"license": "MIT",
 			"bin": {
@@ -2483,81 +2089,26 @@
 				"node": ">=6"
 			}
 		},
-		"node_modules/escape-string-regexp": {
-			"version": "1.0.5",
-			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-			"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.8.0"
-			}
-		},
 		"node_modules/esm-env": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
-			"integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
-			"dev": true
-		},
-		"node_modules/estree-walker": {
-			"version": "3.0.3",
-			"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
-			"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
-			"dependencies": {
-				"@types/estree": "^1.0.0"
-			}
-		},
-		"node_modules/expand-template": {
-			"version": "2.0.3",
-			"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
-			"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
-			"dev": true,
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/fast-fifo": {
-			"version": "1.3.2",
-			"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
-			"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
-			"dev": true
-		},
-		"node_modules/fast-glob": {
-			"version": "3.3.2",
-			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
-			"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
-			"dev": true,
-			"dependencies": {
-				"@nodelib/fs.stat": "^2.0.2",
-				"@nodelib/fs.walk": "^1.2.3",
-				"glob-parent": "^5.1.2",
-				"merge2": "^1.3.0",
-				"micromatch": "^4.0.4"
-			},
-			"engines": {
-				"node": ">=8.6.0"
-			}
-		},
-		"node_modules/fastparse": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
-			"integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
-			"dev": true,
+			"version": "1.2.2",
+			"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
+			"integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
 			"license": "MIT"
 		},
-		"node_modules/fastq": {
-			"version": "1.17.1",
-			"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
-			"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
-			"dev": true,
+		"node_modules/esrap": {
+			"version": "1.4.6",
+			"resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.6.tgz",
+			"integrity": "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==",
+			"license": "MIT",
 			"dependencies": {
-				"reusify": "^1.0.4"
+				"@jridgewell/sourcemap-codec": "^1.4.15"
 			}
 		},
 		"node_modules/fill-range": {
 			"version": "7.1.1",
 			"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
 			"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"to-regex-range": "^5.0.1"
 			},
@@ -2565,29 +2116,6 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/focus-options-polyfill": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/focus-options-polyfill/-/focus-options-polyfill-1.6.0.tgz",
-			"integrity": "sha512-uyrAmLZrPnUItQY5wTdg31TO9GGZRGsh/jmohUg9oLmLi/sw5y7LlTV/mwyd6rvbxIOGwmRiv6LcTS8w7Bk9NQ==",
-			"dev": true
-		},
-		"node_modules/foreground-child": {
-			"version": "3.3.0",
-			"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
-			"integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"cross-spawn": "^7.0.0",
-				"signal-exit": "^4.0.1"
-			},
-			"engines": {
-				"node": ">=14"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
 		"node_modules/fraction.js": {
 			"version": "4.3.7",
 			"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -2602,12 +2130,6 @@
 				"url": "https://github.com/sponsors/rawify"
 			}
 		},
-		"node_modules/fs-constants": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
-			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-			"dev": true
-		},
 		"node_modules/fs.realpath": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2618,7 +2140,6 @@
 			"version": "2.3.3",
 			"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
 			"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
-			"dev": true,
 			"hasInstallScript": true,
 			"optional": true,
 			"os": [
@@ -2628,16 +2149,6 @@
 				"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
 			}
 		},
-		"node_modules/function-bind": {
-			"version": "1.1.2",
-			"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
-			"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
-			"dev": true,
-			"license": "MIT",
-			"funding": {
-				"url": "https://github.com/sponsors/ljharb"
-			}
-		},
 		"node_modules/gensync": {
 			"version": "1.0.0-beta.2",
 			"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -2647,12 +2158,6 @@
 				"node": ">=6.9.0"
 			}
 		},
-		"node_modules/github-from-package": {
-			"version": "0.0.0",
-			"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
-			"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
-			"dev": true
-		},
 		"node_modules/glob": {
 			"version": "7.2.3",
 			"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -2678,7 +2183,7 @@
 			"version": "5.1.2",
 			"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
 			"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"is-glob": "^4.0.1"
 			},
@@ -2695,45 +2200,10 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/globalyzer": {
-			"version": "0.1.0",
-			"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
-			"integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
-			"dev": true
-		},
-		"node_modules/globrex": {
-			"version": "0.1.2",
-			"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
-			"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
-			"dev": true
-		},
 		"node_modules/graceful-fs": {
 			"version": "4.2.11",
 			"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
-			"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
-			"dev": true
-		},
-		"node_modules/has-flag": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-			"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/hasown": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
-			"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"function-bind": "^1.1.2"
-			},
-			"engines": {
-				"node": ">= 0.4"
-			}
+			"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
 		},
 		"node_modules/highlight.js": {
 			"version": "11.9.0",
@@ -2744,43 +2214,11 @@
 				"node": ">=12.0.0"
 			}
 		},
-		"node_modules/ieee754": {
-			"version": "1.2.1",
-			"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
-			"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			]
-		},
-		"node_modules/imagetools-core": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/imagetools-core/-/imagetools-core-4.1.0.tgz",
-			"integrity": "sha512-GDMgj3zhQ3g6Ga3yWBSmdJC7mM8UePgHiZsVQZ8sUWgAk2UzRyGlFV5qdv0topv63vE86KaK6MmAbjVUVibOzA==",
-			"dev": true,
-			"dependencies": {
-				"sharp": "^0.32.4"
-			},
-			"engines": {
-				"node": ">=12.0.0"
-			}
-		},
 		"node_modules/immutable": {
 			"version": "4.3.6",
 			"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz",
 			"integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
-			"dev": true
+			"devOptional": true
 		},
 		"node_modules/import-fresh": {
 			"version": "3.3.0",
@@ -2825,23 +2263,11 @@
 			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
 			"dev": true
 		},
-		"node_modules/ini": {
-			"version": "1.3.8",
-			"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-			"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
-			"dev": true
-		},
-		"node_modules/is-arrayish": {
-			"version": "0.3.2",
-			"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
-			"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
-			"dev": true
-		},
 		"node_modules/is-binary-path": {
 			"version": "2.1.0",
 			"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
 			"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"binary-extensions": "^2.0.0"
 			},
@@ -2849,46 +2275,20 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/is-core-module": {
-			"version": "2.15.1",
-			"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
-			"integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"hasown": "^2.0.2"
-			},
-			"engines": {
-				"node": ">= 0.4"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/ljharb"
-			}
-		},
 		"node_modules/is-extglob": {
 			"version": "2.1.1",
 			"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
 			"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-			"dev": true,
+			"devOptional": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/is-fullwidth-code-point": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-			"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
 		"node_modules/is-glob": {
 			"version": "4.0.3",
 			"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
 			"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"is-extglob": "^2.1.1"
 			},
@@ -2900,57 +2300,35 @@
 			"version": "7.0.0",
 			"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
 			"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-			"dev": true,
+			"devOptional": true,
 			"engines": {
 				"node": ">=0.12.0"
 			}
 		},
 		"node_modules/is-reference": {
-			"version": "3.0.2",
-			"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
-			"integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
+			"integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
+			"license": "MIT",
 			"dependencies": {
-				"@types/estree": "*"
-			}
-		},
-		"node_modules/isexe": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-			"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
-			"dev": true,
-			"license": "ISC"
-		},
-		"node_modules/jackspeak": {
-			"version": "3.4.3",
-			"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
-			"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
-			"dev": true,
-			"license": "BlueOak-1.0.0",
-			"dependencies": {
-				"@isaacs/cliui": "^8.0.2"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			},
-			"optionalDependencies": {
-				"@pkgjs/parseargs": "^0.11.0"
+				"@types/estree": "^1.0.6"
 			}
 		},
 		"node_modules/jiti": {
-			"version": "1.21.6",
-			"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
-			"integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
-			"dev": true,
+			"version": "2.4.2",
+			"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
+			"integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
 			"license": "MIT",
 			"bin": {
-				"jiti": "bin/jiti.js"
+				"jiti": "lib/jiti-cli.mjs"
 			}
 		},
 		"node_modules/js-tokens": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
 			"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-			"dev": true
+			"dev": true,
+			"license": "MIT"
 		},
 		"node_modules/js-yaml": {
 			"version": "4.1.0",
@@ -2994,6 +2372,31 @@
 				"node": ">=6"
 			}
 		},
+		"node_modules/katex": {
+			"version": "0.15.6",
+			"resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz",
+			"integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==",
+			"funding": [
+				"https://opencollective.com/katex",
+				"https://github.com/sponsors/katex"
+			],
+			"license": "MIT",
+			"dependencies": {
+				"commander": "^8.0.0"
+			},
+			"bin": {
+				"katex": "cli.js"
+			}
+		},
+		"node_modules/katex/node_modules/commander": {
+			"version": "8.3.0",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+			"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+			"license": "MIT",
+			"engines": {
+				"node": ">= 12"
+			}
+		},
 		"node_modules/kleur": {
 			"version": "4.1.5",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
@@ -3003,14 +2406,232 @@
 				"node": ">=6"
 			}
 		},
-		"node_modules/lilconfig": {
-			"version": "2.1.0",
-			"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
-			"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
-			"dev": true,
-			"license": "MIT",
+		"node_modules/lightningcss": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz",
+			"integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==",
+			"license": "MPL-2.0",
+			"dependencies": {
+				"detect-libc": "^2.0.3"
+			},
 			"engines": {
-				"node": ">=10"
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"optionalDependencies": {
+				"lightningcss-darwin-arm64": "1.29.2",
+				"lightningcss-darwin-x64": "1.29.2",
+				"lightningcss-freebsd-x64": "1.29.2",
+				"lightningcss-linux-arm-gnueabihf": "1.29.2",
+				"lightningcss-linux-arm64-gnu": "1.29.2",
+				"lightningcss-linux-arm64-musl": "1.29.2",
+				"lightningcss-linux-x64-gnu": "1.29.2",
+				"lightningcss-linux-x64-musl": "1.29.2",
+				"lightningcss-win32-arm64-msvc": "1.29.2",
+				"lightningcss-win32-x64-msvc": "1.29.2"
+			}
+		},
+		"node_modules/lightningcss-darwin-arm64": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz",
+			"integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-darwin-x64": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz",
+			"integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-freebsd-x64": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz",
+			"integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm-gnueabihf": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz",
+			"integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==",
+			"cpu": [
+				"arm"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm64-gnu": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz",
+			"integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-arm64-musl": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz",
+			"integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-x64-gnu": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz",
+			"integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-linux-x64-musl": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz",
+			"integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-win32-arm64-msvc": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz",
+			"integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==",
+			"cpu": [
+				"arm64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-win32-x64-msvc": {
+			"version": "1.29.2",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz",
+			"integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==",
+			"cpu": [
+				"x64"
+			],
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
 			}
 		},
 		"node_modules/lines-and-columns": {
@@ -3060,52 +2681,22 @@
 				"yallist": "^3.0.2"
 			}
 		},
+		"node_modules/lucide-svelte": {
+			"version": "0.475.0",
+			"resolved": "https://registry.npmjs.org/lucide-svelte/-/lucide-svelte-0.475.0.tgz",
+			"integrity": "sha512-N5+hFTPHaZe9HhqJDxxxODfYuOmI6v+JIowzERcea/uxytN/JZlehVTcINBNp8wMo7l6ov1Jf5srrDbkI/WsJg==",
+			"license": "ISC",
+			"peerDependencies": {
+				"svelte": "^3 || ^4 || ^5.0.0-next.42"
+			}
+		},
 		"node_modules/magic-string": {
-			"version": "0.30.10",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
-			"integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
-			"dependencies": {
-				"@jridgewell/sourcemap-codec": "^1.4.15"
-			}
-		},
-		"node_modules/mdn-data": {
-			"version": "2.0.30",
-			"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
-			"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
-		},
-		"node_modules/merge2": {
-			"version": "1.4.1",
-			"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
-			"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-			"dev": true,
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/micromatch": {
-			"version": "4.0.8",
-			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
-			"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
-			"dev": true,
+			"version": "0.30.17",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+			"integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
 			"license": "MIT",
 			"dependencies": {
-				"braces": "^3.0.3",
-				"picomatch": "^2.3.1"
-			},
-			"engines": {
-				"node": ">=8.6"
-			}
-		},
-		"node_modules/mimic-response": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
-			"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
-			"dev": true,
-			"engines": {
-				"node": ">=10"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
+				"@jridgewell/sourcemap-codec": "^1.5.0"
 			}
 		},
 		"node_modules/min-indent": {
@@ -3138,16 +2729,6 @@
 				"url": "https://github.com/sponsors/ljharb"
 			}
 		},
-		"node_modules/minipass": {
-			"version": "7.1.2",
-			"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
-			"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
-			"dev": true,
-			"license": "ISC",
-			"engines": {
-				"node": ">=16 || 14 >=14.17"
-			}
-		},
 		"node_modules/mkdirp": {
 			"version": "0.5.6",
 			"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -3160,12 +2741,6 @@
 				"mkdirp": "bin/cmd.js"
 			}
 		},
-		"node_modules/mkdirp-classic": {
-			"version": "0.5.3",
-			"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
-			"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
-			"dev": true
-		},
 		"node_modules/mri": {
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -3176,10 +2751,11 @@
 			}
 		},
 		"node_modules/mrmime": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
-			"integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+			"integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
 			"dev": true,
+			"license": "MIT",
 			"engines": {
 				"node": ">=10"
 			}
@@ -3190,29 +2766,17 @@
 			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 			"dev": true
 		},
-		"node_modules/mz": {
-			"version": "2.7.0",
-			"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
-			"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"any-promise": "^1.0.0",
-				"object-assign": "^4.0.1",
-				"thenify-all": "^1.0.0"
-			}
-		},
 		"node_modules/nanoid": {
-			"version": "3.3.7",
-			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
-			"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
-			"dev": true,
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
 			"funding": [
 				{
 					"type": "github",
 					"url": "https://github.com/sponsors/ai"
 				}
 			],
+			"license": "MIT",
 			"bin": {
 				"nanoid": "bin/nanoid.cjs"
 			},
@@ -3220,12 +2784,6 @@
 				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
 			}
 		},
-		"node_modules/napi-build-utils": {
-			"version": "1.0.2",
-			"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
-			"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
-			"dev": true
-		},
 		"node_modules/no-case": {
 			"version": "3.0.4",
 			"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -3236,24 +2794,6 @@
 				"tslib": "^2.0.3"
 			}
 		},
-		"node_modules/node-abi": {
-			"version": "3.63.0",
-			"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.63.0.tgz",
-			"integrity": "sha512-vAszCsOUrUxjGAmdnM/pq7gUgie0IRteCQMX6d4A534fQCR93EJU5qgzBvU6EkFfK27s0T3HEV3BOyJIr7OMYw==",
-			"dev": true,
-			"dependencies": {
-				"semver": "^7.3.5"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
-		"node_modules/node-addon-api": {
-			"version": "6.1.0",
-			"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
-			"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
-			"dev": true
-		},
 		"node_modules/node-releases": {
 			"version": "2.0.18",
 			"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
@@ -3265,7 +2805,7 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
 			"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-			"dev": true,
+			"devOptional": true,
 			"engines": {
 				"node": ">=0.10.0"
 			}
@@ -3280,39 +2820,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/nth-check": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
-			"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"boolbase": "^1.0.0"
-			},
-			"funding": {
-				"url": "https://github.com/fb55/nth-check?sponsor=1"
-			}
-		},
-		"node_modules/object-assign": {
-			"version": "4.1.1",
-			"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-			"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/object-hash": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
-			"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">= 6"
-			}
-		},
 		"node_modules/once": {
 			"version": "1.4.0",
 			"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -3322,13 +2829,6 @@
 				"wrappy": "1"
 			}
 		},
-		"node_modules/package-json-from-dist": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
-			"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
-			"dev": true,
-			"license": "BlueOak-1.0.0"
-		},
 		"node_modules/parent-module": {
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -3368,47 +2868,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/path-key": {
-			"version": "3.1.1",
-			"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
-			"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/path-parse": {
-			"version": "1.0.7",
-			"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
-			"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/path-scurry": {
-			"version": "1.11.1",
-			"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
-			"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
-			"dev": true,
-			"license": "BlueOak-1.0.0",
-			"dependencies": {
-				"lru-cache": "^10.2.0",
-				"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
-			},
-			"engines": {
-				"node": ">=16 || 14 >=14.18"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/path-scurry/node_modules/lru-cache": {
-			"version": "10.4.3",
-			"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
-			"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
-			"dev": true,
-			"license": "ISC"
-		},
 		"node_modules/path-type": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -3418,28 +2877,17 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/periscopic": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
-			"integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
-			"dependencies": {
-				"@types/estree": "^1.0.0",
-				"estree-walker": "^3.0.0",
-				"is-reference": "^3.0.0"
-			}
-		},
 		"node_modules/picocolors": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
 			"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
-			"dev": true,
 			"license": "ISC"
 		},
 		"node_modules/picomatch": {
 			"version": "2.3.1",
 			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
 			"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-			"dev": true,
+			"devOptional": true,
 			"engines": {
 				"node": ">=8.6"
 			},
@@ -3447,31 +2895,10 @@
 				"url": "https://github.com/sponsors/jonschlinkert"
 			}
 		},
-		"node_modules/pify": {
-			"version": "2.3.0",
-			"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-			"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/pirates": {
-			"version": "4.0.6",
-			"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
-			"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">= 6"
-			}
-		},
 		"node_modules/postcss": {
 			"version": "8.4.47",
 			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
 			"integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
-			"dev": true,
 			"funding": [
 				{
 					"type": "opencollective",
@@ -3496,44 +2923,6 @@
 				"node": "^10 || ^12 || >=14"
 			}
 		},
-		"node_modules/postcss-import": {
-			"version": "15.1.0",
-			"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
-			"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"postcss-value-parser": "^4.0.0",
-				"read-cache": "^1.0.0",
-				"resolve": "^1.1.7"
-			},
-			"engines": {
-				"node": ">=14.0.0"
-			},
-			"peerDependencies": {
-				"postcss": "^8.0.0"
-			}
-		},
-		"node_modules/postcss-js": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
-			"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"camelcase-css": "^2.0.1"
-			},
-			"engines": {
-				"node": "^12 || ^14 || >= 16"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/postcss/"
-			},
-			"peerDependencies": {
-				"postcss": "^8.4.21"
-			}
-		},
 		"node_modules/postcss-load-config": {
 			"version": "4.0.2",
 			"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
@@ -3550,6 +2939,8 @@
 				}
 			],
 			"license": "MIT",
+			"optional": true,
+			"peer": true,
 			"dependencies": {
 				"lilconfig": "^3.0.0",
 				"yaml": "^2.3.4"
@@ -3576,6 +2967,8 @@
 			"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
 			"dev": true,
 			"license": "MIT",
+			"optional": true,
+			"peer": true,
 			"engines": {
 				"node": ">=14"
 			},
@@ -3583,46 +2976,6 @@
 				"url": "https://github.com/sponsors/antonk52"
 			}
 		},
-		"node_modules/postcss-nested": {
-			"version": "6.2.0",
-			"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
-			"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "opencollective",
-					"url": "https://opencollective.com/postcss/"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/ai"
-				}
-			],
-			"license": "MIT",
-			"dependencies": {
-				"postcss-selector-parser": "^6.1.1"
-			},
-			"engines": {
-				"node": ">=12.0"
-			},
-			"peerDependencies": {
-				"postcss": "^8.2.14"
-			}
-		},
-		"node_modules/postcss-selector-parser": {
-			"version": "6.1.2",
-			"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
-			"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"cssesc": "^3.0.0",
-				"util-deprecate": "^1.0.2"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/postcss-value-parser": {
 			"version": "4.2.0",
 			"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -3630,140 +2983,11 @@
 			"dev": true,
 			"license": "MIT"
 		},
-		"node_modules/prebuild-install": {
-			"version": "7.1.2",
-			"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
-			"integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
-			"dev": true,
-			"dependencies": {
-				"detect-libc": "^2.0.0",
-				"expand-template": "^2.0.3",
-				"github-from-package": "0.0.0",
-				"minimist": "^1.2.3",
-				"mkdirp-classic": "^0.5.3",
-				"napi-build-utils": "^1.0.1",
-				"node-abi": "^3.3.0",
-				"pump": "^3.0.0",
-				"rc": "^1.2.7",
-				"simple-get": "^4.0.0",
-				"tar-fs": "^2.0.0",
-				"tunnel-agent": "^0.6.0"
-			},
-			"bin": {
-				"prebuild-install": "bin.js"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
-		"node_modules/prebuild-install/node_modules/tar-fs": {
-			"version": "2.1.1",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
-			"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
-			"dev": true,
-			"dependencies": {
-				"chownr": "^1.1.1",
-				"mkdirp-classic": "^0.5.2",
-				"pump": "^3.0.0",
-				"tar-stream": "^2.1.4"
-			}
-		},
-		"node_modules/prebuild-install/node_modules/tar-stream": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
-			"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
-			"dev": true,
-			"dependencies": {
-				"bl": "^4.0.3",
-				"end-of-stream": "^1.4.1",
-				"fs-constants": "^1.0.0",
-				"inherits": "^2.0.3",
-				"readable-stream": "^3.1.1"
-			},
-			"engines": {
-				"node": ">=6"
-			}
-		},
-		"node_modules/pump": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-			"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-			"dev": true,
-			"dependencies": {
-				"end-of-stream": "^1.1.0",
-				"once": "^1.3.1"
-			}
-		},
-		"node_modules/queue-microtask": {
-			"version": "1.2.3",
-			"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
-			"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			]
-		},
-		"node_modules/queue-tick": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
-			"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
-			"dev": true
-		},
-		"node_modules/rc": {
-			"version": "1.2.8",
-			"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
-			"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-			"dev": true,
-			"dependencies": {
-				"deep-extend": "^0.6.0",
-				"ini": "~1.3.0",
-				"minimist": "^1.2.0",
-				"strip-json-comments": "~2.0.1"
-			},
-			"bin": {
-				"rc": "cli.js"
-			}
-		},
-		"node_modules/read-cache": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
-			"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"pify": "^2.3.0"
-			}
-		},
-		"node_modules/readable-stream": {
-			"version": "3.6.2",
-			"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
-			"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
-			"dev": true,
-			"dependencies": {
-				"inherits": "^2.0.3",
-				"string_decoder": "^1.1.1",
-				"util-deprecate": "^1.0.1"
-			},
-			"engines": {
-				"node": ">= 6"
-			}
-		},
 		"node_modules/readdirp": {
 			"version": "3.6.0",
 			"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
 			"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"picomatch": "^2.2.1"
 			},
@@ -3771,24 +2995,6 @@
 				"node": ">=8.10.0"
 			}
 		},
-		"node_modules/resolve": {
-			"version": "1.22.8",
-			"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
-			"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"is-core-module": "^2.13.0",
-				"path-parse": "^1.0.7",
-				"supports-preserve-symlinks-flag": "^1.0.0"
-			},
-			"bin": {
-				"resolve": "bin/resolve"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/ljharb"
-			}
-		},
 		"node_modules/resolve-from": {
 			"version": "4.0.0",
 			"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -3798,16 +3004,6 @@
 				"node": ">=4"
 			}
 		},
-		"node_modules/reusify": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
-			"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-			"dev": true,
-			"engines": {
-				"iojs": ">=1.0.0",
-				"node": ">=0.10.0"
-			}
-		},
 		"node_modules/rimraf": {
 			"version": "2.7.1",
 			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -3825,7 +3021,6 @@
 			"version": "4.24.0",
 			"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz",
 			"integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==",
-			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@types/estree": "1.0.6"
@@ -3857,29 +3052,6 @@
 				"fsevents": "~2.3.2"
 			}
 		},
-		"node_modules/run-parallel": {
-			"version": "1.2.0",
-			"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
-			"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			],
-			"dependencies": {
-				"queue-microtask": "^1.2.2"
-			}
-		},
 		"node_modules/sade": {
 			"version": "1.8.1",
 			"resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
@@ -3892,26 +3064,6 @@
 				"node": ">=6"
 			}
 		},
-		"node_modules/safe-buffer": {
-			"version": "5.2.1",
-			"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-			"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			]
-		},
 		"node_modules/sander": {
 			"version": "0.5.1",
 			"resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
@@ -3928,7 +3080,7 @@
 			"version": "1.77.4",
 			"resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz",
 			"integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"chokidar": ">=3.0.0 <4.0.0",
 				"immutable": "^4.0.0",
@@ -3941,149 +3093,25 @@
 				"node": ">=14.0.0"
 			}
 		},
-		"node_modules/semver": {
-			"version": "7.6.2",
-			"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
-			"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
-			"dev": true,
-			"bin": {
-				"semver": "bin/semver.js"
-			},
-			"engines": {
-				"node": ">=10"
-			}
-		},
 		"node_modules/set-cookie-parser": {
 			"version": "2.6.0",
 			"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
 			"integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
 			"dev": true
 		},
-		"node_modules/sharp": {
-			"version": "0.32.6",
-			"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
-			"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
-			"dev": true,
-			"hasInstallScript": true,
-			"dependencies": {
-				"color": "^4.2.3",
-				"detect-libc": "^2.0.2",
-				"node-addon-api": "^6.1.0",
-				"prebuild-install": "^7.1.1",
-				"semver": "^7.5.4",
-				"simple-get": "^4.0.1",
-				"tar-fs": "^3.0.4",
-				"tunnel-agent": "^0.6.0"
-			},
-			"engines": {
-				"node": ">=14.15.0"
-			},
-			"funding": {
-				"url": "https://opencollective.com/libvips"
-			}
-		},
-		"node_modules/shebang-command": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
-			"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"shebang-regex": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/shebang-regex": {
-			"version": "3.0.0",
-			"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
-			"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/signal-exit": {
-			"version": "4.1.0",
-			"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
-			"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
-			"dev": true,
-			"license": "ISC",
-			"engines": {
-				"node": ">=14"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/simple-concat": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
-			"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			]
-		},
-		"node_modules/simple-get": {
-			"version": "4.0.1",
-			"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
-			"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
-			"dev": true,
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/feross"
-				},
-				{
-					"type": "patreon",
-					"url": "https://www.patreon.com/feross"
-				},
-				{
-					"type": "consulting",
-					"url": "https://feross.org/support"
-				}
-			],
-			"dependencies": {
-				"decompress-response": "^6.0.0",
-				"once": "^1.3.1",
-				"simple-concat": "^1.0.0"
-			}
-		},
-		"node_modules/simple-swizzle": {
-			"version": "0.2.2",
-			"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
-			"integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
-			"dev": true,
-			"dependencies": {
-				"is-arrayish": "^0.3.1"
-			}
-		},
 		"node_modules/sirv": {
-			"version": "2.0.4",
-			"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
-			"integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+			"version": "3.0.1",
+			"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz",
+			"integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
 				"@polka/url": "^1.0.0-next.24",
 				"mrmime": "^2.0.0",
 				"totalist": "^3.0.0"
 			},
 			"engines": {
-				"node": ">= 10"
+				"node": ">=18"
 			}
 		},
 		"node_modules/snake-case": {
@@ -4120,133 +3148,6 @@
 				"node": ">=0.10.0"
 			}
 		},
-		"node_modules/streamx": {
-			"version": "2.18.0",
-			"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz",
-			"integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==",
-			"dev": true,
-			"dependencies": {
-				"fast-fifo": "^1.3.2",
-				"queue-tick": "^1.0.1",
-				"text-decoder": "^1.1.0"
-			},
-			"optionalDependencies": {
-				"bare-events": "^2.2.0"
-			}
-		},
-		"node_modules/string_decoder": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-			"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-			"dev": true,
-			"dependencies": {
-				"safe-buffer": "~5.2.0"
-			}
-		},
-		"node_modules/string-width": {
-			"version": "5.1.2",
-			"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
-			"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"eastasianwidth": "^0.2.0",
-				"emoji-regex": "^9.2.2",
-				"strip-ansi": "^7.0.1"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/sindresorhus"
-			}
-		},
-		"node_modules/string-width-cjs": {
-			"name": "string-width",
-			"version": "4.2.3",
-			"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-			"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"emoji-regex": "^8.0.0",
-				"is-fullwidth-code-point": "^3.0.0",
-				"strip-ansi": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/string-width-cjs/node_modules/ansi-regex": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-			"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/string-width-cjs/node_modules/emoji-regex": {
-			"version": "8.0.0",
-			"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-			"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/string-width-cjs/node_modules/strip-ansi": {
-			"version": "6.0.1",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-			"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^5.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/strip-ansi": {
-			"version": "7.1.0",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
-			"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/strip-ansi?sponsor=1"
-			}
-		},
-		"node_modules/strip-ansi-cjs": {
-			"name": "strip-ansi",
-			"version": "6.0.1",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-			"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^5.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-			"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
 		"node_modules/strip-indent": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
@@ -4259,145 +3160,40 @@
 				"node": ">=8"
 			}
 		},
-		"node_modules/strip-json-comments": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-			"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
-			"dev": true,
-			"engines": {
-				"node": ">=0.10.0"
-			}
-		},
-		"node_modules/sucrase": {
-			"version": "3.35.0",
-			"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
-			"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"@jridgewell/gen-mapping": "^0.3.2",
-				"commander": "^4.0.0",
-				"glob": "^10.3.10",
-				"lines-and-columns": "^1.1.6",
-				"mz": "^2.7.0",
-				"pirates": "^4.0.1",
-				"ts-interface-checker": "^0.1.9"
-			},
-			"bin": {
-				"sucrase": "bin/sucrase",
-				"sucrase-node": "bin/sucrase-node"
-			},
-			"engines": {
-				"node": ">=16 || 14 >=14.17"
-			}
-		},
-		"node_modules/sucrase/node_modules/brace-expansion": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
-			"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"balanced-match": "^1.0.0"
-			}
-		},
-		"node_modules/sucrase/node_modules/glob": {
-			"version": "10.4.5",
-			"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
-			"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"foreground-child": "^3.1.0",
-				"jackspeak": "^3.1.2",
-				"minimatch": "^9.0.4",
-				"minipass": "^7.1.2",
-				"package-json-from-dist": "^1.0.0",
-				"path-scurry": "^1.11.1"
-			},
-			"bin": {
-				"glob": "dist/esm/bin.mjs"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/sucrase/node_modules/minimatch": {
-			"version": "9.0.5",
-			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
-			"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"brace-expansion": "^2.0.1"
-			},
-			"engines": {
-				"node": ">=16 || 14 >=14.17"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/isaacs"
-			}
-		},
-		"node_modules/supports-color": {
-			"version": "5.5.0",
-			"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-			"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-			"dev": true,
-			"dependencies": {
-				"has-flag": "^3.0.0"
-			},
-			"engines": {
-				"node": ">=4"
-			}
-		},
-		"node_modules/supports-preserve-symlinks-flag": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-			"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">= 0.4"
-			},
-			"funding": {
-				"url": "https://github.com/sponsors/ljharb"
-			}
-		},
 		"node_modules/svelte": {
-			"version": "4.2.19",
-			"resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz",
-			"integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==",
+			"version": "5.25.7",
+			"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.25.7.tgz",
+			"integrity": "sha512-0fzXbXaKfSvFUs6Wxev2h4CoEhexZotbTF9EJ4+Cg7MHW64ZnZ9+xUedZyEpgj0Tt9HrYGv9aASHkqjn9b/cPw==",
 			"license": "MIT",
 			"dependencies": {
-				"@ampproject/remapping": "^2.2.1",
-				"@jridgewell/sourcemap-codec": "^1.4.15",
-				"@jridgewell/trace-mapping": "^0.3.18",
-				"@types/estree": "^1.0.1",
-				"acorn": "^8.9.0",
-				"aria-query": "^5.3.0",
-				"axobject-query": "^4.0.0",
-				"code-red": "^1.0.3",
-				"css-tree": "^2.3.1",
-				"estree-walker": "^3.0.3",
-				"is-reference": "^3.0.1",
+				"@ampproject/remapping": "^2.3.0",
+				"@jridgewell/sourcemap-codec": "^1.5.0",
+				"@sveltejs/acorn-typescript": "^1.0.5",
+				"@types/estree": "^1.0.5",
+				"acorn": "^8.12.1",
+				"aria-query": "^5.3.1",
+				"axobject-query": "^4.1.0",
+				"clsx": "^2.1.1",
+				"esm-env": "^1.2.1",
+				"esrap": "^1.4.6",
+				"is-reference": "^3.0.3",
 				"locate-character": "^3.0.0",
-				"magic-string": "^0.30.4",
-				"periscopic": "^3.1.0"
+				"magic-string": "^0.30.11",
+				"zimmerframe": "^1.1.2"
 			},
 			"engines": {
-				"node": ">=16"
+				"node": ">=18"
 			}
 		},
 		"node_modules/svelte-check": {
-			"version": "3.8.0",
-			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.0.tgz",
-			"integrity": "sha512-7Nxn+3X97oIvMzYJ7t27w00qUf1Y52irE2RU2dQAd5PyvfGp4E7NLhFKVhb6PV2fx7dCRMpNKDIuazmGthjpSQ==",
+			"version": "3.8.6",
+			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.6.tgz",
+			"integrity": "sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==",
 			"dev": true,
+			"license": "MIT",
 			"dependencies": {
 				"@jridgewell/trace-mapping": "^0.3.17",
 				"chokidar": "^3.4.1",
-				"fast-glob": "^3.2.7",
-				"import-fresh": "^3.2.1",
 				"picocolors": "^1.0.0",
 				"sade": "^1.7.4",
 				"svelte-preprocess": "^5.1.3",
@@ -4410,12 +3206,6 @@
 				"svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0"
 			}
 		},
-		"node_modules/svelte-confetti": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/svelte-confetti/-/svelte-confetti-1.0.0.tgz",
-			"integrity": "sha512-mJRlys/RPnC9Z+5cjBanY6xFOuTBnxyYJCPiMdsK4kQUh4M1id8ruo13UqFX+6leDlkhOmhY2DuFkYssuFDDOA==",
-			"dev": true
-		},
 		"node_modules/svelte-highlight": {
 			"version": "7.6.1",
 			"resolved": "https://registry.npmjs.org/svelte-highlight/-/svelte-highlight-7.6.1.tgz",
@@ -4425,16 +3215,13 @@
 				"highlight.js": "11.9.0"
 			}
 		},
-		"node_modules/svelte-hmr": {
-			"version": "0.16.0",
-			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
-			"integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
-			"dev": true,
-			"engines": {
-				"node": "^12.20 || ^14.13.1 || >= 16"
-			},
-			"peerDependencies": {
-				"svelte": "^3.19.0 || ^4.0.0"
+		"node_modules/svelte-katex": {
+			"version": "0.1.2",
+			"resolved": "https://registry.npmjs.org/svelte-katex/-/svelte-katex-0.1.2.tgz",
+			"integrity": "sha512-jgqMgP0hwgsaYKLNa9GGpuEKiwE7Gr6QlDKp3C3QQkIb30G+WEHCljfl+nVCNra1aTr7uIemQmlyMA3avHx6HQ==",
+			"license": "MIT",
+			"dependencies": {
+				"katex": "^0.15.2"
 			}
 		},
 		"node_modules/svelte-media-queries": {
@@ -4442,41 +3229,6 @@
 			"resolved": "https://registry.npmjs.org/svelte-media-queries/-/svelte-media-queries-1.6.2.tgz",
 			"integrity": "sha512-SMz6od/vIeZEGlc4P0HKJK4G0fZotuwFhCSpBQaPqh75h6sL6sNf+4+IjbegFKXbP7b+SOfyzVOIMXTr8jynkA=="
 		},
-		"node_modules/svelte-parallax": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/svelte-parallax/-/svelte-parallax-0.6.0.tgz",
-			"integrity": "sha512-W2dGPNmK274AmL8Ibzr96luh24jr3u2MfAmAJTpnhAZwxkRws5MKgCxfxBBPvpRUc2GpGGIGanhTYXoHV6DcBw==",
-			"dev": true,
-			"dependencies": {
-				"focus-options-polyfill": "^1.6.0"
-			}
-		},
-		"node_modules/svelte-particles": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/svelte-particles/-/svelte-particles-2.12.0.tgz",
-			"integrity": "sha512-DISZn5RNIt7hP9SORogWmXyIA/MCha6kkcwRCa7fl3leD1+GFHeNMSjdmyhqlfgip82g17WUFxwyA8n/8EM5KQ==",
-			"deprecated": "@tsparticles/svelte is the newest package compatible with v3, please use that instead",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			},
-			"peerDependencies": {
-				"svelte": ">=3"
-			}
-		},
 		"node_modules/svelte-preprocess": {
 			"version": "5.1.4",
 			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
@@ -4545,125 +3297,19 @@
 			"integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
 			"dev": true
 		},
-		"node_modules/svgo": {
-			"version": "3.3.2",
-			"resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
-			"integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
-			"dev": true,
-			"peer": true,
-			"dependencies": {
-				"@trysound/sax": "0.2.0",
-				"commander": "^7.2.0",
-				"css-select": "^5.1.0",
-				"css-tree": "^2.3.1",
-				"css-what": "^6.1.0",
-				"csso": "^5.0.5",
-				"picocolors": "^1.0.0"
-			},
-			"bin": {
-				"svgo": "bin/svgo"
-			},
-			"engines": {
-				"node": ">=14.0.0"
-			},
-			"funding": {
-				"type": "opencollective",
-				"url": "https://opencollective.com/svgo"
-			}
-		},
-		"node_modules/svgo/node_modules/commander": {
-			"version": "7.2.0",
-			"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
-			"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
-			"dev": true,
-			"peer": true,
-			"engines": {
-				"node": ">= 10"
-			}
-		},
 		"node_modules/tailwindcss": {
-			"version": "3.4.13",
-			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
-			"integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
-			"dev": true,
+			"version": "4.1.3",
+			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.3.tgz",
+			"integrity": "sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==",
+			"license": "MIT"
+		},
+		"node_modules/tapable": {
+			"version": "2.2.1",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+			"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
 			"license": "MIT",
-			"dependencies": {
-				"@alloc/quick-lru": "^5.2.0",
-				"arg": "^5.0.2",
-				"chokidar": "^3.5.3",
-				"didyoumean": "^1.2.2",
-				"dlv": "^1.1.3",
-				"fast-glob": "^3.3.0",
-				"glob-parent": "^6.0.2",
-				"is-glob": "^4.0.3",
-				"jiti": "^1.21.0",
-				"lilconfig": "^2.1.0",
-				"micromatch": "^4.0.5",
-				"normalize-path": "^3.0.0",
-				"object-hash": "^3.0.0",
-				"picocolors": "^1.0.0",
-				"postcss": "^8.4.23",
-				"postcss-import": "^15.1.0",
-				"postcss-js": "^4.0.1",
-				"postcss-load-config": "^4.0.1",
-				"postcss-nested": "^6.0.1",
-				"postcss-selector-parser": "^6.0.11",
-				"resolve": "^1.22.2",
-				"sucrase": "^3.32.0"
-			},
-			"bin": {
-				"tailwind": "lib/cli.js",
-				"tailwindcss": "lib/cli.js"
-			},
 			"engines": {
-				"node": ">=14.0.0"
-			}
-		},
-		"node_modules/tailwindcss/node_modules/glob-parent": {
-			"version": "6.0.2",
-			"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
-			"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"is-glob": "^4.0.3"
-			},
-			"engines": {
-				"node": ">=10.13.0"
-			}
-		},
-		"node_modules/tar-fs": {
-			"version": "3.0.6",
-			"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
-			"integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
-			"dev": true,
-			"dependencies": {
-				"pump": "^3.0.0",
-				"tar-stream": "^3.1.5"
-			},
-			"optionalDependencies": {
-				"bare-fs": "^2.1.1",
-				"bare-path": "^2.1.0"
-			}
-		},
-		"node_modules/tar-stream": {
-			"version": "3.1.7",
-			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
-			"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
-			"dev": true,
-			"dependencies": {
-				"b4a": "^1.6.4",
-				"fast-fifo": "^1.2.0",
-				"streamx": "^2.15.0"
-			}
-		},
-		"node_modules/text-decoder": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz",
-			"integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==",
-			"dev": true,
-			"dependencies": {
-				"b4a": "^1.6.4"
+				"node": ">=6"
 			}
 		},
 		"node_modules/theme-change": {
@@ -4671,53 +3317,11 @@
 			"resolved": "https://registry.npmjs.org/theme-change/-/theme-change-2.5.0.tgz",
 			"integrity": "sha512-B/UdsgdHAGhSKHTAQnxg/etN0RaMDpehuJmZIjLMDVJ6DGIliRHGD6pODi1CXLQAN9GV0GSyB3G6yCuK05PkPQ=="
 		},
-		"node_modules/thenify": {
-			"version": "3.3.1",
-			"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
-			"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"any-promise": "^1.0.0"
-			}
-		},
-		"node_modules/thenify-all": {
-			"version": "1.6.0",
-			"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
-			"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"thenify": ">= 3.1.0 < 4"
-			},
-			"engines": {
-				"node": ">=0.8"
-			}
-		},
-		"node_modules/tiny-glob": {
-			"version": "0.2.9",
-			"resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
-			"integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
-			"dev": true,
-			"dependencies": {
-				"globalyzer": "0.1.0",
-				"globrex": "^0.1.2"
-			}
-		},
-		"node_modules/to-fast-properties": {
-			"version": "2.0.0",
-			"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-			"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-			"dev": true,
-			"engines": {
-				"node": ">=4"
-			}
-		},
 		"node_modules/to-regex-range": {
 			"version": "5.0.1",
 			"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
 			"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-			"dev": true,
+			"devOptional": true,
 			"dependencies": {
 				"is-number": "^7.0.0"
 			},
@@ -4730,447 +3334,17 @@
 			"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
 			"integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
 			"dev": true,
+			"license": "MIT",
 			"engines": {
 				"node": ">=6"
 			}
 		},
-		"node_modules/ts-interface-checker": {
-			"version": "0.1.13",
-			"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
-			"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
-			"dev": true,
-			"license": "Apache-2.0"
-		},
 		"node_modules/tslib": {
 			"version": "2.6.3",
 			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
 			"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
 			"dev": true
 		},
-		"node_modules/tsparticles-basic": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-basic/-/tsparticles-basic-2.12.0.tgz",
-			"integrity": "sha512-pN6FBpL0UsIUXjYbiui5+IVsbIItbQGOlwyGV55g6IYJBgdTNXgFX0HRYZGE9ZZ9psEXqzqwLM37zvWnb5AG9g==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0",
-				"tsparticles-move-base": "^2.12.0",
-				"tsparticles-shape-circle": "^2.12.0",
-				"tsparticles-updater-color": "^2.12.0",
-				"tsparticles-updater-opacity": "^2.12.0",
-				"tsparticles-updater-out-modes": "^2.12.0",
-				"tsparticles-updater-size": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-engine": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-engine/-/tsparticles-engine-2.12.0.tgz",
-			"integrity": "sha512-ZjDIYex6jBJ4iMc9+z0uPe7SgBnmb6l+EJm83MPIsOny9lPpetMsnw/8YJ3xdxn8hV+S3myTpTN1CkOVmFv0QQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"hasInstallScript": true
-		},
-		"node_modules/tsparticles-interaction-external-attract": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-attract/-/tsparticles-interaction-external-attract-2.12.0.tgz",
-			"integrity": "sha512-0roC6D1QkFqMVomcMlTaBrNVjVOpyNzxIUsjMfshk2wUZDAvTNTuWQdUpmsLS4EeSTDN3rzlGNnIuuUQqyBU5w==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-bounce": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-bounce/-/tsparticles-interaction-external-bounce-2.12.0.tgz",
-			"integrity": "sha512-MMcqKLnQMJ30hubORtdq+4QMldQ3+gJu0bBYsQr9BsThsh8/V0xHc1iokZobqHYVP5tV77mbFBD8Z7iSCf0TMQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-bubble": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-bubble/-/tsparticles-interaction-external-bubble-2.12.0.tgz",
-			"integrity": "sha512-5kImCSCZlLNccXOHPIi2Yn+rQWTX3sEa/xCHwXW19uHxtILVJlnAweayc8+Zgmb7mo0DscBtWVFXHPxrVPFDUA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-connect": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-connect/-/tsparticles-interaction-external-connect-2.12.0.tgz",
-			"integrity": "sha512-ymzmFPXz6AaA1LAOL5Ihuy7YSQEW8MzuSJzbd0ES13U8XjiU3HlFqlH6WGT1KvXNw6WYoqrZt0T3fKxBW3/C3A==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-grab": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-grab/-/tsparticles-interaction-external-grab-2.12.0.tgz",
-			"integrity": "sha512-iQF/A947hSfDNqAjr49PRjyQaeRkYgTYpfNmAf+EfME8RsbapeP/BSyF6mTy0UAFC0hK2A2Hwgw72eT78yhXeQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-pause": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-pause/-/tsparticles-interaction-external-pause-2.12.0.tgz",
-			"integrity": "sha512-4SUikNpsFROHnRqniL+uX2E388YTtfRWqqqZxRhY0BrijH4z04Aii3YqaGhJxfrwDKkTQlIoM2GbFT552QZWjw==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-push": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-push/-/tsparticles-interaction-external-push-2.12.0.tgz",
-			"integrity": "sha512-kqs3V0dgDKgMoeqbdg+cKH2F+DTrvfCMrPF1MCCUpBCqBiH+TRQpJNNC86EZYHfNUeeLuIM3ttWwIkk2hllR/Q==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-remove": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-remove/-/tsparticles-interaction-external-remove-2.12.0.tgz",
-			"integrity": "sha512-2eNIrv4m1WB2VfSVj46V2L/J9hNEZnMgFc+A+qmy66C8KzDN1G8aJUAf1inW8JVc0lmo5+WKhzex4X0ZSMghBg==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-repulse": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-repulse/-/tsparticles-interaction-external-repulse-2.12.0.tgz",
-			"integrity": "sha512-rSzdnmgljeBCj5FPp4AtGxOG9TmTsK3AjQW0vlyd1aG2O5kSqFjR+FuT7rfdSk9LEJGH5SjPFE6cwbuy51uEWA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-external-slow": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-external-slow/-/tsparticles-interaction-external-slow-2.12.0.tgz",
-			"integrity": "sha512-2IKdMC3om7DttqyroMtO//xNdF0NvJL/Lx7LDo08VpfTgJJozxU+JAUT8XVT7urxhaDzbxSSIROc79epESROtA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-particles-attract": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-particles-attract/-/tsparticles-interaction-particles-attract-2.12.0.tgz",
-			"integrity": "sha512-Hl8qwuwF9aLq3FOkAW+Zomu7Gb8IKs6Y3tFQUQScDmrrSCaeRt2EGklAiwgxwgntmqzL7hbMWNx06CHHcUQKdQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-particles-collisions": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-particles-collisions/-/tsparticles-interaction-particles-collisions-2.12.0.tgz",
-			"integrity": "sha512-Se9nPWlyPxdsnHgR6ap4YUImAu3W5MeGKJaQMiQpm1vW8lSMOUejI1n1ioIaQth9weKGKnD9rvcNn76sFlzGBA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-interaction-particles-links": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-interaction-particles-links/-/tsparticles-interaction-particles-links-2.12.0.tgz",
-			"integrity": "sha512-e7I8gRs4rmKfcsHONXMkJnymRWpxHmeaJIo4g2NaDRjIgeb2AcJSWKWZvrsoLnm7zvaf/cMQlbN6vQwCixYq3A==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-move-base": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-move-base/-/tsparticles-move-base-2.12.0.tgz",
-			"integrity": "sha512-oSogCDougIImq+iRtIFJD0YFArlorSi8IW3HD2gO3USkH+aNn3ZqZNTqp321uB08K34HpS263DTbhLHa/D6BWw==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-move-parallax": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-move-parallax/-/tsparticles-move-parallax-2.12.0.tgz",
-			"integrity": "sha512-58CYXaX8Ih5rNtYhpnH0YwU4Ks7gVZMREGUJtmjhuYN+OFr9FVdF3oDIJ9N6gY5a5AnAKz8f5j5qpucoPRcYrQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-particles.js": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-particles.js/-/tsparticles-particles.js-2.12.0.tgz",
-			"integrity": "sha512-LyOuvYdhbUScmA4iDgV3LxA0HzY1DnOwQUy3NrPYO393S2YwdDjdwMod6Btq7EBUjg9FVIh+sZRizgV5elV2dg==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-plugin-easing-quad": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-plugin-easing-quad/-/tsparticles-plugin-easing-quad-2.12.0.tgz",
-			"integrity": "sha512-2mNqez5pydDewMIUWaUhY5cNQ80IUOYiujwG6qx9spTq1D6EEPLbRNAEL8/ecPdn2j1Um3iWSx6lo340rPkv4Q==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-circle": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-circle/-/tsparticles-shape-circle-2.12.0.tgz",
-			"integrity": "sha512-L6OngbAlbadG7b783x16ns3+SZ7i0SSB66M8xGa5/k+YcY7zm8zG0uPt1Hd+xQDR2aNA3RngVM10O23/Lwk65Q==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-image": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-image/-/tsparticles-shape-image-2.12.0.tgz",
-			"integrity": "sha512-iCkSdUVa40DxhkkYjYuYHr9MJGVw+QnQuN5UC+e/yBgJQY+1tQL8UH0+YU/h0GHTzh5Sm+y+g51gOFxHt1dj7Q==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-line": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-line/-/tsparticles-shape-line-2.12.0.tgz",
-			"integrity": "sha512-RcpKmmpKlk+R8mM5wA2v64Lv1jvXtU4SrBDv3vbdRodKbKaWGGzymzav1Q0hYyDyUZgplEK/a5ZwrfrOwmgYGA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-polygon": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-polygon/-/tsparticles-shape-polygon-2.12.0.tgz",
-			"integrity": "sha512-5YEy7HVMt1Obxd/jnlsjajchAlYMr9eRZWN+lSjcFSH6Ibra7h59YuJVnwxOxAobpijGxsNiBX0PuGQnB47pmA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-square": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-square/-/tsparticles-shape-square-2.12.0.tgz",
-			"integrity": "sha512-33vfajHqmlODKaUzyPI/aVhnAOT09V7nfEPNl8DD0cfiNikEuPkbFqgJezJuE55ebtVo7BZPDA9o7GYbWxQNuw==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-star": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-star/-/tsparticles-shape-star-2.12.0.tgz",
-			"integrity": "sha512-4sfG/BBqm2qBnPLASl2L5aBfCx86cmZLXeh49Un+TIR1F5Qh4XUFsahgVOG0vkZQa+rOsZPEH04xY5feWmj90g==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-shape-text": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-shape-text/-/tsparticles-shape-text-2.12.0.tgz",
-			"integrity": "sha512-v2/FCA+hyTbDqp2ymFOe97h/NFb2eezECMrdirHWew3E3qlvj9S/xBibjbpZva2gnXcasBwxn0+LxKbgGdP0rA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-slim": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-slim/-/tsparticles-slim-2.12.0.tgz",
-			"integrity": "sha512-27w9aGAAAPKHvP4LHzWFpyqu7wKyulayyaZ/L6Tuuejy4KP4BBEB4rY5GG91yvAPsLtr6rwWAn3yS+uxnBDpkA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"funding": [
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/matteobruni"
-				},
-				{
-					"type": "github",
-					"url": "https://github.com/sponsors/tsparticles"
-				},
-				{
-					"type": "buymeacoffee",
-					"url": "https://www.buymeacoffee.com/matteobruni"
-				}
-			],
-			"dependencies": {
-				"tsparticles-basic": "^2.12.0",
-				"tsparticles-engine": "^2.12.0",
-				"tsparticles-interaction-external-attract": "^2.12.0",
-				"tsparticles-interaction-external-bounce": "^2.12.0",
-				"tsparticles-interaction-external-bubble": "^2.12.0",
-				"tsparticles-interaction-external-connect": "^2.12.0",
-				"tsparticles-interaction-external-grab": "^2.12.0",
-				"tsparticles-interaction-external-pause": "^2.12.0",
-				"tsparticles-interaction-external-push": "^2.12.0",
-				"tsparticles-interaction-external-remove": "^2.12.0",
-				"tsparticles-interaction-external-repulse": "^2.12.0",
-				"tsparticles-interaction-external-slow": "^2.12.0",
-				"tsparticles-interaction-particles-attract": "^2.12.0",
-				"tsparticles-interaction-particles-collisions": "^2.12.0",
-				"tsparticles-interaction-particles-links": "^2.12.0",
-				"tsparticles-move-base": "^2.12.0",
-				"tsparticles-move-parallax": "^2.12.0",
-				"tsparticles-particles.js": "^2.12.0",
-				"tsparticles-plugin-easing-quad": "^2.12.0",
-				"tsparticles-shape-circle": "^2.12.0",
-				"tsparticles-shape-image": "^2.12.0",
-				"tsparticles-shape-line": "^2.12.0",
-				"tsparticles-shape-polygon": "^2.12.0",
-				"tsparticles-shape-square": "^2.12.0",
-				"tsparticles-shape-star": "^2.12.0",
-				"tsparticles-shape-text": "^2.12.0",
-				"tsparticles-updater-color": "^2.12.0",
-				"tsparticles-updater-life": "^2.12.0",
-				"tsparticles-updater-opacity": "^2.12.0",
-				"tsparticles-updater-out-modes": "^2.12.0",
-				"tsparticles-updater-rotate": "^2.12.0",
-				"tsparticles-updater-size": "^2.12.0",
-				"tsparticles-updater-stroke-color": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-color": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-color/-/tsparticles-updater-color-2.12.0.tgz",
-			"integrity": "sha512-KcG3a8zd0f8CTiOrylXGChBrjhKcchvDJjx9sp5qpwQK61JlNojNCU35xoaSk2eEHeOvFjh0o3CXWUmYPUcBTQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-life": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-life/-/tsparticles-updater-life-2.12.0.tgz",
-			"integrity": "sha512-J7RWGHAZkowBHpcLpmjKsxwnZZJ94oGEL2w+wvW1/+ZLmAiFFF6UgU0rHMC5CbHJT4IPx9cbkYMEHsBkcRJ0Bw==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-opacity": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-opacity/-/tsparticles-updater-opacity-2.12.0.tgz",
-			"integrity": "sha512-YUjMsgHdaYi4HN89LLogboYcCi1o9VGo21upoqxq19yRy0hRCtx2NhH22iHF/i5WrX6jqshN0iuiiNefC53CsA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-out-modes": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-out-modes/-/tsparticles-updater-out-modes-2.12.0.tgz",
-			"integrity": "sha512-owBp4Gk0JNlSrmp12XVEeBroDhLZU+Uq3szbWlHGSfcR88W4c/0bt0FiH5bHUqORIkw+m8O56hCjbqwj69kpOQ==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-rotate": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-rotate/-/tsparticles-updater-rotate-2.12.0.tgz",
-			"integrity": "sha512-waOFlGFmEZOzsQg4C4VSejNVXGf4dMf3fsnQrEROASGf1FCd8B6WcZau7JtXSTFw0OUGuk8UGz36ETWN72DkCw==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-size": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-size/-/tsparticles-updater-size-2.12.0.tgz",
-			"integrity": "sha512-B0yRdEDd/qZXCGDL/ussHfx5YJ9UhTqNvmS5X2rR2hiZhBAE2fmsXLeWkdtF2QusjPeEqFDxrkGiLOsh6poqRA==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tsparticles-updater-stroke-color": {
-			"version": "2.12.0",
-			"resolved": "https://registry.npmjs.org/tsparticles-updater-stroke-color/-/tsparticles-updater-stroke-color-2.12.0.tgz",
-			"integrity": "sha512-MPou1ZDxsuVq6SN1fbX+aI5yrs6FyP2iPCqqttpNbWyL+R6fik1rL0ab/x02B57liDXqGKYomIbBQVP3zUTW1A==",
-			"deprecated": "starting from tsparticles v3 the packages are now moved to @tsparticles/package-name instead of tsparticles-package-name",
-			"dependencies": {
-				"tsparticles-engine": "^2.12.0"
-			}
-		},
-		"node_modules/tunnel-agent": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-			"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
-			"dev": true,
-			"dependencies": {
-				"safe-buffer": "^5.0.1"
-			},
-			"engines": {
-				"node": "*"
-			}
-		},
 		"node_modules/typescript": {
 			"version": "5.4.5",
 			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
@@ -5222,10 +3396,9 @@
 			"dev": true
 		},
 		"node_modules/vite": {
-			"version": "5.4.8",
-			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
-			"integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==",
-			"dev": true,
+			"version": "5.4.17",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.17.tgz",
+			"integrity": "sha512-5+VqZryDj4wgCs55o9Lp+p8GE78TLVg0lasCH5xFZ4jacZjtqZa6JUw9/p0WeAojaOfncSM6v77InkFPGnvPvg==",
 			"license": "MIT",
 			"dependencies": {
 				"esbuild": "^0.21.3",
@@ -5281,19 +3454,6 @@
 				}
 			}
 		},
-		"node_modules/vite-imagetools": {
-			"version": "5.0.8",
-			"resolved": "https://registry.npmjs.org/vite-imagetools/-/vite-imagetools-5.0.8.tgz",
-			"integrity": "sha512-oFNfc58iLz1lHFsIKQy+wp0RNcZjiaDeHYTexYowpf4RYx9tZ97eWEcw8lQ1jDT8AnOso6XZi5iGjLNAeTR9Tw==",
-			"dev": true,
-			"dependencies": {
-				"@rollup/pluginutils": "^5.0.2",
-				"imagetools-core": "^4.0.5"
-			},
-			"engines": {
-				"node": ">=12.0.0"
-			}
-		},
 		"node_modules/vite-plugin-svgr": {
 			"version": "4.2.0",
 			"resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-4.2.0.tgz",
@@ -5322,133 +3482,6 @@
 				}
 			}
 		},
-		"node_modules/which": {
-			"version": "2.0.2",
-			"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
-			"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-			"dev": true,
-			"license": "ISC",
-			"dependencies": {
-				"isexe": "^2.0.0"
-			},
-			"bin": {
-				"node-which": "bin/node-which"
-			},
-			"engines": {
-				"node": ">= 8"
-			}
-		},
-		"node_modules/wrap-ansi": {
-			"version": "8.1.0",
-			"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
-			"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-styles": "^6.1.0",
-				"string-width": "^5.0.1",
-				"strip-ansi": "^7.0.1"
-			},
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-			}
-		},
-		"node_modules/wrap-ansi-cjs": {
-			"name": "wrap-ansi",
-			"version": "7.0.0",
-			"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-			"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-styles": "^4.0.0",
-				"string-width": "^4.1.0",
-				"strip-ansi": "^6.0.0"
-			},
-			"engines": {
-				"node": ">=10"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
-			}
-		},
-		"node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
-			"version": "5.0.1",
-			"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-			"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
-			"version": "4.3.0",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-			"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"color-convert": "^2.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
-			}
-		},
-		"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
-			"version": "8.0.0",
-			"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-			"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-			"dev": true,
-			"license": "MIT"
-		},
-		"node_modules/wrap-ansi-cjs/node_modules/string-width": {
-			"version": "4.2.3",
-			"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-			"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"emoji-regex": "^8.0.0",
-				"is-fullwidth-code-point": "^3.0.0",
-				"strip-ansi": "^6.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
-			"version": "6.0.1",
-			"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-			"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-			"dev": true,
-			"license": "MIT",
-			"dependencies": {
-				"ansi-regex": "^5.0.1"
-			},
-			"engines": {
-				"node": ">=8"
-			}
-		},
-		"node_modules/wrap-ansi/node_modules/ansi-styles": {
-			"version": "6.2.1",
-			"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
-			"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
-			"dev": true,
-			"license": "MIT",
-			"engines": {
-				"node": ">=12"
-			},
-			"funding": {
-				"url": "https://github.com/chalk/ansi-styles?sponsor=1"
-			}
-		},
 		"node_modules/wrappy": {
 			"version": "1.0.2",
 			"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -5467,12 +3500,20 @@
 			"integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==",
 			"dev": true,
 			"license": "ISC",
+			"optional": true,
+			"peer": true,
 			"bin": {
 				"yaml": "bin.mjs"
 			},
 			"engines": {
 				"node": ">= 14"
 			}
+		},
+		"node_modules/zimmerframe": {
+			"version": "1.1.2",
+			"resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz",
+			"integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==",
+			"license": "MIT"
 		}
 	}
 }
diff --git a/package.json b/package.json
index 0ea8440..8c78502 100644
--- a/package.json
+++ b/package.json
@@ -6,36 +6,33 @@
 		"dev": "vite dev",
 		"build": "vite build",
 		"preview": "vite preview",
-		"check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json",
-		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch"
+		"check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --compiler-warnings \"css-unused-selector:ignore,unused-export-let:ignore\" --threshold error",
+		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch --threshold error"
 	},
 	"devDependencies": {
-		"@poppanator/sveltekit-svg": "^4.2.1",
 		"@sveltejs/adapter-auto": "^3.0.0",
 		"@sveltejs/adapter-static": "^3.0.1",
-		"@sveltejs/kit": "^2.0.0",
+		"@sveltejs/kit": "^2.20.4",
 		"@sveltejs/vite-plugin-svelte": "^3.0.0",
 		"@tailwindcss/typography": "^0.5.15",
-		"@zerodevx/svelte-img": "^2.1.0",
 		"autoprefixer": "^10.4.20",
-		"daisyui": "^4.12.12",
-		"postcss": "^8.4.47",
+		"daisyui": "^5.0.12",
 		"sass": "^1.77.4",
-		"svelte": "^4.2.7",
-		"svelte-check": "^3.6.0",
-		"svelte-confetti": "^1.0.0",
+		"svelte": "^5.25.7",
+		"svelte-check": "^3.8.6",
 		"svelte-highlight": "^7.6.0",
-		"svelte-parallax": "^0.6.0",
-		"tailwindcss": "^3.4.13",
+		"tailwindcss": "^4.1.3",
 		"typescript": "^5.0.0",
 		"vite": "^5.0.3",
 		"vite-plugin-svgr": "^4.2.0"
 	},
 	"type": "module",
 	"dependencies": {
+		"@lucide/svelte": "^0.487.0",
+		"@tailwindcss/vite": "^4.1.3",
+		"lucide-svelte": "^0.475.0",
+		"svelte-katex": "^0.1.2",
 		"svelte-media-queries": "^1.6.2",
-		"svelte-particles": "^2.12.0",
-		"theme-change": "^2.5.0",
-		"tsparticles-slim": "^2.12.0"
+		"theme-change": "^2.5.0"
 	}
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..d4195cc
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,2502 @@
+lockfileVersion: '9.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+importers:
+
+  .:
+    dependencies:
+      '@lucide/svelte':
+        specifier: ^0.487.0
+        version: 0.487.0(svelte@5.25.7)
+      '@tailwindcss/vite':
+        specifier: ^4.1.3
+        version: 4.1.3(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      lucide-svelte:
+        specifier: ^0.475.0
+        version: 0.475.0(svelte@5.25.7)
+      svelte-katex:
+        specifier: ^0.1.2
+        version: 0.1.2
+      svelte-media-queries:
+        specifier: ^1.6.2
+        version: 1.6.2
+      theme-change:
+        specifier: ^2.5.0
+        version: 2.5.0
+    devDependencies:
+      '@sveltejs/adapter-auto':
+        specifier: ^3.0.0
+        version: 3.3.1(@sveltejs/kit@2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))
+      '@sveltejs/adapter-static':
+        specifier: ^3.0.1
+        version: 3.0.8(@sveltejs/kit@2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))
+      '@sveltejs/kit':
+        specifier: ^2.20.4
+        version: 2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      '@sveltejs/vite-plugin-svelte':
+        specifier: ^3.0.0
+        version: 3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      '@tailwindcss/typography':
+        specifier: ^0.5.15
+        version: 0.5.16(tailwindcss@4.1.3)
+      autoprefixer:
+        specifier: ^10.4.20
+        version: 10.4.21(postcss@8.5.3)
+      daisyui:
+        specifier: ^5.0.12
+        version: 5.0.12
+      sass:
+        specifier: ^1.77.4
+        version: 1.86.3
+      svelte:
+        specifier: ^5.25.7
+        version: 5.25.7
+      svelte-check:
+        specifier: ^3.8.6
+        version: 3.8.6(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.3)(svelte@5.25.7)
+      svelte-highlight:
+        specifier: ^7.6.0
+        version: 7.8.3
+      tailwindcss:
+        specifier: ^4.1.3
+        version: 4.1.3
+      typescript:
+        specifier: ^5.0.0
+        version: 5.8.3
+      vite:
+        specifier: ^5.0.3
+        version: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+      vite-plugin-svgr:
+        specifier: ^4.2.0
+        version: 4.3.0(rollup@4.39.0)(typescript@5.8.3)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+
+packages:
+
+  '@ampproject/remapping@2.3.0':
+    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+    engines: {node: '>=6.0.0'}
+
+  '@babel/code-frame@7.26.2':
+    resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/compat-data@7.26.8':
+    resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/core@7.26.10':
+    resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/generator@7.27.0':
+    resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-compilation-targets@7.27.0':
+    resolution: {integrity: sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-module-imports@7.25.9':
+    resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-module-transforms@7.26.0':
+    resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+
+  '@babel/helper-string-parser@7.25.9':
+    resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-validator-identifier@7.25.9':
+    resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-validator-option@7.25.9':
+    resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helpers@7.27.0':
+    resolution: {integrity: sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/parser@7.27.0':
+    resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
+
+  '@babel/template@7.27.0':
+    resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/traverse@7.27.0':
+    resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/types@7.27.0':
+    resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==}
+    engines: {node: '>=6.9.0'}
+
+  '@esbuild/aix-ppc64@0.21.5':
+    resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [aix]
+
+  '@esbuild/android-arm64@0.21.5':
+    resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
+
+  '@esbuild/android-arm@0.21.5':
+    resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
+
+  '@esbuild/android-x64@0.21.5':
+    resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
+
+  '@esbuild/darwin-arm64@0.21.5':
+    resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
+
+  '@esbuild/darwin-x64@0.21.5':
+    resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
+
+  '@esbuild/freebsd-arm64@0.21.5':
+    resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
+
+  '@esbuild/freebsd-x64@0.21.5':
+    resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
+
+  '@esbuild/linux-arm64@0.21.5':
+    resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
+
+  '@esbuild/linux-arm@0.21.5':
+    resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
+
+  '@esbuild/linux-ia32@0.21.5':
+    resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
+
+  '@esbuild/linux-loong64@0.21.5':
+    resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
+
+  '@esbuild/linux-mips64el@0.21.5':
+    resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
+
+  '@esbuild/linux-ppc64@0.21.5':
+    resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
+
+  '@esbuild/linux-riscv64@0.21.5':
+    resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@esbuild/linux-s390x@0.21.5':
+    resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+
+  '@esbuild/linux-x64@0.21.5':
+    resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+
+  '@esbuild/netbsd-x64@0.21.5':
+    resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+
+  '@esbuild/openbsd-x64@0.21.5':
+    resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+
+  '@esbuild/sunos-x64@0.21.5':
+    resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+
+  '@esbuild/win32-arm64@0.21.5':
+    resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+
+  '@esbuild/win32-ia32@0.21.5':
+    resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+
+  '@esbuild/win32-x64@0.21.5':
+    resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+
+  '@jridgewell/gen-mapping@0.3.8':
+    resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+    engines: {node: '>=6.0.0'}
+
+  '@jridgewell/resolve-uri@3.1.2':
+    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+    engines: {node: '>=6.0.0'}
+
+  '@jridgewell/set-array@1.2.1':
+    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+    engines: {node: '>=6.0.0'}
+
+  '@jridgewell/sourcemap-codec@1.5.0':
+    resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+  '@jridgewell/trace-mapping@0.3.25':
+    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+  '@lucide/svelte@0.487.0':
+    resolution: {integrity: sha512-27b/wUzWrqDJu97+1iSV2X8L2JGRWH/mAWAjHgazWxhGxVu/kS0p3SbNu6w3skNmQNEku33EKU1v44IVwULzbw==}
+    peerDependencies:
+      svelte: ^5
+
+  '@parcel/watcher-android-arm64@2.5.1':
+    resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm64]
+    os: [android]
+
+  '@parcel/watcher-darwin-arm64@2.5.1':
+    resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm64]
+    os: [darwin]
+
+  '@parcel/watcher-darwin-x64@2.5.1':
+    resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [x64]
+    os: [darwin]
+
+  '@parcel/watcher-freebsd-x64@2.5.1':
+    resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [x64]
+    os: [freebsd]
+
+  '@parcel/watcher-linux-arm-glibc@2.5.1':
+    resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm]
+    os: [linux]
+
+  '@parcel/watcher-linux-arm-musl@2.5.1':
+    resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm]
+    os: [linux]
+
+  '@parcel/watcher-linux-arm64-glibc@2.5.1':
+    resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm64]
+    os: [linux]
+
+  '@parcel/watcher-linux-arm64-musl@2.5.1':
+    resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm64]
+    os: [linux]
+
+  '@parcel/watcher-linux-x64-glibc@2.5.1':
+    resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [x64]
+    os: [linux]
+
+  '@parcel/watcher-linux-x64-musl@2.5.1':
+    resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [x64]
+    os: [linux]
+
+  '@parcel/watcher-win32-arm64@2.5.1':
+    resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [arm64]
+    os: [win32]
+
+  '@parcel/watcher-win32-ia32@2.5.1':
+    resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [ia32]
+    os: [win32]
+
+  '@parcel/watcher-win32-x64@2.5.1':
+    resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+    engines: {node: '>= 10.0.0'}
+    cpu: [x64]
+    os: [win32]
+
+  '@parcel/watcher@2.5.1':
+    resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+    engines: {node: '>= 10.0.0'}
+
+  '@polka/url@1.0.0-next.28':
+    resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+
+  '@rollup/pluginutils@5.1.4':
+    resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
+
+  '@rollup/rollup-android-arm-eabi@4.39.0':
+    resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==}
+    cpu: [arm]
+    os: [android]
+
+  '@rollup/rollup-android-arm64@4.39.0':
+    resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==}
+    cpu: [arm64]
+    os: [android]
+
+  '@rollup/rollup-darwin-arm64@4.39.0':
+    resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==}
+    cpu: [arm64]
+    os: [darwin]
+
+  '@rollup/rollup-darwin-x64@4.39.0':
+    resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==}
+    cpu: [x64]
+    os: [darwin]
+
+  '@rollup/rollup-freebsd-arm64@4.39.0':
+    resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==}
+    cpu: [arm64]
+    os: [freebsd]
+
+  '@rollup/rollup-freebsd-x64@4.39.0':
+    resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==}
+    cpu: [x64]
+    os: [freebsd]
+
+  '@rollup/rollup-linux-arm-gnueabihf@4.39.0':
+    resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==}
+    cpu: [arm]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm-musleabihf@4.39.0':
+    resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==}
+    cpu: [arm]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm64-gnu@4.39.0':
+    resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@rollup/rollup-linux-arm64-musl@4.39.0':
+    resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@rollup/rollup-linux-loongarch64-gnu@4.39.0':
+    resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==}
+    cpu: [loong64]
+    os: [linux]
+
+  '@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
+    resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==}
+    cpu: [ppc64]
+    os: [linux]
+
+  '@rollup/rollup-linux-riscv64-gnu@4.39.0':
+    resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@rollup/rollup-linux-riscv64-musl@4.39.0':
+    resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@rollup/rollup-linux-s390x-gnu@4.39.0':
+    resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==}
+    cpu: [s390x]
+    os: [linux]
+
+  '@rollup/rollup-linux-x64-gnu@4.39.0':
+    resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==}
+    cpu: [x64]
+    os: [linux]
+
+  '@rollup/rollup-linux-x64-musl@4.39.0':
+    resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==}
+    cpu: [x64]
+    os: [linux]
+
+  '@rollup/rollup-win32-arm64-msvc@4.39.0':
+    resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==}
+    cpu: [arm64]
+    os: [win32]
+
+  '@rollup/rollup-win32-ia32-msvc@4.39.0':
+    resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==}
+    cpu: [ia32]
+    os: [win32]
+
+  '@rollup/rollup-win32-x64-msvc@4.39.0':
+    resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==}
+    cpu: [x64]
+    os: [win32]
+
+  '@sveltejs/acorn-typescript@1.0.5':
+    resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==}
+    peerDependencies:
+      acorn: ^8.9.0
+
+  '@sveltejs/adapter-auto@3.3.1':
+    resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==}
+    peerDependencies:
+      '@sveltejs/kit': ^2.0.0
+
+  '@sveltejs/adapter-static@3.0.8':
+    resolution: {integrity: sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg==}
+    peerDependencies:
+      '@sveltejs/kit': ^2.0.0
+
+  '@sveltejs/kit@2.20.4':
+    resolution: {integrity: sha512-B3Y1mb1Qjt57zXLVch5tfqsK/ebHe6uYTcFSnGFNwRpId3+fplLgQK6Z2zhDVBezSsPuhDq6Pry+9PA88ocN6Q==}
+    engines: {node: '>=18.13'}
+    hasBin: true
+    peerDependencies:
+      '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0
+      svelte: ^4.0.0 || ^5.0.0-next.0
+      vite: ^5.0.3 || ^6.0.0
+
+  '@sveltejs/vite-plugin-svelte-inspector@2.1.0':
+    resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==}
+    engines: {node: ^18.0.0 || >=20}
+    peerDependencies:
+      '@sveltejs/vite-plugin-svelte': ^3.0.0
+      svelte: ^4.0.0 || ^5.0.0-next.0
+      vite: ^5.0.0
+
+  '@sveltejs/vite-plugin-svelte@3.1.2':
+    resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==}
+    engines: {node: ^18.0.0 || >=20}
+    peerDependencies:
+      svelte: ^4.0.0 || ^5.0.0-next.0
+      vite: ^5.0.0
+
+  '@svgr/babel-plugin-add-jsx-attribute@8.0.0':
+    resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0':
+    resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0':
+    resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0':
+    resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-svg-dynamic-title@8.0.0':
+    resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-svg-em-dimensions@8.0.0':
+    resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-transform-react-native-svg@8.1.0':
+    resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-plugin-transform-svg-component@8.0.0':
+    resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
+    engines: {node: '>=12'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/babel-preset@8.1.0':
+    resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@babel/core': ^7.0.0-0
+
+  '@svgr/core@8.1.0':
+    resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
+    engines: {node: '>=14'}
+
+  '@svgr/hast-util-to-babel-ast@8.0.0':
+    resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
+    engines: {node: '>=14'}
+
+  '@svgr/plugin-jsx@8.1.0':
+    resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      '@svgr/core': '*'
+
+  '@tailwindcss/node@4.1.3':
+    resolution: {integrity: sha512-H/6r6IPFJkCfBJZ2dKZiPJ7Ueb2wbL592+9bQEl2r73qbX6yGnmQVIfiUvDRB2YI0a3PWDrzUwkvQx1XW1bNkA==}
+
+  '@tailwindcss/oxide-android-arm64@4.1.3':
+    resolution: {integrity: sha512-cxklKjtNLwFl3mDYw4XpEfBY+G8ssSg9ADL4Wm6//5woi3XGqlxFsnV5Zb6v07dxw1NvEX2uoqsxO/zWQsgR+g==}
+    engines: {node: '>= 10'}
+    cpu: [arm64]
+    os: [android]
+
+  '@tailwindcss/oxide-darwin-arm64@4.1.3':
+    resolution: {integrity: sha512-mqkf2tLR5VCrjBvuRDwzKNShRu99gCAVMkVsaEOFvv6cCjlEKXRecPu9DEnxp6STk5z+Vlbh1M5zY3nQCXMXhw==}
+    engines: {node: '>= 10'}
+    cpu: [arm64]
+    os: [darwin]
+
+  '@tailwindcss/oxide-darwin-x64@4.1.3':
+    resolution: {integrity: sha512-7sGraGaWzXvCLyxrc7d+CCpUN3fYnkkcso3rCzwUmo/LteAl2ZGCDlGvDD8Y/1D3ngxT8KgDj1DSwOnNewKhmg==}
+    engines: {node: '>= 10'}
+    cpu: [x64]
+    os: [darwin]
+
+  '@tailwindcss/oxide-freebsd-x64@4.1.3':
+    resolution: {integrity: sha512-E2+PbcbzIReaAYZe997wb9rId246yDkCwAakllAWSGqe6VTg9hHle67hfH6ExjpV2LSK/siRzBUs5wVff3RW9w==}
+    engines: {node: '>= 10'}
+    cpu: [x64]
+    os: [freebsd]
+
+  '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3':
+    resolution: {integrity: sha512-GvfbJ8wjSSjbLFFE3UYz4Eh8i4L6GiEYqCtA8j2Zd2oXriPuom/Ah/64pg/szWycQpzRnbDiJozoxFU2oJZyfg==}
+    engines: {node: '>= 10'}
+    cpu: [arm]
+    os: [linux]
+
+  '@tailwindcss/oxide-linux-arm64-gnu@4.1.3':
+    resolution: {integrity: sha512-35UkuCWQTeG9BHcBQXndDOrpsnt3Pj9NVIB4CgNiKmpG8GnCNXeMczkUpOoqcOhO6Cc/mM2W7kaQ/MTEENDDXg==}
+    engines: {node: '>= 10'}
+    cpu: [arm64]
+    os: [linux]
+
+  '@tailwindcss/oxide-linux-arm64-musl@4.1.3':
+    resolution: {integrity: sha512-dm18aQiML5QCj9DQo7wMbt1Z2tl3Giht54uVR87a84X8qRtuXxUqnKQkRDK5B4bCOmcZ580lF9YcoMkbDYTXHQ==}
+    engines: {node: '>= 10'}
+    cpu: [arm64]
+    os: [linux]
+
+  '@tailwindcss/oxide-linux-x64-gnu@4.1.3':
+    resolution: {integrity: sha512-LMdTmGe/NPtGOaOfV2HuO7w07jI3cflPrVq5CXl+2O93DCewADK0uW1ORNAcfu2YxDUS035eY2W38TxrsqngxA==}
+    engines: {node: '>= 10'}
+    cpu: [x64]
+    os: [linux]
+
+  '@tailwindcss/oxide-linux-x64-musl@4.1.3':
+    resolution: {integrity: sha512-aalNWwIi54bbFEizwl1/XpmdDrOaCjRFQRgtbv9slWjmNPuJJTIKPHf5/XXDARc9CneW9FkSTqTbyvNecYAEGw==}
+    engines: {node: '>= 10'}
+    cpu: [x64]
+    os: [linux]
+
+  '@tailwindcss/oxide-win32-arm64-msvc@4.1.3':
+    resolution: {integrity: sha512-PEj7XR4OGTGoboTIAdXicKuWl4EQIjKHKuR+bFy9oYN7CFZo0eu74+70O4XuERX4yjqVZGAkCdglBODlgqcCXg==}
+    engines: {node: '>= 10'}
+    cpu: [arm64]
+    os: [win32]
+
+  '@tailwindcss/oxide-win32-x64-msvc@4.1.3':
+    resolution: {integrity: sha512-T8gfxECWDBENotpw3HR9SmNiHC9AOJdxs+woasRZ8Q/J4VHN0OMs7F+4yVNZ9EVN26Wv6mZbK0jv7eHYuLJLwA==}
+    engines: {node: '>= 10'}
+    cpu: [x64]
+    os: [win32]
+
+  '@tailwindcss/oxide@4.1.3':
+    resolution: {integrity: sha512-t16lpHCU7LBxDe/8dCj9ntyNpXaSTAgxWm1u2XQP5NiIu4KGSyrDJJRlK9hJ4U9yJxx0UKCVI67MJWFNll5mOQ==}
+    engines: {node: '>= 10'}
+
+  '@tailwindcss/typography@0.5.16':
+    resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
+    peerDependencies:
+      tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
+
+  '@tailwindcss/vite@4.1.3':
+    resolution: {integrity: sha512-lUI/QaDxLtlV52Lho6pu07CG9pSnRYLOPmKGIQjyHdTBagemc6HmgZxyjGAQ/5HMPrNeWBfTVIpQl0/jLXvWHQ==}
+    peerDependencies:
+      vite: ^5.2.0 || ^6
+
+  '@types/cookie@0.6.0':
+    resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+
+  '@types/estree@1.0.7':
+    resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
+
+  '@types/pug@2.0.10':
+    resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
+
+  acorn@8.14.1:
+    resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
+    engines: {node: '>=0.4.0'}
+    hasBin: true
+
+  anymatch@3.1.3:
+    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+    engines: {node: '>= 8'}
+
+  argparse@2.0.1:
+    resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+  aria-query@5.3.2:
+    resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
+    engines: {node: '>= 0.4'}
+
+  autoprefixer@10.4.21:
+    resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
+    engines: {node: ^10 || ^12 || >=14}
+    hasBin: true
+    peerDependencies:
+      postcss: ^8.1.0
+
+  axobject-query@4.1.0:
+    resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+    engines: {node: '>= 0.4'}
+
+  balanced-match@1.0.2:
+    resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+  binary-extensions@2.3.0:
+    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+    engines: {node: '>=8'}
+
+  brace-expansion@1.1.11:
+    resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+  braces@3.0.3:
+    resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+    engines: {node: '>=8'}
+
+  browserslist@4.24.4:
+    resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
+    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+    hasBin: true
+
+  buffer-crc32@1.0.0:
+    resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
+    engines: {node: '>=8.0.0'}
+
+  callsites@3.1.0:
+    resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+    engines: {node: '>=6'}
+
+  camelcase@6.3.0:
+    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+    engines: {node: '>=10'}
+
+  caniuse-lite@1.0.30001712:
+    resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==}
+
+  chokidar@3.6.0:
+    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+    engines: {node: '>= 8.10.0'}
+
+  chokidar@4.0.3:
+    resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+    engines: {node: '>= 14.16.0'}
+
+  clsx@2.1.1:
+    resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+    engines: {node: '>=6'}
+
+  commander@8.3.0:
+    resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+    engines: {node: '>= 12'}
+
+  concat-map@0.0.1:
+    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+  convert-source-map@2.0.0:
+    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+  cookie@0.6.0:
+    resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
+    engines: {node: '>= 0.6'}
+
+  cosmiconfig@8.3.6:
+    resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+    engines: {node: '>=14'}
+    peerDependencies:
+      typescript: '>=4.9.5'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
+  cssesc@3.0.0:
+    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+    engines: {node: '>=4'}
+    hasBin: true
+
+  daisyui@5.0.12:
+    resolution: {integrity: sha512-01DU0eYBcHgPtuf5fxcrkGkIN6/Uyaqmkle5Yo3ZyW9YVAu036ALZbjv2KH5euvUbeQ4r9q3gAarGcf7Tywhng==}
+
+  debug@4.4.0:
+    resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+    engines: {node: '>=6.0'}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
+
+  deepmerge@4.3.1:
+    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+    engines: {node: '>=0.10.0'}
+
+  detect-indent@6.1.0:
+    resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+    engines: {node: '>=8'}
+
+  detect-libc@1.0.3:
+    resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+    engines: {node: '>=0.10'}
+    hasBin: true
+
+  detect-libc@2.0.3:
+    resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
+    engines: {node: '>=8'}
+
+  devalue@5.1.1:
+    resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==}
+
+  dot-case@3.0.4:
+    resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+
+  electron-to-chromium@1.5.132:
+    resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==}
+
+  enhanced-resolve@5.18.1:
+    resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
+    engines: {node: '>=10.13.0'}
+
+  entities@4.5.0:
+    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+    engines: {node: '>=0.12'}
+
+  error-ex@1.3.2:
+    resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+
+  es6-promise@3.3.1:
+    resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
+
+  esbuild@0.21.5:
+    resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+    engines: {node: '>=12'}
+    hasBin: true
+
+  escalade@3.2.0:
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+    engines: {node: '>=6'}
+
+  esm-env@1.2.2:
+    resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
+
+  esrap@1.4.6:
+    resolution: {integrity: sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==}
+
+  estree-walker@2.0.2:
+    resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+  fill-range@7.1.1:
+    resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+    engines: {node: '>=8'}
+
+  fraction.js@4.3.7:
+    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
+  fs.realpath@1.0.0:
+    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+  fsevents@2.3.3:
+    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+    os: [darwin]
+
+  gensync@1.0.0-beta.2:
+    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+    engines: {node: '>=6.9.0'}
+
+  glob-parent@5.1.2:
+    resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+    engines: {node: '>= 6'}
+
+  glob@7.2.3:
+    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+    deprecated: Glob versions prior to v9 are no longer supported
+
+  globals@11.12.0:
+    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+    engines: {node: '>=4'}
+
+  graceful-fs@4.2.11:
+    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+  highlight.js@11.11.1:
+    resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
+    engines: {node: '>=12.0.0'}
+
+  immutable@5.1.1:
+    resolution: {integrity: sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==}
+
+  import-fresh@3.3.1:
+    resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+    engines: {node: '>=6'}
+
+  import-meta-resolve@4.1.0:
+    resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+
+  inflight@1.0.6:
+    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+    deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+  inherits@2.0.4:
+    resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+  is-arrayish@0.2.1:
+    resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+  is-binary-path@2.1.0:
+    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+    engines: {node: '>=8'}
+
+  is-extglob@2.1.1:
+    resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+    engines: {node: '>=0.10.0'}
+
+  is-glob@4.0.3:
+    resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+    engines: {node: '>=0.10.0'}
+
+  is-number@7.0.0:
+    resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+    engines: {node: '>=0.12.0'}
+
+  is-reference@3.0.3:
+    resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
+
+  jiti@2.4.2:
+    resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+    hasBin: true
+
+  js-tokens@4.0.0:
+    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+  js-yaml@4.1.0:
+    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+    hasBin: true
+
+  jsesc@3.1.0:
+    resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+    engines: {node: '>=6'}
+    hasBin: true
+
+  json-parse-even-better-errors@2.3.1:
+    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+  json5@2.2.3:
+    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+    engines: {node: '>=6'}
+    hasBin: true
+
+  katex@0.15.6:
+    resolution: {integrity: sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==}
+    hasBin: true
+
+  kleur@4.1.5:
+    resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+    engines: {node: '>=6'}
+
+  lightningcss-darwin-arm64@1.29.2:
+    resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [darwin]
+
+  lightningcss-darwin-x64@1.29.2:
+    resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [darwin]
+
+  lightningcss-freebsd-x64@1.29.2:
+    resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [freebsd]
+
+  lightningcss-linux-arm-gnueabihf@1.29.2:
+    resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm]
+    os: [linux]
+
+  lightningcss-linux-arm64-gnu@1.29.2:
+    resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [linux]
+
+  lightningcss-linux-arm64-musl@1.29.2:
+    resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [linux]
+
+  lightningcss-linux-x64-gnu@1.29.2:
+    resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [linux]
+
+  lightningcss-linux-x64-musl@1.29.2:
+    resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [linux]
+
+  lightningcss-win32-arm64-msvc@1.29.2:
+    resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [arm64]
+    os: [win32]
+
+  lightningcss-win32-x64-msvc@1.29.2:
+    resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
+    engines: {node: '>= 12.0.0'}
+    cpu: [x64]
+    os: [win32]
+
+  lightningcss@1.29.2:
+    resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
+    engines: {node: '>= 12.0.0'}
+
+  lines-and-columns@1.2.4:
+    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+  locate-character@3.0.0:
+    resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
+
+  lodash.castarray@4.4.0:
+    resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
+
+  lodash.isplainobject@4.0.6:
+    resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+  lodash.merge@4.6.2:
+    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+  lower-case@2.0.2:
+    resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+
+  lru-cache@5.1.1:
+    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+  lucide-svelte@0.475.0:
+    resolution: {integrity: sha512-N5+hFTPHaZe9HhqJDxxxODfYuOmI6v+JIowzERcea/uxytN/JZlehVTcINBNp8wMo7l6ov1Jf5srrDbkI/WsJg==}
+    peerDependencies:
+      svelte: ^3 || ^4 || ^5.0.0-next.42
+
+  magic-string@0.30.17:
+    resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+  micromatch@4.0.8:
+    resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+    engines: {node: '>=8.6'}
+
+  min-indent@1.0.1:
+    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+    engines: {node: '>=4'}
+
+  minimatch@3.1.2:
+    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+  minimist@1.2.8:
+    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+  mkdirp@0.5.6:
+    resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+    hasBin: true
+
+  mri@1.2.0:
+    resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+    engines: {node: '>=4'}
+
+  mrmime@2.0.1:
+    resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+    engines: {node: '>=10'}
+
+  ms@2.1.3:
+    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+  nanoid@3.3.11:
+    resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+
+  no-case@3.0.4:
+    resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+
+  node-addon-api@7.1.1:
+    resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+  node-releases@2.0.19:
+    resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+  normalize-path@3.0.0:
+    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+    engines: {node: '>=0.10.0'}
+
+  normalize-range@0.1.2:
+    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+    engines: {node: '>=0.10.0'}
+
+  once@1.4.0:
+    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+  parent-module@1.0.1:
+    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+    engines: {node: '>=6'}
+
+  parse-json@5.2.0:
+    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+    engines: {node: '>=8'}
+
+  path-is-absolute@1.0.1:
+    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+    engines: {node: '>=0.10.0'}
+
+  path-type@4.0.0:
+    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+    engines: {node: '>=8'}
+
+  picocolors@1.1.1:
+    resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+  picomatch@2.3.1:
+    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+    engines: {node: '>=8.6'}
+
+  picomatch@4.0.2:
+    resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+    engines: {node: '>=12'}
+
+  postcss-selector-parser@6.0.10:
+    resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
+    engines: {node: '>=4'}
+
+  postcss-value-parser@4.2.0:
+    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+  postcss@8.5.3:
+    resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
+    engines: {node: ^10 || ^12 || >=14}
+
+  readdirp@3.6.0:
+    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+    engines: {node: '>=8.10.0'}
+
+  readdirp@4.1.2:
+    resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+    engines: {node: '>= 14.18.0'}
+
+  resolve-from@4.0.0:
+    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+    engines: {node: '>=4'}
+
+  rimraf@2.7.1:
+    resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+    deprecated: Rimraf versions prior to v4 are no longer supported
+    hasBin: true
+
+  rollup@4.39.0:
+    resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==}
+    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+    hasBin: true
+
+  sade@1.8.1:
+    resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+    engines: {node: '>=6'}
+
+  sander@0.5.1:
+    resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
+
+  sass@1.86.3:
+    resolution: {integrity: sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==}
+    engines: {node: '>=14.0.0'}
+    hasBin: true
+
+  semver@6.3.1:
+    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+    hasBin: true
+
+  set-cookie-parser@2.7.1:
+    resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==}
+
+  sirv@3.0.1:
+    resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
+    engines: {node: '>=18'}
+
+  snake-case@3.0.4:
+    resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+
+  sorcery@0.11.1:
+    resolution: {integrity: sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==}
+    hasBin: true
+
+  source-map-js@1.2.1:
+    resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+    engines: {node: '>=0.10.0'}
+
+  strip-indent@3.0.0:
+    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+    engines: {node: '>=8'}
+
+  svelte-check@3.8.6:
+    resolution: {integrity: sha512-ij0u4Lw/sOTREP13BdWZjiXD/BlHE6/e2e34XzmVmsp5IN4kVa3PWP65NM32JAgwjZlwBg/+JtiNV1MM8khu0Q==}
+    hasBin: true
+    peerDependencies:
+      svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
+
+  svelte-highlight@7.8.3:
+    resolution: {integrity: sha512-i4CE/6yda1fCh0ovUVATk1S1feu1y3+CV+l1brgtMPPRO9VTGq+hPpUjVEJWQkE7hPAgwgVpHccoa5M2gpKxYQ==}
+
+  svelte-hmr@0.16.0:
+    resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==}
+    engines: {node: ^12.20 || ^14.13.1 || >= 16}
+    peerDependencies:
+      svelte: ^3.19.0 || ^4.0.0
+
+  svelte-katex@0.1.2:
+    resolution: {integrity: sha512-jgqMgP0hwgsaYKLNa9GGpuEKiwE7Gr6QlDKp3C3QQkIb30G+WEHCljfl+nVCNra1aTr7uIemQmlyMA3avHx6HQ==}
+
+  svelte-media-queries@1.6.2:
+    resolution: {integrity: sha512-SMz6od/vIeZEGlc4P0HKJK4G0fZotuwFhCSpBQaPqh75h6sL6sNf+4+IjbegFKXbP7b+SOfyzVOIMXTr8jynkA==}
+
+  svelte-preprocess@5.1.4:
+    resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==}
+    engines: {node: '>= 16.0.0'}
+    peerDependencies:
+      '@babel/core': ^7.10.2
+      coffeescript: ^2.5.1
+      less: ^3.11.3 || ^4.0.0
+      postcss: ^7 || ^8
+      postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
+      pug: ^3.0.0
+      sass: ^1.26.8
+      stylus: ^0.55.0
+      sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
+      svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
+      typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
+    peerDependenciesMeta:
+      '@babel/core':
+        optional: true
+      coffeescript:
+        optional: true
+      less:
+        optional: true
+      postcss:
+        optional: true
+      postcss-load-config:
+        optional: true
+      pug:
+        optional: true
+      sass:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      typescript:
+        optional: true
+
+  svelte@5.25.7:
+    resolution: {integrity: sha512-0fzXbXaKfSvFUs6Wxev2h4CoEhexZotbTF9EJ4+Cg7MHW64ZnZ9+xUedZyEpgj0Tt9HrYGv9aASHkqjn9b/cPw==}
+    engines: {node: '>=18'}
+
+  svg-parser@2.0.4:
+    resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
+
+  tailwindcss@4.1.3:
+    resolution: {integrity: sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==}
+
+  tapable@2.2.1:
+    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+    engines: {node: '>=6'}
+
+  theme-change@2.5.0:
+    resolution: {integrity: sha512-B/UdsgdHAGhSKHTAQnxg/etN0RaMDpehuJmZIjLMDVJ6DGIliRHGD6pODi1CXLQAN9GV0GSyB3G6yCuK05PkPQ==}
+
+  to-regex-range@5.0.1:
+    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+    engines: {node: '>=8.0'}
+
+  totalist@3.0.1:
+    resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+    engines: {node: '>=6'}
+
+  tslib@2.8.1:
+    resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+  typescript@5.8.3:
+    resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
+    engines: {node: '>=14.17'}
+    hasBin: true
+
+  update-browserslist-db@1.1.3:
+    resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+    hasBin: true
+    peerDependencies:
+      browserslist: '>= 4.21.0'
+
+  util-deprecate@1.0.2:
+    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+  vite-plugin-svgr@4.3.0:
+    resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==}
+    peerDependencies:
+      vite: '>=2.6.0'
+
+  vite@5.4.17:
+    resolution: {integrity: sha512-5+VqZryDj4wgCs55o9Lp+p8GE78TLVg0lasCH5xFZ4jacZjtqZa6JUw9/p0WeAojaOfncSM6v77InkFPGnvPvg==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@types/node': ^18.0.0 || >=20.0.0
+      less: '*'
+      lightningcss: ^1.21.0
+      sass: '*'
+      sass-embedded: '*'
+      stylus: '*'
+      sugarss: '*'
+      terser: ^5.4.0
+    peerDependenciesMeta:
+      '@types/node':
+        optional: true
+      less:
+        optional: true
+      lightningcss:
+        optional: true
+      sass:
+        optional: true
+      sass-embedded:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      terser:
+        optional: true
+
+  vitefu@0.2.5:
+    resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
+    peerDependencies:
+      vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+    peerDependenciesMeta:
+      vite:
+        optional: true
+
+  wrappy@1.0.2:
+    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+  yallist@3.1.1:
+    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+  zimmerframe@1.1.2:
+    resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==}
+
+snapshots:
+
+  '@ampproject/remapping@2.3.0':
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.8
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@babel/code-frame@7.26.2':
+    dependencies:
+      '@babel/helper-validator-identifier': 7.25.9
+      js-tokens: 4.0.0
+      picocolors: 1.1.1
+
+  '@babel/compat-data@7.26.8': {}
+
+  '@babel/core@7.26.10':
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@babel/code-frame': 7.26.2
+      '@babel/generator': 7.27.0
+      '@babel/helper-compilation-targets': 7.27.0
+      '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
+      '@babel/helpers': 7.27.0
+      '@babel/parser': 7.27.0
+      '@babel/template': 7.27.0
+      '@babel/traverse': 7.27.0
+      '@babel/types': 7.27.0
+      convert-source-map: 2.0.0
+      debug: 4.4.0
+      gensync: 1.0.0-beta.2
+      json5: 2.2.3
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/generator@7.27.0':
+    dependencies:
+      '@babel/parser': 7.27.0
+      '@babel/types': 7.27.0
+      '@jridgewell/gen-mapping': 0.3.8
+      '@jridgewell/trace-mapping': 0.3.25
+      jsesc: 3.1.0
+
+  '@babel/helper-compilation-targets@7.27.0':
+    dependencies:
+      '@babel/compat-data': 7.26.8
+      '@babel/helper-validator-option': 7.25.9
+      browserslist: 4.24.4
+      lru-cache: 5.1.1
+      semver: 6.3.1
+
+  '@babel/helper-module-imports@7.25.9':
+    dependencies:
+      '@babel/traverse': 7.27.0
+      '@babel/types': 7.27.0
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+      '@babel/helper-module-imports': 7.25.9
+      '@babel/helper-validator-identifier': 7.25.9
+      '@babel/traverse': 7.27.0
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-string-parser@7.25.9': {}
+
+  '@babel/helper-validator-identifier@7.25.9': {}
+
+  '@babel/helper-validator-option@7.25.9': {}
+
+  '@babel/helpers@7.27.0':
+    dependencies:
+      '@babel/template': 7.27.0
+      '@babel/types': 7.27.0
+
+  '@babel/parser@7.27.0':
+    dependencies:
+      '@babel/types': 7.27.0
+
+  '@babel/template@7.27.0':
+    dependencies:
+      '@babel/code-frame': 7.26.2
+      '@babel/parser': 7.27.0
+      '@babel/types': 7.27.0
+
+  '@babel/traverse@7.27.0':
+    dependencies:
+      '@babel/code-frame': 7.26.2
+      '@babel/generator': 7.27.0
+      '@babel/parser': 7.27.0
+      '@babel/template': 7.27.0
+      '@babel/types': 7.27.0
+      debug: 4.4.0
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/types@7.27.0':
+    dependencies:
+      '@babel/helper-string-parser': 7.25.9
+      '@babel/helper-validator-identifier': 7.25.9
+
+  '@esbuild/aix-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm@0.21.5':
+    optional: true
+
+  '@esbuild/android-x64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-x64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/linux-loong64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-mips64el@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-riscv64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-s390x@0.21.5':
+    optional: true
+
+  '@esbuild/linux-x64@0.21.5':
+    optional: true
+
+  '@esbuild/netbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/openbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/sunos-x64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/win32-x64@0.21.5':
+    optional: true
+
+  '@jridgewell/gen-mapping@0.3.8':
+    dependencies:
+      '@jridgewell/set-array': 1.2.1
+      '@jridgewell/sourcemap-codec': 1.5.0
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@jridgewell/resolve-uri@3.1.2': {}
+
+  '@jridgewell/set-array@1.2.1': {}
+
+  '@jridgewell/sourcemap-codec@1.5.0': {}
+
+  '@jridgewell/trace-mapping@0.3.25':
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  '@lucide/svelte@0.487.0(svelte@5.25.7)':
+    dependencies:
+      svelte: 5.25.7
+
+  '@parcel/watcher-android-arm64@2.5.1':
+    optional: true
+
+  '@parcel/watcher-darwin-arm64@2.5.1':
+    optional: true
+
+  '@parcel/watcher-darwin-x64@2.5.1':
+    optional: true
+
+  '@parcel/watcher-freebsd-x64@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-arm-glibc@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-arm-musl@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-arm64-glibc@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-arm64-musl@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-x64-glibc@2.5.1':
+    optional: true
+
+  '@parcel/watcher-linux-x64-musl@2.5.1':
+    optional: true
+
+  '@parcel/watcher-win32-arm64@2.5.1':
+    optional: true
+
+  '@parcel/watcher-win32-ia32@2.5.1':
+    optional: true
+
+  '@parcel/watcher-win32-x64@2.5.1':
+    optional: true
+
+  '@parcel/watcher@2.5.1':
+    dependencies:
+      detect-libc: 1.0.3
+      is-glob: 4.0.3
+      micromatch: 4.0.8
+      node-addon-api: 7.1.1
+    optionalDependencies:
+      '@parcel/watcher-android-arm64': 2.5.1
+      '@parcel/watcher-darwin-arm64': 2.5.1
+      '@parcel/watcher-darwin-x64': 2.5.1
+      '@parcel/watcher-freebsd-x64': 2.5.1
+      '@parcel/watcher-linux-arm-glibc': 2.5.1
+      '@parcel/watcher-linux-arm-musl': 2.5.1
+      '@parcel/watcher-linux-arm64-glibc': 2.5.1
+      '@parcel/watcher-linux-arm64-musl': 2.5.1
+      '@parcel/watcher-linux-x64-glibc': 2.5.1
+      '@parcel/watcher-linux-x64-musl': 2.5.1
+      '@parcel/watcher-win32-arm64': 2.5.1
+      '@parcel/watcher-win32-ia32': 2.5.1
+      '@parcel/watcher-win32-x64': 2.5.1
+    optional: true
+
+  '@polka/url@1.0.0-next.28': {}
+
+  '@rollup/pluginutils@5.1.4(rollup@4.39.0)':
+    dependencies:
+      '@types/estree': 1.0.7
+      estree-walker: 2.0.2
+      picomatch: 4.0.2
+    optionalDependencies:
+      rollup: 4.39.0
+
+  '@rollup/rollup-android-arm-eabi@4.39.0':
+    optional: true
+
+  '@rollup/rollup-android-arm64@4.39.0':
+    optional: true
+
+  '@rollup/rollup-darwin-arm64@4.39.0':
+    optional: true
+
+  '@rollup/rollup-darwin-x64@4.39.0':
+    optional: true
+
+  '@rollup/rollup-freebsd-arm64@4.39.0':
+    optional: true
+
+  '@rollup/rollup-freebsd-x64@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-gnueabihf@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-musleabihf@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-musl@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-loongarch64-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-powerpc64le-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-riscv64-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-riscv64-musl@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-s390x-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-gnu@4.39.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-musl@4.39.0':
+    optional: true
+
+  '@rollup/rollup-win32-arm64-msvc@4.39.0':
+    optional: true
+
+  '@rollup/rollup-win32-ia32-msvc@4.39.0':
+    optional: true
+
+  '@rollup/rollup-win32-x64-msvc@4.39.0':
+    optional: true
+
+  '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)':
+    dependencies:
+      acorn: 8.14.1
+
+  '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))':
+    dependencies:
+      '@sveltejs/kit': 2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      import-meta-resolve: 4.1.0
+
+  '@sveltejs/adapter-static@3.0.8(@sveltejs/kit@2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))':
+    dependencies:
+      '@sveltejs/kit': 2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+
+  '@sveltejs/kit@2.20.4(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))':
+    dependencies:
+      '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      '@types/cookie': 0.6.0
+      cookie: 0.6.0
+      devalue: 5.1.1
+      esm-env: 1.2.2
+      import-meta-resolve: 4.1.0
+      kleur: 4.1.5
+      magic-string: 0.30.17
+      mrmime: 2.0.1
+      sade: 1.8.1
+      set-cookie-parser: 2.7.1
+      sirv: 3.0.1
+      svelte: 5.25.7
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+
+  '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))':
+    dependencies:
+      '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      debug: 4.4.0
+      svelte: 5.25.7
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+    transitivePeerDependencies:
+      - supports-color
+
+  '@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))':
+    dependencies:
+      '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)))(svelte@5.25.7)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+      debug: 4.4.0
+      deepmerge: 4.3.1
+      kleur: 4.1.5
+      magic-string: 0.30.17
+      svelte: 5.25.7
+      svelte-hmr: 0.16.0(svelte@5.25.7)
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+      vitefu: 0.2.5(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))
+    transitivePeerDependencies:
+      - supports-color
+
+  '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+
+  '@svgr/babel-preset@8.1.0(@babel/core@7.26.10)':
+    dependencies:
+      '@babel/core': 7.26.10
+      '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.10)
+      '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.10)
+
+  '@svgr/core@8.1.0(typescript@5.8.3)':
+    dependencies:
+      '@babel/core': 7.26.10
+      '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10)
+      camelcase: 6.3.0
+      cosmiconfig: 8.3.6(typescript@5.8.3)
+      snake-case: 3.0.4
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@svgr/hast-util-to-babel-ast@8.0.0':
+    dependencies:
+      '@babel/types': 7.27.0
+      entities: 4.5.0
+
+  '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.8.3))':
+    dependencies:
+      '@babel/core': 7.26.10
+      '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10)
+      '@svgr/core': 8.1.0(typescript@5.8.3)
+      '@svgr/hast-util-to-babel-ast': 8.0.0
+      svg-parser: 2.0.4
+    transitivePeerDependencies:
+      - supports-color
+
+  '@tailwindcss/node@4.1.3':
+    dependencies:
+      enhanced-resolve: 5.18.1
+      jiti: 2.4.2
+      lightningcss: 1.29.2
+      tailwindcss: 4.1.3
+
+  '@tailwindcss/oxide-android-arm64@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-darwin-arm64@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-darwin-x64@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-freebsd-x64@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-linux-arm64-gnu@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-linux-arm64-musl@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-linux-x64-gnu@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-linux-x64-musl@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-win32-arm64-msvc@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide-win32-x64-msvc@4.1.3':
+    optional: true
+
+  '@tailwindcss/oxide@4.1.3':
+    optionalDependencies:
+      '@tailwindcss/oxide-android-arm64': 4.1.3
+      '@tailwindcss/oxide-darwin-arm64': 4.1.3
+      '@tailwindcss/oxide-darwin-x64': 4.1.3
+      '@tailwindcss/oxide-freebsd-x64': 4.1.3
+      '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.3
+      '@tailwindcss/oxide-linux-arm64-gnu': 4.1.3
+      '@tailwindcss/oxide-linux-arm64-musl': 4.1.3
+      '@tailwindcss/oxide-linux-x64-gnu': 4.1.3
+      '@tailwindcss/oxide-linux-x64-musl': 4.1.3
+      '@tailwindcss/oxide-win32-arm64-msvc': 4.1.3
+      '@tailwindcss/oxide-win32-x64-msvc': 4.1.3
+
+  '@tailwindcss/typography@0.5.16(tailwindcss@4.1.3)':
+    dependencies:
+      lodash.castarray: 4.4.0
+      lodash.isplainobject: 4.0.6
+      lodash.merge: 4.6.2
+      postcss-selector-parser: 6.0.10
+      tailwindcss: 4.1.3
+
+  '@tailwindcss/vite@4.1.3(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3))':
+    dependencies:
+      '@tailwindcss/node': 4.1.3
+      '@tailwindcss/oxide': 4.1.3
+      tailwindcss: 4.1.3
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+
+  '@types/cookie@0.6.0': {}
+
+  '@types/estree@1.0.7': {}
+
+  '@types/pug@2.0.10': {}
+
+  acorn@8.14.1: {}
+
+  anymatch@3.1.3:
+    dependencies:
+      normalize-path: 3.0.0
+      picomatch: 2.3.1
+
+  argparse@2.0.1: {}
+
+  aria-query@5.3.2: {}
+
+  autoprefixer@10.4.21(postcss@8.5.3):
+    dependencies:
+      browserslist: 4.24.4
+      caniuse-lite: 1.0.30001712
+      fraction.js: 4.3.7
+      normalize-range: 0.1.2
+      picocolors: 1.1.1
+      postcss: 8.5.3
+      postcss-value-parser: 4.2.0
+
+  axobject-query@4.1.0: {}
+
+  balanced-match@1.0.2: {}
+
+  binary-extensions@2.3.0: {}
+
+  brace-expansion@1.1.11:
+    dependencies:
+      balanced-match: 1.0.2
+      concat-map: 0.0.1
+
+  braces@3.0.3:
+    dependencies:
+      fill-range: 7.1.1
+
+  browserslist@4.24.4:
+    dependencies:
+      caniuse-lite: 1.0.30001712
+      electron-to-chromium: 1.5.132
+      node-releases: 2.0.19
+      update-browserslist-db: 1.1.3(browserslist@4.24.4)
+
+  buffer-crc32@1.0.0: {}
+
+  callsites@3.1.0: {}
+
+  camelcase@6.3.0: {}
+
+  caniuse-lite@1.0.30001712: {}
+
+  chokidar@3.6.0:
+    dependencies:
+      anymatch: 3.1.3
+      braces: 3.0.3
+      glob-parent: 5.1.2
+      is-binary-path: 2.1.0
+      is-glob: 4.0.3
+      normalize-path: 3.0.0
+      readdirp: 3.6.0
+    optionalDependencies:
+      fsevents: 2.3.3
+
+  chokidar@4.0.3:
+    dependencies:
+      readdirp: 4.1.2
+
+  clsx@2.1.1: {}
+
+  commander@8.3.0: {}
+
+  concat-map@0.0.1: {}
+
+  convert-source-map@2.0.0: {}
+
+  cookie@0.6.0: {}
+
+  cosmiconfig@8.3.6(typescript@5.8.3):
+    dependencies:
+      import-fresh: 3.3.1
+      js-yaml: 4.1.0
+      parse-json: 5.2.0
+      path-type: 4.0.0
+    optionalDependencies:
+      typescript: 5.8.3
+
+  cssesc@3.0.0: {}
+
+  daisyui@5.0.12: {}
+
+  debug@4.4.0:
+    dependencies:
+      ms: 2.1.3
+
+  deepmerge@4.3.1: {}
+
+  detect-indent@6.1.0: {}
+
+  detect-libc@1.0.3:
+    optional: true
+
+  detect-libc@2.0.3: {}
+
+  devalue@5.1.1: {}
+
+  dot-case@3.0.4:
+    dependencies:
+      no-case: 3.0.4
+      tslib: 2.8.1
+
+  electron-to-chromium@1.5.132: {}
+
+  enhanced-resolve@5.18.1:
+    dependencies:
+      graceful-fs: 4.2.11
+      tapable: 2.2.1
+
+  entities@4.5.0: {}
+
+  error-ex@1.3.2:
+    dependencies:
+      is-arrayish: 0.2.1
+
+  es6-promise@3.3.1: {}
+
+  esbuild@0.21.5:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.21.5
+      '@esbuild/android-arm': 0.21.5
+      '@esbuild/android-arm64': 0.21.5
+      '@esbuild/android-x64': 0.21.5
+      '@esbuild/darwin-arm64': 0.21.5
+      '@esbuild/darwin-x64': 0.21.5
+      '@esbuild/freebsd-arm64': 0.21.5
+      '@esbuild/freebsd-x64': 0.21.5
+      '@esbuild/linux-arm': 0.21.5
+      '@esbuild/linux-arm64': 0.21.5
+      '@esbuild/linux-ia32': 0.21.5
+      '@esbuild/linux-loong64': 0.21.5
+      '@esbuild/linux-mips64el': 0.21.5
+      '@esbuild/linux-ppc64': 0.21.5
+      '@esbuild/linux-riscv64': 0.21.5
+      '@esbuild/linux-s390x': 0.21.5
+      '@esbuild/linux-x64': 0.21.5
+      '@esbuild/netbsd-x64': 0.21.5
+      '@esbuild/openbsd-x64': 0.21.5
+      '@esbuild/sunos-x64': 0.21.5
+      '@esbuild/win32-arm64': 0.21.5
+      '@esbuild/win32-ia32': 0.21.5
+      '@esbuild/win32-x64': 0.21.5
+
+  escalade@3.2.0: {}
+
+  esm-env@1.2.2: {}
+
+  esrap@1.4.6:
+    dependencies:
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  estree-walker@2.0.2: {}
+
+  fill-range@7.1.1:
+    dependencies:
+      to-regex-range: 5.0.1
+
+  fraction.js@4.3.7: {}
+
+  fs.realpath@1.0.0: {}
+
+  fsevents@2.3.3:
+    optional: true
+
+  gensync@1.0.0-beta.2: {}
+
+  glob-parent@5.1.2:
+    dependencies:
+      is-glob: 4.0.3
+
+  glob@7.2.3:
+    dependencies:
+      fs.realpath: 1.0.0
+      inflight: 1.0.6
+      inherits: 2.0.4
+      minimatch: 3.1.2
+      once: 1.4.0
+      path-is-absolute: 1.0.1
+
+  globals@11.12.0: {}
+
+  graceful-fs@4.2.11: {}
+
+  highlight.js@11.11.1: {}
+
+  immutable@5.1.1: {}
+
+  import-fresh@3.3.1:
+    dependencies:
+      parent-module: 1.0.1
+      resolve-from: 4.0.0
+
+  import-meta-resolve@4.1.0: {}
+
+  inflight@1.0.6:
+    dependencies:
+      once: 1.4.0
+      wrappy: 1.0.2
+
+  inherits@2.0.4: {}
+
+  is-arrayish@0.2.1: {}
+
+  is-binary-path@2.1.0:
+    dependencies:
+      binary-extensions: 2.3.0
+
+  is-extglob@2.1.1: {}
+
+  is-glob@4.0.3:
+    dependencies:
+      is-extglob: 2.1.1
+
+  is-number@7.0.0: {}
+
+  is-reference@3.0.3:
+    dependencies:
+      '@types/estree': 1.0.7
+
+  jiti@2.4.2: {}
+
+  js-tokens@4.0.0: {}
+
+  js-yaml@4.1.0:
+    dependencies:
+      argparse: 2.0.1
+
+  jsesc@3.1.0: {}
+
+  json-parse-even-better-errors@2.3.1: {}
+
+  json5@2.2.3: {}
+
+  katex@0.15.6:
+    dependencies:
+      commander: 8.3.0
+
+  kleur@4.1.5: {}
+
+  lightningcss-darwin-arm64@1.29.2:
+    optional: true
+
+  lightningcss-darwin-x64@1.29.2:
+    optional: true
+
+  lightningcss-freebsd-x64@1.29.2:
+    optional: true
+
+  lightningcss-linux-arm-gnueabihf@1.29.2:
+    optional: true
+
+  lightningcss-linux-arm64-gnu@1.29.2:
+    optional: true
+
+  lightningcss-linux-arm64-musl@1.29.2:
+    optional: true
+
+  lightningcss-linux-x64-gnu@1.29.2:
+    optional: true
+
+  lightningcss-linux-x64-musl@1.29.2:
+    optional: true
+
+  lightningcss-win32-arm64-msvc@1.29.2:
+    optional: true
+
+  lightningcss-win32-x64-msvc@1.29.2:
+    optional: true
+
+  lightningcss@1.29.2:
+    dependencies:
+      detect-libc: 2.0.3
+    optionalDependencies:
+      lightningcss-darwin-arm64: 1.29.2
+      lightningcss-darwin-x64: 1.29.2
+      lightningcss-freebsd-x64: 1.29.2
+      lightningcss-linux-arm-gnueabihf: 1.29.2
+      lightningcss-linux-arm64-gnu: 1.29.2
+      lightningcss-linux-arm64-musl: 1.29.2
+      lightningcss-linux-x64-gnu: 1.29.2
+      lightningcss-linux-x64-musl: 1.29.2
+      lightningcss-win32-arm64-msvc: 1.29.2
+      lightningcss-win32-x64-msvc: 1.29.2
+
+  lines-and-columns@1.2.4: {}
+
+  locate-character@3.0.0: {}
+
+  lodash.castarray@4.4.0: {}
+
+  lodash.isplainobject@4.0.6: {}
+
+  lodash.merge@4.6.2: {}
+
+  lower-case@2.0.2:
+    dependencies:
+      tslib: 2.8.1
+
+  lru-cache@5.1.1:
+    dependencies:
+      yallist: 3.1.1
+
+  lucide-svelte@0.475.0(svelte@5.25.7):
+    dependencies:
+      svelte: 5.25.7
+
+  magic-string@0.30.17:
+    dependencies:
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  micromatch@4.0.8:
+    dependencies:
+      braces: 3.0.3
+      picomatch: 2.3.1
+    optional: true
+
+  min-indent@1.0.1: {}
+
+  minimatch@3.1.2:
+    dependencies:
+      brace-expansion: 1.1.11
+
+  minimist@1.2.8: {}
+
+  mkdirp@0.5.6:
+    dependencies:
+      minimist: 1.2.8
+
+  mri@1.2.0: {}
+
+  mrmime@2.0.1: {}
+
+  ms@2.1.3: {}
+
+  nanoid@3.3.11: {}
+
+  no-case@3.0.4:
+    dependencies:
+      lower-case: 2.0.2
+      tslib: 2.8.1
+
+  node-addon-api@7.1.1:
+    optional: true
+
+  node-releases@2.0.19: {}
+
+  normalize-path@3.0.0: {}
+
+  normalize-range@0.1.2: {}
+
+  once@1.4.0:
+    dependencies:
+      wrappy: 1.0.2
+
+  parent-module@1.0.1:
+    dependencies:
+      callsites: 3.1.0
+
+  parse-json@5.2.0:
+    dependencies:
+      '@babel/code-frame': 7.26.2
+      error-ex: 1.3.2
+      json-parse-even-better-errors: 2.3.1
+      lines-and-columns: 1.2.4
+
+  path-is-absolute@1.0.1: {}
+
+  path-type@4.0.0: {}
+
+  picocolors@1.1.1: {}
+
+  picomatch@2.3.1: {}
+
+  picomatch@4.0.2: {}
+
+  postcss-selector-parser@6.0.10:
+    dependencies:
+      cssesc: 3.0.0
+      util-deprecate: 1.0.2
+
+  postcss-value-parser@4.2.0: {}
+
+  postcss@8.5.3:
+    dependencies:
+      nanoid: 3.3.11
+      picocolors: 1.1.1
+      source-map-js: 1.2.1
+
+  readdirp@3.6.0:
+    dependencies:
+      picomatch: 2.3.1
+
+  readdirp@4.1.2: {}
+
+  resolve-from@4.0.0: {}
+
+  rimraf@2.7.1:
+    dependencies:
+      glob: 7.2.3
+
+  rollup@4.39.0:
+    dependencies:
+      '@types/estree': 1.0.7
+    optionalDependencies:
+      '@rollup/rollup-android-arm-eabi': 4.39.0
+      '@rollup/rollup-android-arm64': 4.39.0
+      '@rollup/rollup-darwin-arm64': 4.39.0
+      '@rollup/rollup-darwin-x64': 4.39.0
+      '@rollup/rollup-freebsd-arm64': 4.39.0
+      '@rollup/rollup-freebsd-x64': 4.39.0
+      '@rollup/rollup-linux-arm-gnueabihf': 4.39.0
+      '@rollup/rollup-linux-arm-musleabihf': 4.39.0
+      '@rollup/rollup-linux-arm64-gnu': 4.39.0
+      '@rollup/rollup-linux-arm64-musl': 4.39.0
+      '@rollup/rollup-linux-loongarch64-gnu': 4.39.0
+      '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0
+      '@rollup/rollup-linux-riscv64-gnu': 4.39.0
+      '@rollup/rollup-linux-riscv64-musl': 4.39.0
+      '@rollup/rollup-linux-s390x-gnu': 4.39.0
+      '@rollup/rollup-linux-x64-gnu': 4.39.0
+      '@rollup/rollup-linux-x64-musl': 4.39.0
+      '@rollup/rollup-win32-arm64-msvc': 4.39.0
+      '@rollup/rollup-win32-ia32-msvc': 4.39.0
+      '@rollup/rollup-win32-x64-msvc': 4.39.0
+      fsevents: 2.3.3
+
+  sade@1.8.1:
+    dependencies:
+      mri: 1.2.0
+
+  sander@0.5.1:
+    dependencies:
+      es6-promise: 3.3.1
+      graceful-fs: 4.2.11
+      mkdirp: 0.5.6
+      rimraf: 2.7.1
+
+  sass@1.86.3:
+    dependencies:
+      chokidar: 4.0.3
+      immutable: 5.1.1
+      source-map-js: 1.2.1
+    optionalDependencies:
+      '@parcel/watcher': 2.5.1
+
+  semver@6.3.1: {}
+
+  set-cookie-parser@2.7.1: {}
+
+  sirv@3.0.1:
+    dependencies:
+      '@polka/url': 1.0.0-next.28
+      mrmime: 2.0.1
+      totalist: 3.0.1
+
+  snake-case@3.0.4:
+    dependencies:
+      dot-case: 3.0.4
+      tslib: 2.8.1
+
+  sorcery@0.11.1:
+    dependencies:
+      '@jridgewell/sourcemap-codec': 1.5.0
+      buffer-crc32: 1.0.0
+      minimist: 1.2.8
+      sander: 0.5.1
+
+  source-map-js@1.2.1: {}
+
+  strip-indent@3.0.0:
+    dependencies:
+      min-indent: 1.0.1
+
+  svelte-check@3.8.6(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.3)(svelte@5.25.7):
+    dependencies:
+      '@jridgewell/trace-mapping': 0.3.25
+      chokidar: 3.6.0
+      picocolors: 1.1.1
+      sade: 1.8.1
+      svelte: 5.25.7
+      svelte-preprocess: 5.1.4(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.3)(svelte@5.25.7)(typescript@5.8.3)
+      typescript: 5.8.3
+    transitivePeerDependencies:
+      - '@babel/core'
+      - coffeescript
+      - less
+      - postcss
+      - postcss-load-config
+      - pug
+      - sass
+      - stylus
+      - sugarss
+
+  svelte-highlight@7.8.3:
+    dependencies:
+      highlight.js: 11.11.1
+
+  svelte-hmr@0.16.0(svelte@5.25.7):
+    dependencies:
+      svelte: 5.25.7
+
+  svelte-katex@0.1.2:
+    dependencies:
+      katex: 0.15.6
+
+  svelte-media-queries@1.6.2: {}
+
+  svelte-preprocess@5.1.4(@babel/core@7.26.10)(postcss@8.5.3)(sass@1.86.3)(svelte@5.25.7)(typescript@5.8.3):
+    dependencies:
+      '@types/pug': 2.0.10
+      detect-indent: 6.1.0
+      magic-string: 0.30.17
+      sorcery: 0.11.1
+      strip-indent: 3.0.0
+      svelte: 5.25.7
+    optionalDependencies:
+      '@babel/core': 7.26.10
+      postcss: 8.5.3
+      sass: 1.86.3
+      typescript: 5.8.3
+
+  svelte@5.25.7:
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@jridgewell/sourcemap-codec': 1.5.0
+      '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1)
+      '@types/estree': 1.0.7
+      acorn: 8.14.1
+      aria-query: 5.3.2
+      axobject-query: 4.1.0
+      clsx: 2.1.1
+      esm-env: 1.2.2
+      esrap: 1.4.6
+      is-reference: 3.0.3
+      locate-character: 3.0.0
+      magic-string: 0.30.17
+      zimmerframe: 1.1.2
+
+  svg-parser@2.0.4: {}
+
+  tailwindcss@4.1.3: {}
+
+  tapable@2.2.1: {}
+
+  theme-change@2.5.0: {}
+
+  to-regex-range@5.0.1:
+    dependencies:
+      is-number: 7.0.0
+
+  totalist@3.0.1: {}
+
+  tslib@2.8.1: {}
+
+  typescript@5.8.3: {}
+
+  update-browserslist-db@1.1.3(browserslist@4.24.4):
+    dependencies:
+      browserslist: 4.24.4
+      escalade: 3.2.0
+      picocolors: 1.1.1
+
+  util-deprecate@1.0.2: {}
+
+  vite-plugin-svgr@4.3.0(rollup@4.39.0)(typescript@5.8.3)(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)):
+    dependencies:
+      '@rollup/pluginutils': 5.1.4(rollup@4.39.0)
+      '@svgr/core': 8.1.0(typescript@5.8.3)
+      '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3))
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+    transitivePeerDependencies:
+      - rollup
+      - supports-color
+      - typescript
+
+  vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3):
+    dependencies:
+      esbuild: 0.21.5
+      postcss: 8.5.3
+      rollup: 4.39.0
+    optionalDependencies:
+      fsevents: 2.3.3
+      lightningcss: 1.29.2
+      sass: 1.86.3
+
+  vitefu@0.2.5(vite@5.4.17(lightningcss@1.29.2)(sass@1.86.3)):
+    optionalDependencies:
+      vite: 5.4.17(lightningcss@1.29.2)(sass@1.86.3)
+
+  wrappy@1.0.2: {}
+
+  yallist@3.1.1: {}
+
+  zimmerframe@1.1.2: {}
diff --git a/postcss.config.js b/postcss.config.js
deleted file mode 100644
index 2e7af2b..0000000
--- a/postcss.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
-  plugins: {
-    tailwindcss: {},
-    autoprefixer: {},
-  },
-}
diff --git a/src/app.css b/src/app.css
new file mode 100644
index 0000000..c2958a3
--- /dev/null
+++ b/src/app.css
@@ -0,0 +1,222 @@
+@import "tailwindcss";
+@plugin "daisyui";
+
+@plugin "daisyui/theme" {
+  name: "Deprived";
+  default: true;
+  prefersdark: true;
+  --color-base-100: oklch(14% 0 0);
+  --color-base-200: oklch(20% 0 0);
+  --color-base-300: oklch(26% 0 0);
+  --color-base-content: oklch(97% 0 0);
+  --color-primary: oklch(72% 0.219 149.579);
+  --color-primary-content: oklch(98% 0.018 155.826);
+  --color-secondary: oklch(58% 0.233 277.117);
+  --color-secondary-content: oklch(96% 0.018 272.314);
+  --color-accent: oklch(60% 0.25 292.717);
+  --color-accent-content: oklch(96% 0.016 293.756);
+  --color-neutral: oklch(20% 0 0);
+  --color-neutral-content: oklch(98% 0 0);
+  --color-info: oklch(58% 0.158 241.966);
+  --color-info-content: oklch(97% 0.013 236.62);
+  --color-success: oklch(64% 0.2 131.684);
+  --color-success-content: oklch(98% 0.031 120.757);
+  --color-warning: oklch(68% 0.162 75.834);
+  --color-warning-content: oklch(98% 0.026 102.212);
+  --color-error: oklch(57% 0.245 27.325);
+  --color-error-content: oklch(97% 0.013 17.38);
+  --radius-selector: 1rem;
+  --radius-field: 0.5rem;
+  --radius-box: 1rem;
+  --size-selector: 0.25rem;
+  --size-field: 0.25rem;
+  --border: 1px;
+  --depth: 0;
+  --noise: 0;
+}
+
+@plugin "daisyui/theme" {
+  name: "dark";
+  color-scheme: "dark";
+  --color-base-100: oklch(14% 0 0);
+  --color-base-200: oklch(20% 0 0);
+  --color-base-300: oklch(26% 0 0);
+  --color-base-content: oklch(97% 0 0);
+  --color-primary: oklch(90% 0.182 98.111);
+  --color-primary-content: oklch(28% 0.066 53.813);
+  --color-secondary: oklch(84% 0.143 164.978);
+  --color-secondary-content: oklch(26% 0.051 172.552);
+  --color-accent: oklch(87% 0.01 258.338);
+  --color-accent-content: oklch(13% 0.028 261.692);
+  --color-neutral: oklch(26% 0 0);
+  --color-neutral-content: oklch(98% 0 0);
+  --color-info: oklch(71% 0.143 215.221);
+  --color-info-content: oklch(98% 0.019 200.873);
+  --color-success: oklch(76% 0.233 130.85);
+  --color-success-content: oklch(98% 0.031 120.757);
+  --color-warning: oklch(70% 0.213 47.604);
+  --color-warning-content: oklch(98% 0.016 73.684);
+  --color-error: oklch(65% 0.241 354.308);
+  --color-error-content: oklch(97% 0.014 343.198);
+  --radius-selector: 0rem;
+  --radius-field: 0.5rem;
+  --radius-box: 1rem;
+  --size-selector: 0.25rem;
+  --size-field: 0.25rem;
+  --border: 1px;
+  --depth: 0;
+  --noise: 1;
+}
+
+@plugin "daisyui/theme" {
+  name: "pink";
+  color-scheme: "light";
+  --color-base-100: oklch(96% 0.015 12.422);
+  --color-base-200: oklch(94% 0.03 12.58);
+  --color-base-300: oklch(89% 0.058 10.001);
+  --color-base-content: oklch(41% 0.159 10.272);
+  --color-primary: oklch(86% 0.127 207.078);
+  --color-primary-content: oklch(30% 0.056 229.695);
+  --color-secondary: oklch(0% 0 0);
+  --color-secondary-content: oklch(100% 0 0);
+  --color-accent: oklch(87% 0.169 91.605);
+  --color-accent-content: oklch(27% 0.077 45.635);
+  --color-neutral: oklch(51% 0.222 16.935);
+  --color-neutral-content: oklch(96% 0.015 12.422);
+  --color-info: oklch(74% 0.16 232.661);
+  --color-info-content: oklch(29% 0.066 243.157);
+  --color-success: oklch(77% 0.152 181.912);
+  --color-success-content: oklch(27% 0.046 192.524);
+  --color-warning: oklch(75% 0.183 55.934);
+  --color-warning-content: oklch(26% 0.079 36.259);
+  --color-error: oklch(70% 0.191 22.216);
+  --color-error-content: oklch(25% 0.092 26.042);
+  --radius-selector: 0.25rem;
+  --radius-field: 0.25rem;
+  --radius-box: 0.25rem;
+  --size-selector: 0.25rem;
+  --size-field: 0.25rem;
+  --border: 1px;
+  --depth: 1;
+  --noise: 0;
+}
+
+@plugin "daisyui/theme" {
+  name: "netherrack";
+  color-scheme: "dark";
+  --color-base-100: oklch(25% 0.092 26.042);
+  --color-base-200: oklch(39% 0.141 25.723);
+  --color-base-300: oklch(44% 0.177 26.899);
+  --color-base-content: oklch(93% 0.032 17.717);
+  --color-primary: oklch(83% 0.128 66.29);
+  --color-primary-content: oklch(26% 0.079 36.259);
+  --color-secondary: oklch(82% 0.111 230.318);
+  --color-secondary-content: oklch(29% 0.066 243.157);
+  --color-accent: oklch(78% 0.115 274.713);
+  --color-accent-content: oklch(25% 0.09 281.288);
+  --color-neutral: oklch(57% 0.245 27.325);
+  --color-neutral-content: oklch(97% 0.013 17.38);
+  --color-info: oklch(71% 0.143 215.221);
+  --color-info-content: oklch(98% 0.019 200.873);
+  --color-success: oklch(72% 0.219 149.579);
+  --color-success-content: oklch(98% 0.018 155.826);
+  --color-warning: oklch(76% 0.188 70.08);
+  --color-warning-content: oklch(98% 0.022 95.277);
+  --color-error: oklch(63% 0.237 25.331);
+  --color-error-content: oklch(97% 0.013 17.38);
+  --radius-selector: 2rem;
+  --radius-field: 2rem;
+  --radius-box: 2rem;
+  --size-selector: 0.25rem;
+  --size-field: 0.25rem;
+  --border: 1px;
+  --depth: 1;
+  --noise: 1;
+}
+
+@plugin "daisyui/theme" {
+  name: "green";
+  color-scheme: "dark";
+  --color-base-100: oklch(26% 0.065 152.934);
+  --color-base-200: oklch(39% 0.095 152.535);
+  --color-base-300: oklch(44% 0.119 151.328);
+  --color-base-content: oklch(96% 0.044 156.743);
+  --color-primary: oklch(80% 0.105 251.813);
+  --color-primary-content: oklch(28% 0.091 267.935);
+  --color-secondary: oklch(80% 0.105 251.813);
+  --color-secondary-content: oklch(28% 0.091 267.935);
+  --color-accent: oklch(89% 0.196 126.665);
+  --color-accent-content: oklch(27% 0.072 132.109);
+  --color-neutral: oklch(52% 0.154 150.069);
+  --color-neutral-content: oklch(98% 0.018 155.826);
+  --color-info: oklch(78% 0.154 211.53);
+  --color-info-content: oklch(30% 0.056 229.695);
+  --color-success: oklch(79% 0.209 151.711);
+  --color-success-content: oklch(26% 0.065 152.934);
+  --color-warning: oklch(85% 0.199 91.936);
+  --color-warning-content: oklch(28% 0.066 53.813);
+  --color-error: oklch(71% 0.202 349.761);
+  --color-error-content: oklch(28% 0.109 3.907);
+  --radius-selector: 0.25rem;
+  --radius-field: 0.5rem;
+  --radius-box: 1rem;
+  --size-selector: 0.25rem;
+  --size-field: 0.25rem;
+  --border: 1px;
+  --depth: 0;
+  --noise: 1;
+}
+
+.bg-grid-100 {
+  background:
+    linear-gradient(-90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
+    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px), #f2f2f2;
+  background-size:
+    4px 4px,
+    4px 4px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px;
+  background-color: var(--color-base-100);
+}
+
+.bg-grid-200 {
+  background:
+    linear-gradient(-90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
+    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px), #f2f2f2;
+  background-size:
+    4px 4px,
+    4px 4px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px;
+  background-color: var(--color-base-200);
+}
+
+.bg-grid-300 {
+  background:
+    linear-gradient(-90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
+    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px), #f2f2f2;
+  background-size:
+    4px 4px,
+    4px 4px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px,
+    80px 80px;
+  background-color: var(--color-base-300);
+}
+
+@media print {
+  .hide-on-print {
+    display: none !important;
+  }
+}
diff --git a/src/app.d.ts b/src/app.d.ts
index 743f07b..65d9fce 100644
--- a/src/app.d.ts
+++ b/src/app.d.ts
@@ -1,13 +1,13 @@
-// See https://kit.svelte.dev/docs/types#app
-// for information about these interfaces
-declare global {
-	namespace App {
-		// interface Error {}
-		// interface Locals {}
-		// interface PageData {}
-		// interface PageState {}
-		// interface Platform {}
-	}
-}
-
-export {};
+// See https://kit.svelte.dev/docs/types#app
+// for information about these interfaces
+declare global {
+	namespace App {
+		// interface Error {}
+		// interface Locals {}
+		// interface PageData {}
+		// interface PageState {}
+		// interface Platform {}
+	}
+}
+
+export {};
diff --git a/src/app.html b/src/app.html
index 8c80edf..f3253b6 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,16 +1,42 @@
-<!doctype html>
-<html lang="en" data-theme="Synthwave">
-	<head>
-		<meta charset="utf-8" />
-		<link rel="icon" href="%sveltekit.assets%/favicon.png" />
-		<meta name="viewport" content="width=device-width, initial-scale=1" />
-
-        <!-- Change theme for site here -->
-        <link rel="stylesheet" href="/stylesheets/main-theme.css" />
-        <link rel="stylesheet" href="/stylesheets/global.css" />
-		%sveltekit.head%
-
-	</head>
-
-	<div style="display: contents">%sveltekit.body%</div>
-</html>
+<!doctype html>
+<html lang="en" data-theme="Deprived" style="overflow-x: hidden;">
+	<head>
+		<meta charset="utf-8" />
+		<meta name="description" content="
+		We are the deprived devs, and we are a team of developers specializing in indie game development, full-stack development, and anything tech-related!">
+		<link rel="icon" href="%sveltekit.assets%/favicon.png" />
+		<meta name="viewport" content="width=device-width, initial-scale=1" />
+
+        <!-- Change theme for site here -->
+        <link rel="stylesheet" href="/stylesheets/global.css" />
+		%sveltekit.head%
+
+		<script>
+			let theme = null;
+
+			if (typeof localStorage !== 'undefined') {
+				theme = localStorage.getItem('theme');
+			}
+
+			window.AvailableThemes =  ["green", "netherrack", "dark", "pink"];
+			
+			if (!theme) {
+				const randomNumber = Math.floor(Math.random() * 4);
+				console.log("Slecting: " + AvailableThemes[randomNumber]);
+				document.documentElement.setAttribute('data-theme', AvailableThemes[randomNumber]);
+				localStorage.setItem('theme', AvailableThemes[randomNumber]);
+			} 
+			//else {
+			//	console.log("Slecting: " + theme);
+			//	document.documentElement.setAttribute('data-theme', theme);
+			//}
+		</script>
+
+	</head>
+
+	<body style="display: contents">
+		<div class="inline relative w-full h-full">
+			%sveltekit.body%
+		</div>
+	</body>
+</html>
diff --git a/src/comps/Utils/HorizonalStack.svelte b/src/comps/Utils/HorizonalStack.svelte
index 54f96b4..8a98e34 100644
--- a/src/comps/Utils/HorizonalStack.svelte
+++ b/src/comps/Utils/HorizonalStack.svelte
@@ -1,12 +1,12 @@
-<div {...$$restProps}>
-    <slot></slot>
-</div>
-
-<style>
-    .centralize{
-        display: grid;
-        justify-content: center;
-        
-        padding: 0;
-    }
+<div {...$$restProps}>
+    <slot></slot>
+</div>
+
+<style>
+    .centralize{
+        display: grid;
+        justify-content: center;
+        
+        padding: 0;
+    }
 </style>
\ No newline at end of file
diff --git a/src/comps/Utils/VerticalStack.svelte b/src/comps/Utils/VerticalStack.svelte
index 7b9e06d..e87e109 100644
--- a/src/comps/Utils/VerticalStack.svelte
+++ b/src/comps/Utils/VerticalStack.svelte
@@ -1,4 +1,4 @@
-<!-- Just used for ease of read -->
-<div style="padding: 0;">
-    <slot></slot>
+<!-- Just used for ease of read -->
+<div style="padding: 0;">
+    <slot></slot>
 </div>
\ No newline at end of file
diff --git a/src/comps/Utils/ZSpacer.svelte b/src/comps/Utils/ZSpacer.svelte
index 8de2124..8f30483 100644
--- a/src/comps/Utils/ZSpacer.svelte
+++ b/src/comps/Utils/ZSpacer.svelte
@@ -1,8 +1,8 @@
-<div class="grow" />
-
-<style>
-    .grow{
-        display: flex;
-        flex-grow: 1;
-    }
+<div class="grow" />
+
+<style>
+    .grow{
+        display: flex;
+        flex-grow: 1;
+    }
 </style>
\ No newline at end of file
diff --git a/src/comps/timeline/timeline.svelte b/src/comps/timeline/timeline.svelte
index fa99416..b7d141f 100644
--- a/src/comps/timeline/timeline.svelte
+++ b/src/comps/timeline/timeline.svelte
@@ -1,15 +1,15 @@
-<script lang="ts">
-    import HorizonalStack from "../Utils/HorizonalStack.svelte";
-    import TimelineItem from "./timelineItem.svelte";
-</script>
-
-<HorizonalStack {...$$restProps}>
-    <slot/>
-</HorizonalStack>
-
-<style>
-    :global(.JustifyStart){
-        display: flex;
-        justify-content: start;
-    }
+<script lang="ts">
+    import HorizonalStack from "../Utils/HorizonalStack.svelte";
+    import TimelineItem from "./timelineItem.svelte";
+</script>
+
+<HorizonalStack {...$$restProps}>
+    <slot/>
+</HorizonalStack>
+
+<style>
+    :global(.JustifyStart){
+        display: flex;
+        justify-content: start;
+    }
 </style>
\ No newline at end of file
diff --git a/src/comps/timeline/timelineItem.svelte b/src/comps/timeline/timelineItem.svelte
index e9b81af..500f1de 100644
--- a/src/comps/timeline/timelineItem.svelte
+++ b/src/comps/timeline/timelineItem.svelte
@@ -1,6 +1,5 @@
 <script lang="ts">
     import HorizonalStack from "../Utils/HorizonalStack.svelte";
-    import Img from '@zerodevx/svelte-img'
     import VerticalStack from "../Utils/VerticalStack.svelte";
     import ZSpacer from "../Utils/ZSpacer.svelte";
     import MediaQuery from 'svelte-media-queries';
diff --git a/src/lib/GamePreviews/Blood-preview1.png b/src/lib/GamePreviews/Blood-preview1.png
new file mode 100644
index 0000000..684ab99
Binary files /dev/null and b/src/lib/GamePreviews/Blood-preview1.png differ
diff --git a/src/lib/GamePreviews/Blood-preview2.png b/src/lib/GamePreviews/Blood-preview2.png
new file mode 100644
index 0000000..27e180d
Binary files /dev/null and b/src/lib/GamePreviews/Blood-preview2.png differ
diff --git a/src/lib/GamePreviews/Blood-preview3.png b/src/lib/GamePreviews/Blood-preview3.png
new file mode 100644
index 0000000..059e635
Binary files /dev/null and b/src/lib/GamePreviews/Blood-preview3.png differ
diff --git a/src/lib/GamePreviews/Blood-preview4.png b/src/lib/GamePreviews/Blood-preview4.png
new file mode 100644
index 0000000..e6535cf
Binary files /dev/null and b/src/lib/GamePreviews/Blood-preview4.png differ
diff --git a/src/lib/GamePreviews/Blood-title.png b/src/lib/GamePreviews/Blood-title.png
new file mode 100644
index 0000000..b5e55cc
Binary files /dev/null and b/src/lib/GamePreviews/Blood-title.png differ
diff --git a/src/lib/GamePreviews/Corrobot-rebouce-gameplay1.png b/src/lib/GamePreviews/Corrobot-rebouce-gameplay1.png
new file mode 100644
index 0000000..7e8e4f8
Binary files /dev/null and b/src/lib/GamePreviews/Corrobot-rebouce-gameplay1.png differ
diff --git a/src/lib/GamePreviews/Corrobot-rebouce-gameplay2.png b/src/lib/GamePreviews/Corrobot-rebouce-gameplay2.png
new file mode 100644
index 0000000..822bfcc
Binary files /dev/null and b/src/lib/GamePreviews/Corrobot-rebouce-gameplay2.png differ
diff --git a/src/lib/GamePreviews/Corrobot-rebouce-title.jpg b/src/lib/GamePreviews/Corrobot-rebouce-title.jpg
new file mode 100644
index 0000000..fae52f6
Binary files /dev/null and b/src/lib/GamePreviews/Corrobot-rebouce-title.jpg differ
diff --git a/src/lib/GamePreviews/Time-1.png b/src/lib/GamePreviews/Time-1.png
new file mode 100644
index 0000000..afa24d2
Binary files /dev/null and b/src/lib/GamePreviews/Time-1.png differ
diff --git a/src/lib/GamePreviews/time-2.png b/src/lib/GamePreviews/time-2.png
new file mode 100644
index 0000000..70f18c3
Binary files /dev/null and b/src/lib/GamePreviews/time-2.png differ
diff --git a/src/lib/GamePreviews/time-3.png b/src/lib/GamePreviews/time-3.png
new file mode 100644
index 0000000..28838fc
Binary files /dev/null and b/src/lib/GamePreviews/time-3.png differ
diff --git a/src/lib/GamePreviews/time-4.png b/src/lib/GamePreviews/time-4.png
new file mode 100644
index 0000000..4d907fa
Binary files /dev/null and b/src/lib/GamePreviews/time-4.png differ
diff --git a/src/lib/GamePreviews/time-5.gif b/src/lib/GamePreviews/time-5.gif
new file mode 100644
index 0000000..eb95b01
Binary files /dev/null and b/src/lib/GamePreviews/time-5.gif differ
diff --git a/src/lib/IO/Button.svelte b/src/lib/IO/Button.svelte
index 2222a9a..fd2d319 100644
--- a/src/lib/IO/Button.svelte
+++ b/src/lib/IO/Button.svelte
@@ -1,66 +1,66 @@
-<script lang="ts">
-    import { ButtonType } from "$lib/IO/ButtonType.ts";
-    import { onMount } from "svelte";
-
-    export let href : string = "#";
-    export let type : ButtonType = ButtonType.Primary;
-    let cssName : string;
-
-    const buttonTypeColors = {
-        [ButtonType.Primary]: '--primary',
-        [ButtonType.Secondary]: '--secondary',
-        [ButtonType.Accent]: '--accent',
-    };
-
-    onMount(() => {
-        cssName = buttonTypeColors[type];
-    });
-</script>
-
-<a href={href} class="button" style="--button-color: var({cssName});">
-    <div class="content">
-        <slot name="content">
-            Click Me!
-        </slot>
-    </div>
-</a>
-
-<style>
-    .button {
-        white-space: nowrap;
-        border-radius: 6px;
-        border: none;
-        background-color: var(--button-color);
-        text-decoration: none;
-
-        transition: transform 100ms ease-in-out;
-        transform: translate(0, 0);
-
-        display: flex;
-        justify-content: center;
-        font-size: 1.5em;
-
-        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.3);
-        padding: 0.8em 4em;
-    }
-
-    .button:hover {
-        transition: transform 100ms ease-in-out;
-        transform: translate(0, -5px);
-
-        cursor: pointer;
-
-        filter: brightness(130%);
-    }
-
-    .content {
-        width: 100%;
-        height: 100%;
-
-        color: var(--text1);
-
-        display: flex;
-        justify-content: center;
-        align-content: center;
-    }
-</style>
+<script lang="ts">
+    import { ButtonType } from "$lib/IO/ButtonType.ts";
+    import { onMount } from "svelte";
+
+    export let href : string = "#";
+    export let type : ButtonType = ButtonType.Primary;
+    let cssName : string;
+
+    const buttonTypeColors = {
+        [ButtonType.Primary]: '--primary',
+        [ButtonType.Secondary]: '--secondary',
+        [ButtonType.Accent]: '--accent',
+    };
+
+    onMount(() => {
+        cssName = buttonTypeColors[type];
+    });
+</script>
+
+<a href={href} class="button" style="--button-color: var({cssName});">
+    <div class="content">
+        <slot name="content">
+            Click Me!
+        </slot>
+    </div>
+</a>
+
+<style>
+    .button {
+        white-space: nowrap;
+        border-radius: 6px;
+        border: none;
+        background-color: var(--button-color);
+        text-decoration: none;
+
+        transition: transform 100ms ease-in-out;
+        transform: translate(0, 0);
+
+        display: flex;
+        justify-content: center;
+        font-size: 1.5em;
+
+        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.3);
+        padding: 0.8em 4em;
+    }
+
+    .button:hover {
+        transition: transform 100ms ease-in-out;
+        transform: translate(0, -5px);
+
+        cursor: pointer;
+
+        filter: brightness(130%);
+    }
+
+    .content {
+        width: 100%;
+        height: 100%;
+
+        color: var(--text1);
+
+        display: flex;
+        justify-content: center;
+        align-content: center;
+    }
+</style>
diff --git a/src/lib/IO/ButtonType.ts b/src/lib/IO/ButtonType.ts
index 36a399e..f0d674b 100644
--- a/src/lib/IO/ButtonType.ts
+++ b/src/lib/IO/ButtonType.ts
@@ -1,5 +1,5 @@
-export enum ButtonType {
-    Primary,
-    Secondary,
-    Accent
-}
+export enum ButtonType {
+    Primary,
+    Secondary,
+    Accent
+}
diff --git a/src/lib/app.css b/src/lib/app.css
deleted file mode 100644
index bd6213e..0000000
--- a/src/lib/app.css
+++ /dev/null
@@ -1,3 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
\ No newline at end of file
diff --git a/src/lib/images/DeprivedLogo-NoBackground.png b/src/lib/images/DeprivedLogo-NoBackground.png
new file mode 100644
index 0000000..79e330e
Binary files /dev/null and b/src/lib/images/DeprivedLogo-NoBackground.png differ
diff --git a/src/lib/images/DeprivedLogo.svelte b/src/lib/images/DeprivedLogo.svelte
index 37b2957..2ef0aa7 100644
--- a/src/lib/images/DeprivedLogo.svelte
+++ b/src/lib/images/DeprivedLogo.svelte
@@ -1,232 +1,143 @@
-<script>
-  export let Class = '';
-  export let Style = '';
-</script>
-
-<svg
-  class={Class}
-  style={Style}
-   width="53.266724mm"
-   height="49.976624mm"
-   viewBox="0 0 53.266727 49.976624"
-   version="1.1"
-   id="svg1"
-   xml:space="preserve"
-   inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
-   sodipodi:docname="DeprivedLogo-SkullI-Background.svg"
-   inkscape:export-filename="ExportedSVG.svg"
-   inkscape:export-xdpi="96.036186"
-   inkscape:export-ydpi="96.036186"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
-     id="namedview1"
-     pagecolor="#505050"
-     bordercolor="#eeeeee"
-     borderopacity="1"
-     inkscape:showpageshadow="0"
-     inkscape:pageopacity="0"
-     inkscape:pagecheckerboard="0"
-     inkscape:deskcolor="#505050"
-     inkscape:document-units="mm"
-     inkscape:zoom="2.9757808"
-     inkscape:cx="123.497"
-     inkscape:cy="140.63536"
-     inkscape:window-width="2560"
-     inkscape:window-height="1361"
-     inkscape:window-x="1591"
-     inkscape:window-y="-9"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer3"
-     inkscape:export-bgcolor="#ffffff00" /><defs
-     id="defs1"><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect9"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,8.5571463,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,9.7139083,0,1 @ F,0,0,1,0,7.0752071,0,1 @ F,0,1,1,0,9.7139083,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect15-0-4"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect15-0-54"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /></defs><g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="FullProfil"
-     transform="translate(-75.228843,-57.954247)"><g
-       inkscape:groupmode="layer"
-       id="layer3"
-       inkscape:label="BackgroundColourLayer"
-       style="display:none;opacity:1"
-       inkscape:highlight-color="#b8d8be"><rect
-         style="display:inline;fill:#f2f2f2;stroke-width:0.128722"
-         id="rect29"
-         width="59.00034"
-         height="62.58733"
-         x="72.94722"
-         y="51.200962"
-         ry="1.2272025"
-         inkscape:label="Background Colour" /></g><g
-       inkscape:groupmode="layer"
-       id="layer2"
-       inkscape:label="MainBorder"
-       style="display:none"
-       inkscape:highlight-color="#4436a9"><g
-         id="g69"
-         style="display:inline"><rect
-           style="display:inline;;stroke-width:0.264583"
-           id="rect3"
-           width="4.979085"
-           height="130.34535"
-           x="37.466156"
-           y="17.522022" /><rect
-           style=";stroke-width:0.264583"
-           id="rect3-2"
-           width="4.979085"
-           height="130.34535"
-           x="162.86777"
-           y="17.556767" /><rect
-           style=";stroke-width:0.264583"
-           id="rect3-2-7"
-           width="4.979085"
-           height="130.34535"
-           x="17.536777"
-           y="-167.8186"
-           transform="rotate(90)" /><rect
-           style=";stroke-width:0.264583"
-           id="rect3-2-7-6"
-           width="4.979085"
-           height="130.34535"
-           x="143.39011"
-           y="-167.67055"
-           transform="rotate(90)"
-           inkscape:label="rect3-2-7-6" /></g></g><g
-       inkscape:groupmode="layer"
-       id="layer9"
-       inkscape:label="AltBorder"
-       style="display:none"
-       inkscape:highlight-color="#3691a9"><path
-         style="display:inline;;stroke-width:0.264583"
-         id="path69"
-         d="m 163.39213,26.01862 c 0.0595,1.760183 0.10362,3.520297 0.0865,5.281485 -0.0182,1.574702 -0.12409,3.146425 -0.24,4.716373 -0.13263,1.669346 -0.20918,3.342301 -0.24829,5.016272 -0.0311,1.795338 -0.0381,3.590941 -0.0674,5.386353 -0.0362,1.789428 -0.11946,3.577344 -0.17194,5.366256 -0.0629,1.804365 -0.0639,3.609742 -0.0709,5.414928 5.3e-4,1.878517 0.047,3.756628 0.0801,5.634762 0.12732,23.663539 1.17119,34.516993 -0.13963,48.862551 -0.21839,1.18058 -0.66339,12.29919 -0.80218,13.49183 -0.12893,1.09367 -0.20088,2.19281 -0.22473,3.29352 -0.0133,1.02629 0.0763,2.05064 0.17169,3.0715 0.0975,1.2208 0.15031,2.4443 0.19591,3.66791 0.0538,1.15451 0.0247,2.30919 -0.007,3.46364 -0.036,0.75303 -0.0547,1.50749 -0.14161,2.25687 -0.0917,0.69542 -0.15048,1.39319 -0.15933,2.09455 -0.006,0.64192 0.0536,1.28266 0.11035,1.92156 0.0493,0.33817 0.0355,0.6751 -0.0101,1.01203 -0.009,0.0349 -0.01,0.0728 -0.0264,0.10472 -0.018,0.0343 -0.0392,-0.0735 -0.0322,-0.11153 0.0239,-0.13026 0.0517,-0.26094 0.0982,-0.38497 0.28978,-0.77432 0.54206,-0.66164 1.45032,-1.33171 0.70226,-0.21534 1.40995,-0.075 1.99728,0.27724 -0.46721,-0.44423 -1.07871,-0.67285 -1.70487,-0.76906 -0.0843,0.004 -0.8737,-0.0591 -0.29755,0.028 0.30912,0.0601 -0.0964,-0.0119 -0.17735,-0.0276 -0.5318,-0.13119 -1.07477,-0.14733 -1.61973,-0.14178 -1.15619,0.087 -2.31145,0.15477 -3.47119,0.16447 -1.65654,-0.0606 -3.30593,-0.23332 -4.96081,-0.32638 -2.48886,-0.11776 -4.98288,-0.0852 -7.47408,-0.0968 -3.41703,-0.0447 -6.83123,-0.19478 -10.24705,-0.28624 -3.353,-0.1231 -6.70802,-0.10619 -10.06247,-0.0942 -3.28545,0.0414 -6.57092,0.0694 -9.85656,0.0939 -3.50933,0.0587 -7.01891,0.0952 -10.52862,0.12316 -3.46508,0.0181 -6.930044,0.0668 -10.395199,0.0633 -3.031641,0.0274 -6.063205,-0.0223 -9.094515,-0.0613 -2.772171,-0.0655 -5.545219,-0.003 -8.316452,0.0733 -2.947992,0.0921 -5.89676,0.0356 -8.845147,0.015 -2.598389,-0.0811 -5.19788,-0.0319 -7.795604,0.0448 -1.793804,0.0797 -3.588663,0.0779 -5.383504,0.0548 -1.213101,-0.0551 -2.427076,-0.0832 -3.640553,-0.12745 -1.118496,-0.0552 -2.236935,-0.11386 -3.356988,-0.11978 -0.932685,-0.0132 -1.864299,0.0386 -2.793325,0.11595 -0.601864,0.0496 -1.203889,0.0897 -1.807475,0.10905 -0.531786,0.009 -1.064276,0.005 -1.595712,0.0274 -0.333942,0.0106 -0.667888,0.0107 -1.001898,0.008 -0.299506,-0.0359 -0.04313,0.029 0.124833,0.0886 0.495276,0.1953 0.866307,0.56583 1.114338,1.03048 0.06866,0.083 0.03789,0.25924 0.148016,0.21499 0.05921,-0.30182 0.134881,-0.6001 0.216135,-0.89746 0.194146,-0.46519 0.306311,-0.95191 0.405561,-1.44461 0.132628,-0.86218 0.196821,-1.73315 0.224338,-2.6045 0.0077,-1.20037 0.05566,-2.39843 0.139935,-3.59569 0.128196,-1.4357 0.245142,-2.87091 0.319953,-4.31049 0.07363,-1.7705 0.01836,-3.54172 -0.02938,-5.31188 -0.04374,-1.95214 -0.209148,-3.8983 -0.324863,-5.84682 -0.135723,-2.34544 -0.314534,-4.68797 -0.471361,-7.03201 -0.177969,-2.62474 -0.321278,-5.25217 -0.412117,-7.88141 -0.06707,-2.22802 -0.108633,-4.45716 -0.120256,-6.686177 -0.02513,-2.03318 -0.03606,-4.06673 -0.03168,-6.10008 -0.0081,-1.938877 0.06149,-3.876817 0.08478,-5.815232 0.03685,-1.769692 0.02476,-3.540185 -0.0053,-5.309872 -0.02885,-1.549056 -0.05931,-3.097824 -0.04003,-4.647152 0.03622,-1.849994 0.197567,-3.693732 0.346128,-5.537084 0.214733,-2.1726 0.357195,-4.350078 0.456454,-6.530673 0.08438,-1.87742 0.113067,-3.756216 0.07616,-5.635062 -0.009,-1.700813 -0.08307,-3.400102 -0.103656,-5.10065 -0.01532,-2.054948 0.02151,-4.109636 0.03932,-6.164403 0.01532,-1.718209 0.05163,-3.436829 0.01987,-5.15498 -0.01815,-1.432354 -0.07851,-2.863374 -0.130717,-4.294701 -0.05593,-1.043702 -0.09372,-2.087314 -0.09444,-3.132495 0.0063,-0.930854 0.0029,-1.861645 -0.0016,-2.792502 -0.01521,-0.994743 -0.0346,-1.989368 -0.05969,-2.983931 -0.01431,-0.85235 -0.01857,-1.704734 -0.01942,-2.557182 -0.0048,-0.626981 0.03249,-1.25219 0.08404,-1.876636 0.06426,-0.611606 0.124761,-1.223436 0.173003,-1.836535 0.0342,-0.458368 0.04634,-0.917746 0.05898,-1.377051 1.4e-4,-0.416482 -0.03128,-0.83104 -0.06558,-1.245656 -0.003,-0.287881 -0.08889,-0.589679 -0.03344,-0.876421 0.02664,0.253241 -0.11549,0.474708 -0.24343,0.682085 0.0054,0.111512 -0.399354,0.346913 -0.413506,0.429467 -0.0024,0.01324 0.02191,0.01555 0.03287,0.02332 -0.06372,0.05104 0.439269,0.14739 0.33043,0.130068 -1.480685,-0.23565 -0.869106,-0.151677 -0.628417,-0.119195 0.247176,0.0308 0.479396,0.153834 0.706527,0.250951 0.803519,0.384886 1.664301,0.535836 2.554423,0.596807 0.241789,0.01656 0.484129,-0.02382 0.726191,-0.03573 1.970246,-0.146838 3.940215,-0.298869 5.910069,-0.451498 1.998935,-0.118673 3.995978,-0.255473 5.997562,-0.320937 0.869937,-0.02413 1.748552,-0.06734 2.594684,0.165319 -0.183504,-0.02834 -0.365868,-0.06546 -0.550516,-0.08502 -0.09715,-0.01029 0.191857,0.03707 0.287467,0.05715 0.118542,0.0249 0.236855,0.0509 0.354955,0.07781 0.440285,0.100313 0.879686,0.204709 1.319929,0.305286 1.277546,0.272523 2.561225,0.530444 3.865134,0.630862 1.140521,0.07535 2.283799,0.09645 3.425976,0.135536 1.136679,0.0453 2.272765,0.09915 3.410045,0.127668 1.197107,0.03539 2.393894,0.08255 3.590965,0.120672 1.384265,0.06666 2.769108,0.02006 4.153188,-0.01943 1.235527,-0.04678 2.471073,-0.08926 3.706662,-0.134066 1.447509,-0.04904 2.89329,-0.134458 4.339793,-0.205869 1.952779,-0.115921 3.902927,-0.270117 5.854153,-0.40893 2.471819,-0.222353 4.948634,-0.378607 7.428474,-0.473335 2.1382,-0.07717 4.27801,-0.08836 6.41721,-0.06057 1.71755,0.0252 3.4353,0.06832 5.15162,0.138455 10.50057,0.387832 11.60035,1.64247 19.93961,1.138729 1.30812,-0.08073 2.6178,-0.124719 3.92821,-0.138906 1.05471,-0.0085 2.10974,0.0074 3.16432,0.0261 1.50776,0.02751 3.01502,-0.02561 4.52174,-0.07453 1.91927,-0.07046 3.83912,-0.116101 5.75963,-0.129179 1.72621,-0.01165 3.45234,0.0073 5.17854,0.0106 1.12531,3.7e-4 2.24956,-0.04504 3.37279,-0.109232 0.49678,-0.02222 0.98525,-0.115864 1.47928,-0.164955 2.40585,-0.208716 3.17749,0.153543 6.97335,-2.013225 0.002,-0.224202 0.0252,-0.449355 0.005,-0.672605 -0.0404,-0.436022 -0.69067,-1.160197 -0.96289,-1.459515 -0.33605,-0.279591 -0.68345,-0.55033 -1.10429,-0.684216 -0.18966,-0.07399 -0.37622,-0.155972 -0.56356,-0.235572 -0.68219,-0.268348 -1.41446,-0.405489 -2.14635,-0.322702 -0.2015,0.01525 -0.40307,0.02219 -0.60494,0.02394 -0.25724,0.0074 -0.51393,0.02646 -0.76948,0.05697 -0.26762,0.03256 -0.5361,0.05498 -0.80487,0.07545 -0.43937,0.04227 -0.87932,0.07954 -1.31725,0.135475 -0.42693,0.06048 -0.85341,0.121273 -1.28203,0.168974 -1.00007,0.112086 -2.00515,0.170092 -3.01151,0.181348 -1.72689,0.03156 -3.45389,0.05228 -5.18098,0.06986 -1.94159,0.03541 -3.88316,0.0709 -5.82476,0.105277 -1.45049,0.01756 -2.90036,0.0077 -4.34996,-0.0514 -1.12259,-0.02204 -2.24506,-0.03886 -3.36747,0.007 -1.35152,0.05437 -2.70189,0.130468 -4.05194,0.213356 -1.34524,0.06743 -2.69319,0.108534 -4.0389,0.02446 -1.41056,-0.07943 -2.82164,-0.158508 -4.22845,-0.2907 -1.82753,-0.172195 -3.65197,-0.377074 -5.48137,-0.529642 -1.91997,-0.146004 -3.84053,-0.284824 -5.7651,-0.355539 -1.7739,-0.05967 -3.54783,-0.111522 -5.32311,-0.09521 -16.610702,0.245956 -16.775102,0.302062 -35.380558,1.03946 -1.120413,-0.0489 -2.24173,-0.0734 -3.361989,-0.12671 -1.036164,-0.04146 -2.075239,-0.06141 -3.105346,-0.191585 -0.0011,-1.5e-4 -0.820613,-0.12106 -0.826323,-0.119584 -0.120243,0.03107 0.490043,0.06424 0.365974,0.06983 -0.371697,0.01677 -0.926528,-0.202063 -1.303096,-0.2388 -1.107033,-0.242297 -2.182995,-0.610619 -3.313518,-0.744624 -7.509002,0.274045 -19.684266,-0.394035 -22.55762,1.094472 -0.196487,0.737623 -0.299767,3.383984 -0.250937,3.943321 0.01923,0.297216 0.04049,0.594694 0.04456,0.892535 0.006,0.37332 7.94e-4,0.746904 -0.01685,1.119872 -0.03028,0.605441 -0.08504,1.209008 -0.139887,1.812641 -0.05759,0.762161 -0.09165,1.525834 -0.07804,2.290358 0.01278,0.873993 0.0474,1.747451 0.07226,2.621158 0.0186,0.995276 0.02817,1.990672 0.0273,2.986127 0.01508,0.950688 0.01704,1.901487 0.01863,2.85228 0.02077,1.091073 0.07662,2.180775 0.146577,3.269774 0.0837,1.392047 0.148918,2.785531 0.183853,4.179678 0.02352,1.700956 0.04465,3.401838 0.04145,5.103027 -0.0053,2.065091 -0.003,4.130188 -0.02982,6.195174 -0.01595,1.732621 -0.01847,3.464324 0.05502,5.195972 0.0297,1.795817 0.08246,3.592213 0.0057,5.387834 -0.08218,2.111553 -0.229293,4.219419 -0.434448,6.322735 -0.190117,1.957843 -0.385892,3.917664 -0.418277,5.885992 -0.02627,1.595065 0.01773,3.189407 0.06782,4.783712 0.03629,1.724792 0.05631,3.449701 0.03172,5.174914 -0.03018,1.959374 -0.02577,3.919262 -0.04304,5.878798 0.0083,2.064631 0.0036,4.129318 0.03522,6.193814 0.06018,2.265913 0.119846,4.531853 0.221488,6.796433 0.135477,2.66326 0.272359,5.32639 0.425003,7.98874 0.140075,2.34265 0.286771,4.68509 0.392557,7.0296 0.10701,1.90802 0.227541,3.81581 0.279429,5.72634 0.03542,1.64444 0.05239,3.29073 -0.03726,4.93388 -0.09095,1.43955 -0.240848,2.87408 -0.360024,4.31143 -0.07382,1.21642 -0.121732,2.43423 -0.202462,3.65025 -0.04782,0.63487 -0.08273,1.27505 -0.233286,1.89605 -0.0992,0.43364 -0.270486,0.8487 -0.355663,1.28651 -0.131628,0.55462 -0.246184,1.11753 -0.284398,1.68709 -0.01638,0.60474 0.01746,1.209 0.25096,1.77626 0.35442,0.77954 0.900017,1.40746 1.708647,1.73575 0.394986,0.14092 0.789676,0.25441 1.212467,0.26224 0.453673,0.0315 0.908428,0.0324 1.362678,0.0105 0.522637,-0.007 1.044988,-0.0375 1.568021,-0.0348 0.693248,-0.0161 1.385533,-0.0585 2.074715,-0.1371 0.802266,-0.0688 1.604086,-0.15065 2.409782,-0.16768 1.062805,-0.009 2.123771,0.0235 3.185232,0.0753 1.260951,0.0476 2.522455,0.0963 3.784528,0.0913 1.861759,7.9e-4 3.722018,-0.0851 5.580756,-0.18568 2.527787,-0.11901 5.057182,-0.20108 7.588284,-0.15589 2.989265,0.0438 5.979705,0.026 8.968872,-0.0187 2.725187,-0.0211 5.450237,-0.0567 8.175577,-0.0566 3.055427,0.008 6.11073,0.0159 9.166072,-0.0182 3.467058,-0.0536 6.9346,-0.0552 10.40184,-0.0937 3.50742,-0.03 7.0146,-0.081 10.52212,-0.0943 3.28737,-0.0232 6.57474,-0.032 9.862,-0.0696 3.2959,-0.0473 6.59284,-0.0562 9.8886,0.007 3.42365,0.10679 6.84525,0.26146 10.26857,0.37449 2.42075,0.0834 4.84295,0.13144 7.26106,0.27964 1.70784,0.11895 3.4115,0.29052 5.12076,0.38767 1.21265,0.0508 2.42542,0.039 3.63862,0.009 0.20157,-0.007 0.40902,-0.0168 0.60745,0.0225 0.23559,0.0498 0.46974,0.10649 0.7079,0.14357 0.204,0.0262 0.35089,0.041 0.54496,0.0417 0.0396,1.5e-4 -0.29849,-0.0492 -0.15114,-0.0288 -0.36145,-0.0779 -0.71396,-0.22424 -0.98385,-0.4851 -0.0176,-0.017 0.0406,0.0272 0.061,0.0408 0.95875,0.71195 1.7562,1.00231 2.99358,0.70397 0.47341,-0.33457 0.98638,-0.61923 1.42022,-1.00373 0.16237,-0.1439 0.24428,-0.36042 0.33914,-0.55555 0.24476,-0.50338 0.32684,-1.05268 0.37067,-1.60333 0.0466,-0.63135 0.0451,-1.26307 -0.0298,-1.89268 -0.0485,-0.44137 -0.11011,-0.88132 -0.0854,-1.32705 0.0276,-0.59815 0.10549,-1.19084 0.16947,-1.7859 0.0562,-0.84398 0.0547,-1.69008 0.0661,-2.53559 0.0232,-1.24612 0.0109,-2.49243 -0.0409,-3.7378 -0.0473,-1.2781 -0.11402,-2.55564 -0.18468,-3.83263 -0.0409,-0.8809 -0.11589,-1.76092 -0.10757,-2.64346 0.0188,-0.94906 0.0857,-1.8965 0.1934,-2.83969 0.13673,-1.10838 0.31487,-2.20985 0.53611,-3.30473 0.20525,-1.24025 0.37747,-2.48372 0.42046,-3.74219 0.0986,-1.75493 0.14031,-3.51132 0.0671,-5.26855 -0.0519,-1.72024 -0.10589,-3.44195 -0.28309,-5.15493 -0.13609,-1.22309 -0.30674,-2.44487 -0.34996,-3.67593 -0.009,-1.18465 0.0423,-2.36869 0.14713,-3.54887 0.14468,-1.420641 0.32697,-2.837678 0.43167,-4.262068 0.0987,-1.363757 0.15922,-2.730529 0.20654,-4.096985 0.0384,-1.216991 0.0814,-2.43373 0.07,-3.651634 -0.004,-1.118317 -0.0244,-2.236856 -0.0862,-3.353639 -1.17136,-18.66192 0.12671,-3.461205 -0.36288,-22.83651 -0.0484,-1.829585 -0.0548,-3.659277 -0.0456,-5.489418 -0.006,-1.760723 0.007,-3.521726 0.0689,-5.281499 0.0662,-1.799116 0.13824,-3.598421 0.15975,-5.39872 0.0291,-1.779013 0.0612,-3.557971 0.0952,-5.336899 0.05,-1.58622 0.11097,-3.172323 0.24858,-4.753849 0.11861,-1.677617 0.22144,-3.357528 0.21571,-5.04018 -0.006,-1.780749 -0.0291,-3.561297 -0.0685,-5.341628 -0.0156,-1.301343 -0.0233,-2.603134 -0.0571,-3.904018 -0.10959,-1.458275 -0.38038,-2.555599 -1.59583,-3.504919 -0.21099,-0.116654 -0.4145,-0.248019 -0.63299,-0.34996 -0.84683,-0.395121 -1.8338,-0.387336 -2.74929,-0.426171 z"
-         sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccsccccsssccccccccccccccccccccccccccccccccccccccccccccssccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscsccsscccccccccccccccccccccccccccccscc" /></g><g
-       inkscape:groupmode="layer"
-       id="layer8"
-       inkscape:label="ZIcon"
-       style="display:none"><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
-         id="path15-8-6"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:path-effect="#path-effect15-0-54"
-         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
-         transform="matrix(0.65020563,0.33970251,-0.22324428,0.87048882,120.05046,-123.23894)" /><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
-         id="path15-8-3"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:path-effect="#path-effect15-0-4"
-         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
-         transform="matrix(0.48882551,0.24039141,-0.17152546,0.51702769,69.636627,-50.620099)" /></g><g
-       inkscape:groupmode="layer"
-       id="layer7"
-       inkscape:label="SkeletonIcon"
-       inkscape:highlight-color="#ffffff"
-       style="display:inline"><path
-         style="display:inline;;stroke-width:0.264583"
-         id="path5"
-         d="m 98.292885,234.82624 c -8.680799,-4.48983 -16.470315,-11.93072 -15.00066,-20.7921 0.765571,-4.61605 5.79606,-11.01544 9.795137,-13.5047 2.011269,-1.25193 3.826261,-1.61336 6.837066,-2.52212 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.634661,1.82689 -8.003276,6.84988 -9.350733,11.94556 -0.267325,1.01094 -0.868817,5.00685 0.01287,8.78662 1.004539,4.30636 5.606377,9.67778 8.971911,11.63074 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
-         sodipodi:nodetypes="csccsssscccc"
-         inkscape:path-effect="#path-effect9"
-         inkscape:original-d="m 98.292885,234.82624 c -11.095134,-5.73856 -20.734268,-16.29797 -11.445733,-28.48248 6.057326,-6.84391 7.558219,-6.67061 13.077276,-8.33644 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.088544,1.44821 -1.836066,1.36013 -4.400482,3.7861 -5.210117,4.92885 -4.330546,7.39489 -5.573371,9.9473 -0.557339,1.14462 0.555774,11.34283 4.124887,14.20518 4.425651,3.67189 3.014772,2.99206 5.483017,4.42434 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
-         transform="translate(-3.79843,-136.05164)"
-         inkscape:export-filename="ExportedSVG.svg"
-         inkscape:export-xdpi="96.036186"
-         inkscape:export-ydpi="96.036186" /><path
-         style="display:inline;;stroke-width:0.264583"
-         id="path9"
-         d="m 96.004598,61.964489 c 5.096542,-1.24348 9.644362,-0.84956 15.392512,0.0657 0.3221,0.0513 0.63108,0.16499 0.94663,0.24749 6.82636,2.32744 11.91707,4.66427 13.80019,14.80453 -0.0111,0.55201 -0.009,1.1041 -0.007,1.65618 -0.10139,5.164501 -3.15822,8.299819 -6.2863,11.822769 -0.61639,2.51876 0.11183,7.61715 0.56227,11.893402 -8.53518,3.12909 -8.43932,2.64832 -17.4577,2.37089 -0.11179,-0.008 -0.22354,-0.0164 -0.33538,-0.0237 -2.734147,0.13601 -2.61085,-0.11889 -4.923292,-1.5165 -1.06352,-5.760042 -0.10659,-0.44167 -0.86761,-4.896522 -0.49494,-2.22237 -2.133064,-1.36832 -2.324184,-0.79272 l -0.24451,3.023012 c -0.14899,1.84214 0.19115,3.26308 0.98005,4.37412 2.363744,2.81363 20.162036,5.21402 26.846466,-0.79463 0.10424,-0.14556 0.44804,-0.69799 0.43846,-0.87677 -0.20017,-3.736692 -0.52857,-7.652612 -0.84146,-11.377742 0.97971,-0.90358 3.1192,-2.04391 5.30897,-6.32532 0.0716,-0.146 0.12747,-0.29922 0.18791,-0.45018 1.80921,-3.365508 1.25761,-6.713449 1.15964,-10.492989 -2.66123,-11.14242 -14.36094,-14.75326 -14.98119,-14.92447 -10.59561,-2.75223 -10.47431,-1.61683 -17.841806,-1.26317 -0.90356,2.57077 0.33929,2.35181 0.487334,3.47663 z"
-         sodipodi:nodetypes="csccccccccccsccscssccccc" /><path
-         style="display:inline;;stroke-width:0.264583"
-         id="path10"
-         d="m 84.031918,84.581448 3.193549,1.88856 c 0.628636,1.75015 1.034708,2.55853 2.639197,4.12724 1.016939,0.89721 3.29332,2.92048 3.86312,1.29206 -0.34177,-0.26289 0.70335,2.54757 1.7174,1.5812 l 0.14222,-0.44003 -0.66296,-2.3085 -0.19647,-1.84682 c -0.59134,-3.30817 -1.11207,-1.70525 -9.445499,-5.958068 -0.176154,-0.0899 -1.272653,-1.12351 -2.151569,-0.35774 -0.702463,0.89316 0.03604,1.63334 0.901012,2.022098 z"
-         sodipodi:nodetypes="cccccccsscc"
-         inkscape:label="path10" /><path
-         style="display:inline;;stroke-width:0.264583"
-         id="path11"
-         d="m 108.12232,84.706318 c 1.81806,-0.486708 0.53483,-1.551138 0.29594,-1.634528 -0.23889,-0.0834 -13.182236,-0.17831 -13.966026,0.48317 -0.21034,0.009 -1.45075,1.097618 0.73222,1.021548 0,0 -0.0902,0.3662 0.14206,0.6984 0.45158,0.64598 5.614726,0.31196 5.614726,0.31196 2.30794,-0.0388 5.54339,-0.44213 7.18108,-0.88055 z"
-         sodipodi:nodetypes="zzccscz" /><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 97.928288,86.362318 c -0.34421,1.34034 4.141022,2.11918 6.423912,1.55596 2.28289,-0.56322 2.69334,-1.37325 2.82297,-1.14474 0.12964,0.22851 -2.37683,2.66936 -1.18921,3.21195 1.18762,0.54259 4.59709,-5.05596 3.1675,-5.35696 -1.42959,-0.300998 -1.35678,0.43732 -1.91161,0.33342 -0.55483,-0.10391 -3.1314,1.41354 -3.93437,1.63376 -0.80297,0.22021 -5.034972,-1.57373 -5.379192,-0.23339 z"
-         id="path12"
-         sodipodi:nodetypes="zzzzzzzz" /><path
-         style="display:inline;;stroke-width:0.174904"
-         id="path11-4"
-         d="m 116.30633,84.08153 c -1.22197,-0.13567 -0.50791,-0.9718 -0.36287,-1.05148 0.14503,-0.0797 8.46937,-1.47003 9.04379,-1.11261 0.13638,-0.0157 1.04987,0.57768 -0.36378,0.75122 0,0 0.0967,0.23313 -0.0178,0.47682 -0.22268,0.47386 -3.58247,0.78234 -3.58247,0.78234 -1.4902,0.21103 -3.61606,0.27592 -4.71681,0.15371 z"
-         sodipodi:nodetypes="zzccscz" /><path
-         style="display:inline;;stroke-width:0.174904"
-         d="m 123.04495,84.13204 c 0.36294,0.851828 -2.44303,1.827328 -3.97238,1.688698 -1.52936,-0.13865 -1.87904,-0.63267 -1.93843,-0.46811 -0.0593,0.16454 1.81188,1.52298 1.10436,2.0039 -0.70753,0.48093 -3.49313,-2.87485 -2.60434,-3.220698 0.8888,-0.34585 0.91975,0.15033 1.26606,0.0246 0.34631,-0.12565 2.16536,0.614398 2.70561,0.677778 0.54028,0.0634 3.07618,-1.557988 3.43912,-0.706178 z"
-         id="path12-7"
-         sodipodi:nodetypes="zzzzzzzz"
-         inkscape:label="path12-7" /><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 108.37032,93.095418 c -1.88611,-1.32028 1.59684,-6.19563 3.13566,-6.66427 1.95004,-0.60202 6.85922,4.26367 4.62098,5.9884 -2.23876,0.86067 -3.33244,-3.28237 -3.34785,-2.96276 -0.73479,1.5191 -2.52267,4.95891 -4.40879,3.63863 z"
-         id="path13"
-         sodipodi:nodetypes="zcccz" /><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 101.59278,104.89745 c -0.15287,-3.69414 -0.42638,-4.71642 -0.33119,-7.242812 0.88428,-1.11491 1.74783,4.069582 1.80325,7.192302 -1.13379,-0.0448 -0.0189,0.0659 -1.47206,0.0505 z"
-         id="path14"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;;stroke-width:0.244383"
-         d="m 106.89105,105.9419 c -0.13442,-3.58426 -0.37491,-4.57614 -0.29121,-7.027392 0.77753,-1.08176 1.53684,3.948552 1.58557,6.978392 -0.99692,-0.0435 -0.0166,0.0639 -1.29436,0.049 z"
-         id="path14-4"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;;stroke-width:0.264583"
-         d="m 114.69233,105.68178 c -0.52999,-3.65911 -0.4494,-4.71428 -1.00818,-7.179942 -1.07446,-0.93301 -0.96856,4.321842 -0.44797,7.401362 1.10615,-0.25281 0.0307,0.0613 1.45619,-0.22143 z"
-         id="path14-48"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;;stroke-width:0.248747"
-         d="m 117.45363,104.62953 c -0.23612,-3.61717 -0.51085,-4.62855 -0.49144,-7.093302 0.77135,-1.04977 1.69048,4.055922 1.82323,7.110242 -1.02796,-0.0949 -0.0154,0.0635 -1.33181,-0.017 z"
-         id="path14-48-1"
-         sodipodi:nodetypes="cccc"
-         inkscape:transform-center-x="-0.94743728"
-         inkscape:transform-center-y="1.0981634" /></g></g></svg>
+<script>
+  export let Class = "";
+  export let Style = "";
+</script>
+
+<svg
+  class={Class}
+  style={Style}
+  width="53.266724mm"
+  height="49.976624mm"
+  viewBox="0 0 53.266727 49.976624"
+  version="1.1"
+  id="svg1"
+  xml:space="preserve"
+  ><g
+    id="layer6"
+    transform="translate(-75.228843,-57.954247)"
+    ><g
+      id="layer3"
+      style="display:none;opacity:1"
+      ><rect
+        style="display:inline;fill:#f2f2f2;stroke-width:0.128722"
+        id="rect29"
+        width="59.00034"
+        height="62.58733"
+        x="72.94722"
+        y="51.200962"
+        ry="1.2272025"
+      /></g
+    ><g
+      id="layer2"
+      style="display:none"
+      ><g id="g69" style="display:inline"
+        ><rect
+          style="display:inline;;stroke-width:0.264583"
+          id="rect3"
+          width="4.979085"
+          height="130.34535"
+          x="37.466156"
+          y="17.522022"
+        /><rect
+          style=";stroke-width:0.264583"
+          id="rect3-2"
+          width="4.979085"
+          height="130.34535"
+          x="162.86777"
+          y="17.556767"
+        /><rect
+          style=";stroke-width:0.264583"
+          id="rect3-2-7"
+          width="4.979085"
+          height="130.34535"
+          x="17.536777"
+          y="-167.8186"
+          transform="rotate(90)"
+        /><rect
+          style=";stroke-width:0.264583"
+          id="rect3-2-7-6"
+          width="4.979085"
+          height="130.34535"
+          x="143.39011"
+          y="-167.67055"
+          transform="rotate(90)"
+        /></g
+      ></g
+    ><g
+      id="layer9"
+      style="display:none"
+      ><path
+        style="display:inline;;stroke-width:0.264583"
+        id="path69"
+        d="m 163.39213,26.01862 c 0.0595,1.760183 0.10362,3.520297 0.0865,5.281485 -0.0182,1.574702 -0.12409,3.146425 -0.24,4.716373 -0.13263,1.669346 -0.20918,3.342301 -0.24829,5.016272 -0.0311,1.795338 -0.0381,3.590941 -0.0674,5.386353 -0.0362,1.789428 -0.11946,3.577344 -0.17194,5.366256 -0.0629,1.804365 -0.0639,3.609742 -0.0709,5.414928 5.3e-4,1.878517 0.047,3.756628 0.0801,5.634762 0.12732,23.663539 1.17119,34.516993 -0.13963,48.862551 -0.21839,1.18058 -0.66339,12.29919 -0.80218,13.49183 -0.12893,1.09367 -0.20088,2.19281 -0.22473,3.29352 -0.0133,1.02629 0.0763,2.05064 0.17169,3.0715 0.0975,1.2208 0.15031,2.4443 0.19591,3.66791 0.0538,1.15451 0.0247,2.30919 -0.007,3.46364 -0.036,0.75303 -0.0547,1.50749 -0.14161,2.25687 -0.0917,0.69542 -0.15048,1.39319 -0.15933,2.09455 -0.006,0.64192 0.0536,1.28266 0.11035,1.92156 0.0493,0.33817 0.0355,0.6751 -0.0101,1.01203 -0.009,0.0349 -0.01,0.0728 -0.0264,0.10472 -0.018,0.0343 -0.0392,-0.0735 -0.0322,-0.11153 0.0239,-0.13026 0.0517,-0.26094 0.0982,-0.38497 0.28978,-0.77432 0.54206,-0.66164 1.45032,-1.33171 0.70226,-0.21534 1.40995,-0.075 1.99728,0.27724 -0.46721,-0.44423 -1.07871,-0.67285 -1.70487,-0.76906 -0.0843,0.004 -0.8737,-0.0591 -0.29755,0.028 0.30912,0.0601 -0.0964,-0.0119 -0.17735,-0.0276 -0.5318,-0.13119 -1.07477,-0.14733 -1.61973,-0.14178 -1.15619,0.087 -2.31145,0.15477 -3.47119,0.16447 -1.65654,-0.0606 -3.30593,-0.23332 -4.96081,-0.32638 -2.48886,-0.11776 -4.98288,-0.0852 -7.47408,-0.0968 -3.41703,-0.0447 -6.83123,-0.19478 -10.24705,-0.28624 -3.353,-0.1231 -6.70802,-0.10619 -10.06247,-0.0942 -3.28545,0.0414 -6.57092,0.0694 -9.85656,0.0939 -3.50933,0.0587 -7.01891,0.0952 -10.52862,0.12316 -3.46508,0.0181 -6.930044,0.0668 -10.395199,0.0633 -3.031641,0.0274 -6.063205,-0.0223 -9.094515,-0.0613 -2.772171,-0.0655 -5.545219,-0.003 -8.316452,0.0733 -2.947992,0.0921 -5.89676,0.0356 -8.845147,0.015 -2.598389,-0.0811 -5.19788,-0.0319 -7.795604,0.0448 -1.793804,0.0797 -3.588663,0.0779 -5.383504,0.0548 -1.213101,-0.0551 -2.427076,-0.0832 -3.640553,-0.12745 -1.118496,-0.0552 -2.236935,-0.11386 -3.356988,-0.11978 -0.932685,-0.0132 -1.864299,0.0386 -2.793325,0.11595 -0.601864,0.0496 -1.203889,0.0897 -1.807475,0.10905 -0.531786,0.009 -1.064276,0.005 -1.595712,0.0274 -0.333942,0.0106 -0.667888,0.0107 -1.001898,0.008 -0.299506,-0.0359 -0.04313,0.029 0.124833,0.0886 0.495276,0.1953 0.866307,0.56583 1.114338,1.03048 0.06866,0.083 0.03789,0.25924 0.148016,0.21499 0.05921,-0.30182 0.134881,-0.6001 0.216135,-0.89746 0.194146,-0.46519 0.306311,-0.95191 0.405561,-1.44461 0.132628,-0.86218 0.196821,-1.73315 0.224338,-2.6045 0.0077,-1.20037 0.05566,-2.39843 0.139935,-3.59569 0.128196,-1.4357 0.245142,-2.87091 0.319953,-4.31049 0.07363,-1.7705 0.01836,-3.54172 -0.02938,-5.31188 -0.04374,-1.95214 -0.209148,-3.8983 -0.324863,-5.84682 -0.135723,-2.34544 -0.314534,-4.68797 -0.471361,-7.03201 -0.177969,-2.62474 -0.321278,-5.25217 -0.412117,-7.88141 -0.06707,-2.22802 -0.108633,-4.45716 -0.120256,-6.686177 -0.02513,-2.03318 -0.03606,-4.06673 -0.03168,-6.10008 -0.0081,-1.938877 0.06149,-3.876817 0.08478,-5.815232 0.03685,-1.769692 0.02476,-3.540185 -0.0053,-5.309872 -0.02885,-1.549056 -0.05931,-3.097824 -0.04003,-4.647152 0.03622,-1.849994 0.197567,-3.693732 0.346128,-5.537084 0.214733,-2.1726 0.357195,-4.350078 0.456454,-6.530673 0.08438,-1.87742 0.113067,-3.756216 0.07616,-5.635062 -0.009,-1.700813 -0.08307,-3.400102 -0.103656,-5.10065 -0.01532,-2.054948 0.02151,-4.109636 0.03932,-6.164403 0.01532,-1.718209 0.05163,-3.436829 0.01987,-5.15498 -0.01815,-1.432354 -0.07851,-2.863374 -0.130717,-4.294701 -0.05593,-1.043702 -0.09372,-2.087314 -0.09444,-3.132495 0.0063,-0.930854 0.0029,-1.861645 -0.0016,-2.792502 -0.01521,-0.994743 -0.0346,-1.989368 -0.05969,-2.983931 -0.01431,-0.85235 -0.01857,-1.704734 -0.01942,-2.557182 -0.0048,-0.626981 0.03249,-1.25219 0.08404,-1.876636 0.06426,-0.611606 0.124761,-1.223436 0.173003,-1.836535 0.0342,-0.458368 0.04634,-0.917746 0.05898,-1.377051 1.4e-4,-0.416482 -0.03128,-0.83104 -0.06558,-1.245656 -0.003,-0.287881 -0.08889,-0.589679 -0.03344,-0.876421 0.02664,0.253241 -0.11549,0.474708 -0.24343,0.682085 0.0054,0.111512 -0.399354,0.346913 -0.413506,0.429467 -0.0024,0.01324 0.02191,0.01555 0.03287,0.02332 -0.06372,0.05104 0.439269,0.14739 0.33043,0.130068 -1.480685,-0.23565 -0.869106,-0.151677 -0.628417,-0.119195 0.247176,0.0308 0.479396,0.153834 0.706527,0.250951 0.803519,0.384886 1.664301,0.535836 2.554423,0.596807 0.241789,0.01656 0.484129,-0.02382 0.726191,-0.03573 1.970246,-0.146838 3.940215,-0.298869 5.910069,-0.451498 1.998935,-0.118673 3.995978,-0.255473 5.997562,-0.320937 0.869937,-0.02413 1.748552,-0.06734 2.594684,0.165319 -0.183504,-0.02834 -0.365868,-0.06546 -0.550516,-0.08502 -0.09715,-0.01029 0.191857,0.03707 0.287467,0.05715 0.118542,0.0249 0.236855,0.0509 0.354955,0.07781 0.440285,0.100313 0.879686,0.204709 1.319929,0.305286 1.277546,0.272523 2.561225,0.530444 3.865134,0.630862 1.140521,0.07535 2.283799,0.09645 3.425976,0.135536 1.136679,0.0453 2.272765,0.09915 3.410045,0.127668 1.197107,0.03539 2.393894,0.08255 3.590965,0.120672 1.384265,0.06666 2.769108,0.02006 4.153188,-0.01943 1.235527,-0.04678 2.471073,-0.08926 3.706662,-0.134066 1.447509,-0.04904 2.89329,-0.134458 4.339793,-0.205869 1.952779,-0.115921 3.902927,-0.270117 5.854153,-0.40893 2.471819,-0.222353 4.948634,-0.378607 7.428474,-0.473335 2.1382,-0.07717 4.27801,-0.08836 6.41721,-0.06057 1.71755,0.0252 3.4353,0.06832 5.15162,0.138455 10.50057,0.387832 11.60035,1.64247 19.93961,1.138729 1.30812,-0.08073 2.6178,-0.124719 3.92821,-0.138906 1.05471,-0.0085 2.10974,0.0074 3.16432,0.0261 1.50776,0.02751 3.01502,-0.02561 4.52174,-0.07453 1.91927,-0.07046 3.83912,-0.116101 5.75963,-0.129179 1.72621,-0.01165 3.45234,0.0073 5.17854,0.0106 1.12531,3.7e-4 2.24956,-0.04504 3.37279,-0.109232 0.49678,-0.02222 0.98525,-0.115864 1.47928,-0.164955 2.40585,-0.208716 3.17749,0.153543 6.97335,-2.013225 0.002,-0.224202 0.0252,-0.449355 0.005,-0.672605 -0.0404,-0.436022 -0.69067,-1.160197 -0.96289,-1.459515 -0.33605,-0.279591 -0.68345,-0.55033 -1.10429,-0.684216 -0.18966,-0.07399 -0.37622,-0.155972 -0.56356,-0.235572 -0.68219,-0.268348 -1.41446,-0.405489 -2.14635,-0.322702 -0.2015,0.01525 -0.40307,0.02219 -0.60494,0.02394 -0.25724,0.0074 -0.51393,0.02646 -0.76948,0.05697 -0.26762,0.03256 -0.5361,0.05498 -0.80487,0.07545 -0.43937,0.04227 -0.87932,0.07954 -1.31725,0.135475 -0.42693,0.06048 -0.85341,0.121273 -1.28203,0.168974 -1.00007,0.112086 -2.00515,0.170092 -3.01151,0.181348 -1.72689,0.03156 -3.45389,0.05228 -5.18098,0.06986 -1.94159,0.03541 -3.88316,0.0709 -5.82476,0.105277 -1.45049,0.01756 -2.90036,0.0077 -4.34996,-0.0514 -1.12259,-0.02204 -2.24506,-0.03886 -3.36747,0.007 -1.35152,0.05437 -2.70189,0.130468 -4.05194,0.213356 -1.34524,0.06743 -2.69319,0.108534 -4.0389,0.02446 -1.41056,-0.07943 -2.82164,-0.158508 -4.22845,-0.2907 -1.82753,-0.172195 -3.65197,-0.377074 -5.48137,-0.529642 -1.91997,-0.146004 -3.84053,-0.284824 -5.7651,-0.355539 -1.7739,-0.05967 -3.54783,-0.111522 -5.32311,-0.09521 -16.610702,0.245956 -16.775102,0.302062 -35.380558,1.03946 -1.120413,-0.0489 -2.24173,-0.0734 -3.361989,-0.12671 -1.036164,-0.04146 -2.075239,-0.06141 -3.105346,-0.191585 -0.0011,-1.5e-4 -0.820613,-0.12106 -0.826323,-0.119584 -0.120243,0.03107 0.490043,0.06424 0.365974,0.06983 -0.371697,0.01677 -0.926528,-0.202063 -1.303096,-0.2388 -1.107033,-0.242297 -2.182995,-0.610619 -3.313518,-0.744624 -7.509002,0.274045 -19.684266,-0.394035 -22.55762,1.094472 -0.196487,0.737623 -0.299767,3.383984 -0.250937,3.943321 0.01923,0.297216 0.04049,0.594694 0.04456,0.892535 0.006,0.37332 7.94e-4,0.746904 -0.01685,1.119872 -0.03028,0.605441 -0.08504,1.209008 -0.139887,1.812641 -0.05759,0.762161 -0.09165,1.525834 -0.07804,2.290358 0.01278,0.873993 0.0474,1.747451 0.07226,2.621158 0.0186,0.995276 0.02817,1.990672 0.0273,2.986127 0.01508,0.950688 0.01704,1.901487 0.01863,2.85228 0.02077,1.091073 0.07662,2.180775 0.146577,3.269774 0.0837,1.392047 0.148918,2.785531 0.183853,4.179678 0.02352,1.700956 0.04465,3.401838 0.04145,5.103027 -0.0053,2.065091 -0.003,4.130188 -0.02982,6.195174 -0.01595,1.732621 -0.01847,3.464324 0.05502,5.195972 0.0297,1.795817 0.08246,3.592213 0.0057,5.387834 -0.08218,2.111553 -0.229293,4.219419 -0.434448,6.322735 -0.190117,1.957843 -0.385892,3.917664 -0.418277,5.885992 -0.02627,1.595065 0.01773,3.189407 0.06782,4.783712 0.03629,1.724792 0.05631,3.449701 0.03172,5.174914 -0.03018,1.959374 -0.02577,3.919262 -0.04304,5.878798 0.0083,2.064631 0.0036,4.129318 0.03522,6.193814 0.06018,2.265913 0.119846,4.531853 0.221488,6.796433 0.135477,2.66326 0.272359,5.32639 0.425003,7.98874 0.140075,2.34265 0.286771,4.68509 0.392557,7.0296 0.10701,1.90802 0.227541,3.81581 0.279429,5.72634 0.03542,1.64444 0.05239,3.29073 -0.03726,4.93388 -0.09095,1.43955 -0.240848,2.87408 -0.360024,4.31143 -0.07382,1.21642 -0.121732,2.43423 -0.202462,3.65025 -0.04782,0.63487 -0.08273,1.27505 -0.233286,1.89605 -0.0992,0.43364 -0.270486,0.8487 -0.355663,1.28651 -0.131628,0.55462 -0.246184,1.11753 -0.284398,1.68709 -0.01638,0.60474 0.01746,1.209 0.25096,1.77626 0.35442,0.77954 0.900017,1.40746 1.708647,1.73575 0.394986,0.14092 0.789676,0.25441 1.212467,0.26224 0.453673,0.0315 0.908428,0.0324 1.362678,0.0105 0.522637,-0.007 1.044988,-0.0375 1.568021,-0.0348 0.693248,-0.0161 1.385533,-0.0585 2.074715,-0.1371 0.802266,-0.0688 1.604086,-0.15065 2.409782,-0.16768 1.062805,-0.009 2.123771,0.0235 3.185232,0.0753 1.260951,0.0476 2.522455,0.0963 3.784528,0.0913 1.861759,7.9e-4 3.722018,-0.0851 5.580756,-0.18568 2.527787,-0.11901 5.057182,-0.20108 7.588284,-0.15589 2.989265,0.0438 5.979705,0.026 8.968872,-0.0187 2.725187,-0.0211 5.450237,-0.0567 8.175577,-0.0566 3.055427,0.008 6.11073,0.0159 9.166072,-0.0182 3.467058,-0.0536 6.9346,-0.0552 10.40184,-0.0937 3.50742,-0.03 7.0146,-0.081 10.52212,-0.0943 3.28737,-0.0232 6.57474,-0.032 9.862,-0.0696 3.2959,-0.0473 6.59284,-0.0562 9.8886,0.007 3.42365,0.10679 6.84525,0.26146 10.26857,0.37449 2.42075,0.0834 4.84295,0.13144 7.26106,0.27964 1.70784,0.11895 3.4115,0.29052 5.12076,0.38767 1.21265,0.0508 2.42542,0.039 3.63862,0.009 0.20157,-0.007 0.40902,-0.0168 0.60745,0.0225 0.23559,0.0498 0.46974,0.10649 0.7079,0.14357 0.204,0.0262 0.35089,0.041 0.54496,0.0417 0.0396,1.5e-4 -0.29849,-0.0492 -0.15114,-0.0288 -0.36145,-0.0779 -0.71396,-0.22424 -0.98385,-0.4851 -0.0176,-0.017 0.0406,0.0272 0.061,0.0408 0.95875,0.71195 1.7562,1.00231 2.99358,0.70397 0.47341,-0.33457 0.98638,-0.61923 1.42022,-1.00373 0.16237,-0.1439 0.24428,-0.36042 0.33914,-0.55555 0.24476,-0.50338 0.32684,-1.05268 0.37067,-1.60333 0.0466,-0.63135 0.0451,-1.26307 -0.0298,-1.89268 -0.0485,-0.44137 -0.11011,-0.88132 -0.0854,-1.32705 0.0276,-0.59815 0.10549,-1.19084 0.16947,-1.7859 0.0562,-0.84398 0.0547,-1.69008 0.0661,-2.53559 0.0232,-1.24612 0.0109,-2.49243 -0.0409,-3.7378 -0.0473,-1.2781 -0.11402,-2.55564 -0.18468,-3.83263 -0.0409,-0.8809 -0.11589,-1.76092 -0.10757,-2.64346 0.0188,-0.94906 0.0857,-1.8965 0.1934,-2.83969 0.13673,-1.10838 0.31487,-2.20985 0.53611,-3.30473 0.20525,-1.24025 0.37747,-2.48372 0.42046,-3.74219 0.0986,-1.75493 0.14031,-3.51132 0.0671,-5.26855 -0.0519,-1.72024 -0.10589,-3.44195 -0.28309,-5.15493 -0.13609,-1.22309 -0.30674,-2.44487 -0.34996,-3.67593 -0.009,-1.18465 0.0423,-2.36869 0.14713,-3.54887 0.14468,-1.420641 0.32697,-2.837678 0.43167,-4.262068 0.0987,-1.363757 0.15922,-2.730529 0.20654,-4.096985 0.0384,-1.216991 0.0814,-2.43373 0.07,-3.651634 -0.004,-1.118317 -0.0244,-2.236856 -0.0862,-3.353639 -1.17136,-18.66192 0.12671,-3.461205 -0.36288,-22.83651 -0.0484,-1.829585 -0.0548,-3.659277 -0.0456,-5.489418 -0.006,-1.760723 0.007,-3.521726 0.0689,-5.281499 0.0662,-1.799116 0.13824,-3.598421 0.15975,-5.39872 0.0291,-1.779013 0.0612,-3.557971 0.0952,-5.336899 0.05,-1.58622 0.11097,-3.172323 0.24858,-4.753849 0.11861,-1.677617 0.22144,-3.357528 0.21571,-5.04018 -0.006,-1.780749 -0.0291,-3.561297 -0.0685,-5.341628 -0.0156,-1.301343 -0.0233,-2.603134 -0.0571,-3.904018 -0.10959,-1.458275 -0.38038,-2.555599 -1.59583,-3.504919 -0.21099,-0.116654 -0.4145,-0.248019 -0.63299,-0.34996 -0.84683,-0.395121 -1.8338,-0.387336 -2.74929,-0.426171 z"
+      /></g
+    ><g
+      id="layer8"
+      style="display:none"
+      ><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
+        id="path15-8-6"
+        transform="matrix(0.65020563,0.33970251,-0.22324428,0.87048882,120.05046,-123.23894)"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
+        id="path15-8-3"
+        transform="matrix(0.48882551,0.24039141,-0.17152546,0.51702769,69.636627,-50.620099)"
+      /></g
+    ><g
+      id="layer7"
+      style="display:inline"
+      ><path
+        style="display:inline;;stroke-width:0.264583"
+        id="path5"
+        d="m 98.292885,234.82624 c -8.680799,-4.48983 -16.470315,-11.93072 -15.00066,-20.7921 0.765571,-4.61605 5.79606,-11.01544 9.795137,-13.5047 2.011269,-1.25193 3.826261,-1.61336 6.837066,-2.52212 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.634661,1.82689 -8.003276,6.84988 -9.350733,11.94556 -0.267325,1.01094 -0.868817,5.00685 0.01287,8.78662 1.004539,4.30636 5.606377,9.67778 8.971911,11.63074 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
+        transform="translate(-3.79843,-136.05164)"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        id="path9"
+        d="m 96.004598,61.964489 c 5.096542,-1.24348 9.644362,-0.84956 15.392512,0.0657 0.3221,0.0513 0.63108,0.16499 0.94663,0.24749 6.82636,2.32744 11.91707,4.66427 13.80019,14.80453 -0.0111,0.55201 -0.009,1.1041 -0.007,1.65618 -0.10139,5.164501 -3.15822,8.299819 -6.2863,11.822769 -0.61639,2.51876 0.11183,7.61715 0.56227,11.893402 -8.53518,3.12909 -8.43932,2.64832 -17.4577,2.37089 -0.11179,-0.008 -0.22354,-0.0164 -0.33538,-0.0237 -2.734147,0.13601 -2.61085,-0.11889 -4.923292,-1.5165 -1.06352,-5.760042 -0.10659,-0.44167 -0.86761,-4.896522 -0.49494,-2.22237 -2.133064,-1.36832 -2.324184,-0.79272 l -0.24451,3.023012 c -0.14899,1.84214 0.19115,3.26308 0.98005,4.37412 2.363744,2.81363 20.162036,5.21402 26.846466,-0.79463 0.10424,-0.14556 0.44804,-0.69799 0.43846,-0.87677 -0.20017,-3.736692 -0.52857,-7.652612 -0.84146,-11.377742 0.97971,-0.90358 3.1192,-2.04391 5.30897,-6.32532 0.0716,-0.146 0.12747,-0.29922 0.18791,-0.45018 1.80921,-3.365508 1.25761,-6.713449 1.15964,-10.492989 -2.66123,-11.14242 -14.36094,-14.75326 -14.98119,-14.92447 -10.59561,-2.75223 -10.47431,-1.61683 -17.841806,-1.26317 -0.90356,2.57077 0.33929,2.35181 0.487334,3.47663 z"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        id="path10"
+        d="m 84.031918,84.581448 3.193549,1.88856 c 0.628636,1.75015 1.034708,2.55853 2.639197,4.12724 1.016939,0.89721 3.29332,2.92048 3.86312,1.29206 -0.34177,-0.26289 0.70335,2.54757 1.7174,1.5812 l 0.14222,-0.44003 -0.66296,-2.3085 -0.19647,-1.84682 c -0.59134,-3.30817 -1.11207,-1.70525 -9.445499,-5.958068 -0.176154,-0.0899 -1.272653,-1.12351 -2.151569,-0.35774 -0.702463,0.89316 0.03604,1.63334 0.901012,2.022098 z"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        id="path11"
+        d="m 108.12232,84.706318 c 1.81806,-0.486708 0.53483,-1.551138 0.29594,-1.634528 -0.23889,-0.0834 -13.182236,-0.17831 -13.966026,0.48317 -0.21034,0.009 -1.45075,1.097618 0.73222,1.021548 0,0 -0.0902,0.3662 0.14206,0.6984 0.45158,0.64598 5.614726,0.31196 5.614726,0.31196 2.30794,-0.0388 5.54339,-0.44213 7.18108,-0.88055 z"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 97.928288,86.362318 c -0.34421,1.34034 4.141022,2.11918 6.423912,1.55596 2.28289,-0.56322 2.69334,-1.37325 2.82297,-1.14474 0.12964,0.22851 -2.37683,2.66936 -1.18921,3.21195 1.18762,0.54259 4.59709,-5.05596 3.1675,-5.35696 -1.42959,-0.300998 -1.35678,0.43732 -1.91161,0.33342 -0.55483,-0.10391 -3.1314,1.41354 -3.93437,1.63376 -0.80297,0.22021 -5.034972,-1.57373 -5.379192,-0.23339 z"
+        id="path12"
+      /><path
+        style="display:inline;;stroke-width:0.174904"
+        id="path11-4"
+        d="m 116.30633,84.08153 c -1.22197,-0.13567 -0.50791,-0.9718 -0.36287,-1.05148 0.14503,-0.0797 8.46937,-1.47003 9.04379,-1.11261 0.13638,-0.0157 1.04987,0.57768 -0.36378,0.75122 0,0 0.0967,0.23313 -0.0178,0.47682 -0.22268,0.47386 -3.58247,0.78234 -3.58247,0.78234 -1.4902,0.21103 -3.61606,0.27592 -4.71681,0.15371 z"
+      /><path
+        style="display:inline;;stroke-width:0.174904"
+        d="m 123.04495,84.13204 c 0.36294,0.851828 -2.44303,1.827328 -3.97238,1.688698 -1.52936,-0.13865 -1.87904,-0.63267 -1.93843,-0.46811 -0.0593,0.16454 1.81188,1.52298 1.10436,2.0039 -0.70753,0.48093 -3.49313,-2.87485 -2.60434,-3.220698 0.8888,-0.34585 0.91975,0.15033 1.26606,0.0246 0.34631,-0.12565 2.16536,0.614398 2.70561,0.677778 0.54028,0.0634 3.07618,-1.557988 3.43912,-0.706178 z"
+        id="path12-7"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 108.37032,93.095418 c -1.88611,-1.32028 1.59684,-6.19563 3.13566,-6.66427 1.95004,-0.60202 6.85922,4.26367 4.62098,5.9884 -2.23876,0.86067 -3.33244,-3.28237 -3.34785,-2.96276 -0.73479,1.5191 -2.52267,4.95891 -4.40879,3.63863 z"
+        id="path13"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 101.59278,104.89745 c -0.15287,-3.69414 -0.42638,-4.71642 -0.33119,-7.242812 0.88428,-1.11491 1.74783,4.069582 1.80325,7.192302 -1.13379,-0.0448 -0.0189,0.0659 -1.47206,0.0505 z"
+        id="path14"
+      /><path
+        style="display:inline;;stroke-width:0.244383"
+        d="m 106.89105,105.9419 c -0.13442,-3.58426 -0.37491,-4.57614 -0.29121,-7.027392 0.77753,-1.08176 1.53684,3.948552 1.58557,6.978392 -0.99692,-0.0435 -0.0166,0.0639 -1.29436,0.049 z"
+        id="path14-4"
+      /><path
+        style="display:inline;;stroke-width:0.264583"
+        d="m 114.69233,105.68178 c -0.52999,-3.65911 -0.4494,-4.71428 -1.00818,-7.179942 -1.07446,-0.93301 -0.96856,4.321842 -0.44797,7.401362 1.10615,-0.25281 0.0307,0.0613 1.45619,-0.22143 z"
+        id="path14-48"
+      /><path
+        style="display:inline;;stroke-width:0.248747"
+        d="m 117.45363,104.62953 c -0.23612,-3.61717 -0.51085,-4.62855 -0.49144,-7.093302 0.77135,-1.04977 1.69048,4.055922 1.82323,7.110242 -1.02796,-0.0949 -0.0154,0.0635 -1.33181,-0.017 z"
+        id="path14-48-1"
+      /></g
+    ></g
+  ></svg
+>
diff --git a/src/lib/images/DeprivedLogo.svg b/src/lib/images/DeprivedLogo.svg
index 33d73a2..3b0c161 100644
--- a/src/lib/images/DeprivedLogo.svg
+++ b/src/lib/images/DeprivedLogo.svg
@@ -1,228 +1,228 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   width="53.266724mm"
-   height="49.976624mm"
-   viewBox="0 0 53.266727 49.976624"
-   version="1.1"
-   id="svg1"
-   xml:space="preserve"
-   inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
-   sodipodi:docname="DeprivedLogo-SkullI-Background.svg"
-   inkscape:export-filename="ExportedSVG.svg"
-   inkscape:export-xdpi="96.036186"
-   inkscape:export-ydpi="96.036186"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
-     id="namedview1"
-     pagecolor="#505050"
-     bordercolor="#eeeeee"
-     borderopacity="1"
-     inkscape:showpageshadow="0"
-     inkscape:pageopacity="0"
-     inkscape:pagecheckerboard="0"
-     inkscape:deskcolor="#505050"
-     inkscape:document-units="mm"
-     inkscape:zoom="2.9757808"
-     inkscape:cx="123.497"
-     inkscape:cy="140.63536"
-     inkscape:window-width="2560"
-     inkscape:window-height="1361"
-     inkscape:window-x="1591"
-     inkscape:window-y="-9"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="layer3"
-     inkscape:export-bgcolor="#ffffff00" /><defs
-     id="defs1"><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect9"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,8.5571463,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,9.7139083,0,1 @ F,0,0,1,0,7.0752071,0,1 @ F,0,1,1,0,9.7139083,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect15-0-4"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /><inkscape:path-effect
-       effect="fillet_chamfer"
-       id="path-effect15-0-54"
-       is_visible="true"
-       lpeversion="1"
-       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
-       radius="0"
-       unit="px"
-       method="auto"
-       mode="F"
-       chamfer_steps="1"
-       flexible="false"
-       use_knot_distance="true"
-       apply_no_radius="true"
-       apply_with_radius="true"
-       only_selected="false"
-       hide_knots="false" /></defs><g
-     inkscape:groupmode="layer"
-     id="layer6"
-     inkscape:label="FullProfil"
-     transform="translate(-75.228843,-57.954247)"><g
-       inkscape:groupmode="layer"
-       id="layer3"
-       inkscape:label="BackgroundColourLayer"
-       style="display:none;opacity:1"
-       inkscape:highlight-color="#b8d8be"><rect
-         style="display:inline;fill:#f2f2f2;stroke-width:0.128722"
-         id="rect29"
-         width="59.00034"
-         height="62.58733"
-         x="72.94722"
-         y="51.200962"
-         ry="1.2272025"
-         inkscape:label="Background Colour" /></g><g
-       inkscape:groupmode="layer"
-       id="layer2"
-       inkscape:label="MainBorder"
-       style="display:none"
-       inkscape:highlight-color="#4436a9"><g
-         id="g69"
-         style="display:inline"><rect
-           style="display:inline;fill:#000000;stroke-width:0.264583"
-           id="rect3"
-           width="4.979085"
-           height="130.34535"
-           x="37.466156"
-           y="17.522022" /><rect
-           style="fill:#000000;stroke-width:0.264583"
-           id="rect3-2"
-           width="4.979085"
-           height="130.34535"
-           x="162.86777"
-           y="17.556767" /><rect
-           style="fill:#000000;stroke-width:0.264583"
-           id="rect3-2-7"
-           width="4.979085"
-           height="130.34535"
-           x="17.536777"
-           y="-167.8186"
-           transform="rotate(90)" /><rect
-           style="fill:#000000;stroke-width:0.264583"
-           id="rect3-2-7-6"
-           width="4.979085"
-           height="130.34535"
-           x="143.39011"
-           y="-167.67055"
-           transform="rotate(90)"
-           inkscape:label="rect3-2-7-6" /></g></g><g
-       inkscape:groupmode="layer"
-       id="layer9"
-       inkscape:label="AltBorder"
-       style="display:none"
-       inkscape:highlight-color="#3691a9"><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         id="path69"
-         d="m 163.39213,26.01862 c 0.0595,1.760183 0.10362,3.520297 0.0865,5.281485 -0.0182,1.574702 -0.12409,3.146425 -0.24,4.716373 -0.13263,1.669346 -0.20918,3.342301 -0.24829,5.016272 -0.0311,1.795338 -0.0381,3.590941 -0.0674,5.386353 -0.0362,1.789428 -0.11946,3.577344 -0.17194,5.366256 -0.0629,1.804365 -0.0639,3.609742 -0.0709,5.414928 5.3e-4,1.878517 0.047,3.756628 0.0801,5.634762 0.12732,23.663539 1.17119,34.516993 -0.13963,48.862551 -0.21839,1.18058 -0.66339,12.29919 -0.80218,13.49183 -0.12893,1.09367 -0.20088,2.19281 -0.22473,3.29352 -0.0133,1.02629 0.0763,2.05064 0.17169,3.0715 0.0975,1.2208 0.15031,2.4443 0.19591,3.66791 0.0538,1.15451 0.0247,2.30919 -0.007,3.46364 -0.036,0.75303 -0.0547,1.50749 -0.14161,2.25687 -0.0917,0.69542 -0.15048,1.39319 -0.15933,2.09455 -0.006,0.64192 0.0536,1.28266 0.11035,1.92156 0.0493,0.33817 0.0355,0.6751 -0.0101,1.01203 -0.009,0.0349 -0.01,0.0728 -0.0264,0.10472 -0.018,0.0343 -0.0392,-0.0735 -0.0322,-0.11153 0.0239,-0.13026 0.0517,-0.26094 0.0982,-0.38497 0.28978,-0.77432 0.54206,-0.66164 1.45032,-1.33171 0.70226,-0.21534 1.40995,-0.075 1.99728,0.27724 -0.46721,-0.44423 -1.07871,-0.67285 -1.70487,-0.76906 -0.0843,0.004 -0.8737,-0.0591 -0.29755,0.028 0.30912,0.0601 -0.0964,-0.0119 -0.17735,-0.0276 -0.5318,-0.13119 -1.07477,-0.14733 -1.61973,-0.14178 -1.15619,0.087 -2.31145,0.15477 -3.47119,0.16447 -1.65654,-0.0606 -3.30593,-0.23332 -4.96081,-0.32638 -2.48886,-0.11776 -4.98288,-0.0852 -7.47408,-0.0968 -3.41703,-0.0447 -6.83123,-0.19478 -10.24705,-0.28624 -3.353,-0.1231 -6.70802,-0.10619 -10.06247,-0.0942 -3.28545,0.0414 -6.57092,0.0694 -9.85656,0.0939 -3.50933,0.0587 -7.01891,0.0952 -10.52862,0.12316 -3.46508,0.0181 -6.930044,0.0668 -10.395199,0.0633 -3.031641,0.0274 -6.063205,-0.0223 -9.094515,-0.0613 -2.772171,-0.0655 -5.545219,-0.003 -8.316452,0.0733 -2.947992,0.0921 -5.89676,0.0356 -8.845147,0.015 -2.598389,-0.0811 -5.19788,-0.0319 -7.795604,0.0448 -1.793804,0.0797 -3.588663,0.0779 -5.383504,0.0548 -1.213101,-0.0551 -2.427076,-0.0832 -3.640553,-0.12745 -1.118496,-0.0552 -2.236935,-0.11386 -3.356988,-0.11978 -0.932685,-0.0132 -1.864299,0.0386 -2.793325,0.11595 -0.601864,0.0496 -1.203889,0.0897 -1.807475,0.10905 -0.531786,0.009 -1.064276,0.005 -1.595712,0.0274 -0.333942,0.0106 -0.667888,0.0107 -1.001898,0.008 -0.299506,-0.0359 -0.04313,0.029 0.124833,0.0886 0.495276,0.1953 0.866307,0.56583 1.114338,1.03048 0.06866,0.083 0.03789,0.25924 0.148016,0.21499 0.05921,-0.30182 0.134881,-0.6001 0.216135,-0.89746 0.194146,-0.46519 0.306311,-0.95191 0.405561,-1.44461 0.132628,-0.86218 0.196821,-1.73315 0.224338,-2.6045 0.0077,-1.20037 0.05566,-2.39843 0.139935,-3.59569 0.128196,-1.4357 0.245142,-2.87091 0.319953,-4.31049 0.07363,-1.7705 0.01836,-3.54172 -0.02938,-5.31188 -0.04374,-1.95214 -0.209148,-3.8983 -0.324863,-5.84682 -0.135723,-2.34544 -0.314534,-4.68797 -0.471361,-7.03201 -0.177969,-2.62474 -0.321278,-5.25217 -0.412117,-7.88141 -0.06707,-2.22802 -0.108633,-4.45716 -0.120256,-6.686177 -0.02513,-2.03318 -0.03606,-4.06673 -0.03168,-6.10008 -0.0081,-1.938877 0.06149,-3.876817 0.08478,-5.815232 0.03685,-1.769692 0.02476,-3.540185 -0.0053,-5.309872 -0.02885,-1.549056 -0.05931,-3.097824 -0.04003,-4.647152 0.03622,-1.849994 0.197567,-3.693732 0.346128,-5.537084 0.214733,-2.1726 0.357195,-4.350078 0.456454,-6.530673 0.08438,-1.87742 0.113067,-3.756216 0.07616,-5.635062 -0.009,-1.700813 -0.08307,-3.400102 -0.103656,-5.10065 -0.01532,-2.054948 0.02151,-4.109636 0.03932,-6.164403 0.01532,-1.718209 0.05163,-3.436829 0.01987,-5.15498 -0.01815,-1.432354 -0.07851,-2.863374 -0.130717,-4.294701 -0.05593,-1.043702 -0.09372,-2.087314 -0.09444,-3.132495 0.0063,-0.930854 0.0029,-1.861645 -0.0016,-2.792502 -0.01521,-0.994743 -0.0346,-1.989368 -0.05969,-2.983931 -0.01431,-0.85235 -0.01857,-1.704734 -0.01942,-2.557182 -0.0048,-0.626981 0.03249,-1.25219 0.08404,-1.876636 0.06426,-0.611606 0.124761,-1.223436 0.173003,-1.836535 0.0342,-0.458368 0.04634,-0.917746 0.05898,-1.377051 1.4e-4,-0.416482 -0.03128,-0.83104 -0.06558,-1.245656 -0.003,-0.287881 -0.08889,-0.589679 -0.03344,-0.876421 0.02664,0.253241 -0.11549,0.474708 -0.24343,0.682085 0.0054,0.111512 -0.399354,0.346913 -0.413506,0.429467 -0.0024,0.01324 0.02191,0.01555 0.03287,0.02332 -0.06372,0.05104 0.439269,0.14739 0.33043,0.130068 -1.480685,-0.23565 -0.869106,-0.151677 -0.628417,-0.119195 0.247176,0.0308 0.479396,0.153834 0.706527,0.250951 0.803519,0.384886 1.664301,0.535836 2.554423,0.596807 0.241789,0.01656 0.484129,-0.02382 0.726191,-0.03573 1.970246,-0.146838 3.940215,-0.298869 5.910069,-0.451498 1.998935,-0.118673 3.995978,-0.255473 5.997562,-0.320937 0.869937,-0.02413 1.748552,-0.06734 2.594684,0.165319 -0.183504,-0.02834 -0.365868,-0.06546 -0.550516,-0.08502 -0.09715,-0.01029 0.191857,0.03707 0.287467,0.05715 0.118542,0.0249 0.236855,0.0509 0.354955,0.07781 0.440285,0.100313 0.879686,0.204709 1.319929,0.305286 1.277546,0.272523 2.561225,0.530444 3.865134,0.630862 1.140521,0.07535 2.283799,0.09645 3.425976,0.135536 1.136679,0.0453 2.272765,0.09915 3.410045,0.127668 1.197107,0.03539 2.393894,0.08255 3.590965,0.120672 1.384265,0.06666 2.769108,0.02006 4.153188,-0.01943 1.235527,-0.04678 2.471073,-0.08926 3.706662,-0.134066 1.447509,-0.04904 2.89329,-0.134458 4.339793,-0.205869 1.952779,-0.115921 3.902927,-0.270117 5.854153,-0.40893 2.471819,-0.222353 4.948634,-0.378607 7.428474,-0.473335 2.1382,-0.07717 4.27801,-0.08836 6.41721,-0.06057 1.71755,0.0252 3.4353,0.06832 5.15162,0.138455 10.50057,0.387832 11.60035,1.64247 19.93961,1.138729 1.30812,-0.08073 2.6178,-0.124719 3.92821,-0.138906 1.05471,-0.0085 2.10974,0.0074 3.16432,0.0261 1.50776,0.02751 3.01502,-0.02561 4.52174,-0.07453 1.91927,-0.07046 3.83912,-0.116101 5.75963,-0.129179 1.72621,-0.01165 3.45234,0.0073 5.17854,0.0106 1.12531,3.7e-4 2.24956,-0.04504 3.37279,-0.109232 0.49678,-0.02222 0.98525,-0.115864 1.47928,-0.164955 2.40585,-0.208716 3.17749,0.153543 6.97335,-2.013225 0.002,-0.224202 0.0252,-0.449355 0.005,-0.672605 -0.0404,-0.436022 -0.69067,-1.160197 -0.96289,-1.459515 -0.33605,-0.279591 -0.68345,-0.55033 -1.10429,-0.684216 -0.18966,-0.07399 -0.37622,-0.155972 -0.56356,-0.235572 -0.68219,-0.268348 -1.41446,-0.405489 -2.14635,-0.322702 -0.2015,0.01525 -0.40307,0.02219 -0.60494,0.02394 -0.25724,0.0074 -0.51393,0.02646 -0.76948,0.05697 -0.26762,0.03256 -0.5361,0.05498 -0.80487,0.07545 -0.43937,0.04227 -0.87932,0.07954 -1.31725,0.135475 -0.42693,0.06048 -0.85341,0.121273 -1.28203,0.168974 -1.00007,0.112086 -2.00515,0.170092 -3.01151,0.181348 -1.72689,0.03156 -3.45389,0.05228 -5.18098,0.06986 -1.94159,0.03541 -3.88316,0.0709 -5.82476,0.105277 -1.45049,0.01756 -2.90036,0.0077 -4.34996,-0.0514 -1.12259,-0.02204 -2.24506,-0.03886 -3.36747,0.007 -1.35152,0.05437 -2.70189,0.130468 -4.05194,0.213356 -1.34524,0.06743 -2.69319,0.108534 -4.0389,0.02446 -1.41056,-0.07943 -2.82164,-0.158508 -4.22845,-0.2907 -1.82753,-0.172195 -3.65197,-0.377074 -5.48137,-0.529642 -1.91997,-0.146004 -3.84053,-0.284824 -5.7651,-0.355539 -1.7739,-0.05967 -3.54783,-0.111522 -5.32311,-0.09521 -16.610702,0.245956 -16.775102,0.302062 -35.380558,1.03946 -1.120413,-0.0489 -2.24173,-0.0734 -3.361989,-0.12671 -1.036164,-0.04146 -2.075239,-0.06141 -3.105346,-0.191585 -0.0011,-1.5e-4 -0.820613,-0.12106 -0.826323,-0.119584 -0.120243,0.03107 0.490043,0.06424 0.365974,0.06983 -0.371697,0.01677 -0.926528,-0.202063 -1.303096,-0.2388 -1.107033,-0.242297 -2.182995,-0.610619 -3.313518,-0.744624 -7.509002,0.274045 -19.684266,-0.394035 -22.55762,1.094472 -0.196487,0.737623 -0.299767,3.383984 -0.250937,3.943321 0.01923,0.297216 0.04049,0.594694 0.04456,0.892535 0.006,0.37332 7.94e-4,0.746904 -0.01685,1.119872 -0.03028,0.605441 -0.08504,1.209008 -0.139887,1.812641 -0.05759,0.762161 -0.09165,1.525834 -0.07804,2.290358 0.01278,0.873993 0.0474,1.747451 0.07226,2.621158 0.0186,0.995276 0.02817,1.990672 0.0273,2.986127 0.01508,0.950688 0.01704,1.901487 0.01863,2.85228 0.02077,1.091073 0.07662,2.180775 0.146577,3.269774 0.0837,1.392047 0.148918,2.785531 0.183853,4.179678 0.02352,1.700956 0.04465,3.401838 0.04145,5.103027 -0.0053,2.065091 -0.003,4.130188 -0.02982,6.195174 -0.01595,1.732621 -0.01847,3.464324 0.05502,5.195972 0.0297,1.795817 0.08246,3.592213 0.0057,5.387834 -0.08218,2.111553 -0.229293,4.219419 -0.434448,6.322735 -0.190117,1.957843 -0.385892,3.917664 -0.418277,5.885992 -0.02627,1.595065 0.01773,3.189407 0.06782,4.783712 0.03629,1.724792 0.05631,3.449701 0.03172,5.174914 -0.03018,1.959374 -0.02577,3.919262 -0.04304,5.878798 0.0083,2.064631 0.0036,4.129318 0.03522,6.193814 0.06018,2.265913 0.119846,4.531853 0.221488,6.796433 0.135477,2.66326 0.272359,5.32639 0.425003,7.98874 0.140075,2.34265 0.286771,4.68509 0.392557,7.0296 0.10701,1.90802 0.227541,3.81581 0.279429,5.72634 0.03542,1.64444 0.05239,3.29073 -0.03726,4.93388 -0.09095,1.43955 -0.240848,2.87408 -0.360024,4.31143 -0.07382,1.21642 -0.121732,2.43423 -0.202462,3.65025 -0.04782,0.63487 -0.08273,1.27505 -0.233286,1.89605 -0.0992,0.43364 -0.270486,0.8487 -0.355663,1.28651 -0.131628,0.55462 -0.246184,1.11753 -0.284398,1.68709 -0.01638,0.60474 0.01746,1.209 0.25096,1.77626 0.35442,0.77954 0.900017,1.40746 1.708647,1.73575 0.394986,0.14092 0.789676,0.25441 1.212467,0.26224 0.453673,0.0315 0.908428,0.0324 1.362678,0.0105 0.522637,-0.007 1.044988,-0.0375 1.568021,-0.0348 0.693248,-0.0161 1.385533,-0.0585 2.074715,-0.1371 0.802266,-0.0688 1.604086,-0.15065 2.409782,-0.16768 1.062805,-0.009 2.123771,0.0235 3.185232,0.0753 1.260951,0.0476 2.522455,0.0963 3.784528,0.0913 1.861759,7.9e-4 3.722018,-0.0851 5.580756,-0.18568 2.527787,-0.11901 5.057182,-0.20108 7.588284,-0.15589 2.989265,0.0438 5.979705,0.026 8.968872,-0.0187 2.725187,-0.0211 5.450237,-0.0567 8.175577,-0.0566 3.055427,0.008 6.11073,0.0159 9.166072,-0.0182 3.467058,-0.0536 6.9346,-0.0552 10.40184,-0.0937 3.50742,-0.03 7.0146,-0.081 10.52212,-0.0943 3.28737,-0.0232 6.57474,-0.032 9.862,-0.0696 3.2959,-0.0473 6.59284,-0.0562 9.8886,0.007 3.42365,0.10679 6.84525,0.26146 10.26857,0.37449 2.42075,0.0834 4.84295,0.13144 7.26106,0.27964 1.70784,0.11895 3.4115,0.29052 5.12076,0.38767 1.21265,0.0508 2.42542,0.039 3.63862,0.009 0.20157,-0.007 0.40902,-0.0168 0.60745,0.0225 0.23559,0.0498 0.46974,0.10649 0.7079,0.14357 0.204,0.0262 0.35089,0.041 0.54496,0.0417 0.0396,1.5e-4 -0.29849,-0.0492 -0.15114,-0.0288 -0.36145,-0.0779 -0.71396,-0.22424 -0.98385,-0.4851 -0.0176,-0.017 0.0406,0.0272 0.061,0.0408 0.95875,0.71195 1.7562,1.00231 2.99358,0.70397 0.47341,-0.33457 0.98638,-0.61923 1.42022,-1.00373 0.16237,-0.1439 0.24428,-0.36042 0.33914,-0.55555 0.24476,-0.50338 0.32684,-1.05268 0.37067,-1.60333 0.0466,-0.63135 0.0451,-1.26307 -0.0298,-1.89268 -0.0485,-0.44137 -0.11011,-0.88132 -0.0854,-1.32705 0.0276,-0.59815 0.10549,-1.19084 0.16947,-1.7859 0.0562,-0.84398 0.0547,-1.69008 0.0661,-2.53559 0.0232,-1.24612 0.0109,-2.49243 -0.0409,-3.7378 -0.0473,-1.2781 -0.11402,-2.55564 -0.18468,-3.83263 -0.0409,-0.8809 -0.11589,-1.76092 -0.10757,-2.64346 0.0188,-0.94906 0.0857,-1.8965 0.1934,-2.83969 0.13673,-1.10838 0.31487,-2.20985 0.53611,-3.30473 0.20525,-1.24025 0.37747,-2.48372 0.42046,-3.74219 0.0986,-1.75493 0.14031,-3.51132 0.0671,-5.26855 -0.0519,-1.72024 -0.10589,-3.44195 -0.28309,-5.15493 -0.13609,-1.22309 -0.30674,-2.44487 -0.34996,-3.67593 -0.009,-1.18465 0.0423,-2.36869 0.14713,-3.54887 0.14468,-1.420641 0.32697,-2.837678 0.43167,-4.262068 0.0987,-1.363757 0.15922,-2.730529 0.20654,-4.096985 0.0384,-1.216991 0.0814,-2.43373 0.07,-3.651634 -0.004,-1.118317 -0.0244,-2.236856 -0.0862,-3.353639 -1.17136,-18.66192 0.12671,-3.461205 -0.36288,-22.83651 -0.0484,-1.829585 -0.0548,-3.659277 -0.0456,-5.489418 -0.006,-1.760723 0.007,-3.521726 0.0689,-5.281499 0.0662,-1.799116 0.13824,-3.598421 0.15975,-5.39872 0.0291,-1.779013 0.0612,-3.557971 0.0952,-5.336899 0.05,-1.58622 0.11097,-3.172323 0.24858,-4.753849 0.11861,-1.677617 0.22144,-3.357528 0.21571,-5.04018 -0.006,-1.780749 -0.0291,-3.561297 -0.0685,-5.341628 -0.0156,-1.301343 -0.0233,-2.603134 -0.0571,-3.904018 -0.10959,-1.458275 -0.38038,-2.555599 -1.59583,-3.504919 -0.21099,-0.116654 -0.4145,-0.248019 -0.63299,-0.34996 -0.84683,-0.395121 -1.8338,-0.387336 -2.74929,-0.426171 z"
-         sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccsccccsssccccccccccccccccccccccccccccccccccccccccccccssccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscsccsscccccccccccccccccccccccccccccscc" /></g><g
-       inkscape:groupmode="layer"
-       id="layer8"
-       inkscape:label="ZIcon"
-       style="display:none"><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
-         id="path15-8-6"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:path-effect="#path-effect15-0-54"
-         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
-         transform="matrix(0.65020563,0.33970251,-0.22324428,0.87048882,120.05046,-123.23894)" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
-         id="path15-8-3"
-         sodipodi:nodetypes="ccccccc"
-         inkscape:path-effect="#path-effect15-0-4"
-         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
-         transform="matrix(0.48882551,0.24039141,-0.17152546,0.51702769,69.636627,-50.620099)" /></g><g
-       inkscape:groupmode="layer"
-       id="layer7"
-       inkscape:label="SkeletonIcon"
-       inkscape:highlight-color="#ffffff"
-       style="display:inline"><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         id="path5"
-         d="m 98.292885,234.82624 c -8.680799,-4.48983 -16.470315,-11.93072 -15.00066,-20.7921 0.765571,-4.61605 5.79606,-11.01544 9.795137,-13.5047 2.011269,-1.25193 3.826261,-1.61336 6.837066,-2.52212 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.634661,1.82689 -8.003276,6.84988 -9.350733,11.94556 -0.267325,1.01094 -0.868817,5.00685 0.01287,8.78662 1.004539,4.30636 5.606377,9.67778 8.971911,11.63074 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
-         sodipodi:nodetypes="csccsssscccc"
-         inkscape:path-effect="#path-effect9"
-         inkscape:original-d="m 98.292885,234.82624 c -11.095134,-5.73856 -20.734268,-16.29797 -11.445733,-28.48248 6.057326,-6.84391 7.558219,-6.67061 13.077276,-8.33644 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.088544,1.44821 -1.836066,1.36013 -4.400482,3.7861 -5.210117,4.92885 -4.330546,7.39489 -5.573371,9.9473 -0.557339,1.14462 0.555774,11.34283 4.124887,14.20518 4.425651,3.67189 3.014772,2.99206 5.483017,4.42434 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
-         transform="translate(-3.79843,-136.05164)"
-         inkscape:export-filename="ExportedSVG.svg"
-         inkscape:export-xdpi="96.036186"
-         inkscape:export-ydpi="96.036186" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         id="path9"
-         d="m 96.004598,61.964489 c 5.096542,-1.24348 9.644362,-0.84956 15.392512,0.0657 0.3221,0.0513 0.63108,0.16499 0.94663,0.24749 6.82636,2.32744 11.91707,4.66427 13.80019,14.80453 -0.0111,0.55201 -0.009,1.1041 -0.007,1.65618 -0.10139,5.164501 -3.15822,8.299819 -6.2863,11.822769 -0.61639,2.51876 0.11183,7.61715 0.56227,11.893402 -8.53518,3.12909 -8.43932,2.64832 -17.4577,2.37089 -0.11179,-0.008 -0.22354,-0.0164 -0.33538,-0.0237 -2.734147,0.13601 -2.61085,-0.11889 -4.923292,-1.5165 -1.06352,-5.760042 -0.10659,-0.44167 -0.86761,-4.896522 -0.49494,-2.22237 -2.133064,-1.36832 -2.324184,-0.79272 l -0.24451,3.023012 c -0.14899,1.84214 0.19115,3.26308 0.98005,4.37412 2.363744,2.81363 20.162036,5.21402 26.846466,-0.79463 0.10424,-0.14556 0.44804,-0.69799 0.43846,-0.87677 -0.20017,-3.736692 -0.52857,-7.652612 -0.84146,-11.377742 0.97971,-0.90358 3.1192,-2.04391 5.30897,-6.32532 0.0716,-0.146 0.12747,-0.29922 0.18791,-0.45018 1.80921,-3.365508 1.25761,-6.713449 1.15964,-10.492989 -2.66123,-11.14242 -14.36094,-14.75326 -14.98119,-14.92447 -10.59561,-2.75223 -10.47431,-1.61683 -17.841806,-1.26317 -0.90356,2.57077 0.33929,2.35181 0.487334,3.47663 z"
-         sodipodi:nodetypes="csccccccccccsccscssccccc" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         id="path10"
-         d="m 84.031918,84.581448 3.193549,1.88856 c 0.628636,1.75015 1.034708,2.55853 2.639197,4.12724 1.016939,0.89721 3.29332,2.92048 3.86312,1.29206 -0.34177,-0.26289 0.70335,2.54757 1.7174,1.5812 l 0.14222,-0.44003 -0.66296,-2.3085 -0.19647,-1.84682 c -0.59134,-3.30817 -1.11207,-1.70525 -9.445499,-5.958068 -0.176154,-0.0899 -1.272653,-1.12351 -2.151569,-0.35774 -0.702463,0.89316 0.03604,1.63334 0.901012,2.022098 z"
-         sodipodi:nodetypes="cccccccsscc"
-         inkscape:label="path10" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         id="path11"
-         d="m 108.12232,84.706318 c 1.81806,-0.486708 0.53483,-1.551138 0.29594,-1.634528 -0.23889,-0.0834 -13.182236,-0.17831 -13.966026,0.48317 -0.21034,0.009 -1.45075,1.097618 0.73222,1.021548 0,0 -0.0902,0.3662 0.14206,0.6984 0.45158,0.64598 5.614726,0.31196 5.614726,0.31196 2.30794,-0.0388 5.54339,-0.44213 7.18108,-0.88055 z"
-         sodipodi:nodetypes="zzccscz" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 97.928288,86.362318 c -0.34421,1.34034 4.141022,2.11918 6.423912,1.55596 2.28289,-0.56322 2.69334,-1.37325 2.82297,-1.14474 0.12964,0.22851 -2.37683,2.66936 -1.18921,3.21195 1.18762,0.54259 4.59709,-5.05596 3.1675,-5.35696 -1.42959,-0.300998 -1.35678,0.43732 -1.91161,0.33342 -0.55483,-0.10391 -3.1314,1.41354 -3.93437,1.63376 -0.80297,0.22021 -5.034972,-1.57373 -5.379192,-0.23339 z"
-         id="path12"
-         sodipodi:nodetypes="zzzzzzzz" /><path
-         style="display:inline;fill:#000000;stroke-width:0.174904"
-         id="path11-4"
-         d="m 116.30633,84.08153 c -1.22197,-0.13567 -0.50791,-0.9718 -0.36287,-1.05148 0.14503,-0.0797 8.46937,-1.47003 9.04379,-1.11261 0.13638,-0.0157 1.04987,0.57768 -0.36378,0.75122 0,0 0.0967,0.23313 -0.0178,0.47682 -0.22268,0.47386 -3.58247,0.78234 -3.58247,0.78234 -1.4902,0.21103 -3.61606,0.27592 -4.71681,0.15371 z"
-         sodipodi:nodetypes="zzccscz" /><path
-         style="display:inline;fill:#000000;stroke-width:0.174904"
-         d="m 123.04495,84.13204 c 0.36294,0.851828 -2.44303,1.827328 -3.97238,1.688698 -1.52936,-0.13865 -1.87904,-0.63267 -1.93843,-0.46811 -0.0593,0.16454 1.81188,1.52298 1.10436,2.0039 -0.70753,0.48093 -3.49313,-2.87485 -2.60434,-3.220698 0.8888,-0.34585 0.91975,0.15033 1.26606,0.0246 0.34631,-0.12565 2.16536,0.614398 2.70561,0.677778 0.54028,0.0634 3.07618,-1.557988 3.43912,-0.706178 z"
-         id="path12-7"
-         sodipodi:nodetypes="zzzzzzzz"
-         inkscape:label="path12-7" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 108.37032,93.095418 c -1.88611,-1.32028 1.59684,-6.19563 3.13566,-6.66427 1.95004,-0.60202 6.85922,4.26367 4.62098,5.9884 -2.23876,0.86067 -3.33244,-3.28237 -3.34785,-2.96276 -0.73479,1.5191 -2.52267,4.95891 -4.40879,3.63863 z"
-         id="path13"
-         sodipodi:nodetypes="zcccz" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 101.59278,104.89745 c -0.15287,-3.69414 -0.42638,-4.71642 -0.33119,-7.242812 0.88428,-1.11491 1.74783,4.069582 1.80325,7.192302 -1.13379,-0.0448 -0.0189,0.0659 -1.47206,0.0505 z"
-         id="path14"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;fill:#000000;stroke-width:0.244383"
-         d="m 106.89105,105.9419 c -0.13442,-3.58426 -0.37491,-4.57614 -0.29121,-7.027392 0.77753,-1.08176 1.53684,3.948552 1.58557,6.978392 -0.99692,-0.0435 -0.0166,0.0639 -1.29436,0.049 z"
-         id="path14-4"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;fill:#000000;stroke-width:0.264583"
-         d="m 114.69233,105.68178 c -0.52999,-3.65911 -0.4494,-4.71428 -1.00818,-7.179942 -1.07446,-0.93301 -0.96856,4.321842 -0.44797,7.401362 1.10615,-0.25281 0.0307,0.0613 1.45619,-0.22143 z"
-         id="path14-48"
-         sodipodi:nodetypes="cccc" /><path
-         style="display:inline;fill:#000000;stroke-width:0.248747"
-         d="m 117.45363,104.62953 c -0.23612,-3.61717 -0.51085,-4.62855 -0.49144,-7.093302 0.77135,-1.04977 1.69048,4.055922 1.82323,7.110242 -1.02796,-0.0949 -0.0154,0.0635 -1.33181,-0.017 z"
-         id="path14-48-1"
-         sodipodi:nodetypes="cccc"
-         inkscape:transform-center-x="-0.94743728"
-         inkscape:transform-center-y="1.0981634" /></g></g></svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="53.266724mm"
+   height="49.976624mm"
+   viewBox="0 0 53.266727 49.976624"
+   version="1.1"
+   id="svg1"
+   xml:space="preserve"
+   inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
+   sodipodi:docname="DeprivedLogo-SkullI-Background.svg"
+   inkscape:export-filename="ExportedSVG.svg"
+   inkscape:export-xdpi="96.036186"
+   inkscape:export-ydpi="96.036186"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
+     id="namedview1"
+     pagecolor="#505050"
+     bordercolor="#eeeeee"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#505050"
+     inkscape:document-units="mm"
+     inkscape:zoom="2.9757808"
+     inkscape:cx="123.497"
+     inkscape:cy="140.63536"
+     inkscape:window-width="2560"
+     inkscape:window-height="1361"
+     inkscape:window-x="1591"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer3"
+     inkscape:export-bgcolor="#ffffff00" /><defs
+     id="defs1"><inkscape:path-effect
+       effect="fillet_chamfer"
+       id="path-effect9"
+       is_visible="true"
+       lpeversion="1"
+       nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,8.5571463,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,9.7139083,0,1 @ F,0,0,1,0,7.0752071,0,1 @ F,0,1,1,0,9.7139083,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
+       radius="0"
+       unit="px"
+       method="auto"
+       mode="F"
+       chamfer_steps="1"
+       flexible="false"
+       use_knot_distance="true"
+       apply_no_radius="true"
+       apply_with_radius="true"
+       only_selected="false"
+       hide_knots="false" /><inkscape:path-effect
+       effect="fillet_chamfer"
+       id="path-effect15-0-4"
+       is_visible="true"
+       lpeversion="1"
+       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
+       radius="0"
+       unit="px"
+       method="auto"
+       mode="F"
+       chamfer_steps="1"
+       flexible="false"
+       use_knot_distance="true"
+       apply_no_radius="true"
+       apply_with_radius="true"
+       only_selected="false"
+       hide_knots="false" /><inkscape:path-effect
+       effect="fillet_chamfer"
+       id="path-effect15-0-54"
+       is_visible="true"
+       lpeversion="1"
+       nodesatellites_param="F,0,0,1,0,1.4808499,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,2.2013412,0,1 @ F,0,0,1,0,3.4590691,0,1 @ F,0,1,1,0,0,0,1 @ F,0,0,1,0,1.2806214,0,1"
+       radius="0"
+       unit="px"
+       method="auto"
+       mode="F"
+       chamfer_steps="1"
+       flexible="false"
+       use_knot_distance="true"
+       apply_no_radius="true"
+       apply_with_radius="true"
+       only_selected="false"
+       hide_knots="false" /></defs><g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="FullProfil"
+     transform="translate(-75.228843,-57.954247)"><g
+       inkscape:groupmode="layer"
+       id="layer3"
+       inkscape:label="BackgroundColourLayer"
+       style="display:none;opacity:1"
+       inkscape:highlight-color="#b8d8be"><rect
+         style="display:inline;fill:#f2f2f2;stroke-width:0.128722"
+         id="rect29"
+         width="59.00034"
+         height="62.58733"
+         x="72.94722"
+         y="51.200962"
+         ry="1.2272025"
+         inkscape:label="Background Colour" /></g><g
+       inkscape:groupmode="layer"
+       id="layer2"
+       inkscape:label="MainBorder"
+       style="display:none"
+       inkscape:highlight-color="#4436a9"><g
+         id="g69"
+         style="display:inline"><rect
+           style="display:inline;fill:#000000;stroke-width:0.264583"
+           id="rect3"
+           width="4.979085"
+           height="130.34535"
+           x="37.466156"
+           y="17.522022" /><rect
+           style="fill:#000000;stroke-width:0.264583"
+           id="rect3-2"
+           width="4.979085"
+           height="130.34535"
+           x="162.86777"
+           y="17.556767" /><rect
+           style="fill:#000000;stroke-width:0.264583"
+           id="rect3-2-7"
+           width="4.979085"
+           height="130.34535"
+           x="17.536777"
+           y="-167.8186"
+           transform="rotate(90)" /><rect
+           style="fill:#000000;stroke-width:0.264583"
+           id="rect3-2-7-6"
+           width="4.979085"
+           height="130.34535"
+           x="143.39011"
+           y="-167.67055"
+           transform="rotate(90)"
+           inkscape:label="rect3-2-7-6" /></g></g><g
+       inkscape:groupmode="layer"
+       id="layer9"
+       inkscape:label="AltBorder"
+       style="display:none"
+       inkscape:highlight-color="#3691a9"><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         id="path69"
+         d="m 163.39213,26.01862 c 0.0595,1.760183 0.10362,3.520297 0.0865,5.281485 -0.0182,1.574702 -0.12409,3.146425 -0.24,4.716373 -0.13263,1.669346 -0.20918,3.342301 -0.24829,5.016272 -0.0311,1.795338 -0.0381,3.590941 -0.0674,5.386353 -0.0362,1.789428 -0.11946,3.577344 -0.17194,5.366256 -0.0629,1.804365 -0.0639,3.609742 -0.0709,5.414928 5.3e-4,1.878517 0.047,3.756628 0.0801,5.634762 0.12732,23.663539 1.17119,34.516993 -0.13963,48.862551 -0.21839,1.18058 -0.66339,12.29919 -0.80218,13.49183 -0.12893,1.09367 -0.20088,2.19281 -0.22473,3.29352 -0.0133,1.02629 0.0763,2.05064 0.17169,3.0715 0.0975,1.2208 0.15031,2.4443 0.19591,3.66791 0.0538,1.15451 0.0247,2.30919 -0.007,3.46364 -0.036,0.75303 -0.0547,1.50749 -0.14161,2.25687 -0.0917,0.69542 -0.15048,1.39319 -0.15933,2.09455 -0.006,0.64192 0.0536,1.28266 0.11035,1.92156 0.0493,0.33817 0.0355,0.6751 -0.0101,1.01203 -0.009,0.0349 -0.01,0.0728 -0.0264,0.10472 -0.018,0.0343 -0.0392,-0.0735 -0.0322,-0.11153 0.0239,-0.13026 0.0517,-0.26094 0.0982,-0.38497 0.28978,-0.77432 0.54206,-0.66164 1.45032,-1.33171 0.70226,-0.21534 1.40995,-0.075 1.99728,0.27724 -0.46721,-0.44423 -1.07871,-0.67285 -1.70487,-0.76906 -0.0843,0.004 -0.8737,-0.0591 -0.29755,0.028 0.30912,0.0601 -0.0964,-0.0119 -0.17735,-0.0276 -0.5318,-0.13119 -1.07477,-0.14733 -1.61973,-0.14178 -1.15619,0.087 -2.31145,0.15477 -3.47119,0.16447 -1.65654,-0.0606 -3.30593,-0.23332 -4.96081,-0.32638 -2.48886,-0.11776 -4.98288,-0.0852 -7.47408,-0.0968 -3.41703,-0.0447 -6.83123,-0.19478 -10.24705,-0.28624 -3.353,-0.1231 -6.70802,-0.10619 -10.06247,-0.0942 -3.28545,0.0414 -6.57092,0.0694 -9.85656,0.0939 -3.50933,0.0587 -7.01891,0.0952 -10.52862,0.12316 -3.46508,0.0181 -6.930044,0.0668 -10.395199,0.0633 -3.031641,0.0274 -6.063205,-0.0223 -9.094515,-0.0613 -2.772171,-0.0655 -5.545219,-0.003 -8.316452,0.0733 -2.947992,0.0921 -5.89676,0.0356 -8.845147,0.015 -2.598389,-0.0811 -5.19788,-0.0319 -7.795604,0.0448 -1.793804,0.0797 -3.588663,0.0779 -5.383504,0.0548 -1.213101,-0.0551 -2.427076,-0.0832 -3.640553,-0.12745 -1.118496,-0.0552 -2.236935,-0.11386 -3.356988,-0.11978 -0.932685,-0.0132 -1.864299,0.0386 -2.793325,0.11595 -0.601864,0.0496 -1.203889,0.0897 -1.807475,0.10905 -0.531786,0.009 -1.064276,0.005 -1.595712,0.0274 -0.333942,0.0106 -0.667888,0.0107 -1.001898,0.008 -0.299506,-0.0359 -0.04313,0.029 0.124833,0.0886 0.495276,0.1953 0.866307,0.56583 1.114338,1.03048 0.06866,0.083 0.03789,0.25924 0.148016,0.21499 0.05921,-0.30182 0.134881,-0.6001 0.216135,-0.89746 0.194146,-0.46519 0.306311,-0.95191 0.405561,-1.44461 0.132628,-0.86218 0.196821,-1.73315 0.224338,-2.6045 0.0077,-1.20037 0.05566,-2.39843 0.139935,-3.59569 0.128196,-1.4357 0.245142,-2.87091 0.319953,-4.31049 0.07363,-1.7705 0.01836,-3.54172 -0.02938,-5.31188 -0.04374,-1.95214 -0.209148,-3.8983 -0.324863,-5.84682 -0.135723,-2.34544 -0.314534,-4.68797 -0.471361,-7.03201 -0.177969,-2.62474 -0.321278,-5.25217 -0.412117,-7.88141 -0.06707,-2.22802 -0.108633,-4.45716 -0.120256,-6.686177 -0.02513,-2.03318 -0.03606,-4.06673 -0.03168,-6.10008 -0.0081,-1.938877 0.06149,-3.876817 0.08478,-5.815232 0.03685,-1.769692 0.02476,-3.540185 -0.0053,-5.309872 -0.02885,-1.549056 -0.05931,-3.097824 -0.04003,-4.647152 0.03622,-1.849994 0.197567,-3.693732 0.346128,-5.537084 0.214733,-2.1726 0.357195,-4.350078 0.456454,-6.530673 0.08438,-1.87742 0.113067,-3.756216 0.07616,-5.635062 -0.009,-1.700813 -0.08307,-3.400102 -0.103656,-5.10065 -0.01532,-2.054948 0.02151,-4.109636 0.03932,-6.164403 0.01532,-1.718209 0.05163,-3.436829 0.01987,-5.15498 -0.01815,-1.432354 -0.07851,-2.863374 -0.130717,-4.294701 -0.05593,-1.043702 -0.09372,-2.087314 -0.09444,-3.132495 0.0063,-0.930854 0.0029,-1.861645 -0.0016,-2.792502 -0.01521,-0.994743 -0.0346,-1.989368 -0.05969,-2.983931 -0.01431,-0.85235 -0.01857,-1.704734 -0.01942,-2.557182 -0.0048,-0.626981 0.03249,-1.25219 0.08404,-1.876636 0.06426,-0.611606 0.124761,-1.223436 0.173003,-1.836535 0.0342,-0.458368 0.04634,-0.917746 0.05898,-1.377051 1.4e-4,-0.416482 -0.03128,-0.83104 -0.06558,-1.245656 -0.003,-0.287881 -0.08889,-0.589679 -0.03344,-0.876421 0.02664,0.253241 -0.11549,0.474708 -0.24343,0.682085 0.0054,0.111512 -0.399354,0.346913 -0.413506,0.429467 -0.0024,0.01324 0.02191,0.01555 0.03287,0.02332 -0.06372,0.05104 0.439269,0.14739 0.33043,0.130068 -1.480685,-0.23565 -0.869106,-0.151677 -0.628417,-0.119195 0.247176,0.0308 0.479396,0.153834 0.706527,0.250951 0.803519,0.384886 1.664301,0.535836 2.554423,0.596807 0.241789,0.01656 0.484129,-0.02382 0.726191,-0.03573 1.970246,-0.146838 3.940215,-0.298869 5.910069,-0.451498 1.998935,-0.118673 3.995978,-0.255473 5.997562,-0.320937 0.869937,-0.02413 1.748552,-0.06734 2.594684,0.165319 -0.183504,-0.02834 -0.365868,-0.06546 -0.550516,-0.08502 -0.09715,-0.01029 0.191857,0.03707 0.287467,0.05715 0.118542,0.0249 0.236855,0.0509 0.354955,0.07781 0.440285,0.100313 0.879686,0.204709 1.319929,0.305286 1.277546,0.272523 2.561225,0.530444 3.865134,0.630862 1.140521,0.07535 2.283799,0.09645 3.425976,0.135536 1.136679,0.0453 2.272765,0.09915 3.410045,0.127668 1.197107,0.03539 2.393894,0.08255 3.590965,0.120672 1.384265,0.06666 2.769108,0.02006 4.153188,-0.01943 1.235527,-0.04678 2.471073,-0.08926 3.706662,-0.134066 1.447509,-0.04904 2.89329,-0.134458 4.339793,-0.205869 1.952779,-0.115921 3.902927,-0.270117 5.854153,-0.40893 2.471819,-0.222353 4.948634,-0.378607 7.428474,-0.473335 2.1382,-0.07717 4.27801,-0.08836 6.41721,-0.06057 1.71755,0.0252 3.4353,0.06832 5.15162,0.138455 10.50057,0.387832 11.60035,1.64247 19.93961,1.138729 1.30812,-0.08073 2.6178,-0.124719 3.92821,-0.138906 1.05471,-0.0085 2.10974,0.0074 3.16432,0.0261 1.50776,0.02751 3.01502,-0.02561 4.52174,-0.07453 1.91927,-0.07046 3.83912,-0.116101 5.75963,-0.129179 1.72621,-0.01165 3.45234,0.0073 5.17854,0.0106 1.12531,3.7e-4 2.24956,-0.04504 3.37279,-0.109232 0.49678,-0.02222 0.98525,-0.115864 1.47928,-0.164955 2.40585,-0.208716 3.17749,0.153543 6.97335,-2.013225 0.002,-0.224202 0.0252,-0.449355 0.005,-0.672605 -0.0404,-0.436022 -0.69067,-1.160197 -0.96289,-1.459515 -0.33605,-0.279591 -0.68345,-0.55033 -1.10429,-0.684216 -0.18966,-0.07399 -0.37622,-0.155972 -0.56356,-0.235572 -0.68219,-0.268348 -1.41446,-0.405489 -2.14635,-0.322702 -0.2015,0.01525 -0.40307,0.02219 -0.60494,0.02394 -0.25724,0.0074 -0.51393,0.02646 -0.76948,0.05697 -0.26762,0.03256 -0.5361,0.05498 -0.80487,0.07545 -0.43937,0.04227 -0.87932,0.07954 -1.31725,0.135475 -0.42693,0.06048 -0.85341,0.121273 -1.28203,0.168974 -1.00007,0.112086 -2.00515,0.170092 -3.01151,0.181348 -1.72689,0.03156 -3.45389,0.05228 -5.18098,0.06986 -1.94159,0.03541 -3.88316,0.0709 -5.82476,0.105277 -1.45049,0.01756 -2.90036,0.0077 -4.34996,-0.0514 -1.12259,-0.02204 -2.24506,-0.03886 -3.36747,0.007 -1.35152,0.05437 -2.70189,0.130468 -4.05194,0.213356 -1.34524,0.06743 -2.69319,0.108534 -4.0389,0.02446 -1.41056,-0.07943 -2.82164,-0.158508 -4.22845,-0.2907 -1.82753,-0.172195 -3.65197,-0.377074 -5.48137,-0.529642 -1.91997,-0.146004 -3.84053,-0.284824 -5.7651,-0.355539 -1.7739,-0.05967 -3.54783,-0.111522 -5.32311,-0.09521 -16.610702,0.245956 -16.775102,0.302062 -35.380558,1.03946 -1.120413,-0.0489 -2.24173,-0.0734 -3.361989,-0.12671 -1.036164,-0.04146 -2.075239,-0.06141 -3.105346,-0.191585 -0.0011,-1.5e-4 -0.820613,-0.12106 -0.826323,-0.119584 -0.120243,0.03107 0.490043,0.06424 0.365974,0.06983 -0.371697,0.01677 -0.926528,-0.202063 -1.303096,-0.2388 -1.107033,-0.242297 -2.182995,-0.610619 -3.313518,-0.744624 -7.509002,0.274045 -19.684266,-0.394035 -22.55762,1.094472 -0.196487,0.737623 -0.299767,3.383984 -0.250937,3.943321 0.01923,0.297216 0.04049,0.594694 0.04456,0.892535 0.006,0.37332 7.94e-4,0.746904 -0.01685,1.119872 -0.03028,0.605441 -0.08504,1.209008 -0.139887,1.812641 -0.05759,0.762161 -0.09165,1.525834 -0.07804,2.290358 0.01278,0.873993 0.0474,1.747451 0.07226,2.621158 0.0186,0.995276 0.02817,1.990672 0.0273,2.986127 0.01508,0.950688 0.01704,1.901487 0.01863,2.85228 0.02077,1.091073 0.07662,2.180775 0.146577,3.269774 0.0837,1.392047 0.148918,2.785531 0.183853,4.179678 0.02352,1.700956 0.04465,3.401838 0.04145,5.103027 -0.0053,2.065091 -0.003,4.130188 -0.02982,6.195174 -0.01595,1.732621 -0.01847,3.464324 0.05502,5.195972 0.0297,1.795817 0.08246,3.592213 0.0057,5.387834 -0.08218,2.111553 -0.229293,4.219419 -0.434448,6.322735 -0.190117,1.957843 -0.385892,3.917664 -0.418277,5.885992 -0.02627,1.595065 0.01773,3.189407 0.06782,4.783712 0.03629,1.724792 0.05631,3.449701 0.03172,5.174914 -0.03018,1.959374 -0.02577,3.919262 -0.04304,5.878798 0.0083,2.064631 0.0036,4.129318 0.03522,6.193814 0.06018,2.265913 0.119846,4.531853 0.221488,6.796433 0.135477,2.66326 0.272359,5.32639 0.425003,7.98874 0.140075,2.34265 0.286771,4.68509 0.392557,7.0296 0.10701,1.90802 0.227541,3.81581 0.279429,5.72634 0.03542,1.64444 0.05239,3.29073 -0.03726,4.93388 -0.09095,1.43955 -0.240848,2.87408 -0.360024,4.31143 -0.07382,1.21642 -0.121732,2.43423 -0.202462,3.65025 -0.04782,0.63487 -0.08273,1.27505 -0.233286,1.89605 -0.0992,0.43364 -0.270486,0.8487 -0.355663,1.28651 -0.131628,0.55462 -0.246184,1.11753 -0.284398,1.68709 -0.01638,0.60474 0.01746,1.209 0.25096,1.77626 0.35442,0.77954 0.900017,1.40746 1.708647,1.73575 0.394986,0.14092 0.789676,0.25441 1.212467,0.26224 0.453673,0.0315 0.908428,0.0324 1.362678,0.0105 0.522637,-0.007 1.044988,-0.0375 1.568021,-0.0348 0.693248,-0.0161 1.385533,-0.0585 2.074715,-0.1371 0.802266,-0.0688 1.604086,-0.15065 2.409782,-0.16768 1.062805,-0.009 2.123771,0.0235 3.185232,0.0753 1.260951,0.0476 2.522455,0.0963 3.784528,0.0913 1.861759,7.9e-4 3.722018,-0.0851 5.580756,-0.18568 2.527787,-0.11901 5.057182,-0.20108 7.588284,-0.15589 2.989265,0.0438 5.979705,0.026 8.968872,-0.0187 2.725187,-0.0211 5.450237,-0.0567 8.175577,-0.0566 3.055427,0.008 6.11073,0.0159 9.166072,-0.0182 3.467058,-0.0536 6.9346,-0.0552 10.40184,-0.0937 3.50742,-0.03 7.0146,-0.081 10.52212,-0.0943 3.28737,-0.0232 6.57474,-0.032 9.862,-0.0696 3.2959,-0.0473 6.59284,-0.0562 9.8886,0.007 3.42365,0.10679 6.84525,0.26146 10.26857,0.37449 2.42075,0.0834 4.84295,0.13144 7.26106,0.27964 1.70784,0.11895 3.4115,0.29052 5.12076,0.38767 1.21265,0.0508 2.42542,0.039 3.63862,0.009 0.20157,-0.007 0.40902,-0.0168 0.60745,0.0225 0.23559,0.0498 0.46974,0.10649 0.7079,0.14357 0.204,0.0262 0.35089,0.041 0.54496,0.0417 0.0396,1.5e-4 -0.29849,-0.0492 -0.15114,-0.0288 -0.36145,-0.0779 -0.71396,-0.22424 -0.98385,-0.4851 -0.0176,-0.017 0.0406,0.0272 0.061,0.0408 0.95875,0.71195 1.7562,1.00231 2.99358,0.70397 0.47341,-0.33457 0.98638,-0.61923 1.42022,-1.00373 0.16237,-0.1439 0.24428,-0.36042 0.33914,-0.55555 0.24476,-0.50338 0.32684,-1.05268 0.37067,-1.60333 0.0466,-0.63135 0.0451,-1.26307 -0.0298,-1.89268 -0.0485,-0.44137 -0.11011,-0.88132 -0.0854,-1.32705 0.0276,-0.59815 0.10549,-1.19084 0.16947,-1.7859 0.0562,-0.84398 0.0547,-1.69008 0.0661,-2.53559 0.0232,-1.24612 0.0109,-2.49243 -0.0409,-3.7378 -0.0473,-1.2781 -0.11402,-2.55564 -0.18468,-3.83263 -0.0409,-0.8809 -0.11589,-1.76092 -0.10757,-2.64346 0.0188,-0.94906 0.0857,-1.8965 0.1934,-2.83969 0.13673,-1.10838 0.31487,-2.20985 0.53611,-3.30473 0.20525,-1.24025 0.37747,-2.48372 0.42046,-3.74219 0.0986,-1.75493 0.14031,-3.51132 0.0671,-5.26855 -0.0519,-1.72024 -0.10589,-3.44195 -0.28309,-5.15493 -0.13609,-1.22309 -0.30674,-2.44487 -0.34996,-3.67593 -0.009,-1.18465 0.0423,-2.36869 0.14713,-3.54887 0.14468,-1.420641 0.32697,-2.837678 0.43167,-4.262068 0.0987,-1.363757 0.15922,-2.730529 0.20654,-4.096985 0.0384,-1.216991 0.0814,-2.43373 0.07,-3.651634 -0.004,-1.118317 -0.0244,-2.236856 -0.0862,-3.353639 -1.17136,-18.66192 0.12671,-3.461205 -0.36288,-22.83651 -0.0484,-1.829585 -0.0548,-3.659277 -0.0456,-5.489418 -0.006,-1.760723 0.007,-3.521726 0.0689,-5.281499 0.0662,-1.799116 0.13824,-3.598421 0.15975,-5.39872 0.0291,-1.779013 0.0612,-3.557971 0.0952,-5.336899 0.05,-1.58622 0.11097,-3.172323 0.24858,-4.753849 0.11861,-1.677617 0.22144,-3.357528 0.21571,-5.04018 -0.006,-1.780749 -0.0291,-3.561297 -0.0685,-5.341628 -0.0156,-1.301343 -0.0233,-2.603134 -0.0571,-3.904018 -0.10959,-1.458275 -0.38038,-2.555599 -1.59583,-3.504919 -0.21099,-0.116654 -0.4145,-0.248019 -0.63299,-0.34996 -0.84683,-0.395121 -1.8338,-0.387336 -2.74929,-0.426171 z"
+         sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccsccccsssccccccccccccccccccccccccccccccccccccccccccccssccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscsccsscccccccccccccccccccccccccccccscc" /></g><g
+       inkscape:groupmode="layer"
+       id="layer8"
+       inkscape:label="ZIcon"
+       style="display:none"><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
+         id="path15-8-6"
+         sodipodi:nodetypes="ccccccc"
+         inkscape:path-effect="#path-effect15-0-54"
+         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
+         transform="matrix(0.65020563,0.33970251,-0.22324428,0.87048882,120.05046,-123.23894)" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 55.680115,178.92882 c 3.587002,-0.99333 15.205168,-6.0612 15.205168,-6.0612 0,0 -11.01531,6.68768 -14.578669,10.01621 -0.798382,0.74577 -0.190484,2.52414 0.876887,2.43151 4.292863,-0.37255 15.092484,-4.66188 20.259999,-7.43513 1.669022,-0.89572 1.5733,-2.78204 0.08499,-2.43241 -5.295845,1.24408 -16.141456,5.82163 -16.141456,5.82163 0,0 12.108362,-6.65812 14.576947,-9.84335 0.413693,-0.53379 -0.131134,-1.447 -0.788938,-1.37559 -3.966597,0.43064 -16.74587,5.02038 -19.805103,7.48103 -0.553304,0.44504 -0.140719,1.52216 0.310175,1.3973 z"
+         id="path15-8-3"
+         sodipodi:nodetypes="ccccccc"
+         inkscape:path-effect="#path-effect15-0-4"
+         inkscape:original-d="m 54.86112,178.71226 c -2.445087,2.21169 16.024163,-5.84464 16.024163,-5.84464 0,0 -17.529363,10.64253 -15.515186,11.75865 -0.297542,3.45006 23.94849,-6.5915 24.886353,-8.70829 1.826985,-3.38378 -18.869416,5.35145 -18.869416,5.35145 0,0 15.986222,-8.79047 14.966353,-11.00249 -0.19743,-1.78969 -23.759529,6.58928 -21.492267,8.44532 z"
+         transform="matrix(0.48882551,0.24039141,-0.17152546,0.51702769,69.636627,-50.620099)" /></g><g
+       inkscape:groupmode="layer"
+       id="layer7"
+       inkscape:label="SkeletonIcon"
+       inkscape:highlight-color="#ffffff"
+       style="display:inline"><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         id="path5"
+         d="m 98.292885,234.82624 c -8.680799,-4.48983 -16.470315,-11.93072 -15.00066,-20.7921 0.765571,-4.61605 5.79606,-11.01544 9.795137,-13.5047 2.011269,-1.25193 3.826261,-1.61336 6.837066,-2.52212 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.634661,1.82689 -8.003276,6.84988 -9.350733,11.94556 -0.267325,1.01094 -0.868817,5.00685 0.01287,8.78662 1.004539,4.30636 5.606377,9.67778 8.971911,11.63074 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
+         sodipodi:nodetypes="csccsssscccc"
+         inkscape:path-effect="#path-effect9"
+         inkscape:original-d="m 98.292885,234.82624 c -11.095134,-5.73856 -20.734268,-16.29797 -11.445733,-28.48248 6.057326,-6.84391 7.558219,-6.67061 13.077276,-8.33644 l -0.593828,-3.4701 c -0.321731,0.0777 -0.450527,0.19119 -0.804873,0.25453 -3.077386,0.55014 -5.269837,1.47886 -9.697988,4.54937 -2.088544,1.44821 -1.836066,1.36013 -4.400482,3.7861 -5.210117,4.92885 -4.330546,7.39489 -5.573371,9.9473 -0.557339,1.14462 0.555774,11.34283 4.124887,14.20518 4.425651,3.67189 3.014772,2.99206 5.483017,4.42434 5.997192,3.95877 7.242665,5.01559 10.008117,6.43846 z"
+         transform="translate(-3.79843,-136.05164)"
+         inkscape:export-filename="ExportedSVG.svg"
+         inkscape:export-xdpi="96.036186"
+         inkscape:export-ydpi="96.036186" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         id="path9"
+         d="m 96.004598,61.964489 c 5.096542,-1.24348 9.644362,-0.84956 15.392512,0.0657 0.3221,0.0513 0.63108,0.16499 0.94663,0.24749 6.82636,2.32744 11.91707,4.66427 13.80019,14.80453 -0.0111,0.55201 -0.009,1.1041 -0.007,1.65618 -0.10139,5.164501 -3.15822,8.299819 -6.2863,11.822769 -0.61639,2.51876 0.11183,7.61715 0.56227,11.893402 -8.53518,3.12909 -8.43932,2.64832 -17.4577,2.37089 -0.11179,-0.008 -0.22354,-0.0164 -0.33538,-0.0237 -2.734147,0.13601 -2.61085,-0.11889 -4.923292,-1.5165 -1.06352,-5.760042 -0.10659,-0.44167 -0.86761,-4.896522 -0.49494,-2.22237 -2.133064,-1.36832 -2.324184,-0.79272 l -0.24451,3.023012 c -0.14899,1.84214 0.19115,3.26308 0.98005,4.37412 2.363744,2.81363 20.162036,5.21402 26.846466,-0.79463 0.10424,-0.14556 0.44804,-0.69799 0.43846,-0.87677 -0.20017,-3.736692 -0.52857,-7.652612 -0.84146,-11.377742 0.97971,-0.90358 3.1192,-2.04391 5.30897,-6.32532 0.0716,-0.146 0.12747,-0.29922 0.18791,-0.45018 1.80921,-3.365508 1.25761,-6.713449 1.15964,-10.492989 -2.66123,-11.14242 -14.36094,-14.75326 -14.98119,-14.92447 -10.59561,-2.75223 -10.47431,-1.61683 -17.841806,-1.26317 -0.90356,2.57077 0.33929,2.35181 0.487334,3.47663 z"
+         sodipodi:nodetypes="csccccccccccsccscssccccc" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         id="path10"
+         d="m 84.031918,84.581448 3.193549,1.88856 c 0.628636,1.75015 1.034708,2.55853 2.639197,4.12724 1.016939,0.89721 3.29332,2.92048 3.86312,1.29206 -0.34177,-0.26289 0.70335,2.54757 1.7174,1.5812 l 0.14222,-0.44003 -0.66296,-2.3085 -0.19647,-1.84682 c -0.59134,-3.30817 -1.11207,-1.70525 -9.445499,-5.958068 -0.176154,-0.0899 -1.272653,-1.12351 -2.151569,-0.35774 -0.702463,0.89316 0.03604,1.63334 0.901012,2.022098 z"
+         sodipodi:nodetypes="cccccccsscc"
+         inkscape:label="path10" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         id="path11"
+         d="m 108.12232,84.706318 c 1.81806,-0.486708 0.53483,-1.551138 0.29594,-1.634528 -0.23889,-0.0834 -13.182236,-0.17831 -13.966026,0.48317 -0.21034,0.009 -1.45075,1.097618 0.73222,1.021548 0,0 -0.0902,0.3662 0.14206,0.6984 0.45158,0.64598 5.614726,0.31196 5.614726,0.31196 2.30794,-0.0388 5.54339,-0.44213 7.18108,-0.88055 z"
+         sodipodi:nodetypes="zzccscz" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 97.928288,86.362318 c -0.34421,1.34034 4.141022,2.11918 6.423912,1.55596 2.28289,-0.56322 2.69334,-1.37325 2.82297,-1.14474 0.12964,0.22851 -2.37683,2.66936 -1.18921,3.21195 1.18762,0.54259 4.59709,-5.05596 3.1675,-5.35696 -1.42959,-0.300998 -1.35678,0.43732 -1.91161,0.33342 -0.55483,-0.10391 -3.1314,1.41354 -3.93437,1.63376 -0.80297,0.22021 -5.034972,-1.57373 -5.379192,-0.23339 z"
+         id="path12"
+         sodipodi:nodetypes="zzzzzzzz" /><path
+         style="display:inline;fill:#000000;stroke-width:0.174904"
+         id="path11-4"
+         d="m 116.30633,84.08153 c -1.22197,-0.13567 -0.50791,-0.9718 -0.36287,-1.05148 0.14503,-0.0797 8.46937,-1.47003 9.04379,-1.11261 0.13638,-0.0157 1.04987,0.57768 -0.36378,0.75122 0,0 0.0967,0.23313 -0.0178,0.47682 -0.22268,0.47386 -3.58247,0.78234 -3.58247,0.78234 -1.4902,0.21103 -3.61606,0.27592 -4.71681,0.15371 z"
+         sodipodi:nodetypes="zzccscz" /><path
+         style="display:inline;fill:#000000;stroke-width:0.174904"
+         d="m 123.04495,84.13204 c 0.36294,0.851828 -2.44303,1.827328 -3.97238,1.688698 -1.52936,-0.13865 -1.87904,-0.63267 -1.93843,-0.46811 -0.0593,0.16454 1.81188,1.52298 1.10436,2.0039 -0.70753,0.48093 -3.49313,-2.87485 -2.60434,-3.220698 0.8888,-0.34585 0.91975,0.15033 1.26606,0.0246 0.34631,-0.12565 2.16536,0.614398 2.70561,0.677778 0.54028,0.0634 3.07618,-1.557988 3.43912,-0.706178 z"
+         id="path12-7"
+         sodipodi:nodetypes="zzzzzzzz"
+         inkscape:label="path12-7" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 108.37032,93.095418 c -1.88611,-1.32028 1.59684,-6.19563 3.13566,-6.66427 1.95004,-0.60202 6.85922,4.26367 4.62098,5.9884 -2.23876,0.86067 -3.33244,-3.28237 -3.34785,-2.96276 -0.73479,1.5191 -2.52267,4.95891 -4.40879,3.63863 z"
+         id="path13"
+         sodipodi:nodetypes="zcccz" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 101.59278,104.89745 c -0.15287,-3.69414 -0.42638,-4.71642 -0.33119,-7.242812 0.88428,-1.11491 1.74783,4.069582 1.80325,7.192302 -1.13379,-0.0448 -0.0189,0.0659 -1.47206,0.0505 z"
+         id="path14"
+         sodipodi:nodetypes="cccc" /><path
+         style="display:inline;fill:#000000;stroke-width:0.244383"
+         d="m 106.89105,105.9419 c -0.13442,-3.58426 -0.37491,-4.57614 -0.29121,-7.027392 0.77753,-1.08176 1.53684,3.948552 1.58557,6.978392 -0.99692,-0.0435 -0.0166,0.0639 -1.29436,0.049 z"
+         id="path14-4"
+         sodipodi:nodetypes="cccc" /><path
+         style="display:inline;fill:#000000;stroke-width:0.264583"
+         d="m 114.69233,105.68178 c -0.52999,-3.65911 -0.4494,-4.71428 -1.00818,-7.179942 -1.07446,-0.93301 -0.96856,4.321842 -0.44797,7.401362 1.10615,-0.25281 0.0307,0.0613 1.45619,-0.22143 z"
+         id="path14-48"
+         sodipodi:nodetypes="cccc" /><path
+         style="display:inline;fill:#000000;stroke-width:0.248747"
+         d="m 117.45363,104.62953 c -0.23612,-3.61717 -0.51085,-4.62855 -0.49144,-7.093302 0.77135,-1.04977 1.69048,4.055922 1.82323,7.110242 -1.02796,-0.0949 -0.0154,0.0635 -1.33181,-0.017 z"
+         id="path14-48-1"
+         sodipodi:nodetypes="cccc"
+         inkscape:transform-center-x="-0.94743728"
+         inkscape:transform-center-y="1.0981634" /></g></g></svg>
diff --git a/src/lib/images/HamburgerMenuIcon.svelte b/src/lib/images/HamburgerMenuIcon.svelte
index ccad8ec..6faae57 100644
--- a/src/lib/images/HamburgerMenuIcon.svelte
+++ b/src/lib/images/HamburgerMenuIcon.svelte
@@ -1,20 +1,18 @@
-<script>
-    export let Class = '';
-    export let Style = '';
-  </script>
-  
-<svg
-    class={Class}
-    style={Style}
-    height="20"
-    id="Layer_1"
-    version="1.1"
-    viewBox="0 0 28 20"
-    width="28"
-    xml:space="preserve"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:svg="http://www.w3.org/2000/svg"><defs
-        id="defs1" /><path
-        d="M 2,4 H 26 C 27.104,4 28,3.104 28,2 28,0.896 27.104,0 26,0 H 2 C 0.896,0 0,0.896 0,2 0,3.104 0.896,4 2,4 Z M 26,8 H 2 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 h 24 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2 z m 0,8 H 2 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 h 24 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2 z"
-        id="path1"
-        style="fill-opacity:1" /></svg>
+<script>
+    export let Class = '';
+    export let Style = '';
+  </script>
+  
+<svg
+    class={Class}
+    style={Style}
+    height="20"
+    id="Layer_1"
+    version="1.1"
+    viewBox="0 0 28 20"
+    width="28"
+    xml:space="preserve"><defs
+        id="defs1" /><path
+        d="M 2,4 H 26 C 27.104,4 28,3.104 28,2 28,0.896 27.104,0 26,0 H 2 C 0.896,0 0,0.896 0,2 0,3.104 0.896,4 2,4 Z M 26,8 H 2 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 h 24 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2 z m 0,8 H 2 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 h 24 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2 z"
+        id="path1"
+        style="fill-opacity:1" /></svg>
diff --git a/src/lib/posts/NewsCard.svelte b/src/lib/posts/NewsCard.svelte
index 07b952d..327ac67 100644
--- a/src/lib/posts/NewsCard.svelte
+++ b/src/lib/posts/NewsCard.svelte
@@ -1,77 +1,77 @@
-<script lang="ts">
-    export let post_url : string = '404';
-    export let thumbnail_url : string = '/favicon.png';
-    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
-    export let title : string = '<title>';
-    export let summary : string = '<summary>';
-    export let creation_date : string = '<date>';
-
-    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
-                  "July", "August", "September", "October", "November", "December"];
-
-    $: human_creation_date = new Date(+creation_date * 1000);
-</script>
-
-<div class="news-card">
-    <a href=/post/{post_url}>
-        <div class="thumbnail">
-            <img src={thumbnail_url} alt={thumbnail_alt}/>
-        </div>
-        <div class="content">
-            <h3 id="title">{title}</h3>
-            <p id="summary-text">{summary}</p>
-            <p id="date">
-                {human_creation_date.getDate()}
-                {monthNames[human_creation_date.getMonth()]}
-                {human_creation_date.getFullYear()}
-            </p>
-        </div>
-    </a>
-</div>
-
-<style>
-    a {
-        text-decoration: none;
-
-        display: flex;
-        flex-direction: row;
-        gap: 15px;
-    }
-
-    .thumbnail > img {
-        object-fit: cover;
-
-        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
-        border-radius: 8px;
-
-        width: 150px;
-        height: auto;
-    }
-
-    .content {
-        flex-shrink: 2;
-
-        display: flex;
-        flex-direction: column;
-        gap: 10px;
-    }
-
-    #title {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text2);
-    }
-
-    #summary-text {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text3);
-    }
-
-    #date {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text4);
-    }
-
-</style>
+<script lang="ts">
+    export let post_url : string = '404';
+    export let thumbnail_url : string = '/favicon.png';
+    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
+    export let title : string = '<title>';
+    export let summary : string = '<summary>';
+    export let creation_date : string = '<date>';
+
+    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
+                  "July", "August", "September", "October", "November", "December"];
+
+    $: human_creation_date = new Date(+creation_date * 1000);
+</script>
+
+<div class="news-card">
+    <a href=/post/{post_url}>
+        <div class="thumbnail">
+            <img src={thumbnail_url} alt={thumbnail_alt}/>
+        </div>
+        <div class="content">
+            <h3 id="title">{title}</h3>
+            <p id="summary-text">{summary}</p>
+            <p id="date">
+                {human_creation_date.getDate()}
+                {monthNames[human_creation_date.getMonth()]}
+                {human_creation_date.getFullYear()}
+            </p>
+        </div>
+    </a>
+</div>
+
+<style>
+    a {
+        text-decoration: none;
+
+        display: flex;
+        flex-direction: row;
+        gap: 15px;
+    }
+
+    .thumbnail > img {
+        object-fit: cover;
+
+        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
+        border-radius: 8px;
+
+        width: 150px;
+        height: auto;
+    }
+
+    .content {
+        flex-shrink: 2;
+
+        display: flex;
+        flex-direction: column;
+        gap: 10px;
+    }
+
+    #title {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text2);
+    }
+
+    #summary-text {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text3);
+    }
+
+    #date {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text4);
+    }
+
+</style>
diff --git a/src/lib/posts/NewsVerticalCard.svelte b/src/lib/posts/NewsVerticalCard.svelte
index b7e6acf..b573372 100644
--- a/src/lib/posts/NewsVerticalCard.svelte
+++ b/src/lib/posts/NewsVerticalCard.svelte
@@ -1,79 +1,79 @@
-<script lang="ts">
-    export let post_url : string = '404';
-    export let thumbnail_url : string = '/favicon.png';
-    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
-    export let title : string = '<title>';
-    export let summary : string = '<summary>';
-    export let creation_date : string = '<date>';
-
-    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
-                  "July", "August", "September", "October", "November", "December"];
-
-    $: human_creation_date = new Date(+creation_date * 1000);
-</script>
-
-<div class="news-card">
-    <a href={post_url}>
-        <div class="thumbnail">
-            <img src={thumbnail_url} alt={thumbnail_alt}/>
-        </div>
-        <div class="content">
-            <p id="date">
-                {human_creation_date.getDate()}
-                {monthNames[human_creation_date.getMonth()]}
-                {human_creation_date.getFullYear()}
-            </p>
-            <h3 id="title">{title}</h3>
-            <p id="summary-text">{summary}</p>
-        </div>
-    </a>
-</div>
-
-<style>
-    .news-card {
-        flex: 0 0 300px;
-    }
-
-    a {
-        min-width: 100%;
-        text-decoration: none;
-
-        display: flex;
-        flex-direction: column;
-    }
-
-    .thumbnail > img {
-        object-fit: cover;
-
-        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
-        border-radius: 8px;
-
-        min-width: 100%;
-        aspect-ratio: 16 / 9;
-    }
-
-    .content {
-        display: flex;
-        flex-direction: column;
-        gap: 10px;
-    }
-
-    #title {
-        font-size: 22px;
-        margin: 0;
-        text-decoration: none;
-        color: var(--text2);
-    }
-
-    #summary-text {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text3);
-    }
-
-    #date {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text4);
-    }
-</style>
+<script lang="ts">
+    export let post_url : string = '404';
+    export let thumbnail_url : string = '/favicon.png';
+    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
+    export let title : string = '<title>';
+    export let summary : string = '<summary>';
+    export let creation_date : string = '<date>';
+
+    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
+                  "July", "August", "September", "October", "November", "December"];
+
+    $: human_creation_date = new Date(+creation_date * 1000);
+</script>
+
+<div class="news-card">
+    <a href={post_url}>
+        <div class="thumbnail">
+            <img src={thumbnail_url} alt={thumbnail_alt}/>
+        </div>
+        <div class="content">
+            <p id="date">
+                {human_creation_date.getDate()}
+                {monthNames[human_creation_date.getMonth()]}
+                {human_creation_date.getFullYear()}
+            </p>
+            <h3 id="title">{title}</h3>
+            <p id="summary-text">{summary}</p>
+        </div>
+    </a>
+</div>
+
+<style>
+    .news-card {
+        flex: 0 0 300px;
+    }
+
+    a {
+        min-width: 100%;
+        text-decoration: none;
+
+        display: flex;
+        flex-direction: column;
+    }
+
+    .thumbnail > img {
+        object-fit: cover;
+
+        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
+        border-radius: 8px;
+
+        min-width: 100%;
+        aspect-ratio: 16 / 9;
+    }
+
+    .content {
+        display: flex;
+        flex-direction: column;
+        gap: 10px;
+    }
+
+    #title {
+        font-size: 22px;
+        margin: 0;
+        text-decoration: none;
+        color: var(--text2);
+    }
+
+    #summary-text {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text3);
+    }
+
+    #date {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text4);
+    }
+</style>
diff --git a/src/lib/posts/ShowcaseNewsCard.svelte b/src/lib/posts/ShowcaseNewsCard.svelte
index 9ee9c3c..4de37e7 100644
--- a/src/lib/posts/ShowcaseNewsCard.svelte
+++ b/src/lib/posts/ShowcaseNewsCard.svelte
@@ -1,78 +1,78 @@
-<script>
-    export let post_url = '404';
-    export let thumbnail_url = '/favicon.png';
-    export let thumbnail_alt = 'Picture describting the deprived devs logo';
-    export let title = '<title>';
-    export let summary = '<summary>';
-    export let creation_date = 1710006969;
-
-    const monthNames = ["January", "February", "March", "April", "May", "June",
-                  "July", "August", "September", "October", "November", "December"];
-
-    $: human_creation_date = new Date(+creation_date * 1000);
-</script>
-
-<div class="news-card">
-    <a href=/post/{post_url} >
-        <div title={thumbnail_alt} class="thumbnail" style="background-image: url({thumbnail_url});">
-        </div>
-        <div class="content">
-            <h3 id="title">{title}</h3>
-            <p id="summary-text">{summary}</p>
-            <p id="date">{human_creation_date.getDate()} {monthNames[human_creation_date.getMonth()]} {human_creation_date.getFullYear()}</p>
-        </div>
-    </a>
-</div>
-
-<style>
-    a {
-        text-decoration: none;
-    }
-
-    .news-card {
-        display: inline-flex;
-        flex-direction: column;
-        gap: 15px;
-    }
-
-    .news-card h3 {
-        color: var(--text1);
-        margin: 0px;
-        font-size: 22px;
-    }
-
-    .thumbnail {
-        aspect-ratio: 16 / 9;
-        background-size: cover;
-        background-position: center;
-
-        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
-        border-radius: 8px;
-        margin-bottom: 15px;
-    }
-
-    .content {
-        display: flex;
-        flex-direction: column;
-
-        gap: 10px;
-    }
-
-    #title {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text1);
-    }
-
-    #summary-text {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text2);
-    }
-
-    #date {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text4);
-    }
-</style>
+<script>
+    export let post_url = '404';
+    export let thumbnail_url = '/favicon.png';
+    export let thumbnail_alt = 'Picture describting the deprived devs logo';
+    export let title = '<title>';
+    export let summary = '<summary>';
+    export let creation_date = 1710006969;
+
+    const monthNames = ["January", "February", "March", "April", "May", "June",
+                  "July", "August", "September", "October", "November", "December"];
+
+    $: human_creation_date = new Date(+creation_date * 1000);
+</script>
+
+<div class="news-card">
+    <a href=/post/{post_url} >
+        <div title={thumbnail_alt} class="thumbnail" style="background-image: url({thumbnail_url});">
+        </div>
+        <div class="content">
+            <h3 id="title">{title}</h3>
+            <p id="summary-text">{summary}</p>
+            <p id="date">{human_creation_date.getDate()} {monthNames[human_creation_date.getMonth()]} {human_creation_date.getFullYear()}</p>
+        </div>
+    </a>
+</div>
+
+<style>
+    a {
+        text-decoration: none;
+    }
+
+    .news-card {
+        display: inline-flex;
+        flex-direction: column;
+        gap: 15px;
+    }
+
+    .news-card h3 {
+        color: var(--text1);
+        margin: 0px;
+        font-size: 22px;
+    }
+
+    .thumbnail {
+        aspect-ratio: 16 / 9;
+        background-size: cover;
+        background-position: center;
+
+        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
+        border-radius: 8px;
+        margin-bottom: 15px;
+    }
+
+    .content {
+        display: flex;
+        flex-direction: column;
+
+        gap: 10px;
+    }
+
+    #title {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text1);
+    }
+
+    #summary-text {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text2);
+    }
+
+    #date {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text4);
+    }
+</style>
diff --git a/src/lib/svelteLogos/README.md b/src/lib/svelteLogos/README.md
index bcf2919..788d133 100644
--- a/src/lib/svelteLogos/README.md
+++ b/src/lib/svelteLogos/README.md
@@ -1,11 +1,11 @@
-# Svelte Branding Guidelines
-
-## Conditions of usage
-
-1. The term "Svelte logo" refers to the Svelte logo and other official artwork/mark. It also includes the official color scheme used by the project.
-
-2. The term "Svelte library" refers to the Svelte tooling, associated libraries and official projects in the Svelte ecosystem.
-
-3. Usage of the Svelte logo must not give the impression or implication that the Svelte project (or any contributor to the project) is sponsoring or endorsing any other project, service, product or organization.
-
-4. Usage of the Svelte logo, to indicate, imply or assert compatibility or operability with the Svelte library, must be accurate and done in good faith.
+# Svelte Branding Guidelines
+
+## Conditions of usage
+
+1. The term "Svelte logo" refers to the Svelte logo and other official artwork/mark. It also includes the official color scheme used by the project.
+
+2. The term "Svelte library" refers to the Svelte tooling, associated libraries and official projects in the Svelte ecosystem.
+
+3. Usage of the Svelte logo must not give the impression or implication that the Svelte project (or any contributor to the project) is sponsoring or endorsing any other project, service, product or organization.
+
+4. Usage of the Svelte logo, to indicate, imply or assert compatibility or operability with the Svelte library, must be accurate and done in good faith.
diff --git a/src/lib/svelteLogos/svelte-kit-logotype.svg b/src/lib/svelteLogos/svelte-kit-logotype.svg
index 20f5470..2f915da 100644
--- a/src/lib/svelteLogos/svelte-kit-logotype.svg
+++ b/src/lib/svelteLogos/svelte-kit-logotype.svg
@@ -1,4 +1,4 @@
-<svg viewBox="30 31 400 50" xmlns="http://www.w3.org/2000/svg">
-<path d="M348.645 80.0599L335.205 55.1536L326.745 65.3616V80.0599H319.648V32.4241H326.745V55.4938L345.169 32.4241H353.356L339.986 49.1652L356.974 80.0599H348.645ZM372.319 80.0599V32.4241H379.416V80.0599H372.319ZM416.394 39.2295V80.0599H409.3V39.2295H395.789V32.4241H429.902V39.2295H416.394Z" fill="#8D8D93"/>
-<path d="M48.3359 80.876C44.4451 80.9736 40.6159 79.8942 37.3519 77.78C34.3023 75.7742 32.0378 72.7827 30.9387 69.3081L37.6241 66.8581C38.5518 68.991 40.066 70.8183 41.9916 72.1286C43.9468 73.4367 46.2574 74.1149 48.6113 74.0715C50.8732 74.1893 53.1053 73.5154 54.9219 72.1661C55.7123 71.5043 56.3367 70.6675 56.7454 69.7223C57.1541 68.7772 57.3357 67.7499 57.2758 66.7223C57.2852 65.7649 57.063 64.8193 56.6281 63.9657C56.2495 63.2023 55.7547 62.5019 55.1613 61.8894C54.4103 61.2078 53.5586 60.6454 52.6361 60.222C51.4981 59.6561 50.5542 59.2252 49.8042 58.9292C49.0543 58.6332 47.9513 58.2363 46.4952 57.7385C44.6761 57.1034 43.3118 56.6046 42.4023 56.242C41.1703 55.719 39.9737 55.1164 38.8202 54.4381C37.579 53.7813 36.4506 52.9313 35.4776 51.9202C34.6349 50.9339 33.9554 49.8197 33.4647 48.6198C32.5217 46.3326 32.3235 43.8075 32.8983 41.4018C33.473 38.9961 34.7915 36.8316 36.6673 35.2143C39.3991 32.8106 43.1066 31.6085 47.7898 31.608C51.7018 31.608 54.9201 32.4699 57.4448 34.1937C59.8955 35.819 61.695 38.2524 62.528 41.0678L55.9772 43.2446C55.3192 41.7704 54.2079 40.5431 52.8042 39.7406C51.1067 38.8008 49.184 38.3416 47.2438 38.4125C45.3411 38.3039 43.4564 38.8307 41.8875 39.9098C41.247 40.4053 40.7359 41.0476 40.3976 41.7822C40.0593 42.5168 39.9038 43.322 39.9443 44.1294C39.95 44.7485 40.0866 45.3594 40.3452 45.9222C40.6037 46.485 40.9784 46.987 41.4447 47.3956C42.3512 48.2863 43.4153 49.0016 44.5833 49.5054C45.6753 49.9589 47.3356 50.5712 49.5641 51.342C50.9278 51.8419 51.9396 52.2162 52.5993 52.4648C53.259 52.7134 54.2249 53.1332 55.4968 53.7242C56.5174 54.1744 57.4987 54.7086 58.4304 55.3213C59.2647 55.9196 60.0622 56.5673 60.8187 57.261C61.6416 57.9722 62.3444 58.8107 62.9003 59.7445C63.4302 60.7128 63.8425 61.7406 64.1285 62.8062C64.4763 64.0584 64.6485 65.3527 64.6401 66.6521C64.6401 71.0984 63.1162 74.5802 60.0685 77.0972C57.0207 79.6143 53.1098 80.8739 48.3359 80.876ZM92.0693 80.0599L75.6946 32.4241H83.3367L94.1846 65.6331C94.784 67.4193 95.2852 69.2369 95.6858 71.0777C96.085 69.2366 96.5861 67.4189 97.187 65.6331L107.899 32.4241H115.472L99.1646 80.0599H92.0693ZM129.935 80.0599V32.4241H159.546V39.0937H137.031V52.159H151.563V58.8286H137.031V73.3903H161.05V80.0599H129.935ZM179.126 80.0599V32.4241H186.223V73.2546H209.556V80.0599H179.126ZM236.301 39.2295V80.0599H229.204V39.2295H215.696V32.4241H249.813V39.2295H236.301ZM264.478 80.0599V32.4241H294.088V39.0937H271.574V52.159H286.106V58.8286H271.574V73.3903H295.593V80.0599H264.478Z" fill="#4A4A55"/>
-</svg>
+<svg viewBox="30 31 400 50" xmlns="http://www.w3.org/2000/svg">
+<path d="M348.645 80.0599L335.205 55.1536L326.745 65.3616V80.0599H319.648V32.4241H326.745V55.4938L345.169 32.4241H353.356L339.986 49.1652L356.974 80.0599H348.645ZM372.319 80.0599V32.4241H379.416V80.0599H372.319ZM416.394 39.2295V80.0599H409.3V39.2295H395.789V32.4241H429.902V39.2295H416.394Z" fill="#8D8D93"/>
+<path d="M48.3359 80.876C44.4451 80.9736 40.6159 79.8942 37.3519 77.78C34.3023 75.7742 32.0378 72.7827 30.9387 69.3081L37.6241 66.8581C38.5518 68.991 40.066 70.8183 41.9916 72.1286C43.9468 73.4367 46.2574 74.1149 48.6113 74.0715C50.8732 74.1893 53.1053 73.5154 54.9219 72.1661C55.7123 71.5043 56.3367 70.6675 56.7454 69.7223C57.1541 68.7772 57.3357 67.7499 57.2758 66.7223C57.2852 65.7649 57.063 64.8193 56.6281 63.9657C56.2495 63.2023 55.7547 62.5019 55.1613 61.8894C54.4103 61.2078 53.5586 60.6454 52.6361 60.222C51.4981 59.6561 50.5542 59.2252 49.8042 58.9292C49.0543 58.6332 47.9513 58.2363 46.4952 57.7385C44.6761 57.1034 43.3118 56.6046 42.4023 56.242C41.1703 55.719 39.9737 55.1164 38.8202 54.4381C37.579 53.7813 36.4506 52.9313 35.4776 51.9202C34.6349 50.9339 33.9554 49.8197 33.4647 48.6198C32.5217 46.3326 32.3235 43.8075 32.8983 41.4018C33.473 38.9961 34.7915 36.8316 36.6673 35.2143C39.3991 32.8106 43.1066 31.6085 47.7898 31.608C51.7018 31.608 54.9201 32.4699 57.4448 34.1937C59.8955 35.819 61.695 38.2524 62.528 41.0678L55.9772 43.2446C55.3192 41.7704 54.2079 40.5431 52.8042 39.7406C51.1067 38.8008 49.184 38.3416 47.2438 38.4125C45.3411 38.3039 43.4564 38.8307 41.8875 39.9098C41.247 40.4053 40.7359 41.0476 40.3976 41.7822C40.0593 42.5168 39.9038 43.322 39.9443 44.1294C39.95 44.7485 40.0866 45.3594 40.3452 45.9222C40.6037 46.485 40.9784 46.987 41.4447 47.3956C42.3512 48.2863 43.4153 49.0016 44.5833 49.5054C45.6753 49.9589 47.3356 50.5712 49.5641 51.342C50.9278 51.8419 51.9396 52.2162 52.5993 52.4648C53.259 52.7134 54.2249 53.1332 55.4968 53.7242C56.5174 54.1744 57.4987 54.7086 58.4304 55.3213C59.2647 55.9196 60.0622 56.5673 60.8187 57.261C61.6416 57.9722 62.3444 58.8107 62.9003 59.7445C63.4302 60.7128 63.8425 61.7406 64.1285 62.8062C64.4763 64.0584 64.6485 65.3527 64.6401 66.6521C64.6401 71.0984 63.1162 74.5802 60.0685 77.0972C57.0207 79.6143 53.1098 80.8739 48.3359 80.876ZM92.0693 80.0599L75.6946 32.4241H83.3367L94.1846 65.6331C94.784 67.4193 95.2852 69.2369 95.6858 71.0777C96.085 69.2366 96.5861 67.4189 97.187 65.6331L107.899 32.4241H115.472L99.1646 80.0599H92.0693ZM129.935 80.0599V32.4241H159.546V39.0937H137.031V52.159H151.563V58.8286H137.031V73.3903H161.05V80.0599H129.935ZM179.126 80.0599V32.4241H186.223V73.2546H209.556V80.0599H179.126ZM236.301 39.2295V80.0599H229.204V39.2295H215.696V32.4241H249.813V39.2295H236.301ZM264.478 80.0599V32.4241H294.088V39.0937H271.574V52.159H286.106V58.8286H271.574V73.3903H295.593V80.0599H264.478Z" fill="#4A4A55"/>
+</svg>
diff --git a/src/lib/svelteLogos/svelte-logo-cutout.svg b/src/lib/svelteLogos/svelte-logo-cutout.svg
index 06f22ec..4f59838 100644
--- a/src/lib/svelteLogos/svelte-logo-cutout.svg
+++ b/src/lib/svelteLogos/svelte-logo-cutout.svg
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 27.8.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 93.2 112" style="enable-background:new 0 0 93.2 112;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#FF3E00;}
-</style>
-<path class="st0" d="M87.3,14.8L87.3,14.8C76.9-0.1,56.3-4.5,41.5,5L15.4,21.6c-7.1,4.5-12,11.8-13.5,20c-1.2,6.9-0.2,14,3.1,20.2
-	c-2.2,3.4-3.8,7.2-4.5,11.2C-1,81.5,1,90.2,5.9,97.2c10.4,14.9,30.9,19.3,45.8,9.8l26.1-16.6c7.1-4.5,12-11.8,13.5-20
-	c1.2-6.9,0.2-14-3.1-20.2c2.2-3.4,3.8-7.2,4.5-11.2C94.2,30.5,92.2,21.8,87.3,14.8z M79.8,36.2c-0.2,0.8-0.4,1.6-0.6,2.4l-0.5,1.5
-	l-1.3-1c-3.1-2.3-6.5-4-10.2-5.1l-1-0.3l0.1-1c0.1-1.4-0.3-2.7-1.1-3.9c-1.5-2.2-4.2-3.1-6.7-2.5c-0.6,0.2-1.1,0.4-1.6,0.7
-	L30.8,43.7c-1.3,0.8-2.2,2.1-2.4,3.6c-0.3,1.5,0.1,3.1,1,4.4c1.5,2.2,4.2,3.1,6.7,2.5c0.6-0.2,1.1-0.4,1.6-0.7l10-6.3
-	c1.6-1,3.4-1.8,5.3-2.3c8.4-2.2,17.3,1.1,22.2,8.2c3,4.2,4.2,9.4,3.3,14.5c-0.9,5-3.8,9.4-8.1,12.1L44.2,96.3
-	c-1.6,1-3.4,1.8-5.3,2.3h0c-8.4,2.2-17.3-1.1-22.2-8.2c-3-4.2-4.2-9.4-3.3-14.5c0.2-0.8,0.4-1.6,0.6-2.4l0.5-1.5l1.3,1
-	c3.1,2.3,6.5,4,10.2,5.1l1,0.3l-0.1,1c-0.1,1.4,0.3,2.8,1.1,3.9c1.5,2.2,4.2,3.1,6.7,2.5c0.6-0.2,1.1-0.4,1.6-0.7l26.1-16.6
-	c1.3-0.8,2.2-2.1,2.5-3.6c0.3-1.5-0.1-3.1-1-4.4c-1.5-2.2-4.2-3.1-6.7-2.5c-0.6,0.2-1.1,0.4-1.6,0.7l-10,6.3c-1.6,1-3.4,1.8-5.3,2.3
-	C31.9,69.4,23,66.1,18,58.9c-3-4.2-4.2-9.4-3.3-14.5c0.9-5,3.8-9.4,8.1-12.1L49,15.7c1.6-1,3.4-1.8,5.3-2.3
-	c8.4-2.2,17.3,1.1,22.2,8.2C79.5,25.9,80.7,31.1,79.8,36.2z"/>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 27.8.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 93.2 112" style="enable-background:new 0 0 93.2 112;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FF3E00;}
+</style>
+<path class="st0" d="M87.3,14.8L87.3,14.8C76.9-0.1,56.3-4.5,41.5,5L15.4,21.6c-7.1,4.5-12,11.8-13.5,20c-1.2,6.9-0.2,14,3.1,20.2
+	c-2.2,3.4-3.8,7.2-4.5,11.2C-1,81.5,1,90.2,5.9,97.2c10.4,14.9,30.9,19.3,45.8,9.8l26.1-16.6c7.1-4.5,12-11.8,13.5-20
+	c1.2-6.9,0.2-14-3.1-20.2c2.2-3.4,3.8-7.2,4.5-11.2C94.2,30.5,92.2,21.8,87.3,14.8z M79.8,36.2c-0.2,0.8-0.4,1.6-0.6,2.4l-0.5,1.5
+	l-1.3-1c-3.1-2.3-6.5-4-10.2-5.1l-1-0.3l0.1-1c0.1-1.4-0.3-2.7-1.1-3.9c-1.5-2.2-4.2-3.1-6.7-2.5c-0.6,0.2-1.1,0.4-1.6,0.7
+	L30.8,43.7c-1.3,0.8-2.2,2.1-2.4,3.6c-0.3,1.5,0.1,3.1,1,4.4c1.5,2.2,4.2,3.1,6.7,2.5c0.6-0.2,1.1-0.4,1.6-0.7l10-6.3
+	c1.6-1,3.4-1.8,5.3-2.3c8.4-2.2,17.3,1.1,22.2,8.2c3,4.2,4.2,9.4,3.3,14.5c-0.9,5-3.8,9.4-8.1,12.1L44.2,96.3
+	c-1.6,1-3.4,1.8-5.3,2.3h0c-8.4,2.2-17.3-1.1-22.2-8.2c-3-4.2-4.2-9.4-3.3-14.5c0.2-0.8,0.4-1.6,0.6-2.4l0.5-1.5l1.3,1
+	c3.1,2.3,6.5,4,10.2,5.1l1,0.3l-0.1,1c-0.1,1.4,0.3,2.8,1.1,3.9c1.5,2.2,4.2,3.1,6.7,2.5c0.6-0.2,1.1-0.4,1.6-0.7l26.1-16.6
+	c1.3-0.8,2.2-2.1,2.5-3.6c0.3-1.5-0.1-3.1-1-4.4c-1.5-2.2-4.2-3.1-6.7-2.5c-0.6,0.2-1.1,0.4-1.6,0.7l-10,6.3c-1.6,1-3.4,1.8-5.3,2.3
+	C31.9,69.4,23,66.1,18,58.9c-3-4.2-4.2-9.4-3.3-14.5c0.9-5,3.8-9.4,8.1-12.1L49,15.7c1.6-1,3.4-1.8,5.3-2.3
+	c8.4-2.2,17.3,1.1,22.2,8.2C79.5,25.9,80.7,31.1,79.8,36.2z"/>
+</svg>
diff --git a/src/lib/zhen/cv-comps/LinkedInQrCode.svg b/src/lib/zhen/cv-comps/LinkedInQrCode.svg
index 592e3c7..26dc7bb 100644
--- a/src/lib/zhen/cv-comps/LinkedInQrCode.svg
+++ b/src/lib/zhen/cv-comps/LinkedInQrCode.svg
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   version="1.1"
-   width="185"
-   height="185"
-   viewBox="0 0 185 185"
-   preserveAspectRatio="xMinYMin"
-   id="svg1"
-   sodipodi:docname="LinkedInQrCode.svg"
-   inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg">
-  <defs
-     id="defs1" />
-  <sodipodi:namedview
-     id="namedview1"
-     pagecolor="#505050"
-     bordercolor="#eeeeee"
-     borderopacity="1"
-     inkscape:showpageshadow="0"
-     inkscape:pageopacity="0"
-     inkscape:pagecheckerboard="0"
-     inkscape:deskcolor="#505050"
-     inkscape:zoom="3.4045455"
-     inkscape:cx="93.257676"
-     inkscape:cy="93.257676"
-     inkscape:window-width="1680"
-     inkscape:window-height="987"
-     inkscape:window-x="5112"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg1" />
-  <path
-     d="M 0,0 H 5 V 5 H 0 Z m 5,0 h 5 V 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 50,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,5 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,10 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,15 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,20 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,25 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,30 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 60,35 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 5,40 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 5,45 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,50 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 25,55 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 10,60 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 20,65 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,70 h 5 v 5 H 5 Z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,75 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,80 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,85 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,90 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,95 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m -145,5 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 5,105 h 5 v 5 H 5 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z M 0,110 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,115 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z M 0,120 h 5 v 5 H 0 Z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,125 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 0,130 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 80,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,135 h 5 v 5 H 0 Z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,140 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m -130,5 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 0,150 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 40,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,155 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,160 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,165 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 0,170 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z M 0,175 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 0,180 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z"
-     stroke="transparent"
-     fill="#0c0c0d"
-     id="path1" />
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   version="1.1"
+   width="185"
+   height="185"
+   viewBox="0 0 185 185"
+   preserveAspectRatio="xMinYMin"
+   id="svg1"
+   sodipodi:docname="LinkedInQrCode.svg"
+   inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <defs
+     id="defs1" />
+  <sodipodi:namedview
+     id="namedview1"
+     pagecolor="#505050"
+     bordercolor="#eeeeee"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#505050"
+     inkscape:zoom="3.4045455"
+     inkscape:cx="93.257676"
+     inkscape:cy="93.257676"
+     inkscape:window-width="1680"
+     inkscape:window-height="987"
+     inkscape:window-x="5112"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg1" />
+  <path
+     d="M 0,0 H 5 V 5 H 0 Z m 5,0 h 5 V 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 50,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,5 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,10 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,15 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,20 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,25 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,30 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 60,35 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 5,40 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 5,45 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z M 0,50 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 25,55 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 10,60 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 20,65 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,70 h 5 v 5 H 5 Z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,75 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,80 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 5,85 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,90 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,95 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m -145,5 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 5,105 h 5 v 5 H 5 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z M 0,110 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,115 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z M 0,120 h 5 v 5 H 0 Z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 30,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,125 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 0,130 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 80,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,135 h 5 v 5 H 0 Z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,140 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 35,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m -130,5 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 0,150 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 40,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,155 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z M 0,160 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z M 0,165 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z M 0,170 h 5 v 5 H 0 Z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 25,0 h 5 v 5 h -5 z M 0,175 h 5 v 5 H 0 Z m 30,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z M 0,180 h 5 v 5 H 0 Z m 5,0 h 5 v 5 H 5 Z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 15,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 10,0 h 5 v 5 h -5 z m 20,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z m 5,0 h 5 v 5 h -5 z"
+     stroke="transparent"
+     fill="#0c0c0d"
+     id="path1" />
+</svg>
diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts
index 437a11f..0d54cb1 100644
--- a/src/routes/+layout.server.ts
+++ b/src/routes/+layout.server.ts
@@ -1,19 +1,19 @@
-/*
-    * Provides post summaries to all pages. That means every page can access summaries
-    * for all posts on the website.
-*/
-
-import { type Post, posts } from './posts/posts_data';
-
-export function load() {
-    let summaries : Post[] = [];
-
-    // Sort by newest news first
-    posts.sort((a, b) => b.creation_date - a.creation_date);
-
-    posts.forEach((post) => {
-        summaries.push(post);
-    });
-
-    return { summaries };
-}
+/*
+    * Provides post summaries to all pages. That means every page can access summaries
+    * for all posts on the website.
+*/
+
+import { type Post, posts } from './posts/posts_data';
+
+export function load() {
+    let summaries : Post[] = [];
+
+    // Sort by newest news first
+    posts.sort((a, b) => b.creation_date - a.creation_date);
+
+    posts.forEach((post) => {
+        summaries.push(post);
+    });
+
+    return { summaries };
+}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 52f0f80..3e118f8 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,332 +1,313 @@
 <!-- If url contains "hideOnPrint" param, then detect if start printing then hide elements -->
 <script lang="ts">
-    import "$lib/app.css";
+  import "../app.css";
+  import { fly } from "svelte/transition";
+  import MediaQuery from "svelte-media-queries";
+  import { Dices } from "@lucide/svelte";
+  let hideOnPrint: boolean = $state(false);
 
-    import { fly } from 'svelte/transition';
-    import MediaQuery from 'svelte-media-queries';
-    export let hideOnPrint: boolean;
+  let { children } = $props();
 
-    import DeprivedLogo from "$lib/images/DeprivedLogo.svelte";
-    import HamburgerMenuIcon from "$lib/images/HamburgerMenuIcon.svelte";
+  import DeprivedLogo from "$lib/images/DeprivedLogo.svelte";
+  import HamburgerMenuIcon from "$lib/images/HamburgerMenuIcon.svelte";
 
-    const footerCollapseThreshold : string = '1000px';
-    const headerCollapseThreshold : string = '1000px';
-    let footerCollapse : boolean;
-    let headerCollapse : boolean;
+  const footerCollapseThreshold: string = "1000px";
+  const headerCollapseThreshold: string = "1000px";
+  let footerCollapse: boolean;
+  let isMobile: boolean = $state(false);
 
-    let navbarHidden : boolean = true;
+  let navbarHidden: boolean = $state(true);
 
-    function resetNavBar() {
-        navbarHidden = true;
+  function resetNavBar() {
+    navbarHidden = true;
+  }
+
+  import { afterNavigate } from "$app/navigation";
+  afterNavigate(() => {
+    const params = new URLSearchParams(window.location.search);
+    hideOnPrint = params.get("hideOnPrint") === "1";
+    console.log(hideOnPrint);
+  });
+
+  import { onMount } from "svelte";
+  import Zooter from "./comps/Zooter.svelte";
+
+  onMount(async () => {
+    const lock = document.createElement("meta");
+    lock.name = "darkreader-lock";
+    document.head.appendChild(lock);
+  });
+
+  function nextTheme() {
+    let theme: string | null = null;
+
+    if (typeof localStorage !== "undefined") {
+      theme = localStorage.getItem("theme");
     }
 
-    import { afterNavigate } from '$app/navigation';
-    afterNavigate(() => {
-        const params = new URLSearchParams(window.location.search);
-        hideOnPrint = params.get('hideOnPrint') === '1';
-        //console.log(hideOnPrint);
-    });
+    const themesArr = (window as any).AvailableThemes;
+    let nextTheme = "dark";
+    if (
+      theme == "null" ||
+      theme == "undefined" ||
+      theme == undefined ||
+      theme == null
+    ) {
+    } else {
+      nextTheme = themesArr[(1 - -themesArr.indexOf(theme)) % themesArr.length];
+    }
 
-    import { onMount } from 'svelte';
-	import { themeChange } from 'theme-change'
-    onMount(() => {
-        const lock = document.createElement('meta');
-        lock.name = 'darkreader-lock';
-        document.head.appendChild(lock);
-
-		themeChange(false) // false parameter is required for svelte
-    });
+    console.log("Slecting: " + nextTheme);
+    document.documentElement.setAttribute("data-theme", nextTheme);
+    localStorage.setItem("theme", nextTheme);
+  }
 </script>
 
+{#snippet SwitchThemeButton()}
+  <div
+    class="tooltip tooltip-bottom grid place-content-center"
+    data-tip="Switch theme"
+  >
+    <button class="cursor-pointer" onclick={nextTheme}> <Dices /></button>
+  </div>
+{/snippet}
+
 <!-- Detect mobile -->
-<MediaQuery query='(max-width: {footerCollapseThreshold})' bind:matches={footerCollapse} />
-<MediaQuery query='(max-width: {headerCollapseThreshold})' bind:matches={headerCollapse} />
+<MediaQuery
+  query="(max-width: {footerCollapseThreshold})"
+  bind:matches={footerCollapse}
+/>
+<MediaQuery
+  query="(max-width: {headerCollapseThreshold})"
+  bind:matches={isMobile}
+/>
 
 <!-- Nav bar -->
-<div class="bg-base-200 p-0">
-    <header class="{hideOnPrint ? 'hide-on-print' : ''}">
-        <div class="nav-bar pr-4 bg-base-200">
-            {#if !headerCollapse}
-                <div class="desktop">
-                    <a href="/" class="nav-head">
-                        <DeprivedLogo Class="fill-base-content p-2" Style="width: 3.5rem; height: auto;"/>
-                        <h3 id="logo-text">The Deprived Devs</h3>
-                    </a>
-                    <div class="nav-spacer" />
-					<select class="prose" data-choose-theme>
-						<option value="light">Light</option>
-						<option value="dark">Dark</option>
-						<option value="synthwave">Synthwave</option>
-						<option value="retro">Retro</option>
-						<option value="cyberpunk">Cyberpunk</option>
-						<option value="valentine">Valentine</option>
-						<option value="halloween">Halloween</option>
-						<option value="forest">Forest</option>
-						<option value="aqua">Aqua</option>
-						<option value="black">Black</option>
-						<option value="luxury">Luxury</option>
-						<option value="dracula">Dracula</option>
-						<option value="business">Business</option>
-						<option value="night">Night</option>
-						<option value="coffee">Coffee</option>
-						<option value="dim">Dim</option>
-						<option value="sunset" selected>Sunset</option>
-					</select>
+<div class=" bg-base-200 p-0">
+  <header class="{hideOnPrint ? 'hide-on-print' : ''} bg-base-300">
+    <div class="nav-bar pr-4">
+      {#if !isMobile}
+        <div class="desktop">
+          <a href="/" class="nav-head">
+            <DeprivedLogo
+              Class="fill-base-content p-2"
+              Style="width: 3.5rem; height: auto;"
+            />
+            <!-- <h3 id="logo-text">The Deprived Devs</h3> -->
+          </a>
+          <div class="nav-spacer" />
 
-                    <a href="/">Home</a>
-                    <a href="https://botalex.itch.io/">Games</a>
-                    <!-- <a href="/posts">Blog</a>
+          <!-- <a href="/">Home</a> -->
+          <!-- <a href="/zhen/notes/physics/1?hideOnPrint=1" target="_blank" style="width: 7.5rem;">Notes</a> -->
+
+          {@render SwitchThemeButton()}
+
+          <a
+            href="/zhen/cv/rev2?hideOnPrint=1"
+            target="_blank"
+            style="width: 7.5rem;">Zhen CV</a
+          >
+          <a href="/tools" style="width: 7.5rem;">Tools</a>
+          <a href="https://botalex.itch.io/" target="_blank">Games</a>
+          <!-- <a href="/posts">Blog</a>
                     <a href="/about">About</a> -->
-                </div>
-            {:else}
-                <div class="collapsed">
-                    <a on:click={resetNavBar} href="/" class="nav-head">
-                        <DeprivedLogo Class="fill-base-content p-2" Style="width: 3.5rem; height: auto;"/>
-                        <h3 id="logo-text">The Deprived Devs</h3>
-                    </a>
-                    <div class="nav-spacer" />
-                    <button id="toggle-nav" on:click={() => navbarHidden = !navbarHidden}>
-                        <HamburgerMenuIcon Class="fill-base-content"/>
-                    </button>
-                </div>
-                {#if !navbarHidden}
-                    <div class="nav-list" transition:fly={{ y: -25, duration: 350 }}>
-						<select data-choose-theme>
-							<option value="light">Default</option>
-							<option value="dark">Dark</option>
-							<option value="cupcake">Cupcake</option>
-							<option value="bumblebee">Bumblebee</option>
-							<option value="emerald">Emerald</option>
-							<option value="corporate">Corporate</option>
-							<option value="synthwave">Synthwave</option>
-							<option value="retro">Retro</option>
-							<option value="cyberpunk">Cyberpunk</option>
-							<option value="valentine">Valentine</option>
-							<option value="halloween">Halloween</option>
-							<option value="garden">Garden</option>
-							<option value="forest">Forest</option>
-							<option value="aqua">Aqua</option>
-							<option value="lofi">Lofi</option>
-							<option value="pastel">Pastel</option>
-							<option value="fantasy">Fantasy</option>
-							<option value="wireframe">Wireframe</option>
-							<option value="black">Black</option>
-							<option value="luxury">Luxury</option>
-							<option value="dracula">Dracula</option>
-							<option value="cmyk">CMYK</option>
-							<option value="autumn">Autumn</option>
-							<option value="business">Business</option>
-							<option value="acid">Acid</option>
-							<option value="lemonade">Lemonade</option>
-							<option value="night">Night</option>
-							<option value="coffee">Coffee</option>
-							<option value="winter">Winter</option>
-							<option value="dim">Dim</option>
-							<option value="nord">Nord</option>
-							<option value="sunset">Sunset</option>
-						</select>
-						
-                        <a on:click={resetNavBar} href="/">Home</a>
-                        <a on:click={resetNavBar} href="https://botalex.itch.io/">Games</a>
-                        <!-- <a on:click={resetNavBar} href="/posts">Blog</a>
-                        <a on:click={resetNavBar} href="/about">About</a> -->
-                    </div>
-                {/if}
-            {/if}
         </div>
-    </header>
-    
-    <!-- Page content -->
-    <slot />
-    
-    <!-- About footer -->
-    <footer class="{hideOnPrint ? 'hide-on-print' : ''}">
-        <div class="about-container">
-            <div class="credits">
-                <span>© 2023-2024</span>
-                <br>
-                <span>Benjamin Dreyer</span>
-                <br>
-                <span>Oliver Schwenger</span>
-                <br>
-                <span>Sylvester Junge</span>
-                <br>
-                <span>Zhentao Wei</span>
-                <br>
-                <br>
-                <span>Website <a href="https://gitea.deprived.dev/Sveskejuice/deprived-main-website/src/branch/dev" target="_blank">source code</a></span>
-            </div>
-            <div>
-                <h3>About Us</h3>
-                <a href="/about">About</a>
-            </div>
-            <div class="contact">
-                <h3>Contact</h3>
-                <a href="https://discord.gg/awatEEqc3M" target="_blank" class="social">
-                    <img src="/images/icons/discord.svg" alt="Discord"/>
-                    <span>Discord</span>
-                </a>
-            </div>
+      {:else}
+        <div class="collapsed shadow-xl">
+          <a onclick={resetNavBar} href="/" class="nav-head">
+            <DeprivedLogo
+              Class="fill-base-content p-2"
+              Style="width: 3.5rem; height: auto;"
+            />
+            <!-- <h3 id="logo-text">The Deprived Devs</h3> -->
+          </a>
+          <div class="nav-spacer" />
+          {@render SwitchThemeButton()}
+          <div class="px-1"></div>
+          <button
+            id="toggle-nav"
+            onclick={() => {
+              navbarHidden = !navbarHidden;
+              console.log(navbarHidden);
+            }}
+          >
+            <HamburgerMenuIcon Class="fill-base-content" />
+          </button>
         </div>
-    </footer>
+        {#if !navbarHidden}
+          <div class="nav-list" transition:fly={{ y: -25, duration: 350 }}>
+            <!-- <a onclick={resetNavBar} href="/">Home</a> -->
+            <a
+              onclick={resetNavBar}
+              href="https://botalex.itch.io/"
+              target="_blank">Games</a
+            >
+            <a href="/zhen/cv/rev2?hideOnPrint=1" target="_blank">Zhen's CV</a>
+            <!-- <a onclick={resetNavBar} href="/posts">Blog</a>
+                        <a onclick={resetNavBar} href="/about">About</a> -->
+          </div>
+        {/if}
+      {/if}
+    </div>
+  </header>
+
+  <!-- Page content -->
+  {@render children?.()}
+
+  <Zooter bind:hideOnPrint />
 </div>
 
+{#if footerCollapse}
+  <style>
+    .about-container {
+      flex-direction: column;
+      justify-content: center !important;
+      gap: 25px;
+    }
+  </style>
+{/if}
+
+{#if isMobile}
+  <style>
+  </style>
+{/if}
 
 <style lang="scss">
-    /* Nav bar. */
-    header {
-        display: flex;
-        justify-content: center;
+  /* Nav bar. */
+  header {
+    display: flex;
+    justify-content: center;
+  }
+
+  header a {
+    text-decoration: none;
+  }
+
+  .nav-bar {
+    width: 100%;
+    max-width: 1400px;
+  }
+
+  .desktop {
+    width: 100%;
+    display: flex;
+    gap: 30px;
+  }
+
+  .collapsed {
+    width: 100%;
+    display: flex;
+  }
+
+  #toggle-nav {
+    background: transparent;
+    border: none;
+  }
+
+  .nav-list {
+    display: flex;
+    flex-direction: column;
+    gap: 10px;
+
+    align-items: center;
+  }
+
+  .nav-head {
+    display: flex;
+    align-items: center;
+    gap: 10px;
+  }
+
+  #logo-link {
+    width: 64px;
+    aspect-ratio: 1 / 1;
+  }
+
+  #logo-text {
+    font-size: 24px;
+    color: oklch(var(--bc));
+    font-family: var(--title-font);
+    margin: 0;
+
+    min-width: 200px;
+  }
+
+  .nav-spacer {
+    width: 100%;
+  }
+
+  header a {
+    display: flex;
+    align-items: center;
+
+    font-size: 22px;
+    font-family: var(--title-font);
+    // Text color
+    color: oklch(var(--bc));
+  }
+
+  /* Footer. */
+  footer {
+    margin-top: 50px;
+    padding: 25px 0;
+    background-color: oklch(var(--b3));
+
+    height: 100%;
+
+    display: flex;
+    justify-content: center;
+  }
+
+  .about-container {
+    width: 80%;
+    height: 100%;
+
+    color: oklch(var(--bc));
+
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-evenly;
+
+    & h3 {
+      font-size: larger;
     }
+  }
 
-    header a {
-        text-decoration: none;
-    }
+  .about-container > div {
+    align-items: center;
+    text-align: center;
+  }
 
-    .nav-bar {
-        width: 100%;
-        max-width: 1400px;
-    }
+  .credits {
+    line-height: 2;
+  }
 
-    .desktop {
-        width: 100%;
-        display: flex;
-        gap: 30px;
-    }
+  .contact {
+    display: flex;
+    flex-direction: column;
+  }
 
-    .collapsed {
-        width: 100%;
-        display: flex;
-    }
+  .social {
+    display: flex;
+    align-content: center;
+    gap: 10px;
+  }
 
-    #toggle-nav {
-        background: transparent;
-        border: none;
-    }
+  .social > img {
+    width: 24px;
+  }
 
+  footer h3 {
+    margin-top: 0px;
+    color: var(--text2);
+  }
 
-    .nav-list {
-        display: flex;
-        flex-direction: column;
-        gap: 10px;
+  footer a {
+    color: var(--text2);
+    text-decoration-line: underline;
+  }
 
-        align-items: center;
-    }
-
-    .nav-head {
-        display: flex;
-        align-items: center;
-        gap: 10px;
-    }
-
-    #logo-link {
-        width: 64px;
-        aspect-ratio: 1 / 1;
-    }
-
-    #logo-text {
-        font-size: 24px;
-        color: oklch(var(--bc));
-        font-family: var(--title-font);
-        margin: 0;
-
-        min-width: 200px;
-    }
-
-    .nav-spacer {
-        width: 100%;
-    }
-
-    header a {
-        display: flex;
-        align-items: center;
-
-        font-size: 22px;
-        font-family: var(--title-font);
-        // Text color
-        color: oklch(var(--bc));
-    }
-
-    /* Footer. */
-    footer {
-        margin-top: 50px;
-        padding: 25px 0;
-        background-color: oklch(var(--b3));
-
-        height: 100%;
-
-        display: flex;
-        justify-content: center;
-    }
-
-    .about-container {
-        width: 80%;
-        height: 100%;
-
-        color: oklch(var(--bc));
-
-        display: flex;
-        flex-wrap: wrap;
-        justify-content: space-evenly;
-    }
-
-    .about-container > div {
-        align-items: center;
-        text-align: center;
-    }
-
-    .credits {
-        line-height: 2;
-    }
-
-    .contact {
-        display: flex;
-        flex-direction: column;
-    }
-
-    .social {
-        display: flex;
-        align-content: center;
-        gap: 10px;
-    }
-
-    .social > img {
-        width: 24px;
-    }
-
-    footer h3 {
-        margin-top: 0px;
-        color: var(--text2);
-    }
-
-    footer a {
-        color: var(--text2);
-        text-decoration-line: underline;
-    }
-
-    a:hover {
-        filter: brightness(130%);
-    }
-
-    @media print {
-    .hide-on-print {
-        display: none;
-    }
-}
+  a:hover {
+    filter: brightness(130%);
+  }
 </style>
-
-{#if footerCollapse}
-    <style>
-        .about-container {
-            flex-direction: column;
-            justify-content: center !important;
-            gap: 25px;
-        }
-    </style>
-{/if}
-
-{#if headerCollapse}
-    <style>
-
-    </style>
-{/if}
diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts
index 189f71e..b392f05 100644
--- a/src/routes/+layout.ts
+++ b/src/routes/+layout.ts
@@ -1 +1 @@
-export const prerender = true;
+export const prerender = true;
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index d5cddc6..3fb986f 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,168 +1,259 @@
 <script lang="ts">
+	import ProfileSpacer from './comps/ProfileSpacer.svelte';
     import MediaQuery from 'svelte-media-queries';
     import NewsCard from '$lib/posts/NewsCard.svelte';
     import ShowcaseNewsCard from '$lib/posts/ShowcaseNewsCard.svelte';
     import Button from '$lib/IO/Button.svelte';
     import { ButtonType } from '$lib/IO/ButtonType.ts';
     import Timeline from '../comps/timeline/timeline.svelte';
-    import { Parallax, ParallaxLayer, StickyLayer } from "svelte-parallax";
-    import { Confetti } from "svelte-confetti"
-    import { tick } from 'svelte'
+    import { onMount, tick } from 'svelte'
 
+    import PreviewDeprivedLogo from "$lib/images/DeprivedLogo-NoBackground.png";
 
     import BackgroundVideo from "$lib/videos/DeprivedDevMontage.gif"
-    import FrontFold from './comps/FrontFold.svelte';
+    import Carousel from './comps/Carousel.svelte';
 
+    import Corrobot1 from "$lib/GamePreviews/Corrobot-rebouce-title.jpg"
+    import Corrobot2 from "$lib/GamePreviews/Corrobot-rebouce-gameplay1.png"
+    import Corrobot3 from "$lib/GamePreviews/Corrobot-rebouce-gameplay2.png"
+
+    import Blood1 from "$lib/GamePreviews/Blood-title.png"
+    import Blood2 from "$lib/GamePreviews/Blood-preview1.png"
+    import Blood3 from "$lib/GamePreviews/Blood-preview2.png"
+    import Blood4 from "$lib/GamePreviews/Blood-preview3.png"
+    import Blood5 from "$lib/GamePreviews/Blood-preview4.png"
+    
+    import Time1 from "$lib/GamePreviews/Time-1.png"
+    import Time2 from "$lib/GamePreviews/time-2.png"
+    import Time3 from "$lib/GamePreviews/time-3.png"
+    import Time4 from "$lib/GamePreviews/time-4.png"
+    import Time5 from "$lib/GamePreviews/time-5.gif"
+    import Tags from './comps/Tags.svelte';
+    import NameAndTag from './comps/NameAndTag.svelte';
+    import Profile from './comps/Profile.svelte';
+    
     const mobileThreshold : string = '600px'; // was 1000px. zhen testing
     let mobile : boolean;
 
-    import { onMount } from 'svelte';
-
-    // Restore scroll position on mount
-    
-    let showConfetti: boolean = false;
-    function onProgressConfetti(progress: number){
-        console.log(progress);
-
-        showConfetti = !mobile && progress > 0.225 || mobile && progress > 0.32;
-    }
+    onMount(()=> {
+        let tabTittleElement = window.document.getElementById("TabTittle");
+            if (tabTittleElement) // Not null
+        tabTittleElement.innerHTML = "Deprived devs";
+    });
 </script>
 
 
 <!-- Detect mobile -->
 <MediaQuery query='(max-width: {mobileThreshold})' bind:matches={mobile} />
 
-<Parallax sections={2.5}>
-    <ParallaxLayer span={0.6} rate={0.2} class="pointer-events-none">
-        <div class="pointer-events-auto" style="position: relative; width: 100%; height: 100%; overflow: hidden;">
-            <img src="{BackgroundVideo}" style="width: 100%; height: 100%; object-fit: cover; filter: blur(5px) brightness(0.6);" alt="Background video"/>
-            <div class="main-title m-auto" style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; align-items: center; gap: 2rem; color: white; padding: 1rem;">
-                <h1  style="font-size: {!mobile ? 5 : 3}rem; text-shadow: 0.2rem 0.2rem 1rem rgba(0, 0, 0, 0.9); z-index: 100;">{@html !mobile ? "Deprived Devs" : "Deprived<br/>Devs"}</h1>
-                {#if mobile}
-                    <div style="width: 100px; height: 100px;"></div>
-                {/if}
-            </div>
+<title id="TabTittle">We are the DEPRIVED DEVS</title>
+<meta content="We are the deprived devs" property="og:title" />
+<meta content="We make everything frontend, backend, games, websites, machine learning, whatever. We're just abunch of nerds, and we love it!" property="og:description" />
+<meta content={PreviewDeprivedLogo} property="og:image" />
+<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
+
+<div class="pointer-events-auto" style="position: relative; width: 100%; height: 100%; overflow: hidden;">
+    <img id="backgroundGif" src="{BackgroundVideo}" alt="Background video"/>
+    <div class="main-title m-auto cozette" style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; align-items: center; gap: 2rem; color: white; padding: 1rem;">
+        <h1 style="font-size: {!mobile ? 5 : 3}rem; text-shadow: 0.2rem 0.2rem 1rem rgba(0, 0, 0, 0.9);">
+            {#if !mobile}
+                Deprived Devs
+            {:else}
+                Deprived
+                <br/>
+                <span class="-mt-6 prose" style="font-size: 2rem;">
+                    Devs
+                </span>
+            {/if}
+        </h1>
+        {#if mobile}
+            <div style="width: 100px; height: 100px;"></div>
+        {/if}
+    </div>
+</div>
+
+<div class="cozette flex flex-col justify-center items-center w-full md:px-8 pt-4">
+    <h2 class="text-center" style="font-size: {!mobile ? 3 : 2}rem;">
+        Developers
+    </h2>
+    <div class="">
+        <div class="grid max-lg:grid-cols-1 sm:grid-cols-2 gap-4 p-4 max-lg:px-0 w-full">
+
+            <Profile name="Zhen / Alex" tags={["Programmer", "3D artist", "UX Designer"]} isMobile={mobile}>
+                <span>
+                    <p>Hi, I am Alex/Zhen, {@html !mobile ? "" : "<br/>"} I'm that chinese guy.</p>
+                    <p>Here's my CV: <a href="/zhen/cv/rev2?hideOnPrint=1" style="color:lightblue;">pdf</a></p>
+                </span>
+            </Profile>
+            
+            <Profile name="Sveske / Benjamin" tags={["Programmer", "Back-end Admin"]} isMobile={mobile}>
+                <span>
+                    <p><span class="inline line-through">Hi, I use Arch, btw. </span> I use NixOS now</p>
+                    <p><a href="https://www.linkedin.com/in/benjamin-dreyer/" target="_blank" style="color:lightblue;">Linked-in</a></p>
+                </span>
+            </Profile>
+            
+            <Profile isSnorre={true} tags={["Programmer"]} isMobile={mobile}/>
+
+            <Profile name="Oliver" tags={["Sound/Story","2D Artist", "Programmer"]} isMobile={mobile}>
+                <span>
+                    <p>Snorre does not get paid.</p>
+                    <p><a href="https://www.linkedin.com/in/oliver-schwenger-291944278/" target="_blank" style="color:lightblue;">Linked-in</a></p>
+                </span>
+            </Profile>
+
+            <Profile name="Kim" tags={["Cinemachine", "3D Artist", "Programmer"]} isMobile={mobile}>
+                <span>
+                    <p>Abla espaniol</p>
+                    <p><a href="https://www.linkedin.com/in/kim-rex-de-dios-408860299/" target="_blank" style="color:lightblue;">Linked-in</a></p>
+                </span>
+            </Profile>
+            
+            <Profile name="Zylvester" tags={["Sound/Story", "2D/3D artist"]} isMobile={mobile}>
+                <span>
+                    <p>Closeted omega weeb</p>
+                    <p><a href="https://www.linkedin.com/in/sylvester-junge-0b2a73196/" target="_blank" style="color:lightblue;">Linked-in</a>, <a href="https://www.youtube.com/watch?v=xvFZjo5PgG0" style="color:lightblue;">Funny link</a></p>
+                </span>
+            </Profile>
         </div>
-    </ParallaxLayer>
-    <ParallaxLayer offset={0.55} rate={0.3} class="bg-base-200 pointer-events-none">
+    </div>
+</div>
+
+<div class="py-4"></div>
+
+<div class="grid place-content-center place-items-center pointer-events-auto font-mono">
+    <!-- <article class="pt-16 prose overflow-hidden {mobile ? "px-8" : ""}">
+        <h2 class="main-title {!mobile ? "text-center m-auto" : "m-0"}" style="font-size: {!mobile ? 3 : 3}rem; ">About us</h2>
+        <p>We are a small group of developers and artists who started out as classmates, united by our passion for all things technology.</p>
+    </article> -->
+
+    <!-- Spacer -->
+    <!-- <div style="width: 50%;" class="{!mobile ? "py-16" : "py-4"}">
+        <ProfileSpacer/>
+    </div> -->
+    
+    <article class="prose {mobile ? "px-8" : ""}">
+        <h2 class="main-title {!mobile ? "text-center m-auto" : "m-0"}" style="font-size: {!mobile ? 3 : 3}rem; ">Games</h2>
+        <p>Here are some of our games from various gamejams from the past. <br/>(<span class="font-bold">ONLY</span> 48 hours per game)</p>
+    </article>
+
+    <!-- Spacer -->
+    <div style="width: 50%;" class="{!mobile ? "py-8" : "py-4"}">
         
-    </ParallaxLayer>
+    </div>
 
-    <ParallaxLayer onProgress={onProgressConfetti} offset={0.75}>
-        <div class="prose flex justify-center m-auto">
-            <h1 class="main-title text-center" style="font-size: {!mobile ? 3 : 2}rem;">
-                Developers!
-            </h1>
-        </div>
-    </ParallaxLayer>
-
-    <!-- Decorative:  -->
-    <StickyLayer offset={(!mobile) ? ({ top: 0.4, bottom: 0.75 }) : ({ top: 0.4, bottom: 0.4 })} class="pointer-events-none">
-        <div class="prose font-mono pointer-events-auto  h-full" style="max-width: 100%;">
-            <div class="flex justify-center items-center h-full relative">
-                <div class="flex justify-center" style="position: absolute; top: 30vh; {!mobile ? "max-width: 35vw;" : "width: 100%;"}">
-                    {#if showConfetti}
-                    <div>
-                        <Confetti noGravity cone  amount={50} colorArray={["white"]} />
-                    </div>
-                    {/if}
-                </div>
-                <div class="grid gap-4" style="{!mobile ? "max-width: 50vw;" : ""} background: linear-gradient(to bottom, transparent 0%, oklch(var(--b2)) 5%)">
-                    <FrontFold Title="Alex / Zhen" Checked={true}>
-                        <p>Hi, I am Alex/Zhen, I'm that chinese guy.</p>
-                        <p>Here's my CV: <a href="/zhen/cv/rev2?hideOnPrint=1" style="color:lightblue;">pdf</a></p>
-                    </FrontFold>
-                    <FrontFold Title="Sveske / Benjamin">
-                        <p>Hi, I use Arch, btw.</p>
-                        <p>Here's my Linked-in: <a href="https://www.linkedin.com/in/benjamin-dreyer/" style="color:lightblue;">Linked-in</a></p>'
-                    </FrontFold>
-                    <FrontFold Title="Zylvester">
-                        <p>Hi, I am [insert text here]</p>
-                        <p>Here's a joke about recursion: <a href="/" style="color:lightblue;">recursion</a></p>
-                    </FrontFold>
+    <div class="grid grid-flow-row gap-4 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">                
+        <!-- Corro rebounce -->
+        <div class="games card bg-base-100 shadow-xl">
+            <figure style="height: 15em;">
+                <Carousel images={[
+                    Corrobot1,
+                    Corrobot2,
+                    Corrobot3,
+                    ]}/>
+            </figure>
+            <div class="card-body">
+                <h2 class="card-title">Corrobot-rebounce</h2>
+                <p>A 3D sequel to Corrobot-Takeover</p>
+                <br/>
+                <p>This was made during <a href="https://itch.io/jam/nordic-game-jam-2024/rate/2659665" class="underline">Nordic gamejam 2024</a></p>
+                <div class="card-actions justify-end">
+                <a href="https://botalex.itch.io/corrobot-rebounce" target="_blank" class="btn btn-primary text-primary-content">View on itch.io</a>
                 </div>
             </div>
         </div>
-    </StickyLayer>
 
-    <ParallaxLayer offset={1.5} rate={0.3} class="bg-base-200 pointer-events-none" style="box-shadow: 0 -1rem 10px rgba(0, 0, 0, 0.2);" >
-        <div class="grid place-content-center place-items-center min-h-screen pointer-events-auto">
-            <article class="pt-16 prose overflow-hidden font-mono {mobile ? "px-8" : ""}">
-                <h1 class="main-title {!mobile ? "text-center m-auto" : "m-0"}" style="font-size: {!mobile ? 5 : 3}rem; ">About us</h1>
-                <p>We are a small group of developers and artists who started out as classmates, united by our passion for all things technology.</p>
-            </article>
-
-            <!-- Spacer -->
-            <div class="{!mobile ? "py-16" : "py-4"}"/> 
-
-            <div class="grid grid-flow-row gap-4 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">                
-                <div class="flex w-52 flex-col gap-4">
-                    <div class="skeleton h-32 w-full"></div>
-                    <div class="skeleton h-4 w-28"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                    <div class="skeleton h-4 w-full"></div>
+        <!-- Blood -->
+        <div class="games card bg-base-100 w-96 shadow-xl">
+            <figure style="height: 15em;">
+                <Carousel images={[
+                    Blood1,
+                    Blood2,
+                    Blood3,
+                    Blood4,
+                    Blood5,
+                    ]}/>
+            </figure>
+            <div class="card-body">
+                <h2 class="card-title">Unnamed blood game</h2>
+                <p>A game based on an unique kind of combat</p>
+                <br/>
+                <p>This was made during <a href="https://itch.io/jam/future-game-makers-jam-2024" class="underline">Future Game Makers</a>, and of course our team won the competition.</p>
+                <div class="card-actions justify-end">
+                <a href="https://botalex.itch.io/mop-of-the-dead" target="_blank" class="btn btn-primary text-primary-content">View on itch.io</a>
                 </div>
-                <div class="flex w-52 flex-col gap-4">
-                    <div class="skeleton h-32 w-full"></div>
-                    <div class="skeleton h-4 w-28"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                </div>
-                {#if !mobile}
-                <div class="flex w-52 flex-col gap-4">
-                    <div class="skeleton h-32 w-full"></div>
-                    <div class="skeleton h-4 w-28"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                </div>
-                <div class="flex w-52 flex-col gap-4">
-                    <div class="skeleton h-32 w-full"></div>
-                    <div class="skeleton h-4 w-28"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                    <div class="skeleton h-4 w-full"></div>
-                </div>
-                {/if}
             </div>
-
-            <h6 class="prose text-base-300"><b>(These will never load)</b></h6>
         </div>
-    </ParallaxLayer>
 
-    <!-- <StickyLayer offset={{ top: 1.75, bottom: 2 }} >
-        <div class="flex justify-center prose main-title overflow-hidden">
-            <h1 style="font-size: {!mobile ? 5 : 3}rem;">About us</h1>
+        <!-- Time -->
+        <div class="games card bg-base-100 w-96 shadow-xl">
+            <figure style="height: 15em;">
+                <Carousel images={[
+                    Time1,
+                    Time2,
+                    Time3,
+                    Time4,
+                    Time5,
+                    ]}/>
+            </figure>
+            <div class="card-body">
+                <h2 class="card-title">One More Time</h2>
+                <p>What if time was money? A rougelike where you need to kill for time, which you can choose to spend.</p>
+                <br/>
+                <p>This was made during <a href="https://itch.io/jam/dmspiljam-november-2021" class="underline">Denmark Masters jam</a>. This jam has youths allover Denmark to compete, and of course our team won the competition again.</p>
+                <div class="card-actions justify-end">
+                <a href="https://botalex.itch.io/one-more-time" target="_blank" class="btn btn-primary text-primary-content">View on itch.io</a>
+                </div>
+            </div>
         </div>
-    </StickyLayer> -->
-</Parallax>
 
-<Timeline/>
+        
+
+        <div class="games card bg-base-100 w-96 shadow-xl">
+            <figure class="rounded-b-none" style="height: 15em;">
+                <div class="bg-grid-100 flex w-full h-full"></div>
+            </figure>
+            <div class="card-body">
+                <h2 class="card-title">What's next?</h2>
+                <div class="skeleton mt-1 h-4 w-28"></div>
+                <div class="skeleton h-4 w-full"></div>
+                <div class="skeleton h-4 w-full"></div>
+                <div class="skeleton h-4 w-28"></div>
+                <div class="skeleton h-4 w-full"></div>
+                <div class="flex grow"/>
+                <div class="card-actions justify-end">
+                    <a href="/" target="_blank" class="btn btn-primary text-primary-content text-primary-content">RECURSION!</a>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
 
 <style>
-    .main-title {
-        width: 80%;
-        font-family: var(--title-font);
+    #backgroundGif{
+        width: 100%; 
+        height: 100%;
+        max-height: 40vh;
+        object-fit: cover; 
+        filter: blur(5px) brightness(0.6);
     }
 </style>
 
-{#if mobile}
+{#if !mobile}
     <style>
-        #news-section {
-            transition-duration: 500ms;
-            transition-property: width;
-            width: 90% !important;
+        .games {
+            width: 24rem /* 384px */;
         }
-        .news-container {
-            flex-direction: column !important;
+    </style>
+
+{:else}
+    <style>
+        .games {
+            width: 80%;
+            display: flex;
+            justify-self: center;
         }
-
-        .dummy {
-            width: 0% !important;
-        }
-
-        /* #more-posts { */
-        /*     flex-grow: 1 !important; */
-        /* } */
-
     </style>
 {/if}
 
diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte
index d579647..eb8765c 100644
--- a/src/routes/about/+page.svelte
+++ b/src/routes/about/+page.svelte
@@ -1 +1 @@
-<p>This is an informative about page :) </p>
+<p>This is an informative about page :) </p>
diff --git a/src/routes/baller/+page.svelte b/src/routes/baller/+page.svelte
new file mode 100644
index 0000000..d07f396
--- /dev/null
+++ b/src/routes/baller/+page.svelte
@@ -0,0 +1,64 @@
+<script lang="ts">
+    import { onMount } from "svelte";
+
+  let scrollY = 0;
+
+  const animateInterval = 16;
+  const startMove = 64;
+  const numFrames = 312;
+
+  let framesLoaded = 1;
+  let ballsLoaded = 0;
+  let frameLoader: HTMLImageElement;
+  let frameLoader2: HTMLImageElement;
+  let frameLoader3: HTMLImageElement;
+  let frameLoader4: HTMLImageElement;
+
+  onMount(()=>{
+
+    // Force load once
+    ballsLoaded = 4;
+    onLoaded();
+  });
+
+  function onLoaded (){
+    ballsLoaded++;
+    if (ballsLoaded > 3) {
+        frameLoader.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
+        framesLoaded++;
+        frameLoader2.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
+        framesLoaded++;
+        frameLoader3.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
+        framesLoaded++;
+        frameLoader4.src = "/images/spinning_cat/untitled_" + framesLoaded.toString().padStart(5, '0') + ".png";
+        framesLoaded++;
+        ballsLoaded = 0;
+    }
+  }
+
+  let frameIndex = 0;
+  $: frameIndex = Math.min(Math.floor(Math.max(scrollY-startMove, 0) / animateInterval+1), numFrames);
+</script>
+
+<svelte:window bind:scrollY />
+
+<div class="w-full flex justify-center" style="height: 5000px;">
+    <!-- Image Loader -->
+    <img on:load={()=>{onLoaded()}} bind:this={frameLoader} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
+    <img on:load={()=>{onLoaded()}} bind:this={frameLoader2} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
+    <img on:load={()=>{onLoaded()}} bind:this={frameLoader3} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
+    <img on:load={()=>{onLoaded()}} bind:this={frameLoader4} style="height: 0.01px; width: 0.01px;" class="" src="/images/spinning_cat/untitled_00001.png" alt="">
+
+    <!-- add "top-0" so it sticks at the top -->
+    <div class="sticky top-0" style="width: 200px; height: 200px;">
+        <div class="flex justify-center items-center" style="width: 200px; height: 200px;">
+            <img src="/images/spinning_cat/untitled_{frameIndex.toString().padStart(5, '0')}.png" class="object-contain w-full h-full" alt="">
+        </div>
+        <div>{frameIndex}</div>
+        
+    </div>
+</div>
+
+<div class="h-[1000px] bg-amber-700 w-full">
+
+</div>
\ No newline at end of file
diff --git a/src/routes/comps/Carousel.svelte b/src/routes/comps/Carousel.svelte
new file mode 100644
index 0000000..d70be87
--- /dev/null
+++ b/src/routes/comps/Carousel.svelte
@@ -0,0 +1,133 @@
+<script lang="ts">
+  import { onMount } from "svelte";
+
+  export let images: string[] = []; // Expose images as a parameter
+  let currentIndex: number = 0;
+
+  let startX: number | null = null; // Track touch start X position
+  let deltaX: number = 0; // Track touch delta X
+
+  const nextSlide = (): void => {
+    currentIndex = (currentIndex + 1) % images.length;
+  };
+
+  const prevSlide = (): void => {
+    currentIndex = (currentIndex - 1 + images.length) % images.length;
+  };
+
+  const handleTouchStart = (event: TouchEvent): void => {
+    startX = event.touches[0].clientX;
+  };
+
+  const handleTouchMove = (event: TouchEvent): void => {
+    if (startX !== null) {
+      deltaX = event.touches[0].clientX - startX;
+    }
+  };
+
+  const handleTouchEnd = (): void => {
+    if (startX !== null) {
+      if (deltaX > 50) {
+        prevSlide(); // Swipe right
+      } else if (deltaX < -50) {
+        nextSlide(); // Swipe left
+      }
+    }
+    // Reset touch variables
+    startX = null;
+    deltaX = 0;
+  };
+</script>
+
+<style>
+  .carousel {
+    position: relative;
+    overflow: hidden;
+    width: 100%;
+    max-width: 800px;
+    height: 100%;
+    margin: auto;
+  }
+
+  .slides {
+    display: flex;
+    transition: transform 0.5s ease-in-out;
+    width: 100%;
+  }
+
+  .slide {
+    flex: 0 0 100%;
+    object-fit: cover;
+    object-position: center;
+  }
+
+  .controls {
+    position: absolute;
+    top: 50%;
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    transform: translateY(-50%);
+  }
+
+  .control {
+    background: rgba(0, 0, 0, 0.5);
+    border: none;
+    color: white;
+    font-size: 1.5rem;
+    cursor: pointer;
+    padding: 0.5rem;
+  }
+
+  .indicators {
+    display: flex;
+    justify-content: center;
+    position: absolute;
+    bottom: 10px;
+    width: 100%;
+  }
+
+  .indicator {
+    width: 10px;
+    height: 10px;
+    margin: 0 5px;
+    background: white;
+    border-radius: 50%;
+    opacity: 0.5;
+    cursor: pointer;
+  }
+
+  .indicator.active {
+    opacity: 1;
+  }
+</style>
+
+<div 
+  class="carousel" 
+  on:touchstart|preventDefault={handleTouchStart}
+  on:touchmove|preventDefault={handleTouchMove}
+  on:touchend|preventDefault={handleTouchEnd}
+>
+  <div
+    class="slides"
+    style="transform: translateX(-{currentIndex * 100}%);"
+  >
+    {#each images as image (image)}
+      <img class="slide" src={image} alt="Carousel Slide" />
+    {/each}
+  </div>
+
+  <div class="controls">
+    <button class="control" on:click={prevSlide}>&lt;</button>
+    <button class="control" on:click={nextSlide}>&gt;</button>
+  </div>
+
+  <div class="indicators">
+    {#each images as _, index}
+      <div
+        class="indicator {index === currentIndex ? 'active' : ''}"
+        on:click={() => (currentIndex = index)}
+      ></div>
+    {/each}
+  </div>
+</div>
\ No newline at end of file
diff --git a/src/routes/comps/FrontFold.svelte b/src/routes/comps/FrontFold.svelte
index 2eb92ff..149a73a 100644
--- a/src/routes/comps/FrontFold.svelte
+++ b/src/routes/comps/FrontFold.svelte
@@ -1,16 +1,16 @@
-<script>
-    export let Title = "";
-    export let Checked = false;
-</script>
-
-<div class="collapse collapse-arrow bg-base-100 text-start shadow-sm" {...$$restProps}>
-    {#if Checked}
-    <input type="radio" name="{Title}" checked/>
-    {:else}
-    <input type="radio" name="{Title}"/>
-    {/if}
-    <div class="collapse-title text-xl font-medium "><b>{Title}</b></div>
-    <div class="collapse-content" style="border-top: dotted 0.15rem oklch(var(--b3));">
-        <slot/>
-    </div>
+<script>
+    export let Title = "";
+    export let Checked = false;
+</script>
+
+<div class="collapse collapse-arrow bg-base-100 text-start shadow-sm" {...$$restProps}>
+    {#if Checked}
+    <input type="radio" name="{Title}" checked/>
+    {:else}
+    <input type="radio" name="{Title}"/>
+    {/if}
+    <div class="collapse-title text-xl font-medium "><b>{Title}</b></div>
+    <div class="collapse-content" style="border-top: dotted 0.15rem oklch(var(--b3));">
+        <slot/>
+    </div>
 </div>
\ No newline at end of file
diff --git a/src/routes/comps/MobileTags.svelte b/src/routes/comps/MobileTags.svelte
new file mode 100644
index 0000000..40e4eac
--- /dev/null
+++ b/src/routes/comps/MobileTags.svelte
@@ -0,0 +1,10 @@
+<script>
+    import Tags from "./Tags.svelte";
+
+    export let isMobile = false;
+    export let tags = ["null"];
+</script>
+
+{#if isMobile}
+    <Tags Tags={tags} isMobile={isMobile}/>
+{/if}
\ No newline at end of file
diff --git a/src/routes/comps/NameAndTag.svelte b/src/routes/comps/NameAndTag.svelte
new file mode 100644
index 0000000..9862718
--- /dev/null
+++ b/src/routes/comps/NameAndTag.svelte
@@ -0,0 +1,15 @@
+<script>
+    import Tags from "./Tags.svelte"; // Should've used better names lol
+
+    export let isMobile = false;
+    export let name = "";
+    export let tags = ["null"];
+</script>
+
+<div class="flex items-center">
+    <h2 style="font-size: {!isMobile ? 1.5 : 1.5}rem;">{name}</h2>
+    <div class="flex flex-grow"/>
+    {#if !isMobile}
+         <Tags Tags={tags} isMobile={isMobile}/>
+    {/if}
+</div>
\ No newline at end of file
diff --git a/src/routes/comps/Profile.svelte b/src/routes/comps/Profile.svelte
new file mode 100644
index 0000000..d2adb5d
--- /dev/null
+++ b/src/routes/comps/Profile.svelte
@@ -0,0 +1,67 @@
+<script>
+    import MobileTags from "./MobileTags.svelte";
+    import NameAndTag from "./NameAndTag.svelte";
+
+    export let isMobile = false;
+    export let name = "";
+    export let tags = ["null"];
+    export let isSnorre = false;
+
+    // Shit code but who cares, if it works /shrug
+</script>
+
+
+<div class="bg-grid-100 border-2 border-base-100 pl-1 pr-4 rounded-md cozette max-lg:pb-2">
+{#if !isSnorre}
+    <div class="developersProfile {isSnorre ? "isSnorre" : ""} pl-1 font-mono">
+        <NameAndTag name={name} tags={tags} isMobile={isMobile}/>
+        <slot/>
+        <MobileTags tags={tags} isMobile={isMobile}/>
+    </div>
+{:else}
+    <div class="w-full pl-1">
+        <div class="developersProfile absolute snorre pl-4 font-mono pointer-events-none select-none">
+            <pre style="font-size: {!isMobile ? 1.5 : 1.5}rem;"> </pre>
+            <span>
+                <pre> </pre>
+                <pre> </pre>
+            </span>
+            {#if isMobile}
+                <pre> </pre>
+            {/if}
+        </div>
+        <div class="developersProfile snorre-overlay relative pl-1 font-mono">
+            <NameAndTag name="Snorre" tags={tags} isMobile={isMobile}/>
+            <span>
+                <p>I'm the diversity hire. <span class="border-b" style="border-image: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); border-image-slice: 1;">(Gay)</span></p>
+                <!-- <p><a href="https://www.linkedin.com/in/snorrealtschul/" target="_blank" style="color:lightblue;">My website</a></p> -->
+                <p><a href="https://spoodythe.one/" target="_blank" style="color:lightblue;">My website</a></p>
+            </span>
+            <MobileTags tags={tags} isMobile={isMobile}/>
+        </div>
+    </div>
+{/if}
+</div>
+
+<style>
+    .developersProfile:not(.snorre):not(.snorre-overlay){
+        /* background-image: linear-gradient(var(--color-neutral) 33%, rgba(255,255,255,0) 0%); */
+        /* background-image: linear-gradient(var(--color-neutral) 100%);
+        background-position: left;
+        background-size: 0.1rem 0.5rem;
+        background-repeat: repeat-y; */
+    }
+
+    .snorre {
+        /* border-left: dashed transparent 0.1rem;
+        border-image: linear-gradient(to bottom, red, orange, yellow, green, blue, indigo, violet);
+        border-image-slice: 1; */
+    }
+
+    .snorre-overlay {
+        /* background-image: linear-gradient(rgba(255,255,255,0) 0%, rgba(255,255,255,0) 40%, var(--color-base-200) 40%); */
+        /* background-position: left;
+        background-size: 0.1rem 0.5rem;
+        background-repeat: repeat-y; */
+    }
+</style>
\ No newline at end of file
diff --git a/src/routes/comps/ProfileSpacer.svelte b/src/routes/comps/ProfileSpacer.svelte
new file mode 100644
index 0000000..68d0bf1
--- /dev/null
+++ b/src/routes/comps/ProfileSpacer.svelte
@@ -0,0 +1,8 @@
+<div class="profileSpacer"></div>
+
+<style>
+    .profileSpacer{
+        height: 1px;
+        border-bottom: solid oklch(var(--b3));
+    }
+</style>
\ No newline at end of file
diff --git a/src/routes/zhen/Comps/TopAnimatedBackground.svelte b/src/routes/comps/SlantedText.svelte
similarity index 74%
rename from src/routes/zhen/Comps/TopAnimatedBackground.svelte
rename to src/routes/comps/SlantedText.svelte
index 95cc0b0..f52edcb 100644
--- a/src/routes/zhen/Comps/TopAnimatedBackground.svelte
+++ b/src/routes/comps/SlantedText.svelte
@@ -1,10 +1,6 @@
 <script lang="ts">
     import { onMount } from "svelte";
-    import { Vector2 } from "./../Utils/Vector2";
-    import TopNameTextPlate from "./TopNameTextPlate.svelte";
-    //import { throttle } from "./../Utils/Throttle";
-
-    import { Parallax, ParallaxLayer, StickyLayer } from "svelte-parallax";
+    import { Vector2 } from "../zhen/Utils/Vector2";
 
     // Params
     let mouseMoveScale: number = 0.25;
@@ -113,32 +109,8 @@
 
 <svelte:window on:mousemove={onMouseMoved} />
 
-
-<ParallaxLayer class="StartPageContainer" rate={0.25} offset={0} span={0}>
-        <div
-            class="StartPageAnimated"
-            bind:this={StartPageAnimated}
-            style="transform: translate({mouseRelativeScaled.x}px, {mouseRelativeScaled.y}px) translateZ(0) rotate(0.001deg);"
-        >
-            {#each { length: 100 } as _, i}
-                <span class="rotate45 SkillsText">
-                    {GrabRandomString()}
-                </span>
-            {/each}
-        </div>
-    </ParallaxLayer>
-
-    <ParallaxLayer rate={0} offset={0.25} span={0}>
-        <TopNameTextPlate />
-    </ParallaxLayer>
-
-<!-- <div class="StartPageContainer">
-    <div class="TopOverlay">
-        <TopNameTextPlate/>
-    </div>
-
-    <div
-        class="StartPageAnimated"
+<div
+        class="StartPageAnimated top-0 left-0 w-full h-full"
         id="StartPageAnimated"
         bind:this={StartPageAnimated}
         style="transform: translate({mouseRelativeScaled.x}px, {mouseRelativeScaled.y}px) translateZ(0) rotate(0.001deg);"
@@ -153,10 +125,6 @@
         >
         {/each}
     </div>
-</div> -->
-
-<div id="DummyDiv" class="FirefoxSmoothTranition StartPageContainer TopOverlay" style="display: none !important;" />
-
 <style>
     .StartPageContainer {
         /* height: 40vh; */
@@ -173,20 +141,10 @@
     }
 
     .StartPageAnimated {
-        /* background: url("https://i1.adis.ws/i/canon/future_of_forests_header_16x9_dc14bbe1e35040f79bf566eedaf5c8f7?$hero-header-half-16by9-dt$"); */
-        background-color: #131313;
-        position: absolute;
-        height: 150vh;
-        width: 150vw;
-
         padding: 0;
 
         transition: transform 1000ms cubic-bezier(0.16, 1.63, 0.01, 0.99);
         -moz-transition: none;
-
-        left: -25vw;
-        top: -50vh;
-
         justify-content: center;
         vertical-align: middle;
         display: flex;
@@ -214,15 +172,6 @@
         color: rgb(66, 66, 66);
     }
 
-    .TopOverlay {
-        position: absolute;
-        z-index: 1;
-        width: 100%;
-        height: 100%;
-
-        padding: 0;
-    }
-
     .rotate45 {
         transform: rotate(-45deg); /* Rotate the element by 45 degrees */
     }
diff --git a/src/routes/comps/Tags.svelte b/src/routes/comps/Tags.svelte
new file mode 100644
index 0000000..f836a2c
--- /dev/null
+++ b/src/routes/comps/Tags.svelte
@@ -0,0 +1,93 @@
+<script lang="ts">
+    export let Tags = ["null"];
+    export let isMobile = false;
+
+    // Define an interface for our detailed color object.
+    interface ColorObject {
+        color1: string;
+        color2: string;
+        rotation: string;
+        offset: string;
+    }
+
+    // ColorType can be a simple string or a ColorObject.
+    type ColorType = string | ColorObject;
+
+    // Create an interface for the color mapping.
+    interface ColorsMapping {
+        [key: string]: ColorType;
+    }
+
+    // Define a class to manage the colors.
+    class ColorManager {
+        private colors: ColorsMapping;
+
+        constructor() {
+            this.colors = {
+                "programmer": "#0CC27F",
+                "uxdesigner": "#027893",
+                "3dartist": "#F4881C",
+                "2dartist": "#F1EAC0",
+                "2d/3dartist": { color1: "#F1EAC0", color2: "#F4881C", rotation: "-65deg", offset: "71.5%" },
+                "sound/story": { color1: "#F3EC2A", color2: "#EEC12A", rotation: "-65deg", offset: "50%" },
+                "sounddesigner": "#F3EC2A",
+                "storydesigner": "#EEC12A",
+                "back-endadmin": "#3236a8",
+            };
+        }
+
+        // Return the color for the given key or a default value.
+        getColor(key: string): ColorType {
+            return this.colors[key] || "#ccc";
+        }
+    }
+
+    // Create an instance of ColorManager.
+    const colorManager = new ColorManager();
+</script>
+
+<div class="flex gap-2" style="font-size: { !isMobile ? '0.875rem' : '2vw' };">
+    {#each Tags as tag}
+        {@const key = tag.replaceAll(" ", "").toLowerCase()}
+        {@const color = colorManager.getColor(key)}
+        {#if key.indexOf("/") < 0}
+            <!-- Single Color Badge -->
+            <div class="badge2" style="background-color: {typeof color === 'string' ? color : '#ccc'};">
+                <span class="invert">
+                    {tag}
+                </span>
+            </div>
+        {:else}
+            <!-- Gradient Badge -->
+            {#if typeof color === 'object' && color !== null}
+                <div 
+                    class="badge2 cozette" 
+                    style="background: linear-gradient({color.rotation}, {color.color2} {color.offset}, {color.color1} {color.offset});">
+                    <span class="invert">
+                        {tag}
+                    </span>
+                </div>
+            {:else}
+                <div class="badge2 cozette" style="background-color: #ccc;">
+                    <span class="invert">
+                        {tag}
+                    </span>
+                </div>
+            {/if}
+        {/if}
+    {/each}
+</div>
+
+<style>
+    .badge2 {
+        display: inline-flex;
+        align-items: center;
+        justify-content: center;
+        height: 1.25rem; /* 20px */
+        line-height: 1.25rem; /* 20px */
+        width: fit-content;
+        padding-left: 0.563rem; /* 9.008px */
+        padding-right: 0.563rem; /* 9.008px */
+        border-radius: var(--rounded-badge, 1.9rem); /* 30.4px */
+    }
+</style>
diff --git a/src/routes/comps/Zooter.svelte b/src/routes/comps/Zooter.svelte
new file mode 100644
index 0000000..3c52722
--- /dev/null
+++ b/src/routes/comps/Zooter.svelte
@@ -0,0 +1,258 @@
+<script lang="ts">
+  import svelteLogo from "$lib/svelteLogos/svelte-logo.png";
+  import { browser } from "$app/environment";
+  import { onDestroy, onMount } from "svelte";
+  import { ArrowBigDown } from "lucide-svelte";
+  import { fly } from "svelte/transition";
+  const buildTime = __BUILD_TIME__;
+
+  let scrollY = 0;
+  const unscrollSpeed = 100;
+  let unscrollScrollDiv: HTMLDivElement;
+  let totalScroll = 0;
+
+  let unscrollInterval: number | undefined = undefined;
+  let lastScrollTime = 0; // Used to have delay before unscrolling
+  let isBeingTouched = false; // Phone support
+  const unscrollDelay = 100;
+
+  let isLeavingAnimating = false;
+
+  // prevent direct scroll
+  let notFirstScroll = false;
+
+  let tranisitionOverlay: HTMLElement;
+
+  // Function with more scroll control, by chatgpt
+  function smoothScrollTo(targetY: number, duration: number = 500): void {
+    const startY: number = window.scrollY;
+    const diff: number = targetY - startY;
+
+    if (duration <= 0) {
+      window.scrollTo(0, targetY);
+      return;
+    }
+
+    let startTime: number | null = null;
+
+    function step(timestamp: number): void {
+      if (startTime === null) startTime = timestamp;
+      const time = timestamp - startTime;
+      const percent = Math.min(time / duration, 1);
+
+      // easeInOutQuad easing
+      const ease =
+        percent < 0.5
+          ? 2 * percent * percent
+          : -1 + (4 - 2 * percent) * percent;
+
+      window.scrollTo(0, startY + diff * ease);
+
+      if (time < duration) {
+        requestAnimationFrame(step);
+      }
+    }
+
+    requestAnimationFrame(step);
+  }
+
+  // Out animation:
+  function flyInFromTop(
+    node: HTMLElement,
+    {
+      y = -window.innerHeight,
+      duration = 400,
+      opacity = 0,
+    }: { y?: number; duration?: number; opacity?: number } = {},
+  ) {
+    const {
+      delay = 0,
+      duration: d,
+      easing = (t) => t,
+      css,
+    } = fly(node, { y, duration: d, opacity });
+
+    let start: number;
+    function step(now: number) {
+      if (!start) start = now;
+      const elapsed = now - start - delay;
+      if (elapsed < 0) return requestAnimationFrame(step);
+      const t = Math.min(elapsed / d, 1);
+      if (css) node.style.cssText = css(easing(t), 1 - easing(t));
+      if (elapsed < d) requestAnimationFrame(step);
+    }
+    requestAnimationFrame(step);
+  }
+
+  onMount(() => {
+    return; // Fuck this, I'm too lazy to fix this atm
+    totalScroll = document.documentElement.scrollHeight - window.innerHeight;
+
+    unscrollInterval = setInterval(() => {
+      // Prevents scroll to bottom on first try
+      if (
+        !notFirstScroll &&
+        scrollY > totalScroll - unscrollScrollDiv.scrollHeight
+      ) {
+        smoothScrollTo(totalScroll - unscrollScrollDiv.scrollHeight * 1.1, 0);
+
+        // Allow further scroll after delay
+        setTimeout(() => {
+          notFirstScroll = true;
+        }, 1000);
+      }
+
+      // console.log("Time with delay: " + (Date.now() - -unscrollDelay) + " Other " + lastScrollTime);
+      // console.log(isBeingTouched);
+      if (
+        !notFirstScroll ||
+        isBeingTouched ||
+        Date.now() < lastScrollTime - -unscrollDelay
+      ) {
+        // console.log("nah");
+        return;
+      }
+
+      if (totalScroll - unscrollScrollDiv.scrollHeight < scrollY) {
+        smoothScrollTo(totalScroll - unscrollScrollDiv.scrollHeight, 200);
+      }
+
+      if (totalScroll <= scrollY) {
+        console.log("Hit!");
+        // isLeavingAnimating = true;
+        flyInFromTop(tranisitionOverlay, { duration: 800 });
+      }
+    }, 10);
+  });
+
+  function onScroll() {
+    lastScrollTime = Date.now();
+    // console.log("scroll");
+  }
+
+  function onResize() {
+    totalScroll = document.documentElement.scrollHeight - window.innerHeight;
+  }
+
+  onDestroy(() => {
+    clearInterval(unscrollInterval);
+  });
+
+  export let hideOnPrint: boolean;
+</script>
+
+<svelte:window
+  bind:scrollY
+  on:scroll={() => {
+    onScroll();
+  }}
+  on:touchstart={() => {
+    isBeingTouched = true;
+  }}
+  on:touchend={() => {
+    isBeingTouched = false;
+  }}
+  on:resize={onResize}
+/>
+
+<div class="{hideOnPrint ? 'hide-on-print' : ''} w-full">
+  <!-- Keep scrolling thing -->
+  <div class="hidden h-64 w-full flex flex-col justify-center items-center">
+    <div>Keep scrolling to veiw Zhen's portfolio site!</div>
+    <div class="flex justify-center">
+      <ArrowBigDown />
+      <ArrowBigDown />
+      <ArrowBigDown />
+      <ArrowBigDown />
+    </div>
+  </div>
+
+  <div
+    class="hidden h-64 w-full flex flex-col justify-end items-center"
+    bind:this={unscrollScrollDiv}
+  >
+    <img
+      src="/images/memes/WhatDaDog.png"
+      class="w-32 h-32 object-contain"
+      alt="da dog"
+    />
+  </div>
+
+  <!-- About footer -->
+  <div
+    class="sticky bottom-0 flex flex-col justify-center pt-8 bg-base-300 mt-8"
+  >
+    <div class="flex justify-center">
+      <div class="grid gap-8 sm:grid-cols-3 items-center w-full">
+        <div class="flex flex-col items-center">
+          <span class="font-bold">© 2023-2025</span>
+          <br />
+          <span>Benjamin Dreyer</span>
+          <br />
+          <span>Oliver Schwenger</span>
+          <br />
+          <span>Sylvester Junge</span>
+          <br />
+          <span>Snorre Ettrup Altschul</span>
+          <br />
+          <span>Zhentao Wei</span>
+        </div>
+        <div class="flex flex-col items-center">
+          <h3><b>About this website</b></h3>
+          <!-- <a href="/" target="_blank">Recursion</a> -->
+          <div class="flex justify-center">
+            This website was made using <a
+              class="grid place-content-center"
+              target="_blank"
+              href="https://kit.svelte.dev/"
+            >
+              <img
+                class="pl-2"
+                src={svelteLogo}
+                style="height: 1.5rem;"
+                alt="SvelteKit logo"
+              /></a
+            >
+          </div>
+          <span
+            >Website <a
+              href="https://git.deprived.dev/DeprivedDevs/deprived-main-website"
+              target="_blank">source code</a
+            ></span
+          >
+        </div>
+        <div class="flex flex-col items-center">
+          <h3><b>Contact</b></h3>
+          <a href="mailto:zhen@deprived.dev">zhen@deprived.dev</a>
+          <div class="mt-2"></div>
+          <a
+            href="https://discord.gg/awatEEqc3M"
+            target="_blank"
+            class="social"
+          >
+            <!-- <span>Discord</span> -->
+            <img
+              src="/images/icons/discord.svg"
+              class="w-8 h-8 object-contain"
+              alt="Discord"
+            />
+          </a>
+        </div>
+      </div>
+    </div>
+    <div
+      class="flex w-full justify-center border-t border-base-100 border-dashed"
+    >
+      Last build: {buildTime} (+2 UTC)
+    </div>
+  </div>
+</div>
+
+<div
+  bind:this={tranisitionOverlay}
+  class="{isLeavingAnimating
+    ? ''
+    : 'hidden'} fixed top-0 left-0 w-screen h-screen bg-base-200"
+></div>
+<!-- {#if isLeavingAnimating}
+{/if} -->
diff --git a/src/routes/games/+page.svelte b/src/routes/games/+page.svelte
index 00d7bdd..236d407 100644
--- a/src/routes/games/+page.svelte
+++ b/src/routes/games/+page.svelte
@@ -1 +1 @@
-WIP
+WIP
diff --git a/src/routes/post/+layout.svelte b/src/routes/post/+layout.svelte
index 849ccc3..e49c2ef 100644
--- a/src/routes/post/+layout.svelte
+++ b/src/routes/post/+layout.svelte
@@ -1,92 +1,92 @@
-<!-- Layout for posts -->
-<script lang="ts">
-    import { type BlogData } from './+layout';
-
-    export let data : BlogData
-
-    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
-                  "July", "August", "September", "October", "November", "December"];
-    function humanDate(date : Date) : string {
-        return `${date.getDate()} ${monthNames[date.getMonth()]} ${date.getFullYear()}`;
-    }
-</script>
-
-<article>
-    <div class="body">
-        <header>
-            <img id="blog-cover-img" src={data.post.cover_img} alt={data.post.cover_alt} />
-            <h3 id="title">{data.post.title}</h3>
-            <div class="dates">
-                <span class="date">Created {humanDate(new Date(+data.post.creation_date * 1000))}</span>
-                <span class="date">Last Modified {humanDate(new Date(+data.post.modification_date * 1000))}</span>
-            </div>
-        </header>
-        <div class="content">
-            <slot />
-        </div>
-    </div>
-</article>
-
-
-<style>
-    article {
-        margin-top: 25px;
-        margin-inline: auto;
-        max-width: 1000px;
-
-        /* background: var(--background1); */
-    }
-
-    header {
-        display: flex;
-        flex-direction: column;
-
-        margin-bottom: 50px;
-    }
-
-    #blog-cover-img {
-        aspect-ratio: 16 / 9;
-        max-width: 100%;
-
-        border-radius: 0.5rem;
-    }
-
-    #title {
-        font-family: var(--title-font);
-        font-size: 36px;
-        margin: 0;
-    }
-
-    .dates {
-        display: flex;
-        justify-content: space-between;
-        flex-wrap: wrap;
-        gap: 10px;
-    }
-
-    .date {
-        color: var(--text3);
-    }
-
-    .body {
-        margin-inline: auto;
-        max-width: 1200px;
-        padding: 25px;
-    }
-
-    .content {
-        line-height: 2;
-        font-size: 18px;
-        text-rendering: optimizeLegibility;
-    }
-
-    /* CSS for posts - child rooutes. */
-    img {
-        width: 100%;
-    }
-
-    :global(a) {
-        color: var(--text1);
-        text-decoration-line: underline;
-    }
-</style>
+<!-- Layout for posts -->
+<script lang="ts">
+    import { type BlogData } from './+layout';
+
+    export let data : BlogData
+
+    const monthNames : string[] = ["January", "February", "March", "April", "May", "June",
+                  "July", "August", "September", "October", "November", "December"];
+    function humanDate(date : Date) : string {
+        return `${date.getDate()} ${monthNames[date.getMonth()]} ${date.getFullYear()}`;
+    }
+</script>
+
+<article>
+    <div class="body">
+        <header>
+            <img id="blog-cover-img" src={data.post.cover_img} alt={data.post.cover_alt} />
+            <h3 id="title">{data.post.title}</h3>
+            <div class="dates">
+                <span class="date">Created {humanDate(new Date(+data.post.creation_date * 1000))}</span>
+                <span class="date">Last Modified {humanDate(new Date(+data.post.modification_date * 1000))}</span>
+            </div>
+        </header>
+        <div class="content">
+            <slot />
+        </div>
+    </div>
+</article>
+
+
+<style>
+    article {
+        margin-top: 25px;
+        margin-inline: auto;
+        max-width: 1000px;
+
+        /* background: var(--background1); */
+    }
+
+    header {
+        display: flex;
+        flex-direction: column;
+
+        margin-bottom: 50px;
+    }
+
+    #blog-cover-img {
+        aspect-ratio: 16 / 9;
+        max-width: 100%;
+
+        border-radius: 0.5rem;
+    }
+
+    #title {
+        font-family: var(--title-font);
+        font-size: 36px;
+        margin: 0;
+    }
+
+    .dates {
+        display: flex;
+        justify-content: space-between;
+        flex-wrap: wrap;
+        gap: 10px;
+    }
+
+    .date {
+        color: var(--text3);
+    }
+
+    .body {
+        margin-inline: auto;
+        max-width: 1200px;
+        padding: 25px;
+    }
+
+    .content {
+        line-height: 2;
+        font-size: 18px;
+        text-rendering: optimizeLegibility;
+    }
+
+    /* CSS for posts - child rooutes. */
+    img {
+        width: 100%;
+    }
+
+    :global(a) {
+        color: var(--text1);
+        text-decoration-line: underline;
+    }
+</style>
diff --git a/src/routes/post/+layout.ts b/src/routes/post/+layout.ts
index cb8edfb..ba3a63e 100644
--- a/src/routes/post/+layout.ts
+++ b/src/routes/post/+layout.ts
@@ -1,17 +1,17 @@
-import { posts, type Post } from '../posts/posts_data';
-
-export interface BlogData {
-    summaries: Post[],
-    post: Post
-}
-
-export async function load({ url, parent }) : Promise<BlogData> {
-    const { summaries } = await parent();
-    const websiteUrl = url.pathname.split('/');
-    const windowUrl = websiteUrl.pop() || websiteUrl.pop(); // Handle trailing /
-
-    return {
-        summaries: summaries,
-        post: posts.filter((post) => post.url == windowUrl)[0],
-    };
-}
+import { posts, type Post } from '../posts/posts_data';
+
+export interface BlogData {
+    summaries: Post[],
+    post: Post
+}
+
+export async function load({ url, parent }) : Promise<BlogData> {
+    const { summaries } = await parent();
+    const websiteUrl = url.pathname.split('/');
+    const windowUrl = websiteUrl.pop() || websiteUrl.pop(); // Handle trailing /
+
+    return {
+        summaries: summaries,
+        post: posts.filter((post) => post.url == windowUrl)[0],
+    };
+}
diff --git a/src/routes/post/Post.svelte b/src/routes/post/Post.svelte
index e84b8ce..1d4c23e 100644
--- a/src/routes/post/Post.svelte
+++ b/src/routes/post/Post.svelte
@@ -1,10 +1,10 @@
-<div class="post-container">
-    <div class="post-header">
-        <slot name="title" />
-        <slot name="creation-date" />
-        <slot name="modification-date" />
-
-        <!-- the post content goes in this slot -->
-        <slot />
-    </div>
-</div>
+<div class="post-container">
+    <div class="post-header">
+        <slot name="title" />
+        <slot name="creation-date" />
+        <slot name="modification-date" />
+
+        <!-- the post content goes in this slot -->
+        <slot />
+    </div>
+</div>
diff --git a/src/routes/post/folder-icons/+page.svelte b/src/routes/post/folder-icons/+page.svelte
index 4d08b3c..5dc2f10 100644
--- a/src/routes/post/folder-icons/+page.svelte
+++ b/src/routes/post/folder-icons/+page.svelte
@@ -1,2 +1,2 @@
-Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea consectetur et est culpa et culpa duis.
-
+Lorem ipsum dolor sit amet, officia excepteur ex fugiat reprehenderit enim labore culpa sint ad nisi Lorem pariatur mollit ex esse exercitation amet. Nisi anim cupidatat excepteur officia. Reprehenderit nostrud nostrud ipsum Lorem est aliquip amet voluptate voluptate dolor minim nulla est proident. Nostrud officia pariatur ut officia. Sit irure elit esse ea nulla sunt ex occaecat reprehenderit commodo officia dolor Lorem duis laboris cupidatat officia voluptate. Culpa proident adipisicing id nulla nisi laboris ex in Lorem sunt duis officia eiusmod. Aliqua reprehenderit commodo ex non excepteur duis sunt velit enim. Voluptate laboris sint cupidatat ullamco ut ea consectetur et est culpa et culpa duis.
+
diff --git a/src/routes/post/git-bisecting/+page.svelte b/src/routes/post/git-bisecting/+page.svelte
index cbcff93..046aa06 100644
--- a/src/routes/post/git-bisecting/+page.svelte
+++ b/src/routes/post/git-bisecting/+page.svelte
@@ -1,66 +1,66 @@
-<script>
-    import Highlight from "svelte-highlight";
-    import { shell } from "svelte-highlight/languages";
-    import obsidian from "svelte-highlight/styles/obsidian";
-</script>
-
-<svelte:head>
-    {@html obsidian}
-</svelte:head>
-
-<p>
-Finding the specific commit that introduced a bug in your code can be frustrating,
-especially in big projects with a lot of commits. Git bisecting is a method
-used to quickly find which commit is the culprit. Git bisect works by you specifying
-a so called 'bad' commit where you know the bug occurs and a commit where you know the
-bug doesn't occur. Afterwards git will binary search it's way to find the commit
-introducing the bug.
-</p>
-<p>
-Suppose we've the following git history:
-</p>
-
-<img src="/images/posts/git-bisecting/bisect_problem.png" alt="Showing a git history, where on the left there is a 'good' commit with a couple of commits between the current commit on the right"/>
-<p>
-It could potentially contain many more commits between the known 'good' commit and the
-current one. Somewhere in the commits 1, 2, 3, 4 or the current one, a bug was
-introduced. One way to find the specific commit that introduced the bug, could
-be to check each commit starting from commit 1 then 2 then 3 ... and so on.
-This is known as a linear search, and would take very long if there are a lot
-of commits between the bad and the current.
-</p>
-<p>
-Instead git bisect comes to the rescue. Git bisect performs a
-<a href="https://en.wikipedia.org/wiki/Binary_search_algorithm" target="_blank">binary search</a>,
-which is much faster.
-To use git bisect, you must tell git to start bisecting:
-</p>
-<Highlight language={shell} code="$ git bisect start" />
-<p>
-Afterwards we mark the 'bad' commit - any commit we know the bug occurs in. In this example
-the current commit that we know is bad have the commit hash <code>c26cf8a</code>, so
-we mark the commit bad:
-</p>
-<Highlight language={shell} code="$ git bisect bad c26cf8a" />
-<p>
-After that we mark a previous commit that we know the bug doesn't occur in. In this
-example it's the 'good' commit (se picture above), which has a commit hash of <code>b34ec52</code>
-</p>
-<Highlight language={shell} code="$ git bisect good b34ec52" />
-<p>
-Now git will automatically checkout a commit somewhere in between the good and bad commit.
-Your job is now to re-build your project and test if the bug occurs. If the bug
-<b>doesn't</b> occur you report it to git:
-</p>
-<Highlight language={shell} code="$ git bisect good" />
-<p>
-However if it does occur you mark it bad:
-</p>
-<Highlight language={shell} code="$ git bisect bad" />
-<p>
-You continue to do this until git has tracked down the first bad commit, ie. the
-commit that introduced the bug.
-</p>
-
-<h2>Resources</h2>
-Git bisect man page: <a href="https://git-scm.com/docs/git-bisect">https://git-scm.com/docs/git-bisect</a>
+<script>
+    import Highlight from "svelte-highlight";
+    import { shell } from "svelte-highlight/languages";
+    import obsidian from "svelte-highlight/styles/obsidian";
+</script>
+
+<svelte:head>
+    {@html obsidian}
+</svelte:head>
+
+<p>
+Finding the specific commit that introduced a bug in your code can be frustrating,
+especially in big projects with a lot of commits. Git bisecting is a method
+used to quickly find which commit is the culprit. Git bisect works by you specifying
+a so called 'bad' commit where you know the bug occurs and a commit where you know the
+bug doesn't occur. Afterwards git will binary search it's way to find the commit
+introducing the bug.
+</p>
+<p>
+Suppose we've the following git history:
+</p>
+
+<img src="/images/posts/git-bisecting/bisect_problem.png" alt="Showing a git history, where on the left there is a 'good' commit with a couple of commits between the current commit on the right"/>
+<p>
+It could potentially contain many more commits between the known 'good' commit and the
+current one. Somewhere in the commits 1, 2, 3, 4 or the current one, a bug was
+introduced. One way to find the specific commit that introduced the bug, could
+be to check each commit starting from commit 1 then 2 then 3 ... and so on.
+This is known as a linear search, and would take very long if there are a lot
+of commits between the bad and the current.
+</p>
+<p>
+Instead git bisect comes to the rescue. Git bisect performs a
+<a href="https://en.wikipedia.org/wiki/Binary_search_algorithm" target="_blank">binary search</a>,
+which is much faster.
+To use git bisect, you must tell git to start bisecting:
+</p>
+<Highlight language={shell} code="$ git bisect start" />
+<p>
+Afterwards we mark the 'bad' commit - any commit we know the bug occurs in. In this example
+the current commit that we know is bad have the commit hash <code>c26cf8a</code>, so
+we mark the commit bad:
+</p>
+<Highlight language={shell} code="$ git bisect bad c26cf8a" />
+<p>
+After that we mark a previous commit that we know the bug doesn't occur in. In this
+example it's the 'good' commit (se picture above), which has a commit hash of <code>b34ec52</code>
+</p>
+<Highlight language={shell} code="$ git bisect good b34ec52" />
+<p>
+Now git will automatically checkout a commit somewhere in between the good and bad commit.
+Your job is now to re-build your project and test if the bug occurs. If the bug
+<b>doesn't</b> occur you report it to git:
+</p>
+<Highlight language={shell} code="$ git bisect good" />
+<p>
+However if it does occur you mark it bad:
+</p>
+<Highlight language={shell} code="$ git bisect bad" />
+<p>
+You continue to do this until git has tracked down the first bad commit, ie. the
+commit that introduced the bug.
+</p>
+
+<h2>Resources</h2>
+Git bisect man page: <a href="https://git-scm.com/docs/git-bisect">https://git-scm.com/docs/git-bisect</a>
diff --git a/src/routes/posts/+page.svelte b/src/routes/posts/+page.svelte
index eccaa16..eab8d4a 100644
--- a/src/routes/posts/+page.svelte
+++ b/src/routes/posts/+page.svelte
@@ -1,81 +1,81 @@
-<script lang="ts">
-    import { type Post } from './posts_data';
-    import NewsVerticalCard from '$lib/posts/NewsVerticalCard.svelte';
-
-    export let data; // <- contains post data
-
-    let search : string;
-    $: regex = search ? new RegExp(search, 'i') : null;
-    $: matches = (item : Post) =>
-        regex ? regex.test(item.title) || regex.test(item.summary) : true;
-    $: matched_posts = data.summaries.filter(matches);
-</script>
-
-<div class="head">
-    <header>
-        <h1>Blog Posts</h1>
-        <input id="search" placeholder="Search Blog Posts" bind:value={search} />
-    </header>
-</div>
-
-<div class="list">
-    {#if matched_posts.length == 0}
-        <span>No Matches</span>
-    {/if}
-    {#each matched_posts as summary}
-        <NewsVerticalCard
-            post_url="/post/{summary.url}"
-            title={summary.title}
-            summary={summary.summary}
-            creation_date={summary.creation_date.toString()}
-        />
-    {/each}
-</div>
-
-<style>
-    h1 {
-        font-size: 48px;
-        font-family: var(--title-font);
-    }
-    .head {
-        width: 100%;
-        background-color: var(--primary);
-    }
-
-    header {
-        display: flex;
-        flex-wrap: wrap;
-
-        align-content: center;
-        justify-content: space-around;
-
-        padding: 0 0 20px 0;
-        margin-bottom: 25px;
-    }
-
-    #search {
-        height: 40px;
-
-        align-self: center;
-        border: none;
-        border-radius: 10px;
-        font-size: 18px;
-        line-height: 2;
-        padding: 0.5rem 0.8rem;
-        margin-top: 0px;
-
-        background-color: var(--background);
-        color: var(--text1);
-    }
-
-    .list {
-        max-width: 1500px;
-        margin-inline: auto;
-        display: flex;
-        flex-wrap: wrap;
-        gap: 25px;
-
-        justify-content: center;
-    }
-
-</style>
+<script lang="ts">
+    import { type Post } from './posts_data';
+    import NewsVerticalCard from '$lib/posts/NewsVerticalCard.svelte';
+
+    export let data; // <- contains post data
+
+    let search : string;
+    $: regex = search ? new RegExp(search, 'i') : null;
+    $: matches = (item : Post) =>
+        regex ? regex.test(item.title) || regex.test(item.summary) : true;
+    $: matched_posts = data.summaries.filter(matches);
+</script>
+
+<div class="head">
+    <header>
+        <h1>Blog Posts</h1>
+        <input id="search" placeholder="Search Blog Posts" bind:value={search} />
+    </header>
+</div>
+
+<div class="list">
+    {#if matched_posts.length == 0}
+        <span>No Matches</span>
+    {/if}
+    {#each matched_posts as summary}
+        <NewsVerticalCard
+            post_url="/post/{summary.url}"
+            title={summary.title}
+            summary={summary.summary}
+            creation_date={summary.creation_date.toString()}
+        />
+    {/each}
+</div>
+
+<style>
+    h1 {
+        font-size: 48px;
+        font-family: var(--title-font);
+    }
+    .head {
+        width: 100%;
+        background-color: var(--primary);
+    }
+
+    header {
+        display: flex;
+        flex-wrap: wrap;
+
+        align-content: center;
+        justify-content: space-around;
+
+        padding: 0 0 20px 0;
+        margin-bottom: 25px;
+    }
+
+    #search {
+        height: 40px;
+
+        align-self: center;
+        border: none;
+        border-radius: 10px;
+        font-size: 18px;
+        line-height: 2;
+        padding: 0.5rem 0.8rem;
+        margin-top: 0px;
+
+        background-color: var(--background);
+        color: var(--text1);
+    }
+
+    .list {
+        max-width: 1500px;
+        margin-inline: auto;
+        display: flex;
+        flex-wrap: wrap;
+        gap: 25px;
+
+        justify-content: center;
+    }
+
+</style>
diff --git a/src/routes/posts/posts_data.ts b/src/routes/posts/posts_data.ts
index cf805f0..634a3f5 100644
--- a/src/routes/posts/posts_data.ts
+++ b/src/routes/posts/posts_data.ts
@@ -1,53 +1,53 @@
-// TODO: document members
-export type Post = {
-    // Required
-    url : string,
-    cover_img : string,
-    cover_alt : string,
-    title: string,
-    summary : string,
-    creation_date : number
-    modification_date: number,
-
-    // Optional
-    // TODO: author?
-}
-
-export const posts : Post[] = [
-    {
-        url: 'git-bisecting',
-        cover_img: '/images/posts/git-bisecting/thumbnail.png',
-        cover_alt: 'Photo of a bug',
-        title: 'Tracking down bugs in your code — using git bisect',
-        summary: 'Track down which specific change introduced a bug using the binary search tool provided by git.',
-        creation_date: 1709907213,
-        modification_date: 1709907213,
-    },
-    {
-        url: 'folder-icons',
-        cover_img: '/images/posts/folder-icons/cover.png',
-        cover_alt: 'Image of folder icons being used in the editor',
-        title: 'Amazing Icons for Folders in Unity!',
-        summary: 'See how you can use Zhen\'s folder icons for Unity to boost your developer experience',
-        creation_date: 1708382491,
-        modification_date: 1708382491,
-    },
-    {
-        url: 'lorem',
-        cover_img: '/images/posts/folder-icons/cover.png',
-        cover_alt: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
-        title: 'Lorem Ipsum !!',
-        summary: 'This is a nice exploanation on lorem ipsum latin',
-        creation_date: 1708382491,
-        modification_date: 1708382491,
-    },
-    {
-        url: 'lorem1',
-        cover_img: '/images/posts/folder-icons/cover.png',
-        cover_alt: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
-        title: 'Idk some arcticle bruh!',
-        summary: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
-        creation_date: 1708558377,
-        modification_date: 1708558377,
-    },
-];
+// TODO: document members
+export type Post = {
+    // Required
+    url : string,
+    cover_img : string,
+    cover_alt : string,
+    title: string,
+    summary : string,
+    creation_date : number
+    modification_date: number,
+
+    // Optional
+    // TODO: author?
+}
+
+export const posts : Post[] = [
+    {
+        url: 'git-bisecting',
+        cover_img: '/images/posts/git-bisecting/thumbnail.png',
+        cover_alt: 'Photo of a bug',
+        title: 'Tracking down bugs in your code — using git bisect',
+        summary: 'Track down which specific change introduced a bug using the binary search tool provided by git.',
+        creation_date: 1709907213,
+        modification_date: 1709907213,
+    },
+    {
+        url: 'folder-icons',
+        cover_img: '/images/posts/folder-icons/cover.png',
+        cover_alt: 'Image of folder icons being used in the editor',
+        title: 'Amazing Icons for Folders in Unity!',
+        summary: 'See how you can use Zhen\'s folder icons for Unity to boost your developer experience',
+        creation_date: 1708382491,
+        modification_date: 1708382491,
+    },
+    {
+        url: 'lorem',
+        cover_img: '/images/posts/folder-icons/cover.png',
+        cover_alt: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
+        title: 'Lorem Ipsum !!',
+        summary: 'This is a nice exploanation on lorem ipsum latin',
+        creation_date: 1708382491,
+        modification_date: 1708382491,
+    },
+    {
+        url: 'lorem1',
+        cover_img: '/images/posts/folder-icons/cover.png',
+        cover_alt: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
+        title: 'Idk some arcticle bruh!',
+        summary: 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
+        creation_date: 1708558377,
+        modification_date: 1708558377,
+    },
+];
diff --git a/src/routes/sveske/+page.svelte b/src/routes/sveske/+page.svelte
index f655cee..db69d2e 100644
--- a/src/routes/sveske/+page.svelte
+++ b/src/routes/sveske/+page.svelte
@@ -1,86 +1,86 @@
-<script lang="ts">
-    import ProjectEntry from "./lib/ProjectEntry.svelte";
-</script>
-
-<div class="content">
-    <h1>Benjamin's portfolie for Informatik</h1>
-    <p>
-    Forneden kan ses en række projekter som er blevet lavet i Informatik C og efterfølgende Informatik B.
-    </p>
-    <div class="projects">
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/appLab/thumb.png"}
-            thumbnail_alt={"App Lab"}
-            download={"/portfolios/sveske/appLab/applab_rapport.pdf"}
-            title={"1.G - App Lab: Idle spil i browseren"}
-            summary={"Vi udviklede et idle spil i App Lab. Brugte JavaScript til at programmere spillet."}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/teachable_machine/thumb.png"}
-            thumbnail_alt={"Teachable Machine"}
-            download={"/portfolios/sveske/teachable_machine/teachable_machine_rapport.pdf"}
-            title={"1.G - Teachable Machine: Håndtegns detektor"}
-            summary={"I dette projekt udarbejdede vi en teachable machine model til at detektere forskellige håndtegn"}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/firebase/thumb.png"}
-            thumbnail_alt={"Firebase"}
-            download={"/portfolios/sveske/firebase/firebase_rapport.pdf"}
-            title={"1.G - Firebase: Netværk scoreboard i Unity"}
-            summary={"Med brug af Firebase udviklede vi et scoreboard som synkroniserer med en Firebase Data Store. Scoreboardet blev implementeret i et tidligere spil udviklet i Teknologi B"}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/the_red_paper/thumb.png"}
-            thumbnail_alt={"The Red Paper"}
-            download={"/portfolios/sveske/the_red_paper/the_red_paper_rapport.pdf"}
-            title={"2.G - HTML: Hjemmeside udviklet ud fra gestalt lovene"}
-            summary={"Udviklede en klon af \"Den Blå Avis\", som forsøger at demonstrere en række af de forskellige gestaltlove"}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/makeymakey/thumb.png"}
-            thumbnail_alt={"MakyeMakey"}
-            download={"/portfolios/sveske/makeymakey/makeymakey_rapport.pdf"}
-            title={"2.G - MakeyMakey: Installation som spiller Minecraft lyde i en af skolens gange"}
-            summary={"Skulle lave en interresant installation til en lokation på skolen. Vi udviklede en sensor, som detekterede når en person gik ind på en af skolens gange med makeymakey'en og spillede grotte lyde fra Minecraft"}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/hmi/thumb.png"}
-            thumbnail_alt={"HMI"}
-            download={"/portfolios/sveske/hmi/hmi_rapport.pdf"}
-            title={"3.G - Human Machine Interface: Enhed som kan signalere brugeren hvis en person er på vej ind på brugerens værelse"}
-            summary={"Brugte M5 mikrokontrolleren til at forbinde en IR bevægelsessensor. Sensoren sender beskeder over netværket til et armbånd som er bundet om brugerens håndled"}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/prolog/thumb.png"}
-            thumbnail_alt={"Prolog"}
-            download={"/portfolios/sveske/prolog/prolog_rapport.pdf"}
-            title={"3.G - Prolog: Rejseekspertsystem"}
-            summary={"Brugte prolog programmeringsproget til at lave et ekspertsystem. Specifikt kan det give anbefalinger til rejsedestinationer ud fra en række faktorer som temperatur, økonomi, aktiviter osv."}
-        />
-        <ProjectEntry
-            thumbnail_url={"/portfolios/sveske/eksamen/thumb.jpg"}
-            thumbnail_alt={"Informatik Eksamen"}
-            download={"/portfolios/sveske/eksamen/informatik_eksamen_rapport.pdf"}
-            title={"3.G - Eksamens projekt: Udvikling af opgavesystem til fysisk produkt om læringsdisplay af digital logik"}
-            summary={"Udviklede et opgavesystem i form af en app i Unity. Opgavesystemet virker i samarbejde med et fysisk produkt udviklet til eksamensprojektet i teknikfag - Digital Design og Udvikling A. Appen skal undervise computer science elever på gymnasiet om digital logik og logiske porte"}
-        />
-    </div>
-</div>
-
-<style>
-    .content {
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-    }
-
-    .projects {
-        margin-top: 25px;
-        display: flex;
-        flex-direction: column;
-        gap: 25px;
-
-        max-width: 1000px;
-    }
-</style>
-
+<script lang="ts">
+    import ProjectEntry from "./lib/ProjectEntry.svelte";
+</script>
+
+<div class="content">
+    <h1>Benjamin's portfolie for Informatik</h1>
+    <p>
+    Forneden kan ses en række projekter som er blevet lavet i Informatik C og efterfølgende Informatik B.
+    </p>
+    <div class="projects">
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/appLab/thumb.png"}
+            thumbnail_alt={"App Lab"}
+            download={"/portfolios/sveske/appLab/applab_rapport.pdf"}
+            title={"1.G - App Lab: Idle spil i browseren"}
+            summary={"Vi udviklede et idle spil i App Lab. Brugte JavaScript til at programmere spillet."}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/teachable_machine/thumb.png"}
+            thumbnail_alt={"Teachable Machine"}
+            download={"/portfolios/sveske/teachable_machine/teachable_machine_rapport.pdf"}
+            title={"1.G - Teachable Machine: Håndtegns detektor"}
+            summary={"I dette projekt udarbejdede vi en teachable machine model til at detektere forskellige håndtegn"}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/firebase/thumb.png"}
+            thumbnail_alt={"Firebase"}
+            download={"/portfolios/sveske/firebase/firebase_rapport.pdf"}
+            title={"1.G - Firebase: Netværk scoreboard i Unity"}
+            summary={"Med brug af Firebase udviklede vi et scoreboard som synkroniserer med en Firebase Data Store. Scoreboardet blev implementeret i et tidligere spil udviklet i Teknologi B"}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/the_red_paper/thumb.png"}
+            thumbnail_alt={"The Red Paper"}
+            download={"/portfolios/sveske/the_red_paper/the_red_paper_rapport.pdf"}
+            title={"2.G - HTML: Hjemmeside udviklet ud fra gestalt lovene"}
+            summary={"Udviklede en klon af \"Den Blå Avis\", som forsøger at demonstrere en række af de forskellige gestaltlove"}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/makeymakey/thumb.png"}
+            thumbnail_alt={"MakyeMakey"}
+            download={"/portfolios/sveske/makeymakey/makeymakey_rapport.pdf"}
+            title={"2.G - MakeyMakey: Installation som spiller Minecraft lyde i en af skolens gange"}
+            summary={"Skulle lave en interresant installation til en lokation på skolen. Vi udviklede en sensor, som detekterede når en person gik ind på en af skolens gange med makeymakey'en og spillede grotte lyde fra Minecraft"}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/hmi/thumb.png"}
+            thumbnail_alt={"HMI"}
+            download={"/portfolios/sveske/hmi/hmi_rapport.pdf"}
+            title={"3.G - Human Machine Interface: Enhed som kan signalere brugeren hvis en person er på vej ind på brugerens værelse"}
+            summary={"Brugte M5 mikrokontrolleren til at forbinde en IR bevægelsessensor. Sensoren sender beskeder over netværket til et armbånd som er bundet om brugerens håndled"}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/prolog/thumb.png"}
+            thumbnail_alt={"Prolog"}
+            download={"/portfolios/sveske/prolog/prolog_rapport.pdf"}
+            title={"3.G - Prolog: Rejseekspertsystem"}
+            summary={"Brugte prolog programmeringsproget til at lave et ekspertsystem. Specifikt kan det give anbefalinger til rejsedestinationer ud fra en række faktorer som temperatur, økonomi, aktiviter osv."}
+        />
+        <ProjectEntry
+            thumbnail_url={"/portfolios/sveske/eksamen/thumb.jpg"}
+            thumbnail_alt={"Informatik Eksamen"}
+            download={"/portfolios/sveske/eksamen/informatik_eksamen_rapport.pdf"}
+            title={"3.G - Eksamens projekt: Udvikling af opgavesystem til fysisk produkt om læringsdisplay af digital logik"}
+            summary={"Udviklede et opgavesystem i form af en app i Unity. Opgavesystemet virker i samarbejde med et fysisk produkt udviklet til eksamensprojektet i teknikfag - Digital Design og Udvikling A. Appen skal undervise computer science elever på gymnasiet om digital logik og logiske porte"}
+        />
+    </div>
+</div>
+
+<style>
+    .content {
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+    }
+
+    .projects {
+        margin-top: 25px;
+        display: flex;
+        flex-direction: column;
+        gap: 25px;
+
+        max-width: 1000px;
+    }
+</style>
+
diff --git a/src/routes/sveske/lib/ProjectEntry.svelte b/src/routes/sveske/lib/ProjectEntry.svelte
index a4d0f01..81387d1 100644
--- a/src/routes/sveske/lib/ProjectEntry.svelte
+++ b/src/routes/sveske/lib/ProjectEntry.svelte
@@ -1,60 +1,60 @@
-<script lang="ts">
-    export let download : string = '404';
-    export let thumbnail_url : string = '/favicon.png';
-    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
-    export let title : string = '<title>';
-    export let summary : string = '<summary>';
-
-</script>
-
-<div class="news-card">
-    <a href={download}>
-        <div class="thumbnail">
-            <img src={thumbnail_url} alt={thumbnail_alt}/>
-        </div>
-        <div class="content">
-            <h3 id="title">{title}</h3>
-            <p id="summary-text">{summary}</p>
-        </div>
-    </a>
-</div>
-
-<style>
-    a {
-        text-decoration: none;
-
-        display: flex;
-        flex-direction: row;
-        gap: 15px;
-    }
-
-    .thumbnail > img {
-        object-fit: cover;
-
-        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
-        border-radius: 8px;
-
-        width: 150px;
-        height: auto;
-    }
-
-    .content {
-        flex-shrink: 2;
-
-        display: flex;
-        flex-direction: column;
-        gap: 10px;
-    }
-
-    #title {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text2);
-    }
-
-    #summary-text {
-        margin: 0;
-        text-decoration: none;
-        color: var(--text3);
-    }
-</style>
+<script lang="ts">
+    export let download : string = '404';
+    export let thumbnail_url : string = '/favicon.png';
+    export let thumbnail_alt : string = 'Picture describting the deprived devs logo';
+    export let title : string = '<title>';
+    export let summary : string = '<summary>';
+
+</script>
+
+<div class="news-card">
+    <a href={download}>
+        <div class="thumbnail">
+            <img src={thumbnail_url} alt={thumbnail_alt}/>
+        </div>
+        <div class="content">
+            <h3 id="title">{title}</h3>
+            <p id="summary-text">{summary}</p>
+        </div>
+    </a>
+</div>
+
+<style>
+    a {
+        text-decoration: none;
+
+        display: flex;
+        flex-direction: row;
+        gap: 15px;
+    }
+
+    .thumbnail > img {
+        object-fit: cover;
+
+        box-shadow: 5px 5px 10px 2px rgba(0, 0, 0, 0.5);
+        border-radius: 8px;
+
+        width: 150px;
+        height: auto;
+    }
+
+    .content {
+        flex-shrink: 2;
+
+        display: flex;
+        flex-direction: column;
+        gap: 10px;
+    }
+
+    #title {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text2);
+    }
+
+    #summary-text {
+        margin: 0;
+        text-decoration: none;
+        color: var(--text3);
+    }
+</style>
diff --git a/src/routes/tools/+page.svelte b/src/routes/tools/+page.svelte
new file mode 100644
index 0000000..10a50c6
--- /dev/null
+++ b/src/routes/tools/+page.svelte
@@ -0,0 +1,53 @@
+<script>
+    import A4 from "../zhen/notes/physics/sharedComps/A4.svelte";
+    import ToolButton from "./comps/ToolButton.svelte";
+    import { BatteryMedium } from '@lucide/svelte';
+</script>
+
+<div class="flex justify-center pt-10">
+    <A4
+        bottomBorder={false}
+        bgColor={"rounded-lg bg-base-300"}
+        class="cozette text-base-content h-full"
+    >
+        <div class="p-4 flex flex-col h-full">
+            <h1 class="text-5xl font-bold">Tools (NOT FINISHED. come back in the future.)</h1>
+            <span class="w-full text-xl"
+                >These are the tools collected from different places of the
+                internet</span
+            >
+
+            <!-- Spacing -->
+            <div class="pt-14"></div>
+
+            <div class="p-4 bg-base-200 rounded-lg">
+                <h2 class="text-2xl font-bolc">MPUs/SoCs</h2>
+                <span>Whatever acronym you want lol</span>
+                <div class="grid grid-cols-3 gap-4">
+                    <ToolButton
+                        title="Sleeping battery life"
+                        desc="Calculates the battery life depending on sleep and non-sleep power usage."
+                        btnText="To calculator"
+                        toolIcon={BatteryMedium}
+                    />
+                    <!-- <ToolButton
+                        title="Sleeping battery life"
+                        desc="Calculates the battery life depending on sleep and non-sleep power usage."
+                        btnText="To calculator"
+                        toolIcon={BatteryMedium}
+                    />
+                    <ToolButton
+                        title="Sleeping battery life"
+                        desc="Calculates the battery life depending on sleep and non-sleep power usage."
+                        btnText="To calculator"
+                        toolIcon={BatteryMedium}
+                    /> -->
+                </div>
+            </div>
+
+            <div class="mt-auto align-text-bottom">
+                I if you have tool suggestions, then either create an issue, create a pull request, or send an email. I probably wont add it though, since this is free work lol.
+            </div>
+        </div>
+    </A4>
+</div>
diff --git a/src/routes/tools/battery-life-calculator/+page.svelte b/src/routes/tools/battery-life-calculator/+page.svelte
new file mode 100644
index 0000000..ab35b3c
--- /dev/null
+++ b/src/routes/tools/battery-life-calculator/+page.svelte
@@ -0,0 +1,183 @@
+<script lang="ts">
+    import A4 from "../../zhen/notes/physics/sharedComps/A4.svelte";
+    import { BatteryLifeCalculator } from "./pageSrc/BatteryCalc";
+    import { getMCU, type MCU_Type } from "./pageSrc/MCU_defs";
+
+    // let mathMachine = new BatteryLifeCalculator();
+
+    let useCustom: boolean = false;
+    let selectedText: string = "";
+    let selectedMcu: MCU_Type | undefined = undefined;
+    $: selectedMcu = getMCU(selectedText)
+    
+
+
+    const options = ["esp32-s3", "esp32-s3"];
+</script>
+
+<div class="flex justify-center pt-10">
+    <A4
+        bottomBorder={false}
+        bgColor={"rounded-lg bg-base-300"}
+        class="cozette text-base-content h-full"
+    >
+        <div class="p-4 flex flex-col h-full">
+            <h1 class="text-5xl font-bold">Battery life calculator</h1>
+            <span class="w-full text-xl">
+                Calculates the time a battery will last. Too lazy to explain
+                more.
+            </span>
+
+            <!-- Spacing -->
+            <div class="pt-14"></div>
+
+            <div class="p-4 bg-base-200 rounded-lg">
+                <h2 class="text-2xl font-bolc">Software</h2>
+                <div class="grid grid-cols-2 gap-4">
+                    <div class="form-control">
+                        <span class="text-sm text-slate-300 text-opacity-60"
+                            >Duration of code execution</span
+                        >
+                        <div class="join">
+                            <input
+                                type="number"
+                                class="input input-bordered  input-sm join-item appearance-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
+                            />
+                            <div
+                                class="bg-base-content bg-opacity-60 join-item grid place-content-center"
+                            >
+                                <span class="text-center pl-1 pr-2">sec</span>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="form-control">
+                        <span class="text-sm text-slate-300 text-opacity-60"
+                            >sleep time</span
+                        >
+                        <div class="join">
+                            <input
+                                type="number"
+                                class="input input-bordered input-sm join-item appearance-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
+                            />
+                            <div
+                                class="bg-base-content bg-opacity-60 join-item grid place-content-center"
+                            >
+                                <span class="text-center pl-1 pr-2">sec</span>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="col-span-full">
+                        <h2 class=" text-2xl font-bolc">Hardware</h2>
+                        <div class="flex">
+                            <div
+                                class="text-sm text-slate-300 text-opacity-60 text"
+                            >
+                                Use custom values
+                            </div>
+                            <input
+                                bind:checked={useCustom}
+                                class="ml-2 checkbox checkbox-xs my-auto"
+                                type="checkbox" 
+                            />
+                        </div>
+                    </div>
+
+                    {#if !useCustom}
+                        <div>
+                            <select
+                                bind:value={selectedText}
+                                class="select select-sm select-bordered w-56 max-w-xs"
+                            >
+                                <option disabled value="">Select a text</option>
+                                {#each options as option}
+                                    <option value={option}>{option}</option>
+                                {/each}
+                            </select>
+
+                            {#if selectedMcu != undefined && selectedMcu?.wifi != undefined}
+                                <p class="mt-4 text-lg">
+                                    wifi
+                                </p>
+                            {/if}
+                            {#if selectedMcu != undefined && selectedMcu?.wifi != undefined}
+                                <p class="mt-4 text-lg">
+                                    ble
+                                </p>
+                            {/if}
+                        </div>
+                    {:else}
+                        <div class="form-control">
+                            <span class="text-sm text-slate-300 text-opacity-60"
+                                >Duration of code execution</span
+                            >
+                            <div class="join">
+                                <input
+                                    type="number"
+                                    class="input input-bordered input-sm join-item appearance-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
+                                />
+                                <div
+                                    class="bg-base-content bg-opacity-60 join-item grid place-content-center"
+                                >
+                                    <span class="text-center pl-1 pr-2"
+                                        >sec</span
+                                    >
+                                </div>
+                            </div>
+                        </div>
+                        <div class="form-control">
+                            <span class="text-sm text-slate-300 text-opacity-60"
+                                >sleep time</span
+                            >
+                            <div class="join">
+                                <input
+                                    type="number"
+                                    class="input input-bordered input-sm join-item appearance-none [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none"
+                                />
+                                <div
+                                    class="bg-base-content bg-opacity-60 join-item grid place-content-center"
+                                >
+                                    <span class="text-center pl-1 pr-2"
+                                        >sec</span
+                                    >
+                                </div>
+                            </div>
+                        </div>
+                    {/if}
+                </div>
+            </div>
+
+            <div class="mt-auto align-text-bottom text-center">
+                Source for the calculations is at this
+                <a
+                    class="text-blue-500 underline"
+                    target="_blank"
+                    href="https://github.com/simonneutert/batterylife-calculator"
+                    >github</a
+                >
+                and the
+                <a
+                    class="text-blue-500 underline"
+                    target="_blank  "
+                    href="https://www.of-things.de/battery-life-calculator.php"
+                    >original website.</a
+                >
+                I just mearly made additions.
+            </div>
+        </div>
+    </A4>
+</div>
+
+<style>
+    /* Hide the spinner for Chrome, Safari, Edge, Opera */
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+        margin: 0;
+    }
+
+    /* Hide the spinner for Firefox */
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+</style>
diff --git a/src/routes/tools/battery-life-calculator/pageSrc/BatteryCalc.ts b/src/routes/tools/battery-life-calculator/pageSrc/BatteryCalc.ts
new file mode 100644
index 0000000..2d05ee8
--- /dev/null
+++ b/src/routes/tools/battery-life-calculator/pageSrc/BatteryCalc.ts
@@ -0,0 +1,123 @@
+export class BatteryLifeCalculator {
+  timeRunSeconds: number;
+  timeSleepSeconds: number;
+  consumptionActiveMilliAmpHours: number;
+  consumptionSleepMilliAmpHours: number;
+  powerBatteryTotalMilliAmpHours: number;
+  powerBatteryBufferBeforeEmptyPercent: number;
+
+  constructor(
+    timeRunSeconds: number,
+    timeSleepSeconds: number,
+    consumptionActiveMilliAmpHours: number,
+    consumptionSleepMilliAmpHours: number,
+    powerBatteryTotalMilliAmpHours: number,
+    powerBatteryBufferBeforeEmptyPercent: number = 20
+  ) {
+    this.timeRunSeconds = timeRunSeconds;
+    this.timeSleepSeconds = timeSleepSeconds;
+    this.consumptionActiveMilliAmpHours = consumptionActiveMilliAmpHours;
+    this.consumptionSleepMilliAmpHours = consumptionSleepMilliAmpHours;
+    this.powerBatteryTotalMilliAmpHours = powerBatteryTotalMilliAmpHours;
+    this.powerBatteryBufferBeforeEmptyPercent = powerBatteryBufferBeforeEmptyPercent;
+
+    console.log(
+      "The source of this battery calc is here: https://github.com/simonneutert/batterylife-calculator\nI was too lazy to make the math myself."
+    );
+  }
+
+  // public API
+
+  milliAmpToMicroAmp(milliAmps: number): number {
+    return milliAmps * 1000;
+  }
+
+  microAmpToMilliAmp(milliAmps: number): number {
+    return milliAmps * 0.001;
+  }
+
+  calculate(): {
+    powerAveragePerHour: number;
+    runtimeHoursEstimated: number;
+    runtimeDaysEstimated: number;
+    runtimeDaysRemainingHoursEstimated: number;
+  } {
+    return {
+      powerAveragePerHour: this.powerEstimatedHourly(),
+      runtimeHoursEstimated: this.runtimeHoursEstimated(),
+      runtimeDaysEstimated: this.runtimeDaysEstimated(),
+      runtimeDaysRemainingHoursEstimated: this.runtimeDaysRemainingHoursEstimated(),
+    };
+  }
+
+  powerEstimatedHourly(): number {
+    return this.calcPowerEst(
+      this.powerRun(),
+      this.consumptionActiveMilliAmpHours,
+      this.powerSleep(),
+      this.consumptionSleepMilliAmpHours
+    );
+  }
+
+  runtimeHoursEstimated(): number {
+    return parseInt((this.powerLipo() / this.powerEstimatedHourly()).toString(), 10);
+  }
+
+  runtimeDaysEstimated(): number {
+    return parseInt((this.runtimeHoursEstimated() / 24).toString(), 10);
+  }
+
+  runtimeDaysRemainingHoursEstimated(): number {
+    return parseInt((this.runtimeHoursEstimated() % 24).toString(), 10);
+  }
+
+  // private methods
+
+  private roundOff(x: number): number {
+    return Math.round(x * 100.0) / 100.0;
+  }
+
+  private calcPowerLipo(x: number, y: number): number {
+    return parseFloat(((x * (100 - y)) / 100).toString());
+  }
+
+  private calcRuns(x: number, y: number): number {
+    return parseFloat((60 / (x + y)).toString());
+  }
+
+  private calcRunsHour(x: number, y: number): number {
+    return parseFloat((3600 / (x + y)).toString());
+  }
+
+  private calcPowerRun(x: number, y: number): number {
+    return parseFloat(((x / (x + y)) * 3600).toString());
+  }
+
+  private calcPowerSleep(x: number, y: number): number {
+    return parseFloat(((y / (x + y)) * 3600).toString());
+  }
+
+  powerLipo(): number {
+    return this.calcPowerLipo(this.powerBatteryTotalMilliAmpHours, this.powerBatteryBufferBeforeEmptyPercent);
+  }
+
+  runs(): number {
+    return this.calcRuns(this.timeRunSeconds, this.timeSleepSeconds);
+  }
+
+  runsHour(): number {
+    return this.calcRunsHour(this.timeRunSeconds, this.timeSleepSeconds);
+  }
+
+  powerRun(): number {
+    return this.calcPowerRun(this.timeRunSeconds, this.timeSleepSeconds);
+  }
+
+  powerSleep(): number {
+    return this.calcPowerSleep(this.timeRunSeconds, this.timeSleepSeconds);
+  }
+
+  private calcPowerEst(a: number, b: number, c: number, d: number): number {
+    return parseFloat(((a / 3600) * b + (c / 3600) * d).toString());
+  }
+}
diff --git a/src/routes/tools/battery-life-calculator/pageSrc/MCU_defs.ts b/src/routes/tools/battery-life-calculator/pageSrc/MCU_defs.ts
new file mode 100644
index 0000000..d4372f2
--- /dev/null
+++ b/src/routes/tools/battery-life-calculator/pageSrc/MCU_defs.ts
@@ -0,0 +1,63 @@
+export interface MCU_Type {
+    name: string;
+    cpu: { [key: string]: Number }; // state: power consumption
+    sleep: { [key: string]: Number };
+    wifi?: { [key: string]: Number };
+    bluetooth?: { [key: string]: Number };
+}
+
+const MCUs: MCU_Type[] = [
+    {
+        name: "esp32-s3",
+        cpu: { // mili amps
+            single_core_40MHz: 21.8,
+            dual_core_40MHz: 24.4,
+            single_core_80MHz: 42.6,
+            dual_core_80MHz: 47.3,
+            single_core_160MHz: 54.6,
+            dual_core_160MHz: 54.1,
+            single_core_240MHz: 65.9,
+            dual_core_240MHz: 81.3,
+        },
+        sleep: {
+
+        },
+        wifi: { // 
+            dBm_21: 318.2,
+            sleep: 10     
+        },
+        bluetooth: {
+            active: 100,
+            sleep: 5      
+        }
+    },
+
+    {
+        name: "esp32-c3",
+        cpu: {
+            single_core_80MHz: 22,
+            single_core_160MHz: 54.6,
+        },
+        sleep: {
+            
+        },
+        wifi: {
+            active: 110,
+            sleep: 9      
+        },
+        bluetooth: {
+            active: 90, 
+            sleep: 4      
+        }
+    }
+];
+
+export function getMCU(name: string): MCU_Type | undefined{
+    for (let i = 0; i < MCUs.length; i++) {
+        const element = MCUs[i];
+        if (element.name == name)
+            return element
+    }
+
+    return undefined;
+}
\ No newline at end of file
diff --git a/src/routes/tools/comps/ToolButton.svelte b/src/routes/tools/comps/ToolButton.svelte
new file mode 100644
index 0000000..8c369c6
--- /dev/null
+++ b/src/routes/tools/comps/ToolButton.svelte
@@ -0,0 +1,27 @@
+<script lang="ts">
+    import type { Component } from 'svelte';
+
+    export let toolIcon: Component | undefined = undefined;
+
+    export let title: string = "Sleeping battery life";
+    export let desc: string = "Calculates the battery life depending on sleep and non-sleep power usage.";
+    export let btnText: string = "To calculator";
+    export let btnHref: string = "/tools/battery-life-calculator";
+</script>
+
+<div class="min-w-10 min-h-10 bg-base-100 rounded-lg">
+    <div class="p-4">
+        <div class="flex">
+            <div class="font-bold text-xl">{title}</div>
+            
+        </div>
+        <div class="text-sm">{desc}</div>
+
+        <div class="flex pt-4">
+            {#if toolIcon != undefined}
+            <svelte:component this={toolIcon}/>
+            {/if}
+            <a href="{btnHref}" class="btn ml-auto btn-primary btn-sm">{btnText}</a>
+        </div>
+    </div>
+</div>
\ No newline at end of file
diff --git a/src/routes/zhen/+page.svelte b/src/routes/zhen/+page.svelte
deleted file mode 100644
index 3033cd4..0000000
--- a/src/routes/zhen/+page.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-<script lang="ts">
-    import TopAnimatedBackground from "./Comps/TopAnimatedBackground.svelte";
-    import { Parallax, ParallaxLayer, StickyLayer } from "svelte-parallax";
-    import ZhenInformatikTimeline from "./Comps/ZhenInformatikTimeline.svelte"
-    import AboutMe from "./Comps/AboutMe.svelte"
-</script>
-
-<Parallax sections={3} config={{ stiffness: 0.1, damping: 0.3 }}>
-    <TopAnimatedBackground/>
-    <ParallaxLayer rate={0.5} offset={0.5} style="background-color: var(--background);">
-        <AboutMe/>
-    </ParallaxLayer>
-    
-    <ParallaxLayer rate={0.5} offset={0.8} style="background-color: var(--background);">
-        <ZhenInformatikTimeline/>
-    </ParallaxLayer>
-</Parallax>
\ No newline at end of file
diff --git a/src/routes/zhen/Comps/AboutMe.svelte b/src/routes/zhen/Comps/AboutMe.svelte
index 1c6af56..240d33a 100644
--- a/src/routes/zhen/Comps/AboutMe.svelte
+++ b/src/routes/zhen/Comps/AboutMe.svelte
@@ -1,18 +1,18 @@
-<div class="public-cv-container">
-    <h1 class="bottom-dotted-line">Public CVs</h1>
-    <div style="padding-left: 0.5vw; margin-top: -1vh;">
-        <b>Rev1: </b><a href="/zhen/cv/rev1?hideOnPrint=1" style="color:lightblue;">Rev1.pdf</a>
-    </div>
-</div>
-
-<style>
-    .public-cv-container {
-        padding-left: 10vw;
-        padding-top: 5vh;
-        width: 79vw;
-    }
-
-    .bottom-dotted-line {
-        border-bottom: 4px dotted rgb(178, 178, 178);
-    }
+<div class="public-cv-container">
+    <h1 class="bottom-dotted-line">Public CVs</h1>
+    <div style="padding-left: 0.5vw; margin-top: -1vh;">
+        <b>Rev1: </b><a href="/zhen/cv/rev1?hideOnPrint=1" style="color:lightblue;">Rev1.pdf</a>
+    </div>
+</div>
+
+<style>
+    .public-cv-container {
+        padding-left: 10vw;
+        padding-top: 5vh;
+        width: 79vw;
+    }
+
+    .bottom-dotted-line {
+        border-bottom: 4px dotted rgb(178, 178, 178);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/Comps/TopNameTextPlate.svelte b/src/routes/zhen/Comps/TopNameTextPlate.svelte
index ca6cd7d..0373a2a 100644
--- a/src/routes/zhen/Comps/TopNameTextPlate.svelte
+++ b/src/routes/zhen/Comps/TopNameTextPlate.svelte
@@ -1,57 +1,57 @@
-<script lang="ts">
-    import HorizonalStack from './../../../comps/Utils/HorizonalStack.svelte'
-</script>
-
-<div class="container">
-    <div style="flex-grow: 1;" />
-    <div class="TextContainer">
-        <span class="NamePlateText"  >
-            Zhentao Wei
-            <br/>
-            <p class="NickNameText">Alex</p>
-        </span>
-    </div>
-    <div style="flex-grow: 2;" />
-</div>
-
-<style>
-    .container{
-        width: 100%;
-        height: 100%;
-
-        align-items: center;
-        vertical-align: middle;
-        display: flex;
-    }
-
-    .TextContainer{
-        align-items: center;
-        vertical-align: middle;
-        display: flex;
-
-        /* background-color: aliceblue; */
-        background-color: rgba(45, 45, 45, 0.645);
-        padding: 0.75rem 1rem;
-        border-radius: 20px;
-
-        backdrop-filter: blur(1px);
-    }
-
-    .NamePlateText{
-        /* font-family: 'CozetteVector'; */
-        text-align: left;
-        font-size: 300%;
-        color: rgb(225, 225, 225);
-
-        border-left: 0.5rem solid rgb(88, 198, 82);
-        padding-left: 1rem;
-    }
-
-    .NickNameText{
-        font-size: 75%;
-        margin: 0;
-        margin-top: -1rem;
-        
-        color: rgb(99, 99, 99);
-    }
+<script lang="ts">
+    import HorizonalStack from './../../../comps/Utils/HorizonalStack.svelte'
+</script>
+
+<div class="container">
+    <div style="flex-grow: 1;" />
+    <div class="TextContainer">
+        <span class="NamePlateText"  >
+            Zhentao Wei
+            <br/>
+            <p class="NickNameText">Alex</p>
+        </span>
+    </div>
+     <div style="flex-grow: 2;" />
+</div>
+
+<style>
+    .container{
+        width: 100%;
+        height: 100%;
+
+        align-items: center;
+        vertical-align: middle;
+        display: flex;
+    }
+
+    .TextContainer{
+        align-items: center;
+        vertical-align: middle;
+        display: flex;
+
+        /* background-color: aliceblue; */
+        background-color: rgba(45, 45, 45, 0.645);
+        padding: 0.75rem 1rem;
+        border-radius: 20px;
+
+        backdrop-filter: blur(1px);
+    }
+
+    .NamePlateText{
+        /* font-family: 'CozetteVector'; */
+        text-align: left;
+        font-size: 300%;
+        color: rgb(225, 225, 225);
+
+        border-left: 0.5rem solid rgb(88, 198, 82);
+        padding-left: 1rem;
+    }
+
+    .NickNameText{
+        font-size: 75%;
+        margin: 0;
+        margin-top: -1rem;
+        
+        color: rgb(99, 99, 99);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/Comps/ZhenInformatikTimeline.svelte b/src/routes/zhen/Comps/ZhenInformatikTimeline.svelte
index ca79065..c1944be 100644
--- a/src/routes/zhen/Comps/ZhenInformatikTimeline.svelte
+++ b/src/routes/zhen/Comps/ZhenInformatikTimeline.svelte
@@ -1,67 +1,67 @@
-<script lang="ts">
-    import Timeline from "../../../comps/timeline/timeline.svelte";
-    import TimelineItem from "../../../comps/timeline/timelineItem.svelte";
-</script>
-
-<Timeline style="padding: 2rem; padding-left: 3vw; padding-bottom: 5rem;">
-<TimelineItem
-    date="3.G 10/3-20234" 
-    title="Prolog Apple device recommendation"
-    desc='Et program lavet med Prolog, som finder en tilpassende Apple enhed baseret på dato udgivet og pris af enheden. <br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/Prolog-Rapport-1.pdf" style="color:lightblue;">Rapport</a>'
-    imagePath="/portfolios/sveske/prolog/thumb.png"
-    />
-<TimelineItem
-    date="3.G 3/12-2023" 
-    title="Extraordinær menneskelig sans"
-    desc='Med brug af en M5StickCPlus og en bevægelses sensor, så skabte benjamin og jeg en ekstra menneskelig sans.<br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/HumanInterface - Rapport-1.pdf" style="color:lightblue;">Rapport</a>'
-    imagePath="/portfolios/sveske/hmi/thumb.png"
-    />
-<TimelineItem
-    date="2.G 16/6-2023" 
-    title="Otakians"
-    desc='Dette projekt repræsenterer apogeeen af mine anstrengelser og stræben inden for teknologisk innovation. Det er en avanceret webapplikation konstrueret med en sofistikeret arkitektur, der omfatter HTML, CSS, C#, og javascript som fundamentale byggesten. Indlejret i dets omfangsrige struktur findes et imponerende repertoire af funktioner, herunder en grundig præsentationssektion, en dynamisk chatmodul, en omfattende FAQ-sektion og et stringent, indbygget login-system. Projektets kerneformål er at fungere som et digitalt samlingspunkt for tilhængere af anime, kendt som "weebs", hvor de kan dele, diskutere og opbygge fællesskaber om deres passion for denne japanske popkulturform. Med en sofistikeret integration af komplekse algoritmer og brugercentrerede designprincipper stræber denne hjemmeside mod at skabe en opslidende og meningsfuld oplevelse for sine brugere, og dermed forstærke forbindelserne inden for dette særlige interessefællesskab. <br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/Otakians(1).docx" style="color:lightblue;">Rapport</a>'
-    imagePath="/images/Zhen/Infomatik/Otakians.png"
-    />
-<TimelineItem
-    date="2.G 10/3-2023" 
-    title="Makey Makey: pressure plate"
-    desc="Ved anvendelse af Makey Makey har vi skabt en innovativ og funktionel trykplade af papir, tape, aluminiumsfolie og selve Makey Makey-enheden. Denne teknologiske opfindelse udgør et paradigmeskift inden for DIY-elektronik og inkorporerer en særegen symbiose af håndværksmæssig finesse og digital innovation. Ved at omfavne en konvergens af analoge og digitale teknologier demonstrerer denne opfindelse et ekstraordinært niveau af teknisk snilde og kreativ tænkning. Gennem en kompleks integration af disse elementer opnår denne trykplade ikke blot funktionalitet, men repræsenterer også en manifestation af menneskelig opfindsomhed og teknologisk fremgang. <br/><br/>Link: <a href='https://www.youtube.com/watch?v=AIUuqfbgKRw' style='color:lightblue;'>Youtube video</a><br/>Link 2: <a href='https://www.youtube.com/watch?v=tJ_N_K_kbjw' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/PressurePlate.pdf' style='color:lightblue;'>Rapport</a>"
-    imagePath="/images/Zhen/Infomatik/PressurePlate.png"
-    />
-<TimelineItem
-    date="2.G 11/9-2022" 
-    title="Visit copenhagen"
-    desc="Dette projekt inkorporerede en mangefacetteret tilgang med adskillige elementer af gestaltloven, og det udnyttede HTML og CSS til at animere disse aspekter. Den valgte ramme, .NET Blazor, fungerede som fundamentet for implementeringen af disse avancerede visuelle og interaktive komponenter. Gennem en dybdegående anvendelse af komplekse gestaltprincipper blev en symbiotisk syntese opnået, hvilket resulterede i en dynamisk digital oplevelse, der strømlinede brugerinteraktionen og forbedrede æstetikken af det endelige produkt. <br/><br/>Link: <a href='https://youtu.be/S9Rpm12Al0Y' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/VisitCopenhagenRapport(1).docx' style='color:lightblue;'>Rapport</a>"
-    imagePath="/images/Zhen/Infomatik/VisitCopenhagen.png"
-    />
-<TimelineItem
-    date="2.G 2022" 
-    title="Uncle roger's recipies"
-    desc="Denne sekundære webplatform, udspringende af mine digitale kreationer, udfolder sig som en kyndig panorama over de bedste 5 opskrifter præsenteret af Uncle Rogers. Udformet med pur HTML og anstrøg af CSS, emmer den af enkelhed kombineret med subtil elegance, og inkorporerer diskrete CSS-animationer for at tilføje en dynamisk dimension til brugeroplevelsen. Med en nøje sammensat struktur og en stringent implementering af webteknologier, udforsker den dybden af kulinariske inspirationer fra den anerkendte kogekunstner, alt imens den søger at fremme gastronomisk kreativitet og forfinelse.<br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/AsiatiskMad.html' style='color:lightblue;'>Rapport</a>"
-    imagePath="/images/Zhen/Infomatik/UncleRogers.png"
-    />
-<TimelineItem
-    date="2.G 2022" 
-    title="Game rankings website"
-    desc="Denne pionerende webside, skabt med hovedsageligt HTML og et minimængde af CSS, repræsenterer en banebrydende praksis i webudviklingen. Ved at begrænse brugen af CSS til et minimum og ved at undlade JavaScript, demonstrerer den en avantgarde tilgang til design og funktionalitet. Med en fokuseret brug af HTML som kerneelement til opbygning af websiden, fremhæver den vigtigheden af semantisk strukturering og tilgængelighed. Denne minimalistiske tilgang afspejler en dyb forståelse for webudviklingens essentielle principper og skaber samtidig en unik æstetik og brugeroplevelse, der inspirerer til refleksion over konventionelle praksisser inden for digital design.<br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/SpilHjemmeside.html' style='color:lightblue;'>Rapport</a>"
-    imagePath="/images/Zhen/Infomatik/FirstWebsite.png"
-    />
-<TimelineItem
-    date="1.G 2022" 
-    title="Quest for grass"
-    desc="Dette avancerede projekt udvikler et dynamisk spil i Unity-miljøet med en sofistikeret integration af en database, der skrupelløst opbevarer og manipulerer brugerens præstationer. Den benyttede database struktureres og drives af den altopslugende Google Firebase-platform, der leverer en robust og skalerbar infrastruktur til håndtering af data. Gennem en sublim kombination af komplekse algoritmer og interaktionelle mekanismer, optimeres brugeroplevelsen, og spillets dybde forøges betragteligt. Dette projekt fremhæver det symbiotiske forhold mellem teknologiske avancer og kreative visioner, idet det udforsker nye horisonter inden for spiludvikling og datamanagement. <br/><br/>Link: <a href='https://youtu.be/Vb_2U2lyVFY' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik1g/DatabaseProjektTouchGrass.docx' style='color:lightblue;'>Rapport</a>"
-    imagePath="/images/Zhen/Infomatik/QuestForGrass.png"
-    />
-<TimelineItem
-    date="1.G 2022" 
-    desc="Denne applikation, konstrueret i AppLab, agerer som en præcis katalysator, der faciliterer forståelsen af de 13 globale bæredygtighedsmål fastsat af De Forenede Nationer. Med en intuitiv brugergrænseflade og en enestående funktionalitet præsenterer den en omfattende oversigt over disse komplekse mål, hvilket muliggør en dybdegående indsigt i de multidimensionelle aspekter af global udvikling. Med en elegant integration af avancerede algoritmer og interaktive elementer guider denne app brugeren gennem et labyrintisk landskab af komplekse socioøkonomiske og miljømæssige koncepter, hvilket fremmer en dybere forståelse og engagement i bestræbelserne på at opnå en mere bæredygtig planet.<br/><br/>Link: <a href='/portfolios/alex/Informatik1g/AppLabRapport(1).docx' style='color:lightblue;'>Rapport</a>"
-    title="App lab verdensmål"
-    imagePath="/images/Zhen/Infomatik/1.G-App.png"
-    />
-<TimelineItem 
-    date="1.G 2021"
-    desc='Dette initiativ involverede implementeringen af et avanceret værktøj fra Google kendt som "teachable machine", som blev konfigureret til at identificere en række håndudtryk. Med en kompleks kombination af maskinlæringsteknikker og datadrevne algoritmer blev dette projekt realiseret med ekspertise og præcision. Ved at udnytte avancerede neurale netværk og dybdegående datasæt muliggjorde dette værktøj en dybtgående analyse af de subtile nuancer i håndgester, hvilket resulterede i en imponerende nøjagtighed og pålidelighed i genkendelsen af disse udtryk. Dette projekt repræsenterer et skridt fremad i feltet for computer vision og maskinlæring, og det illustrerer potentialet i at anvende avancerede teknologier til at løse komplekse problemer inden for menneske-maskine-interaktion. <br/><br/>Link: <a href="/portfolios/alex/Informatik1g/MachineLearningRapport.docx" style="color:lightblue;">Rapport</a>'
-    title="Machine learning: gesture recognition"
-    imagePath="/portfolios/sveske/teachable_machine/thumb.png"
-    />
+<script lang="ts">
+    import Timeline from "../../../comps/timeline/timeline.svelte";
+    import TimelineItem from "../../../comps/timeline/timelineItem.svelte";
+</script>
+
+<Timeline style="padding: 2rem; padding-left: 3vw; padding-bottom: 5rem;">
+<TimelineItem
+    date="3.G 10/3-20234" 
+    title="Prolog Apple device recommendation"
+    desc='Et program lavet med Prolog, som finder en tilpassende Apple enhed baseret på dato udgivet og pris af enheden. <br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/Prolog-Rapport-1.pdf" style="color:lightblue;">Rapport</a>'
+    imagePath="/portfolios/sveske/prolog/thumb.png"
+    />
+<TimelineItem
+    date="3.G 3/12-2023" 
+    title="Extraordinær menneskelig sans"
+    desc='Med brug af en M5StickCPlus og en bevægelses sensor, så skabte benjamin og jeg en ekstra menneskelig sans.<br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/HumanInterface - Rapport-1.pdf" style="color:lightblue;">Rapport</a>'
+    imagePath="/portfolios/sveske/hmi/thumb.png"
+    />
+<TimelineItem
+    date="2.G 16/6-2023" 
+    title="Otakians"
+    desc='Dette projekt repræsenterer apogeeen af mine anstrengelser og stræben inden for teknologisk innovation. Det er en avanceret webapplikation konstrueret med en sofistikeret arkitektur, der omfatter HTML, CSS, C#, og javascript som fundamentale byggesten. Indlejret i dets omfangsrige struktur findes et imponerende repertoire af funktioner, herunder en grundig præsentationssektion, en dynamisk chatmodul, en omfattende FAQ-sektion og et stringent, indbygget login-system. Projektets kerneformål er at fungere som et digitalt samlingspunkt for tilhængere af anime, kendt som "weebs", hvor de kan dele, diskutere og opbygge fællesskaber om deres passion for denne japanske popkulturform. Med en sofistikeret integration af komplekse algoritmer og brugercentrerede designprincipper stræber denne hjemmeside mod at skabe en opslidende og meningsfuld oplevelse for sine brugere, og dermed forstærke forbindelserne inden for dette særlige interessefællesskab. <br/><br/>Link: <a href="/portfolios/alex/Informatik3g2g/Otakians(1).docx" style="color:lightblue;">Rapport</a>'
+    imagePath="/images/Zhen/Infomatik/Otakians.png"
+    />
+<TimelineItem
+    date="2.G 10/3-2023" 
+    title="Makey Makey: pressure plate"
+    desc="Ved anvendelse af Makey Makey har vi skabt en innovativ og funktionel trykplade af papir, tape, aluminiumsfolie og selve Makey Makey-enheden. Denne teknologiske opfindelse udgør et paradigmeskift inden for DIY-elektronik og inkorporerer en særegen symbiose af håndværksmæssig finesse og digital innovation. Ved at omfavne en konvergens af analoge og digitale teknologier demonstrerer denne opfindelse et ekstraordinært niveau af teknisk snilde og kreativ tænkning. Gennem en kompleks integration af disse elementer opnår denne trykplade ikke blot funktionalitet, men repræsenterer også en manifestation af menneskelig opfindsomhed og teknologisk fremgang. <br/><br/>Link: <a href='https://www.youtube.com/watch?v=AIUuqfbgKRw' style='color:lightblue;'>Youtube video</a><br/>Link 2: <a href='https://www.youtube.com/watch?v=tJ_N_K_kbjw' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/PressurePlate.pdf' style='color:lightblue;'>Rapport</a>"
+    imagePath="/images/Zhen/Infomatik/PressurePlate.png"
+    />
+<TimelineItem
+    date="2.G 11/9-2022" 
+    title="Visit copenhagen"
+    desc="Dette projekt inkorporerede en mangefacetteret tilgang med adskillige elementer af gestaltloven, og det udnyttede HTML og CSS til at animere disse aspekter. Den valgte ramme, .NET Blazor, fungerede som fundamentet for implementeringen af disse avancerede visuelle og interaktive komponenter. Gennem en dybdegående anvendelse af komplekse gestaltprincipper blev en symbiotisk syntese opnået, hvilket resulterede i en dynamisk digital oplevelse, der strømlinede brugerinteraktionen og forbedrede æstetikken af det endelige produkt. <br/><br/>Link: <a href='https://youtu.be/S9Rpm12Al0Y' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/VisitCopenhagenRapport(1).docx' style='color:lightblue;'>Rapport</a>"
+    imagePath="/images/Zhen/Infomatik/VisitCopenhagen.png"
+    />
+<TimelineItem
+    date="2.G 2022" 
+    title="Uncle roger's recipies"
+    desc="Denne sekundære webplatform, udspringende af mine digitale kreationer, udfolder sig som en kyndig panorama over de bedste 5 opskrifter præsenteret af Uncle Rogers. Udformet med pur HTML og anstrøg af CSS, emmer den af enkelhed kombineret med subtil elegance, og inkorporerer diskrete CSS-animationer for at tilføje en dynamisk dimension til brugeroplevelsen. Med en nøje sammensat struktur og en stringent implementering af webteknologier, udforsker den dybden af kulinariske inspirationer fra den anerkendte kogekunstner, alt imens den søger at fremme gastronomisk kreativitet og forfinelse.<br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/AsiatiskMad.html' style='color:lightblue;'>Rapport</a>"
+    imagePath="/images/Zhen/Infomatik/UncleRogers.png"
+    />
+<TimelineItem
+    date="2.G 2022" 
+    title="Game rankings website"
+    desc="Denne pionerende webside, skabt med hovedsageligt HTML og et minimængde af CSS, repræsenterer en banebrydende praksis i webudviklingen. Ved at begrænse brugen af CSS til et minimum og ved at undlade JavaScript, demonstrerer den en avantgarde tilgang til design og funktionalitet. Med en fokuseret brug af HTML som kerneelement til opbygning af websiden, fremhæver den vigtigheden af semantisk strukturering og tilgængelighed. Denne minimalistiske tilgang afspejler en dyb forståelse for webudviklingens essentielle principper og skaber samtidig en unik æstetik og brugeroplevelse, der inspirerer til refleksion over konventionelle praksisser inden for digital design.<br/><br/>Link: <a href='/portfolios/alex/Informatik3g2g/SpilHjemmeside.html' style='color:lightblue;'>Rapport</a>"
+    imagePath="/images/Zhen/Infomatik/FirstWebsite.png"
+    />
+<TimelineItem
+    date="1.G 2022" 
+    title="Quest for grass"
+    desc="Dette avancerede projekt udvikler et dynamisk spil i Unity-miljøet med en sofistikeret integration af en database, der skrupelløst opbevarer og manipulerer brugerens præstationer. Den benyttede database struktureres og drives af den altopslugende Google Firebase-platform, der leverer en robust og skalerbar infrastruktur til håndtering af data. Gennem en sublim kombination af komplekse algoritmer og interaktionelle mekanismer, optimeres brugeroplevelsen, og spillets dybde forøges betragteligt. Dette projekt fremhæver det symbiotiske forhold mellem teknologiske avancer og kreative visioner, idet det udforsker nye horisonter inden for spiludvikling og datamanagement. <br/><br/>Link: <a href='https://youtu.be/Vb_2U2lyVFY' style='color:lightblue;'>Youtube video</a> <br/><br/>Link: <a href='/portfolios/alex/Informatik1g/DatabaseProjektTouchGrass.docx' style='color:lightblue;'>Rapport</a>"
+    imagePath="/images/Zhen/Infomatik/QuestForGrass.png"
+    />
+<TimelineItem
+    date="1.G 2022" 
+    desc="Denne applikation, konstrueret i AppLab, agerer som en præcis katalysator, der faciliterer forståelsen af de 13 globale bæredygtighedsmål fastsat af De Forenede Nationer. Med en intuitiv brugergrænseflade og en enestående funktionalitet præsenterer den en omfattende oversigt over disse komplekse mål, hvilket muliggør en dybdegående indsigt i de multidimensionelle aspekter af global udvikling. Med en elegant integration af avancerede algoritmer og interaktive elementer guider denne app brugeren gennem et labyrintisk landskab af komplekse socioøkonomiske og miljømæssige koncepter, hvilket fremmer en dybere forståelse og engagement i bestræbelserne på at opnå en mere bæredygtig planet.<br/><br/>Link: <a href='/portfolios/alex/Informatik1g/AppLabRapport(1).docx' style='color:lightblue;'>Rapport</a>"
+    title="App lab verdensmål"
+    imagePath="/images/Zhen/Infomatik/1.G-App.png"
+    />
+<TimelineItem 
+    date="1.G 2021"
+    desc='Dette initiativ involverede implementeringen af et avanceret værktøj fra Google kendt som "teachable machine", som blev konfigureret til at identificere en række håndudtryk. Med en kompleks kombination af maskinlæringsteknikker og datadrevne algoritmer blev dette projekt realiseret med ekspertise og præcision. Ved at udnytte avancerede neurale netværk og dybdegående datasæt muliggjorde dette værktøj en dybtgående analyse af de subtile nuancer i håndgester, hvilket resulterede i en imponerende nøjagtighed og pålidelighed i genkendelsen af disse udtryk. Dette projekt repræsenterer et skridt fremad i feltet for computer vision og maskinlæring, og det illustrerer potentialet i at anvende avancerede teknologier til at løse komplekse problemer inden for menneske-maskine-interaktion. <br/><br/>Link: <a href="/portfolios/alex/Informatik1g/MachineLearningRapport.docx" style="color:lightblue;">Rapport</a>'
+    title="Machine learning: gesture recognition"
+    imagePath="/portfolios/sveske/teachable_machine/thumb.png"
+    />
 </Timeline>
\ No newline at end of file
diff --git a/src/routes/zhen/Utils/Throttle.js b/src/routes/zhen/Utils/Throttle.js
deleted file mode 100644
index 318512c..0000000
--- a/src/routes/zhen/Utils/Throttle.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export function throttle(callback, wait) {
-    let timeoutId = null;
-    let lastExecutedTime = 0;
-  
-    return function (...args) {
-      const currentTime = Date.now();
-  
-      const execute = () => {
-        lastExecutedTime = currentTime;
-        callback.apply(this, args);
-      };
-  
-      if (currentTime - lastExecutedTime >= wait) {
-        execute();
-      } else {
-        clearTimeout(timeoutId);
-        timeoutId = setTimeout(execute, wait - (currentTime - lastExecutedTime));
-      }
-    };
-  }
-  
\ No newline at end of file
diff --git a/src/routes/zhen/Utils/Vector2.ts b/src/routes/zhen/Utils/Vector2.ts
index 7fd53cb..b455320 100644
--- a/src/routes/zhen/Utils/Vector2.ts
+++ b/src/routes/zhen/Utils/Vector2.ts
@@ -7,15 +7,15 @@ export class Vector2 {
         this.y = y;
     }
 
-    Add(vec2: Vector2){
+    Add(vec2: Vector2) {
         return new Vector2(this.x + vec2.x, this.y + vec2.y);
     }
 
-    Sub(vec2: Vector2){
+    Sub(vec2: Vector2) {
         return new Vector2(this.x - vec2.x, this.y - vec2.y);
     }
 
-    Scale(mult: number){
+    Scale(mult: number) {
         return new Vector2(this.x * mult, this.y * mult);;
     }
 }
diff --git a/src/routes/zhen/cv/Comps/AlexWatermark.svelte b/src/routes/zhen/cv/Comps/AlexWatermark.svelte
index 445775b..c41f62b 100644
--- a/src/routes/zhen/cv/Comps/AlexWatermark.svelte
+++ b/src/routes/zhen/cv/Comps/AlexWatermark.svelte
@@ -1,19 +1,19 @@
-<div class="container">
-    ALEX
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        display: grid;
-        justify-self: end;
-        vertical-align: bottom;
-        align-self: flex-end;
-        
-        // font settings
-        font-size: 80mm;
-        color: #e4e4e4;
-
-        transform: translate(32%, -32%) rotate(-90deg);
-    }
-</style>
+<div class="container">
+    ALEX
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        display: grid;
+        justify-self: end;
+        vertical-align: bottom;
+        align-self: flex-end;
+        
+        // font settings
+        font-size: 80mm;
+        color: #e4e4e4;
+
+        transform: translate(32%, -32%) rotate(-90deg);
+    }
+</style>
diff --git a/src/routes/zhen/cv/Comps/BottomRightDecor.svelte b/src/routes/zhen/cv/Comps/BottomRightDecor.svelte
index c3435b1..09fb6cc 100644
--- a/src/routes/zhen/cv/Comps/BottomRightDecor.svelte
+++ b/src/routes/zhen/cv/Comps/BottomRightDecor.svelte
@@ -1,47 +1,47 @@
-<div class="container">
-    <div/>
-    <div>
-        <div>
-            Thank you! ❤
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        transform: translate(40.2mm, 5mm) rotate(-45deg);
-        display: grid;
-        justify-self: end;
-        vertical-align: bottom;
-        align-self: flex-end;
-
-        z-index: 0;
-
-        > div:nth-child(1) {
-            padding-top: 5mm;
-            //border-bottom: #4472c4 dashed 2mm;
-
-            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
-            background-position: top;
-            background-size: 6mm 1.5mm;
-            background-repeat: repeat-x;
-        }
-
-        > div:nth-child(2) {
-            background-color: #2f5496;
-            width: 100mm;
-            height: 25mm;
-
-            // Text
-            display: grid;
-            place-content: center;
-            align-content: flex-start;
-            > div {
-                padding-top: 3.5mm;
-                color: #4a7bcf;
-                font-weight: bold;
-            }
-        }
-    }
+<div class="container">
+    <div/>
+    <div>
+        <div>
+            Thank you! ❤
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        transform: translate(40.2mm, 5mm) rotate(-45deg);
+        display: grid;
+        justify-self: end;
+        vertical-align: bottom;
+        align-self: flex-end;
+
+        z-index: 0;
+
+        > div:nth-child(1) {
+            padding-top: 5mm;
+            //border-bottom: #4472c4 dashed 2mm;
+
+            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
+            background-position: top;
+            background-size: 6mm 1.5mm;
+            background-repeat: repeat-x;
+        }
+
+        > div:nth-child(2) {
+            background-color: #2f5496;
+            width: 100mm;
+            height: 25mm;
+
+            // Text
+            display: grid;
+            place-content: center;
+            align-content: flex-start;
+            > div {
+                padding-top: 3.5mm;
+                color: #4a7bcf;
+                font-weight: bold;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/CombinedContacts.svelte b/src/routes/zhen/cv/Comps/CombinedContacts.svelte
index 5c1dba2..fb1d3ce 100644
--- a/src/routes/zhen/cv/Comps/CombinedContacts.svelte
+++ b/src/routes/zhen/cv/Comps/CombinedContacts.svelte
@@ -1,7 +1,7 @@
-<script>
-    import Contact from "./Contact.svelte";
-    import OtherContact from "./OtherContact.svelte";
-</script>
-
-<Contact/>
+<script>
+    import Contact from "./Contact.svelte";
+    import OtherContact from "./OtherContact.svelte";
+</script>
+
+<Contact/>
 <OtherContact/>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/Contact.svelte b/src/routes/zhen/cv/Comps/Contact.svelte
index 81d34cf..af2ad95 100644
--- a/src/routes/zhen/cv/Comps/Contact.svelte
+++ b/src/routes/zhen/cv/Comps/Contact.svelte
@@ -1,76 +1,76 @@
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Contact
-        </b>
-    </div>
-    <div class="table-display">
-        <div class="table-item">
-            <div>Email</div>
-            <div>Zhen@deprived.dev</div>
-        </div>
-        <div class="table-item">
-            <div>Phone</div>
-            <div>+45 42535723</div>
-        </div>
-        <div class="table-item">
-            <div>LinkedIn</div>
-            <a href="https://www.linkedin.com/in/zhentao-wei-3a3a0a182/">Zhentao-Wei</a>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
-
-    .table-display {
-        width: 100%;
-    }
-
-    .table-item {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        border-bottom: 0.25mm solid #000000;
-
-        > a {
-            text-decoration: underline;
-        }
-
-        > div, > a {
-            color: #000000;
-
-            &:first-child {
-                width: 35%;
-                font-size: 4mm;
-
-                display: grid;
-                place-content: center start;
-
-                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
-            }
-
-            &:nth-child(2) {
-                width: 65%;
-
-                font-size: 3.25mm;
-                display: grid;
-                place-content: center;
-
-                padding-left: 1mm;
-            }
-        }
-    }
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Contact
+        </b>
+    </div>
+    <div class="table-display">
+        <div class="table-item">
+            <div>Email</div>
+            <div>Zhen@deprived.dev</div>
+        </div>
+        <div class="table-item">
+            <div>Phone</div>
+            <div>+45 42535723</div>
+        </div>
+        <div class="table-item">
+            <div>LinkedIn</div>
+            <a href="https://www.linkedin.com/in/zhentao-wei-3a3a0a182/">Zhentao-Wei</a>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
+
+    .table-display {
+        width: 100%;
+    }
+
+    .table-item {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        border-bottom: 0.25mm solid #000000;
+
+        > a {
+            text-decoration: underline;
+        }
+
+        > div, > a {
+            color: #000000;
+
+            &:first-child {
+                width: 35%;
+                font-size: 4mm;
+
+                display: grid;
+                place-content: center start;
+
+                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
+            }
+
+            &:nth-child(2) {
+                width: 65%;
+
+                font-size: 3.25mm;
+                display: grid;
+                place-content: center;
+
+                padding-left: 1mm;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/Education.svelte b/src/routes/zhen/cv/Comps/Education.svelte
index d314439..1c84383 100644
--- a/src/routes/zhen/cv/Comps/Education.svelte
+++ b/src/routes/zhen/cv/Comps/Education.svelte
@@ -1,92 +1,92 @@
-<script>
-    import placeholder from "$lib/zhen/cv-comps/400x400.png"
-    import NextLogo from "$lib/zhen/cv-comps/nextKbhLogo.png"
-    import SasLogo from "$lib/zhen/cv-comps/SASLogo.png"
-    import EmphasysLogo from "$lib/zhen/cv-comps/EmphasysLogo.png"
-</script>
-
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Education
-        </b>
-    </div>
-    <div class="table">
-        <div class="table-item">
-            <img src={NextLogo} alt="NextKBH logo" width="15%"/>
-            <div>
-                <span>
-                    <b>Gymnasium/Collage - HTX</b><br>
-                    NEXT-Mediegymnasiet: Computer science<br>
-                    <i>May 2021 - Now</i>
-                </span>
-            </div>
-        </div>
-        <div class="table-item">
-            <img src={SasLogo} alt="SAS logo" width="15%"/>
-            <div>
-                <span>
-                    <b>SAS Master class</b><br>
-                    4-week project about SAS: OnDemand and SAS: Viya <br>
-                    <i>Dec 2023 - Dec 2023</i>
-                </span>
-            </div>
-        </div>
-        <div class="table-item">
-            <img src={EmphasysLogo} alt="Emphasys center logo" width="15%"/>
-            <div>
-                <span>
-                    <b>Emphasys Centre - Erasmus+</b><br>
-                    2 weeks of Unity VR <br>
-                    <i>Oct 2023 - Oct 2023</i>
-                </span>
-            </div>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-
-        overflow: hidden;
-
-        & > div:first-child {
-            width: 100%;
-
-            /* Bottom border stripe*/
-            border-bottom: 1mm solid black;
-
-            &:first-child {
-                font-size: x-large;
-            }
-        }
-    }
-
-    .table-item {
-        padding: 2mm;
-
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-
-        &:not(:last-child) {
-            border-bottom: 0.25mm solid #000000;
-        }
-
-        & > div {
-            padding-left: 3mm;
-
-            text-align: start;
-            font-size: 4mm;
-        }
-
-        & > img {
-            border-radius: 2.5mm;
-            filter: drop-shadow(1mm 1mm 1mm #0000009d);
-        }
-    }
+<script>
+    import placeholder from "$lib/zhen/cv-comps/400x400.png"
+    import NextLogo from "$lib/zhen/cv-comps/nextKbhLogo.png"
+    import SasLogo from "$lib/zhen/cv-comps/SASLogo.png"
+    import EmphasysLogo from "$lib/zhen/cv-comps/EmphasysLogo.png"
+</script>
+
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Education
+        </b>
+    </div>
+    <div class="table">
+        <div class="table-item">
+            <img src={NextLogo} alt="NextKBH logo" width="15%"/>
+            <div>
+                <span>
+                    <b>Gymnasium/Collage - HTX</b><br>
+                    NEXT-Mediegymnasiet: Computer science<br>
+                    <i>May 2021 - Now</i>
+                </span>
+            </div>
+        </div>
+        <div class="table-item">
+            <img src={SasLogo} alt="SAS logo" width="15%"/>
+            <div>
+                <span>
+                    <b>SAS Master class</b><br>
+                    4-week project about SAS: OnDemand and SAS: Viya <br>
+                    <i>Dec 2023 - Dec 2023</i>
+                </span>
+            </div>
+        </div>
+        <div class="table-item">
+            <img src={EmphasysLogo} alt="Emphasys center logo" width="15%"/>
+            <div>
+                <span>
+                    <b>Emphasys Centre - Erasmus+</b><br>
+                    2 weeks of Unity VR <br>
+                    <i>Oct 2023 - Oct 2023</i>
+                </span>
+            </div>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+
+        overflow: hidden;
+
+        & > div:first-child {
+            width: 100%;
+
+            /* Bottom border stripe*/
+            border-bottom: 1mm solid black;
+
+            &:first-child {
+                font-size: x-large;
+            }
+        }
+    }
+
+    .table-item {
+        padding: 2mm;
+
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+
+        &:not(:last-child) {
+            border-bottom: 0.25mm solid #000000;
+        }
+
+        & > div {
+            padding-left: 3mm;
+
+            text-align: start;
+            font-size: 4mm;
+        }
+
+        & > img {
+            border-radius: 2.5mm;
+            filter: drop-shadow(1mm 1mm 1mm #0000009d);
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/Experience.svelte b/src/routes/zhen/cv/Comps/Experience.svelte
index 2cad915..e4a7576 100644
--- a/src/routes/zhen/cv/Comps/Experience.svelte
+++ b/src/routes/zhen/cv/Comps/Experience.svelte
@@ -1,92 +1,92 @@
-<script>
-    import placeholder from "$lib/zhen/cv-comps/400x400.png"
-    import MakerspaceLogo from "$lib/zhen/cv-comps/MakerspaceLogo.png"
-    import EposLogo from "$lib/zhen/cv-comps/EposLogo.png"
-    import KhoraLogo from "$lib/zhen/cv-comps/KhoraLogo.jpg"
-</script>
-
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Experience
-        </b>
-    </div>
-    <div class="table">
-        <div class="table-item">
-            <img src={MakerspaceLogo} alt="NextKBH logo" width="15%"/>
-            <div>
-                <span>
-                    <b>3D printer manager</b> - Volunteer<br>
-                    Makerspace - kildevæld Kulturcenter<br>
-                    <i>Nov 2023 - Now</i>
-                </span>
-            </div>
-        </div>
-        <div class="table-item">
-            <img src={EposLogo} alt="SAS logo" width="15%"/>
-            <div>
-                <span>
-                    <b>Machine Learning Engineer</b> - Short term intern<br>
-                    Product design department - Epos<br>
-                    <i>Apr 2024 - Apr 2024</i>
-                </span>
-            </div>
-        </div>
-        <div class="table-item">
-            <img src={KhoraLogo} alt="Emphasys center logo" width="15%"/>
-            <div>
-                <span>
-                    <b>Assistant</b> - Short term intern<br>
-                    Khora Virtual Reality<br>
-                    <i>Oct 2020 - Oct 2020</i>
-                </span>
-            </div>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-
-        overflow: hidden;
-
-        & > div:first-child {
-            width: 100%;
-
-            /* Bottom border stripe*/
-            border-bottom: 1mm solid black;
-
-            &:first-child {
-                font-size: x-large;
-            }
-        }
-    }
-
-    .table-item {
-        padding: 2mm;
-
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        
-        &:not(:last-child) {
-            border-bottom: 0.25mm solid #000000;
-        }
-
-        & > div {
-            padding-left: 3mm;
-
-            text-align: start;
-            font-size: 4mm;
-        }
-
-        & > img {
-            border-radius: 2.5mm;
-            filter: drop-shadow(1mm 1mm 1mm #0000009d);
-        }
-    }
+<script>
+    import placeholder from "$lib/zhen/cv-comps/400x400.png"
+    import MakerspaceLogo from "$lib/zhen/cv-comps/MakerspaceLogo.png"
+    import EposLogo from "$lib/zhen/cv-comps/EposLogo.png"
+    import KhoraLogo from "$lib/zhen/cv-comps/KhoraLogo.jpg"
+</script>
+
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Experience
+        </b>
+    </div>
+    <div class="table">
+        <div class="table-item">
+            <img src={MakerspaceLogo} alt="NextKBH logo" width="15%"/>
+            <div>
+                <span>
+                    <b>3D printer manager</b> - Volunteer<br>
+                    Makerspace - kildevæld Kulturcenter<br>
+                    <i>Nov 2023 - Now</i>
+                </span>
+            </div>
+        </div>
+        <div class="table-item">
+            <img src={EposLogo} alt="SAS logo" width="15%"/>
+            <div>
+                <span>
+                    <b>Machine Learning Engineer</b> - Short term intern<br>
+                    Product design department - Epos<br>
+                    <i>Apr 2024 - Apr 2024</i>
+                </span>
+            </div>
+        </div>
+        <div class="table-item">
+            <img src={KhoraLogo} alt="Emphasys center logo" width="15%"/>
+            <div>
+                <span>
+                    <b>Assistant</b> - Short term intern<br>
+                    Khora Virtual Reality<br>
+                    <i>Oct 2020 - Oct 2020</i>
+                </span>
+            </div>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+
+        overflow: hidden;
+
+        & > div:first-child {
+            width: 100%;
+
+            /* Bottom border stripe*/
+            border-bottom: 1mm solid black;
+
+            &:first-child {
+                font-size: x-large;
+            }
+        }
+    }
+
+    .table-item {
+        padding: 2mm;
+
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        
+        &:not(:last-child) {
+            border-bottom: 0.25mm solid #000000;
+        }
+
+        & > div {
+            padding-left: 3mm;
+
+            text-align: start;
+            font-size: 4mm;
+        }
+
+        & > img {
+            border-radius: 2.5mm;
+            filter: drop-shadow(1mm 1mm 1mm #0000009d);
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/LeftTopDecor.svelte b/src/routes/zhen/cv/Comps/LeftTopDecor.svelte
index 34e18e9..546b9b5 100644
--- a/src/routes/zhen/cv/Comps/LeftTopDecor.svelte
+++ b/src/routes/zhen/cv/Comps/LeftTopDecor.svelte
@@ -1,50 +1,50 @@
-<script>
-    import RepeatedSkills from "./RepeatedSkills.svelte";
-</script>
-
-<div class="container">
-    <div>
-        <RepeatedSkills textOverride={["Hello", "你好", "Hej"]} targetTextHeight={4} targetTextWidth={50} applyRotation={false}/>
-    </div>
-    <div/>
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        transform: translate(-31.9mm, 0mm) rotate(-45deg);
-        display: grid;
-        justify-self: start;
-        vertical-align: top;
-        align-self: flex-start;
-
-        z-index: 0;
-
-        > div:nth-child(1) {
-            //background-color: #2f559622;
-            width: 100mm;
-            height: 17.5mm;
-
-            // Text inside
-            display: grid;
-            place-content: center;
-            border: #4472c4 dotted 1mm;
-
-            &:first-child {
-                color: #4472c4;                
-                font-size: 3mm;
-                //font-weight: bold;
-            }
-        }
-        
-        > div:nth-child(2) {
-            padding-top: 5mm;
-            //border-bottom: #4472c4 dashed 2mm;
-
-            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
-            background-position: bottom;
-            background-size: 6mm 1.5mm;
-            background-repeat: repeat-x;
-        }
-    }
+<script>
+    import RepeatedSkills from "./RepeatedSkills.svelte";
+</script>
+
+<div class="container">
+    <div>
+        <RepeatedSkills textOverride={["Hello", "你好", "Hej"]} targetTextHeight={4} targetTextWidth={50} applyRotation={false}/>
+    </div>
+    <div/>
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        transform: translate(-31.9mm, 0mm) rotate(-45deg);
+        display: grid;
+        justify-self: start;
+        vertical-align: top;
+        align-self: flex-start;
+
+        z-index: 0;
+
+        > div:nth-child(1) {
+            //background-color: #2f559622;
+            width: 100mm;
+            height: 17.5mm;
+
+            // Text inside
+            display: grid;
+            place-content: center;
+            border: #4472c4 dotted 1mm;
+
+            &:first-child {
+                color: #4472c4;                
+                font-size: 3mm;
+                //font-weight: bold;
+            }
+        }
+        
+        > div:nth-child(2) {
+            padding-top: 5mm;
+            //border-bottom: #4472c4 dashed 2mm;
+
+            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
+            background-position: bottom;
+            background-size: 6mm 1.5mm;
+            background-repeat: repeat-x;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/LinkToSource.svelte b/src/routes/zhen/cv/Comps/LinkToSource.svelte
index a35dc3e..8c382af 100644
--- a/src/routes/zhen/cv/Comps/LinkToSource.svelte
+++ b/src/routes/zhen/cv/Comps/LinkToSource.svelte
@@ -1,51 +1,51 @@
-<script>
-    import svelteLogo from "$lib/svelteLogos/svelte-logo-cutout.svg"
-</script>
-
-<div class="container">
-    <div>
-        This CV was made using <a href="https://kit.svelte.dev/"><img src={svelteLogo} alt="SvelteKit logo"/></a>
-    </div>
-    <div>
-        Sources:
-        <a href="https://gitea.deprived.dev/Sveskejuice/deprived-main-website">Gitea</a>
-        and
-        <a href="https://dev.deprived.dev/zhen/cv/rev1?hideOnPrint=1">My Website</a>
-    </div>
-</div>
-
-<style lang="scss">
-    .container {
-        z-index: 1;
-        padding-left: 2mm;
-
-        //white-space: nowrap;
-
-        color: #777777;
-
-        * a {
-            color: #3d6ddc;
-            padding-left: 1mm;
-            padding-right: 1mm;
-
-            text-decoration: underline;
-        }
-
-        div:first-child {
-            display: flex;
-            place-content: center;
-            justify-content: start;
-
-            a:nth-child(1) > img {
-                width: 5mm;
-
-                padding-left: 1mm;
-                padding-right: 1mm;
-            }
-        }
-
-        div:nth-child(2){
-            padding-bottom: 2mm;
-        }
-    }
+<script>
+    import svelteLogo from "$lib/svelteLogos/svelte-logo-cutout.svg"
+</script>
+
+<div class="container">
+    <div>
+        This CV was made using <a href="https://kit.svelte.dev/"><img src={svelteLogo} alt="SvelteKit logo"/></a>
+    </div>
+    <div>
+        Sources:
+        <a href="https://gitea.deprived.dev/Sveskejuice/deprived-main-website">Gitea</a>
+        and
+        <a href="https://dev.deprived.dev/zhen/cv/rev1?hideOnPrint=1">My Website</a>
+    </div>
+</div>
+
+<style lang="scss">
+    .container {
+        z-index: 1;
+        padding-left: 2mm;
+
+        //white-space: nowrap;
+
+        color: #777777;
+
+        * a {
+            color: #3d6ddc;
+            padding-left: 1mm;
+            padding-right: 1mm;
+
+            text-decoration: underline;
+        }
+
+        div:first-child {
+            display: flex;
+            place-content: center;
+            justify-content: start;
+
+            a:nth-child(1) > img {
+                width: 5mm;
+
+                padding-left: 1mm;
+                padding-right: 1mm;
+            }
+        }
+
+        div:nth-child(2){
+            padding-bottom: 2mm;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/LinkedInQR.svelte b/src/routes/zhen/cv/Comps/LinkedInQR.svelte
index b5d736f..e6eef31 100644
--- a/src/routes/zhen/cv/Comps/LinkedInQR.svelte
+++ b/src/routes/zhen/cv/Comps/LinkedInQR.svelte
@@ -1,24 +1,24 @@
-<script>
-    import QRCode from "$lib/zhen/cv-comps/LinkedInQrCode.svg?raw"
-</script>
-
-<div class="container">
-    <div>LinkedIn</div>
-    <span class="qrcode">{@html QRCode}</span>
-</div>
-
-<style lang="scss">
-
-    .qrcode {
-        transform: scale(0.9);
-    }
-
-    .container {
-        display: grid;
-        place-items: center;
-
-        & * {
-            font-size: 7.5mm;
-        }
-    }
+<script>
+    import QRCode from "$lib/zhen/cv-comps/LinkedInQrCode.svg?raw"
+</script>
+
+<div class="container">
+    <div>LinkedIn</div>
+    <span class="qrcode">{@html QRCode}</span>
+</div>
+
+<style lang="scss">
+
+    .qrcode {
+        transform: scale(0.9);
+    }
+
+    .container {
+        display: grid;
+        place-items: center;
+
+        & * {
+            font-size: 7.5mm;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/NameAndImage.svelte b/src/routes/zhen/cv/Comps/NameAndImage.svelte
index 8d76036..aec3b2c 100644
--- a/src/routes/zhen/cv/Comps/NameAndImage.svelte
+++ b/src/routes/zhen/cv/Comps/NameAndImage.svelte
@@ -1,25 +1,25 @@
-<script lang="ts">
-    import NamePlate from "./NamePlate.svelte";
-    import selfie from "$lib/zhen/cv-comps/zhenSelfie.jpg"
-</script>
-
-<div class="nameAndImageContainer">
-    <NamePlate/>
-    <img src={selfie} class="selfie-constraints" alt="Zhentao Wei"/>
-</div>
-
-<style>
-    .nameAndImageContainer {
-        display: grid;
-        place-items: center;
-    }
-
-    .selfie-constraints{
-        padding-top: 2.5mm;
-        
-        max-width: 65%;
-        border-radius: 5mm;
-
-        filter: drop-shadow(1mm 1mm 1mm #0000009d);
-    }
+<script lang="ts">
+    import NamePlate from "./NamePlate.svelte";
+    import selfie from "$lib/zhen/cv-comps/zhenSelfie.jpg"
+</script>
+
+<div class="nameAndImageContainer">
+    <NamePlate/>
+    <img src={selfie} class="selfie-constraints" alt="Zhentao Wei"/>
+</div>
+
+<style>
+    .nameAndImageContainer {
+        display: grid;
+        place-items: center;
+    }
+
+    .selfie-constraints{
+        padding-top: 2.5mm;
+        
+        max-width: 65%;
+        border-radius: 5mm;
+
+        filter: drop-shadow(1mm 1mm 1mm #0000009d);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/NamePlate.svelte b/src/routes/zhen/cv/Comps/NamePlate.svelte
index c1e0bed..03f0d99 100644
--- a/src/routes/zhen/cv/Comps/NamePlate.svelte
+++ b/src/routes/zhen/cv/Comps/NamePlate.svelte
@@ -1,21 +1,21 @@
-<div class="name-plate-container">
-    <span style="text-align: center;">
-        <b>
-            Zhentao Wei
-        </b><br/>
-        (He/Him)
-
-    </span>
-
-</div>
-
-<style>
-    .name-plate-container{
-        display: grid;
-        place-items: center;
-        width: 60%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="name-plate-container">
+    <span style="text-align: center;">
+        <b>
+            Zhentao Wei
+        </b><br/>
+        (He/Him)
+
+    </span>
+
+</div>
+
+<style>
+    .name-plate-container{
+        display: grid;
+        place-items: center;
+        width: 60%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/OtherContact.svelte b/src/routes/zhen/cv/Comps/OtherContact.svelte
index c98754e..eb21c4c 100644
--- a/src/routes/zhen/cv/Comps/OtherContact.svelte
+++ b/src/routes/zhen/cv/Comps/OtherContact.svelte
@@ -1,71 +1,71 @@
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Other
-        </b>
-    </div>
-    <div class="table-display">
-        <div class="table-item">
-            <div>Itch.io</div>
-            <a href="https://github.com/MagicBOTAlex">botalex.itch.io</a>
-        </div>
-        <div class="table-item">
-            <div>Github</div>
-            <a href="https://botalex.itch.io/">@MagicBOTAlex</a>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
-
-    .table-display {
-        width: 100%;
-    }
-
-    .table-item {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        border-bottom: 0.25mm solid #000000;
-
-        > a {
-            text-decoration: underline;
-        }
-
-        > div, > a {
-            color: #000000;
-            &:first-child {
-                width: 35%;
-                font-size: 4mm;
-
-                display: grid;
-                place-content: center start;
-
-                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
-            }
-
-            &:nth-child(2) {
-                width: 65%;
-
-                font-size: 3.25mm;
-                display: grid;
-                place-content: center;
-
-                padding-left: 1mm;
-            }
-        }
-    }
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Other
+        </b>
+    </div>
+    <div class="table-display">
+        <div class="table-item">
+            <div>Itch.io</div>
+            <a href="https://github.com/MagicBOTAlex">botalex.itch.io</a>
+        </div>
+        <div class="table-item">
+            <div>Github</div>
+            <a href="https://botalex.itch.io/">@MagicBOTAlex</a>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
+
+    .table-display {
+        width: 100%;
+    }
+
+    .table-item {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        border-bottom: 0.25mm solid #000000;
+
+        > a {
+            text-decoration: underline;
+        }
+
+        > div, > a {
+            color: #000000;
+            &:first-child {
+                width: 35%;
+                font-size: 4mm;
+
+                display: grid;
+                place-content: center start;
+
+                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
+            }
+
+            &:nth-child(2) {
+                width: 65%;
+
+                font-size: 3.25mm;
+                display: grid;
+                place-content: center;
+
+                padding-left: 1mm;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/Profile.svelte b/src/routes/zhen/cv/Comps/Profile.svelte
index 57e7291..d7f6577 100644
--- a/src/routes/zhen/cv/Comps/Profile.svelte
+++ b/src/routes/zhen/cv/Comps/Profile.svelte
@@ -1,31 +1,31 @@
-<div class="short-profile-container">
-    <div>
-        <b style="text-align:left;">
-            About me
-        </b>
-    </div>
-    <div>
-        As a 19-year-old with a deep passion for programming and
-        technology, I am highly dedicated to everything within this field.
-        Most of my knowledge is self-taught from many places on the
-        internet. I encourage you to browse my LinkedIn, since I
-        periodically post my hobby projects on there, and my skills are
-        described further in depth.
-    </div>
-
-</div>
-
-<style>
-    .short-profile-container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-    }
-
-    .short-profile-container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="short-profile-container">
+    <div>
+        <b style="text-align:left;">
+            About me
+        </b>
+    </div>
+    <div>
+        As a 19-year-old with a deep passion for programming and
+        technology, I am highly dedicated to everything within this field.
+        Most of my knowledge is self-taught from many places on the
+        internet. I encourage you to browse my LinkedIn, since I
+        periodically post my hobby projects on there, and my skills are
+        described further in depth.
+    </div>
+
+</div>
+
+<style>
+    .short-profile-container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+    }
+
+    .short-profile-container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/RepeatedSkills.svelte b/src/routes/zhen/cv/Comps/RepeatedSkills.svelte
index acc7e7e..2a56199 100644
--- a/src/routes/zhen/cv/Comps/RepeatedSkills.svelte
+++ b/src/routes/zhen/cv/Comps/RepeatedSkills.svelte
@@ -1,62 +1,62 @@
-<script lang="ts">
-    // Width of num chars and height nom of chars
-    export let targetTextWidth: number;
-    export let targetTextHeight: number;
-
-    export let applyRotation: boolean = true;
-
-    export let textOverride: string[] | undefined = undefined;
-
-    // Assign default value if textOverride is undefined
-    let repeatingText : string[] = textOverride ?? [
-        "C++",
-        "C#",
-        "ARDUINO",
-        "PYTHON",
-        "JAVA",
-        "JAVASCRIPT",
-        "TYPESCRIPT",
-        "HTML",
-        "CSS",
-    ];
-
-    function getRandomInt(max: number) {
-        return Math.floor(Math.random() * max);
-    }
-
-    function GrabRandomString() {
-        let outString: string = "";
-        while (outString.length < targetTextWidth) {
-            outString +=
-                repeatingText[
-                    getRandomInt(repeatingText.length)
-                ] + " ";
-        }
-
-        return outString; // At about target size
-    }
-</script>
-
-<div {...$$restProps}>
-    {#each { length: targetTextHeight } as _, i}
-        <span class="{applyRotation ? "rotate45" : ""} SkillsText">
-            {GrabRandomString()}
-        </span>
-    {/each}
-</div>
-
-<style>
-    .SkillsText {
-        text-align: start;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        white-space: nowrap;
-
-        width: 2rem;
-    }
-
-    .rotate45 {
-        transform: rotate(-45deg);
-    }
+<script lang="ts">
+    // Width of num chars and height nom of chars
+    export let targetTextWidth: number;
+    export let targetTextHeight: number;
+
+    export let applyRotation: boolean = true;
+
+    export let textOverride: string[] | undefined = undefined;
+
+    // Assign default value if textOverride is undefined
+    let repeatingText : string[] = textOverride ?? [
+        "C++",
+        "C#",
+        "ARDUINO",
+        "PYTHON",
+        "JAVA",
+        "JAVASCRIPT",
+        "TYPESCRIPT",
+        "HTML",
+        "CSS",
+    ];
+
+    function getRandomInt(max: number) {
+        return Math.floor(Math.random() * max);
+    }
+
+    function GrabRandomString() {
+        let outString: string = "";
+        while (outString.length < targetTextWidth) {
+            outString +=
+                repeatingText[
+                    getRandomInt(repeatingText.length)
+                ] + " ";
+        }
+
+        return outString; // At about target size
+    }
+</script>
+
+<div {...$$restProps}>
+    {#each { length: targetTextHeight } as _, i}
+        <span class="{applyRotation ? "rotate45" : ""} SkillsText">
+            {GrabRandomString()}
+        </span>
+    {/each}
+</div>
+
+<style>
+    .SkillsText {
+        text-align: start;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        white-space: nowrap;
+
+        width: 2rem;
+    }
+
+    .rotate45 {
+        transform: rotate(-45deg);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/Comps/ShortProfile.svelte b/src/routes/zhen/cv/Comps/ShortProfile.svelte
index 89d3d84..94c484a 100644
--- a/src/routes/zhen/cv/Comps/ShortProfile.svelte
+++ b/src/routes/zhen/cv/Comps/ShortProfile.svelte
@@ -1,29 +1,29 @@
-<div class="short-profile-container">
-    <div>
-        <b style="text-align:left;">
-            Short profile
-        </b>
-    </div>
-    <div>
-        Student at NEXT-Copenhagen
-        Mediagymnasium and
-        volunteer at Kildevæld
-        Makerspace.
-    </div>
-
-</div>
-
-<style>
-    .short-profile-container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .short-profile-container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="short-profile-container">
+    <div>
+        <b style="text-align:left;">
+            Short profile
+        </b>
+    </div>
+    <div>
+        Student at NEXT-Copenhagen
+        Mediagymnasium and
+        volunteer at Kildevæld
+        Makerspace.
+    </div>
+
+</div>
+
+<style>
+    .short-profile-container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .short-profile-container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/AlexWatermark.svelte b/src/routes/zhen/cv/CompsRev2/AlexWatermark.svelte
index 1f040f3..f86a3bf 100644
--- a/src/routes/zhen/cv/CompsRev2/AlexWatermark.svelte
+++ b/src/routes/zhen/cv/CompsRev2/AlexWatermark.svelte
@@ -1,23 +1,23 @@
-<script>
-export let Style = "";
-</script>
-
-<div class="container" style="{Style}">
-    ALEX
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        display: grid;
-        justify-self: end;
-        vertical-align: bottom;
-        align-self: flex-end;
-        
-        // font settings
-        font-size: 80mm;
-        color: #e4e4e4;
-
-        transform: translate(32%, -32%) rotate(-90deg);
-    }
-</style>
+<script>
+export let Style = "";
+</script>
+
+<div class="container" style="{Style}">
+    ALEX
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        display: grid;
+        justify-self: end;
+        vertical-align: bottom;
+        align-self: flex-end;
+        
+        // font settings
+        font-size: 80mm;
+        color: #e4e4e4;
+
+        transform: translate(32%, -32%) rotate(-90deg);
+    }
+</style>
diff --git a/src/routes/zhen/cv/CompsRev2/BiggestFlex.svelte b/src/routes/zhen/cv/CompsRev2/BiggestFlex.svelte
index 4c1a4dc..3ffe1bc 100644
--- a/src/routes/zhen/cv/CompsRev2/BiggestFlex.svelte
+++ b/src/routes/zhen/cv/CompsRev2/BiggestFlex.svelte
@@ -1,27 +1,27 @@
-<div class="short-profile-container">
-    <div>
-        <b style="text-align:left;">
-            Biggest flex
-        </b>
-    </div>
-    <div>
-        Me and my small group of devs has won each and every gamejam, which we have participated in. <br/>
-        <h1 style="font-size: 0.75rem; color: grey;">*Gamejams that had competitions.</h1>
-    </div>
-
-</div>
-
-<style>
-    .short-profile-container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-    }
-
-    .short-profile-container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="short-profile-container">
+    <div>
+        <b style="text-align:left;">
+            Biggest flex
+        </b>
+    </div>
+    <div>
+        Me and my small group of devs has won each and every gamejam, which we have participated in. <br/>
+        <h1 style="font-size: 0.75rem; color: grey;">*Gamejams that had competitions.</h1>
+    </div>
+
+</div>
+
+<style>
+    .short-profile-container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+    }
+
+    .short-profile-container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/BottomRightDecor.svelte b/src/routes/zhen/cv/CompsRev2/BottomRightDecor.svelte
index d9c9c77..8d6936d 100644
--- a/src/routes/zhen/cv/CompsRev2/BottomRightDecor.svelte
+++ b/src/routes/zhen/cv/CompsRev2/BottomRightDecor.svelte
@@ -1,51 +1,50 @@
-<script>
-    export let Style = "";
-</script>
-
-<div class="container" style="{Style}">
-    <div/>
-    <div>
-        <div>
-            Thank you! ❤
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        transform: translate(40.2mm, 5mm) rotate(-45deg);
-        display: grid;
-        justify-self: end;
-        vertical-align: bottom;
-        align-self: flex-end;
-
-        z-index: 0;
-
-        > div:nth-child(1) {
-            padding-top: 5mm;
-            //border-bottom: #4472c4 dashed 2mm;
-
-            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
-            background-position: top;
-            background-size: 6mm 1.5mm;
-            background-repeat: repeat-x;
-        }
-
-        > div:nth-child(2) {
-            background-color: #2f5496;
-            width: 100mm;
-            height: 25mm;
-
-            // Text
-            display: grid;
-            place-content: center;
-            align-content: flex-start;
-            > div {
-                padding-top: 3.5mm;
-                color: #4a7bcf;
-                font-weight: bold;
-            }
-        }
-    }
+<script>
+    export let Style = "";
+</script>
+
+<div class="container" style="{Style}">
+    <div>
+        <div>
+            Thank you! ❤
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        transform: translate(40.2mm, 5mm) rotate(-45deg);
+        display: grid;
+        justify-self: end;
+        vertical-align: bottom;
+        align-self: flex-end;
+
+        z-index: 0;
+
+        > div:nth-child(1) {
+            padding-top: 5mm;
+            //border-bottom: #4472c4 dashed 2mm;
+
+            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
+            background-position: top;
+            background-size: 6mm 1.5mm;
+            background-repeat: repeat-x;
+        }
+
+        > div:nth-child(2) {
+            background-color: #2f5496;
+            width: 100mm;
+            height: 25mm;
+
+            // Text
+            display: grid;
+            place-content: center;
+            align-content: flex-start;
+            > div {
+                padding-top: 3.5mm;
+                color: #4a7bcf;
+                font-weight: bold;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/CombinedContacts.svelte b/src/routes/zhen/cv/CompsRev2/CombinedContacts.svelte
index 5c1dba2..fb1d3ce 100644
--- a/src/routes/zhen/cv/CompsRev2/CombinedContacts.svelte
+++ b/src/routes/zhen/cv/CompsRev2/CombinedContacts.svelte
@@ -1,7 +1,7 @@
-<script>
-    import Contact from "./Contact.svelte";
-    import OtherContact from "./OtherContact.svelte";
-</script>
-
-<Contact/>
+<script>
+    import Contact from "./Contact.svelte";
+    import OtherContact from "./OtherContact.svelte";
+</script>
+
+<Contact/>
 <OtherContact/>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/Contact.svelte b/src/routes/zhen/cv/CompsRev2/Contact.svelte
index 81d34cf..af2ad95 100644
--- a/src/routes/zhen/cv/CompsRev2/Contact.svelte
+++ b/src/routes/zhen/cv/CompsRev2/Contact.svelte
@@ -1,76 +1,76 @@
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Contact
-        </b>
-    </div>
-    <div class="table-display">
-        <div class="table-item">
-            <div>Email</div>
-            <div>Zhen@deprived.dev</div>
-        </div>
-        <div class="table-item">
-            <div>Phone</div>
-            <div>+45 42535723</div>
-        </div>
-        <div class="table-item">
-            <div>LinkedIn</div>
-            <a href="https://www.linkedin.com/in/zhentao-wei-3a3a0a182/">Zhentao-Wei</a>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
-
-    .table-display {
-        width: 100%;
-    }
-
-    .table-item {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        border-bottom: 0.25mm solid #000000;
-
-        > a {
-            text-decoration: underline;
-        }
-
-        > div, > a {
-            color: #000000;
-
-            &:first-child {
-                width: 35%;
-                font-size: 4mm;
-
-                display: grid;
-                place-content: center start;
-
-                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
-            }
-
-            &:nth-child(2) {
-                width: 65%;
-
-                font-size: 3.25mm;
-                display: grid;
-                place-content: center;
-
-                padding-left: 1mm;
-            }
-        }
-    }
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Contact
+        </b>
+    </div>
+    <div class="table-display">
+        <div class="table-item">
+            <div>Email</div>
+            <div>Zhen@deprived.dev</div>
+        </div>
+        <div class="table-item">
+            <div>Phone</div>
+            <div>+45 42535723</div>
+        </div>
+        <div class="table-item">
+            <div>LinkedIn</div>
+            <a href="https://www.linkedin.com/in/zhentao-wei-3a3a0a182/">Zhentao-Wei</a>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
+
+    .table-display {
+        width: 100%;
+    }
+
+    .table-item {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        border-bottom: 0.25mm solid #000000;
+
+        > a {
+            text-decoration: underline;
+        }
+
+        > div, > a {
+            color: #000000;
+
+            &:first-child {
+                width: 35%;
+                font-size: 4mm;
+
+                display: grid;
+                place-content: center start;
+
+                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
+            }
+
+            &:nth-child(2) {
+                width: 65%;
+
+                font-size: 3.25mm;
+                display: grid;
+                place-content: center;
+
+                padding-left: 1mm;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/Education.svelte b/src/routes/zhen/cv/CompsRev2/Education.svelte
index 5ae2b18..114523f 100644
--- a/src/routes/zhen/cv/CompsRev2/Education.svelte
+++ b/src/routes/zhen/cv/CompsRev2/Education.svelte
@@ -1,63 +1,56 @@
-<script>
-    import placeholder from "$lib/zhen/cv-comps/400x400.png"
-    import DTU_Logo from "$lib/zhen/cv-comps/DTU_Logo.png"
-    import NextLogo from "$lib/zhen/cv-comps/nextKbhLogo.png"
-    import SasLogo from "$lib/zhen/cv-comps/SASLogo.png"
-    import EmphasysLogo from "$lib/zhen/cv-comps/EmphasysLogo.png"
-
-    import IconAndText2 from "./IconAndText2.svelte"
-</script>
-
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Education
-        </b>
-    </div>
-    <div class="imagesContainer flex justify-center p-2 gap-4" id="balls">
-        <IconAndText2 logo={DTU_Logo}>
-            <b>DTU</b><br/>
-            <p style="font-size: 0.6rem;">
-                Artificial intelligence
-            </p>
-        </IconAndText2>
-        <IconAndText2 logo={NextLogo}>
-            <b>Next</b><br/>
-            <p style="font-size: 0.6rem;">
-                Computer science
-            </p>
-        </IconAndText2>
-        <IconAndText2 logo={SasLogo}>
-            <b>Master class</b><br/>
-            <p style="font-size: 0.6rem;">
-                SAS Programming
-            </p>
-        </IconAndText2>
-        <IconAndText2 logo={EmphasysLogo}>
-            <b>Emphasys center</b><br/>
-            <p style="font-size: 0.6rem;">
-                VR development
-            </p>
-        </IconAndText2>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-
-        > div:first-child {
-            border-bottom: black 1mm solid;
-            width: 100%;
-        }
-    }
-
-    .imagesContainer {
-        > img {
-            border-radius: 5mm;
-            filter: drop-shadow(1mm 1mm 1mm #0000009d);
-        }
-    }
+<script>
+    import placeholder from "$lib/zhen/cv-comps/400x400.png"
+    import DTU_Logo from "$lib/zhen/cv-comps/DTU_Logo.png"
+    import NextLogo from "$lib/zhen/cv-comps/nextKbhLogo.png"
+    import SasLogo from "$lib/zhen/cv-comps/SASLogo.png"
+    import EmphasysLogo from "$lib/zhen/cv-comps/EmphasysLogo.png"
+
+    import IconAndText2 from "./IconAndText2.svelte"
+</script>
+
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Education
+        </b>
+    </div>
+    <div class="imagesContainer flex justify-center p-2 gap-4" id="balls">
+        <IconAndText2 logo={DTU_Logo}>
+            <b>DTU</b><br/>
+            <p style="font-size: 0.6rem;">
+                Artificial intelligence
+            </p>
+        </IconAndText2>
+        <IconAndText2 logo={NextLogo}>
+            <b>Next</b><br/>
+            <p style="font-size: 0.6rem;">
+                Computer science
+            </p>
+        </IconAndText2>
+        <IconAndText2 logo={SasLogo}>
+            <b>Master class</b><br/>
+            <p style="font-size: 0.6rem;">
+                SAS Programming
+            </p>
+        </IconAndText2>
+        <IconAndText2 logo={EmphasysLogo}>
+            <b>Emphasys center</b><br/>
+            <p style="font-size: 0.6rem;">
+                VR development
+            </p>
+        </IconAndText2>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+
+        > div:first-child {
+            border-bottom: black 1mm solid;
+            width: 100%;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/Experience.svelte b/src/routes/zhen/cv/CompsRev2/Experience.svelte
index 616eeb3..3db2c6d 100644
--- a/src/routes/zhen/cv/CompsRev2/Experience.svelte
+++ b/src/routes/zhen/cv/CompsRev2/Experience.svelte
@@ -1,72 +1,72 @@
-<script>
-    import placeholder from "$lib/zhen/cv-comps/400x400.png"
-    import MakerspaceLogo from "$lib/zhen/cv-comps/MakerspaceLogo.png"
-    import EposLogo from "$lib/zhen/cv-comps/EposLogo.png"
-    import KhoraLogo from "$lib/zhen/cv-comps/KhoraLogo.jpg"
-    import GrazperAILogo from "$lib/zhen/cv-comps/GrazperLogo.jpg"
-
-    import IconAndText from "./IconAndText.svelte"
-</script>
-
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Experience
-        </b>
-    </div>
-    <div class="table">
-        <div class="table-item">
-            <IconAndText logo={GrazperAILogo}>
-                <b>Data annotator</b><br>
-                GrazperAI<br>
-                <i>Jul 2024 - Now</i>
-            </IconAndText>
-        </div>
-        <div class="table-item">
-            <IconAndText logo={MakerspaceLogo}>
-                <b>3D printer manager</b> - Volunteer<br>
-                Makerspace - kildevæld Kulturcenter<br>
-                <i>Nov 2023 - Now</i>
-            </IconAndText>
-        </div>
-        <div class="table-item">
-            <IconAndText logo={EposLogo}>
-                <b>Machine Learning Engineer</b> - Short term intern<br>
-                Product design department - Epos<br>
-                <i>Apr 2024 - Apr 2024</i>
-            </IconAndText>
-        </div>
-        <div class="table-item">
-            <IconAndText logo={KhoraLogo}>
-                <b>Assistant</b> - Short term intern<br>
-                    Khora Virtual Reality<br>
-                    <i>Oct 2020 - Oct 2020</i>
-            </IconAndText>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-
-        overflow: hidden;
-
-        & > div:first-child {
-            width: 100%;
-
-            /* Bottom border stripe*/
-            border-bottom: 1mm solid black;
-        }
-    }
-
-    .table-item {
-        padding: 2mm;
-        
-        &:not(:last-child) {
-            border-bottom: 0.25mm solid #000000;
-        }
-    }
+<script>
+    import placeholder from "$lib/zhen/cv-comps/400x400.png"
+    import MakerspaceLogo from "$lib/zhen/cv-comps/MakerspaceLogo.png"
+    import EposLogo from "$lib/zhen/cv-comps/EposLogo.png"
+    import KhoraLogo from "$lib/zhen/cv-comps/KhoraLogo.jpg"
+    import GrazperAILogo from "$lib/zhen/cv-comps/GrazperLogo.jpg"
+
+    import IconAndText from "./IconAndText.svelte"
+</script>
+
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Experience
+        </b>
+    </div>
+    <div class="table">
+        <div class="table-item">
+            <IconAndText logo={GrazperAILogo}>
+                <b>Data annotator</b><br>
+                GrazperAI<br>
+                <i>Jul 2024 - Now</i>
+            </IconAndText>
+        </div>
+        <div class="table-item">
+            <IconAndText logo={MakerspaceLogo}>
+                <b>3D printer manager</b> - Volunteer<br>
+                Makerspace - kildevæld Kulturcenter<br>
+                <i>Nov 2023 - Now</i>
+            </IconAndText>
+        </div>
+        <div class="table-item">
+            <IconAndText logo={EposLogo}>
+                <b>Machine Learning Engineer</b> - Short term intern<br>
+                Product design department - Epos<br>
+                <i>Apr 2024 - Apr 2024</i>
+            </IconAndText>
+        </div>
+        <div class="table-item">
+            <IconAndText logo={KhoraLogo}>
+                <b>Assistant</b> - Short term intern<br>
+                    Khora Virtual Reality<br>
+                    <i>Oct 2020 - Oct 2020</i>
+            </IconAndText>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+
+        overflow: hidden;
+
+        & > div:first-child {
+            width: 100%;
+
+            /* Bottom border stripe*/
+            border-bottom: 1mm solid black;
+        }
+    }
+
+    .table-item {
+        padding: 2mm;
+        
+        &:not(:last-child) {
+            border-bottom: 0.25mm solid #000000;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/IconAndText.svelte b/src/routes/zhen/cv/CompsRev2/IconAndText.svelte
index e90ece4..a879037 100644
--- a/src/routes/zhen/cv/CompsRev2/IconAndText.svelte
+++ b/src/routes/zhen/cv/CompsRev2/IconAndText.svelte
@@ -1,43 +1,43 @@
-<script lang="ts">
-    export let logo:string;
-    export let logoWidths: string = "10%";
-    
-    export let fontSize: string = "3mm";
-    export let lineHeight: string = "3.1mm";
-
-    import { onMount } from "svelte";
-    onMount(() => {
-        imageCaption = logo.split(/(\\|\/)/g).pop();
-    });
-
-    let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
-</script>
-
-<div class="container">
-    <img src={logo} class="" alt="{imageCaption}" width="{logoWidths}"/>
-    <div style="line-height: {lineHeight};">
-        <span style="font-size: {fontSize};">
-            <slot/>
-        </span>
-    </div>
-</div>
-
-<style lang="scss">
-    .container {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-
-        & > div {
-            padding-left: 3mm;
-
-            text-align: start;
-        }
-
-        & > img {
-            border-radius: 2.5mm;
-            filter: drop-shadow(1mm 1mm 1mm #0000009d);
-        }
-    }
+<script lang="ts">
+    export let logo:string;
+    export let logoWidths: string = "10%";
+    
+    export let fontSize: string = "3mm";
+    export let lineHeight: string = "3.1mm";
+
+    import { onMount } from "svelte";
+    onMount(() => {
+        imageCaption = logo.split(/(\\|\/)/g).pop();
+    });
+
+    let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
+</script>
+
+<div class="container">
+    <img src={logo} class="" alt="{imageCaption}" width="{logoWidths}"/>
+    <div style="line-height: {lineHeight};">
+        <span style="font-size: {fontSize};">
+            <slot/>
+        </span>
+    </div>
+</div>
+
+<style lang="scss">
+    .container {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+
+        & > div {
+            padding-left: 3mm;
+
+            text-align: start;
+        }
+
+        & > img {
+            border-radius: 2.5mm;
+            filter: drop-shadow(1mm 1mm 1mm #0000009d);
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/IconAndText2.svelte b/src/routes/zhen/cv/CompsRev2/IconAndText2.svelte
index 5c6fad3..a9ed0c5 100644
--- a/src/routes/zhen/cv/CompsRev2/IconAndText2.svelte
+++ b/src/routes/zhen/cv/CompsRev2/IconAndText2.svelte
@@ -1,44 +1,44 @@
-<script lang="ts">
-    export let logo:string;
-    export let logoWidths: string = "35%";
-    
-    export let fontSize: string = "3mm";
-    export let lineHeight: string = "3.1mm";
-
-    import { onMount } from "svelte";
-    onMount(() => {
-        imageCaption = logo.split(/(\\|\/)/g).pop();
-    });
-
-    let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
-</script>
-
-<div class="container">
-    <img src={logo} alt="{imageCaption}" width="{logoWidths}"/>
-    <div style="line-height: {lineHeight};">
-        <span style="font-size: {fontSize};">
-            <slot/>
-        </span>
-    </div>
-</div>
-
-<style lang="scss">
-    .container {
-        width: 100%;
-
-        & > div {
-            margin-top: 2mm;
-            padding-left: 2mm;
-            padding-bottom: 1mm;
-
-            text-align: start;
-
-            border-left: 0.5mm solid black;
-        }
-
-        & > img {
-            border-radius: 2.5mm;
-            filter: drop-shadow(1mm 1mm 1mm #0000009d);
-        }
-    }
+<script lang="ts">
+    export let logo:string;
+    export let logoWidths: string = "35%";
+    
+    export let fontSize: string = "3mm";
+    export let lineHeight: string = "3.1mm";
+
+    import { onMount } from "svelte";
+    onMount(() => {
+        imageCaption = logo.split(/(\\|\/)/g).pop();
+    });
+
+    let imageCaption: undefined | string; // Not a high piority, you get the file name and thats it
+</script>
+
+<div class="container">
+    <img src={logo} alt="{imageCaption}" width="{logoWidths}"/>
+    <div style="line-height: {lineHeight};">
+        <span style="font-size: {fontSize};">
+            <slot/>
+        </span>
+    </div>
+</div>
+
+<style lang="scss">
+    .container {
+        width: 100%;
+
+        & > div {
+            margin-top: 2mm;
+            padding-left: 2mm;
+            padding-bottom: 1mm;
+
+            text-align: start;
+
+            border-left: 0.5mm solid black;
+        }
+
+        & > img {
+            border-radius: 2.5mm;
+            filter: drop-shadow(1mm 1mm 1mm #0000009d);
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/LeftTopDecor.svelte b/src/routes/zhen/cv/CompsRev2/LeftTopDecor.svelte
index e832f4e..6ba1820 100644
--- a/src/routes/zhen/cv/CompsRev2/LeftTopDecor.svelte
+++ b/src/routes/zhen/cv/CompsRev2/LeftTopDecor.svelte
@@ -1,53 +1,53 @@
-<script>
-    import RepeatedSkills from "./RepeatedSkills.svelte";
-
-    export let Style = "";
-</script>
-
-<div class="container" style="{Style}">
-    <div>
-        <RepeatedSkills textOverride={["Hello", "你好", "Hej"]} targetTextHeight={4} targetTextWidth={50} applyRotation={false}/>
-    </div>
-    <div/>
-</div>
-
-<style lang="scss">
-    .container {
-        position: absolute;
-        transform: translate(-25mm, 0mm) rotate(-45deg);
-        display: grid;
-        justify-self: start;
-        vertical-align: top;
-        align-self: flex-start;
-
-        z-index: 0;
-
-        > div:nth-child(1) {
-            //background-color: #2f559622;
-            width: 100mm;
-            height: 17.5mm;
-            padding-bottom: 1mm;
-
-            // Text inside
-            display: grid;
-            place-content: center;
-            border-bottom: #4472c4 dotted 0.5mm;
-
-            &:first-child {
-                color: #4472c4;                
-                font-size: 3mm;
-                //font-weight: bold;
-            }
-        }
-        
-        > div:nth-child(2) {
-            padding-top: 4mm;
-            //border-bottom: #4472c4 dashed 2mm;
-
-            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
-            background-position: bottom;
-            background-size: 6mm 1.5mm;
-            background-repeat: repeat-x;
-        }
-    }
+<script>
+    import RepeatedSkills from "./RepeatedSkills.svelte";
+
+    export let Style = "";
+</script>
+
+<div class="container" style="{Style}">
+    <div>
+        <RepeatedSkills textOverride={["Hello", "你好", "Hej"]} targetTextHeight={4} targetTextWidth={50} applyRotation={false}/>
+    </div>
+    <div/>
+</div>
+
+<style lang="scss">
+    .container {
+        position: absolute;
+        transform: translate(-25mm, 0mm) rotate(-45deg);
+        display: grid;
+        justify-self: start;
+        vertical-align: top;
+        align-self: flex-start;
+
+        z-index: 0;
+
+        > div:nth-child(1) {
+            //background-color: #2f559622;
+            width: 100mm;
+            height: 17.5mm;
+            padding-bottom: 1mm;
+
+            // Text inside
+            display: grid;
+            place-content: center;
+            border-bottom: #4472c4 dotted 0.5mm;
+
+            &:first-child {
+                color: #4472c4;                
+                font-size: 3mm;
+                //font-weight: bold;
+            }
+        }
+        
+        > div:nth-child(2) {
+            padding-top: 4mm;
+            //border-bottom: #4472c4 dashed 2mm;
+
+            background-image: linear-gradient(to right, #4472c4 70%, rgba(255,255,255,0) 0%);
+            background-position: bottom;
+            background-size: 6mm 1.5mm;
+            background-repeat: repeat-x;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/LinkToSource.svelte b/src/routes/zhen/cv/CompsRev2/LinkToSource.svelte
index c75b6e6..5895952 100644
--- a/src/routes/zhen/cv/CompsRev2/LinkToSource.svelte
+++ b/src/routes/zhen/cv/CompsRev2/LinkToSource.svelte
@@ -5,12 +5,10 @@
 <div class="container">
     <div>
         This CV was made using html, css and <a class="grid place-content-center" href="https://kit.svelte.dev/"><img src={svelteLogo} alt="SvelteKit logo"/></a>
-    </div>
-    <div>
         Sources:
         <a href="https://gitea.deprived.dev/Sveskejuice/deprived-main-website/src/branch/dev/src/routes/zhen/cv/rev2/+page.svelte">CV source code</a>
         and
-        <a href="https://dev.deprived.dev/zhen/cv/rev1?hideOnPrint=1">My Website</a>
+        <a href="/zhen/cv/rev2?hideOnPrint=1">My Website</a>
     </div>
 </div>
 
@@ -19,6 +17,8 @@
         z-index: 1;
         padding-left: 2mm;
 
+        font-size: 0.75rem;
+
         //white-space: nowrap;
 
         color: #777777;
diff --git a/src/routes/zhen/cv/CompsRev2/LinkedInQR.svelte b/src/routes/zhen/cv/CompsRev2/LinkedInQR.svelte
index b5d736f..e6eef31 100644
--- a/src/routes/zhen/cv/CompsRev2/LinkedInQR.svelte
+++ b/src/routes/zhen/cv/CompsRev2/LinkedInQR.svelte
@@ -1,24 +1,24 @@
-<script>
-    import QRCode from "$lib/zhen/cv-comps/LinkedInQrCode.svg?raw"
-</script>
-
-<div class="container">
-    <div>LinkedIn</div>
-    <span class="qrcode">{@html QRCode}</span>
-</div>
-
-<style lang="scss">
-
-    .qrcode {
-        transform: scale(0.9);
-    }
-
-    .container {
-        display: grid;
-        place-items: center;
-
-        & * {
-            font-size: 7.5mm;
-        }
-    }
+<script>
+    import QRCode from "$lib/zhen/cv-comps/LinkedInQrCode.svg?raw"
+</script>
+
+<div class="container">
+    <div>LinkedIn</div>
+    <span class="qrcode">{@html QRCode}</span>
+</div>
+
+<style lang="scss">
+
+    .qrcode {
+        transform: scale(0.9);
+    }
+
+    .container {
+        display: grid;
+        place-items: center;
+
+        & * {
+            font-size: 7.5mm;
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/NameAndImage.svelte b/src/routes/zhen/cv/CompsRev2/NameAndImage.svelte
index 621830d..99342cb 100644
--- a/src/routes/zhen/cv/CompsRev2/NameAndImage.svelte
+++ b/src/routes/zhen/cv/CompsRev2/NameAndImage.svelte
@@ -1,26 +1,26 @@
-<script lang="ts">
-    import NamePlate from "./NamePlate.svelte";
-    import selfie from "$lib/zhen/cv-comps/MoreProfesionalMe.jpg"
-    import zylveterSus from "$lib/zhen/cv-comps/zylveterSus.png"
-</script>
-
-<div class="nameAndImageContainer">
-    <NamePlate/>
-    <img src={selfie} class="selfie-constraints"  alt="Zhentao Wei"/>
-</div>
-
-<style>
-    .nameAndImageContainer {
-        display: grid;
-        place-items: center;
-    }
-
-    .selfie-constraints{
-        padding-top: 2.5mm;
-        
-        max-width: 65%;
-        border-radius: 5mm;
-
-        filter: drop-shadow(0.75mm 0.75mm 0.75mm #0000009d);
-    }
+<script lang="ts">
+    import NamePlate from "./NamePlate.svelte";
+    import selfie from "$lib/zhen/cv-comps/MoreProfesionalMe.jpg"
+    import zylveterSus from "$lib/zhen/cv-comps/zylveterSus.png"
+</script>
+
+<div class="nameAndImageContainer">
+    <NamePlate/>
+    <img src={selfie} class="selfie-constraints"  alt="Zhentao Wei"/>
+</div>
+
+<style>
+    .nameAndImageContainer {
+        display: grid;
+        place-items: center;
+    }
+
+    .selfie-constraints{
+        padding-top: 2.5mm;
+        
+        max-width: 65%;
+        border-radius: 5mm;
+
+        filter: drop-shadow(0.75mm 0.75mm 0.75mm #0000009d);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/NamePlate.svelte b/src/routes/zhen/cv/CompsRev2/NamePlate.svelte
index c1e0bed..03f0d99 100644
--- a/src/routes/zhen/cv/CompsRev2/NamePlate.svelte
+++ b/src/routes/zhen/cv/CompsRev2/NamePlate.svelte
@@ -1,21 +1,21 @@
-<div class="name-plate-container">
-    <span style="text-align: center;">
-        <b>
-            Zhentao Wei
-        </b><br/>
-        (He/Him)
-
-    </span>
-
-</div>
-
-<style>
-    .name-plate-container{
-        display: grid;
-        place-items: center;
-        width: 60%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="name-plate-container">
+    <span style="text-align: center;">
+        <b>
+            Zhentao Wei
+        </b><br/>
+        (He/Him)
+
+    </span>
+
+</div>
+
+<style>
+    .name-plate-container{
+        display: grid;
+        place-items: center;
+        width: 60%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/OtherContact.svelte b/src/routes/zhen/cv/CompsRev2/OtherContact.svelte
index c98754e..eb21c4c 100644
--- a/src/routes/zhen/cv/CompsRev2/OtherContact.svelte
+++ b/src/routes/zhen/cv/CompsRev2/OtherContact.svelte
@@ -1,71 +1,71 @@
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            Other
-        </b>
-    </div>
-    <div class="table-display">
-        <div class="table-item">
-            <div>Itch.io</div>
-            <a href="https://github.com/MagicBOTAlex">botalex.itch.io</a>
-        </div>
-        <div class="table-item">
-            <div>Github</div>
-            <a href="https://botalex.itch.io/">@MagicBOTAlex</a>
-        </div>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
-
-    .table-display {
-        width: 100%;
-    }
-
-    .table-item {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        border-bottom: 0.25mm solid #000000;
-
-        > a {
-            text-decoration: underline;
-        }
-
-        > div, > a {
-            color: #000000;
-            &:first-child {
-                width: 35%;
-                font-size: 4mm;
-
-                display: grid;
-                place-content: center start;
-
-                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
-            }
-
-            &:nth-child(2) {
-                width: 65%;
-
-                font-size: 3.25mm;
-                display: grid;
-                place-content: center;
-
-                padding-left: 1mm;
-            }
-        }
-    }
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            Other
+        </b>
+    </div>
+    <div class="table-display">
+        <div class="table-item">
+            <div>Itch.io</div>
+            <a href="https://github.com/MagicBOTAlex">botalex.itch.io</a>
+        </div>
+        <div class="table-item">
+            <div>Github</div>
+            <a href="https://botalex.itch.io/">@MagicBOTAlex</a>
+        </div>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
+
+    .table-display {
+        width: 100%;
+    }
+
+    .table-item {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        border-bottom: 0.25mm solid #000000;
+
+        > a {
+            text-decoration: underline;
+        }
+
+        > div, > a {
+            color: #000000;
+            &:first-child {
+                width: 35%;
+                font-size: 4mm;
+
+                display: grid;
+                place-content: center start;
+
+                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
+            }
+
+            &:nth-child(2) {
+                width: 65%;
+
+                font-size: 3.25mm;
+                display: grid;
+                place-content: center;
+
+                padding-left: 1mm;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/Profile.svelte b/src/routes/zhen/cv/CompsRev2/Profile.svelte
index 388b4cd..8e11064 100644
--- a/src/routes/zhen/cv/CompsRev2/Profile.svelte
+++ b/src/routes/zhen/cv/CompsRev2/Profile.svelte
@@ -1,31 +1,31 @@
-<div class="short-profile-container">
-    <div>
-        <b style="text-align:left;">
-            About me
-        </b>
-    </div>
-    <div>
-        I'm a 20-year-old with a deep passion for programming and
-        technology.
-        Most of my knowledge is self-taught from many places on the
-        internet, so university hasn't helped much. I encourage you to browse my LinkedIn, since I
-        periodically post my hobby projects on there, and my skills are
-        described further in depth.
-    </div>
-
-</div>
-
-<style>
-    .short-profile-container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-    }
-
-    .short-profile-container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="short-profile-container">
+    <div>
+        <b style="text-align:left;">
+            About me
+        </b>
+    </div>
+    <div>
+        I'm a 20-year-old with a deep passion for programming and
+        technology.
+        Most of my knowledge is self-taught from many places on the
+        internet, so university hasn't helped much. I encourage you to browse my LinkedIn, since I
+        periodically post my hobby projects on there, and my skills are
+        described further in depth.
+    </div>
+
+</div>
+
+<style>
+    .short-profile-container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+    }
+
+    .short-profile-container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/RepeatedSkills.svelte b/src/routes/zhen/cv/CompsRev2/RepeatedSkills.svelte
index acc7e7e..2a56199 100644
--- a/src/routes/zhen/cv/CompsRev2/RepeatedSkills.svelte
+++ b/src/routes/zhen/cv/CompsRev2/RepeatedSkills.svelte
@@ -1,62 +1,62 @@
-<script lang="ts">
-    // Width of num chars and height nom of chars
-    export let targetTextWidth: number;
-    export let targetTextHeight: number;
-
-    export let applyRotation: boolean = true;
-
-    export let textOverride: string[] | undefined = undefined;
-
-    // Assign default value if textOverride is undefined
-    let repeatingText : string[] = textOverride ?? [
-        "C++",
-        "C#",
-        "ARDUINO",
-        "PYTHON",
-        "JAVA",
-        "JAVASCRIPT",
-        "TYPESCRIPT",
-        "HTML",
-        "CSS",
-    ];
-
-    function getRandomInt(max: number) {
-        return Math.floor(Math.random() * max);
-    }
-
-    function GrabRandomString() {
-        let outString: string = "";
-        while (outString.length < targetTextWidth) {
-            outString +=
-                repeatingText[
-                    getRandomInt(repeatingText.length)
-                ] + " ";
-        }
-
-        return outString; // At about target size
-    }
-</script>
-
-<div {...$$restProps}>
-    {#each { length: targetTextHeight } as _, i}
-        <span class="{applyRotation ? "rotate45" : ""} SkillsText">
-            {GrabRandomString()}
-        </span>
-    {/each}
-</div>
-
-<style>
-    .SkillsText {
-        text-align: start;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        white-space: nowrap;
-
-        width: 2rem;
-    }
-
-    .rotate45 {
-        transform: rotate(-45deg);
-    }
+<script lang="ts">
+    // Width of num chars and height nom of chars
+    export let targetTextWidth: number;
+    export let targetTextHeight: number;
+
+    export let applyRotation: boolean = true;
+
+    export let textOverride: string[] | undefined = undefined;
+
+    // Assign default value if textOverride is undefined
+    let repeatingText : string[] = textOverride ?? [
+        "C++",
+        "C#",
+        "ARDUINO",
+        "PYTHON",
+        "JAVA",
+        "JAVASCRIPT",
+        "TYPESCRIPT",
+        "HTML",
+        "CSS",
+    ];
+
+    function getRandomInt(max: number) {
+        return Math.floor(Math.random() * max);
+    }
+
+    function GrabRandomString() {
+        let outString: string = "";
+        while (outString.length < targetTextWidth) {
+            outString +=
+                repeatingText[
+                    getRandomInt(repeatingText.length)
+                ] + " ";
+        }
+
+        return outString; // At about target size
+    }
+</script>
+
+<div {...$$restProps}>
+    {#each { length: targetTextHeight } as _, i}
+        <span class="{applyRotation ? "rotate45" : ""} SkillsText">
+            {GrabRandomString()}
+        </span>
+    {/each}
+</div>
+
+<style>
+    .SkillsText {
+        text-align: start;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        white-space: nowrap;
+
+        width: 2rem;
+    }
+
+    .rotate45 {
+        transform: rotate(-45deg);
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/ShortProfile.svelte b/src/routes/zhen/cv/CompsRev2/ShortProfile.svelte
index ec42719..3f17bb9 100644
--- a/src/routes/zhen/cv/CompsRev2/ShortProfile.svelte
+++ b/src/routes/zhen/cv/CompsRev2/ShortProfile.svelte
@@ -1,28 +1,28 @@
-<div class="short-profile-container">
-    <div>
-        <b style="text-align:left;">
-            Short profile
-        </b>
-    </div>
-    <div>
-        ◾ "Artificial intelligence and data" student at DTU.
-        ◾ Working at <a class="underline" href="https://grazper.com/">GrazperAI</a> <br/>
-        ◾ Volunteer at Kildevæld Makerspace.
-    </div>
-
-</div>
-
-<style>
-    .short-profile-container{
-        display: grid;
-        place-items: center;
-        width: 70%;
-    }
-
-    .short-profile-container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
+<div class="short-profile-container">
+    <div>
+        <b style="text-align:left;">
+            Short profile
+        </b>
+    </div>
+    <div>
+        ◾ "AI and data" at DTU. <br>
+        ◾ Working at <a class="underline" href="https://grazper.com/">GrazperAI</a> <br/>
+        ◾ Volunteer at Kildevæld Makerspace.
+    </div>
+
+</div>
+
+<style>
+    .short-profile-container{
+        display: grid;
+        place-items: center;
+        width: 70%;
+    }
+
+    .short-profile-container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/CompsRev2/TableOfProjects.svelte b/src/routes/zhen/cv/CompsRev2/TableOfProjects.svelte
index 19e7407..df3c27d 100644
--- a/src/routes/zhen/cv/CompsRev2/TableOfProjects.svelte
+++ b/src/routes/zhen/cv/CompsRev2/TableOfProjects.svelte
@@ -1,88 +1,88 @@
-<div class="container">
-    <div>
-        <b style="text-align:left;">
-            List of big projects
-        </b>
-    </div>
-    <div class="table-display">
-        <div class="table-item">
-            <div>Computer vision</div>
-            <div>Implimented YoloV1 from scratch. (object detection)</div>
-        </div>
-        <div class="table-item">
-            <div>Arduino</div>
-            <div>Built my own claw machine with 2 dimentions of movement</div>
-        </div>
-        <div class="table-item">
-            <div>App dev</div>
-            <div>Made an Doulingo'ish app for learning chinese in 9 days</div>
-        </div>
-        <div class="table-item">
-            <div>Open-source help</div>
-            <div>Have contributed in multiple Open-source project on github</div>
-        </div>
-        <div class="table-item">
-            <div>PCB designing</div>
-            <div>I am currently designing my own circuit board</div>
-        </div>
-    </div>
-    <div class="flex" style="font-size: 0.75rem; color: sgray; align-content: start; width: 100%;">
-        <p>
-            If you want proof or want to know about other projects. Contact me!
-        </p>
-    </div>
-</div>
-
-<style lang="scss">
-    .container{
-        display: grid;
-        place-items: center;
-        width: 90%;
-    }
-
-    .container > div:first-child {
-        width: 100%;
-
-        /* Bottom border stripe*/
-        border-bottom: 1mm solid black;
-    }
-
-    .table-display {
-        width: 100%;
-    }
-
-    .table-item {
-        display: flex;
-        justify-items: start;
-
-        width: 100%;
-        border-bottom: 0.25mm solid #000000;
-
-        > a {
-            text-decoration: underline;
-        }
-
-        > div, > a {
-            color: #000000;
-
-            &:first-child {
-                width: 30%;
-                font-size: 4mm;
-
-                display: grid;
-                place-content: center start;
-
-                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
-            }
-
-            &:nth-child(2) {
-                width: 70%;
-
-                font-size: 3.25mm;
-                display: grid;
-
-                padding-left: 1mm;
-            }
-        }
-    }
+<div class="container">
+    <div>
+        <b style="text-align:left;">
+            List of big projects
+        </b>
+    </div>
+    <div class="table-display">
+        <div class="table-item">
+            <div>Computer vision</div>
+            <div>Implimented YoloV1 from scratch. (object detection)</div>
+        </div>
+        <div class="table-item">
+            <div>Arduino</div>
+            <div>Built my own claw machine with 2 dimentions of movement</div>
+        </div>
+        <div class="table-item">
+            <div>App dev</div>
+            <div>Made an Doulingo'ish app for learning chinese in 9 days</div>
+        </div>
+        <div class="table-item">
+            <div>Open-source help</div>
+            <div>Contributed in multiple Open-source projects on github</div>
+        </div>
+        <div class="table-item">
+            <div>PCB designing</div>
+            <div>I am currently designing my own circuit board</div>
+        </div>
+    </div>
+    <div class="flex" style="font-size: 0.75rem; color: sgray; align-content: start; width: 100%;">
+        <p>
+            If you want proof or want to know about other projects. Contact me!
+        </p>
+    </div>
+</div>
+
+<style lang="scss">
+    .container{
+        display: grid;
+        place-items: center;
+        width: 90%;
+    }
+
+    .container > div:first-child {
+        width: 100%;
+
+        /* Bottom border stripe*/
+        border-bottom: 1mm solid black;
+    }
+
+    .table-display {
+        width: 100%;
+    }
+
+    .table-item {
+        display: flex;
+        justify-items: start;
+
+        width: 100%;
+        border-bottom: 0.25mm solid #000000;
+
+        > a {
+            text-decoration: underline;
+        }
+
+        > div, > a {
+            color: #000000;
+
+            &:first-child {
+                width: 30%;
+                font-size: 4mm;
+
+                display: grid;
+                place-content: center start;
+
+                border-right: rgba(128, 128, 128, 0.4) dashed 0.1mm;
+            }
+
+            &:nth-child(2) {
+                width: 70%;
+
+                font-size: 3.25mm;
+                display: grid;
+
+                padding-left: 1mm;
+            }
+        }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/epos/+page.svelte b/src/routes/zhen/cv/epos/+page.svelte
index 721d9a0..7fde922 100644
--- a/src/routes/zhen/cv/epos/+page.svelte
+++ b/src/routes/zhen/cv/epos/+page.svelte
@@ -1,250 +1,250 @@
-<script lang="ts">
-    // Left side
-    import NameAndImage from "../Comps/NameAndImage.svelte";
-    import ShortProfile from "../Comps/ShortProfile.svelte"
-    import CombinedContacts from "../Comps/CombinedContacts.svelte"
-    import LinkedInQR from "../Comps/LinkedInQR.svelte";
-    
-    // Right side
-    import Profile from "../Comps/Profile.svelte";
-    import Education from "../Comps/Education.svelte";
-    import Experience from "../Comps/Experience.svelte";
-
-    // Decorations
-    import LeftTopDecor from "../Comps/LeftTopDecor.svelte";
-    import BottomRightDecor from "../Comps/BottomRightDecor.svelte";
-    import AlexWatermark from "../Comps/AlexWatermark.svelte";
-    import RepeatedSkills from "../Comps/RepeatedSkills.svelte";
-
-    // Cedit
-    import LinkToSource from "../Comps/LinkToSource.svelte";
-
-    // Discord embed
-    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
-
-    // Print detection setup
-    import { onMount } from "svelte";
-    onMount(() => {
-        // Check if the query parameter exists in the URL
-        const urlParams = new URLSearchParams(window.location.search);
-        const hideOnPrintParam = urlParams.get('hideOnPrint');
-
-        // If the query parameter is not detected, reload the page with the parameter added
-        if (!hideOnPrintParam) {
-            window.location.href = `${window.location.href}?hideOnPrint=1`;
-        }
-    });
-
-    function getFormattedDate(): string {
-        const date = new Date();
-        const day = String(date.getDate()).padStart(2, '0');
-        const month = String(date.getMonth() + 1).padStart(2, '0');
-        const year = date.getFullYear();
-
-        return `${day}-${month}-${year}`;
-    }
-
-</script>
-
-<title>Zhentao Wei's CV {getFormattedDate()}</title>
-<meta content="Zhentao Wei's Epos CV" property="og:title" />
-<meta content="This CV is made completely with html + css + js" property="og:description" />
-<meta content={preveiwImage} property="og:image" />
-<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
-
-<div class="cv-info-container hide-on-print">
-    <div>
-        Under here is my CV rev1 for an application. This page has been able to be saved as PDF.    
-        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
-        <br/>
-        <br/>
-        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
-    </div>
-</div>
-
-<div class="cv-container-container include-in-print">
-    <div class="cv-container sections decorations">
-        <div id="left-section">
-            <LeftTopDecor/>
-            <BottomRightDecor/>
-            <div>
-                <NameAndImage/>
-                <ShortProfile/>
-                <CombinedContacts/>
-                <LinkedInQR/>
-            </div>
-        </div>
-        <div id="leftSectionSeperator"><div/></div>
-        <div id="right-section">
-            <AlexWatermark/>
-            <div id="TopRightSkillsText">
-                <RepeatedSkills targetTextHeight={30} targetTextWidth={75}/>
-            </div>
-            <div id="Credit">
-                <LinkToSource/>
-            </div>
-            <div>
-                <Profile/>
-                <Experience/>
-                <Education/>
-            </div>
-        </div>
-    </div>
-</div> 
-
-<style lang="scss">
-    .cv-info-container {
-        height: 40mm;
-        background-color: #2b2a2a;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-
-        .keyboard-key {
-            display: inline;
-            padding-left: 1mm;
-            padding-right: 1mm;
-
-            border-radius: 2mm;
-
-            background-color: #3e3d3d;
-        }
-
-        > div {
-            width: 80%;
-            height: 60%;
-        }
-    }
-
-    @media print {
-    .hide-on-print {
-        display: none;
-    }
-}
-
-    .cv-container-container{
-        width: 100%;
-        height: 100%;
-
-        display: grid;
-        place-items: center;
-    }
-
-    .cv-container-container * {
-        color: black; // Set all text black
-    }
-
-    .cv-container {
-        width:  210mm;
-        height: 297mm;
-
-        background-color: #eeeeee;
-
-        overflow: visible;
-        display: flex;
-        padding: auto;
-    }
-
-    .include-in-print { &, & * {
-        -webkit-print-color-adjust:exact !important;
-        print-color-adjust:exact !important;
-    }}
-
-    .sections {
-        // Shared between sections
-        > div {
-            display: grid;
-            z-index: 0;
-
-            // Needed to cuttoff the extra decoration
-            position: relative;
-            overflow: hidden;
-        }
-
-        #left-section{
-            background-color: #bdd6ee;
-            width: calc(100% / 3 * 1);
-
-            > div:last-child {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-
-                padding-top: 30mm;
-                padding-bottom: 30mm;
-            }-        }
-
-        #right-section{
-            width: calc(100% / 3 * 2);
-
-            > div:last-child  {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-                row-gap: 6mm;
-
-                padding-top: 45mm;
-                padding-bottom: 30mm;
-
-                // Disable interactivity for padding
-                pointer-events:none;
-            }
-        }
-    }
-
-    .decorations {
-        #leftSectionSeperator{
-            position: relative;
-            height: 100%;
-            width: 0%;
-            z-index: 1;
-            overflow: visible;
-            > div {
-                position: absolute;
-                height: 100%;
-                width: 5mm;
-                z-index: 1;
-                background: linear-gradient(90deg, #3636364f, #00000000);
-            }
-        }
-        > div {
-            #TopRightSkillsText {
-                position: absolute;
-                z-index: 0;
-
-                display: grid;
-                place-items: center;
-                vertical-align: top;
-                width: 100%;
-
-                place-content: center;
-
-                padding: 0;
-                height: 50mm;
-
-                mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
-
-                color: rgb(190, 190, 190); 
-                font-family: 'CozetteVector';
-                font-size: x-large;
-            }
-
-            #Credit {
-                position: absolute;
-                z-index: 0;
-
-                display: flex;
-                align-self: flex-end;
-            }
-      }
-    }
+<script lang="ts">
+    // Left side
+    import NameAndImage from "../Comps/NameAndImage.svelte";
+    import ShortProfile from "../Comps/ShortProfile.svelte"
+    import CombinedContacts from "../Comps/CombinedContacts.svelte"
+    import LinkedInQR from "../Comps/LinkedInQR.svelte";
+    
+    // Right side
+    import Profile from "../Comps/Profile.svelte";
+    import Education from "../Comps/Education.svelte";
+    import Experience from "../Comps/Experience.svelte";
+
+    // Decorations
+    import LeftTopDecor from "../Comps/LeftTopDecor.svelte";
+    import BottomRightDecor from "../Comps/BottomRightDecor.svelte";
+    import AlexWatermark from "../Comps/AlexWatermark.svelte";
+    import RepeatedSkills from "../Comps/RepeatedSkills.svelte";
+
+    // Cedit
+    import LinkToSource from "../Comps/LinkToSource.svelte";
+
+    // Discord embed
+    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
+
+    // Print detection setup
+    import { onMount } from "svelte";
+    onMount(() => {
+        // Check if the query parameter exists in the URL
+        const urlParams = new URLSearchParams(window.location.search);
+        const hideOnPrintParam = urlParams.get('hideOnPrint');
+
+        // If the query parameter is not detected, reload the page with the parameter added
+        if (!hideOnPrintParam) {
+            window.location.href = `${window.location.href}?hideOnPrint=1`;
+        }
+    });
+
+    function getFormattedDate(): string {
+        const date = new Date();
+        const day = String(date.getDate()).padStart(2, '0');
+        const month = String(date.getMonth() + 1).padStart(2, '0');
+        const year = date.getFullYear();
+
+        return `${day}-${month}-${year}`;
+    }
+
+</script>
+
+<title>Zhentao Wei's CV {getFormattedDate()}</title>
+<meta content="Zhentao Wei's Epos CV" property="og:title" />
+<meta content="This CV is made completely with html + css + js" property="og:description" />
+<meta content={preveiwImage} property="og:image" />
+<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
+
+<div class="cv-info-container hide-on-print">
+    <div>
+        Under here is my CV rev1 for an application. This page has been able to be saved as PDF.    
+        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
+        <br/>
+        <br/>
+        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
+    </div>
+</div>
+
+<div class="cv-container-container include-in-print">
+    <div class="cv-container sections decorations">
+        <div id="left-section">
+            <LeftTopDecor/>
+            <BottomRightDecor/>
+            <div>
+                <NameAndImage/>
+                <ShortProfile/>
+                <CombinedContacts/>
+                <LinkedInQR/>
+            </div>
+        </div>
+        <div id="leftSectionSeperator"></div>
+        <div id="right-section">
+            <AlexWatermark/>
+            <div id="TopRightSkillsText">
+                <RepeatedSkills targetTextHeight={30} targetTextWidth={75}/>
+            </div>
+            <div id="Credit">
+                <LinkToSource/>
+            </div>
+            <div>
+                <Profile/>
+                <Experience/>
+                <Education/>
+            </div>
+        </div>
+    </div>
+</div> 
+
+<style lang="scss">
+    .cv-info-container {
+        height: 40mm;
+        background-color: #2b2a2a;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+
+        .keyboard-key {
+            display: inline;
+            padding-left: 1mm;
+            padding-right: 1mm;
+
+            border-radius: 2mm;
+
+            background-color: #3e3d3d;
+        }
+
+        > div {
+            width: 80%;
+            height: 60%;
+        }
+    }
+
+    @media print {
+    .hide-on-print {
+        display: none;
+    }
+}
+
+    .cv-container-container{
+        width: 100%;
+        height: 100%;
+
+        display: grid;
+        place-items: center;
+    }
+
+    .cv-container-container * {
+        color: black; // Set all text black
+    }
+
+    .cv-container {
+        width:  210mm;
+        height: 297mm;
+
+        background-color: #eeeeee;
+
+        overflow: visible;
+        display: flex;
+        padding: auto;
+    }
+
+    .include-in-print { &, & * {
+        -webkit-print-color-adjust:exact !important;
+        print-color-adjust:exact !important;
+    }}
+
+    .sections {
+        // Shared between sections
+        > div {
+            display: grid;
+            z-index: 0;
+
+            // Needed to cuttoff the extra decoration
+            position: relative;
+            overflow: hidden;
+        }
+
+        #left-section{
+            background-color: #bdd6ee;
+            width: calc(100% / 3 * 1);
+
+            > div:last-child {
+                z-index: 1;
+                width: 100%;
+                
+                left: 0;
+
+                display: grid;
+                place-items: center;
+
+                padding-top: 30mm;
+                padding-bottom: 30mm;
+            }
+        }
+
+        #right-section{
+            width: calc(100% / 3 * 2);
+
+            > div:last-child  {
+                z-index: 1;
+                width: 100%;
+                
+                left: 0;
+
+                display: grid;
+                place-items: center;
+                row-gap: 6mm;
+
+                padding-top: 45mm;
+                padding-bottom: 30mm;
+
+                // Disable interactivity for padding
+                pointer-events:none;
+            }
+        }
+    }
+
+    .decorations {
+        #leftSectionSeperator{
+            position: relative;
+            height: 100%;
+            width: 0%;
+            z-index: 1;
+            overflow: visible;
+            > div {
+                position: absolute;
+                height: 100%;
+                width: 5mm;
+                z-index: 1;
+                background: linear-gradient(90deg, #3636364f, #00000000);
+            }
+        }
+        > div {
+            #TopRightSkillsText {
+                position: absolute;
+                z-index: 0;
+
+                display: grid;
+                place-items: center;
+                vertical-align: top;
+                width: 100%;
+
+                place-content: center;
+
+                padding: 0;
+                height: 50mm;
+
+                mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
+
+                color: rgb(190, 190, 190); 
+                font-family: 'CozetteVector';
+                font-size: x-large;
+            }
+
+            #Credit {
+                position: absolute;
+                z-index: 0;
+
+                display: flex;
+                align-self: flex-end;
+            }
+      }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/rev1/+page.svelte b/src/routes/zhen/cv/rev1/+page.svelte
index 60b672e..d6233cc 100644
--- a/src/routes/zhen/cv/rev1/+page.svelte
+++ b/src/routes/zhen/cv/rev1/+page.svelte
@@ -1,250 +1,250 @@
-<script lang="ts">
-    // Left side
-    import NameAndImage from "../Comps/NameAndImage.svelte";
-    import ShortProfile from "../Comps/ShortProfile.svelte"
-    import CombinedContacts from "../Comps/CombinedContacts.svelte"
-    import LinkedInQR from "../Comps/LinkedInQR.svelte";
-    
-    // Right side
-    import Profile from "../Comps/Profile.svelte";
-    import Education from "../Comps/Education.svelte";
-    import Experience from "../Comps/Experience.svelte";
-
-    // Decorations
-    import LeftTopDecor from "../Comps/LeftTopDecor.svelte";
-    import BottomRightDecor from "../Comps/BottomRightDecor.svelte";
-    import AlexWatermark from "../Comps/AlexWatermark.svelte";
-    import RepeatedSkills from "../Comps/RepeatedSkills.svelte";
-
-    // Cedit
-    import LinkToSource from "../Comps/LinkToSource.svelte";
-
-    // Discord embed
-    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
-
-    // Print detection setup
-    import { onMount } from "svelte";
-    onMount(() => {
-        // Check if the query parameter exists in the URL
-        const urlParams = new URLSearchParams(window.location.search);
-        const hideOnPrintParam = urlParams.get('hideOnPrint');
-
-        // If the query parameter is not detected, reload the page with the parameter added
-        if (!hideOnPrintParam) {
-            window.location.href = `${window.location.href}?hideOnPrint=1`;
-        }
-    });
-
-    function getFormattedDate(): string {
-        const date = new Date();
-        const day = String(date.getDate()).padStart(2, '0');
-        const month = String(date.getMonth() + 1).padStart(2, '0');
-        const year = date.getFullYear();
-
-        return `${day}-${month}-${year}`;
-    }
-
-</script>
-
-<title>Zhentao Wei's CV {getFormattedDate()}</title>
-<meta content="Zhentao Wei's Epos CV" property="og:title" />
-<meta content="This CV is made completely with html + css + js" property="og:description" />
-<meta content={preveiwImage} property="og:image" />
-<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
-
-<div class="cv-info-container hide-on-print">
-    <div>
-        Under here is my CV rev1 for an application made entirely in HTML and CSS. The page is designed to be saved as PDF.
-        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
-        <br/>
-        <br/>
-        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
-    </div>
-</div>
-
-<div class="cv-container-container include-in-print">
-    <div class="cv-container sections decorations">
-        <div id="left-section">
-            <LeftTopDecor/>
-            <BottomRightDecor/>
-            <div>
-                <NameAndImage/>
-                <ShortProfile/>
-                <CombinedContacts/>
-                <LinkedInQR/>
-            </div>
-        </div>
-        <div id="leftSectionSeperator"><div/></div>
-        <div id="right-section">
-            <AlexWatermark/>
-            <div id="TopRightSkillsText">
-                <RepeatedSkills targetTextHeight={30} targetTextWidth={75}/>
-            </div>
-            <div id="Credit">
-                <LinkToSource/>
-            </div>
-            <div>
-                <Profile/>
-                <Experience/>
-                <Education/>
-            </div>
-        </div>
-    </div>
-</div> 
-
-<style lang="scss">
-    .cv-info-container {
-        height: 40mm;
-        background-color: #2b2a2a;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-
-        .keyboard-key {
-            display: inline;
-            padding-left: 1mm;
-            padding-right: 1mm;
-
-            border-radius: 2mm;
-
-            background-color: #3e3d3d;
-        }
-
-        > div {
-            width: 80%;
-            height: 60%;
-        }
-    }
-
-    @media print {
-    .hide-on-print {
-        display: none;
-    }
-}
-
-    .cv-container-container{
-        width: 100%;
-        height: 100%;
-
-        display: grid;
-        place-items: center;
-    }
-
-    .cv-container-container * {
-        color: black; // Set all text black
-    }
-
-    .cv-container {
-        width:  210mm;
-        height: 297mm;
-
-        background-color: #eeeeee;
-
-        overflow: visible;
-        display: flex;
-        padding: auto;
-    }
-
-    .include-in-print { &, & * {
-        -webkit-print-color-adjust:exact !important;
-        print-color-adjust:exact !important;
-    }}
-
-    .sections {
-        // Shared between sections
-        > div {
-            display: grid;
-            z-index: 0;
-
-            // Needed to cuttoff the extra decoration
-            position: relative;
-            overflow: hidden;
-        }
-
-        #left-section{
-            background-color: #bdd6ee;
-            width: calc(100% / 3 * 1);
-
-            > div:last-child {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-
-                padding-top: 30mm;
-                padding-bottom: 30mm;
-            }
-        }
-
-        #right-section{
-            width: calc(100% / 3 * 2);
-
-            > div:last-child  {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-                row-gap: 6mm;
-
-                padding-top: 45mm;
-                padding-bottom: 30mm;
-
-                // Disable interactivity for padding
-                pointer-events:none;
-            }
-        }
-    }
-
-    .decorations {
-        #leftSectionSeperator{
-            position: relative;
-            height: 100%;
-            width: 0%;
-            z-index: 1;
-            overflow: visible;
-            > div {
-                position: absolute;
-                height: 100%;
-                width: 5mm;
-                z-index: 1;
-                background: linear-gradient(90deg, #3636364f, #00000000);
-            }
-        }
-        > div {
-            #TopRightSkillsText {
-                position: absolute;
-                z-index: 0;
-
-                display: grid;
-                place-items: center;
-                vertical-align: top;
-                width: 100%;
-
-                place-content: center;
-
-                padding: 0;
-                height: 50mm;
-
-                mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
-
-                color: rgb(190, 190, 190); 
-                font-family: 'CozetteVector';
-                font-size: x-large;
-            }
-
-            #Credit {
-                position: absolute;
-                z-index: 0;
-
-                display: flex;
-                align-self: flex-end;
-            }
-      }
-    }
+<script lang="ts">
+    // Left side
+    import NameAndImage from "../Comps/NameAndImage.svelte";
+    import ShortProfile from "../Comps/ShortProfile.svelte"
+    import CombinedContacts from "../Comps/CombinedContacts.svelte"
+    import LinkedInQR from "../Comps/LinkedInQR.svelte";
+    
+    // Right side
+    import Profile from "../Comps/Profile.svelte";
+    import Education from "../Comps/Education.svelte";
+    import Experience from "../Comps/Experience.svelte";
+
+    // Decorations
+    import LeftTopDecor from "../Comps/LeftTopDecor.svelte";
+    import BottomRightDecor from "../Comps/BottomRightDecor.svelte";
+    import AlexWatermark from "../Comps/AlexWatermark.svelte";
+    import RepeatedSkills from "../Comps/RepeatedSkills.svelte";
+
+    // Cedit
+    import LinkToSource from "../Comps/LinkToSource.svelte";
+
+    // Discord embed
+    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
+
+    // Print detection setup
+    import { onMount } from "svelte";
+    onMount(() => {
+        // Check if the query parameter exists in the URL
+        const urlParams = new URLSearchParams(window.location.search);
+        const hideOnPrintParam = urlParams.get('hideOnPrint');
+
+        // If the query parameter is not detected, reload the page with the parameter added
+        if (!hideOnPrintParam) {
+            window.location.href = `${window.location.href}?hideOnPrint=1`;
+        }
+    });
+
+    function getFormattedDate(): string {
+        const date = new Date();
+        const day = String(date.getDate()).padStart(2, '0');
+        const month = String(date.getMonth() + 1).padStart(2, '0');
+        const year = date.getFullYear();
+
+        return `${day}-${month}-${year}`;
+    }
+
+</script>
+
+<title>Zhentao Wei's CV {getFormattedDate()}</title>
+<meta content="Zhentao Wei's Epos CV" property="og:title" />
+<meta content="This CV is made completely with html + css + js" property="og:description" />
+<meta content={preveiwImage} property="og:image" />
+<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
+
+<div class="cv-info-container hide-on-print">
+    <div>
+        Under here is my CV rev1 for an application made entirely in HTML and CSS. The page is designed to be saved as PDF.
+        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
+        <br/>
+        <br/>
+        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
+    </div>
+</div>
+
+<div class="cv-container-container include-in-print">
+    <div class="cv-container sections decorations">
+        <div id="left-section">
+            <LeftTopDecor/>
+            <BottomRightDecor/>
+            <div>
+                <NameAndImage/>
+                <ShortProfile/>
+                <CombinedContacts/>
+                <LinkedInQR/>
+            </div>
+        </div>
+        <div id="leftSectionSeperator"></div>
+        <div id="right-section">
+            <AlexWatermark/>
+            <div id="TopRightSkillsText">
+                <RepeatedSkills targetTextHeight={30} targetTextWidth={75}/>
+            </div>
+            <div id="Credit">
+                <LinkToSource/>
+            </div>
+            <div>
+                <Profile/>
+                <Experience/>
+                <Education/>
+            </div>
+        </div>
+    </div>
+</div> 
+
+<style lang="scss">
+    .cv-info-container {
+        height: 40mm;
+        background-color: #2b2a2a;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+
+        .keyboard-key {
+            display: inline;
+            padding-left: 1mm;
+            padding-right: 1mm;
+
+            border-radius: 2mm;
+
+            background-color: #3e3d3d;
+        }
+
+        > div {
+            width: 80%;
+            height: 60%;
+        }
+    }
+
+    @media print {
+    .hide-on-print {
+        display: none;
+    }
+}
+
+    .cv-container-container{
+        width: 100%;
+        height: 100%;
+
+        display: grid;
+        place-items: center;
+    }
+
+    .cv-container-container * {
+        color: black; // Set all text black
+    }
+
+    .cv-container {
+        width:  210mm;
+        height: 297mm;
+
+        background-color: #eeeeee;
+
+        overflow: visible;
+        display: flex;
+        padding: auto;
+    }
+
+    .include-in-print { &, & * {
+        -webkit-print-color-adjust:exact !important;
+        print-color-adjust:exact !important;
+    }}
+
+    .sections {
+        // Shared between sections
+        > div {
+            display: grid;
+            z-index: 0;
+
+            // Needed to cuttoff the extra decoration
+            position: relative;
+            overflow: hidden;
+        }
+
+        #left-section{
+            background-color: #bdd6ee;
+            width: calc(100% / 3 * 1);
+
+            > div:last-child {
+                z-index: 1;
+                width: 100%;
+                
+                left: 0;
+
+                display: grid;
+                place-items: center;
+
+                padding-top: 30mm;
+                padding-bottom: 30mm;
+            }
+        }
+
+        #right-section{
+            width: calc(100% / 3 * 2);
+
+            > div:last-child  {
+                z-index: 1;
+                width: 100%;
+                
+                left: 0;
+
+                display: grid;
+                place-items: center;
+                row-gap: 6mm;
+
+                padding-top: 45mm;
+                padding-bottom: 30mm;
+
+                // Disable interactivity for padding
+                pointer-events:none;
+            }
+        }
+    }
+
+    .decorations {
+        #leftSectionSeperator{
+            position: relative;
+            height: 100%;
+            width: 0%;
+            z-index: 1;
+            overflow: visible;
+            > div {
+                position: absolute;
+                height: 100%;
+                width: 5mm;
+                z-index: 1;
+                background: linear-gradient(90deg, #3636364f, #00000000);
+            }
+        }
+        > div {
+            #TopRightSkillsText {
+                position: absolute;
+                z-index: 0;
+
+                display: grid;
+                place-items: center;
+                vertical-align: top;
+                width: 100%;
+
+                place-content: center;
+
+                padding: 0;
+                height: 50mm;
+
+                mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
+
+                color: rgb(190, 190, 190); 
+                font-family: 'CozetteVector';
+                font-size: x-large;
+            }
+
+            #Credit {
+                position: absolute;
+                z-index: 0;
+
+                display: flex;
+                align-self: flex-end;
+            }
+      }
+    }
 </style>
\ No newline at end of file
diff --git a/src/routes/zhen/cv/rev2/+page.svelte b/src/routes/zhen/cv/rev2/+page.svelte
index 8fe5623..2588899 100644
--- a/src/routes/zhen/cv/rev2/+page.svelte
+++ b/src/routes/zhen/cv/rev2/+page.svelte
@@ -1,254 +1,254 @@
-<script lang="ts">
-    // Left side
-    import NameAndImage from "../CompsRev2/NameAndImage.svelte";
-    import ShortProfile from "../CompsRev2/ShortProfile.svelte"
-    import CombinedContacts from "../CompsRev2/CombinedContacts.svelte"
-    import LinkedInQR from "../CompsRev2/LinkedInQR.svelte";
-    
-    // Right side
-    import Profile from "../CompsRev2/Profile.svelte";
-    import Education from "../CompsRev2/Education.svelte";
-    import Experience from "../CompsRev2/Experience.svelte";
-    import BiggestFlex from "../CompsRev2/BiggestFlex.svelte";
-    import TableOfProjects from "../CompsRev2/TableOfProjects.svelte";
-
-    // Decorations
-    import LeftTopDecor from "../CompsRev2/LeftTopDecor.svelte";
-    import BottomRightDecor from "../CompsRev2/BottomRightDecor.svelte";
-    import AlexWatermark from "../CompsRev2/AlexWatermark.svelte";
-    import RepeatedSkills from "../CompsRev2/RepeatedSkills.svelte";
-
-    // Cedit
-    import LinkToSource from "../CompsRev2/LinkToSource.svelte";
-
-    // Discord embed
-    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
-
-    // Print detection setup
-    import { onMount } from "svelte";
-    onMount(() => {
-        // Check if the query parameter exists in the URL
-        const urlParams = new URLSearchParams(window.location.search);
-        const hideOnPrintParam = urlParams.get('hideOnPrint');
-
-        // If the query parameter is not detected, reload the page with the parameter added
-        if (!hideOnPrintParam) {
-            window.location.href = `${window.location.href}?hideOnPrint=1`;
-        }
-    });
-
-    function getFormattedDate(): string {
-        const date = new Date();
-        const day = String(date.getDate()).padStart(2, '0');
-        const month = String(date.getMonth() + 1).padStart(2, '0');
-        const year = date.getFullYear();
-
-        return `${day}-${month}-${year}`;
-    }
-
-</script>
-
-<title>Zhentao Wei's CV {getFormattedDate()}</title>
-<meta content="Zhentao Wei's Epos CV" property="og:title" />
-<meta content="This CV is made completely with html + css + js" property="og:description" />
-<meta content={preveiwImage} property="og:image" />
-<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
-
-<div class="cv-info-container hide-on-print">
-    <div>
-        Under here is my CV rev1 for an application made entirely in HTML and CSS. The page is designed to be saved as PDF.
-        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
-        <br/>
-        <br/>
-        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
-    </div>
-</div>
-
-<div class="cv-container-container include-in-print">
-    <div class="cv-container sections decorations">
-        <div id="left-section">
-            <LeftTopDecor Style="pointer-events: none;"/>
-            <BottomRightDecor Style="pointer-events: none;"/>
-            <div>
-                <NameAndImage/>
-                <ShortProfile/>
-                <CombinedContacts/>
-                <LinkedInQR/>
-            </div>
-        </div>
-        <div id="leftSectionSeperator"><div/></div>
-        <div id="right-section">
-            <AlexWatermark Style="pointer-events: none;"/>
-            <div id="TopRightSkillsText">
-                <RepeatedSkills targetTextHeight={30} targetTextWidth={75}/>
-            </div>
-            <div id="Credit">
-                <LinkToSource/>
-            </div>
-            <div>
-                <Profile/>
-                <BiggestFlex/>
-                <TableOfProjects/>
-                <Experience/>
-                <Education/>
-            </div>
-        </div>
-    </div>
-</div> 
-
-<style lang="scss">
-    .cv-info-container {
-        height: 40mm;
-        background-color: #2b2a2a;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-
-        .keyboard-key {
-            display: inline;
-            padding-left: 1mm;
-            padding-right: 1mm;
-
-            border-radius: 2mm;
-
-            background-color: #3e3d3d;
-        }
-
-        > div {
-            width: 80%;
-            height: 60%;
-        }
-    }
-
-    @media print {
-    .hide-on-print {
-        display: none;
-    }
-}
-
-    .cv-container-container{
-        width: 100%;
-        height: 100%;
-
-        display: grid;
-        place-items: center;
-    }
-
-    .cv-container-container * {
-        color: black; // Set all text black
-    }
-
-    .cv-container {
-        width:  210mm;
-        height: 297mm;
-
-        background-color: #eeeeee;
-
-        overflow: visible;
-        display: flex;
-        padding: auto;
-    }
-
-    .include-in-print { &, & * {
-        -webkit-print-color-adjust:exact !important;
-        print-color-adjust:exact !important;
-    }}
-
-    .sections {
-        // Shared between sections
-        > div {
-            display: grid;
-            z-index: 0;
-
-            // Needed to cuttoff the extra decoration
-            position: relative;
-            overflow: hidden;
-        }
-
-        #left-section{
-            background-color: #bdd6ee;
-            width: calc(100% / 3 * 1);
-
-            > div:last-child {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-
-                padding-top: 30mm;
-                padding-bottom: 30mm;
-            }
-        }
-
-        #right-section{
-            width: calc(100% / 3 * 2);
-
-            > div:last-child  {
-                z-index: 1;
-                width: 100%;
-                
-                left: 0;
-
-                display: grid;
-                place-items: center;
-                row-gap: 6mm;
-
-                padding-top: 45mm;
-                padding-bottom: 30mm;
-
-                // Disable interactivity for padding
-                pointer-events:none;
-            }
-        }
-    }
-
-    .decorations {
-        #leftSectionSeperator{
-            position: relative;
-            height: 100%;
-            width: 0%;
-            z-index: 1;
-            overflow: visible;
-            > div {
-                position: absolute;
-                height: 100%;
-                width: 5mm;
-                z-index: 1;
-                background: linear-gradient(90deg, #3636364f, #00000000);
-            }
-        }
-        > div {
-            #TopRightSkillsText {
-                position: absolute;
-                z-index: 0;
-
-                display: grid;
-                place-items: center;
-                vertical-align: top;
-                width: 100%;
-
-                place-content: center;
-
-                padding: 0;
-                height: 50mm;
-
-                mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
-
-                color: rgb(190, 190, 190); 
-                font-family: 'CozetteVector';
-                font-size: x-large;
-            }
-
-            #Credit {
-                position: absolute;
-                z-index: 0;
-
-                display: flex;
-                align-self: flex-end;
-            }
-      }
-    }
-</style>
\ No newline at end of file
+<script lang="ts">
+  // Left side
+  import NameAndImage from "../CompsRev2/NameAndImage.svelte";
+  import ShortProfile from "../CompsRev2/ShortProfile.svelte";
+  import CombinedContacts from "../CompsRev2/CombinedContacts.svelte";
+  import LinkedInQR from "../CompsRev2/LinkedInQR.svelte";
+
+  // Right side
+  import Profile from "../CompsRev2/Profile.svelte";
+  import Education from "../CompsRev2/Education.svelte";
+  import Experience from "../CompsRev2/Experience.svelte";
+  import BiggestFlex from "../CompsRev2/BiggestFlex.svelte";
+  import TableOfProjects from "../CompsRev2/TableOfProjects.svelte";
+
+  // Decorations
+  import LeftTopDecor from "../CompsRev2/LeftTopDecor.svelte";
+  import BottomRightDecor from "../CompsRev2/BottomRightDecor.svelte";
+  import AlexWatermark from "../CompsRev2/AlexWatermark.svelte";
+  import RepeatedSkills from "../CompsRev2/RepeatedSkills.svelte";
+
+  // Cedit
+  import LinkToSource from "../CompsRev2/LinkToSource.svelte";
+
+  // Discord embed
+  import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png";
+
+  // Print detection setup
+  import { onMount } from "svelte";
+  onMount(() => {
+    // Check if the query parameter exists in the URL
+    const urlParams = new URLSearchParams(window.location.search);
+    const hideOnPrintParam = urlParams.get("hideOnPrint");
+
+    // If the query parameter is not detected, reload the page with the parameter added
+    if (!hideOnPrintParam) {
+      window.location.href = `${window.location.href}?hideOnPrint=1`;
+    }
+  });
+
+  function getFormattedDate(): string {
+    const date = new Date();
+    const day = String(date.getDate()).padStart(2, "0");
+    const month = String(date.getMonth() + 1).padStart(2, "0");
+    const year = date.getFullYear();
+
+    return `${day}-${month}-${year}`;
+  }
+</script>
+
+<title>Zhentao Wei's CV {getFormattedDate()}</title>
+<meta content="Zhentao Wei's CV" property="og:title" />
+<meta
+  content="This CV is made completely with svelte + html + css + js"
+  property="og:description"
+/>
+<meta content={preveiwImage} property="og:image" />
+<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
+
+<div class="cv-info-container hide-on-print">
+  <div>
+    Under here is my CV rev1 for an application made entirely in HTML and CSS.
+    The page is designed to be saved as PDF. This can be done by pressing <div
+      class="keyboard-key"
+    >
+      P
+    </div>
+    +
+    <div class="keyboard-key">CTRL</div>
+    , then set scaling to 100% and no margins. Lastly, select save to PDF or print.
+    <br />
+    <br />
+    I have to sadly recommend chrome for this process. Firefox somehow messes with
+    the quality of the PDF :(
+  </div>
+</div>
+
+<div class="cv-container-container include-in-print">
+  <div class="cv-container sections decorations">
+    <div id="left-section">
+      <LeftTopDecor Style="pointer-events: none;" />
+      <BottomRightDecor Style="pointer-events: none;" />
+      <div>
+        <NameAndImage />
+        <ShortProfile />
+        <CombinedContacts />
+        <LinkedInQR />
+      </div>
+    </div>
+    <div id="leftSectionSeperator"></div>
+    <div id="right-section">
+      <AlexWatermark Style="pointer-events: none;" />
+      <div id="TopRightSkillsText">
+        <RepeatedSkills targetTextHeight={30} targetTextWidth={75} />
+      </div>
+      <div id="Credit">
+        <LinkToSource />
+      </div>
+      <div>
+        <Profile />
+        <BiggestFlex />
+        <TableOfProjects />
+        <Experience />
+        <Education />
+      </div>
+    </div>
+  </div>
+</div>
+
+<style lang="scss">
+  .cv-info-container {
+    height: 40mm;
+    background-color: #2b2a2a;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+
+    .keyboard-key {
+      display: inline;
+      padding-left: 1mm;
+      padding-right: 1mm;
+
+      border-radius: 2mm;
+
+      background-color: #3e3d3d;
+    }
+
+    > div {
+      width: 80%;
+      height: 60%;
+    }
+  }
+
+  .cv-container-container {
+    width: 100%;
+    height: 100%;
+
+    display: grid;
+    place-items: center;
+  }
+
+  .cv-container-container * {
+    color: black; // Set all text black
+  }
+
+  .cv-container {
+    width: 210mm;
+    height: 297mm;
+
+    background-color: #eeeeee;
+
+    overflow: visible;
+    display: flex;
+    padding: auto;
+  }
+
+  .sections {
+    // Shared between sections
+    > div {
+      display: grid;
+      z-index: 0;
+
+      // Needed to cuttoff the extra decoration
+      position: relative;
+      overflow: hidden;
+    }
+
+    #left-section {
+      background-color: #bdd6ee;
+      width: calc(100% / 3 * 1);
+
+      > div:last-child {
+        z-index: 1;
+        width: 100%;
+
+        left: 0;
+
+        display: grid;
+        place-items: center;
+
+        padding-top: 30mm;
+        padding-bottom: 30mm;
+      }
+    }
+
+    #right-section {
+      width: calc(100% / 3 * 2);
+
+      > div:last-child {
+        z-index: 1;
+        width: 100%;
+
+        left: 0;
+
+        display: grid;
+        place-items: center;
+        row-gap: 6mm;
+
+        padding-top: 45mm;
+        padding-bottom: 30mm;
+
+        // Disable interactivity for padding
+        pointer-events: none;
+      }
+    }
+  }
+
+  .decorations {
+    #leftSectionSeperator {
+      position: relative;
+      height: 100%;
+      width: 0%;
+      z-index: 1;
+      overflow: visible;
+      > div {
+        position: absolute;
+        height: 100%;
+        width: 5mm;
+        z-index: 1;
+        background: linear-gradient(90deg, #3636364f, #00000000);
+      }
+    }
+    > div {
+      #TopRightSkillsText {
+        position: absolute;
+        z-index: 0;
+
+        display: grid;
+        place-items: center;
+        vertical-align: top;
+        width: 100%;
+
+        place-content: center;
+
+        padding: 0;
+        height: 50mm;
+
+        mask-image: linear-gradient(180deg, #000 0%, transparent 110%);
+
+        color: rgb(190, 190, 190);
+        font-family: "CozetteVector";
+        font-size: x-large;
+      }
+
+      #Credit {
+        position: absolute;
+        z-index: 0;
+
+        display: flex;
+        align-self: flex-end;
+      }
+    }
+  }
+</style>
+
diff --git a/src/routes/zhen/misc/linkedinBanner/+page.svelte b/src/routes/zhen/misc/linkedinBanner/+page.svelte
deleted file mode 100644
index 776b745..0000000
--- a/src/routes/zhen/misc/linkedinBanner/+page.svelte
+++ /dev/null
@@ -1,117 +0,0 @@
-<script lang="ts">
-    import RepeatedSkills from "../../cv/Comps/RepeatedSkills.svelte";
-
-    // Discord embed
-    import preveiwImage from "$lib/zhen/cv-comps/EposCvPreveiw.png"
-
-    // Print detection setup
-    import { onMount } from "svelte";
-    onMount(() => {
-        // Check if the query parameter exists in the URL
-        const urlParams = new URLSearchParams(window.location.search);
-        const hideOnPrintParam = urlParams.get('hideOnPrint');
-
-        // If the query parameter is not detected, reload the page with the parameter added
-        if (!hideOnPrintParam) {
-            window.location.href = `${window.location.href}?hideOnPrint=1`;
-        }
-    });
-
-    function getFormattedDate(): string {
-        const date = new Date();
-        const day = String(date.getDate()).padStart(2, '0');
-        const month = String(date.getMonth() + 1).padStart(2, '0');
-        const year = date.getFullYear();
-
-        return `${day}-${month}-${year}`;
-    }
-
-</script>
-
-<title>Zhentao Wei's LinkedIn banner {getFormattedDate()}</title>
-<meta content="Zhentao Wei's LinkedIn banner" property="og:title" />
-<meta content="This Linkedin banner is made completely with html + css + js" property="og:description" />
-<meta content={preveiwImage} property="og:image" />
-<meta content="#bdd6ee" data-react-helmet="true" name="theme-color" />
-
-<div class="cv-info-container hide-on-print">
-    <div>
-        Under here is my Linkedin banner. This page has been able to be saved as PDF, and the banner can be extracted as an image fro mthe pdf.    
-        This can be done by pressing <div class="keyboard-key">P</div> + <div class="keyboard-key">CTRL</div>, then set scaling to 100% and no margins. Lastly, select save to PDF or print.
-        <br/>
-        <br/>
-        I have to sadly recommend chrome for this process. Firefox somehow messes with the quality of the PDF :(
-    </div>
-</div>
-
-<div class="container include-in-print">
-    <div>
-        <RepeatedSkills targetTextHeight={70} targetTextWidth={175}/>
-    </div>
-    <div/>
-</div>
-
-<style lang="scss">
-    .cv-info-container {
-        height: 40mm;
-        background-color: #2b2a2a;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-
-        .keyboard-key {
-            display: inline;
-            padding-left: 1mm;
-            padding-right: 1mm;
-
-            border-radius: 2mm;
-
-            background-color: #3e3d3d;
-        }
-
-        > div {
-            width: 80%;
-            height: 60%;
-        }
-    }
-
-    @media print {
-        .hide-on-print {
-            display: none;
-            }
-    }
-
-    .include-in-print { &, & * {
-        -webkit-print-color-adjust:exact !important;
-        print-color-adjust:exact !important;
-    }}
-
-    .container {
-        width: 100%;
-        height: 100%;
-
-        display: grid;
-        place-items: center;
-
-        > div:nth-child(1) {
-            width:  419.1mm;
-            height: 104.775mm;
-
-            background-color: #383636;
-            overflow: hidden;
-
-            display: grid;
-            place-content: center;
-
-            font-size: 10mm;
-            font-family: cozetteVector;
-            color: #d4d4d4;
-
-            filter: blur(0); // Force save as image
-        }
-
-        > div:nth-child(2){
-            height: 0;
-        }
-    }
-</style>
\ No newline at end of file
diff --git a/src/routes/zhen/notes/physics/sharedComps/A4.svelte b/src/routes/zhen/notes/physics/sharedComps/A4.svelte
new file mode 100644
index 0000000..f7ab836
--- /dev/null
+++ b/src/routes/zhen/notes/physics/sharedComps/A4.svelte
@@ -0,0 +1,16 @@
+<script lang="ts">
+    export let bgColor: string | undefined = undefined;
+    export let bottomBorder: boolean = true;
+</script>
+
+<div style="width: 210mm; height: 297mm;" class="{(bgColor)?bgColor:"bg-white"} overflow-y-auto overflow-x-hidden">
+    <div class="flex flex-col h-full">
+        <div {...$$restProps}>
+            <slot></slot>
+        </div>
+
+        {#if bottomBorder}
+        <div class="border-b-2 mt-auto mb-0 border-dashed border-slate-600 hide-on-print"></div>
+        {/if}
+    </div>
+</div>
\ No newline at end of file
diff --git a/static/favicon.png b/static/favicon.png
index 98c7382..01476a5 100644
Binary files a/static/favicon.png and b/static/favicon.png differ
diff --git a/static/fonts/NotoSans-VariableFont_wdth,wght.ttf b/static/fonts/NotoSans-VariableFont_wdth,wght.ttf
new file mode 100644
index 0000000..9530d84
Binary files /dev/null and b/static/fonts/NotoSans-VariableFont_wdth,wght.ttf differ
diff --git a/static/images/cropper.py b/static/images/cropper.py
new file mode 100644
index 0000000..4f96e67
--- /dev/null
+++ b/static/images/cropper.py
@@ -0,0 +1,55 @@
+import os
+import glob
+from PIL import Image
+from concurrent.futures import ProcessPoolExecutor, as_completed
+
+# Directories
+input_dir = 'spinning_cat'
+output_dir = 'spinning_cat_cropped'
+
+# Ensure output directory exists
+def ensure_output_dir():
+    if not os.path.exists(output_dir):
+        os.makedirs(output_dir)
+
+# Process a single image: crop transparent borders and save
+def process_image(filepath):
+    try:
+        img = Image.open(filepath)
+        if img.mode != 'RGBA':
+            img = img.convert('RGBA')
+        alpha = img.split()[-1]
+        bbox = alpha.getbbox()
+        cropped = img.crop(bbox) if bbox else img
+        filename = os.path.basename(filepath)
+        out_path = os.path.join(output_dir, filename)
+        cropped.save(out_path)
+        return out_path, None
+    except Exception as e:
+        return filepath, e
+
+# Main execution: parallel processing
+
+def main():
+    ensure_output_dir()
+    pattern = os.path.join(input_dir, 'untitled_*.png')
+    files = sorted(glob.glob(pattern))
+    if not files:
+        print(f"No files found in '{input_dir}' with pattern 'untitled_*.png'.")
+        return
+
+    with ProcessPoolExecutor() as executor:
+        futures = {executor.submit(process_image, fp): fp for fp in files}
+        for future in as_completed(futures):
+            fp = futures[future]
+            out_path, error = future.result()
+            if error:
+                print(f"Error processing {fp}: {error}")
+            else:
+                print(f"Cropped and saved: {out_path}")
+
+    print("Processing complete.")
+
+if __name__ == '__main__':
+    main()
+
diff --git a/static/images/icons/DeprivedLogo-NoBackground.png b/static/images/icons/DeprivedLogo-NoBackground.png
new file mode 100644
index 0000000..79e330e
Binary files /dev/null and b/static/images/icons/DeprivedLogo-NoBackground.png differ
diff --git a/static/images/icons/DeprivedLogo-SkullI-Background.png b/static/images/icons/DeprivedLogo-SkullI-Background.png
new file mode 100644
index 0000000..70bf86e
Binary files /dev/null and b/static/images/icons/DeprivedLogo-SkullI-Background.png differ
diff --git a/static/images/icons/DeprivedLogo-TransparentAndWhiteBackground copy.png b/static/images/icons/DeprivedLogo-TransparentAndWhiteBackground copy.png
new file mode 100644
index 0000000..01476a5
Binary files /dev/null and b/static/images/icons/DeprivedLogo-TransparentAndWhiteBackground copy.png differ
diff --git a/static/images/icons/discord.svg b/static/images/icons/discord.svg
index 5423b87..a411d5a 100644
--- a/static/images/icons/discord.svg
+++ b/static/images/icons/discord.svg
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   fill="#000000"
-   width="800.02313"
-   height="609.78137"
-   viewBox="0 0 24.000694 18.293441"
-   role="img"
-   version="1.1"
-   id="svg1"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:svg="http://www.w3.org/2000/svg">
-  <defs
-     id="defs1" />
-  <path
-     d="m 20.317481,1.5163647 a 19.791,19.791 0 0 0 -4.885,-1.51500001 0.074,0.074 0 0 0 -0.079,0.037 c -0.21,0.375 -0.444,0.864 -0.608,1.25000001 a 18.27,18.27 0 0 0 -5.4870004,0 12.64,12.64 0 0 0 -0.617,-1.25000001 0.077,0.077 0 0 0 -0.079,-0.037 19.736,19.736 0 0 0 -4.885,1.51500001 0.07,0.07 0 0 0 -0.032,0.027 c -3.11199997,4.649 -3.96499997,9.1830003 -3.54599997,13.6600003 a 0.082,0.082 0 0 0 0.031,0.057 19.9,19.9 0 0 0 5.99299997,3.03 0.078,0.078 0 0 0 0.084,-0.028 14.09,14.09 0 0 0 1.226,-1.994 0.076,0.076 0 0 0 -0.041,-0.106 13.107,13.107 0 0 1 -1.872,-0.892 0.077,0.077 0 0 1 -0.008,-0.128 10.2,10.2 0 0 0 0.372,-0.292 0.074,0.074 0 0 1 0.077,-0.01 c 3.928,1.793 8.1800004,1.793 12.0620004,0 a 0.074,0.074 0 0 1 0.078,0.01 c 0.12,0.098 0.246,0.198 0.373,0.292 a 0.077,0.077 0 0 1 -0.006,0.127 12.299,12.299 0 0 1 -1.873,0.892 0.077,0.077 0 0 0 -0.041,0.107 c 0.36,0.698 0.772,1.362 1.225,1.993 a 0.076,0.076 0 0 0 0.084,0.028 19.839,19.839 0 0 0 6.002,-3.03 0.077,0.077 0 0 0 0.032,-0.054 c 0.5,-5.177 -0.838,-9.6740003 -3.549,-13.6600003 a 0.061,0.061 0 0 0 -0.031,-0.03 z M 8.0204806,12.476365 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.956,-2.4190003 2.157,-2.4190003 1.21,0 2.1760004,1.096 2.1570004,2.4200003 0,1.333 -0.9560004,2.418 -2.1570004,2.418 z m 7.9750004,0 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.955,-2.4190003 2.157,-2.4190003 1.21,0 2.176,1.096 2.157,2.4200003 0,1.333 -0.946,2.418 -2.157,2.418 z"
-     id="path1"
-     style="fill:#fdfdfd;fill-opacity:1" />
-</svg>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   fill="#000000"
+   width="800.02313"
+   height="609.78137"
+   viewBox="0 0 24.000694 18.293441"
+   role="img"
+   version="1.1"
+   id="svg1"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <defs
+     id="defs1" />
+  <path
+     d="m 20.317481,1.5163647 a 19.791,19.791 0 0 0 -4.885,-1.51500001 0.074,0.074 0 0 0 -0.079,0.037 c -0.21,0.375 -0.444,0.864 -0.608,1.25000001 a 18.27,18.27 0 0 0 -5.4870004,0 12.64,12.64 0 0 0 -0.617,-1.25000001 0.077,0.077 0 0 0 -0.079,-0.037 19.736,19.736 0 0 0 -4.885,1.51500001 0.07,0.07 0 0 0 -0.032,0.027 c -3.11199997,4.649 -3.96499997,9.1830003 -3.54599997,13.6600003 a 0.082,0.082 0 0 0 0.031,0.057 19.9,19.9 0 0 0 5.99299997,3.03 0.078,0.078 0 0 0 0.084,-0.028 14.09,14.09 0 0 0 1.226,-1.994 0.076,0.076 0 0 0 -0.041,-0.106 13.107,13.107 0 0 1 -1.872,-0.892 0.077,0.077 0 0 1 -0.008,-0.128 10.2,10.2 0 0 0 0.372,-0.292 0.074,0.074 0 0 1 0.077,-0.01 c 3.928,1.793 8.1800004,1.793 12.0620004,0 a 0.074,0.074 0 0 1 0.078,0.01 c 0.12,0.098 0.246,0.198 0.373,0.292 a 0.077,0.077 0 0 1 -0.006,0.127 12.299,12.299 0 0 1 -1.873,0.892 0.077,0.077 0 0 0 -0.041,0.107 c 0.36,0.698 0.772,1.362 1.225,1.993 a 0.076,0.076 0 0 0 0.084,0.028 19.839,19.839 0 0 0 6.002,-3.03 0.077,0.077 0 0 0 0.032,-0.054 c 0.5,-5.177 -0.838,-9.6740003 -3.549,-13.6600003 a 0.061,0.061 0 0 0 -0.031,-0.03 z M 8.0204806,12.476365 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.956,-2.4190003 2.157,-2.4190003 1.21,0 2.1760004,1.096 2.1570004,2.4200003 0,1.333 -0.9560004,2.418 -2.1570004,2.418 z m 7.9750004,0 c -1.183,0 -2.157,-1.085 -2.157,-2.419 0,-1.3330003 0.955,-2.4190003 2.157,-2.4190003 1.21,0 2.176,1.096 2.157,2.4200003 0,1.333 -0.946,2.418 -2.157,2.418 z"
+     id="path1"
+     style="fill:#fdfdfd;fill-opacity:1" />
+</svg>
diff --git a/static/images/icons/favicon.png b/static/images/icons/favicon.png
new file mode 100644
index 0000000..98c7382
Binary files /dev/null and b/static/images/icons/favicon.png differ
diff --git a/static/images/memes/WhatDaDog.png b/static/images/memes/WhatDaDog.png
new file mode 100644
index 0000000..6692ea9
Binary files /dev/null and b/static/images/memes/WhatDaDog.png differ
diff --git a/static/images/spinning_cat/untitled_00001.png b/static/images/spinning_cat/untitled_00001.png
new file mode 100644
index 0000000..c3e9705
Binary files /dev/null and b/static/images/spinning_cat/untitled_00001.png differ
diff --git a/static/images/spinning_cat/untitled_00002.png b/static/images/spinning_cat/untitled_00002.png
new file mode 100644
index 0000000..e97882a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00002.png differ
diff --git a/static/images/spinning_cat/untitled_00003.png b/static/images/spinning_cat/untitled_00003.png
new file mode 100644
index 0000000..5e5222d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00003.png differ
diff --git a/static/images/spinning_cat/untitled_00004.png b/static/images/spinning_cat/untitled_00004.png
new file mode 100644
index 0000000..479cc13
Binary files /dev/null and b/static/images/spinning_cat/untitled_00004.png differ
diff --git a/static/images/spinning_cat/untitled_00005.png b/static/images/spinning_cat/untitled_00005.png
new file mode 100644
index 0000000..20e035e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00005.png differ
diff --git a/static/images/spinning_cat/untitled_00006.png b/static/images/spinning_cat/untitled_00006.png
new file mode 100644
index 0000000..0004dd2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00006.png differ
diff --git a/static/images/spinning_cat/untitled_00007.png b/static/images/spinning_cat/untitled_00007.png
new file mode 100644
index 0000000..100e75c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00007.png differ
diff --git a/static/images/spinning_cat/untitled_00008.png b/static/images/spinning_cat/untitled_00008.png
new file mode 100644
index 0000000..f7a36db
Binary files /dev/null and b/static/images/spinning_cat/untitled_00008.png differ
diff --git a/static/images/spinning_cat/untitled_00009.png b/static/images/spinning_cat/untitled_00009.png
new file mode 100644
index 0000000..d6952d2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00009.png differ
diff --git a/static/images/spinning_cat/untitled_00010.png b/static/images/spinning_cat/untitled_00010.png
new file mode 100644
index 0000000..dae3b73
Binary files /dev/null and b/static/images/spinning_cat/untitled_00010.png differ
diff --git a/static/images/spinning_cat/untitled_00011.png b/static/images/spinning_cat/untitled_00011.png
new file mode 100644
index 0000000..697810d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00011.png differ
diff --git a/static/images/spinning_cat/untitled_00012.png b/static/images/spinning_cat/untitled_00012.png
new file mode 100644
index 0000000..8997267
Binary files /dev/null and b/static/images/spinning_cat/untitled_00012.png differ
diff --git a/static/images/spinning_cat/untitled_00013.png b/static/images/spinning_cat/untitled_00013.png
new file mode 100644
index 0000000..384eb1f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00013.png differ
diff --git a/static/images/spinning_cat/untitled_00014.png b/static/images/spinning_cat/untitled_00014.png
new file mode 100644
index 0000000..aaf0be1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00014.png differ
diff --git a/static/images/spinning_cat/untitled_00015.png b/static/images/spinning_cat/untitled_00015.png
new file mode 100644
index 0000000..f48d1dd
Binary files /dev/null and b/static/images/spinning_cat/untitled_00015.png differ
diff --git a/static/images/spinning_cat/untitled_00016.png b/static/images/spinning_cat/untitled_00016.png
new file mode 100644
index 0000000..f48d1dd
Binary files /dev/null and b/static/images/spinning_cat/untitled_00016.png differ
diff --git a/static/images/spinning_cat/untitled_00017.png b/static/images/spinning_cat/untitled_00017.png
new file mode 100644
index 0000000..e62718f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00017.png differ
diff --git a/static/images/spinning_cat/untitled_00018.png b/static/images/spinning_cat/untitled_00018.png
new file mode 100644
index 0000000..ff16455
Binary files /dev/null and b/static/images/spinning_cat/untitled_00018.png differ
diff --git a/static/images/spinning_cat/untitled_00019.png b/static/images/spinning_cat/untitled_00019.png
new file mode 100644
index 0000000..4b283c1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00019.png differ
diff --git a/static/images/spinning_cat/untitled_00020.png b/static/images/spinning_cat/untitled_00020.png
new file mode 100644
index 0000000..5e3ac91
Binary files /dev/null and b/static/images/spinning_cat/untitled_00020.png differ
diff --git a/static/images/spinning_cat/untitled_00021.png b/static/images/spinning_cat/untitled_00021.png
new file mode 100644
index 0000000..809a77b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00021.png differ
diff --git a/static/images/spinning_cat/untitled_00022.png b/static/images/spinning_cat/untitled_00022.png
new file mode 100644
index 0000000..c713fa6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00022.png differ
diff --git a/static/images/spinning_cat/untitled_00023.png b/static/images/spinning_cat/untitled_00023.png
new file mode 100644
index 0000000..7d01933
Binary files /dev/null and b/static/images/spinning_cat/untitled_00023.png differ
diff --git a/static/images/spinning_cat/untitled_00024.png b/static/images/spinning_cat/untitled_00024.png
new file mode 100644
index 0000000..bf30ecc
Binary files /dev/null and b/static/images/spinning_cat/untitled_00024.png differ
diff --git a/static/images/spinning_cat/untitled_00025.png b/static/images/spinning_cat/untitled_00025.png
new file mode 100644
index 0000000..833e28c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00025.png differ
diff --git a/static/images/spinning_cat/untitled_00026.png b/static/images/spinning_cat/untitled_00026.png
new file mode 100644
index 0000000..613ed5b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00026.png differ
diff --git a/static/images/spinning_cat/untitled_00027.png b/static/images/spinning_cat/untitled_00027.png
new file mode 100644
index 0000000..021b641
Binary files /dev/null and b/static/images/spinning_cat/untitled_00027.png differ
diff --git a/static/images/spinning_cat/untitled_00028.png b/static/images/spinning_cat/untitled_00028.png
new file mode 100644
index 0000000..cf0e7bc
Binary files /dev/null and b/static/images/spinning_cat/untitled_00028.png differ
diff --git a/static/images/spinning_cat/untitled_00029.png b/static/images/spinning_cat/untitled_00029.png
new file mode 100644
index 0000000..e792734
Binary files /dev/null and b/static/images/spinning_cat/untitled_00029.png differ
diff --git a/static/images/spinning_cat/untitled_00030.png b/static/images/spinning_cat/untitled_00030.png
new file mode 100644
index 0000000..241070c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00030.png differ
diff --git a/static/images/spinning_cat/untitled_00031.png b/static/images/spinning_cat/untitled_00031.png
new file mode 100644
index 0000000..928c8a2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00031.png differ
diff --git a/static/images/spinning_cat/untitled_00032.png b/static/images/spinning_cat/untitled_00032.png
new file mode 100644
index 0000000..0324125
Binary files /dev/null and b/static/images/spinning_cat/untitled_00032.png differ
diff --git a/static/images/spinning_cat/untitled_00033.png b/static/images/spinning_cat/untitled_00033.png
new file mode 100644
index 0000000..7753305
Binary files /dev/null and b/static/images/spinning_cat/untitled_00033.png differ
diff --git a/static/images/spinning_cat/untitled_00034.png b/static/images/spinning_cat/untitled_00034.png
new file mode 100644
index 0000000..cc53fd2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00034.png differ
diff --git a/static/images/spinning_cat/untitled_00035.png b/static/images/spinning_cat/untitled_00035.png
new file mode 100644
index 0000000..fc97be8
Binary files /dev/null and b/static/images/spinning_cat/untitled_00035.png differ
diff --git a/static/images/spinning_cat/untitled_00036.png b/static/images/spinning_cat/untitled_00036.png
new file mode 100644
index 0000000..8684c2a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00036.png differ
diff --git a/static/images/spinning_cat/untitled_00037.png b/static/images/spinning_cat/untitled_00037.png
new file mode 100644
index 0000000..7c07102
Binary files /dev/null and b/static/images/spinning_cat/untitled_00037.png differ
diff --git a/static/images/spinning_cat/untitled_00038.png b/static/images/spinning_cat/untitled_00038.png
new file mode 100644
index 0000000..4d9fab5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00038.png differ
diff --git a/static/images/spinning_cat/untitled_00039.png b/static/images/spinning_cat/untitled_00039.png
new file mode 100644
index 0000000..5b08220
Binary files /dev/null and b/static/images/spinning_cat/untitled_00039.png differ
diff --git a/static/images/spinning_cat/untitled_00040.png b/static/images/spinning_cat/untitled_00040.png
new file mode 100644
index 0000000..3c258c1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00040.png differ
diff --git a/static/images/spinning_cat/untitled_00041.png b/static/images/spinning_cat/untitled_00041.png
new file mode 100644
index 0000000..f58e85b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00041.png differ
diff --git a/static/images/spinning_cat/untitled_00042.png b/static/images/spinning_cat/untitled_00042.png
new file mode 100644
index 0000000..b41e3e6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00042.png differ
diff --git a/static/images/spinning_cat/untitled_00043.png b/static/images/spinning_cat/untitled_00043.png
new file mode 100644
index 0000000..1335d66
Binary files /dev/null and b/static/images/spinning_cat/untitled_00043.png differ
diff --git a/static/images/spinning_cat/untitled_00044.png b/static/images/spinning_cat/untitled_00044.png
new file mode 100644
index 0000000..d42fbbb
Binary files /dev/null and b/static/images/spinning_cat/untitled_00044.png differ
diff --git a/static/images/spinning_cat/untitled_00045.png b/static/images/spinning_cat/untitled_00045.png
new file mode 100644
index 0000000..4b0392e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00045.png differ
diff --git a/static/images/spinning_cat/untitled_00046.png b/static/images/spinning_cat/untitled_00046.png
new file mode 100644
index 0000000..555e67b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00046.png differ
diff --git a/static/images/spinning_cat/untitled_00047.png b/static/images/spinning_cat/untitled_00047.png
new file mode 100644
index 0000000..c260abe
Binary files /dev/null and b/static/images/spinning_cat/untitled_00047.png differ
diff --git a/static/images/spinning_cat/untitled_00048.png b/static/images/spinning_cat/untitled_00048.png
new file mode 100644
index 0000000..edf177e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00048.png differ
diff --git a/static/images/spinning_cat/untitled_00049.png b/static/images/spinning_cat/untitled_00049.png
new file mode 100644
index 0000000..f6e56c6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00049.png differ
diff --git a/static/images/spinning_cat/untitled_00050.png b/static/images/spinning_cat/untitled_00050.png
new file mode 100644
index 0000000..8713cbc
Binary files /dev/null and b/static/images/spinning_cat/untitled_00050.png differ
diff --git a/static/images/spinning_cat/untitled_00051.png b/static/images/spinning_cat/untitled_00051.png
new file mode 100644
index 0000000..00947ce
Binary files /dev/null and b/static/images/spinning_cat/untitled_00051.png differ
diff --git a/static/images/spinning_cat/untitled_00052.png b/static/images/spinning_cat/untitled_00052.png
new file mode 100644
index 0000000..e506a98
Binary files /dev/null and b/static/images/spinning_cat/untitled_00052.png differ
diff --git a/static/images/spinning_cat/untitled_00053.png b/static/images/spinning_cat/untitled_00053.png
new file mode 100644
index 0000000..b1b5bf6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00053.png differ
diff --git a/static/images/spinning_cat/untitled_00054.png b/static/images/spinning_cat/untitled_00054.png
new file mode 100644
index 0000000..c07f815
Binary files /dev/null and b/static/images/spinning_cat/untitled_00054.png differ
diff --git a/static/images/spinning_cat/untitled_00055.png b/static/images/spinning_cat/untitled_00055.png
new file mode 100644
index 0000000..7af3c2e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00055.png differ
diff --git a/static/images/spinning_cat/untitled_00056.png b/static/images/spinning_cat/untitled_00056.png
new file mode 100644
index 0000000..9924cb7
Binary files /dev/null and b/static/images/spinning_cat/untitled_00056.png differ
diff --git a/static/images/spinning_cat/untitled_00057.png b/static/images/spinning_cat/untitled_00057.png
new file mode 100644
index 0000000..cbf971e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00057.png differ
diff --git a/static/images/spinning_cat/untitled_00058.png b/static/images/spinning_cat/untitled_00058.png
new file mode 100644
index 0000000..c35fef0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00058.png differ
diff --git a/static/images/spinning_cat/untitled_00059.png b/static/images/spinning_cat/untitled_00059.png
new file mode 100644
index 0000000..8684905
Binary files /dev/null and b/static/images/spinning_cat/untitled_00059.png differ
diff --git a/static/images/spinning_cat/untitled_00060.png b/static/images/spinning_cat/untitled_00060.png
new file mode 100644
index 0000000..44ae541
Binary files /dev/null and b/static/images/spinning_cat/untitled_00060.png differ
diff --git a/static/images/spinning_cat/untitled_00061.png b/static/images/spinning_cat/untitled_00061.png
new file mode 100644
index 0000000..47a6c71
Binary files /dev/null and b/static/images/spinning_cat/untitled_00061.png differ
diff --git a/static/images/spinning_cat/untitled_00062.png b/static/images/spinning_cat/untitled_00062.png
new file mode 100644
index 0000000..278b000
Binary files /dev/null and b/static/images/spinning_cat/untitled_00062.png differ
diff --git a/static/images/spinning_cat/untitled_00063.png b/static/images/spinning_cat/untitled_00063.png
new file mode 100644
index 0000000..49b5311
Binary files /dev/null and b/static/images/spinning_cat/untitled_00063.png differ
diff --git a/static/images/spinning_cat/untitled_00064.png b/static/images/spinning_cat/untitled_00064.png
new file mode 100644
index 0000000..92c36f2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00064.png differ
diff --git a/static/images/spinning_cat/untitled_00065.png b/static/images/spinning_cat/untitled_00065.png
new file mode 100644
index 0000000..4656eea
Binary files /dev/null and b/static/images/spinning_cat/untitled_00065.png differ
diff --git a/static/images/spinning_cat/untitled_00066.png b/static/images/spinning_cat/untitled_00066.png
new file mode 100644
index 0000000..8c0600c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00066.png differ
diff --git a/static/images/spinning_cat/untitled_00067.png b/static/images/spinning_cat/untitled_00067.png
new file mode 100644
index 0000000..7068ec5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00067.png differ
diff --git a/static/images/spinning_cat/untitled_00068.png b/static/images/spinning_cat/untitled_00068.png
new file mode 100644
index 0000000..24f169c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00068.png differ
diff --git a/static/images/spinning_cat/untitled_00069.png b/static/images/spinning_cat/untitled_00069.png
new file mode 100644
index 0000000..279e926
Binary files /dev/null and b/static/images/spinning_cat/untitled_00069.png differ
diff --git a/static/images/spinning_cat/untitled_00070.png b/static/images/spinning_cat/untitled_00070.png
new file mode 100644
index 0000000..8a8e5b8
Binary files /dev/null and b/static/images/spinning_cat/untitled_00070.png differ
diff --git a/static/images/spinning_cat/untitled_00071.png b/static/images/spinning_cat/untitled_00071.png
new file mode 100644
index 0000000..c9a8e3c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00071.png differ
diff --git a/static/images/spinning_cat/untitled_00072.png b/static/images/spinning_cat/untitled_00072.png
new file mode 100644
index 0000000..9234acb
Binary files /dev/null and b/static/images/spinning_cat/untitled_00072.png differ
diff --git a/static/images/spinning_cat/untitled_00073.png b/static/images/spinning_cat/untitled_00073.png
new file mode 100644
index 0000000..f9d28cf
Binary files /dev/null and b/static/images/spinning_cat/untitled_00073.png differ
diff --git a/static/images/spinning_cat/untitled_00074.png b/static/images/spinning_cat/untitled_00074.png
new file mode 100644
index 0000000..f05e4dc
Binary files /dev/null and b/static/images/spinning_cat/untitled_00074.png differ
diff --git a/static/images/spinning_cat/untitled_00075.png b/static/images/spinning_cat/untitled_00075.png
new file mode 100644
index 0000000..143959b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00075.png differ
diff --git a/static/images/spinning_cat/untitled_00076.png b/static/images/spinning_cat/untitled_00076.png
new file mode 100644
index 0000000..1a9a1b7
Binary files /dev/null and b/static/images/spinning_cat/untitled_00076.png differ
diff --git a/static/images/spinning_cat/untitled_00077.png b/static/images/spinning_cat/untitled_00077.png
new file mode 100644
index 0000000..4dfd4e6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00077.png differ
diff --git a/static/images/spinning_cat/untitled_00078.png b/static/images/spinning_cat/untitled_00078.png
new file mode 100644
index 0000000..bf2605b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00078.png differ
diff --git a/static/images/spinning_cat/untitled_00079.png b/static/images/spinning_cat/untitled_00079.png
new file mode 100644
index 0000000..326a00c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00079.png differ
diff --git a/static/images/spinning_cat/untitled_00080.png b/static/images/spinning_cat/untitled_00080.png
new file mode 100644
index 0000000..9e3f1c5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00080.png differ
diff --git a/static/images/spinning_cat/untitled_00081.png b/static/images/spinning_cat/untitled_00081.png
new file mode 100644
index 0000000..15832d5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00081.png differ
diff --git a/static/images/spinning_cat/untitled_00082.png b/static/images/spinning_cat/untitled_00082.png
new file mode 100644
index 0000000..36822d6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00082.png differ
diff --git a/static/images/spinning_cat/untitled_00083.png b/static/images/spinning_cat/untitled_00083.png
new file mode 100644
index 0000000..1dfcf6a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00083.png differ
diff --git a/static/images/spinning_cat/untitled_00084.png b/static/images/spinning_cat/untitled_00084.png
new file mode 100644
index 0000000..9b6d84a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00084.png differ
diff --git a/static/images/spinning_cat/untitled_00085.png b/static/images/spinning_cat/untitled_00085.png
new file mode 100644
index 0000000..fc01a90
Binary files /dev/null and b/static/images/spinning_cat/untitled_00085.png differ
diff --git a/static/images/spinning_cat/untitled_00086.png b/static/images/spinning_cat/untitled_00086.png
new file mode 100644
index 0000000..6db519e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00086.png differ
diff --git a/static/images/spinning_cat/untitled_00087.png b/static/images/spinning_cat/untitled_00087.png
new file mode 100644
index 0000000..8cca462
Binary files /dev/null and b/static/images/spinning_cat/untitled_00087.png differ
diff --git a/static/images/spinning_cat/untitled_00088.png b/static/images/spinning_cat/untitled_00088.png
new file mode 100644
index 0000000..1ac3ac6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00088.png differ
diff --git a/static/images/spinning_cat/untitled_00089.png b/static/images/spinning_cat/untitled_00089.png
new file mode 100644
index 0000000..1ac3ac6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00089.png differ
diff --git a/static/images/spinning_cat/untitled_00090.png b/static/images/spinning_cat/untitled_00090.png
new file mode 100644
index 0000000..609050a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00090.png differ
diff --git a/static/images/spinning_cat/untitled_00091.png b/static/images/spinning_cat/untitled_00091.png
new file mode 100644
index 0000000..609050a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00091.png differ
diff --git a/static/images/spinning_cat/untitled_00092.png b/static/images/spinning_cat/untitled_00092.png
new file mode 100644
index 0000000..609050a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00092.png differ
diff --git a/static/images/spinning_cat/untitled_00093.png b/static/images/spinning_cat/untitled_00093.png
new file mode 100644
index 0000000..609050a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00093.png differ
diff --git a/static/images/spinning_cat/untitled_00094.png b/static/images/spinning_cat/untitled_00094.png
new file mode 100644
index 0000000..609050a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00094.png differ
diff --git a/static/images/spinning_cat/untitled_00095.png b/static/images/spinning_cat/untitled_00095.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00095.png differ
diff --git a/static/images/spinning_cat/untitled_00096.png b/static/images/spinning_cat/untitled_00096.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00096.png differ
diff --git a/static/images/spinning_cat/untitled_00097.png b/static/images/spinning_cat/untitled_00097.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00097.png differ
diff --git a/static/images/spinning_cat/untitled_00098.png b/static/images/spinning_cat/untitled_00098.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00098.png differ
diff --git a/static/images/spinning_cat/untitled_00099.png b/static/images/spinning_cat/untitled_00099.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00099.png differ
diff --git a/static/images/spinning_cat/untitled_00100.png b/static/images/spinning_cat/untitled_00100.png
new file mode 100644
index 0000000..3b51499
Binary files /dev/null and b/static/images/spinning_cat/untitled_00100.png differ
diff --git a/static/images/spinning_cat/untitled_00101.png b/static/images/spinning_cat/untitled_00101.png
new file mode 100644
index 0000000..f8e4205
Binary files /dev/null and b/static/images/spinning_cat/untitled_00101.png differ
diff --git a/static/images/spinning_cat/untitled_00102.png b/static/images/spinning_cat/untitled_00102.png
new file mode 100644
index 0000000..3c4f4ef
Binary files /dev/null and b/static/images/spinning_cat/untitled_00102.png differ
diff --git a/static/images/spinning_cat/untitled_00103.png b/static/images/spinning_cat/untitled_00103.png
new file mode 100644
index 0000000..1971022
Binary files /dev/null and b/static/images/spinning_cat/untitled_00103.png differ
diff --git a/static/images/spinning_cat/untitled_00104.png b/static/images/spinning_cat/untitled_00104.png
new file mode 100644
index 0000000..0d12d11
Binary files /dev/null and b/static/images/spinning_cat/untitled_00104.png differ
diff --git a/static/images/spinning_cat/untitled_00105.png b/static/images/spinning_cat/untitled_00105.png
new file mode 100644
index 0000000..103ff40
Binary files /dev/null and b/static/images/spinning_cat/untitled_00105.png differ
diff --git a/static/images/spinning_cat/untitled_00106.png b/static/images/spinning_cat/untitled_00106.png
new file mode 100644
index 0000000..40ca74b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00106.png differ
diff --git a/static/images/spinning_cat/untitled_00107.png b/static/images/spinning_cat/untitled_00107.png
new file mode 100644
index 0000000..1d5d420
Binary files /dev/null and b/static/images/spinning_cat/untitled_00107.png differ
diff --git a/static/images/spinning_cat/untitled_00108.png b/static/images/spinning_cat/untitled_00108.png
new file mode 100644
index 0000000..811116b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00108.png differ
diff --git a/static/images/spinning_cat/untitled_00109.png b/static/images/spinning_cat/untitled_00109.png
new file mode 100644
index 0000000..7713f2d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00109.png differ
diff --git a/static/images/spinning_cat/untitled_00110.png b/static/images/spinning_cat/untitled_00110.png
new file mode 100644
index 0000000..be86ea3
Binary files /dev/null and b/static/images/spinning_cat/untitled_00110.png differ
diff --git a/static/images/spinning_cat/untitled_00111.png b/static/images/spinning_cat/untitled_00111.png
new file mode 100644
index 0000000..c768224
Binary files /dev/null and b/static/images/spinning_cat/untitled_00111.png differ
diff --git a/static/images/spinning_cat/untitled_00112.png b/static/images/spinning_cat/untitled_00112.png
new file mode 100644
index 0000000..1c590b5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00112.png differ
diff --git a/static/images/spinning_cat/untitled_00113.png b/static/images/spinning_cat/untitled_00113.png
new file mode 100644
index 0000000..f1b2a7f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00113.png differ
diff --git a/static/images/spinning_cat/untitled_00114.png b/static/images/spinning_cat/untitled_00114.png
new file mode 100644
index 0000000..742c900
Binary files /dev/null and b/static/images/spinning_cat/untitled_00114.png differ
diff --git a/static/images/spinning_cat/untitled_00115.png b/static/images/spinning_cat/untitled_00115.png
new file mode 100644
index 0000000..1241d94
Binary files /dev/null and b/static/images/spinning_cat/untitled_00115.png differ
diff --git a/static/images/spinning_cat/untitled_00116.png b/static/images/spinning_cat/untitled_00116.png
new file mode 100644
index 0000000..ba90c4e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00116.png differ
diff --git a/static/images/spinning_cat/untitled_00117.png b/static/images/spinning_cat/untitled_00117.png
new file mode 100644
index 0000000..1e44b8f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00117.png differ
diff --git a/static/images/spinning_cat/untitled_00118.png b/static/images/spinning_cat/untitled_00118.png
new file mode 100644
index 0000000..a7dd3fb
Binary files /dev/null and b/static/images/spinning_cat/untitled_00118.png differ
diff --git a/static/images/spinning_cat/untitled_00119.png b/static/images/spinning_cat/untitled_00119.png
new file mode 100644
index 0000000..dc85e56
Binary files /dev/null and b/static/images/spinning_cat/untitled_00119.png differ
diff --git a/static/images/spinning_cat/untitled_00120.png b/static/images/spinning_cat/untitled_00120.png
new file mode 100644
index 0000000..262d1ba
Binary files /dev/null and b/static/images/spinning_cat/untitled_00120.png differ
diff --git a/static/images/spinning_cat/untitled_00121.png b/static/images/spinning_cat/untitled_00121.png
new file mode 100644
index 0000000..be88607
Binary files /dev/null and b/static/images/spinning_cat/untitled_00121.png differ
diff --git a/static/images/spinning_cat/untitled_00122.png b/static/images/spinning_cat/untitled_00122.png
new file mode 100644
index 0000000..9e4779f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00122.png differ
diff --git a/static/images/spinning_cat/untitled_00123.png b/static/images/spinning_cat/untitled_00123.png
new file mode 100644
index 0000000..26cdfd7
Binary files /dev/null and b/static/images/spinning_cat/untitled_00123.png differ
diff --git a/static/images/spinning_cat/untitled_00124.png b/static/images/spinning_cat/untitled_00124.png
new file mode 100644
index 0000000..9b719f4
Binary files /dev/null and b/static/images/spinning_cat/untitled_00124.png differ
diff --git a/static/images/spinning_cat/untitled_00125.png b/static/images/spinning_cat/untitled_00125.png
new file mode 100644
index 0000000..e25a293
Binary files /dev/null and b/static/images/spinning_cat/untitled_00125.png differ
diff --git a/static/images/spinning_cat/untitled_00126.png b/static/images/spinning_cat/untitled_00126.png
new file mode 100644
index 0000000..4e9537a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00126.png differ
diff --git a/static/images/spinning_cat/untitled_00127.png b/static/images/spinning_cat/untitled_00127.png
new file mode 100644
index 0000000..83b7cb8
Binary files /dev/null and b/static/images/spinning_cat/untitled_00127.png differ
diff --git a/static/images/spinning_cat/untitled_00128.png b/static/images/spinning_cat/untitled_00128.png
new file mode 100644
index 0000000..8842164
Binary files /dev/null and b/static/images/spinning_cat/untitled_00128.png differ
diff --git a/static/images/spinning_cat/untitled_00129.png b/static/images/spinning_cat/untitled_00129.png
new file mode 100644
index 0000000..5c3b3ad
Binary files /dev/null and b/static/images/spinning_cat/untitled_00129.png differ
diff --git a/static/images/spinning_cat/untitled_00130.png b/static/images/spinning_cat/untitled_00130.png
new file mode 100644
index 0000000..784bd11
Binary files /dev/null and b/static/images/spinning_cat/untitled_00130.png differ
diff --git a/static/images/spinning_cat/untitled_00131.png b/static/images/spinning_cat/untitled_00131.png
new file mode 100644
index 0000000..5bf75e4
Binary files /dev/null and b/static/images/spinning_cat/untitled_00131.png differ
diff --git a/static/images/spinning_cat/untitled_00132.png b/static/images/spinning_cat/untitled_00132.png
new file mode 100644
index 0000000..4823d42
Binary files /dev/null and b/static/images/spinning_cat/untitled_00132.png differ
diff --git a/static/images/spinning_cat/untitled_00133.png b/static/images/spinning_cat/untitled_00133.png
new file mode 100644
index 0000000..8ce0335
Binary files /dev/null and b/static/images/spinning_cat/untitled_00133.png differ
diff --git a/static/images/spinning_cat/untitled_00134.png b/static/images/spinning_cat/untitled_00134.png
new file mode 100644
index 0000000..028089d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00134.png differ
diff --git a/static/images/spinning_cat/untitled_00135.png b/static/images/spinning_cat/untitled_00135.png
new file mode 100644
index 0000000..aa64f87
Binary files /dev/null and b/static/images/spinning_cat/untitled_00135.png differ
diff --git a/static/images/spinning_cat/untitled_00136.png b/static/images/spinning_cat/untitled_00136.png
new file mode 100644
index 0000000..f5646c8
Binary files /dev/null and b/static/images/spinning_cat/untitled_00136.png differ
diff --git a/static/images/spinning_cat/untitled_00137.png b/static/images/spinning_cat/untitled_00137.png
new file mode 100644
index 0000000..6f8e43a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00137.png differ
diff --git a/static/images/spinning_cat/untitled_00138.png b/static/images/spinning_cat/untitled_00138.png
new file mode 100644
index 0000000..0aeb8a5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00138.png differ
diff --git a/static/images/spinning_cat/untitled_00139.png b/static/images/spinning_cat/untitled_00139.png
new file mode 100644
index 0000000..9d7d2bc
Binary files /dev/null and b/static/images/spinning_cat/untitled_00139.png differ
diff --git a/static/images/spinning_cat/untitled_00140.png b/static/images/spinning_cat/untitled_00140.png
new file mode 100644
index 0000000..d8eef46
Binary files /dev/null and b/static/images/spinning_cat/untitled_00140.png differ
diff --git a/static/images/spinning_cat/untitled_00141.png b/static/images/spinning_cat/untitled_00141.png
new file mode 100644
index 0000000..d965a87
Binary files /dev/null and b/static/images/spinning_cat/untitled_00141.png differ
diff --git a/static/images/spinning_cat/untitled_00142.png b/static/images/spinning_cat/untitled_00142.png
new file mode 100644
index 0000000..0d43990
Binary files /dev/null and b/static/images/spinning_cat/untitled_00142.png differ
diff --git a/static/images/spinning_cat/untitled_00143.png b/static/images/spinning_cat/untitled_00143.png
new file mode 100644
index 0000000..9eb8239
Binary files /dev/null and b/static/images/spinning_cat/untitled_00143.png differ
diff --git a/static/images/spinning_cat/untitled_00144.png b/static/images/spinning_cat/untitled_00144.png
new file mode 100644
index 0000000..8586c8f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00144.png differ
diff --git a/static/images/spinning_cat/untitled_00145.png b/static/images/spinning_cat/untitled_00145.png
new file mode 100644
index 0000000..ab6cce6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00145.png differ
diff --git a/static/images/spinning_cat/untitled_00146.png b/static/images/spinning_cat/untitled_00146.png
new file mode 100644
index 0000000..61d8c19
Binary files /dev/null and b/static/images/spinning_cat/untitled_00146.png differ
diff --git a/static/images/spinning_cat/untitled_00147.png b/static/images/spinning_cat/untitled_00147.png
new file mode 100644
index 0000000..4365b03
Binary files /dev/null and b/static/images/spinning_cat/untitled_00147.png differ
diff --git a/static/images/spinning_cat/untitled_00148.png b/static/images/spinning_cat/untitled_00148.png
new file mode 100644
index 0000000..9f5159c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00148.png differ
diff --git a/static/images/spinning_cat/untitled_00149.png b/static/images/spinning_cat/untitled_00149.png
new file mode 100644
index 0000000..1ac4431
Binary files /dev/null and b/static/images/spinning_cat/untitled_00149.png differ
diff --git a/static/images/spinning_cat/untitled_00150.png b/static/images/spinning_cat/untitled_00150.png
new file mode 100644
index 0000000..cf042e0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00150.png differ
diff --git a/static/images/spinning_cat/untitled_00151.png b/static/images/spinning_cat/untitled_00151.png
new file mode 100644
index 0000000..91ca290
Binary files /dev/null and b/static/images/spinning_cat/untitled_00151.png differ
diff --git a/static/images/spinning_cat/untitled_00152.png b/static/images/spinning_cat/untitled_00152.png
new file mode 100644
index 0000000..23a9c30
Binary files /dev/null and b/static/images/spinning_cat/untitled_00152.png differ
diff --git a/static/images/spinning_cat/untitled_00153.png b/static/images/spinning_cat/untitled_00153.png
new file mode 100644
index 0000000..8b041ba
Binary files /dev/null and b/static/images/spinning_cat/untitled_00153.png differ
diff --git a/static/images/spinning_cat/untitled_00154.png b/static/images/spinning_cat/untitled_00154.png
new file mode 100644
index 0000000..37a4e66
Binary files /dev/null and b/static/images/spinning_cat/untitled_00154.png differ
diff --git a/static/images/spinning_cat/untitled_00155.png b/static/images/spinning_cat/untitled_00155.png
new file mode 100644
index 0000000..4f5121a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00155.png differ
diff --git a/static/images/spinning_cat/untitled_00156.png b/static/images/spinning_cat/untitled_00156.png
new file mode 100644
index 0000000..618e1bf
Binary files /dev/null and b/static/images/spinning_cat/untitled_00156.png differ
diff --git a/static/images/spinning_cat/untitled_00157.png b/static/images/spinning_cat/untitled_00157.png
new file mode 100644
index 0000000..5035f10
Binary files /dev/null and b/static/images/spinning_cat/untitled_00157.png differ
diff --git a/static/images/spinning_cat/untitled_00158.png b/static/images/spinning_cat/untitled_00158.png
new file mode 100644
index 0000000..5ade8e9
Binary files /dev/null and b/static/images/spinning_cat/untitled_00158.png differ
diff --git a/static/images/spinning_cat/untitled_00159.png b/static/images/spinning_cat/untitled_00159.png
new file mode 100644
index 0000000..bea236a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00159.png differ
diff --git a/static/images/spinning_cat/untitled_00160.png b/static/images/spinning_cat/untitled_00160.png
new file mode 100644
index 0000000..95be0bb
Binary files /dev/null and b/static/images/spinning_cat/untitled_00160.png differ
diff --git a/static/images/spinning_cat/untitled_00161.png b/static/images/spinning_cat/untitled_00161.png
new file mode 100644
index 0000000..fe66742
Binary files /dev/null and b/static/images/spinning_cat/untitled_00161.png differ
diff --git a/static/images/spinning_cat/untitled_00162.png b/static/images/spinning_cat/untitled_00162.png
new file mode 100644
index 0000000..861871d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00162.png differ
diff --git a/static/images/spinning_cat/untitled_00163.png b/static/images/spinning_cat/untitled_00163.png
new file mode 100644
index 0000000..861871d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00163.png differ
diff --git a/static/images/spinning_cat/untitled_00164.png b/static/images/spinning_cat/untitled_00164.png
new file mode 100644
index 0000000..861871d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00164.png differ
diff --git a/static/images/spinning_cat/untitled_00165.png b/static/images/spinning_cat/untitled_00165.png
new file mode 100644
index 0000000..861871d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00165.png differ
diff --git a/static/images/spinning_cat/untitled_00166.png b/static/images/spinning_cat/untitled_00166.png
new file mode 100644
index 0000000..070d5ae
Binary files /dev/null and b/static/images/spinning_cat/untitled_00166.png differ
diff --git a/static/images/spinning_cat/untitled_00167.png b/static/images/spinning_cat/untitled_00167.png
new file mode 100644
index 0000000..946ff27
Binary files /dev/null and b/static/images/spinning_cat/untitled_00167.png differ
diff --git a/static/images/spinning_cat/untitled_00168.png b/static/images/spinning_cat/untitled_00168.png
new file mode 100644
index 0000000..a652134
Binary files /dev/null and b/static/images/spinning_cat/untitled_00168.png differ
diff --git a/static/images/spinning_cat/untitled_00169.png b/static/images/spinning_cat/untitled_00169.png
new file mode 100644
index 0000000..f9844d0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00169.png differ
diff --git a/static/images/spinning_cat/untitled_00170.png b/static/images/spinning_cat/untitled_00170.png
new file mode 100644
index 0000000..180cbe1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00170.png differ
diff --git a/static/images/spinning_cat/untitled_00171.png b/static/images/spinning_cat/untitled_00171.png
new file mode 100644
index 0000000..180cbe1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00171.png differ
diff --git a/static/images/spinning_cat/untitled_00172.png b/static/images/spinning_cat/untitled_00172.png
new file mode 100644
index 0000000..3863172
Binary files /dev/null and b/static/images/spinning_cat/untitled_00172.png differ
diff --git a/static/images/spinning_cat/untitled_00173.png b/static/images/spinning_cat/untitled_00173.png
new file mode 100644
index 0000000..0b2d35a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00173.png differ
diff --git a/static/images/spinning_cat/untitled_00174.png b/static/images/spinning_cat/untitled_00174.png
new file mode 100644
index 0000000..0b2d35a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00174.png differ
diff --git a/static/images/spinning_cat/untitled_00175.png b/static/images/spinning_cat/untitled_00175.png
new file mode 100644
index 0000000..9504671
Binary files /dev/null and b/static/images/spinning_cat/untitled_00175.png differ
diff --git a/static/images/spinning_cat/untitled_00176.png b/static/images/spinning_cat/untitled_00176.png
new file mode 100644
index 0000000..cf3ebbe
Binary files /dev/null and b/static/images/spinning_cat/untitled_00176.png differ
diff --git a/static/images/spinning_cat/untitled_00177.png b/static/images/spinning_cat/untitled_00177.png
new file mode 100644
index 0000000..2cf6203
Binary files /dev/null and b/static/images/spinning_cat/untitled_00177.png differ
diff --git a/static/images/spinning_cat/untitled_00178.png b/static/images/spinning_cat/untitled_00178.png
new file mode 100644
index 0000000..e9c9692
Binary files /dev/null and b/static/images/spinning_cat/untitled_00178.png differ
diff --git a/static/images/spinning_cat/untitled_00179.png b/static/images/spinning_cat/untitled_00179.png
new file mode 100644
index 0000000..77b0319
Binary files /dev/null and b/static/images/spinning_cat/untitled_00179.png differ
diff --git a/static/images/spinning_cat/untitled_00180.png b/static/images/spinning_cat/untitled_00180.png
new file mode 100644
index 0000000..307b111
Binary files /dev/null and b/static/images/spinning_cat/untitled_00180.png differ
diff --git a/static/images/spinning_cat/untitled_00181.png b/static/images/spinning_cat/untitled_00181.png
new file mode 100644
index 0000000..0152a52
Binary files /dev/null and b/static/images/spinning_cat/untitled_00181.png differ
diff --git a/static/images/spinning_cat/untitled_00182.png b/static/images/spinning_cat/untitled_00182.png
new file mode 100644
index 0000000..d1d3a82
Binary files /dev/null and b/static/images/spinning_cat/untitled_00182.png differ
diff --git a/static/images/spinning_cat/untitled_00183.png b/static/images/spinning_cat/untitled_00183.png
new file mode 100644
index 0000000..4b976e2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00183.png differ
diff --git a/static/images/spinning_cat/untitled_00184.png b/static/images/spinning_cat/untitled_00184.png
new file mode 100644
index 0000000..75fb852
Binary files /dev/null and b/static/images/spinning_cat/untitled_00184.png differ
diff --git a/static/images/spinning_cat/untitled_00185.png b/static/images/spinning_cat/untitled_00185.png
new file mode 100644
index 0000000..4355971
Binary files /dev/null and b/static/images/spinning_cat/untitled_00185.png differ
diff --git a/static/images/spinning_cat/untitled_00186.png b/static/images/spinning_cat/untitled_00186.png
new file mode 100644
index 0000000..a2bf6e9
Binary files /dev/null and b/static/images/spinning_cat/untitled_00186.png differ
diff --git a/static/images/spinning_cat/untitled_00187.png b/static/images/spinning_cat/untitled_00187.png
new file mode 100644
index 0000000..4b976e2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00187.png differ
diff --git a/static/images/spinning_cat/untitled_00188.png b/static/images/spinning_cat/untitled_00188.png
new file mode 100644
index 0000000..47eda65
Binary files /dev/null and b/static/images/spinning_cat/untitled_00188.png differ
diff --git a/static/images/spinning_cat/untitled_00189.png b/static/images/spinning_cat/untitled_00189.png
new file mode 100644
index 0000000..df3bb27
Binary files /dev/null and b/static/images/spinning_cat/untitled_00189.png differ
diff --git a/static/images/spinning_cat/untitled_00190.png b/static/images/spinning_cat/untitled_00190.png
new file mode 100644
index 0000000..55a4a72
Binary files /dev/null and b/static/images/spinning_cat/untitled_00190.png differ
diff --git a/static/images/spinning_cat/untitled_00191.png b/static/images/spinning_cat/untitled_00191.png
new file mode 100644
index 0000000..f1d6020
Binary files /dev/null and b/static/images/spinning_cat/untitled_00191.png differ
diff --git a/static/images/spinning_cat/untitled_00192.png b/static/images/spinning_cat/untitled_00192.png
new file mode 100644
index 0000000..a65edcd
Binary files /dev/null and b/static/images/spinning_cat/untitled_00192.png differ
diff --git a/static/images/spinning_cat/untitled_00193.png b/static/images/spinning_cat/untitled_00193.png
new file mode 100644
index 0000000..d01464a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00193.png differ
diff --git a/static/images/spinning_cat/untitled_00194.png b/static/images/spinning_cat/untitled_00194.png
new file mode 100644
index 0000000..2093c88
Binary files /dev/null and b/static/images/spinning_cat/untitled_00194.png differ
diff --git a/static/images/spinning_cat/untitled_00195.png b/static/images/spinning_cat/untitled_00195.png
new file mode 100644
index 0000000..76b77a2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00195.png differ
diff --git a/static/images/spinning_cat/untitled_00196.png b/static/images/spinning_cat/untitled_00196.png
new file mode 100644
index 0000000..57bc685
Binary files /dev/null and b/static/images/spinning_cat/untitled_00196.png differ
diff --git a/static/images/spinning_cat/untitled_00197.png b/static/images/spinning_cat/untitled_00197.png
new file mode 100644
index 0000000..c7acef6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00197.png differ
diff --git a/static/images/spinning_cat/untitled_00198.png b/static/images/spinning_cat/untitled_00198.png
new file mode 100644
index 0000000..88cccc9
Binary files /dev/null and b/static/images/spinning_cat/untitled_00198.png differ
diff --git a/static/images/spinning_cat/untitled_00199.png b/static/images/spinning_cat/untitled_00199.png
new file mode 100644
index 0000000..26d8a17
Binary files /dev/null and b/static/images/spinning_cat/untitled_00199.png differ
diff --git a/static/images/spinning_cat/untitled_00200.png b/static/images/spinning_cat/untitled_00200.png
new file mode 100644
index 0000000..64c297e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00200.png differ
diff --git a/static/images/spinning_cat/untitled_00201.png b/static/images/spinning_cat/untitled_00201.png
new file mode 100644
index 0000000..5219ab3
Binary files /dev/null and b/static/images/spinning_cat/untitled_00201.png differ
diff --git a/static/images/spinning_cat/untitled_00202.png b/static/images/spinning_cat/untitled_00202.png
new file mode 100644
index 0000000..272de37
Binary files /dev/null and b/static/images/spinning_cat/untitled_00202.png differ
diff --git a/static/images/spinning_cat/untitled_00203.png b/static/images/spinning_cat/untitled_00203.png
new file mode 100644
index 0000000..45eb47a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00203.png differ
diff --git a/static/images/spinning_cat/untitled_00204.png b/static/images/spinning_cat/untitled_00204.png
new file mode 100644
index 0000000..76d5172
Binary files /dev/null and b/static/images/spinning_cat/untitled_00204.png differ
diff --git a/static/images/spinning_cat/untitled_00205.png b/static/images/spinning_cat/untitled_00205.png
new file mode 100644
index 0000000..e55ad3e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00205.png differ
diff --git a/static/images/spinning_cat/untitled_00206.png b/static/images/spinning_cat/untitled_00206.png
new file mode 100644
index 0000000..96736af
Binary files /dev/null and b/static/images/spinning_cat/untitled_00206.png differ
diff --git a/static/images/spinning_cat/untitled_00207.png b/static/images/spinning_cat/untitled_00207.png
new file mode 100644
index 0000000..269375f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00207.png differ
diff --git a/static/images/spinning_cat/untitled_00208.png b/static/images/spinning_cat/untitled_00208.png
new file mode 100644
index 0000000..3fd4e45
Binary files /dev/null and b/static/images/spinning_cat/untitled_00208.png differ
diff --git a/static/images/spinning_cat/untitled_00209.png b/static/images/spinning_cat/untitled_00209.png
new file mode 100644
index 0000000..1cb988b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00209.png differ
diff --git a/static/images/spinning_cat/untitled_00210.png b/static/images/spinning_cat/untitled_00210.png
new file mode 100644
index 0000000..5e6683c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00210.png differ
diff --git a/static/images/spinning_cat/untitled_00211.png b/static/images/spinning_cat/untitled_00211.png
new file mode 100644
index 0000000..03f7eac
Binary files /dev/null and b/static/images/spinning_cat/untitled_00211.png differ
diff --git a/static/images/spinning_cat/untitled_00212.png b/static/images/spinning_cat/untitled_00212.png
new file mode 100644
index 0000000..f17d929
Binary files /dev/null and b/static/images/spinning_cat/untitled_00212.png differ
diff --git a/static/images/spinning_cat/untitled_00213.png b/static/images/spinning_cat/untitled_00213.png
new file mode 100644
index 0000000..2ec308d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00213.png differ
diff --git a/static/images/spinning_cat/untitled_00214.png b/static/images/spinning_cat/untitled_00214.png
new file mode 100644
index 0000000..4936796
Binary files /dev/null and b/static/images/spinning_cat/untitled_00214.png differ
diff --git a/static/images/spinning_cat/untitled_00215.png b/static/images/spinning_cat/untitled_00215.png
new file mode 100644
index 0000000..54bc470
Binary files /dev/null and b/static/images/spinning_cat/untitled_00215.png differ
diff --git a/static/images/spinning_cat/untitled_00216.png b/static/images/spinning_cat/untitled_00216.png
new file mode 100644
index 0000000..1684514
Binary files /dev/null and b/static/images/spinning_cat/untitled_00216.png differ
diff --git a/static/images/spinning_cat/untitled_00217.png b/static/images/spinning_cat/untitled_00217.png
new file mode 100644
index 0000000..1d112a6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00217.png differ
diff --git a/static/images/spinning_cat/untitled_00218.png b/static/images/spinning_cat/untitled_00218.png
new file mode 100644
index 0000000..a11764b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00218.png differ
diff --git a/static/images/spinning_cat/untitled_00219.png b/static/images/spinning_cat/untitled_00219.png
new file mode 100644
index 0000000..6a0b000
Binary files /dev/null and b/static/images/spinning_cat/untitled_00219.png differ
diff --git a/static/images/spinning_cat/untitled_00220.png b/static/images/spinning_cat/untitled_00220.png
new file mode 100644
index 0000000..15fd481
Binary files /dev/null and b/static/images/spinning_cat/untitled_00220.png differ
diff --git a/static/images/spinning_cat/untitled_00221.png b/static/images/spinning_cat/untitled_00221.png
new file mode 100644
index 0000000..6f17839
Binary files /dev/null and b/static/images/spinning_cat/untitled_00221.png differ
diff --git a/static/images/spinning_cat/untitled_00222.png b/static/images/spinning_cat/untitled_00222.png
new file mode 100644
index 0000000..beccf16
Binary files /dev/null and b/static/images/spinning_cat/untitled_00222.png differ
diff --git a/static/images/spinning_cat/untitled_00223.png b/static/images/spinning_cat/untitled_00223.png
new file mode 100644
index 0000000..b7ce027
Binary files /dev/null and b/static/images/spinning_cat/untitled_00223.png differ
diff --git a/static/images/spinning_cat/untitled_00224.png b/static/images/spinning_cat/untitled_00224.png
new file mode 100644
index 0000000..9715ca1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00224.png differ
diff --git a/static/images/spinning_cat/untitled_00225.png b/static/images/spinning_cat/untitled_00225.png
new file mode 100644
index 0000000..bb410ec
Binary files /dev/null and b/static/images/spinning_cat/untitled_00225.png differ
diff --git a/static/images/spinning_cat/untitled_00226.png b/static/images/spinning_cat/untitled_00226.png
new file mode 100644
index 0000000..6957aee
Binary files /dev/null and b/static/images/spinning_cat/untitled_00226.png differ
diff --git a/static/images/spinning_cat/untitled_00227.png b/static/images/spinning_cat/untitled_00227.png
new file mode 100644
index 0000000..1414956
Binary files /dev/null and b/static/images/spinning_cat/untitled_00227.png differ
diff --git a/static/images/spinning_cat/untitled_00228.png b/static/images/spinning_cat/untitled_00228.png
new file mode 100644
index 0000000..889823e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00228.png differ
diff --git a/static/images/spinning_cat/untitled_00229.png b/static/images/spinning_cat/untitled_00229.png
new file mode 100644
index 0000000..ed4bba5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00229.png differ
diff --git a/static/images/spinning_cat/untitled_00230.png b/static/images/spinning_cat/untitled_00230.png
new file mode 100644
index 0000000..0db688c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00230.png differ
diff --git a/static/images/spinning_cat/untitled_00231.png b/static/images/spinning_cat/untitled_00231.png
new file mode 100644
index 0000000..9759c05
Binary files /dev/null and b/static/images/spinning_cat/untitled_00231.png differ
diff --git a/static/images/spinning_cat/untitled_00232.png b/static/images/spinning_cat/untitled_00232.png
new file mode 100644
index 0000000..e78944a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00232.png differ
diff --git a/static/images/spinning_cat/untitled_00233.png b/static/images/spinning_cat/untitled_00233.png
new file mode 100644
index 0000000..b7fac50
Binary files /dev/null and b/static/images/spinning_cat/untitled_00233.png differ
diff --git a/static/images/spinning_cat/untitled_00234.png b/static/images/spinning_cat/untitled_00234.png
new file mode 100644
index 0000000..d2e712a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00234.png differ
diff --git a/static/images/spinning_cat/untitled_00235.png b/static/images/spinning_cat/untitled_00235.png
new file mode 100644
index 0000000..21cd07a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00235.png differ
diff --git a/static/images/spinning_cat/untitled_00236.png b/static/images/spinning_cat/untitled_00236.png
new file mode 100644
index 0000000..2df4dbe
Binary files /dev/null and b/static/images/spinning_cat/untitled_00236.png differ
diff --git a/static/images/spinning_cat/untitled_00237.png b/static/images/spinning_cat/untitled_00237.png
new file mode 100644
index 0000000..1d99041
Binary files /dev/null and b/static/images/spinning_cat/untitled_00237.png differ
diff --git a/static/images/spinning_cat/untitled_00238.png b/static/images/spinning_cat/untitled_00238.png
new file mode 100644
index 0000000..2434acf
Binary files /dev/null and b/static/images/spinning_cat/untitled_00238.png differ
diff --git a/static/images/spinning_cat/untitled_00239.png b/static/images/spinning_cat/untitled_00239.png
new file mode 100644
index 0000000..41d3c23
Binary files /dev/null and b/static/images/spinning_cat/untitled_00239.png differ
diff --git a/static/images/spinning_cat/untitled_00240.png b/static/images/spinning_cat/untitled_00240.png
new file mode 100644
index 0000000..fe9b196
Binary files /dev/null and b/static/images/spinning_cat/untitled_00240.png differ
diff --git a/static/images/spinning_cat/untitled_00241.png b/static/images/spinning_cat/untitled_00241.png
new file mode 100644
index 0000000..102ca17
Binary files /dev/null and b/static/images/spinning_cat/untitled_00241.png differ
diff --git a/static/images/spinning_cat/untitled_00242.png b/static/images/spinning_cat/untitled_00242.png
new file mode 100644
index 0000000..68975d9
Binary files /dev/null and b/static/images/spinning_cat/untitled_00242.png differ
diff --git a/static/images/spinning_cat/untitled_00243.png b/static/images/spinning_cat/untitled_00243.png
new file mode 100644
index 0000000..1bd89eb
Binary files /dev/null and b/static/images/spinning_cat/untitled_00243.png differ
diff --git a/static/images/spinning_cat/untitled_00244.png b/static/images/spinning_cat/untitled_00244.png
new file mode 100644
index 0000000..8a3f611
Binary files /dev/null and b/static/images/spinning_cat/untitled_00244.png differ
diff --git a/static/images/spinning_cat/untitled_00245.png b/static/images/spinning_cat/untitled_00245.png
new file mode 100644
index 0000000..74c9715
Binary files /dev/null and b/static/images/spinning_cat/untitled_00245.png differ
diff --git a/static/images/spinning_cat/untitled_00246.png b/static/images/spinning_cat/untitled_00246.png
new file mode 100644
index 0000000..c505c01
Binary files /dev/null and b/static/images/spinning_cat/untitled_00246.png differ
diff --git a/static/images/spinning_cat/untitled_00247.png b/static/images/spinning_cat/untitled_00247.png
new file mode 100644
index 0000000..b606600
Binary files /dev/null and b/static/images/spinning_cat/untitled_00247.png differ
diff --git a/static/images/spinning_cat/untitled_00248.png b/static/images/spinning_cat/untitled_00248.png
new file mode 100644
index 0000000..9e689ed
Binary files /dev/null and b/static/images/spinning_cat/untitled_00248.png differ
diff --git a/static/images/spinning_cat/untitled_00249.png b/static/images/spinning_cat/untitled_00249.png
new file mode 100644
index 0000000..41d5cc5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00249.png differ
diff --git a/static/images/spinning_cat/untitled_00250.png b/static/images/spinning_cat/untitled_00250.png
new file mode 100644
index 0000000..150c568
Binary files /dev/null and b/static/images/spinning_cat/untitled_00250.png differ
diff --git a/static/images/spinning_cat/untitled_00251.png b/static/images/spinning_cat/untitled_00251.png
new file mode 100644
index 0000000..d072e08
Binary files /dev/null and b/static/images/spinning_cat/untitled_00251.png differ
diff --git a/static/images/spinning_cat/untitled_00252.png b/static/images/spinning_cat/untitled_00252.png
new file mode 100644
index 0000000..487332b
Binary files /dev/null and b/static/images/spinning_cat/untitled_00252.png differ
diff --git a/static/images/spinning_cat/untitled_00253.png b/static/images/spinning_cat/untitled_00253.png
new file mode 100644
index 0000000..22eeb46
Binary files /dev/null and b/static/images/spinning_cat/untitled_00253.png differ
diff --git a/static/images/spinning_cat/untitled_00254.png b/static/images/spinning_cat/untitled_00254.png
new file mode 100644
index 0000000..8461f1f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00254.png differ
diff --git a/static/images/spinning_cat/untitled_00255.png b/static/images/spinning_cat/untitled_00255.png
new file mode 100644
index 0000000..9ce608d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00255.png differ
diff --git a/static/images/spinning_cat/untitled_00256.png b/static/images/spinning_cat/untitled_00256.png
new file mode 100644
index 0000000..5016b9d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00256.png differ
diff --git a/static/images/spinning_cat/untitled_00257.png b/static/images/spinning_cat/untitled_00257.png
new file mode 100644
index 0000000..e685de7
Binary files /dev/null and b/static/images/spinning_cat/untitled_00257.png differ
diff --git a/static/images/spinning_cat/untitled_00258.png b/static/images/spinning_cat/untitled_00258.png
new file mode 100644
index 0000000..63bb69a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00258.png differ
diff --git a/static/images/spinning_cat/untitled_00259.png b/static/images/spinning_cat/untitled_00259.png
new file mode 100644
index 0000000..32d6963
Binary files /dev/null and b/static/images/spinning_cat/untitled_00259.png differ
diff --git a/static/images/spinning_cat/untitled_00260.png b/static/images/spinning_cat/untitled_00260.png
new file mode 100644
index 0000000..be7c9ff
Binary files /dev/null and b/static/images/spinning_cat/untitled_00260.png differ
diff --git a/static/images/spinning_cat/untitled_00261.png b/static/images/spinning_cat/untitled_00261.png
new file mode 100644
index 0000000..cc33d84
Binary files /dev/null and b/static/images/spinning_cat/untitled_00261.png differ
diff --git a/static/images/spinning_cat/untitled_00262.png b/static/images/spinning_cat/untitled_00262.png
new file mode 100644
index 0000000..f3a3400
Binary files /dev/null and b/static/images/spinning_cat/untitled_00262.png differ
diff --git a/static/images/spinning_cat/untitled_00263.png b/static/images/spinning_cat/untitled_00263.png
new file mode 100644
index 0000000..74ce00e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00263.png differ
diff --git a/static/images/spinning_cat/untitled_00264.png b/static/images/spinning_cat/untitled_00264.png
new file mode 100644
index 0000000..0aff309
Binary files /dev/null and b/static/images/spinning_cat/untitled_00264.png differ
diff --git a/static/images/spinning_cat/untitled_00265.png b/static/images/spinning_cat/untitled_00265.png
new file mode 100644
index 0000000..1b8c193
Binary files /dev/null and b/static/images/spinning_cat/untitled_00265.png differ
diff --git a/static/images/spinning_cat/untitled_00266.png b/static/images/spinning_cat/untitled_00266.png
new file mode 100644
index 0000000..818f565
Binary files /dev/null and b/static/images/spinning_cat/untitled_00266.png differ
diff --git a/static/images/spinning_cat/untitled_00267.png b/static/images/spinning_cat/untitled_00267.png
new file mode 100644
index 0000000..ec09a08
Binary files /dev/null and b/static/images/spinning_cat/untitled_00267.png differ
diff --git a/static/images/spinning_cat/untitled_00268.png b/static/images/spinning_cat/untitled_00268.png
new file mode 100644
index 0000000..12f2c62
Binary files /dev/null and b/static/images/spinning_cat/untitled_00268.png differ
diff --git a/static/images/spinning_cat/untitled_00269.png b/static/images/spinning_cat/untitled_00269.png
new file mode 100644
index 0000000..8833314
Binary files /dev/null and b/static/images/spinning_cat/untitled_00269.png differ
diff --git a/static/images/spinning_cat/untitled_00270.png b/static/images/spinning_cat/untitled_00270.png
new file mode 100644
index 0000000..fb08542
Binary files /dev/null and b/static/images/spinning_cat/untitled_00270.png differ
diff --git a/static/images/spinning_cat/untitled_00271.png b/static/images/spinning_cat/untitled_00271.png
new file mode 100644
index 0000000..52e983e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00271.png differ
diff --git a/static/images/spinning_cat/untitled_00272.png b/static/images/spinning_cat/untitled_00272.png
new file mode 100644
index 0000000..0f3af72
Binary files /dev/null and b/static/images/spinning_cat/untitled_00272.png differ
diff --git a/static/images/spinning_cat/untitled_00273.png b/static/images/spinning_cat/untitled_00273.png
new file mode 100644
index 0000000..0592569
Binary files /dev/null and b/static/images/spinning_cat/untitled_00273.png differ
diff --git a/static/images/spinning_cat/untitled_00274.png b/static/images/spinning_cat/untitled_00274.png
new file mode 100644
index 0000000..0eaef0a
Binary files /dev/null and b/static/images/spinning_cat/untitled_00274.png differ
diff --git a/static/images/spinning_cat/untitled_00275.png b/static/images/spinning_cat/untitled_00275.png
new file mode 100644
index 0000000..7bb6ea1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00275.png differ
diff --git a/static/images/spinning_cat/untitled_00276.png b/static/images/spinning_cat/untitled_00276.png
new file mode 100644
index 0000000..4ca8fa1
Binary files /dev/null and b/static/images/spinning_cat/untitled_00276.png differ
diff --git a/static/images/spinning_cat/untitled_00277.png b/static/images/spinning_cat/untitled_00277.png
new file mode 100644
index 0000000..bc3d1e2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00277.png differ
diff --git a/static/images/spinning_cat/untitled_00278.png b/static/images/spinning_cat/untitled_00278.png
new file mode 100644
index 0000000..3d184a8
Binary files /dev/null and b/static/images/spinning_cat/untitled_00278.png differ
diff --git a/static/images/spinning_cat/untitled_00279.png b/static/images/spinning_cat/untitled_00279.png
new file mode 100644
index 0000000..92d18ff
Binary files /dev/null and b/static/images/spinning_cat/untitled_00279.png differ
diff --git a/static/images/spinning_cat/untitled_00280.png b/static/images/spinning_cat/untitled_00280.png
new file mode 100644
index 0000000..88502b7
Binary files /dev/null and b/static/images/spinning_cat/untitled_00280.png differ
diff --git a/static/images/spinning_cat/untitled_00281.png b/static/images/spinning_cat/untitled_00281.png
new file mode 100644
index 0000000..a7b39a6
Binary files /dev/null and b/static/images/spinning_cat/untitled_00281.png differ
diff --git a/static/images/spinning_cat/untitled_00282.png b/static/images/spinning_cat/untitled_00282.png
new file mode 100644
index 0000000..2d1efb0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00282.png differ
diff --git a/static/images/spinning_cat/untitled_00283.png b/static/images/spinning_cat/untitled_00283.png
new file mode 100644
index 0000000..5e97250
Binary files /dev/null and b/static/images/spinning_cat/untitled_00283.png differ
diff --git a/static/images/spinning_cat/untitled_00284.png b/static/images/spinning_cat/untitled_00284.png
new file mode 100644
index 0000000..fd4b8bf
Binary files /dev/null and b/static/images/spinning_cat/untitled_00284.png differ
diff --git a/static/images/spinning_cat/untitled_00285.png b/static/images/spinning_cat/untitled_00285.png
new file mode 100644
index 0000000..d1a6e46
Binary files /dev/null and b/static/images/spinning_cat/untitled_00285.png differ
diff --git a/static/images/spinning_cat/untitled_00286.png b/static/images/spinning_cat/untitled_00286.png
new file mode 100644
index 0000000..ac33720
Binary files /dev/null and b/static/images/spinning_cat/untitled_00286.png differ
diff --git a/static/images/spinning_cat/untitled_00287.png b/static/images/spinning_cat/untitled_00287.png
new file mode 100644
index 0000000..9382874
Binary files /dev/null and b/static/images/spinning_cat/untitled_00287.png differ
diff --git a/static/images/spinning_cat/untitled_00288.png b/static/images/spinning_cat/untitled_00288.png
new file mode 100644
index 0000000..fdb8385
Binary files /dev/null and b/static/images/spinning_cat/untitled_00288.png differ
diff --git a/static/images/spinning_cat/untitled_00289.png b/static/images/spinning_cat/untitled_00289.png
new file mode 100644
index 0000000..2ab15af
Binary files /dev/null and b/static/images/spinning_cat/untitled_00289.png differ
diff --git a/static/images/spinning_cat/untitled_00290.png b/static/images/spinning_cat/untitled_00290.png
new file mode 100644
index 0000000..d7c01a2
Binary files /dev/null and b/static/images/spinning_cat/untitled_00290.png differ
diff --git a/static/images/spinning_cat/untitled_00291.png b/static/images/spinning_cat/untitled_00291.png
new file mode 100644
index 0000000..f14c164
Binary files /dev/null and b/static/images/spinning_cat/untitled_00291.png differ
diff --git a/static/images/spinning_cat/untitled_00292.png b/static/images/spinning_cat/untitled_00292.png
new file mode 100644
index 0000000..1933d3c
Binary files /dev/null and b/static/images/spinning_cat/untitled_00292.png differ
diff --git a/static/images/spinning_cat/untitled_00293.png b/static/images/spinning_cat/untitled_00293.png
new file mode 100644
index 0000000..3aa2495
Binary files /dev/null and b/static/images/spinning_cat/untitled_00293.png differ
diff --git a/static/images/spinning_cat/untitled_00294.png b/static/images/spinning_cat/untitled_00294.png
new file mode 100644
index 0000000..b36871d
Binary files /dev/null and b/static/images/spinning_cat/untitled_00294.png differ
diff --git a/static/images/spinning_cat/untitled_00295.png b/static/images/spinning_cat/untitled_00295.png
new file mode 100644
index 0000000..41e1556
Binary files /dev/null and b/static/images/spinning_cat/untitled_00295.png differ
diff --git a/static/images/spinning_cat/untitled_00296.png b/static/images/spinning_cat/untitled_00296.png
new file mode 100644
index 0000000..f21405f
Binary files /dev/null and b/static/images/spinning_cat/untitled_00296.png differ
diff --git a/static/images/spinning_cat/untitled_00297.png b/static/images/spinning_cat/untitled_00297.png
new file mode 100644
index 0000000..7868c49
Binary files /dev/null and b/static/images/spinning_cat/untitled_00297.png differ
diff --git a/static/images/spinning_cat/untitled_00298.png b/static/images/spinning_cat/untitled_00298.png
new file mode 100644
index 0000000..934fec0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00298.png differ
diff --git a/static/images/spinning_cat/untitled_00299.png b/static/images/spinning_cat/untitled_00299.png
new file mode 100644
index 0000000..934fec0
Binary files /dev/null and b/static/images/spinning_cat/untitled_00299.png differ
diff --git a/static/images/spinning_cat/untitled_00300.png b/static/images/spinning_cat/untitled_00300.png
new file mode 100644
index 0000000..618ce88
Binary files /dev/null and b/static/images/spinning_cat/untitled_00300.png differ
diff --git a/static/images/spinning_cat/untitled_00301.png b/static/images/spinning_cat/untitled_00301.png
new file mode 100644
index 0000000..d7dc6ec
Binary files /dev/null and b/static/images/spinning_cat/untitled_00301.png differ
diff --git a/static/images/spinning_cat/untitled_00302.png b/static/images/spinning_cat/untitled_00302.png
new file mode 100644
index 0000000..cec25f5
Binary files /dev/null and b/static/images/spinning_cat/untitled_00302.png differ
diff --git a/static/images/spinning_cat/untitled_00303.png b/static/images/spinning_cat/untitled_00303.png
new file mode 100644
index 0000000..c446b42
Binary files /dev/null and b/static/images/spinning_cat/untitled_00303.png differ
diff --git a/static/images/spinning_cat/untitled_00304.png b/static/images/spinning_cat/untitled_00304.png
new file mode 100644
index 0000000..3304033
Binary files /dev/null and b/static/images/spinning_cat/untitled_00304.png differ
diff --git a/static/images/spinning_cat/untitled_00305.png b/static/images/spinning_cat/untitled_00305.png
new file mode 100644
index 0000000..24a5a08
Binary files /dev/null and b/static/images/spinning_cat/untitled_00305.png differ
diff --git a/static/images/spinning_cat/untitled_00306.png b/static/images/spinning_cat/untitled_00306.png
new file mode 100644
index 0000000..60bd55e
Binary files /dev/null and b/static/images/spinning_cat/untitled_00306.png differ
diff --git a/static/images/spinning_cat/untitled_00307.png b/static/images/spinning_cat/untitled_00307.png
new file mode 100644
index 0000000..ace9077
Binary files /dev/null and b/static/images/spinning_cat/untitled_00307.png differ
diff --git a/static/images/spinning_cat/untitled_00308.png b/static/images/spinning_cat/untitled_00308.png
new file mode 100644
index 0000000..8344a47
Binary files /dev/null and b/static/images/spinning_cat/untitled_00308.png differ
diff --git a/static/images/spinning_cat/untitled_00309.png b/static/images/spinning_cat/untitled_00309.png
new file mode 100644
index 0000000..f6fc610
Binary files /dev/null and b/static/images/spinning_cat/untitled_00309.png differ
diff --git a/static/images/spinning_cat/untitled_00310.png b/static/images/spinning_cat/untitled_00310.png
new file mode 100644
index 0000000..f6fc610
Binary files /dev/null and b/static/images/spinning_cat/untitled_00310.png differ
diff --git a/static/images/spinning_cat/untitled_00311.png b/static/images/spinning_cat/untitled_00311.png
new file mode 100644
index 0000000..f6fc610
Binary files /dev/null and b/static/images/spinning_cat/untitled_00311.png differ
diff --git a/static/images/spinning_cat/untitled_00312.png b/static/images/spinning_cat/untitled_00312.png
new file mode 100644
index 0000000..f6fc610
Binary files /dev/null and b/static/images/spinning_cat/untitled_00312.png differ
diff --git a/static/portfolios/alex/Informatik3g2g/AsiatiskMad.html b/static/portfolios/alex/Informatik3g2g/AsiatiskMad.html
index 435728f..c94d96d 100644
--- a/static/portfolios/alex/Informatik3g2g/AsiatiskMad.html
+++ b/static/portfolios/alex/Informatik3g2g/AsiatiskMad.html
@@ -1,224 +1,224 @@
-<head>
-	<style>
-		.center {
-    margin-left: auto;
-    margin-right: auto;
-    }
-
-.border {
-    border: 0.5in solid #21e8ac;
-    border-radius: 50%;
-}
-
-.text{
-    margin-left: auto;
-    margin-right: auto;
-    text-align: center;
-}
-
-.crop {
-    width: 100%;
-    overflow: hidden;
-    position: relative;
-    text-align: center;
-    color: white;
-    font-size: 50;
-    font: bold;
-}
-
-.crop img {
-    width: 100%;
-}
-
-#wrap img {
-    -webkit-transition: 400ms ease 100ms;
-    -moz-transition: 400ms ease 100ms;
-    transition: 400ms ease 100ms;
-}
-    
-#wrap:hover img {
-    filter: blur(10px);
-}
-
-#wrap img:hover {
-    filter: blur(0px);
-    /* margin: -200 0 0 0; */
-}
-
-.centered {
-    position: absolute;
-    top: 50%;
-    left: 50%;
-    transform: translate(-50%, -50%);
-}
-
-.backgrounded {
-    background: rgba(105, 105, 105, 0.288);
-    padding: 0 30 10 30;
-    border-radius: 25px;
-}
-
-table, th, td {
-    border: 1px solid black;
-    background-color: gray;
-  }
-	</style>
-</head>
-
-<body bgcolor="#2C2F33">
-	<div class="crop" id="wrap">
-		<img height="1000px" src="https://static.wikia.nocookie.net/uncle-roger/images/6/68/UncleRoger.png/revision/latest?cb=20201220214854"/>
-		<div class="centered"><h1 class="backgrounded">Uncle Roger</h1></div>
-	</div>
-	<div style="background-color: orange; padding: 30; margin: 10;">
-		<h1 style="margin-top: -20;">
-			UncleRoger's recipies
-		</h1>
-
-		<div class="center">
-			<table class="center">
-				<tr>
-					<td>
-						<table style="margin: 10;">
-							<tr>
-								<img src="https://www.recipetineats.com/wp-content/uploads/2019/02/Thai-Green-Curry_5.jpg" alt="Jeg bliver så fucking sulten af disse billeder.">
-							</tr>
-							<tr>
-							  <th colspan="2"><h1>Thai Green Curry</h1></th>
-							</tr>
-							<tr>
-							  <td><h2 class="text">Ingredients</h2></td>
-							  <td>
-								<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="2 tbsp vegetable oil"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-unit">tbsp</span> <span class="wprm-recipe-ingredient-name">vegetable oil</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="1 cup (250ml)  chicken or vegetable broth, low sodium"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 cup (250ml) </span> <span class="wprm-recipe-ingredient-name">chicken or vegetable broth, low sodium</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="400 g/14oz  coconut milk , full fat (Note 4)"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">400 g/14oz </span> <span class="wprm-recipe-ingredient-name">coconut milk</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, full fat (Note 4)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-8" class="wprm-checkbox" aria-label="1 - 3 tsp fish sauce *"><label for="wprm-checkbox-8" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 - 3</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">fish sauce *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-9" class="wprm-checkbox" aria-label="1 - 3 tsp white sugar *"><label for="wprm-checkbox-9" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 - 3</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">white sugar *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-10" class="wprm-checkbox" aria-label="1/8 tsp salt *"><label for="wprm-checkbox-10" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1/8</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">salt *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-11" class="wprm-checkbox" aria-label="6 kaffir lime leaves , torn in half (Note 5)"><label for="wprm-checkbox-11" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">6</span> <span class="wprm-recipe-ingredient-name">kaffir lime leaves</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, torn in half (Note 5)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-12" class="wprm-checkbox" aria-label="350 g/12 oz  chicken thigh , skinless boneless, sliced (Note 6)"><label for="wprm-checkbox-12" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">350 g/12 oz </span> <span class="wprm-recipe-ingredient-name">chicken thigh</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, skinless boneless, sliced (Note 6)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-13" class="wprm-checkbox" aria-label="2 Japanese eggplants,  , small, 1cm / 2/5&quot; slices (Note 7)"><label for="wprm-checkbox-13" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-name">Japanese eggplants, </span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, small, 1cm / 2/5" slices (Note 7)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-14" class="wprm-checkbox" aria-label="1 1/2 cups snow peas , small, trimmed"><label for="wprm-checkbox-14" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 1/2</span> <span class="wprm-recipe-ingredient-unit">cups</span> <span class="wprm-recipe-ingredient-name">snow peas</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, small, trimmed</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-15" class="wprm-checkbox" aria-label="16 Thai basil leaves (Note 8)"><label for="wprm-checkbox-15" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">16</span> <span class="wprm-recipe-ingredient-name">Thai basil leaves</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">(Note 8)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-16" class="wprm-checkbox" aria-label="Juice of 1/2 lime , to taste"><label for="wprm-checkbox-16" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name">Juice of 1/2 lime</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, to taste</span></li></ul>
-								</td>
-							</tr>
-							<tr>
-							  <td>Link</td>
-							  <td>
-								<a href="https://www.youtube.com/watch?v=MU5uF41aa7A">https://www.youtube.com/watch?v=MU5uF41aa7A</a>
-							</td>
-							</tr>
-						  </table>
-					</td>
-					<td>
-						<table style="margin: 10;">
-							
-							<tr>
-								<img src="https://www.gimmesomeoven.com/wp-content/uploads/2017/07/How-To-Make-Fried-Rice-Recipe-2-1.jpg" alt="JEg er både sulten og syg">
-							</tr>
-							<tr>
-							  <th colspan="2"><h1>EGG FRIED RICE</h1></th>
-							</tr>
-							<tr>
-							  <td><h2 class="text">Ingredients</h2></td>
-							  <td>
-								<ul>
-									<li><span data-amount="3" data-unit="tablespoon">3 tablespoons</span> <a href="https://amzn.to/3OSpJrd" target="_blank" rel="nofollow noopener">butter</a>, divided</li>
-									<li><span data-amount="2">2</span> <a href="https://amzn.to/3yejQPl" target="_blank" rel="nofollow noopener">large eggs</a>, whisked</li>
-									<li><span data-amount="2">2</span> medium carrots, peeled and diced</li>
-									<li><span data-amount="1">1</span> small white onion,&nbsp;<a href="https://www.youtube.com/watch?v=GwaUci2DqZY" target="_blank" rel="noopener">diced</a></li>
-									<li><span data-amount="0.5" data-unit="cup">1/2 cup</span> frozen peas</li>
-									<li><span data-amount="3">3</span> cloves garlic, minced</li>
-									<li>salt and black pepper</li>
-									<li><span data-amount="4" data-unit="cup">4 cups</span> cooked and chilled rice (I prefer short-grain white rice)</li>
-									<li><span data-amount="3">3</span> <a href="https://amzn.to/3OeGDQx" target="_blank" rel="nofollow noopener">green onions</a>, thinly sliced</li>
-									<li><span data-amount="3">3</span>–<span data-amount="4">4</span> tablespoons&nbsp;<a href="https://amzn.to/36EauLG" target="_blank" rel="nofollow noopener sponsored">soy sauce</a>, or more to taste</li>
-									<li><span data-amount="2" data-unit="teaspoon">2 teaspoons</span>&nbsp;<a href="https://amzn.to/2kZFdAa" target="_blank" rel="nofollow noopener noreferrer">oyster sauce</a>&nbsp;(optional)</li>
-									<li><span data-amount="0.5" data-unit="teaspoon">1/2 teaspoons</span>&nbsp;<a href="https://amzn.to/2sk33el" target="_blank" rel="nofollow noopener noreferrer">toasted sesame oil</a></li>
-									</ul>
-							  </td>
-							</tr>
-							<tr>
-							  <td>Link</td>
-							  <td>
-								<a href="https://www.youtube.com/watch?v=SGBP3sG3a9Y">https://www.youtube.com/watch?v=SGBP3sG3a9Y</a>
-								</td>
-							</tr>
-						  </table>
-					</td>
-				</tr>
-				<tr>
-					<table style="margin: 10;">
-						<tr>
-							<img src="https://www.recipetineats.com/wp-content/uploads/2019/04/Beef-Pho_6.jpg" alt="Det her er det bedste som du får af mig!">
-						</tr>
-						<tr>
-						  <th colspan="2"><h1>PHO</h1></th>
-						</tr>
-						<tr>
-						  <td><h2 class="text">Ingredients</h2></td>
-						  <td>
-							<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-0" class="wprm-checkbox" aria-label="&nbsp;10 pounds beef bones - preferably a mix of marrow bones (femur bones) and bones with meat on them (oxtail, short ribs, and knuckle bones cut in half)"><label for="wprm-checkbox-0" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">4.54</span></span> <span class="wprm-recipe-ingredient-unit">kg</span> <span class="wprm-recipe-ingredient-name">beef bones</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller"></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-1" class="wprm-checkbox" aria-label="&nbsp;2 medium yellow onions - peel and quarter"><label for="wprm-checkbox-1" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">medium</span> <span class="wprm-recipe-ingredient-name">yellow onions</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">peel and quarter</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-2" class="wprm-checkbox" aria-label="&nbsp;2 whole heads garlic - halved crosswise"><label for="wprm-checkbox-2" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">whole heads</span> <span class="wprm-recipe-ingredient-name">garlic</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">halved crosswise</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-3" class="wprm-checkbox" aria-label="&nbsp;4 (2-inch pieces) ginger - sliced lengthwise"><label for="wprm-checkbox-3" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">4</span></span> <span class="wprm-recipe-ingredient-unit">(2-inch pieces)</span> <span class="wprm-recipe-ingredient-name">ginger</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">sliced lengthwise</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-4" class="wprm-checkbox" aria-label="&nbsp;6 whole star anise"><label for="wprm-checkbox-4" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">6</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2D880u2" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">star anise</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="&nbsp;12 whole cloves"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">12</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2EGSnXw" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">cloves</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="&nbsp;2 whole cinnamon sticks"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name">cinnamon sticks</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="&nbsp;2 black cardamom pods"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2Q266CW" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">black cardamom pods</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-8" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon fennel seeds"><label for="wprm-checkbox-8" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2TYGipy" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">fennel seeds</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-9" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon coriander seeds"><label for="wprm-checkbox-9" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2Hfj9eX" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">coriander seeds</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-10" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon salt - (plus more to taste)"><label for="wprm-checkbox-10" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name">salt</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">(plus more to taste)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-11" class="wprm-checkbox" aria-label="&nbsp;⅔ cup fish sauce - divided between the two pots"><label for="wprm-checkbox-11" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">154.67</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2vANoGo" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">fish sauce</a></span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">divided between the two pots</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-12" class="wprm-checkbox" aria-label="&nbsp;4 tablespoon sugar - divided between the two pots"><label for="wprm-checkbox-12" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">50</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2MndndK" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">sugar</a></span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">divided between the two pots</span></li></ul>
-						  </td>
-						</tr>
-						<tr>
-						  <td>Link</td>
-						  <td>
-							<a href="https://youtu.be/Z8f15a5IpBk">https://youtu.be/Z8f15a5IpBk</a>
-							</td>
-						</tr>
-					  </table>
-					  <table style="margin: 10;">
-						<tr>
-							<img src="https://www.dontgobaconmyheart.co.uk/wp-content/uploads/2019/09/carbonara-without-cream.jpg" alt="Cry more. Just dont be blind!">
-						</tr>
-						<tr>
-						  <th colspan="2"><h1>Spaghetti Carbonara (No Cream!)</h1></th>
-						</tr>
-						<tr>
-						  <td><h2 class="text">Ingredients</h2></td>
-						  <td>
-							<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="0"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-0" class="wprm-checkbox" aria-label="&nbsp;1lb / 500g Dried Spaghetti "><label for="wprm-checkbox-0" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1lb / 500g</span> <span class="wprm-recipe-ingredient-name"><strong>Dried Spaghetti</strong></span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em></em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-1" class="wprm-checkbox" aria-label="&nbsp;9oz / 250g Pancetta, diced (see notes)"><label for="wprm-checkbox-1" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">9oz / 250g</span> <span class="wprm-recipe-ingredient-name"><strong>Pancetta</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>diced (see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="2"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-2" class="wprm-checkbox" aria-label="&nbsp;2.6oz / 75g Pecorino, finely grated (plus extra to serve - see notes)"><label for="wprm-checkbox-2" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2.6oz / 75g</span> <span class="wprm-recipe-ingredient-name"><strong>Pecorino</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>finely grated (plus extra to serve - see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="3"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-3" class="wprm-checkbox" aria-label="&nbsp;3 Egg Yolks"><label for="wprm-checkbox-3" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">3</span> <span class="wprm-recipe-ingredient-name"><strong>Egg Yolks</strong></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="4"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-4" class="wprm-checkbox" aria-label="&nbsp;2 Whole Eggs"><label for="wprm-checkbox-4" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-name"><strong>Whole Eggs</strong></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="5"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="&nbsp;1 clove of Garlic, peeled &amp; crushed with the palm of your hand (optional)"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1</span> <span class="wprm-recipe-ingredient-unit">clove of</span> <span class="wprm-recipe-ingredient-name"><strong>Garlic</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>peeled &amp; crushed with the palm of your hand (optional)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="6"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="&nbsp;Salt &amp; Cracked Black Pepper (see notes)"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name"><strong>Salt &amp; Cracked Black Pepper</strong></span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>(see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="7"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="&nbsp;Olive Oil, as needed"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name"><strong>Olive Oil</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>as needed</em></span></li></ul>
-						  </td>
-						</tr>
-						<tr>
-						  <td>Link</td>
-						  <td>
-							<a href="https://youtu.be/ZluYZedSMjQ">https://youtu.be/ZluYZedSMjQ</a>
-							</td>
-						</tr>
-					  </table>
-					  <table style="margin: 10;">
-						<tr>
-							<img src="https://www.forkknifeswoon.com/wp-content/uploads/2014/10/simple-homemade-chicken-ramen-fork-knife-swoon-01.jpg" alt="Ugh. Brooo. Fuck sygedomme!">
-						</tr>
-						<tr>
-						  <th colspan="2"><h1>Ramen</h1></th>
-						</tr>
-						<tr>
-						  <td><h2 class="text">Ingredients</h2></td>
-						  <td>
-							<ul>
-								<li>kosher salt and freshly-ground black pepper, <em>to season</em></li>
-								<li><strong><span data-amount="1" data-unit="tbsp">1 Tbsp</span></strong> unsalted butter</li>
-								<li><strong><span data-amount="2" data-unit="tsp">2 tsp</span></strong> sesame or vegetable oil</li>
-								<li><strong><span data-amount="2" data-unit="tsp">2 tsp</span></strong> fresh ginger, minced</li>
-								<li><strong><span data-amount="1" data-unit="tbsp">1 Tbsp</span></strong> fresh garlic, minced</li>
-								<li><strong><span data-amount="3" data-unit="tbsp">3 Tbsp</span></strong> low-sodium soy sauce</li>
-								<li><strong><span data-amount="2" data-unit="tbsp">2 Tbsp</span></strong> <a class="tasty-link" rel="nofollow noopener" target="_blank" data-tasty-links-no-disclosure="" href="https://amzn.to/2VEMDfA">mirin</a></li>
-								<li><strong><span data-amount="4" data-unit="cup">4 cups</span></strong> rich chicken stock</li>
-								<li><strong><span data-amount="1" data-unit="oz">1 oz</span></strong> dried shitake mushrooms (or <span data-amount="0.5" data-unit="cup">1/2 cup</span> fresh)</li>
-								<li><strong><span data-amount="1">1</span>–<span data-amount="2">2</span> tsp</strong> sea salt, <em>to taste</em></li>
-								<li><strong><span data-amount="2">2</span></strong> large eggs</li>
-								<li><strong><span data-amount="0.5" data-unit="cup">1/2 cup</span></strong> scallions, <em>sliced</em></li>
-								<li><strong><span data-amount="2">2</span> (3 oz)</strong> packs dried <a class="tasty-link" rel="nofollow noopener" target="_blank" data-tasty-links-no-disclosure="" href="https://amzn.to/2KN4V5K">ramen noodles</a></li>
-								<li>optional: fresh jalapeño or chili slices, <em>for serving</em></li>
-								</ul>
-						  </td>
-						</tr>
-						<tr>
-						  <td>Link</td>
-						  <td>
-							<a href="https://youtu.be/cZY0SrnL3NI">https://youtu.be/cZY0SrnL3NI</a>
-							</td>
-						</tr>
-					  </table>
-				</tr>
-			</table>
-
-			<h1>Now if you'd excuse me. I'm sick and I need more sleep!</h1>
-		</div>
-	</div>
-	
-
+<head>
+	<style>
+		.center {
+    margin-left: auto;
+    margin-right: auto;
+    }
+
+.border {
+    border: 0.5in solid #21e8ac;
+    border-radius: 50%;
+}
+
+.text{
+    margin-left: auto;
+    margin-right: auto;
+    text-align: center;
+}
+
+.crop {
+    width: 100%;
+    overflow: hidden;
+    position: relative;
+    text-align: center;
+    color: white;
+    font-size: 50;
+    font: bold;
+}
+
+.crop img {
+    width: 100%;
+}
+
+#wrap img {
+    -webkit-transition: 400ms ease 100ms;
+    -moz-transition: 400ms ease 100ms;
+    transition: 400ms ease 100ms;
+}
+    
+#wrap:hover img {
+    filter: blur(10px);
+}
+
+#wrap img:hover {
+    filter: blur(0px);
+    /* margin: -200 0 0 0; */
+}
+
+.centered {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+}
+
+.backgrounded {
+    background: rgba(105, 105, 105, 0.288);
+    padding: 0 30 10 30;
+    border-radius: 25px;
+}
+
+table, th, td {
+    border: 1px solid black;
+    background-color: gray;
+  }
+	</style>
+</head>
+
+<body bgcolor="#2C2F33">
+	<div class="crop" id="wrap">
+		<img height="1000px" src="https://static.wikia.nocookie.net/uncle-roger/images/6/68/UncleRoger.png/revision/latest?cb=20201220214854"/>
+		<div class="centered"><h1 class="backgrounded">Uncle Roger</h1></div>
+	</div>
+	<div style="background-color: orange; padding: 30; margin: 10;">
+		<h1 style="margin-top: -20;">
+			UncleRoger's recipies
+		</h1>
+
+		<div class="center">
+			<table class="center">
+				<tr>
+					<td>
+						<table style="margin: 10;">
+							<tr>
+								<img src="https://www.recipetineats.com/wp-content/uploads/2019/02/Thai-Green-Curry_5.jpg" alt="Jeg bliver så fucking sulten af disse billeder.">
+							</tr>
+							<tr>
+							  <th colspan="2"><h1>Thai Green Curry</h1></th>
+							</tr>
+							<tr>
+							  <td><h2 class="text">Ingredients</h2></td>
+							  <td>
+								<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="2 tbsp vegetable oil"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-unit">tbsp</span> <span class="wprm-recipe-ingredient-name">vegetable oil</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="1 cup (250ml)  chicken or vegetable broth, low sodium"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 cup (250ml) </span> <span class="wprm-recipe-ingredient-name">chicken or vegetable broth, low sodium</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="400 g/14oz  coconut milk , full fat (Note 4)"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">400 g/14oz </span> <span class="wprm-recipe-ingredient-name">coconut milk</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, full fat (Note 4)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-8" class="wprm-checkbox" aria-label="1 - 3 tsp fish sauce *"><label for="wprm-checkbox-8" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 - 3</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">fish sauce *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-9" class="wprm-checkbox" aria-label="1 - 3 tsp white sugar *"><label for="wprm-checkbox-9" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 - 3</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">white sugar *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-10" class="wprm-checkbox" aria-label="1/8 tsp salt *"><label for="wprm-checkbox-10" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1/8</span> <span class="wprm-recipe-ingredient-unit">tsp</span> <span class="wprm-recipe-ingredient-name">salt *</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-11" class="wprm-checkbox" aria-label="6 kaffir lime leaves , torn in half (Note 5)"><label for="wprm-checkbox-11" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">6</span> <span class="wprm-recipe-ingredient-name">kaffir lime leaves</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, torn in half (Note 5)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-12" class="wprm-checkbox" aria-label="350 g/12 oz  chicken thigh , skinless boneless, sliced (Note 6)"><label for="wprm-checkbox-12" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">350 g/12 oz </span> <span class="wprm-recipe-ingredient-name">chicken thigh</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, skinless boneless, sliced (Note 6)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-13" class="wprm-checkbox" aria-label="2 Japanese eggplants,  , small, 1cm / 2/5&quot; slices (Note 7)"><label for="wprm-checkbox-13" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-name">Japanese eggplants, </span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, small, 1cm / 2/5" slices (Note 7)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-14" class="wprm-checkbox" aria-label="1 1/2 cups snow peas , small, trimmed"><label for="wprm-checkbox-14" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1 1/2</span> <span class="wprm-recipe-ingredient-unit">cups</span> <span class="wprm-recipe-ingredient-name">snow peas</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, small, trimmed</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-15" class="wprm-checkbox" aria-label="16 Thai basil leaves (Note 8)"><label for="wprm-checkbox-15" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">16</span> <span class="wprm-recipe-ingredient-name">Thai basil leaves</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">(Note 8)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-16" class="wprm-checkbox" aria-label="Juice of 1/2 lime , to taste"><label for="wprm-checkbox-16" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name">Juice of 1/2 lime</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">, to taste</span></li></ul>
+								</td>
+							</tr>
+							<tr>
+							  <td>Link</td>
+							  <td>
+								<a href="https://www.youtube.com/watch?v=MU5uF41aa7A">https://www.youtube.com/watch?v=MU5uF41aa7A</a>
+							</td>
+							</tr>
+						  </table>
+					</td>
+					<td>
+						<table style="margin: 10;">
+							
+							<tr>
+								<img src="https://www.gimmesomeoven.com/wp-content/uploads/2017/07/How-To-Make-Fried-Rice-Recipe-2-1.jpg" alt="JEg er både sulten og syg">
+							</tr>
+							<tr>
+							  <th colspan="2"><h1>EGG FRIED RICE</h1></th>
+							</tr>
+							<tr>
+							  <td><h2 class="text">Ingredients</h2></td>
+							  <td>
+								<ul>
+									<li><span data-amount="3" data-unit="tablespoon">3 tablespoons</span> <a href="https://amzn.to/3OSpJrd" target="_blank" rel="nofollow noopener">butter</a>, divided</li>
+									<li><span data-amount="2">2</span> <a href="https://amzn.to/3yejQPl" target="_blank" rel="nofollow noopener">large eggs</a>, whisked</li>
+									<li><span data-amount="2">2</span> medium carrots, peeled and diced</li>
+									<li><span data-amount="1">1</span> small white onion,&nbsp;<a href="https://www.youtube.com/watch?v=GwaUci2DqZY" target="_blank" rel="noopener">diced</a></li>
+									<li><span data-amount="0.5" data-unit="cup">1/2 cup</span> frozen peas</li>
+									<li><span data-amount="3">3</span> cloves garlic, minced</li>
+									<li>salt and black pepper</li>
+									<li><span data-amount="4" data-unit="cup">4 cups</span> cooked and chilled rice (I prefer short-grain white rice)</li>
+									<li><span data-amount="3">3</span> <a href="https://amzn.to/3OeGDQx" target="_blank" rel="nofollow noopener">green onions</a>, thinly sliced</li>
+									<li><span data-amount="3">3</span>–<span data-amount="4">4</span> tablespoons&nbsp;<a href="https://amzn.to/36EauLG" target="_blank" rel="nofollow noopener sponsored">soy sauce</a>, or more to taste</li>
+									<li><span data-amount="2" data-unit="teaspoon">2 teaspoons</span>&nbsp;<a href="https://amzn.to/2kZFdAa" target="_blank" rel="nofollow noopener noreferrer">oyster sauce</a>&nbsp;(optional)</li>
+									<li><span data-amount="0.5" data-unit="teaspoon">1/2 teaspoons</span>&nbsp;<a href="https://amzn.to/2sk33el" target="_blank" rel="nofollow noopener noreferrer">toasted sesame oil</a></li>
+									</ul>
+							  </td>
+							</tr>
+							<tr>
+							  <td>Link</td>
+							  <td>
+								<a href="https://www.youtube.com/watch?v=SGBP3sG3a9Y">https://www.youtube.com/watch?v=SGBP3sG3a9Y</a>
+								</td>
+							</tr>
+						  </table>
+					</td>
+				</tr>
+				<tr>
+					<table style="margin: 10;">
+						<tr>
+							<img src="https://www.recipetineats.com/wp-content/uploads/2019/04/Beef-Pho_6.jpg" alt="Det her er det bedste som du får af mig!">
+						</tr>
+						<tr>
+						  <th colspan="2"><h1>PHO</h1></th>
+						</tr>
+						<tr>
+						  <td><h2 class="text">Ingredients</h2></td>
+						  <td>
+							<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-0" class="wprm-checkbox" aria-label="&nbsp;10 pounds beef bones - preferably a mix of marrow bones (femur bones) and bones with meat on them (oxtail, short ribs, and knuckle bones cut in half)"><label for="wprm-checkbox-0" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">4.54</span></span> <span class="wprm-recipe-ingredient-unit">kg</span> <span class="wprm-recipe-ingredient-name">beef bones</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller"></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-1" class="wprm-checkbox" aria-label="&nbsp;2 medium yellow onions - peel and quarter"><label for="wprm-checkbox-1" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">medium</span> <span class="wprm-recipe-ingredient-name">yellow onions</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">peel and quarter</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-2" class="wprm-checkbox" aria-label="&nbsp;2 whole heads garlic - halved crosswise"><label for="wprm-checkbox-2" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">whole heads</span> <span class="wprm-recipe-ingredient-name">garlic</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">halved crosswise</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-3" class="wprm-checkbox" aria-label="&nbsp;4 (2-inch pieces) ginger - sliced lengthwise"><label for="wprm-checkbox-3" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">4</span></span> <span class="wprm-recipe-ingredient-unit">(2-inch pieces)</span> <span class="wprm-recipe-ingredient-name">ginger</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">sliced lengthwise</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-4" class="wprm-checkbox" aria-label="&nbsp;6 whole star anise"><label for="wprm-checkbox-4" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">6</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2D880u2" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">star anise</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="&nbsp;12 whole cloves"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">12</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2EGSnXw" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">cloves</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="&nbsp;2 whole cinnamon sticks"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-unit">whole</span> <span class="wprm-recipe-ingredient-name">cinnamon sticks</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="&nbsp;2 black cardamom pods"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">2</span></span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2Q266CW" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">black cardamom pods</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-8" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon fennel seeds"><label for="wprm-checkbox-8" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2TYGipy" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">fennel seeds</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-9" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon coriander seeds"><label for="wprm-checkbox-9" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2Hfj9eX" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">coriander seeds</a></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-10" class="wprm-checkbox" aria-label="&nbsp;2 tablespoon salt - (plus more to taste)"><label for="wprm-checkbox-10" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">29.57</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name">salt</span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">(plus more to taste)</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-11" class="wprm-checkbox" aria-label="&nbsp;⅔ cup fish sauce - divided between the two pots"><label for="wprm-checkbox-11" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">154.67</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2vANoGo" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">fish sauce</a></span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">divided between the two pots</span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="-1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-12" class="wprm-checkbox" aria-label="&nbsp;4 tablespoon sugar - divided between the two pots"><label for="wprm-checkbox-12" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount"><span class="wprm-adjustable">50</span></span> <span class="wprm-recipe-ingredient-unit">g</span> <span class="wprm-recipe-ingredient-name"><a href="https://amzn.to/2MndndK" class="wprm-recipe-ingredient-link" target="_blank" rel="nofollow">sugar</a></span> - <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-smaller">divided between the two pots</span></li></ul>
+						  </td>
+						</tr>
+						<tr>
+						  <td>Link</td>
+						  <td>
+							<a href="https://youtu.be/Z8f15a5IpBk">https://youtu.be/Z8f15a5IpBk</a>
+							</td>
+						</tr>
+					  </table>
+					  <table style="margin: 10;">
+						<tr>
+							<img src="https://www.dontgobaconmyheart.co.uk/wp-content/uploads/2019/09/carbonara-without-cream.jpg" alt="Cry more. Just dont be blind!">
+						</tr>
+						<tr>
+						  <th colspan="2"><h1>Spaghetti Carbonara (No Cream!)</h1></th>
+						</tr>
+						<tr>
+						  <td><h2 class="text">Ingredients</h2></td>
+						  <td>
+							<ul class="wprm-recipe-ingredients"><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="0"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-0" class="wprm-checkbox" aria-label="&nbsp;1lb / 500g Dried Spaghetti "><label for="wprm-checkbox-0" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1lb / 500g</span> <span class="wprm-recipe-ingredient-name"><strong>Dried Spaghetti</strong></span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em></em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="1"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-1" class="wprm-checkbox" aria-label="&nbsp;9oz / 250g Pancetta, diced (see notes)"><label for="wprm-checkbox-1" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">9oz / 250g</span> <span class="wprm-recipe-ingredient-name"><strong>Pancetta</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>diced (see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="2"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-2" class="wprm-checkbox" aria-label="&nbsp;2.6oz / 75g Pecorino, finely grated (plus extra to serve - see notes)"><label for="wprm-checkbox-2" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2.6oz / 75g</span> <span class="wprm-recipe-ingredient-name"><strong>Pecorino</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>finely grated (plus extra to serve - see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="3"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-3" class="wprm-checkbox" aria-label="&nbsp;3 Egg Yolks"><label for="wprm-checkbox-3" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">3</span> <span class="wprm-recipe-ingredient-name"><strong>Egg Yolks</strong></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="4"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-4" class="wprm-checkbox" aria-label="&nbsp;2 Whole Eggs"><label for="wprm-checkbox-4" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">2</span> <span class="wprm-recipe-ingredient-name"><strong>Whole Eggs</strong></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="5"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-5" class="wprm-checkbox" aria-label="&nbsp;1 clove of Garlic, peeled &amp; crushed with the palm of your hand (optional)"><label for="wprm-checkbox-5" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-amount">1</span> <span class="wprm-recipe-ingredient-unit">clove of</span> <span class="wprm-recipe-ingredient-name"><strong>Garlic</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>peeled &amp; crushed with the palm of your hand (optional)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="6"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-6" class="wprm-checkbox" aria-label="&nbsp;Salt &amp; Cracked Black Pepper (see notes)"><label for="wprm-checkbox-6" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name"><strong>Salt &amp; Cracked Black Pepper</strong></span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>(see notes)</em></span></li><li class="wprm-recipe-ingredient" style="list-style-type: none;" data-uid="7"><span class="wprm-checkbox-container"><input type="checkbox" id="wprm-checkbox-7" class="wprm-checkbox" aria-label="&nbsp;Olive Oil, as needed"><label for="wprm-checkbox-7" class="wprm-checkbox-label"><span class="sr-only screen-reader-text wprm-screen-reader-text">▢ </span></label></span><span class="wprm-recipe-ingredient-name"><strong>Olive Oil</strong>,</span> <span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"><em>as needed</em></span></li></ul>
+						  </td>
+						</tr>
+						<tr>
+						  <td>Link</td>
+						  <td>
+							<a href="https://youtu.be/ZluYZedSMjQ">https://youtu.be/ZluYZedSMjQ</a>
+							</td>
+						</tr>
+					  </table>
+					  <table style="margin: 10;">
+						<tr>
+							<img src="https://www.forkknifeswoon.com/wp-content/uploads/2014/10/simple-homemade-chicken-ramen-fork-knife-swoon-01.jpg" alt="Ugh. Brooo. Fuck sygedomme!">
+						</tr>
+						<tr>
+						  <th colspan="2"><h1>Ramen</h1></th>
+						</tr>
+						<tr>
+						  <td><h2 class="text">Ingredients</h2></td>
+						  <td>
+							<ul>
+								<li>kosher salt and freshly-ground black pepper, <em>to season</em></li>
+								<li><strong><span data-amount="1" data-unit="tbsp">1 Tbsp</span></strong> unsalted butter</li>
+								<li><strong><span data-amount="2" data-unit="tsp">2 tsp</span></strong> sesame or vegetable oil</li>
+								<li><strong><span data-amount="2" data-unit="tsp">2 tsp</span></strong> fresh ginger, minced</li>
+								<li><strong><span data-amount="1" data-unit="tbsp">1 Tbsp</span></strong> fresh garlic, minced</li>
+								<li><strong><span data-amount="3" data-unit="tbsp">3 Tbsp</span></strong> low-sodium soy sauce</li>
+								<li><strong><span data-amount="2" data-unit="tbsp">2 Tbsp</span></strong> <a class="tasty-link" rel="nofollow noopener" target="_blank" data-tasty-links-no-disclosure="" href="https://amzn.to/2VEMDfA">mirin</a></li>
+								<li><strong><span data-amount="4" data-unit="cup">4 cups</span></strong> rich chicken stock</li>
+								<li><strong><span data-amount="1" data-unit="oz">1 oz</span></strong> dried shitake mushrooms (or <span data-amount="0.5" data-unit="cup">1/2 cup</span> fresh)</li>
+								<li><strong><span data-amount="1">1</span>–<span data-amount="2">2</span> tsp</strong> sea salt, <em>to taste</em></li>
+								<li><strong><span data-amount="2">2</span></strong> large eggs</li>
+								<li><strong><span data-amount="0.5" data-unit="cup">1/2 cup</span></strong> scallions, <em>sliced</em></li>
+								<li><strong><span data-amount="2">2</span> (3 oz)</strong> packs dried <a class="tasty-link" rel="nofollow noopener" target="_blank" data-tasty-links-no-disclosure="" href="https://amzn.to/2KN4V5K">ramen noodles</a></li>
+								<li>optional: fresh jalapeño or chili slices, <em>for serving</em></li>
+								</ul>
+						  </td>
+						</tr>
+						<tr>
+						  <td>Link</td>
+						  <td>
+							<a href="https://youtu.be/cZY0SrnL3NI">https://youtu.be/cZY0SrnL3NI</a>
+							</td>
+						</tr>
+					  </table>
+				</tr>
+			</table>
+
+			<h1>Now if you'd excuse me. I'm sick and I need more sleep!</h1>
+		</div>
+	</div>
+	
+
 </body>
\ No newline at end of file
diff --git a/static/portfolios/alex/Informatik3g2g/SpilHjemmeside.html b/static/portfolios/alex/Informatik3g2g/SpilHjemmeside.html
index a50e35f..c205f49 100644
--- a/static/portfolios/alex/Informatik3g2g/SpilHjemmeside.html
+++ b/static/portfolios/alex/Informatik3g2g/SpilHjemmeside.html
@@ -1,91 +1,91 @@
-<body bgcolor="#2C2F33">
-	<div class="border: 5px solid #FFFF00;
-    text-align: center;">
-		<h1 style="color:#ffffff;">
-		GOOD GAMES!11!!
-		</h1>
-		<ol style="color:#ffffff;text-align: start;">
-			<li>Cummy sussy baka!!!</li>
-			<li>Watermelon burger</li>
-			<li>Minecraft girl</li>
-		</ol>
-
-		<div>
-			<image width=600 src="https://www.filmsnewsfeed.com/thumb/16x9/images/article/among-us-devs-tease-character-based-on-the-rock-amidst-movie-rumors-main.webp"/>
-		</div>
-		<h1 style="color:#bcbcbc;">
-		Cummy sussy baka!!!
-		</h1>
-		<p1 style="color:#ffffff;">
-			"Cummy sussy baka!!!" has won multiple game of the year awards for being the scariest game for 5 years in a row. The game is known for being the super detailed story line and thus immerses the player into the game and scarrying the player right after. This has made people across the world, shit their pants due to the scaryness of the game.
-		</p1>
-		<div class="border: 5px solid #FFFF00;
-    text-align: center;" style="margin: 2in;color:#ffffff;">
-			<ul>
-				<li>White substance</li>
-				<li>Among us</li>
-				<li>The rock</li>
-				<li>Und weissbier ist lekker</li>
-			  </ul>	
-			</div>
-		<div style="color:#ffffff;border: 0.5in solid #21e8ac;
-		border-radius: 50%;">
-			<img width="300" src="https://media.discordapp.net/attachments/567446061837320203/1013783151803379722/unknown.png?width=1002&height=1002" alt="Fuck blind people."/>
-		</div>
-		
-		<h2 style="color:#ffffff;">
-			Watermelon burger
-		</h2>
-		<p1 style="color:#ffffff;">
-			The Watermelon burger game has been the 2nd most popular game of the year. It is a highly detailed cooking game with a horror twist built in it. From the outside of the game, it looks like your everyday average watermelon burger but when you actually play the game... You will not stop until you completely finish the 46 hour playtime. It literally paralises you until you are done with the whole game.
-		</p1>
-		<div class="border: 5px solid #FFFF00;
-    text-align: center;" style="margin: 2in;color:#ffffff;">
-			<ul>
-				<li>Bread</li>
-				<li>Watermelon</li>
-				<li>Beef</li>
-				<li>Salad</li>
-			  </ul>	
-			</div>
-		<div style="border: 0.5in solid #21e8ac;
-		border-radius: 50%;">
-			<img width="450" src="https://wallpaperaccess.com/full/2923420.jpg" alt="Fuck blind people."/>
-		</div>
-		<h2 style="color:#ffffff;padding-bottom:2in">
-			Minecraft girl
-		</h2>
-		<p1 style="color:#ffffff;">
-			Minecraft girl has been the most popular game within the male gaming community. It is a complex plot of an interesting main charecter. 
-		</p1>
-		<div class="border: 5px solid #FFFF00;
-    text-align: center;" style="margin-bottom: 2in;color:#ffffff;">
-			<ul>
-				<li>Good looking eyes</li>
-				<li>big boobies</li>
-				<li>Horror</li>
-				<li>big boobies</li>
-				<li>Dish washing simulator</li>
-				<li>Big boobies</li>
-			  </ul>	
-			</div>
-		
-		<p1 style="color:#ffffff;"><strong>
-			1.1. Lovforslagets formål
-
-			Regeringen finder, at Danmark har et ansvar for danske statsborgeres handlinger både herhjemme og i udlandet. Regeringen lægger vægt på, at danske statsborgere ikke lovligt kan flytte strafbare handlinger i form af seksuelt misbrug af børn til udlandet. Også som led i en samlet international indsats mod seksuel udnyttelse af børn i 3. verdenslande finder regeringen derfor, at straffelovens regler om dansk straffemyndighed bør indrettes således, at man ikke kan unddrage sig strafansvar efter danske regler ved at foretage handlingerne under (midlertidige) ophold i et land, hvor forholdene ikke er strafbare.
-			
-			Formålet med lovforslaget er således at gøre det muligt at straffe danske statsborgere og herboende udlændinge, der i udlandet foretager seksuel udnyttelse af børn, selv om den pågældende handling ikke er strafbar i det land, hvor den er begået.
-			
-			Lovforslaget har endvi<em style="color:#5f32f3;">dere</em> til formål at sikre, at danske domstole ved strafudmålingen i de sager om seksuel udnyttelse af børn, hvor der efter forslaget ikke stilles krav om dobbelt strafbarhed, ikke skal være bundet af et udenlandsk strafmaksimum, hvis gerningsmanden var dansk statsborger eller bosat her i landet på gerningstidspunktet.
-			
-			Lovforslaget bygger på en delbetænkning fra Justitsministeriets Jurisdiktionsudvalg om dansk straffemyndighed i forhold til seksuel udnyttelse af børn i udlandet (betænkning nr. 1470/2006) (herefter kaldet »betænkningen«). Jurisdiktionsudvalget har til opgave at foretage en generel gennemgang af straffelovens bestemmelser om straffemyndighed (jurisdiktion) med henblik på at vurdere, hvorvidt der kan være behov for at foretage ændringer i disse bestemmelser. Efter anmodning fra Justitsministeriet har udvalget i første række koncentreret sig om at afgive en delbetænkning om spørgsmålet om »sex-turisme« og dobbelt strafbarhed i forbindelse hermed.
-			
-			1.2. Hovedtræk af lovforslaget</strong>
-		</p1>
-		<div>
-			<image src="https://c.tenor.com/SCG4zzYwpO0AAAAM/ping%C3%BCi.gif" width=300/>
-		</div>
-	</div>
-
+<body bgcolor="#2C2F33">
+	<div class="border: 5px solid #FFFF00;
+    text-align: center;">
+		<h1 style="color:#ffffff;">
+		GOOD GAMES!11!!
+		</h1>
+		<ol style="color:#ffffff;text-align: start;">
+			<li>Cummy sussy baka!!!</li>
+			<li>Watermelon burger</li>
+			<li>Minecraft girl</li>
+		</ol>
+
+		<div>
+			<image width=600 src="https://www.filmsnewsfeed.com/thumb/16x9/images/article/among-us-devs-tease-character-based-on-the-rock-amidst-movie-rumors-main.webp"/>
+		</div>
+		<h1 style="color:#bcbcbc;">
+		Cummy sussy baka!!!
+		</h1>
+		<p1 style="color:#ffffff;">
+			"Cummy sussy baka!!!" has won multiple game of the year awards for being the scariest game for 5 years in a row. The game is known for being the super detailed story line and thus immerses the player into the game and scarrying the player right after. This has made people across the world, shit their pants due to the scaryness of the game.
+		</p1>
+		<div class="border: 5px solid #FFFF00;
+    text-align: center;" style="margin: 2in;color:#ffffff;">
+			<ul>
+				<li>White substance</li>
+				<li>Among us</li>
+				<li>The rock</li>
+				<li>Und weissbier ist lekker</li>
+			  </ul>	
+			</div>
+		<div style="color:#ffffff;border: 0.5in solid #21e8ac;
+		border-radius: 50%;">
+			<img width="300" src="https://media.discordapp.net/attachments/567446061837320203/1013783151803379722/unknown.png?width=1002&height=1002" alt="Fuck blind people."/>
+		</div>
+		
+		<h2 style="color:#ffffff;">
+			Watermelon burger
+		</h2>
+		<p1 style="color:#ffffff;">
+			The Watermelon burger game has been the 2nd most popular game of the year. It is a highly detailed cooking game with a horror twist built in it. From the outside of the game, it looks like your everyday average watermelon burger but when you actually play the game... You will not stop until you completely finish the 46 hour playtime. It literally paralises you until you are done with the whole game.
+		</p1>
+		<div class="border: 5px solid #FFFF00;
+    text-align: center;" style="margin: 2in;color:#ffffff;">
+			<ul>
+				<li>Bread</li>
+				<li>Watermelon</li>
+				<li>Beef</li>
+				<li>Salad</li>
+			  </ul>	
+			</div>
+		<div style="border: 0.5in solid #21e8ac;
+		border-radius: 50%;">
+			<img width="450" src="https://wallpaperaccess.com/full/2923420.jpg" alt="Fuck blind people."/>
+		</div>
+		<h2 style="color:#ffffff;padding-bottom:2in">
+			Minecraft girl
+		</h2>
+		<p1 style="color:#ffffff;">
+			Minecraft girl has been the most popular game within the male gaming community. It is a complex plot of an interesting main charecter. 
+		</p1>
+		<div class="border: 5px solid #FFFF00;
+    text-align: center;" style="margin-bottom: 2in;color:#ffffff;">
+			<ul>
+				<li>Good looking eyes</li>
+				<li>big boobies</li>
+				<li>Horror</li>
+				<li>big boobies</li>
+				<li>Dish washing simulator</li>
+				<li>Big boobies</li>
+			  </ul>	
+			</div>
+		
+		<p1 style="color:#ffffff;"><strong>
+			1.1. Lovforslagets formål
+
+			Regeringen finder, at Danmark har et ansvar for danske statsborgeres handlinger både herhjemme og i udlandet. Regeringen lægger vægt på, at danske statsborgere ikke lovligt kan flytte strafbare handlinger i form af seksuelt misbrug af børn til udlandet. Også som led i en samlet international indsats mod seksuel udnyttelse af børn i 3. verdenslande finder regeringen derfor, at straffelovens regler om dansk straffemyndighed bør indrettes således, at man ikke kan unddrage sig strafansvar efter danske regler ved at foretage handlingerne under (midlertidige) ophold i et land, hvor forholdene ikke er strafbare.
+			
+			Formålet med lovforslaget er således at gøre det muligt at straffe danske statsborgere og herboende udlændinge, der i udlandet foretager seksuel udnyttelse af børn, selv om den pågældende handling ikke er strafbar i det land, hvor den er begået.
+			
+			Lovforslaget har endvi<em style="color:#5f32f3;">dere</em> til formål at sikre, at danske domstole ved strafudmålingen i de sager om seksuel udnyttelse af børn, hvor der efter forslaget ikke stilles krav om dobbelt strafbarhed, ikke skal være bundet af et udenlandsk strafmaksimum, hvis gerningsmanden var dansk statsborger eller bosat her i landet på gerningstidspunktet.
+			
+			Lovforslaget bygger på en delbetænkning fra Justitsministeriets Jurisdiktionsudvalg om dansk straffemyndighed i forhold til seksuel udnyttelse af børn i udlandet (betænkning nr. 1470/2006) (herefter kaldet »betænkningen«). Jurisdiktionsudvalget har til opgave at foretage en generel gennemgang af straffelovens bestemmelser om straffemyndighed (jurisdiktion) med henblik på at vurdere, hvorvidt der kan være behov for at foretage ændringer i disse bestemmelser. Efter anmodning fra Justitsministeriet har udvalget i første række koncentreret sig om at afgive en delbetænkning om spørgsmålet om »sex-turisme« og dobbelt strafbarhed i forbindelse hermed.
+			
+			1.2. Hovedtræk af lovforslaget</strong>
+		</p1>
+		<div>
+			<image src="https://c.tenor.com/SCG4zzYwpO0AAAAM/ping%C3%BCi.gif" width=300/>
+		</div>
+	</div>
+
 </body>
\ No newline at end of file
diff --git a/static/stylesheets/global.css b/static/stylesheets/global.css
index a374ef1..118b221 100644
--- a/static/stylesheets/global.css
+++ b/static/stylesheets/global.css
@@ -6,12 +6,39 @@
     url("/fonts/CozetteVector.ttf") format("truetype");
 }
 
+@font-face {
+  font-family: "NotoSans";
+  src:
+    local("NotoSans"),
+    url("/fonts/NotoSans-VariableFont_wdth,wght.ttf") format("truetype");
+}
+
+.cozette * {
+    font-family: "CozetteVector";
+}
+
+/* fuck it */
+body * {
+    font-family: "CozetteVector";
+}
+
+@media print {
+    .hide-on-print {
+        display: none;
+    }
+}
+
+.include-in-print { &, & * {
+    -webkit-print-color-adjust:exact !important;
+    print-color-adjust:exact !important;
+}}
+
 html {
     background: var(--background1);
 }
 
 body {
-    font-family: var(--main-font);
+    font-family: NotoSans, var(--main-font);
     color: var(--text1); /* Default to primary text color. */
     background-color: var(--background);
     margin: 0;
diff --git a/static/stylesheets/main-theme.css b/static/stylesheets/main-theme.css
deleted file mode 100644
index 7259632..0000000
--- a/static/stylesheets/main-theme.css
+++ /dev/null
@@ -1,13 +0,0 @@
-:root {
-    --title-font: 'CozetteVector';
-    --main-font: 'Segoe UI';
-    --text1: #fff; /* Primary text. */
-    --text2: #cac9c6; /* Secondary text. */
-    --text3: #b0afad; /* Third text color. */
-    --text4: #868584; /* Fourth text color. */
-    --background: #232222;
-    --background1: #1b1a1a;
-    --primary: #227c9d;
-    --secondary: #ffcb77;
-    --accent: #17c3b2;
-}
diff --git a/svelte.config.js b/svelte.config.js
index 51cb449..5289fde 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -1,19 +1,27 @@
-import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
-import adapter from '@sveltejs/adapter-static';
-
-/** @type {import('@sveltejs/kit').Config} */
-export default {
-    preprocess: vitePreprocess(),
-	kit: {
-        prerender: {
-            handleHttpError: 'fail'
-        },
-		adapter: adapter({
-			pages: 'build',
-			assets: 'build',
-			fallback: undefined,
-			precompress: false,
-			strict: true
-		})
-	}
-};
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+import adapter from '@sveltejs/adapter-static';
+
+/** @type {import('@sveltejs/kit').Config} */
+export default {
+    preprocess: vitePreprocess(),
+	onwarn: (warning, handler) => {
+		if (warning.code.startsWith('a11y-')) return
+		if (warning.code === 'missing-exports-condition') return
+		if (warning.code === 'a11y-no-static-element-interactions') return
+		if (warning.code === 'svelte-ignore a11y-autofocus') return
+		if (warning.code.startsWith('css-unused-selector')) return
+		handler(warning)
+	},
+	kit: {
+        prerender: {
+            handleHttpError: 'fail'
+        },
+		adapter: adapter({
+			pages: 'build',
+			assets: 'build',
+			fallback: undefined,
+			precompress: false,
+			strict: true
+		})
+	}
+};
diff --git a/tailwind.config.js b/tailwind.config.js
index fe8b49c..8f70afd 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,29 +1,16 @@
+import typo from "@tailwindcss/typography"
+import daisyui from "daisyui"
+
 /** @type {import('tailwindcss').Config} */
 export default {
   content: ['./src/**/*.{html,js,svelte,ts}'],
   theme: {
     extend: {},
   },
-  plugins: [require("@tailwindcss/typography"), require('daisyui'),],
+  plugins: [typo, daisyui],
   daisyui: {
     themes: [
-      "light",
-      "dark",
-      "synthwave",
-      "retro",
-      "cyberpunk",
-      "valentine",
-      "halloween",
       "forest",
-      "aqua",
-      "black",
-      "luxury",
-      "dracula",
-      "business",
-      "night",
-      "coffee",
-      "dim",
-      "sunset",
     ],
     
   },
diff --git a/vite.config.js b/vite.config.js
index 17baa0c..1a37c22 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -1,7 +1,28 @@
+import tailwindcss from "@tailwindcss/vite";
 import { sveltekit } from '@sveltejs/kit/vite';
 import { defineConfig } from 'vite';
-import { imagetools } from '@zerodevx/svelte-img/vite' // https://zerodevx.github.io/svelte-img/
+import path from "path";
+
+const buildTime = new Intl.DateTimeFormat('da-DK', {
+	day: '2-digit',
+	month: '2-digit',
+	year: 'numeric',
+	hour: '2-digit',
+	minute: '2-digit',
+	hour12: false,
+	timeZone: 'Europe/Copenhagen'
+}).format(new Date());
 
 export default defineConfig({
-	plugins: [sveltekit(), imagetools()],
+	plugins: [tailwindcss(), sveltekit()],
+	define: {
+		__BUILD_TIME__: JSON.stringify(buildTime)
+	},
+	resolve: {
+		alias: {
+			"@images": path.resolve("./src/images"),
+			"@src": path.resolve("./src"),
+			"@static": path.resolve("./static"),
+		}
+	}
 });