ceeeth commited on
Commit
3d28543
·
verified ·
1 Parent(s): 03603aa

Make everything free no credit needed for generating content

Browse files
Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +269 -0
  3. components/navbar.js +301 -0
  4. index.html +491 -19
  5. script.js +179 -0
  6. style.css +132 -19
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Viewmax Ai Studio
3
- emoji: 👀
4
- colorFrom: blue
5
- colorTo: green
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: Viewmax AI Studio 🚀
3
+ colorFrom: yellow
4
+ colorTo: yellow
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,269 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ constructor() {
3
+ super();
4
+ this.attachShadow({ mode: 'open' });
5
+ }
6
+
7
+ connectedCallback() {
8
+ this.render();
9
+ }
10
+
11
+ render() {
12
+ this.shadowRoot.innerHTML = `
13
+ <style>
14
+ :host {
15
+ display: block;
16
+ width: 100%;
17
+ background: #020617;
18
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
19
+ }
20
+
21
+ * {
22
+ margin: 0;
23
+ padding: 0;
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ footer {
28
+ max-width: 1280px;
29
+ margin: 0 auto;
30
+ padding: 3rem 1.5rem 2rem;
31
+ }
32
+
33
+ .grid {
34
+ display: grid;
35
+ grid-template-columns: 1fr;
36
+ gap: 2.5rem;
37
+ margin-bottom: 3rem;
38
+ }
39
+
40
+ @media (min-width: 768px) {
41
+ .grid {
42
+ grid-template-columns: 2fr 1fr 1fr 1fr;
43
+ }
44
+ }
45
+
46
+ .brand {
47
+ color: white;
48
+ }
49
+
50
+ .logo {
51
+ display: flex;
52
+ align-items: center;
53
+ gap: 0.5rem;
54
+ font-size: 1.5rem;
55
+ font-weight: 700;
56
+ margin-bottom: 1rem;
57
+ color: white;
58
+ text-decoration: none;
59
+ }
60
+
61
+ .logo-icon {
62
+ width: 2.5rem;
63
+ height: 2.5rem;
64
+ background: linear-gradient(135deg, #8b5cf6, #06b6d4);
65
+ border-radius: 0.75rem;
66
+ display: flex;
67
+ align-items: center;
68
+ justify-content: center;
69
+ }
70
+
71
+ .brand p {
72
+ color: #94a3b8;
73
+ font-size: 0.875rem;
74
+ line-height: 1.6;
75
+ margin-bottom: 1.5rem;
76
+ max-width: 300px;
77
+ }
78
+
79
+ .socials {
80
+ display: flex;
81
+ gap: 1rem;
82
+ }
83
+
84
+ .socials a {
85
+ width: 2.5rem;
86
+ height: 2.5rem;
87
+ border-radius: 0.5rem;
88
+ background: rgba(255, 255, 255, 0.1);
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ color: #94a3b8;
93
+ transition: all 0.2s;
94
+ text-decoration: none;
95
+ }
96
+
97
+ .socials a:hover {
98
+ background: #8b5cf6;
99
+ color: white;
100
+ transform: translateY(-3px);
101
+ }
102
+
103
+ h4 {
104
+ color: white;
105
+ font-size: 0.875rem;
106
+ font-weight: 600;
107
+ text-transform: uppercase;
108
+ letter-spacing: 0.05em;
109
+ margin-bottom: 1rem;
110
+ }
111
+
112
+ ul {
113
+ list-style: none;
114
+ }
115
+
116
+ li {
117
+ margin-bottom: 0.75rem;
118
+ }
119
+
120
+ a {
121
+ color: #94a3b8;
122
+ text-decoration: none;
123
+ font-size: 0.875rem;
124
+ transition: color 0.2s;
125
+ display: inline-flex;
126
+ align-items: center;
127
+ gap: 0.5rem;
128
+ }
129
+
130
+ a:hover {
131
+ color: white;
132
+ }
133
+
134
+ .free-tag {
135
+ background: rgba(139, 92, 246, 0.2);
136
+ color: #c4b5fd;
137
+ padding: 0.125rem 0.5rem;
138
+ border-radius: 9999px;
139
+ font-size: 0.625rem;
140
+ font-weight: 700;
141
+ }
142
+
143
+ .bottom {
144
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
145
+ padding-top: 2rem;
146
+ display: flex;
147
+ flex-direction: column;
148
+ gap: 1rem;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ }
152
+
153
+ @media (min-width: 768px) {
154
+ .bottom {
155
+ flex-direction: row;
156
+ }
157
+ }
158
+
159
+ .copyright {
160
+ color: #64748b;
161
+ font-size: 0.875rem;
162
+ }
163
+
164
+ .links {
165
+ display: flex;
166
+ gap: 1.5rem;
167
+ }
168
+
169
+ .links a {
170
+ font-size: 0.75rem;
171
+ }
172
+
173
+ .heart {
174
+ color: #ef4444;
175
+ display: inline-block;
176
+ animation: heartbeat 1.5s ease-in-out infinite;
177
+ }
178
+
179
+ @keyframes heartbeat {
180
+ 0%, 100% { transform: scale(1); }
181
+ 50% { transform: scale(1.1); }
182
+ }
183
+ </style>
184
+
185
+ <footer>
186
+ <div class="grid">
187
+ <div class="brand">
188
+ <a href="index.html" class="logo">
189
+ <div class="logo-icon">
190
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
191
+ <polygon points="5 3 19 12 5 21 5 3"></polygon>
192
+ </svg>
193
+ </div>
194
+ Viewmax
195
+ </a>
196
+ <p>The complete AI-powered video creation suite. Generate viral content, remove watermarks, create voiceovers, and more. Completely free forever.</p>
197
+ <div class="socials">
198
+ <a href="#" aria-label="Twitter">
199
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
200
+ <path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
201
+ </svg>
202
+ </a>
203
+ <a href="#" aria-label="YouTube">
204
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
205
+ <path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path>
206
+ <polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon>
207
+ </svg>
208
+ </a>
209
+ <a href="#" aria-label="Discord">
210
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
211
+ <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path>
212
+ </svg>
213
+ </a>
214
+ <a href="#" aria-label="GitHub">
215
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
216
+ <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
217
+ </svg>
218
+ </a>
219
+ </div>
220
+ </div>
221
+
222
+ <div>
223
+ <h4>Product</h4>
224
+ <ul>
225
+ <li><a href="#tools">AI Video Generator <span class="free-tag">FREE</span></a></li>
226
+ <li><a href="#tools">Caption Remover <span class="free-tag">FREE</span></a></li>
227
+ <li><a href="#tools">Watermark Remover <span class="free-tag">FREE</span></a></li>
228
+ <li><a href="#tools">AI Voiceover <span class="free-tag">FREE</span></a></li>
229
+ <li><a href="#tools">Script Writer <span class="free-tag">FREE</span></a></li>
230
+ </ul>
231
+ </div>
232
+
233
+ <div>
234
+ <h4>Resources</h4>
235
+ <ul>
236
+ <li><a href="#course">Crash Course</a></li>
237
+ <li><a href="#community">Community</a></li>
238
+ <li><a href="#">Templates</a></li>
239
+ <li><a href="#">Tutorials</a></li>
240
+ <li><a href="#">Blog</a></li>
241
+ </ul>
242
+ </div>
243
+
244
+ <div>
245
+ <h4>Company</h4>
246
+ <ul>
247
+ <li><a href="#">About</a></li>
248
+ <li><a href="#">Careers</a></li>
249
+ <li><a href="#">Privacy</a></li>
250
+ <li><a href="#">Terms</a></li>
251
+ <li><a href="#">Contact</a></li>
252
+ </ul>
253
+ </div>
254
+ </div>
255
+
256
+ <div class="bottom">
257
+ <p class="copyright">© ${new Date().getFullYear()} Viewmax Studio. Made with <span class="heart">♥</span> for creators.</p>
258
+ <div class="links">
259
+ <a href="#">Privacy Policy</a>
260
+ <a href="#">Terms of Service</a>
261
+ <a href="#">Cookie Settings</a>
262
+ </div>
263
+ </div>
264
+ </footer>
265
+ `;
266
+ }
267
+ }
268
+
269
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ constructor() {
3
+ super();
4
+ this.attachShadow({ mode: 'open' });
5
+ this.isMenuOpen = false;
6
+ }
7
+
8
+ connectedCallback() {
9
+ this.render();
10
+ this.setupEventListeners();
11
+ }
12
+
13
+ render() {
14
+ this.shadowRoot.innerHTML = `
15
+ <style>
16
+ :host {
17
+ display: block;
18
+ width: 100%;
19
+ position: fixed;
20
+ top: 0;
21
+ z-index: 50;
22
+ }
23
+
24
+ * {
25
+ margin: 0;
26
+ padding: 0;
27
+ box-sizing: border-box;
28
+ }
29
+
30
+ nav {
31
+ background: rgba(15, 23, 42, 0.8);
32
+ backdrop-filter: blur(12px);
33
+ -webkit-backdrop-filter: blur(12px);
34
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
35
+ transition: all 0.3s ease;
36
+ }
37
+
38
+ nav.scrolled {
39
+ background: rgba(15, 23, 42, 0.95);
40
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
41
+ }
42
+
43
+ .container {
44
+ max-width: 1280px;
45
+ margin: 0 auto;
46
+ padding: 0 1.5rem;
47
+ display: flex;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ height: 4rem;
51
+ }
52
+
53
+ .logo {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 0.5rem;
57
+ text-decoration: none;
58
+ color: white;
59
+ font-weight: 700;
60
+ font-size: 1.25rem;
61
+ letter-spacing: -0.02em;
62
+ }
63
+
64
+ .logo-icon {
65
+ width: 2rem;
66
+ height: 2rem;
67
+ background: linear-gradient(135deg, #8b5cf6, #06b6d4);
68
+ border-radius: 0.5rem;
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ }
73
+
74
+ .nav-links {
75
+ display: none;
76
+ align-items: center;
77
+ gap: 2rem;
78
+ list-style: none;
79
+ }
80
+
81
+ @media (min-width: 768px) {
82
+ .nav-links {
83
+ display: flex;
84
+ }
85
+ }
86
+
87
+ .nav-links a {
88
+ color: #94a3b8;
89
+ text-decoration: none;
90
+ font-size: 0.875rem;
91
+ font-weight: 500;
92
+ transition: color 0.2s;
93
+ position: relative;
94
+ }
95
+
96
+ .nav-links a:hover {
97
+ color: white;
98
+ }
99
+
100
+ .nav-links a::after {
101
+ content: '';
102
+ position: absolute;
103
+ bottom: -4px;
104
+ left: 0;
105
+ width: 0;
106
+ height: 2px;
107
+ background: linear-gradient(90deg, #8b5cf6, #06b6d4);
108
+ transition: width 0.3s;
109
+ }
110
+
111
+ .nav-links a:hover::after {
112
+ width: 100%;
113
+ }
114
+
115
+ .cta-button {
116
+ background: linear-gradient(135deg, #8b5cf6, #7c3aed);
117
+ color: white;
118
+ padding: 0.5rem 1.25rem;
119
+ border-radius: 9999px;
120
+ text-decoration: none;
121
+ font-size: 0.875rem;
122
+ font-weight: 600;
123
+ transition: all 0.3s;
124
+ border: none;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .cta-button:hover {
129
+ transform: translateY(-2px);
130
+ box-shadow: 0 10px 25px -5px rgba(139, 92, 246, 0.4);
131
+ }
132
+
133
+ .mobile-menu-btn {
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ width: 2.5rem;
138
+ height: 2.5rem;
139
+ background: rgba(255, 255, 255, 0.1);
140
+ border: none;
141
+ border-radius: 0.5rem;
142
+ color: white;
143
+ cursor: pointer;
144
+ transition: background 0.2s;
145
+ }
146
+
147
+ .mobile-menu-btn:hover {
148
+ background: rgba(255, 255, 255, 0.2);
149
+ }
150
+
151
+ @media (min-width: 768px) {
152
+ .mobile-menu-btn {
153
+ display: none;
154
+ }
155
+ }
156
+
157
+ .mobile-menu {
158
+ display: none;
159
+ position: absolute;
160
+ top: 100%;
161
+ left: 0;
162
+ right: 0;
163
+ background: rgba(15, 23, 42, 0.98);
164
+ backdrop-filter: blur(12px);
165
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
166
+ padding: 1.5rem;
167
+ flex-direction: column;
168
+ gap: 1rem;
169
+ }
170
+
171
+ .mobile-menu.open {
172
+ display: flex;
173
+ }
174
+
175
+ .mobile-menu a {
176
+ color: #94a3b8;
177
+ text-decoration: none;
178
+ font-size: 1rem;
179
+ font-weight: 500;
180
+ padding: 0.5rem 0;
181
+ transition: color 0.2s;
182
+ }
183
+
184
+ .mobile-menu a:hover {
185
+ color: white;
186
+ }
187
+
188
+ .mobile-cta {
189
+ margin-top: 1rem;
190
+ text-align: center;
191
+ }
192
+
193
+ .free-badge {
194
+ background: rgba(139, 92, 246, 0.2);
195
+ color: #c4b5fd;
196
+ padding: 0.25rem 0.75rem;
197
+ border-radius: 9999px;
198
+ font-size: 0.75rem;
199
+ font-weight: 600;
200
+ margin-left: 0.5rem;
201
+ border: 1px solid rgba(139, 92, 246, 0.3);
202
+ }
203
+ </style>
204
+
205
+ <nav id="navbar">
206
+ <div class="container">
207
+ <a href="index.html" class="logo">
208
+ <div class="logo-icon">
209
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
210
+ <polygon points="5 3 19 12 5 21 5 3"></polygon>
211
+ </svg>
212
+ </div>
213
+ Viewmax<span class="free-badge">FREE</span>
214
+ </a>
215
+
216
+ <ul class="nav-links">
217
+ <li><a href="index.html">Home</a></li>
218
+ <li><a href="#tools">Tools</a></li>
219
+ <li><a href="#videos">Videos</a></li>
220
+ <li><a href="#community">Community</a></li>
221
+ <li><a href="#course">Learn</a></li>
222
+ </ul>
223
+
224
+ <div style="display: flex; align-items: center; gap: 1rem;">
225
+ <a href="#tools" class="cta-button">Create Free</a>
226
+ <button class="mobile-menu-btn" aria-label="Toggle menu">
227
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
228
+ <line x1="3" y1="12" x2="21" y2="12"></line>
229
+ <line x1="3" y1="6" x2="21" y2="6"></line>
230
+ <line x1="3" y1="18" x2="21" y2="18"></line>
231
+ </svg>
232
+ </button>
233
+ </div>
234
+ </div>
235
+
236
+ <div class="mobile-menu">
237
+ <a href="index.html">Home</a>
238
+ <a href="#tools">Tools</a>
239
+ <a href="#videos">Videos</a>
240
+ <a href="#community">Community</a>
241
+ <a href="#course">Learn</a>
242
+ <div class="mobile-cta">
243
+ <a href="#tools" class="cta-button" style="display: block; width: 100%; padding: 0.75rem;">Create Free</a>
244
+ </div>
245
+ </div>
246
+ </nav>
247
+ `;
248
+ }
249
+
250
+ setupEventListeners() {
251
+ const navbar = this.shadowRoot.getElementById('navbar');
252
+ const mobileBtn = this.shadowRoot.querySelector('.mobile-menu-btn');
253
+ const mobileMenu = this.shadowRoot.querySelector('.mobile-menu');
254
+
255
+ // Scroll effect
256
+ window.addEventListener('scroll', () => {
257
+ if (window.scrollY > 50) {
258
+ navbar.classList.add('scrolled');
259
+ } else {
260
+ navbar.classList.remove('scrolled');
261
+ }
262
+ });
263
+
264
+ // Mobile menu toggle
265
+ mobileBtn.addEventListener('click', () => {
266
+ this.isMenuOpen = !this.isMenuOpen;
267
+ mobileMenu.classList.toggle('open', this.isMenuOpen);
268
+
269
+ // Animate hamburger to X
270
+ const svg = mobileBtn.querySelector('svg');
271
+ if (this.isMenuOpen) {
272
+ svg.innerHTML = `
273
+ <line x1="18" y1="6" x2="6" y2="18"></line>
274
+ <line x1="6" y1="6" x2="18" y2="18"></line>
275
+ `;
276
+ } else {
277
+ svg.innerHTML = `
278
+ <line x1="3" y1="12" x2="21" y2="12"></line>
279
+ <line x1="3" y1="6" x2="21" y2="6"></line>
280
+ <line x1="3" y1="18" x2="21" y2="18"></line>
281
+ `;
282
+ }
283
+ });
284
+
285
+ // Close mobile menu when clicking a link
286
+ mobileMenu.querySelectorAll('a').forEach(link => {
287
+ link.addEventListener('click', () => {
288
+ this.isMenuOpen = false;
289
+ mobileMenu.classList.remove('open');
290
+ const svg = mobileBtn.querySelector('svg');
291
+ svg.innerHTML = `
292
+ <line x1="3" y1="12" x2="21" y2="12"></line>
293
+ <line x1="3" y1="6" x2="21" y2="6"></line>
294
+ <line x1="3" y1="18" x2="21" y2="18"></line>
295
+ `;
296
+ });
297
+ });
298
+ }
299
+ }
300
+
301
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,491 @@
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" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Viewmax Studio – The AI Tool Suite for Creating Viral Videos</title>
7
+ <meta name="description" content="Create stunning viral videos with AI. Free AI video generator, caption remover, watermark remover, voiceovers, and more. No credit card required.">
8
+ <link rel="stylesheet" href="style.css">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script>
11
+ tailwind.config = {
12
+ darkMode: 'class',
13
+ theme: {
14
+ extend: {
15
+ colors: {
16
+ primary: {
17
+ 50: '#f5f3ff',
18
+ 100: '#ede9fe',
19
+ 200: '#ddd6fe',
20
+ 300: '#c4b5fd',
21
+ 400: '#a78bfa',
22
+ 500: '#8b5cf6',
23
+ 600: '#7c3aed',
24
+ 700: '#6d28d9',
25
+ 800: '#5b21b6',
26
+ 900: '#4c1d95',
27
+ },
28
+ secondary: {
29
+ 50: '#ecfeff',
30
+ 100: '#cffafe',
31
+ 200: '#a5f3fc',
32
+ 300: '#67e8f9',
33
+ 400: '#22d3ee',
34
+ 500: '#06b6d4',
35
+ 600: '#0891b2',
36
+ 700: '#0e7490',
37
+ 800: '#155e75',
38
+ 900: '#164e63',
39
+ }
40
+ },
41
+ animation: {
42
+ 'gradient-x': 'gradient-x 15s ease infinite',
43
+ 'float': 'float 6s ease-in-out infinite',
44
+ 'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
45
+ },
46
+ keyframes: {
47
+ 'gradient-x': {
48
+ '0%, 100%': {
49
+ 'background-size': '200% 200%',
50
+ 'background-position': 'left center'
51
+ },
52
+ '50%': {
53
+ 'background-size': '200% 200%',
54
+ 'background-position': 'right center'
55
+ },
56
+ },
57
+ 'float': {
58
+ '0%, 100%': { transform: 'translateY(0)' },
59
+ '50%': { transform: 'translateY(-20px)' },
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ </script>
66
+ <script src="https://unpkg.com/feather-icons"></script>
67
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
68
+ </head>
69
+ <body class="bg-slate-900 text-slate-100 font-sans antialiased overflow-x-hidden">
70
+
71
+ <!-- Navigation -->
72
+ <custom-navbar></custom-navbar>
73
+
74
+ <!-- Hero Section -->
75
+ <section class="relative min-h-screen flex items-center justify-center overflow-hidden pt-20">
76
+ <!-- Background Effects -->
77
+ <div class="absolute inset-0 bg-gradient-to-br from-primary-900/40 via-slate-900 to-secondary-900/30 animate-gradient-x"></div>
78
+ <div class="absolute top-20 left-10 w-72 h-72 bg-primary-600/20 rounded-full blur-3xl animate-float"></div>
79
+ <div class="absolute bottom-20 right-10 w-96 h-96 bg-secondary-600/20 rounded-full blur-3xl animate-float" style="animation-delay: 2s;"></div>
80
+
81
+ <div class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
82
+ <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-500/10 border border-primary-500/20 mb-8 backdrop-blur-sm">
83
+ <span class="flex h-2 w-2 rounded-full bg-primary-400 animate-pulse"></span>
84
+ <span class="text-primary-300 text-sm font-medium">100% Free • No Credit Card Required</span>
85
+ </div>
86
+
87
+ <h1 class="text-5xl md:text-7xl font-bold mb-6 tracking-tight">
88
+ <span class="bg-gradient-to-r from-white via-primary-200 to-secondary-200 bg-clip-text text-transparent">
89
+ Viewmax Studio
90
+ </span>
91
+ </h1>
92
+
93
+ <p class="text-xl md:text-3xl text-slate-300 mb-8 max-w-3xl mx-auto font-light leading-relaxed">
94
+ The AI Tool Suite for Creating
95
+ <span class="text-primary-400 font-semibold">Viral Videos</span>
96
+ </p>
97
+
98
+ <p class="text-slate-400 mb-12 max-w-2xl mx-auto text-lg">
99
+ Generate stunning AI videos, remove watermarks, create voiceovers, and script your content.
100
+ All powered by next-gen AI. Completely free.
101
+ </p>
102
+
103
+ <div class="flex flex-col sm:flex-row gap-4 justify-center items-center">
104
+ <a href="#tools" class="group relative inline-flex items-center gap-2 px-8 py-4 bg-primary-600 hover:bg-primary-500 rounded-full font-semibold text-white transition-all duration-300 hover:scale-105 hover:shadow-lg hover:shadow-primary-500/25">
105
+ <i data-feather="sparkles" class="w-5 h-5"></i>
106
+ Start Creating Free
107
+ <div class="absolute inset-0 rounded-full bg-white/20 blur-xl opacity-0 group-hover:opacity-100 transition-opacity"></div>
108
+ </a>
109
+ <a href="#course" class="inline-flex items-center gap-2 px-8 py-4 bg-slate-800/50 hover:bg-slate-700/50 border border-slate-700 rounded-full font-semibold text-slate-300 transition-all duration-300 backdrop-blur-sm">
110
+ <i data-feather="play-circle" class="w-5 h-5"></i>
111
+ Watch Tutorial
112
+ </a>
113
+ </div>
114
+
115
+ <!-- Stats -->
116
+ <div class="mt-16 grid grid-cols-2 md:grid-cols-4 gap-8 max-w-3xl mx-auto">
117
+ <div class="p-4 rounded-2xl bg-slate-800/30 border border-slate-700/50 backdrop-blur-sm">
118
+ <div class="text-3xl font-bold text-white mb-1">10M+</div>
119
+ <div class="text-sm text-slate-400">Videos Created</div>
120
+ </div>
121
+ <div class="p-4 rounded-2xl bg-slate-800/30 border border-slate-700/50 backdrop-blur-sm">
122
+ <div class="text-3xl font-bold text-white mb-1">50K+</div>
123
+ <div class="text-sm text-slate-400">Daily Users</div>
124
+ </div>
125
+ <div class="p-4 rounded-2xl bg-slate-800/30 border border-slate-700/50 backdrop-blur-sm">
126
+ <div class="text-3xl font-bold text-white mb-1">100%</div>
127
+ <div class="text-sm text-slate-400">Free Forever</div>
128
+ </div>
129
+ <div class="p-4 rounded-2xl bg-slate-800/30 border border-slate-700/50 backdrop-blur-sm">
130
+ <div class="text-3xl font-bold text-white mb-1">4K</div>
131
+ <div class="text-sm text-slate-400">Export Quality</div>
132
+ </div>
133
+ </div>
134
+ </div>
135
+
136
+ <!-- Scroll Indicator -->
137
+ <div class="absolute bottom-8 left-1/2 transform -translate-x-1/2 animate-bounce">
138
+ <i data-feather="chevron-down" class="w-6 h-6 text-slate-500"></i>
139
+ </div>
140
+ </section>
141
+
142
+ <!-- Tools Section -->
143
+ <section id="tools" class="py-24 relative">
144
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
145
+ <div class="text-center mb-16">
146
+ <h2 class="text-4xl md:text-5xl font-bold mb-4 bg-gradient-to-r from-primary-400 to-secondary-400 bg-clip-text text-transparent">
147
+ Powerful AI Tools
148
+ </h2>
149
+ <p class="text-slate-400 text-lg max-w-2xl mx-auto">
150
+ Everything you need to create professional viral content. No watermarks, no limits, no credit card.
151
+ </p>
152
+ </div>
153
+
154
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
155
+ <!-- Tool Card 1 -->
156
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-primary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-primary-500/10 backdrop-blur-sm overflow-hidden">
157
+ <div class="absolute inset-0 bg-gradient-to-br from-primary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
158
+ <div class="relative z-10">
159
+ <div class="w-14 h-14 rounded-2xl bg-primary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
160
+ <i data-feather="video" class="w-7 h-7 text-primary-400"></i>
161
+ </div>
162
+ <h3 class="text-xl font-bold mb-2 text-white">Sora AI Video Generator</h3>
163
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Generate stunning AI videos without watermarks powered by Sora 2. Text to video in seconds.</p>
164
+ <a href="#" class="inline-flex items-center gap-2 text-primary-400 hover:text-primary-300 font-medium text-sm group/link">
165
+ Try now
166
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
167
+ </a>
168
+ </div>
169
+ </div>
170
+
171
+ <!-- Tool Card 2 -->
172
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-secondary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-secondary-500/10 backdrop-blur-sm overflow-hidden">
173
+ <div class="absolute inset-0 bg-gradient-to-br from-secondary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
174
+ <div class="relative z-10">
175
+ <div class="w-14 h-14 rounded-2xl bg-secondary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
176
+ <i data-feather="type" class="w-7 h-7 text-secondary-400"></i>
177
+ </div>
178
+ <h3 class="text-xl font-bold mb-2 text-white">Caption Remover</h3>
179
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Remove captions from videos with our AI-powered caption remover. Clean frames instantly.</p>
180
+ <a href="#" class="inline-flex items-center gap-2 text-secondary-400 hover:text-secondary-300 font-medium text-sm group/link">
181
+ Try now
182
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
183
+ </a>
184
+ </div>
185
+ </div>
186
+
187
+ <!-- Tool Card 3 -->
188
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-primary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-primary-500/10 backdrop-blur-sm overflow-hidden">
189
+ <div class="absolute inset-0 bg-gradient-to-br from-primary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
190
+ <div class="relative z-10">
191
+ <div class="w-14 h-14 rounded-2xl bg-primary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
192
+ <i data-feather="droplet" class="w-7 h-7 text-primary-400"></i>
193
+ </div>
194
+ <h3 class="text-xl font-bold mb-2 text-white">Watermark Remover</h3>
195
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Automatically clean watermarks from videos using our Viewmax AI. Invisible removal.</p>
196
+ <a href="#" class="inline-flex items-center gap-2 text-primary-400 hover:text-primary-300 font-medium text-sm group/link">
197
+ Try now
198
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
199
+ </a>
200
+ </div>
201
+ </div>
202
+
203
+ <!-- Tool Card 4 -->
204
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-secondary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-secondary-500/10 backdrop-blur-sm overflow-hidden">
205
+ <div class="absolute inset-0 bg-gradient-to-br from-secondary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
206
+ <div class="relative z-10">
207
+ <div class="w-14 h-14 rounded-2xl bg-secondary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
208
+ <i data-feather="mic" class="w-7 h-7 text-secondary-400"></i>
209
+ </div>
210
+ <h3 class="text-xl font-bold mb-2 text-white">AI Voiceover</h3>
211
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Generate natural-sounding voiceovers for your videos using AI. 50+ languages supported.</p>
212
+ <a href="#" class="inline-flex items-center gap-2 text-secondary-400 hover:text-secondary-300 font-medium text-sm group/link">
213
+ Try now
214
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
215
+ </a>
216
+ </div>
217
+ </div>
218
+
219
+ <!-- Tool Card 5 -->
220
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-primary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-primary-500/10 backdrop-blur-sm overflow-hidden">
221
+ <div class="absolute inset-0 bg-gradient-to-br from-primary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
222
+ <div class="relative z-10">
223
+ <div class="w-14 h-14 rounded-2xl bg-primary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
224
+ <i data-feather="file-text" class="w-7 h-7 text-primary-400"></i>
225
+ </div>
226
+ <h3 class="text-xl font-bold mb-2 text-white">AI Scriptwriter</h3>
227
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Create engaging scripts for your videos with AI-powered writing assistance. Viral formulas included.</p>
228
+ <a href="#" class="inline-flex items-center gap-2 text-primary-400 hover:text-primary-300 font-medium text-sm group/link">
229
+ Try now
230
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
231
+ </a>
232
+ </div>
233
+ </div>
234
+
235
+ <!-- Tool Card 6 -->
236
+ <div class="group relative p-6 rounded-3xl bg-slate-800/40 border border-slate-700/50 hover:border-secondary-500/50 transition-all duration-500 hover:-translate-y-2 hover:shadow-2xl hover:shadow-secondary-500/10 backdrop-blur-sm overflow-hidden">
237
+ <div class="absolute inset-0 bg-gradient-to-br from-secondary-600/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
238
+ <div class="relative z-10">
239
+ <div class="w-14 h-14 rounded-2xl bg-secondary-500/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300">
240
+ <i data-feather="download" class="w-7 h-7 text-secondary-400"></i>
241
+ </div>
242
+ <h3 class="text-xl font-bold mb-2 text-white">Video Downloader</h3>
243
+ <p class="text-slate-400 mb-4 text-sm leading-relaxed">Download videos from YouTube, Instagram, TikTok, X, and Facebook instantly. No limits.</p>
244
+ <a href="#" class="inline-flex items-center gap-2 text-secondary-400 hover:text-secondary-300 font-medium text-sm group/link">
245
+ Try now
246
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/link:translate-x-1 transition-transform"></i>
247
+ </a>
248
+ </div>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ </section>
253
+
254
+ <!-- Beta Templates Section -->
255
+ <section class="py-24 bg-slate-800/30 relative overflow-hidden">
256
+ <div class="absolute inset-0 bg-gradient-to-b from-slate-900 via-transparent to-slate-900"></div>
257
+
258
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
259
+ <div class="flex flex-col md:flex-row md:items-center md:justify-between mb-12">
260
+ <div>
261
+ <div class="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-amber-500/10 border border-amber-500/20 text-amber-400 text-xs font-bold uppercase tracking-wide mb-4">
262
+ Beta
263
+ </div>
264
+ <h2 class="text-4xl md:text-5xl font-bold mb-2">Templates</h2>
265
+ <p class="text-slate-400">Jump-start your creation with pre-made workflows</p>
266
+ </div>
267
+ <p class="text-slate-500 text-sm mt-4 md:mt-0 max-w-xs">
268
+ Templates are currently in beta and may have bugs. Thanks for your patience!
269
+ </p>
270
+ </div>
271
+
272
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
273
+ <!-- Template 1 -->
274
+ <div class="group relative rounded-3xl overflow-hidden bg-slate-800 border border-slate-700 hover:border-primary-500/50 transition-all duration-500">
275
+ <div class="aspect-video relative overflow-hidden">
276
+ <img src="https://static.photos/technology/640x360/1" alt="Story Video" class="w-full h-full object-cover transform group-hover:scale-110 transition-transform duration-700">
277
+ <div class="absolute inset-0 bg-gradient-to-t from-slate-900 via-slate-900/20 to-transparent opacity-60"></div>
278
+ <div class="absolute top-4 left-4">
279
+ <span class="px-3 py-1 rounded-full bg-amber-500/20 text-amber-400 text-xs font-bold border border-amber-500/30">Beta</span>
280
+ </div>
281
+ </div>
282
+ <div class="p-6">
283
+ <h3 class="text-xl font-bold mb-2 text-white group-hover:text-primary-400 transition-colors">Story Video</h3>
284
+ <p class="text-slate-400 text-sm mb-4">Combine a voiceover with b-roll and captions to create stories and clips automatically.</p>
285
+ <button class="w-full py-3 rounded-xl bg-slate-700 hover:bg-primary-600 text-white font-medium transition-all duration-300 flex items-center justify-center gap-2 group/btn">
286
+ Create
287
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/btn:translate-x-1 transition-transform"></i>
288
+ </button>
289
+ </div>
290
+ </div>
291
+
292
+ <!-- Template 2 -->
293
+ <div class="group relative rounded-3xl overflow-hidden bg-slate-800 border border-slate-700 hover:border-secondary-500/50 transition-all duration-500">
294
+ <div class="aspect-video relative overflow-hidden">
295
+ <img src="https://static.photos/technology/640x360/2" alt="Clip & Edit" class="w-full h-full object-cover transform group-hover:scale-110 transition-transform duration-700">
296
+ <div class="absolute inset-0 bg-gradient-to-t from-slate-900 via-slate-900/20 to-transparent opacity-60"></div>
297
+ <div class="absolute top-4 left-4">
298
+ <span class="px-3 py-1 rounded-full bg-amber-500/20 text-amber-400 text-xs font-bold border border-amber-500/30">Beta</span>
299
+ </div>
300
+ </div>
301
+ <div class="p-6">
302
+ <h3 class="text-xl font-bold mb-2 text-white group-hover:text-secondary-400 transition-colors">Clip & Edit</h3>
303
+ <p class="text-slate-400 text-sm mb-4">Transform a long video into an edited short-form clip with AI-generated captions.</p>
304
+ <button class="w-full py-3 rounded-xl bg-slate-700 hover:bg-secondary-600 text-white font-medium transition-all duration-300 flex items-center justify-center gap-2 group/btn">
305
+ Start Editing
306
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/btn:translate-x-1 transition-transform"></i>
307
+ </button>
308
+ </div>
309
+ </div>
310
+
311
+ <!-- Template 3 -->
312
+ <div class="group relative rounded-3xl overflow-hidden bg-slate-800 border border-slate-700 hover:border-primary-500/50 transition-all duration-500">
313
+ <div class="aspect-video relative overflow-hidden">
314
+ <img src="https://static.photos/technology/640x360/3" alt="Start from Scratch" class="w-full h-full object-cover transform group-hover:scale-110 transition-transform duration-700">
315
+ <div class="absolute inset-0 bg-gradient-to-t from-slate-900 via-slate-900/20 to-transparent opacity-60"></div>
316
+ <div class="absolute top-4 left-4">
317
+ <span class="px-3 py-1 rounded-full bg-amber-500/20 text-amber-400 text-xs font-bold border border-amber-500/30">Beta</span>
318
+ </div>
319
+ </div>
320
+ <div class="p-6">
321
+ <h3 class="text-xl font-bold mb-2 text-white group-hover:text-primary-400 transition-colors">Start from Scratch</h3>
322
+ <p class="text-slate-400 text-sm mb-4">Start in the Viewmax video editor and create your video from scratch with AI assistance.</p>
323
+ <button class="w-full py-3 rounded-xl bg-slate-700 hover:bg-primary-600 text-white font-medium transition-all duration-300 flex items-center justify-center gap-2 group/btn">
324
+ Get Started
325
+ <i data-feather="arrow-right" class="w-4 h-4 transform group-hover/btn:translate-x-1 transition-transform"></i>
326
+ </button>
327
+ </div>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </section>
332
+
333
+ <!-- Course Section -->
334
+ <section id="course" class="py-24 relative">
335
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
336
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
337
+ <div class="order-2 lg:order-1">
338
+ <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-secondary-500/10 border border-secondary-500/20 mb-6">
339
+ <i data-feather="book-open" class="w-4 h-4 text-secondary-400"></i>
340
+ <span class="text-secondary-300 text-sm font-medium">Free Course</span>
341
+ </div>
342
+
343
+ <h2 class="text-4xl md:text-5xl font-bold mb-6 leading-tight">
344
+ Watch the <span class="text-transparent bg-clip-text bg-gradient-to-r from-secondary-400 to-primary-400">2026 Crash Course</span> for Short-form Content
345
+ </h2>
346
+
347
+ <p class="text-slate-400 text-lg mb-8">
348
+ Master the Art of Creating Viral Short-form Content. From zero to viral hero in 2.5 hours.
349
+ </p>
350
+
351
+ <div class="flex flex-wrap gap-4 mb-8">
352
+ <div class="flex items-center gap-2 text-slate-300">
353
+ <i data-feather="clock" class="w-5 h-5 text-primary-400"></i>
354
+ <span>2 Hours 30 Mins</span>
355
+ </div>
356
+ <div class="flex items-center gap-2 text-slate-300">
357
+ <i data-feather="list" class="w-5 h-5 text-primary-400"></i>
358
+ <span>45 Lessons</span>
359
+ </div>
360
+ <div class="flex items-center gap-2 text-slate-300">
361
+ <i data-feather="users" class="w-5 h-5 text-primary-400"></i>
362
+ <span>12K+ Students</span>
363
+ </div>
364
+ </div>
365
+
366
+ <div class="space-y-4 mb-8">
367
+ <div class="p-4 rounded-2xl bg-slate-800/50 border border-slate-700 hover:border-primary-500/30 transition-colors cursor-pointer group">
368
+ <div class="flex items-start gap-4">
369
+ <div class="w-12 h-12 rounded-xl bg-primary-500/20 flex items-center justify-center shrink-0 group-hover:bg-primary-500/30 transition-colors">
370
+ <span class="text-primary-400 font-bold">01</span>
371
+ </div>
372
+ <div>
373
+ <h4 class="font-semibold text-white mb-1 group-hover:text-primary-400 transition-colors">Why Start Short-form Content?</h4>
374
+ <p class="text-sm text-slate-400">The Complete Beginner's Guide to Social Media in 2025 • 15 mins</p>
375
+ </div>
376
+ <i data-feather="play-circle" class="w-6 h-6 text-slate-600 group-hover:text-primary-400 transition-colors shrink-0"></i>
377
+ </div>
378
+ </div>
379
+
380
+ <div class="p-4 rounded-2xl bg-slate-800/50 border border-slate-700 hover:border-secondary-500/30 transition-colors cursor-pointer group">
381
+ <div class="flex items-start gap-4">
382
+ <div class="w-12 h-12 rounded-xl bg-secondary-500/20 flex items-center justify-center shrink-0 group-hover:bg-secondary-500/30 transition-colors">
383
+ <span class="text-secondary-400 font-bold">02</span>
384
+ </div>
385
+ <div>
386
+ <h4 class="font-semibold text-white mb-1 group-hover:text-secondary-400 transition-colors">Finding Your Niche</h4>
387
+ <p class="text-sm text-slate-400">Proven ways to find a successful niche • 15 mins</p>
388
+ </div>
389
+ <i data-feather="lock" class="w-6 h-6 text-slate-600 group-hover:text-secondary-400 transition-colors shrink-0"></i>
390
+ </div>
391
+ </div>
392
+
393
+ <div class="p-4 rounded-2xl bg-slate-800/50 border border-slate-700 hover:border-primary-500/30 transition-colors cursor-pointer group">
394
+ <div class="flex items-start gap-4">
395
+ <div class="w-12 h-12 rounded-xl bg-primary-500/20 flex items-center justify-center shrink-0 group-hover:bg-primary-500/30 transition-colors">
396
+ <span class="text-primary-400 font-bold">03</span>
397
+ </div>
398
+ <div>
399
+ <h4 class="font-semibold text-white mb-1 group-hover:text-primary-400 transition-colors">Making Your First Video</h4>
400
+ <p class="text-sm text-slate-400">Everything you need to get your first upload live • 20 mins</p>
401
+ </div>
402
+ <i data-feather="lock" class="w-6 h-6 text-slate-600 group-hover:text-primary-400 transition-colors shrink-0"></i>
403
+ </div>
404
+ </div>
405
+ </div>
406
+
407
+ <button class="inline-flex items-center gap-2 px-8 py-4 bg-gradient-to-r from-primary-600 to-secondary-600 hover:from-primary-500 hover:to-secondary-500 rounded-full font-semibold text-white transition-all duration-300 hover:scale-105 hover:shadow-lg hover:shadow-primary-500/25">
408
+ <i data-feather="play" class="w-5 h-5 fill-current"></i>
409
+ Start Watching Free
410
+ </button>
411
+ </div>
412
+
413
+ <div class="order-1 lg:order-2 relative">
414
+ <div class="relative rounded-3xl overflow-hidden shadow-2xl shadow-primary-500/20 border border-slate-700">
415
+ <img src="https://static.photos/technology/1024x576/42" alt="Course Preview" class="w-full h-auto">
416
+ <div class="absolute inset-0 bg-gradient-to-t from-slate-900/80 via-transparent to-transparent"></div>
417
+ <div class="absolute inset-0 flex items-center justify-center">
418
+ <button class="w-20 h-20 rounded-full bg-white/10 backdrop-blur-md border border-white/20 flex items-center justify-center hover:scale-110 transition-transform duration-300 group">
419
+ <i data-feather="play" class="w-8 h-8 text-white fill-white ml-1 group-hover:scale-110 transition-transform"></i>
420
+ </button>
421
+ </div>
422
+ <div class="absolute bottom-4 left-4 right-4">
423
+ <div class="h-1 bg-slate-700 rounded-full overflow-hidden">
424
+ <div class="h-full w-1/3 bg-gradient-to-r from-primary-500 to-secondary-500 rounded-full"></div>
425
+ </div>
426
+ </div>
427
+ </div>
428
+
429
+ <!-- Floating Elements -->
430
+ <div class="absolute -top-6 -right-6 w-24 h-24 bg-primary-500/20 rounded-full blur-2xl animate-pulse-slow"></div>
431
+ <div class="absolute -bottom-6 -left-6 w-32 h-32 bg-secondary-500/20 rounded-full blur-2xl animate-pulse-slow" style="animation-delay: 1s;"></div>
432
+ </div>
433
+ </div>
434
+ </div>
435
+ </section>
436
+
437
+ <!-- CTA Section -->
438
+ <section class="py-24 relative overflow-hidden">
439
+ <div class="absolute inset-0 bg-gradient-to-r from-primary-900/50 to-secondary-900/50"></div>
440
+ <div class="absolute inset-0 bg-[url('data:image/svg+xml,%3Csvg%20width%3D%2260%22%20height%3D%2260%22%20viewBox%3D%220%200%2060%2060%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20fill%3D%22%239C92AC%22%20fill-opacity%3D%220.05%22%3E%3Cpath%20d%3D%22M36%2034v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6%2034v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6%204V0H4v4H0v2h4v4h2V6h4V4H6z%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E')] opacity-20"></div>
441
+
442
+ <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center relative z-10">
443
+ <h2 class="text-4xl md:text-6xl font-bold mb-6 bg-gradient-to-r from-white via-primary-200 to-secondary-200 bg-clip-text text-transparent">
444
+ Ready to Go Viral?
445
+ </h2>
446
+ <p class="text-xl text-slate-300 mb-8 max-w-2xl mx-auto">
447
+ Join 50,000+ creators using Viewmax Studio to create stunning content.
448
+ Completely free, no credit card required.
449
+ </p>
450
+
451
+ <form class="max-w-md mx-auto mb-8" onsubmit="event.preventDefault(); alert('Welcome to Viewmax!');">
452
+ <div class="flex flex-col sm:flex-row gap-3">
453
+ <input type="email" placeholder="Enter your email" class="flex-1 px-6 py-4 rounded-full bg-slate-800/50 border border-slate-600 text-white placeholder-slate-400 focus:outline-none focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 transition-all backdrop-blur-sm">
454
+ <button type="submit" class="px-8 py-4 bg-white text-slate-900 rounded-full font-bold hover:bg-primary-50 transition-all duration-300 hover:scale-105 whitespace-nowrap">
455
+ Get Started
456
+ </button>
457
+ </div>
458
+ <p class="text-slate-500 text-sm mt-4 flex items-center justify-center gap-2">
459
+ <i data-feather="check-circle" class="w-4 h-4 text-green-500"></i>
460
+ Free forever • No credit card • Cancel anytime
461
+ </p>
462
+ </form>
463
+
464
+ <div class="flex items-center justify-center gap-8 text-slate-400">
465
+ <div class="flex items-center gap-2">
466
+ <i data-feather="shield" class="w-5 h-5"></i>
467
+ <span class="text-sm">Secure</span>
468
+ </div>
469
+ <div class="flex items-center gap-2">
470
+ <i data-feather="zap" class="w-5 h-5"></i>
471
+ <span class="text-sm">Fast</span>
472
+ </div>
473
+ <div class="flex items-center gap-2">
474
+ <i data-feather="heart" class="w-5 h-5"></i>
475
+ <span class="text-sm">Loved by creators</span>
476
+ </div>
477
+ </div>
478
+ </div>
479
+ </section>
480
+
481
+ <!-- Footer -->
482
+ <custom-footer></custom-footer>
483
+
484
+ <!-- Scripts -->
485
+ <script src="components/navbar.js"></script>
486
+ <script src="components/footer.js"></script>
487
+ <script src="script.js"></script>
488
+ <script>feather.replace();</script>
489
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
490
+ </body>
491
+ </html>
script.js ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Intersection Observer for Fade-in Animations
2
+ const observerOptions = {
3
+ root: null,
4
+ rootMargin: '0px',
5
+ threshold: 0.1
6
+ };
7
+
8
+ const observer = new IntersectionObserver((entries) => {
9
+ entries.forEach(entry => {
10
+ if (entry.isIntersecting) {
11
+ entry.target.classList.add('animate-fade-in');
12
+ observer.unobserve(entry.target);
13
+ }
14
+ });
15
+ }, observerOptions);
16
+
17
+ // Observe all cards and sections
18
+ document.addEventListener('DOMContentLoaded', () => {
19
+ const animateElements = document.querySelectorAll('.group, section > div');
20
+ animateElements.forEach((el, index) => {
21
+ el.style.opacity = '0';
22
+ el.style.transform = 'translateY(20px)';
23
+ el.style.transition = `opacity 0.6s ease ${index * 0.1}s, transform 0.6s ease ${index * 0.1}s`;
24
+ observer.observe(el);
25
+ });
26
+ });
27
+
28
+ // Custom Animation Classes
29
+ const style = document.createElement('style');
30
+ style.textContent = `
31
+ .animate-fade-in {
32
+ opacity: 1 !important;
33
+ transform: translateY(0) !important;
34
+ }
35
+
36
+ @keyframes float {
37
+ 0%, 100% { transform: translateY(0px); }
38
+ 50% { transform: translateY(-20px); }
39
+ }
40
+
41
+ .animate-float-slow {
42
+ animation: float 6s ease-in-out infinite;
43
+ }
44
+
45
+ .animate-float-medium {
46
+ animation: float 4s ease-in-out infinite;
47
+ }
48
+ `;
49
+ document.head.appendChild(style);
50
+
51
+ // Tool Cards Interaction
52
+ document.querySelectorAll('.tool-card').forEach(card => {
53
+ card.addEventListener('mouseenter', function() {
54
+ this.style.transform = 'translateY(-8px) scale(1.02)';
55
+ });
56
+
57
+ card.addEventListener('mouseleave', function() {
58
+ this.style.transform = 'translateY(0) scale(1)';
59
+ });
60
+ });
61
+
62
+ // Smooth Scroll for Anchor Links
63
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
64
+ anchor.addEventListener('click', function (e) {
65
+ e.preventDefault();
66
+ const target = document.querySelector(this.getAttribute('href'));
67
+ if (target) {
68
+ target.scrollIntoView({
69
+ behavior: 'smooth',
70
+ block: 'start'
71
+ });
72
+ }
73
+ });
74
+ });
75
+
76
+ // Mobile Menu Toggle Functionality (handled in web component, but backup here)
77
+ function toggleMobileMenu() {
78
+ const mobileMenu = document.querySelector('[data-mobile-menu]');
79
+ if (mobileMenu) {
80
+ mobileMenu.classList.toggle('hidden');
81
+ mobileMenu.classList.toggle('flex');
82
+ }
83
+ }
84
+
85
+ // Parallax Effect for Hero Section
86
+ window.addEventListener('scroll', () => {
87
+ const scrolled = window.pageYOffset;
88
+ const parallaxElements = document.querySelectorAll('.parallax');
89
+
90
+ parallaxElements.forEach(el => {
91
+ const speed = el.dataset.speed || 0.5;
92
+ el.style.transform = `translateY(${scrolled * speed}px)`;
93
+ });
94
+ });
95
+
96
+ // Dynamic Year Update
97
+ const yearElements = document.querySelectorAll('.current-year');
98
+ yearElements.forEach(el => {
99
+ el.textContent = new Date().getFullYear();
100
+ });
101
+
102
+ // Form Validation
103
+ function validateEmail(email) {
104
+ const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
105
+ return re.test(email);
106
+ }
107
+
108
+ // Newsletter Form Handler
109
+ const newsletterForms = document.querySelectorAll('form');
110
+ newsletterForms.forEach(form => {
111
+ form.addEventListener('submit', (e) => {
112
+ const emailInput = form.querySelector('input[type="email"]');
113
+ if (emailInput && !validateEmail(emailInput.value)) {
114
+ e.preventDefault();
115
+ emailInput.classList.add('border-red-500');
116
+ setTimeout(() => {
117
+ emailInput.classList.remove('border-red-500');
118
+ }, 3000);
119
+ }
120
+ });
121
+ });
122
+
123
+ // Toast Notification System
124
+ function showToast(message, type = 'success') {
125
+ const toast = document.createElement('div');
126
+ toast.className = `fixed bottom-4 right-4 px-6 py-4 rounded-xl text-white font-medium z-50 transform translate-y-20 transition-transform duration-300 ${
127
+ type === 'success' ? 'bg-green-600' : 'bg-red-600'
128
+ }`;
129
+ toast.textContent = message;
130
+ document.body.appendChild(toast);
131
+
132
+ setTimeout(() => {
133
+ toast.style.transform = 'translateY(0)';
134
+ }, 100);
135
+
136
+ setTimeout(() => {
137
+ toast.style.transform = 'translateY(20px)';
138
+ setTimeout(() => toast.remove(), 300);
139
+ }, 3000);
140
+ }
141
+
142
+ // Button Click Handlers for "Free" emphasis
143
+ document.querySelectorAll('button, a').forEach(btn => {
144
+ if (btn.textContent.includes('Try now') || btn.textContent.includes('Create')) {
145
+ btn.addEventListener('click', (e) => {
146
+ if (!btn.getAttribute('href') || btn.getAttribute('href') === '#') {
147
+ e.preventDefault();
148
+ showToast('Opening free tool... No credit card required!');
149
+ }
150
+ });
151
+ }
152
+ });
153
+
154
+ // Performance: Lazy load images
155
+ if ('IntersectionObserver' in window) {
156
+ const imageObserver = new IntersectionObserver((entries, observer) => {
157
+ entries.forEach(entry => {
158
+ if (entry.isIntersecting) {
159
+ const img = entry.target;
160
+ img.src = img.dataset.src || img.src;
161
+ img.classList.remove('lazy');
162
+ imageObserver.unobserve(img);
163
+ }
164
+ });
165
+ });
166
+
167
+ document.querySelectorAll('img').forEach(img => imageObserver.observe(img));
168
+ }
169
+
170
+ // Keyboard Navigation Enhancement
171
+ document.addEventListener('keydown', (e) => {
172
+ if (e.key === 'Tab') {
173
+ document.body.classList.add('keyboard-navigation');
174
+ }
175
+ });
176
+
177
+ document.addEventListener('mousedown', () => {
178
+ document.body.classList.remove('keyboard-navigation');
179
+ });
style.css CHANGED
@@ -1,28 +1,141 @@
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 Scrollbar */
2
+ ::-webkit-scrollbar {
3
+ width: 10px;
4
  }
5
 
6
+ ::-webkit-scrollbar-track {
7
+ background: #0f172a;
 
8
  }
9
 
10
+ ::-webkit-scrollbar-thumb {
11
+ background: #334155;
12
+ border-radius: 5px;
 
 
13
  }
14
 
15
+ ::-webkit-scrollbar-thumb:hover {
16
+ background: #475569;
 
 
 
 
17
  }
18
 
19
+ /* Smooth Scroll */
20
+ html {
21
+ scroll-behavior: smooth;
22
  }
23
+
24
+ /* Glassmorphism Utilities */
25
+ .glass {
26
+ background: rgba(30, 41, 59, 0.7);
27
+ backdrop-filter: blur(12px);
28
+ -webkit-backdrop-filter: blur(12px);
29
+ border: 1px solid rgba(255, 255, 255, 0.1);
30
+ }
31
+
32
+ /* Text Gradients */
33
+ .text-gradient {
34
+ background: linear-gradient(135deg, #8b5cf6 0%, #06b6d4 100%);
35
+ -webkit-background-clip: text;
36
+ -webkit-text-fill-color: transparent;
37
+ background-clip: text;
38
+ }
39
+
40
+ /* Animation Delays */
41
+ .delay-100 { animation-delay: 100ms; }
42
+ .delay-200 { animation-delay: 200ms; }
43
+ .delay-300 { animation-delay: 300ms; }
44
+ .delay-400 { animation-delay: 400ms; }
45
+ .delay-500 { animation-delay: 500ms; }
46
+
47
+ /* Hover Lift Effect */
48
+ .hover-lift {
49
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
50
+ }
51
+
52
+ .hover-lift:hover {
53
+ transform: translateY(-5px);
54
+ box-shadow: 0 20px 40px -15px rgba(139, 92, 246, 0.3);
55
+ }
56
+
57
+ /* Glow Effects */
58
+ .glow-primary {
59
+ box-shadow: 0 0 20px rgba(139, 92, 246, 0.5);
60
+ }
61
+
62
+ .glow-secondary {
63
+ box-shadow: 0 0 20px rgba(6, 182, 212, 0.5);
64
+ }
65
+
66
+ /* Loading Skeleton */
67
+ .skeleton {
68
+ background: linear-gradient(90deg, #1e293b 25%, #334155 50%, #1e293b 75%);
69
+ background-size: 200% 100%;
70
+ animation: loading 1.5s infinite;
71
+ }
72
+
73
+ @keyframes loading {
74
+ 0% { background-position: 200% 0; }
75
+ 100% { background-position: -200% 0; }
76
+ }
77
+
78
+ /* Custom Selection */
79
+ ::selection {
80
+ background: rgba(139, 92, 246, 0.3);
81
+ color: white;
82
+ }
83
+
84
+ /* Focus Visible */
85
+ *:focus-visible {
86
+ outline: 2px solid #8b5cf6;
87
+ outline-offset: 2px;
88
+ }
89
+
90
+ /* Mobile Menu Animation */
91
+ .mobile-menu-enter {
92
+ opacity: 0;
93
+ transform: translateY(-10px);
94
+ }
95
+
96
+ .mobile-menu-enter-active {
97
+ opacity: 1;
98
+ transform: translateY(0);
99
+ transition: opacity 0.3s ease, transform 0.3s ease;
100
+ }
101
+
102
+ /* Card Shine Effect */
103
+ .card-shine {
104
+ position: relative;
105
+ overflow: hidden;
106
+ }
107
+
108
+ .card-shine::before {
109
+ content: '';
110
+ position: absolute;
111
+ top: 0;
112
+ left: -100%;
113
+ width: 100%;
114
+ height: 100%;
115
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
116
+ transition: left 0.5s;
117
+ }
118
+
119
+ .card-shine:hover::before {
120
+ left: 100%;
121
+ }
122
+
123
+ /* Gradient Border */
124
+ .gradient-border {
125
+ position: relative;
126
+ background: #0f172a;
127
+ border-radius: 1rem;
128
+ }
129
+
130
+ .gradient-border::before {
131
+ content: '';
132
+ position: absolute;
133
+ inset: -2px;
134
+ border-radius: 1rem;
135
+ padding: 2px;
136
+ background: linear-gradient(135deg, #8b5cf6, #06b6d4);
137
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
138
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
139
+ -webkit-mask-composite: xor;
140
+ mask-composite: exclude;
141
+ }