dodey917 commited on
Commit
3fa7e5a
·
verified ·
1 Parent(s): 43d15c7

Build a premium, futuristic, fully animated business website named “Nomarddesk” with a straight-line layout design (clean vertical sections stacked from top to bottom).

Browse files

The website must look modern, luxury, and tech-driven, with graphic animation or video effects running in the background.

🎨 DESIGN STYLE & LAYOUT RULE

All sections must follow a single straight vertical layout (no messy card grids).

Each section is:

Full-width

Perfectly aligned

Clean spacing

Centrally positioned content

Background must include:

Animated graphics (floating shapes, moving lines, gradient motion)

Or looping video overlays

No heavy colors.

Use:

Glass-style overlays

Neon highlights

Smooth soft blur effects

Sharp typography

🏠 SECTION STRUCTURE (STRAIGHT LINE FLOW)
1. HERO SECTION

Full-screen hero

Video or animated background

Main title:

Nomarddesk – Digital Growth Engine

Subline:

Innovation | Promotion | Automation | Growth

Services appear as animated changing text:

Telegram Promotion

Telegram Ads

Telegram Bot Development

App Development

Music Marketing

Crypto Marketing

Buttons:

Get Started

View Services

Background animation continues subtly.

2. SERVICES DISPLAY (VERTICAL STRAIGHT STYLE)

Each service appears one after another in a straight scroll format:

Each service block contains:

Service name

Icon (left)

Description (right)

Small animation on hover

Clean divider line between services

3. MOVING BACKGROUND REVIEWS (VERY IMPORTANT)

Create a review section where:

✅ Reviews float horizontally in the background
✅ Stars animate gently
✅ Review names fade in/out
✅ Ratings glow softly

The main foreground:

shows:

What Our Clients Are Saying

While review cards slide behind in a loop.

4. INTERACTIVE REVIEW SYSTEM (FRONT-FACE)

User can:

Choose service from dropdown

Rate by stars:

Our Community

Customer Support

Pricing Value

Service Quality

Recommendation

Submit review

Animations:

Star glow

Smooth transitions

Success animation

5. CONTACT & ORDER FORM

Simple straight-line form:

Name

Email

Select service

Message

Animated submit button
Success message animation with blur fade.

6. FOOTER

Straight line, minimal:

Links

Social icons

Newsletter

Branding

⚙️ TECHNICAL FEATURES

Fully responsive

SEO-ready

Fast load

Lightweight animations

Code:

HTML / CSS / JS

Optional React / GSAP / Three.js animations

🏆 BRAND FEEL TARGET

This site must feel:

Trustworthy

High-class

Clean

Innovative

Powerful

✂️ SHORT VERSION PROMPT

Build a modern animated website called "Nomarddesk" with a straight vertical layout, animated graphic or video background, moving review animations in the background, star rating system, clean service sections, and responsive design. The site should feel luxurious and futuristic.

🎯 EXTRA PROMPT (FOR GRAPHICS BACKGROUND)

If using design AI:

Create animated futuristic graphics for a website background with floating reviews, glowing stars, moving digital lines, and soft gradient motion.

Files changed (7) hide show
  1. README.md +8 -5
  2. components/footer.js +166 -0
  3. components/navbar.js +93 -0
  4. components/review-card.js +102 -0
  5. index.html +473 -19
  6. script.js +244 -0
  7. style.css +164 -19
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Nomarddesk Digital Engine
3
- emoji: 🦀
4
- colorFrom: pink
5
- colorTo: blue
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Nomarddesk Digital Engine
3
+ colorFrom: yellow
4
+ colorTo: pink
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/footer.js ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ background: rgba(255, 255, 255, 0.03);
9
+ backdrop-filter: blur(20px);
10
+ border: 1px solid rgba(255, 255, 255, 0.1);
11
+ box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
12
+ }
13
+
14
+ .footer-container {
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ padding: 3rem 1.5rem 1.5rem;
18
+ }
19
+
20
+ .footer-grid {
21
+ display: grid;
22
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
23
+ gap: 2rem;
24
+ margin-bottom: 2rem;
25
+ }
26
+
27
+ .footer-section h3 {
28
+ font-size: 1.5rem;
29
+ font-weight: bold;
30
+ margin-bottom: 1rem;
31
+ text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
32
+ }
33
+
34
+ .footer-section h4 {
35
+ font-weight: 600;
36
+ margin-bottom: 0.75rem;
37
+ }
38
+
39
+ .footer-section ul {
40
+ list-style: none;
41
+ padding: 0;
42
+ margin: 0;
43
+ }
44
+
45
+ .footer-section ul li {
46
+ margin-bottom: 0.5rem;
47
+ }
48
+
49
+ .footer-section a {
50
+ color: #9ca3af;
51
+ text-decoration: none;
52
+ transition: color 0.3s;
53
+ }
54
+
55
+ .footer-section a:hover {
56
+ color: #00ffff;
57
+ }
58
+
59
+ .newsletter-form {
60
+ display: flex;
61
+ gap: 0.5rem;
62
+ }
63
+
64
+ .newsletter-input {
65
+ flex: 1;
66
+ padding: 0.5rem;
67
+ border-radius: 0.5rem;
68
+ background: #1f2937;
69
+ border: 1px solid #374151;
70
+ color: white;
71
+ }
72
+
73
+ .newsletter-button {
74
+ padding: 0.5rem;
75
+ border-radius: 0.5rem;
76
+ background: #00ffff;
77
+ border: none;
78
+ cursor: pointer;
79
+ transition: background 0.3s;
80
+ }
81
+
82
+ .newsletter-button:hover {
83
+ background: #00cccc;
84
+ }
85
+
86
+ .social-links {
87
+ display: flex;
88
+ gap: 1rem;
89
+ margin-top: 1.5rem;
90
+ }
91
+
92
+ .social-links a {
93
+ color: #9ca3af;
94
+ transition: color 0.3s;
95
+ }
96
+
97
+ .social-links a:hover {
98
+ color: #00ffff;
99
+ }
100
+
101
+ .footer-bottom {
102
+ border-top: 1px solid #374151;
103
+ padding-top: 2rem;
104
+ text-align: center;
105
+ color: #9ca3af;
106
+ }
107
+ </style>
108
+
109
+ <footer>
110
+ <div class="footer-container">
111
+ <div class="footer-grid">
112
+ <div class="footer-section">
113
+ <h3>Nomarddesk</h3>
114
+ <p>Your Digital Growth Partner</p>
115
+ </div>
116
+
117
+ <div class="footer-section">
118
+ <h4>Services</h4>
119
+ <ul>
120
+ <li><a href="#">Telegram Promotion</a></li>
121
+ <li><a href="#">App Development</a></li>
122
+ <li><a href="#">Crypto Marketing</a></li>
123
+ </ul>
124
+ </div>
125
+
126
+ <div class="footer-section">
127
+ <h4>Company</h4>
128
+ <ul>
129
+ <li><a href="#">About Us</a></li>
130
+ <li><a href="#">Contact</a></li>
131
+ <li><a href="#">Blog</a></li>
132
+ </ul>
133
+ </div>
134
+
135
+ <div class="footer-section">
136
+ <h4>Newsletter</h4>
137
+ <div class="newsletter-form">
138
+ <input type="email" class="newsletter-input" placeholder="Your email">
139
+ <button class="newsletter-button">
140
+ <i data-feather="send" style="width: 16px; height: 16px;"></i>
141
+ </button>
142
+ </div>
143
+ <div class="social-links">
144
+ <a href="#"><i data-feather="twitter"></i></a>
145
+ <a href="#"><i data-feather="linkedin"></i></a>
146
+ <a href="#"><i data-feather="github"></i></a>
147
+ <a href="#"><i data-feather="instagram"></i></a>
148
+ </div>
149
+ </div>
150
+ </div>
151
+
152
+ <div class="footer-bottom">
153
+ <p>&copy; 2024 Nomarddesk. All rights reserved.</p>
154
+ </div>
155
+ </div>
156
+ </footer>
157
+ `;
158
+
159
+ // Initialize feather icons in shadow DOM
160
+ setTimeout(() => {
161
+ feather.replace();
162
+ }, 0);
163
+ }
164
+ }
165
+
166
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ width: 100%;
9
+ position: fixed;
10
+ top: 0;
11
+ z-index: 1000;
12
+ background: rgba(255, 255, 255, 0.05);
13
+ backdrop-filter: blur(10px);
14
+ border: 1px solid rgba(255, 255, 255, 0.1);
15
+ }
16
+
17
+ .nav-container {
18
+ max-width: 1280px;
19
+ margin: 0 auto;
20
+ padding: 1rem 1.5rem;
21
+ display: flex;
22
+ justify-content: space-between;
23
+ align-items: center;
24
+ }
25
+
26
+ .logo {
27
+ font-size: 1.5rem;
28
+ font-weight: bold;
29
+ text-shadow: 0 0 10px rgba(0, 255, 255, 0.8),
30
+ 0 0 20px rgba(0, 255, 255, 0.6),
31
+ 0 0 30px rgba(0, 255, 255, 0.4);
32
+ }
33
+
34
+ .nav-links {
35
+ display: flex;
36
+ gap: 2rem;
37
+ list-style: none;
38
+ margin: 0;
39
+ padding: 0;
40
+ }
41
+
42
+ .nav-links a {
43
+ color: white;
44
+ text-decoration: none;
45
+ transition: color 0.3s;
46
+ }
47
+
48
+ .nav-links a:hover {
49
+ color: #00ffff;
50
+ }
51
+
52
+ .mobile-menu-btn {
53
+ display: none;
54
+ background: none;
55
+ border: none;
56
+ color: white;
57
+ cursor: pointer;
58
+ }
59
+
60
+ @media (max-width: 768px) {
61
+ .nav-links {
62
+ display: none;
63
+ }
64
+
65
+ .mobile-menu-btn {
66
+ display: block;
67
+ }
68
+ }
69
+ </style>
70
+
71
+ <nav>
72
+ <div class="nav-container">
73
+ <div class="logo">
74
+ <a href="#home">Nomarddesk</a>
75
+ </div>
76
+
77
+ <ul class="nav-links">
78
+ <li><a href="#home">Home</a></li>
79
+ <li><a href="#services">Services</a></li>
80
+ <li><a href="#reviews">Reviews</a></li>
81
+ <li><a href="#contact">Contact</a></li>
82
+ </ul>
83
+
84
+ <button class="mobile-menu-btn">
85
+ <i data-feather="menu"></i>
86
+ </button>
87
+ </div>
88
+ </nav>
89
+ `;
90
+ }
91
+ }
92
+
93
+ customElements.define('custom-navbar', CustomNavbar);
components/review-card.js ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class ReviewCard extends HTMLElement {
2
+ connectedCallback() {
3
+ const name = this.getAttribute('name') || 'Anonymous';
4
+ const rating = parseInt(this.getAttribute('rating')) || 5;
5
+ const text = this.getAttribute('text') || 'Great service!';
6
+ const service = this.getAttribute('service') || 'Service';
7
+
8
+ this.attachShadow({ mode: 'open' });
9
+ this.shadowRoot.innerHTML = `
10
+ <style>
11
+ :host {
12
+ display: block;
13
+ background: rgba(255, 255, 255, 0.05);
14
+ backdrop-filter: blur(10px);
15
+ border: 1px solid rgba(255, 255, 255, 0.1);
16
+ border-radius: 0.75rem;
17
+ padding: 1.5rem;
18
+ margin: 1rem;
19
+ min-width: 300px;
20
+ transition: transform 0.3s ease;
21
+ }
22
+
23
+ :host:hover {
24
+ transform: translateY(-5px);
25
+ box-shadow: 0 20px 40px rgba(0, 255, 255, 0.2);
26
+ }
27
+
28
+ .review-header {
29
+ display: flex;
30
+ justify-content: space-between;
31
+ align-items: center;
32
+ margin-bottom: 0.75rem;
33
+ }
34
+
35
+ .review-name {
36
+ font-weight: 600;
37
+ color: white;
38
+ }
39
+
40
+ .review-service {
41
+ font-size: 0.875rem;
42
+ color: #9ca3af;
43
+ }
44
+
45
+ .rating {
46
+ display: flex;
47
+ gap: 0.25rem;
48
+ }
49
+
50
+ .star {
51
+ filter: drop-shadow(0 0 3px #ffd700);
52
+ }
53
+
54
+ .review-text {
55
+ color: #e5e7eb;
56
+ margin-bottom: 0.5rem;
57
+ }
58
+
59
+ .review-date {
60
+ font-size: 0.875rem;
61
+ color: #6b7280;
62
+ }
63
+ </style>
64
+
65
+ <div class="review-card">
66
+ <div class="review-header">
67
+ <div>
68
+ <div class="review-name">${name}</div>
69
+ <div class="review-service">${service}</div>
70
+ </div>
71
+ <div class="rating">
72
+ ${this.generateStars(rating)}
73
+ </div>
74
+ </div>
75
+ <div class="review-text">"${text}"</div>
76
+ <div class="review-date">${this.generateDate()}</div>
77
+ </div>
78
+ `;
79
+ }
80
+
81
+ generateStars(rating) {
82
+ let stars = '';
83
+ for (let i = 0; i < 5; i++) {
84
+ if (i < rating) {
85
+ stars += '<i data-feather="star" class="star" style="color: #ffd700; width: 16px; height: 16px;"></i>';
86
+ } else {
87
+ stars += '<i data-feather="star" style="color: #374151; width: 16px; height: 16px;"></i>';
88
+ }
89
+ }
90
+ return stars;
91
+ }
92
+
93
+ generateDate() {
94
+ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
95
+ const date = new Date();
96
+ const month = months[date.getMonth()];
97
+ const year = date.getFullYear();
98
+ return `${month} ${year}`;
99
+ }
100
+ }
101
+
102
+ customElements.define('review-card', ReviewCard);
index.html CHANGED
@@ -1,19 +1,473 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Nomarddesk - Digital Growth Engine</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <link rel="stylesheet" href="style.css">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
14
+ * {
15
+ font-family: 'Inter', sans-serif;
16
+ }
17
+ .glass-morphism {
18
+ background: rgba(255, 255, 255, 0.05);
19
+ backdrop-filter: blur(10px);
20
+ border: 1px solid rgba(255, 255, 255, 0.1);
21
+ }
22
+ .neon-glow {
23
+ text-shadow: 0 0 10px rgba(0, 255, 255, 0.8),
24
+ 0 0 20px rgba(0, 255, 255, 0.6),
25
+ 0 0 30px rgba(0, 255, 255, 0.4);
26
+ }
27
+ .neon-border {
28
+ box-shadow: 0 0 20px rgba(0, 255, 255, 0.5),
29
+ inset 0 0 20px rgba(0, 255, 255, 0.1);
30
+ }
31
+ @keyframes float {
32
+ 0%, 100% { transform: translateY(0px); }
33
+ 50% { transform: translateY(-20px); }
34
+ }
35
+ @keyframes slide {
36
+ 0% { transform: translateX(-100%); }
37
+ 100% { transform: translateX(100%); }
38
+ }
39
+ @keyframes pulse {
40
+ 0%, 100% { opacity: 0.3; }
41
+ 50% { opacity: 0.8; }
42
+ }
43
+ @keyframes gradient {
44
+ 0% { background-position: 0% 50%; }
45
+ 50% { background-position: 100% 50%; }
46
+ 100% { background-position: 0% 50%; }
47
+ }
48
+ .animated-gradient {
49
+ background: linear-gradient(-45deg, #1a1a2e, #16213e, #0f3460, #533483);
50
+ background-size: 400% 400%;
51
+ animation: gradient 15s ease infinite;
52
+ }
53
+ .floating-shape {
54
+ position: absolute;
55
+ opacity: 0.1;
56
+ animation: float 6s ease-in-out infinite;
57
+ }
58
+ .review-scroll {
59
+ animation: slide 20s linear infinite;
60
+ }
61
+ .star-glow {
62
+ filter: drop-shadow(0 0 3px #ffd700);
63
+ }
64
+ </style>
65
+ </head>
66
+ <body class="bg-gray-900 text-white overflow-x-hidden">
67
+ <!-- Animated Background -->
68
+ <div class="fixed inset-0 animated-gradient -z-10">
69
+ <div class="floating-shape w-64 h-64 bg-cyan-500 rounded-full blur-3xl top-10 left-10"></div>
70
+ <div class="floating-shape w-96 h-96 bg-purple-500 rounded-full blur-3xl bottom-10 right-10" style="animation-delay: 2s;"></div>
71
+ <div class="floating-shape w-48 h-48 bg-pink-500 rounded-full blur-3xl top-1/2 left-1/3" style="animation-delay: 4s;"></div>
72
+ <div class="floating-shape w-72 h-72 bg-blue-500 rounded-full blur-3xl bottom-1/3 right-1/4" style="animation-delay: 1s;"></div>
73
+
74
+ <!-- Animated Lines -->
75
+ <div class="absolute inset-0 overflow-hidden">
76
+ <div class="absolute h-px bg-gradient-to-r from-transparent via-cyan-500 to-transparent w-full opacity-30" style="top: 20%; animation: pulse 3s ease-in-out infinite;"></div>
77
+ <div class="absolute h-px bg-gradient-to-r from-transparent via-purple-500 to-transparent w-full opacity-30" style="top: 50%; animation: pulse 3s ease-in-out infinite; animation-delay: 1s;"></div>
78
+ <div class="absolute h-px bg-gradient-to-r from-transparent via-pink-500 to-transparent w-full opacity-30" style="top: 80%; animation: pulse 3s ease-in-out infinite; animation-delay: 2s;"></div>
79
+ </div>
80
+ </div>
81
+
82
+ <!-- Navigation -->
83
+ <nav class="glass-morphism fixed w-full z-50 px-6 py-4">
84
+ <div class="max-w-7xl mx-auto flex justify-between items-center">
85
+ <div class="text-2xl font-bold neon-glow">Nomarddesk</div>
86
+ <div class="hidden md:flex space-x-8">
87
+ <a href="#home" class="hover:text-cyan-400 transition">Home</a>
88
+ <a href="#services" class="hover:text-cyan-400 transition">Services</a>
89
+ <a href="#reviews" class="hover:text-cyan-400 transition">Reviews</a>
90
+ <a href="#contact" class="hover:text-cyan-400 transition">Contact</a>
91
+ </div>
92
+ <button class="md:hidden" id="mobileMenuBtn">
93
+ <i data-feather="menu"></i>
94
+ </button>
95
+ </div>
96
+ </nav>
97
+
98
+ <!-- Hero Section -->
99
+ <section id="home" class="min-h-screen flex items-center justify-center px-6 pt-20">
100
+ <div class="max-w-4xl text-center">
101
+ <h1 class="text-5xl md:text-7xl font-bold mb-6 neon-glow">
102
+ Nomarddesk<br>
103
+ <span class="text-3xl md:text-5xl bg-gradient-to-r from-cyan-400 to-purple-400 bg-clip-text text-transparent">
104
+ Digital Growth Engine
105
+ </span>
106
+ </h1>
107
+ <div class="text-lg md:text-xl mb-8 text-gray-300">
108
+ Innovation | Promotion | Automation | Growth
109
+ </div>
110
+ <div class="h-12 mb-8">
111
+ <div id="serviceText" class="text-2xl md:text-3xl font-semibold text-cyan-400 transition-all duration-500">
112
+ Telegram Promotion
113
+ </div>
114
+ </div>
115
+ <div class="flex flex-col md:flex-row gap-4 justify-center">
116
+ <button class="glass-morphism px-8 py-3 rounded-full hover:bg-cyan-500/20 transition neon-border">
117
+ Get Started
118
+ </button>
119
+ <button class="glass-morphism px-8 py-3 rounded-full hover:bg-purple-500/20 transition">
120
+ View Services
121
+ </button>
122
+ </div>
123
+ </div>
124
+ </section>
125
+
126
+ <!-- Services Section -->
127
+ <section id="services" class="py-20 px-6">
128
+ <div class="max-w-4xl mx-auto">
129
+ <h2 class="text-4xl font-bold text-center mb-16 neon-glow">Our Services</h2>
130
+
131
+ <div class="space-y-8">
132
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
133
+ <div class="flex items-start gap-4">
134
+ <div class="text-cyan-400 group-hover:scale-110 transition-transform">
135
+ <i data-feather="send" class="w-8 h-8"></i>
136
+ </div>
137
+ <div class="flex-1">
138
+ <h3 class="text-2xl font-semibold mb-2">Telegram Promotion</h3>
139
+ <p class="text-gray-300">Boost your Telegram channel growth with our advanced promotion strategies and organic reach techniques.</p>
140
+ </div>
141
+ </div>
142
+ </div>
143
+
144
+ <div class="border-t border-gray-700"></div>
145
+
146
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
147
+ <div class="flex items-start gap-4">
148
+ <div class="text-purple-400 group-hover:scale-110 transition-transform">
149
+ <i data-feather="target" class="w-8 h-8"></i>
150
+ </div>
151
+ <div class="flex-1">
152
+ <h3 class="text-2xl font-semibold mb-2">Telegram Ads</h3>
153
+ <p class="text-gray-300">Reach millions of targeted users with our specialized Telegram advertising campaigns.</p>
154
+ </div>
155
+ </div>
156
+ </div>
157
+
158
+ <div class="border-t border-gray-700"></div>
159
+
160
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
161
+ <div class="flex items-start gap-4">
162
+ <div class="text-pink-400 group-hover:scale-110 transition-transform">
163
+ <i data-feather="cpu" class="w-8 h-8"></i>
164
+ </div>
165
+ <div class="flex-1">
166
+ <h3 class="text-2xl font-semibold mb-2">Telegram Bot Development</h3>
167
+ <p class="text-gray-300">Custom Telegram bots to automate your business processes and enhance user engagement.</p>
168
+ </div>
169
+ </div>
170
+ </div>
171
+
172
+ <div class="border-t border-gray-700"></div>
173
+
174
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
175
+ <div class="flex items-start gap-4">
176
+ <div class="text-blue-400 group-hover:scale-110 transition-transform">
177
+ <i data-feather="smartphone" class="w-8 h-8"></i>
178
+ </div>
179
+ <div class="flex-1">
180
+ <h3 class="text-2xl font-semibold mb-2">App Development</h3>
181
+ <p class="text-gray-300">Cutting-edge mobile applications tailored to your business needs and user requirements.</p>
182
+ </div>
183
+ </div>
184
+ </div>
185
+
186
+ <div class="border-t border-gray-700"></div>
187
+
188
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
189
+ <div class="flex items-start gap-4">
190
+ <div class="text-green-400 group-hover:scale-110 transition-transform">
191
+ <i data-feather="music" class="w-8 h-8"></i>
192
+ </div>
193
+ <div class="flex-1">
194
+ <h3 class="text-2xl font-semibold mb-2">Music Marketing</h3>
195
+ <p class="text-gray-300">Promote your music across platforms and grow your audience with our strategic marketing campaigns.</p>
196
+ </div>
197
+ </div>
198
+ </div>
199
+
200
+ <div class="border-t border-gray-700"></div>
201
+
202
+ <div class="glass-morphism p-6 rounded-lg hover:scale-105 transition-transform duration-300 group">
203
+ <div class="flex items-start gap-4">
204
+ <div class="text-yellow-400 group-hover:scale-110 transition-transform">
205
+ <i data-feather="trending-up" class="w-8 h-8"></i>
206
+ </div>
207
+ <div class="flex-1">
208
+ <h3 class="text-2xl font-semibold mb-2">Crypto Marketing</h3>
209
+ <p class="text-gray-300">Strategic marketing solutions for crypto projects to reach the right audience and drive adoption.</p>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </section>
216
+
217
+ <!-- Moving Background Reviews Section -->
218
+ <section id="reviews" class="relative py-20 px-6 overflow-hidden">
219
+ <div class="absolute inset-0 opacity-20">
220
+ <div class="review-scroll flex whitespace-nowrap">
221
+ <div class="glass-morphism mx-4 p-4 rounded-lg min-w-[300px]">
222
+ <div class="flex items-center gap-1 mb-2">
223
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
224
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
225
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
226
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
227
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
228
+ </div>
229
+ <p class="text-sm">"Outstanding service!"</p>
230
+ <p class="text-xs text-gray-400">- Alex Chen</p>
231
+ </div>
232
+ <div class="glass-morphism mx-4 p-4 rounded-lg min-w-[300px]">
233
+ <div class="flex items-center gap-1 mb-2">
234
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
235
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
236
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
237
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
238
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
239
+ </div>
240
+ <p class="text-sm">"Exceeded all expectations!"</p>
241
+ <p class="text-xs text-gray-400">- Sarah Miller</p>
242
+ </div>
243
+ <div class="glass-morphism mx-4 p-4 rounded-lg min-w-[300px]">
244
+ <div class="flex items-center gap-1 mb-2">
245
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
246
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
247
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
248
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
249
+ <i data-feather="star" class="w-4 h-4 text-yellow-400 star-glow"></i>
250
+ </div>
251
+ <p class="text-sm">"Professional and reliable!"</p>
252
+ <p class="text-xs text-gray-400">- Mike Johnson</p>
253
+ </div>
254
+ </div>
255
+ </div>
256
+
257
+ <div class="relative z-10 max-w-4xl mx-auto text-center">
258
+ <h2 class="text-4xl font-bold mb-8 neon-glow">What Our Clients Are Saying</h2>
259
+ <div class="glass-morphism p-8 rounded-xl neon-border">
260
+ <div class="text-6xl mb-4 text-cyan-400">
261
+ <i data-feather="message-circle"></i>
262
+ </div>
263
+ <p class="text-xl text-gray-300 mb-6">Join thousands of satisfied clients who have transformed their business with Nomarddesk</p>
264
+ <div class="flex justify-center gap-2">
265
+ <i data-feather="star" class="w-6 h-6 text-yellow-400 star-glow"></i>
266
+ <i data-feather="star" class="w-6 h-6 text-yellow-400 star-glow"></i>
267
+ <i data-feather="star" class="w-6 h-6 text-yellow-400 star-glow"></i>
268
+ <i data-feather="star" class="w-6 h-6 text-yellow-400 star-glow"></i>
269
+ <i data-feather="star" class="w-6 h-6 text-yellow-400 star-glow"></i>
270
+ <span class="ml-2 text-lg">4.9/5 Average Rating</span>
271
+ </div>
272
+ </div>
273
+ </div>
274
+ </section>
275
+
276
+ <!-- Interactive Review System -->
277
+ <section class="py-20 px-6">
278
+ <div class="max-w-2xl mx-auto">
279
+ <h2 class="text-4xl font-bold text-center mb-12 neon-glow">Share Your Experience</h2>
280
+
281
+ <form id="reviewForm" class="glass-morphism p-8 rounded-xl neon-border space-y-6">
282
+ <div>
283
+ <label class="block mb-2 text-gray-300">Select Service</label>
284
+ <select class="w-full p-3 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none">
285
+ <option>Telegram Promotion</option>
286
+ <option>Telegram Ads</option>
287
+ <option>Telegram Bot Development</option>
288
+ <option>App Development</option>
289
+ <option>Music Marketing</option>
290
+ <option>Crypto Marketing</option>
291
+ </select>
292
+ </div>
293
+
294
+ <div class="space-y-4">
295
+ <div class="flex items-center justify-between">
296
+ <span class="text-gray-300">Our Community</span>
297
+ <div class="rating-stars flex gap-1" data-rating="community">
298
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
299
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
300
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
301
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
302
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
303
+ </div>
304
+ </div>
305
+
306
+ <div class="flex items-center justify-between">
307
+ <span class="text-gray-300">Customer Support</span>
308
+ <div class="rating-stars flex gap-1" data-rating="support">
309
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
310
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
311
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
312
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
313
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
314
+ </div>
315
+ </div>
316
+
317
+ <div class="flex items-center justify-between">
318
+ <span class="text-gray-300">Pricing Value</span>
319
+ <div class="rating-stars flex gap-1" data-rating="pricing">
320
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
321
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
322
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
323
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
324
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
325
+ </div>
326
+ </div>
327
+
328
+ <div class="flex items-center justify-between">
329
+ <span class="text-gray-300">Service Quality</span>
330
+ <div class="rating-stars flex gap-1" data-rating="quality">
331
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
332
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
333
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
334
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
335
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
336
+ </div>
337
+ </div>
338
+
339
+ <div class="flex items-center justify-between">
340
+ <span class="text-gray-300">Recommendation</span>
341
+ <div class="rating-stars flex gap-1" data-rating="recommendation">
342
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
343
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
344
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
345
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
346
+ <i data-feather="star" class="w-6 h-6 cursor-pointer hover:text-yellow-400 text-gray-600"></i>
347
+ </div>
348
+ </div>
349
+ </div>
350
+
351
+ <button type="submit" class="w-full glass-morphism py-3 rounded-lg hover:bg-cyan-500/20 transition neon-border font-semibold">
352
+ Submit Review
353
+ </button>
354
+ </form>
355
+
356
+ <div id="successMessage" class="hidden mt-6 glass-morphism p-6 rounded-xl border border-green-500 text-center">
357
+ <i data-feather="check-circle" class="w-12 h-12 text-green-400 mx-auto mb-3"></i>
358
+ <p class="text-green-400 font-semibold">Thank you for your review!</p>
359
+ </div>
360
+ </div>
361
+ </section>
362
+
363
+ <!-- Contact & Order Form -->
364
+ <section id="contact" class="py-20 px-6">
365
+ <div class="max-w-2xl mx-auto">
366
+ <h2 class="text-4xl font-bold text-center mb-12 neon-glow">Get Started Today</h2>
367
+
368
+ <form id="contactForm" class="glass-morphism p-8 rounded-xl neon-border space-y-6">
369
+ <div>
370
+ <label class="block mb-2 text-gray-300">Name</label>
371
+ <input type="text" class="w-full p-3 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none" placeholder="John Doe">
372
+ </div>
373
+
374
+ <div>
375
+ <label class="block mb-2 text-gray-300">Email</label>
376
+ <input type="email" class="w-full p-3 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none" placeholder="john@example.com">
377
+ </div>
378
+
379
+ <div>
380
+ <label class="block mb-2 text-gray-300">Select Service</label>
381
+ <select class="w-full p-3 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none">
382
+ <option>Choose a service...</option>
383
+ <option>Telegram Promotion</option>
384
+ <option>Telegram Ads</option>
385
+ <option>Telegram Bot Development</option>
386
+ <option>App Development</option>
387
+ <option>Music Marketing</option>
388
+ <option>Crypto Marketing</option>
389
+ </select>
390
+ </div>
391
+
392
+ <div>
393
+ <label class="block mb-2 text-gray-300">Message</label>
394
+ <textarea class="w-full p-3 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none h-32" placeholder="Tell us about your project..."></textarea>
395
+ </div>
396
+
397
+ <button type="submit" class="w-full bg-gradient-to-r from-cyan-500 to-purple-500 py-3 rounded-lg hover:from-cyan-600 hover:to-purple-600 transition font-semibold">
398
+ Send Message
399
+ </button>
400
+ </form>
401
+
402
+ <div id="contactSuccess" class="hidden mt-6 glass-morphism p-6 rounded-xl border border-green-500 text-center">
403
+ <i data-feather="check-circle" class="w-12 h-12 text-green-400 mx-auto mb-3"></i>
404
+ <p class="text-green-400 font-semibold">Message sent successfully!</p>
405
+ <p class="text-gray-400 text-sm mt-2">We'll get back to you within 24 hours.</p>
406
+ </div>
407
+ </div>
408
+ </section>
409
+
410
+ <!-- Footer -->
411
+ <footer class="glass-morphism py-12 px-6 mt-20">
412
+ <div class="max-w-6xl mx-auto">
413
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-8">
414
+ <div>
415
+ <h3 class="text-2xl font-bold mb-4 neon-glow">Nomarddesk</h3>
416
+ <p class="text-gray-400">Your Digital Growth Partner</p>
417
+ </div>
418
+
419
+ <div>
420
+ <h4 class="font-semibold mb-3">Services</h4>
421
+ <ul class="space-y-2 text-gray-400">
422
+ <li><a href="#" class="hover:text-cyan-400 transition">Telegram Promotion</a></li>
423
+ <li><a href="#" class="hover:text-cyan-400 transition">App Development</a></li>
424
+ <li><a href="#" class="hover:text-cyan-400 transition">Crypto Marketing</a></li>
425
+ </ul>
426
+ </div>
427
+
428
+ <div>
429
+ <h4 class="font-semibold mb-3">Company</h4>
430
+ <ul class="space-y-2 text-gray-400">
431
+ <li><a href="#" class="hover:text-cyan-400 transition">About Us</a></li>
432
+ <li><a href="#" class="hover:text-cyan-400 transition">Contact</a></li>
433
+ <li><a href="#" class="hover:text-cyan-400 transition">Blog</a></li>
434
+ </ul>
435
+ </div>
436
+
437
+ <div>
438
+ <h4 class="font-semibold mb-3">Newsletter</h4>
439
+ <div class="flex gap-2">
440
+ <input type="email" placeholder="Your email" class="flex-1 p-2 rounded-lg bg-gray-800 border border-gray-700 focus:border-cyan-400 focus:outline-none">
441
+ <button class="px-4 py-2 bg-cyan-500 rounded-lg hover:bg-cyan-600 transition">
442
+ <i data-feather="send" class="w-4 h-4"></i>
443
+ </button>
444
+ </div>
445
+
446
+ <div class="flex gap-4 mt-6">
447
+ <a href="#" class="text-gray-400 hover:text-cyan-400 transition">
448
+ <i data-feather="twitter"></i>
449
+ </a>
450
+ <a href="#" class="text-gray-400 hover:text-cyan-400 transition">
451
+ <i data-feather="linkedin"></i>
452
+ </a>
453
+ <a href="#" class="text-gray-400 hover:text-cyan-400 transition">
454
+ <i data-feather="github"></i>
455
+ </a>
456
+ <a href="#" class="text-gray-400 hover:text-cyan-400 transition">
457
+ <i data-feather="instagram"></i>
458
+ </a>
459
+ </div>
460
+ </div>
461
+ </div>
462
+
463
+ <div class="border-t border-gray-700 pt-8 text-center text-gray-400">
464
+ <p>&copy; 2024 Nomarddesk. All rights reserved.</p>
465
+ </div>
466
+ </div>
467
+ </footer>
468
+
469
+ <script src="script.js"></script>
470
+ <script>feather.replace();</script>
471
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
472
+ </body>
473
+ </html>
script.js ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Service text rotation
2
+ const services = [
3
+ "Telegram Promotion",
4
+ "Telegram Ads",
5
+ "Telegram Bot Development",
6
+ "App Development",
7
+ "Music Marketing",
8
+ "Crypto Marketing"
9
+ ];
10
+
11
+ let currentServiceIndex = 0;
12
+ const serviceTextElement = document.getElementById('serviceText');
13
+
14
+ function rotateServices() {
15
+ currentServiceIndex = (currentServiceIndex + 1) % services.length;
16
+ serviceTextElement.style.opacity = '0';
17
+
18
+ setTimeout(() => {
19
+ serviceTextElement.textContent = services[currentServiceIndex];
20
+ serviceTextElement.style.opacity = '1';
21
+ }, 500);
22
+ }
23
+
24
+ setInterval(rotateServices, 3000);
25
+
26
+ // Smooth scroll for navigation links
27
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
28
+ anchor.addEventListener('click', function (e) {
29
+ e.preventDefault();
30
+ const target = document.querySelector(this.getAttribute('href'));
31
+ if (target) {
32
+ target.scrollIntoView({
33
+ behavior: 'smooth',
34
+ block: 'start'
35
+ });
36
+ }
37
+ });
38
+ });
39
+
40
+ // Mobile menu toggle
41
+ const mobileMenuBtn = document.getElementById('mobileMenuBtn');
42
+ if (mobileMenuBtn) {
43
+ mobileMenuBtn.addEventListener('click', function() {
44
+ // Toggle mobile menu (implementation depends on design)
45
+ console.log('Mobile menu toggled');
46
+ });
47
+ }
48
+
49
+ // Star rating system
50
+ document.querySelectorAll('.rating-stars').forEach(ratingGroup => {
51
+ const stars = ratingGroup.querySelectorAll('i');
52
+ let rating = 0;
53
+
54
+ stars.forEach((star, index) => {
55
+ star.addEventListener('click', () => {
56
+ rating = index + 1;
57
+ updateStars();
58
+ });
59
+
60
+ star.addEventListener('mouseenter', () => {
61
+ stars.forEach((s, i) => {
62
+ if (i <= index) {
63
+ s.classList.add('text-yellow-400');
64
+ s.classList.remove('text-gray-600');
65
+ } else {
66
+ s.classList.remove('text-yellow-400');
67
+ s.classList.add('text-gray-600');
68
+ }
69
+ });
70
+ });
71
+ });
72
+
73
+ ratingGroup.addEventListener('mouseleave', updateStars);
74
+
75
+ function updateStars() {
76
+ stars.forEach((s, i) => {
77
+ if (i < rating) {
78
+ s.classList.add('text-yellow-400', 'star-glow');
79
+ s.classList.remove('text-gray-600');
80
+ } else {
81
+ s.classList.remove('text-yellow-400', 'star-glow');
82
+ s.classList.add('text-gray-600');
83
+ }
84
+ });
85
+ }
86
+ });
87
+
88
+ // Review form submission
89
+ document.getElementById('reviewForm').addEventListener('submit', function(e) {
90
+ e.preventDefault();
91
+
92
+ // Show success message
93
+ const successMessage = document.getElementById('successMessage');
94
+ successMessage.classList.remove('hidden');
95
+ successMessage.classList.add('success-checkmark');
96
+
97
+ // Reset form
98
+ this.reset();
99
+
100
+ // Reset all stars
101
+ document.querySelectorAll('.rating-stars i').forEach(star => {
102
+ star.classList.remove('text-yellow-400', 'star-glow');
103
+ star.classList.add('text-gray-600');
104
+ });
105
+
106
+ // Hide success message after 5 seconds
107
+ setTimeout(() => {
108
+ successMessage.classList.add('hidden');
109
+ }, 5000);
110
+ });
111
+
112
+ // Contact form submission
113
+ document.getElementById('contactForm').addEventListener('submit', function(e) {
114
+ e.preventDefault();
115
+
116
+ // Show loading state
117
+ const submitBtn = this.querySelector('button[type="submit"]');
118
+ const originalText = submitBtn.innerHTML;
119
+ submitBtn.innerHTML = '<div class="loading-spinner mx-auto"></div>';
120
+ submitBtn.disabled = true;
121
+
122
+ // Simulate form submission
123
+ setTimeout(() => {
124
+ // Show success message
125
+ const successMessage = document.getElementById('contactSuccess');
126
+ successMessage.classList.remove('hidden');
127
+ successMessage.classList.add('success-checkmark');
128
+
129
+ // Reset form and button
130
+ this.reset();
131
+ submitBtn.innerHTML = originalText;
132
+ submitBtn.disabled = false;
133
+
134
+ // Hide success message after 5 seconds
135
+ setTimeout(() => {
136
+ successMessage.classList.add('hidden');
137
+ }, 5000);
138
+ }, 1500);
139
+ });
140
+
141
+ // Intersection Observer for fade-in animations
142
+ const observerOptions = {
143
+ threshold: 0.1,
144
+ rootMargin: '0px 0px -50px 0px'
145
+ };
146
+
147
+ const observer = new IntersectionObserver((entries) => {
148
+ entries.forEach(entry => {
149
+ if (entry.isIntersecting) {
150
+ entry.target.classList.add('animate-slide-up');
151
+ entry.target.style.opacity = '1';
152
+ }
153
+ });
154
+ }, observerOptions);
155
+
156
+ // Observe all service cards and sections
157
+ document.querySelectorAll('.glass-morphism').forEach(el => {
158
+ el.style.opacity = '0';
159
+ observer.observe(el);
160
+ });
161
+
162
+ // Add parallax effect to floating shapes
163
+ window.addEventListener('scroll', () => {
164
+ const scrolled = window.pageYOffset;
165
+ const shapes = document.querySelectorAll('.floating-shape');
166
+
167
+ shapes.forEach((shape, index) => {
168
+ const speed = 1 + (index * 0.5);
169
+ shape.style.transform = `translateY(${scrolled * speed * 0.1}px)`;
170
+ });
171
+ });
172
+
173
+ // Add hover effect to service cards
174
+ document.querySelectorAll('.glass-morphism').forEach(card => {
175
+ card.addEventListener('mouseenter', function() {
176
+ this.classList.add('hover-lift');
177
+ });
178
+
179
+ card.addEventListener('mouseleave', function() {
180
+ this.classList.remove('hover-lift');
181
+ });
182
+ });
183
+
184
+ // Dynamic year in footer
185
+ const yearElement = document.querySelector('footer p');
186
+ if (yearElement && yearElement.textContent.includes('2024')) {
187
+ yearElement.innerHTML = yearElement.innerHTML.replace('2024', new Date().getFullYear());
188
+ }
189
+
190
+ // Newsletter subscription
191
+ document.querySelector('footer button')?.addEventListener('click', function(e) {
192
+ e.preventDefault();
193
+ const emailInput = this.previousElementSibling;
194
+ if (emailInput && emailInput.value) {
195
+ // Simulate subscription
196
+ emailInput.value = '';
197
+ emailInput.placeholder = 'Subscribed! ✓';
198
+ setTimeout(() => {
199
+ emailInput.placeholder = 'Your email';
200
+ }, 3000);
201
+ }
202
+ });
203
+
204
+ // Add keyboard navigation
205
+ document.addEventListener('keydown', (e) => {
206
+ if (e.key === 'Escape') {
207
+ // Close any open modals or menus
208
+ document.querySelectorAll('.mobile-menu.active').forEach(menu => {
209
+ menu.classList.remove('active');
210
+ });
211
+ }
212
+ });
213
+
214
+ // Performance optimization - Debounce scroll events
215
+ function debounce(func, wait) {
216
+ let timeout;
217
+ return function executedFunction(...args) {
218
+ const later = () => {
219
+ clearTimeout(timeout);
220
+ func(...args);
221
+ };
222
+ clearTimeout(timeout);
223
+ timeout = setTimeout(later, wait);
224
+ };
225
+ }
226
+
227
+ // Debounced parallax effect
228
+ window.addEventListener('scroll', debounce(() => {
229
+ const scrolled = window.pageYOffset;
230
+ const shapes = document.querySelectorAll('.floating-shape');
231
+
232
+ shapes.forEach((shape, index) => {
233
+ const speed = 1 + (index * 0.5);
234
+ shape.style.transform = `translateY(${scrolled * speed * 0.1}px)`;
235
+ });
236
+ }, 10));
237
+
238
+ // Initialize Feather Icons after dynamic content
239
+ function initFeatherIcons() {
240
+ feather.replace();
241
+ }
242
+
243
+ // Re-initialize icons when needed
244
+ document.addEventListener('DOMContentLoaded', initFeatherIcons);
style.css CHANGED
@@ -1,28 +1,173 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Custom animations and effects */
2
+ @keyframes slideInUp {
3
+ from {
4
+ transform: translateY(30px);
5
+ opacity: 0;
6
+ }
7
+ to {
8
+ transform: translateY(0);
9
+ opacity: 1;
10
+ }
11
  }
12
 
13
+ @keyframes fadeIn {
14
+ from { opacity: 0; }
15
+ to { opacity: 1; }
16
  }
17
 
18
+ @keyframes shimmer {
19
+ 0% { background-position: -1000px 0; }
20
+ 100% { background-position: 1000px 0; }
 
 
21
  }
22
 
23
+ .animate-slide-up {
24
+ animation: slideInUp 0.8s ease-out;
 
 
 
 
25
  }
26
 
27
+ .animate-fade-in {
28
+ animation: fadeIn 0.6s ease-out;
29
  }
30
+
31
+ .shimmer {
32
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
33
+ background-size: 1000px 100%;
34
+ animation: shimmer 2s infinite;
35
+ }
36
+
37
+ /* Smooth scrolling */
38
+ html {
39
+ scroll-behavior: smooth;
40
+ }
41
+
42
+ /* Custom scrollbar */
43
+ ::-webkit-scrollbar {
44
+ width: 10px;
45
+ }
46
+
47
+ ::-webkit-scrollbar-track {
48
+ background: #1a1a2e;
49
+ }
50
+
51
+ ::-webkit-scrollbar-thumb {
52
+ background: linear-gradient(45deg, #00ffff, #533483);
53
+ border-radius: 5px;
54
+ }
55
+
56
+ ::-webkit-scrollbar-thumb:hover {
57
+ background: linear-gradient(45deg, #00cccc, #663399);
58
+ }
59
+
60
+ /* Mobile menu styles */
61
+ .mobile-menu {
62
+ transform: translateX(-100%);
63
+ transition: transform 0.3s ease-in-out;
64
+ }
65
+
66
+ .mobile-menu.active {
67
+ transform: translateX(0);
68
+ }
69
+
70
+ /* Glass morphism enhanced */
71
+ .glass-morphism {
72
+ background: rgba(255, 255, 255, 0.03);
73
+ backdrop-filter: blur(20px);
74
+ border: 1px solid rgba(255, 255, 255, 0.1);
75
+ box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
76
+ }
77
+
78
+ /* Hover effects */
79
+ .hover-lift {
80
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
81
+ }
82
+
83
+ .hover-lift:hover {
84
+ transform: translateY(-5px);
85
+ box-shadow: 0 20px 40px rgba(0, 255, 255, 0.2);
86
+ }
87
+
88
+ /* Text gradient */
89
+ .gradient-text {
90
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
91
+ -webkit-background-clip: text;
92
+ -webkit-text-fill-color: transparent;
93
+ background-clip: text;
94
+ }
95
+
96
+ /* Loading animation */
97
+ .loading-spinner {
98
+ border: 3px solid rgba(255, 255, 255, 0.1);
99
+ border-radius: 50%;
100
+ border-top: 3px solid #00ffff;
101
+ width: 40px;
102
+ height: 40px;
103
+ animation: spin 1s linear infinite;
104
+ }
105
+
106
+ @keyframes spin {
107
+ 0% { transform: rotate(0deg); }
108
+ 100% { transform: rotate(360deg); }
109
+ }
110
+
111
+ /* Responsive typography */
112
+ @media (max-width: 768px) {
113
+ .hero-title {
114
+ font-size: 2.5rem;
115
+ line-height: 1.2;
116
+ }
117
+ }
118
+
119
+ /* Focus states */
120
+ .focus-ring:focus {
121
+ outline: 2px solid #00ffff;
122
+ outline-offset: 2px;
123
+ }
124
+
125
+ /* Button animations */
126
+ .btn-pulse {
127
+ animation: pulse 2s infinite;
128
+ }
129
+
130
+ @keyframes pulse {
131
+ 0% {
132
+ box-shadow: 0 0 0 0 rgba(0, 255, 255, 0.7);
133
+ }
134
+ 70% {
135
+ box-shadow: 0 0 0 10px rgba(0, 255, 255, 0);
136
+ }
137
+ 100% {
138
+ box-shadow: 0 0 0 0 rgba(0, 255, 255, 0);
139
+ }
140
+ }
141
+
142
+ /* Neon text glow variation */
143
+ .neon-text {
144
+ text-shadow:
145
+ 0 0 7px #fff,
146
+ 0 0 10px #fff,
147
+ 0 0 21px #00ffff,
148
+ 0 0 42px #00ffff,
149
+ 0 0 82px #00ffff,
150
+ 0 0 92px #00ffff,
151
+ 0 0 102px #00ffff;
152
+ }
153
+
154
+ /* Success animation */
155
+ .success-checkmark {
156
+ animation: scaleIn 0.5s ease-out;
157
+ }
158
+
159
+ @keyframes scaleIn {
160
+ from {
161
+ transform: scale(0);
162
+ opacity: 0;
163
+ }
164
+ to {
165
+ transform: scale(1);
166
+ opacity: 1;
167
+ }
168
+ }
169
+
170
+ /* Transition effects */
171
+ .transition-all {
172
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
173
+ }