.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--line: rgba(255, 255, 255, .28);--line-soft: rgba(255, 255, 255, .2);--line-subtle: rgba(255, 255, 255, .13);--input-line: rgba(94, 232, 223, .46);--output-line: rgba(148, 169, 218, .44);--guidance: #77dcd5;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#050608;color:#f3f6fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#050608;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,p{margin:0;letter-spacing:0}.app-shell{max-width:100%;min-height:100vh;padding:8px;display:flex;flex-direction:column;gap:5px}.topbar{display:grid;grid-template-columns:minmax(300px,1fr) auto minmax(240px,.78fr);align-items:center;min-width:0;gap:12px;min-height:47px;padding:0 2px 5px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand svg{color:#5ee8df;flex:0 0 auto}.brand h1{font-size:19px;line-height:1.05}.brand p{margin-top:3px;color:#c9d2df;font-size:12px;line-height:1.25}.top-links{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}.project-link{display:inline-flex;align-items:center;gap:4px;min-height:23px;border:1px solid var(--line-soft);border-radius:6px;padding:2px 7px;color:#8fc7ff;background:#000;font-size:11px;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.project-link:hover{border-color:#5ee8df80;color:#f6fffe}.share-links{position:relative;display:inline-flex;align-items:center;gap:4px;margin-left:2px;padding-left:7px;border-left:1px solid var(--line-subtle)}.share-label{margin-right:1px;color:#c6d0db;font-size:10px;line-height:1}.share-button{display:grid;place-items:center;width:23px;height:23px;min-height:23px;border:1px solid var(--line-soft);border-radius:5px;padding:0;background:#ffffff09;color:#b8c9dc;line-height:1;text-decoration:none}.share-button:hover,.share-button:focus-visible{border-color:#5ee8df94;background:#5ee8df1a;color:#f4fffe}.share-feedback{position:absolute;z-index:8;top:calc(100% + 5px);right:0;width:max-content;max-width:190px;border:1px solid var(--input-line);border-radius:5px;padding:4px 6px;background:#05090b;color:#dffbf8;font-size:10px;line-height:1.2;box-shadow:0 3px 12px #00000080}.top-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.status-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(94,232,223,.34);border-radius:999px;padding:5px 8px;background:#5ee8df14;color:#aef9f4;font-size:11px;white-space:nowrap}.workbench{display:grid;grid-template-columns:300px minmax(0,1fr);gap:5px;flex:1;min-height:0;min-width:0}.workbench.controls-collapsed{grid-template-columns:42px minmax(0,1fr)}.control-rail{display:flex;flex-direction:column;gap:5px;min-width:0}.control-rail.collapsed{width:42px}.control-panel,.map-panel,.plot-panel{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:7px;background:#000}.output-map.render-updated{animation:surface-update-flash .68s ease-out}.output-map,.time-plot-panel,.frequency-plot-panel{border-color:var(--output-line)}@keyframes surface-update-flash{0%{border-color:#5ee8dff2;box-shadow:0 0 0 1px #5ee8df47}to{border-color:var(--output-line);box-shadow:none}}.control-panel{overflow:hidden}.control-rail-toggle{display:flex;align-items:center;justify-content:flex-start;gap:5px;width:100%;min-height:25px;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:2px 7px;background:#000;color:#f3f6fa;text-align:left}.control-rail.collapsed .control-rail-toggle{justify-content:center;height:100%;min-height:68px;border-bottom:0;padding:0}.control-rail-toggle span{font-size:10.5px;font-weight:700}.control-rail-toggle svg{color:#9feee8}.collapsed-control-label{display:none}.control-panel-body{display:grid;gap:7px;padding:7px}.control-group{display:grid;gap:5px;padding:5px;border:1px solid var(--line-soft);border-radius:6px}.control-group:first-child,.current-inputs-group{border-color:var(--input-line)}.control-group h2,.map-panel h2,.panel-title-row h2,.empty-view h2{font-size:11px;font-weight:650;line-height:1.15}.control-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.current-inputs-group h2{font-weight:400}.output-controls-group,.export-controls-group{border-color:var(--output-line)}.render-summary,.export-note{color:#c8d2de;font-size:10.5px;line-height:1.35}.render-summary{padding:0 5px;color:#a9ded9}.quantity-select{margin:0;font-size:11px}.plot-layout-control{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#d2dae5;font-size:11px}.rendering-pill{display:inline-flex;align-items:center;gap:4px;color:#9feee8;font-size:10px}.editing-pill{color:#8ce8e1;font-size:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}label{display:grid;gap:5px;color:#d2dae5;font-size:11px;line-height:1.25}select,input,textarea{width:100%;min-height:25px;border:1px solid var(--line-soft);border-radius:6px;background:#050608;color:#f0f5fa;padding:4px 7px;outline:none}select{background:#0b1014}textarea{min-height:76px;resize:vertical;line-height:1.35}select:focus,input:focus,textarea:focus{border-color:#5ee8dfa8}input[type=range]{-webkit-appearance:none;appearance:none;min-height:13px;padding:0;border:0;accent-color:#5ee8df;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:2px;border-radius:999px;background:#ffffff6b}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;margin-top:-4.5px;border:0;border-radius:50%;background:#5ee8df}input[type=range]::-moz-range-track{height:2px;border-radius:999px;background:#ffffff6b}input[type=range]::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:#5ee8df}.range-field{gap:3px}.range-pair-field{--range-start: 0%;--range-end: 100%}.range-name{color:#eef4fa;font-weight:700}.range-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.range-label strong{color:#f5f8fb;font-size:11px;font-weight:500;white-space:nowrap}.range-pair-control{position:relative;display:block;height:15px}.range-pair-control:before,.range-pair-control:after{position:absolute;top:6px;right:0;left:0;height:3px;border-radius:999px;content:""}.range-pair-control:before{background:#ffffff47}.range-pair-control:after{left:var(--range-start);right:calc(100% - var(--range-end));background:#5ee8dfad}.range-pair-control input[type=range]{position:absolute;inset:0;z-index:2;width:100%;pointer-events:none}.range-pair-control input[type=range]::-webkit-slider-runnable-track{background:transparent}.range-pair-control input[type=range]::-moz-range-track{background:transparent}.range-pair-control input[type=range]::-webkit-slider-thumb{pointer-events:auto}.range-pair-control input[type=range]::-moz-range-thumb{pointer-events:auto}.input-action-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}.action-button,.file-action-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:23px;border:1px solid rgba(94,232,223,.36);border-radius:6px;color:#effffd;font-size:11px;background:#147c7552}.file-action-button{cursor:pointer}.file-action-button input{display:none}.action-button:hover:not(:disabled),.file-action-button:hover,.export-grid button:hover:not(:disabled){border-color:#5ee8dfb3}.action-button.subtle{border-color:var(--line-soft);background:#4866882e}.stimulus-row button{border:1px solid var(--line-soft);border-radius:5px;background:#ffffff0e;color:#e1e9f2}.field-note{color:#aeb9c7;font-size:10px;line-height:1.35}.control-divider{height:1px;margin:1px 0;background:var(--line-soft)}.stimulus-list{display:grid;gap:4px;min-height:23px;max-height:160px;overflow-y:auto;padding-right:1px}.empty-note{color:#aeb9c7;font-size:11px}.stimulus-row{display:grid;grid-template-columns:46px 1fr 26px;align-items:center;gap:5px;min-height:25px;border:1px solid var(--line-soft);border-radius:6px;padding:3px 4px 3px 6px;background:#050608;cursor:pointer;outline:none}.stimulus-row:hover,.stimulus-row:focus-visible{border-color:#5ee8df7a}.stimulus-row.selected{border-color:#5ee8dfa8;background:#5ee8df24}.stimulus-row span{color:#73eee6;font-size:10.5px}.stimulus-row strong{min-width:0;overflow:hidden;color:#f0f4f9;font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.stimulus-row button{display:grid;place-items:center;height:20px;padding:0}.analysis-pane{display:grid;grid-template-rows:minmax(410px,49vh) auto auto;gap:5px;min-width:0;max-width:100%}.map-strip{display:grid;grid-template-columns:minmax(180px,.34fr) minmax(420px,1fr);gap:5px;min-height:0;min-width:0;max-width:100%}.map-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;padding:6px}.map-panel header,.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.map-panel header{padding-bottom:5px}.input-map header{align-items:flex-start}.input-map{border-color:var(--input-line)}.map-panel header span{color:#c5cfdb;font-size:11px;line-height:1.25}.selection-hint{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;column-gap:5px;gap:1px;color:var(--guidance);text-align:right}.selection-hint>span{grid-column:1}.selection-hint>span+span{color:#9edbd7;font-size:10px}.selection-mode-button{grid-column:2;grid-row:1 / span 2;display:inline-flex;align-items:center;gap:2px;min-height:19px;border:1px solid rgba(158,219,215,.34);border-radius:4px;padding:1px 4px;color:#bdd3d6;background:#5ee8df0b;font-size:9.5px;line-height:1}.selection-mode-button.active{border-color:#5ee8dfc7;color:#edfffd;background:#5ee8df33}.surface-header{align-items:flex-start}.surface-header>div:first-child{display:grid;gap:2px;min-width:0}.surface-header-right{display:grid;justify-items:end;gap:2px}.selected-output-summary{color:#a9ded9!important;font-size:10px!important;line-height:1.15!important;text-align:right}.surface-tools{display:inline-flex;align-items:flex-start;gap:6px}.segmented-control{display:inline-flex;gap:2px;padding:1px;border:1px solid var(--line-soft);border-radius:6px;background:#050608}.segmented-control button{min-height:20px;border:0;border-radius:4px;padding:1px 6px;color:#c0cad6;background:#ffffff0a;font-size:10.5px}.segmented-control button.active{color:#f4fffe;background:#5ee8df2e}.inline-check{display:inline-flex;align-items:center;gap:4px;min-height:23px;color:#dce5ef;font-size:10.5px;white-space:nowrap}.inline-check input{width:12px;min-height:12px;accent-color:#5ee8df}.input-image-stage,.surface-stage{position:relative;overflow:hidden;min-height:0}.input-image-stage{width:auto;height:85%;min-width:0;max-width:100%;max-height:100%;margin:auto;aspect-ratio:635 / 1000}.input-image-svg{display:block;width:100%;height:100%;min-width:0;max-width:100%}.input-marker-svg{cursor:pointer;outline:none}.input-marker-hit{fill:transparent}.input-marker-ring{fill:transparent;stroke:#ffffffd6;stroke-width:2.5;vector-effect:non-scaling-stroke}.input-marker-svg:hover .input-marker-ring,.input-marker-svg:focus-visible .input-marker-ring{stroke:#fff;stroke-width:3.1}.input-marker-svg.active .input-marker-ring{stroke:#5ee8df;stroke-width:3.2}.input-marker-svg.selected .input-marker-ring{stroke:#ffd66c;stroke-width:3.5}.surface-stage,.map-panel svg{width:100%;height:100%}.output-map svg{transform:scaleY(-1)}.output-map text{transform:scaleY(-1);transform-box:fill-box;transform-origin:center}.surface-outline{fill:none;stroke:#ebf1f84d;stroke-width:2.1;vector-effect:non-scaling-stroke}.interpolated-surface-image{opacity:.92}.map-point-button{outline:none}.output-point{cursor:pointer;stroke:#ffffff9e;stroke-width:1.2;vector-effect:non-scaling-stroke}.output-point.selected{stroke:#fff0b8;stroke-width:2}.map-point-button:focus-visible .output-point{stroke:#5ee8df;stroke-width:2.4}.output-point.outline-only{stroke:#f5f9fcad;stroke-width:.9}.output-point.outline-only.selected{stroke:#fff0b8;stroke-width:1.7}.output-point.hidden-marker,.output-point.hidden-marker.selected,.output-point.hidden-marker.outline-only,.output-point.hidden-marker.outline-only.selected{fill:transparent;stroke:transparent;stroke-width:8}.output-label{fill:#f6f8fb;font-size:10.5px;font-weight:800;paint-order:stroke;pointer-events:none;stroke:#000;stroke-width:2.4px}.sensor-inset{position:absolute;top:43%;left:44px;z-index:2;width:min(86px,14.7%);max-height:48%;object-fit:contain}.spectrogram-frame{position:relative;width:100%;height:145px;min-width:0;overflow:hidden;background:#020304}.spectrogram-canvas{display:block;width:100%;height:145px}.spectrogram-colorbar{position:absolute;top:9px;right:12px;display:grid;grid-template-columns:7px auto;grid-template-rows:auto auto auto;align-items:center;gap:2px 4px;padding:3px 4px;border:1px solid rgba(255,255,255,.18);border-radius:3px;color:#edf3f8;background:#000000b8;font-size:8.5px;line-height:1;pointer-events:none}.spectrogram-colorbar-ramp{grid-column:1;grid-row:1 / span 3;width:7px;height:32px;border-radius:2px}.spectrogram-colorbar>span:first-child{grid-column:2;grid-row:1}.spectrogram-colorbar-ramp+span{grid-column:2;grid-row:3}.spectrogram-colorbar small{grid-column:2;grid-row:2;justify-self:start;color:#cbd5df;font-size:8px}.colorbar{position:absolute;right:9px;bottom:9px;z-index:3;display:grid;gap:5px;padding:6px;border:0;border-radius:6px;background:#000000a8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.colorbar-title{max-width:112px;color:#edf3f8;font-size:9.5px;font-weight:400;line-height:1.15;text-align:center}.colorbar-body{display:grid;grid-template-columns:10px auto;gap:6px;height:104px}.colorbar-ramp{width:10px;border:0;border-radius:999px}.colorbar-labels{display:flex;flex-direction:column;justify-content:space-between;color:#d5dee9;font-size:9.5px;line-height:1.05;white-space:nowrap}.map-loading{display:grid;place-items:center;color:#c0cad6;font-size:11px}.plot-panel{min-width:0;padding:4px 6px 2px}.panel-title-row{margin-bottom:2px}.plot-panel-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:20px}.plot-description{justify-self:center;min-width:0;overflow:hidden;color:#d1dbe6;font-size:11px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.plot-header-tools{display:inline-flex;align-items:center;justify-self:end;gap:5px}.output-range-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.output-range-grid .range-label{gap:4px;font-size:10.5px}.output-range-grid .range-label strong{font-size:10.5px}.output-legend{display:inline-flex;align-items:baseline;justify-self:end;gap:3px;color:#dce5ef;font-size:10.5px;font-weight:400;white-space:nowrap}.output-legend strong{font-size:10.5px;font-weight:700}.spectrogram-output-selector{display:inline-flex;align-items:center;gap:3px;margin-right:8px;white-space:nowrap}.spectrogram-output-selector button{min-width:19px;min-height:17px;border:1px solid rgba(216,227,238,.32);border-radius:3px;padding:0 3px;background:#ffffff09;color:#bfcad6;font-size:9.5px;line-height:1}.spectrogram-output-selector button.active{border-color:#5ee8dfb3;background:#5ee8df2b;color:#edfffd}.spectrogram-output-selector button:focus-visible{outline:1px solid #dffefa;outline-offset:1px}.axis-toggle-row{display:inline-flex;flex:0 0 auto;gap:3px}.axis-toggle-row button{min-height:17px;border:1px solid rgba(255,255,255,.16);border-radius:4px;padding:1px 4px;background:#ffffff0b;color:#cbd5df;font-size:10.5px;line-height:1}.axis-toggle-row button.active{border-color:#5ee8df94;background:#5ee8df2e;color:#f2fffd}.panel-title-row h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;color:#dce5ef;font-size:11px;font-weight:500}.panel-title-row h2 span:first-child{color:#f2f6fa}.analysis-stack{display:grid;gap:6px}.small-multiple-stack{display:grid;gap:0}.plot-scroll{max-height:min(430px,45vh);overflow-y:auto;padding-right:2px}.chart-frame{position:relative;min-width:0;overflow:hidden;border:0;border-radius:0;background:#020304}.small-multiple-stack .chart-frame+.chart-frame{border-top:1px solid var(--line-subtle)}.chart-host{width:100%;min-height:0}.chart-host .uplot{color:#d3dce7;background:transparent;font-family:inherit}.chart-host .u-legend{display:none}.chart-host .u-axis text{fill:#cbd5df;font-size:10px}.plot-cursor-readout{position:absolute;z-index:5;max-width:min(230px,calc(100% - 8px));border:1px solid rgba(174,204,213,.35);border-radius:3px;padding:3px 5px;color:#eef7f8;background:#000709e0;box-shadow:0 2px 8px #00000061;font-size:9.5px;line-height:1.3;white-space:pre-line;pointer-events:none}.empty-view{display:grid;gap:5px;place-content:center;min-height:86px;color:#c4ceda;text-align:center}.empty-view p,.export-stack p{color:#c4ceda;font-size:11px;line-height:1.35}.export-stack{display:grid;gap:7px}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.export-grid button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:23px;border:1px solid rgba(105,155,218,.42);border-radius:6px;background:#406ca62e;color:#eef4fa;font-size:10.5px}.app-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:0 2px 4px;color:#c3ccd7;font-size:11px;line-height:1.35}.paper-reference{font-weight:700}.contact-reference{margin-left:auto;font-weight:700;text-align:right}.app-footer a{color:#8fc7ff;text-decoration:underline;text-underline-offset:2px}.app-footer a:hover{color:#d3fffb}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:821px){.output-map{position:relative;display:block}.output-map .surface-header{position:absolute;z-index:4;top:7px;right:7px;left:7px;padding-bottom:0;pointer-events:none}.output-map .surface-tools,.output-map .surface-tools *,.output-map .inline-check,.output-map .selection-mode-button{pointer-events:auto}.output-map .surface-stage{position:absolute;inset:7px;width:auto;height:auto}}@media(max-width:1120px){.topbar{grid-template-columns:minmax(300px,1fr) auto}.top-status{grid-column:1 / -1;justify-content:flex-start}.workbench,.workbench.controls-collapsed{grid-template-columns:1fr}.control-rail{display:block}.control-rail.collapsed{width:100%}.control-rail.collapsed .control-rail-toggle{justify-content:flex-start;width:100%;height:31px;min-height:31px;padding:5px 8px}.control-rail.collapsed .collapsed-control-label{display:inline}.control-panel-body{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:10px}.control-group{padding:6px}.control-group:first-child{border-color:var(--input-line)}.analysis-pane{grid-template-rows:minmax(410px,56vh) auto auto}.map-strip{grid-template-columns:.62fr 1fr;min-height:410px}}@media(max-width:820px){.topbar{grid-template-columns:1fr;align-items:flex-start}.top-links,.top-status{justify-content:flex-start}.control-panel-body{grid-template-columns:repeat(2,minmax(0,1fr))}.control-group:nth-child(odd){padding:6px}.map-strip{grid-template-columns:1fr}.analysis-pane{grid-template-rows:auto auto auto}.map-panel{min-height:360px}.input-map{min-height:520px}.top-links{flex-wrap:wrap}}@media(max-width:560px){.app-shell{padding:8px}.brand{align-items:flex-start}.top-status{align-items:flex-start;flex-direction:column}.control-panel-body{grid-template-columns:1fr}.control-group,.control-group:nth-child(odd){padding:6px}.control-group:first-child{border-color:var(--input-line)}.plot-panel-header{grid-template-columns:auto minmax(0,1fr)}.plot-description{grid-column:1 / -1;grid-row:2;justify-self:start;margin-top:2px;text-align:left;white-space:normal}.plot-panel-header>.output-legend,.plot-header-tools{grid-column:2;grid-row:1}.export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.colorbar{right:6px;bottom:6px;padding:5px}.sensor-inset{top:43%;left:2px;width:76px}.colorbar-title{max-width:96px;font-size:8.5px}.colorbar-body{height:84px}.colorbar-labels{font-size:8.5px}}
