@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } .now-playing { background: rgba(250, 250, 248, 0.06); border: 1px solid rgba(250, 250, 248, 0.12); padding: 1.5rem; margin-bottom: 1.5rem; backdrop-filter: blur(8px); } .np-label { font-family: var(--deepdrft-font-mono); font-size: 0.6rem; letter-spacing: 0.25em; color: var(--deepdrft-green-accent); text-transform: uppercase; margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.5rem; } .np-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--deepdrft-green-accent); animation: blink 1.2s ease-in-out infinite; } .np-title { font-family: var(--deepdrft-font-display); font-size: 1.5rem; font-weight: 400; color: var(--deepdrft-white); margin-bottom: 0.25rem; } .np-sub { font-family: var(--deepdrft-font-body); font-size: 0.75rem; color: rgba(250, 250, 248, 0.45); letter-spacing: 0.08em; } /* Contained visualizer region (Phase 12 mode C). The visualizer mounts with Fill="true", whose layer is `position: absolute; inset: 0` — so this box must be a positioned, sized ancestor for the canvas to fill. `overflow: hidden` keeps the lava inside the card's rounded chrome. The height is the card's bounded live readout — taller than the old synthetic-bar strip so the real waveform reads, but still compact for a home-page hero panel. */ .np-visualizer { position: relative; height: 120px; margin-top: 1.2rem; overflow: hidden; border-radius: 2px; } /* The lava-lamp popover trigger overlays the visualizer's top-right corner (full parity, §8e). Above the canvas (z-index) and pointer-enabled so the icon is clickable even though the canvas layer below it is pointer-events:none. */ .np-visualizer-controls { position: absolute; top: 0.25rem; right: 0.25rem; z-index: 1; }