.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--bg:oklch(13.5% .006 150);--surface-1:oklch(16.5% .007 150);--surface-2:oklch(19.5% .008 150);--surface-3:oklch(22.5% .009 150);--surface-hover:oklch(25.5% .014 150);--line:oklch(29% .012 150);--line-soft:oklch(24.5% .009 150);--text:oklch(91% .012 145);--text-muted:oklch(67% .015 145);--text-dim:oklch(52% .015 145);--moss:oklch(58% .12 150);--moss-strong:oklch(67% .14 150);--moss-soft:oklch(32% .06 150);--brass:oklch(69% .1 75);--danger:oklch(64% .15 28);--header-height:52px;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--bg);min-width:760px}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--moss-strong);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell{background:var(--bg);height:100%;position:relative}.app-header{height:var(--header-height);border-bottom:1px solid var(--line);background:var(--surface-1);-webkit-user-select:none;user-select:none;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 12px 0 16px;display:grid}.brand-lockup,.header-actions,.workspace-tabs,.privacy-note,.primary-button{align-items:center;display:flex}.brand-lockup{gap:10px;min-width:0}.brand-mark{height:26px;color:var(--moss-strong);letter-spacing:.1em;border:1px solid oklch(46% .08 150);border-radius:3px;place-items:center;padding:0 7px;font:500 11px/1 IBM Plex Mono,monospace;display:grid}.brand-product{color:var(--text-muted);letter-spacing:.01em;font-size:13px;font-weight:500}.workspace-tabs{gap:4px;height:100%}.workspace-tabs button{min-width:78px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-self:stretch;font-size:13px;position:relative}.workspace-tabs button:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:14px;right:14px}.workspace-tabs button:hover:not(:disabled),.workspace-tabs button.is-active{color:var(--text)}.workspace-tabs button.is-active:after{background:var(--moss)}.workspace-tabs button:disabled{color:var(--text-dim);cursor:not-allowed}.header-actions{justify-self:end;gap:6px}.header-utility-button,.header-save-button{height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:11px;display:inline-flex}.header-utility-button:hover,.header-save-button:hover:not(:disabled){border-color:var(--line);background:var(--surface-2);color:var(--text)}.header-utility-button.is-signed-in{color:var(--moss-strong)}.header-save-button{border-color:var(--line);color:var(--text-muted)}.header-save-button:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.55}.privacy-note{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;gap:7px;font:400 10px/1 IBM Plex Mono,monospace}.live-dot{background:var(--moss);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px oklch(58% .12 150/.12)}.primary-button,.empty-action{background:var(--moss-soft);color:oklch(93% .02 145);cursor:pointer;border:1px solid oklch(50% .09 150);border-radius:4px;justify-content:center;gap:8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s}.primary-button{height:32px;padding:0 12px}.primary-button:hover,.empty-action:hover{border-color:var(--moss);background:oklch(37% .075 150)}.workbench{height:calc(100% - var(--header-height));grid-template-columns:220px minmax(0,1fr) 268px;min-height:0;display:grid}.left-sidebar,.right-sidebar{background:var(--surface-1);min-width:0;position:relative;overflow:auto}.left-sidebar{border-right:1px solid var(--line);flex-direction:column;display:flex}.right-sidebar{border-left:1px solid var(--line)}.panel-titlebar{border-bottom:1px solid var(--line-soft);background:var(--surface-1);flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:52px;padding:9px 12px;display:flex}.panel-titlebar strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.panel-kicker,.inspector-heading,.sidebar-section-heading,.empty-kicker{letter-spacing:.09em;font:500 9px/1.2 IBM Plex Mono,monospace}.panel-kicker,.inspector-heading,.sidebar-section-heading{color:var(--text-dim)}.asset-summary{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;min-height:72px;padding:12px;display:flex}.asset-icon{border:1px solid var(--line);background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:4px;flex:none;place-items:center;display:grid}.asset-summary>div:last-child{min-width:0}.asset-summary strong,.asset-summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.asset-summary strong{margin-bottom:4px;font-size:12px;font-weight:500}.asset-summary span{color:var(--text-dim);font:400 10px/1.2 IBM Plex Mono,monospace}.sidebar-section-heading{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;height:36px;padding:0 12px;display:flex}.asset-tree{flex:1;min-height:0;padding:5px;overflow-y:auto}.asset-group+.asset-group{margin-top:5px}.asset-group-header{background:var(--surface-2);min-height:45px;color:var(--text-muted);border-radius:3px;grid-template-columns:17px minmax(0,1fr) 26px;align-items:center;gap:6px;padding:6px 5px 6px 8px;display:grid}.asset-group-header>svg{color:var(--moss-strong)}.asset-group-header>div{min-width:0}.asset-group-header strong,.asset-group-header span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.asset-group-header strong{color:var(--text);font-size:10px;font-weight:500}.asset-group-header span{color:var(--text-dim);margin-top:3px;font:400 8px/1 IBM Plex Mono,monospace}.asset-group-header button{width:25px;height:25px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:3px;place-items:center;padding:0;display:grid}.asset-group-header button:hover{color:oklch(75% .11 35);background:oklch(28% .02 30)}.asset-group .mesh-list{padding:3px 0 4px 14px}.asset-loading-copy{color:var(--text-dim);margin:8px 9px;font:400 9px/1.3 IBM Plex Mono,monospace}.mesh-row{width:100%;height:30px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:minmax(0,1fr) 28px;align-items:center;display:grid}.mesh-select-button{min-width:0;height:28px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:13px 16px minmax(0,1fr);align-items:center;gap:5px;padding:0 3px 0 7px;font-size:11px;display:grid}.mesh-select-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mesh-row:hover{background:var(--surface-2);color:var(--text)}.mesh-row.is-selected{color:var(--text);background:oklch(28% .04 150);border-color:oklch(40% .06 150)}.mesh-row.is-hidden .mesh-select-button{opacity:.48}.mesh-visibility-button{width:26px;height:26px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:2px;place-items:center;display:grid}.mesh-visibility-button:hover{background:var(--surface-hover);color:var(--text)}.mesh-row.is-hidden .mesh-visibility-button,.mesh-chevron{color:var(--text-dim)}.sidebar-empty{color:var(--text-dim);margin:12px 9px;font-size:11px;line-height:1.55}.sidebar-footer{border-top:1px solid var(--line-soft);min-height:35px;color:var(--text-dim);align-items:center;gap:7px;padding:0 10px;font:400 9px/1 IBM Plex Mono,monospace;display:flex}.sidebar-footer svg{color:var(--moss);flex:none}.sidebar-footer span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.center-workspace{background:var(--bg);grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.workspace-shading .center-workspace{grid-template-rows:var(--shading-split,56%) 8px minmax(0, 1fr)}.shading-resizer{z-index:3;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-1);color:var(--text-dim);cursor:row-resize;touch-action:none;place-items:center;transition:background .12s,color .12s;display:grid;position:relative}.shading-resizer:hover,.shading-resizer:focus-visible,.shading-resizer.is-active{background:var(--surface-2);color:var(--moss-strong)}.shading-resizer:focus-visible{outline:2px solid var(--moss-strong);outline-offset:-2px}.shading-resizer svg{background:inherit;border-radius:2px;width:28px;height:14px;padding:0 5px;position:absolute}.app-shell.is-resizing-shading,.app-shell.is-resizing-shading *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.viewport-panel{background:radial-gradient(circle at 50% 35%, oklch(20% .013 150), transparent 54%), var(--bg);min-height:0;position:relative;overflow:hidden}.viewport-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.viewport-toolbar{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:oklch(17% .008 150/.88);border-radius:4px;align-items:center;gap:2px;height:31px;padding:3px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 8px 24px oklch(5% .01 150/.35)}.viewport-toolbar button{width:25px;height:23px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:2px;place-items:center;display:grid}.viewport-toolbar button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.viewport-toolbar button.is-active{color:var(--moss-strong);background:oklch(27% .045 150)}.viewport-toolbar button:disabled{color:var(--text-dim);cursor:not-allowed}.toolbar-divider{background:var(--line);width:1px;height:15px;margin:0 3px}.navigation-speed-control{height:23px;color:var(--text-dim);border-radius:2px;align-items:center;gap:4px;padding:0 2px 0 5px;display:flex}.navigation-speed-control:hover{background:var(--surface-hover);color:var(--text-muted)}.navigation-speed-control>span{letter-spacing:.05em;font:500 8px/1 IBM Plex Mono,monospace}.navigation-speed-control select{height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 15px 0 3px;font:500 9px/1 IBM Plex Mono,monospace}.navigation-speed-control select:hover{color:var(--text)}.renderer-control{height:23px;color:var(--text-dim);align-items:center;gap:4px;padding-left:4px;display:flex}.renderer-control>span{letter-spacing:.04em;font:500 8px/1 IBM Plex Mono,monospace}.renderer-control select{height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 17px 0 3px;font:500 9px/1 IBM Plex Mono,monospace}.renderer-control:hover,.renderer-control select:hover{color:var(--text)}.renderer-fallback{color:var(--brass);padding:0 5px 0 2px;font:400 8px/1 IBM Plex Mono,monospace}.project-panel{top:calc(var(--header-height) + 6px);z-index:30;width:350px;max-height:calc(100vh - var(--header-height) - 18px);border:1px solid var(--line);background:var(--surface-1);border-radius:6px;position:fixed;right:12px;overflow:auto;box-shadow:0 6px 8px oklch(4% .01 150/.45)}.project-panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:52px;padding:10px 12px;display:flex}.project-panel-heading span,.project-panel-heading strong{display:block}.project-panel-heading span,.project-section-heading>span{color:var(--text-dim);letter-spacing:.07em;font:500 8px/1 IBM Plex Mono,monospace}.project-panel-heading strong{color:var(--text);margin-top:5px;font-size:12px;font-weight:500}.project-panel-heading button,.project-section-heading button{width:25px;height:25px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:3px;place-items:center;display:grid}.project-panel-heading button:hover,.project-section-heading button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.login-form,.project-editor,.saved-projects{padding:14px 12px}.project-editor,.saved-projects{border-top:1px solid var(--line-soft)}.project-auth-intro,.project-user-row{align-items:center;gap:10px;display:flex}.project-auth-intro{color:var(--moss-strong);margin-bottom:15px}.project-auth-intro>div,.project-user-row>div{flex:1;min-width:0}.project-auth-intro strong,.project-auth-intro span,.project-user-row strong,.project-user-row span{display:block}.project-auth-intro strong,.project-user-row strong{color:var(--text);font-size:11px;font-weight:500}.project-auth-intro span,.project-user-row span{color:var(--text-dim);margin-top:3px;font-size:9px;line-height:1.4}.login-form>label,.project-name-field{color:var(--text-muted);grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;margin-top:9px;font-size:10px;display:grid}.login-form input,.project-name-field input{border:1px solid var(--line);background:var(--bg);min-width:0;height:29px;color:var(--text);border-radius:3px;padding:0 8px;font-size:11px}.project-primary-action,.project-action-row>button,.project-user-row>button{border:1px solid var(--line);background:var(--surface-2);min-height:29px;color:var(--text-muted);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 9px;font-size:10px;display:inline-flex}.login-form>.project-primary-action{width:100%;margin-top:13px}.project-primary-action{background:var(--moss-soft);color:var(--text);border-color:oklch(50% .09 150)}.project-primary-action:hover:not(:disabled),.project-action-row>button:hover:not(:disabled),.project-user-row>button:hover:not(:disabled){border-color:var(--moss);color:var(--text)}.project-primary-action:disabled,.project-action-row>button:disabled,.project-user-row>button:disabled{cursor:not-allowed;opacity:.5}.project-user-row{padding:12px}.project-user-avatar{background:var(--moss-soft);border:1px solid oklch(50% .08 150);border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font:500 11px/1 IBM Plex Mono,monospace;color:var(--moss-strong)!important;display:grid!important}.project-section-heading{justify-content:space-between;align-items:center;min-height:24px;display:flex}.project-section-heading small{color:var(--moss-strong);font:400 8px/1 IBM Plex Mono,monospace}.project-action-row{justify-content:flex-end;gap:7px;margin-top:11px;display:flex}.project-message{color:var(--moss-strong);margin:10px 0 0;font-size:9px;line-height:1.45}.project-message.is-error{color:oklch(73% .13 35)}.saved-project-list{margin-top:7px}.saved-project-list>button{border:0;border-top:1px solid var(--line-soft);width:100%;min-height:46px;color:var(--text-dim);text-align:left;cursor:pointer;background:0 0;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 6px;display:grid}.saved-project-list>button:hover,.saved-project-list>button.is-current{background:var(--surface-2);color:var(--moss-strong)}.saved-project-list>button>div{min-width:0}.saved-project-list strong,.saved-project-list span{display:block}.saved-project-list strong{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;overflow:hidden}.saved-project-list span{color:var(--text-dim);margin-top:3px;font:400 8px/1 IBM Plex Mono,monospace}.saved-project-list>button>span:last-child{color:var(--moss-strong);margin:0}.saved-project-list>p{color:var(--text-dim);margin:9px 2px 2px;font-size:9px;line-height:1.5}.viewport-selection-label{border:1px solid var(--line);max-width:45%;color:var(--text-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(16% .008 150/.86);border-radius:3px;align-items:center;gap:7px;padding:6px 8px;font-size:10px;display:flex;position:absolute;bottom:10px;right:11px}.viewport-selection-label span{color:var(--moss-strong);letter-spacing:.08em;font:500 8px/1 IBM Plex Mono,monospace}.empty-state{z-index:2;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex;position:absolute;inset:0}.empty-orbit{width:76px;height:76px;color:var(--text-muted);border:1px solid oklch(39% .04 150);border-radius:50%;place-items:center;margin-bottom:26px;display:grid;box-shadow:0 0 0 14px oklch(23% .02 150/.35),0 0 0 28px oklch(20% .012 150/.25)}.empty-kicker{color:var(--moss-strong)}.empty-state h1{color:var(--text);letter-spacing:-.035em;margin:12px 0 9px;font-size:clamp(23px,2.3vw,34px);font-weight:500}.empty-state p{max-width:500px;color:var(--text-muted);margin:0;font-size:13px;line-height:1.65}.empty-action{pointer-events:auto;height:36px;margin-top:24px;padding:0 16px}.empty-drop-hint{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-top:9px;font:400 9px/1 IBM Plex Mono,monospace}.loading-indicator{z-index:4;border:1px solid var(--line);min-width:190px;color:var(--text-muted);background:oklch(16% .008 150/.94);border-radius:4px;align-items:center;gap:10px;padding:11px 14px;font-size:11px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 46px oklch(4% .01 150/.55)}.loading-indicator span{border:2px solid var(--line);border-top-color:var(--moss);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.right-sidebar .panel-titlebar{z-index:2;position:sticky;top:0}.inspector-section{border-bottom:1px solid var(--line-soft);padding:14px 12px}.property-list{margin:10px 0 0}.property-list>div{grid-template-columns:82px minmax(0,1fr);align-items:center;gap:10px;min-height:26px;display:grid}.property-list dt,.property-list dd{margin:0;font-size:11px}.property-list dt{color:var(--text-dim)}.property-list dd{color:var(--text-muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:10px;overflow:hidden}.inspector-heading-row{justify-content:space-between;align-items:center;display:flex}.text-button{color:var(--moss-strong);cursor:pointer;background:0 0;border:0;padding:0;font-size:10px}.text-button:hover{color:var(--text)}.material-name{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:4px;align-items:center;gap:10px;margin:12px 0 16px;padding:9px;display:flex}.material-swatch{border:1px solid oklch(70% .02 150/.22);border-radius:3px;flex:none;width:28px;height:28px}.material-name strong,.material-name span{display:block}.material-name strong{text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:11px;font-weight:500;overflow:hidden}.material-name div span{color:var(--text-dim);margin-top:3px;font:400 9px/1 IBM Plex Mono,monospace}.inspector-field{margin-top:13px;display:block}.inspector-field>div{justify-content:space-between;align-items:center;display:flex}.inspector-field span,.inspector-field output{color:var(--text-muted);font-size:10px}.editable-number,.editable-number-input{min-width:50px;height:22px;color:var(--text-dim);text-align:right;background:0 0;border:1px solid #0000;border-radius:3px;padding:0 5px;font:400 9px/1 IBM Plex Mono,monospace}.editable-number{cursor:text}.editable-number:hover,.editable-number:focus-visible{border-color:var(--line);background:var(--surface-2);color:var(--text);outline:none}.editable-number:disabled{cursor:default;opacity:.55}.editable-number-input{border-color:var(--moss);background:var(--surface-1);color:var(--text);outline:none}.editable-number.is-compact,.editable-number-input.is-compact{width:34px;min-width:32px;height:20px;padding:0 3px;font-size:8px}.inspector-field output{color:var(--text-dim);font-family:IBM Plex Mono,monospace}input[type=range]{accent-color:var(--moss)}.inspector-field>input[type=range]{width:100%;height:16px;margin:5px 0 0}.inspector-field.is-linked>input[type=range]{opacity:.35}.property-linked{color:var(--moss-strong);margin-top:2px;font:400 8px/1.3 IBM Plex Mono,monospace;display:block}.node-property-summary{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:4px;align-items:center;gap:9px;margin-top:11px;padding:9px;display:flex}.node-property-glyph{border:1px solid var(--moss);background:oklch(25% .03 150);border-radius:3px;flex:none;width:25px;height:25px}.node-property-glyph.is-emissionShader{border-color:var(--brass);background:oklch(27% .03 75)}.node-property-glyph.is-videoTexture{background:oklch(26% .035 245);border-color:oklch(63% .09 245)}.node-property-glyph.is-materialOutput{background:oklch(30% .055 150)}.node-property-summary>div{min-width:0}.node-property-summary strong,.node-property-summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.node-property-summary strong{color:var(--text);font-size:11px;font-weight:500}.node-property-summary span{color:var(--text-dim);margin-top:3px;font:400 8px/1 IBM Plex Mono,monospace}.node-property-description{color:var(--text-dim);margin:8px 1px 4px;font-size:9px;line-height:1.45}.node-socket-properties{border-top:1px solid var(--line-soft);margin-top:10px;padding-top:6px}.inspector-texture-picker{border:1px solid var(--line);background:var(--surface-2);min-height:34px;color:var(--text-muted);cursor:pointer;border-radius:4px;align-items:center;gap:7px;margin-top:11px;padding:0 8px;display:flex}.inspector-texture-picker:hover{color:var(--text);border-color:oklch(43% .035 150)}.inspector-texture-picker span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:10px;overflow:hidden}.inspector-texture-picker input{display:none}.inspector-select-field{min-height:30px;color:var(--text-muted);grid-template-columns:1fr 104px;align-items:center;gap:8px;margin-top:7px;font-size:10px;display:grid}.inspector-select-field select{border:1px solid var(--line-soft);background:var(--surface-1);height:25px;color:var(--text-muted);border-radius:3px;padding:0 5px;font-size:9px}.color-inspector-field{justify-content:space-between;align-items:center;display:flex}.color-inspector-field>div{gap:7px}.color-inspector-field input[type=color]{border:1px solid var(--line);background:var(--surface-2);border-radius:3px;width:28px;height:22px;padding:1px}.color-inspector-field code{color:var(--text-dim);font:400 9px/1 IBM Plex Mono,monospace}.segmented-control{border:1px solid var(--line);background:var(--bg);border-radius:4px;grid-template-columns:1fr 1fr;margin-top:10px;padding:2px;display:grid}.world-mode-control{grid-template-columns:repeat(3,1fr)}.inspector-hint{color:var(--text-dim);margin:9px 0 0;font-size:10px;line-height:1.45}.environment-picker{border:1px solid var(--line);background:var(--surface-2);min-height:36px;color:var(--text-muted);cursor:pointer;border-radius:4px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;margin-top:11px;padding:0 8px;display:grid}.environment-picker:hover{color:var(--text);border-color:oklch(43% .035 150)}.environment-picker span{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.environment-picker small{color:var(--text-dim);font:400 8px/1 IBM Plex Mono,monospace}.environment-picker input{display:none}.toggle-field{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:38px;margin-top:9px;display:flex}.toggle-field>span,.toggle-field strong,.toggle-field small{display:block}.toggle-field strong{color:var(--text-muted);font-size:10px;font-weight:400}.toggle-field small{color:var(--text-dim);margin-top:3px;font-size:9px}.toggle-field input{width:28px;height:15px;accent-color:var(--moss);cursor:pointer}.camera-inspector .inspector-heading-row>svg,.viewport-inspector .inspector-heading-row>svg{color:var(--moss-strong)}.camera-copy-hint{border-left:1px solid var(--moss);background:var(--moss-soft);margin-top:2px;padding:7px 8px;font-size:9px}.camera-vector-field{margin-top:11px}.camera-vector-field>span{color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font:500 8px/1 IBM Plex Mono,monospace;display:block}.camera-vector-field>div,.mesh-transform-row>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.camera-vector-field label,.mesh-transform-row label{border:1px solid var(--line-soft);background:var(--surface-1);border-radius:3px;grid-template-columns:12px minmax(0,1fr);align-items:center;min-width:0;display:grid;overflow:hidden}.camera-vector-field label>span,.mesh-transform-row label>span{color:var(--text-dim);padding-left:4px;font:500 8px/1 IBM Plex Mono,monospace}.direct-number-input,.mesh-transform-row input{width:100%;min-width:0;height:25px;color:var(--text-muted);text-align:right;background:0 0;border:0;outline:none;padding:0 4px;font:400 9px/1 IBM Plex Mono,monospace}.direct-number-input:focus,.mesh-transform-row input:focus{color:var(--text);background:oklch(24% .025 150)}.camera-lens-fields{border-top:1px solid var(--line-soft);margin-top:10px;padding-top:5px}.camera-number-field{min-height:29px;color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.camera-number-field>div{border:1px solid var(--line-soft);background:var(--surface-1);border-radius:3px;align-items:center;width:94px;display:flex}.camera-number-field small{color:var(--text-dim);padding-right:5px;font:400 8px/1 IBM Plex Mono,monospace}.mesh-transform-inspector .inspector-heading-row small{color:var(--text-dim);letter-spacing:.06em;font:400 7px/1 IBM Plex Mono,monospace}.mesh-transform-row{margin-top:10px}.mesh-transform-row>span{color:var(--text-dim);margin-bottom:5px;font-size:9px;display:block}.mesh-transform-row input{cursor:text}.transform-copy-hint{color:var(--text-dim);margin:9px 0 0;font-size:8px;line-height:1.4}.post-inspector .inspector-heading-row>svg{color:var(--brass)}.post-effect-controls{background:oklch(18% .01 75/.2);border-left:1px solid oklch(46% .065 75);margin:3px 0 9px;padding:1px 8px 9px}.ssr-quality-control{grid-template-columns:repeat(3,1fr);margin:8px 0 10px}.ssr-hint{margin:7px 0 0}.segmented-control button{height:27px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:2px;font-size:10px}.segmented-control button.is-active{background:var(--surface-3);color:var(--text)}.inspector-empty{min-height:200px;color:var(--text-dim);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 28px;display:flex}.inspector-empty p{margin:0;font-size:11px;line-height:1.55}.graph-panel{background:var(--surface-1);border-top:0;grid-template-rows:45px 34px minmax(0,1fr);min-height:0;display:grid}.graph-titlebar{border-bottom-color:var(--line);flex-direction:row;justify-content:space-between;align-items:center;min-height:45px;padding:6px 11px}.graph-titlebar>div:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.compile-status{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:7px;font:400 9px/1 IBM Plex Mono,monospace;display:flex}.compile-status.has-error{color:oklch(72% .12 48)}.compile-status.has-error .live-dot{background:oklch(66% .15 45);box-shadow:0 0 0 3px oklch(66% .15 45/.12)}.graph-toolbar{border-bottom:1px solid var(--line-soft);background:oklch(16.5% .007 150);align-items:center;gap:5px;min-width:0;padding:4px 10px;display:flex;overflow-x:auto}.graph-toolbar>span,.graph-toolbar button{white-space:nowrap;align-items:center;gap:5px;height:24px;font-size:9px;display:inline-flex}.graph-toolbar>span{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding-right:6px;font-family:IBM Plex Mono,monospace}.graph-toolbar button{border:1px solid var(--line-soft);background:var(--surface-2);color:var(--text-muted);cursor:pointer;border-radius:3px;padding:0 8px}.graph-toolbar button:hover{background:var(--surface-3);color:var(--text);border-color:oklch(43% .035 150)}.graph-canvas{background:oklch(13% .006 150);min-height:0}.react-flow__pane{cursor:grab}.react-flow__pane:active{cursor:grabbing}.react-flow__edge-path{stroke:oklch(56% .035 150);stroke-width:1.5px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--moss-strong);stroke-width:2.5px}.react-flow__connection-path{stroke:var(--moss);stroke-width:1.5px}.material-node{width:210px;color:var(--text-muted);background:oklch(19% .009 150);border:1px solid oklch(34% .014 150);border-radius:5px;font-size:10px;overflow:hidden;box-shadow:0 10px 28px oklch(5% .01 150/.32)}.material-node.is-selected{border-color:var(--moss);box-shadow:0 0 0 1px oklch(58% .12 150/.2),0 12px 32px oklch(5% .01 150/.45)}.material-node.is-muted{border-style:dashed}.material-node.is-muted>:not(.node-header){opacity:.42}.node-header{border-bottom:1px solid var(--line-soft);background:oklch(21.5% .012 150);flex-direction:row;justify-content:space-between;align-items:center;gap:8px;height:42px;padding:7px 9px;display:flex}.node-header>.node-title{flex-direction:column;justify-content:center;gap:3px;min-width:0;display:flex}.node-actions{flex:none;align-items:center;gap:1px;display:flex}.node-header span{color:var(--text-dim);letter-spacing:.11em;font:500 7px/1 IBM Plex Mono,monospace}.node-header strong{color:var(--text);font-size:11px;font-weight:500}.node-delete,.node-mute{width:24px;height:24px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:3px;flex:none;place-items:center;padding:0;display:grid}.node-mute:hover,.node-mute.is-active{background:var(--moss-soft);color:var(--moss-strong)}.node-delete:hover{color:oklch(75% .11 35);background:oklch(28% .02 30)}.node-mute-property{border-bottom:1px solid var(--line-soft);min-height:34px;margin:7px 0 8px;padding-bottom:7px}.node-content{padding:9px}.color-field{border:1px solid var(--line-soft);background:var(--surface-1);border-radius:3px;align-items:center;gap:8px;height:29px;display:flex;overflow:hidden}.color-field input{background:0 0;border:0;width:42px;height:29px;padding:0}.color-field span{color:var(--text-muted);font:400 9px/1 IBM Plex Mono,monospace}.texture-picker{border:1px solid var(--line);background:var(--surface-1);height:30px;color:var(--text-muted);cursor:pointer;border-radius:3px;align-items:center;gap:7px;padding:0 8px;display:flex}.texture-picker:hover{color:var(--text);border-color:oklch(42% .03 150)}.texture-picker span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.texture-picker input{display:none}.node-field{grid-template-columns:1fr 86px;align-items:center;gap:8px;min-height:28px;margin-top:7px;display:grid}.node-field select{border:1px solid var(--line-soft);background:var(--surface-1);height:24px;color:var(--text-muted);border-radius:3px;padding:0 5px;font-size:9px}.node-field select:disabled{color:var(--text-dim)}.node-socket-row{border-top:1px solid var(--line-soft);align-items:center;min-height:30px;display:flex;position:relative}.node-socket-row.output{justify-content:flex-end;padding:0 12px}.node-socket-row.input{padding:0 12px}.react-flow__handle{background:var(--surface-1);border:2px solid oklch(73% .02 150);width:9px;height:9px}.react-flow__handle.is-color{border-color:oklch(75% .08 86)}.react-flow__handle.is-float{border-color:oklch(70% .09 200)}.react-flow__handle.is-normal{border-color:oklch(72% .1 265)}.react-flow__handle.is-shader{border-color:var(--moss-strong)}.react-flow__handle:hover,.react-flow__handle.connectingto,.react-flow__handle.connectingfrom{border-color:var(--moss-strong);background:var(--moss-soft)}.node-range{grid-template-columns:57px minmax(40px,1fr) 30px;align-items:center;gap:6px;height:27px;display:grid}.node-range input{width:100%;min-width:0}.node-range output,.node-range .editable-number{color:var(--text-dim);text-align:right;font:400 8px/1 IBM Plex Mono,monospace}.math-defaults{border-top:1px solid var(--line-soft)}.node-color-default{grid-template-columns:57px 28px minmax(0,1fr);align-items:center;gap:6px;height:28px;display:grid}.node-color-default input{border:1px solid var(--line-soft);background:var(--surface-1);border-radius:3px;width:28px;height:20px;padding:1px}.node-color-default output{color:var(--text-dim);text-align:right;text-overflow:ellipsis;font:400 8px/1 IBM Plex Mono,monospace;overflow:hidden}.compact-node{width:184px}.normal-map-node{width:202px}.normal-map-node .node-header{border-top:2px solid oklch(62% .08 265)}.video-node .node-header{border-top:2px solid oklch(63% .09 245)}.video-playback-note{min-height:22px;color:var(--text-dim);align-items:center;gap:6px;margin-top:7px;font:400 8px/1 IBM Plex Mono,monospace;display:flex}.video-playback-note .live-dot{background:oklch(63% .09 245)}.video-texture-hint{margin-top:9px}.pbr-node{width:224px}.emission-node,.shader-mix-node{width:210px}.emission-node .node-header,.shader-mix-node .node-header{border-top:2px solid var(--brass)}.pbr-defaults{border-top:1px solid var(--line-soft)}.node-subheading{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font:500 7px/1 IBM Plex Mono,monospace;display:block}.output-node{width:180px}.output-node .node-header{border-top:2px solid var(--moss)}.drop-overlay{z-index:20;border:1px dashed var(--moss-strong);color:var(--text-muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:oklch(13% .02 150/.9);border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:fixed;inset:10px}.drop-overlay svg{color:var(--moss-strong);margin-bottom:5px}.drop-overlay strong{color:var(--text);font-size:15px;font-weight:500}.drop-overlay span{color:var(--text-dim);font-size:11px}@media (width<=1120px){.workbench{grid-template-columns:190px minmax(0,1fr) 236px}.header-utility-button,.header-save-button{gap:0;width:30px;padding:0;font-size:0;overflow:hidden}}@media (width<=850px){.workbench{grid-template-columns:minmax(0,1fr) 224px}.left-sidebar,.brand-product{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
