From 306312ed51d1e4cf22cd77b3fd97cd4a007c8a27 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 25 Oct 2025 04:05:41 +0000 Subject: [PATCH 1/4] Initial plan From f91cbfb1dbf65759fd9faf57db31b3036dc60a40 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 25 Oct 2025 04:11:33 +0000 Subject: [PATCH 2/4] Initial plan for privacy policy redesign Co-authored-by: Adez017 <142787780+Adez017@users.noreply.github.com> --- package-lock.json | 50 ++++------------------------------------------- 1 file changed, 4 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89fbbbad..cf9df4f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -280,7 +280,6 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.40.0.tgz", "integrity": "sha512-nlr/MMgoLNUHcfWC5Ns2ENrzKx9x51orPc6wJ8Ignv1DsrUmKm0LUih+Tj3J+kxYofzqQIQRU495d4xn3ozMbg==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.40.0", "@algolia/requester-browser-xhr": "5.40.0", @@ -441,7 +440,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -2276,7 +2274,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2299,7 +2296,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -2409,7 +2405,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2831,7 +2826,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3819,7 +3813,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", "license": "MIT", - "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -5928,7 +5921,6 @@ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", "license": "MIT", - "peer": true, "dependencies": { "@emotion/memoize": "^0.8.1" } @@ -6201,7 +6193,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.13.tgz", "integrity": "sha512-GfiI1JxJ7ecluEmDjPzseRXk/PX31hS7+tjgBopL7XjB2hLUdR+0FTMXy2Q3/hXezypDvU6or7gVFizDESrkXw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/component": "0.6.4", "@firebase/logger": "0.4.0", @@ -6259,7 +6250,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.13.tgz", "integrity": "sha512-j6ANZaWjeVy5zg6X7uiqh6lM6o3n3LD1+/SJFNs9V781xyryyZWXe+tmnWNWPkP086QfJoNkWN9pMQRqSG4vMg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/app": "0.9.13", "@firebase/component": "0.6.4", @@ -6272,8 +6262,7 @@ "version": "0.9.0", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@firebase/auth": { "version": "0.23.2", @@ -6683,7 +6672,6 @@ "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz", "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -7300,7 +7288,6 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", "license": "MIT", - "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -7963,7 +7950,6 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -8480,8 +8466,7 @@ } ], "hasInstallScript": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@tsparticles/interaction-external-attract": { "version": "3.9.1", @@ -9434,7 +9419,6 @@ "integrity": "sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A==", "devOptional": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -9612,7 +9596,6 @@ "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.46.2", "@typescript-eslint/types": "8.46.2", @@ -10071,7 +10054,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -10157,7 +10139,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -10203,7 +10184,6 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.40.0.tgz", "integrity": "sha512-a9aIL2E3Z7uYUPMCmjMFFd5MWhn+ccTubEvnMy7rOTZCB62dXBJtz0R5BZ/TPuX3R9ocBsgWuAbGWQ+Ph4Fmlg==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.6.0", "@algolia/client-abtesting": "5.40.0", @@ -10962,7 +10942,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -11317,7 +11296,6 @@ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@chevrotain/cst-dts-gen": "11.0.3", "@chevrotain/gast": "11.0.3", @@ -12208,7 +12186,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -12539,7 +12516,6 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10" } @@ -12961,7 +12937,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -13555,8 +13530,7 @@ "version": "8.6.0", "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/embla-carousel-autoplay": { "version": "8.6.0", @@ -13942,7 +13916,6 @@ "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -14775,7 +14748,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14903,7 +14875,6 @@ "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.23.0.tgz", "integrity": "sha512-/4lUVY0lUvBDIaeY1q6dUYhS8Sd18Qb9CgWkPZICUo9IXpJNCEagfNZXBBFCkMTTN5L5gx2Hjr27y21a9NzUcA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/analytics": "0.10.0", "@firebase/analytics-compat": "0.2.6", @@ -21110,7 +21081,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -21884,7 +21854,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -22788,7 +22757,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -23402,7 +23370,6 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -23809,7 +23776,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -23822,7 +23788,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -23888,7 +23853,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/react": "*" }, @@ -23917,7 +23881,6 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -26413,8 +26376,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -26589,7 +26551,6 @@ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26984,7 +26945,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -27257,7 +27217,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -28076,7 +28035,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } From 871f8080896106b423e833e172e1e08eb63f4b41 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 25 Oct 2025 04:18:25 +0000 Subject: [PATCH 3/4] Redesign privacy policy page with modern styling Co-authored-by: Adez017 <142787780+Adez017@users.noreply.github.com> --- src/pages/privacy-policy/index.css | 407 ++++++++++++++++++++++++++++ src/pages/privacy-policy/index.tsx | 411 +++++++++++++++++------------ 2 files changed, 649 insertions(+), 169 deletions(-) create mode 100644 src/pages/privacy-policy/index.css diff --git a/src/pages/privacy-policy/index.css b/src/pages/privacy-policy/index.css new file mode 100644 index 00000000..a46e6831 --- /dev/null +++ b/src/pages/privacy-policy/index.css @@ -0,0 +1,407 @@ +:root { + /* Dark Theme Variables (Default) */ + --privacy-bg-primary: linear-gradient( + 135deg, + #0f0f23 0%, + #1a1a2e 25%, + #16213e 50%, + #0f3460 75%, + #533483 100% + ); + --privacy-bg-card: rgba(255, 255, 255, 0.03); + --privacy-bg-card-hover: rgba(255, 255, 255, 0.08); + --privacy-bg-secondary: rgba(255, 255, 255, 0.05); + --privacy-text-primary: #ffffff; + --privacy-text-secondary: #e2e8f0; + --privacy-text-muted: #cbd5e1; + --privacy-text-dim: #94a3b8; + --privacy-border: rgba(255, 255, 255, 0.1); + --privacy-border-hover: rgba(102, 126, 234, 0.3); + --privacy-accent-primary: #667eea; + --privacy-accent-secondary: #764ba2; + --privacy-shadow: rgba(0, 0, 0, 0.2); + --privacy-shadow-hover: rgba(0, 0, 0, 0.3); +} + +/* Light Theme Variables */ +[data-theme="light"] { + --privacy-bg-primary: linear-gradient( + 135deg, + #f8fafc 0%, + #e2e8f0 25%, + #cbd5e1 50%, + #94a3b8 75%, + #64748b 100% + ); + --privacy-bg-card: rgba(255, 255, 255, 0.9); + --privacy-bg-card-hover: rgba(255, 255, 255, 0.95); + --privacy-bg-secondary: rgba(255, 255, 255, 0.8); + --privacy-text-primary: #0f172a; + --privacy-text-secondary: #1e293b; + --privacy-text-muted: #334155; + --privacy-text-dim: #64748b; + --privacy-border: rgba(0, 0, 0, 0.1); + --privacy-border-hover: rgba(102, 126, 234, 0.4); + --privacy-accent-primary: #4f46e5; + --privacy-accent-secondary: #7c3aed; + --privacy-shadow: rgba(0, 0, 0, 0.1); + --privacy-shadow-hover: rgba(0, 0, 0, 0.15); +} + +/* Force theme variables on specific elements */ +html[data-theme="light"] { + --privacy-bg-primary: linear-gradient( + 135deg, + #f8fafc 0%, + #e2e8f0 25%, + #cbd5e1 50%, + #94a3b8 75%, + #64748b 100% + ); + --privacy-bg-card: rgba(255, 255, 255, 0.9); + --privacy-bg-card-hover: rgba(255, 255, 255, 0.95); + --privacy-bg-secondary: rgba(255, 255, 255, 0.8); + --privacy-text-primary: #0f172a; + --privacy-text-secondary: #1e293b; + --privacy-text-muted: #334155; + --privacy-text-dim: #64748b; + --privacy-border: rgba(0, 0, 0, 0.1); + --privacy-border-hover: rgba(102, 126, 234, 0.4); + --privacy-shadow: rgba(0, 0, 0, 0.1); + --privacy-shadow-hover: rgba(0, 0, 0, 0.15); +} + +/* Animations */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes backgroundShift { + 0%, + 100% { + transform: translateX(0px) translateY(0px) scale(1); + } + 25% { + transform: translateX(30px) translateY(-20px) scale(1.02); + } + 50% { + transform: translateX(-10px) translateY(30px) scale(0.98); + } + 75% { + transform: translateX(-25px) translateY(-15px) scale(1.01); + } +} + +/* Main Container */ +.privacy-policy-container { + font-family: + "Inter", + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + sans-serif; + background: var(--privacy-bg-primary); + color: var(--privacy-text-secondary); + min-height: 100vh; + position: relative; + overflow: hidden; + transition: all 0.3s ease; +} + +/* Background Effects */ +.privacy-policy-container::before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: + radial-gradient( + circle at 20% 80%, + rgba(120, 119, 198, 0.08) 0%, + transparent 60% + ), + radial-gradient( + circle at 80% 20%, + rgba(255, 119, 198, 0.06) 0%, + transparent 60% + ), + radial-gradient( + circle at 40% 40%, + rgba(120, 219, 255, 0.04) 0%, + transparent 60% + ); + animation: backgroundShift 25s ease-in-out infinite; + pointer-events: none; +} + +/* Light theme background effects */ +[data-theme="light"] .privacy-policy-container::before { + background: + radial-gradient( + circle at 20% 80%, + rgba(79, 70, 229, 0.05) 0%, + transparent 60% + ), + radial-gradient( + circle at 80% 20%, + rgba(124, 58, 237, 0.04) 0%, + transparent 60% + ), + radial-gradient( + circle at 40% 40%, + rgba(236, 72, 153, 0.03) 0%, + transparent 60% + ); +} + +/* Content Wrapper */ +.privacy-content-wrapper { + position: relative; + z-index: 1; + max-width: 1200px; + margin: 0 auto; + padding: 4rem 1.5rem; + animation: fadeInUp 0.8s ease-out; +} + +/* Header Section */ +.privacy-header { + text-align: center; + margin-bottom: 3rem; +} + +.privacy-title { + font-size: 3rem; + font-weight: 900; + background: linear-gradient( + 135deg, + var(--privacy-text-primary) 0%, + var(--privacy-text-secondary) 30%, + var(--privacy-text-muted) 60%, + var(--privacy-text-dim) 100% + ); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: 1rem; + line-height: 1.1; + letter-spacing: -0.02em; +} + +.privacy-last-updated { + font-size: 1rem; + color: var(--privacy-text-muted); + margin-bottom: 1.5rem; +} + +.privacy-intro { + font-size: 1.125rem; + color: var(--privacy-text-muted); + line-height: 1.6; + max-width: 42rem; + margin: 0 auto; +} + +.privacy-intro a { + color: var(--privacy-accent-primary); + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; +} + +.privacy-intro a:hover { + color: var(--privacy-accent-secondary); + text-decoration: underline; +} + +/* Main Content Card */ +.privacy-content-card { + background: var(--privacy-bg-card); + border: 1px solid var(--privacy-border); + border-radius: 1.5rem; + padding: 3rem; + backdrop-filter: blur(20px); + box-shadow: 0 10px 20px var(--privacy-shadow); + transition: all 0.3s ease; + margin-bottom: 2rem; +} + +.privacy-content-card:hover { + box-shadow: 0 15px 30px var(--privacy-shadow-hover); +} + +/* Section Styles */ +.privacy-section { + margin-bottom: 2.5rem; +} + +.privacy-section:last-child { + margin-bottom: 0; +} + +.privacy-section-title { + font-size: 1.75rem; + font-weight: 700; + color: var(--privacy-text-primary); + margin-bottom: 1rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.privacy-section-icon { + font-size: 1.5rem; +} + +.privacy-section-content { + color: var(--privacy-text-muted); + line-height: 1.8; + font-size: 1rem; +} + +.privacy-section-content p { + margin-bottom: 1rem; +} + +.privacy-section-content p:last-child { + margin-bottom: 0; +} + +.privacy-section-content a { + color: var(--privacy-accent-primary); + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; +} + +.privacy-section-content a:hover { + color: var(--privacy-accent-secondary); + text-decoration: underline; +} + +/* List Styles */ +.privacy-list { + list-style: none; + padding: 0; + margin: 1rem 0; + display: flex; + flex-direction: column; + gap: 1.5rem; +} + +.privacy-list-item { + background: var(--privacy-bg-secondary); + border: 1px solid var(--privacy-border); + border-radius: 1rem; + padding: 1.5rem; + transition: all 0.3s ease; +} + +.privacy-list-item:hover { + background: var(--privacy-bg-card-hover); + border-color: var(--privacy-border-hover); + transform: translateX(4px); +} + +.privacy-list-item strong { + color: var(--privacy-text-primary); + font-weight: 600; + font-size: 1.125rem; + display: block; + margin-bottom: 0.5rem; +} + +/* Contact Section */ +.privacy-contact-section { + background: linear-gradient( + 135deg, + var(--privacy-accent-primary) 0%, + var(--privacy-accent-secondary) 100% + ); + border-radius: 1.5rem; + padding: 2rem; + text-align: center; + box-shadow: 0 10px 20px rgba(102, 126, 234, 0.3); + transition: all 0.3s ease; +} + +.privacy-contact-section:hover { + transform: translateY(-4px); + box-shadow: 0 15px 30px rgba(102, 126, 234, 0.4); +} + +.privacy-contact-title { + font-size: 1.5rem; + font-weight: 700; + color: white; + margin-bottom: 1rem; +} + +.privacy-contact-content { + color: rgba(255, 255, 255, 0.95); + line-height: 1.6; + font-size: 1rem; +} + +.privacy-contact-content a { + color: white; + text-decoration: none; + font-weight: 600; + border-bottom: 2px solid rgba(255, 255, 255, 0.5); + transition: all 0.3s ease; +} + +.privacy-contact-content a:hover { + border-bottom-color: white; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .privacy-content-wrapper { + padding: 2rem 1rem; + } + + .privacy-title { + font-size: 2rem; + } + + .privacy-intro { + font-size: 1rem; + } + + .privacy-content-card { + padding: 2rem 1.5rem; + } + + .privacy-section-title { + font-size: 1.5rem; + } + + .privacy-header { + margin-bottom: 2rem; + } +} + +@media (max-width: 480px) { + .privacy-title { + font-size: 1.75rem; + } + + .privacy-section-title { + font-size: 1.25rem; + } + + .privacy-content-card { + padding: 1.5rem 1rem; + } +} diff --git a/src/pages/privacy-policy/index.tsx b/src/pages/privacy-policy/index.tsx index 0b04c0f6..d3db72be 100644 --- a/src/pages/privacy-policy/index.tsx +++ b/src/pages/privacy-policy/index.tsx @@ -1,5 +1,6 @@ import Layout from "@theme/Layout"; import React from "react"; +import "./index.css"; const PrivacyPolicy: React.FC = () => { return ( @@ -7,184 +8,256 @@ const PrivacyPolicy: React.FC = () => { title="Privacy Policy" description="Privacy Policy of recode hive for Learners, and users" > -
-          Last Updated: 25th May 2025
-          
 
-          Welcome to{" "}
-          
-            RecodeHive
-          
-          , an educational and technology-focused platform operated by{" "}
-          
-            Sanjay Viswanthan
-          
-          We are committed to protecting your privacy and ensuring the security
-          of your personal information. This Privacy Policy explains how we
-          collect, use, disclose, and safeguard your information when you visit
-          our website.
-          
 
-          By accessing or using our website, you consent to the terms of this
-          Privacy Policy. If you do not agree with the terms of this Privacy
-          Policy, please do not use our website.
-        
+ Last Updated: 25th May 2025 +
++ Welcome to{" "} + + RecodeHive + + , an educational and technology-focused platform operated by{" "} + + Sanjay Viswanthan + + . We are committed to protecting your privacy and ensuring the + security of your personal information. This Privacy Policy + explains how we collect, use, disclose, and safeguard your + information when you visit our website. +
+- We collect personal information that you voluntarily provide to us - when you interact with the website, such as your name, email address, - and any other information you choose to share. We may also collect - technical information about your device and usage patterns to improve - our website's functionality and user experience. -
+ {/* Main Content Card */} ++ By accessing or using our website, you consent to the terms of + this Privacy Policy. If you do not agree with the terms of + this Privacy Policy, please do not use our website. +
++ We collect personal information that you voluntarily provide + to us when you interact with the website, such as your name, + email address, and any other information you choose to share. + We may also collect technical information about your device + and usage patterns to improve our website's functionality + and user experience. +
+- If you leave a comment, the comment and its metadata are retained - indefinitely. This is so we can recognize and approve any follow-up - comments automatically instead of holding them in a moderation queue. -
+ {/* What personal data we collect */} +- We will retain your personal information for as long as necessary to - fulfill the purposes outlined in this Privacy Policy, unless a longer - retention period is required or permitted by law.For users that - register on our website (if any), we also store the personal - information they provide in their user profile. All users can see, - edit, or delete their personal information at any time (except they - cannot change their username). Website administrators can also see and - edit that information. -
+ {/* Data Retention */} ++ If you leave a comment, the comment and its metadata are + retained indefinitely. This is so we can recognize and approve + any follow-up comments automatically instead of holding them + in a moderation queue. +
++ We will retain your personal information for as long as + necessary to fulfill the purposes outlined in this Privacy + Policy, unless a longer retention period is required or + permitted by law. For users that register on our website (if + any), we also store the personal information they provide in + their user profile. All users can see, edit, or delete their + personal information at any time (except they cannot change + their username). Website administrators can also see and edit + that information. +
+- We are using CloudFlare SSL on our website and everything which you - send to us is with us and the data wonβt be shared with any third - party.You have the right to access, update, correct, or delete your - personal information at any time. You can also object to the - processing of your personal information or request that we restrict - certain processing activities. To exercise these rights, please - contact us using the information provided below. -
+ {/* Your Rights */} ++ We are using CloudFlare SSL on our website and everything + which you send to us is with us and the data won't be + shared with any third party. You have the right to access, + update, correct, or delete your personal information at any + time. You can also object to the processing of your personal + information or request that we restrict certain processing + activities. To exercise these rights, please contact us using + the information provided below. +
+- Our website may contain links to third-party websites or resources - that are not owned or controlled by us. We are not responsible for the - privacy practices or content of these third-party websites. We - encourage you to review the privacy policies of these websites before - providing any personal information. -
+ {/* Third-Party Links */} ++ Our website may contain links to third-party websites or + resources that are not owned or controlled by us. We are not + responsible for the privacy practices or content of these + third-party websites. We encourage you to review the privacy + policies of these websites before providing any personal + information. +
+- If there is data breach we will contact the subscribers that there was - a data breach and we will write an email to them whose data is lost. - Our website is not directed to children under the age of 13. We do not - knowingly collect personal information from children under 13. If you - are a parent or guardian and believe that your child has provided us - with personal information, please contact us, and we will take - appropriate steps to remove such information from our records. -
+ {/* Children's Privacy */} ++ If there is data breach we will contact the subscribers that + there was a data breach and we will write an email to them + whose data is lost. Our website is not directed to children + under the age of 13. We do not knowingly collect personal + information from children under 13. If you are a parent or + guardian and believe that your child has provided us with + personal information, please contact us, and we will take + appropriate steps to remove such information from our records. +
+- We recieve data from Google AdSense and Google Analytics about the - user behaviour. We reserve the right to update or modify this Privacy - Policy at any time. We will notify you of any changes by posting the - new Privacy Policy on this page. Your continued use of our website - after any modifications indicates your acceptance of the updated - Privacy Policy. -
+ {/* Third Parties We Receive Data From */} ++ We receive data from Google AdSense and Google Analytics about + the user behaviour. We reserve the right to update or modify + this Privacy Policy at any time. We will notify you of any + changes by posting the new Privacy Policy on this page. Your + continued use of our website after any modifications indicates + your acceptance of the updated Privacy Policy. +
+- If you have any questions or concerns about this Privacy Policy, - please contact us at{" "} - - sanjay@recodehive.com - - . Thank you for visiting recodehive! -
+ {/* Contact Section */} ++ If you have any questions or concerns about this Privacy Policy, + please contact us at{" "} + + sanjay@recodehive.com + + . Thank you for visiting recodehive! +
+We receive data from Google AdSense and Google Analytics about - the user behaviour. We reserve the right to update or modify + the user behavior. We reserve the right to update or modify this Privacy Policy at any time. We will notify you of any changes by posting the new Privacy Policy on this page. Your continued use of our website after any modifications indicates