:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#000;--text:#e4e4de;--text-2:#8e8d88;--text-out:#c9c8c2;--strong:#fff;--line:#2b2b29;--line-2:#55544f;--line-3:#6d6c68;--panel:#080808db;--console:#050505e6;--button:#0808088c;--head:#fff;--head-2:#fff;--sheet:#1c1c1b;--sheet-rule:#3a3a37;--sheet-text:#f2f2ee;--sheet-dim:#6f6e6a;--sheet-strong:#fff;--menu-weight:400;--sheet-shadow:#00000080;--accent:#ddddd7;--ok:#9fd6c2;--err:#e8826a;--font:"Absans", Arial, sans-serif;--mono:"Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--panel-weight:400;--console-weight:400}:root[data-theme=sand]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#9b917d;--text:#fff;--text-2:#efe9de;--text-out:#f7f3ec;--panel-weight:500;--console-weight:500;--strong:#fff;--line:#ffffff5c;--line-2:#fff9;--line-3:#ffffffd9;--panel:#847a66eb;--console:#847a66f0;--button:#847a6680;--sheet:#847a66;--sheet-rule:#ffffff73;--sheet-text:#fff;--sheet-dim:#cfc7b7;--sheet-strong:#fff;--sheet-shadow:#2820124d;--menu-weight:500;--accent:#fff;--ok:#c9f2de;--err:#ffd2c4;--range-track:#ffffff4d;--range-fill:#f5f1e8;--range-thumb:#fff;--range-thumb-2:#fff}:root[data-theme=blue]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#0548b3;--text:#f2f6ff;--text-2:#b1c6ee;--text-out:#dbe6fb;--strong:#fff;--line:#2a5bb8;--line-2:#6f93d8;--line-3:#8fb0ea;--panel:#033487e6;--console:#032e7aed;--button:#0334878c;--sheet:#073d9d;--sheet-rule:#3566c2;--sheet-text:#f2f6ff;--sheet-dim:#86a5de;--sheet-shadow:#000c2d73;--accent:#e6eefc;--ok:#a6ecd6;--err:#ffb4a0;--range-track:#ffffff38;--range-fill:#dbe6fb;--range-thumb:#f2f6ff;--range-thumb-2:#fff}html,body{height:100%}body{background:var(--ground) fixed;color:var(--text);font:400 14px/1.35 var(--font);font-synthesis-weight:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#water,#vortex{touch-action:none;outline:none;width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}#water{display:block}#vortex{cursor:grab}#vortex:active{cursor:grabbing}#vortex canvas{width:100%;height:100%;display:block}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.no-script{text-align:center;color:var(--text-2);place-items:center;margin:0;padding:24px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body.model-only .console-open,body.model-only .console,body.model-only .dock,body.model-only .site-head,body.model-only .menu{display:none!important}.site-head{--mark:14px;z-index:5;left:20px;top:calc(env(safe-area-inset-top,0px) + 30px);color:var(--head);pointer-events:none;align-items:center;gap:7px;display:flex;position:fixed;transform:translateY(-50%)}.wordmark{height:var(--mark);display:block}.wordmark svg{width:auto;height:100%;display:block}.menu-open{pointer-events:auto;width:48px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;position:relative}.menu-open i{background:currentColor;height:2px;margin-top:-1px;position:absolute;top:50%;left:11px;right:17px}.menu-open i:first-child{transform:translateY(-7px)}.menu-open i:nth-child(3){transform:translateY(7px)}.menu-open:hover,.menu-open[aria-expanded=true]{color:var(--head-2)}.menu{z-index:6;left:8px;top:calc(env(safe-area-inset-top,0px) + 58px);box-sizing:border-box;background:var(--sheet);width:max-content;min-width:200px;box-shadow:0 12px 40px var(--sheet-shadow);border-radius:2px;padding:4px 28px 4px 8px;position:fixed}.menu ul{margin:0;padding:10px 4px;list-style:none}.menu ul+ul{border-top:1.5px solid var(--sheet-rule)}.menu li>*{font-size:18px;font-weight:var(--menu-weight);color:var(--sheet-text);text-transform:uppercase;letter-spacing:.04em;padding:3px 0;line-height:1.6;text-decoration:none;display:block}.menu a:hover{text-underline-offset:5px;outline:none;text-decoration:underline;text-decoration-thickness:1px}.menu a:focus-visible{text-underline-offset:5px;outline:none;text-decoration:underline;text-decoration-thickness:1px}.menu .soon{color:var(--sheet-dim)}.menu ul.icons{flex-wrap:wrap;align-items:center;gap:4px;padding:8px 4px;display:flex}.menu .icon{align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}.menu .icon svg{width:22px;height:22px}.menu a.icon:hover{color:var(--sheet-strong)}.menu a.icon:focus-visible{color:var(--sheet-strong)}.menu a.icon:focus-visible{outline-offset:2px;outline:1px solid}@media (min-width:900px){.site-head{--mark:17px;gap:16px;top:40px;left:40px}.menu-open i{left:8px;right:15px}.menu-open i:first-child{transform:translateY(-8px)}.menu-open i:nth-child(3){transform:translateY(8px)}.menu{padding:4px 32px 4px 12px;top:70px;left:24px}}.console-open{z-index:5;top:calc(env(safe-area-inset-top,0px) + 12px);border:1px solid var(--line);background:var(--button);min-height:36px;color:var(--text-2);cursor:pointer;font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);border-radius:8px;padding:0 12px;position:fixed;right:12px}.console-open:hover{color:var(--text);border-color:var(--line-2)}.console-open b{color:var(--text);font-weight:400}.console{z-index:4;background:var(--console);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);height:min(46vh,440px);font:var(--console-weight) 13px/1.55 var(--mono);color:var(--text);grid-template-rows:auto 1fr auto auto;display:grid;position:fixed;bottom:0;left:0;right:0}.console-bar{border-bottom:1px solid var(--line);letter-spacing:.24em;min-height:34px;color:var(--text-2);justify-content:center;align-items:center;font-size:11px;display:flex;position:relative}.console-bar button{width:44px;height:34px;color:var(--text-2);cursor:pointer;font:300 18px/1 var(--mono);background:0 0;border:0;position:absolute;top:0;right:4px}.console-bar button:hover{color:var(--text)}.console-out{overscroll-behavior:contain;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;padding:10px 16px 6px;overflow-y:auto}.console-out>div{min-height:1.55em}.console-out .echo{color:var(--text)}.console-out .out{color:var(--text-out)}.console-out .dim{color:var(--text-2)}.console-out .note{padding-left:6ch}.console-out .ok{color:var(--ok)}.console-out .err{color:var(--err)}.console-out .chart{padding:6px 0 2px}.console-out .chart svg{font:300 10px var(--mono);display:block}.console-out .k-drag{color:var(--text)}.console-out .k-speed{color:var(--ok)}.console-out .k-back{color:var(--err)}.console-out .banner{box-sizing:border-box;width:max-content;max-width:100%;font:400 min(9px, calc((100vw - 36px) / (var(--cols,48) * .6)))/1.05 "JetBrains Mono", Consolas, "DejaVu Sans Mono", ui-monospace, monospace;white-space:pre;color:var(--text);animation:banner-in .8s steps(var(--cols,48), end) .1s both;padding:6px 0 12px;overflow-x:auto}@keyframes banner-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.console-out .banner{animation:none}}.console-out button.cmd{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.console-out button.cmd:hover{color:var(--strong)}.console-out a{color:var(--accent);text-underline-offset:3px}.console-in{border-top:1px solid var(--line);align-items:center;gap:10px;padding:8px 16px;display:flex}.console-in label{color:var(--text-2);white-space:nowrap}.console-in input{min-width:0;color:var(--text);font:inherit;caret-color:var(--accent);background:0 0;border:0;outline:none;flex:1;padding:4px 0}.console-chips{padding:0 16px calc(env(safe-area-inset-bottom,0px) + 10px);scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.console-chips button{border:1px solid var(--line);min-height:32px;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border-radius:16px;flex:none;padding:0 11px;font-size:12px}.console-chips button:hover{color:var(--text);border-color:var(--line-2)}@media (max-width:720px){.console{height:58vh;font-size:12px}.console-out .banner{font-size:min(7.5px, calc((100vw - 36px) / (var(--cols,48) * .6)))}}.dock{z-index:3;pointer-events:none;font-weight:var(--panel-weight);flex-direction:column;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.handle{pointer-events:auto;border:1px solid var(--line);background:var(--panel);min-height:40px;color:var(--text-2);font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(10px);border-bottom:0;border-radius:10px 10px 0 0;align-items:center;gap:8px;margin-bottom:-1px;padding:0 18px;display:inline-flex}.handle:hover{color:var(--text)}.handle svg{width:10px;height:10px}.panel{pointer-events:auto;box-sizing:border-box;overscroll-behavior:contain;width:100%;max-height:min(58vh,560px);padding:14px 16px calc(env(safe-area-inset-bottom,0px) + 14px);background:var(--panel);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);gap:16px;display:grid;overflow-y:auto}.group{gap:14px;display:grid}.group h2{font:400 11px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);margin:0}.flows{gap:22px;display:grid}.sliders{gap:14px;display:grid}.slider{grid-template-columns:1fr auto;row-gap:6px;display:grid}.slider .name{color:var(--text)}.choice{align-content:start;gap:8px;display:grid}.choice .name{color:var(--text)}.slider output{font-variant-numeric:tabular-nums;color:var(--text)}.slider input{width:100%;accent-color:var(--accent);grid-column:1/-1;height:22px;margin:0}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:0 0}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:0 0}:root:is([data-theme=sand],[data-theme=blue]) .slider input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:0 0}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--range-fill) calc(8px + (100% - 16px) * var(--f,.5)), var(--range-track) 0);border-radius:2px;height:3px}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--range-fill) calc(8px + (100% - 16px) * var(--f,.5)), var(--range-track) 0);border-radius:2px;height:3px}:root:is([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--range-fill) calc(8px + (100% - 16px) * var(--f,.5)), var(--range-track) 0);border-radius:2px;height:3px}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px;margin-top:-6.5px}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px;margin-top:-6.5px}:root:is([data-theme=sand],[data-theme=blue]) .slider input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px;margin-top:-6.5px}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-track{background:var(--range-track);border-radius:2px;height:3px}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-track{background:var(--range-track);border-radius:2px;height:3px}:root:is([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-track{background:var(--range-track);border-radius:2px;height:3px}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-progress{background:var(--range-fill);border-radius:2px;height:3px}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-progress{background:var(--range-fill);border-radius:2px;height:3px}:root:is([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-progress{background:var(--range-fill);border-radius:2px;height:3px}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-thumb{background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-thumb{background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px}:root:is([data-theme=sand],[data-theme=blue]) .slider input::-moz-range-thumb{background:var(--range-thumb);border:0;border-radius:50%;width:16px;height:16px}:root:-webkit-any([data-theme=sand],[data-theme=blue]) .slider input:hover{--range-thumb:var(--range-thumb-2)}:root:-moz-any([data-theme=sand],[data-theme=blue]) .slider input:hover{--range-thumb:var(--range-thumb-2)}:root:is([data-theme=sand],[data-theme=blue]) .slider input:hover{--range-thumb:var(--range-thumb-2)}.slider .ends{color:var(--text-2);grid-column:1/-1;justify-content:space-between;font-size:12px;display:flex}.chips{flex-wrap:wrap;align-content:flex-start;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--line);min-height:36px;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border-radius:18px;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.chip:has(i){padding-left:8px}.chip i{border-radius:5px;width:34px;height:10px}.chip[aria-pressed=true]{color:var(--text);border-color:var(--line-3)}.stops{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stop{color:var(--text-2);justify-items:start;gap:6px;font-size:12px;display:grid}.stop input{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:100%;height:34px;padding:2px}.legend{color:var(--text-2);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:12px;display:grid}.legend .bar{border-radius:3px;height:6px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions button{border:1px solid var(--line);min-height:38px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:0 14px}.actions button:hover,.chip:hover{border-color:var(--line-3)}.summary{color:var(--text-2);-webkit-user-select:text;user-select:text;overflow-wrap:anywhere;flex:100%;margin:2px 0 0;font-size:12px}@media (min-width:900px){.panel{padding:18px 44px calc(env(safe-area-inset-bottom,0px) + 18px);grid-template-columns:1.5fr 1fr;column-gap:40px}.sliders{grid-template-columns:repeat(4,1fr);column-gap:24px}.sliders.two{grid-template-columns:repeat(2,1fr)}.flows{grid-column:1;grid-template-columns:repeat(2,1fr);align-items:start;column-gap:24px}.flows .sliders{grid-template-columns:repeat(2,1fr)}.flows>.group:only-child{grid-column:1/-1}.flows>.group:only-child .sliders{grid-template-columns:repeat(4,1fr)}.group.colour{grid-area:1/2/span 2}.actions{grid-column:1}}
