sinaweb2 commited on
Commit
439e496
·
verified ·
1 Parent(s): 02847de

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +992 -19
index.html CHANGED
@@ -1,19 +1,992 @@
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="scroll-smooth">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Aroma House | A Cozy Neighborhood Coffee Space</title>
7
+ <meta name="description" content="Aroma House is a cozy neighborhood coffee space for meaningful conversations, quiet work, and handcrafted coffee with people you care about.">
8
+
9
+ <!-- Google Fonts -->
10
+ <link rel="preconnect" href="https://fonts.googleapis.com">
11
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12
+ <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap" rel="stylesheet">
13
+
14
+ <!-- Lucide Icons -->
15
+ <script src="https://unpkg.com/lucide@latest"></script>
16
+
17
+ <!-- Tailwind CSS -->
18
+ <script src="https://cdn.tailwindcss.com"></script>
19
+
20
+ <script>
21
+ tailwind.config = {
22
+ theme: {
23
+ extend: {
24
+ fontFamily: {
25
+ sans: ['DM Sans', 'system-ui', 'sans-serif'],
26
+ serif: ['Playfair Display', 'Georgia', 'serif'],
27
+ },
28
+ colors: {
29
+ coffee: {
30
+ 50: '#faf6f1',
31
+ 100: '#f0e6d8',
32
+ 200: '#e0ccaf',
33
+ 300: '#c8a878',
34
+ 400: '#b08955',
35
+ 500: '#9a6e3e',
36
+ 600: '#7d5730',
37
+ 700: '#5c4024',
38
+ 800: '#3e2b18',
39
+ 900: '#2a1d10',
40
+ 950: '#1a1008',
41
+ },
42
+ cream: {
43
+ 50: '#fdfcfa',
44
+ 100: '#faf6ef',
45
+ 200: '#f5ece0',
46
+ 300: '#ecdfc9',
47
+ },
48
+ sage: {
49
+ 100: '#e8ede6',
50
+ 200: '#d1dcd0',
51
+ 300: '#a8bfa4',
52
+ 400: '#7a9a72',
53
+ 500: '#5c7d54',
54
+ },
55
+ amber: {
56
+ warm: '#c9964b',
57
+ deep: '#a3742e',
58
+ }
59
+ },
60
+ animation: {
61
+ 'fade-up': 'fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards',
62
+ 'fade-in': 'fadeIn 0.6s ease-out forwards',
63
+ 'slide-right': 'slideRight 0.5s ease-out forwards',
64
+ 'float': 'float 6s ease-in-out infinite',
65
+ 'gentle-bounce': 'gentleBounce 2s ease-in-out infinite',
66
+ 'reveal': 'reveal 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards',
67
+ 'draw-line': 'drawLine 1.2s ease-out forwards',
68
+ 'scale-in': 'scaleIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards',
69
+ },
70
+ keyframes: {
71
+ fadeUp: {
72
+ '0%': { opacity: '0', transform: 'translateY(30px)' },
73
+ '100%': { opacity: '1', transform: 'translateY(0)' },
74
+ },
75
+ fadeIn: {
76
+ '0%': { opacity: '0' },
77
+ '100%': { opacity: '1' },
78
+ },
79
+ slideRight: {
80
+ '0%': { opacity: '0', transform: 'translateX(-20px)' },
81
+ '100%': { opacity: '1', transform: 'translateX(0)' },
82
+ },
83
+ float: {
84
+ '0%, 100%': { transform: 'translateY(0)' },
85
+ '50%': { transform: 'translateY(-8px)' },
86
+ },
87
+ gentleBounce: {
88
+ '0%, 100%': { transform: 'translateY(0)' },
89
+ '50%': { transform: 'translateY(-4px)' },
90
+ },
91
+ reveal: {
92
+ '0%': { clipPath: 'inset(0 100% 0 0)', opacity: '0' },
93
+ '100%': { clipPath: 'inset(0 0% 0 0)', opacity: '1' },
94
+ },
95
+ drawLine: {
96
+ '0%': { width: '0%' },
97
+ '100%': { width: '60px' },
98
+ },
99
+ scaleIn: {
100
+ '0%': { opacity: '0', transform: 'scale(0.9)' },
101
+ '100%': { opacity: '1', transform: 'scale(1)' },
102
+ },
103
+ }
104
+ }
105
+ }
106
+ }
107
+ </script>
108
+
109
+ <style>
110
+ /* =========================================
111
+ CSS CUSTOM PROPERTIES & DESIGN TOKENS
112
+ ========================================= */
113
+ :root {
114
+ --color-cream: #faf6ef;
115
+ --color-coffee-50: #faf6f1;
116
+ --color-coffee-100: #f0e6d8;
117
+ --color-coffee-200: #e0ccaf;
118
+ --color-coffee-300: #c8a878;
119
+ --color-coffee-400: #b08955;
120
+ --color-coffee-500: #9a6e3e;
121
+ --color-coffee-600: #7d5730;
122
+ --color-coffee-700: #5c4024;
123
+ --color-coffee-800: #3e2b18;
124
+ --color-coffee-900: #2a1d10;
125
+ --color-coffee-950: #1a1008;
126
+ --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
127
+ --ease-bounce-soft: cubic-bezier(0.34, 1.56, 0.64, 1);
128
+ --shadow-card: 0 1px 3px rgba(26,16,8,0.06), 0 8px 24px rgba(26,16,8,0.08);
129
+ --shadow-card-hover: 0 4px 12px rgba(26,16,8,0.1), 0 16px 48px rgba(26,16,8,0.12);
130
+ --shadow-glow: 0 0 40px rgba(200,168,120,0.15);
131
+ }
132
+
133
+ /* =========================================
134
+ GLOBAL BASE STYLES
135
+ ========================================= */
136
+ *, *::before, *::after {
137
+ margin: 0;
138
+ padding: 0;
139
+ box-sizing: border-box;
140
+ }
141
+
142
+ html {
143
+ scroll-behavior: smooth;
144
+ scroll-padding-top: 90px;
145
+ }
146
+
147
+ body {
148
+ font-family: 'DM Sans', system-ui, sans-serif;
149
+ background-color: var(--color-cream);
150
+ color: var(--color-coffee-800);
151
+ line-height: 1.7;
152
+ overflow-x: hidden;
153
+ -webkit-font-smoothing: antialiased;
154
+ -moz-osx-font-smoothing: grayscale;
155
+ }
156
+
157
+ ::selection {
158
+ background-color: var(--color-coffee-300);
159
+ color: var(--color-coffee-950);
160
+ }
161
+
162
+ ::-webkit-scrollbar {
163
+ width: 7px;
164
+ }
165
+
166
+ ::-webkit-scrollbar-track {
167
+ background: var(--color-cream);
168
+ }
169
+
170
+ ::-webkit-scrollbar-thumb {
171
+ background: var(--color-coffee-300);
172
+ border-radius: 10px;
173
+ }
174
+
175
+ ::-webkit-scrollbar-thumb:hover {
176
+ background: var(--color-coffee-400);
177
+ }
178
+
179
+ /* =========================================
180
+ TYPOGRAPHY UTILITIES
181
+ ========================================= */
182
+ .font-serif {
183
+ font-family: 'Playfair Display', Georgia, serif;
184
+ }
185
+
186
+ /* Elegant text rendering */
187
+ .text-balance {
188
+ text-wrap: balance;
189
+ }
190
+
191
+ /* =========================================
192
+ SCROLL REVEAL ANIMATIONS
193
+ ========================================= */
194
+ .reveal {
195
+ opacity: 0;
196
+ transform: translateY(40px);
197
+ transition: opacity 0.9s var(--ease-smooth), transform 0.9s var(--ease-smooth);
198
+ }
199
+
200
+ .reveal.visible {
201
+ opacity: 1;
202
+ transform: translateY(0);
203
+ }
204
+
205
+ .reveal-delay-1 { transition-delay: 0.1s; }
206
+ .reveal-delay-2 { transition-delay: 0.2s; }
207
+ .reveal-delay-3 { transition-delay: 0.3s; }
208
+ .reveal-delay-4 { transition-delay: 0.4s; }
209
+ .reveal-delay-5 { transition-delay: 0.5s; }
210
+
211
+ /* =========================================
212
+ SECTION DECORATIVE ELEMENTS
213
+ ========================================= */
214
+ .section-label {
215
+ display: inline-flex;
216
+ align-items: center;
217
+ gap: 0.75rem;
218
+ font-size: 0.7rem;
219
+ font-weight: 600;
220
+ letter-spacing: 0.2em;
221
+ text-transform: uppercase;
222
+ color: var(--color-coffee-400);
223
+ margin-bottom: 1.25rem;
224
+ }
225
+
226
+ .section-label::before {
227
+ content: '';
228
+ display: block;
229
+ width: 24px;
230
+ height: 1.5px;
231
+ background: var(--color-coffee-300);
232
+ border-radius: 1px;
233
+ }
234
+
235
+ .section-divider {
236
+ width: 60px;
237
+ height: 2px;
238
+ background: var(--color-coffee-300);
239
+ border-radius: 2px;
240
+ margin: 0 auto;
241
+ }
242
+
243
+ /* =========================================
244
+ HERO VIDEO BACKGROUND
245
+ ========================================= */
246
+ .hero-video-wrapper {
247
+ position: absolute;
248
+ inset: 0;
249
+ overflow: hidden;
250
+ border-radius: 0 0 48px 48px;
251
+ }
252
+
253
+ .hero-video-wrapper::after {
254
+ content: '';
255
+ position: absolute;
256
+ inset: 0;
257
+ background:
258
+ linear-gradient(180deg, rgba(26,16,8,0.55) 0%, rgba(26,16,8,0.3) 40%, rgba(26,16,8,0.65) 100%),
259
+ linear-gradient(135deg, rgba(92,64,36,0.2) 0%, transparent 50%);
260
+ z-index: 1;
261
+ }
262
+
263
+ .hero-video-wrapper img {
264
+ width: 100%;
265
+ height: 100%;
266
+ object-fit: cover;
267
+ transform: scale(1.05);
268
+ animation: slowZoom 20s ease-in-out infinite alternate;
269
+ }
270
+
271
+ @keyframes slowZoom {
272
+ 0% { transform: scale(1.05); }
273
+ 100% { transform: scale(1.15); }
274
+ }
275
+
276
+ /* =========================================
277
+ GLASS MORPHISM EFFECTS
278
+ ========================================= */
279
+ .glass {
280
+ background: rgba(250, 246, 239, 0.75);
281
+ backdrop-filter: blur(20px) saturate(1.3);
282
+ -webkit-backdrop-filter: blur(20px) saturate(1.3);
283
+ }
284
+
285
+ .glass-dark {
286
+ background: rgba(42, 29, 16, 0.8);
287
+ backdrop-filter: blur(20px) saturate(1.3);
288
+ -webkit-backdrop-filter: blur(20px) saturate(1.3);
289
+ }
290
+
291
+ /* =========================================
292
+ CARD STYLES
293
+ ========================================= */
294
+ .card-luxe {
295
+ background: #fff;
296
+ border-radius: 20px;
297
+ border: 1px solid rgba(200, 168, 120, 0.12);
298
+ box-shadow: var(--shadow-card);
299
+ transition:
300
+ transform 0.5s var(--ease-smooth),
301
+ box-shadow 0.5s var(--ease-smooth),
302
+ border-color 0.4s ease;
303
+ overflow: hidden;
304
+ }
305
+
306
+ .card-luxe:hover {
307
+ transform: translateY(-6px);
308
+ box-shadow: var(--shadow-card-hover);
309
+ border-color: rgba(200, 168, 120, 0.25);
310
+ }
311
+
312
+ .card-luxe .card-img {
313
+ transition: transform 0.7s var(--ease-smooth);
314
+ }
315
+
316
+ .card-luxe:hover .card-img {
317
+ transform: scale(1.06);
318
+ }
319
+
320
+ /* =========================================
321
+ BUTTON STYLES
322
+ ========================================= */
323
+ .btn-primary {
324
+ position: relative;
325
+ display: inline-flex;
326
+ align-items: center;
327
+ justify-content: center;
328
+ gap: 0.5rem;
329
+ padding: 0.9rem 2.2rem;
330
+ background: var(--color-coffee-800);
331
+ color: #fff;
332
+ border-radius: 50px;
333
+ font-weight: 600;
334
+ font-size: 0.9rem;
335
+ letter-spacing: 0.02em;
336
+ border: none;
337
+ cursor: pointer;
338
+ overflow: hidden;
339
+ transition: all 0.4s var(--ease-smooth);
340
+ box-shadow: 0 4px 16px rgba(62, 43, 24, 0.25);
341
+ }
342
+
343
+ .btn-primary::before {
344
+ content: '';
345
+ position: absolute;
346
+ inset: 0;
347
+ background: var(--color-coffee-700);
348
+ transform: translateX(-101%);
349
+ transition: transform 0.5s var(--ease-smooth);
350
+ border-radius: 50px;
351
+ }
352
+
353
+ .btn-primary:hover::before {
354
+ transform: translateX(0);
355
+ }
356
+
357
+ .btn-primary span,
358
+ .btn-primary i {
359
+ position: relative;
360
+ z-index: 1;
361
+ }
362
+
363
+ .btn-primary:hover {
364
+ box-shadow: 0 8px 30px rgba(62, 43, 24, 0.35);
365
+ transform: translateY(-1px);
366
+ }
367
+
368
+ .btn-primary:active {
369
+ transform: translateY(0);
370
+ box-shadow: 0 2px 8px rgba(62, 43, 24, 0.2);
371
+ }
372
+
373
+ .btn-secondary {
374
+ display: inline-flex;
375
+ align-items: center;
376
+ justify-content: center;
377
+ gap: 0.5rem;
378
+ padding: 0.85rem 2rem;
379
+ background: transparent;
380
+ color: var(--color-coffee-800);
381
+ border: 1.5px solid rgba(200, 168, 120, 0.4);
382
+ border-radius: 50px;
383
+ font-weight: 600;
384
+ font-size: 0.9rem;
385
+ letter-spacing: 0.02em;
386
+ cursor: pointer;
387
+ transition: all 0.4s var(--ease-smooth);
388
+ }
389
+
390
+ .btn-secondary:hover {
391
+ border-color: var(--color-coffee-500);
392
+ background: rgba(200, 168, 120, 0.08);
393
+ transform: translateY(-1px);
394
+ }
395
+
396
+ /* =========================================
397
+ NAVIGATION STYLES
398
+ ========================================= */
399
+ .nav-glass {
400
+ background: rgba(250, 246, 239, 0.85);
401
+ backdrop-filter: blur(24px) saturate(1.2);
402
+ -webkit-backdrop-filter: blur(24px) saturate(1.2);
403
+ }
404
+
405
+ .nav-scrolled {
406
+ box-shadow: 0 1px 0 rgba(200,168,120,0.15), 0 4px 20px rgba(26,16,8,0.06);
407
+ }
408
+
409
+ .nav-link {
410
+ position: relative;
411
+ color: var(--color-coffee-700);
412
+ font-weight: 500;
413
+ font-size: 0.88rem;
414
+ padding: 0.4rem 0;
415
+ transition: color 0.3s ease;
416
+ }
417
+
418
+ .nav-link::after {
419
+ content: '';
420
+ position: absolute;
421
+ bottom: 0;
422
+ left: 0;
423
+ width: 0;
424
+ height: 1.5px;
425
+ background: var(--color-coffee-500);
426
+ border-radius: 1px;
427
+ transition: width 0.35s var(--ease-smooth);
428
+ }
429
+
430
+ .nav-link:hover {
431
+ color: var(--color-coffee-900);
432
+ }
433
+
434
+ .nav-link:hover::after {
435
+ width: 100%;
436
+ }
437
+
438
+ /* =========================================
439
+ MOBILE MENU
440
+ ========================================= */
441
+ .mobile-menu {
442
+ position: fixed;
443
+ inset: 0;
444
+ z-index: 100;
445
+ background: rgba(250, 246, 239, 0.97);
446
+ backdrop-filter: blur(30px);
447
+ -webkit-backdrop-filter: blur(30px);
448
+ display: flex;
449
+ flex-direction: column;
450
+ align-items: center;
451
+ justify-content: center;
452
+ gap: 1.5rem;
453
+ opacity: 0;
454
+ visibility: hidden;
455
+ transition: opacity 0.4s ease, visibility 0.4s ease;
456
+ }
457
+
458
+ .mobile-menu.open {
459
+ opacity: 1;
460
+ visibility: visible;
461
+ }
462
+
463
+ .mobile-menu a {
464
+ font-family: 'Playfair Display', serif;
465
+ font-size: 1.75rem;
466
+ color: var(--color-coffee-800);
467
+ opacity: 0;
468
+ transform: translateY(12px);
469
+ transition: opacity 0.4s ease, transform 0.4s ease, color 0.3s ease;
470
+ }
471
+
472
+ .mobile-menu.open a {
473
+ opacity: 1;
474
+ transform: translateY(0);
475
+ }
476
+
477
+ .mobile-menu.open a:nth-child(1) { transition-delay: 0.1s; }
478
+ .mobile-menu.open a:nth-child(2) { transition-delay: 0.15s; }
479
+ .mobile-menu.open a:nth-child(3) { transition-delay: 0.2s; }
480
+ .mobile-menu.open a:nth-child(4) { transition-delay: 0.25s; }
481
+ .mobile-menu.open a:nth-child(5) { transition-delay: 0.3s; }
482
+ .mobile-menu.open a:nth-child(6) { transition-delay: 0.35s; }
483
+ .mobile-menu.open a:nth-child(7) { transition-delay: 0.4s; }
484
+
485
+ .mobile-menu a:hover {
486
+ color: var(--color-coffee-500);
487
+ }
488
+
489
+ /* =========================================
490
+ STICKY BOTTOM BAR (MOBILE)
491
+ ========================================= */
492
+ .sticky-bar {
493
+ position: fixed;
494
+ bottom: 0;
495
+ left: 0;
496
+ right: 0;
497
+ z-index: 50;
498
+ padding: 0.6rem 1rem 0.8rem;
499
+ background: rgba(250, 246, 239, 0.92);
500
+ backdrop-filter: blur(20px);
501
+ -webkit-backdrop-filter: blur(20px);
502
+ border-top: 1px solid rgba(200,168,120,0.15);
503
+ transform: translateY(100%);
504
+ transition: transform 0.5s var(--ease-smooth);
505
+ }
506
+
507
+ .sticky-bar.visible {
508
+ transform: translateY(0);
509
+ }
510
+
511
+ /* =========================================
512
+ FORM STYLES
513
+ ========================================= */
514
+ .form-input {
515
+ width: 100%;
516
+ padding: 0.85rem 1.1rem;
517
+ border: 1.5px solid rgba(200,168,120,0.2);
518
+ border-radius: 14px;
519
+ background: #fff;
520
+ color: var(--color-coffee-800);
521
+ font-size: 0.9rem;
522
+ font-family: inherit;
523
+ transition: all 0.3s var(--ease-smooth);
524
+ outline: none;
525
+ }
526
+
527
+ .form-input::placeholder {
528
+ color: var(--color-coffee-300);
529
+ }
530
+
531
+ .form-input:hover {
532
+ border-color: rgba(200,168,120,0.4);
533
+ }
534
+
535
+ .form-input:focus {
536
+ border-color: var(--color-coffee-400);
537
+ box-shadow: 0 0 0 4px rgba(200,168,120,0.12);
538
+ }
539
+
540
+ .form-label {
541
+ display: block;
542
+ font-size: 0.78rem;
543
+ font-weight: 600;
544
+ color: var(--color-coffee-600);
545
+ margin-bottom: 0.4rem;
546
+ letter-spacing: 0.03em;
547
+ text-transform: uppercase;
548
+ }
549
+
550
+ /* =========================================
551
+ MENU FILTER TABS
552
+ ========================================= */
553
+ .menu-tab {
554
+ position: relative;
555
+ padding: 0.55rem 1.2rem;
556
+ border-radius: 50px;
557
+ font-size: 0.82rem;
558
+ font-weight: 500;
559
+ color: var(--color-coffee-600);
560
+ background: transparent;
561
+ border: 1.5px solid transparent;
562
+ cursor: pointer;
563
+ transition: all 0.35s var(--ease-smooth);
564
+ white-space: nowrap;
565
+ }
566
+
567
+ .menu-tab:hover {
568
+ background: rgba(200,168,120,0.08);
569
+ color: var(--color-coffee-700);
570
+ }
571
+
572
+ .menu-tab.active {
573
+ background: var(--color-coffee-800);
574
+ color: #fff;
575
+ border-color: var(--color-coffee-800);
576
+ box-shadow: 0 4px 14px rgba(62,43,24,0.2);
577
+ }
578
+
579
+ /* =========================================
580
+ GALLERY MASONRY GRID
581
+ ========================================= */
582
+ .gallery-masonry {
583
+ display: grid;
584
+ grid-template-columns: repeat(4, 1fr);
585
+ grid-auto-rows: 200px;
586
+ gap: 10px;
587
+ }
588
+
589
+ @media (max-width: 1024px) {
590
+ .gallery-masonry { grid-template-columns: repeat(3, 1fr); }
591
+ }
592
+
593
+ @media (max-width: 640px) {
594
+ .gallery-masonry { grid-template-columns: repeat(2, 1fr); }
595
+ }
596
+
597
+ .gallery-item {
598
+ position: relative;
599
+ border-radius: 16px;
600
+ overflow: hidden;
601
+ cursor: pointer;
602
+ box-shadow: var(--shadow-card);
603
+ }
604
+
605
+ .gallery-item img {
606
+ width: 100%;
607
+ height: 100%;
608
+ object-fit: cover;
609
+ transition: transform 0.7s var(--ease-smooth), filter 0.5s ease;
610
+ }
611
+
612
+ .gallery-item:hover img {
613
+ transform: scale(1.08);
614
+ filter: brightness(1.05);
615
+ }
616
+
617
+ .gallery-item .gallery-overlay {
618
+ position: absolute;
619
+ inset: 0;
620
+ background: linear-gradient(to top, rgba(26,16,8,0.6) 0%, transparent 60%);
621
+ opacity: 0;
622
+ transition: opacity 0.4s ease;
623
+ display: flex;
624
+ align-items: flex-end;
625
+ padding: 1rem;
626
+ }
627
+
628
+ .gallery-item:hover .gallery-overlay {
629
+ opacity: 1;
630
+ }
631
+
632
+ .gallery-item.tall { grid-row: span 2; }
633
+ .gallery-item.wide { grid-column: span 2; }
634
+
635
+ /* =========================================
636
+ LIGHTBOX
637
+ ========================================= */
638
+ .lightbox {
639
+ position: fixed;
640
+ inset: 0;
641
+ z-index: 200;
642
+ background: rgba(10, 6, 3, 0.92);
643
+ backdrop-filter: blur(12px);
644
+ display: flex;
645
+ align-items: center;
646
+ justify-content: center;
647
+ opacity: 0;
648
+ visibility: hidden;
649
+ transition: opacity 0.4s ease, visibility 0.4s ease;
650
+ }
651
+
652
+ .lightbox.open {
653
+ opacity: 1;
654
+ visibility: visible;
655
+ }
656
+
657
+ .lightbox img {
658
+ max-width: 90vw;
659
+ max-height: 85vh;
660
+ object-fit: contain;
661
+ border-radius: 12px;
662
+ transform: scale(0.92);
663
+ transition: transform 0.5s var(--ease-smooth);
664
+ }
665
+
666
+ .lightbox.open img {
667
+ transform: scale(1);
668
+ }
669
+
670
+ /* =========================================
671
+ TESTIMONIAL CARD
672
+ ========================================= */
673
+ .testimonial-card {
674
+ background: #fff;
675
+ border-radius: 20px;
676
+ padding: 2rem;
677
+ border: 1px solid rgba(200,168,120,0.1);
678
+ box-shadow: var(--shadow-card);
679
+ transition: all 0.5s var(--ease-smooth);
680
+ }
681
+
682
+ .testimonial-card:hover {
683
+ transform: translateY(-4px);
684
+ box-shadow: var(--shadow-card-hover);
685
+ }
686
+
687
+ /* =========================================
688
+ LOYALTY CARD
689
+ ========================================= */
690
+ .loyalty-stamp {
691
+ width: 48px;
692
+ height: 48px;
693
+ border-radius: 50%;
694
+ border: 2.5px dashed var(--color-coffee-200);
695
+ display: flex;
696
+ align-items: center;
697
+ justify-content: center;
698
+ transition: all 0.5s var(--ease-bounce-soft);
699
+ position: relative;
700
+ }
701
+
702
+ .loyalty-stamp.filled {
703
+ background: var(--color-coffee-800);
704
+ border-color: var(--color-coffee-800);
705
+ box-shadow: 0 4px 14px rgba(62,43,24,0.25);
706
+ animation: stampPop 0.5s var(--ease-bounce-soft);
707
+ }
708
+
709
+ @keyframes stampPop {
710
+ 0% { transform: scale(0.5); }
711
+ 60% { transform: scale(1.15); }
712
+ 100% { transform: scale(1); }
713
+ }
714
+
715
+ /* =========================================
716
+ FEATURE ROW HOVER
717
+ ========================================= */
718
+ .feature-row {
719
+ transition: all 0.4s var(--ease-smooth);
720
+ border-radius: 16px;
721
+ padding: 1rem;
722
+ margin: -1rem;
723
+ }
724
+
725
+ .feature-row:hover {
726
+ background: rgba(200,168,120,0.05);
727
+ }
728
+
729
+ /* =========================================
730
+ AMBIENCE IMAGE
731
+ ========================================= */
732
+ .ambience-img {
733
+ border-radius: 24px;
734
+ overflow: hidden;
735
+ box-shadow: 0 20px 60px rgba(26,16,8,0.15);
736
+ position: relative;
737
+ }
738
+
739
+ .ambience-img::after {
740
+ content: '';
741
+ position: absolute;
742
+ inset: 0;
743
+ border-radius: 24px;
744
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1);
745
+ pointer-events: none;
746
+ }
747
+
748
+ /* =========================================
749
+ RATING STARS
750
+ ========================================= */
751
+ .star-filled { color: #c9964b; }
752
+ .star-empty { color: var(--color-coffee-200); }
753
+
754
+ /* =========================================
755
+ MAP CONTAINER
756
+ ========================================= */
757
+ .map-container {
758
+ border-radius: 24px;
759
+ overflow: hidden;
760
+ box-shadow: var(--shadow-card);
761
+ position: relative;
762
+ }
763
+
764
+ .map-container::after {
765
+ content: '';
766
+ position: absolute;
767
+ inset: 0;
768
+ border-radius: 24px;
769
+ box-shadow: inset 0 0 0 1px rgba(200,168,120,0.15);
770
+ pointer-events: none;
771
+ }
772
+
773
+ /* =========================================
774
+ HOURS ROW
775
+ ========================================= */
776
+ .hours-row {
777
+ display: flex;
778
+ justify-content: space-between;
779
+ align-items: center;
780
+ padding: 0.7rem 0;
781
+ border-bottom: 1px solid rgba(200,168,120,0.12);
782
+ transition: background 0.3s ease;
783
+ }
784
+
785
+ .hours-row:last-child {
786
+ border-bottom: none;
787
+ }
788
+
789
+ .hours-row:hover {
790
+ background: rgba(200,168,120,0.04);
791
+ margin: 0 -0.75rem;
792
+ padding-left: 0.75rem;
793
+ padding-right: 0.75rem;
794
+ border-radius: 8px;
795
+ }
796
+
797
+ /* =========================================
798
+ RESPONSIVE IMAGE ASPECT RATIO
799
+ ========================================= */
800
+ .img-aspect {
801
+ aspect-ratio: 4 / 3;
802
+ object-fit: cover;
803
+ }
804
+
805
+ /* =========================================
806
+ SUBTLE ANIMATED GRADIENT FOR HERO
807
+ ========================================= */
808
+ .hero-gradient-animated {
809
+ position: absolute;
810
+ bottom: 0;
811
+ left: 0;
812
+ right: 0;
813
+ height: 40%;
814
+ background: linear-gradient(to top, rgba(250,246,239,1) 0%, transparent 100%);
815
+ z-index: 2;
816
+ pointer-events: none;
817
+ }
818
+
819
+ /* =========================================
820
+ NOISE TEXTURE OVERLAY (subtle)
821
+ ========================================= */
822
+ .noise-overlay {
823
+ position: fixed;
824
+ inset: 0;
825
+ pointer-events: none;
826
+ z-index: 9999;
827
+ opacity: 0.02;
828
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' 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)'/%3E%3C/svg%3E");
829
+ }
830
+
831
+ /* =========================================
832
+ SMOOTH CURVE SECTION DIVIDERS
833
+ ========================================= */
834
+ .curve-top {
835
+ position: absolute;
836
+ top: -1px;
837
+ left: 0;
838
+ right: 0;
839
+ line-height: 0;
840
+ }
841
+
842
+ .curve-bottom {
843
+ position: absolute;
844
+ bottom: -1px;
845
+ left: 0;
846
+ right: 0;
847
+ line-height: 0;
848
+ transform: rotate(180deg);
849
+ }
850
+ </style>
851
+ </head>
852
+ <body>
853
+ <!-- Subtle Noise Texture -->
854
+ <div class="noise-overlay"></div>
855
+
856
+ <!-- =========================================
857
+ NAVIGATION HEADER
858
+ ========================================= -->
859
+ <header id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-500">
860
+ <div class="max-w-7xl mx-auto px-5 sm:px-8">
861
+ <nav class="flex items-center justify-between h-[70px]">
862
+ <!-- Logo -->
863
+ <a href="#home" class="flex items-center gap-2.5 group">
864
+ <div class="w-9 h-9 rounded-xl bg-coffee-800 flex items-center justify-center transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3">
865
+ <i data-lucide="coffee" class="w-[18px] h-[18px] text-cream-100"></i>
866
+ </div>
867
+ <span class="font-serif text-xl font-semibold text-coffee-900 tracking-tight">Aroma House</span>
868
+ </a>
869
+
870
+ <!-- Desktop Nav -->
871
+ <div class="hidden lg:flex items-center gap-7">
872
+ <a href="#home" class="nav-link">Home</a>
873
+ <a href="#menu" class="nav-link">Menu</a>
874
+ <a href="#about" class="nav-link">About</a>
875
+ <a href="#gallery" class="nav-link">Gallery</a>
876
+ <a href="#reservations" class="nav-link">Reservations</a>
877
+ <a href="#location" class="nav-link">Location</a>
878
+ <a href="#contact" class="nav-link">Contact</a>
879
+ </div>
880
+
881
+ <!-- CTA + Mobile Toggle -->
882
+ <div class="flex items-center gap-3">
883
+ <a href="#reservations" class="hidden sm:inline-flex btn-primary text-sm py-2.5 px-5">
884
+ <span>Book a Table</span>
885
+ <i data-lucide="arrow-right" class="w-3.5 h-3.5"></i>
886
+ </a>
887
+ <button id="mobileMenuBtn" class="lg:hidden w-10 h-10 rounded-xl border border-coffee-200/50 flex items-center justify-center transition-colors hover:bg-coffee-100/50" aria-label="Open menu">
888
+ <i data-lucide="menu" class="w-5 h-5 text-coffee-800"></i>
889
+ </button>
890
+ </div>
891
+ </nav>
892
+ </div>
893
+ </header>
894
+
895
+ <!-- Mobile Menu Overlay -->
896
+ <div id="mobileMenu" class="mobile-menu">
897
+ <button id="mobileMenuClose" class="absolute top-5 right-5 w-11 h-11 rounded-full bg-coffee-100 flex items-center justify-center transition-colors hover:bg-coffee-200" aria-label="Close menu">
898
+ <i data-lucide="x" class="w-5 h-5 text-coffee-800"></i>
899
+ </button>
900
+ <a href="#home" class="mobile-menu-link">Home</a>
901
+ <a href="#menu" class="mobile-menu-link">Menu</a>
902
+ <a href="#about" class="mobile-menu-link">About</a>
903
+ <a href="#gallery" class="mobile-menu-link">Gallery</a>
904
+ <a href="#reservations" class="mobile-menu-link">Reservations</a>
905
+ <a href="#location" class="mobile-menu-link">Location</a>
906
+ <a href="#contact" class="mobile-menu-link">Contact</a>
907
+ <a href="#reservations" class="btn-primary mt-4">
908
+ <span>Book a Table</span>
909
+ </a>
910
+ </div>
911
+
912
+ <!-- =========================================
913
+ HERO SECTION
914
+ ========================================= -->
915
+ <section id="home" class="relative min-h-[100dvh] flex items-center justify-center overflow-hidden">
916
+ <div class="hero-video-wrapper">
917
+ <img src="https://images.unsplash.com/photo-1501339847302-ac426a4a7cbb?w=1920&q=85&auto=format" alt="Cozy coffee shop interior with warm lighting and wooden furniture">
918
+ </div>
919
+
920
+ <!-- Animated gradient at bottom -->
921
+ <div class="hero-gradient-animated"></div>
922
+
923
+ <div class="relative z-10 max-w-5xl mx-auto px-5 sm:px-8 text-center pt-20 pb-32">
924
+ <div class="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/10 backdrop-blur-md border border-white/15 mb-8 animate-fade-in" style="animation-delay: 0.2s;">
925
+ <i data-lucide="sparkles" class="w-3.5 h-3.5 text-amber-warm"></i>
926
+ <span class="text-white/90 text-xs font-medium tracking-wide">Crafted with care since 2018</span>
927
+ </div>
928
+
929
+ <h1 class="font-serif text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-medium text-white leading-[1.05] mb-6 animate-fade-up text-balance" style="animation-delay: 0.3s; text-shadow: 0 4px 30px rgba(0,0,0,0.3);">
930
+ Relax, Connect, and<br class="hidden sm:block"> Enjoy Coffee <em class="text-amber-warm not-italic">Together</em>
931
+ </h1>
932
+
933
+ <p class="text-base sm:text-lg text-white/75 max-w-2xl mx-auto mb-10 leading-relaxed animate-fade-up text-balance" style="animation-delay: 0.5s; text-shadow: 0 2px 10px rgba(0,0,0,0.2);">
934
+ A cozy coffee space for meaningful conversations, quiet work sessions, weekend moments, and handcrafted coffee — shared with people you care about.
935
+ </p>
936
+
937
+ <div class="flex flex-col sm:flex-row items-center justify-center gap-4 animate-fade-up" style="animation-delay: 0.7s;">
938
+ <a href="#reservations" class="btn-primary text-base py-3.5 px-8">
939
+ <span>Reserve a Table</span>
940
+ <i data-lucide="calendar" class="w-4 h-4"></i>
941
+ </a>
942
+ <a href="#menu" class="btn-secondary text-base py-3.5 px-8 border-white/30 text-white hover:bg-white/10 hover:border-white/50">
943
+ <span>View Menu</span>
944
+ <i data-lucide="utensils" class="w-4 h-4"></i>
945
+ </a>
946
+ </div>
947
+
948
+ <!-- Trust indicators -->
949
+ <div class="flex flex-wrap items-center justify-center gap-5 sm:gap-8 mt-14 animate-fade-up" style="animation-delay: 0.9s;">
950
+ <div class="flex items-center gap-2">
951
+ <div class="w-8 h-8 rounded-full bg-white/10 backdrop-blur-sm flex items-center justify-center">
952
+ <i data-lucide="leaf" class="w-3.5 h-3.5 text-sage-300"></i>
953
+ </div>
954
+ <span class="text-white/70 text-xs sm:text-sm font-medium">Fresh Roasted</span>
955
+ </div>
956
+ <div class="flex items-center gap-2">
957
+ <div class="w-8 h-8 rounded-full bg-white/10 backdrop-blur-sm flex items-center justify-center">
958
+ <i data-lucide="sofa" class="w-3.5 h-3.5 text-amber-warm"></i>
959
+ </div>
960
+ <span class="text-white/70 text-xs sm:text-sm font-medium">Cozy Seating</span>
961
+ </div>
962
+ <div class="flex items-center gap-2">
963
+ <div class="w-8 h-8 rounded-full bg-white/10 backdrop-blur-sm flex items-center justify-center">
964
+ <i data-lucide="wifi" class="w-3.5 h-3.5 text-sage-300"></i>
965
+ </div>
966
+ <span class="text-white/70 text-xs sm:text-sm font-medium">Free Wi-Fi</span>
967
+ </div>
968
+ <div class="flex items-center gap-2">
969
+ <div class="w-8 h-8 rounded-full bg-white/10 backdrop-blur-sm flex items-center justify-center">
970
+ <i data-lucide="heart" class="w-3.5 h-3.5 text-rose-300"></i>
971
+ </div>
972
+ <span class="text-white/70 text-xs sm:text-sm font-medium">Family Friendly</span>
973
+ </div>
974
+ </div>
975
+ </div>
976
+ </section>
977
+
978
+ <!-- =========================================
979
+ QUICK ROUTINE PROMPTS
980
+ ========================================= -->
981
+ <section class="py-16 px-5 sm:px-8">
982
+ <div class="max-w-6xl mx-auto">
983
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4">
984
+ <div class="card-luxe p-6 text-center reveal reveal-delay-1 group cursor-default">
985
+ <div class="w-12 h-12 rounded-2xl bg-coffee-100 flex items-center justify-center mx-auto mb-4 transition-transform duration-500 group-hover:scale-110 group-hover:rotate-6">
986
+ <i data-lucide="sunrise" class="w-5 h-5 text-coffee-600"></i>
987
+ </div>
988
+ <h3 class="font-serif text-lg font-medium text-coffee-800 mb-1.5">Morning Ritual</h3>
989
+ <p class="text-xs text-coffee-500 leading-relaxed">Start your day with a perfect pour-over before work.</p>
990
+ </div>
991
+ <div class="card-luxe p-6 text-center reveal reveal-delay-2 group cursor-default">
992
+ <div class="w-12 h-12 rounded-2xl bg