jekyll-theme-systemhalted 0.1.1

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,1759 @@
1
+ /* nord.css — trimmed theme styles for systemhalted-theme */
2
+
3
+ :root {
4
+ --font-sans: "Rubik", "Noto Sans", "Helvetica Neue", Helvetica, sans-serif;
5
+ --font-display: "Rubik", "Noto Sans", "Helvetica Neue", Helvetica, sans-serif;
6
+ --font-mono: "Source Code Pro", "Fira Code", Menlo, Monaco, "Courier New", monospace;
7
+ --font-wordmark: "UnifrakturMaguntia", "UnifrakturCook", "Old English Text MT", "Goudy Text MT", "Times New Roman", serif;
8
+ --font-serif: "Times New Roman", "Georgia", Times, serif;
9
+ }
10
+
11
+ .theme-nord-light {
12
+ color-scheme: light;
13
+ --nord0: #2e3440;
14
+ --nord1: #3b4252;
15
+ --nord2: #434c5e;
16
+ --nord3: #4c566a;
17
+ --nord4: #d8dee9;
18
+ --nord5: #e5e9f0;
19
+ --nord6: #eceff4;
20
+ --nord7: #8fbcbb;
21
+ --nord8: #88c0d0;
22
+ --nord9: #81a1c1;
23
+ --nord10: #5e81ac;
24
+ --nord11: #bf616a;
25
+ --nord12: #d08770;
26
+ --nord13: #ebcb8b;
27
+ --nord14: #a3be8c;
28
+ --nord15: #b48ead;
29
+ --bg: var(--nord6);
30
+ --bg-alt: var(--nord5);
31
+ --surface: var(--nord6);
32
+ --surface-strong: var(--nord5);
33
+ --border: var(--nord4);
34
+ --text: var(--nord3);
35
+ --text-strong: var(--nord0);
36
+ --muted: var(--nord3);
37
+ --link: var(--nord10);
38
+ --link-hover: var(--nord9);
39
+ --accent: var(--nord8);
40
+ --accent-strong: var(--nord10);
41
+ --on-accent: var(--nord6);
42
+ --shadow: 0 12px 28px rgba(46, 52, 64, 0.12);
43
+ --shadow-strong: 0 16px 36px rgba(46, 52, 64, 0.18);
44
+ --code-bg: var(--nord5);
45
+ --code-text: var(--nord11);
46
+ --code-border: var(--nord4);
47
+ --sidebar-bg: var(--nord0);
48
+ --sidebar-text: var(--nord4);
49
+ --sidebar-link: var(--nord6);
50
+ --sidebar-border: var(--nord2);
51
+ --footer-bg: var(--nord5);
52
+ }
53
+
54
+ .theme-nord-dark {
55
+ color-scheme: dark;
56
+ --nord0: #2e3440;
57
+ --nord1: #3b4252;
58
+ --nord2: #434c5e;
59
+ --nord3: #4c566a;
60
+ --nord4: #d8dee9;
61
+ --nord5: #e5e9f0;
62
+ --nord6: #eceff4;
63
+ --nord7: #8fbcbb;
64
+ --nord8: #88c0d0;
65
+ --nord9: #81a1c1;
66
+ --nord10: #5e81ac;
67
+ --nord11: #bf616a;
68
+ --nord12: #d08770;
69
+ --nord13: #ebcb8b;
70
+ --nord14: #a3be8c;
71
+ --nord15: #b48ead;
72
+ --bg: var(--nord0);
73
+ --bg-alt: var(--nord1);
74
+ --surface: var(--nord1);
75
+ --surface-strong: var(--nord2);
76
+ --border: var(--nord2);
77
+ --text: var(--nord4);
78
+ --text-strong: var(--nord6);
79
+ --muted: var(--nord4);
80
+ --link: var(--nord8);
81
+ --link-hover: var(--nord7);
82
+ --accent: var(--nord8);
83
+ --accent-strong: var(--nord10);
84
+ --on-accent: var(--nord6);
85
+ --shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
86
+ --shadow-strong: 0 16px 36px rgba(0, 0, 0, 0.45);
87
+ --code-bg: var(--nord1);
88
+ --code-text: var(--nord6);
89
+ --code-border: var(--nord2);
90
+ --sidebar-bg: var(--nord1);
91
+ --sidebar-text: var(--nord4);
92
+ --sidebar-link: var(--nord6);
93
+ --sidebar-border: var(--nord2);
94
+ --footer-bg: var(--nord1);
95
+ }
96
+
97
+ *,
98
+ *::before,
99
+ *::after {
100
+ box-sizing: border-box;
101
+ }
102
+
103
+ html,
104
+ body {
105
+ margin: 0;
106
+ padding: 0;
107
+ }
108
+
109
+ html {
110
+ font-family: var(--font-sans);
111
+ font-size: 16px;
112
+ line-height: 1.6;
113
+ }
114
+
115
+ @media (min-width: 38em) {
116
+ html {
117
+ font-size: 19px;
118
+ }
119
+ }
120
+
121
+ body {
122
+ min-height: 100vh;
123
+ background: var(--bg);
124
+ color: var(--text);
125
+ -webkit-text-size-adjust: 100%;
126
+ -ms-text-size-adjust: 100%;
127
+ }
128
+
129
+ .skip-link {
130
+ position: absolute;
131
+ top: 0.75rem;
132
+ left: 0.75rem;
133
+ padding: 0.5rem 0.85rem;
134
+ background: var(--surface);
135
+ border: 1px solid var(--border);
136
+ border-radius: 10px;
137
+ color: var(--text-strong);
138
+ font-weight: 600;
139
+ text-decoration: none;
140
+ transform: translateY(-150%);
141
+ transition: transform 0.2s ease;
142
+ z-index: 300;
143
+ }
144
+
145
+ .skip-link:focus {
146
+ transform: translateY(0);
147
+ outline: 2px solid var(--accent);
148
+ outline-offset: 3px;
149
+ }
150
+
151
+ a {
152
+ color: var(--link);
153
+ text-decoration: none;
154
+ }
155
+
156
+ a:hover,
157
+ a:focus {
158
+ color: var(--link-hover);
159
+ text-decoration: underline;
160
+ }
161
+
162
+ h1,
163
+ h2,
164
+ h3,
165
+ h4,
166
+ h5,
167
+ h6 {
168
+ margin: 0.5rem 0;
169
+ font-family: var(--font-display);
170
+ line-height: 1.25;
171
+ color: var(--text-strong);
172
+ font-weight: 700;
173
+ }
174
+
175
+ h1 {
176
+ font-size: 2rem;
177
+ }
178
+
179
+ h2 {
180
+ font-size: 1.5rem;
181
+ margin-top: 1rem;
182
+ }
183
+
184
+ h3 {
185
+ font-size: 1.25rem;
186
+ margin-top: 1.5rem;
187
+ }
188
+
189
+ h4,
190
+ h5,
191
+ h6 {
192
+ font-size: 1rem;
193
+ margin-top: 1rem;
194
+ }
195
+
196
+ p {
197
+ margin: 0 0 1rem;
198
+ }
199
+
200
+ ul,
201
+ ol,
202
+ dl {
203
+ margin: 0 0 1rem;
204
+ padding-left: 1.2rem;
205
+ }
206
+
207
+ dt {
208
+ font-weight: 700;
209
+ }
210
+
211
+ dd {
212
+ margin: 0 0 0.5rem;
213
+ }
214
+
215
+ strong {
216
+ color: var(--text-strong);
217
+ }
218
+
219
+ hr {
220
+ border: 0;
221
+ border-top: 1px solid var(--border);
222
+ margin: 1.5rem 0;
223
+ }
224
+
225
+ abbr {
226
+ font-size: 0.85rem;
227
+ font-weight: 700;
228
+ color: var(--text);
229
+ text-transform: uppercase;
230
+ border-bottom: 1px dotted var(--border);
231
+ }
232
+
233
+ img {
234
+ display: block;
235
+ max-width: 100%;
236
+ height: auto;
237
+ margin: 0 0 1rem;
238
+ border-radius: 6px;
239
+ }
240
+
241
+ code,
242
+ pre {
243
+ font-family: var(--font-mono);
244
+ }
245
+
246
+ code {
247
+ padding: 0.2em 0.4em;
248
+ font-size: 0.85em;
249
+ color: var(--code-text);
250
+ background: var(--code-bg);
251
+ border-radius: 4px;
252
+ }
253
+
254
+ pre {
255
+ margin: 0 0 1rem;
256
+ padding: 1rem;
257
+ font-size: 0.9rem;
258
+ line-height: 1.5;
259
+ background: var(--code-bg);
260
+ border: 1px solid var(--code-border);
261
+ border-radius: 8px;
262
+ overflow-x: auto;
263
+ }
264
+
265
+ pre code {
266
+ padding: 0;
267
+ background: transparent;
268
+ color: inherit;
269
+ }
270
+
271
+ .highlight,
272
+ .highlighter-rouge {
273
+ font-family: var(--font-mono);
274
+ color: var(--text-strong);
275
+ }
276
+
277
+ .highlight .hll {
278
+ background: rgba(136, 192, 208, 0.15);
279
+ }
280
+
281
+ .highlight .c,
282
+ .highlight .cm,
283
+ .highlight .c1,
284
+ .highlight .cp,
285
+ .highlight .cs {
286
+ color: var(--muted);
287
+ font-style: italic;
288
+ }
289
+
290
+ .highlight .k,
291
+ .highlight .kc,
292
+ .highlight .kd,
293
+ .highlight .kn,
294
+ .highlight .kp,
295
+ .highlight .kr,
296
+ .highlight .kt {
297
+ color: var(--nord9);
298
+ font-weight: 600;
299
+ }
300
+
301
+ .highlight .s,
302
+ .highlight .sb,
303
+ .highlight .sc,
304
+ .highlight .sd,
305
+ .highlight .s2,
306
+ .highlight .se,
307
+ .highlight .sh,
308
+ .highlight .si,
309
+ .highlight .sx,
310
+ .highlight .sr,
311
+ .highlight .s1,
312
+ .highlight .ss {
313
+ color: var(--nord14);
314
+ }
315
+
316
+ .highlight .m,
317
+ .highlight .mb,
318
+ .highlight .mf,
319
+ .highlight .mh,
320
+ .highlight .mi,
321
+ .highlight .mo,
322
+ .highlight .mx,
323
+ .highlight .il {
324
+ color: var(--nord15);
325
+ }
326
+
327
+ .highlight .na,
328
+ .highlight .nb,
329
+ .highlight .nc,
330
+ .highlight .no,
331
+ .highlight .nd,
332
+ .highlight .ni,
333
+ .highlight .ne,
334
+ .highlight .nf,
335
+ .highlight .nl,
336
+ .highlight .nn,
337
+ .highlight .nt,
338
+ .highlight .nv,
339
+ .highlight .nx,
340
+ .highlight .py {
341
+ color: var(--nord8);
342
+ }
343
+
344
+ .highlight .o,
345
+ .highlight .ow,
346
+ .highlight .p {
347
+ color: var(--text);
348
+ }
349
+
350
+ .highlight .gd {
351
+ color: var(--nord11);
352
+ background: rgba(191, 97, 106, 0.15);
353
+ }
354
+
355
+ .highlight .gi {
356
+ color: var(--nord14);
357
+ background: rgba(163, 190, 140, 0.12);
358
+ }
359
+
360
+ .highlight .err {
361
+ color: var(--nord11);
362
+ background: rgba(191, 97, 106, 0.12);
363
+ }
364
+
365
+ blockquote {
366
+ padding: 0.6rem 1rem;
367
+ margin: 1rem 0;
368
+ color: var(--text);
369
+ background: var(--surface);
370
+ border-left: 4px solid var(--border);
371
+ }
372
+
373
+ blockquote p:last-child {
374
+ margin-bottom: 0;
375
+ }
376
+
377
+ table {
378
+ width: 100%;
379
+ border-collapse: collapse;
380
+ margin-bottom: 1rem;
381
+ }
382
+
383
+ td,
384
+ th {
385
+ padding: 0.35rem 0.6rem;
386
+ border: 1px solid var(--border);
387
+ }
388
+
389
+ tbody tr:nth-child(odd) td,
390
+ tbody tr:nth-child(odd) th {
391
+ background: var(--surface);
392
+ }
393
+
394
+ .message {
395
+ margin-bottom: 1rem;
396
+ padding: 1rem;
397
+ color: var(--text);
398
+ background: var(--surface);
399
+ border: 1px solid var(--border);
400
+ border-radius: 8px;
401
+ }
402
+
403
+ .wrap {
404
+ position: relative;
405
+ width: 100%;
406
+ }
407
+
408
+ .container {
409
+ max-width: 72rem;
410
+ margin: 0 auto;
411
+ padding: 0 1rem;
412
+ }
413
+
414
+ .masthead {
415
+ padding: 1rem 0;
416
+ margin-bottom: 2rem;
417
+ border-bottom: 1px solid var(--border);
418
+ }
419
+
420
+ .masthead .container {
421
+ padding-left: calc(1rem + env(safe-area-inset-left));
422
+ padding-right: calc(1rem + env(safe-area-inset-right));
423
+ }
424
+
425
+ .masthead-inner {
426
+ display: grid;
427
+ grid-template-columns: auto minmax(0, 1fr) auto;
428
+ grid-template-areas: "toggle title actions";
429
+ align-items: center;
430
+ gap: 1rem;
431
+ }
432
+
433
+ .masthead-inner .sidebar-toggle {
434
+ grid-area: toggle;
435
+ position: static;
436
+ margin: 0;
437
+ justify-self: start;
438
+ align-self: center;
439
+ }
440
+
441
+ .masthead-title {
442
+ margin: 0;
443
+ display: flex;
444
+ flex-direction: column;
445
+ align-items: center;
446
+ text-align: center;
447
+ gap: 0.25rem;
448
+ grid-area: title;
449
+ justify-self: center;
450
+ }
451
+
452
+ .masthead-wordmark {
453
+ display: inline-block;
454
+ font-family: var(--font-wordmark);
455
+ font-size: clamp(2.2rem, 4.5vw, 3.6rem);
456
+ font-weight: 400;
457
+ line-height: 0.9;
458
+ letter-spacing: 0.02em;
459
+ color: var(--text-strong);
460
+ text-decoration: none;
461
+ }
462
+
463
+ .masthead-wordmark:hover,
464
+ .masthead-wordmark:focus {
465
+ color: var(--link);
466
+ text-decoration: none;
467
+ }
468
+
469
+ .masthead-byline {
470
+ font-size: 0.95rem;
471
+ font-weight: 600;
472
+ letter-spacing: 0.12em;
473
+ color: var(--muted);
474
+ }
475
+
476
+ .masthead-actions {
477
+ grid-area: actions;
478
+ justify-self: end;
479
+ display: inline-flex;
480
+ align-items: center;
481
+ gap: 0.6rem;
482
+ }
483
+
484
+ .icon-button {
485
+ display: inline-flex;
486
+ align-items: center;
487
+ justify-content: center;
488
+ position: relative;
489
+ width: 2.6rem;
490
+ height: 2.6rem;
491
+ padding: 0;
492
+ border: 1px solid var(--border);
493
+ background: var(--surface);
494
+ color: var(--text-strong);
495
+ border-radius: 50%;
496
+ font-size: 0.85rem;
497
+ font-weight: 600;
498
+ line-height: 1;
499
+ cursor: pointer;
500
+ transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
501
+ }
502
+
503
+ .icon-button:hover {
504
+ background: var(--surface-strong);
505
+ }
506
+
507
+ .icon-button:focus-visible {
508
+ outline: 2px solid var(--accent);
509
+ outline-offset: 3px;
510
+ }
511
+
512
+ .theme-toggle-label,
513
+ .sr-only {
514
+ position: absolute;
515
+ width: 1px;
516
+ height: 1px;
517
+ padding: 0;
518
+ margin: -1px;
519
+ overflow: hidden;
520
+ clip: rect(0, 0, 0, 0);
521
+ white-space: nowrap;
522
+ border: 0;
523
+ }
524
+
525
+ .icon-button .fa {
526
+ font-size: 1.15rem;
527
+ line-height: 1;
528
+ }
529
+
530
+ @media (max-width: 48em) {
531
+ .masthead-inner {
532
+ grid-template-columns: auto 1fr auto;
533
+ grid-template-areas:
534
+ "toggle . actions"
535
+ "title title title";
536
+ row-gap: 0.6rem;
537
+ }
538
+
539
+ .masthead-title {
540
+ justify-self: center;
541
+ }
542
+
543
+ .masthead-byline {
544
+ font-size: 0.85rem;
545
+ letter-spacing: 0.08em;
546
+ }
547
+
548
+ .masthead-actions {
549
+ justify-self: end;
550
+ }
551
+
552
+ .masthead-wordmark {
553
+ font-size: clamp(1.9rem, 7vw, 2.8rem);
554
+ }
555
+ }
556
+
557
+ @media (max-width: 30em) {
558
+ html {
559
+ font-size: 15px;
560
+ }
561
+ }
562
+
563
+ .search-overlay {
564
+ position: fixed;
565
+ inset: 0;
566
+ display: flex;
567
+ align-items: flex-start;
568
+ justify-content: center;
569
+ padding: 6rem 1rem 2rem;
570
+ background: rgba(15, 23, 42, 0.55);
571
+ opacity: 0;
572
+ visibility: hidden;
573
+ transition: opacity 0.2s ease, visibility 0.2s ease;
574
+ z-index: 200;
575
+ }
576
+
577
+ .theme-nord-light .search-overlay {
578
+ background: rgba(94, 129, 172, 0.2);
579
+ }
580
+
581
+ .search-overlay.is-open {
582
+ opacity: 1;
583
+ visibility: visible;
584
+ }
585
+
586
+ body.search-open {
587
+ overflow: hidden;
588
+ }
589
+
590
+ .search-dialog {
591
+ width: min(720px, 92vw);
592
+ background: var(--surface);
593
+ border: 1px solid var(--border);
594
+ border-radius: 18px;
595
+ box-shadow: var(--shadow-strong);
596
+ padding: 1.1rem;
597
+ }
598
+
599
+ .search-header {
600
+ display: flex;
601
+ align-items: center;
602
+ gap: 0.75rem;
603
+ }
604
+
605
+ .search-status {
606
+ margin-top: 0.75rem;
607
+ font-size: 0.9rem;
608
+ color: var(--muted);
609
+ display: flex;
610
+ align-items: center;
611
+ gap: 0.5rem;
612
+ }
613
+
614
+ .search-status.is-hidden {
615
+ display: none;
616
+ }
617
+
618
+ .search-status.is-loading::before {
619
+ content: "";
620
+ width: 0.85rem;
621
+ height: 0.85rem;
622
+ border-radius: 50%;
623
+ border: 2px solid var(--border);
624
+ border-top-color: var(--accent);
625
+ animation: search-spin 0.8s linear infinite;
626
+ }
627
+
628
+ .search-status.is-error {
629
+ color: var(--nord11);
630
+ }
631
+
632
+ .search-status a {
633
+ color: var(--link);
634
+ font-weight: 600;
635
+ }
636
+
637
+ .search-input {
638
+ flex: 1;
639
+ padding: 0.65rem 0.85rem;
640
+ border-radius: 12px;
641
+ border: 1px solid var(--border);
642
+ background: var(--bg-alt);
643
+ color: var(--text-strong);
644
+ font-size: 1rem;
645
+ font-family: var(--font-sans);
646
+ }
647
+
648
+ .search-input:focus-visible {
649
+ outline: 2px solid var(--accent);
650
+ outline-offset: 2px;
651
+ }
652
+
653
+ .search-close {
654
+ width: 2.4rem;
655
+ height: 2.4rem;
656
+ }
657
+
658
+ .search-results {
659
+ margin-top: 1rem;
660
+ max-height: 60vh;
661
+ overflow-y: auto;
662
+ display: grid;
663
+ gap: 0.75rem;
664
+ }
665
+
666
+ .search-count {
667
+ font-size: 0.9rem;
668
+ color: var(--muted);
669
+ }
670
+
671
+ .search-result {
672
+ display: block;
673
+ padding: 0.75rem 0.9rem;
674
+ border-radius: 12px;
675
+ border: 1px solid var(--border);
676
+ background: var(--surface-strong);
677
+ color: var(--text-strong);
678
+ text-decoration: none;
679
+ transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
680
+ }
681
+
682
+ .search-result:hover,
683
+ .search-result:focus {
684
+ border-color: var(--accent);
685
+ box-shadow: var(--shadow);
686
+ transform: translateY(-1px);
687
+ text-decoration: none;
688
+ }
689
+
690
+ .search-result-title {
691
+ font-weight: 700;
692
+ margin-bottom: 0.2rem;
693
+ }
694
+
695
+ .search-result-meta {
696
+ font-size: 0.85rem;
697
+ color: var(--muted);
698
+ margin-bottom: 0.35rem;
699
+ }
700
+
701
+ .search-result-snippet {
702
+ font-size: 0.92rem;
703
+ color: var(--text);
704
+ line-height: 1.4;
705
+ }
706
+
707
+ .search-empty {
708
+ margin: 0;
709
+ padding: 0.4rem 0.5rem;
710
+ color: var(--muted);
711
+ }
712
+
713
+ @keyframes search-spin {
714
+ to {
715
+ transform: rotate(360deg);
716
+ }
717
+ }
718
+
719
+ .sidebar-checkbox {
720
+ position: absolute;
721
+ opacity: 0;
722
+ user-select: none;
723
+ }
724
+
725
+ .sidebar {
726
+ position: fixed;
727
+ top: 0;
728
+ bottom: 0;
729
+ left: -14rem;
730
+ width: 14rem;
731
+ visibility: hidden;
732
+ overflow-y: auto;
733
+ font-family: var(--font-sans);
734
+ font-size: 0.9rem;
735
+ color: var(--sidebar-text);
736
+ background: var(--sidebar-bg);
737
+ transition: all 0.3s ease-in-out;
738
+ }
739
+
740
+ .sidebar a {
741
+ color: var(--sidebar-link);
742
+ }
743
+
744
+ .sidebar-item {
745
+ padding: 1rem;
746
+ }
747
+
748
+ .sidebar-item p:last-child {
749
+ margin-bottom: 0;
750
+ }
751
+
752
+ .sidebar-nav {
753
+ border-bottom: 1px solid var(--sidebar-border);
754
+ }
755
+
756
+ .sidebar-nav-item {
757
+ display: block;
758
+ padding: 0.5rem 1rem;
759
+ border-top: 1px solid var(--sidebar-border);
760
+ }
761
+
762
+ .sidebar-nav-item.sidebar-nav-action {
763
+ width: 100%;
764
+ text-align: left;
765
+ background: transparent;
766
+ border-left: none;
767
+ border-right: none;
768
+ border-bottom: none;
769
+ color: inherit;
770
+ font: inherit;
771
+ cursor: pointer;
772
+ }
773
+
774
+ .sidebar-nav-item.active,
775
+ .sidebar-nav-item:hover,
776
+ .sidebar-nav-item:focus {
777
+ text-decoration: none;
778
+ background: var(--sidebar-border);
779
+ color: var(--sidebar-link);
780
+ }
781
+
782
+ .sidebar-toggle {
783
+ position: relative;
784
+ display: inline-flex;
785
+ align-items: center;
786
+ justify-content: center;
787
+ width: 2.6rem;
788
+ height: 2.6rem;
789
+ padding: 0;
790
+ color: var(--text-strong);
791
+ background: var(--surface);
792
+ border: 1px solid var(--border);
793
+ border-radius: 50%;
794
+ cursor: pointer;
795
+ }
796
+
797
+ .sidebar-toggle::before {
798
+ content: "";
799
+ width: 24px;
800
+ height: 16px;
801
+ background-image:
802
+ linear-gradient(currentColor 0 0),
803
+ linear-gradient(currentColor 0 0),
804
+ linear-gradient(currentColor 0 0);
805
+ background-size: 24px 2px;
806
+ background-position: center top, center, center bottom;
807
+ background-repeat: no-repeat;
808
+ }
809
+
810
+ .sidebar-toggle:active,
811
+ #sidebar-checkbox:focus ~ .wrap .sidebar-toggle,
812
+ #sidebar-checkbox:checked ~ .wrap .sidebar-toggle {
813
+ background: var(--accent-strong);
814
+ border-color: var(--accent-strong);
815
+ color: var(--on-accent);
816
+ }
817
+
818
+ .sidebar-toggle:focus-visible {
819
+ outline: 2px solid var(--accent);
820
+ outline-offset: 3px;
821
+ }
822
+
823
+ .wrap,
824
+ .sidebar,
825
+ .sidebar-toggle {
826
+ backface-visibility: hidden;
827
+ transition: transform 0.3s ease-in-out;
828
+ }
829
+
830
+ #sidebar-checkbox:checked + .sidebar {
831
+ visibility: visible;
832
+ }
833
+
834
+ #sidebar-checkbox:checked ~ .sidebar,
835
+ #sidebar-checkbox:checked ~ .wrap {
836
+ transform: translateX(14rem);
837
+ }
838
+
839
+ @media print {
840
+ .sidebar-toggle {
841
+ display: none;
842
+ }
843
+ }
844
+
845
+ .page,
846
+ .post {
847
+ margin-bottom: 4rem;
848
+ }
849
+
850
+ .content .post,
851
+ .content .page {
852
+ max-width: 48rem;
853
+ margin-left: auto;
854
+ margin-right: auto;
855
+ font-family: var(--font-mono);
856
+ }
857
+
858
+ .page-title,
859
+ .post-title,
860
+ .post-title a {
861
+ color: var(--text-strong);
862
+ }
863
+
864
+ .page-title,
865
+ .post-title {
866
+ margin-top: 0;
867
+ }
868
+
869
+ .post-date {
870
+ display: block;
871
+ margin-top: -0.5rem;
872
+ margin-bottom: 1rem;
873
+ color: var(--muted);
874
+ }
875
+
876
+ .post-featured {
877
+ margin: 1rem 0 1.5rem;
878
+ }
879
+
880
+ .post-featured figcaption {
881
+ margin-top: 0.35rem;
882
+ font-size: 0.9rem;
883
+ color: var(--muted);
884
+ }
885
+
886
+ .post-categories,
887
+ .post-tags {
888
+ margin-top: 1rem;
889
+ max-width: 48rem;
890
+ margin-left: auto;
891
+ margin-right: auto;
892
+ font-size: 0.95rem;
893
+ }
894
+
895
+ .post-categories a,
896
+ .post-tags a {
897
+ display: inline-block;
898
+ margin: 0 0.35rem 0.35rem 0;
899
+ padding: 0.2rem 0.6rem;
900
+ border-radius: 999px;
901
+ background: var(--surface);
902
+ border: 1px solid var(--border);
903
+ color: var(--text);
904
+ }
905
+
906
+ .post-categories a:hover,
907
+ .post-tags a:hover {
908
+ background: var(--surface-strong);
909
+ text-decoration: none;
910
+ }
911
+
912
+ /* Webcmd page */
913
+ .webcmd {
914
+ max-width: 56rem;
915
+ margin: 0 auto 4rem;
916
+ }
917
+
918
+ .webcmd-shell {
919
+ background: var(--surface);
920
+ border: 1px solid var(--border);
921
+ border-radius: 18px;
922
+ box-shadow: var(--shadow);
923
+ padding: 2rem;
924
+ }
925
+
926
+ .webcmd-header {
927
+ display: flex;
928
+ flex-direction: column;
929
+ gap: 1rem;
930
+ margin-bottom: 1.5rem;
931
+ }
932
+
933
+ .webcmd-kicker {
934
+ margin: 0;
935
+ font-size: 0.75rem;
936
+ letter-spacing: 0.18em;
937
+ text-transform: uppercase;
938
+ color: var(--muted);
939
+ font-weight: 700;
940
+ }
941
+
942
+ .webcmd-title {
943
+ margin: 0.25rem 0 0;
944
+ font-size: clamp(1.4rem, 3.2vw, 2.2rem);
945
+ }
946
+
947
+ .webcmd-subtitle {
948
+ margin: 0.35rem 0 0;
949
+ color: var(--muted);
950
+ max-width: 36rem;
951
+ }
952
+
953
+
954
+ .webcmd-terminal {
955
+ padding: 1.25rem;
956
+ border-radius: 14px;
957
+ border: 1px solid var(--border);
958
+ background: var(--bg-alt);
959
+ }
960
+
961
+ .webcmd-form {
962
+ margin: 0;
963
+ }
964
+
965
+ .webcmd-input {
966
+ display: flex;
967
+ align-items: center;
968
+ gap: 0.6rem;
969
+ padding: 0.6rem 0.8rem;
970
+ border-radius: 12px;
971
+ border: 1px solid var(--border);
972
+ background: var(--surface);
973
+ }
974
+
975
+ .webcmd-input:focus-within {
976
+ outline: 2px solid var(--accent);
977
+ outline-offset: 2px;
978
+ }
979
+
980
+ .webcmd-prompt {
981
+ font-family: var(--font-mono);
982
+ font-weight: 700;
983
+ color: var(--accent-strong);
984
+ }
985
+
986
+ .webcmd-input input {
987
+ flex: 1;
988
+ border: none;
989
+ background: transparent;
990
+ color: var(--text-strong);
991
+ font-family: var(--font-mono);
992
+ font-size: 1rem;
993
+ margin: 0;
994
+ padding: 0;
995
+ }
996
+
997
+ .webcmd-input input:focus {
998
+ outline: none;
999
+ }
1000
+
1001
+ .webcmd-hint {
1002
+ margin: 0.75rem 0 0;
1003
+ color: var(--muted);
1004
+ font-size: 0.95rem;
1005
+ }
1006
+
1007
+ .webcmd-command {
1008
+ display: inline-block;
1009
+ font-family: var(--font-mono);
1010
+ padding: 0.1rem 0.35rem;
1011
+ border-radius: 6px;
1012
+ border: 1px solid var(--border);
1013
+ background: var(--surface);
1014
+ color: var(--text-strong);
1015
+ }
1016
+
1017
+ .webcmd-output {
1018
+ margin-top: 1rem;
1019
+ font-family: var(--font-mono);
1020
+ color: var(--text-strong);
1021
+ line-height: 1.6;
1022
+ word-break: break-word;
1023
+ }
1024
+
1025
+ .webcmd-output a {
1026
+ font-weight: 600;
1027
+ }
1028
+
1029
+ .webcmd-output .snippet {
1030
+ color: var(--muted);
1031
+ display: block;
1032
+ margin-left: 1.5rem;
1033
+ }
1034
+
1035
+ .webcmd-error {
1036
+ margin-top: 0.75rem;
1037
+ color: var(--nord11);
1038
+ font-family: var(--font-mono);
1039
+ }
1040
+
1041
+ .webcmd-help {
1042
+ margin-top: 1.25rem;
1043
+ }
1044
+
1045
+ .webcmd-help-panel {
1046
+ margin-top: 0.75rem;
1047
+ padding: 0.75rem 1rem;
1048
+ border-radius: 12px;
1049
+ border: 1px solid var(--border);
1050
+ background: var(--surface);
1051
+ overflow-x: auto;
1052
+ }
1053
+
1054
+ .webcmd-help-grid {
1055
+ column-count: 1;
1056
+ column-gap: 1.5rem;
1057
+ }
1058
+
1059
+ .webcmd-help-block {
1060
+ display: grid;
1061
+ gap: 0.5rem;
1062
+ break-inside: avoid;
1063
+ margin-bottom: 1rem;
1064
+ }
1065
+
1066
+ .webcmd-help-heading {
1067
+ font-size: 0.8rem;
1068
+ letter-spacing: 0.12em;
1069
+ text-transform: uppercase;
1070
+ font-weight: 700;
1071
+ color: var(--text-strong);
1072
+ }
1073
+
1074
+ .webcmd-help-list {
1075
+ list-style: none;
1076
+ margin: 0;
1077
+ padding: 0;
1078
+ display: grid;
1079
+ gap: 0.35rem;
1080
+ }
1081
+
1082
+ .webcmd-help-list li {
1083
+ display: grid;
1084
+ grid-template-columns: minmax(2.5rem, 3.8rem) 1fr;
1085
+ gap: 0.6rem;
1086
+ align-items: start;
1087
+ }
1088
+
1089
+ .webcmd-help-key {
1090
+ font-family: var(--font-mono);
1091
+ font-weight: 700;
1092
+ color: var(--text-strong);
1093
+ }
1094
+
1095
+ .webcmd-help-desc {
1096
+ color: var(--text);
1097
+ }
1098
+
1099
+ .webcmd-footer {
1100
+ margin-top: 1.5rem;
1101
+ color: var(--muted);
1102
+ font-size: 0.95rem;
1103
+ }
1104
+
1105
+ .webcmd-footer-text {
1106
+ margin: 0;
1107
+ }
1108
+
1109
+ @media (min-width: 48em) {
1110
+ .webcmd-header {
1111
+ flex-direction: row;
1112
+ align-items: center;
1113
+ justify-content: space-between;
1114
+ }
1115
+
1116
+ .webcmd-help-list li {
1117
+ grid-template-columns: minmax(2.8rem, 4rem) 1fr;
1118
+ }
1119
+
1120
+ .webcmd-help-grid {
1121
+ column-count: 2;
1122
+ }
1123
+ }
1124
+
1125
+ .related {
1126
+ padding-top: 2rem;
1127
+ padding-bottom: 2rem;
1128
+ border-top: 1px solid var(--border);
1129
+ max-width: 48rem;
1130
+ margin-left: auto;
1131
+ margin-right: auto;
1132
+ }
1133
+
1134
+ .related-posts {
1135
+ list-style: none;
1136
+ padding-left: 0;
1137
+ margin: 0;
1138
+ }
1139
+
1140
+ .related-posts h3 {
1141
+ margin-top: 0;
1142
+ }
1143
+
1144
+ .related-posts li {
1145
+ margin-bottom: 0.6rem;
1146
+ }
1147
+
1148
+ .related-posts li small {
1149
+ font-size: 0.8rem;
1150
+ color: var(--muted);
1151
+ }
1152
+
1153
+ .post-list {
1154
+ list-style: none;
1155
+ padding-left: 0;
1156
+ margin: 0;
1157
+ }
1158
+
1159
+ .post-list li {
1160
+ margin-bottom: 0.5rem;
1161
+ }
1162
+
1163
+ .post-list-date {
1164
+ display: inline-block;
1165
+ margin-right: 0.5rem;
1166
+ font-size: 0.9rem;
1167
+ color: var(--muted);
1168
+ }
1169
+
1170
+ .post-grid {
1171
+ display: grid;
1172
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1173
+ gap: 1.5rem;
1174
+ margin: 1rem 0 2rem;
1175
+ }
1176
+
1177
+ .post-card {
1178
+ background: var(--surface);
1179
+ border: 1px solid var(--border);
1180
+ border-radius: 12px;
1181
+ box-shadow: var(--shadow);
1182
+ overflow: hidden;
1183
+ display: flex;
1184
+ flex-direction: column;
1185
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
1186
+ }
1187
+
1188
+ .post-card:hover {
1189
+ transform: translateY(-2px);
1190
+ box-shadow: var(--shadow-strong);
1191
+ }
1192
+
1193
+ .card-media {
1194
+ display: block;
1195
+ position: relative;
1196
+ padding-top: 62%;
1197
+ background: linear-gradient(135deg, var(--nord9), var(--nord10));
1198
+ overflow: hidden;
1199
+ }
1200
+
1201
+ .card-media img {
1202
+ position: absolute;
1203
+ inset: 0;
1204
+ width: 100%;
1205
+ height: 100%;
1206
+ object-fit: cover;
1207
+ }
1208
+
1209
+ .card-thumb-placeholder {
1210
+ position: absolute;
1211
+ inset: 0;
1212
+ display: flex;
1213
+ align-items: center;
1214
+ justify-content: center;
1215
+ color: var(--on-accent);
1216
+ font-size: 3rem;
1217
+ font-weight: 700;
1218
+ letter-spacing: 1px;
1219
+ }
1220
+
1221
+ .card-body {
1222
+ padding: 1rem 1.1rem 1.25rem;
1223
+ display: flex;
1224
+ flex-direction: column;
1225
+ flex: 1;
1226
+ }
1227
+
1228
+ .card-meta {
1229
+ display: flex;
1230
+ justify-content: space-between;
1231
+ align-items: center;
1232
+ font-size: 0.95rem;
1233
+ color: var(--muted);
1234
+ margin-bottom: 0.25rem;
1235
+ }
1236
+
1237
+ .card-title {
1238
+ margin: 0.25rem 0 0.35rem;
1239
+ font-size: 1.2rem;
1240
+ line-height: 1.3;
1241
+ }
1242
+
1243
+ .card-title a {
1244
+ color: var(--text-strong);
1245
+ }
1246
+
1247
+ .card-excerpt {
1248
+ margin: 0 0 0.65rem;
1249
+ color: var(--text);
1250
+ line-height: 1.45;
1251
+ font-size: 0.98rem;
1252
+ flex: 1;
1253
+ }
1254
+
1255
+ .card-author {
1256
+ display: flex;
1257
+ align-items: center;
1258
+ gap: 0.5rem;
1259
+ margin-top: auto;
1260
+ }
1261
+
1262
+ .author-avatar {
1263
+ width: 36px;
1264
+ height: 36px;
1265
+ border-radius: 50%;
1266
+ background: var(--accent);
1267
+ color: var(--bg);
1268
+ display: inline-flex;
1269
+ align-items: center;
1270
+ justify-content: center;
1271
+ font-weight: 700;
1272
+ }
1273
+
1274
+ .author-name {
1275
+ color: var(--text-strong);
1276
+ font-weight: 600;
1277
+ }
1278
+
1279
+ .pager {
1280
+ display: flex;
1281
+ flex-wrap: wrap;
1282
+ gap: 0.5rem;
1283
+ justify-content: center;
1284
+ margin: 1.5rem 0;
1285
+ }
1286
+
1287
+ .page-btn {
1288
+ display: inline-flex;
1289
+ align-items: center;
1290
+ justify-content: center;
1291
+ min-width: 38px;
1292
+ padding: 0.4rem 0.7rem;
1293
+ border-radius: 9px;
1294
+ border: 1px solid var(--border);
1295
+ background: var(--surface);
1296
+ color: var(--text-strong);
1297
+ font-size: 0.95rem;
1298
+ font-weight: 600;
1299
+ transition: all 0.15s ease;
1300
+ }
1301
+
1302
+ .page-btn:hover,
1303
+ .page-btn:focus {
1304
+ background: var(--surface-strong);
1305
+ text-decoration: none;
1306
+ }
1307
+
1308
+ .page-btn.active {
1309
+ background: var(--accent-strong);
1310
+ border-color: var(--accent-strong);
1311
+ color: var(--on-accent);
1312
+ }
1313
+
1314
+ .page-btn.disabled {
1315
+ background: var(--surface);
1316
+ color: var(--muted);
1317
+ border-color: var(--border);
1318
+ cursor: not-allowed;
1319
+ }
1320
+
1321
+ .page-ellipsis {
1322
+ display: inline-flex;
1323
+ align-items: center;
1324
+ justify-content: center;
1325
+ min-width: 18px;
1326
+ color: var(--muted);
1327
+ font-weight: 600;
1328
+ }
1329
+
1330
+ .collection-list,
1331
+ .category-posts {
1332
+ list-style: none;
1333
+ padding-left: 0;
1334
+ margin-left: 0;
1335
+ }
1336
+
1337
+ .collection-item {
1338
+ margin-bottom: 1.2rem;
1339
+ }
1340
+
1341
+ .collection-item-date {
1342
+ font-size: 0.9rem;
1343
+ color: var(--muted);
1344
+ line-height: 1.2;
1345
+ }
1346
+
1347
+ .collection-item-title a {
1348
+ display: inline-block;
1349
+ margin-top: 0.1rem;
1350
+ }
1351
+
1352
+ .category-block {
1353
+ margin-bottom: 1.25rem;
1354
+ }
1355
+
1356
+ .category-block summary {
1357
+ cursor: pointer;
1358
+ list-style: none;
1359
+ padding: 0.55rem 0.85rem;
1360
+ border-radius: 12px;
1361
+ background: var(--surface);
1362
+ border: 1px solid var(--border);
1363
+ font-weight: 600;
1364
+ }
1365
+
1366
+ .category-block summary::marker {
1367
+ content: "";
1368
+ }
1369
+
1370
+ .category-block summary::-webkit-details-marker {
1371
+ display: none;
1372
+ }
1373
+
1374
+ .category-count {
1375
+ color: var(--muted);
1376
+ font-weight: 500;
1377
+ margin-left: 0.25rem;
1378
+ }
1379
+
1380
+ .category-posts {
1381
+ margin: 0.5rem 0 0;
1382
+ }
1383
+
1384
+ .category-posts li {
1385
+ display: flex;
1386
+ align-items: baseline;
1387
+ margin: 0.2rem 0;
1388
+ }
1389
+
1390
+ .category-posts .post-list-date {
1391
+ white-space: nowrap;
1392
+ margin-right: 0.5rem;
1393
+ font-size: 0.9rem;
1394
+ color: var(--muted);
1395
+ }
1396
+
1397
+ .tag-box {
1398
+ list-style: none;
1399
+ padding-left: 0;
1400
+ margin: 0 0 1.5rem;
1401
+ display: flex;
1402
+ flex-wrap: wrap;
1403
+ gap: 0.5rem;
1404
+ }
1405
+
1406
+ .tag-box.inline {
1407
+ display: flex;
1408
+ }
1409
+
1410
+ .tag-box a {
1411
+ display: inline-flex;
1412
+ align-items: center;
1413
+ gap: 0.35rem;
1414
+ padding: 0.2rem 0.6rem;
1415
+ border-radius: 999px;
1416
+ border: 1px solid var(--border);
1417
+ background: var(--surface);
1418
+ color: var(--text);
1419
+ }
1420
+
1421
+ .tag-box a:hover {
1422
+ background: var(--surface-strong);
1423
+ text-decoration: none;
1424
+ }
1425
+
1426
+ .archive-controls {
1427
+ display: flex;
1428
+ align-items: center;
1429
+ gap: 0.5rem;
1430
+ margin: 0.5rem 0 1.5rem;
1431
+ }
1432
+
1433
+ .archive-controls label {
1434
+ font-size: 0.9rem;
1435
+ color: var(--muted);
1436
+ }
1437
+
1438
+ .archive-sort {
1439
+ font-size: 0.9rem;
1440
+ padding: 0.2rem 0.4rem;
1441
+ border: 1px solid var(--border);
1442
+ border-radius: 6px;
1443
+ background: var(--surface);
1444
+ color: var(--text-strong);
1445
+ }
1446
+
1447
+ .archive-year {
1448
+ margin-bottom: 1.5rem;
1449
+ }
1450
+
1451
+ .archive-year-summary {
1452
+ cursor: pointer;
1453
+ list-style: none;
1454
+ display: flex;
1455
+ align-items: center;
1456
+ gap: 0.5rem;
1457
+ padding: 0.7rem 1rem;
1458
+ border-radius: 999px;
1459
+ background: var(--surface);
1460
+ border: 1px solid var(--border);
1461
+ transition: background 0.2s ease, box-shadow 0.2s ease;
1462
+ }
1463
+
1464
+ .archive-year-summary::marker,
1465
+ .archive-post-summary::marker {
1466
+ content: "";
1467
+ }
1468
+
1469
+ .archive-year-summary::-webkit-details-marker,
1470
+ .archive-post-summary::-webkit-details-marker {
1471
+ display: none;
1472
+ }
1473
+
1474
+ .archive-year-summary::after {
1475
+ content: "";
1476
+ margin-left: auto;
1477
+ width: 0.55rem;
1478
+ height: 0.55rem;
1479
+ border-right: 2px solid var(--accent);
1480
+ border-bottom: 2px solid var(--accent);
1481
+ transform: rotate(45deg);
1482
+ transition: transform 0.2s ease;
1483
+ }
1484
+
1485
+ .archive-year-summary:focus-visible,
1486
+ .archive-post-summary:focus-visible {
1487
+ outline: 2px solid var(--accent);
1488
+ outline-offset: 3px;
1489
+ }
1490
+
1491
+ .archive-year-title {
1492
+ font-size: 1.35rem;
1493
+ font-weight: 600;
1494
+ color: var(--text-strong);
1495
+ }
1496
+
1497
+ .archive-year-count {
1498
+ font-size: 0.75em;
1499
+ font-weight: 400;
1500
+ color: var(--muted);
1501
+ margin-left: 0.25rem;
1502
+ }
1503
+
1504
+ .archive-year[open] > .archive-year-summary {
1505
+ background: var(--surface-strong);
1506
+ box-shadow: 0 6px 16px rgba(46, 52, 64, 0.08);
1507
+ }
1508
+
1509
+ .archive-year[open] > .archive-year-summary::after {
1510
+ transform: rotate(-135deg);
1511
+ }
1512
+
1513
+ .archive-posts {
1514
+ list-style: none;
1515
+ padding-left: 0;
1516
+ margin: 0.75rem 0 0;
1517
+ }
1518
+
1519
+ .archive-post-details {
1520
+ margin: 0.5rem 0;
1521
+ }
1522
+
1523
+ .archive-post-summary {
1524
+ cursor: pointer;
1525
+ list-style: none;
1526
+ display: flex;
1527
+ align-items: center;
1528
+ gap: 0.5rem;
1529
+ padding: 0.55rem 0.85rem;
1530
+ border-radius: 14px;
1531
+ background: var(--surface);
1532
+ border: 1px solid var(--border);
1533
+ transition: background 0.2s ease, border-color 0.2s ease;
1534
+ }
1535
+
1536
+ .archive-post-summary::after {
1537
+ content: "";
1538
+ margin-left: auto;
1539
+ width: 0.5rem;
1540
+ height: 0.5rem;
1541
+ border-right: 2px solid var(--accent);
1542
+ border-bottom: 2px solid var(--accent);
1543
+ transform: rotate(45deg);
1544
+ transition: transform 0.2s ease;
1545
+ }
1546
+
1547
+ .archive-post-details[open] > .archive-post-summary {
1548
+ background: var(--surface-strong);
1549
+ border-color: var(--border);
1550
+ }
1551
+
1552
+ .archive-post-details[open] > .archive-post-summary::after {
1553
+ transform: rotate(-135deg);
1554
+ }
1555
+
1556
+ .archive-post-meta {
1557
+ display: flex;
1558
+ flex-wrap: wrap;
1559
+ align-items: baseline;
1560
+ gap: 0.5rem;
1561
+ flex: 1;
1562
+ min-width: 0;
1563
+ }
1564
+
1565
+ .archive-post-title {
1566
+ color: var(--text-strong);
1567
+ font-weight: 600;
1568
+ text-decoration: none;
1569
+ }
1570
+
1571
+ .archive-post-title:hover {
1572
+ color: var(--link-hover);
1573
+ text-decoration: none;
1574
+ }
1575
+
1576
+ .archive-post-description {
1577
+ margin: 0.4rem 0 0.6rem 1.2rem;
1578
+ padding-left: 0.8rem;
1579
+ border-left: 2px solid var(--border);
1580
+ color: var(--muted);
1581
+ font-size: 0.95rem;
1582
+ }
1583
+
1584
+ .site-footer {
1585
+ margin-top: 3rem;
1586
+ padding: 2.5rem 0 2rem;
1587
+ border-top: 1px solid var(--border);
1588
+ background: var(--footer-bg);
1589
+ }
1590
+
1591
+ .footer-inner {
1592
+ display: grid;
1593
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1594
+ gap: 2rem;
1595
+ align-items: start;
1596
+ }
1597
+
1598
+ .footer-brand {
1599
+ display: flex;
1600
+ gap: 0.85rem;
1601
+ align-items: flex-start;
1602
+ }
1603
+
1604
+ .footer-avatar {
1605
+ width: 52px;
1606
+ height: 52px;
1607
+ border-radius: 14px;
1608
+ background: linear-gradient(135deg, var(--nord9), var(--nord10));
1609
+ color: var(--on-accent);
1610
+ display: inline-flex;
1611
+ align-items: center;
1612
+ justify-content: center;
1613
+ font-weight: 800;
1614
+ font-size: 1.2rem;
1615
+ overflow: hidden;
1616
+ }
1617
+
1618
+ .footer-avatar img {
1619
+ width: 100%;
1620
+ height: 100%;
1621
+ object-fit: contain;
1622
+ margin: 0;
1623
+ border-radius: inherit;
1624
+ display: block;
1625
+ }
1626
+
1627
+ .footer-title {
1628
+ font-weight: 800;
1629
+ font-size: 1.15rem;
1630
+ color: var(--text-strong);
1631
+ }
1632
+
1633
+ .footer-subtitle {
1634
+ color: var(--muted);
1635
+ font-weight: 600;
1636
+ margin-bottom: 0.35rem;
1637
+ }
1638
+
1639
+ .footer-description {
1640
+ margin: 0.15rem 0 0.5rem;
1641
+ color: var(--text);
1642
+ line-height: 1.5;
1643
+ }
1644
+
1645
+ .footer-links {
1646
+ display: grid;
1647
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
1648
+ gap: 1rem;
1649
+ }
1650
+
1651
+ .footer-column {
1652
+ display: flex;
1653
+ flex-direction: column;
1654
+ gap: 0.25rem;
1655
+ }
1656
+
1657
+ .footer-heading {
1658
+ font-weight: 800;
1659
+ color: var(--text-strong);
1660
+ margin-bottom: 0.35rem;
1661
+ }
1662
+
1663
+ .footer-column a,
1664
+ .footer-subscribe a {
1665
+ color: var(--text-strong);
1666
+ }
1667
+
1668
+ .footer-subscribe {
1669
+ display: flex;
1670
+ flex-direction: column;
1671
+ }
1672
+
1673
+ .footer-cta {
1674
+ display: flex;
1675
+ flex-wrap: wrap;
1676
+ gap: 0.5rem;
1677
+ }
1678
+
1679
+ .footer-button {
1680
+ display: inline-flex;
1681
+ align-items: center;
1682
+ justify-content: center;
1683
+ gap: 0.35rem;
1684
+ padding: 0.65rem 1rem;
1685
+ border-radius: 12px;
1686
+ font-weight: 700;
1687
+ background: var(--accent-strong);
1688
+ color: var(--on-accent);
1689
+ border: 1px solid var(--accent-strong);
1690
+ }
1691
+
1692
+ .footer-button.ghost {
1693
+ background: transparent;
1694
+ color: var(--accent-strong);
1695
+ border-color: var(--accent-strong);
1696
+ }
1697
+
1698
+ .footer-meta {
1699
+ margin-top: 1.25rem;
1700
+ font-size: 0.95rem;
1701
+ color: var(--muted);
1702
+ }
1703
+
1704
+ .footer-meta-secondary {
1705
+ display: block;
1706
+ font-size: 0.85rem;
1707
+ }
1708
+
1709
+ .footer-meta-secondary a {
1710
+ color: inherit;
1711
+ }
1712
+
1713
+ .alignleft {
1714
+ float: left;
1715
+ margin: 0.25rem 1rem 0.75rem 0;
1716
+ }
1717
+
1718
+ .alignright {
1719
+ float: right;
1720
+ margin: 0.25rem 0 0.75rem 1rem;
1721
+ }
1722
+
1723
+ .aligncenter {
1724
+ display: block;
1725
+ margin: 0.5rem auto 1rem;
1726
+ }
1727
+
1728
+ .wp-caption {
1729
+ max-width: 100%;
1730
+ text-align: center;
1731
+ background: var(--surface);
1732
+ border: 1px solid var(--border);
1733
+ border-radius: 6px;
1734
+ padding: 0.5rem;
1735
+ }
1736
+
1737
+ .wp-caption-text,
1738
+ .wp-caption-dd {
1739
+ margin: 0.4rem 0 0;
1740
+ font-size: 0.9rem;
1741
+ color: var(--muted);
1742
+ }
1743
+
1744
+ .pull-quote {
1745
+ font-size: 1.1rem;
1746
+ font-style: italic;
1747
+ padding: 1rem 1.25rem;
1748
+ margin: 1.5rem 0;
1749
+ border-left: 4px solid var(--accent);
1750
+ background: var(--surface);
1751
+ }
1752
+
1753
+ .org-src-container {
1754
+ margin: 1rem 0;
1755
+ }
1756
+
1757
+ .org-ul {
1758
+ margin: 0 0 1rem;
1759
+ }