.vibration-visuals{min-width:0;background:linear-gradient(145deg,#112c3d,#0b1b2a)}
.shaker-lab{padding:18px 20px 14px;border-bottom:1px solid var(--line)}
.shaker-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;font:10px/1.5 "IBM Plex Mono",monospace;letter-spacing:.06em;color:var(--cyan)}
.shaker-toolbar button{padding:7px 10px;color:var(--ink);background:#173244;border:1px solid #365564;font:11px "IBM Plex Mono",monospace;cursor:pointer}
.shaker-toolbar button:hover{border-color:var(--amber)}
#vb-rig{display:block;width:100%;height:auto;margin:8px 0 0;overflow:hidden}
.shaker-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font:10px/1.6 "IBM Plex Mono",monospace;color:#b1c4cd}
.shaker-legend>span{display:inline-flex;gap:7px;align-items:center}
.shaker-legend>span:last-child{margin-left:auto;color:var(--muted)}
.shaker-legend i{display:inline-block;width:15px;height:3px}
.table-key{background:var(--amber)}.article-key{background:var(--cyan)}
.shaker-motion{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 18px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font:10px/1.7 "IBM Plex Mono",monospace;color:var(--muted)}
.shaker-motion b{font-weight:500;color:var(--cyan);white-space:nowrap}
.shaker-hint{font-size:12px;color:#a6bbc7;margin:12px 0 0;line-height:1.6}
.vibration-spectrum{min-height:0;padding-top:16px}
.spectrum-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font:10px/1.6 "IBM Plex Mono",monospace;letter-spacing:.04em;color:var(--amber);margin:0 0 12px}
.spectrum-caption span{color:var(--muted);letter-spacing:0}
#vb-canvas{height:240px}
#demo-vib .controls{padding-top:26px}
@media(max-width:480px){.shaker-lab{padding:16px 10px}.shaker-toolbar{font-size:9px;letter-spacing:0}.shaker-toolbar button{font-size:10px;padding:7px}.shaker-legend{gap:10px;font-size:9px}.shaker-motion{font-size:9px}.shaker-hint{font-size:11px}#vb-canvas{height:220px}}
