mevebu 1.0.0 → 1.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.
@@ -1,1207 +0,0 @@
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
- /* version readout inside the update modal */
966
- .mvb-vers { margin-top: 18px; border: 1px solid var(--mvb-orbit); border-radius: var(--mvb-r2); overflow: hidden; }
967
- .mvb-vers__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; }
968
- .mvb-vers__row + .mvb-vers__row { border-top: 1px solid var(--mvb-orbit); }
969
- .mvb-vers__label { font-size: 14px; color: var(--mvb-ink-3); }
970
- .mvb-vers__val { font-family: var(--mvb-mono); font-size: 15px; font-weight: 600; }
971
- .mvb-vers__row--new .mvb-vers__val { color: var(--mvb-comet); }
972
- .mvb-vers__hint { margin-top: 14px !important; font-size: 14px !important; }
973
-
974
- .mvb-cmd {
975
- margin-top: 10px;
976
- display: flex;
977
- align-items: center;
978
- gap: 8px;
979
- flex-wrap: wrap;
980
- background: var(--mvb-deck-2);
981
- border: 1px solid var(--mvb-orbit);
982
- border-radius: var(--mvb-r2);
983
- padding: 10px 10px 10px 16px;
984
- }
985
- .mvb-cmd__text { flex: 1 1 auto; min-width: 0; font-family: var(--mvb-mono); font-size: 14px; overflow-wrap: anywhere; }
986
-
987
- /* ---------- command palette ---------- */
988
-
989
- .mvb-veil--pal { padding: clamp(60px, 12vh, 140px) 20px 20px; }
990
- .mvb-veil--pal .mvb-modal {
991
- width: min(640px, 100%);
992
- text-align: start;
993
- padding: 0;
994
- overflow: hidden;
995
- }
996
-
997
- /* help/tutorial modal */
998
-
999
- .mvb-veil--help { padding: clamp(60px, 10vh, 120px) 20px 20px; }
1000
- .mvb-veil--help .mvb-modal {
1001
- width: min(560px, 100%);
1002
- text-align: start;
1003
- padding: 28px;
1004
- overflow: hidden;
1005
- }
1006
-
1007
- .mvb-help__head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
1008
- .mvb-help__sigil { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; background: var(--mvb-nebula); color: var(--mvb-comet); }
1009
- .mvb-help__sigil .mvb-ico { width: 22px; height: 22px; }
1010
- .mvb-help__title { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; }
1011
- .mvb-help__note { color: var(--mvb-ink-2); font-size: 15.5px; line-height: 1.55; text-wrap: pretty; margin-bottom: 14px; }
1012
- .mvb-help__steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
1013
- .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; }
1014
- .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; }
1015
- .mvb-help__steps { counter-reset: mvb-step; }
1016
-
1017
- .mvb-help__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; justify-content: flex-end; }
1018
-
1019
- .mvb-pal__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--mvb-orbit); }
1020
- .mvb-pal__icon { color: var(--mvb-ink-3); }
1021
- .mvb-pal__in { flex: 1; min-width: 0; height: 40px; border: 0; background: none; font-size: 17px; }
1022
- .mvb-pal__in:focus { outline: none; }
1023
- .mvb-pal__in::placeholder { color: var(--mvb-ink-3); }
1024
-
1025
- .mvb-pal__count { padding: 8px 18px 0; font-size: 12.5px; color: var(--mvb-ink-3); margin: 0; }
1026
-
1027
- .mvb-pal__list {
1028
- list-style: none;
1029
- margin: 6px 0 0;
1030
- padding: 0 8px 8px;
1031
- max-height: min(60vh, 360px);
1032
- overflow-y: auto;
1033
- }
1034
-
1035
- .mvb-pal__item {
1036
- display: flex;
1037
- align-items: center;
1038
- gap: 12px;
1039
- padding: 10px 12px;
1040
- border-radius: var(--mvb-r1);
1041
- cursor: pointer;
1042
- background: none;
1043
- border: 0;
1044
- width: 100%;
1045
- text-align: start;
1046
- color: var(--mvb-ink);
1047
- transition: background var(--mvb-t) ease;
1048
- }
1049
- .mvb-pal__item.mvb-on { background: var(--mvb-nebula); }
1050
- .mvb-pal__item.mvb-on .mvb-pal__name { color: var(--mvb-comet); }
1051
-
1052
- .mvb-pal__sigil {
1053
- width: 32px;
1054
- height: 32px;
1055
- flex: none;
1056
- display: grid;
1057
- place-items: center;
1058
- border-radius: 8px;
1059
- background: var(--mvb-deck-2);
1060
- color: var(--mvb-comet);
1061
- }
1062
- .mvb-pal__sigil .mvb-ico { width: 16px; height: 16px; }
1063
- .mvb-pal__text { display: grid; gap: 1px; min-width: 0; flex: 1; }
1064
- .mvb-pal__name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; }
1065
- .mvb-pal__note { font-size: 13.5px; color: var(--mvb-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1066
- .mvb-pal__cat { font-size: 12.5px; color: var(--mvb-ink-3); white-space: nowrap; }
1067
-
1068
- .mvb-pal__empty { padding: 18px; color: var(--mvb-ink-3); font-size: 14px; }
1069
-
1070
- .mvb-pal__foot {
1071
- margin: 0;
1072
- padding: 10px 18px;
1073
- border-top: 1px solid var(--mvb-orbit);
1074
- font-size: 12.5px;
1075
- color: var(--mvb-ink-3);
1076
- display: flex;
1077
- gap: 10px;
1078
- align-items: center;
1079
- flex-wrap: wrap;
1080
- }
1081
- .mvb-pal__key {
1082
- font-family: var(--mvb-sans);
1083
- font-size: 11px;
1084
- border: 1px solid var(--mvb-orbit);
1085
- border-radius: 4px;
1086
- padding: 1px 6px;
1087
- background: var(--mvb-deck-2);
1088
- color: var(--mvb-ink-2);
1089
- }
1090
-
1091
- /* ---------- footer ---------- */
1092
-
1093
- .mvb-foot { border-top: 1px solid var(--mvb-orbit); margin-top: clamp(56px, 8vw, 96px); background: var(--mvb-deck-2); }
1094
-
1095
- .mvb-foot__in { padding: clamp(36px, 5vw, 56px) var(--mvb-margin) clamp(24px, 3vw, 36px); max-width: var(--mvb-bench); margin-inline: auto; }
1096
-
1097
- .mvb-foot__top {
1098
- display: grid;
1099
- grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
1100
- gap: clamp(20px, 4vw, 56px);
1101
- align-items: start;
1102
- }
1103
-
1104
- .mvb-foot__brand { display: grid; gap: 10px; }
1105
-
1106
- .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); }
1107
- .mvb-foot__mark img { width: 34px; height: 34px; border-radius: 10px; box-shadow: 0 0 0 1px var(--mvb-orbit); }
1108
-
1109
- .mvb-foot__tag { font-size: 14px; color: var(--mvb-ink-2); max-width: 38ch; text-wrap: pretty; }
1110
-
1111
- .mvb-foot__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px clamp(20px, 4vw, 40px); }
1112
- .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; }
1113
- .mvb-foot__nav ul { display: grid; gap: 6px; }
1114
- .mvb-foot__nav a { color: var(--mvb-ink-2); text-decoration: none; font-size: 14.5px; }
1115
- .mvb-foot__nav a:hover { color: var(--mvb-comet); }
1116
-
1117
- .mvb-foot__bottom {
1118
- margin-top: clamp(24px, 4vw, 36px);
1119
- padding-top: 18px;
1120
- border-top: 1px solid var(--mvb-orbit);
1121
- display: flex;
1122
- flex-wrap: wrap;
1123
- gap: 6px clamp(14px, 3vw, 28px);
1124
- align-items: center;
1125
- }
1126
- .mvb-foot__legal { font-size: 13.5px; color: var(--mvb-ink-3); display: flex; align-items: center; gap: 7px; }
1127
- .mvb-foot__count { font-variant-numeric: tabular-nums; }
1128
- .mvb-foot__count:empty { display: none; }
1129
-
1130
- /* version chip in the footer; turns into an update button when npm has a newer one */
1131
- .mvb-version {
1132
- display: inline-flex;
1133
- align-items: center;
1134
- gap: 6px;
1135
- padding: 3px 10px;
1136
- min-height: 28px;
1137
- font: inherit;
1138
- font-size: 13px;
1139
- font-variant-numeric: tabular-nums;
1140
- color: var(--mvb-ink-3);
1141
- background: transparent;
1142
- border: 1px solid var(--mvb-orbit);
1143
- border-radius: 999px;
1144
- cursor: pointer;
1145
- transition: color var(--mvb-t) var(--mvb-ease), border-color var(--mvb-t) var(--mvb-ease), background var(--mvb-t) var(--mvb-ease);
1146
- }
1147
- .mvb-version:hover { color: var(--mvb-ink); border-color: var(--mvb-orbit-hard); }
1148
- .mvb-version:focus-visible { outline: 2px solid var(--mvb-comet); outline-offset: 2px; }
1149
- .mvb-version--new { color: var(--mvb-comet); border-color: var(--mvb-comet); background: var(--mvb-nebula); font-weight: 600; }
1150
- .mvb-version--new:hover { color: var(--mvb-on-comet); background: var(--mvb-comet); }
1151
- .mvb-version .mvb-ico { width: 15px; height: 15px; }
1152
-
1153
- @media (max-width: 720px) {
1154
- .mvb-foot__top { grid-template-columns: 1fr; }
1155
- .mvb-foot__nav { grid-template-columns: repeat(2, 1fr); }
1156
- }
1157
-
1158
- /* ---------- toast ---------- */
1159
-
1160
- .mvb-toast {
1161
- position: fixed;
1162
- left: 50%;
1163
- bottom: 24px;
1164
- transform: translate(-50%, 12px);
1165
- padding: 10px 16px;
1166
- background: var(--mvb-ink);
1167
- color: var(--mvb-void);
1168
- border-radius: var(--mvb-r1);
1169
- font-size: 14px;
1170
- font-weight: 600;
1171
- opacity: 0;
1172
- pointer-events: none;
1173
- transition: opacity var(--mvb-t) ease, transform var(--mvb-t) ease;
1174
- z-index: 90;
1175
- }
1176
-
1177
- .mvb-toast.mvb-on { opacity: 1; transform: translate(-50%, 0); }
1178
-
1179
- /* ---------- responsive ---------- */
1180
-
1181
- @media (max-width: 960px) {
1182
- .mvb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1183
- .mvb-hero__in { grid-template-columns: minmax(0, 1fr); }
1184
- .mvb-hero__orbit { display: none; }
1185
- .mvb-bench { grid-template-columns: minmax(0, 1fr); }
1186
- }
1187
-
1188
- @media (max-width: 720px) {
1189
- .mvb-nav { display: none; }
1190
- .mvb-bar__menu { display: inline-flex; }
1191
- .mvb-bar__end { margin-inline-start: auto; }
1192
- .mvb-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
1193
- .mvb-card { padding: 16px; }
1194
- .mvb-card__note { min-height: 0; }
1195
- .mvb-filter__in { height: 48px; }
1196
- .mvb-btn { min-height: 44px; }
1197
- .mvb-chip { min-height: 44px; }
1198
- .mvb-stage { text-align: start; justify-items: stretch; }
1199
- }
1200
-
1201
- @media (prefers-reduced-motion: reduce) {
1202
- *, *::before, *::after {
1203
- animation-duration: 0.01ms !important;
1204
- animation-iteration-count: 1 !important;
1205
- transition-duration: 0.01ms !important;
1206
- }
1207
- }