sandymount 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/styles.css ADDED
@@ -0,0 +1,907 @@
1
+ /* Sandymount Styles */
2
+
3
+ :root {
4
+ --bg: #fafafa;
5
+ --bg-card: #ffffff;
6
+ --bg-card-hover: #f5f5f5;
7
+ --text: #18181b;
8
+ --text-muted: #52525b;
9
+ --accent: #7c3aed;
10
+ --accent-cyan: #0891b2;
11
+ --accent-orange: #ea580c;
12
+ --accent-green: #16a34a;
13
+ --accent-pink: #db2777;
14
+ --accent-yellow: #ca8a04;
15
+ --accent-glow: rgba(124, 58, 237, 0.15);
16
+ --border: #e4e4e7;
17
+ --gradient: linear-gradient(135deg, #7c3aed, #0891b2);
18
+ }
19
+
20
+ * { box-sizing: border-box; margin: 0; padding: 0; }
21
+
22
+ /* Skip Link - Accessibility */
23
+ .skip-link {
24
+ position: absolute;
25
+ top: -40px;
26
+ left: 0;
27
+ background: var(--accent);
28
+ color: white;
29
+ padding: 8px 16px;
30
+ z-index: 9999;
31
+ font-weight: 600;
32
+ border-radius: 0 0 4px 0;
33
+ }
34
+ .skip-link:focus {
35
+ top: 0;
36
+ outline: 2px solid var(--accent-cyan);
37
+ outline-offset: 2px;
38
+ }
39
+
40
+ /* Stack Comparison */
41
+ .stack-compare-section {
42
+ max-width: 800px;
43
+ margin: 0 auto 4rem;
44
+ padding: 0 1.5rem;
45
+ }
46
+ .stack-compare {
47
+ display: flex;
48
+ justify-content: center;
49
+ align-items: center;
50
+ gap: 2rem;
51
+ }
52
+ .era {
53
+ text-align: center;
54
+ }
55
+ .era-label {
56
+ font-size: 0.875rem;
57
+ color: var(--text-muted);
58
+ margin-bottom: 0.75rem;
59
+ font-weight: 500;
60
+ }
61
+ .stack-visual {
62
+ border: 2px solid var(--border);
63
+ border-radius: 8px;
64
+ overflow: hidden;
65
+ min-width: 160px;
66
+ }
67
+ .era-sand .stack-visual {
68
+ border-color: var(--accent);
69
+ box-shadow: 0 0 20px var(--accent-glow);
70
+ }
71
+ .layer {
72
+ padding: 0.75rem 1rem;
73
+ border-bottom: 1px solid var(--border);
74
+ display: flex;
75
+ justify-content: space-between;
76
+ align-items: center;
77
+ gap: 1rem;
78
+ background: var(--bg-card);
79
+ }
80
+ .layer:last-child {
81
+ border-bottom: none;
82
+ }
83
+ .era-sand .layer {
84
+ border-color: rgba(124, 58, 237, 0.2);
85
+ }
86
+ .layer-name {
87
+ font-weight: 600;
88
+ color: var(--text);
89
+ }
90
+ .layer-name.sand-s { color: var(--accent); }
91
+ .layer-name.sand-a { color: var(--accent-cyan); }
92
+ .layer-name.sand-n { color: var(--accent-orange); }
93
+ .layer-name.sand-d { color: var(--accent-green); }
94
+ .layer-role {
95
+ font-size: 0.75rem;
96
+ color: var(--text-muted);
97
+ text-transform: uppercase;
98
+ letter-spacing: 0.05em;
99
+ }
100
+ .stack-name {
101
+ font-size: 1.5rem;
102
+ font-weight: 700;
103
+ margin-top: 1rem;
104
+ color: var(--text);
105
+ }
106
+ .era-sand .stack-name {
107
+ background: var(--gradient);
108
+ -webkit-background-clip: text;
109
+ background-clip: text;
110
+ color: transparent;
111
+ }
112
+ .stack-desc {
113
+ font-size: 0.875rem;
114
+ color: var(--text-muted);
115
+ margin-top: 0.25rem;
116
+ }
117
+ .era-arrow {
118
+ font-size: 2rem;
119
+ color: var(--text-muted);
120
+ }
121
+ @media (max-width: 600px) {
122
+ .stack-compare {
123
+ flex-direction: column;
124
+ gap: 1.5rem;
125
+ }
126
+ .era-arrow {
127
+ transform: rotate(90deg);
128
+ }
129
+ }
130
+
131
+ body {
132
+ font-family: 'Inter', system-ui, sans-serif;
133
+ background: var(--bg);
134
+ color: var(--text);
135
+ line-height: 1.7;
136
+ overflow-x: hidden;
137
+ }
138
+
139
+ a { color: var(--accent); text-decoration: none; transition: all 0.2s; }
140
+ a:hover { color: var(--accent-cyan); }
141
+
142
+ /* Animations */
143
+ @keyframes fadeInUp {
144
+ from {
145
+ opacity: 0;
146
+ transform: translateY(20px);
147
+ }
148
+ to {
149
+ opacity: 1;
150
+ transform: translateY(0);
151
+ }
152
+ }
153
+
154
+ @keyframes fadeIn {
155
+ from { opacity: 0; }
156
+ to { opacity: 1; }
157
+ }
158
+
159
+ @keyframes pulse {
160
+ 0%, 100% { transform: scale(1); }
161
+ 50% { transform: scale(1.05); }
162
+ }
163
+
164
+ @keyframes slideInRight {
165
+ from {
166
+ opacity: 0;
167
+ transform: translateX(20px);
168
+ }
169
+ to {
170
+ opacity: 1;
171
+ transform: translateX(0);
172
+ }
173
+ }
174
+
175
+ @keyframes gradientShift {
176
+ 0% { background-position: 0% 50%; }
177
+ 50% { background-position: 100% 50%; }
178
+ 100% { background-position: 0% 50%; }
179
+ }
180
+
181
+ /* Subtle background */
182
+ .bg-grid {
183
+ position: fixed;
184
+ top: 0; left: 0; right: 0; bottom: 0;
185
+ background-image:
186
+ linear-gradient(rgba(124, 58, 237, 0.03) 1px, transparent 1px),
187
+ linear-gradient(90deg, rgba(124, 58, 237, 0.03) 1px, transparent 1px);
188
+ background-size: 50px 50px;
189
+ pointer-events: none;
190
+ z-index: -1;
191
+ }
192
+
193
+ .bg-glow {
194
+ position: fixed;
195
+ width: 800px; height: 800px;
196
+ border-radius: 50%;
197
+ filter: blur(180px);
198
+ opacity: 0.08;
199
+ pointer-events: none;
200
+ z-index: -1;
201
+ animation: pulse 8s ease-in-out infinite;
202
+ }
203
+
204
+ .bg-glow-1 { top: -300px; left: -200px; background: var(--accent); }
205
+ .bg-glow-2 { bottom: -300px; right: -200px; background: var(--accent-cyan); animation-delay: 4s; }
206
+
207
+ /* Navigation */
208
+ .nav {
209
+ padding: 1.25rem 2rem;
210
+ display: flex;
211
+ justify-content: space-between;
212
+ align-items: center;
213
+ max-width: 1400px;
214
+ margin: 0 auto;
215
+ position: sticky;
216
+ top: 0;
217
+ background: rgba(250, 250, 250, 0.9);
218
+ backdrop-filter: blur(20px);
219
+ z-index: 100;
220
+ border-bottom: 1px solid var(--border);
221
+ }
222
+
223
+ .nav-logo {
224
+ font-size: 1.5rem;
225
+ font-weight: 700;
226
+ background: var(--gradient);
227
+ -webkit-background-clip: text;
228
+ background-clip: text;
229
+ color: transparent;
230
+ }
231
+
232
+ .nav-links { display: flex; gap: 2rem; align-items: center; }
233
+ .nav-links a {
234
+ color: var(--text-muted);
235
+ font-weight: 500;
236
+ font-size: 0.95rem;
237
+ position: relative;
238
+ }
239
+ .nav-links a::after {
240
+ content: '';
241
+ position: absolute;
242
+ bottom: -4px;
243
+ left: 0;
244
+ width: 0;
245
+ height: 2px;
246
+ background: var(--gradient);
247
+ transition: width 0.3s ease;
248
+ }
249
+ .nav-links a:hover { color: var(--text); }
250
+ .nav-links a:hover::after { width: 100%; }
251
+
252
+ /* Hamburger Menu */
253
+ .hamburger {
254
+ display: none;
255
+ flex-direction: column;
256
+ gap: 5px;
257
+ cursor: pointer;
258
+ padding: 10px;
259
+ z-index: 200;
260
+ }
261
+
262
+ .hamburger span {
263
+ width: 24px;
264
+ height: 2px;
265
+ background: var(--text);
266
+ transition: all 0.3s ease;
267
+ transform-origin: center;
268
+ }
269
+
270
+ .hamburger.active span:nth-child(1) {
271
+ transform: rotate(45deg) translate(5px, 5px);
272
+ }
273
+
274
+ .hamburger.active span:nth-child(2) {
275
+ opacity: 0;
276
+ }
277
+
278
+ .hamburger.active span:nth-child(3) {
279
+ transform: rotate(-45deg) translate(5px, -5px);
280
+ }
281
+
282
+ /* Mobile Menu */
283
+ .mobile-menu {
284
+ display: none;
285
+ position: fixed;
286
+ top: 0;
287
+ left: 0;
288
+ right: 0;
289
+ bottom: 0;
290
+ background: rgba(250, 250, 250, 0.98);
291
+ backdrop-filter: blur(20px);
292
+ z-index: 150;
293
+ flex-direction: column;
294
+ justify-content: center;
295
+ align-items: center;
296
+ gap: 2rem;
297
+ opacity: 0;
298
+ pointer-events: none;
299
+ transition: opacity 0.3s ease;
300
+ }
301
+
302
+ .mobile-menu.active {
303
+ opacity: 1;
304
+ pointer-events: all;
305
+ }
306
+
307
+ .mobile-menu a {
308
+ font-size: 1.5rem;
309
+ font-weight: 600;
310
+ color: var(--text);
311
+ animation: fadeInUp 0.5s ease forwards;
312
+ opacity: 0;
313
+ }
314
+
315
+ .mobile-menu.active a:nth-child(1) { animation-delay: 0.1s; }
316
+ .mobile-menu.active a:nth-child(2) { animation-delay: 0.15s; }
317
+ .mobile-menu.active a:nth-child(3) { animation-delay: 0.2s; }
318
+ .mobile-menu.active a:nth-child(4) { animation-delay: 0.25s; }
319
+ .mobile-menu.active a:nth-child(5) { animation-delay: 0.3s; }
320
+
321
+ @media (max-width: 768px) {
322
+ .nav-links { display: none; }
323
+ .hamburger { display: flex; }
324
+ .mobile-menu { display: flex; }
325
+ }
326
+
327
+ /* Hero */
328
+ .hero {
329
+ text-align: center;
330
+ padding: 8rem 2rem 6rem;
331
+ max-width: 1000px;
332
+ margin: 0 auto;
333
+ }
334
+
335
+ .hero-badge {
336
+ display: inline-flex;
337
+ align-items: center;
338
+ gap: 0.5rem;
339
+ background: rgba(124, 58, 237, 0.1);
340
+ border: 1px solid rgba(124, 58, 237, 0.2);
341
+ padding: 0.6rem 1.25rem;
342
+ border-radius: 25px;
343
+ font-size: 0.9rem;
344
+ color: var(--accent);
345
+ margin-bottom: 2rem;
346
+ animation: fadeInUp 0.6s ease forwards;
347
+ }
348
+
349
+ .hero h1 {
350
+ font-size: 4rem;
351
+ font-weight: 800;
352
+ line-height: 1.1;
353
+ margin-bottom: 1.5rem;
354
+ background: linear-gradient(135deg, #18181b 0%, #7c3aed 50%, #0891b2 100%);
355
+ background-size: 200% 200%;
356
+ -webkit-background-clip: text;
357
+ background-clip: text;
358
+ color: transparent;
359
+ animation: fadeInUp 0.6s ease 0.1s forwards, gradientShift 8s ease infinite;
360
+ opacity: 0;
361
+ }
362
+
363
+ @media (max-width: 768px) {
364
+ .hero h1 { font-size: 2.5rem; }
365
+ .hero { padding: 5rem 1.5rem 3rem; }
366
+ }
367
+
368
+ .hero-subtitle {
369
+ font-size: 1.5rem;
370
+ color: var(--text-muted);
371
+ max-width: 800px;
372
+ margin: 0 auto 1rem;
373
+ font-weight: 300;
374
+ animation: fadeInUp 0.6s ease 0.2s forwards;
375
+ opacity: 0;
376
+ }
377
+
378
+ .hero-desc {
379
+ font-size: 1.1rem;
380
+ color: var(--text-muted);
381
+ max-width: 700px;
382
+ margin: 0 auto 2.5rem;
383
+ animation: fadeInUp 0.6s ease 0.3s forwards;
384
+ opacity: 0;
385
+ }
386
+
387
+ .hero-buttons {
388
+ display: flex;
389
+ gap: 1rem;
390
+ justify-content: center;
391
+ flex-wrap: wrap;
392
+ animation: fadeInUp 0.6s ease 0.4s forwards;
393
+ opacity: 0;
394
+ }
395
+
396
+ .btn {
397
+ padding: 0.9rem 1.75rem;
398
+ border-radius: 8px;
399
+ font-weight: 600;
400
+ font-size: 1rem;
401
+ transition: all 0.2s;
402
+ display: inline-flex;
403
+ align-items: center;
404
+ gap: 0.5rem;
405
+ }
406
+
407
+ .btn-primary {
408
+ background: var(--gradient);
409
+ background-size: 200% 200%;
410
+ color: white;
411
+ }
412
+
413
+ .btn-primary:hover {
414
+ transform: translateY(-2px);
415
+ box-shadow: 0 15px 50px var(--accent-glow);
416
+ color: white;
417
+ animation: gradientShift 2s ease infinite;
418
+ }
419
+
420
+ .btn-secondary {
421
+ background: var(--bg-card);
422
+ border: 1px solid var(--border);
423
+ color: var(--text);
424
+ }
425
+
426
+ .btn-secondary:hover {
427
+ background: var(--bg-card-hover);
428
+ border-color: var(--accent);
429
+ color: var(--text);
430
+ transform: translateY(-2px);
431
+ }
432
+
433
+ /* Section styling */
434
+ .section {
435
+ padding: 5rem 2rem;
436
+ max-width: 1400px;
437
+ margin: 0 auto;
438
+ }
439
+
440
+ .section-header {
441
+ text-align: center;
442
+ margin-bottom: 3.5rem;
443
+ }
444
+
445
+ .section-header h2 {
446
+ font-size: 2.5rem;
447
+ margin-bottom: 1rem;
448
+ font-weight: 700;
449
+ }
450
+
451
+ .section-header p {
452
+ color: var(--text-muted);
453
+ font-size: 1.15rem;
454
+ max-width: 600px;
455
+ margin: 0 auto;
456
+ }
457
+
458
+ .section-tag {
459
+ display: inline-block;
460
+ background: rgba(124, 58, 237, 0.1);
461
+ border: 1px solid rgba(124, 58, 237, 0.15);
462
+ padding: 0.35rem 0.9rem;
463
+ border-radius: 15px;
464
+ font-size: 0.8rem;
465
+ color: var(--accent);
466
+ margin-bottom: 1rem;
467
+ text-transform: uppercase;
468
+ letter-spacing: 0.5px;
469
+ }
470
+
471
+ /* SAND Stack */
472
+ .sand-grid {
473
+ display: grid;
474
+ grid-template-columns: repeat(4, 1fr);
475
+ gap: 1.5rem;
476
+ }
477
+
478
+ @media (max-width: 900px) {
479
+ .sand-grid { grid-template-columns: repeat(2, 1fr); }
480
+ }
481
+
482
+ @media (max-width: 500px) {
483
+ .sand-grid { grid-template-columns: 1fr; }
484
+ }
485
+
486
+ .sand-card {
487
+ background: var(--bg-card);
488
+ border: 1px solid var(--border);
489
+ border-radius: 16px;
490
+ padding: 2rem;
491
+ text-align: center;
492
+ transition: all 0.3s;
493
+ position: relative;
494
+ overflow: hidden;
495
+ box-shadow: 0 1px 3px rgba(0,0,0,0.05);
496
+ }
497
+
498
+ .sand-card::before {
499
+ content: '';
500
+ position: absolute;
501
+ top: 0; left: 0; right: 0;
502
+ height: 3px;
503
+ background: var(--card-accent);
504
+ opacity: 0;
505
+ transition: opacity 0.3s;
506
+ }
507
+
508
+ .sand-card:hover {
509
+ transform: translateY(-8px);
510
+ border-color: var(--card-accent);
511
+ box-shadow: 0 20px 40px rgba(0,0,0,0.1);
512
+ }
513
+
514
+ .sand-card:hover::before { opacity: 1; }
515
+
516
+ .sand-card:hover .letter {
517
+ animation: pulse 0.5s ease;
518
+ }
519
+
520
+ .sand-card .letter {
521
+ font-size: 3.5rem;
522
+ font-weight: 800;
523
+ margin-bottom: 0.5rem;
524
+ background: linear-gradient(135deg, var(--card-accent), var(--card-accent-2));
525
+ -webkit-background-clip: text;
526
+ background-clip: text;
527
+ color: transparent;
528
+ transition: transform 0.3s ease;
529
+ }
530
+
531
+ .sand-card h3 { font-size: 1.35rem; margin-bottom: 0.75rem; }
532
+ .sand-card p { color: var(--text-muted); font-size: 0.95rem; margin-bottom: 1rem; }
533
+ .sand-card .link { font-size: 0.85rem; }
534
+
535
+ .sand-s { --card-accent: #7c3aed; --card-accent-2: #a78bfa; }
536
+ .sand-a { --card-accent: #0891b2; --card-accent-2: #22d3ee; }
537
+ .sand-n { --card-accent: #ea580c; --card-accent-2: #fb923c; }
538
+ .sand-d { --card-accent: #16a34a; --card-accent-2: #4ade80; }
539
+
540
+ /* Project Categories */
541
+ .category {
542
+ margin-bottom: 4rem;
543
+ }
544
+
545
+ .category-header {
546
+ display: flex;
547
+ align-items: center;
548
+ gap: 1rem;
549
+ margin-bottom: 2rem;
550
+ padding-bottom: 1rem;
551
+ border-bottom: 1px solid var(--border);
552
+ }
553
+
554
+ .category-icon {
555
+ width: 48px; height: 48px;
556
+ background: rgba(124, 58, 237, 0.1);
557
+ border-radius: 12px;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ font-size: 1.5rem;
562
+ transition: transform 0.3s ease;
563
+ }
564
+
565
+ .category-header:hover .category-icon {
566
+ transform: scale(1.1) rotate(5deg);
567
+ }
568
+
569
+ .category-header h3 {
570
+ font-size: 1.5rem;
571
+ font-weight: 600;
572
+ }
573
+
574
+ .category-header p {
575
+ color: var(--text-muted);
576
+ font-size: 0.95rem;
577
+ }
578
+
579
+ /* Projects Grid */
580
+ .projects-grid {
581
+ display: grid;
582
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
583
+ gap: 1.25rem;
584
+ }
585
+
586
+ a.project-card {
587
+ background: var(--bg-card);
588
+ border: 1px solid var(--border);
589
+ border-radius: 12px;
590
+ padding: 1.5rem;
591
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
592
+ display: flex;
593
+ flex-direction: column;
594
+ box-shadow: 0 1px 3px rgba(0,0,0,0.05);
595
+ color: var(--text);
596
+ text-decoration: none;
597
+ cursor: pointer;
598
+ }
599
+
600
+ a.project-card:hover {
601
+ border-color: var(--accent);
602
+ transform: translateY(-4px) scale(1.01);
603
+ box-shadow: 0 15px 40px rgba(0,0,0,0.12);
604
+ color: var(--text);
605
+ }
606
+
607
+ a.project-card:hover .project-icon {
608
+ transform: scale(1.1);
609
+ }
610
+
611
+ .project-top {
612
+ display: flex;
613
+ align-items: flex-start;
614
+ gap: 1rem;
615
+ margin-bottom: 1rem;
616
+ }
617
+
618
+ .project-icon {
619
+ width: 44px; height: 44px;
620
+ background: rgba(124, 58, 237, 0.08);
621
+ border-radius: 10px;
622
+ display: flex;
623
+ align-items: center;
624
+ justify-content: center;
625
+ font-size: 1.25rem;
626
+ flex-shrink: 0;
627
+ transition: transform 0.3s ease;
628
+ }
629
+
630
+ .project-icon.green { background: rgba(22, 163, 74, 0.08); }
631
+ .project-icon.cyan { background: rgba(8, 145, 178, 0.08); }
632
+ .project-icon.orange { background: rgba(234, 88, 12, 0.08); }
633
+ .project-icon.pink { background: rgba(219, 39, 119, 0.08); }
634
+ .project-icon.yellow { background: rgba(202, 138, 4, 0.08); }
635
+
636
+ .project-info h4 {
637
+ font-size: 1.1rem;
638
+ margin-bottom: 0.25rem;
639
+ }
640
+
641
+ .project-info .status {
642
+ font-size: 0.75rem;
643
+ color: var(--accent-green);
644
+ background: rgba(22, 163, 74, 0.1);
645
+ padding: 0.15rem 0.5rem;
646
+ border-radius: 10px;
647
+ display: inline-block;
648
+ }
649
+
650
+ .project-info .status.wip {
651
+ color: var(--accent-orange);
652
+ background: rgba(234, 88, 12, 0.1);
653
+ }
654
+
655
+ .project-card > p {
656
+ color: var(--text-muted);
657
+ font-size: 0.9rem;
658
+ flex-grow: 1;
659
+ }
660
+
661
+ /* Architecture Diagram */
662
+ .arch-section {
663
+ background: linear-gradient(180deg, transparent, rgba(124, 58, 237, 0.02), transparent);
664
+ padding: 5rem 2rem;
665
+ }
666
+
667
+ .arch-inner {
668
+ max-width: 1000px;
669
+ margin: 0 auto;
670
+ }
671
+
672
+ .arch-diagram {
673
+ background: var(--bg-card);
674
+ border: 1px solid var(--border);
675
+ border-radius: 20px;
676
+ padding: 3rem;
677
+ margin-top: 2rem;
678
+ box-shadow: 0 1px 3px rgba(0,0,0,0.05);
679
+ }
680
+
681
+ .arch-layers {
682
+ display: flex;
683
+ flex-direction: column;
684
+ gap: 1.5rem;
685
+ }
686
+
687
+ .arch-layer {
688
+ display: flex;
689
+ align-items: center;
690
+ gap: 1.5rem;
691
+ }
692
+
693
+ .arch-label {
694
+ width: 120px;
695
+ font-size: 0.85rem;
696
+ color: var(--text-muted);
697
+ text-align: right;
698
+ flex-shrink: 0;
699
+ }
700
+
701
+ .arch-boxes {
702
+ display: flex;
703
+ gap: 0.75rem;
704
+ flex-wrap: wrap;
705
+ flex: 1;
706
+ }
707
+
708
+ .arch-box {
709
+ background: rgba(124, 58, 237, 0.08);
710
+ border: 1px solid rgba(124, 58, 237, 0.15);
711
+ padding: 0.6rem 1rem;
712
+ border-radius: 8px;
713
+ font-size: 0.85rem;
714
+ transition: all 0.2s ease;
715
+ color: var(--text);
716
+ }
717
+
718
+ .arch-box:hover {
719
+ background: rgba(124, 58, 237, 0.15);
720
+ border-color: var(--accent);
721
+ color: var(--accent);
722
+ transform: translateY(-2px);
723
+ }
724
+
725
+ .arch-box.cyan { background: rgba(8, 145, 178, 0.08); border-color: rgba(8, 145, 178, 0.15); }
726
+ .arch-box.cyan:hover { background: rgba(8, 145, 178, 0.15); border-color: var(--accent-cyan); color: var(--accent-cyan); }
727
+ .arch-box.orange { background: rgba(234, 88, 12, 0.08); border-color: rgba(234, 88, 12, 0.15); }
728
+ .arch-box.orange:hover { background: rgba(234, 88, 12, 0.15); border-color: var(--accent-orange); color: var(--accent-orange); }
729
+ .arch-box.green { background: rgba(22, 163, 74, 0.08); border-color: rgba(22, 163, 74, 0.15); }
730
+ .arch-box.green:hover { background: rgba(22, 163, 74, 0.15); border-color: var(--accent-green); color: var(--accent-green); }
731
+
732
+ @media (max-width: 700px) {
733
+ .arch-layer { flex-direction: column; align-items: flex-start; }
734
+ .arch-label { width: auto; text-align: left; }
735
+ }
736
+
737
+ /* Stats */
738
+ .stats-grid {
739
+ display: grid;
740
+ grid-template-columns: repeat(5, 1fr);
741
+ gap: 2rem;
742
+ text-align: center;
743
+ margin-top: 3rem;
744
+ }
745
+
746
+ @media (max-width: 800px) {
747
+ .stats-grid { grid-template-columns: repeat(3, 1fr); }
748
+ }
749
+
750
+ @media (max-width: 500px) {
751
+ .stats-grid { grid-template-columns: repeat(2, 1fr); }
752
+ }
753
+
754
+ .stat-item {
755
+ transition: transform 0.3s ease;
756
+ }
757
+
758
+ .stat-item:hover {
759
+ transform: scale(1.05);
760
+ }
761
+
762
+ .stat-item .number {
763
+ font-size: 2.75rem;
764
+ font-weight: 700;
765
+ background: var(--gradient);
766
+ -webkit-background-clip: text;
767
+ background-clip: text;
768
+ color: transparent;
769
+ }
770
+
771
+ .stat-item .label {
772
+ color: var(--text-muted);
773
+ font-size: 0.9rem;
774
+ }
775
+
776
+ /* Principles Link */
777
+ .principles-section {
778
+ padding: 4rem 2rem;
779
+ text-align: center;
780
+ }
781
+
782
+ .principles-card {
783
+ max-width: 800px;
784
+ margin: 0 auto;
785
+ background: linear-gradient(135deg, rgba(124, 58, 237, 0.05), rgba(8, 145, 178, 0.05));
786
+ border: 1px solid rgba(124, 58, 237, 0.15);
787
+ border-radius: 20px;
788
+ padding: 3.5rem;
789
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
790
+ }
791
+
792
+ .principles-card:hover {
793
+ transform: translateY(-4px);
794
+ box-shadow: 0 20px 50px rgba(124, 58, 237, 0.1);
795
+ }
796
+
797
+ .principles-card h3 {
798
+ font-size: 2rem;
799
+ margin-bottom: 1rem;
800
+ }
801
+
802
+ .principles-card p {
803
+ color: var(--text-muted);
804
+ margin-bottom: 2rem;
805
+ font-size: 1.1rem;
806
+ }
807
+
808
+ .principles-list {
809
+ display: grid;
810
+ grid-template-columns: repeat(2, 1fr);
811
+ gap: 0.75rem;
812
+ text-align: left;
813
+ margin-bottom: 2rem;
814
+ }
815
+
816
+ @media (max-width: 600px) {
817
+ .principles-list { grid-template-columns: 1fr; }
818
+ }
819
+
820
+ .principles-list span {
821
+ color: var(--text-muted);
822
+ font-size: 0.9rem;
823
+ padding: 0.5rem 0;
824
+ transition: color 0.2s ease, transform 0.2s ease;
825
+ }
826
+
827
+ .principles-list span:hover {
828
+ color: var(--text);
829
+ transform: translateX(4px);
830
+ }
831
+
832
+ .principles-list span::before {
833
+ content: '→ ';
834
+ color: var(--accent);
835
+ }
836
+
837
+ /* Footer */
838
+ .footer {
839
+ padding: 4rem 2rem 2rem;
840
+ border-top: 1px solid var(--border);
841
+ max-width: 1400px;
842
+ margin: 0 auto;
843
+ }
844
+
845
+ .footer-grid {
846
+ display: grid;
847
+ grid-template-columns: 2fr repeat(4, 1fr);
848
+ gap: 3rem;
849
+ margin-bottom: 3rem;
850
+ }
851
+
852
+ @media (max-width: 900px) {
853
+ .footer-grid { grid-template-columns: repeat(3, 1fr); }
854
+ }
855
+
856
+ @media (max-width: 600px) {
857
+ .footer-grid { grid-template-columns: repeat(2, 1fr); }
858
+ }
859
+
860
+ .footer-brand p {
861
+ color: var(--text-muted);
862
+ margin-top: 1rem;
863
+ font-size: 0.9rem;
864
+ max-width: 280px;
865
+ }
866
+
867
+ .footer-col h4 {
868
+ font-size: 0.85rem;
869
+ font-weight: 600;
870
+ margin-bottom: 1rem;
871
+ color: var(--text);
872
+ text-transform: uppercase;
873
+ letter-spacing: 0.5px;
874
+ }
875
+
876
+ .footer-col a {
877
+ display: block;
878
+ color: var(--text-muted);
879
+ padding: 0.3rem 0;
880
+ font-size: 0.9rem;
881
+ transition: color 0.2s ease, transform 0.2s ease;
882
+ }
883
+
884
+ .footer-col a:hover {
885
+ color: var(--accent);
886
+ transform: translateX(4px);
887
+ }
888
+
889
+ .footer-bottom {
890
+ text-align: center;
891
+ padding-top: 2rem;
892
+ border-top: 1px solid var(--border);
893
+ color: var(--text-muted);
894
+ font-size: 0.85rem;
895
+ }
896
+
897
+ /* Scroll animations */
898
+ .animate-on-scroll {
899
+ opacity: 0;
900
+ transform: translateY(20px);
901
+ transition: opacity 0.6s ease, transform 0.6s ease;
902
+ }
903
+
904
+ .animate-on-scroll.visible {
905
+ opacity: 1;
906
+ transform: translateY(0);
907
+ }