:root{font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"tnum" on,"lnum" on}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}body{display:block}html[data-page-scroll=true],html[data-page-scroll=true] body,html[data-page-scroll=true] #root{height:auto;min-height:100%;overflow:visible}html[data-page-scroll=true]{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html[data-page-scroll=true]{scroll-behavior:auto}}a{font-weight:500;text-decoration:inherit}.c4-magic-flow-dot{pointer-events:none}.react-flow__node-thread{color:var(--chakra-colors-fg-default)!important;color-scheme:dark light}.react-flow__node-thread.selected,.react-flow__node-thread:focus,.react-flow__node-thread:focus-visible{outline:none!important;box-shadow:none!important}.react-flow .react-flow__handle{opacity:.72;transition:opacity .12s ease}.react-flow .react-flow__handle,.react-flow .react-flow__handle.connectionindicator{cursor:pointer}.react-flow .react-flow__handle[data-connected=false]{opacity:0}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle,.react-flow__handle.connectionindicator:hover{opacity:1}.react-flow:has(.react-flow__connectionline) .react-flow__handle,.react-flow .react-flow__handle.connectingfrom,.react-flow .react-flow__handle.connectingto{opacity:1}.react-flow__handle:before{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:9999px;background:currentColor;opacity:0;transform:scale(.55);transition:opacity .12s ease,transform .12s ease;pointer-events:none}.react-flow__handle:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:9999px;opacity:0;background:linear-gradient(var(--handle-ink, #fff),var(--handle-ink, #fff)) center / 9px 2px no-repeat,linear-gradient(var(--handle-ink, #fff),var(--handle-ink, #fff)) center / 2px 9px no-repeat;transition:opacity .12s ease;pointer-events:none}.react-flow__handle:hover:before{opacity:1;transform:scale(1)}.react-flow__handle:hover:after{opacity:1}.react-flow__handle.connecting:before,.react-flow .react-flow__handle-connecting:before{opacity:1;transform:scale(1)}@media(prefers-reduced-motion:reduce){.react-flow__handle,.react-flow__handle:before,.react-flow__handle:after{transition:none}}.react-flow__edge{cursor:pointer}.react-flow__edge:hover .react-flow__edge-path{stroke-width:2.4}.react-flow__edge .react-flow__edge-interaction{cursor:pointer}.c4-canvas-layer{isolation:isolate;transform:translateZ(0);backface-visibility:hidden}.c4-react-flow{width:100%;height:100%}.c4-react-flow .react-flow__pane.draggable,.c4-react-flow .react-flow__pane.selection{cursor:default}.c4-react-flow .react-flow__pane.dragging{cursor:grabbing}.c4-react-flow .react-flow__node-groupFrame{padding:0;background:transparent;border:none;box-shadow:none;pointer-events:none}.qk-ring{animation:qk-spin var(--qk-speed, 1.15s) linear infinite;transform-origin:50px 50px}.qk-bob{animation:qk-bob calc(var(--qk-speed, 1.15s) * .87) ease-in-out infinite;transform-box:fill-box;transform-origin:50% 82%}@keyframes qk-spin{to{transform:rotate(360deg)}}@keyframes qk-bob{0%,to{transform:translateY(-2.5px) scale(1)}50%{transform:translateY(2px) scale(1.05,.94)}}@media(prefers-reduced-motion:reduce){.qk-ring,.qk-bob{animation:none}}@keyframes qk-level-fade{to{opacity:1}}.qk-navduck:hover .qk-navduck-hop{animation:qk-hop .5s cubic-bezier(.3,.7,.4,1) 3}@keyframes qk-hop{0%{transform:translateY(0) scale(1)}18%{transform:translateY(1px) scale(1.14,.86)}45%{transform:translateY(-7px) scale(.93,1.09)}72%{transform:translateY(1px) scale(1.12,.88)}to{transform:translateY(0) scale(1)}}.qk-bubble{transform:rotate(var(--qk-tilt, 0deg));transform-origin:14px -6px;animation:qk-pop .28s cubic-bezier(.2,1.4,.5,1)}.qk-bubble-below:before{top:auto!important;bottom:-6px;left:50%!important;margin-left:-4.5px;border-top-width:0!important;border-left-width:0!important;border-bottom-width:1.5px;border-right-width:1.5px}.qk-bubble-below{transform-origin:50% calc(100% + 6px)}.qk-bubble-left{transform-origin:calc(100% + 6px) 50%}.qk-duck-hop-ride{animation:qk-hop .45s cubic-bezier(.3,.7,.4,1)}.qk-duck-rubber-hop{animation:qk-rubber-hop .58s cubic-bezier(.34,1.35,.48,1)}.qk-duck-idle-perch{animation:qk-hop 1.1s cubic-bezier(.3,.7,.4,1) infinite}@keyframes qk-rubber-hop{0%{transform:scale(1) translateY(0)}18%{transform:scale(1.18,.78) translateY(2px)}42%{transform:scale(.92,1.1) translateY(-10px)}62%{transform:scale(1.08,.9) translateY(-3px)}78%{transform:scale(.96,1.05) translateY(-9px)}to{transform:scale(1) translateY(0)}}.qk-duck-swim{animation:qk-swim .62s ease-in-out infinite}@keyframes qk-swim{0%,to{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-2.5px) rotate(7deg)}}@keyframes qk-pop{0%{transform:rotate(var(--qk-tilt, 0deg)) scale(.4);opacity:0}60%{transform:rotate(var(--qk-tilt, 0deg)) scale(1.08);opacity:1}to{transform:rotate(var(--qk-tilt, 0deg)) scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.qk-navduck:hover .qk-navduck-hop,.qk-bubble,.qk-duck-swim,.qk-duck-hop-ride,.qk-duck-rubber-hop,.qk-duck-idle-perch{animation:none}}.qk-intro-duck{display:inline-block;animation:qk-intro-duck-in .32s cubic-bezier(.2,1.3,.4,1) both,qk-hop .5s cubic-bezier(.3,.7,.4,1) .32s 2 both}@keyframes qk-intro-duck-in{0%{opacity:0;transform:translateY(14px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.qk-intro-duck{animation:none}}.qk-intro-sweep{animation-name:qk-intro-drift;animation-timing-function:cubic-bezier(.22,.68,.24,1);animation-fill-mode:both}.qk-intro-letter{display:inline-block;animation-name:qk-intro-land;animation-timing-function:cubic-bezier(.16,.9,.24,1);animation-fill-mode:both;will-change:transform,opacity,filter}.qk-intro-byline{animation:qk-intro-byline .52s ease both}@keyframes qk-intro-drift{0%{translate:-5% 0}to{translate:1.5% 0}}@keyframes qk-intro-land{0%{opacity:0;transform:translate(-.42em) skew(-14deg) scaleY(1.16);filter:blur(14px)}55%{opacity:1;filter:blur(2px)}to{opacity:1;transform:translate(0) skew(0) scaleY(1);filter:blur(0)}}@keyframes qk-intro-byline{0%{opacity:0;letter-spacing:.7em}to{opacity:1;letter-spacing:.42em}}@media(prefers-reduced-motion:reduce){.qk-intro-sweep,.qk-intro-letter,.qk-intro-byline{animation:none}}.qk-skeleton{background:linear-gradient(90deg,var(--chakra-colors-bg-subtle) 0%,var(--chakra-colors-bg-muted) 45%,var(--chakra-colors-bg-subtle) 90%);background-size:260% 100%;animation:qk-skeleton-sweep 1.4s ease-in-out infinite}@keyframes qk-skeleton-sweep{0%{background-position:130% 0}to{background-position:-30% 0}}@media(prefers-reduced-motion:reduce){.qk-skeleton{animation:none}}.react-flow{--xy-selection-background-color: rgba(126, 138, 158, .16);--xy-selection-border: 1px dashed rgba(126, 138, 158, .85);--xy-resize-background-color: rgba(126, 138, 158, .9)}
