@dataimago/css 0.1.0-alpha.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,1094 @@
1
+ @charset "UTF-8";
2
+ :root {
3
+ --color-palette-ink-50: #f5f5f4;
4
+ --color-palette-ink-100: #e7e5e4;
5
+ --color-palette-ink-200: #d6d3d1;
6
+ --color-palette-ink-300: #a8a29e;
7
+ --color-palette-ink-400: #78716c;
8
+ --color-palette-ink-500: #57534e;
9
+ --color-palette-ink-600: #44403c;
10
+ --color-palette-ink-700: #292524;
11
+ --color-palette-ink-800: #1c1917;
12
+ --color-palette-ink-900: #0c0a09;
13
+ --color-palette-cream-50: #fefdfb;
14
+ --color-palette-cream-100: #fdf9f2;
15
+ --color-palette-cream-200: #faf2e3;
16
+ --color-palette-cream-300: #f5e8cf;
17
+ --color-palette-cream-400: #edd9b3;
18
+ --color-palette-cream-500: #e0c088;
19
+ --color-palette-copper-50: #fdf4ee;
20
+ --color-palette-copper-100: #fbe5d1;
21
+ --color-palette-copper-200: #f6c79c;
22
+ --color-palette-copper-300: #f0a467;
23
+ --color-palette-copper-400: #ea8441;
24
+ --color-palette-copper-500: #d46820;
25
+ --color-palette-copper-600: #b55017;
26
+ --color-palette-copper-700: #913d15;
27
+ --color-palette-copper-800: #753318;
28
+ --color-palette-copper-900: #612b16;
29
+ --color-palette-accent-50: #fdf2f2;
30
+ --color-palette-accent-500: #b54a27;
31
+ --color-palette-accent-600: #9a3e20;
32
+ --color-palette-accent-700: #7d321a;
33
+ --color-palette-presentation-blue-50: #f0f8fc;
34
+ --color-palette-presentation-blue-500: #3498DB;
35
+ --color-palette-presentation-blue-600: #2980B9;
36
+ --color-palette-presentation-blue-700: #1f618d;
37
+ --color-functional-success: #27AE60;
38
+ --color-functional-warning: #F39C12;
39
+ --color-functional-error: #E74C3C;
40
+ --color-functional-info: #3498DB;
41
+ --font-family-sans: Fira Sans, system-ui, sans-serif;
42
+ --font-family-mono: JetBrains Mono, SF Mono, Monaco, Inconsolata, monospace;
43
+ --font-family-display: Josefin Sans, system-ui, sans-serif;
44
+ --font-family-brand: Futura, system-ui, sans-serif;
45
+ --font-family-math: Fira Math, Fira Sans Math, system-ui, sans-serif;
46
+ --font-size-micro: 0.75rem;
47
+ --font-size-small: 0.875rem;
48
+ --font-size-base: 1rem;
49
+ --font-size-readable: 1.125rem;
50
+ --font-size-emphasis: 1.25rem;
51
+ --font-size-heading-small: 1.5rem;
52
+ --font-size-heading-medium: 1.875rem;
53
+ --font-size-heading-large: 2.25rem;
54
+ --font-size-heading-xl: 3rem;
55
+ --font-weight-extralight: 200;
56
+ --font-weight-light: 300;
57
+ --font-weight-normal: 400;
58
+ --font-weight-medium: 500;
59
+ --font-weight-semibold: 600;
60
+ --font-weight-bold: 700;
61
+ --font-weight-heading-h1: var(--font-weight-bold);
62
+ --font-weight-heading-h2: var(--font-weight-medium);
63
+ --font-weight-heading-h3: var(--font-weight-normal);
64
+ --font-weight-heading-h4: var(--font-weight-light);
65
+ --font-weight-heading-h5: var(--font-weight-light);
66
+ --font-weight-heading-h6: var(--font-weight-light);
67
+ --font-weight-heading-subtitle: var(--font-weight-semibold);
68
+ --font-style-normal: normal;
69
+ --font-style-italic: italic;
70
+ --font-style-oblique: oblique;
71
+ --font-lineHeight-tight: 1.25;
72
+ --font-lineHeight-normal: 1.5;
73
+ --font-lineHeight-relaxed: 1.625;
74
+ --spacing-xs: 0.25rem;
75
+ --spacing-sm: 0.5rem;
76
+ --spacing-md: 1rem;
77
+ --spacing-lg: 1.5rem;
78
+ --spacing-xl: 2rem;
79
+ --spacing-2xl: 3rem;
80
+ --spacing-3xl: 4rem;
81
+ --radius-sm: 0.25rem;
82
+ --radius-md: 0.5rem;
83
+ --radius-lg: 0.75rem;
84
+ --radius-xl: 1rem;
85
+ --radius-full: 9999px;
86
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
87
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
88
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
89
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
90
+ }
91
+
92
+ :root, [data-bs-theme=light] {
93
+ --color-surface-page: #fdf9f2;
94
+ --color-surface-page-scrolled: #fdf9f2;
95
+ --color-surface-elevated: #fefdfb;
96
+ --color-surface-sunken: #faf2e3;
97
+ --color-surface-navbar: #fdf9f2;
98
+ --color-surface-navbar-scrolled: #fdf9f2;
99
+ --color-surface-code: #faf2e3;
100
+ --color-border-subtle: rgba(12, 10, 9, 0.08);
101
+ --color-border-moderate: rgba(12, 10, 9, 0.15);
102
+ --color-border-strong: rgba(12, 10, 9, 0.25);
103
+ --color-border-card: rgba(12, 10, 9, 0.15);
104
+ --color-border-code: #d6d3d1;
105
+ --color-content-primary: #0c0a09;
106
+ --color-content-secondary: #57534e;
107
+ --color-content-muted: #78716c;
108
+ --color-content-inverse: #fdf9f2;
109
+ --color-interactive-primary: #d46820;
110
+ --color-interactive-hover: #b55017;
111
+ --color-interactive-accent: #b54a27;
112
+ --color-interactive-focus: #d46820;
113
+ --color-presentation-accent: #3498DB;
114
+ --color-presentation-accent-hover: #2980B9;
115
+ --contrast-high: rgb(20, 20, 16);
116
+ --contrast-readable: rgb(20, 20, 16);
117
+ --contrast-medium: #7c7c7c;
118
+ --contrast-subtle: #7c7c7c;
119
+ --shadow-subtle: 0 1px 2px 0 rgb(20 20 16 / 0.05);
120
+ --shadow-moderate: 0 4px 6px -1px rgb(20 20 16 / 0.1);
121
+ --shadow-prominent: 0 10px 15px -3px rgb(20 20 16 / 0.1);
122
+ --border-subtle: rgba(20, 20, 16, 0.1);
123
+ --border-moderate: rgba(20, 20, 16, 0.15);
124
+ --border-focus: #3498DB;
125
+ --navigation-hover-background: rgba(20, 20, 16, 0.05);
126
+ --navigation-active-background: rgba(20, 20, 16, 0.1);
127
+ }
128
+
129
+ [data-bs-theme=dark] {
130
+ --color-surface-page: #0c0a09;
131
+ --color-surface-page-scrolled: #0c0a09;
132
+ --color-surface-elevated: #1c1917;
133
+ --color-surface-sunken: #0c0a09;
134
+ --color-surface-navbar: #0c0a09;
135
+ --color-surface-navbar-scrolled: #0c0a09;
136
+ --color-surface-code: #1c1917;
137
+ --color-border-subtle: rgba(253, 249, 242, 0.08);
138
+ --color-border-moderate: rgba(253, 249, 242, 0.15);
139
+ --color-border-strong: rgba(253, 249, 242, 0.25);
140
+ --color-border-card: rgba(253, 249, 242, 0.15);
141
+ --color-border-code: #292524;
142
+ --color-content-primary: #fdf9f2;
143
+ --color-content-secondary: #a8a29e;
144
+ --color-content-muted: #78716c;
145
+ --color-content-inverse: #0c0a09;
146
+ --color-interactive-primary: #f0a467;
147
+ --color-interactive-hover: #ea8441;
148
+ --color-interactive-accent: #b54a27;
149
+ --color-interactive-focus: #f0a467;
150
+ --color-presentation-accent: #3498DB;
151
+ --color-presentation-accent-hover: #2980B9;
152
+ --contrast-high: rgb(237, 237, 235);
153
+ --contrast-readable: rgb(237, 237, 235);
154
+ --contrast-medium: #83838f;
155
+ --contrast-subtle: #83838f;
156
+ --shadow-subtle: 0 1px 2px 0 rgb(237 237 235 / 0.03);
157
+ --shadow-moderate: 0 4px 6px -1px rgb(237 237 235 / 0.05);
158
+ --shadow-prominent: 0 10px 15px -3px rgb(237 237 235 / 0.4);
159
+ --border-subtle: rgba(237, 237, 235, 0.1);
160
+ --border-moderate: rgba(237, 237, 235, 0.15);
161
+ --border-focus: #4FC3F7;
162
+ --navigation-hover-background: rgba(237, 237, 235, 0.05);
163
+ --navigation-active-background: rgba(237, 237, 235, 0.1);
164
+ }
165
+
166
+ @media (prefers-color-scheme: dark) {
167
+ :root {
168
+ --color-surface-page: #0c0a09;
169
+ --color-surface-page-scrolled: #0c0a09;
170
+ --color-surface-elevated: #1c1917;
171
+ --color-surface-sunken: #0c0a09;
172
+ --color-surface-navbar: #0c0a09;
173
+ --color-surface-navbar-scrolled: #0c0a09;
174
+ --color-surface-code: #1c1917;
175
+ --color-border-subtle: rgba(253, 249, 242, 0.08);
176
+ --color-border-moderate: rgba(253, 249, 242, 0.15);
177
+ --color-border-strong: rgba(253, 249, 242, 0.25);
178
+ --color-border-card: rgba(253, 249, 242, 0.15);
179
+ --color-border-code: #292524;
180
+ --color-content-primary: #fdf9f2;
181
+ --color-content-secondary: #a8a29e;
182
+ --color-content-muted: #78716c;
183
+ --color-content-inverse: #0c0a09;
184
+ --color-interactive-primary: #f0a467;
185
+ --color-interactive-hover: #ea8441;
186
+ --color-interactive-accent: #b54a27;
187
+ --color-interactive-focus: #f0a467;
188
+ --color-presentation-accent: #3498DB;
189
+ --color-presentation-accent-hover: #2980B9;
190
+ --contrast-high: rgb(237, 237, 235);
191
+ --contrast-readable: rgb(237, 237, 235);
192
+ --contrast-medium: #83838f;
193
+ --contrast-subtle: #83838f;
194
+ --shadow-subtle: 0 1px 2px 0 rgb(237 237 235 / 0.03);
195
+ --shadow-moderate: 0 4px 6px -1px rgb(237 237 235 / 0.05);
196
+ --shadow-prominent: 0 10px 15px -3px rgb(237 237 235 / 0.4);
197
+ --border-subtle: rgba(237, 237, 235, 0.1);
198
+ --border-moderate: rgba(237, 237, 235, 0.15);
199
+ --border-focus: #4FC3F7;
200
+ --navigation-hover-background: rgba(237, 237, 235, 0.05);
201
+ --navigation-active-background: rgba(237, 237, 235, 0.1);
202
+ }
203
+ }
204
+ * {
205
+ box-sizing: border-box;
206
+ }
207
+
208
+ html {
209
+ font-family: var(--font-family-sans);
210
+ font-size: var(--font-size-base);
211
+ line-height: var(--font-lineHeight-normal);
212
+ color: var(--theme-text-primary);
213
+ background-color: var(--theme-body-bg);
214
+ -webkit-font-smoothing: antialiased;
215
+ -moz-osx-font-smoothing: grayscale;
216
+ }
217
+
218
+ /* Global typography hierarchy */
219
+ h1, h2, h3, h4, h5, h6 {
220
+ font-family: var(--font-family-sans) !important;
221
+ }
222
+
223
+ h1, h2, h3, h4, h5, h6 {
224
+ font-weight: var(--font-weight-semibold);
225
+ line-height: var(--font-lineHeight-tight);
226
+ margin-top: 0;
227
+ margin-bottom: var(--spacing-md);
228
+ color: var(--color-text-primary);
229
+ }
230
+
231
+ h1 {
232
+ font-size: var(--font-size-4xl);
233
+ margin-bottom: var(--spacing-lg);
234
+ }
235
+
236
+ h2 {
237
+ font-size: var(--font-size-3xl);
238
+ margin-bottom: var(--spacing-lg);
239
+ }
240
+
241
+ h3 {
242
+ font-size: var(--font-size-2xl);
243
+ }
244
+
245
+ h4 {
246
+ font-size: var(--font-size-xl);
247
+ }
248
+
249
+ h5 {
250
+ font-size: var(--font-size-lg);
251
+ }
252
+
253
+ h6 {
254
+ font-size: var(--font-size-base);
255
+ }
256
+
257
+ p {
258
+ margin-top: 0;
259
+ margin-bottom: var(--spacing-md);
260
+ line-height: var(--font-lineHeight-normal);
261
+ }
262
+
263
+ a {
264
+ color: var(--color-brand-accent);
265
+ text-decoration: underline;
266
+ text-decoration-thickness: 1px;
267
+ text-underline-offset: 2px;
268
+ transition: color 0.2s ease;
269
+ }
270
+
271
+ a:hover {
272
+ color: var(--color-brand-primary);
273
+ text-decoration-thickness: 2px;
274
+ }
275
+
276
+ a:focus {
277
+ outline: 2px solid var(--color-border-focus);
278
+ outline-offset: 2px;
279
+ border-radius: var(--radius-sm);
280
+ }
281
+
282
+ code {
283
+ font-family: var(--font-family-mono);
284
+ font-size: 0.9em;
285
+ padding: 0.1em 0.3em;
286
+ background-color: var(--color-background-surface);
287
+ border-radius: var(--radius-sm);
288
+ color: var(--color-brand-accent);
289
+ }
290
+
291
+ pre {
292
+ font-family: var(--font-family-mono);
293
+ font-size: 0.9em;
294
+ padding: var(--spacing-md);
295
+ background-color: var(--color-background-surface);
296
+ border: 1px solid var(--color-border-default);
297
+ border-radius: var(--radius-md);
298
+ overflow-x: auto;
299
+ margin-bottom: var(--spacing-md);
300
+ }
301
+
302
+ pre code {
303
+ background: transparent;
304
+ padding: 0;
305
+ color: inherit;
306
+ }
307
+
308
+ .svg-container {
309
+ display: inline-flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ transition: transform var(--logo-transition-duration) ease;
313
+ }
314
+
315
+ svg {
316
+ width: 100%;
317
+ height: auto;
318
+ max-width: 100%;
319
+ display: block;
320
+ }
321
+
322
+ .navbar-logo {
323
+ background-size: contain;
324
+ background-repeat: no-repeat;
325
+ max-height: 36px;
326
+ transition: max-height var(--logo-transition-duration) ease-in-out, transform var(--logo-transition-duration) ease-in-out, opacity var(--logo-transition-duration) ease-in-out;
327
+ will-change: max-height, transform, opacity;
328
+ }
329
+ .navbar-logo.shrink {
330
+ max-height: 28px;
331
+ }
332
+ .navbar-logo.transitioning {
333
+ opacity: 0.8;
334
+ transition: opacity 0.15s ease-in-out;
335
+ }
336
+
337
+ .navbar-brand-logo {
338
+ display: inline-flex;
339
+ align-items: center;
340
+ }
341
+ .navbar-brand-logo svg {
342
+ height: 36px;
343
+ width: auto;
344
+ transition: all var(--logo-transition-duration) ease;
345
+ }
346
+
347
+ .hex-logo-container {
348
+ position: relative;
349
+ display: inline-block;
350
+ margin: 0 auto;
351
+ }
352
+ .hex-logo-container svg {
353
+ width: 280px;
354
+ height: auto;
355
+ transition: all var(--logo-transition-duration) ease;
356
+ }
357
+ @media (max-width: 768px) {
358
+ .hex-logo-container svg {
359
+ width: 200px;
360
+ }
361
+ }
362
+
363
+ @media (prefers-reduced-motion: no-preference) {
364
+ .landing-logo {
365
+ animation: gentle-float 6s ease-in-out infinite;
366
+ }
367
+ .landing-logo:hover {
368
+ animation-play-state: paused;
369
+ transform: scale(1.05);
370
+ }
371
+ }
372
+ @keyframes gentle-float {
373
+ 0%, 100% {
374
+ transform: translateY(0px);
375
+ }
376
+ 50% {
377
+ transform: translateY(-10px);
378
+ }
379
+ }
380
+ .footer-quarto-logo {
381
+ display: inline-flex;
382
+ align-items: center;
383
+ }
384
+ .footer-quarto-logo svg {
385
+ height: 24px;
386
+ width: auto;
387
+ transition: all var(--logo-transition-duration) ease;
388
+ }
389
+ .footer-quarto-logo path {
390
+ transition: fill var(--logo-transition-duration) ease;
391
+ }
392
+ .footer-quarto-logo:hover path, a:hover .footer-quarto-logo path {
393
+ fill: var(--logo-hover-fill);
394
+ }
395
+
396
+ .social-icons {
397
+ display: flex;
398
+ gap: 1rem;
399
+ align-items: center;
400
+ }
401
+ .social-icons a {
402
+ display: inline-flex;
403
+ align-items: center;
404
+ transition: transform var(--logo-transition-duration) ease;
405
+ }
406
+ .social-icons a:hover {
407
+ transform: translateY(-2px);
408
+ }
409
+ .social-icons svg, .social-icons iconify-icon {
410
+ width: 24px;
411
+ height: 24px;
412
+ transition: all var(--logo-transition-duration) ease;
413
+ }
414
+
415
+ .navbar-nav .nav-link[href*="github.com"], .navbar-nav .nav-link[href*="bsky.app"] {
416
+ display: inline-flex;
417
+ align-items: center;
418
+ }
419
+ .navbar-nav .nav-link[href*="github.com"] iconify-icon, .navbar-nav .nav-link[href*="bsky.app"] iconify-icon {
420
+ font-size: 1.2rem;
421
+ transition: color var(--logo-transition-duration) ease;
422
+ }
423
+ .navbar-nav .nav-link[href*="github.com"]:hover iconify-icon, .navbar-nav .nav-link[href*="bsky.app"]:hover iconify-icon {
424
+ color: var(--theme-text-hover);
425
+ }
426
+
427
+ @media (prefers-reduced-motion: no-preference) {
428
+ .svg-pulse {
429
+ animation: svg-pulse 2s ease-in-out infinite;
430
+ }
431
+ .svg-rotate {
432
+ animation: svg-rotate 20s linear infinite;
433
+ }
434
+ }
435
+ @keyframes svg-pulse {
436
+ 0%, 100% {
437
+ opacity: 1;
438
+ }
439
+ 50% {
440
+ opacity: 0.7;
441
+ }
442
+ }
443
+ @keyframes svg-rotate {
444
+ from {
445
+ transform: rotate(0deg);
446
+ }
447
+ to {
448
+ transform: rotate(360deg);
449
+ }
450
+ }
451
+ .svg-scale-hover {
452
+ transition: transform var(--logo-transition-duration) ease;
453
+ }
454
+ .svg-scale-hover:hover {
455
+ transform: scale(1.1);
456
+ }
457
+
458
+ .theme-svg path, .theme-svg circle, .theme-svg rect, .theme-svg polygon {
459
+ fill: var(--logo-default-fill);
460
+ transition: fill var(--logo-transition-duration) ease;
461
+ }
462
+ .theme-svg.svg-hover path, .theme-svg.svg-hover circle, .theme-svg.svg-hover rect, .theme-svg.svg-hover polygon, .theme-svg:hover path, .theme-svg:hover circle, .theme-svg:hover rect, .theme-svg:hover polygon {
463
+ fill: var(--logo-hover-fill);
464
+ stroke: var(--logo-hover-stroke, transparent);
465
+ }
466
+ .theme-svg.logo-navbar path, .theme-svg.logo-navbar circle, .theme-svg.logo-navbar rect, .theme-svg.logo-navbar polygon {
467
+ fill: var(--logo-default-fill);
468
+ }
469
+ .theme-svg.logo-hex path, .theme-svg.logo-hex circle, .theme-svg.logo-hex rect, .theme-svg.logo-hex polygon {
470
+ fill: var(--logo-default-fill);
471
+ }
472
+
473
+ [data-bs-theme=light] .theme-adaptive-svg {
474
+ filter: none;
475
+ }
476
+
477
+ [data-bs-theme=dark] .theme-adaptive-svg {
478
+ filter: invert(1) hue-rotate(180deg);
479
+ }
480
+
481
+ .svg-loading {
482
+ position: relative;
483
+ }
484
+ .svg-loading::after {
485
+ content: "";
486
+ position: absolute;
487
+ top: 50%;
488
+ left: 50%;
489
+ width: 20px;
490
+ height: 20px;
491
+ margin: -10px 0 0 -10px;
492
+ border: 2px solid var(--theme-text-secondary);
493
+ border-top-color: transparent;
494
+ border-radius: 50%;
495
+ }
496
+ .svg-loading svg {
497
+ opacity: 0.3;
498
+ }
499
+
500
+ @media (prefers-reduced-motion: no-preference) {
501
+ .svg-loading::after {
502
+ animation: svg-spinner 0.8s linear infinite;
503
+ }
504
+ }
505
+ @keyframes svg-spinner {
506
+ to {
507
+ transform: rotate(360deg);
508
+ }
509
+ }
510
+ .svg-aspect-ratio {
511
+ position: relative;
512
+ width: 100%;
513
+ }
514
+ .svg-aspect-ratio::before {
515
+ content: "";
516
+ display: block;
517
+ padding-bottom: 100%;
518
+ }
519
+ .svg-aspect-ratio svg {
520
+ position: absolute;
521
+ top: 0;
522
+ left: 0;
523
+ width: 100%;
524
+ height: 100%;
525
+ }
526
+
527
+ .svg-xs {
528
+ max-width: 16px;
529
+ }
530
+
531
+ .svg-sm {
532
+ max-width: 24px;
533
+ }
534
+
535
+ .svg-md {
536
+ max-width: 32px;
537
+ }
538
+
539
+ .svg-lg {
540
+ max-width: 48px;
541
+ }
542
+
543
+ .svg-xl {
544
+ max-width: 64px;
545
+ }
546
+
547
+ .svg-decorative {
548
+ aria-hidden: true;
549
+ }
550
+
551
+ .svg-icon[role=img] {
552
+ pointer-events: none;
553
+ }
554
+
555
+ .svg-interactive {
556
+ cursor: pointer;
557
+ transition: all var(--logo-transition-duration) ease;
558
+ }
559
+ .svg-interactive:focus {
560
+ outline: 2px solid var(--theme-focus-color);
561
+ outline-offset: 2px;
562
+ }
563
+ .svg-interactive:focus:not(:focus-visible) {
564
+ outline: none;
565
+ }
566
+
567
+ .svg-accelerated {
568
+ transform: translateZ(0);
569
+ backface-visibility: hidden;
570
+ perspective: 1000px;
571
+ }
572
+
573
+ @media (prefers-reduced-motion: reduce) {
574
+ .svg-container,
575
+ .navbar-logo,
576
+ .landing-logo,
577
+ .svg-pulse,
578
+ .svg-rotate,
579
+ .svg-scale-hover {
580
+ animation: none !important;
581
+ transition: none !important;
582
+ }
583
+ }
584
+ .di-callout, .proof, .theorem, .definition, .proposition {
585
+ padding: var(--spacing-md, 1rem) var(--spacing-md, 1rem) var(--spacing-md, 1rem) var(--spacing-lg, 1.5rem);
586
+ margin: var(--spacing-lg, 1.5rem) 0;
587
+ border-radius: var(--radius-sm, 4px);
588
+ background-color: var(--color-surface-sunken);
589
+ border-left: 4px solid var(--color-interactive-primary);
590
+ }
591
+ .di-callout .di-callout-title, .di-callout .proof-title, .proof .di-callout-title, .proof .proof-title, .di-callout .theorem-title, .proof .theorem-title, .di-callout .definition-title, .proof .definition-title, .di-callout .proposition-title, .proof .proposition-title, .theorem .di-callout-title, .theorem .proof-title, .theorem .theorem-title, .theorem .definition-title, .theorem .proposition-title, .definition .di-callout-title, .definition .proof-title, .definition .theorem-title, .definition .definition-title, .definition .proposition-title, .proposition .di-callout-title, .proposition .proof-title, .proposition .theorem-title, .proposition .definition-title, .proposition .proposition-title {
592
+ font-family: var(--font-family-display);
593
+ font-weight: var(--font-weight-semibold);
594
+ margin-bottom: 0.5rem;
595
+ color: var(--color-content-primary);
596
+ }
597
+ .di-callout > :last-child, .proof > :last-child, .theorem > :last-child, .definition > :last-child, .proposition > :last-child {
598
+ margin-bottom: 0;
599
+ }
600
+
601
+ .di-callout-insight {
602
+ border-left-color: var(--color-interactive-accent);
603
+ }
604
+ .di-callout-insight .di-callout-title, .di-callout-insight .proof-title, .di-callout-insight .theorem-title, .di-callout-insight .definition-title, .di-callout-insight .proposition-title {
605
+ color: var(--color-interactive-accent);
606
+ }
607
+
608
+ .di-callout-tip {
609
+ border-left-color: var(--color-presentation-accent);
610
+ }
611
+ .di-callout-tip .di-callout-title, .di-callout-tip .proof-title, .di-callout-tip .theorem-title, .di-callout-tip .definition-title, .di-callout-tip .proposition-title {
612
+ color: var(--color-presentation-accent);
613
+ }
614
+
615
+ .di-callout-proof, .proof {
616
+ margin: var(--spacing-md, 1rem) 0;
617
+ }
618
+ .di-callout-proof .di-callout-title, .di-callout-proof .proof-title, .proof .di-callout-title, .proof .proof-title, .di-callout-proof .theorem-title, .proof .theorem-title, .di-callout-proof .definition-title, .proof .definition-title, .di-callout-proof .proposition-title, .proof .proposition-title {
619
+ font-style: italic;
620
+ font-weight: var(--font-weight-medium);
621
+ color: var(--color-content-primary);
622
+ }
623
+ .di-callout-proof::after, .proof::after {
624
+ content: "□";
625
+ float: right;
626
+ color: var(--color-content-secondary);
627
+ }
628
+
629
+ .di-callout-rich {
630
+ padding: 0;
631
+ margin: 0.6em 0 0.8em 0;
632
+ border-radius: 6px;
633
+ border-left-width: 4px;
634
+ border-style: solid;
635
+ overflow: hidden;
636
+ }
637
+ .di-callout-rich .di-callout-title, .di-callout-rich .proof-title, .di-callout-rich .theorem-title, .di-callout-rich .definition-title, .di-callout-rich .proposition-title {
638
+ margin: 0;
639
+ padding: 0.35em 0.75em;
640
+ font-family: var(--font-family-display);
641
+ font-weight: var(--font-weight-semibold);
642
+ border-bottom: 1px solid currentColor;
643
+ }
644
+ .di-callout-rich > :not(.di-callout-title):not(.proof-title):not(.theorem-title):not(.definition-title):not(.proposition-title) {
645
+ padding-left: 0.9em;
646
+ padding-right: 0.9em;
647
+ }
648
+ .di-callout-rich > :last-child {
649
+ padding-bottom: 0.55em;
650
+ }
651
+
652
+ .di-callout-rich.di-callout-theorem, .di-callout-rich.theorem, .di-callout-rich.definition, .di-callout-rich.proposition {
653
+ background: linear-gradient(135deg, color-mix(in srgb, var(--color-interactive-primary) 10%, transparent), color-mix(in srgb, var(--color-interactive-primary) 3%, transparent));
654
+ border-color: color-mix(in srgb, var(--color-interactive-primary) 30%, transparent);
655
+ border-left-color: var(--color-interactive-primary);
656
+ }
657
+ .di-callout-rich.di-callout-theorem .di-callout-title, .di-callout-rich.di-callout-theorem .proof-title, .di-callout-rich.di-callout-theorem .theorem-title, .di-callout-rich.di-callout-theorem .definition-title, .di-callout-rich.di-callout-theorem .proposition-title, .di-callout-rich.theorem .di-callout-title, .di-callout-rich.theorem .proof-title, .di-callout-rich.theorem .theorem-title, .di-callout-rich.theorem .definition-title, .di-callout-rich.theorem .proposition-title, .di-callout-rich.definition .di-callout-title, .di-callout-rich.definition .proof-title, .di-callout-rich.definition .theorem-title, .di-callout-rich.definition .definition-title, .di-callout-rich.definition .proposition-title, .di-callout-rich.proposition .di-callout-title, .di-callout-rich.proposition .proof-title, .di-callout-rich.proposition .theorem-title, .di-callout-rich.proposition .definition-title, .di-callout-rich.proposition .proposition-title {
658
+ background: color-mix(in srgb, var(--color-interactive-primary) 18%, transparent);
659
+ color: color-mix(in srgb, var(--color-interactive-primary) 80%, var(--color-content-primary));
660
+ border-bottom-color: color-mix(in srgb, var(--color-interactive-primary) 28%, transparent);
661
+ }
662
+
663
+ .di-callout-rich.di-callout-insight {
664
+ background: linear-gradient(135deg, color-mix(in srgb, var(--color-interactive-accent) 10%, transparent), color-mix(in srgb, var(--color-interactive-accent) 3%, transparent));
665
+ border-color: color-mix(in srgb, var(--color-interactive-accent) 30%, transparent);
666
+ border-left-color: var(--color-interactive-accent);
667
+ }
668
+ .di-callout-rich.di-callout-insight .di-callout-title, .di-callout-rich.di-callout-insight .proof-title, .di-callout-rich.di-callout-insight .theorem-title, .di-callout-rich.di-callout-insight .definition-title, .di-callout-rich.di-callout-insight .proposition-title {
669
+ background: color-mix(in srgb, var(--color-interactive-accent) 18%, transparent);
670
+ color: color-mix(in srgb, var(--color-interactive-accent) 80%, var(--color-content-primary));
671
+ border-bottom-color: color-mix(in srgb, var(--color-interactive-accent) 28%, transparent);
672
+ }
673
+
674
+ .di-callout-rich.di-callout-tip {
675
+ background: linear-gradient(135deg, color-mix(in srgb, var(--color-presentation-accent) 8%, transparent), color-mix(in srgb, var(--color-presentation-accent) 3%, transparent));
676
+ border-color: color-mix(in srgb, var(--color-presentation-accent) 20%, transparent);
677
+ border-left-color: var(--color-presentation-accent);
678
+ }
679
+ .di-callout-rich.di-callout-tip .di-callout-title, .di-callout-rich.di-callout-tip .proof-title, .di-callout-rich.di-callout-tip .theorem-title, .di-callout-rich.di-callout-tip .definition-title, .di-callout-rich.di-callout-tip .proposition-title {
680
+ background: color-mix(in srgb, var(--color-presentation-accent) 15%, transparent);
681
+ color: var(--color-presentation-accent-hover);
682
+ border-bottom-color: color-mix(in srgb, var(--color-presentation-accent) 25%, transparent);
683
+ }
684
+
685
+ .di-figure-box {
686
+ border: 1px solid var(--color-border-moderate);
687
+ padding: 4px;
688
+ background-color: var(--color-surface-sunken);
689
+ display: inline-block;
690
+ cursor: pointer;
691
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
692
+ }
693
+ .di-figure-box:hover {
694
+ transform: translateY(-2px);
695
+ box-shadow: var(--shadow-prominent, 0 4px 12px rgba(0, 0, 0, 0.15));
696
+ border-color: var(--color-interactive-primary);
697
+ }
698
+ .di-figure-box:active {
699
+ transform: translateY(-1px);
700
+ box-shadow: var(--shadow-moderate, 0 2px 8px rgba(0, 0, 0, 0.12));
701
+ }
702
+ .di-figure-box:focus-visible {
703
+ outline: 2px solid var(--color-interactive-focus);
704
+ outline-offset: 2px;
705
+ }
706
+
707
+ .di-figure-modal {
708
+ display: none;
709
+ position: fixed;
710
+ inset: 0;
711
+ z-index: 9999;
712
+ background-color: color-mix(in srgb, var(--color-content-primary) 92%, transparent);
713
+ backdrop-filter: blur(4px);
714
+ -webkit-backdrop-filter: blur(4px);
715
+ }
716
+ .di-figure-modal.is-open {
717
+ display: flex;
718
+ align-items: center;
719
+ justify-content: center;
720
+ animation: di-figure-modal-fade-in 0.25s ease;
721
+ }
722
+ .di-figure-modal .di-figure-modal-content {
723
+ position: relative;
724
+ max-width: 95vw;
725
+ max-height: 95vh;
726
+ animation: di-figure-modal-zoom-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);
727
+ }
728
+ .di-figure-modal .di-figure-modal-content img {
729
+ width: auto;
730
+ height: auto;
731
+ max-width: 95vw;
732
+ max-height: 95vh;
733
+ object-fit: contain;
734
+ border: 2px solid var(--color-interactive-primary);
735
+ background-color: var(--color-surface-elevated);
736
+ padding: 8px;
737
+ box-shadow: 0 20px 60px color-mix(in srgb, var(--color-content-primary) 40%, transparent);
738
+ }
739
+ .di-figure-modal .di-figure-modal-close {
740
+ position: absolute;
741
+ top: -40px;
742
+ right: 0;
743
+ font-size: 2rem;
744
+ color: var(--color-content-inverse);
745
+ background: none;
746
+ border: none;
747
+ cursor: pointer;
748
+ padding: 0.5rem;
749
+ line-height: 1;
750
+ transition: transform 0.2s ease, color 0.2s ease;
751
+ font-family: inherit;
752
+ }
753
+ .di-figure-modal .di-figure-modal-close:hover {
754
+ transform: scale(1.2);
755
+ color: var(--color-interactive-primary);
756
+ }
757
+ .di-figure-modal .di-figure-modal-close:focus-visible {
758
+ outline: 2px solid var(--color-interactive-primary);
759
+ outline-offset: 4px;
760
+ border-radius: var(--radius-sm, 0.25rem);
761
+ }
762
+ .di-figure-modal .di-figure-modal-caption {
763
+ position: absolute;
764
+ bottom: -60px;
765
+ left: 0;
766
+ right: 0;
767
+ text-align: center;
768
+ color: var(--color-content-inverse);
769
+ font-size: var(--font-size-small, 0.9rem);
770
+ font-style: italic;
771
+ padding: 0 2rem;
772
+ line-height: var(--line-height-normal, 1.4);
773
+ }
774
+
775
+ @keyframes di-figure-modal-fade-in {
776
+ from {
777
+ opacity: 0;
778
+ }
779
+ to {
780
+ opacity: 1;
781
+ }
782
+ }
783
+ @keyframes di-figure-modal-zoom-in {
784
+ from {
785
+ opacity: 0;
786
+ transform: scale(0.9);
787
+ }
788
+ to {
789
+ opacity: 1;
790
+ transform: scale(1);
791
+ }
792
+ }
793
+ @media (prefers-reduced-motion: reduce) {
794
+ .di-figure-box {
795
+ transition: none !important;
796
+ }
797
+ .di-figure-box:hover, .di-figure-box:active {
798
+ transform: none !important;
799
+ }
800
+ .di-figure-modal,
801
+ .di-figure-modal .di-figure-modal-content,
802
+ .di-figure-modal .di-figure-modal-close {
803
+ animation: none !important;
804
+ transition: none !important;
805
+ }
806
+ .di-figure-modal .di-figure-modal-close:hover {
807
+ transform: none !important;
808
+ }
809
+ }
810
+ .di-card {
811
+ background: var(--color-surface-elevated);
812
+ border: 1px solid var(--color-border-subtle);
813
+ border-radius: var(--radius-component);
814
+ padding: var(--spacing-component-padding);
815
+ box-shadow: var(--shadow-moderate);
816
+ transition: box-shadow 0.2s ease, transform 0.2s ease;
817
+ }
818
+
819
+ .di-card:hover {
820
+ box-shadow: var(--shadow-prominent);
821
+ transform: translateY(-2px);
822
+ }
823
+
824
+ .di-card-title {
825
+ margin: 0;
826
+ font-weight: var(--font-weight-semibold);
827
+ font-size: var(--font-size-readable);
828
+ color: var(--color-content-primary);
829
+ }
830
+
831
+ .di-button {
832
+ display: inline-flex;
833
+ align-items: center;
834
+ justify-content: center;
835
+ gap: var(--spacing-micro-tight);
836
+ padding: var(--spacing-micro-normal) var(--spacing-component-padding);
837
+ border: 1px solid var(--color-border-subtle);
838
+ border-radius: var(--radius-component);
839
+ background: var(--color-surface-elevated);
840
+ color: var(--color-content-primary);
841
+ text-decoration: none;
842
+ font-weight: var(--font-weight-medium);
843
+ font-size: var(--font-size-base);
844
+ cursor: pointer;
845
+ transition: all var(--transition-standard);
846
+ min-height: 2.5rem;
847
+ font-family: inherit;
848
+ }
849
+
850
+ .di-button:hover {
851
+ background: var(--color-interactive-primary);
852
+ color: var(--color-content-inverse);
853
+ border-color: var(--color-interactive-primary);
854
+ transform: translateY(-1px);
855
+ box-shadow: var(--shadow-prominent);
856
+ }
857
+
858
+ .di-button:focus {
859
+ outline: 2px solid var(--color-interactive-focus);
860
+ outline-offset: 2px;
861
+ }
862
+
863
+ .di-button-primary {
864
+ background: var(--color-interactive-primary);
865
+ color: var(--color-content-inverse);
866
+ border-color: var(--color-interactive-primary);
867
+ }
868
+
869
+ .di-button-primary:hover {
870
+ background: var(--color-interactive-hover);
871
+ border-color: var(--color-interactive-hover);
872
+ }
873
+
874
+ .di-button:hover {
875
+ background: var(--color-brand-accent);
876
+ color: var(--color-text-inverse);
877
+ border-color: var(--color-brand-accent);
878
+ transform: translateY(-1px);
879
+ box-shadow: var(--shadow-md);
880
+ text-decoration: none;
881
+ }
882
+
883
+ .di-button:focus {
884
+ outline: 2px solid var(--color-border-focus);
885
+ outline-offset: 2px;
886
+ }
887
+
888
+ .di-button-primary {
889
+ background: var(--color-brand-primary);
890
+ color: var(--color-text-inverse);
891
+ border-color: var(--color-brand-primary);
892
+ }
893
+
894
+ .di-button-primary:hover {
895
+ background: var(--color-brand-accent);
896
+ border-color: var(--color-brand-accent);
897
+ }
898
+
899
+ .di-hex-logo {
900
+ transition: max-height 0.25s ease-in-out, transform 0.25s ease-in-out;
901
+ cursor: pointer;
902
+ max-width: 100%;
903
+ height: auto;
904
+ }
905
+ .di-hex-logo:hover {
906
+ transform: scale(1.05);
907
+ }
908
+ @media (max-width: 768px) {
909
+ .di-hex-logo {
910
+ width: 150px;
911
+ }
912
+ }
913
+ @media (max-width: 480px) {
914
+ .di-hex-logo {
915
+ width: 120px;
916
+ }
917
+ }
918
+
919
+ .di-m-0 {
920
+ margin: 0;
921
+ }
922
+
923
+ .di-m-xs {
924
+ margin: var(--spacing-xs);
925
+ }
926
+
927
+ .di-m-sm {
928
+ margin: var(--spacing-sm);
929
+ }
930
+
931
+ .di-m-md {
932
+ margin: var(--spacing-md);
933
+ }
934
+
935
+ .di-m-lg {
936
+ margin: var(--spacing-lg);
937
+ }
938
+
939
+ .di-m-xl {
940
+ margin: var(--spacing-xl);
941
+ }
942
+
943
+ .di-p-0 {
944
+ padding: 0;
945
+ }
946
+
947
+ .di-p-xs {
948
+ padding: var(--spacing-xs);
949
+ }
950
+
951
+ .di-p-sm {
952
+ padding: var(--spacing-sm);
953
+ }
954
+
955
+ .di-p-md {
956
+ padding: var(--spacing-md);
957
+ }
958
+
959
+ .di-p-lg {
960
+ padding: var(--spacing-lg);
961
+ }
962
+
963
+ .di-p-xl {
964
+ padding: var(--spacing-xl);
965
+ }
966
+
967
+ .di-block {
968
+ display: block;
969
+ }
970
+
971
+ .di-inline {
972
+ display: inline;
973
+ }
974
+
975
+ .di-flex {
976
+ display: flex;
977
+ }
978
+
979
+ .di-hidden {
980
+ display: none;
981
+ }
982
+
983
+ .di-justify-center {
984
+ justify-content: center;
985
+ }
986
+
987
+ .di-items-center {
988
+ align-items: center;
989
+ }
990
+
991
+ .di-flex-col {
992
+ flex-direction: column;
993
+ }
994
+
995
+ .di-text-center {
996
+ text-align: center;
997
+ }
998
+
999
+ .di-text-left {
1000
+ text-align: left;
1001
+ }
1002
+
1003
+ .di-text-right {
1004
+ text-align: right;
1005
+ }
1006
+
1007
+ .di-text-primary {
1008
+ color: var(--color-text-primary);
1009
+ }
1010
+
1011
+ .di-text-secondary {
1012
+ color: var(--color-text-secondary);
1013
+ }
1014
+
1015
+ .di-text-muted {
1016
+ color: var(--color-text-muted);
1017
+ }
1018
+
1019
+ .di-bg-page {
1020
+ background-color: var(--color-background-page);
1021
+ }
1022
+
1023
+ .di-bg-surface {
1024
+ background-color: var(--color-background-surface);
1025
+ }
1026
+
1027
+ .sr-only {
1028
+ position: absolute !important;
1029
+ width: 1px !important;
1030
+ height: 1px !important;
1031
+ padding: 0 !important;
1032
+ margin: -1px !important;
1033
+ overflow: hidden !important;
1034
+ clip: rect(0, 0, 0, 0) !important;
1035
+ white-space: nowrap !important;
1036
+ border: 0 !important;
1037
+ }
1038
+
1039
+ *:focus {
1040
+ outline: 2px solid var(--color-border-focus) !important;
1041
+ outline-offset: 2px !important;
1042
+ border-radius: var(--radius-sm) !important;
1043
+ }
1044
+
1045
+ .di-button,
1046
+ button,
1047
+ [role=button],
1048
+ a {
1049
+ min-height: 44px;
1050
+ min-width: 44px;
1051
+ display: inline-flex;
1052
+ align-items: center;
1053
+ justify-content: center;
1054
+ }
1055
+
1056
+ @media (prefers-reduced-motion: reduce) {
1057
+ *,
1058
+ *::before,
1059
+ *::after {
1060
+ animation-duration: 0.01ms !important;
1061
+ animation-iteration-count: 1 !important;
1062
+ transition-duration: 0.01ms !important;
1063
+ scroll-behavior: auto !important;
1064
+ }
1065
+ .di-card:hover,
1066
+ .di-button:hover,
1067
+ .di-button:focus,
1068
+ a:hover,
1069
+ button:hover,
1070
+ [role=button]:hover {
1071
+ transform: none !important;
1072
+ }
1073
+ [data-parallax],
1074
+ [data-scroll-effect] {
1075
+ transform: none !important;
1076
+ }
1077
+ }
1078
+ @media (prefers-reduced-motion: no-preference) {
1079
+ html {
1080
+ scroll-behavior: smooth;
1081
+ }
1082
+ }
1083
+ @media (prefers-contrast: high) {
1084
+ :root {
1085
+ --color-brand-primary: #000000;
1086
+ --color-brand-accent: #0000FF;
1087
+ --color-text-primary: #000000;
1088
+ --color-text-inverse: #FFFFFF;
1089
+ --color-background-page: #FFFFFF;
1090
+ --color-background-surface: #F0F0F0;
1091
+ --color-border-default: #000000;
1092
+ --color-border-focus: #FF0000;
1093
+ }
1094
+ }