@cirthcss/cirth 0.14.1 → 0.15.0-beta.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.
package/dist/cirth.css CHANGED
@@ -45,20 +45,23 @@ section {
45
45
  }
46
46
 
47
47
  .container, .container-fluid {
48
- grid-template-columns: minmax(var(--cirth-spacing), 1fr) minmax(0, 1fr) minmax(var(--cirth-spacing), 1fr);
49
48
  display: grid;
50
49
  }
51
50
 
52
51
  .container > *, .container-fluid > * {
53
- grid-column: 2;
52
+ grid-column: content;
54
53
  }
55
54
 
56
55
  .container {
57
- grid-template-columns: minmax(var(--cirth-spacing), 1fr) minmax(0, var(--cirth-container-max-width)) minmax(var(--cirth-spacing), 1fr);
56
+ grid-template-columns: [full-start] minmax(var(--cirth-container-gutter), 1fr) [content-start] minmax(0, var(--cirth-container-max-width)) [content-end] minmax(var(--cirth-container-gutter), 1fr) [full-end];
58
57
  }
59
58
 
60
- .breakout {
61
- grid-column: 1 / -1;
59
+ .container-fluid {
60
+ grid-template-columns: [full-start] var(--cirth-container-gutter) [content-start] minmax(0, 1fr) [content-end] var(--cirth-container-gutter) [full-end];
61
+ }
62
+
63
+ .container > .breakout {
64
+ grid-column: full;
62
65
  }
63
66
 
64
67
  .row {
@@ -99,6 +102,10 @@ section {
99
102
  overflow: auto;
100
103
  }
101
104
 
105
+ .overflow-auto:focus-visible {
106
+ outline: var(--cirth-outline-width) solid var(--cirth-primary-focus);
107
+ }
108
+
102
109
  b, strong {
103
110
  font-weight: bolder;
104
111
  }
@@ -119,11 +126,9 @@ sup {
119
126
  }
120
127
 
121
128
  address, blockquote, dl, ol, p, pre, table, ul {
122
- margin-top: 0;
123
- margin-bottom: var(--cirth-typography-spacing-vertical);
129
+ margin-block: 0 var(--cirth-typography-spacing-vertical);
124
130
  color: var(--cirth-color);
125
131
  font-style: normal;
126
- font-weight: var(--cirth-font-weight);
127
132
  }
128
133
 
129
134
  p {
@@ -131,8 +136,7 @@ p {
131
136
  }
132
137
 
133
138
  h1, h2, h3, h4, h5, h6 {
134
- margin-top: 0;
135
- margin-bottom: var(--cirth-typography-spacing-vertical);
139
+ margin-block: 0 calc(var(--cirth-typography-spacing-vertical) * .5);
136
140
  color: var(--cirth-color);
137
141
  font-weight: var(--cirth-font-weight);
138
142
  font-size: var(--cirth-font-size);
@@ -170,13 +174,12 @@ h6 {
170
174
  margin-top: var(--cirth-typography-spacing-top);
171
175
  }
172
176
 
173
- p, hgroup {
177
+ hgroup {
174
178
  margin-bottom: var(--cirth-typography-spacing-vertical);
175
179
  }
176
180
 
177
181
  hgroup > * {
178
- margin-top: 0;
179
- margin-bottom: 0;
182
+ margin-block: 0;
180
183
  }
181
184
 
182
185
  hgroup > :not(:first-child):last-child {
@@ -198,6 +201,18 @@ ul li {
198
201
  list-style: square;
199
202
  }
200
203
 
204
+ dt {
205
+ font-weight: var(--cirth-font-weight-semibold);
206
+ }
207
+
208
+ dd {
209
+ margin-inline-start: 0;
210
+ }
211
+
212
+ dl > dd + dt {
213
+ margin-top: calc(var(--cirth-typography-spacing-vertical) * .5);
214
+ }
215
+
201
216
  mark {
202
217
  padding: 0 var(--cirth-space-1);
203
218
  background-color: var(--cirth-mark-background-color);
@@ -210,7 +225,10 @@ blockquote {
210
225
  padding: var(--cirth-spacing);
211
226
  border-inline-start: var(--cirth-border-width-4) solid var(--cirth-blockquote-border-color);
212
227
  border-inline-end: none;
213
- display: block;
228
+ }
229
+
230
+ blockquote > :last-child, blockquote > :has( + footer) {
231
+ margin-bottom: 0;
214
232
  }
215
233
 
216
234
  blockquote footer {
@@ -282,10 +300,14 @@ del {
282
300
  --cirth-underline: var(--cirth-contrast-hover-underline);
283
301
  }
284
302
 
285
- :where(a:not([role="button"])):visited:not(.secondary, .contrast, details.dropdown a, [aria-current]:not([aria-current="false"]), :hover, :active, :focus, nav a) {
303
+ :where(a:not([role="button"])):visited:not(.secondary, .contrast, details.dropdown a, [aria-current]:not([aria-current="false"]), :hover, :active, :focus, nav a, :has(article)) {
286
304
  color: var(--cirth-link-visited-color);
287
305
  }
288
306
 
307
+ :where(a:not([role="button"])):has(article) {
308
+ --cirth-color: inherit;
309
+ }
310
+
289
311
  a[role="button"] {
290
312
  display: inline-block;
291
313
  }
@@ -306,7 +328,7 @@ button, [type="submit"], [type="reset"], [type="button"], [role="button"] {
306
328
  --cirth-color: var(--cirth-primary-inverse);
307
329
  --cirth-box-shadow: var(--cirth-button-box-shadow, 0 0 0 #0000);
308
330
  max-width: 100%;
309
- min-block-size: calc(var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
331
+ min-block-size: max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
310
332
  padding: var(--cirth-form-element-spacing-vertical) var(--cirth-form-element-spacing-horizontal);
311
333
  border: var(--cirth-border-width) solid var(--cirth-border-color);
312
334
  border-radius: var(--cirth-border-radius);
@@ -331,7 +353,7 @@ button, [type="submit"], [type="reset"], [type="button"], [role="button"] {
331
353
  --cirth-color: var(--cirth-primary-inverse);
332
354
  --cirth-box-shadow: var(--cirth-button-box-shadow, 0 0 0 #0000);
333
355
  max-width: 100%;
334
- min-block-size: calc(var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
356
+ min-block-size: max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
335
357
  padding: var(--cirth-form-element-spacing-vertical) var(--cirth-form-element-spacing-horizontal);
336
358
  border: var(--cirth-border-width) solid var(--cirth-border-color);
337
359
  border-radius: var(--cirth-border-radius);
@@ -372,11 +394,11 @@ button[aria-current]:not([aria-current="false"]), button:is(:hover, :active, :fo
372
394
  }
373
395
 
374
396
  button:active, [type="submit"]:active, [type="reset"]:active, [type="button"]:active, [role="button"]:active {
375
- transform: translateY(.0625rem);
397
+ background-image: linear-gradient(#0000001f 0 0);
376
398
  }
377
399
 
378
400
  [type="file"]::file-selector-button:active {
379
- transform: translateY(.0625rem);
401
+ background-image: linear-gradient(#0000001f 0 0);
380
402
  }
381
403
 
382
404
  button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-visible, [type="submit"]:focus-visible, [type="submit"][aria-current]:not([aria-current="false"]):focus-visible, [type="reset"]:focus-visible, [type="reset"][aria-current]:not([aria-current="false"]):focus-visible, [type="button"]:focus-visible, [type="button"][aria-current]:not([aria-current="false"]):focus-visible, [role="button"]:focus-visible, [role="button"][aria-current]:not([aria-current="false"]):focus-visible {
@@ -385,18 +407,6 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
385
407
  outline: var(--cirth-outline-width) solid transparent;
386
408
  }
387
409
 
388
- [type="file"]::file-selector-button:focus-visible {
389
- --cirth-box-shadow: var(--cirth-button-hover-box-shadow, 0 0 0 #0000),
390
- 0 0 0 var(--cirth-outline-width) var(--cirth-primary-focus);
391
- outline: var(--cirth-outline-width) solid transparent;
392
- }
393
-
394
- [type="file"]::file-selector-button:is():focus-visible {
395
- --cirth-box-shadow: var(--cirth-button-hover-box-shadow, 0 0 0 #0000),
396
- 0 0 0 var(--cirth-outline-width) var(--cirth-primary-focus);
397
- outline: var(--cirth-outline-width) solid transparent;
398
- }
399
-
400
410
  [type="submit"], [type="reset"], [type="button"] {
401
411
  margin-bottom: var(--cirth-spacing);
402
412
  }
@@ -432,16 +442,6 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
432
442
  0 0 0 var(--cirth-outline-width) var(--cirth-secondary-focus);
433
443
  }
434
444
 
435
- [type="file"]::file-selector-button:focus-visible {
436
- --cirth-box-shadow: var(--cirth-button-hover-box-shadow, 0 0 0 #0000),
437
- 0 0 0 var(--cirth-outline-width) var(--cirth-secondary-focus);
438
- }
439
-
440
- [type="file"]::file-selector-button:is():focus-visible {
441
- --cirth-box-shadow: var(--cirth-button-hover-box-shadow, 0 0 0 #0000),
442
- 0 0 0 var(--cirth-outline-width) var(--cirth-secondary-focus);
443
- }
444
-
445
445
  :is(button, [type="submit"], [type="button"], [role="button"]).contrast {
446
446
  --cirth-background-color: var(--cirth-contrast-background);
447
447
  --cirth-border-color: var(--cirth-contrast-border);
@@ -460,12 +460,11 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
460
460
  }
461
461
 
462
462
  :is(button, [type="submit"], [type="button"], [role="button"]).outline, [type="reset"].outline {
463
- --cirth-background-color: var(--cirth-canvas);
463
+ --cirth-background-color: var(--cirth-form-element-background-color);
464
464
  }
465
465
 
466
466
  :is(button, [type="submit"], [type="button"], [role="button"]).ghost, [type="reset"].ghost {
467
467
  --cirth-background-color: transparent;
468
- --cirth-box-shadow: none;
469
468
  }
470
469
 
471
470
  :is(button, [type="submit"], [type="button"], [role="button"]).outline, [type="reset"].outline {
@@ -476,7 +475,7 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
476
475
  :is(button, [type="submit"], [type="button"], [role="button"]).outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
477
476
  --cirth-background-color: color-mix(in oklch,
478
477
  var(--cirth-primary) 12%,
479
- var(--cirth-canvas));
478
+ var(--cirth-form-element-background-color));
480
479
  --cirth-color: var(--cirth-primary-hover);
481
480
  --cirth-border-color: var(--cirth-primary-hover);
482
481
  }
@@ -489,7 +488,7 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
489
488
  :is(button, [type="submit"], [type="button"], [role="button"]).outline.secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline.secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
490
489
  --cirth-background-color: color-mix(in oklch,
491
490
  var(--cirth-secondary) 12%,
492
- var(--cirth-canvas));
491
+ var(--cirth-form-element-background-color));
493
492
  --cirth-color: var(--cirth-secondary-hover);
494
493
  --cirth-border-color: var(--cirth-secondary-hover);
495
494
  }
@@ -502,7 +501,7 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
502
501
  :is(button, [type="submit"], [type="button"], [role="button"]).outline.contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus), [type="reset"].outline.contrast:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
503
502
  --cirth-background-color: color-mix(in oklch,
504
503
  var(--cirth-contrast) 12%,
505
- var(--cirth-canvas));
504
+ var(--cirth-form-element-background-color));
506
505
  --cirth-color: var(--cirth-contrast-hover);
507
506
  --cirth-border-color: var(--cirth-contrast-hover);
508
507
  }
@@ -551,22 +550,26 @@ button:focus-visible, button[aria-current]:not([aria-current="false"]):focus-vis
551
550
  pointer-events: none;
552
551
  }
553
552
 
554
- form:invalid :is(button:not([type="button"], [type="reset"]), [type="submit"]) {
553
+ form:has(:user-invalid) :is(button:not([type="button"], [type="reset"]), [type="submit"]) {
555
554
  filter: grayscale();
556
555
  }
557
556
 
558
557
  :where(table) {
559
558
  border-collapse: collapse;
560
- border-spacing: 0;
561
559
  text-indent: 0;
562
560
  border-color: currentColor;
563
561
  width: 100%;
564
562
  }
565
563
 
564
+ caption {
565
+ color: var(--cirth-muted-color);
566
+ text-align: start;
567
+ padding-block-end: calc(var(--cirth-spacing) * .5);
568
+ }
569
+
566
570
  th, td {
567
571
  padding: calc(var(--cirth-spacing) / 2) var(--cirth-spacing);
568
572
  border-bottom: var(--cirth-border-width) solid var(--cirth-table-border-color);
569
- color: var(--cirth-color);
570
573
  font-weight: var(--cirth-font-weight);
571
574
  font-variant-numeric: tabular-nums;
572
575
  text-align: start;
@@ -632,10 +635,15 @@ code, kbd, samp {
632
635
 
633
636
  pre {
634
637
  margin-bottom: var(--cirth-spacing);
638
+ border: var(--cirth-border-width) solid var(--cirth-card-border-color);
635
639
  display: block;
636
640
  overflow-x: auto;
637
641
  }
638
642
 
643
+ pre:focus-visible {
644
+ outline: var(--cirth-outline-width) solid var(--cirth-primary-focus);
645
+ }
646
+
639
647
  pre > code, pre > samp {
640
648
  padding: var(--cirth-spacing);
641
649
  line-height: var(--cirth-line-height);
@@ -723,11 +731,11 @@ legend {
723
731
  }
724
732
 
725
733
  input:not([type="checkbox"], [type="radio"], [type="range"]) {
726
- height: calc(var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
734
+ height: max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
727
735
  }
728
736
 
729
737
  select, textarea {
730
- min-block-size: calc(var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
738
+ min-block-size: max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
731
739
  }
732
740
 
733
741
  fieldset {
@@ -745,10 +753,6 @@ label, fieldset legend {
745
753
  display: block;
746
754
  }
747
755
 
748
- fieldset legend {
749
- margin-bottom: calc(var(--cirth-spacing) * .5);
750
- }
751
-
752
756
  input:not([type="checkbox"], [type="radio"], [size]), button[type="submit"], select, textarea {
753
757
  width: 100%;
754
758
  }
@@ -773,6 +777,11 @@ input, select, textarea {
773
777
  outline: none;
774
778
  }
775
779
 
780
+ :where(input, textarea)[readonly] {
781
+ background-color: var(--cirth-card-sectioning-background-color);
782
+ border-style: dashed;
783
+ }
784
+
776
785
  input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [readonly]):is(:active, :focus), :where(select, textarea):not([readonly]):is(:active, :focus) {
777
786
  --cirth-background-color: var(--cirth-form-element-active-background-color);
778
787
  }
@@ -781,10 +790,18 @@ input:not([type="submit"], [type="button"], [type="reset"], [role="switch"], [re
781
790
  --cirth-border-color: var(--cirth-form-element-active-border-color);
782
791
  }
783
792
 
784
- input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="range"], [type="file"], [readonly]):hover:not(:active, :focus, [disabled], [aria-invalid]), :where(select, textarea):not([readonly]):hover:not(:active, :focus, [disabled], [aria-invalid]) {
785
- --cirth-border-color: color-mix(in oklch,
786
- var(--cirth-form-element-border-color) 65%,
787
- var(--cirth-color));
793
+ @media (hover: hover) and (pointer: fine) {
794
+ input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="range"], [type="file"], [readonly]):hover:not(:active, :focus, :disabled, [aria-invalid], :user-invalid) {
795
+ --cirth-border-color: color-mix(in oklch,
796
+ var(--cirth-form-element-border-color) 65%,
797
+ var(--cirth-color));
798
+ }
799
+
800
+ :where(select, textarea):not([readonly]):hover:not(:active, :focus, :disabled, [aria-invalid], :user-invalid) {
801
+ --cirth-border-color: color-mix(in oklch,
802
+ var(--cirth-form-element-border-color) 65%,
803
+ var(--cirth-color));
804
+ }
788
805
  }
789
806
 
790
807
  input:not([type="submit"], [type="button"], [type="reset"], [type="range"], [type="file"], [readonly]):focus, :where(select, textarea):not([readonly]):focus {
@@ -889,7 +906,7 @@ textarea:not([rows]) {
889
906
  textarea:is([aria-invalid], :user-invalid:not([aria-invalid], [type="range"]):not(select:focus)) {
890
907
  --cirth-icon-height: calc(var(--cirth-font-size-md) * var(--cirth-line-height) +
891
908
  var(--cirth-form-element-spacing-vertical) * 2 +
892
- var(--cirth-border-width) * 2);
909
+ (var(--cirth-border-width) * 2));
893
910
  background-position: top right var(--cirth-space-3);
894
911
  background-size: var(--cirth-font-size-md) var(--cirth-icon-height);
895
912
  }
@@ -1243,16 +1260,21 @@ input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"])[type
1243
1260
 
1244
1261
  details {
1245
1262
  margin-bottom: var(--cirth-spacing);
1246
- display: block;
1247
1263
  }
1248
1264
 
1249
1265
  details summary {
1250
- line-height: var(--cirth-font-size-md);
1266
+ line-height: var(--cirth-line-height-normal);
1251
1267
  cursor: pointer;
1252
1268
  transition: color var(--cirth-transition);
1253
1269
  list-style-type: none;
1254
1270
  }
1255
1271
 
1272
+ @media (hover: hover) and (pointer: fine) {
1273
+ details summary:hover:not([role]) {
1274
+ color: var(--cirth-accordion-active-summary-color);
1275
+ }
1276
+ }
1277
+
1256
1278
  details summary:not([role]) {
1257
1279
  color: var(--cirth-accordion-close-summary-color);
1258
1280
  }
@@ -1266,16 +1288,16 @@ details summary::marker {
1266
1288
  }
1267
1289
 
1268
1290
  details summary:after {
1269
- width: var(--cirth-font-size-md);
1270
- height: var(--cirth-font-size-md);
1291
+ width: 1em;
1292
+ height: 1lh;
1271
1293
  float: right;
1272
- background-color: var(--cirth-muted-color);
1273
1294
  mask-image: var(--cirth-icon-chevron);
1274
- mask-position: 100%;
1275
- mask-size: var(--cirth-font-size-md) auto;
1295
+ background-color: currentColor;
1276
1296
  margin-inline-start: calc(var(--cirth-spacing, var(--cirth-space-4)) * .5);
1277
1297
  display: block;
1278
- transform: rotate(-90deg);
1298
+ transform: rotate(0);
1299
+ mask-position: 100%;
1300
+ mask-size: 1em;
1279
1301
  mask-repeat: no-repeat;
1280
1302
  }
1281
1303
 
@@ -1300,8 +1322,8 @@ details summary:focus:not([role]) {
1300
1322
 
1301
1323
  details summary:focus-visible:not([role]) {
1302
1324
  outline: var(--cirth-outline-width) solid var(--cirth-primary-focus);
1303
- outline-offset: calc(var(--cirth-spacing, var(--cirth-space-4)) * .5);
1304
- color: var(--cirth-primary);
1325
+ outline-offset: var(--cirth-space-1);
1326
+ color: var(--cirth-accordion-active-summary-color);
1305
1327
  }
1306
1328
 
1307
1329
  details summary[role="button"] {
@@ -1309,59 +1331,92 @@ details summary[role="button"] {
1309
1331
  width: 100%;
1310
1332
  }
1311
1333
 
1312
- details summary[role="button"]:after {
1313
- height: calc(var(--cirth-font-size-md) * var(--cirth-line-height, var(--cirth-line-height-normal)));
1314
- }
1315
-
1316
1334
  details[open] > summary {
1317
- margin-bottom: var(--cirth-spacing);
1335
+ margin-bottom: var(--cirth-space-2);
1318
1336
  }
1319
1337
 
1320
- details[open] > summary:not([role]):not(:focus) {
1338
+ details[open] > summary:not([role]):not(:focus, :hover) {
1321
1339
  color: var(--cirth-accordion-open-summary-color);
1322
1340
  }
1323
1341
 
1324
1342
  details[open] > summary:after {
1325
- transform: rotate(0);
1343
+ transform: rotate(180deg);
1344
+ }
1345
+
1346
+ details:not(.dropdown) {
1347
+ border-block-end: var(--cirth-border-width) solid var(--cirth-muted-border-color);
1348
+ }
1349
+
1350
+ details:not(.dropdown) > summary {
1351
+ min-block-size: 2.75rem;
1352
+ padding-block: var(--cirth-space-2);
1353
+ font-weight: var(--cirth-font-weight-semibold);
1354
+ }
1355
+
1356
+ details:not(.dropdown)[open] {
1357
+ padding-block-end: var(--cirth-space-4);
1358
+ }
1359
+
1360
+ details:not(.dropdown) > :last-child:not(summary) {
1361
+ margin-bottom: 0;
1362
+ }
1363
+
1364
+ @media (prefers-reduced-motion: no-preference) {
1365
+ @supports selector(::details-content) {
1366
+ details:not(.dropdown)::details-content {
1367
+ block-size: 0;
1368
+ transition: block-size var(--cirth-transition), content-visibility var(--cirth-transition) allow-discrete;
1369
+ interpolate-size: allow-keywords;
1370
+ overflow: hidden;
1371
+ }
1372
+
1373
+ details:not(.dropdown)[open]::details-content {
1374
+ block-size: auto;
1375
+ }
1376
+ }
1326
1377
  }
1327
1378
 
1328
1379
  [dir="rtl"] details summary:after {
1329
1380
  float: left;
1330
- background-position: 0;
1331
1381
  }
1332
1382
 
1333
1383
  article {
1334
1384
  margin-bottom: var(--cirth-block-spacing-vertical);
1335
1385
  padding: var(--cirth-block-spacing-vertical) var(--cirth-block-spacing-horizontal);
1336
- border-radius: var(--cirth-border-radius);
1386
+ border: var(--cirth-border-width) solid var(--cirth-card-border-color);
1387
+ border-radius: var(--cirth-card-border-radius);
1337
1388
  background: var(--cirth-card-background-color);
1338
1389
  box-shadow: var(--cirth-card-box-shadow);
1339
1390
  }
1340
1391
 
1392
+ article > :last-child:not(header, footer), article > :is(header, footer) > :last-child {
1393
+ margin-bottom: 0;
1394
+ }
1395
+
1396
+ article > :is(header, footer) :is(h1, h2, h3, h4, h5, h6) {
1397
+ margin-top: 0;
1398
+ }
1399
+
1341
1400
  article > header, article > footer {
1342
1401
  margin-inline: calc(var(--cirth-block-spacing-horizontal) * -1);
1343
1402
  padding: calc(var(--cirth-block-spacing-vertical) - var(--cirth-space-2)) var(--cirth-block-spacing-horizontal);
1344
1403
  background-color: var(--cirth-card-sectioning-background-color);
1345
1404
  }
1346
1405
 
1347
- article > header > :last-child, article > footer > :last-child {
1348
- margin-bottom: 0;
1349
- }
1350
-
1351
1406
  article > header {
1352
1407
  margin-top: calc(var(--cirth-block-spacing-vertical) * -1);
1353
1408
  margin-bottom: var(--cirth-block-spacing-vertical);
1354
1409
  border-bottom: var(--cirth-border-width) solid var(--cirth-card-border-color);
1355
- border-top-right-radius: var(--cirth-border-radius);
1356
- border-top-left-radius: var(--cirth-border-radius);
1410
+ border-top-right-radius: var(--cirth-card-border-radius);
1411
+ border-top-left-radius: var(--cirth-card-border-radius);
1357
1412
  }
1358
1413
 
1359
1414
  article > footer {
1360
1415
  margin-top: var(--cirth-block-spacing-vertical);
1361
1416
  margin-bottom: calc(var(--cirth-block-spacing-vertical) * -1);
1362
1417
  border-top: var(--cirth-border-width) solid var(--cirth-card-border-color);
1363
- border-bottom-right-radius: var(--cirth-border-radius);
1364
- border-bottom-left-radius: var(--cirth-border-radius);
1418
+ border-bottom-right-radius: var(--cirth-card-border-radius);
1419
+ border-bottom-left-radius: var(--cirth-card-border-radius);
1365
1420
  }
1366
1421
 
1367
1422
  details.dropdown {
@@ -1398,7 +1453,7 @@ nav details.dropdown {
1398
1453
  }
1399
1454
 
1400
1455
  details.dropdown > summary:not([role]) {
1401
- height: calc(var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
1456
+ height: max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2);
1402
1457
  padding: var(--cirth-form-element-spacing-vertical) var(--cirth-form-element-spacing-horizontal);
1403
1458
  border: var(--cirth-border-width) solid var(--cirth-form-element-border-color);
1404
1459
  border-radius: var(--cirth-border-radius);
@@ -1411,6 +1466,12 @@ details.dropdown > summary:not([role]) {
1411
1466
  transition: background-color var(--cirth-transition), border-color var(--cirth-transition), color var(--cirth-transition), box-shadow var(--cirth-transition);
1412
1467
  }
1413
1468
 
1469
+ @media (hover: hover) and (pointer: fine) {
1470
+ details.dropdown > summary:not([role]):hover:not(:active, :focus, [aria-invalid]) {
1471
+ border-color: color-mix(in oklch, var(--cirth-form-element-border-color) 65%, var(--cirth-form-element-color));
1472
+ }
1473
+ }
1474
+
1414
1475
  details.dropdown > summary:not([role]):active, details.dropdown > summary:not([role]):focus {
1415
1476
  border-color: var(--cirth-form-element-active-border-color);
1416
1477
  background-color: var(--cirth-form-element-active-background-color);
@@ -1422,6 +1483,7 @@ details.dropdown > summary:not([role]):focus {
1422
1483
 
1423
1484
  details.dropdown > summary:not([role]):focus-visible {
1424
1485
  outline: var(--cirth-outline-width) solid transparent;
1486
+ outline-offset: 0;
1425
1487
  }
1426
1488
 
1427
1489
  details.dropdown > summary:not([role])[aria-invalid="false"] {
@@ -1764,31 +1826,19 @@ dialog[open] {
1764
1826
 
1765
1827
  dialog > article {
1766
1828
  transition: opacity var(--cirth-transition), transform var(--cirth-transition);
1767
- width: 100%;
1829
+ width: min(100% - var(--cirth-spacing) * 2, var(--cirth-modal-max-width));
1768
1830
  max-height: calc(100vh - var(--cirth-spacing) * 2);
1769
1831
  max-height: calc(100dvh - var(--cirth-spacing) * 2);
1770
1832
  margin: var(--cirth-spacing);
1771
1833
  overflow: auto;
1772
1834
  }
1773
1835
 
1774
- @media (width >= 576px) {
1775
- dialog > article {
1776
- max-width: 510px;
1777
- }
1778
- }
1779
-
1780
- @media (width >= 768px) {
1781
- dialog > article {
1782
- max-width: 700px;
1783
- }
1784
- }
1785
-
1786
1836
  dialog > article > header > * {
1787
1837
  margin-bottom: 0;
1788
1838
  }
1789
1839
 
1790
1840
  dialog > article > header .close, dialog > article > header :is(a, button)[rel="prev"] {
1791
- margin: calc(calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2) * -1);
1841
+ margin: calc(calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2) * -1);
1792
1842
  float: right;
1793
1843
  margin-inline-start: var(--cirth-spacing);
1794
1844
  padding: 0;
@@ -1807,11 +1857,11 @@ dialog > article > footer button:not(:first-of-type), dialog > article > footer
1807
1857
  }
1808
1858
 
1809
1859
  dialog > article .close, dialog > article :is(a, button)[rel="prev"] {
1810
- width: calc(var(--cirth-font-size-md) + calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2) * 2);
1811
- height: calc(var(--cirth-font-size-md) + calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2) * 2);
1812
- margin-top: calc(var(--cirth-spacing) * -1 - calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2));
1813
- margin-right: calc(calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2) * -1);
1814
- margin-bottom: calc(var(--cirth-spacing) - calc((var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2 - var(--cirth-font-size-md)) / 2));
1860
+ width: calc(var(--cirth-font-size-md) + calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2) * 2);
1861
+ height: calc(var(--cirth-font-size-md) + calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2) * 2);
1862
+ margin-top: calc(var(--cirth-spacing) * -1 - calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2));
1863
+ margin-right: calc(calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2) * -1);
1864
+ margin-bottom: calc(var(--cirth-spacing) - calc((max(2.75rem, var(--cirth-font-size-md) * var(--cirth-line-height) + var(--cirth-form-element-spacing-vertical) * 2 + var(--cirth-border-width) * 2) - var(--cirth-font-size-md)) / 2));
1815
1865
  opacity: .5;
1816
1866
  transition: opacity var(--cirth-transition);
1817
1867
  background-color: #0000;
@@ -1855,11 +1905,11 @@ html:has(dialog:modal) {
1855
1905
  }
1856
1906
 
1857
1907
  :where(nav li):before {
1858
- float: left;
1859
1908
  content: "​";
1909
+ position: absolute;
1860
1910
  }
1861
1911
 
1862
- nav, nav ul {
1912
+ nav, nav :is(ol, ul) {
1863
1913
  display: flex;
1864
1914
  }
1865
1915
 
@@ -1890,8 +1940,11 @@ nav li {
1890
1940
  }
1891
1941
 
1892
1942
  nav li :where(a:not([role="button"]), [role="link"]) {
1893
- margin: calc(var(--cirth-nav-link-spacing-vertical) * -1) calc(var(--cirth-nav-link-spacing-horizontal) * -1);
1943
+ --cirth-color: inherit;
1944
+ margin-block: calc(var(--cirth-nav-link-spacing-vertical) * -1);
1945
+ margin-inline: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1894
1946
  padding: var(--cirth-nav-link-spacing-vertical) var(--cirth-nav-link-spacing-horizontal);
1947
+ border-block-end: var(--cirth-border-width-2) solid transparent;
1895
1948
  border-radius: var(--cirth-border-radius);
1896
1949
  display: inline-block;
1897
1950
  }
@@ -1900,6 +1953,13 @@ nav li :where(a:not([role="button"]), [role="link"]):not(:hover) {
1900
1953
  text-decoration: none;
1901
1954
  }
1902
1955
 
1956
+ nav li :where(a:not([role="button"]), [role="link"]):is([aria-current]:not([aria-current="false"]), [aria-selected="true"]) {
1957
+ --cirth-color: inherit;
1958
+ --cirth-text-decoration: none;
1959
+ border-block-end-color: var(--cirth-primary-border);
1960
+ border-radius: 0;
1961
+ }
1962
+
1903
1963
  nav li .group, nav li [role="search"] {
1904
1964
  width: auto;
1905
1965
  margin-bottom: 0;
@@ -1907,7 +1967,7 @@ nav li .group, nav li [role="search"] {
1907
1967
 
1908
1968
  nav li button, nav li [role="button"], nav li [type="button"], nav li input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"]), nav li select {
1909
1969
  height: auto;
1910
- min-block-size: var(--cirth-space-6);
1970
+ min-block-size: var(--cirth-space-10);
1911
1971
  margin-inline: inherit;
1912
1972
  padding: calc(var(--cirth-nav-link-spacing-vertical) - var(--cirth-border-width) * 2) var(--cirth-nav-link-spacing-horizontal);
1913
1973
  margin-bottom: 0;
@@ -1918,16 +1978,16 @@ nav[aria-label="breadcrumb"] {
1918
1978
  align-items: center;
1919
1979
  }
1920
1980
 
1921
- nav[aria-label="breadcrumb"] ul li:not(:first-child) {
1981
+ nav[aria-label="breadcrumb"] :is(ol, ul) li:not(:first-child) {
1922
1982
  margin-inline-start: var(--cirth-nav-link-spacing-horizontal);
1923
1983
  }
1924
1984
 
1925
- nav[aria-label="breadcrumb"] ul li a {
1985
+ nav[aria-label="breadcrumb"] :is(ol, ul) li a {
1926
1986
  margin: calc(var(--cirth-nav-link-spacing-vertical) * -1) 0;
1927
- margin-inline-start: calc(var(--cirth-nav-link-spacing-horizontal) * -1);
1987
+ margin-inline-start: calc(var(--cirth-nav-element-spacing-horizontal) * -1);
1928
1988
  }
1929
1989
 
1930
- nav[aria-label="breadcrumb"] ul li:not(:last-child):after {
1990
+ nav[aria-label="breadcrumb"] :is(ol, ul) li:not(:last-child):after {
1931
1991
  width: calc(var(--cirth-nav-link-spacing-horizontal) * 4);
1932
1992
  margin: 0 calc(var(--cirth-nav-link-spacing-horizontal) * -1);
1933
1993
  content: var(--cirth-nav-breadcrumb-divider);
@@ -1943,22 +2003,70 @@ nav[aria-label="breadcrumb"] a[aria-current]:not([aria-current="false"]) {
1943
2003
  color: inherit;
1944
2004
  pointer-events: none;
1945
2005
  background-color: #0000;
2006
+ border-block-end-color: #0000;
1946
2007
  text-decoration: none;
1947
2008
  }
1948
2009
 
1949
- aside nav, aside ol, aside ul, aside li {
2010
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav {
2011
+ --cirth-nav-element-spacing-vertical: var(--cirth-space-2);
2012
+ flex-wrap: wrap;
2013
+ align-items: center;
2014
+ }
2015
+
2016
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav li :where(a:not([role="button"]), [role="link"]) {
2017
+ --cirth-color: var(--cirth-muted-color);
2018
+ --cirth-text-decoration: none;
2019
+ border-block-end: 0;
2020
+ border-radius: 0;
2021
+ }
2022
+
2023
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav li :where(a:not([role="button"]), [role="link"]):is(:hover, :focus, :active) {
2024
+ --cirth-color: color-mix(in oklch,
2025
+ var(--cirth-muted-color),
2026
+ var(--cirth-contrast));
2027
+ }
2028
+
2029
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav li :where(a:not([role="button"]), [role="link"]):is([aria-current]:not([aria-current="false"]), [aria-selected="true"]) {
2030
+ --cirth-color: var(--cirth-contrast);
2031
+ font-weight: var(--cirth-font-weight-semibold);
2032
+ }
2033
+
2034
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav li :where(a:not([role="button"]), [role="link"])[aria-disabled="true"] {
2035
+ --cirth-color: color-mix(in oklch,
2036
+ var(--cirth-muted-color) 55%,
2037
+ transparent);
2038
+ pointer-events: none;
2039
+ }
2040
+
2041
+ header:not(:is(article, aside, dialog, figure, li, nav, section, td) *) > nav details.dropdown > summary:not([role]) {
2042
+ border-color: var(--cirth-muted-border-color);
2043
+ background-color: #0000;
2044
+ }
2045
+
2046
+ aside nav {
2047
+ --cirth-nav-element-spacing-horizontal: 0;
2048
+ display: block;
2049
+ }
2050
+
2051
+ aside nav ol, aside nav ul, aside nav li {
1950
2052
  display: block;
1951
2053
  }
1952
2054
 
1953
- aside li {
1954
- padding: calc(var(--cirth-nav-element-spacing-vertical) * .5) var(--cirth-nav-element-spacing-horizontal);
2055
+ aside nav li {
2056
+ padding: calc(var(--cirth-nav-element-spacing-vertical) * .5) 0;
1955
2057
  }
1956
2058
 
1957
- aside li a {
2059
+ aside nav li a {
2060
+ border-inline-start: var(--cirth-border-width-2) solid transparent;
1958
2061
  display: block;
1959
2062
  }
1960
2063
 
1961
- aside li [role="button"] {
2064
+ aside nav li a:is([aria-current]:not([aria-current="false"]), [aria-selected="true"]) {
2065
+ border-block-end-color: #0000;
2066
+ border-inline-start-color: var(--cirth-primary-border);
2067
+ }
2068
+
2069
+ aside nav li [role="button"] {
1962
2070
  margin: inherit;
1963
2071
  }
1964
2072
 
@@ -1976,11 +2084,18 @@ aside li [role="button"] {
1976
2084
  background-color: var(--cirth-popover-background-color);
1977
2085
  box-shadow: var(--cirth-popover-box-shadow);
1978
2086
  color: var(--cirth-popover-color);
1979
- transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
1980
2087
  margin: auto;
1981
2088
  inset: 0;
1982
2089
  }
1983
2090
 
2091
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open > :last-child {
2092
+ margin-bottom: 0;
2093
+ }
2094
+
2095
+ :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
2096
+ transition: opacity var(--cirth-transition), display var(--cirth-transition) allow-discrete, overlay var(--cirth-transition) allow-discrete;
2097
+ }
2098
+
1984
2099
  @starting-style {
1985
2100
  :is([popover=""], [popover="auto"], [popover="hint"]):not(dialog):popover-open {
1986
2101
  opacity: 0;
@@ -2093,12 +2208,16 @@ progress::-moz-progress-bar {
2093
2208
  }
2094
2209
 
2095
2210
  .sr-only-focusable:focus, .sr-only-focusable:focus-within {
2096
- clip-path: none;
2097
- white-space: normal;
2098
2211
  width: auto;
2099
2212
  height: auto;
2213
+ padding: var(--cirth-space-2) var(--cirth-space-4);
2214
+ clip-path: none;
2215
+ white-space: normal;
2216
+ z-index: var(--cirth-z-index-fixed);
2217
+ border-radius: var(--cirth-border-radius);
2218
+ background-color: var(--cirth-canvas);
2219
+ color: var(--cirth-ink);
2100
2220
  margin: 0;
2101
- position: static;
2102
2221
  overflow: visible;
2103
2222
  }
2104
2223
 
@@ -2131,7 +2250,7 @@ progress::-moz-progress-bar {
2131
2250
  --cirth-font-weight-medium: 500;
2132
2251
  --cirth-font-weight-semibold: 600;
2133
2252
  --cirth-font-weight-bold: 700;
2134
- --cirth-letter-spacing-tight: -.02em;
2253
+ --cirth-letter-spacing-tight: -.03em;
2135
2254
  --cirth-letter-spacing-snug: -.01em;
2136
2255
  --cirth-line-height-none: 1;
2137
2256
  --cirth-line-height-tight: 1.125;
@@ -2181,12 +2300,12 @@ progress::-moz-progress-bar {
2181
2300
  --cirth-z-index-modal-backdrop: 1040;
2182
2301
  --cirth-z-index-modal: 1050;
2183
2302
  --cirth-font-family: var(--cirth-font-family-sans);
2184
- --cirth-font-family-display: var(--cirth-font-family-serif);
2303
+ --cirth-font-family-display: var(--cirth-font-family-sans);
2185
2304
  --cirth-line-height: var(--cirth-line-height-normal);
2186
2305
  --cirth-font-weight: var(--cirth-font-weight-regular);
2187
2306
  --cirth-font-size: 100%;
2188
2307
  --cirth-text-underline-offset: .15em;
2189
- --cirth-border-radius: var(--cirth-radius-lg);
2308
+ --cirth-border-radius: var(--cirth-radius-sm);
2190
2309
  --cirth-card-border-radius: calc(var(--cirth-border-radius) * 1.5);
2191
2310
  --cirth-checkbox-border-radius: min(var(--cirth-border-radius),
2192
2311
  var(--cirth-radius-sm));
@@ -2197,28 +2316,32 @@ progress::-moz-progress-bar {
2197
2316
  --cirth-background-color: var(--cirth-canvas);
2198
2317
  --cirth-transition: var(--cirth-duration-normal) var(--cirth-ease-out);
2199
2318
  --cirth-spacing: var(--cirth-space-4);
2200
- --cirth-typography-spacing-vertical: var(--cirth-space-4);
2319
+ --cirth-typography-spacing-vertical: var(--cirth-spacing);
2201
2320
  --cirth-block-spacing-vertical: var(--cirth-spacing);
2202
2321
  --cirth-block-spacing-horizontal: var(--cirth-spacing);
2322
+ --cirth-container-gutter: clamp(var(--cirth-space-4),
2323
+ 4%,
2324
+ var(--cirth-space-12));
2203
2325
  --cirth-container-max-width: 60rem;
2204
2326
  --cirth-grid-column-gap: var(--cirth-spacing);
2205
2327
  --cirth-grid-row-gap: var(--cirth-spacing);
2206
2328
  --cirth-grid-min-column: 12rem;
2207
2329
  --cirth-form-element-spacing-vertical: var(--cirth-space-2);
2208
2330
  --cirth-form-element-spacing-horizontal: var(--cirth-space-4);
2209
- --cirth-form-label-font-weight: var(--cirth-font-weight);
2331
+ --cirth-form-label-font-weight: var(--cirth-font-weight-medium);
2210
2332
  --cirth-group-box-shadow: 0 0 0 #0000;
2211
2333
  --cirth-group-box-shadow-focus-with-button: 0 0 0 var(--cirth-outline-width)
2212
2334
  var(--cirth-primary-focus);
2213
2335
  --cirth-group-box-shadow-focus-with-input: 0 0 0 var(--cirth-border-width-1)
2214
2336
  var(--cirth-form-element-border-color);
2337
+ --cirth-card-box-shadow: none;
2215
2338
  --cirth-meter-background-color: var(--cirth-progress-background-color);
2216
2339
  --cirth-meter-border-color: var(--cirth-progress-border-color);
2217
- --cirth-popover-background-color: var(--cirth-card-background-color);
2218
2340
  --cirth-popover-border-color: var(--cirth-muted-border-color);
2219
- --cirth-popover-color: var(--cirth-color);
2341
+ --cirth-popover-color: var(--cirth-ink);
2220
2342
  --cirth-popover-box-shadow: var(--cirth-box-shadow);
2221
2343
  --cirth-popover-max-width: min(30rem, 100% - var(--cirth-spacing) * 2);
2344
+ --cirth-modal-max-width: 43.75rem;
2222
2345
  --cirth-modal-overlay-backdrop-filter: blur(.375rem);
2223
2346
  --cirth-nav-element-spacing-vertical: var(--cirth-space-4);
2224
2347
  --cirth-nav-element-spacing-horizontal: var(--cirth-space-2);
@@ -2248,30 +2371,35 @@ h4, h5, h6 {
2248
2371
  --cirth-font-weight: var(--cirth-font-weight-semibold);
2249
2372
  }
2250
2373
 
2374
+ h1, h2 {
2375
+ --cirth-letter-spacing: var(--cirth-letter-spacing-tight);
2376
+ }
2377
+
2378
+ h3, h4 {
2379
+ --cirth-letter-spacing: var(--cirth-letter-spacing-snug);
2380
+ }
2381
+
2251
2382
  h1 {
2252
- --cirth-font-size: clamp(var(--cirth-font-size-5xl),
2253
- 1.7rem + 2.2vw,
2254
- var(--cirth-font-size-7xl));
2383
+ --cirth-font-size: clamp(var(--cirth-font-size-3xl),
2384
+ 1.31rem + 1.8vw,
2385
+ var(--cirth-font-size-6xl));
2255
2386
  --cirth-line-height: var(--cirth-line-height-tight);
2256
- --cirth-letter-spacing: var(--cirth-letter-spacing-tight);
2257
2387
  --cirth-typography-spacing-top: var(--cirth-space-12);
2258
2388
  }
2259
2389
 
2260
2390
  h2 {
2261
2391
  --cirth-font-size: clamp(var(--cirth-font-size-2xl),
2262
- 1.3rem + 1vw,
2392
+ 1.28rem + .9vw,
2263
2393
  var(--cirth-font-size-4xl));
2264
- --cirth-line-height: 1.15;
2265
- --cirth-letter-spacing: var(--cirth-letter-spacing-tight);
2394
+ --cirth-line-height: var(--cirth-line-height-snug);
2266
2395
  --cirth-typography-spacing-top: var(--cirth-space-12);
2267
2396
  }
2268
2397
 
2269
2398
  h3 {
2270
2399
  --cirth-font-size: clamp(var(--cirth-font-size-xl),
2271
- 1.15rem + .5vw,
2400
+ 1.14rem + .45vw,
2272
2401
  var(--cirth-font-size-2xl));
2273
- --cirth-line-height: 1.2;
2274
- --cirth-letter-spacing: var(--cirth-letter-spacing-snug);
2402
+ --cirth-line-height: var(--cirth-line-height-snug);
2275
2403
  --cirth-typography-spacing-top: var(--cirth-space-10);
2276
2404
  }
2277
2405
 
@@ -2294,14 +2422,12 @@ h6 {
2294
2422
  }
2295
2423
 
2296
2424
  article {
2297
- --cirth-border-radius: var(--cirth-card-border-radius);
2298
- --cirth-block-spacing-vertical: var(--cirth-space-6);
2299
- --cirth-block-spacing-horizontal: var(--cirth-space-6);
2425
+ --cirth-block-spacing-vertical: var(--cirth-space-5);
2426
+ --cirth-block-spacing-horizontal: var(--cirth-space-5);
2300
2427
  }
2301
2428
 
2302
2429
  thead th, thead td, tfoot th, tfoot td {
2303
2430
  --cirth-font-weight: var(--cirth-font-weight-semibold);
2304
- --cirth-border-width: .1875rem;
2305
2431
  }
2306
2432
 
2307
2433
  pre, code, kbd, samp, var {
@@ -2316,11 +2442,6 @@ kbd {
2316
2442
  --cirth-font-weight: bolder;
2317
2443
  }
2318
2444
 
2319
- input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :where(select, textarea) {
2320
- --cirth-outline-width: var(--cirth-border-width-1);
2321
- --cirth-line-height: var(--cirth-line-height-relaxed);
2322
- }
2323
-
2324
2445
  [type="search"] {
2325
2446
  --cirth-border-radius: var(--cirth-radius-pill);
2326
2447
  }
@@ -2331,12 +2452,7 @@ input:not([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [
2331
2452
 
2332
2453
  button, [type="submit"], [type="reset"], [type="button"], [role="button"] {
2333
2454
  --cirth-font-weight: var(--cirth-font-weight-semibold);
2334
- --cirth-line-height: var(--cirth-line-height-relaxed);
2335
- --cirth-form-element-spacing-horizontal: var(--cirth-space-5);
2336
- }
2337
-
2338
- [type="file"] {
2339
- --cirth-line-height: var(--cirth-line-height-relaxed);
2455
+ --cirth-form-element-spacing-horizontal: var(--cirth-space-4);
2340
2456
  }
2341
2457
 
2342
2458
  [type="checkbox"], [type="radio"] {
@@ -2389,9 +2505,10 @@ details summary[role="button"]:not(.outline):after {
2389
2505
 
2390
2506
  :root, :host {
2391
2507
  --cirth-canvas: light-dark(oklch(97.4% .004 69.35), oklch(20.15% .003 264));
2392
- --cirth-color: light-dark(oklch(35.3% .021 264), oklch(83% .016 264));
2508
+ --cirth-ink: light-dark(oklch(35.3% .021 264), oklch(83% .016 264));
2509
+ --cirth-color: var(--cirth-ink);
2393
2510
  --cirth-text-selection-color: light-dark(oklch(65.7% .121 69.35 / .25), oklch(70% .129 69.35 / .1875));
2394
- --cirth-muted-color: light-dark(oklch(52.7% .032 264), oklch(61.3% .032 264));
2511
+ --cirth-muted-color: light-dark(oklch(52.7% .032 264), oklch(65.7% .03 264));
2395
2512
  --cirth-muted-border-color: light-dark(oklch(93.85% .003 264), oklch(26.7% .011 264));
2396
2513
  --cirth-error: light-dark(oklch(44% .151 29.73), oklch(74.3% .133 29.73));
2397
2514
  --cirth-success: light-dark(oklch(52.7% .1 160.59), oklch(65.7% .125 160.59));
@@ -2409,9 +2526,9 @@ details summary[role="button"]:not(.outline):after {
2409
2526
  --cirth-contrast-hover-background: light-dark(oklch(0% 0 0), oklch(100% 0 0));
2410
2527
  --cirth-contrast-focus: light-dark(oklch(48.3% .03 264 / .7), oklch(87.3% .011 264 / .5));
2411
2528
  --cirth-contrast-inverse: light-dark(oklch(100% 0 0), oklch(0% 0 0));
2412
- --cirth-link-visited-color: light-dark(oklch(48.3% .03 264), oklch(65.7% .03 264));
2529
+ --cirth-link-visited-color: light-dark(oklch(48.3% 0 264), oklch(65.7% 0 264));
2413
2530
  --cirth-box-shadow: light-dark(.0145rem .029rem .174rem oklch(65.7% .03 264 / .01698), .0335rem .067rem .402rem oklch(65.7% .03 264 / .024), .0625rem .125rem .75rem oklch(65.7% .03 264 / .03), .1125rem .225rem 1.35rem oklch(65.7% .03 264 / .036), .2085rem .417rem 2.502rem oklch(65.7% .03 264 / .04302), .5rem 1rem 6rem oklch(65.7% .03 264 / .06), 0 0 0 .0625rem oklch(65.7% .03 264 / .015),
2414
- .0145rem .029rem .174rem oklch(9% 0 312 / .01698), .0335rem .067rem .402rem oklch(9% 0 312 / .024), .0625rem .125rem .75rem oklch(9% 0 312 / .03), .1125rem .225rem 1.35rem oklch(9% 0 312 / .036), .2085rem .417rem 2.502rem oklch(9% 0 312 / .04302), .5rem 1rem 6rem oklch(9% 0 312 / .06), 0 0 0 .0625rem oklch(9% 0 312 / .015));
2531
+ .0145rem .029rem .174rem oklch(9% 0 none / .01698), .0335rem .067rem .402rem oklch(9% 0 none / .024), .0625rem .125rem .75rem oklch(9% 0 none / .03), .1125rem .225rem 1.35rem oklch(9% 0 none / .036), .2085rem .417rem 2.502rem oklch(9% 0 none / .04302), .5rem 1rem 6rem oklch(9% 0 none / .06), 0 0 0 .0625rem oklch(9% 0 none / .015));
2415
2532
  --cirth-h1-color: light-dark(oklch(22.3% .006 264), oklch(96% 0 264));
2416
2533
  --cirth-h2-color: light-dark(oklch(26.7% .011 264), oklch(91.7% .006 264));
2417
2534
  --cirth-h3-color: light-dark(oklch(31% .016 264), oklch(83% .016 264));
@@ -2419,21 +2536,13 @@ details summary[role="button"]:not(.outline):after {
2419
2536
  --cirth-h5-color: light-dark(oklch(39.7% .025 264), oklch(74.3% .025 264));
2420
2537
  --cirth-h6-color: light-dark(oklch(44% .028 264), oklch(65.7% .03 264));
2421
2538
  --cirth-mark-color: light-dark(oklch(18% 0 264), oklch(100% 0 0));
2422
- --cirth-code-background-color: light-dark(oklch(97% 0 288), oklch(23.4% .00725 264));
2423
2539
  --cirth-code-color: light-dark(oklch(52.7% .032 264), oklch(65.7% .03 264));
2424
- --cirth-form-element-background-color: light-dark(oklch(99% 0 336), oklch(24.5% .0085 264));
2425
2540
  --cirth-form-element-selected-background-color: light-dark(oklch(91.7% .006 264), oklch(31% .016 264));
2426
2541
  --cirth-form-element-border-color: light-dark(oklch(61.3% .032 264), oklch(52.7% .032 264));
2427
2542
  --cirth-form-element-color: light-dark(oklch(26.7% .011 264), oklch(91.7% .006 264));
2428
- --cirth-form-element-active-background-color: light-dark(oklch(100% 0 0), oklch(23.4% .00725 264));
2429
2543
  --cirth-switch-background-color: light-dark(oklch(61.3% .032 264), oklch(52.7% .032 264));
2430
2544
  --cirth-range-border-color: light-dark(oklch(91.7% .006 264), oklch(26.7% .011 264));
2431
2545
  --cirth-range-active-border-color: light-dark(oklch(83% .016 264), oklch(31% .016 264));
2432
- --cirth-card-background-color: light-dark(oklch(100% 0 0), oklch(22.3% .006 264));
2433
- --cirth-card-sectioning-background-color: light-dark(oklch(99% 0 336), oklch(23.4% .00725 264));
2434
- --cirth-dropdown-background-color: light-dark(oklch(100% 0 0), oklch(22.3% .006 264));
2435
- --cirth-dropdown-border-color: light-dark(oklch(96% 0 264), oklch(26.7% .011 264));
2436
- --cirth-dropdown-hover-background-color: light-dark(oklch(96% 0 264), oklch(26.7% .011 264));
2437
2546
  --cirth-progress-background-color: light-dark(oklch(91.7% .006 264), oklch(26.7% .011 264));
2438
2547
  --cirth-progress-border-color: light-dark(oklch(61.3% .032 264), oklch(52.7% .032 264));
2439
2548
  }
@@ -2463,6 +2572,13 @@ details summary[role="button"]:not(.outline):after {
2463
2572
  --cirth-primary-hover-underline: var(--cirth-primary-hover);
2464
2573
  --cirth-primary-focus: oklch(from var(--cirth-primary) l c h / 75%);
2465
2574
  --cirth-primary-inverse: oklch(100% 0 0);
2575
+ --cirth-code-background-color: oklch(from var(--cirth-canvas) calc(l - .019) c h);
2576
+ --cirth-card-sectioning-background-color: oklch(from var(--cirth-canvas) calc(l + .009) c h);
2577
+ --cirth-form-element-background-color: oklch(from var(--cirth-canvas) calc(l - .008) c h);
2578
+ --cirth-card-background-color: oklch(from var(--cirth-canvas) calc(l + .018) c h);
2579
+ --cirth-form-element-active-background-color: var(--cirth-canvas);
2580
+ --cirth-dropdown-background-color: var(--cirth-card-background-color);
2581
+ --cirth-popover-background-color: var(--cirth-card-background-color);
2466
2582
  --cirth-secondary-background: oklch(48.3% .03 264);
2467
2583
  --cirth-secondary-border: var(--cirth-secondary-background);
2468
2584
  --cirth-secondary-hover-border: var(--cirth-secondary-hover-background);
@@ -2478,13 +2594,13 @@ details summary[role="button"]:not(.outline):after {
2478
2594
  --cirth-blockquote-footer-color: var(--cirth-muted-color);
2479
2595
  --cirth-button-box-shadow: 0 0 0 #0000;
2480
2596
  --cirth-button-hover-box-shadow: 0 0 0 #0000;
2481
- --cirth-table-border-color: var(--cirth-muted-border-color);
2597
+ --cirth-table-border-color: var(--cirth-card-border-color);
2482
2598
  --cirth-table-row-stripped-background-color: oklch(57% .032 264 / .0375);
2483
- --cirth-code-kbd-background-color: var(--cirth-color);
2599
+ --cirth-code-kbd-background-color: var(--cirth-ink);
2484
2600
  --cirth-code-kbd-color: var(--cirth-background-color);
2485
2601
  --cirth-form-element-placeholder-color: var(--cirth-muted-color);
2486
2602
  --cirth-form-element-active-border-color: var(--cirth-primary-border);
2487
- --cirth-form-element-focus-color: var(--cirth-primary-border);
2603
+ --cirth-form-element-focus-color: var(--cirth-primary-focus);
2488
2604
  --cirth-form-element-disabled-opacity: var(--cirth-opacity-disabled);
2489
2605
  --cirth-form-element-invalid-border-color: var(--cirth-error-border);
2490
2606
  --cirth-form-element-invalid-active-border-color: var(--cirth-error-active);
@@ -2499,12 +2615,15 @@ details summary[role="button"]:not(.outline):after {
2499
2615
  --cirth-range-thumb-color: var(--cirth-secondary-background);
2500
2616
  --cirth-range-thumb-active-color: var(--cirth-primary-background);
2501
2617
  --cirth-accordion-active-summary-color: var(--cirth-primary-hover);
2502
- --cirth-accordion-close-summary-color: var(--cirth-color);
2503
- --cirth-accordion-open-summary-color: var(--cirth-muted-color);
2504
- --cirth-card-border-color: var(--cirth-muted-border-color);
2505
- --cirth-card-box-shadow: var(--cirth-box-shadow);
2618
+ --cirth-accordion-close-summary-color: var(--cirth-ink);
2619
+ --cirth-accordion-open-summary-color: var(--cirth-ink);
2620
+ --cirth-card-border-color: color-mix(in oklab,
2621
+ var(--cirth-form-element-border-color) 38%,
2622
+ var(--cirth-card-background-color));
2506
2623
  --cirth-dropdown-box-shadow: var(--cirth-box-shadow);
2507
- --cirth-dropdown-color: var(--cirth-color);
2624
+ --cirth-dropdown-color: var(--cirth-ink);
2625
+ --cirth-dropdown-border-color: var(--cirth-card-border-color);
2626
+ --cirth-dropdown-hover-background-color: var(--cirth-card-sectioning-background-color);
2508
2627
  --cirth-modal-overlay-background-color: oklch(93.85% .003 264deg / var(--cirth-opacity-overlay));
2509
2628
  --cirth-meter-optimum-color: var(--cirth-success);
2510
2629
  --cirth-meter-suboptimum-color: var(--cirth-warning);
@@ -2518,10 +2637,6 @@ details summary[role="button"]:not(.outline):after {
2518
2637
  --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(189, 47, 33)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2519
2638
  }
2520
2639
 
2521
- :where([data-theme="light"]) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :root:where(:not([data-theme="dark"])) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :host(:where(:not([data-theme="dark"]))) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
2522
- --cirth-form-element-focus-color: var(--cirth-primary-focus);
2523
- }
2524
-
2525
2640
  @media only screen and (prefers-color-scheme: dark) {
2526
2641
  :root:where(:not([data-theme])), :host(:where(:not([data-theme]))) {
2527
2642
  color-scheme: dark;
@@ -2544,12 +2659,19 @@ details summary[role="button"]:not(.outline):after {
2544
2659
  --cirth-primary-underline: oklch(from var(--cirth-primary) l c h / 50%);
2545
2660
  --cirth-primary-hover: oklch(from var(--cirth-primary) calc(l * 1.124) calc(c * 1.132) h);
2546
2661
  --cirth-primary-hover-background: color-mix(in oklch,
2547
- var(--cirth-primary) 81.4%,
2662
+ var(--cirth-primary) 72%,
2548
2663
  black);
2549
2664
  --cirth-primary-hover-border: var(--cirth-primary-hover-background);
2550
2665
  --cirth-primary-hover-underline: var(--cirth-primary-hover);
2551
2666
  --cirth-primary-focus: oklch(from var(--cirth-primary) l c h / 70%);
2552
2667
  --cirth-primary-inverse: oklch(100% 0 0);
2668
+ --cirth-code-background-color: oklch(from var(--cirth-canvas) calc(l - .02) c h);
2669
+ --cirth-card-sectioning-background-color: oklch(from var(--cirth-canvas) calc(l + .025) c h);
2670
+ --cirth-form-element-background-color: oklch(from var(--cirth-canvas) calc(l - .008) c h);
2671
+ --cirth-card-background-color: oklch(from var(--cirth-canvas) calc(l + .04) c h);
2672
+ --cirth-form-element-active-background-color: var(--cirth-canvas);
2673
+ --cirth-dropdown-background-color: var(--cirth-card-background-color);
2674
+ --cirth-popover-background-color: var(--cirth-card-background-color);
2553
2675
  --cirth-secondary-background: oklch(48.3% .03 264);
2554
2676
  --cirth-secondary-border: var(--cirth-secondary-background);
2555
2677
  --cirth-secondary-hover-border: var(--cirth-secondary-hover-background);
@@ -2565,13 +2687,13 @@ details summary[role="button"]:not(.outline):after {
2565
2687
  --cirth-blockquote-footer-color: var(--cirth-muted-color);
2566
2688
  --cirth-button-box-shadow: 0 0 0 #0000;
2567
2689
  --cirth-button-hover-box-shadow: 0 0 0 #0000;
2568
- --cirth-table-border-color: var(--cirth-muted-border-color);
2690
+ --cirth-table-border-color: var(--cirth-card-border-color);
2569
2691
  --cirth-table-row-stripped-background-color: oklch(57% .032 264 / .0375);
2570
- --cirth-code-kbd-background-color: var(--cirth-color);
2692
+ --cirth-code-kbd-background-color: var(--cirth-ink);
2571
2693
  --cirth-code-kbd-color: var(--cirth-background-color);
2572
2694
  --cirth-form-element-placeholder-color: oklch(65.7% .03 264);
2573
2695
  --cirth-form-element-active-border-color: var(--cirth-primary-border);
2574
- --cirth-form-element-focus-color: var(--cirth-primary-border);
2696
+ --cirth-form-element-focus-color: var(--cirth-primary-focus);
2575
2697
  --cirth-form-element-disabled-opacity: var(--cirth-opacity-disabled);
2576
2698
  --cirth-form-element-invalid-border-color: var(--cirth-error-border);
2577
2699
  --cirth-form-element-invalid-active-border-color: var(--cirth-error-active);
@@ -2586,29 +2708,28 @@ details summary[role="button"]:not(.outline):after {
2586
2708
  --cirth-range-thumb-color: var(--cirth-secondary-background);
2587
2709
  --cirth-range-thumb-active-color: var(--cirth-primary-background);
2588
2710
  --cirth-accordion-active-summary-color: var(--cirth-primary-hover);
2589
- --cirth-accordion-close-summary-color: var(--cirth-color);
2590
- --cirth-accordion-open-summary-color: var(--cirth-muted-color);
2591
- --cirth-card-border-color: var(--cirth-card-background-color);
2592
- --cirth-card-box-shadow: var(--cirth-box-shadow);
2711
+ --cirth-accordion-close-summary-color: var(--cirth-ink);
2712
+ --cirth-accordion-open-summary-color: var(--cirth-ink);
2713
+ --cirth-card-border-color: color-mix(in oklab,
2714
+ var(--cirth-form-element-border-color) 46%,
2715
+ var(--cirth-card-background-color));
2593
2716
  --cirth-dropdown-box-shadow: var(--cirth-box-shadow);
2594
- --cirth-dropdown-color: var(--cirth-color);
2595
- --cirth-modal-overlay-background-color: oklch(9% 0 312deg / var(--cirth-opacity-overlay));
2717
+ --cirth-dropdown-color: var(--cirth-ink);
2718
+ --cirth-dropdown-border-color: var(--cirth-card-border-color);
2719
+ --cirth-dropdown-hover-background-color: var(--cirth-card-sectioning-background-color);
2720
+ --cirth-modal-overlay-background-color: oklch(9% 0 0deg / var(--cirth-opacity-overlay));
2596
2721
  --cirth-meter-optimum-color: var(--cirth-success);
2597
2722
  --cirth-meter-suboptimum-color: var(--cirth-warning);
2598
2723
  --cirth-meter-even-less-good-color: var(--cirth-error);
2599
- --cirth-progress-color: oklch(61.3% .113 69.35);
2600
- --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
2601
- --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
2602
- --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
2603
- --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
2724
+ --cirth-progress-color: var(--cirth-primary);
2725
+ --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
2726
+ --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
2727
+ --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
2728
+ --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
2604
2729
  --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2605
2730
  --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2606
2731
  }
2607
2732
 
2608
- :root:where(:not([data-theme])) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]), :host(:where(:not([data-theme]))) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
2609
- --cirth-form-element-focus-color: var(--cirth-primary-focus);
2610
- }
2611
-
2612
2733
  :root:where(:not([data-theme])) details summary[role="button"].contrast:not(.outline):after, :host(:where(:not([data-theme]))) details summary[role="button"].contrast:not(.outline):after, :root:where(:not([data-theme])) [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before, :host(:where(:not([data-theme]))) [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
2613
2734
  filter: brightness(0);
2614
2735
  }
@@ -2635,12 +2756,19 @@ details summary[role="button"]:not(.outline):after {
2635
2756
  --cirth-primary-underline: oklch(from var(--cirth-primary) l c h / 50%);
2636
2757
  --cirth-primary-hover: oklch(from var(--cirth-primary) calc(l * 1.124) calc(c * 1.132) h);
2637
2758
  --cirth-primary-hover-background: color-mix(in oklch,
2638
- var(--cirth-primary) 81.4%,
2759
+ var(--cirth-primary) 72%,
2639
2760
  black);
2640
2761
  --cirth-primary-hover-border: var(--cirth-primary-hover-background);
2641
2762
  --cirth-primary-hover-underline: var(--cirth-primary-hover);
2642
2763
  --cirth-primary-focus: oklch(from var(--cirth-primary) l c h / 70%);
2643
2764
  --cirth-primary-inverse: oklch(100% 0 0);
2765
+ --cirth-code-background-color: oklch(from var(--cirth-canvas) calc(l - .02) c h);
2766
+ --cirth-card-sectioning-background-color: oklch(from var(--cirth-canvas) calc(l + .025) c h);
2767
+ --cirth-form-element-background-color: oklch(from var(--cirth-canvas) calc(l - .008) c h);
2768
+ --cirth-card-background-color: oklch(from var(--cirth-canvas) calc(l + .04) c h);
2769
+ --cirth-form-element-active-background-color: var(--cirth-canvas);
2770
+ --cirth-dropdown-background-color: var(--cirth-card-background-color);
2771
+ --cirth-popover-background-color: var(--cirth-card-background-color);
2644
2772
  --cirth-secondary-background: oklch(48.3% .03 264);
2645
2773
  --cirth-secondary-border: var(--cirth-secondary-background);
2646
2774
  --cirth-secondary-hover-border: var(--cirth-secondary-hover-background);
@@ -2656,13 +2784,13 @@ details summary[role="button"]:not(.outline):after {
2656
2784
  --cirth-blockquote-footer-color: var(--cirth-muted-color);
2657
2785
  --cirth-button-box-shadow: 0 0 0 #0000;
2658
2786
  --cirth-button-hover-box-shadow: 0 0 0 #0000;
2659
- --cirth-table-border-color: var(--cirth-muted-border-color);
2787
+ --cirth-table-border-color: var(--cirth-card-border-color);
2660
2788
  --cirth-table-row-stripped-background-color: oklch(57% .032 264 / .0375);
2661
- --cirth-code-kbd-background-color: var(--cirth-color);
2789
+ --cirth-code-kbd-background-color: var(--cirth-ink);
2662
2790
  --cirth-code-kbd-color: var(--cirth-background-color);
2663
2791
  --cirth-form-element-placeholder-color: oklch(65.7% .03 264);
2664
2792
  --cirth-form-element-active-border-color: var(--cirth-primary-border);
2665
- --cirth-form-element-focus-color: var(--cirth-primary-border);
2793
+ --cirth-form-element-focus-color: var(--cirth-primary-focus);
2666
2794
  --cirth-form-element-disabled-opacity: var(--cirth-opacity-disabled);
2667
2795
  --cirth-form-element-invalid-border-color: var(--cirth-error-border);
2668
2796
  --cirth-form-element-invalid-active-border-color: var(--cirth-error-active);
@@ -2677,29 +2805,28 @@ details summary[role="button"]:not(.outline):after {
2677
2805
  --cirth-range-thumb-color: var(--cirth-secondary-background);
2678
2806
  --cirth-range-thumb-active-color: var(--cirth-primary-background);
2679
2807
  --cirth-accordion-active-summary-color: var(--cirth-primary-hover);
2680
- --cirth-accordion-close-summary-color: var(--cirth-color);
2681
- --cirth-accordion-open-summary-color: var(--cirth-muted-color);
2682
- --cirth-card-border-color: var(--cirth-card-background-color);
2683
- --cirth-card-box-shadow: var(--cirth-box-shadow);
2808
+ --cirth-accordion-close-summary-color: var(--cirth-ink);
2809
+ --cirth-accordion-open-summary-color: var(--cirth-ink);
2810
+ --cirth-card-border-color: color-mix(in oklab,
2811
+ var(--cirth-form-element-border-color) 46%,
2812
+ var(--cirth-card-background-color));
2684
2813
  --cirth-dropdown-box-shadow: var(--cirth-box-shadow);
2685
- --cirth-dropdown-color: var(--cirth-color);
2686
- --cirth-modal-overlay-background-color: oklch(9% 0 312deg / var(--cirth-opacity-overlay));
2814
+ --cirth-dropdown-color: var(--cirth-ink);
2815
+ --cirth-dropdown-border-color: var(--cirth-card-border-color);
2816
+ --cirth-dropdown-hover-background-color: var(--cirth-card-sectioning-background-color);
2817
+ --cirth-modal-overlay-background-color: oklch(9% 0 0deg / var(--cirth-opacity-overlay));
2687
2818
  --cirth-meter-optimum-color: var(--cirth-success);
2688
2819
  --cirth-meter-suboptimum-color: var(--cirth-warning);
2689
2820
  --cirth-meter-even-less-good-color: var(--cirth-error);
2690
- --cirth-progress-color: oklch(61.3% .113 69.35);
2691
- --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
2692
- --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
2693
- --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
2694
- --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(122, 132, 152)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
2821
+ --cirth-progress-color: var(--cirth-primary);
2822
+ --cirth-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
2823
+ --cirth-icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
2824
+ --cirth-icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
2825
+ --cirth-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 146, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
2695
2826
  --cirth-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(75, 215, 153)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
2696
2827
  --cirth-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgb(246, 160, 145)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
2697
2828
  }
2698
2829
 
2699
- :where([data-theme="dark"]) input:is([type="submit"], [type="button"], [type="reset"], [type="checkbox"], [type="radio"], [type="file"]) {
2700
- --cirth-form-element-focus-color: var(--cirth-primary-focus);
2701
- }
2702
-
2703
2830
  :where([data-theme="dark"]) details summary[role="button"].contrast:not(.outline):after, :where([data-theme="dark"]) [aria-busy="true"]:not(input, select, textarea).contrast:is(button, [type="submit"], [type="button"], [type="reset"], [role="button"]):not(.outline):before {
2704
2831
  filter: brightness(0);
2705
2832
  }
@@ -2710,7 +2837,7 @@ progress, [type="checkbox"], [type="radio"], [type="range"] {
2710
2837
 
2711
2838
  @media (prefers-contrast: more) {
2712
2839
  :where([data-theme="light"]), :root:where(:not([data-theme="dark"])), :host(:where(:not([data-theme="dark"]))) {
2713
- --cirth-color: oklch(22.3% .006 264);
2840
+ --cirth-ink: oklch(22.3% .006 264);
2714
2841
  --cirth-h1-color: var(--cirth-color);
2715
2842
  --cirth-h2-color: var(--cirth-color);
2716
2843
  --cirth-h3-color: var(--cirth-color);
@@ -2748,7 +2875,7 @@ progress, [type="checkbox"], [type="radio"], [type="range"] {
2748
2875
 
2749
2876
  @media only screen and (prefers-contrast: more) and (prefers-color-scheme: dark) {
2750
2877
  :root:where(:not([data-theme])), :host(:where(:not([data-theme]))) {
2751
- --cirth-color: oklch(96% 0 264);
2878
+ --cirth-ink: oklch(96% 0 264);
2752
2879
  --cirth-h1-color: var(--cirth-color);
2753
2880
  --cirth-h2-color: var(--cirth-color);
2754
2881
  --cirth-h3-color: var(--cirth-color);
@@ -2789,7 +2916,7 @@ progress, [type="checkbox"], [type="radio"], [type="range"] {
2789
2916
 
2790
2917
  @media (prefers-contrast: more) {
2791
2918
  :where([data-theme="dark"]) {
2792
- --cirth-color: oklch(96% 0 264);
2919
+ --cirth-ink: oklch(96% 0 264);
2793
2920
  --cirth-h1-color: var(--cirth-color);
2794
2921
  --cirth-h2-color: var(--cirth-color);
2795
2922
  --cirth-h3-color: var(--cirth-color);