:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden;overscroll-behavior:none}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body{background-color:#f9fafb}html.dark,html.dark body{background-color:#111827}button,a,[role=button],input,textarea,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(max-width:767px){input,textarea,select{font-size:16px}}[class*=overflow-auto],[class*=overflow-y-auto],[class*=overflow-x-auto],[class*=overflow-scroll]{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-left{padding-left:env(safe-area-inset-left)}.safe-right{padding-right:env(safe-area-inset-right)}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.math-formula{font-family:"Latin Modern Math","Cambria Math",Cambria,Times New Roman,Times,serif;font-style:italic}.floating-markdown{padding:8px 12px;border-radius:8px;line-height:1.5;text-align:left}.floating-markdown-compact{padding:4px 8px;line-height:1.4}.floating-markdown p{margin:.5em 0}.floating-markdown p:first-child{margin-top:0}.floating-markdown p:last-child{margin-bottom:0}.floating-markdown ul,.floating-markdown ol{margin:.5em 0;padding-left:1.5em}.floating-markdown ul{list-style-type:disc}.floating-markdown ol{list-style-type:decimal}.floating-markdown li{margin:.25em 0}.floating-markdown h1,.floating-markdown h2,.floating-markdown h3,.floating-markdown h4,.floating-markdown h5,.floating-markdown h6{margin:.5em 0 .25em;font-weight:600;line-height:1.3}.floating-markdown h1:first-child,.floating-markdown h2:first-child,.floating-markdown h3:first-child,.floating-markdown h4:first-child,.floating-markdown h5:first-child,.floating-markdown h6:first-child{margin-top:0}.floating-markdown code{padding:.1em .3em;border-radius:3px;font-size:.9em;background-color:#0000001a}.floating-markdown pre{margin:.5em 0;padding:.5em;border-radius:4px;overflow-x:auto;background-color:#0000001a}.floating-markdown pre code{padding:0;background-color:transparent}.floating-markdown strong{font-weight:600}.floating-markdown a{color:var(--accent, #2563eb);text-decoration:none}.dark .floating-markdown a{color:var(--accent, #60a5fa)}.floating-markdown a:hover{text-decoration:underline}.floating-markdown .katex{font-size:1em}.floating-markdown .katex-display{margin:.5em 0;overflow-x:auto;overflow-y:hidden}@keyframes headerFlash{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes black-cyan-glow{0%,to{border-color:#000}50%{border-color:#aff}}@keyframes black-purple-glow{0%,to{border-color:#000}50%{border-color:#faf}}@keyframes orange-glow{0%,to{border-color:#a0800080}50%{border-color:#a08000}}@keyframes yellow-glow-half-transparent{0%,to{border-color:#ffff0080}50%{border-color:#ff0}}.default-overlay-marker-insert-control,.default-overlay-marker-delete-control,.default-overlay-marker-modify-control{border-radius:50%;background-color:transparent;border-style:solid;border-color:transparent}.default-overlay-marker-insert-control,.default-overlay-marker-delete-control{width:120px;height:120px;border-width:46px}.default-overlay-marker-insert-control{animation:black-cyan-glow .5s infinite ease-in-out}.default-overlay-marker-delete-control{animation:black-purple-glow .5s infinite ease-in-out}.default-overlay-marker-modify-control{animation:orange-glow 1s infinite ease-in-out;width:44px;height:44px;border-width:8px}@keyframes rainbow-colors{0%{background-color:#d94b82}6.25%{background-color:#db4f5b}12.5%{background-color:#cf5d38}18.75%{background-color:#b86e17}25%{background-color:#987d00}31.25%{background-color:#73880b}37.5%{background-color:#439030}43.75%{background-color:#009556}50%{background-color:#00977e}56.25%{background-color:#0097a6}62.5%{background-color:#0095c8}68.75%{background-color:#008fdf}75%{background-color:#0086e7}81.25%{background-color:#6577e0}87.5%{background-color:#a366c9}93.75%{background-color:#c754a8}to{background-color:#d94b82}}.theme-dark .default-overlay-marker-modify-control{animation-name:yellow-glow-half-transparent}.default-overlay-marker-control-normal,.default-overlay-marker-control-active{animation:rainbow-colors 30s infinite linear;box-shadow:0 0 0 2px #fff,0 0 0 4px #000;width:24px;height:24px;border-radius:50%;cursor:grab}.default-overlay-marker-control-normal[data-clipped]:after,.default-overlay-marker-control-active[data-clipped]:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:20px;background-color:#fff;clip-path:polygon(100% 50%,0 0,0 100%);filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px black);transform-origin:0% 50%;transform:translateY(-50%) rotate(var(--handle-angle, 0deg));pointer-events:none}.default-overlay-marker-display-normal,.default-overlay-marker-display-active{width:24px;height:24px;border-radius:50%;cursor:pointer}.default-overlay-marker-display-normal{background-color:#80808080}.default-overlay-marker-display-active{background-color:#80808080;box-shadow:0 0 10px 10px #80808080}.overlay-marker-circle{cursor:grab;box-shadow:0 0 0 2px #fff,0 0 0 4px #000;width:24px;height:24px;border-radius:50%;background-color:var(--color-circle)}.overlay-marker-square{cursor:grab;box-shadow:0 0 0 2px #fff,0 0 0 4px #000;width:24px;height:24px;background-color:var(--color-square)}.overlay-marker-diamond{cursor:grab;box-shadow:0 0 0 2px #fff,0 0 0 4px #000;width:24px;height:24px;transform:rotate(45deg);background-color:var(--color-diamond)}.overlay-marker-triangle{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:24px;height:24px;clip-path:polygon(50% 15%,100% 85%,0% 85%);background-color:var(--color-triangle)}.overlay-marker-pentagram{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:28.8px;height:28.8px;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background-color:var(--color-pentagram)}.overlay-marker-dot{cursor:grab;box-shadow:0 0 0 2px #fff,0 0 0 4px #000;width:8px;height:8px;border-radius:50%;background-color:var(--color-dot)}.overlay-marker-star{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:28.8px;height:28.8px;clip-path:polygon(50% 0%,63% 25%,88% 25%,75% 50%,88% 75%,63% 75%,50% 100%,37% 75%,12% 75%,25% 50%,12% 25%,37% 25%);background-color:var(--color-star)}.overlay-marker-plus{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:24px;height:24px;clip-path:polygon(30% 0,70% 0,70% 30%,100% 30%,100% 70%,70% 70%,70% 100%,30% 100%,30% 70%,0 70%,0 30%,30% 30%);background-color:var(--color-plus)}.overlay-marker-cross{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:24px;height:24px;clip-path:polygon(30% 0,70% 0,70% 30%,100% 30%,100% 70%,70% 70%,70% 100%,30% 100%,30% 70%,0 70%,0 30%,30% 30%);transform:rotate(45deg);background-color:var(--color-cross)}.overlay-marker-hexagon{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:24px;height:24px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background-color:var(--color-hexagon)}.overlay-marker-pentagon{cursor:grab;filter:drop-shadow(0 0 2px black) drop-shadow(0 0 1px white);width:24px;height:24px;clip-path:polygon(50% 0,95% 35%,78% 90%,22% 90%,5% 35%);background-color:var(--color-pentagon)}.split-pane{--knob-bg: #ffffff;--knob-border: rgba(120, 100, 80, .35);--knob-grip: rgba(120, 100, 80, .55);--knob-bg-hover: #f3f1ee;--knob-accent: var(--accent, #2563eb);position:relative;display:flex;width:100%;height:100%;overflow:hidden}.split-pane-horizontal{flex-direction:row}.split-pane-vertical{flex-direction:column}.split-pane-panel{position:relative;overflow:hidden}.split-pane-knob{z-index:5;display:flex;align-items:center;justify-content:center;background-color:var(--knob-bg);border:1px solid var(--knob-border);box-shadow:0 1px 3px #0000002e;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .12s ease,border-color .12s ease}.split-pane-horizontal .split-pane-knob{width:14px;height:44px;border-radius:7px;cursor:col-resize}.split-pane-vertical .split-pane-knob{width:44px;height:14px;border-radius:7px;cursor:row-resize}.split-pane-knob:hover{background-color:var(--knob-bg-hover);border-color:var(--knob-accent)}.split-pane-knob:focus-visible{outline:none;border-color:var(--knob-accent);box-shadow:0 0 0 2px var(--knob-accent)}.split-pane-grip{background-color:var(--knob-grip);border-radius:1px}.split-pane-horizontal .split-pane-grip{width:2px;height:18px;box-shadow:-3px 0 0 var(--knob-grip),3px 0 0 var(--knob-grip)}.split-pane-vertical .split-pane-grip{width:18px;height:2px;box-shadow:0 -3px 0 var(--knob-grip),0 3px 0 var(--knob-grip)}.dark .split-pane{--knob-bg: #2a2e37;--knob-border: rgba(180, 190, 200, .25);--knob-grip: rgba(200, 210, 220, .6);--knob-bg-hover: #343a45}:root{--screen-to-world-x: 1;--screen-to-world-y: 1}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.motion-fade-in{animation:fade-in var(--animation-duration, .8s) var(--animation-easing, ease-in-out) forwards}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.motion-fade-out{animation:fade-out var(--animation-duration, .8s) var(--animation-easing, ease-in-out) forwards}@keyframes scale-in-world{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.motion-grow>line,.motion-grow>circle,.motion-grow>polygon,.motion-grow>polyline,.motion-grow>path,.motion-grow>rect,.motion-grow>g.iota-svg-label,.motion-grow>g.iota-svg-point>g{transform-box:fill-box;transform-origin:center;animation:scale-in-world var(--animation-duration, .8s) var(--animation-easing, ease-out) forwards}@keyframes scale-out-world{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}.motion-shrink>line,.motion-shrink>circle,.motion-shrink>polygon,.motion-shrink>polyline,.motion-shrink>path,.motion-shrink>rect,.motion-shrink>g.iota-svg-label,.motion-shrink>g.iota-svg-point>g{transform-box:fill-box;transform-origin:center;animation:scale-out-world var(--animation-duration, .8s) var(--animation-easing, ease-in) forwards}.motion-draw{--motion-draw-length: calc(500 * (var(--screen-to-world-x) + var(--screen-to-world-y)));stroke-dasharray:var(--motion-draw-length);stroke-dashoffset:var(--motion-draw-length);animation:draw-world var(--animation-duration, 1.2s) var(--animation-easing, linear) forwards}@keyframes draw-world{to{stroke-dashoffset:0}}.motion-erase{--motion-draw-length: calc(500 * (var(--screen-to-world-x) + var(--screen-to-world-y)));stroke-dasharray:var(--motion-draw-length);stroke-dashoffset:0;animation:erase-world var(--animation-duration, 1.2s) var(--animation-easing, linear) forwards}@keyframes erase-world{to{stroke-dasharray:0 1000}}@keyframes motion-slide-in-world{0%{transform:translate(calc(var(--motion-slide-screen-distance-x, -100) * var(--screen-to-world-x, 1) * 1px),calc(var(--motion-slide-screen-distance-y, 0) * var(--screen-to-world-y, 1) * 1px));opacity:1}to{transform:translate(0);opacity:1}}.motion-slide-in{transform-box:fill-box;transform-origin:center;animation:motion-slide-in-world var(--animation-duration, .6s) var(--animation-easing, ease-out) forwards}@keyframes motion-slide-out-world{0%{transform:translate(0);opacity:1}to{transform:translate(calc(var(--motion-slide-distance-x, 100) * var(--screen-to-world-x, 1) * 1px),calc(var(--motion-slide-distance-y, 0) * var(--screen-to-world-y, 1) * 1px));opacity:0}}.motion-slide-out{transform-box:fill-box;transform-origin:center;animation:motion-slide-out-world var(--animation-duration, .6s) var(--animation-easing, ease-in) forwards}@keyframes pulse-world{0%,to{transform:scale(1);opacity:1}50%{transform:scale(var(--intensity, 1.5));opacity:.7}}.motion-pulse>line,.motion-pulse>circle,.motion-pulse>polygon,.motion-pulse>polyline,.motion-pulse>path,.motion-pluse>rect,.motion-pulse>g.iota-svg-label,.motion-pulse>g.iota-svg-point>g{transform-box:fill-box;transform-origin:center;animation:pulse-world var(--animation-duration, 1s) var(--animation-easing, ease-in-out) var(--animation-count, 2)}@keyframes glow-world{0%,to{filter:drop-shadow(0 0 0px currentColor)}50%{filter:drop-shadow(0 0 calc(var(--intensity, 2) * var(--motion-glow-radius)) currentColor)}}.motion-glow{--motion-glow-radius: calc((var(--screen-to-world-x) + var(--screen-to-world-y)) * 40px);animation:glow-world var(--animation-duration, 1s) var(--animation-easing, ease-in-out) var(--animation-count, 2)}@keyframes stroke-widen{25%,75%{stroke-width:calc(var(--base-stroke-width, 3) * var(--intensity, 2))}}.motion-stroke-widen>line,.motion-stroke-widen>circle,.motion-stroke-widen>polygon,.motion-stroke-widen>polyline,.motion-stroke-widen>path,.motion-stroke-widen>rect{animation:stroke-widen var(--animation-duration, .8s) var(--animation-easing, ease-in-out) var(--animation-count, 2)}@keyframes marker-flash-marker{0%{transform:scale(1);filter:drop-shadow(0 0 0px currentColor)}17%{transform:scale(1.4);filter:drop-shadow(0 0 var(--motion-marker-flash-radius) currentColor)}33%{transform:scale(1.7);filter:drop-shadow(0 0 0px currentColor)}50%{transform:scale(1.8);filter:drop-shadow(0 0 var(--motion-marker-flash-radius) currentColor)}67%{transform:scale(1.5);filter:drop-shadow(0 0 0px currentColor)}83%{transform:scale(1.2);filter:drop-shadow(0 0 var(--motion-marker-flash-radius) currentColor)}to{transform:scale(1);filter:drop-shadow(0 0 0px currentColor)}}@keyframes marker-flash-label{0%,to{opacity:1}30%{opacity:0}60%{opacity:.5}}.motion-marker-flash>g.iota-svg-point>g{--motion-marker-flash-radius: calc((var(--screen-to-world-x) + var(--screen-to-world-y)) * 100px);transform-origin:0 0;animation:marker-flash-marker var(--animation-duration, 1.2s) var(--animation-easing, ease-in-out) var(--animation-count, 1)}.motion-marker-flash>g.iota-svg-label{animation:marker-flash-label var(--animation-duration, 1.2s) var(--animation-easing, ease-in-out) var(--animation-count, 1)}@keyframes blink{0%,49%,51%,to{opacity:1}50%{opacity:0}}.motion-blink{animation:blink calc(var(--animation-duration, 1s) / var(--animation-count, 3)) step-start var(--animation-count, 3)}@keyframes shake-world{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(calc(var(--motion-shake-screen-distance, 8) * var(--screen-to-world-x, 1) * -1px))}20%,40%,60%,80%{transform:translate(calc(var(--motion-shake-sceen-distance, .015) * var(--screen-to-world-x, 1) * 1px))}}.motion-shake{transform-box:fill-box;transform-origin:center;animation:shake-world var(--animation-duration, .5s) var(--animation-easing, ease-in-out) var(--animation-count, 2)}@keyframes bounce-world{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--motion-bounce-screen-height, 8) * var(--screen-to-world-y, 1) * 1px))}}.motion-bounce{transform-box:fill-box;transform-origin:center;animation:bounce-world var(--animation-duration, .6s) cubic-bezier(.28,.84,.42,1) var(--animation-count, 2)}.motion-style-transition{transition:stroke var(--transition-duration, .5s) var(--transition-easing, ease-out),fill var(--transition-duration, .5s) var(--transition-easing, ease-out),stroke-width var(--transition-duration, .5s) var(--transition-easing, ease-out),opacity var(--transition-duration, .5s) var(--transition-easing, ease-out)}@keyframes zoom-in-out{0%,to{transform:scale(1)}50%{transform:scale(1.5)}}.marker-zoom-in-out{animation:zoom-in-out 2s infinite ease-in-out}@keyframes fade-show{0%,to{opacity:1}50%{opacity:.2}}.marker-fade-show{animation:fade-show 2s infinite ease-in-out}@keyframes shake-y{0%,to{transform:translateY(0)}10%,30%,50%,70%,90%{transform:translateY(-5px)}20%,40%,60%,80%{transform:translateY(5px)}}.marker-shake-y{animation:shake-y 2s infinite ease-in-out}@keyframes shake-x{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.marker-shake-x{animation:shake-x 2s infinite ease-in-out}@keyframes stretch-x{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.5)}}.marker-stretch-x{animation:stretch-x 2s infinite ease-in-out}@keyframes stretch-y{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.5)}}.marker-stretch-y{animation:stretch-y 2s infinite ease-in-out}@keyframes stretch-squeeze{0%,to{transform:scaleX(.8) scaleY(1.25)}50%{transform:scaleX(1.25) scaleY(.8)}}.marker-stretch-squeeze{animation:stretch-squeeze 2s infinite ease-in-out}@keyframes diagonal-squeeze{0%,to{transform:rotate(45deg) scaleX(1.5) scaleY(.6667) rotate(-45deg)}50%{transform:rotate(45deg) scaleX(.6667) scaleY(1.5) rotate(-45deg)}}.marker-diagonal-squeeze{animation:diagonal-squeeze 2.4s infinite ease-in-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.marker-spin{animation:spin 2s linear infinite}@keyframes wobble{0%,to{transform:rotate(30deg)}50%{transform:rotate(-30deg)}}.marker-wobble{animation:wobble 3s infinite ease-in-out}@keyframes color-flash{50%{stroke:#3b82f6;fill:#93c5fd}}.marker-color-flash path,.marker-color-flash circle,.marker-color-flash rect,.marker-color-flash polygon,.marker-color-flash line,.marker-color-flash polyline{animation:color-flash 2s infinite ease-in-out}@keyframes rainbow-stroke{0%,to{stroke:#ef4444}16%{stroke:#f97316}33%{stroke:#eab308}50%{stroke:#22c55e}66%{stroke:#3b82f6}83%{stroke:#8b5cf6}}.marker-rainbow-stroke path,.marker-rainbow-stroke circle,.marker-rainbow-stroke rect,.marker-rainbow-stroke polygon,.marker-rainbow-stroke line,.marker-rainbow-stroke polyline{animation:rainbow-stroke 6s infinite linear}@keyframes rainbow-fill{0%,to{fill:#fca5a5}16%{fill:#fdba74}33%{fill:#fde047}50%{fill:#86efac}66%{fill:#93c5fd}83%{fill:#c4b5fd}}.marker-rainbow-fill path,.marker-rainbow-fill circle,.marker-rainbow-fill rect,.marker-rainbow-fill polygon,.marker-rainbow-fill line,.marker-rainbow-fill polyline{animation:rainbow-fill 6s infinite linear}.hover-effect-container{display:inline-block;padding:10px}.hover-effect-enlarge:hover{transform:scale(1.5);transition:transform .3s ease}.hover-effect-rotate:hover{transform:rotate(45deg);transition:transform .3s ease}.hover-effect-change-color path,.hover-effect-change-color circle,.hover-effect-change-color rect,.hover-effect-change-color polygon,.hover-effect-change-color line,.hover-effect-change-color polyline{transition:stroke .3s ease,fill .3s ease}.hover-effect-change-color:hover path,.hover-effect-change-color:hover circle,.hover-effect-change-color:hover rect,.hover-effect-change-color:hover polygon,.hover-effect-change-color:hover line,.hover-effect-change-color:hover polyline{stroke:#ef4444;fill:#fca5a5}
