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" > -
-

Privacy Policy

-

- 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. -

+
+
+ {/* Header Section */} +
+

Privacy Policy

+

+ 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. +

+
-

- Information We Collect -

-

- 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 */} +
+ {/* Consent Section */} +
+
+

+ 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. +

+
+
-

- What personal data we collect and why we collect it -

-
    -
  1. - Comments & Personalization: When visitors leave - comments on the site we collect the data shown in the comments form, - and also the visitors IP address and browser user agent string to - help spam detection.To customize your experience on our website and - provide content and resources tailored to your interests and - preferences. -
  2. -
  3. - Media & Communication:If you upload images to the - website, you should avoid uploading images with embedded location - data (EXIF GPS) included. Visitors to the website can download and - extract any location data from images on the website. To respond to - your inquiries, provide customer support, and send you updates and - notifications about our services, events, and educational materials. -
  4. -
  5. - Cookies & Analytics: If you leave a comment on our - site you may opt-in to save your name, email address and website in - cookies. We use third party app giscuss for this purpose to directly - authorise with Github. If you have an account and you log in to this - site, we will set a temporary cookie to determine if your browser - accepts cookies. This cookie contains no personal data and is - discarded when you close your browser.These are for your convenience - so that you do not have to fill in your details again when you leave - another comment. These cookies will last for oneTo analyze trends, - track user interactions, and gather demographic information to - improve our website's performance and user experience. -
  6. -
  7. - Security: To protect our website from security - threats, fraud, or other malicious activities. -
  8. -
  9. - Legal Compliance: To comply with applicable laws, - regulations, or legal processes. -
  10. -
  11. - Contact forms & Marketing: If you contact us we - will use your name and email address to reply to your query and we - won’t share that information with third party. To promote our - services, events, and educational materials through targeted - advertising and promotional campaigns.If you are subscribing to our - blog you will get emails from substack. You will get emails about a - new article, freebies, e-book and much more. If you want you can - unsubscribe to the emails and it is really easy. You can read About - the General Data Protection -
  12. -
+ {/* Information We Collect */} +
+

+ πŸ“Š + Information We Collect +

+
+

+ 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. +

+
+
-

- How long we retain your data -

-

- 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 */} +
+

+ πŸ” + What Personal Data We Collect and Why +

+
    +
  • + Comments & Personalization + When visitors leave comments on the site we collect the data + shown in the comments form, and also the visitors IP address + and browser user agent string to help spam detection. To + customize your experience on our website and provide content + and resources tailored to your interests and preferences. +
  • +
  • + Media & Communication + If you upload images to the website, you should avoid + uploading images with embedded location data (EXIF GPS) + included. Visitors to the website can download and extract any + location data from images on the website. To respond to your + inquiries, provide customer support, and send you updates and + notifications about our services, events, and educational + materials. +
  • +
  • + Cookies & Analytics + If you leave a comment on our site you may opt-in to save your + name, email address and website in cookies. We use third party + app giscuss for this purpose to directly authorise with + Github. If you have an account and you log in to this site, we + will set a temporary cookie to determine if your browser + accepts cookies. This cookie contains no personal data and is + discarded when you close your browser. These are for your + convenience so that you do not have to fill in your details + again when you leave another comment. These cookies will last + for one year. To analyze trends, track user interactions, and + gather demographic information to improve our website's + performance and user experience. +
  • +
  • + Security + To protect our website from security threats, fraud, or other + malicious activities. +
  • +
  • + Legal Compliance + To comply with applicable laws, regulations, or legal + processes. +
  • +
  • + Contact Forms & Marketing + If you contact us we will use your name and email address to + reply to your query and we won't share that information + with third party. To promote our services, events, and + educational materials through targeted advertising and + promotional campaigns. If you are subscribing to our blog you + will get emails from substack. You will get emails about a new + article, freebies, e-book and much more. If you want you can + unsubscribe to the emails and it is really easy. +
  • +
+
-

Data Retention

-

- 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 */} +
+

+ ⏱️ + How Long We Retain Your Data +

+
+

+ 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. +

+
+
-

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. -

+ {/* Your Rights */} +
+

+ πŸ” + 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. +

+
+
-

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. -

+ {/* Third-Party Links */} +
+

+ πŸ”— + 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. +

+
+
-

- 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. -

+ {/* Children's Privacy */} +
+

+ πŸ‘Ά + 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. +

+
+
-

- What third parties we receive data from -

-

- 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 */} +
+

+ πŸ“‘ + What 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. +

+
+
+
-

Contact Us

-

- 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 */} +
+

Contact Us

+
+

+ If you have any questions or concerns about this Privacy Policy, + please contact us at{" "} + + sanjay@recodehive.com + + . Thank you for visiting recodehive! +

+
+
+
); From d52cab0ddbb803955dbd913252b8e57ff532f51c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 25 Oct 2025 04:57:07 +0000 Subject: [PATCH 4/4] Fix code review issues: add colons and correct spelling Co-authored-by: Adez017 <142787780+Adez017@users.noreply.github.com> --- src/pages/privacy-policy/index.tsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pages/privacy-policy/index.tsx b/src/pages/privacy-policy/index.tsx index d3db72be..07d9521a 100644 --- a/src/pages/privacy-policy/index.tsx +++ b/src/pages/privacy-policy/index.tsx @@ -79,7 +79,7 @@ const PrivacyPolicy: React.FC = () => {