@pepperhorn/sound-module 0.0.0-stage → 0.1.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.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -2
  3. package/dist/fonts.css +15 -0
  4. package/dist/index.js +5946 -0
  5. package/dist/patches/poly-bass/C2.wav +0 -0
  6. package/dist/patches/poly-bass/C3-a.wav +0 -0
  7. package/dist/patches/poly-bass/C3-b.wav +0 -0
  8. package/dist/patches/poly-bass/C4-hard-a.wav +0 -0
  9. package/dist/patches/poly-bass/C4-hard-b.wav +0 -0
  10. package/dist/patches/poly-bass/C4-soft.wav +0 -0
  11. package/dist/patches/sine-key/C3.wav +0 -0
  12. package/dist/patches/sine-key/C4.wav +0 -0
  13. package/dist/patches/sine-key/C5.wav +0 -0
  14. package/dist/styles.css +2019 -0
  15. package/dist/types/audio/AudioEngine.d.ts +147 -0
  16. package/dist/types/audio/customSampler.d.ts +43 -0
  17. package/dist/types/audio/effects.d.ts +111 -0
  18. package/dist/types/audio/fetchSlots.d.ts +4 -0
  19. package/dist/types/audio/loadPatch.d.ts +25 -0
  20. package/dist/types/audio/loggedStorage.d.ts +46 -0
  21. package/dist/types/audio/preview.d.ts +16 -0
  22. package/dist/types/components/Knob.d.ts +22 -0
  23. package/dist/types/components/LiveTouchKeyboard.d.ts +11 -0
  24. package/dist/types/components/LoadErrorToast.d.ts +14 -0
  25. package/dist/types/components/LoadingOverlay.d.ts +3 -0
  26. package/dist/types/components/MidiPanel.d.ts +17 -0
  27. package/dist/types/components/MidiStatus.d.ts +4 -0
  28. package/dist/types/components/PatchCard.d.ts +20 -0
  29. package/dist/types/components/PatchPicker.d.ts +13 -0
  30. package/dist/types/components/PatchStrip.d.ts +17 -0
  31. package/dist/types/components/PowerOnOverlay.d.ts +8 -0
  32. package/dist/types/components/TouchKeyboard.d.ts +17 -0
  33. package/dist/types/components/overlayEscape.d.ts +8 -0
  34. package/dist/types/embed/SoundModule.d.ts +16 -0
  35. package/dist/types/embed/catalog.d.ts +6 -0
  36. package/dist/types/embed/index.d.ts +2 -0
  37. package/dist/types/input/breath.d.ts +79 -0
  38. package/dist/types/input/midiAccess.d.ts +14 -0
  39. package/dist/types/input/midiMonitor.d.ts +10 -0
  40. package/dist/types/input/midiProfile.d.ts +77 -0
  41. package/dist/types/input/useComputerKeyboard.d.ts +19 -0
  42. package/dist/types/input/useWebMidi.d.ts +10 -0
  43. package/dist/types/patches/builtin.d.ts +2 -0
  44. package/dist/types/patches/catalog.d.ts +3 -0
  45. package/dist/types/patches/types.d.ts +51 -0
  46. package/dist/types/state/activeNotes.d.ts +4 -0
  47. package/dist/types/state/useFullCatalog.d.ts +19 -0
  48. package/dist/types/state/useSoundEngine.d.ts +41 -0
  49. package/dist/types/state/useStore.d.ts +131 -0
  50. package/package.json +44 -4
@@ -0,0 +1,2019 @@
1
+ /*! @pepperhorn/sound-module v0.1.0 — precompiled styles. Generated with Tailwind CSS (MIT License, https://tailwindcss.com), scoped to .sound-module. */
2
+ @layer sm-properties, sm-theme, sm-base, sm-components, sm-utilities;
3
+ @layer sm-base {
4
+ /*
5
+ * Scoped base rules for @pepperhorn/sound-module.
6
+ *
7
+ * The components were written against Tailwind's preflight. A global reset
8
+ * would restyle the host page, so the parts they rely on are applied here
9
+ * ONLY to the module root (`.sound-module`) and what is inside it.
10
+ *
11
+ * Specificity is one class (0,1,0) throughout: enough to beat a host's
12
+ * layered element selectors (`button { … }` in its own preflight). The build
13
+ * puts these rules in the `sm-base` cascade layer, ahead of `sm-utilities`,
14
+ * so the utilities always win, as they do over preflight in the app.
15
+ * The `sm-*` layers outrank a host's own layers only when styles.css loads
16
+ * after the host's stylesheet.
17
+ */
18
+ .sound-module {
19
+ position: relative;
20
+ isolation: isolate;
21
+ font-family: var(--font-body);
22
+ color: var(--color-text);
23
+ font-size: 16px;
24
+ line-height: 1.5;
25
+ -webkit-font-smoothing: antialiased;
26
+ -webkit-tap-highlight-color: transparent;
27
+ }
28
+
29
+ /* Descendants only: the root's own box (margin, padding, border) is the host's. */
30
+ .sound-module :where(*),
31
+ .sound-module :where(*)::before,
32
+ .sound-module :where(*)::after {
33
+ box-sizing: border-box;
34
+ margin: 0;
35
+ padding: 0;
36
+ border: 0 solid;
37
+ }
38
+
39
+ .sound-module :where(button, input, select, textarea) {
40
+ font: inherit;
41
+ font-feature-settings: inherit;
42
+ font-variation-settings: inherit;
43
+ letter-spacing: inherit;
44
+ color: inherit;
45
+ border-radius: 0;
46
+ background: transparent;
47
+ opacity: 1;
48
+ }
49
+
50
+ .sound-module :where(button) {
51
+ appearance: button;
52
+ -webkit-appearance: button;
53
+ }
54
+
55
+ .sound-module :where(svg) {
56
+ font: inherit;
57
+ color: inherit;
58
+ background: transparent;
59
+ display: block;
60
+ vertical-align: middle;
61
+ }
62
+
63
+ .sound-module :where([hidden]:not([hidden='until-found'])) {
64
+ display: none;
65
+ }
66
+ }
67
+ @layer sm-properties {
68
+ @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
69
+ *, ::before, ::after, ::backdrop {
70
+ --sm-tw-translate-x: 0;
71
+ --sm-tw-translate-y: 0;
72
+ --sm-tw-translate-z: 0;
73
+ --sm-tw-rotate-x: initial;
74
+ --sm-tw-rotate-y: initial;
75
+ --sm-tw-rotate-z: initial;
76
+ --sm-tw-skew-x: initial;
77
+ --sm-tw-skew-y: initial;
78
+ --sm-tw-space-y-reverse: 0;
79
+ --sm-tw-border-style: solid;
80
+ --sm-tw-leading: initial;
81
+ --sm-tw-font-weight: initial;
82
+ --sm-tw-tracking: initial;
83
+ --sm-tw-ordinal: initial;
84
+ --sm-tw-slashed-zero: initial;
85
+ --sm-tw-numeric-figure: initial;
86
+ --sm-tw-numeric-spacing: initial;
87
+ --sm-tw-numeric-fraction: initial;
88
+ --sm-tw-shadow: 0 0 #0000;
89
+ --sm-tw-shadow-color: initial;
90
+ --sm-tw-shadow-alpha: 100%;
91
+ --sm-tw-inset-shadow: 0 0 #0000;
92
+ --sm-tw-inset-shadow-color: initial;
93
+ --sm-tw-inset-shadow-alpha: 100%;
94
+ --sm-tw-ring-color: initial;
95
+ --sm-tw-ring-shadow: 0 0 #0000;
96
+ --sm-tw-inset-ring-color: initial;
97
+ --sm-tw-inset-ring-shadow: 0 0 #0000;
98
+ --sm-tw-ring-inset: initial;
99
+ --sm-tw-ring-offset-width: 0px;
100
+ --sm-tw-ring-offset-color: #fff;
101
+ --sm-tw-ring-offset-shadow: 0 0 #0000;
102
+ --sm-tw-blur: initial;
103
+ --sm-tw-brightness: initial;
104
+ --sm-tw-contrast: initial;
105
+ --sm-tw-grayscale: initial;
106
+ --sm-tw-hue-rotate: initial;
107
+ --sm-tw-invert: initial;
108
+ --sm-tw-opacity: initial;
109
+ --sm-tw-saturate: initial;
110
+ --sm-tw-sepia: initial;
111
+ --sm-tw-drop-shadow: initial;
112
+ --sm-tw-drop-shadow-color: initial;
113
+ --sm-tw-drop-shadow-alpha: 100%;
114
+ --sm-tw-drop-shadow-size: initial;
115
+ --sm-tw-backdrop-blur: initial;
116
+ --sm-tw-backdrop-brightness: initial;
117
+ --sm-tw-backdrop-contrast: initial;
118
+ --sm-tw-backdrop-grayscale: initial;
119
+ --sm-tw-backdrop-hue-rotate: initial;
120
+ --sm-tw-backdrop-invert: initial;
121
+ --sm-tw-backdrop-opacity: initial;
122
+ --sm-tw-backdrop-saturate: initial;
123
+ --sm-tw-backdrop-sepia: initial;
124
+ --sm-tw-ease: initial;
125
+ }
126
+ }
127
+ }
128
+
129
+ @layer sm-theme {
130
+ .sound-module {
131
+ --font-mono: "JetBrains Mono", ui-monospace, monospace;
132
+ --spacing: 4px;
133
+ --container-xs: 320px;
134
+ --container-sm: 384px;
135
+ --container-5xl: 1024px;
136
+ --container-6xl: 1152px;
137
+ --text-xs: 12px;
138
+ --text-xs--line-height: calc(1 / .75);
139
+ --text-sm: 14px;
140
+ --text-sm--line-height: calc(1.25 / .875);
141
+ --text-base: 16px;
142
+ --text-base--line-height: calc(1.5 / 1);
143
+ --text-lg: 18px;
144
+ --text-lg--line-height: calc(1.75 / 1.125);
145
+ --text-xl: 20px;
146
+ --text-xl--line-height: calc(1.75 / 1.25);
147
+ --text-2xl: 24px;
148
+ --text-2xl--line-height: calc(2 / 1.5);
149
+ --font-weight-medium: 500;
150
+ --font-weight-semibold: 600;
151
+ --tracking-normal: 0em;
152
+ --tracking-wide: .025em;
153
+ --tracking-wider: .05em;
154
+ --tracking-widest: .1em;
155
+ --leading-snug: 1.375;
156
+ --radius-sm: 4px;
157
+ --radius-md: 6px;
158
+ --radius-lg: 8px;
159
+ --radius-xl: 12px;
160
+ --radius-2xl: 16px;
161
+ --ease-out: cubic-bezier(0, 0, .2, 1);
162
+ --ease-in-out: cubic-bezier(.4, 0, .2, 1);
163
+ --animate-spin: sm-spin 1s linear infinite;
164
+ --animate-pulse: sm-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
165
+ --blur-sm: 8px;
166
+ --default-transition-duration: .15s;
167
+ --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
168
+ --color-bg: #0b0e15;
169
+ --color-text: #eceae0;
170
+ --color-panel: #161c28;
171
+ --color-rack: #232a3a;
172
+ --color-rack-edge: #0b0e15;
173
+ --color-coral: #ff6b6b;
174
+ --color-amber: #ffb84d;
175
+ --color-lime: #b5e853;
176
+ --color-sky: #5bc0eb;
177
+ --color-lavender: #b59cd9;
178
+ --color-peach: #ffb5a7;
179
+ --color-mint: #96e6b3;
180
+ --color-rose: #ffa5b8;
181
+ --color-legend: #b2bacb;
182
+ --color-legend-strong: #e6e8f0;
183
+ --color-hairline: #00000080;
184
+ --color-face-hi: #242b3b;
185
+ --color-face-lo: #161b26;
186
+ --color-lcd-bg: #07211f;
187
+ --color-lcd-text: #55e6c8;
188
+ --color-lcd-dim: #1d5b50;
189
+ --font-brand: "Michroma", sans-serif;
190
+ --font-display: "Chakra Petch", "Inter", system-ui, sans-serif;
191
+ --font-legend: "Chakra Petch", sans-serif;
192
+ --font-body: "Inter", system-ui, sans-serif;
193
+ }
194
+ }
195
+
196
+ @layer sm-utilities {
197
+ .pointer-events-none:where(.sound-module, .sound-module *) {
198
+ pointer-events: none;
199
+ }
200
+
201
+ .sr-only:where(.sound-module, .sound-module *) {
202
+ clip-path: inset(50%);
203
+ white-space: nowrap;
204
+ border-width: 0;
205
+ width: 1px;
206
+ height: 1px;
207
+ margin: -1px;
208
+ padding: 0;
209
+ position: absolute;
210
+ overflow: hidden;
211
+ }
212
+
213
+ .absolute:where(.sound-module, .sound-module *) {
214
+ position: absolute;
215
+ }
216
+
217
+ .fixed:where(.sound-module, .sound-module *) {
218
+ position: fixed;
219
+ }
220
+
221
+ .relative:where(.sound-module, .sound-module *) {
222
+ position: relative;
223
+ }
224
+
225
+ .inset-0:where(.sound-module, .sound-module *) {
226
+ inset: calc(var(--spacing) * 0);
227
+ }
228
+
229
+ .inset-x-0:where(.sound-module, .sound-module *) {
230
+ inset-inline: calc(var(--spacing) * 0);
231
+ }
232
+
233
+ .inset-y-0:where(.sound-module, .sound-module *) {
234
+ inset-block: calc(var(--spacing) * 0);
235
+ }
236
+
237
+ .inset-y-\[-2px\]:where(.sound-module, .sound-module *) {
238
+ inset-block: -2px;
239
+ }
240
+
241
+ .start:where(.sound-module, .sound-module *) {
242
+ inset-inline-start: var(--spacing);
243
+ }
244
+
245
+ .end:where(.sound-module, .sound-module *) {
246
+ inset-inline-end: var(--spacing);
247
+ }
248
+
249
+ .top-0:where(.sound-module, .sound-module *) {
250
+ top: calc(var(--spacing) * 0);
251
+ }
252
+
253
+ .top-2:where(.sound-module, .sound-module *) {
254
+ top: calc(var(--spacing) * 2);
255
+ }
256
+
257
+ .top-full:where(.sound-module, .sound-module *) {
258
+ top: 100%;
259
+ }
260
+
261
+ .right-0:where(.sound-module, .sound-module *) {
262
+ right: calc(var(--spacing) * 0);
263
+ }
264
+
265
+ .right-2:where(.sound-module, .sound-module *) {
266
+ right: calc(var(--spacing) * 2);
267
+ }
268
+
269
+ .bottom-0:where(.sound-module, .sound-module *) {
270
+ bottom: calc(var(--spacing) * 0);
271
+ }
272
+
273
+ .bottom-4:where(.sound-module, .sound-module *) {
274
+ bottom: calc(var(--spacing) * 4);
275
+ }
276
+
277
+ .left-0:where(.sound-module, .sound-module *) {
278
+ left: calc(var(--spacing) * 0);
279
+ }
280
+
281
+ .left-1\/2:where(.sound-module, .sound-module *) {
282
+ left: 50%;
283
+ }
284
+
285
+ .isolate:where(.sound-module, .sound-module *) {
286
+ isolation: isolate;
287
+ }
288
+
289
+ .z-10:where(.sound-module, .sound-module *) {
290
+ z-index: 10;
291
+ }
292
+
293
+ .z-30:where(.sound-module, .sound-module *) {
294
+ z-index: 30;
295
+ }
296
+
297
+ .z-40:where(.sound-module, .sound-module *) {
298
+ z-index: 40;
299
+ }
300
+
301
+ .z-50:where(.sound-module, .sound-module *) {
302
+ z-index: 50;
303
+ }
304
+
305
+ .z-\[55\]:where(.sound-module, .sound-module *) {
306
+ z-index: 55;
307
+ }
308
+
309
+ .z-\[58\]:where(.sound-module, .sound-module *) {
310
+ z-index: 58;
311
+ }
312
+
313
+ .z-\[60\]:where(.sound-module, .sound-module *) {
314
+ z-index: 60;
315
+ }
316
+
317
+ .z-\[70\]:where(.sound-module, .sound-module *) {
318
+ z-index: 70;
319
+ }
320
+
321
+ .order-1:where(.sound-module, .sound-module *) {
322
+ order: 1;
323
+ }
324
+
325
+ .order-2:where(.sound-module, .sound-module *) {
326
+ order: 2;
327
+ }
328
+
329
+ .col-span-2:where(.sound-module, .sound-module *) {
330
+ grid-column: span 2 / span 2;
331
+ }
332
+
333
+ .col-span-full:where(.sound-module, .sound-module *) {
334
+ grid-column: 1 / -1;
335
+ }
336
+
337
+ .container:where(.sound-module, .sound-module *) {
338
+ width: 100%;
339
+ }
340
+
341
+ @media (min-width: 640px) {
342
+ .container:where(.sound-module, .sound-module *) {
343
+ max-width: 640px;
344
+ }
345
+ }
346
+
347
+ @media (min-width: 768px) {
348
+ .container:where(.sound-module, .sound-module *) {
349
+ max-width: 768px;
350
+ }
351
+ }
352
+
353
+ @media (min-width: 1024px) {
354
+ .container:where(.sound-module, .sound-module *) {
355
+ max-width: 1024px;
356
+ }
357
+ }
358
+
359
+ @media (min-width: 1280px) {
360
+ .container:where(.sound-module, .sound-module *) {
361
+ max-width: 1280px;
362
+ }
363
+ }
364
+
365
+ @media (min-width: 1536px) {
366
+ .container:where(.sound-module, .sound-module *) {
367
+ max-width: 1536px;
368
+ }
369
+ }
370
+
371
+ .mx-auto:where(.sound-module, .sound-module *) {
372
+ margin-inline: auto;
373
+ }
374
+
375
+ .mt-0\.5:where(.sound-module, .sound-module *) {
376
+ margin-top: calc(var(--spacing) * .5);
377
+ }
378
+
379
+ .mt-1:where(.sound-module, .sound-module *) {
380
+ margin-top: calc(var(--spacing) * 1);
381
+ }
382
+
383
+ .mt-1\.5:where(.sound-module, .sound-module *) {
384
+ margin-top: calc(var(--spacing) * 1.5);
385
+ }
386
+
387
+ .mt-2:where(.sound-module, .sound-module *) {
388
+ margin-top: calc(var(--spacing) * 2);
389
+ }
390
+
391
+ .mt-24:where(.sound-module, .sound-module *) {
392
+ margin-top: calc(var(--spacing) * 24);
393
+ }
394
+
395
+ .mb-2:where(.sound-module, .sound-module *) {
396
+ margin-bottom: calc(var(--spacing) * 2);
397
+ }
398
+
399
+ .mb-3:where(.sound-module, .sound-module *) {
400
+ margin-bottom: calc(var(--spacing) * 3);
401
+ }
402
+
403
+ .mb-6:where(.sound-module, .sound-module *) {
404
+ margin-bottom: calc(var(--spacing) * 6);
405
+ }
406
+
407
+ .ml-1:where(.sound-module, .sound-module *) {
408
+ margin-left: calc(var(--spacing) * 1);
409
+ }
410
+
411
+ .flex:where(.sound-module, .sound-module *) {
412
+ display: flex;
413
+ }
414
+
415
+ .grid:where(.sound-module, .sound-module *) {
416
+ display: grid;
417
+ }
418
+
419
+ .hidden:where(.sound-module, .sound-module *) {
420
+ display: none;
421
+ }
422
+
423
+ .inline:where(.sound-module, .sound-module *) {
424
+ display: inline;
425
+ }
426
+
427
+ .inline-block:where(.sound-module, .sound-module *) {
428
+ display: inline-block;
429
+ }
430
+
431
+ .inline-flex:where(.sound-module, .sound-module *) {
432
+ display: inline-flex;
433
+ }
434
+
435
+ .h-1\.5:where(.sound-module, .sound-module *) {
436
+ height: calc(var(--spacing) * 1.5);
437
+ }
438
+
439
+ .h-2:where(.sound-module, .sound-module *) {
440
+ height: calc(var(--spacing) * 2);
441
+ }
442
+
443
+ .h-2\.5:where(.sound-module, .sound-module *) {
444
+ height: calc(var(--spacing) * 2.5);
445
+ }
446
+
447
+ .h-3:where(.sound-module, .sound-module *) {
448
+ height: calc(var(--spacing) * 3);
449
+ }
450
+
451
+ .h-3\.5:where(.sound-module, .sound-module *) {
452
+ height: calc(var(--spacing) * 3.5);
453
+ }
454
+
455
+ .h-8:where(.sound-module, .sound-module *) {
456
+ height: calc(var(--spacing) * 8);
457
+ }
458
+
459
+ .h-9:where(.sound-module, .sound-module *) {
460
+ height: calc(var(--spacing) * 9);
461
+ }
462
+
463
+ .h-11:where(.sound-module, .sound-module *) {
464
+ height: calc(var(--spacing) * 11);
465
+ }
466
+
467
+ .h-12:where(.sound-module, .sound-module *) {
468
+ height: calc(var(--spacing) * 12);
469
+ }
470
+
471
+ .h-28:where(.sound-module, .sound-module *) {
472
+ height: calc(var(--spacing) * 28);
473
+ }
474
+
475
+ .h-full:where(.sound-module, .sound-module *) {
476
+ height: 100%;
477
+ }
478
+
479
+ .max-h-44:where(.sound-module, .sound-module *) {
480
+ max-height: calc(var(--spacing) * 44);
481
+ }
482
+
483
+ .max-h-\[34dvh\]:where(.sound-module, .sound-module *) {
484
+ max-height: 34dvh;
485
+ }
486
+
487
+ .max-h-\[92dvh\]:where(.sound-module, .sound-module *) {
488
+ max-height: 92dvh;
489
+ }
490
+
491
+ .max-h-full:where(.sound-module, .sound-module *) {
492
+ max-height: 100%;
493
+ }
494
+
495
+ .min-h-0:where(.sound-module, .sound-module *) {
496
+ min-height: calc(var(--spacing) * 0);
497
+ }
498
+
499
+ .min-h-9:where(.sound-module, .sound-module *) {
500
+ min-height: calc(var(--spacing) * 9);
501
+ }
502
+
503
+ .min-h-11:where(.sound-module, .sound-module *) {
504
+ min-height: calc(var(--spacing) * 11);
505
+ }
506
+
507
+ .min-h-\[420px\]:where(.sound-module, .sound-module *) {
508
+ min-height: 420px;
509
+ }
510
+
511
+ .min-h-full:where(.sound-module, .sound-module *) {
512
+ min-height: 100%;
513
+ }
514
+
515
+ .w-2:where(.sound-module, .sound-module *) {
516
+ width: calc(var(--spacing) * 2);
517
+ }
518
+
519
+ .w-2\.5:where(.sound-module, .sound-module *) {
520
+ width: calc(var(--spacing) * 2.5);
521
+ }
522
+
523
+ .w-3:where(.sound-module, .sound-module *) {
524
+ width: calc(var(--spacing) * 3);
525
+ }
526
+
527
+ .w-3\.5:where(.sound-module, .sound-module *) {
528
+ width: calc(var(--spacing) * 3.5);
529
+ }
530
+
531
+ .w-6:where(.sound-module, .sound-module *) {
532
+ width: calc(var(--spacing) * 6);
533
+ }
534
+
535
+ .w-8:where(.sound-module, .sound-module *) {
536
+ width: calc(var(--spacing) * 8);
537
+ }
538
+
539
+ .w-9:where(.sound-module, .sound-module *) {
540
+ width: calc(var(--spacing) * 9);
541
+ }
542
+
543
+ .w-16:where(.sound-module, .sound-module *) {
544
+ width: calc(var(--spacing) * 16);
545
+ }
546
+
547
+ .w-\[2px\]:where(.sound-module, .sound-module *) {
548
+ width: 2px;
549
+ }
550
+
551
+ .w-\[min\(24rem\,calc\(100vw-2rem\)\)\]:where(.sound-module, .sound-module *) {
552
+ width: min(384px, 100vw - 32px);
553
+ }
554
+
555
+ .w-\[min\(92\%\,26rem\)\]:where(.sound-module, .sound-module *) {
556
+ width: min(92%, 416px);
557
+ }
558
+
559
+ .w-\[min\(420px\,calc\(100\%-2rem\)\)\]:where(.sound-module, .sound-module *) {
560
+ width: min(420px, 100% - 32px);
561
+ }
562
+
563
+ .w-\[min\(420px\,calc\(100vw-2rem\)\)\]:where(.sound-module, .sound-module *) {
564
+ width: min(420px, 100vw - 32px);
565
+ }
566
+
567
+ .w-full:where(.sound-module, .sound-module *) {
568
+ width: 100%;
569
+ }
570
+
571
+ .max-w-5xl:where(.sound-module, .sound-module *) {
572
+ max-width: var(--container-5xl);
573
+ }
574
+
575
+ .max-w-6xl:where(.sound-module, .sound-module *) {
576
+ max-width: var(--container-6xl);
577
+ }
578
+
579
+ .max-w-\[10rem\]:where(.sound-module, .sound-module *) {
580
+ max-width: 160px;
581
+ }
582
+
583
+ .max-w-\[34ch\]:where(.sound-module, .sound-module *) {
584
+ max-width: 34ch;
585
+ }
586
+
587
+ .max-w-\[120px\]:where(.sound-module, .sound-module *) {
588
+ max-width: 120px;
589
+ }
590
+
591
+ .max-w-sm:where(.sound-module, .sound-module *) {
592
+ max-width: var(--container-sm);
593
+ }
594
+
595
+ .max-w-xs:where(.sound-module, .sound-module *) {
596
+ max-width: var(--container-xs);
597
+ }
598
+
599
+ .min-w-0:where(.sound-module, .sound-module *) {
600
+ min-width: calc(var(--spacing) * 0);
601
+ }
602
+
603
+ .min-w-11:where(.sound-module, .sound-module *) {
604
+ min-width: calc(var(--spacing) * 11);
605
+ }
606
+
607
+ .min-w-12:where(.sound-module, .sound-module *) {
608
+ min-width: calc(var(--spacing) * 12);
609
+ }
610
+
611
+ .flex-1:where(.sound-module, .sound-module *) {
612
+ flex: 1;
613
+ }
614
+
615
+ .shrink-0:where(.sound-module, .sound-module *) {
616
+ flex-shrink: 0;
617
+ }
618
+
619
+ .-translate-x-1\/2:where(.sound-module, .sound-module *) {
620
+ --sm-tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
621
+ translate: var(--sm-tw-translate-x) var(--sm-tw-translate-y);
622
+ }
623
+
624
+ .transform:where(.sound-module, .sound-module *) {
625
+ transform: var(--sm-tw-rotate-x, ) var(--sm-tw-rotate-y, ) var(--sm-tw-rotate-z, ) var(--sm-tw-skew-x, ) var(--sm-tw-skew-y, );
626
+ }
627
+
628
+ .animate-pulse:where(.sound-module, .sound-module *) {
629
+ animation: sm-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
630
+ }
631
+
632
+ .animate-spin:where(.sound-module, .sound-module *) {
633
+ animation: sm-spin 1s linear infinite;
634
+ }
635
+
636
+ .cursor-default:where(.sound-module, .sound-module *) {
637
+ cursor: default;
638
+ }
639
+
640
+ .cursor-pointer:where(.sound-module, .sound-module *) {
641
+ cursor: pointer;
642
+ }
643
+
644
+ .touch-none:where(.sound-module, .sound-module *) {
645
+ touch-action: none;
646
+ }
647
+
648
+ .list-decimal:where(.sound-module, .sound-module *) {
649
+ list-style-type: decimal;
650
+ }
651
+
652
+ .grid-cols-2:where(.sound-module, .sound-module *) {
653
+ grid-template-columns: repeat(2, minmax(0, 1fr));
654
+ }
655
+
656
+ .grid-cols-3:where(.sound-module, .sound-module *) {
657
+ grid-template-columns: repeat(3, minmax(0, 1fr));
658
+ }
659
+
660
+ .grid-cols-4:where(.sound-module, .sound-module *) {
661
+ grid-template-columns: repeat(4, minmax(0, 1fr));
662
+ }
663
+
664
+ .flex-col:where(.sound-module, .sound-module *) {
665
+ flex-direction: column;
666
+ }
667
+
668
+ .flex-wrap:where(.sound-module, .sound-module *) {
669
+ flex-wrap: wrap;
670
+ }
671
+
672
+ .items-baseline:where(.sound-module, .sound-module *) {
673
+ align-items: baseline;
674
+ }
675
+
676
+ .items-center:where(.sound-module, .sound-module *) {
677
+ align-items: center;
678
+ }
679
+
680
+ .items-end:where(.sound-module, .sound-module *) {
681
+ align-items: flex-end;
682
+ }
683
+
684
+ .items-start:where(.sound-module, .sound-module *) {
685
+ align-items: flex-start;
686
+ }
687
+
688
+ .items-stretch:where(.sound-module, .sound-module *) {
689
+ align-items: stretch;
690
+ }
691
+
692
+ .justify-around:where(.sound-module, .sound-module *) {
693
+ justify-content: space-around;
694
+ }
695
+
696
+ .justify-between:where(.sound-module, .sound-module *) {
697
+ justify-content: space-between;
698
+ }
699
+
700
+ .justify-center:where(.sound-module, .sound-module *) {
701
+ justify-content: center;
702
+ }
703
+
704
+ .justify-end:where(.sound-module, .sound-module *) {
705
+ justify-content: flex-end;
706
+ }
707
+
708
+ .justify-items-center:where(.sound-module, .sound-module *) {
709
+ justify-items: center;
710
+ }
711
+
712
+ .gap-0\.5:where(.sound-module, .sound-module *) {
713
+ gap: calc(var(--spacing) * .5);
714
+ }
715
+
716
+ .gap-1:where(.sound-module, .sound-module *) {
717
+ gap: calc(var(--spacing) * 1);
718
+ }
719
+
720
+ .gap-1\.5:where(.sound-module, .sound-module *) {
721
+ gap: calc(var(--spacing) * 1.5);
722
+ }
723
+
724
+ .gap-2:where(.sound-module, .sound-module *) {
725
+ gap: calc(var(--spacing) * 2);
726
+ }
727
+
728
+ .gap-2\.5:where(.sound-module, .sound-module *) {
729
+ gap: calc(var(--spacing) * 2.5);
730
+ }
731
+
732
+ .gap-3:where(.sound-module, .sound-module *) {
733
+ gap: calc(var(--spacing) * 3);
734
+ }
735
+
736
+ .gap-4:where(.sound-module, .sound-module *) {
737
+ gap: calc(var(--spacing) * 4);
738
+ }
739
+
740
+ .gap-5:where(.sound-module, .sound-module *) {
741
+ gap: calc(var(--spacing) * 5);
742
+ }
743
+
744
+ :where(.space-y-1:where(.sound-module, .sound-module *) > :not(:last-child)) {
745
+ --sm-tw-space-y-reverse: 0;
746
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--sm-tw-space-y-reverse));
747
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--sm-tw-space-y-reverse)));
748
+ }
749
+
750
+ .gap-x-3:where(.sound-module, .sound-module *) {
751
+ column-gap: calc(var(--spacing) * 3);
752
+ }
753
+
754
+ .gap-y-2:where(.sound-module, .sound-module *) {
755
+ row-gap: calc(var(--spacing) * 2);
756
+ }
757
+
758
+ .self-start:where(.sound-module, .sound-module *) {
759
+ align-self: flex-start;
760
+ }
761
+
762
+ .truncate:where(.sound-module, .sound-module *) {
763
+ text-overflow: ellipsis;
764
+ white-space: nowrap;
765
+ overflow: hidden;
766
+ }
767
+
768
+ .overflow-hidden:where(.sound-module, .sound-module *) {
769
+ overflow: hidden;
770
+ }
771
+
772
+ .overflow-x-auto:where(.sound-module, .sound-module *) {
773
+ overflow-x: auto;
774
+ }
775
+
776
+ .overflow-y-auto:where(.sound-module, .sound-module *) {
777
+ overflow-y: auto;
778
+ }
779
+
780
+ .rounded-2xl:where(.sound-module, .sound-module *) {
781
+ border-radius: var(--radius-2xl);
782
+ }
783
+
784
+ .rounded-\[2px\]:where(.sound-module, .sound-module *) {
785
+ border-radius: 2px;
786
+ }
787
+
788
+ .rounded-\[3px\]:where(.sound-module, .sound-module *) {
789
+ border-radius: 3px;
790
+ }
791
+
792
+ .rounded-\[10px\]:where(.sound-module, .sound-module *) {
793
+ border-radius: 10px;
794
+ }
795
+
796
+ .rounded-full:where(.sound-module, .sound-module *) {
797
+ border-radius: 3.40282e38px;
798
+ }
799
+
800
+ .rounded-lg:where(.sound-module, .sound-module *) {
801
+ border-radius: var(--radius-lg);
802
+ }
803
+
804
+ .rounded-md:where(.sound-module, .sound-module *) {
805
+ border-radius: var(--radius-md);
806
+ }
807
+
808
+ .rounded-sm:where(.sound-module, .sound-module *) {
809
+ border-radius: var(--radius-sm);
810
+ }
811
+
812
+ .rounded-xl:where(.sound-module, .sound-module *) {
813
+ border-radius: var(--radius-xl);
814
+ }
815
+
816
+ .rounded-t-2xl:where(.sound-module, .sound-module *) {
817
+ border-top-left-radius: var(--radius-2xl);
818
+ border-top-right-radius: var(--radius-2xl);
819
+ }
820
+
821
+ .border:where(.sound-module, .sound-module *) {
822
+ border-style: var(--sm-tw-border-style);
823
+ border-width: 1px;
824
+ }
825
+
826
+ .border-\[var\(--pill-border\)\]:where(.sound-module, .sound-module *) {
827
+ border-color: var(--pill-border);
828
+ }
829
+
830
+ .bg-\[var\(--pill-bg\)\]:where(.sound-module, .sound-module *) {
831
+ background-color: var(--pill-bg);
832
+ }
833
+
834
+ .bg-text\/30:where(.sound-module, .sound-module *) {
835
+ background-color: #eceae04d;
836
+ }
837
+
838
+ @supports (color: color-mix(in lab, red, red)) {
839
+ .bg-text\/30:where(.sound-module, .sound-module *) {
840
+ background-color: color-mix(in oklab, var(--color-text) 30%, transparent);
841
+ }
842
+ }
843
+
844
+ .p-1\.5:where(.sound-module, .sound-module *) {
845
+ padding: calc(var(--spacing) * 1.5);
846
+ }
847
+
848
+ .p-2:where(.sound-module, .sound-module *) {
849
+ padding: calc(var(--spacing) * 2);
850
+ }
851
+
852
+ .p-3:where(.sound-module, .sound-module *) {
853
+ padding: calc(var(--spacing) * 3);
854
+ }
855
+
856
+ .p-4:where(.sound-module, .sound-module *) {
857
+ padding: calc(var(--spacing) * 4);
858
+ }
859
+
860
+ .p-5:where(.sound-module, .sound-module *) {
861
+ padding: calc(var(--spacing) * 5);
862
+ }
863
+
864
+ .p-6:where(.sound-module, .sound-module *) {
865
+ padding: calc(var(--spacing) * 6);
866
+ }
867
+
868
+ .px-1:where(.sound-module, .sound-module *) {
869
+ padding-inline: calc(var(--spacing) * 1);
870
+ }
871
+
872
+ .px-2:where(.sound-module, .sound-module *) {
873
+ padding-inline: calc(var(--spacing) * 2);
874
+ }
875
+
876
+ .px-2\.5:where(.sound-module, .sound-module *) {
877
+ padding-inline: calc(var(--spacing) * 2.5);
878
+ }
879
+
880
+ .px-3:where(.sound-module, .sound-module *) {
881
+ padding-inline: calc(var(--spacing) * 3);
882
+ }
883
+
884
+ .px-4:where(.sound-module, .sound-module *) {
885
+ padding-inline: calc(var(--spacing) * 4);
886
+ }
887
+
888
+ .px-5:where(.sound-module, .sound-module *) {
889
+ padding-inline: calc(var(--spacing) * 5);
890
+ }
891
+
892
+ .px-6:where(.sound-module, .sound-module *) {
893
+ padding-inline: calc(var(--spacing) * 6);
894
+ }
895
+
896
+ .px-8:where(.sound-module, .sound-module *) {
897
+ padding-inline: calc(var(--spacing) * 8);
898
+ }
899
+
900
+ .py-0\.5:where(.sound-module, .sound-module *) {
901
+ padding-block: calc(var(--spacing) * .5);
902
+ }
903
+
904
+ .py-1:where(.sound-module, .sound-module *) {
905
+ padding-block: calc(var(--spacing) * 1);
906
+ }
907
+
908
+ .py-1\.5:where(.sound-module, .sound-module *) {
909
+ padding-block: calc(var(--spacing) * 1.5);
910
+ }
911
+
912
+ .py-2:where(.sound-module, .sound-module *) {
913
+ padding-block: calc(var(--spacing) * 2);
914
+ }
915
+
916
+ .py-2\.5:where(.sound-module, .sound-module *) {
917
+ padding-block: calc(var(--spacing) * 2.5);
918
+ }
919
+
920
+ .py-3:where(.sound-module, .sound-module *) {
921
+ padding-block: calc(var(--spacing) * 3);
922
+ }
923
+
924
+ .py-6:where(.sound-module, .sound-module *) {
925
+ padding-block: calc(var(--spacing) * 6);
926
+ }
927
+
928
+ .py-12:where(.sound-module, .sound-module *) {
929
+ padding-block: calc(var(--spacing) * 12);
930
+ }
931
+
932
+ .pt-4:where(.sound-module, .sound-module *) {
933
+ padding-top: calc(var(--spacing) * 4);
934
+ }
935
+
936
+ .pb-1:where(.sound-module, .sound-module *) {
937
+ padding-bottom: calc(var(--spacing) * 1);
938
+ }
939
+
940
+ .pb-2:where(.sound-module, .sound-module *) {
941
+ padding-bottom: calc(var(--spacing) * 2);
942
+ }
943
+
944
+ .pb-3:where(.sound-module, .sound-module *) {
945
+ padding-bottom: calc(var(--spacing) * 3);
946
+ }
947
+
948
+ .pl-5:where(.sound-module, .sound-module *) {
949
+ padding-left: calc(var(--spacing) * 5);
950
+ }
951
+
952
+ .text-center:where(.sound-module, .sound-module *) {
953
+ text-align: center;
954
+ }
955
+
956
+ .text-left:where(.sound-module, .sound-module *) {
957
+ text-align: left;
958
+ }
959
+
960
+ .font-body:where(.sound-module, .sound-module *) {
961
+ font-family: var(--font-body);
962
+ }
963
+
964
+ .font-display:where(.sound-module, .sound-module *) {
965
+ font-family: var(--font-display);
966
+ }
967
+
968
+ .font-mono:where(.sound-module, .sound-module *) {
969
+ font-family: var(--font-mono);
970
+ }
971
+
972
+ .text-2xl:where(.sound-module, .sound-module *) {
973
+ font-size: var(--text-2xl);
974
+ line-height: var(--sm-tw-leading, var(--text-2xl--line-height));
975
+ }
976
+
977
+ .text-base:where(.sound-module, .sound-module *) {
978
+ font-size: var(--text-base);
979
+ line-height: var(--sm-tw-leading, var(--text-base--line-height));
980
+ }
981
+
982
+ .text-lg:where(.sound-module, .sound-module *) {
983
+ font-size: var(--text-lg);
984
+ line-height: var(--sm-tw-leading, var(--text-lg--line-height));
985
+ }
986
+
987
+ .text-sm:where(.sound-module, .sound-module *) {
988
+ font-size: var(--text-sm);
989
+ line-height: var(--sm-tw-leading, var(--text-sm--line-height));
990
+ }
991
+
992
+ .text-xl:where(.sound-module, .sound-module *) {
993
+ font-size: var(--text-xl);
994
+ line-height: var(--sm-tw-leading, var(--text-xl--line-height));
995
+ }
996
+
997
+ .text-xs:where(.sound-module, .sound-module *) {
998
+ font-size: var(--text-xs);
999
+ line-height: var(--sm-tw-leading, var(--text-xs--line-height));
1000
+ }
1001
+
1002
+ .text-\[9px\]:where(.sound-module, .sound-module *) {
1003
+ font-size: 9px;
1004
+ }
1005
+
1006
+ .text-\[10px\]:where(.sound-module, .sound-module *) {
1007
+ font-size: 10px;
1008
+ }
1009
+
1010
+ .text-\[11px\]:where(.sound-module, .sound-module *) {
1011
+ font-size: 11px;
1012
+ }
1013
+
1014
+ .text-\[12px\]:where(.sound-module, .sound-module *) {
1015
+ font-size: 12px;
1016
+ }
1017
+
1018
+ .text-\[15px\]:where(.sound-module, .sound-module *) {
1019
+ font-size: 15px;
1020
+ }
1021
+
1022
+ .text-\[22px\]:where(.sound-module, .sound-module *) {
1023
+ font-size: 22px;
1024
+ }
1025
+
1026
+ .leading-none:where(.sound-module, .sound-module *) {
1027
+ --sm-tw-leading: 1;
1028
+ line-height: 1;
1029
+ }
1030
+
1031
+ .leading-snug:where(.sound-module, .sound-module *) {
1032
+ --sm-tw-leading: var(--leading-snug);
1033
+ line-height: var(--leading-snug);
1034
+ }
1035
+
1036
+ .font-medium:where(.sound-module, .sound-module *) {
1037
+ --sm-tw-font-weight: var(--font-weight-medium);
1038
+ font-weight: var(--font-weight-medium);
1039
+ }
1040
+
1041
+ .font-semibold:where(.sound-module, .sound-module *) {
1042
+ --sm-tw-font-weight: var(--font-weight-semibold);
1043
+ font-weight: var(--font-weight-semibold);
1044
+ }
1045
+
1046
+ .tracking-\[0\.4em\]:where(.sound-module, .sound-module *) {
1047
+ --sm-tw-tracking: .4em;
1048
+ letter-spacing: .4em;
1049
+ }
1050
+
1051
+ .tracking-normal:where(.sound-module, .sound-module *) {
1052
+ --sm-tw-tracking: var(--tracking-normal);
1053
+ letter-spacing: var(--tracking-normal);
1054
+ }
1055
+
1056
+ .tracking-wide:where(.sound-module, .sound-module *) {
1057
+ --sm-tw-tracking: var(--tracking-wide);
1058
+ letter-spacing: var(--tracking-wide);
1059
+ }
1060
+
1061
+ .tracking-wider:where(.sound-module, .sound-module *) {
1062
+ --sm-tw-tracking: var(--tracking-wider);
1063
+ letter-spacing: var(--tracking-wider);
1064
+ }
1065
+
1066
+ .tracking-widest:where(.sound-module, .sound-module *) {
1067
+ --sm-tw-tracking: var(--tracking-widest);
1068
+ letter-spacing: var(--tracking-widest);
1069
+ }
1070
+
1071
+ .text-bg:where(.sound-module, .sound-module *) {
1072
+ color: var(--color-bg);
1073
+ }
1074
+
1075
+ .text-coral:where(.sound-module, .sound-module *) {
1076
+ color: var(--color-coral);
1077
+ }
1078
+
1079
+ .text-lcd-dim:where(.sound-module, .sound-module *) {
1080
+ color: var(--color-lcd-dim);
1081
+ }
1082
+
1083
+ .text-lcd-dim\/60:where(.sound-module, .sound-module *) {
1084
+ color: #1d5b5099;
1085
+ }
1086
+
1087
+ @supports (color: color-mix(in lab, red, red)) {
1088
+ .text-lcd-dim\/60:where(.sound-module, .sound-module *) {
1089
+ color: color-mix(in oklab, var(--color-lcd-dim) 60%, transparent);
1090
+ }
1091
+ }
1092
+
1093
+ .text-lcd-dim\/80:where(.sound-module, .sound-module *) {
1094
+ color: #1d5b50cc;
1095
+ }
1096
+
1097
+ @supports (color: color-mix(in lab, red, red)) {
1098
+ .text-lcd-dim\/80:where(.sound-module, .sound-module *) {
1099
+ color: color-mix(in oklab, var(--color-lcd-dim) 80%, transparent);
1100
+ }
1101
+ }
1102
+
1103
+ .text-lcd-text:where(.sound-module, .sound-module *) {
1104
+ color: var(--color-lcd-text);
1105
+ }
1106
+
1107
+ .text-legend:where(.sound-module, .sound-module *) {
1108
+ color: var(--color-legend);
1109
+ }
1110
+
1111
+ .text-legend-strong:where(.sound-module, .sound-module *) {
1112
+ color: var(--color-legend-strong);
1113
+ }
1114
+
1115
+ .text-text:where(.sound-module, .sound-module *) {
1116
+ color: var(--color-text);
1117
+ }
1118
+
1119
+ .text-text\/30:where(.sound-module, .sound-module *) {
1120
+ color: #eceae04d;
1121
+ }
1122
+
1123
+ @supports (color: color-mix(in lab, red, red)) {
1124
+ .text-text\/30:where(.sound-module, .sound-module *) {
1125
+ color: color-mix(in oklab, var(--color-text) 30%, transparent);
1126
+ }
1127
+ }
1128
+
1129
+ .text-text\/70:where(.sound-module, .sound-module *) {
1130
+ color: #eceae0b3;
1131
+ }
1132
+
1133
+ @supports (color: color-mix(in lab, red, red)) {
1134
+ .text-text\/70:where(.sound-module, .sound-module *) {
1135
+ color: color-mix(in oklab, var(--color-text) 70%, transparent);
1136
+ }
1137
+ }
1138
+
1139
+ .text-text\/75:where(.sound-module, .sound-module *) {
1140
+ color: #eceae0bf;
1141
+ }
1142
+
1143
+ @supports (color: color-mix(in lab, red, red)) {
1144
+ .text-text\/75:where(.sound-module, .sound-module *) {
1145
+ color: color-mix(in oklab, var(--color-text) 75%, transparent);
1146
+ }
1147
+ }
1148
+
1149
+ .text-text\/80:where(.sound-module, .sound-module *) {
1150
+ color: #eceae0cc;
1151
+ }
1152
+
1153
+ @supports (color: color-mix(in lab, red, red)) {
1154
+ .text-text\/80:where(.sound-module, .sound-module *) {
1155
+ color: color-mix(in oklab, var(--color-text) 80%, transparent);
1156
+ }
1157
+ }
1158
+
1159
+ .normal-case:where(.sound-module, .sound-module *) {
1160
+ text-transform: none;
1161
+ }
1162
+
1163
+ .uppercase:where(.sound-module, .sound-module *) {
1164
+ text-transform: uppercase;
1165
+ }
1166
+
1167
+ .tabular-nums:where(.sound-module, .sound-module *) {
1168
+ --sm-tw-numeric-spacing: tabular-nums;
1169
+ font-variant-numeric: var(--sm-tw-ordinal, ) var(--sm-tw-slashed-zero, ) var(--sm-tw-numeric-figure, ) var(--sm-tw-numeric-spacing, ) var(--sm-tw-numeric-fraction, );
1170
+ }
1171
+
1172
+ .opacity-30:where(.sound-module, .sound-module *) {
1173
+ opacity: .3;
1174
+ }
1175
+
1176
+ .shadow:where(.sound-module, .sound-module *) {
1177
+ --sm-tw-shadow: 0 1px 3px 0 var(--sm-tw-shadow-color, #0000001a), 0 1px 2px -1px var(--sm-tw-shadow-color, #0000001a);
1178
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1179
+ }
1180
+
1181
+ .shadow-lg:where(.sound-module, .sound-module *) {
1182
+ --sm-tw-shadow: 0 10px 15px -3px var(--sm-tw-shadow-color, #0000001a), 0 4px 6px -4px var(--sm-tw-shadow-color, #0000001a);
1183
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1184
+ }
1185
+
1186
+ .shadow-xl:where(.sound-module, .sound-module *) {
1187
+ --sm-tw-shadow: 0 20px 25px -5px var(--sm-tw-shadow-color, #0000001a), 0 8px 10px -6px var(--sm-tw-shadow-color, #0000001a);
1188
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1189
+ }
1190
+
1191
+ .ring:where(.sound-module, .sound-module *) {
1192
+ --sm-tw-ring-shadow: var(--sm-tw-ring-inset, ) 0 0 0 calc(1px + var(--sm-tw-ring-offset-width)) var(--sm-tw-ring-color, currentcolor);
1193
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1194
+ }
1195
+
1196
+ .ring-2:where(.sound-module, .sound-module *) {
1197
+ --sm-tw-ring-shadow: var(--sm-tw-ring-inset, ) 0 0 0 calc(2px + var(--sm-tw-ring-offset-width)) var(--sm-tw-ring-color, currentcolor);
1198
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1199
+ }
1200
+
1201
+ .ring-coral:where(.sound-module, .sound-module *) {
1202
+ --sm-tw-ring-color: var(--color-coral);
1203
+ }
1204
+
1205
+ .filter:where(.sound-module, .sound-module *) {
1206
+ filter: var(--sm-tw-blur, ) var(--sm-tw-brightness, ) var(--sm-tw-contrast, ) var(--sm-tw-grayscale, ) var(--sm-tw-hue-rotate, ) var(--sm-tw-invert, ) var(--sm-tw-saturate, ) var(--sm-tw-sepia, ) var(--sm-tw-drop-shadow, );
1207
+ }
1208
+
1209
+ .backdrop-blur-sm:where(.sound-module, .sound-module *) {
1210
+ --sm-tw-backdrop-blur: blur(var(--blur-sm));
1211
+ -webkit-backdrop-filter: var(--sm-tw-backdrop-blur, ) var(--sm-tw-backdrop-brightness, ) var(--sm-tw-backdrop-contrast, ) var(--sm-tw-backdrop-grayscale, ) var(--sm-tw-backdrop-hue-rotate, ) var(--sm-tw-backdrop-invert, ) var(--sm-tw-backdrop-opacity, ) var(--sm-tw-backdrop-saturate, ) var(--sm-tw-backdrop-sepia, );
1212
+ backdrop-filter: var(--sm-tw-backdrop-blur, ) var(--sm-tw-backdrop-brightness, ) var(--sm-tw-backdrop-contrast, ) var(--sm-tw-backdrop-grayscale, ) var(--sm-tw-backdrop-hue-rotate, ) var(--sm-tw-backdrop-invert, ) var(--sm-tw-backdrop-opacity, ) var(--sm-tw-backdrop-saturate, ) var(--sm-tw-backdrop-sepia, );
1213
+ }
1214
+
1215
+ .transition:where(.sound-module, .sound-module *) {
1216
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --sm-tw-gradient-from, --sm-tw-gradient-via, --sm-tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
1217
+ transition-timing-function: var(--sm-tw-ease, var(--default-transition-timing-function));
1218
+ transition-duration: var(--sm-tw-duration, var(--default-transition-duration));
1219
+ }
1220
+
1221
+ .ease-in-out:where(.sound-module, .sound-module *) {
1222
+ --sm-tw-ease: var(--ease-in-out);
1223
+ transition-timing-function: var(--ease-in-out);
1224
+ }
1225
+
1226
+ .ease-out:where(.sound-module, .sound-module *) {
1227
+ --sm-tw-ease: var(--ease-out);
1228
+ transition-timing-function: var(--ease-out);
1229
+ }
1230
+
1231
+ .outline-none:where(.sound-module, .sound-module *) {
1232
+ --sm-tw-outline-style: none;
1233
+ outline-style: none;
1234
+ }
1235
+
1236
+ .select-none:where(.sound-module, .sound-module *) {
1237
+ -webkit-user-select: none;
1238
+ user-select: none;
1239
+ }
1240
+
1241
+ .placeholder\:text-legend:where(.sound-module, .sound-module *)::placeholder {
1242
+ color: var(--color-legend);
1243
+ }
1244
+
1245
+ @media (hover: hover) {
1246
+ .hover\:bg-coral\/10:where(.sound-module, .sound-module *):hover {
1247
+ background-color: #ff6b6b1a;
1248
+ }
1249
+
1250
+ @supports (color: color-mix(in lab, red, red)) {
1251
+ .hover\:bg-coral\/10:where(.sound-module, .sound-module *):hover {
1252
+ background-color: color-mix(in oklab, var(--color-coral) 10%, transparent);
1253
+ }
1254
+ }
1255
+
1256
+ .hover\:text-text:where(.sound-module, .sound-module *):hover {
1257
+ color: var(--color-text);
1258
+ }
1259
+ }
1260
+
1261
+ .focus\:ring-2:where(.sound-module, .sound-module *):focus {
1262
+ --sm-tw-ring-shadow: var(--sm-tw-ring-inset, ) 0 0 0 calc(2px + var(--sm-tw-ring-offset-width)) var(--sm-tw-ring-color, currentcolor);
1263
+ box-shadow: var(--sm-tw-inset-shadow), var(--sm-tw-inset-ring-shadow), var(--sm-tw-ring-offset-shadow), var(--sm-tw-ring-shadow), var(--sm-tw-shadow);
1264
+ }
1265
+
1266
+ .focus\:ring-coral:where(.sound-module, .sound-module *):focus {
1267
+ --sm-tw-ring-color: var(--color-coral);
1268
+ }
1269
+
1270
+ .disabled\:opacity-50:where(.sound-module, .sound-module *):disabled {
1271
+ opacity: .5;
1272
+ }
1273
+
1274
+ @media (min-width: 640px) {
1275
+ .sm\:right-3:where(.sound-module, .sound-module *) {
1276
+ right: calc(var(--spacing) * 3);
1277
+ }
1278
+
1279
+ .sm\:order-none:where(.sound-module, .sound-module *) {
1280
+ order: 0;
1281
+ }
1282
+
1283
+ .sm\:col-span-1:where(.sound-module, .sound-module *) {
1284
+ grid-column: span 1 / span 1;
1285
+ }
1286
+
1287
+ .sm\:ml-auto:where(.sound-module, .sound-module *) {
1288
+ margin-left: auto;
1289
+ }
1290
+
1291
+ .sm\:flex:where(.sound-module, .sound-module *) {
1292
+ display: flex;
1293
+ }
1294
+
1295
+ .sm\:inline:where(.sound-module, .sound-module *) {
1296
+ display: inline;
1297
+ }
1298
+
1299
+ .sm\:w-48:where(.sound-module, .sound-module *) {
1300
+ width: calc(var(--spacing) * 48);
1301
+ }
1302
+
1303
+ .sm\:w-96:where(.sound-module, .sound-module *) {
1304
+ width: calc(var(--spacing) * 96);
1305
+ }
1306
+
1307
+ .sm\:w-\[min\(640px\,calc\(100\%-2rem\)\)\]:where(.sound-module, .sound-module *) {
1308
+ width: min(640px, 100% - 32px);
1309
+ }
1310
+
1311
+ .sm\:w-\[min\(640px\,calc\(100vw-2rem\)\)\]:where(.sound-module, .sound-module *) {
1312
+ width: min(640px, 100vw - 32px);
1313
+ }
1314
+
1315
+ .sm\:w-auto:where(.sound-module, .sound-module *) {
1316
+ width: auto;
1317
+ }
1318
+
1319
+ .sm\:flex-1:where(.sound-module, .sound-module *) {
1320
+ flex: 1;
1321
+ }
1322
+
1323
+ .sm\:grid-cols-3:where(.sound-module, .sound-module *) {
1324
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1325
+ }
1326
+
1327
+ .sm\:grid-cols-4:where(.sound-module, .sound-module *) {
1328
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1329
+ }
1330
+
1331
+ .sm\:flex-row:where(.sound-module, .sound-module *) {
1332
+ flex-direction: row;
1333
+ }
1334
+
1335
+ .sm\:flex-wrap:where(.sound-module, .sound-module *) {
1336
+ flex-wrap: wrap;
1337
+ }
1338
+
1339
+ .sm\:items-center:where(.sound-module, .sound-module *) {
1340
+ align-items: center;
1341
+ }
1342
+
1343
+ .sm\:justify-between:where(.sound-module, .sound-module *) {
1344
+ justify-content: space-between;
1345
+ }
1346
+
1347
+ .sm\:justify-start:where(.sound-module, .sound-module *) {
1348
+ justify-content: flex-start;
1349
+ }
1350
+
1351
+ .sm\:gap-3:where(.sound-module, .sound-module *) {
1352
+ gap: calc(var(--spacing) * 3);
1353
+ }
1354
+
1355
+ .sm\:rounded-2xl:where(.sound-module, .sound-module *) {
1356
+ border-radius: var(--radius-2xl);
1357
+ }
1358
+
1359
+ .sm\:p-4:where(.sound-module, .sound-module *) {
1360
+ padding: calc(var(--spacing) * 4);
1361
+ }
1362
+
1363
+ .sm\:p-5:where(.sound-module, .sound-module *) {
1364
+ padding: calc(var(--spacing) * 5);
1365
+ }
1366
+
1367
+ .sm\:p-6:where(.sound-module, .sound-module *) {
1368
+ padding: calc(var(--spacing) * 6);
1369
+ }
1370
+
1371
+ .sm\:px-10:where(.sound-module, .sound-module *) {
1372
+ padding-inline: calc(var(--spacing) * 10);
1373
+ }
1374
+ }
1375
+
1376
+ @media (min-width: 768px) {
1377
+ .md\:grid-cols-4:where(.sound-module, .sound-module *) {
1378
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1379
+ }
1380
+ }
1381
+
1382
+ @media (min-width: 1024px) {
1383
+ .lg\:flex:where(.sound-module, .sound-module *) {
1384
+ display: flex;
1385
+ }
1386
+
1387
+ .lg\:grid-cols-5:where(.sound-module, .sound-module *) {
1388
+ grid-template-columns: repeat(5, minmax(0, 1fr));
1389
+ }
1390
+ }
1391
+ }
1392
+
1393
+ .sound-module {
1394
+ color-scheme: dark;
1395
+ --room-bg: radial-gradient(ellipse at 50% 0%, #303a4c 0%, #1c2230 55%, #12151d 100%);
1396
+ --ink-sky: #5bc0eb;
1397
+ --ink-coral: #ff6b6b;
1398
+ --ink-lavender: #b59cd9;
1399
+ --face-bg: linear-gradient(180deg, #2a3141 0%, #232a3a 46%, #1b2130 100%),
1400
+ repeating-linear-gradient(90deg, #ffffff06 0px, #ffffff06 1px, #00000005 1px, #00000005 2px);
1401
+ --face-border: #0b0e15;
1402
+ --face-shadow: 0 18px 44px #0000008c, 0 2px 0 #ffffff0d,
1403
+ inset 0 1px 0 #ffffff1a, inset 0 -2px 6px #0006;
1404
+ --brand-border: #00000080;
1405
+ --brand-hi: #ffffff0f;
1406
+ --power-border: #ffffff1f;
1407
+ --power-shadow: inset 0 1px 0 #ffffff0f, inset 0 -1px 2px #00000059;
1408
+ --well-bg: linear-gradient(180deg, #171d29 0%, #1b2231 100%);
1409
+ --well-border: #0000008c;
1410
+ --well-shadow: inset 0 1px 3px #00000080, inset 0 -1px 0 #ffffff0a,
1411
+ 0 1px 0 #ffffff0d;
1412
+ --btn-bg: linear-gradient(180deg, #414b62 0%, #2e3648 100%);
1413
+ --btn-border: #0d1119;
1414
+ --btn-shadow: inset 0 1px 0 #ffffff29, inset 0 -1px 1px #0006,
1415
+ 0 2px 4px #00000080;
1416
+ --btn-shadow-active: inset 0 2px 4px #0000008c;
1417
+ --btn-led-off-bg: #00000073;
1418
+ --btn-led-off-shadow: inset 0 1px 1px #00000080, 0 0 0 1px #ffffff0a;
1419
+ --knob-bg: radial-gradient(circle at 50% 30%, #454f66 0%, #2a3140 48%, #141922 100%);
1420
+ --knob-shadow: inset 0 1.5px 0 #ffffff29, inset 0 -3px 5px #00000080;
1421
+ --knob-track: #ffffff12;
1422
+ --knob-skirt-bg: radial-gradient(circle at 50% 28%, #2e3648 0%, #10141d 100%);
1423
+ --knob-skirt-shadow: inset 0 1px 1px #ffffff14, inset 0 -1px 2px #0009,
1424
+ 0 3px 7px #0000008c;
1425
+ --knob-pointer: #eaecf2;
1426
+ --pedal-bg: linear-gradient(180deg, #2a3141 0%, #1e2432 100%);
1427
+ --pedal-border: #10141d;
1428
+ --pedal-shadow: inset 0 1px 0 #ffffff14, 0 2px 5px #00000073;
1429
+ --lcd-bezel-bg: linear-gradient(180deg, #0e1219 0%, #171c26 100%);
1430
+ --lcd-bezel-shadow: inset 0 2px 6px #000000b3, inset 0 -1px 0 #ffffff0d,
1431
+ 0 1px 0 #ffffff0d;
1432
+ --rail-bg: linear-gradient(90deg, #1a202c 0%, #2c3444 48%, #1a202c 100%);
1433
+ --rail-border: #0b0e15;
1434
+ --rail-shadow: inset 1px 0 0 #ffffff0f, inset -1px 0 0 #00000080,
1435
+ 0 6px 16px #0000008c;
1436
+ --pill-bg: #ffffff1a;
1437
+ --pill-border: #fff3;
1438
+ --hud-bg: linear-gradient(180deg, #1c2230 0%, #151a26 100%);
1439
+ --hud-border: #00000080;
1440
+ --hud-shadow: inset 0 1px 0 #ffffff0d, 0 1px 2px #0006;
1441
+ --kbd-bg: linear-gradient(180deg, #2e3647 0%, #232b3a 100%);
1442
+ --kbd-border: #10141d;
1443
+ --scrim: #000000b3;
1444
+ --card-bg: linear-gradient(180deg, #1b2130 0%, #161b26 100%);
1445
+ --card-solid: #161b26;
1446
+ --card-border: #ffffff1f;
1447
+ --card-shadow: 0 24px 60px #0009, inset 0 1px 0 #ffffff14;
1448
+ }
1449
+
1450
+ .sound-module:where([data-theme="light"]) {
1451
+ color-scheme: light;
1452
+ --room-bg: radial-gradient(ellipse at 50% 0%, #efede4 0%, #e7e4da 55%, #dcd9cd 100%);
1453
+ --ink-sky: #226680;
1454
+ --ink-coral: #b03b3b;
1455
+ --ink-lavender: #6a4e9c;
1456
+ --color-bg: #f0eee6;
1457
+ --color-text: #26241f;
1458
+ --color-panel: #e9e7dd;
1459
+ --color-rack: #e4e1d6;
1460
+ --color-rack-edge: #d3d0c4;
1461
+ --color-legend: #6b675c;
1462
+ --color-legend-strong: #3d3a32;
1463
+ --color-hairline: #28241c24;
1464
+ --color-face-hi: #f2f0e7;
1465
+ --color-face-lo: #e7e4da;
1466
+ --face-bg: linear-gradient(180deg, #f3f1e8 0%, #e9e6dc 100%);
1467
+ --face-border: #d3d0c4;
1468
+ --face-shadow: 0 10px 30px #322d231f, inset 0 1px 0 #fffc;
1469
+ --brand-border: #28241c24;
1470
+ --brand-hi: #fff9;
1471
+ --power-border: #28241c24;
1472
+ --power-shadow: 0 0 transparent;
1473
+ --well-bg: #fff6;
1474
+ --well-border: #28241c1f;
1475
+ --well-shadow: 0 0 transparent;
1476
+ --btn-bg: linear-gradient(180deg, #fcfbf7 0%, #efede3 100%);
1477
+ --btn-border: #cfccc0;
1478
+ --btn-shadow: inset 0 1px 0 #ffffffe6, 0 1px 2px #322d231f;
1479
+ --btn-shadow-active: inset 0 2px 3px #322d232e;
1480
+ --btn-led-off-bg: #28241c26;
1481
+ --btn-led-off-shadow: inset 0 1px 1px #0003;
1482
+ --knob-bg: radial-gradient(circle at 50% 30%, #fff 0%, #f1efe7 55%, #e1ded3 100%);
1483
+ --knob-shadow: inset 0 1.5px 0 #fffffff2, inset 0 -2px 4px #322d231f;
1484
+ --knob-track: #28241c1a;
1485
+ --knob-skirt-bg: radial-gradient(circle at 50% 28%, #fff 0%, #d0cdc2 55%, #b4b1a4 100%);
1486
+ --knob-skirt-shadow: inset 0 1px 1px #ffffffe6, inset 0 -1px 2px #322d2338,
1487
+ 0 3px 7px #322d2333;
1488
+ --knob-pointer: #3b3a36;
1489
+ --pedal-bg: linear-gradient(180deg, #fbfaf5 0%, #eeebe1 100%);
1490
+ --pedal-border: #d3d0c4;
1491
+ --pedal-shadow: inset 0 1px 0 #ffffffe6, 0 1px 2px #322d230f;
1492
+ --lcd-bezel-bg: linear-gradient(180deg, #cbc7bc 0%, #dedacf 100%);
1493
+ --lcd-bezel-shadow: inset 0 2px 5px #322d2347, inset 0 -1px 0 #ffffff8c;
1494
+ --rail-bg: linear-gradient(90deg, #c2beb2 0%, #dedacf 48%, #c8c4b8 100%);
1495
+ --rail-border: #ada99c;
1496
+ --rail-shadow: inset 1px 0 0 #ffffff73, inset -1px 0 0 #322d231f,
1497
+ 0 4px 12px #322d2342;
1498
+ --pill-bg: #fff9;
1499
+ --pill-border: #d3d0c4;
1500
+ --hud-bg: linear-gradient(180deg, #f3f1e8 0%, #e7e4da 100%);
1501
+ --hud-border: #d3d0c4;
1502
+ --hud-shadow: 0 0 transparent;
1503
+ --kbd-bg: #fcfbf7;
1504
+ --kbd-border: #d3d0c4;
1505
+ --scrim: #26241f80;
1506
+ --card-bg: #f6f4ec;
1507
+ --card-solid: #f3f1e8;
1508
+ --card-border: #d3d0c4;
1509
+ --card-shadow: 0 24px 60px #322d232e;
1510
+ }
1511
+
1512
+ .cell-hit:where(.sound-module, .sound-module *) {
1513
+ transition: transform .12s cubic-bezier(.34, 1.56, .64, 1), box-shadow .12s, background-color .12s;
1514
+ }
1515
+
1516
+ .cell-hit:where(.sound-module, .sound-module *):active {
1517
+ transform: scale(.94);
1518
+ }
1519
+
1520
+ .hw-btn:where(.sound-module, .sound-module *) {
1521
+ background: var(--btn-bg);
1522
+ border: 1px solid var(--btn-border);
1523
+ color: var(--color-legend-strong);
1524
+ box-shadow: var(--btn-shadow);
1525
+ border-radius: 4px;
1526
+ transition: transform 80ms ease-out, box-shadow 80ms ease-out;
1527
+ }
1528
+
1529
+ .hw-btn:where(.sound-module, .sound-module *):active {
1530
+ box-shadow: var(--btn-shadow-active);
1531
+ transform: translateY(1px);
1532
+ }
1533
+
1534
+ .hw-btn:where(.sound-module, .sound-module *):focus-visible {
1535
+ box-shadow: 0 0 0 2px var(--color-sky);
1536
+ outline: none;
1537
+ }
1538
+
1539
+ .hw-btn-accent:where(.sound-module, .sound-module *) {
1540
+ box-shadow: inset 0 0 0 1.5px var(--hw-accent, var(--color-sky)), var(--btn-shadow);
1541
+ }
1542
+
1543
+ .hw-btn-accent:where(.sound-module, .sound-module *):active {
1544
+ box-shadow: inset 0 0 0 1.5px var(--hw-accent, var(--color-sky)), var(--btn-shadow-active);
1545
+ transform: translateY(1px);
1546
+ }
1547
+
1548
+ .hw-btn-accent:where(.sound-module, .sound-module *):focus-visible {
1549
+ box-shadow: inset 0 0 0 1.5px var(--hw-accent, var(--color-sky)), 0 0 0 2px var(--color-sky);
1550
+ outline: none;
1551
+ }
1552
+
1553
+ .hw-btn-led:where(.sound-module, .sound-module *) {
1554
+ background: var(--btn-led-off-bg);
1555
+ width: 5px;
1556
+ height: 5px;
1557
+ box-shadow: var(--btn-led-off-shadow);
1558
+ pointer-events: none;
1559
+ border-radius: 9999px;
1560
+ flex-shrink: 0;
1561
+ }
1562
+
1563
+ @keyframes sm-led-pulse {
1564
+ 0%, 100% {
1565
+ opacity: 1;
1566
+ box-shadow: 0 0 6px 1px;
1567
+ }
1568
+
1569
+ 50% {
1570
+ opacity: .7;
1571
+ box-shadow: 0 0 4px;
1572
+ }
1573
+ }
1574
+
1575
+ .led-on:where(.sound-module, .sound-module *) {
1576
+ animation: 1.6s ease-in-out infinite sm-led-pulse;
1577
+ }
1578
+
1579
+ .lcd-glow:where(.sound-module, .sound-module *) {
1580
+ text-shadow: 0 0 4px #55e6c8e6, 0 0 8px #55e6c88c, 0 0 18px #55e6c840;
1581
+ }
1582
+
1583
+ @keyframes sm-lcd-cursor-blink {
1584
+ 0%, 50% {
1585
+ opacity: 1;
1586
+ }
1587
+
1588
+ 50.01%, 100% {
1589
+ opacity: 0;
1590
+ }
1591
+ }
1592
+
1593
+ .lcd-cursor:where(.sound-module, .sound-module *) {
1594
+ animation: 1.2s step-end infinite sm-lcd-cursor-blink;
1595
+ }
1596
+
1597
+ .legend:where(.sound-module, .sound-module *) {
1598
+ font-family: var(--font-legend);
1599
+ text-transform: uppercase;
1600
+ letter-spacing: .12em;
1601
+ color: var(--color-legend);
1602
+ font-size: 10px;
1603
+ font-weight: 500;
1604
+ }
1605
+
1606
+ .legend-strong:where(.sound-module, .sound-module *) {
1607
+ font-family: var(--font-legend);
1608
+ text-transform: uppercase;
1609
+ letter-spacing: .1em;
1610
+ color: var(--color-legend-strong);
1611
+ font-size: 11px;
1612
+ font-weight: 600;
1613
+ }
1614
+
1615
+ .group-frame:where(.sound-module, .sound-module *), .rack-panel:where(.sound-module, .sound-module *) {
1616
+ background: var(--well-bg);
1617
+ border: 1px solid var(--well-border);
1618
+ box-shadow: var(--well-shadow);
1619
+ border-radius: 8px;
1620
+ position: relative;
1621
+ }
1622
+
1623
+ .group-legend:where(.sound-module, .sound-module *) {
1624
+ background: var(--color-face-hi);
1625
+ z-index: 1;
1626
+ pointer-events: none;
1627
+ padding: 0 6px;
1628
+ position: absolute;
1629
+ top: -7px;
1630
+ left: 12px;
1631
+ }
1632
+
1633
+ .rack-screw:where(.sound-module, .sound-module *) {
1634
+ pointer-events: none;
1635
+ background: radial-gradient(circle at 35% 35%, #fff 0%, #c8cdd6 45%, #8a93a3 100%);
1636
+ border-radius: 9999px;
1637
+ width: 10px;
1638
+ height: 10px;
1639
+ position: relative;
1640
+ box-shadow: inset 0 0 0 1px #00000026;
1641
+ }
1642
+
1643
+ .rack-screw:where(.sound-module, .sound-module *):after {
1644
+ content: "";
1645
+ width: 60%;
1646
+ height: 1.5px;
1647
+ transform: translateY(-50%) rotate(var(--slot-rot, 30deg));
1648
+ background: #141e3c73;
1649
+ border-radius: 1px;
1650
+ position: absolute;
1651
+ top: 50%;
1652
+ left: 20%;
1653
+ }
1654
+
1655
+ .rack-rail:where(.sound-module, .sound-module *) {
1656
+ background: var(--rail-bg);
1657
+ border: 1px solid var(--rail-border);
1658
+ box-shadow: var(--rail-shadow);
1659
+ pointer-events: none;
1660
+ border-radius: 5px;
1661
+ }
1662
+
1663
+ .rack-hole:where(.sound-module, .sound-module *) {
1664
+ background: radial-gradient(circle at 50% 38%, #828a97 0%, #3b404a 58%, #23262e 100%);
1665
+ border-radius: 9999px;
1666
+ width: 7px;
1667
+ height: 7px;
1668
+ box-shadow: inset 0 1px 2px #000c, 0 1px #ffffff8c;
1669
+ }
1670
+
1671
+ .knob-ring:where(.sound-module, .sound-module *) {
1672
+ background: conic-gradient(from -135deg, var(--color-sky) 0%, var(--color-sky) var(--knob-pct, 0%), var(--knob-track) var(--knob-pct, 0%), var(--knob-track) 75%, transparent 75%);
1673
+ }
1674
+
1675
+ @keyframes sm-pop-in {
1676
+ from {
1677
+ opacity: 0;
1678
+ transform: translateY(8px) scale(.98);
1679
+ }
1680
+
1681
+ to {
1682
+ opacity: 1;
1683
+ transform: translateY(0) scale(1);
1684
+ }
1685
+ }
1686
+
1687
+ .pop-in:where(.sound-module, .sound-module *) {
1688
+ animation: .18s cubic-bezier(.34, 1.56, .64, 1) both sm-pop-in;
1689
+ }
1690
+
1691
+ @keyframes sm-fade-in {
1692
+ from {
1693
+ opacity: 0;
1694
+ }
1695
+
1696
+ to {
1697
+ opacity: 1;
1698
+ }
1699
+ }
1700
+
1701
+ .fade-in:where(.sound-module, .sound-module *) {
1702
+ animation: .16s ease-out both sm-fade-in;
1703
+ }
1704
+
1705
+ .scroll-clean:where(.sound-module, .sound-module *)::-webkit-scrollbar {
1706
+ width: 8px;
1707
+ height: 8px;
1708
+ }
1709
+
1710
+ .scroll-clean:where(.sound-module, .sound-module *)::-webkit-scrollbar-thumb {
1711
+ background: #ffffff24;
1712
+ border-radius: 9999px;
1713
+ }
1714
+
1715
+ .scroll-clean:where(.sound-module, .sound-module *)::-webkit-scrollbar-track {
1716
+ background: none;
1717
+ }
1718
+
1719
+ @keyframes sm-spin {
1720
+ to {
1721
+ transform: rotate(360deg);
1722
+ }
1723
+ }
1724
+
1725
+ @property --sm-tw-translate-x {
1726
+ syntax: "*";
1727
+ inherits: false;
1728
+ initial-value: 0;
1729
+ }
1730
+
1731
+ @property --sm-tw-translate-y {
1732
+ syntax: "*";
1733
+ inherits: false;
1734
+ initial-value: 0;
1735
+ }
1736
+
1737
+ @property --sm-tw-translate-z {
1738
+ syntax: "*";
1739
+ inherits: false;
1740
+ initial-value: 0;
1741
+ }
1742
+
1743
+ @property --sm-tw-rotate-x {
1744
+ syntax: "*";
1745
+ inherits: false
1746
+ }
1747
+
1748
+ @property --sm-tw-rotate-y {
1749
+ syntax: "*";
1750
+ inherits: false
1751
+ }
1752
+
1753
+ @property --sm-tw-rotate-z {
1754
+ syntax: "*";
1755
+ inherits: false
1756
+ }
1757
+
1758
+ @property --sm-tw-skew-x {
1759
+ syntax: "*";
1760
+ inherits: false
1761
+ }
1762
+
1763
+ @property --sm-tw-skew-y {
1764
+ syntax: "*";
1765
+ inherits: false
1766
+ }
1767
+
1768
+ @property --sm-tw-space-y-reverse {
1769
+ syntax: "*";
1770
+ inherits: false;
1771
+ initial-value: 0;
1772
+ }
1773
+
1774
+ @property --sm-tw-border-style {
1775
+ syntax: "*";
1776
+ inherits: false;
1777
+ initial-value: solid;
1778
+ }
1779
+
1780
+ @property --sm-tw-leading {
1781
+ syntax: "*";
1782
+ inherits: false
1783
+ }
1784
+
1785
+ @property --sm-tw-font-weight {
1786
+ syntax: "*";
1787
+ inherits: false
1788
+ }
1789
+
1790
+ @property --sm-tw-tracking {
1791
+ syntax: "*";
1792
+ inherits: false
1793
+ }
1794
+
1795
+ @property --sm-tw-ordinal {
1796
+ syntax: "*";
1797
+ inherits: false
1798
+ }
1799
+
1800
+ @property --sm-tw-slashed-zero {
1801
+ syntax: "*";
1802
+ inherits: false
1803
+ }
1804
+
1805
+ @property --sm-tw-numeric-figure {
1806
+ syntax: "*";
1807
+ inherits: false
1808
+ }
1809
+
1810
+ @property --sm-tw-numeric-spacing {
1811
+ syntax: "*";
1812
+ inherits: false
1813
+ }
1814
+
1815
+ @property --sm-tw-numeric-fraction {
1816
+ syntax: "*";
1817
+ inherits: false
1818
+ }
1819
+
1820
+ @property --sm-tw-shadow {
1821
+ syntax: "*";
1822
+ inherits: false;
1823
+ initial-value: 0 0 #0000;
1824
+ }
1825
+
1826
+ @property --sm-tw-shadow-color {
1827
+ syntax: "*";
1828
+ inherits: false
1829
+ }
1830
+
1831
+ @property --sm-tw-shadow-alpha {
1832
+ syntax: "<percentage>";
1833
+ inherits: false;
1834
+ initial-value: 100%;
1835
+ }
1836
+
1837
+ @property --sm-tw-inset-shadow {
1838
+ syntax: "*";
1839
+ inherits: false;
1840
+ initial-value: 0 0 #0000;
1841
+ }
1842
+
1843
+ @property --sm-tw-inset-shadow-color {
1844
+ syntax: "*";
1845
+ inherits: false
1846
+ }
1847
+
1848
+ @property --sm-tw-inset-shadow-alpha {
1849
+ syntax: "<percentage>";
1850
+ inherits: false;
1851
+ initial-value: 100%;
1852
+ }
1853
+
1854
+ @property --sm-tw-ring-color {
1855
+ syntax: "*";
1856
+ inherits: false
1857
+ }
1858
+
1859
+ @property --sm-tw-ring-shadow {
1860
+ syntax: "*";
1861
+ inherits: false;
1862
+ initial-value: 0 0 #0000;
1863
+ }
1864
+
1865
+ @property --sm-tw-inset-ring-color {
1866
+ syntax: "*";
1867
+ inherits: false
1868
+ }
1869
+
1870
+ @property --sm-tw-inset-ring-shadow {
1871
+ syntax: "*";
1872
+ inherits: false;
1873
+ initial-value: 0 0 #0000;
1874
+ }
1875
+
1876
+ @property --sm-tw-ring-inset {
1877
+ syntax: "*";
1878
+ inherits: false
1879
+ }
1880
+
1881
+ @property --sm-tw-ring-offset-width {
1882
+ syntax: "<length>";
1883
+ inherits: false;
1884
+ initial-value: 0;
1885
+ }
1886
+
1887
+ @property --sm-tw-ring-offset-color {
1888
+ syntax: "*";
1889
+ inherits: false;
1890
+ initial-value: #fff;
1891
+ }
1892
+
1893
+ @property --sm-tw-ring-offset-shadow {
1894
+ syntax: "*";
1895
+ inherits: false;
1896
+ initial-value: 0 0 #0000;
1897
+ }
1898
+
1899
+ @property --sm-tw-blur {
1900
+ syntax: "*";
1901
+ inherits: false
1902
+ }
1903
+
1904
+ @property --sm-tw-brightness {
1905
+ syntax: "*";
1906
+ inherits: false
1907
+ }
1908
+
1909
+ @property --sm-tw-contrast {
1910
+ syntax: "*";
1911
+ inherits: false
1912
+ }
1913
+
1914
+ @property --sm-tw-grayscale {
1915
+ syntax: "*";
1916
+ inherits: false
1917
+ }
1918
+
1919
+ @property --sm-tw-hue-rotate {
1920
+ syntax: "*";
1921
+ inherits: false
1922
+ }
1923
+
1924
+ @property --sm-tw-invert {
1925
+ syntax: "*";
1926
+ inherits: false
1927
+ }
1928
+
1929
+ @property --sm-tw-opacity {
1930
+ syntax: "*";
1931
+ inherits: false
1932
+ }
1933
+
1934
+ @property --sm-tw-saturate {
1935
+ syntax: "*";
1936
+ inherits: false
1937
+ }
1938
+
1939
+ @property --sm-tw-sepia {
1940
+ syntax: "*";
1941
+ inherits: false
1942
+ }
1943
+
1944
+ @property --sm-tw-drop-shadow {
1945
+ syntax: "*";
1946
+ inherits: false
1947
+ }
1948
+
1949
+ @property --sm-tw-drop-shadow-color {
1950
+ syntax: "*";
1951
+ inherits: false
1952
+ }
1953
+
1954
+ @property --sm-tw-drop-shadow-alpha {
1955
+ syntax: "<percentage>";
1956
+ inherits: false;
1957
+ initial-value: 100%;
1958
+ }
1959
+
1960
+ @property --sm-tw-drop-shadow-size {
1961
+ syntax: "*";
1962
+ inherits: false
1963
+ }
1964
+
1965
+ @property --sm-tw-backdrop-blur {
1966
+ syntax: "*";
1967
+ inherits: false
1968
+ }
1969
+
1970
+ @property --sm-tw-backdrop-brightness {
1971
+ syntax: "*";
1972
+ inherits: false
1973
+ }
1974
+
1975
+ @property --sm-tw-backdrop-contrast {
1976
+ syntax: "*";
1977
+ inherits: false
1978
+ }
1979
+
1980
+ @property --sm-tw-backdrop-grayscale {
1981
+ syntax: "*";
1982
+ inherits: false
1983
+ }
1984
+
1985
+ @property --sm-tw-backdrop-hue-rotate {
1986
+ syntax: "*";
1987
+ inherits: false
1988
+ }
1989
+
1990
+ @property --sm-tw-backdrop-invert {
1991
+ syntax: "*";
1992
+ inherits: false
1993
+ }
1994
+
1995
+ @property --sm-tw-backdrop-opacity {
1996
+ syntax: "*";
1997
+ inherits: false
1998
+ }
1999
+
2000
+ @property --sm-tw-backdrop-saturate {
2001
+ syntax: "*";
2002
+ inherits: false
2003
+ }
2004
+
2005
+ @property --sm-tw-backdrop-sepia {
2006
+ syntax: "*";
2007
+ inherits: false
2008
+ }
2009
+
2010
+ @property --sm-tw-ease {
2011
+ syntax: "*";
2012
+ inherits: false
2013
+ }
2014
+
2015
+ @keyframes sm-pulse {
2016
+ 50% {
2017
+ opacity: .5;
2018
+ }
2019
+ }