.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-normal.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#0b0920;--bg-deep:#07061a;--panel:#130f30;--panel-2:#19143d;--panel-3:#231c52;--border:#2c2463;--border-hi:#4a3ea6;--text:#f3f0ff;--muted:#a8a3d6;--dim:#6d679f;--notes:#ffb020;--audio:#22d3ee;--mod:#ff4fd8;--danger:#ff4d6d;--ok:#3dffa0;--violet:#9b5cff;--brand:linear-gradient(90deg, #ff4fd8 0%, #9b5cff 50%, #22d3ee 100%);--meter:linear-gradient(90deg, #3dffa0 0%, #b6ff3b 65%, #ffb020 85%, #ff4d6d 100%);--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:13px;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}.af-kind-notes{color:var(--notes)}.af-kind-audio{color:var(--audio)}.af-kind-mod{color:var(--mod)}.af-app{flex-direction:column;height:100%;display:flex}.af-main{flex:1;min-height:0;display:flex}.af-canvas{flex:1;min-width:0;position:relative}.af-toolbar{border-bottom:1px solid var(--border);z-index:5;background:linear-gradient(#1a1442 0%,#120e2e 100%);align-items:center;gap:14px;padding:8px 14px;display:flex;position:relative}.af-toolbar:after{content:"";background:var(--brand);opacity:.55;height:1px;position:absolute;bottom:-1px;left:0;right:0;box-shadow:0 0 10px #9b5cff99}.af-toolbar__group{align-items:center;gap:8px;display:flex}.af-toolbar__group--grow{flex:1;justify-content:center}.af-logo{letter-spacing:.01em;align-items:center;gap:8px;margin-right:4px;font-size:16px;font-weight:800;display:flex}.af-logo__mark{display:block}.af-logo__text{color:var(--text)}.af-btn{background:linear-gradient(180deg, #2a2260 0%, var(--panel-3) 100%);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:5px 11px;transition:background .12s,border-color .12s,box-shadow .12s;box-shadow:inset 0 1px #ffffff0f}.af-btn:disabled{opacity:.35;cursor:default}.af-btn:hover{border-color:var(--border-hi);background:linear-gradient(#33297a 0%,#281f5e 100%);box-shadow:inset 0 1px #ffffff14,0 0 12px #9b5cff40}.af-btn:disabled:hover{background:linear-gradient(180deg, #2a2260 0%, var(--panel-3) 100%);border-color:var(--border);box-shadow:inset 0 1px #ffffff0f}.af-menu{position:relative}.af-btn.is-open{border-color:var(--border-hi);background:#33297a}.af-menu__list{z-index:60;background:var(--panel);border:1px solid var(--border);border-radius:12px;min-width:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 18px 48px #03020eb3,0 0 0 1px #9b5cff1f}.af-menu__item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:1fr auto;grid-template-areas:"title bpm""style bpm";padding:7px 10px;display:grid}.af-menu__item:hover,.af-menu__item:focus-visible{background:linear-gradient(90deg,#ff4fd829,#9b5cff1a);outline:none}.af-menu__title{grid-area:title;font-weight:600}.af-menu__style{color:var(--muted);grid-area:style;font-size:12px}.af-menu__bpm{color:var(--dim);font-family:var(--font-mono);grid-area:bpm;align-self:center;padding-left:16px;font-size:12px}.af-btn--icon{width:30px;padding:5px 0;font-weight:700}.af-btn--play{color:#d9fff0;background:linear-gradient(#1d6b52 0%,#11483a 100%);border-color:#2fd19a;min-width:84px;font-weight:700;box-shadow:inset 0 1px #ffffff26,0 0 14px #3dffa04d}.af-btn--play:hover{border-color:var(--ok);background:linear-gradient(#23805f 0%,#155743 100%);box-shadow:inset 0 1px #ffffff2e,0 0 18px #3dffa073}.af-btn--play.is-on,.af-btn--play.is-on:hover{border-color:var(--mod);color:#ffe3f8;background:linear-gradient(#8a1f6e 0%,#5c124a 100%);box-shadow:inset 0 1px #ffffff26,0 0 18px #ff4fd873}.af-btn--rec{color:#ff9db2}.af-btn--rec.is-on{border-color:var(--danger);background:#6a1630;animation:1s steps(2,end) infinite af-blink;box-shadow:0 0 14px #ff4d6d80}.af-btn.is-live{border-color:var(--danger);color:#ffe0e6;background:#6a1630;box-shadow:0 0 12px #ff4d6d66}@keyframes af-blink{50%{border-color:#0000}}.af-position{font-family:var(--font-mono);font-variant-numeric:tabular-nums;background:var(--bg-deep);border:1px solid var(--border);min-width:56px;color:var(--notes);text-shadow:0 0 8px #ffb020b3;text-align:center;border-radius:8px;padding:4px 9px;font-weight:600;box-shadow:inset 0 0 10px #0009}.af-field{color:var(--muted);align-items:center;gap:6px;display:flex}.af-field input[type=number]{background:var(--bg-deep);border:1px solid var(--border);width:62px;font-family:var(--font-mono);color:var(--audio);border-radius:8px;padding:4px 6px}.af-field__select{background:var(--bg-deep);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 6px}.af-field input[type=number]:focus,.af-field__select:focus{border-color:var(--audio);outline:none;box-shadow:0 0 0 2px #22d3ee2e}.af-volume{color:var(--muted);cursor:pointer;gap:8px}.af-volume__track{--vol:.66;--thumb:14px;border:1px solid var(--border);background:linear-gradient(90deg, #22d3ee3d 0, #22d3ee3d calc(var(--thumb) / 2 + var(--vol) * (100% - var(--thumb))), transparent 0), var(--bg-deep);border-radius:999px;width:132px;height:10px;transition:border-color .15s,box-shadow .15s;display:block;position:relative;box-shadow:inset 0 1px 3px #0009}.af-volume__level{--level:0;border-radius:inherit;background:var(--meter);clip-path:inset(0 calc((1 - var(--level)) * 100%) 0 0 round 999px);pointer-events:none;position:absolute;inset:1px}.af-volume__track:has(.is-hot){border-color:var(--danger);box-shadow:inset 0 1px 3px #0009,0 0 10px #ff4d6da6}.af-volume__input{cursor:pointer;appearance:none;background:0 0;width:calc(100% + 2px);height:20px;margin:-10px 0 0;position:absolute;top:50%;left:-1px;right:-1px}.af-volume__input:focus{outline:none}.af-volume__input::-webkit-slider-runnable-track{background:0 0;height:20px}.af-volume__input::-moz-range-track{background:0 0;height:20px}.af-volume__input::-webkit-slider-thumb{-webkit-appearance:none;box-sizing:border-box;width:var(--thumb);height:var(--thumb);margin-top:calc((20px - var(--thumb)) / 2);box-shadow:0 0 0 1px var(--audio), 0 0 10px #22d3eecc;background:radial-gradient(circle at 35% 35%,#fff 0%,#c8f8ff 45%,#22d3ee 100%);border:2px solid #0b0920;border-radius:50%;transition:transform .1s}.af-volume__input::-moz-range-thumb{box-sizing:border-box;width:var(--thumb);height:var(--thumb);box-shadow:0 0 0 1px var(--audio), 0 0 10px #22d3eecc;background:radial-gradient(circle at 35% 35%,#fff 0%,#c8f8ff 45%,#22d3ee 100%);border:2px solid #0b0920;border-radius:50%;transition:transform .1s}.af-volume:hover .af-volume__input::-webkit-slider-thumb{transform:scale(1.15)}.af-volume:hover .af-volume__input::-moz-range-thumb{transform:scale(1.15)}.af-volume__input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #22d3ee73,0 0 14px #22d3eee6}.af-volume__input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #22d3ee73,0 0 14px #22d3eee6}.af-volume__value{min-width:36px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--audio);text-shadow:0 0 8px #22d3ee8c;font-size:11.5px}.af-project-name{text-align:center;min-width:200px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 8px}.af-project-name:hover,.af-project-name:focus{border-color:var(--border);color:var(--text);background:#07061a80;outline:none}.af-meter{--level:0;background:var(--bg-deep);border:1px solid var(--border);border-radius:4px;position:relative;overflow:hidden}.af-meter--h{flex:1;height:8px}.af-meter__fill{--level:0;background:var(--meter);clip-path:inset(0 calc((1 - var(--level)) * 100%) 0 0);position:absolute;inset:0}.af-palette{border-right:1px solid var(--border);background:linear-gradient(#140f33 0%,#0f0c27 100%);flex-direction:column;flex-shrink:0;width:204px;min-height:0;display:flex}.af-palette__search{border:1px solid var(--border);background:var(--bg-deep);border-radius:10px;margin:10px;padding:7px 10px}.af-palette__search:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 2px #9b5cff33}.af-palette__list{flex:1;padding:0 8px 12px;overflow-y:auto}.af-palette h3{text-transform:uppercase;letter-spacing:.1em;color:var(--cat);text-shadow:0 0 10px color-mix(in srgb, var(--cat) 50%, transparent);align-items:center;gap:8px;margin:14px 6px 4px;font-size:10px;font-weight:700;display:flex}.af-palette h3:after{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--cat) 45%, transparent), transparent);flex:1;height:1px}.af-palette__item{text-align:left;cursor:grab;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;width:100%;padding:5px 8px;transition:background .12s,border-color .12s;display:flex}.af-palette__item:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--cat) 20%, transparent), color-mix(in srgb, var(--cat) 4%, transparent));border-color:color-mix(in srgb, var(--cat) 35%, transparent)}.af-dot{background:var(--cat);width:8px;height:8px;box-shadow:0 0 6px var(--cat);border-radius:50%;flex-shrink:0}.af-canvas{background:radial-gradient(1100px 700px at 15% -10%, #9b5cff29, transparent 60%), radial-gradient(900px 650px at 105% 110%, #22d3ee1a, transparent 60%), radial-gradient(700px 500px at 80% 0%, #ff4fd812, transparent 60%), var(--bg)}.react-flow{--xy-background-color:transparent;--xy-node-border-radius:12px;--xy-edge-stroke:#7c74b8;--xy-edge-stroke-width:2;--xy-edge-stroke-selected:#fff;--xy-controls-button-background-color:var(--panel-2);--xy-controls-button-background-color-hover:var(--panel-3);--xy-controls-button-border-color:var(--border);--xy-controls-button-color:var(--muted);--xy-controls-button-color-hover:var(--text);--xy-minimap-background-color:#130f30e6;--xy-selection-background-color:#9b5cff14;--xy-selection-border:1px dashed #9b5cffb3}.react-flow__controls,.react-flow__minimap{border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 10px 30px #03020e99}.react-flow__node{background:0 0;border:none;padding:0}.react-flow__edge.edge-notes path.react-flow__edge-path{stroke:var(--notes);stroke-width:2px}.react-flow__edge.edge-audio path.react-flow__edge-path{stroke:var(--audio);stroke-width:2.5px}.react-flow__edge.edge-mod path.react-flow__edge-path{stroke:var(--mod);stroke-width:2.2px;stroke-dasharray:6 4}.af-edge-glow{fill:none;stroke:#7c74b8;stroke-width:7px;stroke-opacity:.13;stroke-linecap:round;pointer-events:none}.react-flow__edge.edge-notes .af-edge-glow{stroke:var(--notes)}.react-flow__edge.edge-audio .af-edge-glow{stroke:var(--audio);stroke-opacity:.16}.react-flow__edge.edge-mod .af-edge-glow{stroke:var(--mod)}.react-flow__edge.af-focus .af-edge-glow,.react-flow__edge:hover .af-edge-glow{stroke-opacity:.3;stroke-width:9px}.react-flow__edge.selected .af-edge-glow{stroke:#fff;stroke-opacity:.22}.react-flow__edgeupdater{cursor:grab;fill:#0000;stroke:#0000;transition:fill .12s,stroke .12s}.react-flow__edge .react-flow__edgeupdater:hover{fill:#ffffff1a;stroke:#fff9;stroke-width:1.5px;stroke-dasharray:3 3}.react-flow__edge.edge-notes .react-flow__edgeupdater:hover{fill:#ffb02033;stroke:var(--notes)}.react-flow__edge.edge-audio .react-flow__edgeupdater:hover{fill:#22d3ee33;stroke:var(--audio)}.react-flow__edge.edge-mod .react-flow__edgeupdater:hover{fill:#ff4fd833;stroke:var(--mod)}.react-flow__edge.updating path.react-flow__edge-path{stroke-width:3.2px}.react-flow__edge.updating .af-edge-glow{stroke-opacity:.32;stroke-width:10px}.react-flow__edge.animated path.af-edge-glow{stroke-dasharray:none;animation:none}.react-flow__edge.af-focus path.react-flow__edge-path{stroke-width:3.2px;stroke-dasharray:none}.react-flow__edge.selected path.react-flow__edge-path{stroke:#fff}.af-connection{stroke-width:2.5px;filter:drop-shadow(0 0 4px)}.af-connection--notes{stroke:var(--notes);color:var(--notes)}.af-connection--audio{stroke:var(--audio);color:var(--audio)}.af-connection--mod{stroke:var(--mod);color:var(--mod);stroke-dasharray:2 4}.react-flow__attribution{opacity:.35;background:0 0}.react-flow__attribution a{color:var(--dim)}.af-node{--cat:#8f9bff;background:linear-gradient(180deg, color-mix(in srgb, var(--cat) 9%, var(--panel-2)) 0%, var(--panel-2) 90px);border:1px solid color-mix(in srgb, var(--cat) 30%, var(--border));border-radius:12px;font-size:12px;position:relative;box-shadow:0 12px 32px #03020e99,inset 0 1px #ffffff0d}.af-node:before{content:"";background:linear-gradient(90deg, transparent, var(--cat) 18%, color-mix(in srgb, var(--cat) 60%, white) 50%, var(--cat) 82%, transparent);height:2px;box-shadow:0 0 10px var(--cat);border-radius:2px;position:absolute;top:-1px;left:10px;right:10px}.af-node:hover{border-color:color-mix(in srgb, var(--cat) 50%, var(--border))}.af-node.is-selected{border-color:var(--cat);box-shadow:0 0 0 1px var(--cat), 0 0 22px color-mix(in srgb, var(--cat) 45%, transparent), 0 14px 36px #03020eb3}.af-node.is-disabled>:not(.af-node__header){opacity:.45}.af-node.is-disabled .af-node__title{text-decoration:line-through;-webkit-text-decoration-color:var(--dim);text-decoration-color:var(--dim)}.af-node__header{background:linear-gradient(90deg, color-mix(in srgb, var(--cat) 24%, transparent) 0%, color-mix(in srgb, var(--cat) 6%, transparent) 70%, transparent 100%);border-bottom:1px solid color-mix(in srgb, var(--cat) 16%, transparent);border-radius:11px 11px 0 0;align-items:center;gap:7px;margin-bottom:4px;padding:8px 8px 7px 10px;display:flex}.af-led{background:color-mix(in srgb, var(--cat) 28%, var(--panel-2));width:8px;height:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cat) 45%, transparent);border-radius:50%;flex-shrink:0;transition:background .15s ease-out,box-shadow .15s ease-out}.af-led.is-on{background:color-mix(in srgb, var(--cat) 60%, white);box-shadow:0 0 6px var(--cat), 0 0 14px var(--cat);transition:none}.af-node__title{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;cursor:text;flex:1;font-weight:700;overflow:hidden}.af-node__type{color:color-mix(in srgb, var(--cat) 55%, var(--dim));margin-left:6px;font-size:11px;font-weight:400}.af-node__title-input{background:var(--bg-deep);border:1px solid var(--border);border-radius:4px;flex:1;min-width:0;padding:1px 5px;font-weight:600}.af-node__power,.af-node__close{width:20px;height:20px;color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;padding:0;font-size:12px;display:grid}.af-node__power.is-on{color:var(--cat);text-shadow:0 0 8px var(--cat)}.af-node__power:hover,.af-node__close:hover{background:color-mix(in srgb, var(--cat) 18%, var(--panel-3));color:var(--text)}.af-node__close{opacity:0;font-size:15px}.af-node:hover .af-node__close{opacity:1}.af-node__ports{justify-content:space-between;padding:2px 0 4px;display:flex}.af-node__ports-col{flex-direction:column;gap:2px;display:flex}.af-port{height:18px;color:var(--muted);align-items:center;font-size:11px;display:flex;position:relative}.af-port--in{padding-left:12px}.af-port--out{justify-content:flex-end;padding-right:12px}.react-flow__handle.af-handle{border:2px solid var(--panel-2);background:var(--dim);width:12px;height:12px;transition:transform .1s,box-shadow .1s}.react-flow__handle.af-handle:hover{transform:translate(-50%,-50%)scale(1.3)}.af-port--in .react-flow__handle.af-handle{left:0}.af-port--out .react-flow__handle.af-handle{left:auto;right:0;transform:translate(50%,-50%)}.af-port--out .react-flow__handle.af-handle:hover{transform:translate(50%,-50%)scale(1.3)}.react-flow__handle.af-handle--notes{background:var(--notes);border-radius:3px;box-shadow:0 0 6px #ffb0208c}.react-flow__handle.af-handle--audio{background:var(--audio);box-shadow:0 0 6px #22d3ee8c}.react-flow__handle.af-handle--mod{background:var(--mod);width:9px;height:9px;box-shadow:0 0 5px #ff4fd88c}.react-flow__handle.af-handle--knob{z-index:2;border-width:1.5px;position:absolute;top:6px;left:2px}.react-flow__handle.connectingto.af-handle,.react-flow__handle.valid.af-handle{box-shadow:0 0 0 3px #fff6,0 0 12px #ffffff80}.af-params{padding:2px 10px 10px}.af-params__rows{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.af-row{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.af-row select,.af-text{background:var(--bg-deep);border:1px solid var(--border);border-radius:6px;min-width:0;max-width:62%;padding:2px 4px;font-size:12px}.af-text{font-family:var(--font-mono);flex:1;padding:3px 6px}.af-toggle{border:1px solid var(--border);background:var(--bg-deep);min-width:40px;color:var(--dim);cursor:pointer;border-radius:10px;padding:1px 8px;font-size:11px}.af-toggle.is-on{background:color-mix(in srgb, var(--cat) 30%, var(--bg));border-color:var(--cat);color:var(--text);box-shadow:0 0 10px color-mix(in srgb, var(--cat) 40%, transparent)}.af-params__knobs{grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:6px 2px;display:grid}.af-knob-slot{position:relative}.af-knob{cursor:ns-resize;-webkit-user-select:none;user-select:none;touch-action:none;flex-direction:column;align-items:center;display:flex}.af-knob svg{display:block}.af-knob__track{fill:none;stroke:#2a2360;stroke-width:4px;stroke-linecap:round}.af-knob__value{fill:none;stroke:color-mix(in srgb, var(--cat) 80%, white);stroke-width:3.4px;stroke-linecap:round}.af-knob__glow{fill:none;stroke:var(--cat);stroke-width:7px;stroke-linecap:round;opacity:.28}.af-knob__cap{fill:#261f58;stroke:#3a3184;stroke-width:1px}.af-knob__pointer{stroke:#fff;stroke-width:2.4px;stroke-linecap:round}.af-knob:hover .af-knob__track{stroke:#362d78}.af-knob:hover .af-knob__cap{fill:#2d2566}.af-knob-slot--big{grid-column:1/-1;padding:2px 0}.af-knob-slot--big .af-knob__label{max-width:none;font-size:12px}.af-knob-slot--big .af-knob__glow{stroke-width:6px;opacity:.4}.af-knob__modring{fill:none;stroke:var(--mod);stroke-width:1.4px;opacity:.45}.af-knob__modarc{fill:none;stroke:var(--mod);stroke-width:2.4px;stroke-linecap:round}.af-knob__moddot{fill:#fff;stroke:var(--mod);stroke-width:1.2px}.af-knob.is-modulated .af-knob__label{color:var(--mod)}.af-knob.is-focus svg{filter:drop-shadow(0 0 5px var(--mod))}.af-knob.is-focus .af-knob__modring{opacity:1}.af-port--mod .af-port__label{color:var(--mod)}.af-port--mod.is-focus .af-port__label{text-shadow:0 0 6px var(--mod);font-weight:600}.af-port--mod.is-focus .react-flow__handle.af-handle{box-shadow:0 0 0 3px color-mix(in srgb, var(--mod) 45%, transparent)}.af-knob__label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:64px;margin-top:1px;font-size:10.5px;overflow:hidden}.af-knob.is-active .af-knob__label{color:var(--text);font-family:var(--font-mono);font-size:10px}.af-pattern{border:1px solid color-mix(in srgb, var(--cat) 22%, var(--border));background:var(--bg-deep);border-radius:8px;margin:0 10px 8px;overflow:hidden;box-shadow:inset 0 0 16px #0000008c}.af-pattern:focus-within{border-color:color-mix(in srgb, var(--cat) 60%, var(--border));box-shadow:inset 0 0 16px #0000008c, 0 0 12px color-mix(in srgb, var(--cat) 25%, transparent)}.af-pattern__editor{cursor:text;max-height:160px;overflow:auto}.af-pattern__status{color:var(--dim);border-top:1px solid var(--border);padding:3px 8px;font-size:10.5px}.af-pattern__status.is-error{color:var(--danger)}.cm-mn-note{color:#ffd23f}.cm-mn-number{color:#b9a6ff}.cm-mn-word{color:#5ff0ff}.cm-mn-bracket{color:#8f88c9}.cm-mn-op{color:#ff6be0}.cm-mn-comment{color:#6d679f;font-style:italic}.cm-mn-active{background:#ffb0204d;border-radius:2px;outline:1px solid #ffb020cc;box-shadow:0 0 8px #ffb0208c}.cm-mn-error{-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);background:#f8717133}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground{background:#9b5cff52!important}.af-grid{--steps:16;--step:-1;--label:30px;-webkit-user-select:none;user-select:none;flex-direction:column;gap:1px;margin:0 10px 8px;display:flex;position:relative}.af-grid__row{grid-template-columns:var(--label) repeat(var(--steps), 1fr);gap:1px;height:13px;display:grid}.af-grid__label{font-size:9px;font-family:var(--font-mono);color:var(--dim);line-height:13px}.af-grid__row.is-dark .af-grid__cell:not(.is-on){background:#110d2b}.af-grid__cell{cursor:pointer;background:#1f1948;border-radius:2px}.af-grid__cell.is-beat:not(.is-on){background:#2a2260}.af-grid__cell:hover{outline:1px solid var(--cat)}.af-grid__cell.is-on{background:color-mix(in srgb, var(--cat) 80%, white);box-shadow:0 0 6px color-mix(in srgb, var(--cat) 70%, transparent)}.af-grid__playhead{top:-2px;bottom:-2px;left:calc(var(--label) + (100% - var(--label)) * var(--step) / var(--steps));width:calc((100% - var(--label)) / var(--steps));pointer-events:none;background:#ffffff24;border-radius:2px;display:none;position:absolute;box-shadow:0 0 10px #ffffff2e}.af-grid.is-playing .af-grid__playhead{display:block}.af-euclid{flex-direction:column;align-items:center;gap:4px;padding:0 10px 4px;display:flex}.af-euclid .af-row{width:100%}.af-euclid circle{fill:#1f1948;stroke:#362d78;stroke-width:1px;transition:fill .1s}.af-euclid circle.af-euclid__ring{fill:none;stroke:color-mix(in srgb, var(--cat) 25%, #241d55);stroke-width:1.5px}.af-euclid circle.is-on{fill:color-mix(in srgb, var(--cat) 60%, #1f1948);stroke:color-mix(in srgb, var(--cat) 70%, white)}.af-euclid circle.is-current{stroke:#fff;stroke-width:2px}.af-euclid circle.is-on.is-current{fill:color-mix(in srgb, var(--cat) 70%, white);filter:drop-shadow(0 0 5px var(--cat))}.af-euclid__text{fill:var(--muted);font-size:13px;font-family:var(--font-mono)}.af-sample{border:1px dashed color-mix(in srgb, var(--cat) 30%, var(--border));background:radial-gradient(120% 90% at 50% 120%, color-mix(in srgb, var(--cat) 14%, transparent), transparent 70%), var(--bg-deep);border-radius:8px;margin:0 10px 8px;padding:6px}.af-sample.is-over{border-color:var(--cat);background:color-mix(in srgb, var(--cat) 12%, var(--bg-deep))}.af-sample__wave{width:100%;height:40px;color:color-mix(in srgb, var(--cat) 75%, white);filter:drop-shadow(0 0 3px color-mix(in srgb, var(--cat) 60%, transparent));display:block}.af-sample__empty{height:40px;color:var(--dim);place-items:center;font-size:11px;display:grid}.af-sample__bar{align-items:center;gap:6px;margin-top:4px;display:flex}.af-sample__name{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);flex:1;font-size:11px;overflow:hidden}.af-sample__status{color:var(--dim);margin-top:3px;font-size:10.5px}.af-sample__status.is-error{color:var(--danger)}.af-mic{flex-direction:column;gap:6px;margin:0 10px 8px;display:flex}.af-mic__top{align-items:center;gap:8px;display:flex}.af-mic__device{background:var(--bg-deep);border:1px solid var(--border);border-radius:5px;padding:2px 4px;font-size:12px}.af-output{margin:2px 10px 8px;display:flex}.af-scope{background:linear-gradient(#a096ff0d 1px, transparent 1px) 0 0 / 100% 22.5px, linear-gradient(90deg, #a096ff0d 1px, transparent 1px) 0 0 / 29.5px 100%, radial-gradient(120% 90% at 50% 120%, #22d3ee1f, transparent 70%), var(--bg-deep);border:1px solid color-mix(in srgb, var(--audio) 22%, var(--border));border-radius:8px;width:calc(100% - 20px);height:90px;margin:0 10px 8px;display:block;box-shadow:inset 0 0 18px #0009}.af-comment{resize:none;color:#ddd8ff;background:0 0;border:none;outline:none;width:calc(100% - 20px);margin:0 10px 10px;line-height:1.5;display:block}.af-quick{z-index:50;background:var(--panel);border:1px solid var(--border-hi);border-radius:12px;width:250px;position:fixed;overflow:hidden;box-shadow:0 18px 48px #03020ebf,0 0 24px #9b5cff40}.af-quick input{border:none;border-bottom:1px solid var(--border);background:var(--bg-deep);outline:none;width:100%;padding:9px 11px}.af-quick ul{max-height:290px;margin:0;padding:4px;list-style:none;overflow-y:auto}.af-quick li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;display:flex}.af-quick li small{color:var(--dim);margin-left:auto;font-size:10px}.af-quick li.is-active{background:linear-gradient(90deg,#9b5cff47,#9b5cff0f)}.af-quick li.is-empty{color:var(--dim);cursor:default}.af-help{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050412b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.af-help__panel{background:radial-gradient(800px 300px at 0% 0%, #9b5cff1f, transparent 70%), var(--panel);border:1px solid var(--border-hi);border-radius:16px;max-width:980px;max-height:100%;padding:22px 26px;line-height:1.5;position:relative;overflow:auto;box-shadow:0 24px 64px #03020ecc,0 0 40px #9b5cff33}.af-help__panel h2{background:var(--brand);color:#0000;-webkit-background-clip:text;background-clip:text;width:fit-content;margin:0 0 8px}.af-help__panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 6px;font-size:12px}.af-help__panel p{color:#cfcaf0;max-width:80ch}.af-help__cols{grid-template-columns:1.2fr 1fr;gap:28px;display:grid}.af-help table{border-collapse:collapse;width:100%}.af-help td{vertical-align:top;color:#cfcaf0;padding:3px 8px 3px 0}.af-help code,.af-help kbd{font-family:var(--font-mono);background:var(--bg-deep);border:1px solid var(--border);white-space:nowrap;color:#ffd23f;border-radius:5px;padding:1px 5px;font-size:12px}.af-help kbd{color:var(--text)}.af-help ul{color:#cfcaf0;padding-left:18px}.af-help__close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:22px;position:absolute;top:10px;right:12px}.af-node.is-pending .af-led{background:var(--notes);box-shadow:0 0 6px var(--notes);animation:.6s ease-in-out infinite alternate af-pending}@keyframes af-pending{0%{opacity:.35}to{opacity:1}}.af-pattern__status.is-queued{color:var(--notes)}.af-sample__wavebox{position:relative}.af-sample__wavebox .af-sample__wave{width:100%;display:block}.af-sample__shade{pointer-events:none;background:#07061aa8;position:absolute;top:0;bottom:0}.af-sample__marker{cursor:ew-resize;touch-action:none;width:12px;margin-left:-6px;position:absolute;top:-3px;bottom:-3px}.af-sample__marker:before{content:"";background:var(--cat);width:2px;box-shadow:0 0 4px var(--cat);position:absolute;top:0;bottom:0;left:5px}.af-sample__marker:after{content:"";background:var(--cat);width:7px;height:7px;position:absolute;top:0}.af-sample__marker--start:after{border-radius:0 3px 3px 0;left:6px}.af-sample__marker--end:after{border-radius:3px 0 0 3px;right:6px}.af-sample__marker:hover:before,.af-sample__wavebox.is-dragging .af-sample__marker:before{width:3px}.af-sample__region{font-family:var(--font-mono);color:var(--text)}.af-main{position:relative}.af-main--code .af-canvas{visibility:hidden;pointer-events:none;position:absolute;inset:0}.af-code-side{flex-shrink:0;min-width:0;display:flex}.af-main--code .af-code-side{flex:1}.af-resizer{cursor:col-resize;z-index:5;touch-action:none;flex-shrink:0;width:5px;margin:0 -2px;position:relative}.af-resizer:after{content:"";background:var(--border);width:1px;transition:background .12s;position:absolute;top:0;bottom:0;left:2px}.af-resizer:hover:after,.af-resizer.is-dragging:after{background:var(--audio);width:2px}.af-code{background:var(--bg);border-left:1px solid var(--border);flex-direction:column;flex:1;min-width:0;display:flex}.af-code--code{border-left:none}.af-code__header{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:7px 10px;display:flex}.af-code__title{margin-right:6px;font-weight:600}.af-code__brace{font-family:var(--font-mono);color:var(--audio);text-shadow:0 0 8px #22d3ee99;margin-right:4px}.af-code__spacer{flex:1}.af-btn--run{color:#d9fff0;background:linear-gradient(#1d6b52 0%,#11483a 100%);border-color:#2fd19a;font-weight:700}.af-btn--run:hover{border-color:var(--ok);background:linear-gradient(#23805f 0%,#155743 100%);box-shadow:0 0 14px #3dffa059}.af-btn--small{padding:2px 8px;font-size:11.5px}.af-code__banner{color:#ffe2a8;background:#ffb0201a;border-bottom:1px solid #ffb0204d;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex}.af-code__banner .af-btn{flex-shrink:0;margin-left:auto}.af-code__editor{flex:1;min-height:0;overflow:hidden}.af-code__logs{max-height:120px;font-family:var(--font-mono);color:var(--muted);background:var(--panel);border-top:1px solid var(--border);white-space:pre-wrap;padding:4px 10px;font-size:11.5px;overflow:auto}.af-code__status{color:var(--dim);background:var(--panel);border-top:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding:4px 10px;font-size:11.5px;overflow:hidden}.af-code__status.is-error{color:var(--danger);white-space:normal}.af-code__status.is-edited{color:var(--notes)}.af-code__status.is-ok{color:var(--ok)}.af-seg{border:1px solid var(--border);border-radius:8px;gap:0;overflow:hidden}.af-seg__btn{background:linear-gradient(180deg, #2a2260 0%, var(--panel-3) 100%);border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--muted);white-space:nowrap;padding:5px 10px}.af-seg__btn:last-child{border-right:none}.af-seg__btn:hover{color:var(--text)}.af-seg__btn.is-on{color:#c8f8ff;text-shadow:0 0 8px #22d3eeb3;box-shadow:inset 0 -2px 0 var(--audio);background:linear-gradient(#22d3ee47,#22d3ee1f)}.af-seg__icon{font-family:var(--font-mono)}.af-node__code{font-family:var(--font-mono);color:#7ff3ff;text-overflow:ellipsis;white-space:nowrap;background:#22d3ee1a;border:1px solid #22d3ee47;border-radius:4px;flex-shrink:1;max-width:45%;padding:0 4px;font-size:10.5px;overflow:hidden}.af-mini-input{background:var(--bg-deep);border:1px solid var(--border);cursor:text;border-radius:5px;flex:1;min-width:0;max-width:62%}.af-mini-input:focus-within{border-color:#ffb020b3;box-shadow:0 0 8px #ffb02040}.af-doc{color:var(--text);flex-direction:column;gap:5px;font-size:12px;display:flex}.af-doc__sig{font-family:var(--font-mono);color:#7ff3ff}.af-doc__desc{color:var(--muted)}.af-doc__ports{color:var(--dim);font-size:11px}.af-doc__val{font-family:var(--font-mono);color:#ffe2a8;font-size:11px}.af-doc__note{color:var(--mod);font-size:11px}.af-doc__params{border-collapse:collapse;max-height:220px;display:block;overflow:auto}.af-doc__params td{vertical-align:top;padding:1px 8px 1px 0}.af-doc__key{font-family:var(--font-mono);color:#ff9cec;white-space:nowrap}.af-doc__params .af-doc__val{color:var(--muted)}.af-help__small{color:var(--muted);margin:0 0 6px;font-size:12px}.af-viz{border:1px solid color-mix(in srgb, var(--cat) 24%, var(--border));background:linear-gradient(#a096ff0b 1px, transparent 1px) 0 0 / 100% 16px, linear-gradient(90deg, #a096ff0b 1px, transparent 1px) 0 0 / 16px 100%, radial-gradient(130% 100% at 50% 130%, color-mix(in srgb, var(--cat) 18%, transparent), transparent 70%), var(--bg-deep);border-radius:8px;margin:0 10px 8px;line-height:0;overflow:hidden;box-shadow:inset 0 0 18px #0009}.af-viz svg,.af-viz canvas{width:100%;display:block}.af-viz svg{height:auto}.af-viz__stop--top{stop-color:var(--cat);stop-opacity:.42}.af-viz__stop--bottom{stop-color:var(--cat);stop-opacity:0}.af-viz__grid{fill:none;stroke:#aaa0ff1f;stroke-width:1px}.af-viz__ref{fill:none;stroke:#c8beff38;stroke-width:1px;stroke-dasharray:3 3}.af-viz__panel{fill:#ffffff04;stroke:#aaa0ff1a}.af-viz__line{fill:none;stroke:color-mix(in srgb, var(--cat) 65%, white);stroke-width:1.7px;stroke-linejoin:round;stroke-linecap:round}.af-viz__line--alt{stroke:color-mix(in srgb, var(--audio) 70%, white);stroke-width:1.3px;opacity:.75}.af-viz__line--voice{stroke-width:1.2px;opacity:.55}.af-viz__glow{fill:none;stroke:var(--cat);stroke-width:6px;stroke-linejoin:round;stroke-linecap:round;opacity:.22}.af-viz__glow--bars{stroke-linecap:butt;opacity:.25}.af-viz__dim{fill:none;stroke:#c8beff47;stroke-width:1.2px;stroke-dasharray:2 2}.af-viz__area{stroke:none}.af-viz__mark{stroke:var(--cat);stroke-width:1px;stroke-dasharray:2 3;opacity:.7}.af-viz__band{fill:var(--cat);opacity:.1}.af-viz__head{stroke:#ffffff59;stroke-width:1px}.af-viz__dot{fill:#fff;stroke:var(--cat);stroke-width:2px;filter:drop-shadow(0 0 4px var(--cat))}.af-viz__dot--alt{stroke:var(--audio);filter:drop-shadow(0 0 4px var(--audio))}.af-viz__halo{fill:var(--cat)}.af-viz__dry{stroke:#ffffffbf;stroke-width:2.4px;stroke-linecap:round}.af-viz__bars{fill:none;stroke:color-mix(in srgb, var(--cat) 70%, white);stroke-width:3px;stroke-linecap:round}.af-viz__bars--thin{stroke:var(--cat);stroke-width:1.2px;opacity:.85}.af-viz__bars--fill{stroke:var(--cat);stroke-linecap:butt;opacity:.85}.af-viz__well{fill:#120e30;stroke:#aaa0ff1f}.af-viz__fader{fill:#fff;opacity:.85}.af-viz__track{stroke:#aaa0ff40;stroke-width:2px;stroke-linecap:round}.af-viz__label{fill:var(--muted);font:600 9px var(--font-mono);letter-spacing:.06em;paint-order:stroke;stroke:var(--bg-deep);stroke-width:3px;stroke-linejoin:round}.af-viz__label--big{fill:color-mix(in srgb, var(--cat) 55%, white);font-size:11px}.af-viz__label--tiny{fill:var(--dim);font-size:7.5px}.af-viz__label--chip{fill:var(--text);font-size:10px}.af-viz--wet .af-viz__line{opacity:var(--wet,1)}.af-viz--wet .af-viz__glow{opacity:calc(var(--wet,1) * .22)}.af-meter-stop--low{stop-color:#3dffa0}.af-meter-stop--mid{stop-color:#b6ff3b}.af-meter-stop--high{stop-color:#ffb020}.af-meter-stop--clip{stop-color:#ff4d6d}.af-synth .af-viz{margin-bottom:5px}.af-keys{border:1px solid color-mix(in srgb, var(--cat) 22%, var(--border));background:#0d0a24;border-radius:5px;margin:0 10px 8px;position:relative;overflow:hidden}.af-keys__key{transition:background .18s ease-out,box-shadow .18s ease-out;position:absolute;top:0;bottom:0}.af-keys__key.is-white{background:linear-gradient(#2a2364 0%,#3a3184 100%);box-shadow:inset -1px 0 #0d0a24}.af-keys__key.is-black{z-index:1;background:linear-gradient(#08061a 0%,#16113a 100%);border-radius:0 0 2px 2px;bottom:42%}.af-keys__key.is-scale:after,.af-keys__key.is-root:after{content:"";background:color-mix(in srgb, var(--cat) 70%, white);opacity:.7;border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;bottom:3px;left:50%}.af-keys__key.is-root:after{opacity:1;width:5px;height:5px;box-shadow:0 0 5px var(--cat);margin-left:-2.5px}.af-keys__key.is-chord.is-white{background:linear-gradient(180deg, color-mix(in srgb, var(--cat) 40%, #2a2364), color-mix(in srgb, var(--cat) 55%, #3a3184))}.af-keys__key.is-chord.is-black{background:color-mix(in srgb, var(--cat) 45%, #08061a)}.af-keys__key.is-on,.af-keys__key.is-on.is-white,.af-keys__key.is-on.is-black{background:color-mix(in srgb, var(--cat) 70%, white);box-shadow:0 0 10px var(--cat), inset 0 0 6px #fff9;z-index:2;transition:none}.af-pads{grid-template-columns:repeat(6,1fr);gap:4px;margin:0 10px 8px;display:grid}.af-pads__pad{border:1px solid color-mix(in srgb, var(--cat) 26%, var(--border));background:linear-gradient(#2a2260 0%,#1b1546 100%);border-radius:6px;place-items:end center;height:28px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12}.af-pads__glow{background:radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--cat) 55%, white) 0%, var(--cat) 45%, transparent 85%);opacity:0;position:absolute;inset:0}.af-pads__label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding-bottom:3px;font-size:9px;font-weight:600;position:relative}.af-notes{flex-direction:column;gap:6px;margin:0 10px 8px;display:flex}.af-notes .af-keys{margin:0}.af-chips{gap:4px;display:flex;overflow:hidden}.af-chip{border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);white-space:nowrap;background:#07061a99;border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:10.5px}.af-chip--fit{text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.af-chip--main{color:var(--text);border-color:color-mix(in srgb, var(--cat) 50%, var(--border));background:color-mix(in srgb, var(--cat) 16%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--cat) 60%, transparent)}@media (prefers-reduced-motion:reduce){.af-keys__key,.af-led{transition:none}}
