css-pkg-01 1.3.0 → 1.4.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,620 @@
1
+ :root {
2
+ --bg: #041214;
3
+ --surface: #0a2226;
4
+ --accent: #ffd166;
5
+ --accent2: #14b8a6;
6
+ --text: #effcff;
7
+ --muted: #8fb0b3;
8
+ --font-display: 'Russo One', sans-serif;
9
+ --font-body: 'Open Sans', sans-serif;
10
+ --container-width: 1200px;
11
+ --radius: 8px;
12
+ --transition: all 0.3s ease;
13
+ }
14
+
15
+ * {
16
+ margin: 0;
17
+ padding: 0;
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ body {
22
+ font-family: var(--font-body);
23
+ background-color: var(--bg);
24
+ color: var(--text);
25
+ line-height: 1.6;
26
+ overflow-x: hidden;
27
+ -webkit-font-smoothing: antialiased;
28
+ }
29
+
30
+ h1, h2, h3, h4, h5, h6 {
31
+ font-family: var(--font-display);
32
+ line-height: 1.2;
33
+ text-transform: uppercase;
34
+ letter-spacing: 0.5px;
35
+ }
36
+
37
+ a {
38
+ color: var(--accent2);
39
+ text-decoration: none;
40
+ transition: var(--transition);
41
+ }
42
+
43
+ a:hover {
44
+ color: var(--accent);
45
+ }
46
+
47
+ .container {
48
+ width: 100%;
49
+ max-width: var(--container-width);
50
+ margin: 0 auto;
51
+ padding: 0 1.5rem;
52
+ }
53
+
54
+ /* --- BUTTONS --- */
55
+ .btn {
56
+ display: inline-flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ padding: 0.75rem 1.5rem;
60
+ font-family: var(--font-display);
61
+ font-size: 0.9rem;
62
+ text-transform: uppercase;
63
+ text-decoration: none;
64
+ cursor: pointer;
65
+ border: none;
66
+ clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
67
+ transition: var(--transition);
68
+ min-height: 44px;
69
+ }
70
+
71
+ .btn-primary {
72
+ background-color: var(--accent);
73
+ color: #000;
74
+ }
75
+
76
+ .btn-primary:hover {
77
+ background-color: #ffde8a;
78
+ box-shadow: 0 0 15px rgba(255, 209, 102, 0.4);
79
+ color: #000;
80
+ }
81
+
82
+ .btn-secondary {
83
+ background-color: transparent;
84
+ color: var(--accent2);
85
+ border: 2px solid var(--accent2);
86
+ /* Reset clip-path for bordered button to avoid border issues, use standard border-radius or box-shadow trick */
87
+ clip-path: none;
88
+ border-radius: 4px;
89
+ }
90
+
91
+ .btn-secondary:hover {
92
+ background-color: rgba(20, 184, 166, 0.1);
93
+ box-shadow: 0 0 15px rgba(20, 184, 166, 0.3);
94
+ }
95
+
96
+ .btn-lg {
97
+ padding: 1rem 2rem;
98
+ font-size: 1.1rem;
99
+ }
100
+
101
+ /* --- HEADER (As per constraint) --- */
102
+ header {
103
+ background-color: rgba(4, 18, 20, 0.95);
104
+ backdrop-filter: blur(10px);
105
+ border-bottom: 1px solid rgba(20, 184, 166, 0.2);
106
+ position: sticky;
107
+ top: 0;
108
+ z-index: 100;
109
+ }
110
+
111
+ .header-inner {
112
+ display: flex;
113
+ justify-content: space-between;
114
+ align-items: center;
115
+ height: 70px;
116
+ }
117
+
118
+ .brand {
119
+ font-family: var(--font-display);
120
+ font-size: 1.5rem;
121
+ color: var(--text);
122
+ text-decoration: none;
123
+ display: flex;
124
+ align-items: center;
125
+ gap: 0.5rem;
126
+ }
127
+
128
+ .brand span {
129
+ color: var(--accent);
130
+ }
131
+
132
+ .nav-links {
133
+ display: flex;
134
+ gap: 1.5rem;
135
+ }
136
+
137
+ .nav-links a {
138
+ color: var(--text);
139
+ font-weight: 600;
140
+ font-size: 0.95rem;
141
+ padding: 0.5rem 0;
142
+ }
143
+
144
+ .nav-links a:hover {
145
+ color: var(--accent2);
146
+ }
147
+
148
+ .header-actions {
149
+ display: flex;
150
+ align-items: center;
151
+ gap: 1rem;
152
+ }
153
+
154
+ .mobile-toggle {
155
+ display: none;
156
+ background: none;
157
+ border: none;
158
+ color: var(--text);
159
+ font-size: 1.5rem;
160
+ cursor: pointer;
161
+ min-width: 44px;
162
+ min-height: 44px;
163
+ }
164
+
165
+ /* --- HERO ARENA (PAGE BANNER) --- */
166
+ .hero-arena {
167
+ position: relative;
168
+ padding: 4rem 0 3rem;
169
+ background: radial-gradient(circle at 50% 0%, rgba(20, 184, 166, 0.15) 0%, transparent 60%);
170
+ border-bottom: 1px solid rgba(20, 184, 166, 0.1);
171
+ }
172
+
173
+ .hero-arena::before {
174
+ content: '';
175
+ position: absolute;
176
+ top: 0; left: 0; right: 0; bottom: 0;
177
+ background-image: linear-gradient(rgba(20, 184, 166, 0.05) 1px, transparent 1px),
178
+ linear-gradient(90deg, rgba(20, 184, 166, 0.05) 1px, transparent 1px);
179
+ background-size: 30px 30px;
180
+ z-index: -1;
181
+ opacity: 0.5;
182
+ }
183
+
184
+ .breadcrumb {
185
+ font-size: 0.85rem;
186
+ color: var(--muted);
187
+ margin-bottom: 1.5rem;
188
+ display: flex;
189
+ align-items: center;
190
+ gap: 0.5rem;
191
+ }
192
+
193
+ .hero-arena h1 {
194
+ font-size: clamp(2rem, 5vw, 3.5rem);
195
+ color: var(--text);
196
+ margin-bottom: 1rem;
197
+ text-shadow: 0 0 20px rgba(20, 184, 166, 0.3);
198
+ }
199
+
200
+ .meta-chips {
201
+ display: flex;
202
+ gap: 1rem;
203
+ margin-bottom: 2rem;
204
+ flex-wrap: wrap;
205
+ }
206
+
207
+ .chip {
208
+ background: rgba(20, 184, 166, 0.1);
209
+ border: 1px solid rgba(20, 184, 166, 0.3);
210
+ color: var(--accent2);
211
+ padding: 0.4rem 1rem;
212
+ border-radius: 20px;
213
+ font-size: 0.85rem;
214
+ font-weight: 600;
215
+ }
216
+
217
+ .hero-intro {
218
+ font-size: 1.1rem;
219
+ color: var(--text);
220
+ max-width: 800px;
221
+ line-height: 1.8;
222
+ border-left: 4px solid var(--accent);
223
+ padding-left: 1.5rem;
224
+ background: linear-gradient(90deg, rgba(255, 209, 102, 0.05) 0%, transparent 100%);
225
+ }
226
+
227
+ /* --- MAIN CONTENT ARENA --- */
228
+ .content-arena {
229
+ padding: 4rem 0;
230
+ }
231
+
232
+ .content-grid {
233
+ display: grid;
234
+ grid-template-columns: 1fr;
235
+ gap: 2rem;
236
+ max-width: 900px;
237
+ margin: 0 auto;
238
+ }
239
+
240
+ .stadium-card {
241
+ background-color: var(--surface);
242
+ padding: 2.5rem;
243
+ position: relative;
244
+ clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
245
+ border-top: 2px solid rgba(255, 209, 102, 0.1);
246
+ border-left: 2px solid rgba(20, 184, 166, 0.3);
247
+ transition: var(--transition);
248
+ }
249
+
250
+ .stadium-card:hover {
251
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
252
+ border-left-color: var(--accent2);
253
+ }
254
+
255
+ .stadium-card::after {
256
+ content: '';
257
+ position: absolute;
258
+ bottom: 0; right: 0;
259
+ width: 20px; height: 20px;
260
+ background-color: var(--accent2);
261
+ opacity: 0.2;
262
+ }
263
+
264
+ .stadium-card h2 {
265
+ font-size: 1.5rem;
266
+ color: var(--accent);
267
+ margin-bottom: 1.2rem;
268
+ display: flex;
269
+ align-items: center;
270
+ gap: 0.75rem;
271
+ }
272
+
273
+ .stadium-card h2::before {
274
+ content: '>>';
275
+ color: var(--accent2);
276
+ font-size: 1.2rem;
277
+ }
278
+
279
+ .stadium-card p {
280
+ margin-bottom: 1rem;
281
+ color: var(--muted);
282
+ }
283
+
284
+ .stadium-card p:last-child {
285
+ margin-bottom: 0;
286
+ }
287
+
288
+ .stadium-card p a {
289
+ color: var(--accent);
290
+ font-weight: 600;
291
+ text-decoration: underline;
292
+ text-decoration-color: rgba(255, 209, 102, 0.4);
293
+ text-underline-offset: 3px;
294
+ }
295
+
296
+ .stadium-card p a:hover {
297
+ color: var(--text);
298
+ text-decoration-color: var(--accent2);
299
+ }
300
+
301
+ /* Special styling for the security tips list */
302
+ .checklist-card p:not(:first-child):not(:last-child) {
303
+ position: relative;
304
+ padding-left: 2rem;
305
+ margin-bottom: 1rem;
306
+ color: var(--text);
307
+ }
308
+
309
+ .checklist-card p:not(:first-child):not(:last-child)::before {
310
+ content: '⚡';
311
+ position: absolute;
312
+ left: 0;
313
+ color: var(--accent2);
314
+ font-family: var(--font-display);
315
+ }
316
+
317
+ .checklist-card p:last-child {
318
+ margin-top: 2rem;
319
+ padding-top: 1.5rem;
320
+ border-top: 1px dashed rgba(143, 176, 179, 0.2);
321
+ }
322
+
323
+ /* --- FAQ SECTION --- */
324
+ .faq-arena {
325
+ padding: 4rem 0;
326
+ background-color: rgba(10, 34, 38, 0.5);
327
+ }
328
+
329
+ .section-title {
330
+ text-align: center;
331
+ margin-bottom: 3rem;
332
+ font-size: 2rem;
333
+ color: var(--text);
334
+ }
335
+
336
+ .section-title span {
337
+ color: var(--accent2);
338
+ }
339
+
340
+ .faq-container {
341
+ max-width: 800px;
342
+ margin: 0 auto;
343
+ display: flex;
344
+ flex-direction: column;
345
+ gap: 1rem;
346
+ }
347
+
348
+ details {
349
+ background-color: var(--surface);
350
+ border: 1px solid rgba(20, 184, 166, 0.2);
351
+ border-radius: var(--radius);
352
+ overflow: hidden;
353
+ transition: var(--transition);
354
+ }
355
+
356
+ details[open] {
357
+ border-color: var(--accent2);
358
+ box-shadow: 0 0 15px rgba(20, 184, 166, 0.1);
359
+ }
360
+
361
+ summary {
362
+ padding: 1.2rem 1.5rem;
363
+ font-family: var(--font-display);
364
+ font-size: 1.1rem;
365
+ color: var(--text);
366
+ cursor: pointer;
367
+ list-style: none;
368
+ display: flex;
369
+ justify-content: space-between;
370
+ align-items: center;
371
+ min-height: 44px;
372
+ }
373
+
374
+ summary::-webkit-details-marker {
375
+ display: none;
376
+ }
377
+
378
+ summary::after {
379
+ content: '+';
380
+ color: var(--accent);
381
+ font-size: 1.5rem;
382
+ transition: transform 0.3s ease;
383
+ }
384
+
385
+ details[open] summary::after {
386
+ transform: rotate(45deg);
387
+ color: var(--accent2);
388
+ }
389
+
390
+ details p {
391
+ padding: 0 1.5rem 1.5rem;
392
+ color: var(--muted);
393
+ border-top: 1px solid rgba(255,255,255,0.05);
394
+ margin-top: 0.5rem;
395
+ padding-top: 1rem;
396
+ }
397
+
398
+ /* --- RELATED PAGES (PORTAL) --- */
399
+ .portal-arena {
400
+ padding: 4rem 0;
401
+ border-top: 1px solid rgba(20, 184, 166, 0.1);
402
+ }
403
+
404
+ .portal-grid {
405
+ display: grid;
406
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
407
+ gap: 1.5rem;
408
+ max-width: 1000px;
409
+ margin: 0 auto;
410
+ }
411
+
412
+ .portal-link {
413
+ display: flex;
414
+ align-items: center;
415
+ justify-content: center;
416
+ padding: 1.5rem;
417
+ background: linear-gradient(135deg, var(--surface) 0%, rgba(4, 18, 20, 1) 100%);
418
+ border: 1px solid rgba(20, 184, 166, 0.2);
419
+ border-radius: var(--radius);
420
+ font-family: var(--font-display);
421
+ color: var(--text);
422
+ text-transform: uppercase;
423
+ text-align: center;
424
+ position: relative;
425
+ overflow: hidden;
426
+ z-index: 1;
427
+ min-height: 44px;
428
+ }
429
+
430
+ .portal-link::before {
431
+ content: '';
432
+ position: absolute;
433
+ top: 0; left: -100%;
434
+ width: 100%; height: 100%;
435
+ background: linear-gradient(90deg, transparent, rgba(20, 184, 166, 0.2), transparent);
436
+ transition: left 0.5s ease;
437
+ z-index: -1;
438
+ }
439
+
440
+ .portal-link:hover {
441
+ border-color: var(--accent);
442
+ color: var(--accent);
443
+ transform: translateY(-3px);
444
+ box-shadow: 0 10px 20px rgba(0,0,0,0.4);
445
+ }
446
+
447
+ .portal-link:hover::before {
448
+ left: 100%;
449
+ }
450
+
451
+ /* --- CTA ARENA --- */
452
+ .cta-arena {
453
+ padding: 5rem 0;
454
+ text-align: center;
455
+ background: radial-gradient(ellipse at center, rgba(255, 209, 102, 0.1) 0%, transparent 70%);
456
+ position: relative;
457
+ }
458
+
459
+ .cta-arena h2 {
460
+ font-size: 2.5rem;
461
+ margin-bottom: 1rem;
462
+ color: var(--text);
463
+ }
464
+
465
+ .cta-arena p {
466
+ color: var(--muted);
467
+ margin-bottom: 2.5rem;
468
+ font-size: 1.1rem;
469
+ max-width: 600px;
470
+ margin-left: auto;
471
+ margin-right: auto;
472
+ }
473
+
474
+ .cta-buttons {
475
+ display: flex;
476
+ justify-content: center;
477
+ gap: 1.5rem;
478
+ flex-wrap: wrap;
479
+ }
480
+
481
+ /* --- FOOTER (As per constraint) --- */
482
+ footer {
483
+ background-color: #02090a;
484
+ padding: 4rem 0 2rem;
485
+ border-top: 2px solid var(--accent2);
486
+ }
487
+
488
+ .footer-grid {
489
+ display: grid;
490
+ grid-template-columns: 2fr 1fr 1fr;
491
+ gap: 3rem;
492
+ margin-bottom: 3rem;
493
+ }
494
+
495
+ .footer-brand h2 {
496
+ font-size: 2rem;
497
+ color: var(--text);
498
+ margin-bottom: 1rem;
499
+ }
500
+
501
+ .footer-brand h2 span {
502
+ color: var(--accent);
503
+ }
504
+
505
+ .footer-tagline {
506
+ color: var(--muted);
507
+ max-width: 300px;
508
+ }
509
+
510
+ .footer-links-group h4 {
511
+ color: var(--text);
512
+ margin-bottom: 1.5rem;
513
+ font-size: 1.1rem;
514
+ }
515
+
516
+ .footer-links-group a {
517
+ display: block;
518
+ color: var(--muted);
519
+ margin-bottom: 0.75rem;
520
+ font-size: 0.95rem;
521
+ min-height: 24px; /* Touch target helper */
522
+ }
523
+
524
+ .footer-links-group a:hover {
525
+ color: var(--accent2);
526
+ padding-left: 5px;
527
+ }
528
+
529
+ .footer-bottom {
530
+ text-align: center;
531
+ padding-top: 2rem;
532
+ border-top: 1px solid rgba(143, 176, 179, 0.2);
533
+ color: var(--muted);
534
+ font-size: 0.85rem;
535
+ }
536
+
537
+ /* --- RESPONSIVE DESIGN --- */
538
+ @media (max-width: 1024px) {
539
+ .footer-grid {
540
+ grid-template-columns: 1fr 1fr;
541
+ }
542
+ .footer-brand {
543
+ grid-column: 1 / -1;
544
+ }
545
+ }
546
+
547
+ @media (max-width: 768px) {
548
+ .header-actions .btn {
549
+ display: none;
550
+ }
551
+ .mobile-toggle {
552
+ display: block;
553
+ }
554
+ .nav-links {
555
+ display: none;
556
+ position: absolute;
557
+ top: 70px;
558
+ left: 0;
559
+ width: 100%;
560
+ background-color: var(--surface);
561
+ flex-direction: column;
562
+ padding: 1rem 0;
563
+ border-bottom: 1px solid var(--accent2);
564
+ }
565
+ .nav-links.active {
566
+ display: flex;
567
+ }
568
+ .nav-links a {
569
+ padding: 1rem 1.5rem;
570
+ border-bottom: 1px solid rgba(255,255,255,0.05);
571
+ }
572
+ .hero-arena {
573
+ padding: 3rem 0 2rem;
574
+ }
575
+ .hero-intro {
576
+ font-size: 1rem;
577
+ }
578
+ .stadium-card {
579
+ padding: 1.5rem;
580
+ }
581
+ .cta-arena h2 {
582
+ font-size: 2rem;
583
+ }
584
+ }
585
+
586
+ @media (max-width: 390px) {
587
+ .hero-arena h1 {
588
+ font-size: 1.75rem;
589
+ }
590
+ .meta-chips {
591
+ flex-direction: column;
592
+ gap: 0.5rem;
593
+ }
594
+ .chip {
595
+ width: fit-content;
596
+ }
597
+ .footer-grid {
598
+ grid-template-columns: 1fr;
599
+ gap: 2rem;
600
+ }
601
+ .cta-buttons {
602
+ flex-direction: column;
603
+ width: 100%;
604
+ }
605
+ .cta-buttons .btn {
606
+ width: 100%;
607
+ }
608
+ }
609
+
610
+
611
+ /* pipeline image & layout guards */
612
+ html, body { overflow-x: clip; }
613
+ img { max-width: 100%; height: auto; }
614
+ img.site-logo { height: 40px; width: auto; max-width: 240px; object-fit: contain; flex: none; }
615
+ header .logo a { display: inline-flex; align-items: center; flex: none; text-decoration: none; }
616
+ img.hero-visual { width: 100%; max-width: 560px; height: auto; object-fit: cover; border-radius: 16px; display: block; margin-inline: auto; }
617
+ img[class^="strip-"], img[class*=" strip-"] { width: 100%; height: auto; display: block; border-radius: 12px; object-fit: cover; }
618
+ /* 合规声明块(zb-disclaimer,全站 footer) */
619
+ .zb-disclaimer { margin-top: 18px; padding-top: 14px; border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent); font-size: .72rem; line-height: 1.65; opacity: .8; display: grid; gap: 6px; }
620
+ .zb-disclaimer .zb-18 { justify-self: start; display: inline-flex; align-items: center; padding: 2px 10px; border: 1.5px solid currentColor; border-radius: 8px; font-weight: 800; letter-spacing: 1px; }