@olegkoval/agent-skills 1.38.3 → 1.40.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.
Files changed (29) hide show
  1. package/.github/copilot-instructions.md +1 -0
  2. package/.github/prompts/veto-routing.prompt.md +65 -0
  3. package/.kiro/steering/veto-routing.md +64 -0
  4. package/.windsurf/rules/veto-routing.md +63 -0
  5. package/README.md +3 -2
  6. package/adapters/claude/olko-skill-meta/skills/veto-routing/SKILL.md +76 -0
  7. package/adapters/codex/olko-skill-meta/README.md +1 -0
  8. package/adapters/cursor/olko-skill-meta/skills/veto-routing/SKILL.md +76 -0
  9. package/adapters/grok/olko-skill-meta/skills/veto-routing/SKILL.md +76 -0
  10. package/catalog/skills.json +23 -0
  11. package/package.json +1 -1
  12. package/plugins/olko-apple-kit/.claude-plugin/plugin.json +1 -1
  13. package/plugins/olko-creative/.claude-plugin/plugin.json +1 -1
  14. package/plugins/olko-garmin-kit/.claude-plugin/plugin.json +1 -1
  15. package/plugins/olko-git-tools/.claude-plugin/plugin.json +1 -1
  16. package/plugins/olko-github-pr/.claude-plugin/plugin.json +1 -1
  17. package/plugins/olko-obsidian/.claude-plugin/plugin.json +1 -1
  18. package/plugins/olko-product/.claude-plugin/plugin.json +1 -1
  19. package/plugins/olko-reflection/.claude-plugin/plugin.json +1 -1
  20. package/plugins/olko-release/.claude-plugin/plugin.json +1 -1
  21. package/plugins/olko-skill-meta/.claude-plugin/plugin.json +1 -1
  22. package/plugins/olko-skill-meta/skills/veto-routing/SKILL.md +75 -0
  23. package/plugins/olko-web-ops/.claude-plugin/plugin.json +1 -1
  24. package/scripts/lib/catalog.mjs +1 -1
  25. package/site/assets/catalog.css +1064 -0
  26. package/site/assets/catalog.js +232 -0
  27. package/site/build.mjs +218 -166
  28. package/site/assets/paperbag.css +0 -707
  29. package/site/assets/paperbag.js +0 -218
@@ -0,0 +1,1064 @@
1
+ :root {
2
+ --canvas: #f5f7f4;
3
+ --surface: #ffffff;
4
+ --surface-soft: #eef2ee;
5
+ --ink: #171b18;
6
+ --ink-soft: #5c665f;
7
+ --ink-faint: #7a837d;
8
+ --line: #dce2dc;
9
+ --line-strong: #c4cec6;
10
+ --accent: #365b4a;
11
+ --accent-deep: #294638;
12
+ --accent-soft: #e4eee7;
13
+ --focus: #1c66c2;
14
+ --radius: 14px;
15
+ --display: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
16
+ --body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
17
+ --mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
18
+ }
19
+
20
+ *,
21
+ *::before,
22
+ *::after {
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ html {
27
+ scroll-behavior: smooth;
28
+ -webkit-text-size-adjust: 100%;
29
+ }
30
+
31
+ body {
32
+ margin: 0;
33
+ min-width: 320px;
34
+ min-height: 100vh;
35
+ color: var(--ink);
36
+ background: var(--canvas);
37
+ font-family: var(--body);
38
+ font-size: 16px;
39
+ line-height: 1.55;
40
+ }
41
+
42
+ body::before {
43
+ content: "";
44
+ position: fixed;
45
+ inset: 0 0 auto;
46
+ z-index: 20;
47
+ height: 4px;
48
+ background: var(--accent);
49
+ }
50
+
51
+ a {
52
+ color: inherit;
53
+ text-decoration-color: var(--line-strong);
54
+ text-decoration-thickness: 1px;
55
+ text-underline-offset: 4px;
56
+ }
57
+
58
+ a:hover {
59
+ text-decoration-color: var(--accent);
60
+ }
61
+
62
+ a:focus-visible,
63
+ button:focus-visible,
64
+ input:focus-visible,
65
+ summary:focus-visible {
66
+ outline: 3px solid var(--focus);
67
+ outline-offset: 3px;
68
+ }
69
+
70
+ button,
71
+ input {
72
+ font: inherit;
73
+ }
74
+
75
+ code,
76
+ pre {
77
+ font-family: var(--mono);
78
+ }
79
+
80
+ .skip-link {
81
+ position: fixed;
82
+ top: 12px;
83
+ left: 12px;
84
+ z-index: 100;
85
+ padding: 9px 12px;
86
+ border-radius: 7px;
87
+ background: var(--ink);
88
+ color: white;
89
+ transform: translateY(-160%);
90
+ }
91
+
92
+ .skip-link:focus {
93
+ transform: translateY(0);
94
+ }
95
+
96
+ .shell {
97
+ width: min(1180px, calc(100% - 40px));
98
+ margin: 0 auto;
99
+ }
100
+
101
+ .masthead {
102
+ display: flex;
103
+ min-height: 78px;
104
+ align-items: center;
105
+ justify-content: space-between;
106
+ gap: 24px;
107
+ border-bottom: 1px solid var(--line);
108
+ }
109
+
110
+ .identity,
111
+ .masthead nav,
112
+ .colophon div {
113
+ display: flex;
114
+ align-items: center;
115
+ }
116
+
117
+ .identity {
118
+ gap: 14px;
119
+ }
120
+
121
+ .wordmark {
122
+ display: inline-flex;
123
+ align-items: center;
124
+ gap: 9px;
125
+ font-family: var(--display);
126
+ font-size: 18px;
127
+ font-weight: 650;
128
+ letter-spacing: -0.025em;
129
+ text-decoration: none;
130
+ }
131
+
132
+ .wordmark > span {
133
+ display: grid;
134
+ width: 30px;
135
+ height: 30px;
136
+ place-items: center;
137
+ border-radius: 9px;
138
+ background: var(--accent);
139
+ color: white;
140
+ font-size: 12px;
141
+ font-weight: 700;
142
+ letter-spacing: -0.04em;
143
+ }
144
+
145
+ .maker {
146
+ padding-left: 14px;
147
+ border-left: 1px solid var(--line-strong);
148
+ color: var(--ink-soft);
149
+ font-size: 13px;
150
+ text-decoration: none;
151
+ }
152
+
153
+ .maker:hover,
154
+ .masthead nav a:hover {
155
+ color: var(--accent);
156
+ }
157
+
158
+ .masthead nav {
159
+ gap: 24px;
160
+ font-size: 13px;
161
+ font-weight: 600;
162
+ }
163
+
164
+ .masthead nav a {
165
+ text-decoration: none;
166
+ }
167
+
168
+ .hero {
169
+ display: grid;
170
+ grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
171
+ gap: clamp(48px, 8vw, 112px);
172
+ align-items: center;
173
+ padding: clamp(72px, 10vw, 132px) 0 clamp(80px, 11vw, 144px);
174
+ }
175
+
176
+ .hero-copy,
177
+ .hero-command,
178
+ .section-heading > *,
179
+ .plugin-card,
180
+ .skill-card,
181
+ .install-grid > article,
182
+ .command {
183
+ min-width: 0;
184
+ }
185
+
186
+ .eyebrow {
187
+ margin: 0 0 14px;
188
+ color: var(--accent);
189
+ font-size: 12px;
190
+ font-weight: 700;
191
+ letter-spacing: 0.11em;
192
+ text-transform: uppercase;
193
+ }
194
+
195
+ .hero h1,
196
+ .detail-head h1,
197
+ .not-found h1 {
198
+ margin: 0;
199
+ font-family: var(--display);
200
+ font-size: clamp(52px, 8vw, 94px);
201
+ font-weight: 600;
202
+ letter-spacing: -0.055em;
203
+ line-height: 0.98;
204
+ }
205
+
206
+ .lede {
207
+ max-width: 65ch;
208
+ margin: 28px 0 0;
209
+ color: var(--ink-soft);
210
+ font-size: clamp(17px, 2vw, 20px);
211
+ line-height: 1.55;
212
+ }
213
+
214
+ .hero-actions {
215
+ display: flex;
216
+ flex-wrap: wrap;
217
+ gap: 10px;
218
+ margin-top: 32px;
219
+ }
220
+
221
+ .button {
222
+ display: inline-flex;
223
+ min-height: 44px;
224
+ align-items: center;
225
+ justify-content: center;
226
+ padding: 10px 16px;
227
+ border: 1px solid transparent;
228
+ border-radius: 10px;
229
+ font-weight: 650;
230
+ text-decoration: none;
231
+ cursor: pointer;
232
+ }
233
+
234
+ .button-primary {
235
+ border-color: var(--accent);
236
+ background: var(--accent);
237
+ color: white;
238
+ }
239
+
240
+ .button-primary:hover {
241
+ border-color: var(--accent-deep);
242
+ background: var(--accent-deep);
243
+ }
244
+
245
+ .button-secondary {
246
+ border-color: var(--line-strong);
247
+ background: var(--surface);
248
+ color: var(--ink);
249
+ }
250
+
251
+ .button-secondary:hover {
252
+ border-color: var(--accent);
253
+ color: var(--accent);
254
+ }
255
+
256
+ .facts {
257
+ margin: 26px 0 0;
258
+ color: var(--ink-faint);
259
+ font-size: 13px;
260
+ }
261
+
262
+ .facts span {
263
+ padding: 0 7px;
264
+ color: var(--line-strong);
265
+ }
266
+
267
+ .facts strong {
268
+ color: var(--ink);
269
+ }
270
+
271
+ .hero-command {
272
+ padding: clamp(24px, 4vw, 36px);
273
+ border: 1px solid var(--line);
274
+ border-radius: 20px;
275
+ background: var(--surface);
276
+ }
277
+
278
+ .hero-command h2 {
279
+ margin: 0 0 24px;
280
+ font-family: var(--display);
281
+ font-size: 30px;
282
+ font-weight: 600;
283
+ letter-spacing: -0.035em;
284
+ line-height: 1.12;
285
+ }
286
+
287
+ .hero-command > p:last-child {
288
+ margin: 20px 0 0;
289
+ color: var(--ink-soft);
290
+ font-size: 14px;
291
+ }
292
+
293
+ .section {
294
+ padding: clamp(72px, 9vw, 112px) 0;
295
+ border-top: 1px solid var(--line);
296
+ scroll-margin-top: 24px;
297
+ }
298
+
299
+ .section-heading {
300
+ display: grid;
301
+ grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.65fr);
302
+ gap: 48px;
303
+ align-items: end;
304
+ margin-bottom: 38px;
305
+ }
306
+
307
+ .section-heading h2 {
308
+ max-width: 15ch;
309
+ margin: 0;
310
+ font-family: var(--display);
311
+ font-size: clamp(38px, 5vw, 62px);
312
+ font-weight: 600;
313
+ letter-spacing: -0.045em;
314
+ line-height: 1.02;
315
+ }
316
+
317
+ .section-heading > p {
318
+ max-width: 48ch;
319
+ margin: 0;
320
+ color: var(--ink-soft);
321
+ }
322
+
323
+ .section-note {
324
+ margin: 26px 0 0;
325
+ color: var(--ink-soft);
326
+ font-size: 14px;
327
+ }
328
+
329
+ .plugin-grid {
330
+ display: grid;
331
+ grid-template-columns: repeat(2, minmax(0, 1fr));
332
+ gap: 12px;
333
+ }
334
+
335
+ .plugin-card {
336
+ display: grid;
337
+ grid-template-columns: minmax(0, 1fr);
338
+ gap: 22px;
339
+ min-height: 220px;
340
+ padding: 24px;
341
+ border: 1px solid var(--line);
342
+ border-radius: var(--radius);
343
+ background: var(--surface);
344
+ }
345
+
346
+ .plugin-card h3 {
347
+ margin: 0 0 12px;
348
+ font-family: var(--display);
349
+ font-size: 25px;
350
+ font-weight: 650;
351
+ letter-spacing: -0.035em;
352
+ }
353
+
354
+ .plugin-card h3 a {
355
+ text-decoration: none;
356
+ }
357
+
358
+ .plugin-card h3 a:hover {
359
+ color: var(--accent);
360
+ }
361
+
362
+ .plugin-card p {
363
+ max-width: 58ch;
364
+ margin: 0;
365
+ color: var(--ink-soft);
366
+ font-size: 14px;
367
+ }
368
+
369
+ .install-line {
370
+ display: flex;
371
+ min-width: 0;
372
+ align-items: center;
373
+ justify-content: space-between;
374
+ gap: 16px;
375
+ align-self: end;
376
+ padding-top: 16px;
377
+ border-top: 1px solid var(--line);
378
+ }
379
+
380
+ .install-line code {
381
+ overflow: hidden;
382
+ color: var(--ink-soft);
383
+ font-size: 12px;
384
+ text-overflow: ellipsis;
385
+ white-space: nowrap;
386
+ }
387
+
388
+ .copy-icon,
389
+ .copy {
390
+ border: 0;
391
+ background: transparent;
392
+ color: var(--accent);
393
+ font-size: 12px;
394
+ font-weight: 700;
395
+ cursor: pointer;
396
+ }
397
+
398
+ .copy-icon:hover,
399
+ .copy:hover {
400
+ color: var(--accent-deep);
401
+ text-decoration: underline;
402
+ text-underline-offset: 3px;
403
+ }
404
+
405
+ .controls {
406
+ display: grid;
407
+ grid-template-columns: minmax(260px, 1fr) auto auto auto;
408
+ gap: 12px;
409
+ align-items: center;
410
+ margin-bottom: 26px;
411
+ }
412
+
413
+ .controls > label {
414
+ position: absolute;
415
+ width: 1px;
416
+ height: 1px;
417
+ overflow: hidden;
418
+ clip: rect(0, 0, 0, 0);
419
+ }
420
+
421
+ #q {
422
+ min-height: 48px;
423
+ padding: 11px 14px;
424
+ border: 1px solid var(--line-strong);
425
+ border-radius: 10px;
426
+ background: var(--surface);
427
+ color: var(--ink);
428
+ }
429
+
430
+ #q::placeholder {
431
+ color: var(--ink-faint);
432
+ }
433
+
434
+ .controls details {
435
+ position: relative;
436
+ }
437
+
438
+ .controls summary {
439
+ min-height: 48px;
440
+ padding: 12px 14px;
441
+ border: 1px solid var(--line-strong);
442
+ border-radius: 10px;
443
+ background: var(--surface);
444
+ font-size: 13px;
445
+ font-weight: 650;
446
+ cursor: pointer;
447
+ list-style: none;
448
+ }
449
+
450
+ .controls summary::-webkit-details-marker {
451
+ display: none;
452
+ }
453
+
454
+ .controls summary span::before {
455
+ content: "+";
456
+ padding-left: 10px;
457
+ color: var(--ink-faint);
458
+ }
459
+
460
+ .controls details[open] summary span::before {
461
+ content: "−";
462
+ }
463
+
464
+ .chips {
465
+ position: absolute;
466
+ right: 0;
467
+ z-index: 10;
468
+ display: flex;
469
+ width: min(520px, calc(100vw - 40px));
470
+ flex-wrap: wrap;
471
+ gap: 7px;
472
+ margin-top: 8px;
473
+ padding: 14px;
474
+ border: 1px solid var(--line);
475
+ border-radius: 12px;
476
+ background: var(--surface);
477
+ box-shadow: 0 18px 40px rgba(23, 27, 24, 0.12);
478
+ }
479
+
480
+ .chip {
481
+ padding: 7px 10px;
482
+ border: 1px solid var(--line-strong);
483
+ border-radius: 999px;
484
+ background: var(--surface);
485
+ color: var(--ink-soft);
486
+ font-size: 12px;
487
+ cursor: pointer;
488
+ }
489
+
490
+ .chip span {
491
+ padding-left: 4px;
492
+ color: var(--ink-faint);
493
+ }
494
+
495
+ .chip:hover,
496
+ .chip[aria-pressed="true"] {
497
+ border-color: var(--accent);
498
+ background: var(--accent-soft);
499
+ color: var(--accent-deep);
500
+ }
501
+
502
+ .count {
503
+ margin: 0;
504
+ color: var(--ink-faint);
505
+ font-size: 13px;
506
+ white-space: nowrap;
507
+ }
508
+
509
+ .skill-grid {
510
+ display: grid;
511
+ grid-template-columns: repeat(3, minmax(0, 1fr));
512
+ gap: 12px;
513
+ margin: 0;
514
+ padding: 0;
515
+ list-style: none;
516
+ }
517
+
518
+ .skill-card {
519
+ position: relative;
520
+ display: flex;
521
+ min-height: 272px;
522
+ flex-direction: column;
523
+ gap: 14px;
524
+ padding: 22px;
525
+ border: 1px solid var(--line);
526
+ border-radius: var(--radius);
527
+ background: var(--surface);
528
+ transition: border-color 160ms ease, background 160ms ease;
529
+ }
530
+
531
+ .skill-card:hover,
532
+ .skill-card:focus-within {
533
+ border-color: var(--line-strong);
534
+ background: #fbfcfb;
535
+ }
536
+
537
+ .skill-card[hidden] {
538
+ display: none;
539
+ }
540
+
541
+ .skill-card-top {
542
+ display: flex;
543
+ align-items: center;
544
+ justify-content: space-between;
545
+ gap: 12px;
546
+ color: var(--ink-faint);
547
+ font-size: 11px;
548
+ }
549
+
550
+ .skill-card-top > span {
551
+ font-weight: 700;
552
+ letter-spacing: 0.08em;
553
+ text-transform: uppercase;
554
+ }
555
+
556
+ .skill-card-top code {
557
+ overflow: hidden;
558
+ max-width: 56%;
559
+ text-overflow: ellipsis;
560
+ white-space: nowrap;
561
+ }
562
+
563
+ .skill-card h3 {
564
+ margin: 2px 0 0;
565
+ font-family: var(--display);
566
+ font-size: 23px;
567
+ font-weight: 650;
568
+ letter-spacing: -0.035em;
569
+ line-height: 1.15;
570
+ }
571
+
572
+ .skill-card h3 a {
573
+ text-decoration: none;
574
+ }
575
+
576
+ .skill-card h3 a::after {
577
+ content: "";
578
+ position: absolute;
579
+ inset: 0;
580
+ }
581
+
582
+ .skill-card p {
583
+ margin: 0;
584
+ color: var(--ink-soft);
585
+ font-size: 14px;
586
+ }
587
+
588
+ .tags {
589
+ display: flex;
590
+ flex-wrap: wrap;
591
+ gap: 6px;
592
+ margin: auto 0 0;
593
+ padding: 0;
594
+ list-style: none;
595
+ }
596
+
597
+ .tags li {
598
+ padding: 4px 8px;
599
+ border-radius: 999px;
600
+ background: var(--surface-soft);
601
+ color: var(--ink-soft);
602
+ font-size: 11px;
603
+ }
604
+
605
+ .empty {
606
+ margin: 24px 0 0;
607
+ padding: 42px;
608
+ border: 1px dashed var(--line-strong);
609
+ border-radius: var(--radius);
610
+ color: var(--ink-soft);
611
+ text-align: center;
612
+ }
613
+
614
+ .empty[hidden] {
615
+ display: none;
616
+ }
617
+
618
+ .install-grid {
619
+ display: grid;
620
+ grid-template-columns: repeat(2, minmax(0, 1fr));
621
+ gap: 12px;
622
+ }
623
+
624
+ .install-grid > article {
625
+ padding: 24px;
626
+ border: 1px solid var(--line);
627
+ border-radius: var(--radius);
628
+ background: var(--surface);
629
+ }
630
+
631
+ .install-grid h3 {
632
+ margin: 0 0 8px;
633
+ font-family: var(--display);
634
+ font-size: 24px;
635
+ font-weight: 650;
636
+ letter-spacing: -0.03em;
637
+ }
638
+
639
+ .install-grid article > p {
640
+ min-height: 48px;
641
+ margin: 0 0 18px;
642
+ color: var(--ink-soft);
643
+ font-size: 14px;
644
+ }
645
+
646
+ .command {
647
+ overflow: hidden;
648
+ border-radius: 10px;
649
+ background: var(--ink);
650
+ color: #eef2ee;
651
+ }
652
+
653
+ .command-head {
654
+ display: flex;
655
+ align-items: center;
656
+ justify-content: space-between;
657
+ padding: 9px 12px;
658
+ border-bottom: 1px solid rgba(255, 255, 255, 0.12);
659
+ color: #aeb9b1;
660
+ font-size: 10px;
661
+ font-weight: 700;
662
+ letter-spacing: 0.1em;
663
+ text-transform: uppercase;
664
+ }
665
+
666
+ .command .copy {
667
+ color: #cfe1d4;
668
+ }
669
+
670
+ .command pre {
671
+ margin: 0;
672
+ padding: 14px 12px;
673
+ overflow-x: auto;
674
+ font-size: 12px;
675
+ line-height: 1.65;
676
+ }
677
+
678
+ .quiet-link {
679
+ display: inline-flex;
680
+ align-items: center;
681
+ gap: 7px;
682
+ color: var(--accent);
683
+ font-weight: 650;
684
+ }
685
+
686
+ .crumb {
687
+ display: flex;
688
+ gap: 8px;
689
+ margin: 0;
690
+ padding: 36px 0 0;
691
+ color: var(--ink-faint);
692
+ font-size: 13px;
693
+ }
694
+
695
+ .detail-head {
696
+ max-width: 900px;
697
+ padding: clamp(60px, 9vw, 116px) 0 64px;
698
+ }
699
+
700
+ .detail-head h1 {
701
+ font-size: clamp(50px, 8vw, 88px);
702
+ }
703
+
704
+ .detail-head > p:last-child {
705
+ max-width: 66ch;
706
+ margin: 28px 0 0;
707
+ color: var(--ink-soft);
708
+ font-size: 19px;
709
+ }
710
+
711
+ .meta {
712
+ display: grid;
713
+ grid-template-columns: repeat(3, minmax(0, 1fr));
714
+ margin: 0;
715
+ border-top: 1px solid var(--line);
716
+ border-bottom: 1px solid var(--line);
717
+ }
718
+
719
+ .meta div {
720
+ padding: 22px 20px 22px 0;
721
+ }
722
+
723
+ .meta dt {
724
+ margin-bottom: 6px;
725
+ color: var(--ink-faint);
726
+ font-size: 11px;
727
+ font-weight: 700;
728
+ letter-spacing: 0.08em;
729
+ text-transform: uppercase;
730
+ }
731
+
732
+ .meta dd {
733
+ margin: 0;
734
+ overflow-wrap: anywhere;
735
+ }
736
+
737
+ .detail-use .install-grid {
738
+ grid-template-columns: repeat(3, minmax(0, 1fr));
739
+ }
740
+
741
+ .compact-section {
742
+ padding-bottom: 0;
743
+ }
744
+
745
+ .detail-tags {
746
+ justify-content: flex-start;
747
+ margin-top: 18px;
748
+ }
749
+
750
+ .detail-tags a {
751
+ text-decoration: none;
752
+ }
753
+
754
+ .pager {
755
+ display: grid;
756
+ grid-template-columns: 1fr 1fr;
757
+ gap: 12px;
758
+ padding: 72px 0 0;
759
+ }
760
+
761
+ .pager a {
762
+ display: flex;
763
+ min-height: 104px;
764
+ flex-direction: column;
765
+ justify-content: center;
766
+ padding: 20px;
767
+ border: 1px solid var(--line);
768
+ border-radius: var(--radius);
769
+ background: var(--surface);
770
+ font-family: var(--display);
771
+ font-size: 20px;
772
+ font-weight: 650;
773
+ text-decoration: none;
774
+ }
775
+
776
+ .pager a:last-child {
777
+ align-items: flex-end;
778
+ text-align: right;
779
+ }
780
+
781
+ .pager span {
782
+ margin-bottom: 6px;
783
+ color: var(--ink-faint);
784
+ font-family: var(--body);
785
+ font-size: 11px;
786
+ letter-spacing: 0.08em;
787
+ text-transform: uppercase;
788
+ }
789
+
790
+ .not-found {
791
+ max-width: 760px;
792
+ padding: 140px 0;
793
+ }
794
+
795
+ .not-found p:not(.eyebrow) {
796
+ margin: 24px 0 30px;
797
+ color: var(--ink-soft);
798
+ font-size: 19px;
799
+ }
800
+
801
+ .colophon {
802
+ display: flex;
803
+ align-items: center;
804
+ justify-content: space-between;
805
+ gap: 20px;
806
+ margin-top: 96px;
807
+ padding: 26px 0 40px;
808
+ border-top: 1px solid var(--line);
809
+ color: var(--ink-soft);
810
+ font-size: 13px;
811
+ }
812
+
813
+ .colophon p {
814
+ margin: 0;
815
+ }
816
+
817
+ .colophon div {
818
+ gap: 18px;
819
+ }
820
+
821
+ .text-button {
822
+ padding: 0;
823
+ border: 0;
824
+ background: transparent;
825
+ color: inherit;
826
+ text-decoration: underline;
827
+ text-decoration-color: var(--line-strong);
828
+ text-underline-offset: 4px;
829
+ cursor: pointer;
830
+ }
831
+
832
+ .consent {
833
+ position: fixed;
834
+ right: 20px;
835
+ bottom: 20px;
836
+ left: 20px;
837
+ z-index: 50;
838
+ display: flex;
839
+ width: min(760px, calc(100% - 40px));
840
+ align-items: center;
841
+ justify-content: space-between;
842
+ gap: 24px;
843
+ margin: 0 auto;
844
+ padding: 18px;
845
+ border: 1px solid #37413a;
846
+ border-radius: 14px;
847
+ background: var(--ink);
848
+ color: white;
849
+ box-shadow: 0 20px 48px rgba(23, 27, 24, 0.24);
850
+ }
851
+
852
+ .consent[hidden] {
853
+ display: none;
854
+ }
855
+
856
+ .consent strong {
857
+ display: block;
858
+ font-size: 14px;
859
+ }
860
+
861
+ .consent p {
862
+ max-width: 54ch;
863
+ margin: 4px 0 0;
864
+ color: #c7d0ca;
865
+ font-size: 12px;
866
+ }
867
+
868
+ .consent-actions {
869
+ display: flex;
870
+ flex: 0 0 auto;
871
+ gap: 8px;
872
+ }
873
+
874
+ .consent .button-secondary {
875
+ border-color: #59655d;
876
+ background: transparent;
877
+ color: white;
878
+ }
879
+
880
+ .consent .button-primary {
881
+ border-color: #dce9df;
882
+ background: #dce9df;
883
+ color: var(--accent-deep);
884
+ }
885
+
886
+ @media (max-width: 960px) {
887
+ .hero,
888
+ .section-heading {
889
+ grid-template-columns: 1fr;
890
+ }
891
+
892
+ .hero {
893
+ gap: 50px;
894
+ }
895
+
896
+ .hero-command {
897
+ max-width: 640px;
898
+ }
899
+
900
+ .section-heading {
901
+ gap: 18px;
902
+ }
903
+
904
+ .controls {
905
+ grid-template-columns: 1fr 1fr;
906
+ }
907
+
908
+ #q {
909
+ grid-column: 1 / -1;
910
+ }
911
+
912
+ .count {
913
+ justify-self: end;
914
+ }
915
+
916
+ .skill-grid {
917
+ grid-template-columns: repeat(2, minmax(0, 1fr));
918
+ }
919
+
920
+ .detail-use .install-grid {
921
+ grid-template-columns: 1fr;
922
+ }
923
+ }
924
+
925
+ @media (max-width: 720px) {
926
+ .shell {
927
+ width: min(100% - 28px, 1180px);
928
+ }
929
+
930
+ .masthead {
931
+ align-items: flex-start;
932
+ padding: 18px 0;
933
+ }
934
+
935
+ .identity {
936
+ align-items: flex-start;
937
+ flex-direction: column;
938
+ gap: 5px;
939
+ }
940
+
941
+ .maker {
942
+ padding-left: 39px;
943
+ border: 0;
944
+ }
945
+
946
+ .masthead nav {
947
+ justify-content: flex-end;
948
+ gap: 12px 16px;
949
+ }
950
+
951
+ .masthead nav a:nth-child(3) {
952
+ display: none;
953
+ }
954
+
955
+ .hero {
956
+ grid-template-columns: 1fr;
957
+ padding-top: 72px;
958
+ }
959
+
960
+ .hero h1 {
961
+ font-size: clamp(48px, 15vw, 72px);
962
+ }
963
+
964
+ .plugin-grid,
965
+ .skill-grid,
966
+ .install-grid,
967
+ .meta,
968
+ .pager {
969
+ grid-template-columns: minmax(0, 1fr);
970
+ }
971
+
972
+ .plugin-card,
973
+ .skill-card {
974
+ min-height: 0;
975
+ }
976
+
977
+ .controls {
978
+ grid-template-columns: 1fr;
979
+ }
980
+
981
+ #q,
982
+ .count {
983
+ grid-column: auto;
984
+ }
985
+
986
+ .count {
987
+ justify-self: start;
988
+ }
989
+
990
+ .controls details,
991
+ .controls summary {
992
+ width: 100%;
993
+ }
994
+
995
+ .chips {
996
+ right: auto;
997
+ left: 0;
998
+ }
999
+
1000
+ .install-grid article > p {
1001
+ min-height: 0;
1002
+ }
1003
+
1004
+ .colophon,
1005
+ .consent {
1006
+ align-items: stretch;
1007
+ flex-direction: column;
1008
+ }
1009
+
1010
+ .colophon div,
1011
+ .consent-actions {
1012
+ justify-content: space-between;
1013
+ }
1014
+
1015
+ .consent .button {
1016
+ flex: 1;
1017
+ }
1018
+ }
1019
+
1020
+ @media (max-width: 470px) {
1021
+ .masthead {
1022
+ flex-direction: column;
1023
+ }
1024
+
1025
+ .masthead nav {
1026
+ width: 100%;
1027
+ justify-content: flex-start;
1028
+ }
1029
+
1030
+ .hero-actions .button {
1031
+ width: 100%;
1032
+ }
1033
+
1034
+ .install-line code {
1035
+ max-width: 72%;
1036
+ }
1037
+ }
1038
+
1039
+ @media (prefers-reduced-motion: reduce) {
1040
+ html {
1041
+ scroll-behavior: auto;
1042
+ }
1043
+
1044
+ *,
1045
+ *::before,
1046
+ *::after {
1047
+ scroll-behavior: auto !important;
1048
+ transition-duration: 0.01ms !important;
1049
+ }
1050
+ }
1051
+
1052
+ @media print {
1053
+ body {
1054
+ background: white;
1055
+ }
1056
+
1057
+ .masthead nav,
1058
+ .controls,
1059
+ .consent,
1060
+ .copy,
1061
+ .copy-icon {
1062
+ display: none;
1063
+ }
1064
+ }