@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500&display=swap";@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial;--tw-duration:initial;--tw-font-weight:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-tracking:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", Consolas, monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-page:#10191e;--color-panel:#152026;--color-surface:#1c292f;--color-canvas:#101b21;--color-ink:#e6eeed;--color-muted:#8c9da5;--color-accent:#91dfc5;--color-border:#2a373d;--color-positive:#aaffde;--color-negative:#ffe66d;--color-danger:#c88f8f}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{background-color:var(--color-page);font-family:var(--font-sans);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body{margin:0}button,select,input[type=range],input[type=checkbox]{cursor:pointer}button{color:inherit;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;transition-duration:.15s}button:disabled,select:disabled,input:disabled{cursor:default;opacity:.45}button:focus,a:focus,select:focus,input:focus,canvas:focus{outline:none}button:hover:not(:disabled){color:#c5f7e7}kbd{border-style:var(--tw-border-style);min-width:18px;padding-inline:var(--spacing);text-align:center;font-family:var(--font-mono);color:#91a2a8;background-color:#253239;border-width:1px;border-color:#354349;border-radius:3px;padding-block:1px;font-size:10px}input[type=range]{height:calc(var(--spacing) * 4);width:100%;min-width:0;accent-color:var(--color-accent);margin:0}select{appearance:none;border-style:var(--tw-border-style);color:#c5d0d4;padding-block:9px;background-color:#1d2b32;border-width:1px;border-color:#33434b;border-radius:5px;width:100%;padding-left:10px;padding-right:25px;font-size:11px}@media not all and (width>=30rem){select{padding-left:7px;font-size:10px}}}@layer components{.app-shell{width:100%;padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5)}@media not all and (width>=47.5rem){.app-shell{padding-inline:13px}}.workbench{gap:calc(var(--spacing) * 4);grid-template-columns:204px minmax(0,1fr);display:grid}@media not all and (width>=65.625rem){.workbench{grid-template-columns:184px minmax(0,1fr)}}@media not all and (width>=47.5rem){.workbench{grid-template-columns:repeat(1,minmax(0,1fr))}}.grid-workspace{--domain-gap:32px;--component-gap:10px;min-width:0}.canvas-grid{column-gap:var(--domain-gap);row-gap:var(--component-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.help-button{border-style:var(--tw-border-style);padding-block:calc(var(--spacing) * 2);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:#bac8cd;background-color:#0000;border-width:0;align-items:center;gap:7px;display:flex}@media not all and (width>=30rem){.help-button{font-size:11px}}.control-panel{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border);background-color:var(--color-panel);padding-inline:17px;border-radius:9px;align-self:flex-start;padding-top:19px;padding-bottom:14px;position:relative}@media not all and (width>=47.5rem){.control-panel{padding:calc(var(--spacing) * 4)}}@media not all and (width>=30rem){.control-panel{padding-block:13px;padding-inline:11px}}.control-section{border-style:var(--tw-border-style);margin:0;border-width:0;min-width:0;margin-bottom:19px;padding:0}@media not all and (width>=47.5rem){.control-section{margin-bottom:0}}.control-section.is-inactive-toggle{margin-bottom:calc(var(--spacing) * 3)}@media not all and (width>=47.5rem){.control-section.is-inactive-toggle{margin-bottom:0}}.grid-size-section{margin-bottom:calc(var(--spacing) * 3)}.controls-toggle{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border);width:100%;padding-top:calc(var(--spacing) * 3);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:#c1cdd1;background-color:#0000;justify-content:space-between;align-items:center;display:flex}.controls-body{margin-top:calc(var(--spacing) * 3)}@media not all and (width>=47.5rem){.controls-body{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}}@media not all and (width>=30rem){.controls-body{gap:15px 10px}}.control-section legend,.control-section>label{width:100%;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:#c1cdd1;margin-bottom:10px;display:block}@media not all and (width>=30rem){.control-section legend,.control-section>label{font-size:10px}}.control-value{float:right;font-family:var(--font-mono);color:var(--color-accent);font-size:11px}@media not all and (width>=30rem){.control-value{font-size:10px}}.control-value>span{color:var(--color-muted);font-size:10px}@media not all and (width>=30rem){.control-value>span{font-size:8px}}.tool-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.tool-switch button{justify-content:center;align-items:center;column-gap:calc(var(--spacing) * .5);row-gap:calc(var(--spacing) * .5);border-style:var(--tw-border-style);background-color:var(--color-surface);min-width:0;padding-inline:calc(var(--spacing) * .5);color:#a5b6bd;border-width:1px;border-color:#0000;border-radius:5px;flex-wrap:wrap;padding-block:5px;font-size:10px;display:flex}.tool-switch button svg{flex-shrink:0;width:13px;height:13px}.tool-switch button kbd{min-width:15px;padding-inline:calc(var(--spacing) * .5);background-color:#0000;border-color:#435158;font-size:9px}@media not all and (width>=47.5rem){.tool-switch button>span{display:none}}.tool-switch button.active,.brush-switch button.active{color:#b0eed8;background-color:#243d3b;border-color:#486e62}.brush-switch button{border-style:var(--tw-border-style);background-color:var(--color-surface);min-width:0;padding-inline:var(--spacing);color:#a5b6bd;border-width:1px;border-color:#0000;border-radius:5px;flex-direction:row;justify-content:center;align-items:center;gap:5px;padding-block:5px;font-size:10px;display:flex}.brush-switch svg{flex-shrink:0;width:14px;height:14px}@media not all and (width>=30rem){.brush-switch svg{display:none}}.brush-option-section{margin-block:calc(var(--spacing) * 2);border-style:var(--tw-border-style);border-width:0;min-width:0;padding:0}.size-control,.rotation-control,.slider-control{align-items:center;gap:calc(var(--spacing) * 2);display:flex}@media not all and (width>=47.5rem){.size-control,.rotation-control,.slider-control{gap:var(--spacing);padding-top:3px}}.icon-button{border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border);background-color:var(--color-surface);color:#a7b9c1;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex}@media not all and (width>=30rem){.size-control .icon-button,.rotation-control .icon-button,.slider-control .icon-button{height:23px;width:calc(var(--spacing) * 5)}}.control-hint{margin-top:calc(var(--spacing) * 2);--tw-leading:1.5;color:#8b9da6;font-size:10px;line-height:1.5}@media not all and (width>=47.5rem){.control-hint{display:none}}.control-hint kbd{min-width:calc(var(--spacing) * 3);padding-block:0;padding-inline:3px;font-size:9px}.value-section{padding-top:1px}.value-scale{font-family:var(--font-mono);color:var(--color-muted);justify-content:space-between;margin-top:5px;font-size:9px;display:flex}.negative-label{color:var(--color-negative)}.positive-label{color:var(--color-accent)}.select-wrap{position:relative}.select-wrap:after{content:"";pointer-events:none;top:13px;right:calc(var(--spacing) * 3);border-right-style:var(--tw-border-style);border-right-width:1px;border-bottom-style:var(--tw-border-style);border-color:#9aadb4;border-bottom-width:1px;width:6px;height:6px;position:absolute;rotate:45deg}.settings-section{border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border);padding-top:14px}@media not all and (width>=47.5rem){.settings-section{border-style:var(--tw-border-style);border-width:0;padding-top:0}}.control-section .toggle-label{cursor:pointer;align-items:center;gap:calc(var(--spacing) * 2);margin-top:15px;margin-bottom:0;font-size:11px;display:flex}@media not all and (width>=47.5rem){.control-section .toggle-label{margin-top:9px}}@media not all and (width>=30rem){.control-section .toggle-label{gap:5px;font-size:10px}}.symmetry-section .toggle-label{margin-top:0}.settings-toggles{gap:calc(var(--spacing) * 3);flex-direction:column;display:flex}.settings-toggles .toggle-label{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4);margin:0}.control-section .compact-toggle-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:#c1cdd1;margin-top:0}@media not all and (width>=30rem){.control-section .compact-toggle-label{font-size:10px}}.toggle-label>input{height:calc(var(--spacing) * 4);opacity:0;width:29px;margin:0;position:absolute}.toggle{height:calc(var(--spacing) * 4);width:29px;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;background-color:#405259;border-radius:2147483647px;flex-shrink:0;transition-duration:.2s;display:inline-block;position:relative}.toggle:after{content:"";width:10px;height:10px;transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;background-color:#d5e8e2;border-radius:2147483647px;transition-duration:.2s;position:absolute;top:3px;left:3px}.toggle-label input:checked+.toggle{background-color:#568d78}.toggle-label input:checked+.toggle:after{--tw-translate-x:13px;translate:var(--tw-translate-x) var(--tw-translate-y)}.toggle-label input:disabled~span{cursor:default;opacity:.45}@media not all and (width>=30rem){.compact-toggle-label>input,.compact-toggle-label .toggle{width:25px}.compact-toggle-label input:checked+.toggle:after{--tw-translate-x:9px;translate:var(--tw-translate-x) var(--tw-translate-y)}}.clear-button{justify-content:center;align-items:center;gap:calc(var(--spacing) * 1.5);border-style:var(--tw-border-style);border-width:1px;border-color:#c88f8f4d;border-radius:.25rem;flex-shrink:0;width:100%;height:26px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.clear-button{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.clear-button{background-color:#c88f8f0d}@supports (color:color-mix(in lab, red, red)){.clear-button{background-color:color-mix(in oklab, var(--color-danger) 5%, transparent)}}.clear-button{padding-inline:calc(var(--spacing) * 2);color:var(--color-danger);padding-block:0;font-size:10px}.clear-button:hover:not(:disabled){border-color:#c88f8f99}@supports (color:color-mix(in lab, red, red)){.clear-button:hover:not(:disabled){border-color:color-mix(in oklab, var(--color-danger) 60%, transparent)}}.clear-button:hover:not(:disabled){background-color:#c88f8f26}@supports (color:color-mix(in lab, red, red)){.clear-button:hover:not(:disabled){background-color:color-mix(in oklab, var(--color-danger) 15%, transparent)}}.clear-button:hover:not(:disabled){color:#f0b0b0}.clear-controls{margin-bottom:0}@media not all and (width>=47.5rem){.clear-controls{grid-column:span 2/span 2}}.control-panel>.clear-controls{margin-bottom:calc(var(--spacing) * 3)}@media not all and (width>=47.5rem){.control-panel>.clear-controls .settings-toggles{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.clear-controls .clear-button{margin-top:calc(var(--spacing) * 3)}.domain-headings{column-gap:var(--domain-gap);grid-template-rows:24px 26px;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:6px;padding-bottom:6px;display:grid;position:relative}.domain-heading{display:contents}.domain-heading[data-domain=spatial]>*{grid-column:1}.domain-heading[data-domain=frequency]>*{grid-column:2}.domain-heading-title{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);grid-row:1;display:flex}.domain-heading>.brush-switch{grid-row:2;justify-self:center;width:min(100%,160px)}.domain-heading-title>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5);color:var(--color-accent);flex-shrink:0}@media not all and (width>=30rem){.domain-heading-title>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}.domain-heading h2{text-align:center;font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:-.3px;letter-spacing:-.3px}@media not all and (width>=47.5rem){.domain-heading h2{font-size:15px}}@media not all and (width>=30rem){.domain-heading h2{font-size:13px}}.transform-link{pointer-events:none;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);width:112px;translate:var(--tw-translate-x) var(--tw-translate-y);--tw-leading:13px;color:#9fb6c0;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:9px;line-height:13px;display:flex;position:absolute;top:0;bottom:6px;left:50%}@media not all and (width>=30rem){.transform-link{width:60px;font-size:8px}}.transform-link svg{color:#b8cec8;width:80px;height:22px}@media not all and (width>=30rem){.transform-link svg{width:56px}}.transform-link svg{overflow:visible}.transform-arrow{opacity:.55;transition:color .15s,opacity .15s,filter .2s}.transform-label{transition:color .15s}.transform-arrow.is-active{color:#d5fff0;opacity:1;stroke-width:2.5px;filter:drop-shadow(0 0 2px #e4fff5)drop-shadow(0 0 5px #aaffde)drop-shadow(0 0 11px #91dfc5)drop-shadow(0 0 18px #91dfc5bb)}.transform-label.is-active{color:#aaffde}@media (prefers-reduced-motion:reduce){.transform-arrow,.transform-label{transition:none}}.grid-card{border-radius:var(--radius-lg);border-style:var(--tw-border-style);background-color:var(--color-panel);min-width:0;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;border-width:1px;border-color:#304148;transition-duration:.15s;overflow:hidden;container-type:inline-size}.grid-card[data-component=real]{--component-color:#5e81b5}.grid-card[data-component=imaginary]{--component-color:#e19c24}.grid-card[data-component]{border-color:var(--component-color)}.grid-card.is-drawing{box-shadow:0 0 0 2px var(--component-color)}@supports (color:color-mix(in lab, red, red)){.grid-card.is-drawing{box-shadow:0 0 0 2px color-mix(in srgb, var(--component-color) 35%, transparent)}}.grid-card-header{height:calc(var(--spacing) * 7);justify-content:space-between;align-items:center;gap:var(--spacing);border-bottom-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 2);background-color:#1a272e;border-color:#26373e;border-bottom-width:1px;display:flex}@media not all and (width>=30rem){.grid-card-header{height:30px;padding-inline:5px}}@media not all and (width>=23.75rem){.grid-card-header{height:calc(var(--spacing) * 11);flex-direction:column;justify-content:center;align-items:stretch;gap:0}}.canvas-actions{flex-shrink:0;align-items:center;gap:1px;display:flex}@media not all and (width>=23.75rem){.canvas-actions{justify-content:flex-end}}.canvas-action-button{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6);border-style:var(--tw-border-style);color:var(--color-muted);background-color:#0000;border-width:0;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@media not all and (width>=30rem){.canvas-action-button{width:22px;height:22px}}@container not (width>=280px){.grid-card-header{flex-direction:column;justify-content:center;align-items:stretch;gap:0;height:44px}.canvas-actions{justify-content:flex-end}}@container not (width>=150px){.canvas-action-button{width:17px;height:19px}.canvas-actions{gap:0}}.canvas-action-button:hover:not(:disabled){background-color:var(--color-surface);color:var(--color-accent)}.canvas-copy-button.copied{color:var(--color-accent)}.canvas-link-button.active{color:var(--color-accent);background-color:#243d3b}.canvas-clear-button{color:var(--color-danger)}.canvas-clear-button:hover:not(:disabled){background-color:#c88f8f26}@supports (color:color-mix(in lab, red, red)){.canvas-clear-button:hover:not(:disabled){background-color:color-mix(in oklab, var(--color-danger) 15%, transparent)}}.canvas-clear-button:hover:not(:disabled){color:#f0b0b0}.component-label{align-items:center;gap:calc(var(--spacing) * 2);color:#c5d2d6;font-size:11px;display:flex}@media not all and (width>=30rem){.component-label{gap:var(--spacing);font-size:10px}}.component-label:before{content:"";background:var(--component-color);border-radius:50%;flex-shrink:0;width:6px;height:6px}.canvas-surround{background-color:var(--color-canvas);min-width:0;padding-top:var(--spacing);padding-right:calc(var(--spacing) * 2);padding-bottom:calc(var(--spacing) * 4);padding-left:26px}.canvas-stage{aspect-ratio:1;border-style:var(--tw-border-style);border-width:1px;border-color:#203037;width:100%;margin-inline:auto;position:relative}.canvas-stage canvas{cursor:none;touch-action:none;width:100%;height:100%;image-rendering:pixelated;display:block}.canvas-stage.is-idle canvas{cursor:default}.canvas-stage.is-rotation canvas{cursor:ns-resize}.canvas-stage.is-pan canvas{cursor:grab}.canvas-stage.is-panning canvas{cursor:grabbing}.canvas-stage.is-stretch canvas{cursor:crosshair}.canvas-stage.is-disabled canvas{cursor:wait}.canvas-axis{pointer-events:none;z-index:1;--tw-shadow:0 0 0 1px var(--tw-shadow-color,#08131980);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);background-color:#b8d8cf99;position:absolute}.symmetry-guides{stroke:#b8d8cf21}.axis-horizontal{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);width:100%;height:1px;translate:var(--tw-translate-x) var(--tw-translate-y);top:50%;left:0}.axis-vertical{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);width:1px;height:100%;translate:var(--tw-translate-x) var(--tw-translate-y);top:0;left:50%}.canvas-origin{pointer-events:none;z-index:1;--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);width:5px;height:5px;translate:var(--tw-translate-x) var(--tw-translate-y);border-style:var(--tw-border-style);background-color:var(--color-canvas);border-width:1px;border-color:#e4fff5;border-radius:2147483647px;position:absolute;top:50%;left:50%}.axis-snap-marker{pointer-events:none;z-index:4;position:absolute}.axis-snap-tick{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);background-color:var(--color-accent);--tw-shadow:0 0 7px var(--tw-shadow-color,#aaffde);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;position:absolute}.axis-snap-x{height:calc(var(--spacing) * .5);width:calc(var(--spacing) * 7)}.axis-snap-y{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * .5)}.axis-snap-ring{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-accent);background-color:var(--color-canvas);--tw-shadow:0 0 0 2px var(--tw-shadow-color,#081319cc), 0 0 10px var(--tw-shadow-color,#aaffde99);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);border-radius:2147483647px;position:absolute}.axis-label{pointer-events:none;font-family:var(--font-mono);white-space:nowrap;color:#859aa4;font-size:8px;position:absolute}.axis-x-label{top:calc(100% + 3px)}.axis-min{left:0}.axis-zero{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);left:50%}.axis-max{right:0}.axis-y-label{right:calc(100% + 6px)}.axis-y-min{top:0}.axis-y-zero{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y);top:50%}.axis-y-max{bottom:0}.grid-card-footer{align-items:stretch;gap:calc(var(--spacing) * .5);border-top-style:var(--tw-border-style);font-family:var(--font-mono);color:#8ba0ab;border-color:#26373e;border-top-width:1px;flex-direction:column;padding-block:5px;padding-inline:13px;font-size:9px;display:flex}@media not all and (width>=30rem){.grid-card-footer{padding-inline:7px;font-size:8px}}.canvas-range{column-gap:calc(var(--spacing) * 2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.canvas-range>span{column-gap:var(--spacing);min-width:0;display:flex}@media not all and (width>=30rem){.canvas-range>span{flex-direction:column}}.canvas-range>span:last-child{justify-content:flex-end;align-items:flex-end}.range-value{color:#c1cdd1}.grid-card-footer>.sample-readout{align-self:flex-end}.sample-readout{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal);color:#a2b8c0;font-size:9px}@media not all and (width>=30rem){.sample-readout{margin-left:auto;font-size:8px}}.readout-divider{padding-inline:var(--spacing);color:#5f767f}.color-legend{gap:15px;display:flex}@media not all and (width>=30rem){.color-legend{gap:calc(var(--spacing) * 2)}}.color-legend>span{align-items:center;gap:5px;display:flex}.color-legend i{border-radius:2px;width:7px;height:7px}.negative-swatch{background-color:var(--color-negative)}.zero-swatch{border-style:var(--tw-border-style);background-color:#0d161c;border-width:1px;border-color:#50616a}.positive-swatch{background-color:var(--color-positive)}.status-bar{margin-top:calc(var(--spacing) * 1.5);min-height:calc(var(--spacing) * 7);align-items:center;gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border);color:#93a7b0;flex-shrink:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);font-size:10px;display:grid}.footer-status{align-items:center;gap:calc(var(--spacing) * 4);min-width:0;display:flex}.footer-status .color-legend{font-size:9px}.footer-actions{align-items:center;gap:calc(var(--spacing) * 4);justify-self:flex-end;display:flex}@media not all and (width>=30rem){.footer-actions{gap:calc(var(--spacing) * 2)}.fullscreen-button span{display:none}}.footer-brand{align-items:center;gap:calc(var(--spacing) * 3);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);--tw-tracking:-.5px;letter-spacing:-.5px;white-space:nowrap;color:var(--color-ink);display:flex}@media not all and (width>=30rem){.footer-brand{gap:calc(var(--spacing) * 2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.brand-mark{flex-shrink:0;grid-template-columns:repeat(2,9px);gap:3px;display:grid;rotate:-8deg}.brand-mark span{background-color:var(--color-accent);border-radius:2px;height:9px}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){opacity:.35}.status-text{overflow-wrap:anywhere;align-items:center;gap:7px;min-width:0;display:flex}.status-dot{background-color:var(--color-accent);border-radius:2147483647px;flex-shrink:0;width:5px;height:5px}.status-dot.busy{background-color:#e0bd7b}.status-dot.error{background-color:var(--color-negative)}.help-dialog{border-radius:var(--radius-xl);border-style:var(--tw-border-style);color:#d6e1e4;background-color:#18252c;border-width:1px;border-color:#465c61;width:calc(100% - 40px);max-width:540px;max-height:calc(100dvh - 32px);margin:auto;padding:27px;overflow-y:auto}@media not all and (width>=30rem){.help-dialog{padding:calc(var(--spacing) * 5)}}.help-dialog::backdrop{--tw-backdrop-blur:blur(3px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);background-color:#071016c9}.dialog-header{margin-bottom:calc(var(--spacing) * 4);justify-content:flex-end;align-items:center;display:flex}.help-dialog h2{--tw-font-weight:var(--font-weight-medium);font-size:25px;font-weight:var(--font-weight-medium);--tw-tracking:-.7px;letter-spacing:-.7px;margin-bottom:17px}@media not all and (width>=30rem){.help-dialog h2{font-size:22px}}.help-dialog>p{margin-block:calc(var(--spacing) * 3);--tw-leading:1.7;color:#b2c2c9;font-size:13px;line-height:1.7}.help-dialog strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:#d4e4e5}.shortcut-list{gap:calc(var(--spacing) * 3);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:var(--color-border);color:#a4b8c0;flex-wrap:wrap;margin-top:15px;padding-top:15px;font-size:10px;display:flex}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.col-span-2{grid-column:span 2/span 2}.m-3{margin:calc(var(--spacing) * 3)}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.size-full{width:100%;height:100%}.w-full{width:100%}.shrink{flex-shrink:1}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gap-1{gap:var(--spacing)}.overflow-hidden{overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.text-\[\#8b9da6\]{color:#8b9da6}.text-muted{color:var(--color-muted)}.text-negative{color:var(--color-negative)}.text-positive{color:var(--color-positive)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media not all and (width>=30rem){.max-small\:block{display:block}.max-small\:hidden{display:none}}}@media (width>=47.5rem) and (height>=30rem){.app-main{flex-direction:column;height:calc(100dvh - 12px);min-height:0;display:flex}.workbench{flex:1;grid-template-rows:minmax(0,1fr);min-height:0}.control-panel{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#405259 transparent;max-height:100%;overflow-y:auto}.grid-workspace{flex-direction:column;min-height:0;display:flex;container-type:inline-size}.domain-headings{flex:none}.canvas-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr));min-height:0}.grid-card{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;position:relative;container-type:size}.canvas-surround{place-items:center;min-height:0;display:grid;container-type:size}.canvas-stage{width:min(100cqw,100cqh)}.grid-card-footer{flex-direction:row;align-items:center;gap:10px;min-height:22px;padding:3px 8px}.canvas-range{flex:1}.grid-card-footer>.sample-readout{flex-shrink:0;align-self:center}@container not (width>=360px){.grid-card-footer{flex-direction:column;align-items:stretch;gap:2px}.grid-card-footer>.sample-readout{align-self:end}}@container not (width>=280px){.grid-card-header{height:44px}}@container not (aspect-ratio<=1.4){.grid-card-footer{pointer-events:none;border-top:0;flex-direction:column;justify-content:space-between;align-items:stretch;min-height:0;padding:0;position:absolute;inset:36px 8px 8px}.grid-card-footer .canvas-range{flex:none;align-items:start}.grid-card-footer .range-value{pointer-events:auto}.grid-card-footer>.sample-readout{overflow-wrap:anywhere;align-self:end;max-width:calc(50cqw - 50cqh + 14px)}}@container (not (aspect-ratio<=1.4)) and (not (width>=280px)){.grid-card-footer{top:52px}}}@media (width<=47.499rem){.app-shell{padding-top:12px}.grid-workspace{--domain-gap:24px}.domain-headings{grid-template-rows:48px 26px}.domain-heading>.brush-switch{width:100%}.transform-link{height:48px;bottom:auto}.status-bar{margin-top:16px;padding-bottom:8px}}@container (width>=900px){.domain-headings{grid-template-rows:36px}.domain-heading{justify-content:center;align-items:center;gap:10px;display:flex}.domain-heading[data-domain=spatial]{grid-column:1}.domain-heading[data-domain=frequency]{grid-column:2}.domain-heading>.brush-switch{width:150px}.transform-link{font-size:8px;line-height:9px}.transform-link svg{height:16px}}@media (width<=47.499rem){.footer-status{display:contents}.footer-status .status-text{grid-area:1/1}.footer-status .color-legend{grid-area:2/1/auto/-1;justify-self:center}.footer-brand{grid-area:1/2}.footer-actions{grid-area:1/3}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
