mevebu 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1162 @@
1
+ /* mevebu. Every product class starts with mvb-. Tokens first, then the frame,
2
+ then components. See DESIGN.md for the reasoning behind each decision. */
3
+
4
+ /* ---------- tokens ---------- */
5
+
6
+ :root {
7
+ --mvb-void: #f2f4f8;
8
+ --mvb-deck: #ffffff;
9
+ --mvb-deck-2: #e9edf4;
10
+ --mvb-ink: #151d2e;
11
+ --mvb-ink-2: #4b5871;
12
+ --mvb-ink-3: #69748c;
13
+ --mvb-orbit: #dbe1ee;
14
+ --mvb-orbit-hard: #c2cbdf;
15
+ --mvb-comet: #2456d6;
16
+ --mvb-comet-deep: #1a43ad;
17
+ --mvb-on-comet: #ffffff;
18
+ --mvb-nebula: #e3ebfd;
19
+ --mvb-aurora: #0d7a56;
20
+ --mvb-danger: #b3261e;
21
+ --mvb-star: #e6a100;
22
+
23
+ --mvb-r1: 10px;
24
+ --mvb-r2: 16px;
25
+ --mvb-r3: 24px;
26
+
27
+ --mvb-margin: clamp(20px, 5vw, 44px);
28
+ --mvb-gutter: clamp(14px, 2vw, 24px);
29
+ --mvb-bench: 1120px;
30
+ --mvb-bar: 60px;
31
+
32
+ --mvb-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
33
+ --mvb-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
34
+
35
+ --mvb-ease: cubic-bezier(0.22, 0.9, 0.28, 1);
36
+ --mvb-t: 150ms;
37
+ color-scheme: light;
38
+ }
39
+
40
+ :root[data-theme="dark"] {
41
+ --mvb-void: #070b18;
42
+ --mvb-deck: #0d1428;
43
+ --mvb-deck-2: #16203a;
44
+ --mvb-ink: #e9eefb;
45
+ --mvb-ink-2: #aeb9d2;
46
+ --mvb-ink-3: #8b97b3;
47
+ --mvb-orbit: #1d2a4d;
48
+ --mvb-orbit-hard: #2c3d68;
49
+ --mvb-comet: #5f8bff;
50
+ --mvb-comet-deep: #7ba1ff;
51
+ --mvb-on-comet: #060b18;
52
+ --mvb-nebula: #131e3c;
53
+ --mvb-aurora: #4ad69c;
54
+ --mvb-danger: #ff8a80;
55
+ --mvb-star: #ffcf4d;
56
+ color-scheme: dark;
57
+ }
58
+
59
+ /* ---------- reset ---------- */
60
+
61
+ *,
62
+ *::before,
63
+ *::after { box-sizing: border-box; }
64
+
65
+ html { -webkit-text-size-adjust: 100%; }
66
+
67
+ body {
68
+ margin: 0;
69
+ min-height: 100vh;
70
+ display: flex;
71
+ flex-direction: column;
72
+ background: var(--mvb-void);
73
+ color: var(--mvb-ink);
74
+ font-family: var(--mvb-sans);
75
+ font-size: 16px;
76
+ line-height: 1.55;
77
+ -webkit-font-smoothing: antialiased;
78
+ }
79
+
80
+ h1, h2, h3, p, ul, pre, figure { margin: 0; }
81
+ ul { list-style: none; padding: 0; }
82
+ button, input, textarea, select { font: inherit; color: inherit; }
83
+ a { color: inherit; }
84
+
85
+ [hidden] { display: none !important; }
86
+
87
+ :focus-visible {
88
+ outline: 2px solid var(--mvb-comet);
89
+ outline-offset: 2px;
90
+ border-radius: 6px;
91
+ }
92
+
93
+ ::selection { background: var(--mvb-nebula); }
94
+
95
+ /* ---------- icons ---------- */
96
+
97
+ .mvb-ico {
98
+ width: 18px;
99
+ height: 18px;
100
+ flex: none;
101
+ display: block;
102
+ }
103
+ .mvb-ico--lg { width: 26px; height: 26px; }
104
+ .mvb-ico--sm { width: 15px; height: 15px; }
105
+
106
+ /* ---------- header ---------- */
107
+
108
+ .mvb-bar {
109
+ position: sticky;
110
+ top: 0;
111
+ z-index: 30;
112
+ background: color-mix(in srgb, var(--mvb-deck) 88%, transparent);
113
+ border-bottom: 1px solid var(--mvb-orbit);
114
+ backdrop-filter: saturate(140%) blur(10px);
115
+ -webkit-backdrop-filter: saturate(140%) blur(10px);
116
+ }
117
+
118
+ .mvb-bar__in {
119
+ height: var(--mvb-bar);
120
+ margin-inline: var(--mvb-margin);
121
+ display: flex;
122
+ align-items: center;
123
+ gap: clamp(14px, 3vw, 32px);
124
+ }
125
+
126
+ .mvb-mark {
127
+ display: inline-flex;
128
+ align-items: center;
129
+ gap: 10px;
130
+ text-decoration: none;
131
+ font-weight: 700;
132
+ font-size: 18px;
133
+ letter-spacing: -0.01em;
134
+ color: var(--mvb-ink);
135
+ }
136
+
137
+ .mvb-mark img {
138
+ width: 30px;
139
+ height: 30px;
140
+ border-radius: 9px;
141
+ display: block;
142
+ box-shadow: 0 0 0 1px var(--mvb-orbit);
143
+ }
144
+
145
+ .mvb-nav {
146
+ display: flex;
147
+ gap: 4px;
148
+ margin-inline-start: auto;
149
+ background: var(--mvb-deck-2);
150
+ border: 1px solid var(--mvb-orbit);
151
+ border-radius: var(--mvb-r2);
152
+ padding: 4px;
153
+ }
154
+
155
+ .mvb-nav__link {
156
+ color: var(--mvb-ink-2);
157
+ text-decoration: none;
158
+ font-size: 14.5px;
159
+ font-weight: 600;
160
+ padding: 7px 12px;
161
+ border-radius: 8px;
162
+ transition: background var(--mvb-t) ease, color var(--mvb-t) ease;
163
+ }
164
+
165
+ .mvb-nav__link:hover { color: var(--mvb-ink); background: color-mix(in srgb, var(--mvb-ink) 6%, transparent); }
166
+ .mvb-nav__link.mvb-on { color: var(--mvb-ink); background: var(--mvb-deck); box-shadow: 0 0 0 1px var(--mvb-orbit); }
167
+
168
+ .mvb-bar__end { display: flex; align-items: center; gap: 2px; }
169
+
170
+ .mvb-icobtn {
171
+ width: 40px;
172
+ height: 40px;
173
+ display: inline-flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ background: none;
177
+ border: 1px solid transparent;
178
+ border-radius: var(--mvb-r1);
179
+ color: var(--mvb-ink-2);
180
+ cursor: pointer;
181
+ transition: background var(--mvb-t) ease, color var(--mvb-t) ease;
182
+ }
183
+
184
+ .mvb-icobtn:hover { background: var(--mvb-deck-2); color: var(--mvb-ink); }
185
+ .mvb-icobtn:focus-visible { border-color: var(--mvb-comet); }
186
+ .mvb-bar__menu { display: none; }
187
+
188
+ /* search button that opens the palette */
189
+
190
+ .mvb-searchbtn {
191
+ display: inline-flex;
192
+ align-items: center;
193
+ gap: 8px;
194
+ height: 40px;
195
+ padding: 0 10px 0 12px;
196
+ background: var(--mvb-deck-2);
197
+ border: 1px solid var(--mvb-orbit);
198
+ border-radius: var(--mvb-r1);
199
+ color: var(--mvb-ink-2);
200
+ font-size: 14px;
201
+ font-weight: 550;
202
+ cursor: pointer;
203
+ margin-inline-end: 4px;
204
+ min-width: 180px;
205
+ transition: border-color var(--mvb-t) ease, color var(--mvb-t) ease, background var(--mvb-t) ease;
206
+ }
207
+
208
+ .mvb-searchbtn:hover { border-color: var(--mvb-orbit-hard); color: var(--mvb-ink); background: var(--mvb-deck); }
209
+ .mvb-searchbtn:focus-visible { border-color: var(--mvb-comet); }
210
+ .mvb-searchbtn .mvb-ico { color: var(--mvb-ink-3); width: 15px; height: 15px; }
211
+
212
+ .mvb-searchbtn__txt { font-size: 14px; flex: 1; text-align: start; }
213
+
214
+ .mvb-searchbtn__key {
215
+ font-family: var(--mvb-sans);
216
+ font-size: 11.5px;
217
+ font-weight: 600;
218
+ color: var(--mvb-ink-3);
219
+ border: 1px solid var(--mvb-orbit);
220
+ border-radius: 4px;
221
+ padding: 1px 6px;
222
+ background: var(--mvb-deck);
223
+ }
224
+
225
+ @media (max-width: 720px) {
226
+ .mvb-searchbtn { display: none; }
227
+ }
228
+
229
+ .mvb-sheet {
230
+ border-top: 1px solid var(--mvb-orbit);
231
+ background: var(--mvb-deck);
232
+ padding: 6px var(--mvb-margin) 14px;
233
+ display: grid;
234
+ }
235
+
236
+ .mvb-sheet__link {
237
+ padding: 13px 0;
238
+ font-size: 17px;
239
+ font-weight: 550;
240
+ text-decoration: none;
241
+ border-bottom: 1px solid var(--mvb-orbit);
242
+ background: none;
243
+ text-align: start;
244
+ color: var(--mvb-ink);
245
+ display: flex;
246
+ align-items: center;
247
+ gap: 8px;
248
+ }
249
+
250
+ .mvb-sheet__link:last-child { border-bottom: 0; }
251
+ .mvb-sheet__link .mvb-ico { color: var(--mvb-ink-3); }
252
+ .mvb-sheet__action { color: var(--mvb-comet); }
253
+
254
+ /* ---------- frame ---------- */
255
+
256
+ .mvb-main {
257
+ flex: 1;
258
+ outline: none;
259
+ }
260
+
261
+ .mvb-page { padding-inline: var(--mvb-margin); }
262
+
263
+ .mvb-page--tool,
264
+ .mvb-page--narrow {
265
+ max-width: var(--mvb-bench);
266
+ margin-inline: auto;
267
+ }
268
+
269
+ .mvb-link { color: var(--mvb-comet); text-underline-offset: 3px; }
270
+
271
+ .mvb-kbd {
272
+ font-family: var(--mvb-sans);
273
+ font-size: 12.5px;
274
+ border: 1px solid var(--mvb-orbit);
275
+ border-radius: 5px;
276
+ padding: 1px 7px;
277
+ background: var(--mvb-deck-2);
278
+ color: var(--mvb-ink-2);
279
+ }
280
+
281
+ /* hero, only on the home page */
282
+
283
+ .mvb-hero {
284
+ position: relative;
285
+ overflow: clip;
286
+ border-bottom: 1px solid var(--mvb-orbit);
287
+ background:
288
+ radial-gradient(560px 300px at 12% -40px, var(--mvb-nebula), transparent 70%),
289
+ var(--mvb-deck);
290
+ }
291
+
292
+ .mvb-hero__in {
293
+ max-width: var(--mvb-bench);
294
+ margin-inline: auto;
295
+ padding: clamp(48px, 8vw, 104px) var(--mvb-margin) clamp(40px, 6vw, 80px);
296
+ display: grid;
297
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
298
+ gap: clamp(24px, 5vw, 72px);
299
+ align-items: center;
300
+ }
301
+
302
+ .mvb-hero__title {
303
+ font-size: clamp(34px, 6vw, 60px);
304
+ line-height: 1.02;
305
+ letter-spacing: -0.03em;
306
+ font-weight: 700;
307
+ text-wrap: balance;
308
+ }
309
+
310
+ .mvb-hero__cta { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 10px; }
311
+
312
+ .mvb-hero__orbit { justify-self: center; width: min(300px, 70vw); }
313
+ .mvb-hero__orbit img { width: 100%; height: auto; border-radius: var(--mvb-r3); display: block; }
314
+
315
+ /* index sections */
316
+
317
+ .mvb-section { padding-block: clamp(32px, 5vw, 60px) 0; }
318
+
319
+ .mvb-section__head {
320
+ display: flex;
321
+ align-items: baseline;
322
+ gap: 12px;
323
+ margin-bottom: 16px;
324
+ }
325
+
326
+ .mvb-section__title {
327
+ font-size: clamp(21px, 3vw, 27px);
328
+ font-weight: 700;
329
+ letter-spacing: -0.02em;
330
+ display: flex;
331
+ align-items: center;
332
+ gap: 10px;
333
+ }
334
+
335
+ .mvb-section__title .mvb-ico { color: var(--mvb-comet); width: 22px; height: 22px; }
336
+
337
+ .mvb-section__count {
338
+ margin-left: 6px;
339
+ font-size: 13px;
340
+ font-weight: 600;
341
+ color: var(--mvb-ink-3);
342
+ background: var(--mvb-deck-2);
343
+ padding: 2px 8px;
344
+ border-radius: 999px;
345
+ font-variant-numeric: tabular-nums;
346
+ }
347
+
348
+ .mvb-section__more {
349
+ margin-inline-start: auto;
350
+ font-size: 14.5px;
351
+ font-weight: 600;
352
+ color: var(--mvb-comet);
353
+ text-decoration: none;
354
+ white-space: nowrap;
355
+ }
356
+
357
+ .mvb-section__more:hover { text-decoration: underline; }
358
+
359
+ /* ---------- column system: mvb-cols for any grid ---------- */
360
+
361
+ .mvb-cols { display: grid; gap: var(--mvb-gutter); }
362
+ .mvb-cols--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
363
+ .mvb-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
364
+ .mvb-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
365
+ .mvb-cols--auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
366
+ .mvb-cols--side { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); }
367
+
368
+ .mvb-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
369
+ .mvb-col { min-width: 0; }
370
+ .mvb-col--grow { flex: 1; }
371
+ .mvb-col--shrink { flex: none; }
372
+
373
+ @media (max-width: 960px) {
374
+ .mvb-cols--3, .mvb-cols--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
375
+ .mvb-cols--side { grid-template-columns: 1fr; }
376
+ }
377
+ @media (max-width: 640px) {
378
+ .mvb-cols--2, .mvb-cols--3, .mvb-cols--4 { grid-template-columns: 1fr; }
379
+ }
380
+
381
+ /* legacy alias kept for the cards on home and tools pages */
382
+
383
+ .mvb-grid {
384
+ display: grid;
385
+ grid-template-columns: repeat(3, minmax(0, 1fr));
386
+ gap: var(--mvb-gutter);
387
+ }
388
+
389
+ .mvb-card {
390
+ position: relative;
391
+ display: grid;
392
+ gap: 6px;
393
+ padding: 20px;
394
+ background: var(--mvb-deck);
395
+ border: 1px solid var(--mvb-orbit);
396
+ border-radius: var(--mvb-r2);
397
+ text-decoration: none;
398
+ transition: border-color var(--mvb-t) ease, transform var(--mvb-t) var(--mvb-ease);
399
+ }
400
+
401
+ .mvb-card:hover { border-color: var(--mvb-comet); }
402
+
403
+ .mvb-card__top { display: flex; align-items: center; gap: 12px; }
404
+
405
+ .mvb-card__sigil {
406
+ width: 42px;
407
+ height: 42px;
408
+ flex: none;
409
+ display: grid;
410
+ place-items: center;
411
+ border-radius: 13px;
412
+ background: var(--mvb-nebula);
413
+ color: var(--mvb-comet);
414
+ }
415
+
416
+ .mvb-card__sigil .mvb-ico { width: 21px; height: 21px; }
417
+
418
+ .mvb-card__name { font-size: 17px; font-weight: 650; letter-spacing: -0.01em; }
419
+
420
+ .mvb-card__note { font-size: 14.5px; color: var(--mvb-ink-2); text-wrap: pretty; min-height: 44px; }
421
+
422
+ .mvb-card__foot {
423
+ margin-top: 6px;
424
+ display: flex;
425
+ align-items: center;
426
+ gap: 8px;
427
+ font-size: 13.5px;
428
+ font-weight: 600;
429
+ color: var(--mvb-ink-3);
430
+ }
431
+
432
+ /* compact rows inside category and favorites pages */
433
+
434
+ .mvb-rows { display: grid; background: var(--mvb-deck); border: 1px solid var(--mvb-orbit); border-radius: var(--mvb-r2); overflow: clip; }
435
+
436
+ .mvb-row { display: flex; align-items: center; border-bottom: 1px solid var(--mvb-orbit); }
437
+ .mvb-row:last-child { border-bottom: 0; }
438
+
439
+ .mvb-row__link {
440
+ flex: 1;
441
+ min-width: 0;
442
+ display: grid;
443
+ gap: 1px;
444
+ padding: 13px 6px 13px 18px;
445
+ text-decoration: none;
446
+ }
447
+
448
+ .mvb-row__link:hover .mvb-row__name { color: var(--mvb-comet); }
449
+
450
+ .mvb-row__name { font-size: 16.5px; font-weight: 600; letter-spacing: -0.01em; }
451
+ .mvb-row__note { font-size: 14px; color: var(--mvb-ink-2); }
452
+
453
+ .mvb-star {
454
+ width: 44px;
455
+ height: 44px;
456
+ flex: none;
457
+ margin-right: 8px;
458
+ display: inline-flex;
459
+ align-items: center;
460
+ justify-content: center;
461
+ background: none;
462
+ border: 0;
463
+ border-radius: var(--mvb-r1);
464
+ color: var(--mvb-orbit-hard);
465
+ cursor: pointer;
466
+ transition: color var(--mvb-t) ease, transform var(--mvb-t) var(--mvb-ease);
467
+ }
468
+
469
+ .mvb-star:hover { color: var(--mvb-ink-2); }
470
+ .mvb-star.mvb-on { color: var(--mvb-star); }
471
+ .mvb-star.mvb-on .mvb-ico { fill: var(--mvb-star); }
472
+ .mvb-star:active { transform: scale(0.88); }
473
+
474
+ /* filter */
475
+
476
+ .mvb-filter {
477
+ margin-top: clamp(22px, 4vw, 36px);
478
+ display: flex;
479
+ align-items: center;
480
+ gap: 10px;
481
+ background: var(--mvb-deck);
482
+ border: 1px solid var(--mvb-orbit);
483
+ border-radius: var(--mvb-r2);
484
+ padding: 0 14px;
485
+ transition: border-color var(--mvb-t) ease;
486
+ }
487
+
488
+ .mvb-filter:focus-within { border-color: var(--mvb-comet); }
489
+
490
+ .mvb-filter__icon { color: var(--mvb-ink-3); display: flex; }
491
+
492
+ .mvb-filter__in {
493
+ flex: 1;
494
+ min-width: 0;
495
+ height: 52px;
496
+ border: 0;
497
+ background: none;
498
+ font-size: 17px;
499
+ }
500
+
501
+ .mvb-filter__in:focus { outline: none; }
502
+ .mvb-filter__in::placeholder { color: var(--mvb-ink-3); }
503
+
504
+ .mvb-filter__key {
505
+ font-family: var(--mvb-sans);
506
+ font-size: 12px;
507
+ color: var(--mvb-ink-3);
508
+ border: 1px solid var(--mvb-orbit);
509
+ border-radius: 5px;
510
+ padding: 2px 7px;
511
+ }
512
+
513
+ .mvb-filter__meta {
514
+ display: flex;
515
+ gap: 14px;
516
+ align-items: baseline;
517
+ margin-top: 10px;
518
+ min-height: 22px;
519
+ font-size: 14px;
520
+ color: var(--mvb-ink-3);
521
+ }
522
+
523
+ .mvb-tally { color: var(--mvb-danger); }
524
+
525
+ /* headings on secondary pages */
526
+
527
+ .mvb-lead {
528
+ font-size: clamp(28px, 5vw, 44px);
529
+ line-height: 1.06;
530
+ letter-spacing: -0.025em;
531
+ font-weight: 700;
532
+ text-wrap: balance;
533
+ max-width: 20ch;
534
+ margin-top: clamp(28px, 5vw, 56px);
535
+ }
536
+
537
+ .mvb-lede { margin-top: 12px; font-size: 17px; color: var(--mvb-ink-2); max-width: 60ch; text-wrap: pretty; }
538
+
539
+ /* ---------- tool page ---------- */
540
+
541
+ .mvb-head { margin-block: clamp(24px, 4vw, 44px) clamp(22px, 3vw, 32px); }
542
+
543
+ .mvb-head__back {
544
+ display: inline-flex;
545
+ align-items: center;
546
+ gap: 7px;
547
+ font-size: 15px;
548
+ font-weight: 550;
549
+ color: var(--mvb-ink-2);
550
+ text-decoration: none;
551
+ margin-bottom: 16px;
552
+ }
553
+
554
+ .mvb-head__back:hover { color: var(--mvb-ink); }
555
+
556
+ .mvb-head__row { display: flex; align-items: flex-start; gap: 8px; }
557
+
558
+ .mvb-head__title {
559
+ font-size: clamp(26px, 4vw, 36px);
560
+ line-height: 1.1;
561
+ letter-spacing: -0.025em;
562
+ font-weight: 700;
563
+ text-wrap: balance;
564
+ flex: 1;
565
+ }
566
+
567
+ .mvb-head__actions { display: flex; align-items: center; gap: 2px; padding-top: 4px; }
568
+
569
+ .mvb-head__about { margin-top: 8px; font-size: 17px; color: var(--mvb-ink-2); max-width: 58ch; text-wrap: pretty; }
570
+
571
+ .mvb-helpbtn {
572
+ width: 38px;
573
+ height: 38px;
574
+ display: inline-flex;
575
+ align-items: center;
576
+ justify-content: center;
577
+ background: var(--mvb-deck-2);
578
+ border: 1px solid var(--mvb-orbit);
579
+ border-radius: 999px;
580
+ color: var(--mvb-ink-2);
581
+ cursor: pointer;
582
+ font-size: 16px;
583
+ font-weight: 700;
584
+ font-family: var(--mvb-sans);
585
+ transition: background var(--mvb-t) ease, color var(--mvb-t) ease, border-color var(--mvb-t) ease;
586
+ }
587
+
588
+ .mvb-helpbtn:hover { background: var(--mvb-deck); color: var(--mvb-ink); border-color: var(--mvb-orbit-hard); }
589
+ .mvb-helpbtn:focus-visible { border-color: var(--mvb-comet); }
590
+
591
+ .mvb-more { margin-top: clamp(40px, 6vw, 72px); }
592
+ .mvb-more__title { font-size: 15px; font-weight: 700; color: var(--mvb-ink-3); margin-bottom: 10px; }
593
+
594
+ /* ---------- tool card: header, body, footer ---------- */
595
+
596
+ .mvb-toolcard {
597
+ display: flex;
598
+ flex-direction: column;
599
+ background: var(--mvb-deck);
600
+ border: 1px solid var(--mvb-orbit);
601
+ border-radius: var(--mvb-r2);
602
+ overflow: clip;
603
+ }
604
+
605
+ .mvb-toolcard__head {
606
+ display: flex;
607
+ flex-wrap: wrap;
608
+ align-items: center;
609
+ gap: 8px;
610
+ padding: clamp(12px, 2vw, 16px) clamp(20px, 3vw, 32px);
611
+ border-bottom: 1px solid var(--mvb-orbit);
612
+ background: var(--mvb-deck-2);
613
+ }
614
+
615
+ .mvb-toolcard__head .mvb-actions {
616
+ margin: 0;
617
+ padding: 0;
618
+ width: 100%;
619
+ }
620
+
621
+ .mvb-toolcard__body {
622
+ flex: 1;
623
+ padding: clamp(20px, 3vw, 32px);
624
+ }
625
+
626
+ .mvb-toolcard__foot {
627
+ display: flex;
628
+ flex-wrap: wrap;
629
+ align-items: center;
630
+ gap: 8px;
631
+ padding: clamp(12px, 2vw, 16px) clamp(20px, 3vw, 32px);
632
+ border-top: 1px solid var(--mvb-orbit);
633
+ background: var(--mvb-deck-2);
634
+ justify-content: flex-end;
635
+ }
636
+
637
+ .mvb-toolcard__foot[hidden],
638
+ .mvb-toolcard__head[hidden] { display: none; }
639
+
640
+ .mvb-toolcard .mvb-bench,
641
+ .mvb-toolcard .mvb-stage { gap: clamp(16px, 2.4vw, 24px); }
642
+
643
+ @media (max-width: 720px) {
644
+ .mvb-toolcard__body { padding: 18px; }
645
+ .mvb-toolcard__head,
646
+ .mvb-toolcard__foot { padding-inline: 18px; }
647
+ }
648
+
649
+ /* ---------- bench ---------- */
650
+
651
+ .mvb-bench {
652
+ display: grid;
653
+ grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
654
+ gap: clamp(20px, 3vw, 36px);
655
+ align-items: start;
656
+ }
657
+
658
+ .mvb-bench__side, .mvb-bench__main { min-width: 0; }
659
+
660
+ .mvb-stage {
661
+ display: grid;
662
+ justify-items: center;
663
+ gap: 16px;
664
+ max-width: 560px;
665
+ margin-inline: auto;
666
+ text-align: center;
667
+ }
668
+
669
+ .mvb-stack { display: grid; gap: 14px; align-content: start; }
670
+ .mvb-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
671
+
672
+ /* ---------- form atoms ---------- */
673
+
674
+ .mvb-field { display: grid; gap: 6px; min-width: 0; }
675
+ .mvb-field__label { font-size: 14px; font-weight: 600; color: var(--mvb-ink-2); }
676
+ .mvb-field__hint { font-size: 13px; color: var(--mvb-ink-3); }
677
+
678
+ .mvb-field--error .mvb-in,
679
+ .mvb-field--error .mvb-pick { border-color: var(--mvb-danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mvb-danger) 14%, transparent); }
680
+ .mvb-field--error .mvb-field__hint { color: var(--mvb-danger); }
681
+ .mvb-field--good .mvb-in,
682
+ .mvb-field--good .mvb-pick { border-color: var(--mvb-aurora); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mvb-aurora) 14%, transparent); }
683
+ .mvb-field--good .mvb-field__hint { color: var(--mvb-aurora); }
684
+
685
+ .mvb-in {
686
+ width: 100%;
687
+ min-width: 0;
688
+ padding: 10px 12px;
689
+ background: var(--mvb-deck);
690
+ border: 1px solid var(--mvb-orbit);
691
+ border-radius: var(--mvb-r1);
692
+ color: var(--mvb-ink);
693
+ font: inherit;
694
+ transition: border-color var(--mvb-t) ease, box-shadow var(--mvb-t) ease, background var(--mvb-t) ease;
695
+ }
696
+
697
+ .mvb-in:hover { border-color: var(--mvb-orbit-hard); }
698
+ .mvb-in:focus { outline: none; border-color: var(--mvb-comet); box-shadow: 0 0 0 3px var(--mvb-nebula); }
699
+ .mvb-in::placeholder { color: var(--mvb-ink-3); }
700
+
701
+ .mvb-in[disabled],
702
+ .mvb-in[readonly] { background: var(--mvb-deck-2); color: var(--mvb-ink-3); cursor: default; }
703
+ .mvb-in[disabled] { cursor: not-allowed; opacity: 0.7; }
704
+
705
+ .mvb-in--area { resize: vertical; min-height: 96px; line-height: 1.5; font-family: var(--mvb-mono); font-size: 14px; }
706
+ .mvb-in--num { width: 96px; }
707
+ .mvb-in--mono { font-family: var(--mvb-mono); font-size: 14px; }
708
+
709
+ .mvb-in--select {
710
+ appearance: none;
711
+ -webkit-appearance: none;
712
+ padding-inline-end: 36px;
713
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2369748C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
714
+ background-repeat: no-repeat;
715
+ background-position: right 12px center;
716
+ background-size: 14px;
717
+ cursor: pointer;
718
+ }
719
+
720
+ .mvb-in--file { padding: 6px; }
721
+ .mvb-in--file::file-selector-button {
722
+ margin-right: 10px;
723
+ padding: 4px 10px;
724
+ border: 1px solid var(--mvb-orbit-hard);
725
+ border-radius: var(--mvb-r1);
726
+ background: var(--mvb-deck-2);
727
+ color: var(--mvb-ink);
728
+ font-size: 13px;
729
+ font-weight: 600;
730
+ cursor: pointer;
731
+ }
732
+
733
+ .mvb-check {
734
+ display: inline-flex;
735
+ align-items: center;
736
+ gap: 8px;
737
+ font-size: 15px;
738
+ cursor: pointer;
739
+ padding: 8px 12px 8px 10px;
740
+ border: 1px solid var(--mvb-orbit);
741
+ border-radius: var(--mvb-r1);
742
+ background: var(--mvb-deck);
743
+ transition: border-color var(--mvb-t) ease, background var(--mvb-t) ease;
744
+ }
745
+
746
+ .mvb-check:has(.mvb-check__box:checked) { border-color: var(--mvb-comet); background: var(--mvb-nebula); }
747
+ .mvb-check__box { width: 16px; height: 16px; accent-color: var(--mvb-comet); margin: 0; }
748
+
749
+ /* switch */
750
+
751
+ .mvb-switch {
752
+ display: inline-flex;
753
+ align-items: center;
754
+ gap: 10px;
755
+ font-size: 15px;
756
+ cursor: pointer;
757
+ user-select: none;
758
+ }
759
+ .mvb-switch__box { position: absolute; opacity: 0; pointer-events: none; }
760
+ .mvb-switch__track {
761
+ position: relative;
762
+ width: 38px;
763
+ height: 22px;
764
+ border-radius: 999px;
765
+ background: var(--mvb-orbit-hard);
766
+ transition: background var(--mvb-t) ease;
767
+ }
768
+ .mvb-switch__thumb {
769
+ position: absolute;
770
+ top: 2px;
771
+ left: 2px;
772
+ width: 18px;
773
+ height: 18px;
774
+ border-radius: 50%;
775
+ background: var(--mvb-deck);
776
+ box-shadow: 0 1px 2px rgb(0 0 0 / 0.18);
777
+ transition: transform var(--mvb-t) var(--mvb-ease);
778
+ }
779
+ .mvb-switch__box:checked + .mvb-switch__track { background: var(--mvb-comet); }
780
+ .mvb-switch__box:checked + .mvb-switch__track .mvb-switch__thumb { transform: translateX(16px); }
781
+ .mvb-switch__box:focus-visible + .mvb-switch__track { box-shadow: 0 0 0 3px var(--mvb-nebula); }
782
+
783
+ .mvb-range {
784
+ width: 100%;
785
+ accent-color: var(--mvb-comet);
786
+ }
787
+
788
+ .mvb-pick {
789
+ width: 52px;
790
+ height: 40px;
791
+ flex: none;
792
+ border: 1px solid var(--mvb-orbit);
793
+ border-radius: var(--mvb-r1);
794
+ background: var(--mvb-deck);
795
+ padding: 2px;
796
+ cursor: pointer;
797
+ }
798
+ .mvb-pick:hover { border-color: var(--mvb-orbit-hard); }
799
+ .mvb-pick:focus { outline: none; border-color: var(--mvb-comet); box-shadow: 0 0 0 3px var(--mvb-nebula); }
800
+
801
+ .mvb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
802
+
803
+ .mvb-chip {
804
+ min-height: 38px;
805
+ padding: 0 13px;
806
+ background: var(--mvb-deck);
807
+ border: 1px solid var(--mvb-orbit);
808
+ border-radius: var(--mvb-r1);
809
+ color: var(--mvb-ink-2);
810
+ font-size: 14px;
811
+ font-weight: 550;
812
+ cursor: pointer;
813
+ transition: background var(--mvb-t) ease, border-color var(--mvb-t) ease, color var(--mvb-t) ease;
814
+ }
815
+
816
+ .mvb-chip:hover { border-color: var(--mvb-orbit-hard); color: var(--mvb-ink); }
817
+ .mvb-chip.mvb-on { background: var(--mvb-nebula); border-color: var(--mvb-comet); color: var(--mvb-ink); }
818
+
819
+ /* ---------- action bar: thumbs-up on the right ---------- */
820
+
821
+ .mvb-actions {
822
+ display: flex;
823
+ flex-wrap: wrap;
824
+ gap: 8px;
825
+ align-items: center;
826
+ justify-content: flex-end;
827
+ }
828
+
829
+ /* An action row that sits at the end of a column keeps its own top spacing.
830
+ Inside a card header or footer the container owns the spacing instead. */
831
+
832
+ .mvb-bench .mvb-actions,
833
+ .mvb-stack > .mvb-actions { margin-top: 4px; }
834
+
835
+ /* buttons */
836
+
837
+ .mvb-btn {
838
+ display: inline-flex;
839
+ align-items: center;
840
+ justify-content: center;
841
+ gap: 7px;
842
+ min-height: 40px;
843
+ padding: 0 16px;
844
+ border-radius: var(--mvb-r1);
845
+ border: 1px solid transparent;
846
+ font-size: 15px;
847
+ font-weight: 650;
848
+ cursor: pointer;
849
+ text-decoration: none;
850
+ transition: background var(--mvb-t) ease, border-color var(--mvb-t) ease, transform var(--mvb-t) var(--mvb-ease);
851
+ }
852
+
853
+ .mvb-btn:active { transform: scale(0.97); }
854
+
855
+ .mvb-btn--fill { background: var(--mvb-comet); color: var(--mvb-on-comet); }
856
+ .mvb-btn--fill:hover { background: var(--mvb-comet-deep); }
857
+
858
+ .mvb-btn--plain { background: var(--mvb-deck); border-color: var(--mvb-orbit); color: var(--mvb-ink); }
859
+ .mvb-btn--plain:hover { border-color: var(--mvb-orbit-hard); }
860
+
861
+ .mvb-btn--quiet { background: none; color: var(--mvb-ink-2); padding-inline: 8px; }
862
+ .mvb-btn--quiet:hover { color: var(--mvb-ink); background: var(--mvb-deck-2); }
863
+
864
+ .mvb-btn:disabled { opacity: 0.45; cursor: not-allowed; transform: none; }
865
+
866
+ /* readouts */
867
+
868
+ .mvb-out {
869
+ width: 100%;
870
+ margin: 0;
871
+ padding: 12px 14px;
872
+ background: var(--mvb-deck);
873
+ border: 1px solid var(--mvb-orbit);
874
+ border-radius: var(--mvb-r1);
875
+ font-family: var(--mvb-mono);
876
+ font-size: 14px;
877
+ line-height: 1.5;
878
+ white-space: pre-wrap;
879
+ overflow-wrap: anywhere;
880
+ overflow: auto;
881
+ max-height: 340px;
882
+ }
883
+
884
+ textarea.mvb-out { resize: vertical; }
885
+
886
+ .mvb-note { font-size: 14px; color: var(--mvb-ink-3); }
887
+ .mvb-note--error { color: var(--mvb-danger); }
888
+ .mvb-note--good { color: var(--mvb-aurora); }
889
+
890
+ .mvb-blank {
891
+ display: grid;
892
+ justify-items: center;
893
+ gap: 10px;
894
+ padding: clamp(28px, 6vw, 56px) 16px;
895
+ border: 1px dashed var(--mvb-orbit-hard);
896
+ border-radius: var(--mvb-r2);
897
+ color: var(--mvb-ink-3);
898
+ text-align: center;
899
+ }
900
+
901
+ .mvb-blank p { max-width: 34ch; }
902
+
903
+ .mvb-code {
904
+ font-family: var(--mvb-mono);
905
+ font-size: 14px;
906
+ background: var(--mvb-deck);
907
+ border: 1px solid var(--mvb-orbit);
908
+ border-radius: var(--mvb-r1);
909
+ padding: 12px 14px;
910
+ overflow-x: auto;
911
+ white-space: pre-wrap;
912
+ }
913
+
914
+ :not(pre) > code {
915
+ font-family: var(--mvb-mono);
916
+ font-size: 0.92em;
917
+ background: var(--mvb-deck-2);
918
+ border-radius: 4px;
919
+ padding: 1px 5px;
920
+ }
921
+
922
+ /* about blocks */
923
+
924
+ .mvb-about { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--mvb-orbit); max-width: 62ch; display: grid; gap: 10px; }
925
+ .mvb-about__title { font-size: 18px; font-weight: 700; letter-spacing: -0.01em; }
926
+ .mvb-about p { color: var(--mvb-ink-2); text-wrap: pretty; }
927
+
928
+ /* ---------- modal ---------- */
929
+
930
+ .mvb-veil {
931
+ position: fixed;
932
+ inset: 0;
933
+ z-index: 80;
934
+ display: grid;
935
+ place-items: start center;
936
+ padding: clamp(60px, 10vh, 120px) 20px 20px;
937
+ background: rgb(4 8 20 / 0.5);
938
+ opacity: 0;
939
+ transition: opacity 180ms ease;
940
+ }
941
+
942
+ .mvb-veil.mvb-open { opacity: 1; }
943
+ .mvb-veil.mvb-off { opacity: 0; }
944
+
945
+ .mvb-modal {
946
+ width: min(440px, 100%);
947
+ background: var(--mvb-deck);
948
+ border: 1px solid var(--mvb-orbit);
949
+ border-radius: var(--mvb-r3);
950
+ padding: 28px;
951
+ text-align: center;
952
+ transform: translateY(14px) scale(0.96);
953
+ transition: transform 220ms var(--mvb-ease);
954
+ }
955
+
956
+ .mvb-veil.mvb-open .mvb-modal { transform: none; }
957
+ .mvb-veil.mvb-off .mvb-modal { transform: translateY(10px) scale(0.97); }
958
+
959
+ .mvb-modal__art img { width: 88px; height: 88px; border-radius: 22px; margin-inline: auto; display: block; }
960
+
961
+ .mvb-modal__title { margin-top: 14px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
962
+ .mvb-modal__body p { margin-top: 8px; color: var(--mvb-ink-2); font-size: 15.5px; text-wrap: pretty; }
963
+ .mvb-modal__actions { margin-top: 20px; display: grid; gap: 8px; }
964
+
965
+ /* ---------- command palette ---------- */
966
+
967
+ .mvb-veil--pal { padding: clamp(60px, 12vh, 140px) 20px 20px; }
968
+ .mvb-veil--pal .mvb-modal {
969
+ width: min(640px, 100%);
970
+ text-align: start;
971
+ padding: 0;
972
+ overflow: hidden;
973
+ }
974
+
975
+ /* help/tutorial modal */
976
+
977
+ .mvb-veil--help { padding: clamp(60px, 10vh, 120px) 20px 20px; }
978
+ .mvb-veil--help .mvb-modal {
979
+ width: min(560px, 100%);
980
+ text-align: start;
981
+ padding: 28px;
982
+ overflow: hidden;
983
+ }
984
+
985
+ .mvb-help__head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
986
+ .mvb-help__sigil { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--mvb-nebula); color: var(--mvb-comet); }
987
+ .mvb-help__sigil .mvb-ico { width: 22px; height: 22px; }
988
+ .mvb-help__title { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; }
989
+ .mvb-help__note { color: var(--mvb-ink-2); font-size: 15.5px; line-height: 1.55; text-wrap: pretty; margin-bottom: 14px; }
990
+ .mvb-help__steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
991
+ .mvb-help__steps li { display: grid; grid-template-columns: 22px 1fr; gap: 8px; align-items: start; color: var(--mvb-ink); font-size: 14.5px; line-height: 1.5; }
992
+ .mvb-help__steps li::before { content: counter(mvb-step); counter-increment: mvb-step; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 999px; background: var(--mvb-nebula); color: var(--mvb-comet); font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
993
+ .mvb-help__steps { counter-reset: mvb-step; }
994
+
995
+ .mvb-help__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; justify-content: flex-end; }
996
+
997
+ .mvb-pal__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--mvb-orbit); }
998
+ .mvb-pal__icon { color: var(--mvb-ink-3); }
999
+ .mvb-pal__in { flex: 1; min-width: 0; height: 40px; border: 0; background: none; font-size: 17px; }
1000
+ .mvb-pal__in:focus { outline: none; }
1001
+ .mvb-pal__in::placeholder { color: var(--mvb-ink-3); }
1002
+
1003
+ .mvb-pal__count { padding: 8px 18px 0; font-size: 12.5px; color: var(--mvb-ink-3); margin: 0; }
1004
+
1005
+ .mvb-pal__list {
1006
+ list-style: none;
1007
+ margin: 6px 0 0;
1008
+ padding: 0 8px 8px;
1009
+ max-height: min(60vh, 360px);
1010
+ overflow-y: auto;
1011
+ }
1012
+
1013
+ .mvb-pal__item {
1014
+ display: flex;
1015
+ align-items: center;
1016
+ gap: 12px;
1017
+ padding: 10px 12px;
1018
+ border-radius: var(--mvb-r1);
1019
+ cursor: pointer;
1020
+ background: none;
1021
+ border: 0;
1022
+ width: 100%;
1023
+ text-align: start;
1024
+ color: var(--mvb-ink);
1025
+ transition: background var(--mvb-t) ease;
1026
+ }
1027
+ .mvb-pal__item.mvb-on { background: var(--mvb-nebula); }
1028
+ .mvb-pal__item.mvb-on .mvb-pal__name { color: var(--mvb-comet); }
1029
+
1030
+ .mvb-pal__sigil {
1031
+ width: 32px;
1032
+ height: 32px;
1033
+ flex: none;
1034
+ display: grid;
1035
+ place-items: center;
1036
+ border-radius: 8px;
1037
+ background: var(--mvb-deck-2);
1038
+ color: var(--mvb-comet);
1039
+ }
1040
+ .mvb-pal__sigil .mvb-ico { width: 16px; height: 16px; }
1041
+ .mvb-pal__text { display: grid; gap: 1px; min-width: 0; flex: 1; }
1042
+ .mvb-pal__name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; }
1043
+ .mvb-pal__note { font-size: 13.5px; color: var(--mvb-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1044
+ .mvb-pal__cat { font-size: 12.5px; color: var(--mvb-ink-3); white-space: nowrap; }
1045
+
1046
+ .mvb-pal__empty { padding: 18px; color: var(--mvb-ink-3); font-size: 14px; }
1047
+
1048
+ .mvb-pal__foot {
1049
+ margin: 0;
1050
+ padding: 10px 18px;
1051
+ border-top: 1px solid var(--mvb-orbit);
1052
+ font-size: 12.5px;
1053
+ color: var(--mvb-ink-3);
1054
+ display: flex;
1055
+ gap: 10px;
1056
+ align-items: center;
1057
+ flex-wrap: wrap;
1058
+ }
1059
+ .mvb-pal__key {
1060
+ font-family: var(--mvb-sans);
1061
+ font-size: 11px;
1062
+ border: 1px solid var(--mvb-orbit);
1063
+ border-radius: 4px;
1064
+ padding: 1px 6px;
1065
+ background: var(--mvb-deck-2);
1066
+ color: var(--mvb-ink-2);
1067
+ }
1068
+
1069
+ /* ---------- footer ---------- */
1070
+
1071
+ .mvb-foot { border-top: 1px solid var(--mvb-orbit); margin-top: clamp(56px, 8vw, 96px); background: var(--mvb-deck-2); }
1072
+
1073
+ .mvb-foot__in { padding: clamp(36px, 5vw, 56px) var(--mvb-margin) clamp(24px, 3vw, 36px); max-width: var(--mvb-bench); margin-inline: auto; }
1074
+
1075
+ .mvb-foot__top {
1076
+ display: grid;
1077
+ grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
1078
+ gap: clamp(20px, 4vw, 56px);
1079
+ align-items: start;
1080
+ }
1081
+
1082
+ .mvb-foot__brand { display: grid; gap: 10px; }
1083
+
1084
+ .mvb-foot__mark { display: inline-flex; align-items: center; gap: 10px; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; text-decoration: none; color: var(--mvb-ink); }
1085
+ .mvb-foot__mark img { width: 34px; height: 34px; border-radius: 10px; box-shadow: 0 0 0 1px var(--mvb-orbit); }
1086
+
1087
+ .mvb-foot__tag { font-size: 14px; color: var(--mvb-ink-2); max-width: 38ch; text-wrap: pretty; }
1088
+
1089
+ .mvb-foot__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px clamp(20px, 4vw, 40px); }
1090
+ .mvb-foot__nav h4 { font-size: 12px; font-weight: 700; color: var(--mvb-ink-3); text-transform: none; letter-spacing: 0; margin: 0 0 8px; }
1091
+ .mvb-foot__nav ul { display: grid; gap: 6px; }
1092
+ .mvb-foot__nav a { color: var(--mvb-ink-2); text-decoration: none; font-size: 14.5px; }
1093
+ .mvb-foot__nav a:hover { color: var(--mvb-comet); }
1094
+
1095
+ .mvb-foot__bottom {
1096
+ margin-top: clamp(24px, 4vw, 36px);
1097
+ padding-top: 18px;
1098
+ border-top: 1px solid var(--mvb-orbit);
1099
+ display: flex;
1100
+ flex-wrap: wrap;
1101
+ gap: 6px clamp(14px, 3vw, 28px);
1102
+ align-items: center;
1103
+ }
1104
+ .mvb-foot__legal { font-size: 13.5px; color: var(--mvb-ink-3); display: flex; align-items: center; gap: 7px; }
1105
+ .mvb-foot__count { font-variant-numeric: tabular-nums; }
1106
+ .mvb-foot__count:empty { display: none; }
1107
+
1108
+ @media (max-width: 720px) {
1109
+ .mvb-foot__top { grid-template-columns: 1fr; }
1110
+ .mvb-foot__nav { grid-template-columns: repeat(2, 1fr); }
1111
+ }
1112
+
1113
+ /* ---------- toast ---------- */
1114
+
1115
+ .mvb-toast {
1116
+ position: fixed;
1117
+ left: 50%;
1118
+ bottom: 24px;
1119
+ transform: translate(-50%, 12px);
1120
+ padding: 10px 16px;
1121
+ background: var(--mvb-ink);
1122
+ color: var(--mvb-void);
1123
+ border-radius: var(--mvb-r1);
1124
+ font-size: 14px;
1125
+ font-weight: 600;
1126
+ opacity: 0;
1127
+ pointer-events: none;
1128
+ transition: opacity var(--mvb-t) ease, transform var(--mvb-t) ease;
1129
+ z-index: 90;
1130
+ }
1131
+
1132
+ .mvb-toast.mvb-on { opacity: 1; transform: translate(-50%, 0); }
1133
+
1134
+ /* ---------- responsive ---------- */
1135
+
1136
+ @media (max-width: 960px) {
1137
+ .mvb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1138
+ .mvb-hero__in { grid-template-columns: minmax(0, 1fr); }
1139
+ .mvb-hero__orbit { display: none; }
1140
+ .mvb-bench { grid-template-columns: minmax(0, 1fr); }
1141
+ }
1142
+
1143
+ @media (max-width: 720px) {
1144
+ .mvb-nav { display: none; }
1145
+ .mvb-bar__menu { display: inline-flex; }
1146
+ .mvb-bar__end { margin-inline-start: auto; }
1147
+ .mvb-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
1148
+ .mvb-card { padding: 16px; }
1149
+ .mvb-card__note { min-height: 0; }
1150
+ .mvb-filter__in { height: 48px; }
1151
+ .mvb-btn { min-height: 44px; }
1152
+ .mvb-chip { min-height: 44px; }
1153
+ .mvb-stage { text-align: start; justify-items: stretch; }
1154
+ }
1155
+
1156
+ @media (prefers-reduced-motion: reduce) {
1157
+ *, *::before, *::after {
1158
+ animation-duration: 0.01ms !important;
1159
+ animation-iteration-count: 1 !important;
1160
+ transition-duration: 0.01ms !important;
1161
+ }
1162
+ }