@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap";@import"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap";@import"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Space+Grotesk:wght@300..700&display=swap";.react-flow{direction:ltr;--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: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--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: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--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 rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.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: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--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: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--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 rgba(0, 0, 0, .08);--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{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.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{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.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;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.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:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;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%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;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{position:absolute;z-index:5;margin:15px}.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{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;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))}.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{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.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-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.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))}:root{--color-primary: #6C5FFE;--color-secondary: #10C5E3;--color-primary-hover: #5260ffff;--color-success: #28a745;--color-success-light: #22c55e;--color-success-dark: #16a34a;--color-danger: #dc3545;--color-danger-light: #ef4444;--color-danger-dark: #dc2626;--color-warning: #ff9e28ff;--color-warning-background: #ffb20f1a;--color-info: #17a2b8;--color-solid: #ffffff;--transparent: #00000000;--color-background: #ffffff;--color-surface: #f8f9fa;--color-text: #212529;--color-text-secondary: #6c757d;--color-border: #808080ff;--color-border-light: #b3b3b3ff;--background-soft-100: #f8f8f8;--background-soft-150: #efefefff;--background-soft-200: #c8ccd3ff;--background-section-color-1: #6c5ffe66;--background-section-color-2: #10c5e366;--background-section: linear-gradient(90deg, var(--background-section-color-1) 0%, var(--background-section-color-2) 100%);--background-section-color-c1: #6c5ffee6;--background-section-color-c2: #10c5e3e6;--background-section-contrast: linear-gradient(90deg, var(--background-section-color-c1) 0%, var(--background-section-color-c2) 100%);--background-navbar: #f5f5f5cc;--background-solid: #ffffff;--background-footer: #262626ff;--canvas-button-gradient-c1: #6c5ffee6;--canvas-button-gradient-c2: #10c5e3e6;--canvas-button-gradient-c3: #b14cfee6;--canvas-button-gradient-c4: #374afee6;--canvas-button-gradient: linear-gradient(45deg, var(--canvas-button-gradient-c1), var(--canvas-button-gradient-c3), var(--canvas-button-gradient-c2), var(--canvas-button-gradient-c4));--canvas-button: #deeaffff;--canvas-button-run: #fbdfffff;--font-size-base: 1.25rem;--font-size-h1: 5rem;--font-size-h2: 4rem;--font-size-h3: 3rem;--font-size-h4: 2rem;--font-size-h5: 1.5rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-size-4xl: 2.3rem;--font-size-5xl: 3rem;--font-size-6xl: 4rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-color: #272c3f;--font-color-title: #2c3d51ff;--font-color-soft: #3e4f63ed;--font-color-contrast: #e6e6e6;--font-color-contrast-100: #b3b3b3;--font-gradient: linear-gradient(90deg, var(--color-primary) 50%, var(--color-secondary) 160%);--font-gradient-hover: linear-gradient(120deg, var(--color-primary) 30%, var(--color-secondary) 130%);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-base: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--spacing-5xl: 10rem;--container-padding: 1rem;--section-padding: 8rem;--navbar-height: 4.5rem;--footer-height: 20rem;--border-width: 1.5px;--border-width-s: 1px;--border-radius-button: 5rem;--border-radius-sm: .25rem;--border-radius-base: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--border-radius-full: 2rem;--shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--shadow-md: 0 .2rem 1rem rgba(0, 0, 0, .15);--shadow-lg: 1rem 3rem rgba(0, 0, 0, .175);--shadow-focus: 0 0 0 .2rem rgba(0, 123, 255, .25);--window-titlebar-height: 38px;--color-window-titlebar: #e8e8e8;--shadow-window: 0 22px 40px 4px rgba(0, 0, 0, .2);--color-traffic-red: #ff5f57;--color-traffic-red-border: #e0443d;--color-traffic-yellow: #ffbd2e;--color-traffic-yellow-border: #dea123;--color-traffic-green: #27ca42;--color-traffic-green-border: #1aab29;--color-canvas-background: #fafafa;--color-canvas-button: #4db380;--color-canvas-button-hover: #469f71;--color-canvas-button-outline: #0077b6;--color-canvas-button-stop: #f08080;--color-canvas-button-stop-hover: #dc143c;--color-canvas-button-stop-outline: #b30000;--color-code-background: #fafafa;--color-code-text: #1a3366;--color-code-selection: rgba(128, 102, 204, .3);--font-family-mono: "Consolas", "Monaco", "Courier New", monospace;--color-loading-background: #f3f3f3;--color-loading-spinner: #4cafcc;--color-node-background: #f0f0f0;--color-node-border: #d3d3d3;--color-node-running: #4db380;--color-node-running-glow: rgba(77, 179, 128, .6);--color-node-running-glow-secondary: rgba(77, 179, 128, .4);--color-node-running-glow-bright: rgba(77, 179, 128, .8);--color-node-handle: #4682b4;--color-node-handle-hover: #1e90ff;--color-node-handle-connecting: #ff6b6b;--color-edge: #b1b1b7;--transition-fast: .15s ease;--transition-base: .3s ease;--transition-slow: .5s ease;--z-index-dropdown: 100;--z-index-sticky: 200;--z-index-fixed: 300;--z-index-navbar: 400;--z-index-modal-backdrop: 500;--z-index-modal: 600;--z-index-popover: 700;--z-index-tooltip: 800}[data-theme=dark]{--color-primary: #0d6efd;--color-primary-hover: #0a58ca;--color-secondary: #6c757d;--color-success: #198754;--color-danger: #dc3545;--color-warning: #ffc107;--color-info: #0dcaf0;--color-background: #121212;--color-surface: #1e1e1e;--color-text: #e0e0e0;--color-text-secondary: #a0a0a0;--color-border: #333333;--color-border-light: #333333;--background-navbar: #1a1a1aff;--background-soft-100: #1a1a1aff;--background-soft-150: #282828ff;--background-soft-200: #333333ff;--font-color: #e0e6ecff;--font-color-title: #ccccccff;--font-color-contrast: #333333ff;--font-color-contrast-100: #4d4d4dff;--font-gradient: linear-gradient(90deg, var(--color-primary) 50%, var(--color-secondary) 160%);--shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .3);--shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .4);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .5);--shadow-focus: 0 0 0 .2rem rgba(13, 110, 253, .25);--window-titlebar-height: 38px;--color-window-titlebar: #1a1a1aff;--shadow-window: 0 22px 40px 4px rgba(0, 0, 0, .2);--color-traffic-red: #ff5f57;--color-traffic-red-border: #cc4037;--color-traffic-yellow: #ffbd2e;--color-traffic-yellow-border: #cc9123;--color-traffic-green: #27ca42;--color-traffic-green-border: #1a9930;--color-canvas-background: #333333;--color-canvas-button: #4db380;--color-canvas-button-hover: #469f71;--color-canvas-button-outline: #0077b6;--color-canvas-button-stop: #f08080;--color-canvas-button-stop-hover: #dc143c;--color-canvas-button-stop-outline: #b30000;--color-code-background: #1e1e1e;--color-code-text: #d4d4d4;--color-code-selection: rgba(128, 102, 204, .3);--font-family-mono: "Consolas", "Monaco", "Courier New", monospace;--color-loading-background: #2d2d2d;--color-loading-spinner: #5cc5db;--color-node-background: #2a2a2a;--color-node-border: #2d2d2dff;--color-node-running: #4db380;--color-node-running-glow: rgba(77, 179, 128, .6);--color-node-running-glow-secondary: rgba(77, 179, 128, .4);--color-node-running-glow-bright: rgba(77, 179, 128, .8);--color-node-handle: #4682b4;--color-node-handle-hover: #74b3ff;--color-node-handle-connecting: #ff8a8a;--color-edge: #999999ff}.app{min-height:100vh;display:flex;flex-direction:column}main{flex:1}section{padding:var(--section-padding) 0}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-header h2{margin-bottom:var(--spacing-base)}.section-header p{max-width:650px;margin:0 auto}@media (max-width: 768px){section{padding:var(--spacing-2xl) 0}.section-header{margin-bottom:var(--spacing-xl)}}@media (max-width: 480px){section{padding:calc(var(--spacing-2xl) * .8) 0}}.container{width:100%;max-width:1600px;margin:0 auto;padding:0 var(--container-padding)}@media (max-width: 768px){.container{padding:0 var(--spacing-xl);max-width:1024px}}@media (max-width: 480px){.container{padding:0 var(--spacing-lg)}}.grid{display:grid;gap:var(--spacing-lg)}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}*{margin:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:Nunito Sans,Manrope,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:var(--font-weight-normal);line-height:1.7rem;color:var(--color-text);background-color:var(--color-background);transition:background-color var(--transition-base),color var(--transition-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h2,h3,h4,h5,h6{margin-bottom:var(--spacing-sm);font-family:Space Grotesk,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1{font-family:Space Grotesk,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;letter-spacing:-.1rem;color:var(--font-color-title);font-size:var(--font-size-h1);line-height:6.8rem;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-base)}@media (max-width: 768px){h1{line-height:5rem}}@media (max-width: 480px){h1{line-height:4.5rem}}h2{font-weight:var(--font-weight-normal);letter-spacing:-.1rem;font-size:var(--font-size-h2);line-height:6.8rem;margin-bottom:var(--spacing-base)}@media (max-width: 768px){h2{line-height:5rem}}@media (max-width: 480px){h2{line-height:4.5rem}}h3{font-size:var(--font-size-h3);line-height:3.8rem;font-weight:var(--font-weight-normal);font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-h4);line-height:2.55rem;font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-h5);line-height:1.9rem;font-size:var(--font-size-xl)}p{font-size:var(--font-size-base);line-height:1.7rem}@media (max-width: 768px){p{line-height:4.5rem}}@media (max-width: 480px){p{line-height:3rem}}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-hover)}.font-gradient{background:var(--font-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}img{max-width:100%;height:auto;display:block}ul{list-style:none}.form-input{padding:var(--spacing-md) var(--spacing-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-base);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-input::placeholder{color:var(--color-text-secondary)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}@media (max-width: 768px){html{font-size:14px}h1{font-size:calc(var(--font-size-h1) * .7)}h2{font-size:calc(var(--font-size-h2) * .7)}h3{font-size:calc(var(--font-size-h3) * .7)}h4{font-size:calc(var(--font-size-h4) * .7)}h5{font-size:calc(var(--font-size-h5) * .7)}p{font-size:calc(var(--font-size-base))}}@media (max-width: 480px){h1{font-size:calc(var(--font-size-h1) * .8)}}.button{display:flex;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:center;text-decoration:none;white-space:nowrap;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;height:2.5rem;border-radius:var(--border-radius-button);transition:all var(--transition-base);gap:5px}.button:active{transform:translateY(0)}.button:focus{outline:none;box-shadow:var(--shadow-focus)}.button:disabled{opacity:.65;cursor:not-allowed;transform:none}.button-primary{color:#fff;background:var(--font-gradient)}.button-primary:hover{background:var(--font-gradient-hover)}.button-secondary{color:#fff;background-color:var(--color-secondary);border-color:var(--color-secondary)}.button-secondary:hover{filter:brightness(.9)}.button-outline{color:var(--color-primary);background-color:transparent;border-color:var(--color-primary);border:var(--border-width) solid var(--color-primary)}.button-outline:hover{color:#fff;background-color:var(--color-primary)}.button-outline-light{outline:var(--border-width) solid var(--color-solid);color:#fff;background-color:transparent;border-color:#fff}.button-outline-light:hover{color:var(--color-primary);background-color:#fff}.button-small{padding:var(--spacing-sm) var(--spacing-base);font-size:var(--font-size-sm)}.button-medium{padding:var(--spacing-sm) var(--spacing-lg)}.button-large{padding:var(--spacing-base) var(--spacing-xl);font-size:var(--font-size-lg)}@media (max-width: 768px){.button{padding:calc(var(--spacing-md) * .875) calc(var(--spacing-lg) * .875);font-size:var(--font-size-sm)}.button-small{padding:calc(var(--spacing-sm) * .75) calc(var(--spacing-base) * .75);font-size:var(--font-size-xs)}.button-large{padding:calc(var(--spacing-base) * .875) calc(var(--spacing-xl) * .875);font-size:var(--font-size-base)}}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal);padding:var(--spacing-base);animation:fadeIn var(--transition-fast)}.signup-modal-simple{position:relative;background-color:var(--color-background);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-3xl) var(--spacing-4xl);max-width:800px;width:100%;animation:scaleIn var(--transition-base) ease-out}.signup-modal-simple .form-row{flex-direction:row}.signup-modal-simple .form-input{width:300px}.signup-modal-simple h3{font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-sm);text-align:center}.signup-modal-simple p{font-size:var(--font-size-xl);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-2xl)}.signup-modal-simple .modal-waitlist-perks{margin:0 0 var(--spacing-2xl) 0}.signup-modal-simple .modal-waitlist-perks .modal-perks-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-base) var(--spacing-lg);max-width:500px;margin:0 auto}.signup-modal-simple .modal-waitlist-perks .modal-perk-item{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text);font-size:var(--font-size-base);justify-content:center}.signup-modal-simple .modal-waitlist-perks .modal-perk-item .modal-perk-icon{flex-shrink:0;color:var(--color-success);background:var(--color-success-bg);border-radius:50%;padding:3px;width:24px;height:24px}.signup-modal-simple .modal-waitlist-perks .modal-perk-item span{font-weight:var(--font-weight-medium);text-align:left}@media (max-width: 1024px){.signup-modal-simple{max-width:700px;padding:var(--spacing-3xl)}.signup-modal-simple .form-row{flex-direction:column}.signup-modal-simple p{margin-bottom:var(--spacing-xl)}}@media (max-width: 768px){.signup-modal-simple{max-width:500px;padding:var(--spacing-2xl)}.signup-modal-simple .modal-waitlist-perks .modal-perks-list{grid-template-columns:1fr;gap:var(--spacing-sm);max-width:280px}.signup-modal-simple .modal-waitlist-perks .modal-perk-item{justify-content:flex-start;max-width:260px;margin:0 auto}}@media (max-width: 480px){.signup-modal-simple{padding:var(--spacing-xl);margin:var(--spacing-base)}.signup-modal-simple .modal-waitlist-perks .modal-perks-list{grid-template-columns:1fr;gap:var(--spacing-sm);max-width:260px}.signup-modal-simple .modal-waitlist-perks .modal-perk-item{justify-content:flex-start;max-width:240px;margin:0 auto;font-size:var(--font-size-sm)}}.modal-close{position:absolute;top:var(--spacing-base);right:var(--spacing-base);background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--border-radius-full);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:32px;height:32px}.modal-close:hover{background-color:var(--color-surface);color:var(--color-text)}.modal-close:focus{outline:none;box-shadow:var(--shadow-focus)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.signup-form-simple .form-row{display:flex;width:100%;height:50px;margin:0 auto;flex-direction:row;gap:var(--spacing-sm);align-items:start}@media (max-width: 768px){.signup-form-simple .form-row{height:100%;flex-direction:column}}@media (max-width: 480px){.signup-form-simple .form-row{flex-direction:column;gap:var(--spacing-base)}}.signup-form-simple .form-input{width:100%;height:100%;flex:1;padding:var(--spacing-md) var(--spacing-base);font-size:var(--font-size-base);background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-full);transition:all var(--transition-fast);margin-bottom:20px}.signup-form-simple .form-input:disabled{opacity:.6;cursor:not-allowed}.signup-form-simple .form-input.error{border-color:var(--color-danger);animation:shake .3s ease}.signup-form-simple .form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.signup-form-simple .form-input::placeholder{color:var(--color-text-secondary)}@media (max-width: 480px){.signup-form-simple .form-input{width:100%}}.signup-form-simple .button{margin:0 auto;height:100%;justify-content:center;min-width:150px}@media (max-width: 768px){.signup-form-simple .button{height:50px;width:70%}}@media (max-width: 480px){.signup-form-simple .button{height:50px;width:100%}}.signup-form-simple .form-error{display:block;margin-top:calc(var(--spacing-sm) * -1);color:var(--color-danger);text-align:center;font-size:var(--font-size-sm)}.signup-success{text-align:center;padding:var(--spacing-lg) 0;animation:fadeIn .5s ease}.signup-success .success-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);background-color:var(--color-success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;animation:scaleIn var(--transition-base) ease-out}.signup-success h3{color:var(--color-text);margin-bottom:var(--spacing-sm);font-size:var(--font-size-2xl)}.signup-success p{color:var(--color-text-secondary);margin-bottom:0;font-size:var(--font-size-lg)}.signup-success .position-text{margin-top:var(--spacing-sm);font-size:var(--font-size-base);color:var(--color-primary);font-weight:var(--font-weight-medium)}.signup-form-simple .loading-spinner-sm{width:20px;height:20px;border-width:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width: 480px){.modal-backdrop{padding:var(--spacing-base);align-items:center;justify-content:center}.signup-modal-simple{border-radius:var(--border-radius-lg);margin:0;max-width:calc(100% - var(--spacing-lg));width:100%;animation:scaleIn var(--transition-base) ease-out}}[data-theme=dark] .modal-backdrop{background-color:#000000b3}[data-theme=dark] .signup-modal-simple{background-color:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .signup-modal-simple .form-input{background-color:var(--color-background);color:var(--color-text)}.card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card h3{color:var(--color-text);margin-bottom:var(--spacing-md)}.card p{color:var(--color-text-secondary);margin-bottom:0}.feature-card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base);text-align:center}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.feature-card .feature-icon{margin-bottom:var(--spacing-base);color:var(--color-primary);display:flex;align-items:center;justify-content:center}.feature-card .feature-icon svg{stroke-width:1.5}.stat-card{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),transform var(--transition-base);text-align:center}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card h3{font-size:var(--font-size-4xl);color:var(--color-primary);margin-bottom:var(--spacing-sm)}.stat-card p{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}@media (max-width: 768px){.card-grid{grid-template-columns:1fr;gap:var(--spacing-base)}}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}@media (max-width: 768px){.features-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}}@media (max-width: 480px){.features-grid{grid-template-columns:1fr}}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}}.window-frame{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-window);overflow:hidden;display:flex;flex-direction:column;background-color:var(--color-background);margin:var(--spacing-3xl) auto}.window-frame.window-sm{max-width:600px;height:400px}.window-frame.window-md{max-width:850px;height:500px}.window-frame.window-lg{max-width:1000px;height:600px}.window-frame.window-xl{max-width:1200px;height:700px}.window-frame.window-fullscreen{width:100%;height:100vh;border-radius:0}.window-frame-titlebar{background:var(--color-window-titlebar);height:var(--window-titlebar-height);display:flex;align-items:center;padding:0 var(--spacing-md);position:relative;-webkit-user-select:none;user-select:none;border-bottom:var(--border-width-s) solid var(--color-border-light)}.traffic-lights{display:flex;gap:var(--spacing-sm)}.traffic-lights .traffic-light{width:12px;height:12px;border-radius:50%;cursor:default;transition:opacity var(--transition-fast)}.traffic-lights .traffic-light.close{background:var(--color-traffic-red);border:.5px solid var(--color-traffic-red-border)}.traffic-lights .traffic-light.minimize{background:var(--color-traffic-yellow);border:.5px solid var(--color-traffic-yellow-border)}.traffic-lights .traffic-light.maximize{background:var(--color-traffic-green);border:.5px solid var(--color-traffic-green-border)}.traffic-lights:hover .traffic-light{opacity:.8}.window-title{position:absolute;left:50%;transform:translate(-50%);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.window-frame-content{flex:1;overflow:hidden}@media (max-width: 768px){.window-frame{width:95%;margin:var(--spacing-lg) auto}.window-frame.window-lg,.window-frame.window-xl{height:450px}}@media (max-width: 480px){.window-frame{width:95%;max-height:600px;margin:0}.window-frame-titlebar{height:calc(var(--window-titlebar-height) * .9)}}.navbar{position:fixed;top:var(--spacing-base);left:var(--spacing-base);right:var(--spacing-base);z-index:var(--z-index-navbar);background-color:var(--background-navbar);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--border-radius-full)}.navbar .navbar-container{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);position:relative}@media (max-width: 900px){.navbar .navbar-container{align-items:left;padding:var(--spacing-md) var(--spacing-base)}}.navbar .button{width:120px;justify-content:center}.navbar .navbar-brand{display:inline-flex}.navbar .navbar-logo{height:2rem;margin-right:10px}.navbar .navbar-logo-text{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.navbar .navbar-menu{margin-left:30px;align-items:center;display:flex;gap:var(--spacing-xl)}@media (max-width: 900px){.navbar .navbar-menu{margin-left:0;align-items:normal;background-color:var(--background-navbar);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--font-size-xl);position:absolute;top:calc(100% + var(--spacing-sm));left:0;right:0;border-radius:var(--border-radius-full);flex-direction:column;padding:var(--spacing-xl);gap:var(--spacing-base);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base);box-shadow:var(--shadow-md)}.navbar .navbar-menu.navbar-menu-open{opacity:1;visibility:visible;transform:translateY(0)}.navbar .navbar-menu.button{max-width:200px}}.navbar .navbar-link{color:var(--color-text);font-weight:var(--font-weight-medium);transition:color var(--transition-base)}.navbar .navbar-link:hover{color:var(--color-primary)}@media (max-width: 900px){.navbar .navbar-link{padding:var(--spacing-sm) 0;display:block}}.navbar .navbar-actions{display:flex;align-items:center;gap:var(--spacing-md)}@media (max-width: 900px){.navbar .navbar-actions{align-items:left}.navbar .navbar-actions .button{display:none}}.navbar .navbar-burger{display:none;background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-button);width:2.5rem;height:2.5rem;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);transition:all var(--transition-base)}@media (max-width: 900px){.navbar .navbar-burger{align-items:left;display:flex}}.navbar .navbar-burger:hover{background-color:var(--color-surface);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.navbar .navbar-burger svg{stroke-width:2}.navbar .navbar-mobile-actions{display:none}@media (max-width: 900px){.navbar .navbar-mobile-actions{display:flex;flex-direction:column;gap:var(--spacing-base);padding-top:var(--spacing-base);margin-top:var(--spacing-base);border-top:var(--border-width) solid var(--color-border)}.navbar .navbar-mobile-actions .button{max-width:200px;margin:0 auto;width:100%;justify-content:center;padding:var(--spacing-base) var(--spacing-lg);font-size:var(--font-size-base)}}.navbar .theme-toggle{width:2.5rem;height:2.5rem;font-size:var(--font-size-xl);background:transparent;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-button);cursor:pointer;color:var(--color-text);display:flex;align-items:left;justify-content:center;transition:all var(--transition-base)}.navbar .theme-toggle:hover{background-color:var(--color-surface)}@media (min-width: 1600px){.navbar{max-width:1600px;margin:0 auto}}#footer{background-color:var(--background-footer);border-top:var(--border-width) solid var(--color-border);padding:var(--spacing-2xl) var(--spacing-2xl)}#footer .footer-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-2xl);justify-content:space-between}@media (max-width: 768px){#footer .footer-content{grid-template-columns:1fr 1fr;gap:var(--spacing-xl) var(--spacing-2xl)}}@media (max-width: 480px){#footer .footer-content{grid-template-columns:1fr;gap:var(--spacing-xl)}}#footer .footer-section h3{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-base)}#footer .footer-section h4{font-size:var(--font-size-base);margin-bottom:var(--spacing-base);color:var(--font-color-contrast)}#footer .footer-section p{color:var(--font-color-contrast-100);margin-bottom:0}#footer .footer-section ul{padding:0}#footer .footer-section ul li{margin-bottom:var(--spacing-sm)}#footer .footer-section ul li a{color:var(--font-color-contrast-100);transition:color var(--transition-base)}#footer .footer-section ul li a:hover{color:var(--color-primary)}#footer .footer-navigation{text-align:center}#footer .footer-section.footer-main{align-content:center;max-width:500px}#footer .footer-subtitle{margin-top:.8rem;font-size:1rem;line-height:1.4rem}#footer .footer-section-socials{margin-top:1rem;display:flex;gap:1rem}#footer .footer-section-socials img{width:2rem}#footer .footer-bottom{text-align:center;padding-top:var(--spacing-xl);border-top:var(--border-width) solid var(--color-text-secondary);color:var(--font-color-contrast-100)}#footer .footer-bottom p{margin-bottom:0}#hero{padding-top:calc(var(--navbar-height) + 5rem);background:var(--background-section);border-radius:0 0 var(--border-radius-full) var(--border-radius-full)}.hero-section{text-align:center}.hero-section .hero-content{max-width:1600px;margin:0 auto}.hero-section .hero-text{max-width:1000px;margin:0 auto}.hero-section .hero-subtitle{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xl);opacity:.9}.hero-section .hero-actions{display:flex;gap:var(--spacing-base);justify-content:center;flex-wrap:wrap}.hero-section .canvas-wrapper{margin-top:var(--spacing-2xl)}@media (max-width: 1024px){#hero{padding-top:calc(var(--navbar-height) + 6rem)}.hero-section .hero-content{max-width:1200px}}@media (max-width: 768px){#hero{padding-top:calc(var(--navbar-height) + 2rem)}.hero-section{padding:var(--spacing-3xl) 0}.hero-section .hero-subtitle{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg)}.hero-section .canvas-wrapper{margin-top:var(--spacing-xl)}}@media (max-width: 480px){#hero{padding-top:var(--navbar-height);border-radius:0 0 var(--spacing-2xl) var(--spacing-2xl)}.hero-section{padding:var(--spacing-xl) 0}.hero-section .hero-text{padding:0 var(--spacing-base)}.hero-section .hero-subtitle{font-size:var(--font-size-base);margin-bottom:var(--spacing-base)}.hero-section .canvas-wrapper{margin-top:var(--spacing-base)}}.feature-showcase-section{background-color:var(--color-background)}.feature-showcase-section .feature-showcase-wrapper{display:flex;flex-direction:column;gap:var(--spacing-4xl);margin:0 auto}@media (max-width: 768px){.feature-showcase-section .feature-showcase-wrapper{gap:var(--spacing-2xl)}}.feature-showcase{display:grid;grid-template-columns:.8fr 1.7fr;min-height:550px;background-color:var(--background-soft-150);border-radius:var(--border-radius-xl);overflow:hidden;position:relative;box-shadow:var(--shadow-md);transition:transform var(--transition-base),box-shadow var(--transition-base)}.feature-showcase.reverse{grid-template-columns:1.7fr .8fr}.feature-showcase.reverse .showcase-content{order:2}.feature-showcase.reverse .showcase-image{border-radius:var(--border-radius-xl);order:1}.feature-showcase .showcase-content{padding:var(--spacing-4xl) var(--spacing-4xl);display:flex;flex-direction:column;justify-content:center}@media (max-width: 1024px){.feature-showcase .showcase-content{padding:var(--spacing-3xl) var(--spacing-2xl)}}@media (max-width: 768px){.feature-showcase .showcase-content{padding:var(--spacing-xl) var(--spacing-xl);justify-content:flex-start;align-items:center;text-align:center}}@media (max-width: 480px){.feature-showcase .showcase-content{padding:var(--spacing-2xl) var(--spacing-2xl);justify-content:flex-start;align-items:center;text-align:center}}.feature-showcase .showcase-title{font-size:var(--font-size-4xl);line-height:var(--line-height-tight);margin-bottom:var(--spacing-base)}@media (max-width: 768px){.feature-showcase .showcase-title{font-size:var(--font-size-3xl)}}.feature-showcase .showcase-subtitle{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.feature-showcase .showcase-image{background-color:var(--background-solid);padding:var(--spacing-2xl);border-radius:var(--border-radius-xl);position:relative;display:flex;align-items:center;justify-content:center}.feature-showcase .showcase-image img{width:100%;height:auto;object-fit:contain;display:block;max-height:100%}.feature-showcase .showcase-image:before{content:"";position:absolute;inset:0;opacity:.1}.feature-showcase .showcase-image .showcase-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--font-size-lg)}@media (max-width: 768px){.feature-showcase{grid-template-columns:1fr;min-height:auto}.feature-showcase.reverse{grid-template-columns:1fr}.feature-showcase.reverse .showcase-content{order:1}.feature-showcase.reverse .showcase-image{order:2}.feature-showcase .showcase-image{height:300px}}@media (max-width: 480px){.feature-showcase .showcase-image{height:250px}}.faq-section .faq-container{max-width:800px;margin:0 auto}.faq-section .faq-list{display:flex;flex-direction:column;gap:var(--spacing-base);margin-top:var(--spacing-2xl);max-height:800px;overflow-y:auto;overflow-x:hidden;padding-right:var(--spacing-sm);position:relative}.faq-section .faq-list::-webkit-scrollbar{width:6px}.faq-section .faq-list::-webkit-scrollbar-track{background:var(--color-border-light);border-radius:3px}.faq-section .faq-list::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:3px}.faq-section .faq-list::-webkit-scrollbar-thumb:hover{background:var(--color-text)}@media (max-width: 768px){.faq-section .faq-list{max-height:650px}}@media (max-width: 480px){.faq-section .faq-list{max-height:600px}}.faq-item{background-color:var(--background-soft-100);border-radius:var(--border-radius-md);overflow:hidden;transition:box-shadow var(--transition-base),border-color var(--transition-base)}.faq-item:hover{box-shadow:var(--shadow-sm)}.faq-item.active{border-color:var(--color-primary)}.faq-question{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-lg) var(--spacing-xl);background:none;border:none;text-align:left;cursor:pointer;transition:background-color var(--transition-base)}.faq-question:hover{background-color:rgba(var(--color-primary),.05)}.faq-question:focus{outline:none}@media (max-width: 768px){.faq-question{padding:var(--spacing-base) var(--spacing-lg)}}@media (max-width: 480px){.faq-question{padding:var(--spacing-base)}}.faq-question-text{flex:1;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--color-text);margin-right:var(--spacing-base)}@media (max-width: 768px){.faq-question-text{font-size:var(--font-size-base)}}@media (max-width: 480px){.faq-question-text{font-size:var(--font-size-base)}}.faq-chevron{flex-shrink:0;width:24px;height:24px;color:var(--color-text-secondary);transition:transform var(--transition-base),color var(--transition-base)}.faq-item.active .faq-chevron{transform:rotate(180deg);color:var(--color-primary)}@media (max-width: 480px){.faq-chevron{width:20px;height:20px}}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .3s ease,transform .3s ease;opacity:0}.faq-item.active .faq-answer{max-height:1000px;opacity:1;transform:translateY(0)}.faq-answer-content{padding:0 var(--spacing-xl) var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.faq-item.active .faq-answer-content{animation:fadeIn .3s ease-in}.faq-answer-content p{margin-bottom:var(--spacing-base)}.faq-answer-content p:last-child{margin-bottom:0}@media (max-width: 768px){.faq-answer-content{padding:0 var(--spacing-lg) var(--spacing-base)}}@media (max-width: 480px){.faq-answer-content{padding:0 var(--spacing-base) var(--spacing-base)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .faq-question:hover{background-color:#ffffff0d}[data-theme=dark] .faq-question:focus{background-color:#ffffff0d}.about-section .about-content{max-width:800px;margin:0 auto}.about-section .about-text{margin-bottom:var(--spacing-2xl)}.about-section .about-text p{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.about-section .about-text p:last-child{margin-bottom:0}#comparison{background:var(--background-section);border-radius:var(--border-radius-full)}.comparison-section .comparison-cards-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);max-width:1000px;margin:0 auto}@media (max-width: 768px){.comparison-section .comparison-cards-container{grid-template-columns:1fr;gap:var(--spacing-xl)}}.comparison-section .comparison-card{background-color:var(--color-surface);border-radius:var(--border-radius-full);padding:var(--spacing-2xl);transition:transform var(--transition-base),box-shadow var(--transition-base);margin-bottom:var(--spacing-xl)}.comparison-section .comparison-card h3{margin-bottom:1rem;text-align:left;color:var(--color-primary)}.comparison-section .comparison-card.comparison-card-others h3,.comparison-section .comparison-card.comparison-card-others span{color:var(--color-danger-light)}.comparison-section .comparison-card.comparison-card-us h3,.comparison-section .comparison-card.comparison-card-us span{color:var(--color-success)}.comparison-section .comparison-items{display:flex;flex-direction:column}.comparison-section .comparison-item{display:flex;align-items:center;gap:var(--spacing-base);padding:var(--spacing-sm) 0}.comparison-section .comparison-item:last-child{border-bottom:none}.comparison-section .comparison-icon{width:2.3rem;height:2.3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;transition:transform var(--transition-fast)}.comparison-section .comparison-icon svg{position:relative;z-index:2;color:var(--color-background);stroke-width:3}.comparison-section .comparison-icon.comparison-icon-success{background-color:var(--color-success-light)}.comparison-section .comparison-icon.comparison-icon-success:before{content:"";position:absolute;inset:0;background-color:var(--color-success-light);z-index:1}.comparison-section .comparison-icon.comparison-icon-danger{background-color:var(--color-danger-light)}.comparison-section .comparison-icon.comparison-icon-danger:before{content:"";position:absolute;inset:0;background-color:var(--color-danger-light);z-index:1}.comparison-section .comparison-text{line-height:var(--line-height-normal);color:var(--color-text);margin-left:.9rem}@media (max-width: 768px){.comparison-section .comparison-card{padding:var(--spacing-xl)}.comparison-section .comparison-item{gap:var(--spacing-sm)}}.comparison-card-footer{text-align:center;background-color:var(--background-soft-150);padding:20px;margin-top:var(--spacing-lg);border-radius:var(--border-radius-lg)}.customer-reviews-section{padding:var(--spacing-3xl) 0}.customer-reviews-section .section-header{margin-bottom:var(--spacing-2xl)}.reviews-carousel-container{position:relative;overflow:hidden;padding:var(--spacing-base) 0;width:100%}.reviews-carousel{display:flex;gap:var(--spacing-xl);transition:transform var(--transition-base);will-change:transform}.review-card{flex:0 0 400px;background-color:var(--color-surface);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}@media (max-width: 480px){.review-card{flex:0 0 300px;padding:var(--spacing-lg)}}.review-header{display:flex;align-items:center;gap:var(--spacing-base);margin-bottom:var(--spacing-lg)}.review-profile-image{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.review-user-info{flex:1}.review-user-name{line-height:.8rem;font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);color:var(--color-text)}.review-social-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);transition:color var(--transition-fast)}.review-social-link:hover{color:var(--color-primary)}.review-social-link svg{transition:transform var(--transition-fast)}.review-username{color:var(--color-text-secondary)}.review-content p{line-height:var(--line-height-relaxed);color:var(--color-text);margin:0}.review-rating{display:flex;gap:var(--spacing-xs)}[data-theme=dark] .comparison-card{background-color:var(--color-surface)}[data-theme=dark] .comparison-icon.comparison-icon-success{background-color:var(--color-success-dark)}[data-theme=dark] .comparison-icon.comparison-icon-success:before{background-color:var(--color-success-dark)}[data-theme=dark] .comparison-icon.comparison-icon-danger{background-color:var(--color-danger-dark)}[data-theme=dark] .comparison-icon.comparison-icon-danger:before{background-color:var(--color-danger-dark)}[data-theme=dark] .comparison-icon svg{color:var(--color-surface)}[data-theme=dark] .review-card{background-color:var(--color-surface)}[data-theme=dark] .review-profile-image{border-color:var(--color-border)}#signup{background:var(--background-section-contrast);border-radius:var(--border-radius-full) var(--border-radius-full) 0 0;padding:var(--spacing-5xl) 0}.signup-section{color:#fff}.signup-section .signup-content{max-width:600px;margin:0 auto;text-align:center}.signup-section h2{color:#fff}.signup-section p{font-size:var(--font-size-lg);opacity:.9;margin-bottom:var(--spacing-xl)}.signup-section .waitlist-perks{margin:var(--spacing-2xl) 0}.signup-section .waitlist-perks .perks-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg);max-width:500px;margin:0 auto}@media (max-width: 768px){.signup-section .waitlist-perks .perks-list{grid-template-columns:1fr;gap:var(--spacing-base);max-width:300px}}@media (max-width: 480px){.signup-section .waitlist-perks .perks-list{grid-template-columns:1fr;gap:var(--spacing-base);max-width:280px}}.signup-section .waitlist-perks .perk-item{display:flex;align-items:center;gap:var(--spacing-sm);color:#fff;font-size:var(--font-size-base);opacity:.95;justify-content:center}@media (max-width: 768px){.signup-section .waitlist-perks .perk-item{justify-content:flex-start;max-width:280px;margin:0 auto}}@media (max-width: 480px){.signup-section .waitlist-perks .perk-item{justify-content:flex-start;max-width:260px;margin:0 auto}}.signup-section .waitlist-perks .perk-item .perk-icon{flex-shrink:0;color:var(--color-accent);background:#ffffff1a;border-radius:50%;padding:4px;width:28px;height:28px}.signup-section .waitlist-perks .perk-item span{font-weight:var(--font-weight-medium);text-align:left}.signup-section .signup-form .form-group{display:flex;gap:var(--spacing-base);margin-bottom:var(--spacing-base);align-items:center}@media (max-width: 480px){.signup-section .signup-form .form-group{flex-direction:column}}.signup-section .signup-form .form-group .button{height:100%;min-width:150px;justify-content:center}.signup-section .signup-form .form-input{flex:1;background-color:#ffffffe6;border-color:transparent;border-radius:var(--border-radius-button);text-align:center}.signup-section .signup-form .form-input:focus{background-color:#fff}.signup-section .signup-form .form-input.error{border-color:var(--color-danger);animation:shake .3s ease}.signup-section .signup-form .signup-note{font-size:var(--font-size-sm);opacity:.8;margin-bottom:0}.signup-section .signup-error{color:#fff;background:#dc354533;padding:var(--spacing-sm) var(--spacing-base);border-radius:var(--border-radius-base);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);display:inline-block;border:1px solid rgba(220,53,69,.4)}.signup-section .signup-success-message{animation:fadeIn .5s ease;padding:var(--spacing-2xl);text-align:center}.signup-section .signup-success-message .success-icon-large{width:80px;height:80px;margin:0 auto var(--spacing-lg);background:#fff3;border:3px solid white;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;animation:scaleIn .5s ease}.signup-section .signup-success-message h3{color:#fff;font-size:var(--font-size-2xl);margin-bottom:var(--spacing-sm)}.signup-section .signup-success-message p{color:#fffffff2;font-size:var(--font-size-lg);margin:0;opacity:1}.signup-section .signup-success-message .signup-position{margin-top:var(--spacing-sm);font-size:var(--font-size-base);color:#fffc;font-weight:var(--font-weight-medium)}.signup-form .loading-spinner-sm{width:20px;height:20px;border-width:2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}#page-roadmap{min-height:100vh;background-color:var(--color-background)}.roadmap-hero{padding-top:calc(var(--navbar-height) + 5rem);padding-bottom:var(--spacing-3xl);background:var(--background-section);border-radius:0 0 var(--border-radius-full) var(--border-radius-full)}.roadmap-hero .roadmap-hero-content{text-align:center;max-width:900px;margin:0 auto}.roadmap-hero .roadmap-hero-content h1{margin-bottom:var(--spacing-lg)}.roadmap-hero .roadmap-hero-content .roadmap-subtitle{margin-bottom:var(--spacing-2xl)}@media (max-width: 480px){.roadmap-hero .roadmap-hero-content .roadmap-subtitle{padding:0 var(--spacing-base)}}.roadmap-hero .roadmap-stats{display:flex;justify-content:center;gap:var(--spacing-3xl);margin-top:var(--spacing-2xl)}@media (max-width: 480px){.roadmap-hero .roadmap-stats{gap:var(--spacing-xl)}}.roadmap-hero .roadmap-stats .stat{display:flex;align-items:center;gap:var(--spacing-base)}.roadmap-hero .roadmap-stats .stat .stat-icon.stat-backlog{color:var(--color-primary)}.roadmap-hero .roadmap-stats .stat .stat-icon.stat-progress{color:var(--color-warning)}.roadmap-hero .roadmap-stats .stat .stat-icon.stat-completed{color:var(--color-success)}.roadmap-hero .roadmap-stats .stat .stat-content{display:flex;flex-direction:column;align-items:flex-start}.roadmap-hero .roadmap-stats .stat .stat-content .stat-value{margin:0 auto;color:var(--font-color-title);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:1}.roadmap-hero .roadmap-stats .stat .stat-content .stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.roadmap-content{padding:var(--spacing-3xl) 0}@media (max-width: 768px){.roadmap-content{padding:var(--spacing-2xl) 0}}.roadmap-kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl)}@media (max-width: 1024px){.roadmap-kanban{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.roadmap-kanban{grid-template-columns:1fr;gap:var(--spacing-2xl)}}@media (max-width: 480px){.roadmap-kanban{grid-template-columns:1fr;gap:var(--spacing-2xl)}}.roadmap-column{display:flex;flex-direction:column;background-color:var(--background-soft-100);padding:var(--spacing-lg);position:relative;height:fit-content}.roadmap-column:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0}.roadmap-column.roadmap-column-backlog:before{background:var(--color-primary)}.roadmap-column.roadmap-column-backlog .roadmap-column-header{color:var(--color-primary)}.roadmap-column.roadmap-column-backlog .roadmap-card-icon{color:var(--color-primary);background-color:#6c5ffe1a}.roadmap-column.roadmap-column-inProgress:before{background:var(--color-warning)}.roadmap-column.roadmap-column-inProgress .roadmap-column-header{color:var(--color-warning)}.roadmap-column.roadmap-column-inProgress .roadmap-card-icon{color:var(--color-warning);background-color:var(--color-warning-background)}.roadmap-column.roadmap-column-completed:before{background:var(--color-success)}.roadmap-column.roadmap-column-completed .roadmap-column-header{color:var(--color-success)}.roadmap-column.roadmap-column-completed .roadmap-card-icon{color:var(--color-success);background-color:#28a7451a}.roadmap-column-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-bottom:var(--border-width) solid var(--color-border-light);cursor:pointer;transition:opacity var(--transition-fast)}.roadmap-column-header:hover{opacity:.8}.roadmap-column-header .column-header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.roadmap-column-header .column-header-left h3{margin:0;font-weight:var(--font-weight-semibold)}.roadmap-column-header .column-header-left .item-count{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-background);border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.roadmap-column-header .expand-icon{color:var(--color-text-secondary);transition:transform var(--transition-base)}.roadmap-column-header .expand-icon.expanded{transform:rotate(180deg)}.roadmap-cards-list{display:flex;flex-direction:column;gap:var(--spacing-base);flex:1}.roadmap-card{display:flex;gap:var(--spacing-base);background-color:var(--color-background);border:var(--border-width) solid var(--color-border-light);border-radius:var(--border-radius-md);padding:var(--spacing-base);transition:all var(--transition-fast)}.roadmap-card:hover{box-shadow:var(--shadow-sm)}.roadmap-card .roadmap-card-icon{width:32px;height:32px;border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:5px}.roadmap-card .roadmap-card-content{flex:1;min-width:0}.roadmap-card .roadmap-card-content h4{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.roadmap-card .roadmap-card-content p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}[data-theme=dark] .roadmap-column{background-color:var(--background-soft-150)}[data-theme=dark] .roadmap-column .roadmap-card{background-color:var(--background-soft-200);border-color:var(--color-border)}[data-theme=dark] .roadmap-column .item-count{background-color:var(--background-soft-200)}@media (max-width: 768px){.roadmap-hero{padding-top:calc(var(--navbar-height) + 3rem);padding-bottom:var(--spacing-2xl)}}@media (max-width: 480px){.roadmap-hero{padding-top:calc(var(--navbar-height) + 2rem)}.roadmap-hero .roadmap-stats{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--spacing-lg)}.roadmap-hero .roadmap-stats .stat{flex:1;min-width:100px;justify-content:center}}.canvas-section{padding:var(--section-padding) 0}.canvas-section .section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.canvas-section .section-header h2{color:var(--color-text);margin-bottom:var(--spacing-base)}.canvas-section .section-header p{font-size:var(--font-size-lg);color:var(--color-text-secondary);max-width:700px;margin:0 auto}.canvas-section .canvas-wrapper{display:flex;justify-content:center;align-items:center;width:100%}@media (max-width: 1024px){.canvas-section{padding:calc(var(--section-padding) * .8) 0}}@media (max-width: 768px){.canvas-section{padding:var(--spacing-3xl) 0}.canvas-section .section-header{margin-bottom:var(--spacing-2xl)}.canvas-section .section-header p{font-size:var(--font-size-base);padding:0 var(--spacing-lg)}}@media (max-width: 480px){.canvas-section .section-header{margin-bottom:var(--spacing-xl)}.canvas-section .section-header h2{font-size:var(--font-size-3xl)}.canvas-section .section-header p{font-size:var(--font-size-sm);padding:0 var(--spacing-base)}}.canvas-container{display:flex;width:100%;height:100%;position:relative;border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg);overflow:hidden;background-color:var(--color-canvas-background);z-index:0}.canvas-window{width:90%;max-width:1200px;height:800px}@media (max-width: 768px){.canvas-window{width:95%;height:500px;margin:var(--spacing-2xl) auto}}@media (max-width: 480px){.canvas-window{width:100%;height:100vh;margin:0}}.button-canvas-reactflow{display:flex;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:center;text-decoration:none;white-space:nowrap;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;height:2.5rem;border-radius:var(--border-radius-button);transition:all var(--transition-base);gap:5px;width:220px;height:70px;border-radius:50px;position:relative;z-index:1;justify-content:center;border:2.5px solid var(--color-primary-hover);background-color:#deeaff;color:var(--color-primary-hover);transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast)}.button-canvas-reactflow:active{transform:translateY(0)}.button-canvas-reactflow:focus{outline:none;box-shadow:var(--shadow-focus)}.button-canvas-reactflow:disabled{opacity:.65;cursor:not-allowed;transform:none}.button-canvas-reactflow:hover{background-color:#c8e4ff;color:var(--color-primary);transform:translateY(-2px);box-shadow:none}.button-canvas-reactflow:focus{box-shadow:none;outline:none}.button-canvas-reactflow.running{background-color:var(--canvas-button-run);color:var(--color-danger);border:2.5px solid var(--color-danger)}.button-canvas-reactflow.running:hover{background-color:#ffc9e6;transform:translateY(-2px);box-shadow:none}.button-canvas-reactflow.running:focus{box-shadow:none;outline:none}.button-canvas-reactflow svg{margin-right:var(--spacing-sm);position:relative;z-index:2}.button-canvas-reactflow span{position:relative;z-index:2}.glow-on-hover{position:relative;overflow:visible}.glow-on-hover:not(.running):before{content:"";background:var(--canvas-button-gradient);position:absolute;inset:-4px;border-radius:50px;background-size:400%;z-index:-1;filter:blur(10px);animation:glowing 10s linear infinite;opacity:.6;transition:opacity .3s ease-in-out,filter .3s ease-in-out;pointer-events:none}.glow-on-hover:not(.running):hover:before{opacity:.9;filter:blur(15px)}.glow-on-hover.running:before{display:none}.glow-on-hover:after{content:"";position:absolute;inset:0;border-radius:50px;background-color:inherit;z-index:0}@keyframes glowing{0%{background-position:0 0}50%{background-position:400% 0}to{background-position:0 0}}.canvas-sidepanel{display:flex;flex-direction:column;height:100%;width:250px;padding:0;border-radius:var(--border-radius-lg);overflow:hidden}@media (max-width: 768px){.canvas-sidepanel{width:200px}}.sidepanel-title{font-size:var(--font-size-xl);line-height:1rem;font-weight:var(--font-weight-semibold);color:var(--color-text);align-self:center;margin:0 0 var(--spacing-lg) 0}.code-editor{flex:1;width:100%;padding:var(--spacing-md);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-base);background-color:var(--color-code-background);color:var(--color-code-text);font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);resize:none;overflow-y:auto;white-space:pre;tab-size:2;transition:border-color var(--transition-base)}.code-editor::selection{background-color:var(--color-code-selection)}.code-editor:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}@media (max-width: 480px){.code-editor{font-size:var(--font-size-xs)}}.canvas-sidepanel-button{display:flex;font-size:var(--font-size-md);text-align:center;text-decoration:none;white-space:nowrap;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;height:2.5rem;border-radius:var(--border-radius-button);transition:all var(--transition-base);gap:5px;align-self:center;width:80%;justify-content:center;margin-bottom:5px;padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-lg);background-color:var(--color-canvas-button);color:#fff;border-radius:30px;font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.canvas-sidepanel-button:active{transform:translateY(0)}.canvas-sidepanel-button:focus{outline:none;box-shadow:var(--shadow-focus)}.canvas-sidepanel-button:disabled{opacity:.65;cursor:not-allowed;transform:none}.canvas-sidepanel-button:hover{background-color:var(--color-canvas-button-hover);outline:2px solid var(--color-canvas-button-outline)}.loading-container{display:flex;justify-content:center;align-items:center;height:100%;width:100%}.loading-spinner{width:40px;height:40px;border:4px solid var(--color-loading-background);border-top:4px solid var(--color-loading-spinner);border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.loading-spinner-sm{width:24px;height:24px;border:3px solid var(--color-loading-background);border-top:3px solid var(--color-loading-spinner);border-radius:50%;animation:spin 1s linear infinite}.loading-spinner.loading-spinner-lg{width:56px;height:56px;border:5px solid var(--color-loading-background);border-top:5px solid var(--color-loading-spinner);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.react-flow__panel{margin:var(--spacing-lg)}.react-flow__panel.center.right{position:relative;margin:var(--spacing-base) var(--spacing-base) var(--spacing-lg) 0;padding:var(--spacing-lg) var(--spacing-base) var(--spacing-base) var(--spacing-base);background-color:var(--background-soft-200);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md)}.react-flow__attribution,.panel-hidden{display:none}.panel-entering{display:block;opacity:0;transform:translate(100%)}.panel-entering-active{opacity:1;transform:translate(0);transition:opacity var(--transition-base),transform var(--transition-base)}.panel-exiting{opacity:1;transform:translate(0)}.panel-exiting-active{opacity:0;transform:translate(100%);transition:opacity var(--transition-base),transform var(--transition-base)}.custom-node{display:flex;flex-direction:column;align-items:center;width:130px;height:130px;box-shadow:inset 0 0 0 5px var(--color-node-border);background:var(--color-node-background);border-radius:var(--border-radius-lg);padding:var(--spacing-sm);transition:box-shadow var(--transition-base);cursor:grab}.custom-node:active{cursor:grabbing}.custom-node.running{box-shadow:inset 0 0 0 5px var(--color-node-running),0 0 20px var(--color-node-running-glow),0 0 40px var(--color-node-running-glow-secondary);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:inset 0 0 0 5px var(--color-node-running),0 0 20px var(--color-node-running-glow),0 0 40px var(--color-node-running-glow-secondary)}50%{box-shadow:inset 0 0 0 5px var(--color-node-running),0 0 25px var(--color-node-running-glow-bright),0 0 50px var(--color-node-running-glow)}to{box-shadow:inset 0 0 0 5px var(--color-node-running),0 0 20px var(--color-node-running-glow),0 0 40px var(--color-node-running-glow-secondary)}}.node-image{width:90px;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.node-label{margin-top:var(--spacing-sm);font-size:var(--font-size-xs);text-align:center;color:var(--color-text);font-weight:var(--font-weight-medium);-webkit-user-select:none;user-select:none}.node-handle{background:var(--color-node-handle);width:20px;height:20px;border:2px solid var(--color-background)}.node-handle:hover{background:var(--color-node-handle-hover)}.react-flow__handle{background:var(--color-node-handle);width:10px;height:10px;border:2px solid var(--color-background)}.react-flow__handle.react-flow__handle-connecting{background:var(--color-node-handle-connecting)}.react-flow__handle.react-flow__handle-valid{background:var(--color-success)}.react-flow__edge-path{stroke:var(--color-edge);stroke-width:2}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}@keyframes dashdraw{to{stroke-dashoffset:-10}}.react-flow__node.selected .custom-node{outline:3px solid var(--color-primary)}
