abeea commited on
Commit
fce30e3
·
verified ·
1 Parent(s): 3cd2b86

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +1062 -19
index.html CHANGED
@@ -1,19 +1,1062 @@
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>AURA Fine Jewellery</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Josefin+Sans:wght@200;300;400&display=swap" rel="stylesheet">
8
+ <style>
9
+ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
10
+
11
+ :root {
12
+ --gold: #C9A84C;
13
+ --gold-light: #E8CC7A;
14
+ --gold-pale: #F5E8BF;
15
+ --gold-dark: #8B6914;
16
+ --black: #0A0A0A;
17
+ --black-soft: #111111;
18
+ --black-mid: #1A1A1A;
19
+ --black-card: #141414;
20
+ --white: #FAF7F2;
21
+ --white-dim: #D4CFC8;
22
+ --cream: #F0E6D3;
23
+ --border: rgba(201,168,76,0.25);
24
+ --border-bright: rgba(201,168,76,0.6);
25
+ }
26
+
27
+ html { scroll-behavior: smooth; }
28
+
29
+ body {
30
+ background: var(--black);
31
+ color: var(--white);
32
+ font-family: 'Josefin Sans', sans-serif;
33
+ font-weight: 300;
34
+ letter-spacing: 0.04em;
35
+ cursor: none;
36
+ overflow-x: hidden;
37
+ }
38
+
39
+ /* Custom cursor */
40
+ #cursor {
41
+ position: fixed; width: 10px; height: 10px;
42
+ background: var(--gold); border-radius: 50%;
43
+ pointer-events: none; z-index: 9999;
44
+ transform: translate(-50%, -50%);
45
+ transition: transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s;
46
+ mix-blend-mode: screen;
47
+ }
48
+ #cursor-ring {
49
+ position: fixed; width: 38px; height: 38px;
50
+ border: 1px solid rgba(201,168,76,0.5);
51
+ border-radius: 50%; pointer-events: none; z-index: 9998;
52
+ transform: translate(-50%, -50%);
53
+ transition: all 0.18s ease;
54
+ }
55
+ body.hover-active #cursor { width: 16px; height: 16px; background: var(--gold-light); }
56
+ body.hover-active #cursor-ring { width: 56px; height: 56px; border-color: var(--gold); }
57
+
58
+ /* Noise overlay */
59
+ body::before {
60
+ content: '';
61
+ position: fixed; inset: 0;
62
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
63
+ opacity: 0.025; pointer-events: none; z-index: 1000;
64
+ }
65
+
66
+ /* NAV */
67
+ nav {
68
+ position: fixed; top: 0; left: 0; right: 0; z-index: 500;
69
+ display: flex; align-items: center; justify-content: space-between;
70
+ padding: 28px 60px;
71
+ border-bottom: 1px solid transparent;
72
+ transition: all 0.5s ease;
73
+ }
74
+ nav.scrolled {
75
+ background: rgba(10,10,10,0.92);
76
+ backdrop-filter: blur(20px);
77
+ border-bottom-color: var(--border);
78
+ padding: 18px 60px;
79
+ }
80
+ .nav-logo {
81
+ font-family: 'Cormorant Garamond', serif;
82
+ font-size: 28px; font-weight: 300; letter-spacing: 0.3em;
83
+ color: var(--gold-light);
84
+ text-transform: uppercase; text-decoration: none;
85
+ }
86
+ .nav-logo span { color: var(--white); }
87
+ .nav-links { display: flex; gap: 48px; list-style: none; }
88
+ .nav-links a {
89
+ color: var(--white-dim); text-decoration: none;
90
+ font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
91
+ transition: color 0.3s;
92
+ position: relative;
93
+ }
94
+ .nav-links a::after {
95
+ content: ''; position: absolute; bottom: -4px; left: 0; right: 0;
96
+ height: 1px; background: var(--gold);
97
+ transform: scaleX(0); transform-origin: right;
98
+ transition: transform 0.4s ease;
99
+ }
100
+ .nav-links a:hover { color: var(--gold-light); }
101
+ .nav-links a:hover::after { transform: scaleX(1); transform-origin: left; }
102
+ .nav-actions { display: flex; align-items: center; gap: 24px; }
103
+ .nav-icon { color: var(--white-dim); font-size: 18px; text-decoration: none; transition: color 0.3s; cursor: none; }
104
+ .nav-icon:hover { color: var(--gold); }
105
+
106
+ /* HERO */
107
+ .hero {
108
+ min-height: 100vh; display: flex; align-items: center;
109
+ position: relative; overflow: hidden;
110
+ padding: 140px 60px 80px;
111
+ }
112
+ .hero-bg {
113
+ position: absolute; inset: 0;
114
+ background: radial-gradient(ellipse 70% 80% at 70% 50%, rgba(139,105,20,0.12) 0%, transparent 70%),
115
+ radial-gradient(ellipse 40% 50% at 20% 80%, rgba(201,168,76,0.05) 0%, transparent 60%);
116
+ }
117
+ .hero-lines {
118
+ position: absolute; inset: 0; overflow: hidden; pointer-events: none;
119
+ }
120
+ .hero-lines svg { position: absolute; inset: 0; width: 100%; height: 100%; }
121
+ .hero-content { position: relative; z-index: 2; max-width: 650px; }
122
+ .hero-badge {
123
+ display: inline-flex; align-items: center; gap: 12px;
124
+ margin-bottom: 40px;
125
+ font-size: 10px; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gold);
126
+ }
127
+ .hero-badge::before, .hero-badge::after {
128
+ content: ''; display: block; width: 40px; height: 1px; background: var(--gold-dark);
129
+ }
130
+ .hero h1 {
131
+ font-family: 'Cormorant Garamond', serif;
132
+ font-size: clamp(64px, 8vw, 112px); font-weight: 300;
133
+ line-height: 1.0; letter-spacing: -0.01em;
134
+ margin-bottom: 32px; color: var(--white);
135
+ }
136
+ .hero h1 em { font-style: italic; color: var(--gold-light); }
137
+ .hero p {
138
+ font-size: 13px; letter-spacing: 0.1em; line-height: 2;
139
+ color: var(--white-dim); max-width: 420px; margin-bottom: 56px;
140
+ }
141
+ .hero-cta { display: flex; align-items: center; gap: 32px; }
142
+ .btn-primary {
143
+ display: inline-flex; align-items: center; gap: 14px;
144
+ padding: 18px 48px; border: 1px solid var(--gold);
145
+ background: transparent; color: var(--gold-light);
146
+ font-family: 'Josefin Sans', sans-serif;
147
+ font-size: 11px; letter-spacing: 0.25em; text-transform: uppercase;
148
+ text-decoration: none; cursor: none;
149
+ transition: all 0.4s ease; position: relative; overflow: hidden;
150
+ }
151
+ .btn-primary::before {
152
+ content: ''; position: absolute; inset: 0;
153
+ background: var(--gold); transform: translateX(-101%);
154
+ transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
155
+ }
156
+ .btn-primary:hover::before { transform: translateX(0); }
157
+ .btn-primary:hover { color: var(--black); }
158
+ .btn-primary span { position: relative; z-index: 1; }
159
+ .btn-link {
160
+ font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
161
+ color: var(--white-dim); text-decoration: none; cursor: none;
162
+ transition: color 0.3s;
163
+ }
164
+ .btn-link:hover { color: var(--gold-light); }
165
+
166
+ .hero-visual {
167
+ position: absolute; right: -20px; top: 50%;
168
+ transform: translateY(-50%);
169
+ width: 45vw; max-width: 700px;
170
+ opacity: 0.85;
171
+ }
172
+ .hero-visual svg { width: 100%; height: auto; }
173
+
174
+ /* MARQUEE */
175
+ .marquee-section {
176
+ border-top: 1px solid var(--border);
177
+ border-bottom: 1px solid var(--border);
178
+ padding: 20px 0; overflow: hidden; background: var(--black-soft);
179
+ }
180
+ .marquee-track {
181
+ display: flex; width: max-content;
182
+ animation: marquee 28s linear infinite;
183
+ }
184
+ .marquee-item {
185
+ display: flex; align-items: center; gap: 36px;
186
+ padding: 0 36px; white-space: nowrap;
187
+ font-size: 10px; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gold-dark);
188
+ }
189
+ .marquee-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); opacity: 0.5; }
190
+ @keyframes marquee { to { transform: translateX(-50%); } }
191
+
192
+ /* CATEGORIES */
193
+ .section { padding: 120px 60px; }
194
+ .section-header { margin-bottom: 72px; }
195
+ .section-label {
196
+ font-size: 10px; letter-spacing: 0.4em; text-transform: uppercase;
197
+ color: var(--gold); margin-bottom: 16px; display: block;
198
+ }
199
+ .section-title {
200
+ font-family: 'Cormorant Garamond', serif;
201
+ font-size: clamp(36px, 4vw, 56px); font-weight: 300;
202
+ line-height: 1.15; color: var(--white);
203
+ }
204
+ .section-title em { font-style: italic; color: var(--gold-light); }
205
+
206
+ .categories-grid {
207
+ display: grid;
208
+ grid-template-columns: 2fr 1fr 1fr;
209
+ grid-template-rows: auto auto;
210
+ gap: 2px;
211
+ }
212
+ .cat-card {
213
+ position: relative; overflow: hidden;
214
+ cursor: none;
215
+ background: var(--black-card);
216
+ }
217
+ .cat-card:first-child { grid-row: span 2; }
218
+ .cat-inner {
219
+ position: relative; height: 100%;
220
+ min-height: 320px; display: flex; flex-direction: column;
221
+ justify-content: flex-end; padding: 40px;
222
+ overflow: hidden;
223
+ }
224
+ .cat-card:first-child .cat-inner { min-height: 640px; }
225
+ .cat-bg {
226
+ position: absolute; inset: 0;
227
+ display: flex; align-items: center; justify-content: center;
228
+ transition: transform 0.7s cubic-bezier(0.4,0,0.2,1);
229
+ }
230
+ .cat-card:hover .cat-bg { transform: scale(1.08); }
231
+ .cat-bg svg { width: 100%; height: 100%; }
232
+ .cat-overlay {
233
+ position: absolute; inset: 0;
234
+ background: linear-gradient(to top, rgba(10,10,10,0.85) 0%, rgba(10,10,10,0.1) 60%);
235
+ }
236
+ .cat-content { position: relative; z-index: 2; }
237
+ .cat-tag {
238
+ font-size: 9px; letter-spacing: 0.4em; text-transform: uppercase;
239
+ color: var(--gold); margin-bottom: 10px; display: block;
240
+ }
241
+ .cat-name {
242
+ font-family: 'Cormorant Garamond', serif;
243
+ font-size: 32px; font-weight: 300; color: var(--white);
244
+ margin-bottom: 16px;
245
+ }
246
+ .cat-card:first-child .cat-name { font-size: 48px; }
247
+ .cat-count {
248
+ font-size: 10px; letter-spacing: 0.2em; color: var(--white-dim);
249
+ display: flex; align-items: center; gap: 12px;
250
+ }
251
+ .cat-count::before { content: ''; display: block; width: 28px; height: 1px; background: var(--gold-dark); }
252
+
253
+ /* FEATURED PRODUCTS */
254
+ .products-grid {
255
+ display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
256
+ }
257
+ .product-card {
258
+ background: var(--black-card); cursor: none;
259
+ position: relative; overflow: hidden;
260
+ transition: background 0.3s;
261
+ }
262
+ .product-card:hover { background: var(--black-mid); }
263
+ .product-img {
264
+ aspect-ratio: 3/4; display: flex; align-items: center;
265
+ justify-content: center; position: relative; overflow: hidden;
266
+ background: var(--black-soft);
267
+ }
268
+ .product-img svg { width: 70%; height: 70%; transition: transform 0.6s ease; }
269
+ .product-card:hover .product-img svg { transform: scale(1.08) rotate(2deg); }
270
+ .product-badge {
271
+ position: absolute; top: 20px; left: 20px;
272
+ background: var(--gold); color: var(--black);
273
+ font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
274
+ padding: 4px 12px;
275
+ }
276
+ .product-info { padding: 28px 28px 32px; }
277
+ .product-category {
278
+ font-size: 9px; letter-spacing: 0.3em; text-transform: uppercase;
279
+ color: var(--gold-dark); margin-bottom: 8px;
280
+ }
281
+ .product-name {
282
+ font-family: 'Cormorant Garamond', serif;
283
+ font-size: 22px; font-weight: 400; color: var(--white);
284
+ margin-bottom: 12px; line-height: 1.3;
285
+ }
286
+ .product-footer { display: flex; justify-content: space-between; align-items: center; }
287
+ .product-price { font-size: 13px; color: var(--gold-light); letter-spacing: 0.05em; }
288
+ .product-add {
289
+ width: 40px; height: 40px; border: 1px solid var(--border);
290
+ display: flex; align-items: center; justify-content: center;
291
+ color: var(--gold); font-size: 20px; cursor: none;
292
+ transition: all 0.3s; background: transparent;
293
+ }
294
+ .product-add:hover { background: var(--gold); color: var(--black); border-color: var(--gold); }
295
+
296
+ /* MATERIALS / VALUES */
297
+ .materials-section {
298
+ background: var(--black-soft);
299
+ border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
300
+ }
301
+ .materials-inner {
302
+ display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 100px;
303
+ }
304
+ .materials-text .section-title { margin-bottom: 28px; }
305
+ .materials-text p {
306
+ font-size: 13px; line-height: 2.2; color: var(--white-dim);
307
+ margin-bottom: 48px; letter-spacing: 0.05em;
308
+ }
309
+ .material-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; }
310
+ .pill {
311
+ padding: 8px 22px; border: 1px solid var(--border);
312
+ font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase;
313
+ color: var(--white-dim); transition: all 0.3s; cursor: none;
314
+ }
315
+ .pill:hover, .pill.active { border-color: var(--gold); color: var(--gold-light); }
316
+ .materials-visual { display: flex; justify-content: center; align-items: center; }
317
+
318
+ /* VALUES STRIP */
319
+ .values-strip {
320
+ display: grid; grid-template-columns: repeat(4, 1fr);
321
+ border-top: 1px solid var(--border);
322
+ }
323
+ .value-item {
324
+ padding: 56px 40px;
325
+ border-right: 1px solid var(--border);
326
+ text-align: center;
327
+ transition: background 0.3s;
328
+ cursor: none;
329
+ }
330
+ .value-item:last-child { border-right: none; }
331
+ .value-item:hover { background: rgba(201,168,76,0.04); }
332
+ .value-icon { margin-bottom: 20px; }
333
+ .value-icon svg { width: 36px; height: 36px; }
334
+ .value-title {
335
+ font-family: 'Cormorant Garamond', serif;
336
+ font-size: 20px; font-weight: 400; color: var(--gold-light);
337
+ margin-bottom: 10px;
338
+ }
339
+ .value-text { font-size: 11px; color: var(--white-dim); line-height: 1.9; letter-spacing: 0.05em; }
340
+
341
+ /* TESTIMONIAL */
342
+ .testimonial-section {
343
+ text-align: center; padding: 120px 60px;
344
+ background: var(--black-mid);
345
+ border-top: 1px solid var(--border);
346
+ }
347
+ .testimonial-quote {
348
+ font-family: 'Cormorant Garamond', serif;
349
+ font-size: clamp(28px, 3.5vw, 48px); font-weight: 300;
350
+ font-style: italic; line-height: 1.5;
351
+ color: var(--white); max-width: 820px; margin: 0 auto 40px;
352
+ }
353
+ .testimonial-quote em { color: var(--gold-light); font-style: normal; }
354
+ .testimonial-author { font-size: 10px; letter-spacing: 0.35em; text-transform: uppercase; color: var(--gold-dark); }
355
+ .quote-mark {
356
+ font-family: 'Cormorant Garamond', serif;
357
+ font-size: 120px; color: var(--gold-dark); opacity: 0.3;
358
+ line-height: 0.8; display: block; margin-bottom: 24px;
359
+ }
360
+
361
+ /* NEWSLETTER */
362
+ .newsletter-section {
363
+ padding: 100px 60px; border-top: 1px solid var(--border);
364
+ display: flex; align-items: center; justify-content: space-between; gap: 60px;
365
+ }
366
+ .newsletter-text .section-title { font-size: 40px; }
367
+ .newsletter-text p { font-size: 13px; color: var(--white-dim); margin-top: 16px; letter-spacing: 0.05em; line-height: 1.9; }
368
+ .newsletter-form { display: flex; gap: 0; flex: 0 0 480px; }
369
+ .newsletter-input {
370
+ flex: 1; padding: 18px 24px;
371
+ background: var(--black-mid); border: 1px solid var(--border);
372
+ border-right: none; color: var(--white);
373
+ font-family: 'Josefin Sans', sans-serif;
374
+ font-size: 12px; letter-spacing: 0.1em; outline: none;
375
+ transition: border-color 0.3s;
376
+ }
377
+ .newsletter-input::placeholder { color: var(--white-dim); opacity: 0.5; }
378
+ .newsletter-input:focus { border-color: var(--gold); }
379
+ .newsletter-btn {
380
+ padding: 18px 32px; background: var(--gold);
381
+ border: 1px solid var(--gold); color: var(--black);
382
+ font-family: 'Josefin Sans', sans-serif;
383
+ font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase;
384
+ cursor: none; transition: background 0.3s, color 0.3s;
385
+ }
386
+ .newsletter-btn:hover { background: var(--gold-light); }
387
+
388
+ /* FOOTER */
389
+ footer {
390
+ background: var(--black-soft); border-top: 1px solid var(--border);
391
+ padding: 80px 60px 40px;
392
+ }
393
+ .footer-top {
394
+ display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
395
+ gap: 60px; margin-bottom: 60px;
396
+ }
397
+ .footer-brand { }
398
+ .footer-logo {
399
+ font-family: 'Cormorant Garamond', serif;
400
+ font-size: 32px; font-weight: 300; letter-spacing: 0.3em;
401
+ color: var(--gold-light); display: block; margin-bottom: 20px;
402
+ }
403
+ .footer-tagline { font-size: 11px; color: var(--white-dim); line-height: 2; max-width: 260px; }
404
+ .footer-col h4 {
405
+ font-size: 10px; letter-spacing: 0.35em; text-transform: uppercase;
406
+ color: var(--gold); margin-bottom: 24px;
407
+ }
408
+ .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
409
+ .footer-col a {
410
+ font-size: 12px; color: var(--white-dim); text-decoration: none;
411
+ letter-spacing: 0.08em; transition: color 0.3s;
412
+ }
413
+ .footer-col a:hover { color: var(--gold-light); }
414
+ .footer-bottom {
415
+ border-top: 1px solid var(--border); padding-top: 28px;
416
+ display: flex; justify-content: space-between; align-items: center;
417
+ }
418
+ .footer-copy { font-size: 10px; color: var(--gold-dark); letter-spacing: 0.2em; }
419
+ .footer-socials { display: flex; gap: 24px; }
420
+ .footer-socials a { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--white-dim); text-decoration: none; transition: color 0.3s; }
421
+ .footer-socials a:hover { color: var(--gold); }
422
+
423
+ /* ANIMATIONS */
424
+ .reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
425
+ .reveal.visible { opacity: 1; transform: translateY(0); }
426
+ .reveal-delay-1 { transition-delay: 0.1s; }
427
+ .reveal-delay-2 { transition-delay: 0.2s; }
428
+ .reveal-delay-3 { transition-delay: 0.3s; }
429
+
430
+ /* FLOATING GEMS CANVAS */
431
+ #gems-canvas {
432
+ position: fixed; inset: 0; pointer-events: none; z-index: 0;
433
+ opacity: 0.6;
434
+ }
435
+ </style>
436
+ </head>
437
+ <body>
438
+
439
+ <div id="cursor"></div>
440
+ <div id="cursor-ring"></div>
441
+ <canvas id="gems-canvas"></canvas>
442
+
443
+ <!-- NAV -->
444
+ <nav id="navbar">
445
+ <a href="#" class="nav-logo">AURA<span>.</span></a>
446
+ <ul class="nav-links">
447
+ <li><a href="#collections">Collections</a></li>
448
+ <li><a href="#craftsmanship">Craftsmanship</a></li>
449
+ <li><a href="#bespoke">Bespoke</a></li>
450
+ <li><a href="#atelier">Atelier</a></li>
451
+ </ul>
452
+ <div class="nav-actions">
453
+ <a href="#" class="nav-icon" title="Search">⌕</a>
454
+ <a href="#" class="nav-icon" title="Wishlist">♡</a>
455
+ <a href="#" class="nav-icon" title="Bag">◻</a>
456
+ </div>
457
+ </nav>
458
+
459
+ <!-- HERO -->
460
+ <section class="hero">
461
+ <div class="hero-bg"></div>
462
+ <div class="hero-lines">
463
+ <svg viewBox="0 0 1400 900" preserveAspectRatio="xMidYMid slice">
464
+ <defs>
465
+ <radialGradient id="glow1" cx="50%" cy="50%">
466
+ <stop offset="0%" stop-color="#C9A84C" stop-opacity="0.15"/>
467
+ <stop offset="100%" stop-color="#C9A84C" stop-opacity="0"/>
468
+ </radialGradient>
469
+ </defs>
470
+ <circle cx="1050" cy="450" r="320" fill="url(#glow1)"/>
471
+ <line x1="0" y1="900" x2="1400" y2="0" stroke="#C9A84C" stroke-width="0.3" opacity="0.15"/>
472
+ <line x1="700" y1="0" x2="700" y2="900" stroke="#C9A84C" stroke-width="0.3" opacity="0.1"/>
473
+ </svg>
474
+ </div>
475
+ <div class="hero-content reveal">
476
+ <div class="hero-badge">New Collection 2025</div>
477
+ <h1>Worn<br>by the <em>Bold.</em><br>Made for<br>the Rare.</h1>
478
+ <p>Handcrafted fine jewellery using ethically sourced gemstones and precious metals. Each piece tells a singular story.</p>
479
+ <div class="hero-cta">
480
+ <a href="#collections" class="btn-primary"><span>Explore Collection</span> <span>→</span></a>
481
+ <a href="#bespoke" class="btn-link">Bespoke Creation</a>
482
+ </div>
483
+ </div>
484
+ <div class="hero-visual">
485
+ <svg viewBox="0 0 600 700" xmlns="http://www.w3.org/2000/svg">
486
+ <defs>
487
+ <radialGradient id="gemGrad" cx="35%" cy="30%">
488
+ <stop offset="0%" stop-color="#F5E8BF"/>
489
+ <stop offset="40%" stop-color="#C9A84C"/>
490
+ <stop offset="100%" stop-color="#3D2C08"/>
491
+ </radialGradient>
492
+ <radialGradient id="gemGrad2" cx="35%" cy="30%">
493
+ <stop offset="0%" stop-color="#E8F4FF"/>
494
+ <stop offset="40%" stop-color="#7BAED4"/>
495
+ <stop offset="100%" stop-color="#1A3A52"/>
496
+ </radialGradient>
497
+ <radialGradient id="rubyGrad" cx="35%" cy="30%">
498
+ <stop offset="0%" stop-color="#FFD4D4"/>
499
+ <stop offset="40%" stop-color="#C94C4C"/>
500
+ <stop offset="100%" stop-color="#3D0808"/>
501
+ </radialGradient>
502
+ <filter id="glow">
503
+ <feGaussianBlur stdDeviation="3" result="blur"/>
504
+ <feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
505
+ </filter>
506
+ </defs>
507
+ <!-- Large statement ring -->
508
+ <ellipse cx="300" cy="360" rx="180" ry="48" fill="none" stroke="#C9A84C" stroke-width="22" opacity="0.9"/>
509
+ <ellipse cx="300" cy="360" rx="180" ry="48" fill="none" stroke="#F5E8BF" stroke-width="2" opacity="0.5"/>
510
+ <!-- Ring detail lines -->
511
+ <ellipse cx="300" cy="360" rx="158" ry="34" fill="none" stroke="#8B6914" stroke-width="1" opacity="0.6"/>
512
+ <!-- Centre stone -->
513
+ <polygon points="300,270 340,320 320,360 280,360 260,320" fill="url(#gemGrad)" filter="url(#glow)"/>
514
+ <polygon points="300,270 340,320 300,290" fill="#F5E8BF" opacity="0.4"/>
515
+ <polygon points="300,270 260,320 300,290" fill="#E8CC7A" opacity="0.3"/>
516
+ <line x1="300" y1="270" x2="300" y2="360" stroke="#FAF7F2" stroke-width="0.5" opacity="0.3"/>
517
+ <!-- Side diamonds -->
518
+ <polygon points="215,345 230,330 245,345 230,360" fill="url(#gemGrad2)" opacity="0.85"/>
519
+ <polygon points="215,345 230,330 222,352" fill="white" opacity="0.25"/>
520
+ <polygon points="355,345 370,330 385,345 370,360" fill="url(#gemGrad2)" opacity="0.85"/>
521
+ <polygon points="355,345 370,330 362,352" fill="white" opacity="0.25"/>
522
+ <!-- Small accent gems -->
523
+ <circle cx="162" cy="358" r="7" fill="url(#rubyGrad)" opacity="0.8"/>
524
+ <circle cx="438" cy="358" r="7" fill="url(#rubyGrad)" opacity="0.8"/>
525
+ <!-- Floating small gems -->
526
+ <polygon points="150,200 160,185 170,200 160,215" fill="url(#gemGrad)" opacity="0.6"/>
527
+ <polygon points="430,150 440,135 450,150 440,165" fill="url(#gemGrad2)" opacity="0.5"/>
528
+ <circle cx="100" cy="480" r="9" fill="url(#rubyGrad)" opacity="0.4"/>
529
+ <polygon points="490,500 500,485 510,500 500,515" fill="url(#gemGrad)" opacity="0.4"/>
530
+ <circle cx="480" cy="250" r="6" fill="#C9A84C" opacity="0.4"/>
531
+ <circle cx="130" cy="300" r="5" fill="#C9A84C" opacity="0.3"/>
532
+ <!-- Decorative arcs -->
533
+ <path d="M200,180 Q300,120 400,180" fill="none" stroke="#C9A84C" stroke-width="0.8" opacity="0.2"/>
534
+ <path d="M180,560 Q300,620 420,560" fill="none" stroke="#C9A84C" stroke-width="0.8" opacity="0.2"/>
535
+ <!-- Gold dust particles -->
536
+ <circle cx="240" cy="240" r="2" fill="#C9A84C" opacity="0.5"/>
537
+ <circle cx="370" cy="230" r="1.5" fill="#C9A84C" opacity="0.4"/>
538
+ <circle cx="185" cy="410" r="1.5" fill="#C9A84C" opacity="0.4"/>
539
+ <circle cx="415" cy="420" r="2" fill="#C9A84C" opacity="0.5"/>
540
+ <circle cx="320" cy="480" r="1.5" fill="#E8CC7A" opacity="0.5"/>
541
+ <circle cx="260" cy="490" r="1" fill="#E8CC7A" opacity="0.4"/>
542
+ </svg>
543
+ </div>
544
+ </section>
545
+
546
+ <!-- MARQUEE -->
547
+ <div class="marquee-section">
548
+ <div class="marquee-track">
549
+ <div class="marquee-item"><span class="marquee-dot"></span> 18 Karat Gold</div>
550
+ <div class="marquee-item"><span class="marquee-dot"></span> Conflict-Free Diamonds</div>
551
+ <div class="marquee-item"><span class="marquee-dot"></span> Handcrafted Artisanship</div>
552
+ <div class="marquee-item"><span class="marquee-dot"></span> GIA Certified Stones</div>
553
+ <div class="marquee-item"><span class="marquee-dot"></span> Bespoke Commissions</div>
554
+ <div class="marquee-item"><span class="marquee-dot"></span> Lifetime Guarantee</div>
555
+ <div class="marquee-item"><span class="marquee-dot"></span> Free Engraving</div>
556
+ <div class="marquee-item"><span class="marquee-dot"></span> White Glove Delivery</div>
557
+ <div class="marquee-item"><span class="marquee-dot"></span> 18 Karat Gold</div>
558
+ <div class="marquee-item"><span class="marquee-dot"></span> Conflict-Free Diamonds</div>
559
+ <div class="marquee-item"><span class="marquee-dot"></span> Handcrafted Artisanship</div>
560
+ <div class="marquee-item"><span class="marquee-dot"></span> GIA Certified Stones</div>
561
+ <div class="marquee-item"><span class="marquee-dot"></span> Bespoke Commissions</div>
562
+ <div class="marquee-item"><span class="marquee-dot"></span> Lifetime Guarantee</div>
563
+ <div class="marquee-item"><span class="marquee-dot"></span> Free Engraving</div>
564
+ <div class="marquee-item"><span class="marquee-dot"></span> White Glove Delivery</div>
565
+ </div>
566
+ </div>
567
+
568
+ <!-- CATEGORIES -->
569
+ <section class="section" id="collections">
570
+ <div class="section-header reveal">
571
+ <span class="section-label">Explore</span>
572
+ <h2 class="section-title">Our <em>Collections</em></h2>
573
+ </div>
574
+ <div class="categories-grid">
575
+ <div class="cat-card reveal">
576
+ <div class="cat-inner">
577
+ <div class="cat-bg">
578
+ <svg viewBox="0 0 500 640" xmlns="http://www.w3.org/2000/svg">
579
+ <rect width="500" height="640" fill="#0E0D0A"/>
580
+ <circle cx="250" cy="280" r="200" fill="none" stroke="#C9A84C" stroke-width="0.5" opacity="0.2"/>
581
+ <circle cx="250" cy="280" r="140" fill="none" stroke="#C9A84C" stroke-width="0.5" opacity="0.15"/>
582
+ <!-- Necklace pendant -->
583
+ <path d="M250,120 L250,240" stroke="#C9A84C" stroke-width="3" fill="none"/>
584
+ <ellipse cx="250" cy="118" rx="60" ry="12" fill="none" stroke="#C9A84C" stroke-width="3"/>
585
+ <polygon points="250,240 278,290 250,310 222,290" fill="#C9A84C"/>
586
+ <polygon points="250,240 278,290 250,265" fill="#F5E8BF" opacity="0.5"/>
587
+ <circle cx="250" cy="310" r="8" fill="#7BAED4"/>
588
+ <polygon points="250,200 258,215 250,208" fill="#F5E8BF" opacity="0.3"/>
589
+ <!-- Radial lines -->
590
+ <g opacity="0.12" stroke="#C9A84C" stroke-width="0.5">
591
+ <line x1="250" y1="80" x2="250" y2="0"/>
592
+ <line x1="250" y1="480" x2="250" y2="640"/>
593
+ <line x1="80" y1="280" x2="0" y2="280"/>
594
+ <line x1="420" y1="280" x2="500" y2="280"/>
595
+ </g>
596
+ </svg>
597
+ </div>
598
+ <div class="cat-overlay"></div>
599
+ <div class="cat-content">
600
+ <span class="cat-tag">Collection 01</span>
601
+ <h3 class="cat-name">Necklaces &amp; Pendants</h3>
602
+ <span class="cat-count">42 pieces</span>
603
+ </div>
604
+ </div>
605
+ </div>
606
+ <div class="cat-card reveal reveal-delay-1">
607
+ <div class="cat-inner">
608
+ <div class="cat-bg">
609
+ <svg viewBox="0 0 400 320" xmlns="http://www.w3.org/2000/svg">
610
+ <rect width="400" height="320" fill="#0C0B08"/>
611
+ <ellipse cx="200" cy="160" rx="130" ry="38" fill="none" stroke="#C9A84C" stroke-width="18" opacity="0.9"/>
612
+ <ellipse cx="200" cy="160" rx="130" ry="38" fill="none" stroke="#F5E8BF" stroke-width="1" opacity="0.4"/>
613
+ <polygon points="200,90 218,122 200,106" fill="#C94C4C" opacity="0.7"/>
614
+ <polygon points="200,90 182,122 200,106" fill="#FF8080" opacity="0.4"/>
615
+ <circle cx="90" cy="158" r="7" fill="#7BAED4" opacity="0.8"/>
616
+ <circle cx="310" cy="158" r="7" fill="#7BAED4" opacity="0.8"/>
617
+ </svg>
618
+ </div>
619
+ <div class="cat-overlay"></div>
620
+ <div class="cat-content">
621
+ <span class="cat-tag">Collection 02</span>
622
+ <h3 class="cat-name">Rings</h3>
623
+ <span class="cat-count">68 pieces</span>
624
+ </div>
625
+ </div>
626
+ </div>
627
+ <div class="cat-card reveal reveal-delay-2">
628
+ <div class="cat-inner">
629
+ <div class="cat-bg">
630
+ <svg viewBox="0 0 400 320" xmlns="http://www.w3.org/2000/svg">
631
+ <rect width="400" height="320" fill="#0C0B08"/>
632
+ <!-- Earring pair -->
633
+ <path d="M150,60 L150,180" stroke="#C9A84C" stroke-width="2.5" fill="none"/>
634
+ <circle cx="150" cy="55" r="10" fill="none" stroke="#C9A84C" stroke-width="2.5"/>
635
+ <polygon points="150,180 165,215 150,230 135,215" fill="#C9A84C"/>
636
+ <circle cx="150" cy="230" r="8" fill="#7BAED4"/>
637
+ <path d="M250,60 L250,180" stroke="#C9A84C" stroke-width="2.5" fill="none"/>
638
+ <circle cx="250" cy="55" r="10" fill="none" stroke="#C9A84C" stroke-width="2.5"/>
639
+ <polygon points="250,180 265,215 250,230 235,215" fill="#C9A84C"/>
640
+ <circle cx="250" cy="230" r="8" fill="#7BAED4"/>
641
+ </svg>
642
+ </div>
643
+ <div class="cat-overlay"></div>
644
+ <div class="cat-content">
645
+ <span class="cat-tag">Collection 03</span>
646
+ <h3 class="cat-name">Earrings</h3>
647
+ <span class="cat-count">54 pieces</span>
648
+ </div>
649
+ </div>
650
+ </div>
651
+ <div class="cat-card reveal reveal-delay-1">
652
+ <div class="cat-inner">
653
+ <div class="cat-bg">
654
+ <svg viewBox="0 0 400 320" xmlns="http://www.w3.org/2000/svg">
655
+ <rect width="400" height="320" fill="#0C0B08"/>
656
+ <!-- Bracelet -->
657
+ <path d="M100,160 Q200,100 300,160 Q200,220 100,160" fill="none" stroke="#C9A84C" stroke-width="14" opacity="0.9"/>
658
+ <path d="M100,160 Q200,100 300,160 Q200,220 100,160" fill="none" stroke="#F5E8BF" stroke-width="1" opacity="0.4"/>
659
+ <circle cx="200" cy="116" r="10" fill="#C94C4C" opacity="0.9"/>
660
+ <circle cx="148" cy="132" r="7" fill="#7BAED4" opacity="0.8"/>
661
+ <circle cx="252" cy="132" r="7" fill="#7BAED4" opacity="0.8"/>
662
+ <circle cx="200" cy="204" r="10" fill="#C9A84C" opacity="0.9"/>
663
+ </svg>
664
+ </div>
665
+ <div class="cat-overlay"></div>
666
+ <div class="cat-content">
667
+ <span class="cat-tag">Collection 04</span>
668
+ <h3 class="cat-name">Bracelets</h3>
669
+ <span class="cat-count">31 pieces</span>
670
+ </div>
671
+ </div>
672
+ </div>
673
+ <div class="cat-card reveal reveal-delay-2">
674
+ <div class="cat-inner">
675
+ <div class="cat-bg">
676
+ <svg viewBox="0 0 400 320" xmlns="http://www.w3.org/2000/svg">
677
+ <rect width="400" height="320" fill="#0C0B08"/>
678
+ <!-- Brooch -->
679
+ <polygon points="200,80 214,126 262,126 224,154 238,200 200,172 162,200 176,154 138,126 186,126" fill="none" stroke="#C9A84C" stroke-width="2" opacity="0.9"/>
680
+ <polygon points="200,80 214,126 262,126 224,154 238,200 200,172 162,200 176,154 138,126 186,126" fill="#C9A84C" opacity="0.08"/>
681
+ <circle cx="200" cy="150" r="22" fill="url(#gemGrad)" opacity="0.9"/>
682
+ <circle cx="200" cy="150" r="14" fill="#F5E8BF" opacity="0.3"/>
683
+ <!-- Star points glow -->
684
+ <circle cx="200" cy="82" r="4" fill="#E8CC7A"/>
685
+ <circle cx="261" cy="127" r="3" fill="#E8CC7A"/>
686
+ <circle cx="237" cy="199" r="3" fill="#E8CC7A"/>
687
+ <circle cx="163" cy="199" r="3" fill="#E8CC7A"/>
688
+ <circle cx="139" cy="127" r="3" fill="#E8CC7A"/>
689
+ </svg>
690
+ </div>
691
+ <div class="cat-overlay"></div>
692
+ <div class="cat-content">
693
+ <span class="cat-tag">Collection 05</span>
694
+ <h3 class="cat-name">Brooches</h3>
695
+ <span class="cat-count">18 pieces</span>
696
+ </div>
697
+ </div>
698
+ </div>
699
+ </div>
700
+ </section>
701
+
702
+ <!-- FEATURED PRODUCTS -->
703
+ <section class="section" style="padding-top: 0;">
704
+ <div class="section-header reveal">
705
+ <span class="section-label">Featured</span>
706
+ <h2 class="section-title">Selected <em>Pieces</em></h2>
707
+ </div>
708
+ <div class="products-grid">
709
+ <div class="product-card reveal">
710
+ <div class="product-img">
711
+ <div class="product-badge">New</div>
712
+ <svg viewBox="0 0 300 380" xmlns="http://www.w3.org/2000/svg">
713
+ <rect width="300" height="380" fill="#0E0D0A"/>
714
+ <defs>
715
+ <radialGradient id="d1" cx="35%" cy="30%"><stop offset="0%" stop-color="#FFF9ED"/><stop offset="50%" stop-color="#C9A84C"/><stop offset="100%" stop-color="#3D2C08"/></radialGradient>
716
+ </defs>
717
+ <circle cx="150" cy="170" r="110" fill="none" stroke="#C9A84C" stroke-width="18"/>
718
+ <circle cx="150" cy="170" r="91" fill="none" stroke="#8B6914" stroke-width="0.8" opacity="0.5"/>
719
+ <polygon points="150,90 165,135 150,118" fill="#FFF9ED" opacity="0.3"/>
720
+ <polygon points="150,90 135,135 150,118" fill="#E8CC7A" opacity="0.2"/>
721
+ <circle cx="150" cy="170" r="28" fill="url(#d1)"/>
722
+ <circle cx="150" cy="170" r="18" fill="#FFF9ED" opacity="0.2"/>
723
+ <circle cx="82" cy="148" r="8" fill="#7BAED4"/>
724
+ <circle cx="218" cy="148" r="8" fill="#7BAED4"/>
725
+ <circle cx="150" cy="82" r="8" fill="#C94C4C"/>
726
+ <circle cx="82" cy="192" r="6" fill="#C9A84C"/>
727
+ <circle cx="218" cy="192" r="6" fill="#C9A84C"/>
728
+ </svg>
729
+ </div>
730
+ <div class="product-info">
731
+ <span class="product-category">Ring</span>
732
+ <h3 class="product-name">Soleil Diamond Solitaire</h3>
733
+ <div class="product-footer">
734
+ <span class="product-price">PKR 485,000</span>
735
+ <button class="product-add">+</button>
736
+ </div>
737
+ </div>
738
+ </div>
739
+ <div class="product-card reveal reveal-delay-1">
740
+ <div class="product-img">
741
+ <svg viewBox="0 0 300 380" xmlns="http://www.w3.org/2000/svg">
742
+ <rect width="300" height="380" fill="#0E0D0A"/>
743
+ <path d="M150,60 L150,220" stroke="#C9A84C" stroke-width="3" fill="none"/>
744
+ <ellipse cx="150" cy="57" rx="50" ry="10" fill="none" stroke="#C9A84C" stroke-width="3"/>
745
+ <polygon points="150,220 180,270 150,295 120,270" fill="#C9A84C"/>
746
+ <polygon points="150,220 180,270 150,248" fill="#FFF9ED" opacity="0.45"/>
747
+ <circle cx="150" cy="295" r="12" fill="#7BAED4"/>
748
+ <circle cx="150" cy="295" r="7" fill="#B8D9F0" opacity="0.5"/>
749
+ <circle cx="120" cy="150" r="5" fill="#C9A84C" opacity="0.5"/>
750
+ <circle cx="180" cy="150" r="5" fill="#C9A84C" opacity="0.5"/>
751
+ <circle cx="150" cy="140" r="4" fill="#E8CC7A" opacity="0.4"/>
752
+ </svg>
753
+ </div>
754
+ <div class="product-info">
755
+ <span class="product-category">Pendant</span>
756
+ <h3 class="product-name">Lune Sapphire Drop</h3>
757
+ <div class="product-footer">
758
+ <span class="product-price">PKR 228,000</span>
759
+ <button class="product-add">+</button>
760
+ </div>
761
+ </div>
762
+ </div>
763
+ <div class="product-card reveal reveal-delay-2">
764
+ <div class="product-img">
765
+ <div class="product-badge" style="background:var(--black); color:var(--gold); border:1px solid var(--gold);">Limited</div>
766
+ <svg viewBox="0 0 300 380" xmlns="http://www.w3.org/2000/svg">
767
+ <rect width="300" height="380" fill="#0E0D0A"/>
768
+ <path d="M80,190 Q150,130 220,190 Q150,250 80,190" fill="none" stroke="#C9A84C" stroke-width="18"/>
769
+ <path d="M80,190 Q150,130 220,190 Q150,250 80,190" fill="none" stroke="#F5E8BF" stroke-width="1" opacity="0.3"/>
770
+ <circle cx="150" cy="148" r="12" fill="#C94C4C"/>
771
+ <circle cx="150" cy="148" r="6" fill="#FFB0B0" opacity="0.5"/>
772
+ <circle cx="110" cy="162" r="8" fill="#C9A84C"/>
773
+ <circle cx="190" cy="162" r="8" fill="#C9A84C"/>
774
+ <circle cx="110" cy="218" r="8" fill="#C9A84C"/>
775
+ <circle cx="190" cy="218" r="8" fill="#C9A84C"/>
776
+ <circle cx="150" cy="232" r="10" fill="#7BAED4"/>
777
+ </svg>
778
+ </div>
779
+ <div class="product-info">
780
+ <span class="product-category">Bracelet</span>
781
+ <h3 class="product-name">Celeste Ruby Cuff</h3>
782
+ <div class="product-footer">
783
+ <span class="product-price">PKR 372,000</span>
784
+ <button class="product-add">+</button>
785
+ </div>
786
+ </div>
787
+ </div>
788
+ </div>
789
+ </section>
790
+
791
+ <!-- CRAFTSMANSHIP -->
792
+ <section class="section materials-section" id="craftsmanship">
793
+ <div class="materials-inner">
794
+ <div class="materials-text reveal">
795
+ <span class="section-label">Our Craft</span>
796
+ <h2 class="section-title">Forged in <em>Tradition,</em><br>Designed for<br>the Modern Age</h2>
797
+ <p>Every AURA piece passes through the hands of master craftspeople who carry generations of goldsmithing knowledge. We work only with 18-karat gold, platinum, and GIA-certified stones — because excellence tolerates no compromise.</p>
798
+ <div class="material-pills">
799
+ <span class="pill active">18K Gold</span>
800
+ <span class="pill">Platinum</span>
801
+ <span class="pill">Rose Gold</span>
802
+ <span class="pill">White Gold</span>
803
+ <span class="pill">Diamonds</span>
804
+ <span class="pill">Sapphires</span>
805
+ <span class="pill">Rubies</span>
806
+ <span class="pill">Emeralds</span>
807
+ </div>
808
+ <a href="#atelier" class="btn-primary"><span>Visit Our Atelier</span> <span>→</span></a>
809
+ </div>
810
+ <div class="materials-visual reveal reveal-delay-2">
811
+ <svg viewBox="0 0 420 520" xmlns="http://www.w3.org/2000/svg">
812
+ <defs>
813
+ <radialGradient id="sphereGrad" cx="38%" cy="35%">
814
+ <stop offset="0%" stop-color="#F5E8BF"/>
815
+ <stop offset="30%" stop-color="#C9A84C"/>
816
+ <stop offset="70%" stop-color="#8B6914"/>
817
+ <stop offset="100%" stop-color="#2A1E06"/>
818
+ </radialGradient>
819
+ </defs>
820
+ <!-- Decorative circle frame -->
821
+ <circle cx="210" cy="260" r="190" fill="none" stroke="#C9A84C" stroke-width="0.5" opacity="0.2" stroke-dasharray="4 8"/>
822
+ <circle cx="210" cy="260" r="160" fill="none" stroke="#C9A84C" stroke-width="0.5" opacity="0.15"/>
823
+ <!-- Gold sphere / polished gem -->
824
+ <circle cx="210" cy="260" r="120" fill="url(#sphereGrad)"/>
825
+ <ellipse cx="175" cy="215" rx="40" ry="25" fill="white" opacity="0.12" transform="rotate(-20,175,215)"/>
826
+ <!-- Facet lines -->
827
+ <line x1="210" y1="140" x2="210" y2="380" stroke="#3D2C08" stroke-width="0.8" opacity="0.5"/>
828
+ <line x1="90" y1="260" x2="330" y2="260" stroke="#3D2C08" stroke-width="0.8" opacity="0.5"/>
829
+ <ellipse cx="210" cy="260" rx="120" ry="40" fill="none" stroke="#3D2C08" stroke-width="0.8" opacity="0.4"/>
830
+ <ellipse cx="210" cy="260" rx="50" ry="120" fill="none" stroke="#3D2C08" stroke-width="0.8" opacity="0.4"/>
831
+ <!-- Orbiting gems -->
832
+ <circle cx="210" cy="80" r="12" fill="#7BAED4" opacity="0.9"/>
833
+ <circle cx="210" cy="80" r="6" fill="white" opacity="0.3"/>
834
+ <circle cx="380" cy="340" r="9" fill="#C94C4C" opacity="0.9"/>
835
+ <circle cx="54" cy="180" r="7" fill="#C9A84C" opacity="0.8"/>
836
+ <circle cx="370" cy="170" r="5" fill="#E8CC7A" opacity="0.7"/>
837
+ <circle cx="60" cy="360" r="8" fill="#7BAED4" opacity="0.6"/>
838
+ <!-- Connecting dashes -->
839
+ <line x1="210" y1="92" x2="210" y2="140" stroke="#C9A84C" stroke-width="0.5" opacity="0.3" stroke-dasharray="3 4"/>
840
+ <line x1="373" y1="334" x2="330" y2="300" stroke="#C94C4C" stroke-width="0.5" opacity="0.3" stroke-dasharray="3 4"/>
841
+ <line x1="60" y1="186" x2="92" y2="216" stroke="#C9A84C" stroke-width="0.5" opacity="0.3" stroke-dasharray="3 4"/>
842
+ </svg>
843
+ </div>
844
+ </div>
845
+ </section>
846
+
847
+ <!-- VALUES -->
848
+ <div class="values-strip">
849
+ <div class="value-item reveal">
850
+ <div class="value-icon">
851
+ <svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
852
+ <circle cx="18" cy="18" r="14" stroke="#C9A84C" stroke-width="1"/>
853
+ <polygon points="18,8 21,15 29,15 23,20 25,28 18,23 11,28 13,20 7,15 15,15" fill="#C9A84C" opacity="0.85"/>
854
+ </svg>
855
+ </div>
856
+ <h4 class="value-title">Certified Stones</h4>
857
+ <p class="value-text">Every gemstone comes with GIA or IGI certification, ensuring authenticity and grade.</p>
858
+ </div>
859
+ <div class="value-item reveal reveal-delay-1">
860
+ <div class="value-icon">
861
+ <svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
862
+ <path d="M18 4 L20 12 L28 12 L22 17 L24 25 L18 20 L12 25 L14 17 L8 12 L16 12 Z" stroke="#C9A84C" stroke-width="1" fill="none"/>
863
+ <circle cx="18" cy="18" r="5" stroke="#C9A84C" stroke-width="0.8"/>
864
+ </svg>
865
+ </div>
866
+ <h4 class="value-title">Ethically Sourced</h4>
867
+ <p class="value-text">We partner only with Kimberley Process certified suppliers and fair-trade mines.</p>
868
+ </div>
869
+ <div class="value-item reveal reveal-delay-2">
870
+ <div class="value-icon">
871
+ <svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
872
+ <rect x="8" y="10" width="20" height="16" rx="2" stroke="#C9A84C" stroke-width="1"/>
873
+ <path d="M12 10 V8 Q18 4 24 8 V10" stroke="#C9A84C" stroke-width="1" fill="none"/>
874
+ <circle cx="18" cy="18" r="3" fill="#C9A84C" opacity="0.6"/>
875
+ </svg>
876
+ </div>
877
+ <h4 class="value-title">Free Engraving</h4>
878
+ <p class="value-text">Personalise any piece with a name, date, or message — included at no extra cost.</p>
879
+ </div>
880
+ <div class="value-item reveal reveal-delay-3">
881
+ <div class="value-icon">
882
+ <svg viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
883
+ <path d="M10 28 L10 16 L18 8 L26 16 L26 28" stroke="#C9A84C" stroke-width="1" fill="none"/>
884
+ <rect x="15" y="20" width="6" height="8" stroke="#C9A84C" stroke-width="0.8" fill="none"/>
885
+ <circle cx="18" cy="14" r="2" fill="#C9A84C" opacity="0.6"/>
886
+ </svg>
887
+ </div>
888
+ <h4 class="value-title">Lifetime Warranty</h4>
889
+ <p class="value-text">Every AURA piece is backed by a lifetime structural warranty and free annual cleaning.</p>
890
+ </div>
891
+ </div>
892
+
893
+ <!-- TESTIMONIAL -->
894
+ <section class="testimonial-section reveal">
895
+ <span class="quote-mark">"</span>
896
+ <p class="testimonial-quote">The ring was <em>more beautiful</em> in person than I could have imagined. The craftsmanship is extraordinary — every tiny detail speaks of genuine care and mastery.</p>
897
+ <p class="testimonial-author">— Nadia H., Lahore &nbsp;·&nbsp; Soleil Diamond Solitaire</p>
898
+ </section>
899
+
900
+ <!-- NEWSLETTER -->
901
+ <section class="newsletter-section reveal">
902
+ <div class="newsletter-text">
903
+ <span class="section-label">Stay in the loop</span>
904
+ <h2 class="section-title">First to know. <em>Always.</em></h2>
905
+ <p>Join our inner circle for early access to new collections, exclusive events, and private previews.</p>
906
+ </div>
907
+ <div>
908
+ <div class="newsletter-form">
909
+ <input class="newsletter-input" type="email" placeholder="Your email address">
910
+ <button class="newsletter-btn">Subscribe</button>
911
+ </div>
912
+ </div>
913
+ </section>
914
+
915
+ <!-- FOOTER -->
916
+ <footer>
917
+ <div class="footer-top">
918
+ <div class="footer-brand">
919
+ <span class="footer-logo">AURA.</span>
920
+ <p class="footer-tagline">Fine jewellery crafted with intention. Worn by those who understand that beauty is never accidental.</p>
921
+ </div>
922
+ <div class="footer-col">
923
+ <h4>Collections</h4>
924
+ <ul>
925
+ <li><a href="#">Necklaces</a></li>
926
+ <li><a href="#">Rings</a></li>
927
+ <li><a href="#">Earrings</a></li>
928
+ <li><a href="#">Bracelets</a></li>
929
+ <li><a href="#">Brooches</a></li>
930
+ </ul>
931
+ </div>
932
+ <div class="footer-col">
933
+ <h4>Services</h4>
934
+ <ul>
935
+ <li><a href="#">Bespoke Design</a></li>
936
+ <li><a href="#">Ring Sizing</a></li>
937
+ <li><a href="#">Engraving</a></li>
938
+ <li><a href="#">Repairs</a></li>
939
+ <li><a href="#">Appraisals</a></li>
940
+ </ul>
941
+ </div>
942
+ <div class="footer-col">
943
+ <h4>Company</h4>
944
+ <ul>
945
+ <li><a href="#">Our Story</a></li>
946
+ <li><a href="#">Atelier</a></li>
947
+ <li><a href="#">Sustainability</a></li>
948
+ <li><a href="#">Careers</a></li>
949
+ <li><a href="#">Contact</a></li>
950
+ </ul>
951
+ </div>
952
+ </div>
953
+ <div class="footer-bottom">
954
+ <span class="footer-copy">© 2025 AURA Fine Jewellery. All rights reserved.</span>
955
+ <div class="footer-socials">
956
+ <a href="#">Instagram</a>
957
+ <a href="#">Pinterest</a>
958
+ <a href="#">Facebook</a>
959
+ </div>
960
+ </div>
961
+ </footer>
962
+
963
+ <script>
964
+ // Custom cursor
965
+ const cursor = document.getElementById('cursor');
966
+ const ring = document.getElementById('cursor-ring');
967
+ let mx = 0, my = 0, rx = 0, ry = 0;
968
+ document.addEventListener('mousemove', e => { mx = e.clientX; my = e.clientY; });
969
+ function animateCursor() {
970
+ rx += (mx - rx) * 0.15;
971
+ ry += (my - ry) * 0.15;
972
+ cursor.style.left = mx + 'px'; cursor.style.top = my + 'px';
973
+ ring.style.left = rx + 'px'; ring.style.top = ry + 'px';
974
+ requestAnimationFrame(animateCursor);
975
+ }
976
+ animateCursor();
977
+ document.querySelectorAll('a, button, .cat-card, .product-card, .value-item, .pill').forEach(el => {
978
+ el.addEventListener('mouseenter', () => document.body.classList.add('hover-active'));
979
+ el.addEventListener('mouseleave', () => document.body.classList.remove('hover-active'));
980
+ });
981
+
982
+ // Sticky nav
983
+ const navbar = document.getElementById('navbar');
984
+ window.addEventListener('scroll', () => {
985
+ navbar.classList.toggle('scrolled', window.scrollY > 60);
986
+ });
987
+
988
+ // Scroll reveal
989
+ const reveals = document.querySelectorAll('.reveal');
990
+ const observer = new IntersectionObserver((entries) => {
991
+ entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('visible'); } });
992
+ }, { threshold: 0.12 });
993
+ reveals.forEach(el => observer.observe(el));
994
+
995
+ // Material pills
996
+ document.querySelectorAll('.pill').forEach(p => {
997
+ p.addEventListener('click', () => {
998
+ document.querySelectorAll('.pill').forEach(x => x.classList.remove('active'));
999
+ p.classList.add('active');
1000
+ });
1001
+ });
1002
+
1003
+ // Floating gems canvas
1004
+ const canvas = document.getElementById('gems-canvas');
1005
+ const ctx = canvas.getContext('2d');
1006
+ let W, H, gems;
1007
+ function resize() {
1008
+ W = canvas.width = window.innerWidth;
1009
+ H = canvas.height = window.innerHeight;
1010
+ }
1011
+ function makeGem() {
1012
+ const types = ['diamond','circle','hex'];
1013
+ return {
1014
+ x: Math.random() * W, y: Math.random() * H,
1015
+ size: Math.random() * 5 + 2,
1016
+ type: types[Math.floor(Math.random() * types.length)],
1017
+ alpha: Math.random() * 0.3 + 0.05,
1018
+ speed: Math.random() * 0.3 + 0.1,
1019
+ drift: (Math.random() - 0.5) * 0.2,
1020
+ color: Math.random() > 0.5 ? '#C9A84C' : (Math.random() > 0.5 ? '#7BAED4' : '#C94C4C')
1021
+ };
1022
+ }
1023
+ function initGems() { gems = Array.from({length: 55}, makeGem); }
1024
+ function drawGem(g) {
1025
+ ctx.save(); ctx.globalAlpha = g.alpha;
1026
+ ctx.strokeStyle = g.color; ctx.fillStyle = g.color; ctx.lineWidth = 0.8;
1027
+ if (g.type === 'diamond') {
1028
+ ctx.beginPath();
1029
+ ctx.moveTo(g.x, g.y - g.size);
1030
+ ctx.lineTo(g.x + g.size * 0.7, g.y);
1031
+ ctx.lineTo(g.x, g.y + g.size);
1032
+ ctx.lineTo(g.x - g.size * 0.7, g.y);
1033
+ ctx.closePath(); ctx.stroke();
1034
+ } else if (g.type === 'circle') {
1035
+ ctx.beginPath(); ctx.arc(g.x, g.y, g.size * 0.8, 0, Math.PI * 2);
1036
+ ctx.stroke();
1037
+ } else {
1038
+ ctx.beginPath();
1039
+ for (let i = 0; i < 6; i++) {
1040
+ const angle = (Math.PI / 3) * i - Math.PI / 6;
1041
+ const px = g.x + g.size * Math.cos(angle);
1042
+ const py = g.y + g.size * Math.sin(angle);
1043
+ i === 0 ? ctx.moveTo(px, py) : ctx.lineTo(px, py);
1044
+ }
1045
+ ctx.closePath(); ctx.stroke();
1046
+ }
1047
+ ctx.restore();
1048
+ }
1049
+ function animate() {
1050
+ ctx.clearRect(0, 0, W, H);
1051
+ gems.forEach(g => {
1052
+ g.y -= g.speed; g.x += g.drift;
1053
+ if (g.y < -20) { g.y = H + 20; g.x = Math.random() * W; }
1054
+ drawGem(g);
1055
+ });
1056
+ requestAnimationFrame(animate);
1057
+ }
1058
+ resize(); initGems(); animate();
1059
+ window.addEventListener('resize', () => { resize(); initGems(); });
1060
+ </script>
1061
+ </body>
1062
+ </html>