@mgks/docmd 0.2.0 → 0.2.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,619 +1,9 @@
1
- /* docmd-theme-ruby.css - Ruby theme for docmd */
1
+ /* Source file from the docmd project — https://github.com/mgks/docmd */
2
2
 
3
- /* Import Google Fonts for Ruby theme */
4
- @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;600;700&display=swap');
3
+ /*
4
+ * docmd Ruby Theme
5
+ * Inspired by the beauty of gemstones
6
+ * Features: Deep ruby red, elegant serif fonts, subtle gem-like effects
7
+ */
5
8
 
6
- :root [data-theme="light"] {
7
- /* Font family */
8
- --ruby-font-family-sans: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
9
- --ruby-font-family-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
10
- --ruby-font-family-mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
11
-
12
- /* Color palette - Light mode */
13
- --ruby-primary: #b30000; /* Deep ruby red */
14
- --ruby-primary-light: #ffebee; /* Very light red */
15
- --ruby-primary-dark: #8e0000; /* Darker ruby red */
16
- --ruby-accent: #7b1fa2; /* Complementary purple */
17
- --ruby-accent-light: #f3e5f5; /* Light purple */
18
- --ruby-text: #2d2d2d; /* Nearly black text */
19
- --ruby-text-light: #5a5a5a; /* Medium gray text */
20
- --ruby-text-lightest: #757575; /* Light gray text */
21
- --ruby-background: #ffffff; /* White background */
22
- --ruby-background-alt: #fafafa; /* Very light gray background */
23
- --ruby-border: #e0e0e0; /* Light gray border */
24
- --ruby-border-light: #f0f0f0; /* Very light gray border */
25
-
26
- /* Apply colors to CSS variables */
27
- --bg-color: var(--ruby-background);
28
- --text-color: var(--ruby-text);
29
- --sidebar-bg: #f8f5f5;
30
- --sidebar-text: var(--ruby-text-light);
31
- --sidebar-link-active-bg: #f8e7e7;
32
- --sidebar-link-active-text: var(--ruby-primary);
33
- --link-color: var(--ruby-primary);
34
- --border-color: var(--ruby-border);
35
- --code-bg: var(--ruby-primary-light);
36
- --code-text: var(--ruby-primary-dark);
37
- --header-bg: var(--ruby-background);
38
- --header-border: var(--ruby-border);
39
-
40
- /* Box shadows with ruby tint */
41
- --shadow-sm: 0 2px 4px rgba(179, 0, 0, 0.05);
42
- --shadow-md: 0 4px 8px rgba(179, 0, 0, 0.1);
43
- --shadow-lg: 0 8px 16px rgba(179, 0, 0, 0.15);
44
-
45
- /* Image styling variables */
46
- --image-border-color: var(--ruby-border);
47
- --image-shadow: var(--shadow-md);
48
- --image-caption-bg: var(--ruby-background-alt);
49
- --image-caption-text: var(--ruby-text-light);
50
- --image-hover-transform: translateY(-3px);
51
- --image-hover-shadow: var(--shadow-lg);
52
- --image-border-radius: 6px;
53
- --image-transition: all 0.3s ease;
54
- }
55
-
56
- /* Dark mode */
57
- :root [data-theme="dark"] {
58
- /* Color palette - Dark mode */
59
- --ruby-primary: #ff5252; /* Bright ruby red */
60
- --ruby-primary-light: #3c1a1a; /* Dark red background */
61
- --ruby-primary-dark: #ff7b7b; /* Lighter ruby red */
62
- --ruby-accent: #ce93d8; /* Light purple */
63
- --ruby-accent-light: #2a1a2a; /* Dark purple background */
64
- --ruby-text: #f0f0f0; /* Nearly white text */
65
- --ruby-text-light: #c0c0c0; /* Light gray text */
66
- --ruby-text-lightest: #a0a0a0; /* Medium gray text */
67
- --ruby-background: #1a0a0a; /* Very dark red-tinted background */
68
- --ruby-background-alt: #2a1515; /* Dark red-tinted background */
69
- --ruby-border: #3a2020; /* Dark red-tinted border */
70
- --ruby-border-light: #2a1818; /* Very dark red-tinted border */
71
-
72
- /* Apply colors to CSS variables */
73
- --bg-color: var(--ruby-background);
74
- --text-color: var(--ruby-text);
75
- --sidebar-bg: #1a0a0a;
76
- --sidebar-text: var(--ruby-text-light);
77
- --sidebar-link-active-bg: #2a1515;
78
- --sidebar-link-active-text: var(--ruby-primary);
79
- --link-color: var(--ruby-primary);
80
- --border-color: var(--ruby-border);
81
- --code-bg: var(--ruby-primary-light);
82
- --code-text: var(--ruby-text);
83
- --header-bg: var(--ruby-background);
84
- --header-border: var(--ruby-border);
85
-
86
- /* Box shadows for dark mode */
87
- --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.3);
88
- --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.4);
89
- --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.5);
90
-
91
- /* Image styling variables for dark mode */
92
- --image-border-color: var(--ruby-border);
93
- --image-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
94
- --image-caption-bg: var(--ruby-background-alt);
95
- --image-caption-text: var(--ruby-text-light);
96
- --image-hover-transform: translateY(-3px);
97
- --image-hover-shadow: 0 6px 12px rgba(0, 0, 0, 0.7);
98
- --image-border-radius: 6px;
99
- --image-transition: all 0.3s ease;
100
- }
101
-
102
- /* Apply theme styles */
103
-
104
- /* Typography improvements */
105
- body {
106
- font-family: var(--ruby-font-family-sans);
107
- line-height: 1.7;
108
- letter-spacing: 0.01em;
109
- }
110
-
111
- h1, h2, h3, h4, h5, h6 {
112
- font-family: var(--ruby-font-family-serif);
113
- font-weight: 600;
114
- line-height: 1.3;
115
- margin-top: 2em;
116
- margin-bottom: 0.7em;
117
- color: var(--ruby-text);
118
- letter-spacing: -0.01em;
119
- }
120
-
121
- h1 {
122
- font-size: 2.5rem;
123
- font-weight: 700;
124
- margin-top: 0;
125
- position: relative;
126
- padding-bottom: 0.5rem;
127
- }
128
-
129
- h1::after {
130
- content: "";
131
- position: absolute;
132
- bottom: 0;
133
- left: 0;
134
- width: 60px;
135
- height: 3px;
136
- background: linear-gradient(90deg, var(--ruby-primary), var(--ruby-accent));
137
- border-radius: 3px;
138
- }
139
-
140
- h2 {
141
- font-size: 1.9rem;
142
- border-bottom: 1px solid var(--ruby-border-light);
143
- padding-bottom: 0.5rem;
144
- }
145
-
146
- h3 {
147
- font-size: 1.6rem;
148
- }
149
-
150
- h4 {
151
- font-size: 1.3rem;
152
- }
153
-
154
- a {
155
- color: var(--link-color);
156
- text-decoration: none;
157
- transition: color 0.2s ease;
158
- position: relative;
159
-
160
- }
161
-
162
- a:hover {
163
- color: var(--ruby-primary-dark);
164
- }
165
-
166
- /* Stylish underline effect for links in content */
167
- .content-area a:not(.button):not(.no-underline)::after {
168
- content: '';
169
- position: absolute;
170
- width: 100%;
171
- height: 1px;
172
- bottom: 0;
173
- left: 0;
174
- background: linear-gradient(90deg, var(--ruby-primary), var(--ruby-accent));
175
- transform: scaleX(0);
176
- transform-origin: bottom right;
177
- transition: transform 0.3s ease;
178
- }
179
-
180
- .content-area a:not(.button):not(.no-underline):hover::after {
181
- transform: scaleX(1);
182
- transform-origin: bottom left;
183
-
184
- }
185
-
186
- p {
187
- margin: 0.7em 0;
188
- padding: 0.3em 0;
189
- line-height: 1.8;
190
- }
191
-
192
- /* Sidebar refinements */
193
- .sidebar {
194
- box-shadow: var(--shadow-sm);
195
- border-right: 1px solid var(--ruby-border);
196
- }
197
-
198
- .sidebar-header {
199
- border-bottom: 2px solid var(--ruby-border);
200
- margin-bottom: 1.5rem;
201
- padding-bottom: 1rem;
202
- }
203
-
204
- .sidebar nav li a {
205
- border-radius: 4px;
206
- margin-bottom: 3px;
207
- transition: all 0.3s ease;
208
- padding: 0.6rem 0.8rem;
209
- font-weight: 400;
210
- }
211
-
212
- .sidebar nav li a:hover {
213
- background-color: var(--sidebar-link-active-bg);
214
- color: var(--ruby-primary);
215
- transform: translateX(3px);
216
- }
217
-
218
- .sidebar nav li a.active {
219
- background-color: var(--sidebar-link-active-bg);
220
- color: var(--sidebar-link-active-text);
221
- font-weight: 600;
222
- border-left: 3px solid var(--ruby-primary);
223
- }
224
-
225
- /* Content area */
226
- .content-area {
227
- padding: 2.5rem 5%;
228
- }
229
-
230
- /* Code blocks */
231
- pre {
232
- background-color: var(--code-bg);
233
- border-radius: 6px;
234
- margin: 1.5em 0;
235
- padding: 1.25em;
236
- box-shadow: var(--shadow-sm);
237
- border-left: 3px solid var(--ruby-primary);
238
- }
239
-
240
- code {
241
- font-family: var(--ruby-font-family-mono);
242
- font-size: 0.9em;
243
- border-radius: 4px;
244
- padding: 0.2em 0.4em;
245
- }
246
-
247
- /* Tables */
248
- table {
249
- width: 100%;
250
- border-collapse: separate;
251
- border-spacing: 0;
252
- margin: 1.5em 0;
253
- border-radius: 6px;
254
- overflow: hidden;
255
- box-shadow: var(--shadow-sm);
256
- }
257
-
258
- th {
259
- background-color: var(--ruby-primary-light);
260
- color: var(--ruby-primary-dark);
261
- text-align: left;
262
- font-weight: 600;
263
- padding: 0.75rem 1rem;
264
- border-bottom: 2px solid var(--ruby-border);
265
- }
266
-
267
- td {
268
- padding: 0.75rem 1rem;
269
- border-top: 1px solid var(--ruby-border-light);
270
- }
271
-
272
- tr:hover {
273
- background-color: var(--ruby-background-alt);
274
- }
275
-
276
- /* Custom container styling for Ruby theme */
277
- .docmd-container {
278
- padding: 1.2rem 1.5rem;
279
- margin: 1.75rem 0;
280
- border-radius: 6px;
281
- border: 1px solid var(--ruby-border-light);
282
- background-color: var(--ruby-background);
283
- box-shadow: var(--shadow-sm);
284
- position: relative;
285
- overflow: hidden;
286
- }
287
-
288
- /* Add gem-like facet to containers */
289
- .docmd-container::before {
290
- content: '';
291
- position: absolute;
292
- top: 0;
293
- left: 0;
294
- width: 100%;
295
- height: 3px;
296
- background: linear-gradient(90deg, var(--ruby-primary), var(--ruby-accent));
297
-
298
- }
299
- .docmd-container.steps::before{
300
- height:initial !important
301
- }
302
-
303
- /* Callouts */
304
- .callout {
305
- position: relative;
306
- border: none;
307
- border-left: 4px solid;
308
- background-color: var(--ruby-background-alt);
309
- }
310
-
311
- .callout-title {
312
- font-family: var(--ruby-font-family-serif);
313
- font-weight: 600;
314
- margin-bottom: 0.75em;
315
- display: flex;
316
- align-items: center;
317
- font-size: 1.1em;
318
- }
319
-
320
- .callout-title::before {
321
- margin-right: 0.5rem;
322
- font-size: 1.1em;
323
- }
324
-
325
- .callout-info {
326
- border-left-color: var(--ruby-primary);
327
- }
328
-
329
- .callout-info .callout-title {
330
- color: var(--ruby-primary);
331
- }
332
-
333
- .callout-warning {
334
- border-left-color: #f39c12;
335
- }
336
-
337
- .callout-warning .callout-title {
338
- color: #f39c12;
339
- }
340
-
341
- .callout-tip {
342
- border-left-color: #2ecc71;
343
- }
344
-
345
- .callout-tip .callout-title {
346
- color: #2ecc71;
347
- }
348
-
349
- .callout-danger {
350
- border-left-color: #e74c3c;
351
- }
352
-
353
- .callout-danger .callout-title {
354
- color: #e74c3c;
355
- }
356
-
357
- .callout-success {
358
- border-left-color: #2ecc71;
359
- }
360
-
361
- .callout-success .callout-title {
362
- color: #2ecc71;
363
- }
364
-
365
- /* Cards with gem-like styling */
366
- .card {
367
- border: none;
368
- border-radius: 6px;
369
- background: linear-gradient(135deg, var(--ruby-background) 0%, var(--ruby-background-alt) 100%);
370
- box-shadow: var(--shadow-md);
371
- transition: all 0.3s ease;
372
- overflow: hidden;
373
- }
374
-
375
- .card:hover {
376
- transform: translateY(-5px);
377
- box-shadow: var(--shadow-lg);
378
- }
379
-
380
- .card .card-title {
381
- font-family: var(--ruby-font-family-serif);
382
- font-weight: 600;
383
- padding: 1rem 1.5rem;
384
- margin: 0;
385
- background: linear-gradient(90deg, var(--ruby-primary-light), var(--ruby-accent-light));
386
- color: var(--ruby-primary-dark);
387
- border-bottom: 1px solid var(--ruby-border);
388
- }
389
-
390
- .card .card-content {
391
- padding: 1rem 1.5rem;
392
- }
393
-
394
- /* Steps styling */
395
- .steps {
396
- counter-reset: step-counter;
397
- position: relative;
398
- padding-left: 1rem;
399
- }
400
-
401
- .steps h4 {
402
- position: relative;
403
- padding-left: 2.5rem;
404
- margin-top: 2rem;
405
- margin-bottom: 1rem;
406
- font-family: var(--ruby-font-family-serif);
407
- }
408
-
409
- .steps h4::before {
410
- content: counter(step-counter);
411
- counter-increment: step-counter;
412
- position: absolute;
413
- left: 0;
414
- top: 50%;
415
- transform: translateY(-50%);
416
- width: 1.8rem;
417
- height: 1.8rem;
418
- background: linear-gradient(135deg, var(--ruby-primary) 0%, var(--ruby-accent) 100%);
419
- color: white;
420
- border-radius: 50%;
421
- display: flex;
422
- align-items: center;
423
- justify-content: center;
424
- font-size: 0.9rem;
425
- font-weight: 600;
426
- box-shadow: var(--shadow-sm);
427
- }
428
-
429
- .docmd-container.steps-reset ol.steps-list > li.step-item::before{
430
- color: var(--ruby-primary);
431
-
432
- }
433
-
434
- /* Buttons */
435
- button, .button {
436
- background: linear-gradient(135deg, var(--ruby-primary) 0%, var(--ruby-accent) 100%);
437
- color: white;
438
- border: none;
439
- padding: 0.6rem 1.2rem;
440
- border-radius: 4px;
441
- font-weight: 600;
442
- cursor: pointer;
443
- transition: all 0.3s ease;
444
- box-shadow: var(--shadow-sm);
445
- }
446
-
447
- .docmd-button:hover{color:#fff}
448
-
449
- button:hover, .button:hover {
450
- box-shadow: var(--shadow-md);
451
- transform: translateY(-2px);
452
- }
453
-
454
- .theme-toggle-button {
455
- background: transparent;
456
- color: var(--ruby-text-light);
457
- box-shadow: none;
458
- }
459
-
460
- .theme-toggle-button:hover {
461
- background: var(--ruby-background-alt);
462
- color: var(--ruby-primary);
463
- box-shadow: var(--shadow-sm);
464
- transform: translateY(0);
465
- }
466
-
467
- /* Responsive adjustments */
468
- @media (max-width: 768px) {
469
- .content-area {
470
- padding: 1.5rem 1rem;
471
- }
472
-
473
- h1 {
474
- font-size: 2rem;
475
- }
476
-
477
- h2 {
478
- font-size: 1.6rem;
479
- }
480
-
481
- h3 {
482
- font-size: 1.3rem;
483
- }
484
- }
485
-
486
- /* Image styling */
487
- img {
488
- max-width: 100%;
489
- height: auto;
490
- border-radius: var(--image-border-radius);
491
- transition: var(--image-transition);
492
- }
493
-
494
- img.with-border {
495
- border: 1px solid var(--image-border-color);
496
- padding: 4px;
497
- }
498
-
499
- img.with-shadow {
500
- box-shadow: var(--image-shadow);
501
- }
502
-
503
- img.with-shadow:hover {
504
- box-shadow: var(--image-hover-shadow);
505
- transform: var(--image-hover-transform);
506
- }
507
-
508
- figure {
509
- margin: 1.5em 0;
510
- text-align: center;
511
- transition: var(--image-transition);
512
- }
513
-
514
- figure:hover {
515
- transform: var(--image-hover-transform);
516
- }
517
-
518
- figure img {
519
- max-width: 100%;
520
- border-radius: var(--image-border-radius);
521
- }
522
-
523
- figcaption {
524
- background-color: var(--image-caption-bg);
525
- color: var(--image-caption-text);
526
- padding: 0.5em;
527
- font-size: 0.9em;
528
- border-radius: 0 0 var(--image-border-radius) var(--image-border-radius);
529
- font-style: italic;
530
- }
531
-
532
- /* Image gallery */
533
- .image-gallery {
534
- display: grid;
535
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
536
- gap: 1rem;
537
- margin: 1.5em 0;
538
- }
539
-
540
- .image-gallery figure {
541
- margin: 0;
542
- height: 100%;
543
- display: flex;
544
- flex-direction: column;
545
- border-radius: var(--image-border-radius);
546
- overflow: hidden;
547
- box-shadow: var(--shadow-sm);
548
- }
549
-
550
- .image-gallery figure:hover {
551
- box-shadow: var(--shadow-md);
552
- }
553
-
554
- .image-gallery img {
555
- width: 100%;
556
- height: 100%;
557
- object-fit: cover;
558
- border-radius: var(--image-border-radius) var(--image-border-radius) 0 0;
559
- transition: transform 0.3s ease;
560
- }
561
-
562
- .image-gallery figcaption {
563
- padding: 0.5rem;
564
- background-color: var(--image-caption-bg);
565
- color: var(--image-caption-text);
566
- font-size: 0.85rem;
567
- border-radius: 0;
568
- }
569
-
570
- /* Zoom effect for gallery images */
571
- .image-gallery.zoom img {
572
- transition: transform 0.3s ease;
573
- }
574
-
575
- .image-gallery.zoom figure:hover img {
576
- transform: scale(1.05);
577
- }
578
-
579
- /* Lightbox image styling */
580
- img.lightbox {
581
- cursor: zoom-in;
582
- }
583
-
584
- /* Framed image styling */
585
- img.framed {
586
- border: 8px solid white;
587
- box-shadow: 0 0 0 1px var(--ruby-border), var(--shadow-md);
588
- border-radius: 3px;
589
- }
590
-
591
- /* Polaroid-style image */
592
- figure.polaroid {
593
- background: white;
594
- padding: 10px 10px 20px;
595
- box-shadow: var(--shadow-md);
596
- border-radius: 3px;
597
- }
598
-
599
- figure.polaroid img {
600
- border-radius: 2px;
601
- }
602
-
603
- figure.polaroid figcaption {
604
- background: white;
605
- color: var(--ruby-text);
606
- font-family: var(--ruby-font-family-serif);
607
- font-style: italic;
608
- }
609
-
610
- /* Mobile responsiveness for images */
611
- @media (max-width: 768px) {
612
- .image-gallery {
613
- grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
614
- }
615
-
616
- .image-gallery img {
617
- height: 120px;
618
- }
619
- }
9
+ @import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;600;700&display=swap);.docmd-container,.sidebar,pre,table{box-shadow:var(--shadow-sm)}h1,h2{padding-bottom:.5rem}.sidebar nav li a.active,pre{border-left:3px solid var(--ruby-primary)}pre,table{margin:1.5em 0}a:hover,th{color:var(--ruby-primary-dark)}.sidebar-header,th{border-bottom:2px solid var(--ruby-border)}td,th{padding:.75rem 1rem}.content-area a:not(.button):not(.no-underline)::after,.docmd-container::before,h1::after{background:linear-gradient(90deg,var(--ruby-primary),var(--ruby-accent));position:absolute;left:0}.callout,.docmd-container,.steps,.steps h4,a,h1{position:relative}.callout-info .callout-title,.docmd-container.steps-reset ol.steps-list>li.step-item::before,.sidebar nav li a:hover{color:var(--ruby-primary)}.card .card-content,.card .card-title{padding:1rem 1.5rem}figure img,img{max-width:100%}.image-gallery img,.image-gallery.zoom img{transition:transform .3s}:root{--ruby-font-family-sans:"Source Sans Pro",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ruby-font-family-serif:"Playfair Display",Georgia,"Times New Roman",serif;--ruby-font-family-mono:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}:root[data-theme=light]{--ruby-primary:#b30000;--ruby-primary-light:#ffebee;--ruby-primary-dark:#8e0000;--ruby-accent:#7b1fa2;--ruby-accent-light:#f3e5f5;--ruby-text:#2d2d2d;--ruby-text-light:#5a5a5a;--ruby-text-lightest:#757575;--ruby-background:#ffffff;--ruby-background-alt:#fafafa;--ruby-border:#e0e0e0;--ruby-border-light:#f0f0f0;--bg-color:var(--ruby-background);--text-color:var(--ruby-text);--sidebar-bg:#f8f5f5;--sidebar-text:var(--ruby-text-light);--sidebar-link-active-bg:#f8e7e7;--sidebar-link-active-text:var(--ruby-primary);--link-color:var(--ruby-primary);--border-color:var(--ruby-border);--code-bg:var(--ruby-primary-light);--code-text:var(--ruby-primary-dark);--header-bg:var(--ruby-background);--header-border:var(--ruby-border);--shadow-sm:0 2px 4px rgba(179, 0, 0, 0.05);--shadow-md:0 4px 8px rgba(179, 0, 0, 0.1);--shadow-lg:0 8px 16px rgba(179, 0, 0, 0.15);--image-border-color:var(--ruby-border);--image-shadow:var(--shadow-md);--image-caption-bg:var(--ruby-background-alt);--image-caption-text:var(--ruby-text-light);--image-hover-transform:translateY(-3px);--image-hover-shadow:var(--shadow-lg);--image-border-radius:6px;--image-transition:all 0.3s ease}:root[data-theme=dark]{--ruby-primary:#ff5252;--ruby-primary-light:#3c1a1a;--ruby-primary-dark:#ff7b7b;--ruby-accent:#ce93d8;--ruby-accent-light:#2a1a2a;--ruby-text:#f0f0f0;--ruby-text-light:#c0c0c0;--ruby-text-lightest:#a0a0a0;--ruby-background:#1a0a0a;--ruby-background-alt:#2a1515;--ruby-border:#3a2020;--ruby-border-light:#2a1818;--bg-color:var(--ruby-background);--text-color:var(--ruby-text);--sidebar-bg:#1a0a0a;--sidebar-text:var(--ruby-text-light);--sidebar-link-active-bg:#2a1515;--sidebar-link-active-text:var(--ruby-primary);--link-color:var(--ruby-primary);--border-color:var(--ruby-border);--code-bg:var(--ruby-primary-light);--code-text:var(--ruby-text);--header-bg:var(--ruby-background);--header-border:var(--ruby-border);--shadow-sm:0 2px 4px rgba(0, 0, 0, 0.3);--shadow-md:0 4px 8px rgba(0, 0, 0, 0.4);--shadow-lg:0 8px 16px rgba(0, 0, 0, 0.5);--image-border-color:var(--ruby-border);--image-shadow:0 4px 8px rgba(0, 0, 0, 0.5);--image-caption-bg:var(--ruby-background-alt);--image-caption-text:var(--ruby-text-light);--image-hover-transform:translateY(-3px);--image-hover-shadow:0 6px 12px rgba(0, 0, 0, 0.7);--image-border-radius:6px;--image-transition:all 0.3s ease}body{font-family:var(--ruby-font-family-sans);line-height:1.7;letter-spacing:.01em}.callout-title,.card .card-title,.steps h4,figure.polaroid figcaption,h1,h2,h3,h4,h5,h6{font-family:var(--ruby-font-family-serif)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-top:2em;margin-bottom:.7em;color:var(--ruby-text);letter-spacing:-.01em}h1{font-size:2.5rem;font-weight:700;margin-top:0}h1::after{content:"";bottom:0;width:60px;height:3px;border-radius:3px}h2{font-size:1.9rem;border-bottom:1px solid var(--ruby-border-light)}h3{font-size:1.6rem}h4{font-size:1.3rem}a{color:var(--link-color);text-decoration:none;transition:color .2s}.content-area a:not(.button):not(.no-underline)::after{content:"";width:100%;height:1px;bottom:0;transform:scaleX(0);transform-origin:right bottom;transition:transform .3s}.content-area a:not(.button):not(.no-underline):hover::after{transform:scaleX(1);transform-origin:left bottom}p{margin:.7em 0;padding:.3em 0;line-height:1.8}.sidebar{border-right:1px solid var(--ruby-border)}.sidebar-header{margin-bottom:1.5rem;padding-bottom:1rem}.sidebar nav li a{border-radius:4px;margin-bottom:3px;transition:.3s;padding:.6rem .8rem;font-weight:400}.sidebar nav li a:hover{background-color:var(--sidebar-link-active-bg);transform:translateX(3px)}.sidebar nav li a.active{background-color:var(--sidebar-link-active-bg);color:var(--sidebar-link-active-text);font-weight:600}.content-area{padding:2.5rem 5%}pre{background-color:var(--code-bg);border-radius:6px;padding:1.25em}code{font-family:var(--ruby-font-family-mono);font-size:.9em;border-radius:4px;padding:.2em .4em}.docmd-container,table{border-radius:6px;overflow:hidden}table{width:100%;border-collapse:separate;border-spacing:0px}th{background-color:var(--ruby-primary-light);text-align:left;font-weight:600}td{border-top:1px solid var(--ruby-border-light)}tr:hover{background-color:var(--ruby-background-alt)}.docmd-container{padding:1.2rem 1.5rem;margin:1.75rem 0;border:1px solid var(--ruby-border-light);background-color:var(--ruby-background)}.docmd-container::before{content:"";top:0;width:100%;height:3px}.docmd-container.steps::before{height:initial!important}.callout{border-width:medium medium medium 4px;border-style:none none none solid;border-color:currentcolor;border-image:none;background-color:var(--ruby-background-alt)}.callout-title{font-weight:600;margin-bottom:.75em;display:flex;align-items:center;font-size:1.1em}.callout-title::before{margin-right:.5rem;font-size:1.1em}.callout-info{border-left-color:var(--ruby-primary)}.callout-warning{border-left-color:#f39c12}.callout-warning .callout-title{color:#f39c12}.callout-success,.callout-tip{border-left-color:#2ecc71}.callout-success .callout-title,.callout-tip .callout-title{color:#2ecc71}.callout-danger{border-left-color:#e74c3c}.callout-danger .callout-title{color:#e74c3c}.card{border:none;border-radius:6px;background:linear-gradient(135deg,var(--ruby-background) 0,var(--ruby-background-alt) 100%);box-shadow:var(--shadow-md);transition:.3s;overflow:hidden}.button,.steps h4::before,button{background:linear-gradient(135deg,var(--ruby-primary) 0,var(--ruby-accent) 100%);font-weight:600;box-shadow:var(--shadow-sm)}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.card .card-title{font-weight:600;margin:0;background:linear-gradient(90deg,var(--ruby-primary-light),var(--ruby-accent-light));color:var(--ruby-primary-dark);border-bottom:1px solid var(--ruby-border)}.steps{counter-reset:step-counter 0;padding-left:1rem}.steps h4{padding-left:2.5rem;margin-top:2rem;margin-bottom:1rem}.steps h4::before{content:counter(step-counter);counter-increment:step-counter 1;position:absolute;left:0;top:50%;transform:translateY(-50%);width:1.8rem;height:1.8rem;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem}.button,button{color:#fff;border:none;padding:.6rem 1.2rem;border-radius:4px;cursor:pointer;transition:.3s}.image-gallery figcaption,figcaption{background-color:var(--image-caption-bg);color:var(--image-caption-text)}figure,img{transition:var(--image-transition)}.docmd-button:hover{color:#fff}.button:hover,button:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}figure:hover,img.with-shadow:hover{transform:var(--image-hover-transform)}.theme-toggle-button{background:0 0;color:var(--ruby-text-light);box-shadow:none}.theme-toggle-button:hover{background:var(--ruby-background-alt);color:var(--ruby-primary);box-shadow:var(--shadow-sm);transform:translateY(0)}img{height:auto;border-radius:var(--image-border-radius)}img.with-border{border:1px solid var(--image-border-color);padding:4px}.image-gallery figure,figure img{border-radius:var(--image-border-radius)}img.with-shadow{box-shadow:var(--image-shadow)}img.with-shadow:hover{box-shadow:var(--image-hover-shadow)}figure{margin:1.5em 0;text-align:center}figcaption{padding:.5em;font-size:.9em;border-radius:0 0 var(--image-border-radius) var(--image-border-radius);font-style:italic}.image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin:1.5em 0}.image-gallery figure{margin:0;height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm)}.image-gallery figure:hover{box-shadow:var(--shadow-md)}.image-gallery img{width:100%;height:100%;object-fit:cover;border-radius:var(--image-border-radius) var(--image-border-radius) 0 0}.image-gallery figcaption{padding:.5rem;font-size:.85rem;border-radius:0}.image-gallery.zoom figure:hover img{transform:scale(1.05)}img.lightbox{cursor:zoom-in}img.framed{border:8px solid #fff;box-shadow:0 0 0 1px var(--ruby-border),var(--shadow-md);border-radius:3px}figure.polaroid{background:#fff;padding:10px 10px 20px;box-shadow:var(--shadow-md);border-radius:3px}figure.polaroid img{border-radius:2px}figure.polaroid figcaption{background:#fff;color:var(--ruby-text);font-style:italic}@media (max-width:768px){.content-area{padding:1.5rem 1rem}h1{font-size:2rem}h2{font-size:1.6rem}h3{font-size:1.3rem}.image-gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.image-gallery img{height:120px}}.page-header{border-bottom:1px solid var(--ruby-border)}