helldivers-theme 1.0.0

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.
@@ -0,0 +1,1100 @@
1
+ // =========================================
2
+ // 1. GLOBAL COMPONENTS
3
+ // =========================================
4
+
5
+ .section-header {
6
+ margin-bottom: 40px;
7
+ }
8
+
9
+ .section-header h2 {
10
+ font-family: $font-head;
11
+ font-size: 2.5rem;
12
+ color: $hd-white;
13
+ text-transform: uppercase;
14
+ text-shadow: 0 0 10px rgba($hd-cyan, 0.5);
15
+ margin-bottom: 10px;
16
+ }
17
+
18
+ .line-accent {
19
+ width: 100px;
20
+ height: 3px;
21
+ background: linear-gradient(90deg, $hd-cyan, $hd-gold);
22
+ box-shadow: 0 0 10px $hd-cyan;
23
+ }
24
+
25
+ .command-grid {
26
+ display: grid;
27
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
28
+ gap: 30px;
29
+ }
30
+
31
+ .leader-card {
32
+ display: flex;
33
+ flex-direction: column;
34
+ align-items: center;
35
+ text-align: center;
36
+ }
37
+
38
+ .octagon-mask {
39
+ width: 180px;
40
+ height: 180px;
41
+ background: rgba(0,0,0,0.8);
42
+ clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
43
+ border: 2px solid rgba($hd-cyan, 0.5);
44
+ position: relative;
45
+ overflow: hidden;
46
+ transition: all 0.4s ease;
47
+
48
+ &::after {
49
+ content: '';
50
+ position: absolute;
51
+ top: 0; left: 0; width: 100%; height: 100%;
52
+ background: linear-gradient(to bottom, transparent 50%, rgba(0, 240, 255, 0.1) 51%);
53
+ background-size: 100% 4px;
54
+ pointer-events: none;
55
+ }
56
+
57
+ img {
58
+ width: 100%;
59
+ height: 100%;
60
+ object-fit: cover;
61
+ filter: grayscale(80%) contrast(1.2) hue-rotate(180deg);
62
+ opacity: 0.8;
63
+ transition: all 0.4s ease;
64
+ }
65
+
66
+ &:hover {
67
+ border-color: $hd-gold;
68
+ box-shadow: 0 0 25px rgba($hd-gold, 0.4);
69
+ transform: translateY(-5px);
70
+
71
+ img {
72
+ filter: grayscale(0%) contrast(1.1);
73
+ opacity: 1;
74
+ }
75
+
76
+ &::after {
77
+ background: linear-gradient(to bottom, transparent 50%, rgba(255, 215, 0, 0.2) 51%);
78
+ }
79
+ }
80
+ }
81
+
82
+ .leader-info {
83
+ margin-top: 15px;
84
+
85
+ h4 {
86
+ font-family: $font-head;
87
+ font-size: 1.4rem;
88
+ color: $hd-white;
89
+ text-shadow: 0 0 5px rgba($hd-white, 0.5);
90
+ }
91
+
92
+ span {
93
+ font-size: 0.75rem;
94
+ color: $hd-cyan;
95
+ text-transform: uppercase;
96
+ letter-spacing: 2px;
97
+ background: rgba(0, 240, 255, 0.1);
98
+ padding: 2px 8px;
99
+ border: 1px solid rgba(0, 240, 255, 0.3);
100
+ }
101
+ }
102
+
103
+ // =========================================
104
+ // LEADER PROFILE MODAL
105
+ // =========================================
106
+
107
+ .modal-overlay {
108
+ display: none;
109
+ position: fixed;
110
+ top: 0; left: 0;
111
+ width: 100%; height: 100%;
112
+ background: rgba(0, 0, 0, 0.85);
113
+ backdrop-filter: blur(8px);
114
+ z-index: 9999;
115
+ justify-content: center;
116
+ align-items: center;
117
+ opacity: 0;
118
+ transition: opacity 0.3s ease;
119
+ pointer-events: none;
120
+
121
+ &[style*="display: flex"] {
122
+ pointer-events: auto;
123
+ }
124
+ }
125
+
126
+ .modal-terminal {
127
+ background: rgba(5, 8, 15, 0.95);
128
+ border: 2px solid var(--hd-gold);
129
+ width: 90%;
130
+ max-width: 600px;
131
+
132
+ // CRITICAL: Set max height and flex layout
133
+ max-height: 85vh; // Never taller than 85% of screen
134
+ display: flex;
135
+ flex-direction: column;
136
+
137
+ padding: 0; // Remove padding from container, apply to children
138
+ position: relative;
139
+ transform: scale(0.9);
140
+ transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
141
+ box-shadow: 0 0 30px rgba(255, 215, 0, 0.2), inset 0 0 20px rgba(0, 240, 255, 0.1);
142
+ clip-path: polygon(0 0, 100% 0, 100% 85%, 95% 100%, 0 100%);
143
+
144
+ @media (max-width: 600px) {
145
+ width: 95%;
146
+ max-height: 90vh;
147
+ }
148
+ }
149
+
150
+ .modal-close {
151
+ position: absolute;
152
+ top: 15px;
153
+ right: 20px;
154
+ background: transparent;
155
+ border: none;
156
+ color: var(--hd-red);
157
+ font-size: 1.5rem;
158
+ cursor: pointer;
159
+ font-family: var(--font-head);
160
+ transition: transform 0.2s;
161
+ z-index: 20; // Ensure it's above everything
162
+
163
+ &:hover {
164
+ transform: scale(1.2);
165
+ color: #fff;
166
+ }
167
+ }
168
+
169
+ // FIXED HEADER SECTION (Image + Name)
170
+ .modal-fixed-header {
171
+ padding: 30px 20px 20px 20px;
172
+ background: linear-gradient(to bottom, rgba(255, 215, 0, 0.05), transparent);
173
+ border-bottom: 1px solid rgba(255, 215, 0, 0.2);
174
+ flex-shrink: 0; // Prevent shrinking
175
+ display: flex;
176
+ flex-direction: column;
177
+ align-items: center;
178
+ z-index: 10;
179
+ }
180
+
181
+ .modal-image-top {
182
+ position: relative;
183
+ width: 140px;
184
+ height: 140px;
185
+ margin-bottom: 15px;
186
+
187
+ img {
188
+ width: 100%;
189
+ height: 100%;
190
+ object-fit: cover;
191
+ border: 3px solid var(--hd-cyan);
192
+ clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
193
+ filter: grayscale(20%) contrast(1.1);
194
+ box-shadow: 0 0 20px rgba(0, 240, 255, 0.4);
195
+ position: relative;
196
+ z-index: 2;
197
+ background: #000;
198
+ }
199
+
200
+ .image-glow {
201
+ position: absolute;
202
+ top: 50%; left: 50%;
203
+ transform: translate(-50%, -50%);
204
+ width: 120%;
205
+ height: 120%;
206
+ background: radial-gradient(circle, rgba(0, 240, 255, 0.3) 0%, transparent 70%);
207
+ z-index: 1;
208
+ animation: pulse-cyan 3s infinite;
209
+ }
210
+ }
211
+
212
+ .modal-header {
213
+ text-align: center;
214
+ width: 100%;
215
+
216
+ h2 {
217
+ font-family: var(--font-head);
218
+ font-size: 2rem;
219
+ color: var(--hd-gold);
220
+ margin: 0;
221
+ text-transform: uppercase;
222
+ letter-spacing: 2px;
223
+ line-height: 1.1;
224
+ }
225
+
226
+ .modal-role {
227
+ color: var(--hd-cyan);
228
+ font-family: var(--font-mono);
229
+ font-size: 0.85rem;
230
+ letter-spacing: 1px;
231
+ text-transform: uppercase;
232
+ background: rgba(0, 240, 255, 0.1);
233
+ padding: 3px 8px;
234
+ border: 1px solid rgba(0, 240, 255, 0.3);
235
+ display: inline-block;
236
+ margin-top: 6px;
237
+ }
238
+ }
239
+
240
+ // SCROLLABLE BODY SECTION
241
+ .modal-body {
242
+ padding: 20px;
243
+ overflow-y: auto; // Enable vertical scrolling
244
+ flex-grow: 1; // Take up remaining space
245
+ display: flex;
246
+ flex-direction: column;
247
+ gap: 15px;
248
+
249
+ // Custom Scrollbar Styling (Webkit/Browsers)
250
+ &::-webkit-scrollbar {
251
+ width: 8px;
252
+ }
253
+
254
+ &::-webkit-scrollbar-track {
255
+ background: rgba(0, 0, 0, 0.3);
256
+ border-left: 1px solid rgba(255, 255, 255, 0.05);
257
+ }
258
+
259
+ &::-webkit-scrollbar-thumb {
260
+ background: var(--hd-cyan);
261
+ border-radius: 4px;
262
+ border: 2px solid rgba(5, 8, 15, 0.95); // Matches modal bg
263
+ }
264
+
265
+ &::-webkit-scrollbar-thumb:hover {
266
+ background: var(--hd-gold);
267
+ }
268
+
269
+ // Firefox Scrollbar Styling
270
+ scrollbar-width: thin;
271
+ scrollbar-color: var(--hd-cyan) rgba(0, 0, 0, 0.3);
272
+ }
273
+
274
+ .modal-stats-grid {
275
+ display: grid;
276
+ grid-template-columns: 1fr 1fr;
277
+ gap: 12px;
278
+ width: 100%;
279
+
280
+ @media (max-width: 500px) {
281
+ grid-template-columns: 1fr;
282
+ }
283
+ }
284
+
285
+ .stat-box {
286
+ background: rgba(255, 255, 255, 0.03);
287
+ border: 1px solid rgba(255, 255, 255, 0.1);
288
+ padding: 10px;
289
+ display: flex;
290
+ flex-direction: column;
291
+ justify-content: center;
292
+ text-align: center;
293
+
294
+ &.full-width {
295
+ grid-column: 1 / -1;
296
+ }
297
+
298
+ .stat-label {
299
+ font-size: 0.7rem;
300
+ color: #888;
301
+ text-transform: uppercase;
302
+ letter-spacing: 1px;
303
+ margin-bottom: 4px;
304
+ font-family: var(--font-mono);
305
+ }
306
+
307
+ .stat-value {
308
+ font-family: var(--font-head);
309
+ font-size: 1.3rem;
310
+ color: var(--hd-white);
311
+ text-shadow: 0 0 5px rgba(255, 255, 255, 0.2);
312
+ }
313
+ }
314
+
315
+ .modal-bio-section {
316
+ margin-top: 5px;
317
+ padding: 12px;
318
+ background: rgba(0, 240, 255, 0.05);
319
+ border-left: 3px solid var(--hd-cyan);
320
+ width: 100%;
321
+ box-sizing: border-box;
322
+
323
+ .stat-label {
324
+ font-size: 0.7rem;
325
+ color: var(--hd-cyan);
326
+ text-transform: uppercase;
327
+ letter-spacing: 1px;
328
+ display: block;
329
+ margin-bottom: 5px;
330
+ }
331
+
332
+ .bio-text {
333
+ font-family: var(--font-mono);
334
+ font-size: 0.85rem;
335
+ color: #ccc;
336
+ font-style: italic;
337
+ margin: 0;
338
+ line-height: 1.4;
339
+ text-align: left;
340
+ }
341
+ }
342
+
343
+ .modal-medals-section {
344
+ margin-top: 5px;
345
+ width: 100%;
346
+
347
+ .stat-label {
348
+ font-size: 0.7rem;
349
+ color: var(--hd-gold);
350
+ text-transform: uppercase;
351
+ letter-spacing: 1px;
352
+ display: block;
353
+ margin-bottom: 8px;
354
+ text-align: center;
355
+ }
356
+
357
+ .medals-row {
358
+ display: flex;
359
+ justify-content: center;
360
+ gap: 8px;
361
+ flex-wrap: wrap;
362
+ }
363
+
364
+ .medal-badge {
365
+ background: linear-gradient(135deg, var(--hd-gold), #b8860b);
366
+ color: #000;
367
+ font-family: var(--font-head);
368
+ font-size: 0.65rem;
369
+ padding: 3px 6px;
370
+ border-radius: 2px;
371
+ text-transform: uppercase;
372
+ letter-spacing: 0.5px;
373
+ box-shadow: 0 0 5px rgba(255, 215, 0, 0.4);
374
+ border: 1px solid #fff;
375
+ }
376
+ }
377
+
378
+ .modal-footer {
379
+ margin-top: 10px;
380
+ text-align: center;
381
+ font-size: 0.7rem;
382
+ color: #555;
383
+ font-family: var(--font-mono);
384
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
385
+ padding-top: 10px;
386
+ width: 100%;
387
+ flex-shrink: 0;
388
+ }
389
+
390
+ @keyframes pulse-cyan {
391
+ 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
392
+ 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
393
+ 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
394
+ }
395
+
396
+ // =========================================
397
+ // SIDEBAR & MARQUEE STYLES
398
+ // =========================================
399
+
400
+ .panel-box {
401
+ background: rgba(0, 0, 0, 0.5);
402
+ border: 1px solid rgba($hd-cyan, 0.2);
403
+ backdrop-filter: blur(5px);
404
+ padding: 15px;
405
+ margin-bottom: 20px;
406
+
407
+ h3 {
408
+ color: $hd-white;
409
+ border-bottom: 1px solid rgba($hd-white, 0.2);
410
+ padding-bottom: 8px;
411
+ margin-bottom: 15px;
412
+ font-family: $font-head;
413
+ letter-spacing: 1px;
414
+ text-transform: uppercase;
415
+ }
416
+ }
417
+
418
+ // --- MARQUEE ANIMATION ---
419
+
420
+ .alert-marquee {
421
+ background: rgba($hd-red, 0.2); // Transparent red background
422
+ border: 1px solid $hd-red;
423
+ color: #ffcccc;
424
+ height: 40px; // Fixed height is crucial
425
+ overflow: hidden; // Hides text when it goes off-screen
426
+ white-space: nowrap; // Forces text to stay on one line
427
+ display: flex;
428
+ align-items: center;
429
+ position: relative;
430
+ box-shadow: 0 0 10px rgba($hd-red, 0.2);
431
+ }
432
+
433
+ .marquee-content {
434
+ display: inline-block;
435
+ padding-left: 100%; // Start off-screen to the right
436
+ animation: scroll-left 20s linear infinite; // The magic movement
437
+
438
+ span {
439
+ display: inline-block;
440
+ padding-left: 3em; // Space between repeated items
441
+ font-weight: bold;
442
+ text-transform: uppercase;
443
+ font-size: 0.9rem;
444
+ letter-spacing: 1px;
445
+
446
+ &::before {
447
+ content: "► ";
448
+ color: $hd-gold;
449
+ margin-right: 5px;
450
+ text-shadow: 0 0 5px $hd-gold;
451
+ }
452
+ }
453
+ }
454
+
455
+ // =========================================
456
+ // 6. WATCH PAGE STYLES
457
+ // =========================================
458
+
459
+ .watch-container {
460
+ width: 100%;
461
+ max-width: 1200px;
462
+ margin: 0 auto;
463
+ display: flex;
464
+ flex-direction: column;
465
+ align-items: center;
466
+ padding: 20px;
467
+ }
468
+
469
+ .twitch-embed-wrapper {
470
+ width: 100%;
471
+ position: relative;
472
+ /* 16:9 Aspect Ratio Trick */
473
+ padding-bottom: 56.25%;
474
+ height: 0;
475
+ overflow: hidden;
476
+ border: 2px solid var(--hd-cyan);
477
+ box-shadow: 0 0 20px rgba(0, 240, 255, 0.2);
478
+ background: #000;
479
+
480
+ /* Ensure the iframe fills the container */
481
+ iframe {
482
+ position: absolute;
483
+ top: 0;
484
+ left: 0;
485
+ width: 100%;
486
+ height: 100%;
487
+ border: none;
488
+ }
489
+ }
490
+
491
+ /* Mobile Adjustment */
492
+ @media (max-width: 768px) {
493
+ .twitch-embed-wrapper {
494
+ padding-bottom: 75%; /* Taller on mobile for better visibility */
495
+ }
496
+ }
497
+
498
+ // The Animation Keyframes
499
+ @keyframes scroll-left {
500
+ 0% {
501
+ transform: translateX(0);
502
+ }
503
+ 100% {
504
+ transform: translateX(-100%); // Move entirely to the left
505
+ }
506
+ }
507
+
508
+ // Optional: Pause on hover so users can read
509
+ .alert-marquee:hover .marquee-content {
510
+ animation-play-state: paused;
511
+ }
512
+
513
+ // =========================================
514
+ // 2. ENLIST BUTTON (DROP POD)
515
+ // =========================================
516
+
517
+ .enlist-btn {
518
+ display: inline-block;
519
+ background: linear-gradient(180deg, $hd-red 0%, #990000 100%);
520
+ color: white;
521
+ font-family: $font-head;
522
+ font-size: 2rem;
523
+ padding: 20px 40px;
524
+ text-decoration: none;
525
+ text-transform: uppercase;
526
+ letter-spacing: 3px;
527
+ border: 2px solid $hd-red;
528
+ position: relative;
529
+ overflow: hidden;
530
+ transition: all 0.3s ease;
531
+ clip-path: polygon(10% 0, 100% 0, 100% 70%, 90% 100%, 0 100%, 0 30%);
532
+ box-shadow: 0 0 20px rgba($hd-red, 0.4);
533
+ cursor: pointer;
534
+
535
+ &:hover {
536
+ transform: scale(1.05) translateY(-3px);
537
+ background: linear-gradient(180deg, #ff4444 0%, $hd-red 100%);
538
+ box-shadow: 0 0 40px rgba($hd-red, 0.8), 0 0 10px white;
539
+ text-shadow: 0 0 10px white;
540
+ border-color: white;
541
+ }
542
+
543
+ &:active {
544
+ transform: scale(0.95);
545
+ box-shadow: 0 0 10px rgba($hd-red, 0.5);
546
+ }
547
+
548
+ &::before {
549
+ content: '';
550
+ position: absolute;
551
+ top: 0;
552
+ left: -100%;
553
+ width: 100%;
554
+ height: 100%;
555
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
556
+ transition: 0.5s;
557
+ }
558
+
559
+ &:hover::before {
560
+ left: 100%;
561
+ }
562
+ }
563
+
564
+ .enlist-btn.disabled {
565
+ background: #2a2a2a;
566
+ border-color: #444;
567
+ color: #666;
568
+ cursor: not-allowed;
569
+ box-shadow: none;
570
+ pointer-events: none;
571
+ text-shadow: none;
572
+ &:hover { transform: none; background: #2a2a2a; box-shadow: none; border-color: #444; }
573
+ }
574
+
575
+ // =========================================
576
+ // 3. INTEL PAGE STYLES (DASHBOARD LAYOUT)
577
+ // =========================================
578
+
579
+ // Spacers
580
+ .intel-spacer {
581
+ height: 30px;
582
+ width: 100%;
583
+ }
584
+
585
+ .intel-spacer-large {
586
+ height: 80px;
587
+ width: 100%;
588
+ @media (max-width: 768px) { height: 50px; }
589
+ }
590
+
591
+ // Dashboard Row (Flex container for Stats + Loadouts)
592
+ .intel-dashboard-row {
593
+ display: flex;
594
+ gap: 25px;
595
+ width: 100%;
596
+ max-width: 1100px;
597
+ margin: 0 auto;
598
+ align-items: stretch; // Make both panels same height
599
+
600
+ @media (max-width: 900px) {
601
+ flex-direction: column; // Stack on tablet/mobile
602
+ }
603
+ }
604
+
605
+ // Stats Panel (Compact Side Version)
606
+ .stats-panel-compact {
607
+ flex: 0 0 300px; // Fixed width 300px
608
+ background: rgba(0, 0, 0, 0.5);
609
+ border: 1px solid rgba($hd-cyan, 0.2);
610
+ backdrop-filter: blur(5px);
611
+ padding: 25px;
612
+ display: flex;
613
+ flex-direction: column;
614
+
615
+ h3 {
616
+ color: $hd-white;
617
+ border-bottom: 1px solid rgba($hd-white, 0.2);
618
+ padding-bottom: 8px;
619
+ margin-bottom: 20px;
620
+ font-family: $font-head;
621
+ letter-spacing: 1px;
622
+ text-align: center;
623
+ text-transform: uppercase;
624
+ font-size: 1.4rem;
625
+ }
626
+ }
627
+
628
+ .stat-list-compact {
629
+ list-style: none;
630
+ padding: 0;
631
+ margin: 0;
632
+ display: flex;
633
+ flex-direction: column;
634
+ gap: 15px;
635
+ flex-grow: 1;
636
+ justify-content: center; // Vertically center if extra space
637
+
638
+ li {
639
+ display: flex;
640
+ justify-content: space-between;
641
+ align-items: center;
642
+ border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
643
+ padding-bottom: 8px;
644
+
645
+ &:last-child { border-bottom: none; }
646
+
647
+ .stat-label {
648
+ color: #aaa;
649
+ text-transform: uppercase;
650
+ font-size: 0.85rem;
651
+ font-weight: bold;
652
+ }
653
+
654
+ .stat-value {
655
+ color: $hd-gold;
656
+ font-weight: bold;
657
+ font-family: $font-mono;
658
+ font-size: 1.1rem;
659
+ text-shadow: 0 0 5px rgba($hd-gold, 0.3);
660
+ text-align: right;
661
+ }
662
+ }
663
+ }
664
+
665
+ // Loadout Panel (Compact Side Version)
666
+ .loadout-panel-compact {
667
+ flex: 1; // Takes remaining width
668
+ background: rgba(0, 0, 0, 0.5);
669
+ border: 1px solid rgba($hd-cyan, 0.2);
670
+ backdrop-filter: blur(5px);
671
+ padding: 25px;
672
+ display: flex;
673
+ flex-direction: column;
674
+
675
+ h3 {
676
+ color: $hd-white;
677
+ border-bottom: 1px solid rgba($hd-white, 0.2);
678
+ padding-bottom: 8px;
679
+ margin-bottom: 15px;
680
+ font-family: $font-head;
681
+ letter-spacing: 1px;
682
+ text-align: center;
683
+ text-transform: uppercase;
684
+ font-size: 1.4rem;
685
+ }
686
+
687
+ // Ensure tabs wrap nicely
688
+ .loadout-tabs {
689
+ justify-content: flex-start;
690
+ @media (max-width: 600px) { justify-content: center; }
691
+ }
692
+ }
693
+
694
+ // Story Panel (Full Width Bottom)
695
+ .story-panel-wide {
696
+ width: 100%;
697
+ max-width: 1100px;
698
+ margin: 0 auto;
699
+ background: rgba(0, 0, 0, 0.5);
700
+ border: 1px solid rgba($hd-cyan, 0.2);
701
+ backdrop-filter: blur(5px);
702
+ padding: 30px;
703
+
704
+ h3 {
705
+ color: $hd-white;
706
+ border-bottom: 1px solid rgba($hd-white, 0.2);
707
+ padding-bottom: 8px;
708
+ margin-bottom: 20px;
709
+ font-family: $font-head;
710
+ letter-spacing: 1px;
711
+ text-align: center;
712
+ text-transform: uppercase;
713
+ }
714
+
715
+ .story-content {
716
+ line-height: 1.8;
717
+ font-size: 1.05rem;
718
+ color: #ddd;
719
+ text-align: left;
720
+ max-width: 900px;
721
+ margin: 0 auto;
722
+ p { margin-bottom: 20px; }
723
+ }
724
+ }
725
+
726
+ // Tab System (Shared)
727
+ .loadout-tabs {
728
+ display: flex;
729
+ gap: 10px;
730
+ margin-bottom: 20px;
731
+ flex-wrap: wrap;
732
+ border-bottom: 1px solid rgba(255,255,255,0.1);
733
+ padding-bottom: 10px;
734
+ }
735
+
736
+ .tab-btn {
737
+ background: rgba(0,0,0,0.4);
738
+ border: 1px solid rgba(255,255,255,0.2);
739
+ color: #aaa;
740
+ padding: 10px 20px;
741
+ font-family: $font-head;
742
+ font-size: 1.1rem;
743
+ letter-spacing: 1px;
744
+ cursor: pointer;
745
+ transition: all 0.3s ease;
746
+ text-transform: uppercase;
747
+
748
+ &:hover {
749
+ background: rgba(255,255,255,0.1);
750
+ color: white;
751
+ border-color: $hd-cyan;
752
+ }
753
+
754
+ &.active {
755
+ background: rgba(255, 215, 0, 0.15);
756
+ border-color: $hd-gold;
757
+ color: $hd-gold;
758
+ box-shadow: 0 0 10px rgba($hd-gold, 0.2);
759
+ }
760
+ }
761
+
762
+ .loadout-content-area {
763
+ position: relative;
764
+ min-height: 200px;
765
+ }
766
+
767
+ .loadout-tab-content {
768
+ display: none;
769
+ animation: fadeIn 0.4s ease;
770
+
771
+ &.active { display: block; }
772
+
773
+ .loadout-header {
774
+ font-family: $font-head;
775
+ font-size: 1.8rem;
776
+ letter-spacing: 2px;
777
+ margin-bottom: 15px;
778
+ text-transform: uppercase;
779
+ border-bottom: 2px solid;
780
+ padding-bottom: 5px;
781
+ display: inline-block;
782
+ }
783
+
784
+ .loadout-items {
785
+ list-style: none;
786
+ padding: 0;
787
+ li {
788
+ font-family: $font-mono;
789
+ font-size: 1rem;
790
+ color: #ccc;
791
+ margin-bottom: 8px;
792
+ padding-left: 15px;
793
+ position: relative;
794
+ &::before {
795
+ content: ">";
796
+ position: absolute;
797
+ left: 0;
798
+ color: $hd-cyan;
799
+ }
800
+ }
801
+ }
802
+ }
803
+
804
+ @keyframes fadeIn {
805
+ from { opacity: 0; transform: translateY(5px); }
806
+ to { opacity: 1; transform: translateY(0); }
807
+ }
808
+
809
+ // Legacy Intel Panel (Keep for compatibility if needed elsewhere)
810
+ .intel-panel {
811
+ background: rgba(0, 0, 0, 0.5);
812
+ border: 1px solid rgba($hd-cyan, 0.2);
813
+ backdrop-filter: blur(5px);
814
+ h3 {
815
+ color: $hd-white;
816
+ border-bottom: 1px solid rgba($hd-white, 0.2);
817
+ padding-bottom: 8px;
818
+ margin-bottom: 15px;
819
+ font-family: $font-head;
820
+ letter-spacing: 1px;
821
+ }
822
+ }
823
+
824
+ // =========================================
825
+ // 4. ENLIST PAGE STYLES (FORCED CENTER)
826
+ // =========================================
827
+
828
+ .enlist-container {
829
+ width: 100%;
830
+ display: flex;
831
+ flex-direction: column;
832
+ align-items: center;
833
+ text-align: center;
834
+ padding: 20px;
835
+ }
836
+
837
+ .status-banner {
838
+ display: flex;
839
+ align-items: center;
840
+ justify-content: center;
841
+ gap: 25px;
842
+ padding: 25px;
843
+ border: 2px solid;
844
+ background: rgba(0,0,0,0.6);
845
+ backdrop-filter: blur(5px);
846
+ margin: 0 auto 40px auto;
847
+ text-align: center;
848
+ width: 100%;
849
+ max-width: 800px;
850
+
851
+ .banner-icon {
852
+ font-size: 3rem;
853
+ font-family: $font-head;
854
+ font-weight: bold;
855
+ padding: 10px 20px;
856
+ border: 2px solid currentColor;
857
+ flex-shrink: 0;
858
+ }
859
+
860
+ .banner-text {
861
+ display: flex;
862
+ flex-direction: column;
863
+ gap: 5px;
864
+ h2 {
865
+ font-family: $font-head;
866
+ font-size: 2rem;
867
+ margin: 0;
868
+ letter-spacing: 2px;
869
+ line-height: 1.2;
870
+ }
871
+ p { margin: 0; color: #ccc; font-size: 1rem; }
872
+ }
873
+
874
+ &.status-open {
875
+ border-color: #0f0; color: #0f0; box-shadow: 0 0 25px rgba(0, 255, 0, 0.15);
876
+ }
877
+ &.status-closed {
878
+ border-color: $hd-red; color: $hd-red; box-shadow: 0 0 25px rgba($hd-red, 0.15);
879
+ }
880
+ &.status-limited {
881
+ border-color: $hd-gold; color: $hd-gold; box-shadow: 0 0 25px rgba($hd-gold, 0.15);
882
+ }
883
+ }
884
+
885
+ .enlist-container {
886
+ margin: 0 auto 30px auto;
887
+ text-align: center;
888
+ width: 100%;
889
+ max-width: 800px;
890
+ }
891
+
892
+ .requirements-grid {
893
+ display: flex;
894
+ flex-wrap: wrap;
895
+ justify-content: center;
896
+ gap: 25px;
897
+ margin: 0 auto 60px auto;
898
+ width: 100%;
899
+ max-width: 1100px;
900
+ }
901
+
902
+ .req-card {
903
+ width: 260px;
904
+ height: 220px;
905
+ background: rgba(255, 255, 255, 0.03);
906
+ border: 1px solid rgba(255, 255, 255, 0.1);
907
+ padding: 25px 20px;
908
+ display: flex;
909
+ flex-direction: column;
910
+ justify-content: center;
911
+ align-items: center;
912
+ text-align: center;
913
+ position: relative;
914
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
915
+
916
+ &:hover {
917
+ transform: translateY(-8px);
918
+ background: rgba(255, 255, 255, 0.07);
919
+ box-shadow: 0 10px 20px rgba(0,0,0,0.3);
920
+ border-color: rgba(255, 255, 255, 0.3);
921
+ }
922
+
923
+ .req-label {
924
+ font-size: 0.85rem;
925
+ color: #888;
926
+ text-transform: uppercase;
927
+ letter-spacing: 2px;
928
+ margin-bottom: 10px;
929
+ font-weight: bold;
930
+ }
931
+
932
+ .req-value {
933
+ font-family: $font-head;
934
+ font-size: 2rem;
935
+ color: $hd-white;
936
+ margin-bottom: 15px;
937
+ line-height: 1.1;
938
+ text-shadow: 0 0 10px rgba(255,255,255,0.1);
939
+ }
940
+
941
+ .req-status-indicator {
942
+ font-size: 0.8rem;
943
+ font-weight: bold;
944
+ text-transform: uppercase;
945
+ letter-spacing: 1.5px;
946
+ padding: 6px 12px;
947
+ display: inline-block;
948
+ border: 1px solid;
949
+ background: rgba(0,0,0,0.3);
950
+ }
951
+
952
+ &.status-verified {
953
+ border-top: 4px solid #0f0;
954
+ .req-status-indicator { color: #0f0; border-color: #0f0; box-shadow: 0 0 10px rgba(0,255,0,0.2); }
955
+ }
956
+ &.status-pending {
957
+ border-top: 4px solid $hd-gold;
958
+ .req-status-indicator { color: $hd-gold; border-color: $hd-gold; box-shadow: 0 0 10px rgba(255, 215, 0, 0.2); }
959
+ }
960
+ &.status-failed {
961
+ border-top: 4px solid $hd-red;
962
+ .req-status-indicator { color: $hd-red; border-color: $hd-red; box-shadow: 0 0 10px rgba(255, 51, 51, 0.2); }
963
+ }
964
+ }
965
+
966
+ .launch-bay {
967
+ width: 100%;
968
+ max-width: 800px;
969
+ padding: 50px 20px;
970
+ background: radial-gradient(circle, rgba(255, 215, 0, 0.08) 0%, transparent 70%);
971
+ border-top: 1px solid rgba($hd-gold, 0.3);
972
+ border-bottom: 1px solid rgba($hd-gold, 0.1);
973
+ margin-top: 20px;
974
+ display: flex;
975
+ flex-direction: column;
976
+ align-items: center;
977
+
978
+ .launch-text {
979
+ color: $hd-cyan;
980
+ font-family: $font-mono;
981
+ letter-spacing: 3px;
982
+ margin-bottom: 35px;
983
+ font-size: 1.2rem;
984
+ text-shadow: 0 0 8px rgba(0, 240, 255, 0.4);
985
+ }
986
+
987
+ .disclaimer {
988
+ margin-top: 25px;
989
+ font-size: 0.75rem;
990
+ color: #666;
991
+ text-transform: uppercase;
992
+ letter-spacing: 1px;
993
+ }
994
+ }
995
+
996
+ @media (max-width: 768px) {
997
+ .status-banner {
998
+ flex-direction: column;
999
+ gap: 15px;
1000
+ .banner-icon { font-size: 2.5rem; }
1001
+ .banner-text h2 { font-size: 1.8rem; }
1002
+ }
1003
+ .req-card { width: 100%; max-width: 300px; }
1004
+
1005
+ // Intel Mobile Adjustments
1006
+ .stats-panel-compact {
1007
+ flex: none;
1008
+ width: 100%;
1009
+ max-width: 500px;
1010
+ margin: 0 auto;
1011
+ }
1012
+ .loadout-panel-compact {
1013
+ width: 100%;
1014
+ }
1015
+ .story-panel-wide {
1016
+ padding: 20px;
1017
+ max-width: 100%;
1018
+ }
1019
+ }
1020
+
1021
+ // =========================================
1022
+ // 5. COMMS PAGE STYLES
1023
+ // =========================================
1024
+
1025
+ .comms-container {
1026
+ width: 100%;
1027
+ max-width: 1300px;
1028
+ margin: 0 auto;
1029
+ display: flex;
1030
+ flex-direction: column;
1031
+ align-items: center;
1032
+ text-align: center;
1033
+ padding: 20px;
1034
+ }
1035
+
1036
+ .terminal-form {
1037
+ width: 100%;
1038
+ background: rgba(0, 0, 0, 0.5);
1039
+ border: 1px solid rgba($hd-cyan, 0.3);
1040
+ padding: 40px;
1041
+ backdrop-filter: blur(5px);
1042
+ text-align: left;
1043
+ margin-top: 30px;
1044
+ box-shadow: 0 0 20px rgba(0, 240, 255, 0.05);
1045
+
1046
+ @media (max-width: 600px) {
1047
+ padding: 20px;
1048
+ }
1049
+ }
1050
+
1051
+ .form-group {
1052
+ margin-bottom: 25px;
1053
+
1054
+ label {
1055
+ display: block;
1056
+ color: $hd-cyan;
1057
+ font-family: $font-mono;
1058
+ font-size: 0.9rem;
1059
+ letter-spacing: 1px;
1060
+ margin-bottom: 8px;
1061
+ text-transform: uppercase;
1062
+ font-weight: bold;
1063
+ text-shadow: 0 0 5px rgba($hd-cyan, 0.4);
1064
+ }
1065
+
1066
+ input, select, textarea {
1067
+ width: 100%;
1068
+ background: rgba(0, 0, 0, 0.7);
1069
+ border: 1px solid rgba($hd-white, 0.2);
1070
+ color: $hd-white;
1071
+ padding: 12px 15px;
1072
+ font-family: $font-mono;
1073
+ font-size: 1rem;
1074
+ outline: none;
1075
+ transition: all 0.3s ease;
1076
+
1077
+ &:focus {
1078
+ border-color: $hd-gold;
1079
+ box-shadow: 0 0 10px rgba($hd-gold, 0.3);
1080
+ background: rgba(0, 0, 0, 0.9);
1081
+ }
1082
+
1083
+ &::placeholder {
1084
+ color: rgba(255, 255, 255, 0.3);
1085
+ }
1086
+ }
1087
+
1088
+ select {
1089
+ cursor: pointer;
1090
+ option {
1091
+ background: #000;
1092
+ color: #fff;
1093
+ }
1094
+ }
1095
+
1096
+ textarea {
1097
+ resize: vertical;
1098
+ min-height: 120px;
1099
+ }
1100
+ }