:root{color:#000;background:#fff;--plot-drawer-height: 304px;--plot-drawer-motion: 1.5s cubic-bezier(.22, 1, .36, 1);--hammer-cursor-static: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg transform='translate(20 18) rotate(60 4 3)'%3E%3Cpath d='M-12,-10C-12,-15 4,-15 4,-10V10C4,15 -12,15 -12,10Z' fill='%23d9d9d9' stroke='black' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cellipse cx='-4' cy='-10' rx='8' ry='4.5' fill='white' stroke='black' stroke-width='2.6'/%3E%3Cpath d='M-12,7C-9,10.5 1,10.5 4,7V10C4,15 -12,15 -12,10Z' fill='%238f8f8f' stroke='black' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cpath d='M4,-1H22C25,-1 25,7 22,7H4Z' fill='white' stroke='black' stroke-width='2.6' stroke-linejoin='round'/%3E%3Cellipse cx='22' cy='3' rx='4' ry='4' fill='white' stroke='black' stroke-width='2.6'/%3E%3Cline x1='-8' y1='-3' x2='-8' y2='6' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") 24 21, pointer;font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{margin:0;min-width:320px;background:#fff}button,input{font:inherit}.app-shell{width:100%;height:100vh;display:grid;grid-template-rows:auto auto 1fr;overflow:hidden;background:transparent}.app-shell.hammer-cursor{cursor:var(--hammer-cursor-static)}.app-shell.hammer-cursor button:not(:disabled),.app-shell.hammer-cursor a,.app-shell.hammer-cursor [role=button]{cursor:pointer}.app-shell.hammer-cursor input,.app-shell.hammer-cursor textarea,.app-shell.hammer-cursor select{cursor:text}.app-shell.hammer-cursor button:disabled{cursor:default}.control-panel{position:relative;z-index:30;display:grid;width:330px;gap:10px;justify-items:start;padding:14px 0 6px 22px;background:transparent;opacity:0;transform:translateY(-16px);transition:opacity .9s ease,transform .9s ease}.main-entered .control-panel{opacity:1;transform:translateY(0)}.runtime-field{--runtime-progress-offset-x: 0px;position:relative;z-index:2;padding:0;margin-top:-1px;background:transparent;opacity:0;transform:translateY(-16px);transition:opacity .9s ease,transform .9s ease}.main-entered .runtime-field{opacity:1;transform:translateY(0)}.runtime-number-field{display:block}.runtime-number-field input{width:78px;border:0;border-bottom:2px solid #000000;outline:0;padding:0 0 2px;background:transparent;color:#000;font-size:14px;font-weight:400;font-variant-numeric:tabular-nums;text-align:left}.runtime-number-field input:disabled{color:#777;opacity:1}.runtime-label{color:#000;font-size:14px;font-weight:650;white-space:nowrap}.runtime-unit{color:#444;font-size:12px;font-weight:400;white-space:nowrap}.runtime-help{justify-self:end;margin-left:4px}.runtime-field-content{display:grid;width:240px;min-height:24px}.runtime-input-layer,.runtime-progress-layer{grid-area:1 / 1;align-items:center}.runtime-input-layer{display:grid;grid-template-columns:72px 78px auto;gap:8px;opacity:1;transform:translateY(0);transition:opacity .15s ease .7s,transform .22s cubic-bezier(.22,1,.36,1) .7s}.runtime-label{display:inline-flex;align-items:center}.runtime-progress-layer{display:flex;justify-content:center;position:relative;left:var(--runtime-progress-offset-x);width:163px;pointer-events:none;opacity:0;transform:translateY(0);transition:opacity 1ms linear .5s,transform .36s cubic-bezier(.22,1,.36,1)}.runtime-field.show-progress .runtime-input-layer{pointer-events:none;opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .26s cubic-bezier(.22,1,.36,1)}.runtime-field.show-progress .runtime-progress-layer{opacity:1;transform:translateY(0);transition:opacity .12s ease,transform .36s cubic-bezier(.22,1,.36,1)}.runtime-progress{position:relative;width:.24px;height:22px;overflow:hidden;border:2px solid #000000;border-radius:0;background:#fff;transition:width .7s cubic-bezier(.22,1,.36,1)}.runtime-field.show-progress .runtime-progress{width:163px}.runtime-progress-fill{position:absolute;inset:0;background:#000;transform-origin:left center;transition:transform 90ms linear}.input-grid{display:grid;grid-template-columns:1fr;gap:6px;width:240px}.parameter-input-area{position:relative;width:240px}.parameter-input-switcher{display:grid;width:240px}.parameter-input-panel{grid-area:1 / 1;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-8px);transition:max-height .36s ease,opacity .24s ease,transform .36s cubic-bezier(.22,1,.36,1)}.parameter-input-panel.active{max-height:104px;opacity:1;z-index:3;overflow:visible;pointer-events:auto;transform:translateY(0)}.parameter-input-panel.modal-parameter-fields.active{max-height:104px}.parameter-input-panel.pole-parameter-fields.active{max-height:70px}.parameter-mode-toggle{--parameter-lever-pivot-x: 15px;--parameter-lever-length: 17px;--parameter-lever-angle: 42deg;--parameter-lever-knob-size: 10px;--parameter-lever-knob-radius: calc(var(--parameter-lever-knob-size) / 2);position:absolute;top:-14px;left:266px;z-index:2;width:30px;height:34px;border:0;padding:0;background:transparent;color:#000;cursor:pointer;line-height:1}.parameter-mode-toggle:disabled{color:#b8b8b8;cursor:default}.parameter-mode-lever-arm{position:absolute;top:0;left:calc(var(--parameter-lever-pivot-x) - 1px);width:2px;height:var(--parameter-lever-length);background:currentColor;transform-origin:top center;transform:rotate(var(--parameter-lever-angle));transition:transform .24s ease}.parameter-mode-lever-knob{position:absolute;top:var(--parameter-lever-length);left:calc(var(--parameter-lever-pivot-x) - var(--parameter-lever-knob-radius));width:var(--parameter-lever-knob-size);height:var(--parameter-lever-knob-size);border:2px solid currentColor;border-radius:50%;background:#fff;box-sizing:border-box;transform:rotate(var(--parameter-lever-angle));transform-origin:var(--parameter-lever-knob-radius) calc(-1 * var(--parameter-lever-length));transition:transform .24s ease}.parameter-mode-toggle.modal .parameter-mode-lever-arm,.parameter-mode-toggle.modal .parameter-mode-lever-knob{transform:rotate(0)}.parameter-mode-toggle.poles .parameter-mode-lever-arm,.parameter-mode-toggle.poles .parameter-mode-lever-knob{transform:rotate(calc(-1 * var(--parameter-lever-angle)))}.mode-input-switcher{display:grid;width:240px}.mode-input-panel{grid-area:1 / 1;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-8px);transition:max-height .32s ease,opacity .22s ease,transform .32s ease}.mode-input-panel.active{max-height:34px;opacity:1;pointer-events:auto;transform:translateY(0)}.pid-input-panel{max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-8px);transition:max-height .32s ease,opacity .22s ease,transform .32s ease}.pid-input-panel.active{max-height:96px;opacity:1;pointer-events:auto;transform:translateY(0)}.number-field{display:grid;grid-template-columns:72px 78px auto;align-items:baseline;gap:8px;color:#000;font-size:14px}.number-field>span{font-weight:650}.number-field-label{display:grid;grid-template-columns:1fr 13px;align-items:center;gap:6px;padding-right:2px;white-space:nowrap}.number-field input{width:78px;border:0;border-bottom:2px solid #000000;outline:0;padding:2px 0;background:#ffffffb8;color:#000;font-variant-numeric:tabular-nums}.number-field input:disabled{color:#777;border-bottom-color:#999;cursor:default;opacity:1}.derived-number-field{pointer-events:auto}.damped-display-field{border:0;padding:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.derived-number-field-value{display:block;width:78px;padding:2px 0;color:#000;font-variant-numeric:tabular-nums}.number-field small{color:#444;font-size:12px;white-space:nowrap}.number-field-unit{display:inline-block}.pole-field{position:relative;display:grid;gap:6px}.pole-row{position:relative;display:grid;grid-template-columns:72px 78px auto;align-items:baseline;gap:8px;color:#000;font-size:14px}.pole-row:before{position:absolute;top:14px;left:70px;width:6px;height:2px;background:#000;content:""}.pole-row>span:first-child{font-weight:650}.pole-field-inputs{display:grid;grid-template-columns:25px 22px 25px;align-items:baseline;gap:2px;padding-left:4px}.pole-field-inputs input{width:25px;border:0;border-bottom:2px solid #000000;outline:0;padding:2px 0;background:#ffffffb8;color:#000;font-variant-numeric:tabular-nums}.pole-field-inputs input:disabled{color:#777;border-bottom-color:#999;cursor:default;opacity:1}.pole-field-imaginary-prefix{display:grid;grid-template-columns:8px 8px;justify-content:center;column-gap:1px;color:#000;font-weight:650;text-align:center;white-space:nowrap}.parameter-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;box-sizing:border-box;border:1px solid #aaaaaa;border-radius:50%;color:#999;cursor:help;font-size:10px;font-weight:700;line-height:1}.parameter-help-tooltip{position:absolute;top:-6px;left:calc(100% + 8px);z-index:1000;width:260px;max-width:min(260px,calc(100vw - 42px));border:1px solid #bbbbbb;background:#fff;color:#444;opacity:0;padding:7px 8px;pointer-events:none;font-size:12px;font-weight:500;line-height:1.5;text-align:left;white-space:pre-line;transform:translate(-4px);transition:opacity .16s ease,transform .16s ease}.parameter-help:hover .parameter-help-tooltip,.parameter-help:focus .parameter-help-tooltip{opacity:1;transform:translate(0)}.option-field{display:grid;grid-template-columns:72px auto;align-items:center;gap:8px;width:240px;color:#000;font-size:14px}.option-field>span{font-weight:650}.output-flip-button{display:inline-flex;align-items:center;gap:7px;width:fit-content;height:24px;border:0;background:transparent;color:#000;padding:0;cursor:pointer;font-size:14px;font-weight:650;line-height:22px}.output-flip-button:disabled{cursor:default;opacity:.72}.output-flip-window{display:block;height:22px;overflow:hidden}.output-flip-track{display:grid;grid-template-rows:22px 22px;transition:transform .32s ease}.output-flip-track>span{display:flex;align-items:center;height:22px}.output-flip-button.velocity .output-flip-track{transform:translateY(-22px)}.output-flip-arrows{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:22px;height:22px;box-sizing:border-box;border:2px solid #000000;border-radius:5px;background:#000}.output-flip-arrow-up,.output-flip-arrow-down{position:relative;display:block;width:6px;height:13px}.output-flip-arrow-up:before,.output-flip-arrow-down:before,.output-flip-arrow-up:after,.output-flip-arrow-down:after{position:absolute;background:#fff;content:""}.output-flip-arrow-down:before{top:0;right:0;width:2px;height:13px}.output-flip-arrow-down:after{right:0;bottom:0;width:6px;height:5px;clip-path:polygon(0 0,100% 0,100% 100%)}.output-flip-arrow-up:after{top:0;left:0;width:2px;height:13px}.output-flip-arrow-up:before{top:0;left:0;width:6px;height:5px;clip-path:polygon(0 0,0 100%,100% 100%)}.button-row{position:relative;display:flex;flex-wrap:wrap;gap:3px;margin-top:-0px}.button-row button{min-width:75px;border:2px solid #000000;background:#ffffffb8;color:#000;padding:6px 10px;cursor:pointer}.button-row button:not(:disabled):hover{background:#000;color:#fff}.button-row .primary-button{background:#000;color:#fff}.button-row button:disabled{border-color:#aaa;color:#888;cursor:default}.start-risk-indicator{position:absolute;top:50%;left:-18px;z-index:20;display:inline-flex;align-items:center;justify-content:center;align-self:center;width:14px;height:30px;color:#b00000;cursor:help;font-size:28px;font-weight:800;line-height:1;transform:translateY(-50%)}.start-risk-tooltip{position:absolute;top:50%;left:calc(100% + 8px);z-index:2000;width:max-content;max-width:220px;border:1px solid #bbbbbb;background:#fff;color:#444;opacity:0;padding:6px 8px;pointer-events:none;font-size:12px;font-weight:500;line-height:1.45;text-align:left;white-space:normal;transform:translateY(-50%) translate(-4px);transition:opacity .16s ease,transform .16s ease}.start-risk-indicator:hover .start-risk-tooltip,.start-risk-indicator:focus .start-risk-tooltip{opacity:1;transform:translateY(-50%) translate(0)}.button-row .reset-button{--reset-offset-x: 10px;--reset-offset-y: 0px;transform:translate(var(--reset-offset-x),var(--reset-offset-y))}.open-loop-interaction-row{display:flex;align-items:center;gap:10px;margin-top:8px;margin-left:2px}.open-loop-interaction-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;box-sizing:border-box;border:2px solid #000000;border-radius:6px;background:#fff;color:#000;cursor:pointer;padding:0;box-shadow:inset -2px -2px #d8d8d8}.open-loop-interaction-button svg{width:28px;height:28px}.open-loop-interaction-button.active{background:#f2f2f2;border-color:#000;box-shadow:inset 0 0 0 2px #000,inset -3px -3px #cfcfcf}.open-loop-interaction-button:disabled{cursor:default;opacity:.38}.interaction-icon-stroke{fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.interaction-icon-front,.interaction-icon-side,.interaction-icon-shadow,.interaction-icon-handle{stroke:#000;stroke-width:2;stroke-linejoin:round}.interaction-icon-front{fill:#fff}.interaction-icon-side{fill:#d9d9d9}.interaction-icon-shadow{fill:#8f8f8f}.interaction-icon-handle{fill:#f4f4f4}.interaction-icon-highlight{fill:none;stroke:#000;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.intro-controls{position:fixed;top:16px;left:22px;z-index:7;display:inline-flex;align-items:center;gap:12px;opacity:calc(1 - var(--intro-controls-exit-progress, 0));transition:opacity .12s linear}.intro-start-button{min-width:72px;border:2px solid #000000;background:#fff;color:#000;padding:6px 10px;cursor:pointer}.intro-start-button:hover,.intro-start-button.running{background:#000;color:#fff}.intro-skip-button{border:0;background:transparent;color:#777;font-size:12px;line-height:1;padding:0;cursor:pointer}.intro-skip-button:hover{color:#000}.intro-shell .control-panel,.intro-shell .runtime-field{opacity:var(--intro-interface-progress, 0);transform:translateY(var(--intro-interface-y, -34px));pointer-events:none;transition:none}.intro-shell .readout-panel{opacity:var(--intro-interface-progress, 0);transform:translateY(var(--intro-interface-bottom-y, 34px));pointer-events:none;transition:none}.intro-shell .transfer-function{opacity:var(--intro-interface-progress, 0);transform:translate(-50%) translateY(var(--intro-interface-y, -34px));pointer-events:none;transition:none}.intro-shell .music-toggle,.intro-shell .more-menu{opacity:var(--intro-interface-progress, 0);transform:translateY(var(--intro-interface-y, -34px));transition:none}.intro-shell .time-plot-drawer{opacity:var(--intro-interface-progress, 0);transition:none}.mode-pull-cord{position:absolute;top:0;left:220px;display:grid;grid-template-rows:122px 24px;justify-items:center;width:48px;height:150px;border:0;background:transparent;color:#000;padding:0;cursor:pointer}.mode-pull-cord:disabled{color:#777;cursor:default}.mode-cord-line{width:2px;height:124px;background:currentColor;transform-origin:top center}.mode-cord-tag{display:grid;justify-items:center;transform:translateY(-1px)}.mode-cord-tag-triangle{display:none}.mode-cord-tag-body{width:18px;height:40px;border:2px solid currentColor;background:#fff}.mode-pull-cord.closed-loop .mode-cord-tag-body{background:#fff}.mode-pull-cord.pulling .mode-cord-line{height:138px}.mode-pull-cord.pulling .mode-cord-tag{transform:translateY(14px)}.mode-cord-line,.mode-cord-tag{transition:height .15s ease,transform .15s ease,background .15s ease,color .15s ease}.readout-panel{position:fixed;right:16px;bottom:12px;z-index:7;display:flex;flex-direction:row;gap:18px;padding:0;border:0;background:transparent;color:#000;font:inherit;cursor:pointer;opacity:0;transform:translateY(-16px);transition:opacity var(--plot-drawer-motion),transform var(--plot-drawer-motion)}.main-entered .readout-panel{opacity:1;transform:translateY(0)}.main-entered .readout-panel.plot-open{transform:translateY(calc(-1 * var(--plot-drawer-height)))}.simulation-guard-message{width:240px;margin:-5px 0 0;color:#b00000;font-size:12px;font-weight:700;white-space:nowrap}.music-toggle{position:fixed;top:16px;right:20px;z-index:6;display:grid;place-items:center;width:28px;height:28px;border:2px solid #000000;border-radius:50%;background:#fff;color:#000;cursor:pointer;padding:0;pointer-events:auto;opacity:0;transform:translateY(-16px);transition:opacity .56s ease,transform .56s ease}.main-entered .music-toggle{opacity:1;transform:translateY(0)}.more-menu{--more-menu-text-color: #aaaaaa;position:fixed;top:21px;right:68px;z-index:7;display:grid;justify-items:end;color:#000;opacity:0;pointer-events:auto;transform:translateY(-16px);transition:opacity .56s ease,transform .56s ease}.main-entered .more-menu{opacity:1;transform:translateY(0)}.more-menu-trigger{border:0;background:transparent;color:var(--more-menu-text-color);cursor:pointer;padding:0;font-size:12px;font-weight:600;line-height:1;text-decoration:underline;text-decoration-color:var(--more-menu-text-color);text-decoration-thickness:1px;text-underline-offset:2px}.more-menu-trigger:hover{color:var(--more-menu-text-color)}.more-menu-dropdown{position:absolute;top:22px;right:0;min-width:86px;border:2px solid #000000;background:#fff;padding:4px 0;animation:menu-panel-enter .18s ease-out both}.more-menu-dropdown button{width:100%;border:0;background:transparent;color:#000;cursor:pointer;padding:6px 10px;font-size:12px;font-weight:650;text-align:left;white-space:nowrap}.more-menu-dropdown button:hover{background:#eee}.model-info-panel,.usage-info-panel,.author-contact-panel{position:absolute;top:22px;right:0;width:208px;border:2px solid #000000;background:#fff;color:#000;padding:7px 9px 8px;text-align:left;animation:menu-panel-enter .18s ease-out both}.model-info-panel p,.usage-info-panel p,.author-contact-panel p{margin:0 0 6px;color:#333;font-size:12px;font-weight:500;line-height:1.38;white-space:pre-line}.model-info-panel p{color:#000;font-size:12px;font-weight:650;line-height:1.2}.usage-info-panel p{color:#000;font-weight:650}.usage-info-panel ul{margin:0;padding-left:15px;color:#333;font-size:12px;font-weight:500;line-height:1.45}.usage-info-panel li{margin:0 0 4px}.model-equation{display:flex;align-items:baseline;gap:5px;color:#000;font-family:Times New Roman,Times,serif;font-size:19px;font-style:italic;font-weight:600;line-height:1.55;white-space:nowrap}.dotted-variable{position:relative;display:inline-block;min-width:.5em;text-align:center}.dotted-variable:before,.dotted-variable:after{position:absolute;top:.22em;width:.13em;height:.13em;border-radius:50%;background:currentColor;content:""}.single-dot:before{left:50%;transform:translate(-50%)}.single-dot:after{display:none}.double-dot:before{left:28%}.double-dot:after{left:72%}.author-email-row{display:flex;align-items:center;justify-content:flex-start;gap:6px}.author-email-label{color:#000;font-size:12px;font-weight:650;line-height:1.2;white-space:nowrap}.author-email-row a{color:#000;font-size:12px;font-weight:650;line-height:1.2;text-decoration:underline;text-underline-offset:2px}.author-copy-button{display:inline-flex;align-items:center;gap:4px;min-width:18px;height:18px;border:0;background:transparent;color:#888;cursor:pointer;padding:0;font-size:11px;font-weight:650;line-height:1;white-space:nowrap}.author-copy-button:hover{color:#666}.author-copy-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}@keyframes menu-panel-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.music-icon{display:block;width:20px;height:20px;transform:rotate(0);transform-origin:50% 50%}.music-toggle.playing .music-icon{animation:music-note-spin 4.2s linear infinite}.music-toggle.disabled .music-icon{animation:none;transform:rotate(0)}.music-note{fill:#000;stroke:#000;stroke-linejoin:round;stroke-width:.4}.music-disabled-slash{stroke:#000;stroke-linecap:round;stroke-width:2.4;opacity:0}.music-toggle.disabled .music-disabled-slash{opacity:1}.music-toggle:hover{background:#fff}@keyframes music-note-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.transfer-function{--open-loop-input-start-offset: 78px;position:fixed;top:18px;left:50%;z-index:4;display:grid;justify-items:center;transform:translate(-50%);color:#000;font-size:20px;font-weight:700;line-height:1.1;pointer-events:none;white-space:nowrap;transition:padding-bottom .63s ease .63s}.transfer-function.closed-loop{padding-bottom:64px;transition:padding-bottom .63s ease}.forward-path{position:relative;display:inline-flex;align-items:center;gap:0}.pid-segment{display:inline-flex;align-items:center;max-width:0;opacity:0;overflow:hidden;transform:scaleX(0);transform-origin:left center;transition:max-width .95s ease .9s,opacity .65s ease .9s,transform .95s ease .9s}.transfer-function.closed-loop .pid-segment{max-width:260px;opacity:1;transform:scaleX(1);transition:max-width .95s ease,opacity .65s ease,transform .95s ease}.signal-label{display:inline-flex;align-items:center;transition:transform 735ms ease}.input-signal-label{width:42px;height:26px;overflow:hidden;align-items:flex-start;transition:transform 735ms ease 1358ms}.input-signal-label.open-loop-position{transform:translate(var(--open-loop-input-start-offset))}.transfer-function.closed-loop .input-signal-label{transition:transform 735ms ease}.input-signal-track{display:grid;grid-template-rows:26px 26px;transition:transform 434ms ease}.input-signal-track span{display:inline-flex;align-items:center;height:26px}.input-signal-label.closed-loop .input-signal-track{transform:translateY(-26px)}.output-signal-label{width:42px;height:26px;overflow:hidden;align-items:flex-start}.output-signal-track{display:grid;grid-template-rows:26px 26px;transition:transform 434ms ease}.output-signal-track span{display:inline-flex;align-items:center;height:26px}.output-signal-label.velocity .output-signal-track{transform:translateY(-26px)}.signal-arrow{position:relative;z-index:2;display:inline-flex;align-items:center;width:72px;height:12px;flex:0 0 72px;overflow:hidden;transition:width 735ms ease,flex-basis 735ms ease}.signal-arrow-line{display:block;width:calc(100% - 14px);height:2px;background:#000}.signal-arrow-head{display:block;width:14px;height:12px;background:#000;clip-path:polygon(0 24%,100% 50%,0 76%);flex:0 0 14px}.input-path{position:relative;display:inline-grid;align-items:center;width:calc(120px + var(--open-loop-block-offset, 30px));height:78px;flex:0 0 calc(120px + var(--open-loop-block-offset, 30px));transition:width 735ms ease 1358ms,flex-basis 735ms ease 1358ms}.input-path.closed-loop{width:var(--closed-loop-input-path-width, 293px);flex-basis:var(--closed-loop-input-path-width, 293px);transition:width 735ms ease,flex-basis 735ms ease}.input-arrow-single,.input-arrow-split{grid-area:1 / 1;display:inline-flex;align-items:center;width:100%;position:relative}.input-arrow-single{z-index:0;opacity:1;transition:opacity 294ms ease .91s}.input-path.closed-loop .input-arrow-single{opacity:0;transition:opacity 154ms ease 735ms}.input-path:not(.closed-loop) .input-arrow-single{justify-content:flex-end}.input-path:not(.closed-loop) .input-arrow-single .input-single-arrow{width:calc(100% - var(--open-loop-input-start-offset));flex-basis:calc(100% - var(--open-loop-input-start-offset));transition:width 735ms ease 1358ms,flex-basis 735ms ease 1358ms}.input-path.closed-loop .input-arrow-single{justify-content:flex-end}.input-path.closed-loop .input-arrow-single .input-single-arrow{width:100%;flex-basis:100%;transition:width 735ms ease,flex-basis 735ms ease}.input-arrow-split{z-index:1;opacity:0;pointer-events:none;transition:opacity 154ms ease 1204ms}.input-path.closed-loop .input-arrow-split{opacity:1;pointer-events:auto;transition:opacity 154ms ease 735ms}.input-arrow-split .signal-arrow{width:auto;min-width:0;flex:1 1 0}.input-arrow-split .split-input-arrow:first-child .signal-arrow-head{transform:scaleY(.16);transform-origin:center center;transition:transform 294ms ease .91s}.input-path.closed-loop .input-arrow-split .split-input-arrow:first-child .signal-arrow-head{transform:scaleY(1);transition:transform 182ms ease 735ms}.blank-controller-block{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:.236px;height:2px;box-sizing:border-box;border:0 solid #000000;background:#000;flex:0 0 .236px;overflow:hidden;padding:0;appearance:none;font:inherit;cursor:pointer;pointer-events:auto;transition:width .91s ease,flex-basis .91s ease,height 294ms ease .91s,border-width 294ms ease .91s,background-color 126ms ease 1078ms}.controller-track{position:absolute;inset:0;display:grid;width:100%;height:200%;grid-template-rows:1fr 1fr;align-items:center;justify-items:center;color:#000;pointer-events:none;transform:translateY(0);transition:transform 434ms ease}.input-path.show-controller-transfer .controller-track{transform:translateY(-50%)}.controller-label,.controller-transfer{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;color:#000;font-weight:700;text-align:center;white-space:nowrap;flex:0 0 auto}.controller-label{font-size:20px}.controller-transfer{font-size:20px;line-height:1}.controller-width-measure{position:absolute;width:max-content;height:auto;visibility:hidden;pointer-events:none}.controller-transfer .fraction{min-width:78px}.controller-polynomial{display:inline-flex;align-items:center;justify-content:center;min-width:78px}.factored-polynomial{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}.matched-factor{color:#b3b3b3}.controller-transfer .fraction-top,.controller-transfer .fraction-bottom{padding-left:5px;padding-right:5px}.input-path.closed-loop .blank-controller-block{width:var(--pid-block-width, 176px);height:78px;border-width:2px;background:#fff;flex-basis:var(--pid-block-width, 176px);transition:width .91s ease 735ms,flex-basis .91s ease 735ms,height 294ms ease 735ms,border-width 294ms ease 735ms,background-color 126ms ease 735ms}.input-path.closed-loop.show-controller-transfer,.input-path.closed-loop.show-controller-transfer .blank-controller-block{transition:none}.transfer-block{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;min-width:128px;min-height:58px;border:2px solid #000000;padding:8px 14px;background:#fff;color:#000;appearance:none;cursor:pointer;font:inherit;margin-left:0;pointer-events:auto;transition:margin-left 735ms ease .63s,transform 735ms ease .63s}.blank-controller-block:focus-visible,.transfer-block:focus-visible{outline:2px solid #000000;outline-offset:3px}.transfer-function.closed-loop .plant-block-wrap>.transfer-block{transition:margin-left 735ms ease,transform 735ms ease}.plant-block-wrap{position:relative;display:inline-flex;align-items:center}.pid-block{min-width:118px}.feedback-arrow{position:absolute;top:41px;height:78px;overflow:visible}.feedback-arrow-base,.feedback-arrow-vertical{fill:none;stroke:#000;stroke-linecap:butt;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.feedback-arrow-base{stroke-width:2}.feedback-arrow-vertical{stroke-width:4}.feedback-arrow-reveal{fill:none;stroke:#fff;stroke-linecap:butt;stroke-dasharray:1000;stroke-dashoffset:1000;stroke-width:12;vector-effect:non-scaling-stroke;transition:stroke-dashoffset 1022ms ease 182ms}.feedback-arrow-head{position:absolute;top:-2px;left:-6px;display:block;width:14px;height:12px;background:#000;clip-path:polygon(50% 0,76% 100%,24% 100%);transform:scaleY(.16);transform-origin:center bottom;opacity:0;transition:opacity 84ms ease 182ms,transform 182ms ease}.feedback-negative-sign{position:absolute;top:8px;left:-25px;color:#000;font-size:20px;font-weight:700;line-height:1;opacity:0;transform:scaleX(0);transform-origin:right center;transition:opacity 84ms ease 182ms,transform 182ms ease}.transfer-function.closed-loop .feedback-arrow-reveal{stroke-dashoffset:0;transition:stroke-dashoffset .63s ease 735ms}.transfer-function.closed-loop .feedback-arrow-head{opacity:1;transform:scaleY(1);transition:opacity 168ms ease 1.26s,transform 182ms ease 1.26s}.transfer-function.closed-loop .feedback-negative-sign{opacity:1;transform:scaleX(1);transition:opacity 168ms ease 1.26s,transform 182ms ease 1.26s}.fraction{display:inline-grid;grid-template-rows:auto auto;min-width:44px;text-align:center;vertical-align:middle}.fraction-top,.fraction-bottom{display:block;padding:0 8px}.fraction-top{border-bottom:2px solid #000000;padding-bottom:3px}.fraction-bottom{padding-top:3px}.state-value{display:inline-flex;align-items:baseline;gap:7px;margin:0;font-variant-numeric:tabular-nums}.state-value span{font-size:16px;font-weight:800}.state-value strong{font-size:18px}.state-value small{color:#444}.road-scene{position:fixed;inset:0;z-index:3;overflow:hidden;background:transparent;pointer-events:none}.road-scene svg{display:block;width:100%;height:100%;clip-path:inset(1px 0 0)}.road-surface{transition:fill .32s ease}.road-lines line{stroke:#000;stroke-linecap:square;stroke-width:3}.start-line,.target-line{stroke:#000;stroke-dasharray:12 10;stroke-linecap:butt;stroke-width:3}.loop-count{fill:#000;font-size:18px;font-weight:500;dominant-baseline:middle;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5px}.spring-segment-dark{fill:#000}.spring-effect{transition:opacity .22s ease}.spring-segment-light{fill:#fff}.spring-outline{fill:none;stroke:#000;stroke-width:2;vector-effect:non-scaling-stroke}.cube polygon{fill:#fff;stroke:#000;stroke-linejoin:round;stroke-width:3}.cube line{stroke:#000;stroke-width:3}.cube.interactive{pointer-events:visiblePainted;touch-action:none}.cube.interactive.hammer{cursor:var(--hammer-cursor-static)}.cube.interactive.hand,.cube.interactive.hand.interacting{cursor:none}.hand-cursor-overlay{pointer-events:none}.target-flag-base-shadow{fill:#0000002e}.target-flag-base{fill:#b85b09;stroke:#2b1006;stroke-width:4}.target-flag-base-inner{fill:#7f3304;stroke:#3b1606;stroke-width:2}.target-flag-pole{fill:#ffc526;stroke:#2b1006;stroke-width:4}.target-flag-pole-highlight{fill:#fff36c}.target-flag-cloth{fill:#f20d0d;stroke:#2b1006;stroke-linejoin:round;stroke-width:4}.target-flag-cloth-highlight{fill:#ff5c5cb3}.target-flag-knob{fill:#ffc526;stroke:#2b1006;stroke-width:4}.target-flag-knob-highlight{fill:#ffffffc7}.time-plot-drawer{position:fixed;right:0;bottom:0;z-index:6;display:flex;align-items:flex-end;pointer-events:none;transform:translateY(var(--plot-drawer-height));opacity:0;transition:transform var(--plot-drawer-motion),opacity var(--plot-drawer-motion)}.time-plot-drawer.open{transform:translateY(0)}.main-entered .time-plot-drawer{opacity:1}.time-plot-panel{width:446px;height:var(--plot-drawer-height);border:2px solid #000000;border-right:0;border-bottom:0;background:#fff;pointer-events:auto}.time-plot-choice{display:flex;gap:18px;align-items:center;height:38px;padding:8px 18px 0}.time-plot-option{display:inline-flex;align-items:center;gap:5px}.time-plot-choice button{border:0;border-bottom:2px solid transparent;background:transparent;color:#000;cursor:pointer;padding:1px 0;font-size:14px;font-weight:650}.time-plot-choice button.active{border-bottom-color:#000;font-weight:850}.time-plot-help{flex:0 0 auto;transform:translateY(-1px)}.time-plot-help .parameter-help-tooltip{top:calc(100% + 6px);left:50%;transform:translate(-50%,-4px)}.time-plot-help:hover .parameter-help-tooltip,.time-plot-help:focus .parameter-help-tooltip{transform:translate(-50%)}.time-plot-choice .time-plot-export{position:relative;width:22px;height:22px;margin-left:auto;border:0;padding:0}.time-plot-choice .time-plot-export:disabled{cursor:default;opacity:.28}.time-plot-export-menu{position:absolute;top:34px;right:14px;z-index:2;display:grid;gap:6px;min-width:168px;border:2px solid #000000;background:#fff;padding:8px}.time-plot-export-menu label{display:flex;align-items:center;gap:7px;color:#000;font-size:13px;font-weight:650;line-height:1;white-space:nowrap}.time-plot-export-menu .time-plot-export-subitem{padding-left:18px}.time-plot-export-menu input{width:12px;height:12px;margin:0;accent-color:#000000}.time-plot-export-menu button{justify-self:end;border:2px solid #000000;background:#fff;color:#000;cursor:pointer;padding:2px 8px;font-size:13px;font-weight:650}.time-plot-export-icon,.time-plot-export-icon:before,.time-plot-export-icon:after{position:absolute;display:block;content:""}.time-plot-export-icon{right:3px;bottom:3px;width:16px;height:5px;border:2px solid #000000;border-top:0}.time-plot-export-icon:before{left:5px;bottom:5px;width:2px;height:12px;background:#000}.time-plot-export-icon:after{left:2px;bottom:5px;width:8px;height:6px;background:#000;clip-path:polygon(0 0,100% 0,50% 100%)}.time-plot-panel svg{display:block;width:100%;height:calc(100% - 38px)}.plot-axis{vector-effect:non-scaling-stroke}.plot-axis{stroke:#000;stroke-width:1.4}.plot-axis-arrow{fill:#000}.plot-value-tick line{stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke}.plot-value-tick text{fill:#333;font-size:10px;font-weight:500;text-anchor:end}.plot-time-tick line{stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke}.plot-time-tick text{fill:#333;font-size:10px;font-weight:500;text-anchor:middle}.plot-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.3;vector-effect:non-scaling-stroke}.plot-target-line{stroke-dasharray:7 6;stroke-width:1.8;vector-effect:non-scaling-stroke}.plot-overshoot-marker circle,.plot-settling-marker circle{fill:#000}.plot-overshoot-marker text,.plot-settling-marker text{fill:#000;font-size:11px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.plot-damped-frequency-marker line{stroke:#000;stroke-width:1.2;vector-effect:non-scaling-stroke}.plot-damped-frequency-marker{cursor:pointer;outline:none}.plot-damped-frequency-marker:focus,.plot-damped-frequency-marker:focus-visible{outline:none}.plot-damped-frequency-marker polygon{fill:#000}.plot-damped-frequency-marker text{fill:#000;font-size:10px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;text-anchor:middle}.displacement-line{stroke:#000}.velocity-line{stroke:#8b1e1e}.force-line{stroke:#225f5f}.error-line{stroke:#6b4f82}.proportional-line{color:#111;stroke:#111}.integral-line{color:#8b1e1e;stroke:#8b1e1e}.derivative-line{color:#225f5f;stroke:#225f5f}.kinetic-energy-line{color:#111;stroke:#111}.elastic-energy-line{color:#9a2f2f;stroke:#9a2f2f}.mechanical-energy-line{stroke:#222}.plot-value-label,.plot-time-label{fill:#333;font-size:11px;font-weight:600}.plot-energy-label,.plot-pid-label{fill:currentColor;font-size:11px;font-weight:650;paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-width:2px}.plot-time-label{text-anchor:end}@media(max-width:1000px){.control-panel{width:280px}}@media(max-width:620px){.control-panel,.readout-panel{padding-left:14px;padding-right:14px}.control-panel{width:100%}.input-grid{width:240px}}
