@anglefeint/astro-theme 0.1.0-alpha.0 → 0.1.0-alpha.2

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.
@@ -1,4 +1,4 @@
1
- body.term-page {
1
+ body.hacker-page {
2
2
  background: #000 !important;
3
3
  background-image: none !important;
4
4
  color: rgba(255, 255, 255, 0.88);
@@ -13,14 +13,14 @@
13
13
  --chrome-active: rgba(255, 255, 255, 0.5);
14
14
  --chrome-text-muted: rgba(255, 255, 255, 0.5);
15
15
  }
16
- body.term-page::-webkit-scrollbar { width: 6px; }
17
- body.term-page::-webkit-scrollbar-track { background: transparent; }
18
- body.term-page::-webkit-scrollbar-thumb {
16
+ body.hacker-page::-webkit-scrollbar { width: 6px; }
17
+ body.hacker-page::-webkit-scrollbar-track { background: transparent; }
18
+ body.hacker-page::-webkit-scrollbar-thumb {
19
19
  background: rgba(255, 255, 255, 0.22);
20
20
  border-radius: 3px;
21
21
  }
22
- /* fixed header + content offset (mirrors mesh-page in global.css) */
23
- body.term-page header {
22
+ /* fixed header + content offset (mirrors ai-page in global.css) */
23
+ body.hacker-page header {
24
24
  position: fixed;
25
25
  top: 0;
26
26
  left: 0;
@@ -29,47 +29,47 @@
29
29
  backdrop-filter: blur(3px);
30
30
  -webkit-backdrop-filter: blur(3px);
31
31
  }
32
- body.term-page .term-content {
32
+ body.hacker-page .hacker-content {
33
33
  padding-top: calc(3em + 56px);
34
34
  }
35
- body.term-page .term-content,
36
- body.term-page footer {
35
+ body.hacker-page .hacker-content,
36
+ body.hacker-page footer {
37
37
  position: relative;
38
38
  z-index: 10;
39
39
  }
40
40
  /* footer: Anonymous 灰白 */
41
- body.term-page footer {
41
+ body.hacker-page footer {
42
42
  --chrome-bg: rgba(0, 0, 0, 0.85);
43
43
  --chrome-border: rgba(255, 255, 255, 0.15);
44
44
  border-top-color: rgba(255, 255, 255, 0.15) !important;
45
45
  color: rgba(255, 255, 255, 0.55);
46
46
  }
47
- body.term-page footer a {
47
+ body.hacker-page footer a {
48
48
  color: rgba(255, 255, 255, 0.7) !important;
49
49
  }
50
- body.term-page footer a:hover {
50
+ body.hacker-page footer a:hover {
51
51
  color: rgba(0, 255, 100, 0.9) !important;
52
52
  }
53
53
  @media (max-width: 720px) {
54
- body.term-page .term-content {
54
+ body.hacker-page .hacker-content {
55
55
  padding-top: calc(1em + 56px);
56
56
  }
57
57
  }
58
58
  /* ── terminal background ── */
59
- .term-bg {
59
+ .hacker-bg {
60
60
  position: fixed;
61
61
  inset: 0;
62
62
  z-index: 0;
63
63
  overflow: hidden;
64
64
  pointer-events: none;
65
65
  }
66
- .term-bg-canvas {
66
+ .hacker-bg-canvas {
67
67
  position: absolute;
68
68
  inset: 0;
69
69
  width: 100%;
70
70
  height: 100%;
71
71
  }
72
- .term-scanlines {
72
+ .hacker-scanlines {
73
73
  position: absolute;
74
74
  inset: 0;
75
75
  /* 浅色扫描线:在深色背景上可见,全屏 CRT 感 */
@@ -82,7 +82,7 @@
82
82
  );
83
83
  pointer-events: none;
84
84
  }
85
- .term-vignette {
85
+ .hacker-vignette {
86
86
  position: absolute;
87
87
  inset: 0;
88
88
  background: radial-gradient(
@@ -93,30 +93,30 @@
93
93
  );
94
94
  pointer-events: none;
95
95
  }
96
- .term-flicker {
96
+ .hacker-flicker {
97
97
  position: absolute;
98
98
  inset: 0;
99
99
  background: transparent;
100
- animation: term-flicker-anim 0.08s infinite;
100
+ animation: hacker-flicker-anim 0.08s infinite;
101
101
  pointer-events: none;
102
102
  }
103
- @keyframes term-flicker-anim {
103
+ @keyframes hacker-flicker-anim {
104
104
  0% { background: rgba(255, 255, 255, 0.012); }
105
105
  50% { background: transparent; }
106
106
  100% { background: rgba(255, 255, 255, 0.005); }
107
107
  }
108
- .term-glow {
108
+ .hacker-glow {
109
109
  position: absolute;
110
110
  inset: 0;
111
111
  box-shadow: inset 0 0 120px rgba(255, 255, 255, 0.03);
112
112
  pointer-events: none;
113
113
  }
114
114
  /* ── content ── */
115
- .term-content {
115
+ .hacker-content {
116
116
  position: relative;
117
117
  z-index: 10;
118
118
  }
119
- .term-content .prose {
119
+ .hacker-content .prose {
120
120
  position: relative;
121
121
  background:
122
122
  linear-gradient(180deg, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.92)),
@@ -133,7 +133,7 @@
133
133
  margin: 0 auto 2rem;
134
134
  }
135
135
  /* ── toast ── */
136
- .term-toast {
136
+ .hacker-toast {
137
137
  position: fixed;
138
138
  right: 1rem;
139
139
  bottom: 1rem;
@@ -155,12 +155,12 @@
155
155
  pointer-events: none;
156
156
  transition: opacity 0.18s ease, transform 0.18s ease;
157
157
  }
158
- .term-toast.visible {
158
+ .hacker-toast.visible {
159
159
  opacity: 1;
160
160
  transform: translateY(0);
161
161
  }
162
162
  /* ── progress bar ── */
163
- .term-progress {
163
+ .hacker-progress {
164
164
  position: fixed;
165
165
  top: 0;
166
166
  left: 0;
@@ -172,7 +172,7 @@
172
172
  pointer-events: none;
173
173
  }
174
174
  /* ── back to top ── */
175
- .term-back-to-top {
175
+ .hacker-back-to-top {
176
176
  position: fixed;
177
177
  right: 1.5rem;
178
178
  bottom: 3.5rem;
@@ -192,12 +192,12 @@
192
192
  pointer-events: none;
193
193
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.08);
194
194
  }
195
- .term-back-to-top.visible {
195
+ .hacker-back-to-top.visible {
196
196
  opacity: 1;
197
197
  transform: translateY(0);
198
198
  pointer-events: auto;
199
199
  }
200
- .term-back-to-top:hover {
200
+ .hacker-back-to-top:hover {
201
201
  box-shadow: 0 0 20px rgba(0, 255, 100, 0.25);
202
202
  border-color: rgba(0, 255, 100, 0.5);
203
203
  color: rgba(0, 255, 100, 0.95);
@@ -206,14 +206,14 @@
206
206
  .about-title {
207
207
  margin-bottom: 1.4rem;
208
208
  }
209
- .term-meta {
209
+ .hacker-meta {
210
210
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
211
211
  font-size: 0.78em;
212
212
  color: rgba(255, 255, 255, 0.55);
213
213
  margin-bottom: 0.62em;
214
214
  letter-spacing: 0.04em;
215
215
  }
216
- .term-title-bar {
216
+ .hacker-title-bar {
217
217
  position: relative;
218
218
  height: 3px;
219
219
  margin: 0.75rem 0 0.1rem;
@@ -227,7 +227,7 @@
227
227
  );
228
228
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.1);
229
229
  }
230
- .term-title-bar::after {
230
+ .hacker-title-bar::after {
231
231
  content: "";
232
232
  position: absolute;
233
233
  top: 0;
@@ -241,13 +241,13 @@
241
241
  rgba(156, 163, 175, 0.6),
242
242
  rgba(11, 15, 20, 0.4)
243
243
  );
244
- animation: term-bar-sweep 3.8s linear infinite;
244
+ animation: hacker-bar-sweep 3.8s linear infinite;
245
245
  }
246
- @keyframes term-bar-sweep {
246
+ @keyframes hacker-bar-sweep {
247
247
  to { left: 100%; }
248
248
  }
249
249
  /* ── response panel: Anonymous 窗口风格 (白标题栏 + 黑内容区) ── */
250
- .term-response {
250
+ .hacker-response {
251
251
  border: 1px solid rgba(255, 255, 255, 0.25);
252
252
  background: #000;
253
253
  border-radius: 0;
@@ -257,7 +257,7 @@
257
257
  0 0 0 1px rgba(255, 255, 255, 0.1),
258
258
  0 8px 32px rgba(0, 0, 0, 0.6);
259
259
  }
260
- .term-response-header {
260
+ .hacker-response-header {
261
261
  display: flex;
262
262
  align-items: center;
263
263
  gap: 0.5em;
@@ -265,21 +265,21 @@
265
265
  background: #fff;
266
266
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
267
267
  }
268
- .term-window-dots {
268
+ .hacker-window-dots {
269
269
  display: flex;
270
270
  gap: 6px;
271
271
  align-items: center;
272
272
  }
273
- .term-window-dots span {
273
+ .hacker-window-dots span {
274
274
  width: 10px;
275
275
  height: 10px;
276
276
  border-radius: 50%;
277
277
  flex-shrink: 0;
278
278
  }
279
- .term-window-dots span:nth-child(1) { background: #ff5f57; }
280
- .term-window-dots span:nth-child(2) { background: #febc2e; }
281
- .term-window-dots span:nth-child(3) { background: #28c840; }
282
- .term-response-label {
279
+ .hacker-window-dots span:nth-child(1) { background: #ff5f57; }
280
+ .hacker-window-dots span:nth-child(2) { background: #febc2e; }
281
+ .hacker-window-dots span:nth-child(3) { background: #28c840; }
282
+ .hacker-response-label {
283
283
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
284
284
  font-size: 0.75em;
285
285
  color: #000;
@@ -287,42 +287,42 @@
287
287
  letter-spacing: 0.1em;
288
288
  text-transform: uppercase;
289
289
  }
290
- .term-body {
290
+ .hacker-body {
291
291
  padding: 1rem 0.9rem 1.2rem;
292
292
  background: #000;
293
293
  }
294
294
  /* ── prose body ── */
295
- .term-body p,
296
- .term-body h2,
297
- .term-body blockquote,
298
- .term-body .about-manifest {
295
+ .hacker-body p,
296
+ .hacker-body h2,
297
+ .hacker-body blockquote,
298
+ .hacker-body .about-manifest {
299
299
  opacity: 0;
300
300
  transform: translateY(12px);
301
301
  transition: opacity 0.5s ease, transform 0.5s ease;
302
302
  }
303
- .term-body .term-visible {
303
+ .hacker-body .hacker-visible {
304
304
  opacity: 1;
305
305
  transform: translateY(0);
306
306
  }
307
- .term-body a {
307
+ .hacker-body a {
308
308
  color: rgba(255, 255, 255, 0.9);
309
309
  text-decoration-color: rgba(255, 255, 255, 0.35);
310
310
  }
311
- .term-body a:hover {
311
+ .hacker-body a:hover {
312
312
  color: rgba(0, 255, 100, 0.95);
313
313
  text-decoration-color: rgba(0, 255, 100, 0.6);
314
314
  }
315
315
  /* ── cursor ── */
316
- .term-cursor {
316
+ .hacker-cursor {
317
317
  display: inline-block;
318
318
  width: 0.6em;
319
319
  height: 1.1em;
320
320
  background: rgba(0, 255, 100, 0.9);
321
321
  margin-left: 2px;
322
322
  vertical-align: text-bottom;
323
- animation: term-cursor-blink 1s step-end infinite;
323
+ animation: hacker-cursor-blink 1s step-end infinite;
324
324
  }
325
- @keyframes term-cursor-blink {
325
+ @keyframes hacker-cursor-blink {
326
326
  0%, 50% { opacity: 1; }
327
327
  51%, 100% { opacity: 0; }
328
328
  }
@@ -361,7 +361,7 @@
361
361
  color: rgba(255, 255, 255, 0.6);
362
362
  }
363
363
  /* ── regenerate ── */
364
- .term-regenerate {
364
+ .hacker-regenerate {
365
365
  display: block;
366
366
  margin: 2em auto 0;
367
367
  padding: 0.5em 1.2em;
@@ -376,7 +376,7 @@
376
376
  text-transform: uppercase;
377
377
  transition: all 0.2s ease;
378
378
  }
379
- .term-regenerate:hover:not(:disabled) {
379
+ .hacker-regenerate:hover:not(:disabled) {
380
380
  color: rgba(0, 255, 100, 0.95);
381
381
  border-color: rgba(0, 255, 100, 0.4);
382
382
  background: rgba(0, 255, 100, 0.06);
@@ -412,7 +412,7 @@
412
412
  letter-spacing: 0.04em;
413
413
  }
414
414
  /* ── mouse glow (green) ── */
415
- .term-mouse-glow {
415
+ .hacker-mouse-glow {
416
416
  position: fixed;
417
417
  width: 300px;
418
418
  height: 300px;
@@ -424,31 +424,31 @@
424
424
  border-radius: 50%;
425
425
  }
426
426
  /* ── load scan ── */
427
- .term-load-scan {
427
+ .hacker-load-scan {
428
428
  position: fixed;
429
429
  left: 0;
430
430
  right: 0;
431
431
  height: 2px;
432
432
  background: linear-gradient(90deg, rgba(11, 15, 20, 0.3), rgba(255, 0, 51, 0.7), rgba(156, 163, 175, 0.6), rgba(11, 15, 20, 0.3));
433
433
  box-shadow: 0 0 12px rgba(255, 0, 51, 0.4);
434
- animation: term-scan 0.8s ease-out forwards;
434
+ animation: hacker-scan 0.8s ease-out forwards;
435
435
  pointer-events: none;
436
436
  z-index: 20;
437
437
  }
438
- @keyframes term-scan {
438
+ @keyframes hacker-scan {
439
439
  0% { top: 0; opacity: 1; }
440
440
  100% { top: 100vh; opacity: 0.2; }
441
441
  }
442
442
  /* ── flash on regenerate ── */
443
- .term-flash {
444
- animation: term-flash-anim 0.3s ease-out;
443
+ .hacker-flash {
444
+ animation: hacker-flash-anim 0.3s ease-out;
445
445
  }
446
- @keyframes term-flash-anim {
446
+ @keyframes hacker-flash-anim {
447
447
  0% { filter: brightness(2) saturate(0.5); }
448
448
  100% { filter: none; }
449
449
  }
450
450
  /* ── 右侧文件夹 (Anonymous) ── */
451
- .term-sidebar {
451
+ .hacker-sidebar {
452
452
  position: fixed;
453
453
  top: 20%;
454
454
  right: 1rem;
@@ -457,7 +457,7 @@
457
457
  flex-direction: column;
458
458
  gap: 0.6rem;
459
459
  }
460
- .term-folder {
460
+ .hacker-folder {
461
461
  display: flex;
462
462
  align-items: center;
463
463
  gap: 0.5rem;
@@ -473,20 +473,20 @@
473
473
  font-size: 0.72rem;
474
474
  letter-spacing: 0.06em;
475
475
  }
476
- .term-folder:hover {
476
+ .hacker-folder:hover {
477
477
  background: rgba(0, 0, 0, 0.85);
478
478
  border-color: rgba(0, 255, 100, 0.5);
479
479
  color: rgba(0, 255, 100, 0.95);
480
480
  box-shadow: 0 0 12px rgba(0, 255, 100, 0.15);
481
481
  }
482
- .term-folder-icon {
482
+ .hacker-folder-icon {
483
483
  width: 24px;
484
484
  height: 20px;
485
485
  flex-shrink: 0;
486
486
  opacity: 0.9;
487
487
  }
488
488
  /* ── 弹窗 (Anonymous 窗口) ── */
489
- .term-modal-overlay {
489
+ .hacker-modal-overlay {
490
490
  position: fixed;
491
491
  inset: 0;
492
492
  z-index: 200;
@@ -497,18 +497,18 @@
497
497
  justify-content: center;
498
498
  padding: 2rem;
499
499
  }
500
- .term-modal-overlay.open {
500
+ .hacker-modal-overlay.open {
501
501
  display: flex;
502
502
  }
503
- .term-modal {
503
+ .hacker-modal {
504
504
  width: min(420px, 100%);
505
505
  max-height: 80vh;
506
506
  }
507
- .term-modal.term-modal-wide {
507
+ .hacker-modal.hacker-modal-wide {
508
508
  width: min(900px, calc(100vw - 2rem));
509
509
  overflow: visible;
510
510
  }
511
- .term-modal-header {
511
+ .hacker-modal-header {
512
512
  display: flex;
513
513
  align-items: center;
514
514
  gap: 0.5rem;
@@ -516,19 +516,19 @@
516
516
  background: #fff;
517
517
  border-bottom: 1px solid rgba(0, 0, 0, 0.15);
518
518
  }
519
- .term-modal-dots {
519
+ .hacker-modal-dots {
520
520
  display: flex;
521
521
  gap: 6px;
522
522
  }
523
- .term-modal-dots span {
523
+ .hacker-modal-dots span {
524
524
  width: 10px;
525
525
  height: 10px;
526
526
  border-radius: 50%;
527
527
  }
528
- .term-modal-dots span:nth-child(1) { background: #ff5f57; }
529
- .term-modal-dots span:nth-child(2) { background: #febc2e; }
530
- .term-modal-dots span:nth-child(3) { background: #28c840; }
531
- .term-modal-title {
528
+ .hacker-modal-dots span:nth-child(1) { background: #ff5f57; }
529
+ .hacker-modal-dots span:nth-child(2) { background: #febc2e; }
530
+ .hacker-modal-dots span:nth-child(3) { background: #28c840; }
531
+ .hacker-modal-title {
532
532
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
533
533
  font-size: 0.75em;
534
534
  color: #000;
@@ -536,7 +536,7 @@
536
536
  letter-spacing: 0.1em;
537
537
  text-transform: uppercase;
538
538
  }
539
- .term-modal-close {
539
+ .hacker-modal-close {
540
540
  margin-left: auto;
541
541
  width: 66px;
542
542
  height: 66px;
@@ -550,14 +550,14 @@
550
550
  opacity: 0.9;
551
551
  border-radius: 10px;
552
552
  }
553
- .term-modal-close .term-modal-close-icon {
553
+ .hacker-modal-close .hacker-modal-close-icon {
554
554
  flex-shrink: 0;
555
555
  }
556
- .term-modal-close:hover {
556
+ .hacker-modal-close:hover {
557
557
  opacity: 1;
558
558
  background: rgba(0, 0, 0, 0.14);
559
559
  }
560
- .term-modal-body {
560
+ .hacker-modal-body {
561
561
  padding: 1rem 0.9rem 1.2rem;
562
562
  color: rgba(255, 255, 255, 0.88);
563
563
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
@@ -566,37 +566,37 @@
566
566
  max-height: 60vh;
567
567
  overflow-y: auto;
568
568
  }
569
- .term-modal-body pre {
569
+ .hacker-modal-body pre {
570
570
  margin: 0;
571
571
  white-space: pre-wrap;
572
572
  word-break: break-word;
573
573
  }
574
574
  /* DL Data: Downloading 进度条 (Anonymous 风格) */
575
- .term-modal-body.term-modal-download .modal-subtitle {
575
+ .hacker-modal-body.hacker-modal-download .modal-subtitle {
576
576
  font-size: 0.9em;
577
577
  color: rgba(255, 255, 255, 0.7);
578
578
  margin-bottom: 1rem;
579
579
  }
580
- .term-modal-progress {
580
+ .hacker-modal-progress {
581
581
  display: flex;
582
582
  gap: 2px;
583
583
  flex-wrap: wrap;
584
584
  margin-top: 0.5rem;
585
585
  }
586
- .term-modal-progress span {
586
+ .hacker-modal-progress span {
587
587
  width: 10px;
588
588
  height: 12px;
589
589
  background: rgba(255, 255, 255, 0.2);
590
590
  transition: background 0.12s ease;
591
591
  }
592
- .term-modal-progress span.filled {
592
+ .hacker-modal-progress span.filled {
593
593
  background: rgba(255, 255, 255, 0.6);
594
594
  }
595
595
  /* All Scripts: 文件夹网格 */
596
- .term-modal-scripts {
596
+ .hacker-modal-scripts {
597
597
  padding: 0.5rem 0;
598
598
  }
599
- .term-modal-scripts-path {
599
+ .hacker-modal-scripts-path {
600
600
  font-size: 0.9em;
601
601
  color: rgba(255, 255, 255, 0.9);
602
602
  letter-spacing: 0.05em;
@@ -604,12 +604,12 @@
604
604
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
605
605
  padding-bottom: 0.5rem;
606
606
  }
607
- .term-modal-scripts-grid {
607
+ .hacker-modal-scripts-grid {
608
608
  display: grid;
609
609
  grid-template-columns: repeat(5, 1fr);
610
610
  gap: 1rem;
611
611
  }
612
- .term-script-folder {
612
+ .hacker-script-folder {
613
613
  display: flex;
614
614
  flex-direction: column;
615
615
  align-items: center;
@@ -622,40 +622,40 @@
622
622
  text-decoration: none;
623
623
  transition: all 0.15s ease;
624
624
  }
625
- .term-script-folder:hover {
625
+ .hacker-script-folder:hover {
626
626
  background: rgba(255, 255, 255, 0.12);
627
627
  border-color: rgba(0, 255, 100, 0.4);
628
628
  box-shadow: 0 0 12px rgba(0, 255, 100, 0.15);
629
629
  }
630
- .term-script-folder-icon {
630
+ .hacker-script-folder-icon {
631
631
  width: 32px;
632
632
  height: 28px;
633
633
  color: rgba(255, 255, 255, 0.7);
634
634
  }
635
- .term-script-folder-label {
635
+ .hacker-script-folder-label {
636
636
  font-size: 0.72rem;
637
637
  text-align: center;
638
638
  word-break: break-word;
639
639
  line-height: 1.3;
640
640
  }
641
641
  @media (max-width: 600px) {
642
- .term-modal-scripts-grid {
642
+ .hacker-modal-scripts-grid {
643
643
  grid-template-columns: repeat(3, 1fr);
644
644
  }
645
645
  }
646
646
  /* Help: 虚拟键盘 */
647
- .term-vkeyboard {
647
+ .hacker-vkeyboard {
648
648
  display: flex;
649
649
  flex-direction: column;
650
650
  gap: 4px;
651
651
  font-size: 0.7rem;
652
652
  }
653
- .term-vkeyboard-row {
653
+ .hacker-vkeyboard-row {
654
654
  display: flex;
655
655
  justify-content: center;
656
656
  gap: 3px;
657
657
  }
658
- .term-vkey {
658
+ .hacker-vkey {
659
659
  min-width: 24px;
660
660
  height: 28px;
661
661
  padding: 0 6px;
@@ -671,86 +671,86 @@
671
671
  transition: all 0.1s ease;
672
672
  user-select: none;
673
673
  }
674
- .term-vkey:hover {
674
+ .hacker-vkey:hover {
675
675
  background: rgba(255, 255, 255, 0.15);
676
676
  border-color: rgba(255, 255, 255, 0.35);
677
677
  }
678
- .term-vkey.highlight {
678
+ .hacker-vkey.highlight {
679
679
  background: rgba(0, 255, 100, 0.35);
680
680
  border-color: rgba(0, 255, 100, 0.7);
681
681
  box-shadow: 0 0 12px rgba(0, 255, 100, 0.3);
682
682
  }
683
- .term-vkey.wide { min-width: 36px; }
684
- .term-vkey.backspace { min-width: 72px; }
685
- .term-vkey.space { min-width: 120px; }
686
- .term-vkey.acc { background: rgba(255, 140, 0, 0.25); border-color: rgba(255, 140, 0, 0.5); }
687
- .term-vkey.acc:hover { background: rgba(255, 140, 0, 0.35); }
688
- .term-vkeyboard-wrap {
683
+ .hacker-vkey.wide { min-width: 36px; }
684
+ .hacker-vkey.backspace { min-width: 72px; }
685
+ .hacker-vkey.space { min-width: 120px; }
686
+ .hacker-vkey.acc { background: rgba(255, 140, 0, 0.25); border-color: rgba(255, 140, 0, 0.5); }
687
+ .hacker-vkey.acc:hover { background: rgba(255, 140, 0, 0.35); }
688
+ .hacker-vkeyboard-wrap {
689
689
  display: flex;
690
690
  flex-wrap: wrap;
691
691
  gap: 2rem;
692
692
  align-items: stretch;
693
693
  }
694
- .term-vkeyboard-main {
694
+ .hacker-vkeyboard-main {
695
695
  flex: 1;
696
696
  min-width: 0;
697
697
  }
698
- .term-vkeyboard-side {
698
+ .hacker-vkeyboard-side {
699
699
  display: flex;
700
700
  flex-direction: column;
701
701
  gap: 6px;
702
702
  flex-shrink: 0;
703
703
  min-width: 140px;
704
704
  }
705
- .term-vkeyboard-side-block {
705
+ .hacker-vkeyboard-side-block {
706
706
  display: flex;
707
707
  flex-direction: column;
708
708
  gap: 4px;
709
709
  margin-bottom: 4px;
710
710
  }
711
- .term-vkeyboard-side-row {
711
+ .hacker-vkeyboard-side-row {
712
712
  display: flex;
713
713
  gap: 3px;
714
714
  }
715
- .term-vkeyboard-side-block .term-vkey {
715
+ .hacker-vkeyboard-side-block .hacker-vkey {
716
716
  flex: 1;
717
717
  min-width: 0;
718
718
  }
719
- .term-vkey.nav-home { background: rgba(66, 133, 244, 0.3); border-color: rgba(66, 133, 244, 0.5); }
720
- .term-vkey.nav-home:hover { background: rgba(66, 133, 244, 0.4); }
721
- .term-vkey.nav-end { background: rgba(234, 67, 53, 0.25); border-color: rgba(234, 67, 53, 0.5); }
722
- .term-vkey.nav-end:hover { background: rgba(234, 67, 53, 0.35); }
723
- .term-vkeyboard-arrows-wrap {
719
+ .hacker-vkey.nav-home { background: rgba(66, 133, 244, 0.3); border-color: rgba(66, 133, 244, 0.5); }
720
+ .hacker-vkey.nav-home:hover { background: rgba(66, 133, 244, 0.4); }
721
+ .hacker-vkey.nav-end { background: rgba(234, 67, 53, 0.25); border-color: rgba(234, 67, 53, 0.5); }
722
+ .hacker-vkey.nav-end:hover { background: rgba(234, 67, 53, 0.35); }
723
+ .hacker-vkeyboard-arrows-wrap {
724
724
  display: flex;
725
725
  flex-direction: column;
726
726
  align-items: center;
727
727
  margin-top: 6px;
728
728
  }
729
- .term-vkeyboard-arrows {
729
+ .hacker-vkeyboard-arrows {
730
730
  display: grid;
731
731
  grid-template: ". u ." 1fr "l d r" 1fr / 1fr 1fr 1fr;
732
732
  gap: 2px;
733
733
  height: 56px;
734
734
  }
735
- .term-vkeyboard-arrows .arr-u { grid-area: u; }
736
- .term-vkeyboard-arrows .arr-l { grid-area: l; }
737
- .term-vkeyboard-arrows .arr-r { grid-area: r; }
738
- .term-vkeyboard-arrows .arr-d { grid-area: d; }
739
- .term-vkeyboard-arrows .term-vkey { width: 50px; height: 22px; font-size: 0.65rem; padding: 0; }
740
- .term-vkeyboard-stats {
735
+ .hacker-vkeyboard-arrows .arr-u { grid-area: u; }
736
+ .hacker-vkeyboard-arrows .arr-l { grid-area: l; }
737
+ .hacker-vkeyboard-arrows .arr-r { grid-area: r; }
738
+ .hacker-vkeyboard-arrows .arr-d { grid-area: d; }
739
+ .hacker-vkeyboard-arrows .hacker-vkey { width: 50px; height: 22px; font-size: 0.65rem; padding: 0; }
740
+ .hacker-vkeyboard-stats {
741
741
  width: 100%;
742
742
  margin-top: 0.2rem;
743
743
  font-size: 0.75em;
744
744
  color: rgba(255, 255, 255, 0.6);
745
745
  }
746
- .term-vkeyboard-stats-label {
746
+ .hacker-vkeyboard-stats-label {
747
747
  font-size: 0.65rem;
748
748
  color: rgba(255, 255, 255, 0.5);
749
749
  letter-spacing: 0.1em;
750
750
  }
751
- .term-modal-body.term-modal-keyboard {
751
+ .hacker-modal-body.hacker-modal-keyboard {
752
752
  overflow: visible;
753
753
  }
754
754
  @media (max-width: 900px) {
755
- .term-sidebar { display: none; }
755
+ .hacker-sidebar { display: none; }
756
756
  }