sujalrajpoot commited on
Commit
81abfd4
·
verified ·
1 Parent(s): e07060b

Upload 4 files

Browse files
Files changed (4) hide show
  1. static/TrueSyncAI.jpg +3 -0
  2. static/script.js +369 -0
  3. static/styles.css +800 -0
  4. templates/index.html +185 -0
static/TrueSyncAI.jpg ADDED

Git LFS Details

  • SHA256: dd9da65e11c0bdbbe6f6c65ca50d1215fa9acfd86dac9c055dcd5d064840b306
  • Pointer size: 131 Bytes
  • Size of remote file: 238 kB
static/script.js ADDED
@@ -0,0 +1,369 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Wait for DOM content to load
2
+ document.addEventListener('DOMContentLoaded', function() {
3
+ // Loading screen functionality
4
+ const loadingScreen = document.querySelector('.loading-screen');
5
+
6
+ // Hide loading screen after 2 seconds
7
+ setTimeout(() => {
8
+ loadingScreen.classList.add('hidden');
9
+ }, 2000);
10
+
11
+ // Mobile menu toggle
12
+ const menuToggle = document.querySelector('.menu-toggle');
13
+ const navLinks = document.querySelector('.nav-links');
14
+
15
+ menuToggle.addEventListener('click', function() {
16
+ navLinks.classList.toggle('active');
17
+ });
18
+
19
+ // Close mobile menu when clicking outside
20
+ document.addEventListener('click', function(event) {
21
+ const isClickInsideNav = navLinks.contains(event.target);
22
+ const isClickOnToggle = menuToggle.contains(event.target);
23
+
24
+ if (!isClickInsideNav && !isClickOnToggle && navLinks.classList.contains('active')) {
25
+ navLinks.classList.remove('active');
26
+ }
27
+ });
28
+
29
+ // Header scroll effect
30
+ const header = document.querySelector('header');
31
+
32
+ window.addEventListener('scroll', function() {
33
+ if (window.scrollY > 50) {
34
+ header.classList.add('scrolled');
35
+ } else {
36
+ header.classList.remove('scrolled');
37
+ }
38
+ });
39
+
40
+ // Animate stats counter
41
+ const stats = document.querySelectorAll('.stat-number');
42
+
43
+ const animateStats = () => {
44
+ stats.forEach(stat => {
45
+ const target = parseInt(stat.getAttribute('data-target'));
46
+ const count = +stat.innerText;
47
+ const increment = target / 100;
48
+
49
+ if (count < target) {
50
+ stat.innerText = Math.ceil(count + increment);
51
+ setTimeout(animateStats, 30);
52
+ } else {
53
+ stat.innerText = target;
54
+ }
55
+ });
56
+ };
57
+
58
+ // Intersection Observer for animations
59
+ const observerOptions = {
60
+ threshold: 0.1
61
+ };
62
+
63
+ const observer = new IntersectionObserver(function(entries, observer) {
64
+ entries.forEach(entry => {
65
+ if (entry.isIntersecting) {
66
+ if (entry.target.classList.contains('hero-stats')) {
67
+ stats.forEach(stat => {
68
+ stat.innerText = '0';
69
+ });
70
+ animateStats();
71
+ }
72
+ entry.target.classList.add('animate');
73
+ observer.unobserve(entry.target);
74
+ }
75
+ });
76
+ }, observerOptions);
77
+
78
+ // Observe elements for animation
79
+ observer.observe(document.querySelector('.hero-stats'));
80
+
81
+ // Feature cards hover effect
82
+ const featureCards = document.querySelectorAll('.feature-card');
83
+
84
+ featureCards.forEach(card => {
85
+ card.addEventListener('mouseenter', function() {
86
+ featureCards.forEach(c => c.classList.remove('active'));
87
+ this.classList.add('active');
88
+ });
89
+ });
90
+
91
+ // Smooth scrolling for navigation links
92
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
93
+ anchor.addEventListener('click', function(e) {
94
+ e.preventDefault();
95
+
96
+ const targetId = this.getAttribute('href');
97
+ if (targetId === '#') return;
98
+
99
+ const targetElement = document.querySelector(targetId);
100
+ if (targetElement) {
101
+ targetElement.scrollIntoView({
102
+ behavior: 'smooth'
103
+ });
104
+
105
+ // Close mobile menu if open
106
+ if (navLinks.classList.contains('active')) {
107
+ navLinks.classList.remove('active');
108
+ }
109
+
110
+ // Update active navigation link
111
+ document.querySelectorAll('.nav-links a').forEach(link => {
112
+ link.classList.remove('active');
113
+ });
114
+ this.classList.add('active');
115
+ }
116
+ });
117
+ });
118
+
119
+ // Add active class to navigation based on scroll position
120
+ const sections = document.querySelectorAll('section');
121
+
122
+ window.addEventListener('scroll', function() {
123
+ let current = '';
124
+
125
+ sections.forEach(section => {
126
+ const sectionTop = section.offsetTop;
127
+ const sectionHeight = section.clientHeight;
128
+ if (window.scrollY >= (sectionTop - 200)) {
129
+ current = section.getAttribute('id');
130
+ }
131
+ });
132
+
133
+ document.querySelectorAll('.nav-links a').forEach(link => {
134
+ link.classList.remove('active');
135
+ const href = link.getAttribute('href');
136
+ if (href === `#${current}`) {
137
+ link.classList.add('active');
138
+ }
139
+ });
140
+ });
141
+
142
+ // Modal for demo video
143
+ const demoButton = document.querySelector('.btn-secondary');
144
+
145
+ if (demoButton) {
146
+ demoButton.addEventListener('click', function() {
147
+ // Create modal elements
148
+ const modal = document.createElement('div');
149
+ modal.className = 'modal';
150
+
151
+ const modalContent = document.createElement('div');
152
+ modalContent.className = 'modal-content';
153
+
154
+ const closeButton = document.createElement('span');
155
+ closeButton.className = 'modal-close';
156
+ closeButton.innerHTML = '&times;';
157
+
158
+ const videoContainer = document.createElement('div');
159
+ videoContainer.className = 'video-container';
160
+ videoContainer.innerHTML = '<div class="video-placeholder"><i class="fas fa-play"></i><p>Demo Video</p></div>';
161
+
162
+ // Append elements
163
+ modalContent.appendChild(closeButton);
164
+ modalContent.appendChild(videoContainer);
165
+ modal.appendChild(modalContent);
166
+ document.body.appendChild(modal);
167
+
168
+ // Add styles
169
+ modal.style.display = 'flex';
170
+ modal.style.position = 'fixed';
171
+ modal.style.top = '0';
172
+ modal.style.left = '0';
173
+ modal.style.width = '100%';
174
+ modal.style.height = '100%';
175
+ modal.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
176
+ modal.style.zIndex = '1000';
177
+ modal.style.justifyContent = 'center';
178
+ modal.style.alignItems = 'center';
179
+
180
+ modalContent.style.backgroundColor = 'white';
181
+ modalContent.style.borderRadius = '8px';
182
+ modalContent.style.width = '80%';
183
+ modalContent.style.maxWidth = '800px';
184
+ modalContent.style.position = 'relative';
185
+ modalContent.style.padding = '20px';
186
+
187
+ closeButton.style.position = 'absolute';
188
+ closeButton.style.top = '10px';
189
+ closeButton.style.right = '15px';
190
+ closeButton.style.fontSize = '28px';
191
+ closeButton.style.fontWeight = 'bold';
192
+ closeButton.style.cursor = 'pointer';
193
+
194
+ videoContainer.style.width = '100%';
195
+ videoContainer.style.padding = '56.25% 0 0 0';
196
+ videoContainer.style.position = 'relative';
197
+
198
+ const videoPlaceholder = videoContainer.querySelector('.video-placeholder');
199
+ videoPlaceholder.style.position = 'absolute';
200
+ videoPlaceholder.style.top = '0';
201
+ videoPlaceholder.style.left = '0';
202
+ videoPlaceholder.style.width = '100%';
203
+ videoPlaceholder.style.height = '100%';
204
+ videoPlaceholder.style.backgroundColor = '#f3f4f6';
205
+ videoPlaceholder.style.display = 'flex';
206
+ videoPlaceholder.style.flexDirection = 'column';
207
+ videoPlaceholder.style.justifyContent = 'center';
208
+ videoPlaceholder.style.alignItems = 'center';
209
+ videoPlaceholder.style.color = '#4f46e5';
210
+
211
+ const playIcon = videoPlaceholder.querySelector('i');
212
+ playIcon.style.fontSize = '48px';
213
+ playIcon.style.marginBottom = '10px';
214
+
215
+ // Close modal functionality
216
+ closeButton.addEventListener('click', function() {
217
+ document.body.removeChild(modal);
218
+ });
219
+
220
+ // Close when clicking outside modal content
221
+ modal.addEventListener('click', function(event) {
222
+ if (event.target === modal) {
223
+ document.body.removeChild(modal);
224
+ }
225
+ });
226
+ });
227
+ }
228
+
229
+ // Form submission for newsletter
230
+ const newsletterForm = document.querySelector('.newsletter');
231
+
232
+ if (newsletterForm) {
233
+ newsletterForm.addEventListener('submit', function(e) {
234
+ e.preventDefault();
235
+
236
+ const emailInput = this.querySelector('input[type="email"]');
237
+ const email = emailInput.value.trim();
238
+
239
+ if (email && isValidEmail(email)) {
240
+ // Create toast notification
241
+ const toast = document.createElement('div');
242
+ toast.className = 'toast';
243
+ toast.innerHTML = '<i class="fas fa-check-circle"></i> Thank you for subscribing!';
244
+
245
+ // Add styles to toast
246
+ toast.style.position = 'fixed';
247
+ toast.style.bottom = '20px';
248
+ toast.style.right = '20px';
249
+ toast.style.backgroundColor = '#10b981';
250
+ toast.style.color = 'white';
251
+ toast.style.padding = '12px 20px';
252
+ toast.style.borderRadius = '4px';
253
+ toast.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)';
254
+ toast.style.display = 'flex';
255
+ toast.style.alignItems = 'center';
256
+ toast.style.gap = '8px';
257
+ toast.style.zIndex = '1000';
258
+ toast.style.opacity = '0';
259
+ toast.style.transform = 'translateY(20px)';
260
+ toast.style.transition = 'opacity 0.3s, transform 0.3s';
261
+
262
+ document.body.appendChild(toast);
263
+
264
+ // Show toast
265
+ setTimeout(() => {
266
+ toast.style.opacity = '1';
267
+ toast.style.transform = 'translateY(0)';
268
+ }, 10);
269
+
270
+ // Hide toast after 3 seconds
271
+ setTimeout(() => {
272
+ toast.style.opacity = '0';
273
+ toast.style.transform = 'translateY(20px)';
274
+
275
+ // Remove toast from DOM after animation
276
+ setTimeout(() => {
277
+ document.body.removeChild(toast);
278
+ }, 300);
279
+ }, 3000);
280
+
281
+ // Reset form
282
+ emailInput.value = '';
283
+ } else {
284
+ // Invalid email handling
285
+ emailInput.style.borderColor = '#ef4444';
286
+ emailInput.style.boxShadow = '0 0 0 2px rgba(239, 68, 68, 0.2)';
287
+
288
+ // Reset styles after 2 seconds
289
+ setTimeout(() => {
290
+ emailInput.style.borderColor = '';
291
+ emailInput.style.boxShadow = '';
292
+ }, 2000);
293
+ }
294
+ });
295
+ }
296
+
297
+ // Email validation function
298
+ function isValidEmail(email) {
299
+ const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
300
+ return regex.test(email);
301
+ }
302
+
303
+ // Add button ripple effect
304
+ const buttons = document.querySelectorAll('button');
305
+
306
+ buttons.forEach(button => {
307
+ button.addEventListener('click', function(e) {
308
+ const x = e.clientX - e.target.getBoundingClientRect().left;
309
+ const y = e.clientY - e.target.getBoundingClientRect().top;
310
+
311
+ const ripple = document.createElement('span');
312
+ ripple.className = 'ripple';
313
+ ripple.style.left = `${x}px`;
314
+ ripple.style.top = `${y}px`;
315
+
316
+ this.appendChild(ripple);
317
+
318
+ setTimeout(() => {
319
+ ripple.remove();
320
+ }, 600);
321
+ });
322
+ });
323
+ });
324
+
325
+ // Add CSS for ripple effect
326
+ (function() {
327
+ const style = document.createElement('style');
328
+ style.textContent = `
329
+ button {
330
+ position: relative;
331
+ overflow: hidden;
332
+ }
333
+
334
+ .ripple {
335
+ position: absolute;
336
+ border-radius: 50%;
337
+ background-color: rgba(255, 255, 255, 0.7);
338
+ transform: scale(0);
339
+ animation: ripple 0.6s linear;
340
+ pointer-events: none;
341
+ }
342
+
343
+ @keyframes ripple {
344
+ to {
345
+ transform: scale(4);
346
+ opacity: 0;
347
+ }
348
+ }
349
+
350
+ .modal {
351
+ animation: fadeIn 0.3s ease;
352
+ }
353
+
354
+ .modal-content {
355
+ animation: scaleIn 0.3s ease;
356
+ }
357
+
358
+ @keyframes fadeIn {
359
+ from { opacity: 0; }
360
+ to { opacity: 1; }
361
+ }
362
+
363
+ @keyframes scaleIn {
364
+ from { transform: scale(0.9); opacity: 0; }
365
+ to { transform: scale(1); opacity: 1; }
366
+ }
367
+ `;
368
+ document.head.appendChild(style);
369
+ })();
static/styles.css ADDED
@@ -0,0 +1,800 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Base styles */
2
+ :root {
3
+ --primary-color: #4f46e5;
4
+ --primary-dark: #3730a3;
5
+ --primary-light: #c7d2fe;
6
+ --secondary-color: #10b981;
7
+ --accent-color: #f472b6;
8
+ --dark-bg: #111827;
9
+ --gray-dark: #1f2937;
10
+ --gray-medium: #374151;
11
+ --gray-light: #6b7280;
12
+ --gray-lightest: #f3f4f6;
13
+ --text-dark: #111827;
14
+ --text-light: #f9fafb;
15
+ --text-muted: #9ca3af;
16
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
17
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
18
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
19
+ --transition: all 0.3s ease;
20
+ --border-radius: 8px;
21
+ }
22
+
23
+ * {
24
+ margin: 0;
25
+ padding: 0;
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ body {
30
+ font-family: 'Poppins', sans-serif;
31
+ color: var(--text-dark);
32
+ background-color: #fff;
33
+ overflow-x: hidden;
34
+ line-height: 1.6;
35
+ }
36
+
37
+ h1, h2, h3, h4, h5, h6 {
38
+ font-family: 'Outfit', sans-serif;
39
+ font-weight: 700;
40
+ line-height: 1.2;
41
+ }
42
+
43
+ a {
44
+ text-decoration: none;
45
+ color: inherit;
46
+ transition: var(--transition);
47
+ }
48
+
49
+ ul {
50
+ list-style: none;
51
+ }
52
+
53
+ img {
54
+ max-width: 100%;
55
+ height: auto;
56
+ }
57
+
58
+ button, .btn-primary, .btn-secondary {
59
+ cursor: pointer;
60
+ font-family: 'Poppins', sans-serif;
61
+ font-weight: 500;
62
+ border: none;
63
+ border-radius: var(--border-radius);
64
+ transition: var(--transition);
65
+ }
66
+
67
+ .btn-primary {
68
+ background-color: var(--primary-color);
69
+ color: white;
70
+ padding: 12px 24px;
71
+ box-shadow: var(--shadow-md);
72
+ font-size: 16px;
73
+ }
74
+
75
+ .btn-primary:hover {
76
+ background-color: var(--primary-dark);
77
+ transform: translateY(-2px);
78
+ box-shadow: var(--shadow-lg);
79
+ }
80
+
81
+ .btn-secondary {
82
+ background-color: transparent;
83
+ color: var(--primary-color);
84
+ border: 2px solid var(--primary-color);
85
+ padding: 10px 22px;
86
+ font-size: 16px;
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 8px;
90
+ }
91
+
92
+ .btn-secondary:hover {
93
+ background-color: var(--primary-light);
94
+ color: var(--primary-dark);
95
+ transform: translateY(-2px);
96
+ }
97
+
98
+ .gradient-text {
99
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
100
+ -webkit-background-clip: text;
101
+ background-clip: text;
102
+ color: transparent;
103
+ display: inline-block;
104
+ }
105
+
106
+ /* Loading screen */
107
+ .loading-screen {
108
+ position: fixed;
109
+ top: 0;
110
+ left: 0;
111
+ width: 100%;
112
+ height: 100%;
113
+ background-color: var(--primary-color);
114
+ display: flex;
115
+ flex-direction: column;
116
+ justify-content: center;
117
+ align-items: center;
118
+ z-index: 9999;
119
+ transition: opacity 0.5s ease, visibility 0.5s;
120
+ }
121
+
122
+ .loader {
123
+ display: flex;
124
+ gap: 12px;
125
+ }
126
+
127
+ .circle {
128
+ width: 20px;
129
+ height: 20px;
130
+ border-radius: 50%;
131
+ background-color: white;
132
+ animation: bounce 0.8s infinite alternate;
133
+ }
134
+
135
+ .circle:nth-child(2) {
136
+ animation-delay: 0.2s;
137
+ }
138
+
139
+ .circle:nth-child(3) {
140
+ animation-delay: 0.4s;
141
+ }
142
+
143
+ @keyframes bounce {
144
+ 0% {
145
+ transform: translateY(0);
146
+ opacity: 0.5;
147
+ }
148
+ 100% {
149
+ transform: translateY(-20px);
150
+ opacity: 1;
151
+ }
152
+ }
153
+
154
+ .loading-text {
155
+ font-family: 'Outfit', sans-serif;
156
+ font-size: 24px;
157
+ font-weight: 700;
158
+ color: white;
159
+ margin-top: 24px;
160
+ letter-spacing: 2px;
161
+ }
162
+
163
+ .hidden {
164
+ opacity: 0;
165
+ visibility: hidden;
166
+ }
167
+
168
+ /* Header & Navigation */
169
+ header {
170
+ position: fixed;
171
+ top: 0;
172
+ left: 0;
173
+ width: 100%;
174
+ background-color: rgba(255, 255, 255, 0.8);
175
+ backdrop-filter: blur(10px);
176
+ -webkit-backdrop-filter: blur(10px);
177
+ box-shadow: var(--shadow-sm);
178
+ z-index: 100;
179
+ padding: 15px 0;
180
+ transition: var(--transition);
181
+ }
182
+
183
+ header.scrolled {
184
+ padding: 10px 0;
185
+ background-color: rgba(255, 255, 255, 0.95);
186
+ box-shadow: var(--shadow-md);
187
+ }
188
+
189
+ nav {
190
+ max-width: 1200px;
191
+ margin: 0 auto;
192
+ display: flex;
193
+ justify-content: space-between;
194
+ align-items: center;
195
+ padding: 0 20px;
196
+ }
197
+
198
+ .logo {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 12px;
202
+ }
203
+
204
+ .logo img {
205
+ height: 40px;
206
+ width: auto;
207
+ border-radius: 8px;
208
+ }
209
+
210
+ .logo span {
211
+ font-family: 'Outfit', sans-serif;
212
+ font-weight: 700;
213
+ font-size: 24px;
214
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
215
+ -webkit-background-clip: text;
216
+ background-clip: text;
217
+ color: transparent;
218
+ }
219
+
220
+ .nav-links {
221
+ display: flex;
222
+ align-items: center;
223
+ gap: 32px;
224
+ }
225
+
226
+ .nav-links li a {
227
+ font-weight: 500;
228
+ color: var(--gray-medium);
229
+ position: relative;
230
+ }
231
+
232
+ .nav-links li a:not(.btn-primary):after {
233
+ content: '';
234
+ position: absolute;
235
+ width: 0;
236
+ height: 2px;
237
+ bottom: -4px;
238
+ left: 0;
239
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
240
+ transition: var(--transition);
241
+ }
242
+
243
+ .nav-links li a:not(.btn-primary):hover:after,
244
+ .nav-links li a.active:after {
245
+ width: 100%;
246
+ }
247
+
248
+ .nav-links li a:not(.btn-primary):hover {
249
+ color: var(--primary-color);
250
+ }
251
+
252
+ .nav-links li a.active {
253
+ color: var(--primary-color);
254
+ font-weight: 600;
255
+ }
256
+
257
+ .menu-toggle {
258
+ display: none;
259
+ cursor: pointer;
260
+ font-size: 24px;
261
+ color: var(--gray-dark);
262
+ }
263
+
264
+ /* Hero Section */
265
+ .hero {
266
+ padding: 160px 20px 100px;
267
+ display: flex;
268
+ align-items: center;
269
+ max-width: 1200px;
270
+ margin: 0 auto;
271
+ position: relative;
272
+ overflow: hidden;
273
+ }
274
+
275
+ .hero-content {
276
+ flex: 1;
277
+ max-width: 600px;
278
+ }
279
+
280
+ .hero-content h1 {
281
+ font-size: 48px;
282
+ margin-bottom: 20px;
283
+ line-height: 1.2;
284
+ }
285
+
286
+ .hero-content p {
287
+ font-size: 18px;
288
+ color: var(--gray-light);
289
+ margin-bottom: 32px;
290
+ }
291
+
292
+ .hero-buttons {
293
+ display: flex;
294
+ gap: 16px;
295
+ margin-bottom: 40px;
296
+ }
297
+
298
+ .hero-stats {
299
+ display: flex;
300
+ gap: 40px;
301
+ }
302
+
303
+ .stat {
304
+ display: flex;
305
+ flex-direction: column;
306
+ align-items: center;
307
+ }
308
+
309
+ .stat-number {
310
+ font-family: 'Outfit', sans-serif;
311
+ font-size: 36px;
312
+ font-weight: 700;
313
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
314
+ -webkit-background-clip: text;
315
+ background-clip: text;
316
+ color: transparent;
317
+ }
318
+
319
+ .stat-label {
320
+ font-size: 14px;
321
+ color: var(--gray-light);
322
+ }
323
+
324
+ .hero-image {
325
+ flex: 1;
326
+ position: relative;
327
+ height: 400px;
328
+ display: flex;
329
+ justify-content: center;
330
+ align-items: center;
331
+ }
332
+
333
+ .shape {
334
+ position: absolute;
335
+ width: 300px;
336
+ height: 300px;
337
+ background: linear-gradient(135deg, var(--primary-light), var(--primary-color));
338
+ border-radius: 50%;
339
+ filter: blur(60px);
340
+ opacity: 0.2;
341
+ animation: pulse 6s infinite alternate;
342
+ }
343
+
344
+ @keyframes pulse {
345
+ 0% {
346
+ transform: scale(1);
347
+ opacity: 0.2;
348
+ }
349
+ 100% {
350
+ transform: scale(1.2);
351
+ opacity: 0.3;
352
+ }
353
+ }
354
+
355
+ .hero-image img {
356
+ position: relative;
357
+ z-index: 1;
358
+ width: 250px;
359
+ height: auto;
360
+ border-radius: 20px;
361
+ box-shadow: var(--shadow-lg);
362
+ transform: perspective(1000px) rotateY(-15deg) rotateX(5deg);
363
+ transition: var(--transition);
364
+ }
365
+
366
+ .hero-image img:hover {
367
+ transform: perspective(1000px) rotateY(0) rotateX(0);
368
+ }
369
+
370
+ .floating-elements {
371
+ position: absolute;
372
+ width: 100%;
373
+ height: 100%;
374
+ z-index: 0;
375
+ }
376
+
377
+ .floating-element {
378
+ position: absolute;
379
+ background-color: white;
380
+ box-shadow: var(--shadow-md);
381
+ border-radius: 50%;
382
+ display: flex;
383
+ justify-content: center;
384
+ align-items: center;
385
+ font-size: 20px;
386
+ color: var(--primary-color);
387
+ animation: float 3s infinite alternate ease-in-out;
388
+ }
389
+
390
+ .floating-element:nth-child(1) {
391
+ top: 20%;
392
+ left: 20%;
393
+ width: 50px;
394
+ height: 50px;
395
+ animation-delay: 0s;
396
+ }
397
+
398
+ .floating-element:nth-child(2) {
399
+ top: 70%;
400
+ left: 15%;
401
+ width: 40px;
402
+ height: 40px;
403
+ animation-delay: 0.5s;
404
+ }
405
+
406
+ .floating-element:nth-child(3) {
407
+ top: 30%;
408
+ right: 10%;
409
+ width: 45px;
410
+ height: 45px;
411
+ animation-delay: 1s;
412
+ }
413
+
414
+ .floating-element:nth-child(4) {
415
+ top: 60%;
416
+ right: 20%;
417
+ width: 35px;
418
+ height: 35px;
419
+ animation-delay: 1.5s;
420
+ }
421
+
422
+ @keyframes float {
423
+ 0% {
424
+ transform: translateY(0) rotate(0deg);
425
+ }
426
+ 100% {
427
+ transform: translateY(-15px) rotate(10deg);
428
+ }
429
+ }
430
+
431
+ /* Features Section */
432
+ .features {
433
+ padding: 100px 20px;
434
+ max-width: 1200px;
435
+ margin: 0 auto;
436
+ text-align: center;
437
+ }
438
+
439
+ .features h2 {
440
+ font-size: 36px;
441
+ margin-bottom: 60px;
442
+ }
443
+
444
+ .features-grid {
445
+ display: grid;
446
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
447
+ gap: 30px;
448
+ }
449
+
450
+ .feature-card {
451
+ background-color: white;
452
+ border-radius: var(--border-radius);
453
+ padding: 30px;
454
+ box-shadow: var(--shadow-md);
455
+ transition: var(--transition);
456
+ text-align: center;
457
+ }
458
+
459
+ .feature-card:hover {
460
+ transform: translateY(-10px);
461
+ box-shadow: var(--shadow-lg);
462
+ }
463
+
464
+ .feature-icon {
465
+ margin-bottom: 20px;
466
+ font-size: 32px;
467
+ color: var(--primary-color);
468
+ display: inline-flex;
469
+ justify-content: center;
470
+ align-items: center;
471
+ width: 80px;
472
+ height: 80px;
473
+ background-color: var(--primary-light);
474
+ border-radius: 50%;
475
+ transition: var(--transition);
476
+ }
477
+
478
+ .feature-card:hover .feature-icon {
479
+ background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
480
+ color: white;
481
+ transform: scale(1.1);
482
+ }
483
+
484
+ .feature-card h3 {
485
+ font-size: 22px;
486
+ margin-bottom: 15px;
487
+ }
488
+
489
+ .feature-card p {
490
+ color: var(--gray-light);
491
+ font-size: 16px;
492
+ }
493
+
494
+ /* CTA Section */
495
+ .cta {
496
+ background-color: var(--gray-lightest);
497
+ padding: 100px 20px;
498
+ position: relative;
499
+ overflow: hidden;
500
+ }
501
+
502
+ .cta-content {
503
+ max-width: 800px;
504
+ margin: 0 auto;
505
+ text-align: center;
506
+ position: relative;
507
+ z-index: 2;
508
+ }
509
+
510
+ .cta-content h2 {
511
+ font-size: 36px;
512
+ margin-bottom: 20px;
513
+ }
514
+
515
+ .cta-content p {
516
+ font-size: 18px;
517
+ color: var(--gray-light);
518
+ margin-bottom: 32px;
519
+ max-width: 600px;
520
+ margin-left: auto;
521
+ margin-right: auto;
522
+ }
523
+
524
+ .cta-shapes .shape {
525
+ position: absolute;
526
+ border-radius: 50%;
527
+ filter: blur(40px);
528
+ }
529
+
530
+ .cta-shapes .shape-1 {
531
+ width: 200px;
532
+ height: 200px;
533
+ background-color: rgba(79, 70, 229, 0.1);
534
+ top: -50px;
535
+ left: 10%;
536
+ animation: moveShape 10s infinite alternate;
537
+ }
538
+
539
+ .cta-shapes .shape-2 {
540
+ width: 250px;
541
+ height: 250px;
542
+ background-color: rgba(244, 114, 182, 0.1);
543
+ bottom: -100px;
544
+ right: 10%;
545
+ animation: moveShape 12s infinite alternate;
546
+ }
547
+
548
+ .cta-shapes .shape-3 {
549
+ width: 150px;
550
+ height: 150px;
551
+ background-color: rgba(16, 185, 129, 0.1);
552
+ top: 50%;
553
+ left: 50%;
554
+ transform: translate(-50%, -50%);
555
+ animation: moveShape 8s infinite alternate;
556
+ }
557
+
558
+ @keyframes moveShape {
559
+ 0% {
560
+ transform: translate(0, 0);
561
+ }
562
+ 100% {
563
+ transform: translate(30px, 20px);
564
+ }
565
+ }
566
+
567
+ /* Footer */
568
+ footer {
569
+ background-color: var(--dark-bg);
570
+ color: var(--text-light);
571
+ padding: 60px 20px 30px;
572
+ }
573
+
574
+ .footer-content {
575
+ max-width: 1200px;
576
+ margin: 0 auto;
577
+ display: grid;
578
+ grid-template-columns: 1.5fr 3fr 2fr;
579
+ gap: 40px;
580
+ padding-bottom: 40px;
581
+ border-bottom: 1px solid var(--gray-medium);
582
+ }
583
+
584
+ .footer-logo {
585
+ display: flex;
586
+ align-items: center;
587
+ gap: 12px;
588
+ margin-bottom: 20px;
589
+ }
590
+
591
+ .footer-logo img {
592
+ height: 40px;
593
+ width: auto;
594
+ border-radius: 8px;
595
+ }
596
+
597
+ .footer-logo span {
598
+ font-family: 'Outfit', sans-serif;
599
+ font-weight: 700;
600
+ font-size: 20px;
601
+ color: white;
602
+ }
603
+
604
+ .footer-links {
605
+ display: grid;
606
+ grid-template-columns: repeat(3, 1fr);
607
+ gap: 20px;
608
+ }
609
+
610
+ .footer-links-column h4 {
611
+ font-size: 18px;
612
+ margin-bottom: 20px;
613
+ color: white;
614
+ }
615
+
616
+ .footer-links-column ul li {
617
+ margin-bottom: 12px;
618
+ }
619
+
620
+ .footer-links-column ul li a {
621
+ color: var(--text-muted);
622
+ font-size: 14px;
623
+ }
624
+
625
+ .footer-links-column ul li a:hover {
626
+ color: white;
627
+ }
628
+
629
+ .footer-social h4 {
630
+ font-size: 18px;
631
+ margin-bottom: 20px;
632
+ color: white;
633
+ }
634
+
635
+ .social-icons {
636
+ display: flex;
637
+ gap: 16px;
638
+ margin-bottom: 24px;
639
+ }
640
+
641
+ .social-icons a {
642
+ display: flex;
643
+ justify-content: center;
644
+ align-items: center;
645
+ width: 40px;
646
+ height: 40px;
647
+ background-color: var(--gray-medium);
648
+ border-radius: 50%;
649
+ color: white;
650
+ transition: var(--transition);
651
+ }
652
+
653
+ .social-icons a:hover {
654
+ background-color: var(--primary-color);
655
+ transform: translateY(-5px);
656
+ }
657
+
658
+ .newsletter {
659
+ display: flex;
660
+ max-width: 100%;
661
+ }
662
+
663
+ .newsletter input {
664
+ flex: 1;
665
+ border: none;
666
+ background-color: var(--gray-medium);
667
+ color: white;
668
+ padding: 12px 16px;
669
+ border-radius: var(--border-radius) 0 0 var(--border-radius);
670
+ outline: none;
671
+ font-family: 'Poppins', sans-serif;
672
+ }
673
+
674
+ .newsletter input::placeholder {
675
+ color: var(--text-muted);
676
+ }
677
+
678
+ .newsletter button {
679
+ border-radius: 0 var(--border-radius) var(--border-radius) 0;
680
+ padding: 12px 16px;
681
+ white-space: nowrap;
682
+ }
683
+
684
+ .footer-bottom {
685
+ max-width: 1200px;
686
+ margin: 0 auto;
687
+ padding-top: 30px;
688
+ display: flex;
689
+ justify-content: space-between;
690
+ align-items: center;
691
+ font-size: 14px;
692
+ color: var(--text-muted);
693
+ }
694
+
695
+ .footer-bottom-links {
696
+ display: flex;
697
+ gap: 24px;
698
+ }
699
+
700
+ .footer-bottom-links a:hover {
701
+ color: white;
702
+ }
703
+
704
+ /* Responsive */
705
+ @media (max-width: 1024px) {
706
+ .hero {
707
+ flex-direction: column;
708
+ gap: 60px;
709
+ text-align: center;
710
+ }
711
+
712
+ .hero-content {
713
+ max-width: 100%;
714
+ }
715
+
716
+ .hero-buttons {
717
+ justify-content: center;
718
+ }
719
+
720
+ .hero-stats {
721
+ justify-content: center;
722
+ }
723
+
724
+ .footer-content {
725
+ grid-template-columns: 1fr;
726
+ gap: 40px;
727
+ }
728
+
729
+ .footer-links {
730
+ grid-template-columns: repeat(3, 1fr);
731
+ }
732
+ }
733
+
734
+ @media (max-width: 768px) {
735
+ .menu-toggle {
736
+ display: block;
737
+ }
738
+
739
+ .nav-links {
740
+ position: fixed;
741
+ top: 70px;
742
+ left: 0;
743
+ right: 0;
744
+ background-color: white;
745
+ flex-direction: column;
746
+ padding: 20px;
747
+ gap: 20px;
748
+ box-shadow: var(--shadow-md);
749
+ transform: translateY(-150%);
750
+ transition: var(--transition);
751
+ z-index: 99;
752
+ }
753
+
754
+ .nav-links.active {
755
+ transform: translateY(0);
756
+ }
757
+
758
+ .hero-content h1 {
759
+ font-size: 36px;
760
+ }
761
+
762
+ .features-grid {
763
+ grid-template-columns: 1fr;
764
+ }
765
+
766
+ .footer-links {
767
+ grid-template-columns: 1fr;
768
+ }
769
+
770
+ .footer-bottom {
771
+ flex-direction: column;
772
+ gap: 20px;
773
+ text-align: center;
774
+ }
775
+ }
776
+
777
+ @media (max-width: 480px) {
778
+ .hero-buttons {
779
+ flex-direction: column;
780
+ width: 100%;
781
+ }
782
+
783
+ .hero-stats {
784
+ flex-direction: column;
785
+ gap: 20px;
786
+ }
787
+
788
+ .hero-content h1 {
789
+ font-size: 30px;
790
+ }
791
+
792
+ .cta-content h2 {
793
+ font-size: 28px;
794
+ }
795
+
796
+ .footer-bottom-links {
797
+ flex-direction: column;
798
+ gap: 10px;
799
+ }
800
+ }
templates/index.html ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>TrueSyncAI | Intelligent Synchronization</title>
7
+ <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css">
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
+ <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Outfit:wght@400;600;800&display=swap" rel="stylesheet">
12
+ </head>
13
+ <body>
14
+ <div class="loading-screen">
15
+ <div class="loader">
16
+ <div class="circle"></div>
17
+ <div class="circle"></div>
18
+ <div class="circle"></div>
19
+ </div>
20
+ <div class="loading-text">TrueSyncAI</div>
21
+ </div>
22
+
23
+ <header>
24
+ <nav>
25
+ <div class="logo">
26
+ <img src="{{ url_for('static', filename='TrueSyncAI.jpg') }}" alt="TrueSyncAI Logo">
27
+ <span>TrueSyncAI</span>
28
+ </div>
29
+ <div class="menu-toggle">
30
+ <i class="fas fa-bars"></i>
31
+ </div>
32
+ <ul class="nav-links">
33
+ <li><a href="#" class="active">Home</a></li>
34
+ <li><a href="#">Features</a></li>
35
+ <li><a href="#">Solutions</a></li>
36
+ <li><a href="#">About</a></li>
37
+ <li><a href="#" class="btn-primary">Get Started</a></li>
38
+ </ul>
39
+ </nav>
40
+ </header>
41
+
42
+ <section class="hero">
43
+ <div class="hero-content">
44
+ <h1>Synchronize Your World With <span class="gradient-text">TrueSyncAI</span></h1>
45
+ <p>Revolutionizing connections with intelligent AI synchronization technology</p>
46
+ <div class="hero-buttons">
47
+ <button class="btn-primary">Try It Now</button>
48
+ <button class="btn-secondary"><i class="fas fa-play-circle"></i> Watch Demo</button>
49
+ </div>
50
+ <div class="hero-stats">
51
+ <div class="stat">
52
+ <span class="stat-number" data-target="98">0</span>%
53
+ <span class="stat-label">Accuracy</span>
54
+ </div>
55
+ <div class="stat">
56
+ <span class="stat-number" data-target="5000">0</span>+
57
+ <span class="stat-label">Users</span>
58
+ </div>
59
+ <div class="stat">
60
+ <span class="stat-number" data-target="24">0</span>/7
61
+ <span class="stat-label">Support</span>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <div class="hero-image">
66
+ <div class="shape"></div>
67
+ <img src="{{ url_for('static', filename='TrueSyncAI.jpg') }}" alt="TrueSyncAI Logo">
68
+ <div class="floating-elements">
69
+ <div class="floating-element"><i class="fas fa-brain"></i></div>
70
+ <div class="floating-element"><i class="fas fa-sync"></i></div>
71
+ <div class="floating-element"><i class="fas fa-robot"></i></div>
72
+ <div class="floating-element"><i class="fas fa-cog"></i></div>
73
+ </div>
74
+ </div>
75
+ </section>
76
+
77
+ <section class="features">
78
+ <h2>Key <span class="gradient-text">Features</span></h2>
79
+ <div class="features-grid">
80
+ <div class="feature-card">
81
+ <div class="feature-icon">
82
+ <i class="fas fa-brain"></i>
83
+ </div>
84
+ <h3>Advanced AI</h3>
85
+ <p>State-of-the-art artificial intelligence that adapts to your needs</p>
86
+ </div>
87
+ <div class="feature-card">
88
+ <div class="feature-icon">
89
+ <i class="fas fa-sync"></i>
90
+ </div>
91
+ <h3>Real-time Sync</h3>
92
+ <p>Seamless synchronization across all your devices in real-time</p>
93
+ </div>
94
+ <div class="feature-card">
95
+ <div class="feature-icon">
96
+ <i class="fas fa-shield-alt"></i>
97
+ </div>
98
+ <h3>Secure</h3>
99
+ <p>Enterprise-grade security for your sensitive data</p>
100
+ </div>
101
+ <div class="feature-card">
102
+ <div class="feature-icon">
103
+ <i class="fas fa-tachometer-alt"></i>
104
+ </div>
105
+ <h3>Fast</h3>
106
+ <p>Lightning-fast performance to keep up with your demands</p>
107
+ </div>
108
+ </div>
109
+ </section>
110
+
111
+ <section class="cta">
112
+ <div class="cta-content">
113
+ <h2>Ready to <span class="gradient-text">Transform</span> Your Experience?</h2>
114
+ <p>Join thousands of satisfied users who have already made the switch to TrueSyncAI</p>
115
+ <button class="btn-primary">Get Started Now</button>
116
+ </div>
117
+ <div class="cta-shapes">
118
+ <div class="shape shape-1"></div>
119
+ <div class="shape shape-2"></div>
120
+ <div class="shape shape-3"></div>
121
+ </div>
122
+ </section>
123
+
124
+ <footer>
125
+ <div class="footer-content">
126
+ <div class="footer-logo">
127
+ <img src="{{ url_for('static', filename='TrueSyncAI.jpg') }}" alt="TrueSyncAI Logo">
128
+ <span>TrueSyncAI</span>
129
+ </div>
130
+ <div class="footer-links">
131
+ <div class="footer-links-column">
132
+ <h4>Product</h4>
133
+ <ul>
134
+ <li><a href="#">Features</a></li>
135
+ <li><a href="#">Pricing</a></li>
136
+ <li><a href="#">Integrations</a></li>
137
+ <li><a href="#">Documentation</a></li>
138
+ </ul>
139
+ </div>
140
+ <div class="footer-links-column">
141
+ <h4>Company</h4>
142
+ <ul>
143
+ <li><a href="#">About Us</a></li>
144
+ <li><a href="#">Careers</a></li>
145
+ <li><a href="#">Blog</a></li>
146
+ <li><a href="#">Contact</a></li>
147
+ </ul>
148
+ </div>
149
+ <div class="footer-links-column">
150
+ <h4>Resources</h4>
151
+ <ul>
152
+ <li><a href="#">Community</a></li>
153
+ <li><a href="#">Help Center</a></li>
154
+ <li><a href="#">Partners</a></li>
155
+ <li><a href="#">Events</a></li>
156
+ </ul>
157
+ </div>
158
+ </div>
159
+ <div class="footer-social">
160
+ <h4>Connect With Us</h4>
161
+ <div class="social-icons">
162
+ <a href="#"><i class="fab fa-twitter"></i></a>
163
+ <a href="#"><i class="fab fa-linkedin"></i></a>
164
+ <a href="#"><i class="fab fa-facebook"></i></a>
165
+ <a href="#"><i class="fab fa-instagram"></i></a>
166
+ </div>
167
+ <div class="newsletter">
168
+ <input type="email" placeholder="Enter your email">
169
+ <button class="btn-primary">Subscribe</button>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ <div class="footer-bottom">
174
+ <p>&copy; 2025 TrueSyncAI. All rights reserved.</p>
175
+ <div class="footer-bottom-links">
176
+ <a href="#">Privacy Policy</a>
177
+ <a href="#">Terms of Service</a>
178
+ <a href="#">Cookies Policy</a>
179
+ </div>
180
+ </div>
181
+ </footer>
182
+
183
+ <script src="{{ url_for('static', filename='script.js') }}"></script>
184
+ </body>
185
+ </html>