.vue-flow__controls-button svg{max-height:12px;max-width:12px}:root{--color-primary-50:#faf5ff;--color-primary-100:#f3e8ff;--color-primary-200:#e9d5ff;--color-primary-300:#d8b4fe;--color-primary-400:#c084fc;--color-primary-500:#a855f7;--color-primary-600:#9333ea;--color-primary-700:#7c3aed;--color-primary-800:#6b21a8;--color-primary-900:#581c87;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-text-primary:var(--color-neutral-900);--color-text-secondary:var(--color-neutral-500);--color-text-muted:var(--color-neutral-400);--color-text-inverted:#fff;--color-bg-primary:#fff;--color-bg-secondary:var(--color-neutral-50);--color-bg-tertiary:var(--color-neutral-100);--color-bg-accent:var(--color-primary-100);--color-border-light:var(--color-neutral-200);--color-border-default:var(--color-neutral-300);--color-accent:var(--color-primary-700);--color-accent-hover:var(--color-primary-800);--color-accent-light:var(--color-primary-100);--font-family-base:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-family-display:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-size-3xl:2.25rem;--font-size-4xl:3rem;--font-size-5xl:3.75rem;--font-size-6xl:4.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.15;--line-height-snug:1.35;--line-height-normal:1.5;--line-height-relaxed:1.7;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.025em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--section-padding-y:var(--space-20);--section-padding-x:var(--space-8);--section-padding-y-mobile:var(--space-12);--section-padding-x-mobile:var(--space-4);--container-xs:480px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1200px;--container-2xl:1400px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(15,23,42,.04);--shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 6px -1px rgba(15,23,42,.07),0 2px 4px -2px rgba(15,23,42,.05);--shadow-lg:0 10px 15px -3px rgba(15,23,42,.08),0 4px 6px -4px rgba(15,23,42,.04);--shadow-xl:0 20px 25px -5px rgba(15,23,42,.1),0 8px 10px -6px rgba(15,23,42,.05);--shadow-2xl:0 25px 50px -12px rgba(15,23,42,.2);--shadow-accent:0 4px 14px rgba(124,58,237,.3);--shadow-accent-hover:0 6px 20px rgba(124,58,237,.4);--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-spring:.3s cubic-bezier(.34,1.56,.64,1)}*{box-sizing:border-box}body{background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.section{padding:var(--section-padding-y) var(--section-padding-x)}.section--alt{background:linear-gradient(180deg,var(--color-bg-secondary) 0,var(--color-bg-primary) 100%)}.section__container{margin:0 auto;max-width:var(--container-xl)}.section__container--narrow{max-width:var(--container-md)}.section__container--wide{max-width:var(--container-2xl)}.headline{color:var(--color-text-primary);font-family:var(--font-family-display);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);margin:0}.headline--hero{font-size:var(--font-size-5xl)}.headline--section{font-size:var(--font-size-4xl);margin-bottom:var(--space-16);text-align:center}.headline--subsection{font-size:var(--font-size-2xl)}.headline--card{font-size:var(--font-size-lg)}.description{color:var(--color-text-secondary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);margin:0}.description--centered{text-align:center}.description--compact{font-size:var(--font-size-base)}.description--small{font-size:var(--font-size-sm)}.card{background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.icon-wrapper{align-items:center;background:var(--color-accent-light);border-radius:var(--radius-md);color:var(--color-accent);display:flex;height:40px;justify-content:center;width:40px}.icon-wrapper--lg{height:48px;width:48px}.icon-wrapper svg{height:20px;width:20px}.btn{align-items:center;border:none;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);gap:var(--space-2);justify-content:center;padding:var(--space-4) var(--space-8);transition:transform var(--transition-base),box-shadow var(--transition-base)}.btn--primary{background:linear-gradient(135deg,var(--color-primary-500) 0,var(--color-primary-700) 100%);box-shadow:var(--shadow-accent);color:var(--color-text-inverted)}.btn--primary:hover{box-shadow:var(--shadow-accent-hover);transform:translateY(-2px)}.btn--primary:active{transform:translateY(0)}.link{align-items:center;color:var(--color-accent);display:inline-flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);gap:var(--space-2);text-decoration:none;transition:color var(--transition-fast),gap var(--transition-fast)}.link:hover{color:var(--color-accent-hover);gap:var(--space-3)}.link svg{height:18px;width:18px}.vue-flow__panel{display:flex;flex-direction:row}.vue-flow__controls-button{height:28px;width:28px}.vue-flow__controls-button svg{max-height:100%!important;max-width:100%!important;width:100%}.vue-flow__controls{box-shadow:none!important}@media(max-width:900px){:root{--font-size-5xl:3rem;--font-size-4xl:2.25rem;--font-size-3xl:1.875rem;--font-size-2xl:1.5rem}.headline--section{margin-bottom:var(--space-10)}.hide-tablet-down{display:none}}@media(max-width:600px){:root{--font-size-5xl:2.5rem;--font-size-4xl:2rem;--font-size-3xl:1.5rem;--font-size-2xl:1.25rem;--section-padding-y:var(--space-12);--section-padding-x:var(--space-4)}.hide-mobile{display:none}}:root{--handle-purple-main:#8b5cf6;--handle-purple-dark:#7c3aed;--handle-purple-light:#a78bfa;--handle-purple-bg:#f5f3ff;--handle-purple-glow:rgba(139,92,246,.3);--handle-green:#10b981;--handle-green-dark:#059669;--handle-green-glow:rgba(16,185,129,.3);--handle-red:#ef4444;--handle-red-dark:#dc2626;--handle-red-glow:rgba(239,68,68,.3)}.vue-flow .vue-flow__handle{background-color:#fff!important;border-radius:50%!important;cursor:crosshair!important;transition:all .2s ease!important;z-index:10!important}.vue-flow .vue-flow__handle,.vue-flow .vue-flow__handle:hover{border:2px solid var(--handle-purple-main)!important;height:12px!important;width:12px!important}.vue-flow .vue-flow__handle:hover{background-color:var(--handle-purple-bg)!important;border-color:var(--handle-purple-dark)!important;box-shadow:0 0 0 3px var(--handle-purple-glow)!important}.vue-flow .vue-flow__handle.valid{animation:pulse-handle 1.5s ease-in-out infinite!important;background-color:var(--handle-purple-light)!important;border-color:var(--handle-purple-dark)!important;border-width:2px!important;box-shadow:0 0 0 3px var(--handle-purple-glow),0 4px 8px #0003!important;height:12px!important;width:12px!important}.vue-flow__handle-top{top:-8px!important}.vue-flow__handle-bottom{bottom:-8px!important}.vue-flow__handle-left{left:-8px!important}.vue-flow__handle-right{right:-8px!important}.vue-flow{direction:ltr;height:100%;overflow:hidden;position:relative;width:100%;z-index:0}.vue-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{pointer-events:none;transform-origin:0 0;z-index:2}.vue-flow__viewport{overflow:clip;z-index:4}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{overflow:visible;pointer-events:none}.vue-flow__connection-path,.vue-flow__edge-path{fill:none;stroke:#b1b1b7;stroke-width:1}.vue-flow__edge{cursor:pointer;pointer-events:visibleStroke}.vue-flow__edge.animated path{animation:dashdraw .5s linear infinite;stroke-dasharray:5}.vue-flow__edge.animated path.vue-flow__edge-interaction{animation:none;stroke-dasharray:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{animation:dashdraw .5s linear infinite;stroke-dasharray:5}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.vue-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{min-height:5px;min-width:5px;pointer-events:none;position:absolute}.vue-flow__handle.connectable{cursor:crosshair;pointer-events:all}.vue-flow__handle-bottom{bottom:0;left:50%;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.vue-flow__handle-right{right:0;top:50%;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{margin:15px;position:absolute;z-index:5}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg:#fff;--vf-node-text:#222;--vf-connection-path:#b1b1b7;--vf-handle:#555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{background-color:var(--vf-node-bg);border-color:var(--vf-node-color);border-radius:3px;border-style:solid;border-width:1px;color:var(--vf-node-text);font-size:12px;padding:10px;text-align:center;width:150px}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid #555;outline:none}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color:var(--vf-node-color,#0041d0);--vf-handle:var(--vf-node-color,#0041d0);--vf-box-shadow:var(--vf-node-color,#0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color,#0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{border:1px solid var(--vf-node-color,#0041d0);outline:none}.vue-flow__node-default{--vf-handle:var(--vf-node-color,#1a192b);--vf-box-shadow:var(--vf-node-color,#1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color,#1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{border:1px solid var(--vf-node-color,#1a192b);outline:none}.vue-flow__node-output{--vf-handle:var(--vf-node-color,#ff0072);--vf-box-shadow:var(--vf-node-color,#ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color,#ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid var(--vf-node-color,#ff0072);outline:none}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{background:var(--vf-handle);border:1px solid #fff;border-radius:100%;height:6px;width:6px}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.vue-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}
