:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .85)}@media (prefers-color-scheme: white){:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--color-icon: #0d0d0d;--section-gap: 160px}}:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2);--color-icon: rgb(209, 163, 69, .42)}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.43;font-family:Roboto,Helvetica,Arial,sans-serif;letter-spacing:.01071em;font-size:18px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{margin:0;font-weight:400}#control[data-v-fea58d7b]{width:500px;height:350px;position:absolute;bottom:50px;right:50px;border:1px solid white;background:var(--color-background)}#control canvas[data-v-fea58d7b]{width:100%;height:100%}#hor-ellipse[data-v-fea58d7b]{top:10%;left:10%;width:60%;height:40%;position:absolute;border-radius:50%;border:1px solid white}#hide-top-hor-ellipse[data-v-fea58d7b]{top:10%;left:10%;width:60%;height:20%;position:absolute;background:var(--color-background)}#gl-canvas[data-v-fea58d7b]{width:100%;height:100%;border:1px solid silver}svg rect[data-v-fea58d7b]{fill:#313139;stroke-width:.5px}svg path[data-v-fea58d7b]{fill:#e7e7e7}svg rect[data-v-fea58d7b],svg path[data-v-fea58d7b]{stroke:#e7e7e7}svg path.hollow[data-v-fea58d7b]{fill:none}svg text[data-v-fea58d7b]{fill:var(--color-text);font-size:15px}svg text.small[data-v-fea58d7b]{font-size:13.5px}svg a text[data-v-fea58d7b]{fill:var(--color-text);text-decoration:underline}a[data-v-fea58d7b]{color:var(--color-text)}main[data-v-fea58d7b]{position:relative;display:flex;min-width:0;height:100vh;--disconnected-color: rgb(240, 120, 133);--connected-color: rgb(97, 234, 189)}svg[data-v-eca32b87]{background-color:var(--color-background);opacity:.42;transition:transform .2s ease;transform-origin:top left}svg.enlarged[data-v-eca32b87]{transform:scale(1.67)}svg path[data-v-eca32b87]{fill-rule:evenodd;clip-rule:evenodd;stroke-width:var(--6250924e);stroke:var(--color-icon)}svg[data-v-eca32b87]>*{fill:var(--color-icon)}svg .non-evenodd[data-v-eca32b87]{fill-rule:none;clip-rule:none}svg circle.eye[data-v-eca32b87]{fill:#5f849c}nav[data-v-45336c20]{position:absolute;left:0;top:4px;cursor:pointer}.menu[data-v-45336c20]{width:12.5em;font-size:1.1em;background-color:var(--color-background-mute);opacity:.85;position:absolute;left:2px;top:calc(150% + 2px);padding-inline-start:0;border:1px dotted silver;border-top:none;list-style-type:none;padding:.35em 0;z-index:100}.menu a[data-v-45336c20]{padding:.3em 1em .3em 1.75em;display:block;color:#fff;text-decoration:none;position:relative}.menu a[aria-current][data-v-45336c20]:before{content:"➤";position:absolute;left:.5em}.menu .about[data-v-45336c20]{border-top:1px solid silver;margin-top:.5em;display:flex;justify-content:flex-end;padding-right:.75em;position:relative}.signature[data-v-45336c20]{position:absolute;bottom:-.75em;right:1.5em;margin-left:1.25em;font-size:50%;opacity:.25}.op-mode[data-v-45336c20]:not(:empty):before{content:" :: "}.stage[data-v-45336c20]:not(:empty):before{content:" :: "}h2[data-v-45336c20]{border-bottom:1px solid #ccc;margin:0 0 20px 80px}
