@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#101211;--panel:#171a18;--line:#2c302c;--muted:#797f78;--text:#e8ebe1;--lime:#d8f89b;--pink:#d990c6;--cyan:#8dc9c8;--amber:#d5b77a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px 'DM Sans',sans-serif}button,input,select{font:inherit}button,select{color:inherit;background:transparent;border:1px solid var(--line);border-radius:5px;cursor:pointer}button{padding:9px 13px}button:hover{border-color:#89957c;background:#252b23}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}header{height:78px;padding:0 34px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:12px}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:13px;font:24px 'Space Grotesk';letter-spacing:2px}.brand span{font:9px 'DM Sans';letter-spacing:2px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px;margin-left:12px}.status{margin-left:auto;font:9px monospace;letter-spacing:1px;margin-right:20px}.status span{color:var(--muted);margin-left:20px}i{display:inline-block;width:5px;height:5px;background:var(--lime);border-radius:50%;margin-right:7px}main{max-width:1600px;margin:auto;padding:0 34px}.toolbar{display:flex;gap:22px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.mode{display:flex;background:#191c19;padding:4px;border:1px solid var(--line);border-radius:7px}.mode button{border:0;font-size:12px;padding:9px 21px}.mode .active{background:var(--lime);color:#25301a;font-weight:700}#modeHint{color:var(--muted);font-size:11px}.clock{margin-left:auto;display:flex;align-items:center;gap:12px;font:9px monospace;letter-spacing:1px}.clock input{width:48px;border:0;background:none;color:var(--text);font:21px 'Space Grotesk';text-align:center}.clock small{color:var(--muted)}.clock button{font:10px monospace;padding:9px}.selected{color:var(--lime)!important;background:#293121!important}.patchbar{display:flex;align-items:center;justify-content:space-between;padding:30px 0 27px}small,.sectiontitle{font-size:9px;letter-spacing:1.6px;color:var(--muted)}.patchbar h1{font:30px 'Space Grotesk';letter-spacing:-1px;margin:8px 0}.patchbar h1 span{color:#555e53;font-size:21px;margin-left:8px}.patchbar p{font-size:12px;color:#8d948a;margin:0}.patchnav{display:flex;gap:8px}.patchnav button:last-child{margin-left:8px;color:var(--lime)}.instrument{display:grid;grid-template-columns:220px 1fr 258px;border:1px solid var(--line);border-radius:8px;overflow:hidden;min-height:430px;background:var(--panel)}.sectiontitle{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:9px;font-weight:600;letter-spacing:1.3px}.sectiontitle span{font:9px monospace;color:#555f53}.generators{padding:20px 12px;border-right:1px solid var(--line)}.generators>.sectiontitle{padding:0 8px 18px}.gen{display:flex;align-items:center;width:100%;border:1px solid transparent;text-align:left;padding:13px 10px;gap:10px;margin-bottom:6px}.gen.active{background:#252c22;border-color:#46513d}.gen .icon{font:22px 'Space Grotesk';width:24px}.gen b{display:block;font-size:12px;font-weight:500}.gen small{display:block;font:9px monospace;letter-spacing:0;margin-top:5px;color:#7d8778}.gen .genled{margin-left:auto;font-size:10px}.add{width:100%;margin-top:10px;text-align:left;color:#98a28f;border-style:dashed;font-size:11px}.bus{font:9px monospace;letter-spacing:1px;padding:26px 7px 0;color:#9ba58f}.bus span{float:right;font-size:8px;color:#55634c}.busline{height:15px;margin:9px 0;background:repeating-linear-gradient(90deg,transparent 0 12px,#566847 12px 13px,transparent 13px 24px);border-bottom:1px solid #3b4831}.bus small{font:9px 'DM Sans';letter-spacing:0;color:#606b5b}.visual{min-width:0}.visualtop{height:70px;display:flex;justify-content:space-between;padding:20px 23px}.visualtop b{font-size:12px;font-weight:500}.visualtop small{display:block;font:8px monospace;letter-spacing:1px;margin:7px 0 0 13px}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--pink);margin-right:8px}.viztabs{display:flex;align-items:start;gap:3px}.viztabs button{font-size:9px;border:0;padding:6px 9px;color:var(--muted)}.canvaswrap{height:305px;position:relative;margin:0 15px;background:radial-gradient(ellipse at center,#20221e 0,#161916 70%);overflow:hidden}canvas{width:100%;height:100%;display:block}.plotlabel{position:absolute;left:15px;top:12px;color:#717b68;font:8px monospace;letter-spacing:1px}.plotlabel span{margin-left:12px;color:#46503f}.plotbottom{position:absolute;bottom:12px;left:15px;right:15px;display:flex;justify-content:space-between;font:8px monospace;color:#7a886e}.axis{position:absolute;font:8px monospace;color:#53614a}.axis.x{right:10px;top:50%}.axis.y{left:50%;top:4px}.signaloutputs{padding:18px 24px;display:flex;align-items:center;gap:20px;font:8px monospace;color:var(--muted)}.signaloutputs b{font-weight:400}.signaloutputs small{font:9px monospace;letter-spacing:0;margin-left:6px;color:#92998c}.right{margin-left:auto;font-size:7px}.parameters{padding:20px;border-left:1px solid var(--line)}.sectiontitle button{padding:0;border:0;font-size:17px;color:#a5ad9e}.paramtitle{display:flex;justify-content:space-between;align-items:center;margin:23px 0 20px;font:19px 'Space Grotesk'}.paramtitle select{font-size:9px;padding:5px;width:86px;color:#a2ad98}.param{margin-bottom:17px}.param label{display:flex;justify-content:space-between;font-size:10px;color:#939d8b}.param output{color:var(--text);font:10px monospace}.param input{width:100%;margin:10px 0 0;accent-color:var(--lime);height:3px;cursor:pointer}.paramnote{margin-top:24px;color:#6f7a65;font-size:10px;line-height:1.8}.paramnote span{float:left;margin-right:8px;color:var(--lime)}.macros{display:flex;border:1px solid var(--line);border-radius:8px;margin-top:16px;background:var(--panel);min-height:188px}.macrointro{padding:25px 24px;width:195px;flex-shrink:0}.macrointro small{font-size:8px}.macrointro h2{font:20px/1.2 'Space Grotesk';margin:10px 0}.macrointro p{font-size:10px;color:#798570;margin:8px 0}#macros{flex:1;display:flex;justify-content:space-around;align-items:center;padding:18px 7px;gap:8px}.macro{text-align:center;flex:1}.knob{width:65px;height:65px;border-radius:50%;margin:auto;background:conic-gradient(from 225deg,var(--lime) calc(var(--v)*2.7deg),#363e30 0 270deg,transparent 0);position:relative}.knob:before{content:'';position:absolute;inset:4px;background:linear-gradient(145deg,#353c30,#1d211b);border-radius:50%;box-shadow:0 3px 8px #0007;border:1px solid #454d3e}.knob:after{content:'';position:absolute;width:2px;height:15px;background:var(--lime);top:9px;left:31px;transform-origin:1px 24px;transform:rotate(calc(-135deg + var(--v)*2.7deg))}.knob input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:2}.macro b{display:block;font-size:11px;font-weight:500;margin-top:13px}.macro output{display:block;font:9px monospace;color:#77846c;margin-top:6px}.output{width:235px;border-left:1px solid var(--line);padding:22px}.output .sectiontitle span{font-size:7px}.meters{display:flex;flex-direction:column;gap:5px;margin-top:22px}.meters div{height:7px;background:repeating-linear-gradient(90deg,#a2bb7d 0 5px,transparent 5px 7px);width:30%;transition:width .15s}.outputrow{display:flex;align-items:center;gap:8px;margin-top:17px;font:8px monospace;color:#7a866f}.outputrow input{width:90px;accent-color:var(--lime);height:3px}.outputrow small{font:8px monospace;letter-spacing:0;white-space:nowrap}.output label{font-size:9px;color:#9ca78f;display:block;margin-top:17px}.output label input{accent-color:var(--lime);vertical-align:middle;margin-left:0}.output label span{float:right;font:8px monospace;color:var(--lime)}.presets{padding-top:27px}.presets>.sectiontitle{justify-content:start;gap:20px}.presets>.sectiontitle span{font-size:8px;letter-spacing:1px}#presets{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.preset{text-align:left;background:#191c18;padding:17px 18px;display:flex;align-items:center;gap:16px;border:1px solid var(--line)}.preset.active{border-color:#758d55;background:#22291d}.preset .art{width:40px;height:40px;font:36px 'Space Grotesk';display:grid;place-items:center}.preset b{font-size:11px;font-weight:500;display:block}.preset small{font:8px monospace;letter-spacing:.3px;display:block;margin-top:7px}.preset .number{margin-left:auto;color:#526048;font:9px monospace}footer{display:flex;justify-content:space-between;color:#52604a;font:8px monospace;letter-spacing:.8px;padding:25px 0}footer b{margin:0 10px;color:#394431}#advanced{border:1px solid var(--line);padding:20px;margin-top:16px;border-radius:7px;background:var(--panel)}#routes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.route{border:1px solid #394332;padding:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.route select{max-width:100px;padding:4px;font-size:10px}.route input[type=range]{width:80px;accent-color:var(--lime)}.route label{font-size:9px;color:var(--muted)}.route button{padding:3px 6px}.automated .generators,.automated .parameters{display:none}.automated .instrument{grid-template-columns:1fr}.automated .canvaswrap{height:370px}.automated .macrointro{width:195px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--lime);color:#24301a;padding:12px 22px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:9}dialog{background:#1c2319;color:var(--text);border:1px solid #6c8056;border-radius:12px;max-width:420px;padding:30px;line-height:1.7}dialog::backdrop{background:#0009}dialog button{background:var(--lime);color:#223019;margin-top:12px}@media(min-width:1450px){main{padding-top:8px}.canvaswrap{height:365px}.instrument{min-height:490px}.macrointro{width:220px}.knob{width:72px;height:72px}.knob:after{left:35px;transform-origin:1px 27px}}@media(max-width:1100px){.brand span,#modeHint{display:none}.instrument{grid-template-columns:185px 1fr 220px}.signaloutputs{gap:10px;padding:18px 12px}.signaloutputs .right{display:none}.macrointro{width:150px;padding:25px 17px}.output{width:195px;padding:22px 15px}.knob{width:52px;height:52px}.knob:after{left:25px;top:7px;height:12px;transform-origin:1px 19px}.macro b{font-size:10px}}@media(max-width:800px){header{padding:0 16px}.brand{font-size:20px}.status{display:none}header>button:first-of-type{margin-left:auto}main{padding:0 16px}.toolbar{flex-wrap:wrap;gap:12px}.clock{margin-left:0}.patchbar h1{font-size:24px}.instrument{grid-template-columns:150px 1fr}.parameters{grid-column:1/-1;border-top:1px solid var(--line);display:grid;grid-template-columns:160px 1fr;gap:15px}.parameters>.sectiontitle{grid-column:1/-1}.paramtitle{margin:0}.paramnote{display:none}#parameters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.param{margin:0}.macros{flex-wrap:wrap}.macrointro{display:none}#macros{width:100%;flex-basis:100%;padding:22px 10px}.output{width:100%;border-left:0;border-top:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:15px}.meters{width:90px;margin:0}.outputrow,.output label{margin:0}.presets #presets{grid-template-columns:1fr 1fr}footer span:last-child{display:none}#routes{grid-template-columns:1fr}.patchnav button:last-child{display:none}.visualtop{padding:16px 12px}.viztabs button{padding:5px}.canvaswrap{height:280px}.generators{padding:18px 6px}.gen{padding:10px 6px;gap:6px}.gen .icon{width:19px}.gen b{font-size:10px}.bus{font-size:8px}.bus span{display:none}.signaloutputs{gap:8px}.signaloutputs small{margin-left:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
