.alert-wrapper{background-color:initial;bottom:0;display:flex;height:100%;justify-content:center;left:0;overflow:hidden;pointer-events:none;position:absolute;transition:all .25s ease;width:100%;z-index:200}.alert-wrapper.alert-hidden{-webkit-transform:translateY(100%);transform:translateY(100%)}.alert-wrapper.alert-shown{-webkit-transform:translateY(0);transform:translateY(0)}.alert-container{display:flex;flex-direction:column-reverse;gap:2rem;padding:2rem;position:relative;width:min(400px,95vw)}.alert{--button-primary:var(--alertColor);--pattern-1:var(--alert-bg-1);--pattern-2:var(--alert-bg-2);background-color:var(--background);background-image:linear-gradient(30deg,var(--pattern-1) 12%,transparent 12.5%,transparent 87%,var(--pattern-1) 87.5%,var(--pattern-1)),linear-gradient(150deg,var(--pattern-1) 12%,transparent 12.5%,transparent 87%,var(--pattern-1) 87.5%,var(--pattern-1)),linear-gradient(30deg,var(--pattern-1) 12%,transparent 12.5%,transparent 87%,var(--pattern-1) 87.5%,var(--pattern-1)),linear-gradient(150deg,var(--pattern-1) 12%,transparent 12.5%,transparent 87%,var(--pattern-1) 87.5%,var(--pattern-1)),linear-gradient(60deg,var(--pattern-2) 25%,transparent 25.5%,transparent 75%,var(--pattern-2) 75%,var(--pattern-2)),linear-gradient(60deg,var(--pattern-2) 25%,transparent 25.5%,transparent 75%,var(--pattern-2) 75%,var(--pattern-2));background-position:0 0,0 0,10px 18px,10px 18px,0 0,10px 18px;background-size:20px 35px;border-radius:10px;box-shadow:4px 4px 1px var(--contrast);display:flex;gap:1rem;justify-content:space-between;left:0;padding:1rem;pointer-events:all;position:absolute;width:100%}@-webkit-keyframes alertIn{0%{-webkit-transform:translateY(100vh);transform:translateY(100vh)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes alertIn{0%{-webkit-transform:translateY(100vh);transform:translateY(100vh)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes alertOut{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(100vh);transform:translateY(100vh)}}@keyframes alertOut{0%{-webkit-transform:translateY(0);transform:translateY(0)}to{-webkit-transform:translateY(100vh);transform:translateY(100vh)}}.alert-content{background-color:var(--background);border-radius:10px;flex:1 1;flex-direction:column;padding:1rem}.alert-content,.alert-control{align-items:center;display:flex;justify-content:center}.alert .ui-button,.alert .ui-button:hover,.alert-content p{background-color:var(--background)}.toggle{color:var(--primary);cursor:pointer;gap:1rem;transition:all .25s ease}.dialogue,.toggle{display:flex;justify-content:center}.dialogue{align-items:center;background-color:rgba(0,0,0,.75);flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:100}.EpilepsyWarning{-webkit-animation:fadeIn 4s ease forwards;animation:fadeIn 4s ease forwards}.fade-in{-webkit-animation:fadeIn var(--fade-duration) ease forwards;animation:fadeIn var(--fade-duration) ease forwards}@-webkit-keyframes fadeIn{0%{opacity:0}75%{opacity:1}}@keyframes fadeIn{0%{opacity:0}75%{opacity:1}}@-webkit-keyframes dialogueSlideUp{0%{opacity:0;-webkit-transform:translateY(250%);transform:translateY(250%)}50%{-webkit-transform:translateY(-25px);transform:translateY(-25px)}75%{-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes dialogueSlideUp{0%{opacity:0;-webkit-transform:translateY(250%);transform:translateY(250%)}50%{-webkit-transform:translateY(-25px);transform:translateY(-25px)}75%{-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.dialogue-internal{border-radius:0;position:relative;transition:all .25s ease}.dialogue-content{background-color:var(--background);border-radius:inherit;color:var(--contrast);display:flex;flex-direction:column;gap:1rem;max-width:min(600px,95vw);padding:2rem;z-index:2}.EpilepsyWarning .dialogue-content{padding:4rem}.dialogue-popout-shapes{border-radius:inherit}.landing-title{display:flex;flex-wrap:wrap;font-size:3rem;font-weight:700;gap:1rem;justify-content:center}.warning-title{color:var(--contrast);font-size:larger;font-weight:700;text-align:center}.warning-blurb{color:var(--contrast);font-size:.75rem;text-align:justify;text-align-last:center}.warning-dont-show-again{width:100%}.tagline,.warning-dont-show-again{align-items:center;display:flex;justify-content:center}.tagline{font-weight:700}.dialogue-controls,.warning-controls{display:flex;justify-content:center}.fade-out{-webkit-animation:fadeOut var(--fade-duration) ease forwards;animation:fadeOut var(--fade-duration) ease forwards}@-webkit-keyframes fadeOut{0%{opacity:1}25%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}25%{opacity:1}to{opacity:0}}.fly-in{-webkit-animation:flyIn 1.5s ease forwards;animation:flyIn 1.5s ease forwards;-webkit-animation-delay:var(--fly-in-delay);animation-delay:var(--fly-in-delay);-webkit-transform:translateX(var(--fly-in-origin));transform:translateX(var(--fly-in-origin))}@-webkit-keyframes flyIn{0%{-webkit-transform:translateX(var(--fly-in-origin));transform:translateX(var(--fly-in-origin))}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes flyIn{0%{-webkit-transform:translateX(var(--fly-in-origin));transform:translateX(var(--fly-in-origin))}to{-webkit-transform:translateX(0);transform:translateX(0)}}.jostle{-webkit-animation:jostle .4s ease forwards;animation:jostle .4s ease forwards}@-webkit-keyframes jostle{0%{-webkit-transform:translate(0);transform:translate(0)}20%{-webkit-transform:translate(var(--jostle-1),var(--jostle-2));transform:translate(var(--jostle-1),var(--jostle-2))}40%{-webkit-transform:translate(var(--jostle-3),var(--jostle-4));transform:translate(var(--jostle-3),var(--jostle-4))}60%{-webkit-transform:translate(var(--jostle-5),var(--jostle-6));transform:translate(var(--jostle-5),var(--jostle-6))}80%{-webkit-transform:translate(var(--jostle-7),var(--jostle-8));transform:translate(var(--jostle-7),var(--jostle-8))}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes jostle{0%{-webkit-transform:translate(0);transform:translate(0)}20%{-webkit-transform:translate(var(--jostle-1),var(--jostle-2));transform:translate(var(--jostle-1),var(--jostle-2))}40%{-webkit-transform:translate(var(--jostle-3),var(--jostle-4));transform:translate(var(--jostle-3),var(--jostle-4))}60%{-webkit-transform:translate(var(--jostle-5),var(--jostle-6));transform:translate(var(--jostle-5),var(--jostle-6))}80%{-webkit-transform:translate(var(--jostle-7),var(--jostle-8));transform:translate(var(--jostle-7),var(--jostle-8))}to{-webkit-transform:translate(0);transform:translate(0)}}.save-pattern,.save-pattern-dialogeue .dialogue-content{align-items:center}.save-pattern{border:1px solid var(--contrast);border-radius:1000px;display:flex;overflow:hidden;transition:all .2s ease;width:100%}.save-pattern input{border:none;flex:1 1;outline:none;padding:.5rem;text-align:end}.save-pattern .save-button{align-items:center;background-color:var(--contrast);color:var(--background);cursor:pointer;display:flex;justify-content:center;padding:.5rem 1rem .5rem .75rem}.dialogue-subtitle{font-weight:700}.pattern-list{display:flex;flex-direction:column;max-height:300px;overflow-y:auto;width:100%}.load-pattern{cursor:pointer;padding:.5rem;transition:all .1s ease;width:100%}.load-pattern:hover{background-color:var(--offset)}.dialogue-section{width:100%}.load-pattern-dialogue .dialogue-content{width:min(95vw,600px)}body{--background:#f8f8f8;--offset:#dedede;--contrast:#333;--button-primary:var(--contrast);--error:#840505;--error-opacity-low:#84050542;--error-opacity-lowest:#84050526;--success:#82c346;--success-opacity-low:#82c34642;--success-opacity-lowest:#82c34626;--info:#2b0584;--info-opacity-low:#2b058442;--info-opacity-lowest:#2b058426;--warning:#d6871f;--warning-opacity-low:#d6871f42;--warning-opacity-lowest:#d6871f26}.App{height:100vh;overflow:hidden;width:100vw}*{box-sizing:border-box}.canvas{background-color:#fff;overflow:hidden;position:relative}.square{cursor:pointer;position:absolute}svg{transition:all .2s ease}svg:active{scale:.75}.pause-animations *{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.nodisplay{display:none!important}@-webkit-keyframes wobble{25%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}75%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}0%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes wobble{25%{-webkit-transform:rotate(30deg);transform:rotate(30deg)}75%{-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}0%{-webkit-transform:rotate(0);transform:rotate(0)}}.rotate3d-y{-webkit-animation:rotate3dy .8s ease infinite;animation:rotate3dy .8s ease infinite}.rotate3d-x{-webkit-animation:rotate3dx .8s ease infinite;animation:rotate3dx .8s ease infinite}@-webkit-keyframes rotate3dy{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}50%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(1turn);transform:rotateY(1turn)}}@keyframes rotate3dy{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}50%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(1turn);transform:rotateY(1turn)}}@-webkit-keyframes rotate3dx{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)}50%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn)}}@keyframes rotate3dx{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg)}50%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn)}}.tremble{-webkit-animation:tremble .8s ease infinite;animation:tremble .8s ease infinite}@-webkit-keyframes tremble{0%{-webkit-transform:translate(0);transform:translate(0)}10%{-webkit-transform:translate(-5px,10px);transform:translate(-5px,10px)}20%{-webkit-transform:translate(8px,-4px);transform:translate(8px,-4px)}30%{-webkit-transform:translate(-9px,6px);transform:translate(-9px,6px)}40%{-webkit-transform:translate(3px,-7px);transform:translate(3px,-7px)}50%{-webkit-transform:translate(10px,-1px);transform:translate(10px,-1px)}60%{-webkit-transform:translate(-6px,5px);transform:translate(-6px,5px)}70%{-webkit-transform:translate(2px,-8px);transform:translate(2px,-8px)}80%{-webkit-transform:translate(-7px,3px);transform:translate(-7px,3px)}90%{-webkit-transform:translate(4px,-9px);transform:translate(4px,-9px)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes tremble{0%{-webkit-transform:translate(0);transform:translate(0)}10%{-webkit-transform:translate(-5px,10px);transform:translate(-5px,10px)}20%{-webkit-transform:translate(8px,-4px);transform:translate(8px,-4px)}30%{-webkit-transform:translate(-9px,6px);transform:translate(-9px,6px)}40%{-webkit-transform:translate(3px,-7px);transform:translate(3px,-7px)}50%{-webkit-transform:translate(10px,-1px);transform:translate(10px,-1px)}60%{-webkit-transform:translate(-6px,5px);transform:translate(-6px,5px)}70%{-webkit-transform:translate(2px,-8px);transform:translate(2px,-8px)}80%{-webkit-transform:translate(-7px,3px);transform:translate(-7px,3px)}90%{-webkit-transform:translate(4px,-9px);transform:translate(4px,-9px)}to{-webkit-transform:translate(0);transform:translate(0)}}.scale-down{-webkit-animation:scaledown .8s ease infinite;animation:scaledown .8s ease infinite}@-webkit-keyframes scaledown{0%{scale:1}50%{scale:.5}to{scale:1}}@keyframes scaledown{0%{scale:1}50%{scale:.5}to{scale:1}}.scale-up{-webkit-animation:scaleup .8s ease infinite;animation:scaleup .8s ease infinite}@-webkit-keyframes scaleup{0%{scale:1}50%{scale:1.5}to{scale:1}}@keyframes scaleup{0%{scale:1}50%{scale:1.5}to{scale:1}}.spin{-webkit-animation:spin .8s ease infinite;animation:spin .8s ease infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.circularize{-webkit-animation:circularize .8s ease infinite;animation:circularize .8s ease infinite}@-webkit-keyframes circularize{0%{border-radius:0}50%{border-radius:10000px}to{border-radius:0}}@keyframes circularize{0%{border-radius:0}50%{border-radius:10000px}to{border-radius:0}}.half-spin-up-once{-webkit-animation:half-spin-up .2s ease 1 forwards;animation:half-spin-up .2s ease 1 forwards}.half-spin-down-once{-webkit-animation:half-spin-down .2s ease 1 forwards;animation:half-spin-down .2s ease 1 forwards}@-webkit-keyframes half-spin-up{0%{rotate:0deg}to{rotate:180deg}}@keyframes half-spin-up{0%{rotate:0deg}to{rotate:180deg}}@-webkit-keyframes half-spin-down{0%{rotate:180deg}to{rotate:1turn}}@keyframes half-spin-down{0%{rotate:180deg}to{rotate:1turn}}.tooltip-container{display:flex;justify-content:center;overflow:hidden;pointer-events:none;position:absolute;z-index:10}.tooltip-wrapper{--transform-left-pixels:-100px;background-color:var(--contrast);border-radius:inherit;color:var(--background);display:flex;justify-content:center;overflow:visible;padding:.5rem 1rem;position:relative}.tooltip-internal{border-radius:5px;position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.tooltip-popout-shapes{border-radius:inherit}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translateX(-150%);transform:translateX(-150%)}25%{-webkit-transform:translateX(3px);transform:translateX(3px)}50%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{-webkit-transform:translateX(-150%);transform:translateX(-150%)}25%{-webkit-transform:translateX(3px);transform:translateX(3px)}50%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes tooltipShapeSlideIn{0%{opacity:0;-webkit-transform:translateX(-150%);transform:translateX(-150%)}25%{opacity:1;-webkit-transform:translateX(3px);transform:translateX(3px)}50%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes tooltipShapeSlideIn{0%{opacity:0;-webkit-transform:translateX(-150%);transform:translateX(-150%)}25%{opacity:1;-webkit-transform:translateX(3px);transform:translateX(3px)}50%{-webkit-transform:translateX(-3px);transform:translateX(-3px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.relative-parent{height:100%;position:relative;width:100%}.toolbar{pointer-events:none}.toolbar>*{pointer-events:auto}.toolbar-container{pointer-events:none}.toolbar-container>:not(.toolbar){pointer-events:auto}.toolbar-widget{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;transition:all .2s ease;width:100%;z-index:2}.toolbar-icon:hover,.toolbar-widget:hover{-webkit-animation:wobble .4s ease;animation:wobble .4s ease}.subtoolbar-wrapper{background-color:#ebebeb;border-radius:0 0 1000px 1000px;cursor:auto;gap:1rem;justify-content:center;left:0;max-height:0;outline-color:#ebebeb;outline-style:solid;outline-width:0;overflow:hidden;position:absolute;top:50%;transition:max-height .4s ease;z-index:1}.subtoolbar-container,.subtoolbar-wrapper{align-items:center;display:flex;flex-direction:column;width:100%}.subtoolbar-container{gap:.5rem;justify-content:end;padding:3rem 0 2rem}.subtoolbar-wrapper:focus-within,.subtoolbar-wrapper:hover,.toolbar-widget:hover~.subtoolbar-wrapper{max-height:400px;outline-width:2px}.subtoolbar-option-wrapper,.subtoolbar-option-wrapper .relative-parent{align-items:center;display:flex;justify-content:center;width:100%}.subtoolbar-separator{border-bottom:1px dashed #d3d3d3;margin:1rem 0;width:75%}.subtoolbar-button{align-items:center;background-color:#fff;border:6px solid #fff;border-radius:50% 50%;cursor:pointer;display:flex;font-size:1rem;height:2.25rem;justify-content:center;width:2.25rem}.number-input-wrapper{display:flex;flex-direction:column;gap:.5rem}.number-input-wrapper .input-container{font-size:1rem;font-weight:700;padding:0 .5rem;text-align:center;width:100%}.input-with-text{align-items:center;display:flex;flex-direction:column;width:100%}.units{color:var(--contrast);font-size:.5rem}.number-input-wrapper input{background-color:initial;border:none;font-size:1rem;font-weight:700;outline:none;overflow:visible;text-align:center;width:100%}.number-input-wrapper input::-webkit-inner-spin-button,.number-input-wrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input-wrapper input[type=number]{-moz-appearance:textfield}.ui-button{align-items:center;border:2px solid transparent;border-radius:1000px;color:var(--button-primary);cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:.5rem 1rem;transition:all .2s ease}.ui-button.round{aspect-ratio:1/1}.ui-button:hover{border-color:var(--button-primary);box-shadow:1px 1px 1px var(--button-primary);translate:-2px -2px}.ui-button:active{background-color:var(--button-primary);color:#fff;translate:0 0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.a9c45213.css.map*/