.drawflow,.drawflow .parent-node{position:relative;margin:0}.parent-drawflow{display:flex;overflow:hidden;touch-action:none;outline:0;position:relative}.drawflow{width:100%;height:100%;user-select:none;perspective:0}.drawflow .drawflow-node{display:flex;position:absolute;min-width:160px;min-height:40px;border-radius:4px;color:#000;z-index:2;padding:0}.drawflow .drawflow-node:hover{cursor:move}.drawflow .drawflow-node .inputs,.drawflow .drawflow-node .outputs{width:0}.drawflow .drawflow-node .drawflow_content_node{width:100%;display:block}.drawflow .drawflow-node .input,.drawflow .drawflow-node .output{position:relative;width:20px;height:20px;background:#fff;border-radius:50%;border:2px solid #000;cursor:crosshair;z-index:1;margin-bottom:5px}.drawflow .drawflow-node .input{left:-27px;top:2px}.drawflow .drawflow-node .output{right:-3px;top:2px}.drawflow svg{z-index:0;position:absolute;overflow:visible!important}.drawflow .connection{position:absolute;pointer-events:none;aspect-ratio:1/1;margin:0}.drawflow .connection .main-path{fill:none;stroke-width:5px;pointer-events:all}.drawflow .connection .main-path:hover{stroke:#1266ab;cursor:pointer}.drawflow .connection .main-path.selected{stroke:#43b993}.drawflow .connection .point{cursor:move;stroke:#000;stroke-width:2;fill:#fff;pointer-events:all}.drawflow .connection .point.selected,.drawflow .connection .point:hover{fill:#1266ab}.drawflow .main-path{fill:none;stroke-width:5px;stroke:#4682b4}.drawflow-delete{position:absolute;display:block;width:30px;height:30px;background:#000;color:#fff;z-index:4;border:2px solid #fff;font-weight:700;text-align:center;border-radius:50%;font-family:monospace;cursor:pointer}.drawflow>.drawflow-delete{margin-left:-15px;margin-top:15px}.parent-node .drawflow-delete{right:-10px;top:-15px}:root{--dfNodeType: flex;--dfNodeTypeFloat: none;--dfNodeBackgroundColor: rgba(159, 134, 100, 1);--dfNodeTextColor: #000000;--dfNodeMinHeight: 40px;--dfNodeMinWidth: 160px;--dfNodeBoxShadowHL: 0px;--dfNodeBoxShadowVL: 2px;--dfNodeBoxShadowBR: 3px;--dfNodeBoxShadowS: 2px;--dfNodeBoxShadowColor: rgba(0, 0, 0, .2);--dfNodeHoverBackgroundColor: #a39075;--dfNodeHoverBoxShadowHL: 0px;--dfNodeHoverBoxShadowVL: 2px;--dfNodeHoverBoxShadowBR: 3px;--dfNodeHoverBoxShadowS: 2px;--dfNodeHoverBoxShadowColor: rgba(0, 0, 0, .4);--dfNodeSelectedBackgroundColor: #a39075;--dfNodeTextWhite: #ffffff;--dfNodeSelectedBoxShadowHL: 0px;--dfNodeSelectedBoxShadowVL: 2px;--dfNodeSelectedBoxShadowBR: 3px;--dfNodeSelectedBoxShadowS: 2px;--dfNodeSelectedBoxShadowColor: rgba(0, 0, 0, .4);--dfBorderColor: #3a3836;--dfInputBackgroundColor: #ddd;--dfInputBorderSize: 2px;--dfInputBorderRadius: 50px;--dfInputLeft: -10px;--dfInputHeight: 20px;--dfInputWidth: 20px;--dfInputHoverBorderSize: 2px;--dfInputHoverBorderRadius: 50px;--dfOutputBackgroundColor: #ddd;--dfOutputBorderSize: 2px;--dfOutputRight: 10px;--dfOutputHeight: 20px;--dfOutputWidth: 20px;--dfOutputHoverBorderSize: 2px;--dfOutputHoverBorderRadius: 50px;--dfLineWidth: 5px;--dfLineColor: var(--sl-color-gray-3);--dfLineHoverColor: #4682b4;--dfLineSelectedColor: #43b993;--dfRerouteBorderWidth: 2px;--dfRerouteHoverBorderWidth: 2px;--dfDeleteDisplay: block;--dfDeleteBorderSize: 2px;--dfDeleteBorderRadius: 50px;--dfDeleteTop: -25px;--dfDeleteHoverBorderSize: 2px;--dfDeleteHoverBorderRadius: 50px}#drawflow{background:var(--sl-color-gray-4)}.drawflow .drawflow-node{display:var(--dfNodeType);background:var(--dfNodeBackgroundColor);min-height:var(--dfNodeMinHeight);width:auto;min-width:var(--dfNodeMinWidth);-webkit-box-shadow:var(--dfNodeBoxShadowHL) var(--dfNodeBoxShadowVL) var(--dfNodeBoxShadowBR) var(--dfNodeBoxShadowS) var(--dfNodeBoxShadowColor);box-shadow:var(--dfNodeBoxShadowHL) var(--dfNodeBoxShadowVL) var(--dfNodeBoxShadowBR) var(--dfNodeBoxShadowS) var(--dfNodeBoxShadowColor);border:1px solid var(--dfBorderColor);border-radius:.5rem}.drawflow .drawflow-node:hover{background:var(--dfNodeHoverBackgroundColor);color:var(--dfNodeTextColor);border:1px solid var(--dfBorderColor);border-radius:.5rem;-webkit-box-shadow:var(--dfNodeHoverBoxShadowHL) var(--dfNodeHoverBoxShadowVL) var(--dfNodeHoverBoxShadowBR) var(--dfNodeHoverBoxShadowS) var(--dfNodeHoverBoxShadowColor);box-shadow:var(--dfNodeHoverBoxShadowHL) var(--dfNodeHoverBoxShadowVL) var(--dfNodeHoverBoxShadowBR) var(--dfNodeHoverBoxShadowS) var(--dfNodeHoverBoxShadowColor)}.drawflow .drawflow-node.selected{background:var(--dfNodeSelectedBackgroundColor);color:var(--dfNodeTextWhite);border:1px solid var(--dfBorderColor);border-radius:.5rem;-webkit-box-shadow:var(--dfNodeSelectedBoxShadowHL) var(--dfNodeSelectedBoxShadowVL) var(--dfNodeSelectedBoxShadowBR) var(--dfNodeSelectedBoxShadowS) var(--dfNodeSelectedBoxShadowColor);box-shadow:var(--dfNodeSelectedBoxShadowHL) var(--dfNodeSelectedBoxShadowVL) var(--dfNodeSelectedBoxShadowBR) var(--dfNodeSelectedBoxShadowS) var(--dfNodeSelectedBoxShadowColor)}.drawflow .drawflow-node .input{left:var(--dfInputLeft);background:var(--dfInputBackgroundColor);border:var(--dfInputBorderSize) solid var(--dfBorderColor);border-radius:var(--dfInputBorderRadius);height:var(--dfInputHeight);width:var(--dfInputWidth)}.drawflow .drawflow-node .input:hover{background:var(--dfNodeTextWhite);border:var(--dfInputHoverBorderSize) solid var(--dfBorderColor);border-radius:var(--dfInputHoverBorderRadius)}.drawflow .drawflow-node .outputs{float:var(--dfNodeTypeFloat)}.drawflow .drawflow-node .output{right:var(--dfOutputRight);background:var(--dfOutputBackgroundColor);border:var(--dfOutputBorderSize) solid var(--dfBorderColor);height:var(--dfOutputHeight);width:var(--dfOutputWidth)}.drawflow .drawflow-node .output:hover{background:var(--dfNodeTextWhite);border:var(--dfOutputHoverBorderSize) solid var(--dfBorderColor);border-radius:var(--dfOutputHoverBorderRadius)}.drawflow .connection .main-path{stroke-width:var(--dfLineWidth);stroke:var(--dfLineColor)}.drawflow .connection .main-path:hover{stroke:var(--dfLineHoverColor)}.drawflow .connection .main-path.selected{stroke:var(--dfLineSelectedColor)}.drawflow .connection .point{stroke:var(--dfNodeTextColor);stroke-width:var(--dfRerouteBorderWidth);fill:var(--dfNodeTextWhite)}.drawflow .connection .point:hover{stroke:var(--dfNodeTextColor);stroke-width:var(--dfRerouteHoverBorderWidth);fill:var(--dfNodeTextWhite)}.drawflow-delete{display:var(--dfDeleteDisplay);color:var(--dfNodeTextWhite);background:var(--dfDeleteBackgroundColor);border:var(--dfDeleteBorderSize) solid var(--dfNodeTextWhite);border-radius:var(--dfDeleteBorderRadius)}.drawflow-delete:hover{color:var(--dfNodeTextColor);background:var(--dfNodeTextWhite);border:var(--dfDeleteHoverBorderSize) solid var(--dfNodeTextColor);border-radius:var(--dfDeleteHoverBorderRadius)}.visual-scripting-container:where(.astro-4l5jqh3z){flex:1 1 auto;display:grid;grid-template-columns:max-content 1fr;grid-template-rows:1fr 7px 1fr;grid-template-areas:"a b" "c c" "d d";overflow:hidden;background:var(--sl-color-bg);position:relative;max-height:calc(100vh - var(--sl-nav-height) - var(--sl-line-height-headings) * 1rem - var(--sl-line-height) * 1rem - .1rem)}.vs-menu-label:where(.astro-4l5jqh3z){font-weight:700;color:var(--vs-menu-border);font-size:1rem;padding:0 .5rem}.vs-menu-dropdown:where(.astro-4l5jqh3z){position:relative;display:inline-block}.vs-menu-dropdown:where(.astro-4l5jqh3z):hover .vs-menu-dropdown-content:where(.astro-4l5jqh3z),.vs-menu-dropdown:where(.astro-4l5jqh3z):focus-within .vs-menu-dropdown-content:where(.astro-4l5jqh3z){display:block}.vs-menu-item:where(.astro-4l5jqh3z):active{cursor:grabbing}.drawflow-area:where(.astro-4l5jqh3z){flex:none;border-bottom:none;position:relative;overflow:hidden}.vs-divider:where(.astro-4l5jqh3z){height:7px;background:var(--sl-color-gray-3);width:100%;position:relative;grid-area:c;border-top:1.5px solid var(--vs-menu-border);border-bottom:1.5px solid var(--vs-menu-border);transition:background .15s;flex:0 0 auto}.code-area:where(.astro-4l5jqh3z){grid-area:d;background:var(--sl-color-bg);color:#fff;padding:1.5rem;overflow:auto;display:flex;flex-direction:column;border-top:none;transition:height .1s;box-sizing:border-box}.code-area:where(.astro-4l5jqh3z) code:where(.astro-4l5jqh3z){font-family:monospace}.code-area:where(.astro-4l5jqh3z) pre:where(.astro-4l5jqh3z){height:100%;width:100%;min-height:0;overflow:auto;margin:0;padding:0;box-sizing:border-box}.vs-menu:where(.astro-4l5jqh3z){display:flex;flex-direction:column}.vs-toggles:where(.astro-4l5jqh3z){position:absolute;right:0;bottom:0;z-index:19;display:flex;flex-direction:row;gap:.5rem;padding:0 .5rem .5rem;pointer-events:none}.vs-toggle:where(.astro-4l5jqh3z){display:flex;align-items:center;justify-content:center;pointer-events:all;z-index:20;background:#0003;color:#fff;border:2px solid var(--sl-color-gray-5);border-radius:.5rem;width:2.5rem;height:2.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;backdrop-filter:blur(2px)}.vs-toggle:where(.astro-4l5jqh3z):hover{background:#444;color:#fff}:root{--vs-env-bg: #5b172d;--vs-env-bg-hover: #772d44;--vs-text-color: #eeeeee;--vs-text-color-hover: #ffffff;--vs-species-bg: #004f68;--vs-species-bg-hover: #386b88;--vs-proc-bg: #62848e;--vs-proc-bg-hover: #859ba1;--vs-trait-bg: #9f8664;--vs-trait-bg-hover: #a29079;--vs-proc-title-bg-hover: #445c63;--vs-node-title-bg-hover: #716451;--vs-menu-border: black;--vs-transition-time: .1s;--menu-gap-width: .2rem}:root[data-theme=light]{--vs-env-bg: #741433;--vs-env-bg-hover: #933d4d;--vs-species-bg: #0a6582;--vs-species-bg-hover: #257894;--vs-proc-bg: #6ea3b3;--vs-proc-bg-hover: #83a6b0;--vs-trait-bg: #a6865b;--vs-trait-bg-hover: #a29079;--vs-proc-title-bg-hover: #445c63;--vs-node-title-bg-hover: #716451}.timestep{position:absolute;top:0;width:2rem;height:100%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;z-index:10;writing-mode:sideways-lr;pointer-events:none}.timestep.timestep-start{left:0}.timestep.timestep-end{right:0}.visual-scripting-container *{margin-top:0}.vs-menu-bar{display:flex;width:100%;align-items:stretch;flex-direction:column;gap:0;padding:0;background:none;z-index:20;box-shadow:0 2px 8px #4682b40a;margin-top:0}.vs-menu-dropdown,.vs-menu-item.species-node{display:flex;align-items:stretch;position:relative;min-width:0}.placeholder{flex:1 1 auto}.vs-menu-btn{width:100%;border:none;cursor:pointer;transition:background var(--vs-transition-time),color var(--vs-transition-time);display:flex;align-items:center;padding:.5rem;text-shadow:var(--sl-shadow-sm);border:var(--menu-gap-width) solid var(--sl-color-bg);border-top-width:0}.vs-menu-dropdown.env-menu .vs-menu-btn{background:var(--vs-env-bg);color:var(--vs-text-color)}.vs-menu-dropdown.env-menu .vs-menu-btn:hover,.vs-menu-dropdown.env-menu .vs-menu-btn:focus{background:var(--vs-env-bg-hover);color:var(--vs-text-color-hover)}.vs-menu-item.species-node{background:var(--vs-species-bg);color:var(--vs-text-color);border-top-width:var(--menu-gap-width);padding-left:.5rem;margin:0;cursor:grab;transition:background var(--vs-transition-time),color var(--vs-transition-time);user-select:none}.vs-menu-item.species-node:active{cursor:grabbing}.vs-menu-item.species-node:hover,.vs-menu-item.species-node:focus{background:var(--vs-species-bg-hover);color:var(--vs-text-color-hover)}.vs-menu-dropdown.proc-menu .vs-menu-btn{background:var(--vs-proc-bg);color:var(--vs-text-color)}.vs-menu-dropdown.proc-menu .vs-menu-btn:hover,.vs-menu-dropdown.proc-menu .vs-menu-btn:focus{background:var(--vs-proc-bg-hover);color:var(--vs-text-color-hover)}.vs-menu-dropdown.trait-menu .vs-menu-btn{background:var(--vs-trait-bg);color:var(--vs-text-color)}.vs-menu-dropdown.trait-menu .vs-menu-btn:hover,.vs-menu-dropdown.trait-menu .vs-menu-btn:focus{background:var(--vs-trait-bg-hover);color:var(--vs-text-color-hover)}.vs-menu-dropdown-content{display:none;position:absolute;left:100%;top:calc(-1 * var(--menu-gap-width));background:var(--sl-color-gray-5);padding:.5rem;min-width:max-content;box-shadow:0 2px 12px #0a0a0a;z-index:-1;overflow:hidden;border-radius:0rem .5rem .5rem 0rem;border:var(--menu-gap-width) solid var(--sl-color-bg);border-left-width:0}.vs-menu-dropdown:hover .vs-menu-dropdown-content,.vs-menu-dropdown:focus-within .vs-menu-dropdown-content{display:block}.vs-menu-dropdown-content hr{margin:0;border:none;background:var(--sl-color-gray-5);height:var(--menu-gap-width)}.clickable{cursor:pointer}.vs-menu-item{padding:.5rem 1rem;user-select:none;border-radius:1rem;min-height:2rem;display:flex;align-items:center;transition:background var(--vs-transition-time),color var(--vs-transition-time)}.drawflow,.draggable{cursor:grab}.draggable:after{content:"🠞";position:relative;left:0;font-weight:700;margin-left:auto;visibility:hidden;transition:left 1s}.draggable:hover:after{visibility:visible;left:.5rem}.vs-menu-item:hover{background:var(--sl-color-gray-6);color:var(--sl-color-white)}.drawflow-node{transition:background var(--vs-transition-time) ease-in-out,box-shadow var(--vs-transition-time) ease-in-out;font-size:var(--sl-text-code)}.drawflow-node:before{position:absolute;content:""}.drawflow-node:hover:before{position:absolute;content:attr(data-vs-species-name);border-radius:.4rem .4rem 0 0;width:100%;padding-left:.5rem;background:var(--vs-node-title-bg-hover);color:#fff;text-shadow:black 1px 1px 2px}.drawflow-node.species-node:hover:before{content:none}.drawflow-node.proc-node:hover:before{background:var(--vs-proc-title-bg-hover)}.drawflow_content_node .title{padding-left:.5rem;padding-right:.5rem;border-bottom:1px solid var(--dfBorderColor);background:#0000004d;border-radius:.4rem .4rem 0 0;text-shadow:black 1px 1px 2px;color:#ececec}.drawflow-node[data-vs-species-name] .input:not([data-upstream-connected=true],[data-vs-optional=true],[env_type]){background:#aa7a57!important}.drawflow-node .input[data-vs-optional=true]{background:gray}.drawflow-node.trait-node:not([data-upstream-connected=true]),.drawflow-node.proc-node:not([data-upstream-connected=true]){background:gray!important}#drawflow .drawflow-node.env-node{background:var(--vs-env-bg)}#drawflow .drawflow-node.env-node:hover{background:var(--vs-env-bg-hover)}#drawflow .drawflow-node.species-node{background:var(--vs-species-bg)}#drawflow .drawflow-node.species-node:hover{background:var(--vs-species-bg-hover)}#drawflow .drawflow-node.proc-node{background:var(--vs-proc-bg)}#drawflow .drawflow-node.proc-node:hover{background:var(--vs-proc-bg-hover)}.drawflow-node .input:after,.drawflow-node .output:after{content:"";position:relative;pointer-events:none}#drawflow .drawflow-node.proc-node:not(.save) .input:after{display:block;content:attr(data-vs-input-classes);top:-2px;left:25px;height:16px;line-height:16px;font-size:.8rem;width:150px}#drawflow .drawflow-node .output:hover:after{display:block;content:attr(data-vs-output-classes);top:-2px;left:25px;height:16px;line-height:16px;font-size:.8rem}.drawflow .drawflow-node .inputs,.drawflow .drawflow-node .outputs{padding-top:calc(var(--sl-line-height) * var(--sl-text-body) + .5rem)}.drawflow .input-container{padding:.5rem 1rem;width:100%}.drawflow .drawflow-node .input.species-traits,.drawflow .drawflow-node .input.species-traits:hover,.drawflow .drawflow-node .input.species-traits.selected,.drawflow .drawflow-node .output.species-traits,.drawflow .drawflow-node .output.species-traits:hover,.drawflow .drawflow-node .output.species-traits.selected{border-radius:4px}.drawflow .input-container input,.drawflow .input-container select{margin-right:.5rem;margin-bottom:.5rem;padding:1px 2px}.drawflow .input-container>:last-child,.drawflow .input-container>p:last-child input,.drawflow .input-container>p:last-child select{margin-bottom:0}@media (max-width: 600px){.vs-menu-bar{flex-direction:column}.vs-menu-dropdown,.vs-menu-item.species-node{min-width:0}}.vs-mobile-overlay{display:none}@media (max-width: 600px){.visual-scripting-container>*:not(.vs-mobile-overlay){pointer-events:none!important;user-select:none!important;opacity:.2;filter:blur(2px)}.vs-mobile-overlay{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;background:#1e1e1efa;color:#fff;z-index:10000;align-items:center;justify-content:center;font-size:1.3rem;font-weight:600;text-align:center;border-radius:12px}}input,select{border-radius:3px;border:none;min-height:1.6rem}input:invalid{background-color:#463b3b}input+span{padding-right:30px}input:invalid+span:after{position:absolute;content:"✖";padding-left:5px}input:valid+span:after{position:absolute;content:"✓";padding-left:5px}.hidden{display:none!important}.content-panel{padding:0}.sl-container{max-width:100%;margin-inline:auto}footer,site-search{display:none}h1{margin:0 auto;font-size:1rem;pointer-events:none}main,.sl-container,.main-pane,.main-frame,.main-frame>div,main>.content-panel:nth-child(2),.sl-markdown-content{flex:1 1 auto;display:flex;flex-direction:column;padding-bottom:0!important;margin-inline:0}main>.content-panel:first-child{flex:0}.footer-meta{margin-top:0!important}.tablist-wrapper{margin-bottom:1rem}
