akra35567 commited on
Commit
32a0d96
·
verified ·
1 Parent(s): 5690470

Upload 2 files

Browse files
Files changed (2) hide show
  1. assets/css/animations.css +344 -0
  2. assets/css/style.css +239 -0
assets/css/animations.css ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Animations Library - SoftEdge Corporation */
2
+
3
+ /* Fade In Animations */
4
+ .fade-in {
5
+ animation: fadeIn 0.8s ease-out;
6
+ }
7
+
8
+ .fade-in-up {
9
+ animation: fadeInUp 0.8s ease-out;
10
+ }
11
+
12
+ .fade-in-down {
13
+ animation: fadeInDown 0.8s ease-out;
14
+ }
15
+
16
+ .fade-in-left {
17
+ animation: fadeInLeft 0.8s ease-out;
18
+ }
19
+
20
+ .fade-in-right {
21
+ animation: fadeInRight 0.8s ease-out;
22
+ }
23
+
24
+ /* Staggered Animations */
25
+ .stagger-1 { animation-delay: 0.1s; }
26
+ .stagger-2 { animation-delay: 0.2s; }
27
+ .stagger-3 { animation-delay: 0.3s; }
28
+ .stagger-4 { animation-delay: 0.4s; }
29
+ .stagger-5 { animation-delay: 0.5s; }
30
+
31
+ /* Keyframe Definitions */
32
+ @keyframes fadeIn {
33
+ from {
34
+ opacity: 0;
35
+ transform: scale(0.95);
36
+ }
37
+ to {
38
+ opacity: 1;
39
+ transform: scale(1);
40
+ }
41
+ }
42
+
43
+ @keyframes fadeInUp {
44
+ from {
45
+ opacity: 0;
46
+ transform: translateY(30px);
47
+ }
48
+ to {
49
+ opacity: 1;
50
+ transform: translateY(0);
51
+ }
52
+ }
53
+
54
+ @keyframes fadeInDown {
55
+ from {
56
+ opacity: 0;
57
+ transform: translateY(-30px);
58
+ }
59
+ to {
60
+ opacity: 1;
61
+ transform: translateY(0);
62
+ }
63
+ }
64
+
65
+ @keyframes fadeInLeft {
66
+ from {
67
+ opacity: 0;
68
+ transform: translateX(-30px);
69
+ }
70
+ to {
71
+ opacity: 1;
72
+ transform: translateX(0);
73
+ }
74
+ }
75
+
76
+ @keyframes fadeInRight {
77
+ from {
78
+ opacity: 0;
79
+ transform: translateX(30px);
80
+ }
81
+ to {
82
+ opacity: 1;
83
+ transform: translateX(0);
84
+ }
85
+ }
86
+
87
+ /* Typing Animation */
88
+ .typing-text {
89
+ overflow: hidden;
90
+ border-right: 2px solid rgba(6, 182, 212, 0.8);
91
+ white-space: nowrap;
92
+ animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
93
+ }
94
+
95
+ @keyframes typing {
96
+ from { width: 0; }
97
+ to { width: 100%; }
98
+ }
99
+
100
+ @keyframes blink-caret {
101
+ from, to { border-color: transparent; }
102
+ 50% { border-color: rgba(6, 182, 212, 0.8); }
103
+ }
104
+
105
+ /* Floating Particles */
106
+ .particle {
107
+ position: absolute;
108
+ background: rgba(255, 255, 255, 0.1);
109
+ border-radius: 50%;
110
+ pointer-events: none;
111
+ animation: float 8s ease-in-out infinite;
112
+ }
113
+
114
+ .particle:nth-child(1) { width: 4px; height: 4px; top: 20%; left: 10%; animation-delay: 0s; }
115
+ .particle:nth-child(2) { width: 6px; height: 6px; top: 60%; left: 80%; animation-delay: 2s; }
116
+ .particle:nth-child(3) { width: 3px; height: 3px; top: 40%; left: 60%; animation-delay: 4s; }
117
+ .particle:nth-child(4) { width: 5px; height: 5px; top: 80%; left: 30%; animation-delay: 1s; }
118
+ .particle:nth-child(5) { width: 4px; height: 4px; top: 10%; left: 70%; animation-delay: 3s; }
119
+
120
+ @keyframes float {
121
+ 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.1; }
122
+ 50% { transform: translateY(-20px) rotate(180deg); opacity: 0.3; }
123
+ }
124
+
125
+ /* Logo Glow Animation */
126
+ .logo-glow {
127
+ animation: logoGlow 4s ease-in-out infinite;
128
+ }
129
+
130
+ @keyframes logoGlow {
131
+ 0%, 100% { filter: drop-shadow(0 0 5px rgba(6, 182, 212, 0.3)); }
132
+ 50% { filter: drop-shadow(0 0 20px rgba(6, 182, 212, 0.6)); }
133
+ }
134
+
135
+ /* Shimmer Effect */
136
+ .shimmer {
137
+ position: relative;
138
+ overflow: hidden;
139
+ }
140
+
141
+ .shimmer::after {
142
+ content: '';
143
+ position: absolute;
144
+ top: 0;
145
+ right: 0;
146
+ bottom: 0;
147
+ left: 0;
148
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
149
+ animation: shimmer 2s infinite;
150
+ }
151
+
152
+ @keyframes shimmer {
153
+ 0% { transform: translateX(-100%); }
154
+ 100% { transform: translateX(100%); }
155
+ }
156
+
157
+ /* Pulse Animation */
158
+ .pulse-glow {
159
+ animation: pulseGlow 2s ease-in-out infinite;
160
+ }
161
+
162
+ @keyframes pulseGlow {
163
+ 0%, 100% {
164
+ box-shadow: 0 0 5px rgba(6, 182, 212, 0.3);
165
+ }
166
+ 50% {
167
+ box-shadow: 0 0 20px rgba(6, 182, 212, 0.6), 0 0 30px rgba(6, 182, 212, 0.4);
168
+ }
169
+ }
170
+
171
+ /* Bounce Animation */
172
+ .bounce-in {
173
+ animation: bounceIn 0.8s ease-out;
174
+ }
175
+
176
+ @keyframes bounceIn {
177
+ 0% {
178
+ opacity: 0;
179
+ transform: scale(0.3);
180
+ }
181
+ 50% {
182
+ opacity: 1;
183
+ transform: scale(1.05);
184
+ }
185
+ 70% {
186
+ transform: scale(0.9);
187
+ }
188
+ 100% {
189
+ opacity: 1;
190
+ transform: scale(1);
191
+ }
192
+ }
193
+
194
+ /* Slide In Animations */
195
+ .slide-in-left {
196
+ animation: slideInLeft 0.8s ease-out;
197
+ }
198
+
199
+ .slide-in-right {
200
+ animation: slideInRight 0.8s ease-out;
201
+ }
202
+
203
+ .slide-in-up {
204
+ animation: slideInUp 0.8s ease-out;
205
+ }
206
+
207
+ .slide-in-down {
208
+ animation: slideInDown 0.8s ease-out;
209
+ }
210
+
211
+ @keyframes slideInLeft {
212
+ from {
213
+ opacity: 0;
214
+ transform: translateX(-100%);
215
+ }
216
+ to {
217
+ opacity: 1;
218
+ transform: translateX(0);
219
+ }
220
+ }
221
+
222
+ @keyframes slideInRight {
223
+ from {
224
+ opacity: 0;
225
+ transform: translateX(100%);
226
+ }
227
+ to {
228
+ opacity: 1;
229
+ transform: translateX(0);
230
+ }
231
+ }
232
+
233
+ @keyframes slideInUp {
234
+ from {
235
+ opacity: 0;
236
+ transform: translateY(100%);
237
+ }
238
+ to {
239
+ opacity: 1;
240
+ transform: translateY(0);
241
+ }
242
+ }
243
+
244
+ @keyframes slideInDown {
245
+ from {
246
+ opacity: 0;
247
+ transform: translateY(-100%);
248
+ }
249
+ to {
250
+ opacity: 1;
251
+ transform: translateY(0);
252
+ }
253
+ }
254
+
255
+ /* Scale Animations */
256
+ .scale-in {
257
+ animation: scaleIn 0.6s ease-out;
258
+ }
259
+
260
+ .scale-out {
261
+ animation: scaleOut 0.6s ease-out;
262
+ }
263
+
264
+ @keyframes scaleIn {
265
+ from {
266
+ opacity: 0;
267
+ transform: scale(0);
268
+ }
269
+ to {
270
+ opacity: 1;
271
+ transform: scale(1);
272
+ }
273
+ }
274
+
275
+ @keyframes scaleOut {
276
+ from {
277
+ opacity: 1;
278
+ transform: scale(1);
279
+ }
280
+ to {
281
+ opacity: 0;
282
+ transform: scale(0);
283
+ }
284
+ }
285
+
286
+ /* Loading Spinner */
287
+ .loading-spinner {
288
+ border: 2px solid rgba(226, 232, 240, 0.3);
289
+ border-top: 2px solid #06b6d4;
290
+ border-radius: 50%;
291
+ width: 20px;
292
+ height: 20px;
293
+ animation: spin 1s linear infinite;
294
+ }
295
+
296
+ @keyframes spin {
297
+ 0% { transform: rotate(0deg); }
298
+ 100% { transform: rotate(360deg); }
299
+ }
300
+
301
+ /* Magnetic Effect */
302
+ .magnetic {
303
+ transition: transform 0.3s ease;
304
+ }
305
+
306
+ .magnetic:hover {
307
+ transform: scale(1.05);
308
+ }
309
+
310
+ /* Hover Effects */
311
+ .hover-lift {
312
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
313
+ }
314
+
315
+ .hover-lift:hover {
316
+ transform: translateY(-5px);
317
+ box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
318
+ }
319
+
320
+ /* Responsive Animations */
321
+ @media (prefers-reduced-motion: reduce) {
322
+ *,
323
+ *::before,
324
+ *::after {
325
+ animation-duration: 0.01ms !important;
326
+ animation-iteration-count: 1 !important;
327
+ transition-duration: 0.01ms !important;
328
+ }
329
+ }
330
+
331
+ /* Mobile Optimizations */
332
+ @media (max-width: 768px) {
333
+ .particle {
334
+ display: none; /* Hide particles on mobile for performance */
335
+ }
336
+
337
+ .fade-in,
338
+ .fade-in-up,
339
+ .fade-in-down,
340
+ .fade-in-left,
341
+ .fade-in-right {
342
+ animation-duration: 0.6s; /* Faster animations on mobile */
343
+ }
344
+ }
assets/css/style.css ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* SoftEdge Corporation - Main Stylesheet */
2
+
3
+ /* Note: Tailwind is loaded via CDN in header.php and some pages. */
4
+ /* This stylesheet provides custom components and utilities that complement Tailwind. */
5
+
6
+ /* Base Styles */
7
+ @layer base {
8
+ html {
9
+ scroll-behavior: smooth;
10
+ }
11
+
12
+ body {
13
+ font-family: 'Inter', system-ui, -apple-system, sans-serif;
14
+ }
15
+
16
+ /* Custom scrollbar */
17
+ ::-webkit-scrollbar {
18
+ width: 8px;
19
+ }
20
+
21
+ ::-webkit-scrollbar-track {
22
+ background: rgba(15, 23, 42, 0.5);
23
+ }
24
+
25
+ ::-webkit-scrollbar-thumb {
26
+ background: linear-gradient(180deg, #06b6d4, #3b82f6);
27
+ border-radius: 4px;
28
+ }
29
+
30
+ ::-webkit-scrollbar-thumb:hover {
31
+ background: linear-gradient(180deg, #0891b2, #2563eb);
32
+ }
33
+ }
34
+
35
+ /* Component Styles */
36
+ @layer components {
37
+ .glass-card {
38
+ background: rgba(30, 41, 59, 0.15);
39
+ backdrop-filter: blur(25px);
40
+ -webkit-backdrop-filter: blur(25px);
41
+ border: 1px solid rgba(148, 163, 184, 0.08);
42
+ box-shadow:
43
+ 0 8px 32px rgba(0, 0, 0, 0.12),
44
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
45
+ }
46
+
47
+ .btn-primary {
48
+ background: linear-gradient(to right, #06b6d4, #3b82f6);
49
+ color: white;
50
+ font-weight: 500;
51
+ padding: 0.75rem 1.5rem;
52
+ border-radius: 0.5rem;
53
+ transition: all 0.3s ease;
54
+ }
55
+
56
+ .btn-primary:hover {
57
+ background: linear-gradient(to right, #0891b2, #2563eb);
58
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
59
+ }
60
+
61
+ .btn-secondary {
62
+ background-color: #334155;
63
+ color: #e2e8f0;
64
+ font-weight: 500;
65
+ padding: 0.75rem 1.5rem;
66
+ border: 1px solid #475569;
67
+ border-radius: 0.5rem;
68
+ transition: all 0.3s ease;
69
+ }
70
+
71
+ .btn-secondary:hover {
72
+ background-color: #475569;
73
+ }
74
+
75
+ .input-focus {
76
+ transition: all 0.3s ease;
77
+ background: rgba(30, 41, 59, 0.2);
78
+ border: 1px solid rgba(148, 163, 184, 0.1);
79
+ }
80
+
81
+ .input-focus:focus {
82
+ background: rgba(30, 41, 59, 0.3);
83
+ border-color: rgba(6, 182, 212, 0.4);
84
+ box-shadow:
85
+ 0 0 0 3px rgba(6, 182, 212, 0.1),
86
+ 0 0 20px rgba(6, 182, 212, 0.1);
87
+ }
88
+ }
89
+
90
+ /* Utility Classes */
91
+ @layer utilities {
92
+ .text-gradient {
93
+ background: linear-gradient(to right, #06b6d4, #3b82f6);
94
+ background-clip: text;
95
+ -webkit-background-clip: text;
96
+ color: transparent;
97
+ }
98
+
99
+ .text-gradient-animated {
100
+ background: linear-gradient(90deg, #06b6d4, #3b82f6, #a855f7);
101
+ background-size: 200% 200%;
102
+ background-clip: text;
103
+ -webkit-background-clip: text;
104
+ color: transparent;
105
+ animation: gradient-shift 8s ease infinite;
106
+ }
107
+
108
+ .scroll-fade-in {
109
+ opacity: 0;
110
+ transform: translateY(12px);
111
+ transition: opacity .6s ease, transform .6s ease;
112
+ }
113
+ .scroll-fade-in.in-view {
114
+ opacity: 1;
115
+ transform: translateY(0);
116
+ }
117
+
118
+ .stat-card,
119
+ .service-card {
120
+ background: rgba(30, 41, 59, 0.15);
121
+ border: 1px solid rgba(148, 163, 184, 0.08);
122
+ border-radius: .75rem;
123
+ padding: 1.25rem;
124
+ backdrop-filter: blur(20px);
125
+ }
126
+
127
+ .service-icon {
128
+ width: 48px;
129
+ height: 48px;
130
+ border-radius: 12px;
131
+ background: linear-gradient(135deg, rgba(6,182,212,0.15), rgba(59,130,246,0.15));
132
+ display: inline-flex;
133
+ align-items: center;
134
+ justify-content: center;
135
+ margin-bottom: 12px;
136
+ border: 1px solid rgba(148, 163, 184, 0.12);
137
+ }
138
+
139
+ .bg-sea {
140
+ background: url('/assets/mar.jpg') center/cover fixed no-repeat;
141
+ }
142
+
143
+ .bg-sea::before {
144
+ content: '';
145
+ position: fixed;
146
+ top: 0;
147
+ left: 0;
148
+ right: 0;
149
+ bottom: 0;
150
+ background: linear-gradient(135deg, rgba(15, 23, 42, 0.85) 0%, rgba(30, 41, 59, 0.75) 50%, rgba(15, 23, 42, 0.85) 100%);
151
+ backdrop-filter: blur(1px);
152
+ -webkit-backdrop-filter: blur(1px);
153
+ z-index: -1;
154
+ }
155
+
156
+ .fade-in {
157
+ animation: fadeIn 0.8s ease-out;
158
+ }
159
+
160
+ .shimmer {
161
+ position: relative;
162
+ overflow: hidden;
163
+ }
164
+
165
+ .shimmer::after {
166
+ content: '';
167
+ position: absolute;
168
+ top: 0;
169
+ right: 0;
170
+ bottom: 0;
171
+ left: 0;
172
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
173
+ animation: shimmer 2s infinite;
174
+ }
175
+ }
176
+
177
+ /* Animations */
178
+ @keyframes fadeIn {
179
+ from {
180
+ opacity: 0;
181
+ transform: translateY(30px) scale(0.95);
182
+ }
183
+ to {
184
+ opacity: 1;
185
+ transform: translateY(0) scale(1);
186
+ }
187
+ }
188
+
189
+ @keyframes shimmer {
190
+ 0% { transform: translateX(-100%); }
191
+ 100% { transform: translateX(100%); }
192
+ }
193
+
194
+ @keyframes float {
195
+ 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.1; }
196
+ 50% { transform: translateY(-20px) rotate(180deg); opacity: 0.3; }
197
+ }
198
+
199
+ /* Floating Particles */
200
+ .particle {
201
+ position: absolute;
202
+ background: rgba(255, 255, 255, 0.1);
203
+ border-radius: 50%;
204
+ pointer-events: none;
205
+ animation: float 8s ease-in-out infinite;
206
+ }
207
+
208
+ .particle:nth-child(1) { width: 4px; height: 4px; top: 20%; left: 10%; animation-delay: 0s; }
209
+ .particle:nth-child(2) { width: 6px; height: 6px; top: 60%; left: 80%; animation-delay: 2s; }
210
+ .particle:nth-child(3) { width: 3px; height: 3px; top: 40%; left: 60%; animation-delay: 4s; }
211
+ .particle:nth-child(4) { width: 5px; height: 5px; top: 80%; left: 30%; animation-delay: 1s; }
212
+ .particle:nth-child(5) { width: 4px; height: 4px; top: 10%; left: 70%; animation-delay: 3s; }
213
+
214
+ /* Loading Spinner */
215
+ .loading-spinner {
216
+ border: 2px solid rgba(226, 232, 240, 0.3);
217
+ border-top: 2px solid #06b6d4;
218
+ border-radius: 50%;
219
+ width: 20px;
220
+ height: 20px;
221
+ animation: spin 1s linear infinite;
222
+ }
223
+
224
+ @keyframes spin {
225
+ 0% { transform: rotate(0deg); }
226
+ 100% { transform: rotate(360deg); }
227
+ }
228
+
229
+ /* Responsive Design */
230
+ @media (max-width: 768px) {
231
+ .glass-card {
232
+ backdrop-filter: blur(15px);
233
+ -webkit-backdrop-filter: blur(15px);
234
+ }
235
+
236
+ .particle {
237
+ display: none; /* Hide particles on mobile for performance */
238
+ }
239
+ }