|
5 | 5 | <title>Mavluda Beauty | Medical Luxury Ecosystem</title> |
6 | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
7 | 7 | <script src="https://telegram.org/js/telegram-web-app.js"></script> |
8 | | - <script src="https://cdn.tailwindcss.com?plugins=forms,typography,container-queries"></script> |
| 8 | + <script src="https://cdnjs.cloudflare.com/ajax/libs/flowbite/2.3.0/flowbite.min.js"></script> |
9 | 9 | <link rel="preconnect" href="https://fonts.googleapis.com" /> |
10 | 10 | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> |
11 | 11 | <link rel="preconnect" href="https://lh3.googleusercontent.com" /> |
|
21 | 21 | href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap" |
22 | 22 | rel="stylesheet" |
23 | 23 | /> |
24 | | - <script> |
25 | | - tailwind.config = { |
26 | | - darkMode: "class", |
27 | | - theme: { |
28 | | - extend: { |
29 | | - colors: { |
30 | | - primary: "#d4af35", |
31 | | - "primary-hover": "#b8952a", |
32 | | - "background-light": "#f8f7f6", |
33 | | - "background-dark": "#0A0A0A", |
34 | | - "card-dark": "#121212", |
35 | | - "surface-light": "#FFFFFF", |
36 | | - "surface-dark": "#1E1E1E", |
37 | | - "sidebar-dark": "#050505", |
38 | | - "sidebar-active": "#1A1A1A", |
39 | | - "text-main-light": "#111827", |
40 | | - "text-main-dark": "#F3F4F6", |
41 | | - "text-muted-light": "#6B7280", |
42 | | - "text-muted-dark": "#9CA3AF", |
43 | | - gold: "#d4af35", // alias for compatibility |
44 | | - }, |
45 | | - fontFamily: { |
46 | | - display: ["Manrope", "sans-serif"], |
47 | | - serif: ["Noto Serif Display", "serif"], |
48 | | - sans: ["Manrope", "sans-serif"], |
49 | | - accent: ["Manrope", "sans-serif"], |
50 | | - }, |
51 | | - borderRadius: { |
52 | | - DEFAULT: "12px", |
53 | | - lg: "12px", |
54 | | - xl: "16px", |
55 | | - "2xl": "24px", |
56 | | - full: "9999px", |
57 | | - }, |
58 | | - boxShadow: { |
59 | | - card: "0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03)", |
60 | | - gold: "0 4px 14px 0 rgba(212, 175, 53, 0.25)", |
61 | | - "gold-glow": "0 0 20px rgba(212, 175, 53, 0.4)", |
62 | | - glow: "0 0 15px rgba(212, 175, 55, 0.15)", |
63 | | - }, |
64 | | - }, |
65 | | - }, |
66 | | - }; |
67 | | - </script> |
68 | | - <style type="text/tailwindcss"> |
69 | | - .gold-glow { |
70 | | - box-shadow: 0 0 20px rgba(212, 175, 55, 0.15); |
71 | | - } |
72 | | - .btn-glow { |
73 | | - box-shadow: 0 4px 20px rgba(212, 175, 55, 0.4); |
74 | | - } |
75 | | - .luxury-gradient { |
76 | | - background: radial-gradient(circle at center, #1a1a1a 0%, #0a0a0a 100%); |
77 | | - } |
78 | | - .dark .luxury-gradient { |
79 | | - background: radial-gradient(circle at center, #151515 0%, #050505 100%); |
80 | | - } |
81 | | - input:focus, |
82 | | - select:focus { |
83 | | - border-color: #d4af35 !important; |
84 | | - outline: none !important; |
85 | | - box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.2) !important; |
86 | | - } |
87 | | - .glass-telegram { |
88 | | - background: rgba(255, 255, 255, 0.03); |
89 | | - backdrop-filter: blur(10px); |
90 | | - border: 1px solid rgba(255, 255, 255, 0.08); |
91 | | - } |
92 | | - .glass-telegram:hover { |
93 | | - background: rgba(255, 255, 255, 0.06); |
94 | | - border-color: rgba(212, 175, 55, 0.3); |
95 | | - } |
96 | | - .glass-gold { |
97 | | - background: linear-gradient( |
98 | | - 135deg, |
99 | | - rgba(212, 175, 53, 0.1) 0%, |
100 | | - rgba(212, 175, 53, 0.05) 100% |
101 | | - ); |
102 | | - backdrop-filter: blur(16px); |
103 | | - border: 1px solid rgba(212, 175, 53, 0.2); |
104 | | - box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1); |
105 | | - } |
106 | | - /* Custom scrollbar for webkit */ |
107 | | - ::-webkit-scrollbar { |
108 | | - width: 8px; |
109 | | - height: 8px; |
110 | | - } |
111 | | - /* Light theme default */ |
112 | | - ::-webkit-scrollbar-track { |
113 | | - background-color: #f1f1f1; |
114 | | - } |
115 | | - ::-webkit-scrollbar-thumb { |
116 | | - background-color: #d1d5db; /* Tailwind gray-300 */ |
117 | | - border-radius: 4px; |
118 | | - } |
119 | | - ::-webkit-scrollbar-thumb:hover { |
120 | | - background-color: #9ca3af; /* Tailwind gray-400 */ |
121 | | - } |
122 | | - /* Dark theme overrides */ |
123 | | - .dark ::-webkit-scrollbar-track { |
124 | | - background: #0a0a0a; |
125 | | - } |
126 | | - .dark ::-webkit-scrollbar-thumb { |
127 | | - background: #333; |
128 | | - } |
129 | | - .dark ::-webkit-scrollbar-thumb:hover { |
130 | | - background: #d4af35; |
131 | | - } |
132 | | - |
133 | | - .material-symbols-outlined, |
134 | | - .material-icons-outlined { |
135 | | - font-variation-settings: |
136 | | - "FILL" 0, |
137 | | - "wght" 300, |
138 | | - "GRAD" 0, |
139 | | - "opsz" 24; |
140 | | - } |
141 | | - |
142 | | - /* === LUXURY ANIMATION SYSTEM === */ |
143 | | - |
144 | | - /* 1. Page Transitions */ |
145 | | - @keyframes page-enter { |
146 | | - from { |
147 | | - opacity: 0; |
148 | | - transform: translateY(15px); |
149 | | - } |
150 | | - to { |
151 | | - opacity: 1; |
152 | | - transform: translateY(0); |
153 | | - } |
154 | | - } |
155 | | - .animate-page-enter { |
156 | | - animation: page-enter 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; |
157 | | - } |
158 | | - |
159 | | - /* 2. Staggered Reveal for lists/grids */ |
160 | | - @keyframes reveal-item { |
161 | | - from { |
162 | | - opacity: 0; |
163 | | - transform: translateY(20px); |
164 | | - } |
165 | | - to { |
166 | | - opacity: 1; |
167 | | - transform: translateY(0); |
168 | | - } |
169 | | - } |
170 | | - .reveal-item { |
171 | | - animation: reveal-item 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; |
172 | | - } |
173 | | - |
174 | | - /* Hero Text Slide Up */ |
175 | | - @keyframes slide-up { |
176 | | - from { |
177 | | - opacity: 0; |
178 | | - transform: translateY(30px); |
179 | | - } |
180 | | - to { |
181 | | - opacity: 1; |
182 | | - transform: translateY(0); |
183 | | - } |
184 | | - } |
185 | | - .animate-slide-up { |
186 | | - animation: slide-up 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; |
187 | | - } |
188 | | - |
189 | | - /* 3. Ken Burns Effect */ |
190 | | - @keyframes ken-burns { |
191 | | - 0% { |
192 | | - transform: scale(1); |
193 | | - } |
194 | | - 100% { |
195 | | - transform: scale(1.05); |
196 | | - } |
197 | | - } |
198 | | - .animate-ken-burns { |
199 | | - animation: ken-burns 15s ease-in-out infinite alternate; |
200 | | - will-change: transform; |
201 | | - } |
202 | | - |
203 | | - /* 4. Ambient Gold Glow for backgrounds */ |
204 | | - @keyframes ambient-glow { |
205 | | - 0% { |
206 | | - transform: scale(1); |
207 | | - opacity: 0.08; |
208 | | - } |
209 | | - 50% { |
210 | | - transform: scale(1.3); |
211 | | - opacity: 0.04; |
212 | | - } |
213 | | - 100% { |
214 | | - transform: scale(1); |
215 | | - opacity: 0.08; |
216 | | - } |
217 | | - } |
218 | | - .animate-ambient-glow { |
219 | | - animation: ambient-glow 12s ease-in-out infinite; |
220 | | - filter: blur(120px); |
221 | | - } |
222 | | - |
223 | | - /* 5. Button Micro-interactions */ |
224 | | - .btn-primary-shimmer { |
225 | | - position: relative; |
226 | | - overflow: hidden; |
227 | | - z-index: 1; |
228 | | - } |
229 | | - .btn-primary-shimmer::after { |
230 | | - content: ""; |
231 | | - position: absolute; |
232 | | - top: 0; |
233 | | - left: -150%; |
234 | | - width: 100%; |
235 | | - height: 100%; |
236 | | - background: linear-gradient( |
237 | | - 90deg, |
238 | | - transparent, |
239 | | - rgba(212, 175, 53, 0.3), |
240 | | - transparent |
241 | | - ); |
242 | | - transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1); |
243 | | - transform: translateX(0); |
244 | | - z-index: -1; |
245 | | - } |
246 | | - .btn-primary-shimmer:hover::after { |
247 | | - transform: translateX(250%); |
248 | | - } |
249 | | - |
250 | | - /* 6. Skeleton Loader Shimmer */ |
251 | | - @keyframes shimmer-skeleton { |
252 | | - from { |
253 | | - transform: translateX(-100%); |
254 | | - } |
255 | | - to { |
256 | | - transform: translateX(100%); |
257 | | - } |
258 | | - } |
259 | | - .animate-shimmer-gold { |
260 | | - animation: shimmer-skeleton 2s infinite linear; |
261 | | - } |
262 | | - |
263 | | - /* === END ANIMATION SYSTEM === */ |
264 | | - |
265 | | - /* Portfolio Page Shimmer Border Effect */ |
266 | | - @keyframes border-shimmer { |
267 | | - 0% { |
268 | | - background-position: 0% 50%; |
269 | | - } |
270 | | - 50% { |
271 | | - background-position: 100% 50%; |
272 | | - } |
273 | | - 100% { |
274 | | - background-position: 0% 50%; |
275 | | - } |
276 | | - } |
277 | | - .hover-shimmer-border::after { |
278 | | - content: ""; |
279 | | - position: absolute; |
280 | | - inset: 0; |
281 | | - border-radius: 1.5rem; /* Matches rounded-3xl */ |
282 | | - padding: 2px; |
283 | | - background: linear-gradient( |
284 | | - 45deg, |
285 | | - transparent 40%, |
286 | | - #d4af35 50%, |
287 | | - transparent 60% |
288 | | - ); |
289 | | - background-size: 200% 200%; |
290 | | - -webkit-mask: |
291 | | - linear-gradient(#fff 0 0) content-box, |
292 | | - linear-gradient(#fff 0 0); |
293 | | - mask: |
294 | | - linear-gradient(#fff 0 0) content-box, |
295 | | - linear-gradient(#fff 0 0); |
296 | | - -webkit-mask-composite: xor; |
297 | | - mask-composite: exclude; |
298 | | - opacity: 0; |
299 | | - transition: opacity 0.5s ease; |
300 | | - pointer-events: none; |
301 | | - z-index: 30; |
302 | | - } |
303 | | - .group:hover .hover-shimmer-border::after { |
304 | | - opacity: 1; |
305 | | - animation: border-shimmer 2s linear infinite; |
306 | | - } |
307 | | - |
308 | | - /* Marquee Animation for Partners */ |
309 | | - @keyframes marquee { |
310 | | - from { |
311 | | - transform: translateX(0); |
312 | | - } |
313 | | - to { |
314 | | - transform: translateX(-50%); |
315 | | - } |
316 | | - } |
317 | | - .animate-marquee { |
318 | | - animation: marquee 40s linear infinite; |
319 | | - } |
320 | | - .mask-gradient-lr { |
321 | | - -webkit-mask-image: linear-gradient( |
322 | | - to right, |
323 | | - transparent, |
324 | | - black 10%, |
325 | | - black 90%, |
326 | | - transparent |
327 | | - ); |
328 | | - mask-image: linear-gradient( |
329 | | - to right, |
330 | | - transparent, |
331 | | - black 10%, |
332 | | - black 90%, |
333 | | - transparent |
334 | | - ); |
335 | | - } |
336 | | - |
337 | | - /* Map styles for About Page */ |
338 | | - .map-grayscale { |
339 | | - filter: grayscale(100%) invert(92%) contrast(83%); |
340 | | - mix-blend-mode: luminosity; |
341 | | - } |
342 | | - .map-container:hover .map-grayscale { |
343 | | - filter: grayscale(0%); |
344 | | - mix-blend-mode: normal; |
345 | | - } |
346 | | - </style> |
347 | 24 | <script type="importmap"> |
348 | 25 | { |
349 | 26 | "imports": { |
|
0 commit comments