| .wrapper { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.6rem; | |
| } | |
| .label { | |
| font-size: 0.72rem; | |
| font-weight: 400; | |
| color: var(--mauve-400); | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| } | |
| .canvas { | |
| border-radius: var(--radius-md); | |
| overflow: hidden; | |
| background: #2a1f2a; | |
| min-height: 100px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .image { | |
| width: 100%; | |
| display: block; | |
| border-radius: var(--radius-md); | |
| } | |
| .generating { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 1rem; | |
| padding: 1.5rem; | |
| } | |
| .waveform { | |
| display: flex; | |
| align-items: center; | |
| gap: 3px; | |
| height: 40px; | |
| } | |
| .bar { | |
| width: 3px; | |
| border-radius: 2px; | |
| background: var(--mauve-300); | |
| animation: wave 1s ease-in-out infinite alternate; | |
| height: 8px; | |
| } | |
| @keyframes wave { | |
| to { height: 36px; background: var(--gold); } | |
| } | |
| .genLabel { | |
| font-size: 0.78rem; | |
| color: var(--mauve-300); | |
| letter-spacing: 0.05em; | |
| } | |
| .caption { | |
| font-size: 0.68rem; | |
| color: var(--mauve-300); | |
| letter-spacing: 0.06em; | |
| text-align: center; | |
| } | |