:root{--bg: #000;--fg: #0f0;--vcf: #0f0;--font: "Courier New", Courier, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:var(--font);text-transform:uppercase;image-rendering:pixelated;-webkit-font-smoothing:none}body{display:flex;flex-direction:column}#app{flex:1;display:grid;grid-template-columns:300px 1fr;grid-template-rows:minmax(0,1fr);gap:10px;padding:10px;min-height:0}.panel{border:2px solid var(--fg);padding:10px}#topbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:10px 10px 0;padding:8px 10px}.topcluster{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}#top-globals .ctl,#top-time .ctl{margin:0;width:100px}#top-globals .ctl label,#top-time .ctl label{margin:0 0 2px}#top-globals select,#top-time select{width:100%}#top-transport,#top-output{align-self:center}#top-transport button,#top-output button{padding:6px 10px}#top-transport .btnrow{gap:6px}.more-toggle{align-self:flex-end;padding:6px 10px}#top-output{margin-left:auto}.outlabel{display:inline-flex;align-items:center;gap:4px;font-size:11px}#dice{align-self:center;padding:6px 8px;line-height:0}#dice svg{display:block}#feel-tray[hidden],#midi-tray[hidden]{display:none}#feel-tray,#midi-tray{display:flex;flex-wrap:wrap;gap:16px;margin:10px 10px 0}#feel-tray .ctl{margin:0;width:180px}#midi-voices{display:flex;flex-wrap:wrap;gap:12px;flex:1 1 100%}#midi-voices .ctl{margin:0;width:160px}.savicon{vertical-align:-2px}#controls{overflow-y:auto;min-height:0}#stage{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}#viz{width:100%;flex:1;min-height:0;border:2px solid var(--fg);background:#000;display:block;image-rendering:pixelated}hr{border:none;border-top:2px dashed var(--fg);margin:12px 0}label{display:block;font-size:11px;margin:8px 0 2px}.ctl{margin-bottom:4px}.ctl .val{float:right}.blurb{font-size:10px;margin:4px 0 8px}.subparams{border-left:2px solid var(--fg);padding-left:8px;margin:2px 0 10px}.subtitle{font-size:10px;margin:4px 0}input[type=range]{width:100%;margin:0;accent-color:var(--fg);background:#000}select{background:#000;color:var(--fg);border:1px solid var(--fg);border-radius:0;font:inherit;text-transform:uppercase;padding:4px}input[type=checkbox]{accent-color:var(--fg);transform:scale(1.3)}.gen-select{width:100%;margin-top:4px}button{background:#000;color:var(--fg);border:2px solid var(--fg);border-radius:0;font:inherit;font-weight:700;text-transform:uppercase;padding:8px 12px;cursor:pointer}button:hover,button:active{background:var(--fg);color:#000}button:disabled{opacity:1;border-style:dashed;cursor:not-allowed}.btnrow{display:flex;gap:6px;flex-wrap:wrap}.subtabs{gap:4px;margin-bottom:10px}.subtabs .tab{flex:1;padding:5px 2px;font-size:10px}.subtabs .tab.active{background:var(--fg);color:#000}#voicestrip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:stretch}.voicechip{display:flex;border:2px solid var(--vc)}.voicechip.focused{outline:2px solid var(--vc);outline-offset:1px}.voicechip .vlabel{border:none;background:#000;color:var(--vc);padding:5px 12px;font:inherit;cursor:pointer;line-height:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.voicechip .vname{font-weight:700;font-size:18px;letter-spacing:1px}.voicechip .vbadge{font-weight:700;font-size:8px;margin-top:3px}.voicechip.focused .vlabel,.voicechip .vlabel:hover{background:var(--vc);color:#000}.vtogs{display:flex;flex-direction:column;border-left:2px solid var(--vc)}.vtog{border:none;background:#000;color:var(--fg);padding:0 9px;font:inherit;font-size:11px;font-weight:700;flex:1;cursor:pointer;display:flex;align-items:center}.vtog+.vtog{border-top:2px solid var(--vc)}.vmute:hover,.vmute.on{background:red;color:#000}.vsolo:hover,.vsolo.on{background:#fff;color:#000}.vadd{border:2px solid var(--fg);background:#000;color:var(--fg);padding:4px 13px;font:inherit;font-size:16px;font-weight:700;cursor:pointer}.vadd:hover{background:var(--fg);color:#000}#channel-strip{border-top:3px solid var(--vcf);margin-top:12px;padding-top:8px}.cs-head{color:var(--vcf);font-weight:700;font-size:14px;margin-bottom:6px;letter-spacing:1px}.voiceexport{width:100%;margin-top:10px;border-color:var(--vcf);color:var(--vcf)}.voiceexport:hover{background:var(--vcf);color:#000}#edit-dock{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-color:var(--vcf)}.dock-label{color:var(--vcf);font-weight:700;font-size:12px;letter-spacing:1px}#edit-dock button{padding:4px 10px;font-size:11px;border-width:2px}#edit-dock button:hover{background:var(--vcf);color:#000}#edit-dock .tool.active{background:var(--vcf);color:#000;border-color:var(--vcf)}.snap-label{font-size:11px}.snap-label select{padding:2px}#about-tab{position:fixed;left:8px;bottom:8px;z-index:10;padding:4px 8px;font-size:11px}#about-modal[hidden]{display:none}#about-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto}.modal-box{position:relative;border:2px solid var(--fg);background:#000;padding:20px 24px;max-width:560px;text-transform:none;line-height:1.5}.modal-box h2{margin:0 0 12px;text-transform:uppercase;letter-spacing:2px}.modal-box p{margin:0 0 12px;font-size:13px}.modal-box a{color:var(--fg)}.modal-box code{border:1px solid var(--fg);padding:0 3px}#about-close{position:absolute;top:8px;right:8px;padding:4px 8px}@media (max-width: 720px){html,body{height:auto}body{min-height:100%}#app{flex:initial;display:block;padding:8px}.panel{margin-bottom:10px}#topbar{margin:8px 8px 0}#top-globals .ctl,#top-time .ctl,#feel-tray .ctl{width:46%;flex:1 1 46%}#top-output{margin-left:0}#app{padding-bottom:44px}#feel-tray,#midi-tray{margin:0 8px 10px}#controls{max-height:none;overflow:visible}#stage{display:block}#viz{height:44vh;min-height:240px}#voicestrip .vtog{padding:9px 13px;font-size:13px}#voicestrip .vname{font-size:20px}}
