소스 검색

Initial commit: automar-generated demo site for Soluciones O.C.L

AusPrinzip 2 주 전
커밋
1bf5002016
13개의 변경된 파일4640개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      .gitignore
  2. 2137 0
      package-lock.json
  3. 19 0
      package.json
  4. 29 0
      src/app.css
  5. 20 0
      src/app.html
  6. 2 0
      src/routes/+layout.js
  7. 5 0
      src/routes/+layout.svelte
  8. 1293 0
      src/routes/+page.svelte
  9. 1094 0
      src/routes/about/+page.svelte
  10. 4 0
      static/favicon.svg
  11. BIN
      static/logo.png
  12. 16 0
      svelte.config.js
  13. 7 0
      vite.config.js

+ 14 - 0
.gitignore

@@ -0,0 +1,14 @@
+node_modules
+dist
+.svelte-kit
+.wrangler
+.DS_Store
+qa-screenshots
+hero-mobile
+
+# Heavy assets — kept locally, not in git
+static/gallery/
+static/hero-bg.mp4
+static/hero-bg-mobile.mp4
+*.mp4
+hero-bg.mp4

+ 2137 - 0
package-lock.json

@@ -0,0 +1,2137 @@
+{
+	"name": "soluciones-o-c-l",
+	"version": "0.0.1",
+	"lockfileVersion": 3,
+	"requires": true,
+	"packages": {
+		"": {
+			"name": "soluciones-o-c-l",
+			"version": "0.0.1",
+			"devDependencies": {
+				"@sveltejs/adapter-static": "^3.0.10",
+				"@sveltejs/kit": "^2.50.2",
+				"@sveltejs/vite-plugin-svelte": "^6.2.4",
+				"@tailwindcss/vite": "^4.2.1",
+				"svelte": "^5.51.0",
+				"tailwindcss": "^4.2.1",
+				"vite": "^7.3.1"
+			}
+		},
+		"node_modules/@esbuild/aix-ppc64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
+			"integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
+			"cpu": [
+				"ppc64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"aix"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/android-arm": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
+			"integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/android-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
+			"integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/android-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
+			"integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/darwin-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
+			"integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/darwin-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
+			"integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/freebsd-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
+			"integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/freebsd-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
+			"integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-arm": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
+			"integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
+			"integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-ia32": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
+			"integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
+			"cpu": [
+				"ia32"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-loong64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
+			"integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
+			"cpu": [
+				"loong64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-mips64el": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
+			"integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
+			"cpu": [
+				"mips64el"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-ppc64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
+			"integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
+			"cpu": [
+				"ppc64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-riscv64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
+			"integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
+			"cpu": [
+				"riscv64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-s390x": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
+			"integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
+			"cpu": [
+				"s390x"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/linux-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
+			"integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/netbsd-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
+			"integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"netbsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/netbsd-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
+			"integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"netbsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/openbsd-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
+			"integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"openbsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/openbsd-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
+			"integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"openbsd"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/openharmony-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
+			"integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"openharmony"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/sunos-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
+			"integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"sunos"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/win32-arm64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
+			"integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/win32-ia32": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
+			"integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
+			"cpu": [
+				"ia32"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@esbuild/win32-x64": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
+			"integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/@jridgewell/gen-mapping": {
+			"version": "0.3.13",
+			"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+			"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/sourcemap-codec": "^1.5.0",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
+		"node_modules/@jridgewell/remapping": {
+			"version": "2.3.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+			"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/gen-mapping": "^0.3.5",
+				"@jridgewell/trace-mapping": "^0.3.24"
+			}
+		},
+		"node_modules/@jridgewell/resolve-uri": {
+			"version": "3.1.2",
+			"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+			"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=6.0.0"
+			}
+		},
+		"node_modules/@jridgewell/sourcemap-codec": {
+			"version": "1.5.5",
+			"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+			"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@jridgewell/trace-mapping": {
+			"version": "0.3.31",
+			"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+			"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/resolve-uri": "^3.1.0",
+				"@jridgewell/sourcemap-codec": "^1.4.14"
+			}
+		},
+		"node_modules/@polka/url": {
+			"version": "1.0.0-next.29",
+			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
+			"integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@rollup/rollup-android-arm-eabi": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz",
+			"integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			]
+		},
+		"node_modules/@rollup/rollup-android-arm64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz",
+			"integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			]
+		},
+		"node_modules/@rollup/rollup-darwin-arm64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz",
+			"integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@rollup/rollup-darwin-x64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz",
+			"integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			]
+		},
+		"node_modules/@rollup/rollup-freebsd-arm64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz",
+			"integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			]
+		},
+		"node_modules/@rollup/rollup-freebsd-x64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz",
+			"integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz",
+			"integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-arm-musleabihf": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz",
+			"integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-arm64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz",
+			"integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-arm64-musl": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz",
+			"integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-loong64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz",
+			"integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==",
+			"cpu": [
+				"loong64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-loong64-musl": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz",
+			"integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==",
+			"cpu": [
+				"loong64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-ppc64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz",
+			"integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==",
+			"cpu": [
+				"ppc64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-ppc64-musl": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz",
+			"integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==",
+			"cpu": [
+				"ppc64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-riscv64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz",
+			"integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==",
+			"cpu": [
+				"riscv64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-riscv64-musl": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz",
+			"integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==",
+			"cpu": [
+				"riscv64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-s390x-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz",
+			"integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==",
+			"cpu": [
+				"s390x"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-x64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz",
+			"integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-linux-x64-musl": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz",
+			"integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			]
+		},
+		"node_modules/@rollup/rollup-openbsd-x64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz",
+			"integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"openbsd"
+			]
+		},
+		"node_modules/@rollup/rollup-openharmony-arm64": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz",
+			"integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"openharmony"
+			]
+		},
+		"node_modules/@rollup/rollup-win32-arm64-msvc": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz",
+			"integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@rollup/rollup-win32-ia32-msvc": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz",
+			"integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==",
+			"cpu": [
+				"ia32"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@rollup/rollup-win32-x64-gnu": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz",
+			"integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@rollup/rollup-win32-x64-msvc": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz",
+			"integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			]
+		},
+		"node_modules/@standard-schema/spec": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+			"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@sveltejs/acorn-typescript": {
+			"version": "1.0.9",
+			"resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.9.tgz",
+			"integrity": "sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==",
+			"dev": true,
+			"license": "MIT",
+			"peerDependencies": {
+				"acorn": "^8.9.0"
+			}
+		},
+		"node_modules/@sveltejs/adapter-static": {
+			"version": "3.0.10",
+			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz",
+			"integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==",
+			"dev": true,
+			"license": "MIT",
+			"peerDependencies": {
+				"@sveltejs/kit": "^2.0.0"
+			}
+		},
+		"node_modules/@sveltejs/kit": {
+			"version": "2.55.0",
+			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.55.0.tgz",
+			"integrity": "sha512-MdFRjevVxmAknf2NbaUkDF16jSIzXMWd4Nfah0Qp8TtQVoSp3bV4jKt8mX7z7qTUTWvgSaxtR0EG5WJf53gcuA==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"dependencies": {
+				"@standard-schema/spec": "^1.0.0",
+				"@sveltejs/acorn-typescript": "^1.0.5",
+				"@types/cookie": "^0.6.0",
+				"acorn": "^8.14.1",
+				"cookie": "^0.6.0",
+				"devalue": "^5.6.4",
+				"esm-env": "^1.2.2",
+				"kleur": "^4.1.5",
+				"magic-string": "^0.30.5",
+				"mrmime": "^2.0.0",
+				"set-cookie-parser": "^3.0.0",
+				"sirv": "^3.0.0"
+			},
+			"bin": {
+				"svelte-kit": "svelte-kit.js"
+			},
+			"engines": {
+				"node": ">=18.13"
+			},
+			"peerDependencies": {
+				"@opentelemetry/api": "^1.0.0",
+				"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0",
+				"svelte": "^4.0.0 || ^5.0.0-next.0",
+				"typescript": "^5.3.3",
+				"vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0"
+			},
+			"peerDependenciesMeta": {
+				"@opentelemetry/api": {
+					"optional": true
+				},
+				"typescript": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/@sveltejs/vite-plugin-svelte": {
+			"version": "6.2.4",
+			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.4.tgz",
+			"integrity": "sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"dependencies": {
+				"@sveltejs/vite-plugin-svelte-inspector": "^5.0.0",
+				"deepmerge": "^4.3.1",
+				"magic-string": "^0.30.21",
+				"obug": "^2.1.0",
+				"vitefu": "^1.1.1"
+			},
+			"engines": {
+				"node": "^20.19 || ^22.12 || >=24"
+			},
+			"peerDependencies": {
+				"svelte": "^5.0.0",
+				"vite": "^6.3.0 || ^7.0.0"
+			}
+		},
+		"node_modules/@sveltejs/vite-plugin-svelte-inspector": {
+			"version": "5.0.2",
+			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.2.tgz",
+			"integrity": "sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"obug": "^2.1.0"
+			},
+			"engines": {
+				"node": "^20.19 || ^22.12 || >=24"
+			},
+			"peerDependencies": {
+				"@sveltejs/vite-plugin-svelte": "^6.0.0-next.0",
+				"svelte": "^5.0.0",
+				"vite": "^6.3.0 || ^7.0.0"
+			}
+		},
+		"node_modules/@tailwindcss/node": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
+			"integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/remapping": "^2.3.5",
+				"enhanced-resolve": "^5.19.0",
+				"jiti": "^2.6.1",
+				"lightningcss": "1.32.0",
+				"magic-string": "^0.30.21",
+				"source-map-js": "^1.2.1",
+				"tailwindcss": "4.2.2"
+			}
+		},
+		"node_modules/@tailwindcss/oxide": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
+			"integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">= 20"
+			},
+			"optionalDependencies": {
+				"@tailwindcss/oxide-android-arm64": "4.2.2",
+				"@tailwindcss/oxide-darwin-arm64": "4.2.2",
+				"@tailwindcss/oxide-darwin-x64": "4.2.2",
+				"@tailwindcss/oxide-freebsd-x64": "4.2.2",
+				"@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
+				"@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
+				"@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
+				"@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
+				"@tailwindcss/oxide-linux-x64-musl": "4.2.2",
+				"@tailwindcss/oxide-wasm32-wasi": "4.2.2",
+				"@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
+				"@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-android-arm64": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz",
+			"integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-darwin-arm64": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz",
+			"integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-darwin-x64": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz",
+			"integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-freebsd-x64": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz",
+			"integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz",
+			"integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz",
+			"integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz",
+			"integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz",
+			"integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-linux-x64-musl": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz",
+			"integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-wasm32-wasi": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz",
+			"integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==",
+			"bundleDependencies": [
+				"@napi-rs/wasm-runtime",
+				"@emnapi/core",
+				"@emnapi/runtime",
+				"@tybys/wasm-util",
+				"@emnapi/wasi-threads",
+				"tslib"
+			],
+			"cpu": [
+				"wasm32"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"dependencies": {
+				"@emnapi/core": "^1.8.1",
+				"@emnapi/runtime": "^1.8.1",
+				"@emnapi/wasi-threads": "^1.1.0",
+				"@napi-rs/wasm-runtime": "^1.1.1",
+				"@tybys/wasm-util": "^0.10.1",
+				"tslib": "^2.8.1"
+			},
+			"engines": {
+				"node": ">=14.0.0"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
+			"integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
+			"integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 20"
+			}
+		},
+		"node_modules/@tailwindcss/vite": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz",
+			"integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@tailwindcss/node": "4.2.2",
+				"@tailwindcss/oxide": "4.2.2",
+				"tailwindcss": "4.2.2"
+			},
+			"peerDependencies": {
+				"vite": "^5.2.0 || ^6 || ^7 || ^8"
+			}
+		},
+		"node_modules/@types/cookie": {
+			"version": "0.6.0",
+			"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
+			"integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@types/estree": {
+			"version": "1.0.8",
+			"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+			"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@types/trusted-types": {
+			"version": "2.0.7",
+			"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+			"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/@typescript-eslint/types": {
+			"version": "8.58.0",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.0.tgz",
+			"integrity": "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/typescript-eslint"
+			}
+		},
+		"node_modules/acorn": {
+			"version": "8.16.0",
+			"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+			"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"bin": {
+				"acorn": "bin/acorn"
+			},
+			"engines": {
+				"node": ">=0.4.0"
+			}
+		},
+		"node_modules/aria-query": {
+			"version": "5.3.1",
+			"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz",
+			"integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==",
+			"dev": true,
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">= 0.4"
+			}
+		},
+		"node_modules/axobject-query": {
+			"version": "4.1.0",
+			"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+			"integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+			"dev": true,
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">= 0.4"
+			}
+		},
+		"node_modules/clsx": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+			"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/cookie": {
+			"version": "0.6.0",
+			"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+			"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">= 0.6"
+			}
+		},
+		"node_modules/deepmerge": {
+			"version": "4.3.1",
+			"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+			"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/detect-libc": {
+			"version": "2.1.2",
+			"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+			"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+			"dev": true,
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">=8"
+			}
+		},
+		"node_modules/devalue": {
+			"version": "5.6.4",
+			"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.4.tgz",
+			"integrity": "sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/enhanced-resolve": {
+			"version": "5.20.1",
+			"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+			"integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"graceful-fs": "^4.2.4",
+				"tapable": "^2.3.0"
+			},
+			"engines": {
+				"node": ">=10.13.0"
+			}
+		},
+		"node_modules/esbuild": {
+			"version": "0.27.7",
+			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
+			"integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
+			"dev": true,
+			"hasInstallScript": true,
+			"license": "MIT",
+			"bin": {
+				"esbuild": "bin/esbuild"
+			},
+			"engines": {
+				"node": ">=18"
+			},
+			"optionalDependencies": {
+				"@esbuild/aix-ppc64": "0.27.7",
+				"@esbuild/android-arm": "0.27.7",
+				"@esbuild/android-arm64": "0.27.7",
+				"@esbuild/android-x64": "0.27.7",
+				"@esbuild/darwin-arm64": "0.27.7",
+				"@esbuild/darwin-x64": "0.27.7",
+				"@esbuild/freebsd-arm64": "0.27.7",
+				"@esbuild/freebsd-x64": "0.27.7",
+				"@esbuild/linux-arm": "0.27.7",
+				"@esbuild/linux-arm64": "0.27.7",
+				"@esbuild/linux-ia32": "0.27.7",
+				"@esbuild/linux-loong64": "0.27.7",
+				"@esbuild/linux-mips64el": "0.27.7",
+				"@esbuild/linux-ppc64": "0.27.7",
+				"@esbuild/linux-riscv64": "0.27.7",
+				"@esbuild/linux-s390x": "0.27.7",
+				"@esbuild/linux-x64": "0.27.7",
+				"@esbuild/netbsd-arm64": "0.27.7",
+				"@esbuild/netbsd-x64": "0.27.7",
+				"@esbuild/openbsd-arm64": "0.27.7",
+				"@esbuild/openbsd-x64": "0.27.7",
+				"@esbuild/openharmony-arm64": "0.27.7",
+				"@esbuild/sunos-x64": "0.27.7",
+				"@esbuild/win32-arm64": "0.27.7",
+				"@esbuild/win32-ia32": "0.27.7",
+				"@esbuild/win32-x64": "0.27.7"
+			}
+		},
+		"node_modules/esm-env": {
+			"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==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/esrap": {
+			"version": "2.2.4",
+			"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.4.tgz",
+			"integrity": "sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/sourcemap-codec": "^1.4.15",
+				"@typescript-eslint/types": "^8.2.0"
+			}
+		},
+		"node_modules/fdir": {
+			"version": "6.5.0",
+			"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+			"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"peerDependencies": {
+				"picomatch": "^3 || ^4"
+			},
+			"peerDependenciesMeta": {
+				"picomatch": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/fsevents": {
+			"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,
+			"license": "MIT",
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+			}
+		},
+		"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,
+			"license": "ISC"
+		},
+		"node_modules/is-reference": {
+			"version": "3.0.3",
+			"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
+			"integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@types/estree": "^1.0.6"
+			}
+		},
+		"node_modules/jiti": {
+			"version": "2.6.1",
+			"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
+			"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
+			"dev": true,
+			"license": "MIT",
+			"bin": {
+				"jiti": "lib/jiti-cli.mjs"
+			}
+		},
+		"node_modules/kleur": {
+			"version": "4.1.5",
+			"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+			"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=6"
+			}
+		},
+		"node_modules/lightningcss": {
+			"version": "1.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+			"integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+			"dev": true,
+			"license": "MPL-2.0",
+			"dependencies": {
+				"detect-libc": "^2.0.3"
+			},
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			},
+			"optionalDependencies": {
+				"lightningcss-android-arm64": "1.32.0",
+				"lightningcss-darwin-arm64": "1.32.0",
+				"lightningcss-darwin-x64": "1.32.0",
+				"lightningcss-freebsd-x64": "1.32.0",
+				"lightningcss-linux-arm-gnueabihf": "1.32.0",
+				"lightningcss-linux-arm64-gnu": "1.32.0",
+				"lightningcss-linux-arm64-musl": "1.32.0",
+				"lightningcss-linux-x64-gnu": "1.32.0",
+				"lightningcss-linux-x64-musl": "1.32.0",
+				"lightningcss-win32-arm64-msvc": "1.32.0",
+				"lightningcss-win32-x64-msvc": "1.32.0"
+			}
+		},
+		"node_modules/lightningcss-android-arm64": {
+			"version": "1.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+			"integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/lightningcss-darwin-arm64": {
+			"version": "1.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+			"integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+			"integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+			"integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+			"integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+			"integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+			"integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+			"integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+			"integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+			"integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"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.32.0",
+			"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+			"integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"license": "MPL-2.0",
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">= 12.0.0"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/parcel"
+			}
+		},
+		"node_modules/locate-character": {
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
+			"integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/magic-string": {
+			"version": "0.30.21",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+			"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@jridgewell/sourcemap-codec": "^1.5.5"
+			}
+		},
+		"node_modules/mrmime": {
+			"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"
+			}
+		},
+		"node_modules/nanoid": {
+			"version": "3.3.11",
+			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+			"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
+			"license": "MIT",
+			"bin": {
+				"nanoid": "bin/nanoid.cjs"
+			},
+			"engines": {
+				"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+			}
+		},
+		"node_modules/obug": {
+			"version": "2.1.1",
+			"resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz",
+			"integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==",
+			"dev": true,
+			"funding": [
+				"https://github.com/sponsors/sxzz",
+				"https://opencollective.com/debug"
+			],
+			"license": "MIT"
+		},
+		"node_modules/picocolors": {
+			"version": "1.1.1",
+			"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+			"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+			"dev": true,
+			"license": "ISC"
+		},
+		"node_modules/picomatch": {
+			"version": "4.0.4",
+			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+			"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/jonschlinkert"
+			}
+		},
+		"node_modules/postcss": {
+			"version": "8.5.8",
+			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+			"integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+			"dev": true,
+			"funding": [
+				{
+					"type": "opencollective",
+					"url": "https://opencollective.com/postcss/"
+				},
+				{
+					"type": "tidelift",
+					"url": "https://tidelift.com/funding/github/npm/postcss"
+				},
+				{
+					"type": "github",
+					"url": "https://github.com/sponsors/ai"
+				}
+			],
+			"license": "MIT",
+			"dependencies": {
+				"nanoid": "^3.3.11",
+				"picocolors": "^1.1.1",
+				"source-map-js": "^1.2.1"
+			},
+			"engines": {
+				"node": "^10 || ^12 || >=14"
+			}
+		},
+		"node_modules/rollup": {
+			"version": "4.60.1",
+			"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz",
+			"integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@types/estree": "1.0.8"
+			},
+			"bin": {
+				"rollup": "dist/bin/rollup"
+			},
+			"engines": {
+				"node": ">=18.0.0",
+				"npm": ">=8.0.0"
+			},
+			"optionalDependencies": {
+				"@rollup/rollup-android-arm-eabi": "4.60.1",
+				"@rollup/rollup-android-arm64": "4.60.1",
+				"@rollup/rollup-darwin-arm64": "4.60.1",
+				"@rollup/rollup-darwin-x64": "4.60.1",
+				"@rollup/rollup-freebsd-arm64": "4.60.1",
+				"@rollup/rollup-freebsd-x64": "4.60.1",
+				"@rollup/rollup-linux-arm-gnueabihf": "4.60.1",
+				"@rollup/rollup-linux-arm-musleabihf": "4.60.1",
+				"@rollup/rollup-linux-arm64-gnu": "4.60.1",
+				"@rollup/rollup-linux-arm64-musl": "4.60.1",
+				"@rollup/rollup-linux-loong64-gnu": "4.60.1",
+				"@rollup/rollup-linux-loong64-musl": "4.60.1",
+				"@rollup/rollup-linux-ppc64-gnu": "4.60.1",
+				"@rollup/rollup-linux-ppc64-musl": "4.60.1",
+				"@rollup/rollup-linux-riscv64-gnu": "4.60.1",
+				"@rollup/rollup-linux-riscv64-musl": "4.60.1",
+				"@rollup/rollup-linux-s390x-gnu": "4.60.1",
+				"@rollup/rollup-linux-x64-gnu": "4.60.1",
+				"@rollup/rollup-linux-x64-musl": "4.60.1",
+				"@rollup/rollup-openbsd-x64": "4.60.1",
+				"@rollup/rollup-openharmony-arm64": "4.60.1",
+				"@rollup/rollup-win32-arm64-msvc": "4.60.1",
+				"@rollup/rollup-win32-ia32-msvc": "4.60.1",
+				"@rollup/rollup-win32-x64-gnu": "4.60.1",
+				"@rollup/rollup-win32-x64-msvc": "4.60.1",
+				"fsevents": "~2.3.2"
+			}
+		},
+		"node_modules/set-cookie-parser": {
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.0.tgz",
+			"integrity": "sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/sirv": {
+			"version": "3.0.2",
+			"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
+			"integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"@polka/url": "^1.0.0-next.24",
+				"mrmime": "^2.0.0",
+				"totalist": "^3.0.0"
+			},
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/source-map-js": {
+			"version": "1.2.1",
+			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+			"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+			"dev": true,
+			"license": "BSD-3-Clause",
+			"engines": {
+				"node": ">=0.10.0"
+			}
+		},
+		"node_modules/svelte": {
+			"version": "5.55.1",
+			"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.55.1.tgz",
+			"integrity": "sha512-QjvU7EFemf6mRzdMGlAFttMWtAAVXrax61SZYHdkD6yoVGQ89VeyKfZD4H1JrV1WLmJBxWhFch9H6ig/87VGjw==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"dependencies": {
+				"@jridgewell/remapping": "^2.3.4",
+				"@jridgewell/sourcemap-codec": "^1.5.0",
+				"@sveltejs/acorn-typescript": "^1.0.5",
+				"@types/estree": "^1.0.5",
+				"@types/trusted-types": "^2.0.7",
+				"acorn": "^8.12.1",
+				"aria-query": "5.3.1",
+				"axobject-query": "^4.1.0",
+				"clsx": "^2.1.1",
+				"devalue": "^5.6.4",
+				"esm-env": "^1.2.1",
+				"esrap": "^2.2.4",
+				"is-reference": "^3.0.3",
+				"locate-character": "^3.0.0",
+				"magic-string": "^0.30.11",
+				"zimmerframe": "^1.1.2"
+			},
+			"engines": {
+				"node": ">=18"
+			}
+		},
+		"node_modules/tailwindcss": {
+			"version": "4.2.2",
+			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
+			"integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
+			"dev": true,
+			"license": "MIT"
+		},
+		"node_modules/tapable": {
+			"version": "2.3.2",
+			"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
+			"integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
+			"dev": true,
+			"license": "MIT",
+			"engines": {
+				"node": ">=6"
+			},
+			"funding": {
+				"type": "opencollective",
+				"url": "https://opencollective.com/webpack"
+			}
+		},
+		"node_modules/tinyglobby": {
+			"version": "0.2.15",
+			"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+			"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+			"dev": true,
+			"license": "MIT",
+			"dependencies": {
+				"fdir": "^6.5.0",
+				"picomatch": "^4.0.3"
+			},
+			"engines": {
+				"node": ">=12.0.0"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/SuperchupuDev"
+			}
+		},
+		"node_modules/totalist": {
+			"version": "3.0.1",
+			"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/vite": {
+			"version": "7.3.1",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
+			"integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
+			"dev": true,
+			"license": "MIT",
+			"peer": true,
+			"dependencies": {
+				"esbuild": "^0.27.0",
+				"fdir": "^6.5.0",
+				"picomatch": "^4.0.3",
+				"postcss": "^8.5.6",
+				"rollup": "^4.43.0",
+				"tinyglobby": "^0.2.15"
+			},
+			"bin": {
+				"vite": "bin/vite.js"
+			},
+			"engines": {
+				"node": "^20.19.0 || >=22.12.0"
+			},
+			"funding": {
+				"url": "https://github.com/vitejs/vite?sponsor=1"
+			},
+			"optionalDependencies": {
+				"fsevents": "~2.3.3"
+			},
+			"peerDependencies": {
+				"@types/node": "^20.19.0 || >=22.12.0",
+				"jiti": ">=1.21.0",
+				"less": "^4.0.0",
+				"lightningcss": "^1.21.0",
+				"sass": "^1.70.0",
+				"sass-embedded": "^1.70.0",
+				"stylus": ">=0.54.8",
+				"sugarss": "^5.0.0",
+				"terser": "^5.16.0",
+				"tsx": "^4.8.1",
+				"yaml": "^2.4.2"
+			},
+			"peerDependenciesMeta": {
+				"@types/node": {
+					"optional": true
+				},
+				"jiti": {
+					"optional": true
+				},
+				"less": {
+					"optional": true
+				},
+				"lightningcss": {
+					"optional": true
+				},
+				"sass": {
+					"optional": true
+				},
+				"sass-embedded": {
+					"optional": true
+				},
+				"stylus": {
+					"optional": true
+				},
+				"sugarss": {
+					"optional": true
+				},
+				"terser": {
+					"optional": true
+				},
+				"tsx": {
+					"optional": true
+				},
+				"yaml": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/vitefu": {
+			"version": "1.1.3",
+			"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz",
+			"integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==",
+			"dev": true,
+			"license": "MIT",
+			"workspaces": [
+				"tests/deps/*",
+				"tests/projects/*",
+				"tests/projects/workspace/packages/*"
+			],
+			"peerDependencies": {
+				"vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+			},
+			"peerDependenciesMeta": {
+				"vite": {
+					"optional": true
+				}
+			}
+		},
+		"node_modules/zimmerframe": {
+			"version": "1.1.4",
+			"resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz",
+			"integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==",
+			"dev": true,
+			"license": "MIT"
+		}
+	}
+}

+ 19 - 0
package.json

@@ -0,0 +1,19 @@
+{
+	"name": "soluciones-o-c-l",
+	"version": "0.0.1",
+	"type": "module",
+	"scripts": {
+		"dev": "vite dev",
+		"build": "vite build",
+		"preview": "vite preview"
+	},
+	"devDependencies": {
+		"@sveltejs/adapter-static": "^3.0.10",
+		"@sveltejs/kit": "^2.50.2",
+		"@sveltejs/vite-plugin-svelte": "^6.2.4",
+		"@tailwindcss/vite": "^4.2.1",
+		"svelte": "^5.51.0",
+		"tailwindcss": "^4.2.1",
+		"vite": "^7.3.1"
+	}
+}

+ 29 - 0
src/app.css

@@ -0,0 +1,29 @@
+@import 'tailwindcss';
+
+@layer base {
+	html {
+		scroll-behavior: smooth;
+	}
+	body {
+		-webkit-font-smoothing: antialiased;
+	}
+}
+
+@layer components {
+	.min-h-screen-ios {
+		height: 100vh;
+		height: 100svh;
+		max-height: 100vh;
+		max-height: 100svh;
+	}
+
+	.reveal {
+		opacity: 0;
+		transform: translateY(30px);
+		transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
+	}
+	.reveal.revealed, .revealed {
+		opacity: 1;
+		transform: translateY(0);
+	}
+}

+ 20 - 0
src/app.html

@@ -0,0 +1,20 @@
+<!doctype html>
+<html lang="es">
+	<head>
+		<meta charset="utf-8" />
+		<link rel="icon" type="image/svg+xml" href="%sveltekit.assets%/favicon.svg" />
+		<meta name="viewport" content="width=device-width, initial-scale=1" />
+		<meta name="description" content="Empresa constructora y de servicios técnicos especializada en construcción residencial y comercial, instalaciones eléctricas, fontanería y remodelaciones en la zona de Guanacaste, Costa Rica." />
+		<meta property="og:title" content="Soluciones O.C.L" />
+		<meta property="og:description" content="Empresa constructora y de servicios técnicos especializada en construcción residencial y comercial, instalaciones eléctricas, fontanería y remodelaciones en la zona de Guanacaste, Costa Rica." />
+		<meta property="og:type" content="website" />
+		<meta name="twitter:card" content="summary_large_image" />
+		<meta name="twitter:title" content="Soluciones O.C.L" />
+		<meta name="twitter:description" content="Empresa constructora y de servicios técnicos especializada en construcción residencial y comercial, instalaciones eléctricas, fontanería y remodelaciones en la zona de Guanacaste, Costa Rica." />
+		<title>Soluciones O.C.L</title>
+		%sveltekit.head%
+	</head>
+	<body data-sveltekit-preload-data="hover">
+		<div style="display: contents">%sveltekit.body%</div>
+	</body>
+</html>

+ 2 - 0
src/routes/+layout.js

@@ -0,0 +1,2 @@
+export const prerender = true;
+export const ssr = false;

+ 5 - 0
src/routes/+layout.svelte

@@ -0,0 +1,5 @@
+<script>
+	import '../app.css';
+</script>
+
+<slot />

+ 1293 - 0
src/routes/+page.svelte

@@ -0,0 +1,1293 @@
+<svelte:head>
+  <title>Soluciones O.C.L — Construcción y Servicios Técnicos en Guanacaste</title>
+  <meta name="description" content="Empresa constructora especializada en construcción residencial y comercial, instalaciones eléctricas, fontanería y remodelaciones en Guanacaste, Costa Rica." />
+  <link rel="preconnect" href="https://fonts.googleapis.com" />
+  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" />
+  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Montserrat:wght@300;400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap" rel="stylesheet" />
+</svelte:head>
+
+<script>
+  import { onMount } from 'svelte';
+
+  let scrolled = $state(false);
+  let menuOpen = $state(false);
+
+  const services = [
+    {
+      name: 'Construcción Residencial y Comercial',
+      description: 'Construcción de obras desde cero incluyendo estructuras metálicas, levantado de paredes con perfiles galvanizados y paneles de yeso, acabados exteriores e interiores, y proyectos completos de viviendas y edificaciones comerciales modernas.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 35V18L20 5l15 13v17H5z"/><rect x="14" y="22" width="12" height="13" rx="1"/><path d="M20 5v3M10 20h4M26 20h4"/></svg>`,
+      image: '/gallery/30.jpg'
+    },
+    {
+      name: 'Instalaciones Eléctricas',
+      description: 'Instalación y mantenimiento de sistemas eléctricos residenciales y comerciales, incluyendo cableado, interruptores, enchufes, iluminación y conexiones seguras bajo normas técnicas.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 4L10 22h10l-2 14 14-18H22L24 4z"/></svg>`,
+      image: '/gallery/25.jpg'
+    },
+    {
+      name: 'Fontanería y Plomería',
+      description: 'Instalación y reparación de tuberías de agua, tanques de presión, griferías, inodoros, duchas y sistemas hidráulicos completos para proyectos residenciales y comerciales.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M8 32c0 2.2 1.8 4 4 4s4-1.8 4-4c0-4-4-8-4-8s-4 4-4 8z"/><path d="M16 28l8-8M20 20l4-10 6 6-10 4z"/><path d="M24 10l2-6M30 16l6-2"/></svg>`,
+      image: '/gallery/4.jpg'
+    },
+    {
+      name: 'Remodelaciones y Acabados',
+      description: 'Transformación de espacios interiores con colocación de azulejos, revestimientos de piedra decorativa, enchapado de pisos y paredes, instalación de cocinas modernas, barras exteriores y acabados de alta calidad.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="14" height="14" rx="1"/><rect x="22" y="4" width="14" height="14" rx="1"/><rect x="4" y="22" width="14" height="14" rx="1"/><rect x="22" y="22" width="14" height="14" rx="1"/></svg>`,
+      image: '/gallery/41.jpg'
+    },
+    {
+      name: 'Estructuras Metálicas',
+      description: 'Fabricación e instalación de estructuras metálicas para techos, fachadas, cerramientos y obras civiles, utilizando perfiles de acero galvanizado y soldadura profesional.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 36L20 4l16 32H4z"/><path d="M12 36l8-16 8 16"/><path d="M20 20v8"/></svg>`,
+      image: '/gallery/27.jpg'
+    },
+    {
+      name: 'Obras Exteriores y Paisajismo',
+      description: 'Construcción de piscinas, fuentes de agua, zonas de barbacoa, terrazas techadas, cocheras y pavimentación de calles y accesos dentro de proyectos residenciales.',
+      icon: `<svg width="40" height="40" viewBox="0 0 40 40" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 28c4-8 12-12 16-8s8 0 12-8"/><path d="M4 36c4-8 12-12 16-8s8 0 12-8"/><path d="M20 28v8"/><circle cx="20" cy="16" r="6"/></svg>`,
+      image: '/gallery/32.jpg'
+    }
+  ];
+
+  const galleryImages = [
+    { src: '/gallery/13.jpg', alt: 'Construcción moderna con piscina' },
+    { src: '/gallery/41.jpg', alt: 'Cocina moderna con gabinetes oscuros' },
+    { src: '/gallery/32.jpg', alt: 'Zona de barbacoa exterior moderna' },
+    { src: '/gallery/22.jpg', alt: 'Revestimiento de piedra decorativa' },
+    { src: '/gallery/43.jpg', alt: 'Terraza techada con barra moderna' },
+  ];
+
+  onMount(() => {
+    const handleScroll = () => {
+      scrolled = window.scrollY > 50;
+    };
+    window.addEventListener('scroll', handleScroll);
+
+    const revealEls = document.querySelectorAll('.reveal');
+    const observer = new IntersectionObserver((entries) => {
+      entries.forEach(entry => {
+        if (entry.isIntersecting) {
+          entry.target.classList.add('revealed');
+        }
+      });
+    }, { threshold: 0.12 });
+    revealEls.forEach(el => observer.observe(el));
+
+    return () => {
+      window.removeEventListener('scroll', handleScroll);
+      observer.disconnect();
+    };
+  });
+</script>
+
+<nav class={scrolled || menuOpen ? 'nav-solid' : 'nav-transparent'} id="nav">
+  <div class="nav-inner">
+    <a href="/" class="nav-logo">
+      <img src="/logo.png" alt="Soluciones O.C.L" class="h-12 w-auto" />
+    </a>
+    <div class="nav-links">
+      <a href="/" class="nav-link active-link">Inicio</a>
+      <a href="/about" class="nav-link">Nosotros</a>
+      <a href="#servicios" class="nav-link">Servicios</a>
+      <a href="#galeria" class="nav-link">Galería</a>
+      <a href="#contacto" class="nav-link">Contacto</a>
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="nav-cta">Cotizar</a>
+    </div>
+    <button class="hamburger" onclick={() => menuOpen = !menuOpen} aria-label="Menú">
+      <span class={menuOpen ? 'bar bar-open-1' : 'bar'}></span>
+      <span class={menuOpen ? 'bar bar-open-2' : 'bar'}></span>
+      <span class={menuOpen ? 'bar bar-open-3' : 'bar'}></span>
+    </button>
+  </div>
+  {#if menuOpen}
+    <div class="mobile-menu">
+      <a href="/" class="mobile-link" onclick={() => menuOpen = false}>Inicio</a>
+      <a href="/about" class="mobile-link" onclick={() => menuOpen = false}>Nosotros</a>
+      <a href="#servicios" class="mobile-link" onclick={() => menuOpen = false}>Servicios</a>
+      <a href="#galeria" class="mobile-link" onclick={() => menuOpen = false}>Galería</a>
+      <a href="#contacto" class="mobile-link" onclick={() => menuOpen = false}>Contacto</a>
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="mobile-cta">Solicitar Cotización</a>
+    </div>
+  {/if}
+</nav>
+
+<!-- HERO -->
+<section class="hero min-h-screen-ios" id="inicio">
+  <video class="hero-video hidden sm:block" autoplay muted loop playsinline>
+    <source src="/hero-bg.mp4" type="video/mp4" />
+  </video>
+  <video class="hero-video sm:hidden" autoplay muted loop playsinline>
+    <source src="/hero-bg-mobile.mp4" type="video/mp4" />
+  </video>
+  <div class="hero-overlay"></div>
+  <div class="hero-radial"></div>
+  <div class="hero-content">
+    <div class="hero-logo-wrap">
+      <div class="hero-logo-glow"></div>
+      <img src="/logo.png" alt="Soluciones O.C.L" class="hero-logo" />
+    </div>
+    <p class="hero-eyebrow">Guanacaste, Costa Rica</p>
+    <h1 class="hero-title">SOLUCIONES O.C.L</h1>
+    <p class="hero-tagline">Construimos tus ideas con calidad y compromiso</p>
+    <div class="hero-divider">
+      <span class="divider-line"></span>
+      <span class="divider-icon">
+        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="#C8A832" stroke-width="1.5"><path d="M10 2L4 10h5l-2 8 8-10h-5l2-8z"/></svg>
+      </span>
+      <span class="divider-line"></span>
+    </div>
+    <a href="tel:50688001130" class="hero-phone">+506 8800-1130</a>
+    <div class="hero-btns">
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="btn-primary">
+        <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path d="M10 0C4.477 0 0 4.373 0 9.765c0 1.717.463 3.325 1.27 4.716L0 20l5.688-1.483A10.06 10.06 0 0010 19.53c5.523 0 10-4.373 10-9.765S15.523 0 10 0zm5.193 13.764c-.217.603-1.27 1.154-1.742 1.226-.448.068-.998.097-1.61-.1-.37-.12-.846-.28-1.453-.548-2.56-1.098-4.229-3.644-4.357-3.814-.127-.17-1.043-1.373-1.043-2.617 0-1.244.659-1.856.893-2.107.233-.251.508-.314.677-.314.17 0 .339.002.487.008.156.007.366-.059.572.433.211.505.717 1.748.78 1.875.063.127.105.275.02.443-.085.17-.127.275-.254.424-.127.148-.266.33-.381.443-.127.12-.258.25-.111.49.148.238.657 1.075 1.41 1.74.97.862 1.787 1.128 2.027 1.255.24.127.38.106.52-.063.14-.17.593-.687.75-.924.158-.238.316-.198.532-.12.217.08 1.376.645 1.612.763.237.12.394.178.452.277.06.1.06.582-.157 1.185z"/></svg>
+        WhatsApp
+      </a>
+      <a href="tel:50688001130" class="btn-secondary">
+        <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M6.5 3C6 5.5 4 8 4 10s2 4.5 2.5 7l3-2c.5-1.5 0-3-.5-4l2-2c1 .5 2.5 1 4 .5l2-3C15 5 12.5 3 10 3l-3.5 0z"/></svg>
+        Llamar
+      </a>
+    </div>
+    <div class="hero-scroll">
+      <span class="scroll-text">Descubrir</span>
+      <div class="scroll-arrow">
+        <svg width="16" height="24" viewBox="0 0 16 24" fill="none" stroke="#C8A832" stroke-width="1.5"><path d="M8 2v20M2 16l6 6 6-6"/></svg>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- INTRO STRIP -->
+<section class="intro-strip reveal">
+  <div class="intro-inner">
+    <div class="intro-item">
+      <span class="intro-number">10+</span>
+      <span class="intro-label">Años de Experiencia</span>
+    </div>
+    <div class="intro-sep"></div>
+    <div class="intro-item">
+      <span class="intro-number">500+</span>
+      <span class="intro-label">Proyectos Completados</span>
+    </div>
+    <div class="intro-sep"></div>
+    <div class="intro-item">
+      <span class="intro-number">6</span>
+      <span class="intro-label">Especialidades</span>
+    </div>
+    <div class="intro-sep"></div>
+    <div class="intro-item">
+      <span class="intro-number">100%</span>
+      <span class="intro-label">Compromiso y Calidad</span>
+    </div>
+  </div>
+</section>
+
+<!-- SERVICES -->
+<section id="servicios" class="services-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Lo que hacemos</span>
+      <h2 class="section-title">Nuestros Servicios</h2>
+      <p class="section-sub">Ofrecemos soluciones integrales de construcción y servicios técnicos especializados en Guanacaste.</p>
+    </div>
+    <div class="services-grid">
+      {#each services as service, i}
+        <div class="service-card reveal" style="animation-delay: {i * 0.1}s">
+          <div class="service-card-img">
+            <img src={service.image} alt={service.name} loading="lazy" />
+            <div class="service-img-overlay"></div>
+          </div>
+          <div class="service-card-body">
+            <div class="service-icon-circle">
+              {@html service.icon}
+            </div>
+            <h3 class="service-name">{service.name}</h3>
+            <p class="service-desc">{service.description}</p>
+            <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="service-link">
+              Consultar
+              <svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M3 8h10M9 4l4 4-4 4"/></svg>
+            </a>
+          </div>
+        </div>
+      {/each}
+    </div>
+  </div>
+</section>
+
+<!-- ABOUT STRIP -->
+<section class="about-strip reveal">
+  <div class="about-strip-inner">
+    <div class="about-strip-text">
+      <span class="section-eyebrow">Quiénes somos</span>
+      <h2 class="about-strip-title">Profesionalismo y Excelencia en Cada Proyecto</h2>
+      <p class="about-strip-body">En Soluciones O.C.L llevamos años transformando espacios en Guanacaste con la más alta calidad en construcción y servicios técnicos. Nuestro equipo especializado se dedica a convertir cada proyecto en una obra de excelencia, respetando plazos, presupuestos y las expectativas de nuestros clientes.</p>
+      <div class="about-strip-btns">
+        <a href="/about" class="btn-primary">Conocer Más</a>
+        <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="btn-outline">Cotizar Proyecto</a>
+      </div>
+    </div>
+    <div class="about-strip-imgs">
+      <div class="about-img-main">
+        <img src="/gallery/21.jpg" alt="Nuestro equipo en obra" loading="lazy" />
+      </div>
+      <div class="about-img-accent">
+        <img src="/gallery/23.jpg" alt="Trabajo profesional en estructuras" loading="lazy" />
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- GALLERY -->
+<section id="galeria" class="gallery-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Nuestro trabajo</span>
+      <h2 class="section-title">Galería de Proyectos</h2>
+      <p class="section-sub">Una muestra de los proyectos realizados con calidad y dedicación en Guanacaste.</p>
+    </div>
+    <div class="gallery-grid reveal">
+      {#each galleryImages as img, i}
+        <div class="gallery-item {i === 0 ? 'gallery-item-featured' : ''}">
+          <img src={img.src} alt={img.alt} loading="lazy" />
+          <div class="gallery-overlay">
+            <span class="gallery-label">{img.alt}</span>
+          </div>
+        </div>
+      {/each}
+    </div>
+  </div>
+</section>
+
+<!-- CONTACT -->
+<section id="contacto" class="contact-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Estamos aquí</span>
+      <h2 class="section-title">Contáctenos</h2>
+      <p class="section-sub">Estamos listos para escuchar su proyecto y brindarle la mejor solución constructiva.</p>
+    </div>
+    <div class="contact-grid">
+      <div class="contact-info reveal">
+        <div class="contact-card">
+          <div class="contact-card-icon">
+            <svg width="28" height="28" viewBox="0 0 28 28" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M14 2C8.477 2 4 6.373 4 11.765c0 1.717.463 3.325 1.27 4.716L4 22l5.688-1.483A10.06 10.06 0 0014 21.53c5.523 0 10-4.373 10-9.765S19.523 2 14 2z"/></svg>
+          </div>
+          <div>
+            <h4 class="contact-card-label">WhatsApp</h4>
+            <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="contact-card-value">+506 8800-1130</a>
+          </div>
+        </div>
+        <div class="contact-card">
+          <div class="contact-card-icon">
+            <svg width="28" height="28" viewBox="0 0 28 28" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M7.5 3C7 5.5 5 8 5 10s2 4.5 2.5 7l3-2c.5-1.5 0-3-.5-4l2-2c1 .5 2.5 1 4 .5l2-3C16 5 13.5 3 11 3l-3.5 0z"/></svg>
+          </div>
+          <div>
+            <h4 class="contact-card-label">Teléfono</h4>
+            <a href="tel:50688001130" class="contact-card-value">+506 8800-1130</a>
+          </div>
+        </div>
+        <div class="contact-card">
+          <div class="contact-card-icon">
+            <svg width="28" height="28" viewBox="0 0 28 28" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M14 3C9.582 3 6 6.582 6 11c0 6.627 8 16 8 16s8-9.373 8-16c0-4.418-3.582-8-8-8z"/><circle cx="14" cy="11" r="3"/></svg>
+          </div>
+          <div>
+            <h4 class="contact-card-label">Ubicación</h4>
+            <p class="contact-card-value">Huaca, Guanacaste, Costa Rica</p>
+          </div>
+        </div>
+        <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="btn-primary contact-btn">
+          <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path d="M10 0C4.477 0 0 4.373 0 9.765c0 1.717.463 3.325 1.27 4.716L0 20l5.688-1.483A10.06 10.06 0 0010 19.53c5.523 0 10-4.373 10-9.765S15.523 0 10 0zm5.193 13.764c-.217.603-1.27 1.154-1.742 1.226-.448.068-.998.097-1.61-.1-.37-.12-.846-.28-1.453-.548-2.56-1.098-4.229-3.644-4.357-3.814-.127-.17-1.043-1.373-1.043-2.617 0-1.244.659-1.856.893-2.107.233-.251.508-.314.677-.314.17 0 .339.002.487.008.156.007.366-.059.572.433.211.505.717 1.748.78 1.875.063.127.105.275.02.443-.085.17-.127.275-.254.424-.127.148-.266.33-.381.443-.127.12-.258.25-.111.49.148.238.657 1.075 1.41 1.74.97.862 1.787 1.128 2.027 1.255.24.127.38.106.52-.063.14-.17.593-.687.75-.924.158-.238.316-.198.532-.12.217.08 1.376.645 1.612.763.237.12.394.178.452.277.06.1.06.582-.157 1.185z"/></svg>
+          Escribir por WhatsApp
+        </a>
+      </div>
+      <div class="contact-map reveal">
+        <iframe
+          src="https://maps.google.com/maps?q=Huaca%2C%20Guanacaste%2C%20Costa%20Rica&output=embed"
+          width="100%"
+          height="300"
+          style="border:0"
+          loading="lazy"
+          title="Ubicación Soluciones O.C.L"
+        ></iframe>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- FOOTER -->
+<footer class="site-footer">
+  <div class="footer-inner">
+    <div class="footer-top">
+      <div class="footer-brand">
+        <img src="/logo.png" alt="Soluciones O.C.L" class="footer-logo" />
+        <p class="footer-tagline">Construimos tus ideas con calidad y compromiso</p>
+      </div>
+      <div class="footer-links-col">
+        <h4 class="footer-col-title">Navegación</h4>
+        <a href="/" class="footer-link">Inicio</a>
+        <a href="/about" class="footer-link">Nosotros</a>
+        <a href="#servicios" class="footer-link">Servicios</a>
+        <a href="#galeria" class="footer-link">Galería</a>
+        <a href="#contacto" class="footer-link">Contacto</a>
+      </div>
+      <div class="footer-links-col">
+        <h4 class="footer-col-title">Contacto</h4>
+        <a href="tel:50688001130" class="footer-link">+506 8800-1130</a>
+        <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="footer-link">WhatsApp</a>
+        <span class="footer-link-text">Huaca, Guanacaste</span>
+        <span class="footer-link-text">Costa Rica</span>
+      </div>
+    </div>
+    <div class="footer-bottom">
+      <p class="footer-copy">© 2025 Soluciones O.C.L. Todos los derechos reservados.</p>
+      <a href="https://digitalmar.dev" target="_blank" rel="noopener noreferrer" class="footer-credit">Hecho por digitalmar.dev</a>
+    </div>
+  </div>
+</footer>
+
+<!-- FLOATING WHATSAPP -->
+<a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="whatsapp-float" aria-label="WhatsApp">
+  <div class="whatsapp-pulse"></div>
+  <svg width="28" height="28" viewBox="0 0 28 28" fill="white"><path d="M14 1C6.82 1 1 6.71 1 13.765c0 2.4.647 4.654 1.778 6.602L1 27l6.851-1.749A13.094 13.094 0 0014 26.53C21.18 26.53 27 20.82 27 13.765S21.18 1 14 1zm7.27 19.27c-.304.844-1.778 1.616-2.438 1.716-.627.095-1.397.136-2.254-.14-.518-.168-1.184-.392-2.034-.767C11.962 19.54 9.59 16.07 9.41 15.83c-.18-.238-1.46-1.923-1.46-3.664 0-1.74.922-2.598 1.25-2.95.327-.351.712-.44.948-.44.238 0 .475.003.682.01.218.01.512-.082.8.607.295.707 1.004 2.447 1.092 2.625.088.178.147.385.029.62-.119.238-.178.385-.356.594-.178.207-.372.462-.534.62-.178.169-.362.35-.155.687.207.333.919 1.505 1.974 2.436 1.358 1.207 2.502 1.58 2.838 1.757.335.178.531.148.728-.089.196-.238.83-.961 1.05-1.293.222-.333.442-.277.745-.167.304.11 1.926.903 2.257 1.068.33.168.551.249.633.387.083.139.083.814-.22 1.659z"/></svg>
+</a>
+
+<style>
+  :global(html) {
+    overflow-x: hidden;
+  }
+
+  :global(body) {
+    background-color: #0A0A0A;
+    color: #C8A832;
+    font-family: 'Montserrat', sans-serif;
+    overflow-x: hidden;
+    max-width: 100vw;
+  }
+
+  /* NAV */
+  #nav {
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    z-index: 100;
+    transition: all 0.4s ease;
+  }
+  .nav-transparent {
+    background: transparent;
+    border-bottom: 1px solid transparent;
+  }
+  .nav-solid {
+    background: rgba(10, 10, 10, 0.97);
+    border-bottom: 1px solid rgba(200, 168, 50, 0.2);
+    backdrop-filter: blur(12px);
+  }
+  .nav-inner {
+    max-width: 1100px;
+    margin: 0 auto;
+    padding: 0 1.25rem;
+    height: 72px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
+  .nav-logo img {
+    filter: drop-shadow(0 0 8px rgba(200, 168, 50, 0.4));
+  }
+  .nav-links {
+    display: none;
+    align-items: center;
+    gap: 2rem;
+  }
+  @media (min-width: 900px) {
+    .nav-links { display: flex; }
+  }
+  .nav-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.8rem;
+    font-weight: 500;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    color: #C8A832;
+    text-decoration: none;
+    transition: color 0.3s ease;
+  }
+  .nav-link:hover { color: #E8C840; }
+  .active-link { color: #E8C840; }
+  .nav-cta {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    font-weight: 700;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    color: #fff;
+    background: #E01020;
+    padding: 10px 24px;
+    border-radius: 4px;
+    text-decoration: none;
+    transition: all 0.3s ease;
+  }
+  .nav-cta:hover { background: #C8A832; color: #0A0A0A; }
+
+  .hamburger {
+    display: flex;
+    flex-direction: column;
+    gap: 5px;
+    background: none;
+    border: none;
+    cursor: pointer;
+    padding: 4px;
+    flex-shrink: 0;
+  }
+  @media (min-width: 900px) { .hamburger { display: none; } }
+  .bar {
+    display: block;
+    width: 26px;
+    height: 2px;
+    background: #C8A832;
+    transition: all 0.3s ease;
+    transform-origin: center;
+  }
+  .bar-open-1 { transform: rotate(45deg) translate(5px, 5px); }
+  .bar-open-2 { opacity: 0; }
+  .bar-open-3 { transform: rotate(-45deg) translate(5px, -5px); }
+
+  .mobile-menu {
+    background: rgba(10, 10, 10, 0.98);
+    border-top: 1px solid rgba(200, 168, 50, 0.15);
+    padding: 1.5rem 1.25rem;
+    display: flex;
+    flex-direction: column;
+    gap: 0;
+  }
+  .mobile-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.9rem;
+    font-weight: 500;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    color: #C8A832;
+    text-decoration: none;
+    padding: 0.85rem 0;
+    border-bottom: 1px solid rgba(200, 168, 50, 0.1);
+    transition: color 0.3s;
+  }
+  .mobile-link:hover { color: #E8C840; }
+  .mobile-cta {
+    display: inline-block;
+    margin-top: 1rem;
+    background: #E01020;
+    color: #fff;
+    text-align: center;
+    padding: 14px 32px;
+    border-radius: 4px;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    text-decoration: none;
+    transition: all 0.3s ease;
+  }
+  .mobile-cta:hover { background: #C8A832; color: #0A0A0A; }
+
+  /* HERO */
+  .hero {
+    position: relative;
+    width: 100%;
+    overflow: hidden;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  .hero-video {
+    position: absolute;
+    inset: 0;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    z-index: 0;
+  }
+  .hero-overlay {
+    position: absolute;
+    inset: 0;
+    background: linear-gradient(180deg, rgba(10,10,10,0.65) 0%, rgba(10,10,10,0.8) 60%, rgba(10,10,10,0.97) 100%);
+    z-index: 1;
+  }
+  .hero-radial {
+    position: absolute;
+    inset: 0;
+    background: radial-gradient(circle at 50% 40%, rgba(240,200,48,0.1) 0%, transparent 65%);
+    z-index: 2;
+  }
+  .hero-content {
+    position: relative;
+    z-index: 3;
+    text-align: center;
+    padding: 6rem 1.25rem 4rem;
+    width: 100%;
+    max-width: 800px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    box-sizing: border-box;
+  }
+  .hero-logo-wrap {
+    position: relative;
+    margin-bottom: 1.5rem;
+  }
+  .hero-logo-glow {
+    position: absolute;
+    inset: -30px;
+    background: radial-gradient(circle, rgba(240,200,48,0.25) 0%, transparent 70%);
+    border-radius: 50%;
+    animation: pulseGlow 3s ease-in-out infinite;
+  }
+  @keyframes pulseGlow {
+    0%, 100% { opacity: 0.6; transform: scale(1); }
+    50% { opacity: 1; transform: scale(1.1); }
+  }
+  .hero-logo {
+    height: 110px;
+    width: auto;
+    max-width: 80vw;
+    position: relative;
+    filter: drop-shadow(0 0 20px rgba(200, 168, 50, 0.5));
+    animation: fadeInDown 0.9s ease both;
+  }
+  @media (min-width: 640px) { .hero-logo { height: 160px; } }
+
+  .hero-eyebrow {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.7rem;
+    font-weight: 600;
+    letter-spacing: 0.3em;
+    text-transform: uppercase;
+    color: #9A8428;
+    margin-bottom: 0.5rem;
+    animation: fadeInDown 0.9s ease 0.1s both;
+  }
+  .hero-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(1.6rem, 6vw, 4.5rem);
+    font-weight: 900;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0 0 0.75rem;
+    line-height: 1.1;
+    animation: fadeInDown 0.9s ease 0.2s both;
+    word-break: break-word;
+  }
+  .hero-tagline {
+    font-family: 'Montserrat', sans-serif;
+    font-size: clamp(0.82rem, 2.5vw, 1.15rem);
+    font-weight: 400;
+    color: #C8A832;
+    letter-spacing: 0.03em;
+    margin-bottom: 1.5rem;
+    animation: fadeInDown 0.9s ease 0.3s both;
+    padding: 0 0.5rem;
+  }
+  .hero-divider {
+    display: flex;
+    align-items: center;
+    gap: 1rem;
+    margin-bottom: 1.5rem;
+    animation: fadeIn 0.9s ease 0.4s both;
+    width: 100%;
+    max-width: 320px;
+  }
+  .divider-line {
+    display: block;
+    flex: 1;
+    height: 1px;
+    background: linear-gradient(90deg, transparent, #C8A832);
+  }
+  .divider-line:last-child { background: linear-gradient(270deg, transparent, #C8A832); }
+
+  .hero-phone {
+    font-family: 'Oswald', sans-serif;
+    font-size: clamp(1.4rem, 5vw, 2.2rem);
+    font-weight: 700;
+    color: #E8C840;
+    letter-spacing: 0.05em;
+    text-decoration: none;
+    margin-bottom: 2rem;
+    animation: fadeInDown 0.9s ease 0.5s both;
+    text-shadow: 0 0 20px rgba(232, 200, 64, 0.4);
+    transition: color 0.3s ease;
+  }
+  .hero-phone:hover { color: #fff; }
+
+  .hero-btns {
+    display: flex;
+    gap: 0.75rem;
+    flex-wrap: wrap;
+    justify-content: center;
+    animation: fadeIn 0.9s ease 0.6s both;
+    padding: 0 0.5rem;
+  }
+
+  .btn-primary {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: #E01020;
+    color: #fff;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    font-weight: 700;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 13px 24px;
+    border-radius: 4px;
+    transition: all 0.3s ease;
+    box-shadow: 0 0 20px rgba(224, 16, 32, 0.3);
+    white-space: nowrap;
+  }
+  .btn-primary:hover {
+    background: #C8A832;
+    color: #0A0A0A;
+    box-shadow: 0 0 30px rgba(200, 168, 50, 0.4);
+  }
+  .btn-secondary {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: transparent;
+    color: #C8A832;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    font-weight: 700;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 12px 24px;
+    border-radius: 4px;
+    border: 2px solid #C8A832;
+    transition: all 0.3s ease;
+    white-space: nowrap;
+  }
+  .btn-secondary:hover { background: #C8A832; color: #0A0A0A; }
+
+  .btn-outline {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: transparent;
+    color: #C8A832;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    font-weight: 700;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 12px 24px;
+    border-radius: 4px;
+    border: 2px solid #C8A832;
+    transition: all 0.3s ease;
+    white-space: nowrap;
+  }
+  .btn-outline:hover { background: #C8A832; color: #0A0A0A; }
+
+  .hero-scroll {
+    margin-top: 3rem;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    gap: 0.5rem;
+    animation: fadeIn 1s ease 1s both;
+  }
+  .scroll-text {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.65rem;
+    letter-spacing: 0.25em;
+    text-transform: uppercase;
+    color: #9A8428;
+  }
+  .scroll-arrow { animation: bounce 2s ease infinite; }
+  @keyframes bounce {
+    0%, 100% { transform: translateY(0); }
+    50% { transform: translateY(6px); }
+  }
+
+  /* INTRO STRIP */
+  .intro-strip {
+    background: #111111;
+    border-top: 1px solid rgba(200, 168, 50, 0.2);
+    border-bottom: 1px solid rgba(200, 168, 50, 0.2);
+    padding: 2.5rem 1.25rem;
+    overflow: hidden;
+  }
+  .intro-inner {
+    max-width: 900px;
+    margin: 0 auto;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: center;
+    gap: 1.5rem;
+  }
+  .intro-item {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    text-align: center;
+    min-width: 100px;
+  }
+  .intro-number {
+    font-family: 'Oswald', sans-serif;
+    font-size: 2rem;
+    font-weight: 700;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    line-height: 1;
+  }
+  .intro-label {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.68rem;
+    font-weight: 500;
+    letter-spacing: 0.06em;
+    text-transform: uppercase;
+    color: #9A8428;
+    margin-top: 0.3rem;
+  }
+  .intro-sep {
+    width: 1px;
+    height: 48px;
+    background: rgba(200, 168, 50, 0.2);
+    display: none;
+  }
+  @media (min-width: 600px) { .intro-sep { display: block; } }
+
+  /* SECTIONS */
+  .section-container {
+    max-width: 1100px;
+    margin: 0 auto;
+    padding: 0 1.25rem;
+  }
+  .section-header {
+    text-align: center;
+    margin-bottom: 3rem;
+  }
+  .section-eyebrow {
+    display: block;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.7rem;
+    font-weight: 600;
+    letter-spacing: 0.3em;
+    text-transform: uppercase;
+    color: #E01020;
+    margin-bottom: 0.75rem;
+  }
+  .section-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(1.4rem, 4vw, 2.8rem);
+    font-weight: 700;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0 0 1rem;
+  }
+  .section-sub {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.92rem;
+    font-weight: 400;
+    color: #9A8428;
+    max-width: 560px;
+    margin: 0 auto;
+    line-height: 1.7;
+  }
+
+  /* SERVICES */
+  .services-section {
+    background: #0A0A0A;
+    position: relative;
+    overflow: hidden;
+  }
+  .services-section::before {
+    content: '';
+    position: absolute;
+    top: 10%;
+    left: 50%;
+    transform: translateX(-50%);
+    width: 600px;
+    height: 600px;
+    background: radial-gradient(circle, rgba(240,200,48,0.05) 0%, transparent 70%);
+    pointer-events: none;
+  }
+  .services-grid {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 1.25rem;
+  }
+  @media (min-width: 640px) { .services-grid { grid-template-columns: repeat(2, 1fr); } }
+  @media (min-width: 900px) { .services-grid { grid-template-columns: repeat(3, 1fr); } }
+
+  .service-card {
+    background: #111111;
+    border: 1px solid #9A8428;
+    border-radius: 6px;
+    overflow: hidden;
+    box-shadow: 0 0 15px rgba(200,168,50,0.1);
+    transition: all 0.4s ease;
+    display: flex;
+    flex-direction: column;
+  }
+  .service-card:hover {
+    border-color: #C8A832;
+    box-shadow: 0 0 30px rgba(200,168,50,0.25);
+    transform: translateY(-4px);
+  }
+  .service-card-img {
+    position: relative;
+    height: 180px;
+    overflow: hidden;
+    flex-shrink: 0;
+  }
+  .service-card-img img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    transition: transform 0.6s ease;
+  }
+  .service-card:hover .service-card-img img { transform: scale(1.06); }
+  .service-img-overlay {
+    position: absolute;
+    inset: 0;
+    background: linear-gradient(180deg, transparent 40%, rgba(10,10,10,0.85) 100%);
+  }
+  .service-card-body {
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    padding: 1.25rem;
+  }
+  @media (min-width: 640px) {
+    .service-card-body { padding: 1.5rem; }
+  }
+  .service-icon-circle {
+    width: 60px;
+    height: 60px;
+    border-radius: 50%;
+    border: 2px solid #C8A832;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: rgba(200, 168, 50, 0.05);
+    margin-bottom: 1rem;
+    box-shadow: 0 0 20px rgba(200,168,50,0.15);
+    transition: box-shadow 0.3s ease;
+    flex-shrink: 0;
+  }
+  .service-card:hover .service-icon-circle {
+    box-shadow: 0 0 30px rgba(200,168,50,0.35);
+  }
+  .service-name {
+    font-family: 'Cinzel', serif;
+    font-size: 0.88rem;
+    font-weight: 700;
+    letter-spacing: 0.06em;
+    text-transform: uppercase;
+    color: #C8A832;
+    margin: 0 0 0.75rem;
+    line-height: 1.4;
+  }
+  .service-desc {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    font-weight: 400;
+    color: #9A8428;
+    line-height: 1.7;
+    flex: 1;
+    margin-bottom: 1.25rem;
+  }
+  .service-link {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.4rem;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    font-weight: 700;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    color: #E01020;
+    text-decoration: none;
+    transition: color 0.3s ease;
+  }
+  .service-link:hover { color: #E8C840; }
+
+  /* ABOUT STRIP */
+  .about-strip {
+    background: #0D0D0D;
+    border-top: 1px solid rgba(200, 168, 50, 0.12);
+    border-bottom: 1px solid rgba(200, 168, 50, 0.12);
+    padding: 4rem 1.25rem;
+    overflow: hidden;
+  }
+  .about-strip-inner {
+    max-width: 1100px;
+    margin: 0 auto;
+    display: flex;
+    flex-direction: column;
+    gap: 3rem;
+    align-items: center;
+  }
+  @media (min-width: 768px) {
+    .about-strip-inner {
+      flex-direction: row;
+      gap: 4rem;
+      align-items: flex-start;
+    }
+  }
+  .about-strip-text {
+    flex: 1;
+    min-width: 0;
+  }
+  .about-strip-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(1.1rem, 3vw, 2rem);
+    font-weight: 700;
+    letter-spacing: 0.06em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0 0 1.25rem;
+    line-height: 1.3;
+  }
+  .about-strip-body {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.88rem;
+    color: #9A8428;
+    line-height: 1.8;
+    margin-bottom: 2rem;
+  }
+  .about-strip-btns {
+    display: flex;
+    gap: 1rem;
+    flex-wrap: wrap;
+  }
+  .about-strip-imgs {
+    flex: 1;
+    position: relative;
+    width: 100%;
+    min-height: 300px;
+  }
+  .about-img-main {
+    width: 80%;
+    height: 280px;
+    border-radius: 6px;
+    overflow: hidden;
+    border: 2px solid rgba(200, 168, 50, 0.3);
+    box-shadow: 0 0 30px rgba(200,168,50,0.1);
+  }
+  .about-img-main img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    object-position: top;
+  }
+  .about-img-accent {
+    position: absolute;
+    bottom: 0;
+    right: 0;
+    width: 50%;
+    height: 160px;
+    border-radius: 6px;
+    overflow: hidden;
+    border: 2px solid #C8A832;
+    box-shadow: 0 0 20px rgba(200,168,50,0.2);
+  }
+  .about-img-accent img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+
+  /* GALLERY */
+  .gallery-section {
+    background: #0A0A0A;
+    overflow: hidden;
+  }
+  .gallery-grid {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    gap: 0.5rem;
+  }
+  @media (min-width: 640px) {
+    .gallery-grid {
+      grid-template-columns: repeat(3, 1fr);
+      gap: 0.75rem;
+    }
+    .gallery-item-featured {
+      grid-column: span 2;
+    }
+  }
+  .gallery-item {
+    position: relative;
+    overflow: hidden;
+    border-radius: 4px;
+    border: 1px solid rgba(200, 168, 50, 0.15);
+    height: 160px;
+    cursor: pointer;
+  }
+  @media (min-width: 640px) {
+    .gallery-item { height: 240px; }
+  }
+  .gallery-item img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    transition: transform 0.6s ease;
+    display: block;
+  }
+  .gallery-item:hover img { transform: scale(1.07); }
+  .gallery-overlay {
+    position: absolute;
+    inset: 0;
+    background: linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%);
+    opacity: 0;
+    transition: opacity 0.4s ease;
+    display: flex;
+    align-items: flex-end;
+    padding: 0.75rem;
+  }
+  .gallery-item:hover .gallery-overlay { opacity: 1; }
+  .gallery-label {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.72rem;
+    font-weight: 500;
+    color: #C8A832;
+    letter-spacing: 0.04em;
+  }
+
+  /* CONTACT */
+  .contact-section {
+    background: #0D0D0D;
+    overflow: hidden;
+  }
+  .contact-grid {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 1.5rem;
+  }
+  @media (min-width: 768px) {
+    .contact-grid { grid-template-columns: 1fr 1.4fr; gap: 2rem; }
+  }
+  .contact-info {
+    display: flex;
+    flex-direction: column;
+    gap: 1rem;
+  }
+  .contact-card {
+    display: flex;
+    align-items: center;
+    gap: 1.25rem;
+    background: #111111;
+    border: 1px solid rgba(154, 132, 40, 0.3);
+    border-radius: 6px;
+    padding: 1.25rem;
+    box-shadow: 0 0 15px rgba(200,168,50,0.07);
+    transition: border-color 0.3s ease;
+  }
+  .contact-card:hover { border-color: #C8A832; }
+  .contact-card-icon {
+    width: 52px;
+    height: 52px;
+    border-radius: 50%;
+    border: 2px solid #C8A832;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-shrink: 0;
+    background: rgba(200, 168, 50, 0.05);
+  }
+  .contact-card-label {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.65rem;
+    font-weight: 600;
+    letter-spacing: 0.2em;
+    text-transform: uppercase;
+    color: #9A8428;
+    margin: 0 0 0.25rem;
+  }
+  .contact-card-value {
+    font-family: 'Oswald', sans-serif;
+    font-size: 1.05rem;
+    font-weight: 600;
+    color: #E8C840;
+    text-decoration: none;
+    transition: color 0.3s ease;
+    word-break: break-word;
+  }
+  a.contact-card-value:hover { color: #fff; }
+  .contact-btn {
+    justify-content: center;
+  }
+  .contact-map {
+    border-radius: 6px;
+    overflow: hidden;
+    border: 1px solid rgba(200, 168, 50, 0.2);
+    box-shadow: 0 0 20px rgba(200,168,50,0.1);
+    min-height: 300px;
+  }
+  .contact-map iframe {
+    width: 100%;
+    height: 100%;
+    min-height: 300px;
+    display: block;
+    filter: invert(90%) hue-rotate(180deg) saturate(0.6);
+  }
+
+  /* FOOTER */
+  .site-footer {
+    background: #060606;
+    border-top: 1px solid rgba(200, 168, 50, 0.2);
+    padding: 4rem 1.25rem 2rem;
+    overflow: hidden;
+  }
+  .footer-inner {
+    max-width: 1100px;
+    margin: 0 auto;
+  }
+  .footer-top {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 2rem;
+    margin-bottom: 2.5rem;
+  }
+  @media (min-width: 640px) {
+    .footer-top { grid-template-columns: 1.5fr 1fr 1fr; }
+  }
+  .footer-logo {
+    height: 60px;
+    width: auto;
+    margin-bottom: 1rem;
+    filter: drop-shadow(0 0 8px rgba(200,168,50,0.3));
+  }
+  .footer-tagline {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+    line-height: 1.6;
+    max-width: 260px;
+    font-style: italic;
+    margin: 0;
+  }
+  .footer-col-title {
+    font-family: 'Cinzel', serif;
+    font-size: 0.7rem;
+    font-weight: 700;
+    letter-spacing: 0.2em;
+    text-transform: uppercase;
+    color: #C8A832;
+    margin: 0 0 1rem;
+  }
+  .footer-links-col {
+    display: flex;
+    flex-direction: column;
+    gap: 0.6rem;
+  }
+  .footer-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+    text-decoration: none;
+    transition: color 0.3s ease;
+  }
+  .footer-link:hover { color: #C8A832; }
+  .footer-link-text {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+  }
+  .footer-bottom {
+    border-top: 1px solid rgba(200, 168, 50, 0.1);
+    padding-top: 1.5rem;
+    display: flex;
+    flex-direction: column;
+    gap: 0.5rem;
+    align-items: center;
+    text-align: center;
+  }
+  @media (min-width: 640px) {
+    .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
+  }
+  .footer-copy {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    color: #9A8428;
+    opacity: 0.6;
+    margin: 0;
+  }
+  .footer-credit {
+    font-size: 0.75rem;
+    color: #9A8428;
+    opacity: 0.4;
+    text-decoration: none;
+    transition: opacity 0.3s ease;
+  }
+  .footer-credit:hover { opacity: 0.7; }
+
+  /* WHATSAPP FLOAT */
+  .whatsapp-float {
+    position: fixed;
+    bottom: 1.5rem;
+    right: 1.5rem;
+    width: 56px;
+    height: 56px;
+    border-radius: 50%;
+    background: linear-gradient(135deg, #25D366, #128C7E);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    z-index: 200;
+    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
+    transition: transform 0.3s ease;
+  }
+  .whatsapp-float:hover { transform: scale(1.1); }
+  .whatsapp-pulse {
+    position: absolute;
+    inset: 0;
+    border-radius: 50%;
+    background: rgba(37, 211, 102, 0.4);
+    animation: waPulse 2s ease-out infinite;
+  }
+  @keyframes waPulse {
+    0% { transform: scale(1); opacity: 0.7; }
+    100% { transform: scale(1.7); opacity: 0; }
+  }
+
+  /* REVEAL */
+  :global(.reveal) {
+    opacity: 0;
+    transform: translateY(28px);
+    transition: opacity 0.7s ease, transform 0.7s ease;
+  }
+  :global(.revealed) {
+    opacity: 1;
+    transform: translateY(0);
+  }
+
+  @keyframes fadeInDown {
+    from { opacity: 0; transform: translateY(-20px); }
+    to { opacity: 1; transform: translateY(0); }
+  }
+  @keyframes fadeIn {
+    from { opacity: 0; }
+    to { opacity: 1; }
+  }
+</style>

+ 1094 - 0
src/routes/about/+page.svelte

@@ -0,0 +1,1094 @@
+<svelte:head>
+  <title>Nosotros — Soluciones O.C.L | Construcción en Guanacaste</title>
+  <meta name="description" content="Conoce a Soluciones O.C.L, empresa constructora especializada en Guanacaste, Costa Rica. Más de 10 años de experiencia en construcción residencial, comercial y servicios técnicos." />
+  <link rel="preconnect" href="https://fonts.googleapis.com" />
+  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" />
+  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Montserrat:wght@300;400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap" rel="stylesheet" />
+</svelte:head>
+
+<script>
+  import { onMount } from 'svelte';
+
+  let scrolled = $state(false);
+  let menuOpen = $state(false);
+
+  const values = [
+    {
+      title: 'Calidad Sin Compromiso',
+      desc: 'Utilizamos materiales de primera línea y técnicas constructivas de vanguardia para garantizar obras que perduran en el tiempo.',
+      icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 3l3.8 7.7 8.5 1.2-6.15 6 1.45 8.4L18 22.4l-7.6 4-1.05-.6"/><path d="M4 4l28 28"/></svg>`
+    },
+    {
+      title: 'Compromiso Total',
+      desc: 'Cada proyecto es tratado con la misma dedicación e importancia que si fuera el único. El éxito del cliente es nuestro éxito.',
+      icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 3l3.8 7.7 8.5 1.2-6.15 6 1.45 8.4L18 22.4l-7.6 4-1.45-8.4-6.15-6 8.5-1.2L18 3z"/></svg>`
+    },
+    {
+      title: 'Transparencia',
+      desc: 'Mantenemos comunicación abierta en cada etapa del proyecto: presupuestos claros, plazos definidos y actualizaciones constantes.',
+      icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><circle cx="18" cy="18" r="14"/><path d="M18 12v8M18 24v1"/></svg>`
+    },
+    {
+      title: 'Experiencia Local',
+      desc: 'Conocemos el clima, los materiales y las regulaciones de Guanacaste. Esa experiencia local es una ventaja invaluable para cada proyecto.',
+      icon: `<svg width="36" height="36" viewBox="0 0 36 36" fill="none" stroke="#C8A832" stroke-width="1.5" stroke-linecap="round"><path d="M18 4C12.477 4 8 8.477 8 14c0 9.314 10 20 10 20s10-10.686 10-20c0-5.523-4.477-10-10-10z"/><circle cx="18" cy="14" r="4"/></svg>`
+    }
+  ];
+
+  const team = [
+    {
+      name: 'Equipo de Construcción',
+      role: 'Especialistas en Estructuras y Acabados',
+      image: '/gallery/21.jpg'
+    },
+    {
+      name: 'División Eléctrica',
+      role: 'Técnicos Certificados en Instalaciones',
+      image: '/gallery/25.jpg'
+    },
+    {
+      name: 'División Plomería',
+      role: 'Expertos en Sistemas Hidráulicos',
+      image: '/gallery/4.jpg'
+    }
+  ];
+
+  const milestones = [
+    { year: '2012', event: 'Fundación de Soluciones O.C.L en Guanacaste' },
+    { year: '2015', event: 'Expansión a servicios de instalaciones eléctricas y fontanería' },
+    { year: '2018', event: 'Primeros 200 proyectos completados en la región' },
+    { year: '2021', event: 'Incorporación de estructuras metálicas y paisajismo constructivo' },
+    { year: '2025', event: 'Más de 500 proyectos y referentes de calidad en Guanacaste' }
+  ];
+
+  onMount(() => {
+    const handleScroll = () => { scrolled = window.scrollY > 50; };
+    window.addEventListener('scroll', handleScroll);
+
+    const revealEls = document.querySelectorAll('.reveal');
+    const observer = new IntersectionObserver((entries) => {
+      entries.forEach(entry => {
+        if (entry.isIntersecting) entry.target.classList.add('revealed');
+      });
+    }, { threshold: 0.12 });
+    revealEls.forEach(el => observer.observe(el));
+
+    return () => {
+      window.removeEventListener('scroll', handleScroll);
+      observer.disconnect();
+    };
+  });
+</script>
+
+<!-- NAV -->
+<nav class={scrolled || menuOpen ? 'nav-solid' : 'nav-transparent'} id="nav">
+  <div class="nav-inner">
+    <a href="/" class="nav-logo">
+      <img src="/logo.png" alt="Soluciones O.C.L" class="h-12 w-auto" />
+    </a>
+    <div class="nav-links">
+      <a href="/" class="nav-link">Inicio</a>
+      <a href="/about" class="nav-link active-link">Nosotros</a>
+      <a href="/#servicios" class="nav-link">Servicios</a>
+      <a href="/#galeria" class="nav-link">Galería</a>
+      <a href="/#contacto" class="nav-link">Contacto</a>
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="nav-cta">Cotizar</a>
+    </div>
+    <button class="hamburger" onclick={() => menuOpen = !menuOpen} aria-label="Menú">
+      <span class={menuOpen ? 'bar bar-open-1' : 'bar'}></span>
+      <span class={menuOpen ? 'bar bar-open-2' : 'bar'}></span>
+      <span class={menuOpen ? 'bar bar-open-3' : 'bar'}></span>
+    </button>
+  </div>
+  {#if menuOpen}
+    <div class="mobile-menu">
+      <a href="/" class="mobile-link" onclick={() => menuOpen = false}>Inicio</a>
+      <a href="/about" class="mobile-link" onclick={() => menuOpen = false}>Nosotros</a>
+      <a href="/#servicios" class="mobile-link" onclick={() => menuOpen = false}>Servicios</a>
+      <a href="/#galeria" class="mobile-link" onclick={() => menuOpen = false}>Galería</a>
+      <a href="/#contacto" class="mobile-link" onclick={() => menuOpen = false}>Contacto</a>
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="mobile-cta">Solicitar Cotización</a>
+    </div>
+  {/if}
+</nav>
+
+<!-- ABOUT HERO -->
+<section class="about-hero">
+  <div class="about-hero-bg">
+    <img src="/gallery/47.jpg" alt="Proyectos Soluciones OCL" />
+    <div class="about-hero-overlay"></div>
+    <div class="about-hero-radial"></div>
+  </div>
+  <div class="about-hero-content">
+    <span class="section-eyebrow">Quiénes somos</span>
+    <h1 class="about-hero-title">Sobre Nosotros</h1>
+    <p class="about-hero-sub">Más de una década construyendo el Guanacaste del futuro con pasión, técnica y compromiso.</p>
+    <div class="about-hero-divider">
+      <span class="divider-line"></span>
+      <span class="divider-icon">
+        <svg width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="#C8A832" stroke-width="1.5"><path d="M9 1L3 9h5l-2 8 8-10H9l2-8z"/></svg>
+      </span>
+      <span class="divider-line"></span>
+    </div>
+  </div>
+</section>
+
+<!-- STORY -->
+<section class="story-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="story-grid gap-4 sm:gap-8">
+      <div class="story-imgs reveal">
+        <div class="story-img-main">
+          <img src="/gallery/30.jpg" alt="Casa construida por Soluciones OCL" loading="lazy" />
+        </div>
+        <div class="story-img-badge">
+          <span class="badge-number">10+</span>
+          <span class="badge-label">Años de<br/>Experiencia</span>
+        </div>
+        <div class="story-img-accent">
+          <img src="/gallery/17.jpg" alt="Construcción moderna Guanacaste" loading="lazy" />
+        </div>
+      </div>
+      <div class="story-text reveal">
+        <span class="section-eyebrow">Nuestra historia</span>
+        <h2 class="section-title" style="text-align:left">De un Sueño a la Realidad Constructiva</h2>
+        <p class="story-body">Soluciones O.C.L nació en el corazón de Guanacaste con una visión clara: ofrecer servicios de construcción y técnicos de alta calidad accesibles para los costarricenses. Lo que comenzó como un pequeño equipo de técnicos comprometidos, se ha convertido en una empresa de referencia en la región.</p>
+        <p class="story-body">Hoy somos especialistas en construcción residencial y comercial, instalaciones eléctricas, fontanería, remodelaciones, estructuras metálicas y obras exteriores. Cada proyecto que emprendemos lleva el sello de nuestra pasión por el trabajo bien hecho.</p>
+        <div class="story-stats">
+          <div class="story-stat">
+            <span class="stat-number">500+</span>
+            <span class="stat-label">Proyectos</span>
+          </div>
+          <div class="story-stat">
+            <span class="stat-number">100%</span>
+            <span class="stat-label">Satisfacción</span>
+          </div>
+          <div class="story-stat">
+            <span class="stat-number">6</span>
+            <span class="stat-label">Especialidades</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- VALUES -->
+<section class="values-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Lo que nos define</span>
+      <h2 class="section-title">Nuestros Valores</h2>
+      <p class="section-sub">Los principios que guían cada decisión, cada proyecto y cada relación con nuestros clientes.</p>
+    </div>
+    <div class="values-grid">
+      {#each values as val, i}
+        <div class="value-card reveal" style="animation-delay: {i * 0.1}s">
+          <div class="value-icon-circle">
+            {@html val.icon}
+          </div>
+          <h3 class="value-title">{val.title}</h3>
+          <p class="value-desc">{val.desc}</p>
+        </div>
+      {/each}
+    </div>
+  </div>
+</section>
+
+<!-- TIMELINE -->
+<section class="timeline-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Nuestra trayectoria</span>
+      <h2 class="section-title">Historia de Crecimiento</h2>
+    </div>
+    <div class="timeline">
+      {#each milestones as item, i}
+        <div class="timeline-item reveal" style="animation-delay: {i * 0.12}s">
+          <div class="timeline-year">
+            <span>{item.year}</span>
+          </div>
+          <div class="timeline-connector">
+            <div class="timeline-dot"></div>
+            {#if i < milestones.length - 1}
+              <div class="timeline-line"></div>
+            {/if}
+          </div>
+          <div class="timeline-content">
+            <p>{item.event}</p>
+          </div>
+        </div>
+      {/each}
+    </div>
+  </div>
+</section>
+
+<!-- TEAM -->
+<section class="team-section py-14 sm:py-24">
+  <div class="section-container">
+    <div class="section-header reveal">
+      <span class="section-eyebrow">Nuestro equipo</span>
+      <h2 class="section-title">Especialistas a Su Servicio</h2>
+      <p class="section-sub">Contamos con profesionales capacitados en cada área para garantizar el más alto estándar en su proyecto.</p>
+    </div>
+    <div class="team-grid">
+      {#each team as member, i}
+        <div class="team-card reveal" style="animation-delay: {i * 0.12}s">
+          <div class="team-img">
+            <img src={member.image} alt={member.name} loading="lazy" />
+            <div class="team-img-overlay"></div>
+          </div>
+          <div class="team-info">
+            <h3 class="team-name">{member.name}</h3>
+            <p class="team-role">{member.role}</p>
+          </div>
+        </div>
+      {/each}
+    </div>
+  </div>
+</section>
+
+<!-- CTA SECTION -->
+<section class="cta-section reveal">
+  <div class="cta-inner">
+    <div class="cta-glow"></div>
+    <span class="section-eyebrow">¿Listo para construir?</span>
+    <h2 class="cta-title">Hablemos de su Proyecto</h2>
+    <p class="cta-sub">Contáctenos hoy mismo y reciba una cotización personalizada sin compromiso. Estamos en Huaca, Guanacaste.</p>
+    <div class="cta-btns">
+      <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="btn-primary">
+        <svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor"><path d="M10 0C4.477 0 0 4.373 0 9.765c0 1.717.463 3.325 1.27 4.716L0 20l5.688-1.483A10.06 10.06 0 0010 19.53c5.523 0 10-4.373 10-9.765S15.523 0 10 0zm5.193 13.764c-.217.603-1.27 1.154-1.742 1.226-.448.068-.998.097-1.61-.1-.37-.12-.846-.28-1.453-.548-2.56-1.098-4.229-3.644-4.357-3.814-.127-.17-1.043-1.373-1.043-2.617 0-1.244.659-1.856.893-2.107.233-.251.508-.314.677-.314.17 0 .339.002.487.008.156.007.366-.059.572.433.211.505.717 1.748.78 1.875.063.127.105.275.02.443-.085.17-.127.275-.254.424-.127.148-.266.33-.381.443-.127.12-.258.25-.111.49.148.238.657 1.075 1.41 1.74.97.862 1.787 1.128 2.027 1.255.24.127.38.106.52-.063.14-.17.593-.687.75-.924.158-.238.316-.198.532-.12.217.08 1.376.645 1.612.763.237.12.394.178.452.277.06.1.06.582-.157 1.185z"/></svg>
+        Escribir por WhatsApp
+      </a>
+      <a href="tel:50688001130" class="btn-outline">
+        Llamar Ahora
+      </a>
+      <a href="/" class="btn-ghost">
+        Ver Servicios
+      </a>
+    </div>
+  </div>
+</section>
+
+<!-- FOOTER -->
+<footer class="site-footer">
+  <div class="footer-inner">
+    <div class="footer-top">
+      <div class="footer-brand">
+        <img src="/logo.png" alt="Soluciones O.C.L" class="footer-logo" />
+        <p class="footer-tagline">Construimos tus ideas con calidad y compromiso</p>
+      </div>
+      <div class="footer-links-col">
+        <h4 class="footer-col-title">Navegación</h4>
+        <a href="/" class="footer-link">Inicio</a>
+        <a href="/about" class="footer-link">Nosotros</a>
+        <a href="/#servicios" class="footer-link">Servicios</a>
+        <a href="/#galeria" class="footer-link">Galería</a>
+        <a href="/#contacto" class="footer-link">Contacto</a>
+      </div>
+      <div class="footer-links-col">
+        <h4 class="footer-col-title">Contacto</h4>
+        <a href="tel:50688001130" class="footer-link">+506 8800-1130</a>
+        <a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="footer-link">WhatsApp</a>
+        <span class="footer-link-text">Huaca, Guanacaste</span>
+        <span class="footer-link-text">Costa Rica</span>
+      </div>
+    </div>
+    <div class="footer-bottom">
+      <p class="footer-copy">© 2025 Soluciones O.C.L. Todos los derechos reservados.</p>
+      <a href="https://digitalmar.dev" target="_blank" rel="noopener noreferrer" class="text-xs opacity-40 hover:opacity-70 transition-opacity" style="color: #9A8428;">Hecho por digitalmar.dev</a>
+    </div>
+  </div>
+</footer>
+
+<!-- FLOATING WHATSAPP -->
+<a href="https://wa.me/50688001130?text=Hola%2C%20vi%20su%20sitio%20web%20y%20me%20interesan%20sus%20servicios." target="_blank" rel="noopener noreferrer" class="whatsapp-float" aria-label="WhatsApp">
+  <div class="whatsapp-pulse"></div>
+  <svg width="28" height="28" viewBox="0 0 28 28" fill="white"><path d="M14 1C6.82 1 1 6.71 1 13.765c0 2.4.647 4.654 1.778 6.602L1 27l6.851-1.749A13.094 13.094 0 0014 26.53C21.18 26.53 27 20.82 27 13.765S21.18 1 14 1zm7.27 19.27c-.304.844-1.778 1.616-2.438 1.716-.627.095-1.397.136-2.254-.14-.518-.168-1.184-.392-2.034-.767C11.962 19.54 9.59 16.07 9.41 15.83c-.18-.238-1.46-1.923-1.46-3.664 0-1.74.922-2.598 1.25-2.95.327-.351.712-.44.948-.44.238 0 .475.003.682.01.218.01.512-.082.8.607.295.707 1.004 2.447 1.092 2.625.088.178.147.385.029.62-.119.238-.178.385-.356.594-.178.207-.372.462-.534.62-.178.169-.362.35-.155.687.207.333.919 1.505 1.974 2.436 1.358 1.207 2.502 1.58 2.838 1.757.335.178.531.148.728-.089.196-.238.83-.961 1.05-1.293.222-.333.442-.277.745-.167.304.11 1.926.903 2.257 1.068.33.168.551.249.633.387.083.139.083.814-.22 1.659z"/></svg>
+</a>
+
+<style>
+  :global(body) {
+    background-color: #0A0A0A;
+    color: #C8A832;
+    font-family: 'Montserrat', sans-serif;
+    overflow-x: hidden;
+  }
+
+  /* NAV */
+  #nav {
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    z-index: 100;
+    transition: all 0.4s ease;
+  }
+  .nav-transparent {
+    background: transparent;
+    border-bottom: 1px solid transparent;
+  }
+  .nav-solid {
+    background: rgba(10, 10, 10, 0.97);
+    border-bottom: 1px solid rgba(200, 168, 50, 0.2);
+    backdrop-filter: blur(12px);
+  }
+  .nav-inner {
+    max-width: 1100px;
+    margin: 0 auto;
+    padding: 0 1.25rem;
+    height: 72px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
+  .nav-logo img {
+    filter: drop-shadow(0 0 8px rgba(200, 168, 50, 0.4));
+  }
+  .nav-links {
+    display: none;
+    align-items: center;
+    gap: 2rem;
+  }
+  @media (min-width: 900px) { .nav-links { display: flex; } }
+  .nav-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.8rem;
+    font-weight: 500;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    color: #C8A832;
+    text-decoration: none;
+    transition: color 0.3s ease;
+  }
+  .nav-link:hover { color: #E8C840; }
+  .active-link { color: #E8C840; }
+  .nav-cta {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    font-weight: 700;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    color: #fff;
+    background: #E01020;
+    padding: 10px 24px;
+    border-radius: 4px;
+    text-decoration: none;
+    transition: all 0.3s ease;
+  }
+  .nav-cta:hover { background: #C8A832; color: #0A0A0A; }
+
+  .hamburger {
+    display: flex;
+    flex-direction: column;
+    gap: 5px;
+    background: none;
+    border: none;
+    cursor: pointer;
+    padding: 4px;
+  }
+  @media (min-width: 900px) { .hamburger { display: none; } }
+  .bar {
+    display: block;
+    width: 26px;
+    height: 2px;
+    background: #C8A832;
+    transition: all 0.3s ease;
+    transform-origin: center;
+  }
+  .bar-open-1 { transform: rotate(45deg) translate(5px, 5px); }
+  .bar-open-2 { opacity: 0; }
+  .bar-open-3 { transform: rotate(-45deg) translate(5px, -5px); }
+  .mobile-menu {
+    background: rgba(10, 10, 10, 0.98);
+    border-top: 1px solid rgba(200, 168, 50, 0.15);
+    padding: 1.5rem 1.25rem;
+    display: flex;
+    flex-direction: column;
+    gap: 0;
+  }
+  .mobile-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.9rem;
+    font-weight: 500;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    color: #C8A832;
+    text-decoration: none;
+    padding: 0.85rem 0;
+    border-bottom: 1px solid rgba(200, 168, 50, 0.1);
+    transition: color 0.3s;
+  }
+  .mobile-link:hover { color: #E8C840; }
+  .mobile-cta {
+    display: inline-block;
+    margin-top: 1rem;
+    background: #E01020;
+    color: #fff;
+    text-align: center;
+    padding: 14px 32px;
+    border-radius: 4px;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    text-decoration: none;
+    transition: all 0.3s ease;
+  }
+  .mobile-cta:hover { background: #C8A832; color: #0A0A0A; }
+
+  /* ABOUT HERO */
+  .about-hero {
+    position: relative;
+    height: 60vh;
+    min-height: 420px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    overflow: hidden;
+  }
+  .about-hero-bg {
+    position: absolute;
+    inset: 0;
+  }
+  .about-hero-bg img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+  .about-hero-overlay {
+    position: absolute;
+    inset: 0;
+    background: linear-gradient(180deg, rgba(10,10,10,0.6) 0%, rgba(10,10,10,0.88) 100%);
+  }
+  .about-hero-radial {
+    position: absolute;
+    inset: 0;
+    background: radial-gradient(circle at 50% 50%, rgba(240,200,48,0.08) 0%, transparent 65%);
+  }
+  .about-hero-content {
+    position: relative;
+    z-index: 2;
+    text-align: center;
+    padding: 5rem 1.25rem 2rem;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+  }
+  .about-hero-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(2.2rem, 7vw, 4.5rem);
+    font-weight: 900;
+    letter-spacing: 0.15em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0.5rem 0 0.75rem;
+    line-height: 1.1;
+    animation: fadeInDown 0.9s ease 0.1s both;
+  }
+  .about-hero-sub {
+    font-family: 'Montserrat', sans-serif;
+    font-size: clamp(0.85rem, 2.5vw, 1.05rem);
+    font-weight: 400;
+    color: #C8A832;
+    max-width: 520px;
+    margin-bottom: 1.5rem;
+    line-height: 1.7;
+    animation: fadeInDown 0.9s ease 0.2s both;
+  }
+  .about-hero-divider {
+    display: flex;
+    align-items: center;
+    gap: 1rem;
+    animation: fadeIn 0.9s ease 0.3s both;
+  }
+  .divider-line {
+    display: block;
+    width: 80px;
+    height: 1px;
+    background: linear-gradient(90deg, transparent, #C8A832);
+  }
+  .divider-line:last-child { background: linear-gradient(270deg, transparent, #C8A832); }
+
+  /* SECTIONS COMMON */
+  .section-container {
+    max-width: 1100px;
+    margin: 0 auto;
+    padding: 0 1.25rem;
+  }
+  .section-header {
+    text-align: center;
+    margin-bottom: 3.5rem;
+  }
+  .section-eyebrow {
+    display: block;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.7rem;
+    font-weight: 600;
+    letter-spacing: 0.3em;
+    text-transform: uppercase;
+    color: #E01020;
+    margin-bottom: 0.75rem;
+  }
+  .section-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(1.6rem, 4vw, 2.8rem);
+    font-weight: 700;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0 0 1rem;
+    text-align: center;
+  }
+  .section-sub {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.95rem;
+    font-weight: 400;
+    color: #9A8428;
+    max-width: 560px;
+    margin: 0 auto;
+    line-height: 1.7;
+  }
+
+  /* STORY */
+  .story-section {
+    background: #0A0A0A;
+  }
+  .story-grid {
+    display: grid;
+    grid-template-columns: 1fr;
+    align-items: center;
+  }
+  @media (min-width: 768px) {
+    .story-grid { grid-template-columns: 1fr 1fr; }
+  }
+  .story-imgs {
+    position: relative;
+    min-height: 340px;
+    padding-bottom: 3rem;
+  }
+  .story-img-main {
+    width: 85%;
+    height: 320px;
+    border-radius: 6px;
+    overflow: hidden;
+    border: 2px solid rgba(200, 168, 50, 0.3);
+    box-shadow: 0 0 30px rgba(200,168,50,0.1);
+  }
+  .story-img-main img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+  .story-img-badge {
+    position: absolute;
+    bottom: 0;
+    right: 0;
+    width: 110px;
+    height: 110px;
+    border-radius: 50%;
+    background: #111111;
+    border: 2px solid #C8A832;
+    box-shadow: 0 0 30px rgba(200,168,50,0.3);
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    text-align: center;
+  }
+  .badge-number {
+    font-family: 'Oswald', sans-serif;
+    font-size: 1.8rem;
+    font-weight: 700;
+    background: linear-gradient(180deg, #E8C840, #9A8428);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    line-height: 1;
+  }
+  .badge-label {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.6rem;
+    font-weight: 600;
+    letter-spacing: 0.05em;
+    color: #9A8428;
+    text-transform: uppercase;
+    line-height: 1.3;
+  }
+  .story-img-accent {
+    position: absolute;
+    top: 2.5rem;
+    right: 0;
+    width: 50%;
+    height: 150px;
+    border-radius: 6px;
+    overflow: hidden;
+    border: 2px solid #C8A832;
+    box-shadow: 0 0 15px rgba(200,168,50,0.2);
+  }
+  .story-img-accent img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+  }
+  .story-text {}
+  .story-body {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.9rem;
+    color: #9A8428;
+    line-height: 1.85;
+    margin-bottom: 1rem;
+  }
+  .story-stats {
+    display: flex;
+    gap: 2rem;
+    margin-top: 2rem;
+    flex-wrap: wrap;
+  }
+  .story-stat {
+    display: flex;
+    flex-direction: column;
+    align-items: flex-start;
+  }
+  .stat-number {
+    font-family: 'Oswald', sans-serif;
+    font-size: 2rem;
+    font-weight: 700;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    line-height: 1;
+  }
+  .stat-label {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.68rem;
+    font-weight: 600;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    color: #9A8428;
+    margin-top: 0.3rem;
+  }
+
+  /* VALUES */
+  .values-section {
+    background: #0D0D0D;
+    border-top: 1px solid rgba(200,168,50,0.1);
+    border-bottom: 1px solid rgba(200,168,50,0.1);
+  }
+  .values-grid {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 1.5rem;
+  }
+  @media (min-width: 640px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
+  @media (min-width: 900px) { .values-grid { grid-template-columns: repeat(4, 1fr); } }
+  .value-card {
+    background: #111111;
+    border: 1px solid rgba(154, 132, 40, 0.3);
+    border-radius: 6px;
+    padding: 2rem 1.5rem;
+    box-shadow: 0 0 15px rgba(200,168,50,0.07);
+    text-align: center;
+    transition: all 0.4s ease;
+  }
+  .value-card:hover {
+    border-color: #C8A832;
+    box-shadow: 0 0 25px rgba(200,168,50,0.2);
+    transform: translateY(-4px);
+  }
+  .value-icon-circle {
+    width: 72px;
+    height: 72px;
+    border-radius: 50%;
+    border: 2px solid #C8A832;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: rgba(200,168,50,0.04);
+    margin: 0 auto 1.25rem;
+    box-shadow: 0 0 20px rgba(200,168,50,0.12);
+  }
+  .value-title {
+    font-family: 'Cinzel', serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    color: #C8A832;
+    margin: 0 0 0.75rem;
+    line-height: 1.4;
+  }
+  .value-desc {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+    line-height: 1.7;
+    margin: 0;
+  }
+
+  /* TIMELINE */
+  .timeline-section {
+    background: #0A0A0A;
+  }
+  .timeline {
+    max-width: 700px;
+    margin: 0 auto;
+    display: flex;
+    flex-direction: column;
+    gap: 0;
+  }
+  .timeline-item {
+    display: grid;
+    grid-template-columns: 100px 40px 1fr;
+    align-items: flex-start;
+    gap: 1rem;
+  }
+  .timeline-year {
+    text-align: right;
+    padding-top: 2px;
+  }
+  .timeline-year span {
+    font-family: 'Oswald', sans-serif;
+    font-size: 1.1rem;
+    font-weight: 700;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+  }
+  .timeline-connector {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+  }
+  .timeline-dot {
+    width: 14px;
+    height: 14px;
+    border-radius: 50%;
+    border: 2px solid #C8A832;
+    background: #0A0A0A;
+    flex-shrink: 0;
+    box-shadow: 0 0 10px rgba(200,168,50,0.4);
+    margin-top: 2px;
+  }
+  .timeline-line {
+    width: 2px;
+    flex: 1;
+    min-height: 48px;
+    background: linear-gradient(180deg, #C8A832, rgba(200,168,50,0.15));
+    margin: 6px 0;
+  }
+  .timeline-content {
+    padding-bottom: 2.5rem;
+  }
+  .timeline-content p {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.9rem;
+    color: #9A8428;
+    line-height: 1.6;
+    margin: 0;
+    padding-top: 2px;
+  }
+
+  /* TEAM */
+  .team-section {
+    background: #0D0D0D;
+    border-top: 1px solid rgba(200,168,50,0.1);
+  }
+  .team-grid {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 1.5rem;
+  }
+  @media (min-width: 640px) { .team-grid { grid-template-columns: repeat(3, 1fr); } }
+  .team-card {
+    background: #111111;
+    border: 1px solid rgba(154,132,40,0.3);
+    border-radius: 6px;
+    overflow: hidden;
+    box-shadow: 0 0 15px rgba(200,168,50,0.07);
+    transition: all 0.4s ease;
+  }
+  .team-card:hover {
+    border-color: #C8A832;
+    box-shadow: 0 0 25px rgba(200,168,50,0.2);
+    transform: translateY(-4px);
+  }
+  .team-img {
+    position: relative;
+    height: 220px;
+    overflow: hidden;
+  }
+  .team-img img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    transition: transform 0.6s ease;
+  }
+  .team-card:hover .team-img img { transform: scale(1.06); }
+  .team-img-overlay {
+    position: absolute;
+    inset: 0;
+    background: linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.8) 100%);
+  }
+  .team-info {
+    padding: 1.25rem 1.5rem;
+  }
+  .team-name {
+    font-family: 'Cinzel', serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.08em;
+    text-transform: uppercase;
+    color: #C8A832;
+    margin: 0 0 0.35rem;
+  }
+  .team-role {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    color: #9A8428;
+    margin: 0;
+  }
+
+  /* CTA */
+  .cta-section {
+    background: #111111;
+    border-top: 1px solid rgba(200,168,50,0.2);
+    padding: 5rem 1.25rem;
+    position: relative;
+    overflow: hidden;
+  }
+  .cta-inner {
+    max-width: 700px;
+    margin: 0 auto;
+    text-align: center;
+    position: relative;
+    z-index: 1;
+  }
+  .cta-glow {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    width: 500px;
+    height: 500px;
+    background: radial-gradient(circle, rgba(240,200,48,0.07) 0%, transparent 70%);
+    pointer-events: none;
+  }
+  .cta-title {
+    font-family: 'Cinzel', serif;
+    font-size: clamp(1.6rem, 4vw, 2.8rem);
+    font-weight: 700;
+    letter-spacing: 0.12em;
+    text-transform: uppercase;
+    background: linear-gradient(180deg, #E8C840 0%, #9A8428 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+    margin: 0.5rem 0 1rem;
+  }
+  .cta-sub {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.92rem;
+    color: #9A8428;
+    line-height: 1.7;
+    margin-bottom: 2.5rem;
+  }
+  .cta-btns {
+    display: flex;
+    gap: 1rem;
+    flex-wrap: wrap;
+    justify-content: center;
+  }
+  .btn-primary {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: #E01020;
+    color: #fff;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 14px 32px;
+    border-radius: 4px;
+    transition: all 0.3s ease;
+    box-shadow: 0 0 20px rgba(224, 16, 32, 0.3);
+  }
+  .btn-primary:hover { background: #C8A832; color: #0A0A0A; box-shadow: 0 0 30px rgba(200,168,50,0.4); }
+  .btn-outline {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: transparent;
+    color: #C8A832;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.85rem;
+    font-weight: 700;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 13px 32px;
+    border-radius: 4px;
+    border: 2px solid #C8A832;
+    transition: all 0.3s ease;
+  }
+  .btn-outline:hover { background: #C8A832; color: #0A0A0A; }
+  .btn-ghost {
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+    background: transparent;
+    color: #9A8428;
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.85rem;
+    font-weight: 600;
+    letter-spacing: 0.1em;
+    text-transform: uppercase;
+    text-decoration: none;
+    padding: 13px 24px;
+    border-radius: 4px;
+    border: 1px solid rgba(154,132,40,0.4);
+    transition: all 0.3s ease;
+  }
+  .btn-ghost:hover { color: #C8A832; border-color: #C8A832; }
+
+  /* FOOTER */
+  .site-footer {
+    background: #060606;
+    border-top: 1px solid rgba(200, 168, 50, 0.2);
+    padding: 4rem 1.25rem 2rem;
+  }
+  .footer-inner {
+    max-width: 1100px;
+    margin: 0 auto;
+  }
+  .footer-top {
+    display: grid;
+    grid-template-columns: 1fr;
+    gap: 2.5rem;
+    margin-bottom: 3rem;
+  }
+  @media (min-width: 640px) {
+    .footer-top { grid-template-columns: 1.5fr 1fr 1fr; }
+  }
+  .footer-logo {
+    height: 64px;
+    width: auto;
+    margin-bottom: 1rem;
+    filter: drop-shadow(0 0 8px rgba(200,168,50,0.3));
+  }
+  .footer-tagline {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+    line-height: 1.6;
+    max-width: 260px;
+    font-style: italic;
+  }
+  .footer-col-title {
+    font-family: 'Cinzel', serif;
+    font-size: 0.7rem;
+    font-weight: 700;
+    letter-spacing: 0.2em;
+    text-transform: uppercase;
+    color: #C8A832;
+    margin: 0 0 1rem;
+  }
+  .footer-links-col {
+    display: flex;
+    flex-direction: column;
+    gap: 0.6rem;
+  }
+  .footer-link {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+    text-decoration: none;
+    transition: color 0.3s ease;
+  }
+  .footer-link:hover { color: #C8A832; }
+  .footer-link-text {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.82rem;
+    color: #9A8428;
+  }
+  .footer-bottom {
+    border-top: 1px solid rgba(200, 168, 50, 0.1);
+    padding-top: 1.5rem;
+    display: flex;
+    flex-direction: column;
+    gap: 0.5rem;
+    align-items: center;
+    text-align: center;
+  }
+  @media (min-width: 640px) {
+    .footer-bottom { flex-direction: row; justify-content: space-between; text-align: left; }
+  }
+  .footer-copy {
+    font-family: 'Montserrat', sans-serif;
+    font-size: 0.75rem;
+    color: #9A8428;
+    opacity: 0.6;
+    margin: 0;
+  }
+
+  /* WHATSAPP */
+  .whatsapp-float {
+    position: fixed;
+    bottom: 1.5rem;
+    right: 1.5rem;
+    width: 58px;
+    height: 58px;
+    border-radius: 50%;
+    background: linear-gradient(135deg, #25D366, #128C7E);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    z-index: 200;
+    box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
+    transition: transform 0.3s ease;
+  }
+  .whatsapp-float:hover { transform: scale(1.1); }
+  .whatsapp-pulse {
+    position: absolute;
+    inset: 0;
+    border-radius: 50%;
+    background: rgba(37, 211, 102, 0.4);
+    animation: waPulse 2s ease-out infinite;
+  }
+  @keyframes waPulse {
+    0% { transform: scale(1); opacity: 0.7; }
+    100% { transform: scale(1.7); opacity: 0; }
+  }
+
+  /* REVEAL */
+  .reveal {
+    opacity: 0;
+    transform: translateY(28px);
+    transition: opacity 0.7s ease, transform 0.7s ease;
+  }
+  .revealed {
+    opacity: 1;
+    transform: translateY(0);
+  }
+
+  @keyframes fadeInDown {
+    from { opacity: 0; transform: translateY(-20px); }
+    to { opacity: 1; transform: translateY(0); }
+  }
+  @keyframes fadeIn {
+    from { opacity: 0; }
+    to { opacity: 1; }
+  }
+</style>

+ 4 - 0
static/favicon.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+  <circle cx="16" cy="16" r="16" fill="hsl(50, 65%, 45%)"/>
+  <text x="16" y="22" font-size="14" font-family="Arial, sans-serif" font-weight="bold" fill="white" text-anchor="middle">SO</text>
+</svg>

BIN
static/logo.png


+ 16 - 0
svelte.config.js

@@ -0,0 +1,16 @@
+import adapter from '@sveltejs/adapter-static';
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+	kit: {
+		adapter: adapter({
+			pages: 'dist',
+			assets: 'dist',
+			fallback: undefined,
+			precompress: false,
+			strict: true
+		})
+	}
+};
+
+export default config;

+ 7 - 0
vite.config.js

@@ -0,0 +1,7 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+import tailwindcss from '@tailwindcss/vite';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+	plugins: [tailwindcss(), sveltekit()]
+});