*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-x-1\/2{left:50%;right:50%}.inset-y-1\/2{top:50%;bottom:50%}.bottom-0{bottom:0}.bottom-full{bottom:100%}.right-0{right:0}.right-2{right:.5rem}.top-2{top:.5rem}.z-\[99999\]{z-index:99999}.float-right{float:right}.m-1{margin:.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.contents{display:contents}.h-3\/4{height:75%}.h-full{height:100%}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-3\/4{width:75%}.w-\[100\%\]{width:100%}.w-\[150px\]{width:150px}.w-\[165px\]{width:165px}.w-\[170px\]{width:170px}.w-\[250px\]{width:250px}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-\[250px\]{min-width:250px}.grow{flex-grow:1}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-scroll{overflow-x:scroll}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.pl-1{padding-left:.25rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-4{padding-right:1rem}.text-center{text-align:center}.indent-1{text-indent:.25rem}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.font-bold{font-weight:700}.underline{text-decoration-line:underline}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--vertical-bar: 60%;--background-color: #8686868c;--lightgrey-0: #ced4da;--construction-paper: #fff4e6;--construction-paper-transparent: #fff4e5e3}html,body{font-family:system-ui;font-size:12pt;margin:0;overscroll-behavior:none;overflow:hidden}input{font-size:11pt}.no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}#root{display:flex;width:100vw;height:100vh;flex-direction:column;position:fixed}.content{display:flex;width:100%;flex:1;overflow:hidden}.left-side{width:calc(var(--vertical-bar) - 5px);display:flex;flex-direction:column}.right-side{flex:1;height:100%;position:relative}.code-editor{background:var(--construction-paper);flex:1;overflow:hidden}.cm-editor{height:100%}.cm-path-button{background:#c0fdc0d1;padding-left:3px;padding-right:3px;border-radius:5px}.cm-path-button:hover{cursor:pointer;background:#2ef72ecf}.error-log{background:#c92a2a;color:#fff;min-height:80px;padding:5px;box-sizing:border-box;overflow-y:auto}.modal-error{color:red;padding:10px;border:1px solid red;margin-top:10px;margin-bottom:5px;display:inline-block}.footprint-toolbox{width:300px;height:100%;max-height:100%;background:var(--construction-paper-transparent);position:absolute;right:0;top:0;padding:5px 0 5px 5px;display:flex;flex-direction:column;transition:right .5s ease;box-sizing:border-box;border-left:solid 1px black;border-bottom:solid 1px black}.footprint-toolbox-closed{right:-300px}.logo{margin-right:-10px;width:40px;padding:5px 15px 5px 5px}.footprint-item{display:flex;align-items:center;justify-content:flex-start;flex-direction:row}.footprint-item-icon{width:20px;height:20px;border-radius:50px;border:5px grey solid;box-sizing:border-box;margin:5px}.footprint-item-icon:hover{background:#fab005}.top-menu{grid-area:top-menu;display:flex;place-items:center;width:100%;height:-moz-max-content;height:max-content;max-height:-moz-max-content;max-height:max-content;min-height:-moz-max-content;min-height:max-content;background:var(--lightgrey-0);box-shadow:#979090 0 1px 2px;z-index:10000}.top-menu>.left>.menu-item{padding-top:7px;padding-bottom:7px;box-sizing:border-box;height:100%}.left{margin-left:10px;height:100%;display:flex;align-items:center}.right{margin-left:auto;margin-right:20px;height:100%;display:grid;place-content:center}.separator{margin:5px}.menu-item{cursor:pointer;padding:3px 5px;display:flex;align-items:center}.menu-item:hover{background:black;color:#fff}.dropdown-container{position:relative;cursor:pointer;z-index:100}.dropdown-content{color:#000;visibility:hidden;display:flex;flex-direction:column;position:absolute;z-index:10;left:0;top:100%;background:var(--lightgrey-0);width:-moz-max-content;width:max-content;min-width:100%;border-top:5px solid var(--lightgrey-0);max-height:50vh;overflow:scroll;box-sizing:border-box}.dropdown-content-right{left:revert;right:0}.dropdown-container:hover .dropdown-content{visibility:visible}.check-item,.input-item{padding:3px 5px}.canvas-container{display:grid;place-items:center;overflow:scroll;width:100%;height:100%}#gl-canvas{border:2px solid black}#vertical-bar{position:absolute;left:calc(var(--vertical-bar) - 5px);background:black;width:10px;height:100%;z-index:10}#vertical-bar:hover{cursor:col-resize;background:var(--lightgrey-0)}.CodeMirror{height:100%!important;background:#f4e6d0!important;z-index:0}.ͼd{border:solid 1px rgb(0,0,0,0)}.ͼd:hover{background:#e4e0e0;border:solid 1px grey;box-sizing:border-box;cursor:col-resize}.selectBox{fill:#00f;opacity:.2}.translate-handle{opacity:.6}.translate-handle:hover{filter:brightness(0) saturate(100%) invert(48%) sepia(79%) saturate(2476%) hue-rotate(330deg)}.draggable-pt{opacity:.6;fill:red;z-index:100}.draggable-pt:hover{fill:orange}.path-selected{position:absolute;left:15px;bottom:10px;padding:5px;border-radius:10px;background:floralwhite}.clear-selected-path{padding:3px;margin:3px;border-radius:5px;border:1px solid black;background:#efe4e4;cursor:pointer;transition:all .1s ease-in-out;color:red}.clear-selected-path:hover{transform:scale(1.02)}.github-logo{color:inherit;position:absolute;right:10px}.github-logo:hover{cursor:pointer;opacity:.8}.layer-item{display:flex;align-items:center;justify-content:space-between;height:25px}.layer-name{width:175px}.component-menu{position:absolute;background:var(--lightgrey-0);width:clamp(600px,70%,800px);max-width:80%;height:60%;left:50%;top:100px;transform:translate(-50%);display:flex;flex-direction:column;padding:10px;z-index:99999;border-radius:5px;border:black 1px solid}.component-menu .search-container{width:100%;justify-content:center;display:flex;padding:5px}.component-menu .search-container input{width:80%;padding:3px}.component-menu .file-menu{overflow:scroll}.component-menu .header{display:flex;justify-content:space-between;width:100%}.component-menu .close{color:#f03e3e;cursor:pointer;padding:10px}.component-menu .sub-header{font-size:.8rem}.component-menu .close:hover{transform:scale(1.1)}.component-list{padding-top:5px;padding-bottom:5px}.import-button-container{display:flex;align-items:center;justify-content:center}.import-button{cursor:pointer;width:80%;background:#ced4da;padding:4px;text-align:center;border-radius:5px;border:transparent solid 1px}.import-button:hover{border:black solid 1px}.nub{width:20px;height:50px;background:var(--construction-paper);border:black solid;border-width:1px 0px 1px 1px;border-radius:10px 0 0 10px;position:absolute;top:50%;left:0;transform:translate(-100%,-50%)}.nub:hover{background:#f0e5d7;cursor:pointer}.range-input{display:flex}.toolbox-title{padding:5px 0 5px 5px;font-weight:700}.toolbox-title:hover{cursor:pointer}.drop-modal{position:absolute;left:0;top:0;border:3px dashed black;background:#8bf6dfd9;width:100%;height:100%;box-sizing:border-box;z-index:9999999999;display:flex;justify-content:center;align-items:center}.drop-info{font-size:1.4em;text-align:center}.toolbox-title:after{content:"▼";padding-left:5px;vertical-align:middle}.inner-hidden:after{content:"▶";padding-left:5px;vertical-align:middle}.hidden{display:none}.modal{background-color:#00000080;position:absolute;left:0;top:0;width:100%;height:100%;z-index:999999;text-align:center;overflow:auto}.modal,.modal h3,.modal h4{font-size:12}.modal h4{margin:15px 0 7px}.modal h4:first-of-type{margin-top:0}.modal h4:last-of-type{margin-bottom:0}.modal input{margin:0;vertical-align:top;line-height:1}.modal input[type=text]{background-color:#fafafa;font-size:12px;border-color:#121212;border-collapse:collapse;border-style:solid;border-width:1px;padding:3px}.modal input[type=text]:focus{outline:none}.modal-content{display:inline-block;background-color:#fafafa;padding:3px;width:50%;position:fixed;left:50%;top:50%;transform:translate(-50%,-50%)}.modal-header{display:flex;align-items:left;border-bottom:1px solid #ddd;background-color:#00f;color:#fafafa;padding:5px}.modal-header .icon{font-size:20px;vertical-align:top}.modal-body{text-align:left;font-size:12px;padding:10px}.modal-footer{text-align:right;border-top:1px solid #ddd;padding:10px}.modal-title{padding:0;text-align:left;font-size:12px;line-height:20px;margin:0 0 0 5px;display:inline-block}.modal-line{margin:7px 0}.btn{height:30px;padding:7px;border:none;background-color:#ccc;display:inline-block;line-height:1;font-size:12px;color:#121212}.btn:hover,.btn:focus{background-color:#ababab;cursor:pointer}.btn-primary{background-color:#00f;color:#fafafa}.btn-primary:hover,.btn-primary:focus{background-color:navy;color:#fafafa}.close{color:#fafafa;position:relative;right:0;font-size:20px;font-weight:700;line-height:0}.close:hover,.close:focus{color:#ababab;text-decoration:none;cursor:pointer}.col-25,.col-33,.col-50,.col-75{display:inline-block;vertical-align:top}.col-25{width:25%}.col-33{width:33.3%}.col-50{width:49%}.col-75{width:75%}.align-left{text-align:left}.align-right{text-align:right}.selectable-path{stroke:#0000}.selectable-path:hover{stroke-width:10;stroke:#fdc81d}.layer-grabber{cursor:grab}.code-highlight{background-color:#ff0}.hover\:cursor-default:hover{cursor:default}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.hover\:bg-red-300:hover{--tw-bg-opacity: 1;background-color:rgb(252 165 165 / var(--tw-bg-opacity))}.hover\:fill-orange-400:hover{fill:#fb923c}.hover\:stroke-orange-400:hover{stroke:#fb923c}.hover\:stroke-yellow-300:hover{stroke:#fde047}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.hover\:opacity-100:hover{opacity:1}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:stroke-orange-400{stroke:#fb923c}.group:hover .group-hover\:opacity-100{opacity:1}
