: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)}.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 .katex{font-size:1em}.floating-markdown .katex-display{margin:.5em 0;overflow-x:auto;overflow-y:hidden}@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-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)}.geometry-overlay-marker-control-normal,.geometry-overlay-marker-control-active{width:48px;height:48px;border-radius:50%;cursor:pointer}.geometry-overlay-marker-display-normal,.geometry-overlay-marker-display-active{width:32px;height:32px;border-radius:50%;cursor:pointer}.geometry-overlay-marker-control-normal,.geometry-overlay-marker-display-normal{background-color:#ff00ff40}.geometry-overlay-marker-control-active,.geometry-overlay-marker-display-active{background-color:#ff00ff80}.markdown-pane{padding:16px 20px;font-size:14px;line-height:1.6;color:var(--text-color, #1f2937)}.pane-title{font-size:1.5em;font-weight:600;margin:0 0 4px;color:var(--heading-color, #111827)}.pane-subtitle{font-size:.9em;color:var(--prefix-color, #6b7280);margin:0 0 12px}.pane-author{font-style:italic}.pane-version{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.pane-separator{color:var(--prefix-color, #6b7280)}.pane-section-title{font-size:1.25em;font-weight:600;margin:20px 0 12px;padding-top:12px;border-top:1px solid var(--border-color, rgba(128, 128, 128, .2));color:var(--heading-color, #111827)}.pane-section-rule{border:none;border-top:1px solid var(--border-color, rgba(128, 128, 128, .2));margin:20px 0 12px}.pane-abstract{margin:0 16px 16px;padding:12px 16px;border-radius:8px;border:1px solid transparent;font-style:italic;font-size:.95em;transition:background-color .2s ease,border-color .2s ease}.pane-abstract-title{font-size:1em;font-weight:600;font-style:normal;margin:0 0 8px;color:var(--heading-color, #111827)}.pane-abstract-content{font-style:italic}.pane-abstract-visible{background-color:var(--step-visible-bg, rgba(34, 197, 94, .12));border-color:var(--step-visible-border, rgba(34, 197, 94, .4))}.pane-abstract-clickable{cursor:pointer}.pane-abstract-clickable:hover{background-color:var(--step-hover-bg, rgba(59, 130, 246, .05));border-color:var(--step-hover-border, rgba(59, 130, 246, .2))}.pane-abstract-clickable:focus{outline:none;border-color:var(--step-focus-border, rgba(59, 130, 246, .5))}.pane-keywords{margin:0 16px 16px;font-size:.9em;color:var(--text-color, #3d3d3d)}.pane-keywords-label{font-weight:600}.pane-keywords-list{font-style:italic}.pane-metadata{margin:0 16px 16px;font-size:.85em;color:var(--prefix-color, #6b7280)}.pane-prereq-label{font-weight:600;color:var(--text-color, #3d3d3d)}.pane-prereq-link{color:var(--link-color, #2563eb);text-decoration:none}.pane-prereq-link:hover{text-decoration:underline}.pane-difficulty{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.9em;font-weight:500;text-transform:capitalize}.pane-difficulty-beginner{background-color:var(--difficulty-beginner-bg, rgba(34, 197, 94, .15));color:var(--difficulty-beginner-text, #166534)}.pane-difficulty-intermediate{background-color:var(--difficulty-intermediate-bg, rgba(234, 179, 8, .15));color:var(--difficulty-intermediate-text, #a16207)}.pane-difficulty-advanced{background-color:var(--difficulty-advanced-bg, rgba(239, 68, 68, .15));color:var(--difficulty-advanced-text, #dc2626)}.pane-notes{margin-bottom:12px}.pane-notes-section{padding:12px;border-radius:8px;border:1px solid transparent;margin-bottom:12px;transition:background-color .2s ease,border-color .2s ease}.pane-notes-preview{position:relative}.pane-notes-preview:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1.5em;background:linear-gradient(transparent,var(--pane-bg, #faf9f7));pointer-events:none}.pane-notes-toggle{display:inline-block;margin-top:4px;padding:2px 0;background:none;border:none;color:var(--link-color, #2563eb);font-size:.9em;cursor:pointer;text-decoration:none}.pane-notes-toggle:hover{text-decoration:underline}.pane-notes-toggle:focus{outline:2px solid var(--step-focus-border, rgba(59, 130, 246, .5));outline-offset:2px;border-radius:2px}.pane-step{margin:8px 0;padding:12px;border-radius:8px;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease}.pane-step-clickable{cursor:pointer}.pane-step-clickable:hover{background-color:var(--step-hover-bg, rgba(59, 130, 246, .05));border-color:var(--step-hover-border, rgba(59, 130, 246, .2))}.pane-step-clickable:focus{outline:none;border-color:var(--step-focus-border, rgba(59, 130, 246, .5))}.pane-step-visible{background-color:var(--step-visible-bg, rgba(34, 197, 94, .12));border-color:var(--step-visible-border, rgba(34, 197, 94, .4))}.pane-step-next{background-color:var(--step-next-bg, rgba(59, 130, 246, .08));border-color:var(--step-next-border, rgba(59, 130, 246, .25));border-style:dashed}.pane-step-past{opacity:.6}.step-title{font-size:1.1em;font-weight:500;margin:0 0 8px;color:var(--heading-color, #111827)}.step-prefix{color:var(--prefix-color, #6b7280);font-weight:400}.step-notes{font-size:.95em}.pane-conclusion{margin-top:16px;padding:12px;border-radius:8px;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease}.pane-conclusion-next{background-color:var(--step-next-bg, rgba(59, 130, 246, .08));border-color:var(--step-next-border, rgba(59, 130, 246, .25));border-style:dashed}.pane-conclusion-clickable{cursor:pointer}.pane-conclusion-clickable:hover{background-color:var(--step-hover-bg, rgba(59, 130, 246, .05));border-color:var(--step-hover-border, rgba(59, 130, 246, .2))}.pane-conclusion-clickable:focus{outline:none;border-color:var(--step-focus-border, rgba(59, 130, 246, .5))}.markdown-content h2{font-size:1.25em;font-weight:600;margin:16px 0 8px;color:var(--heading-color, #111827)}.markdown-content h3{font-size:1.1em;font-weight:600;margin:14px 0 6px;color:var(--heading-color, #111827)}.markdown-content h4{font-size:1em;font-weight:600;margin:12px 0 4px;color:var(--heading-color, #111827)}.markdown-content h5{font-size:.95em;font-weight:600;margin:10px 0 4px;color:var(--heading-color, #111827)}.markdown-content h6{font-size:.9em;font-weight:600;margin:8px 0 4px;color:var(--prefix-color, #6b7280)}.pane-notes>:first-child,.step-notes>:first-child{margin-top:0}.markdown-content p{margin:0 0 8px}.markdown-content p:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{margin:8px 0;padding-left:24px}.markdown-content ul{list-style-type:disc}.markdown-content ol{list-style-type:decimal}.markdown-content li{margin:4px 0}.markdown-content strong{font-weight:600}.markdown-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em;padding:2px 4px;background-color:var(--code-bg, rgba(0, 0, 0, .05));border-radius:3px}.markdown-content pre{margin:12px 0;padding:12px;background-color:var(--pre-bg, rgba(0, 0, 0, .05));border-radius:6px;overflow-x:auto}.markdown-content pre code{padding:0;background:none}.markdown-content table{border-collapse:collapse;margin:12px 0;width:100%;font-size:.95em}.markdown-content th,.markdown-content td{border:1px solid var(--border-color, rgba(128, 128, 128, .3));padding:6px 10px;text-align:left}.markdown-content th{background-color:var(--code-bg, rgba(0, 0, 0, .05));font-weight:600}.markdown-content tr:nth-child(2n){background-color:var(--code-bg, rgba(0, 0, 0, .02))}.markdown-content .katex-display{margin:12px 0;overflow-x:auto}.markdown-pane{--pane-bg: #faf9f7;--text-color: #3d3d3d;--heading-color: #2a2a2a;--prefix-color: #7a7a7a;--link-color: #2563eb;--border-color: rgba(120, 100, 80, .15);--step-hover-bg: rgba(100, 140, 180, .08);--step-hover-border: rgba(100, 140, 180, .25);--step-focus-border: rgba(100, 140, 180, .5);--step-visible-bg: rgba(34, 160, 90, .12);--step-visible-border: rgba(34, 160, 90, .4);--step-next-bg: rgba(100, 140, 180, .08);--step-next-border: rgba(100, 140, 180, .35);--code-bg: rgba(60, 50, 40, .06);--pre-bg: rgba(60, 50, 40, .04);--difficulty-beginner-bg: rgba(34, 197, 94, .15);--difficulty-beginner-text: #166534;--difficulty-intermediate-bg: rgba(234, 179, 8, .15);--difficulty-intermediate-text: #a16207;--difficulty-advanced-bg: rgba(239, 68, 68, .15);--difficulty-advanced-text: #dc2626;background-color:var(--pane-bg)}.dark .markdown-pane{--pane-bg: #1e2128;--text-color: #d4d4d8;--heading-color: #e8e8ec;--prefix-color: #9898a0;--link-color: #60a5fa;--border-color: rgba(180, 190, 200, .12);--step-hover-bg: rgba(140, 170, 210, .1);--step-hover-border: rgba(140, 170, 210, .25);--step-focus-border: rgba(140, 170, 210, .5);--step-visible-bg: rgba(74, 200, 130, .15);--step-visible-border: rgba(74, 200, 130, .45);--step-next-bg: rgba(140, 170, 210, .1);--step-next-border: rgba(140, 170, 210, .35);--code-bg: rgba(200, 210, 220, .1);--pre-bg: rgba(200, 210, 220, .06);--difficulty-beginner-bg: rgba(74, 222, 128, .2);--difficulty-beginner-text: #86efac;--difficulty-intermediate-bg: rgba(250, 204, 21, .2);--difficulty-intermediate-text: #fde047;--difficulty-advanced-bg: rgba(248, 113, 113, .2);--difficulty-advanced-text: #fca5a5}.unified-geometry-layout{display:flex;width:100%;height:100%;overflow:hidden}.layout-narrow-portrait{flex-direction:column}.layout-narrow-portrait .geometry-container{flex:1;min-height:0;position:relative}.layout-narrow-portrait .controls-toolbar{flex-shrink:0;padding:8px;display:flex;justify-content:center}.layout-wide-landscape{position:relative}.layout-side-by-side{flex-direction:row}.layout-side-by-side .geometry-container{flex:1;min-width:0;position:relative}.layout-side-by-side .markdown-container{flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border-color, rgba(120, 100, 80, .15));background-color:var(--markdown-bg, #faf9f7)}.layout-side-by-side .markdown-scroll{flex:1;overflow-y:auto;min-height:0}.layout-side-by-side .controls-toolbar{flex-shrink:0;padding:8px;display:flex;justify-content:center;border-top:1px solid var(--border-color, rgba(120, 100, 80, .15))}.dark .layout-side-by-side .markdown-container{--markdown-bg: #1e2128;--border-color: rgba(180, 190, 200, .12)}: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}
