@font-face{font-family:Articulat CF;src:url(/bathymetry_visualizer/assets/ArticulatCF-Normal-Dt2lqSqS.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:Articulat CF;src:url(/bathymetry_visualizer/assets/ArticulatCF-Medium-HIEZl35J.otf) format("opentype");font-weight:500;font-style:normal}@font-face{font-family:Articulat CF;src:url(/bathymetry_visualizer/assets/ArticulatCF-DemiBold-lD4eGuhS.otf) format("opentype");font-weight:600;font-style:normal}:root{--beige: #ece4d2;--beige-2: #e3d9c2;--beige-line: #d2c6a8;--ink: #3a3327;--ink-soft: #6b6147;--white: #ffffff;--accent: #8a6d3b;--panel-w: 340px}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Articulat CF,Optima,Candara,Segoe UI,sans-serif;font-weight:400;color:var(--ink);background:var(--beige)}#app{display:flex;height:100vh;width:100vw}#viewbox{flex:1 1 auto;background:var(--white);position:relative;overflow:hidden}#scene{display:block;width:100%;height:100%}#panel{width:var(--panel-w);flex:0 0 var(--panel-w);background:var(--beige);border-left:1px solid var(--beige-line);overflow-y:auto;padding:0 0 40px}#panel-head{padding:20px 20px 12px;border-bottom:1px solid var(--beige-line);position:sticky;top:0;background:var(--beige);z-index:2}#panel-head h1{margin:0;font-size:22px;font-weight:600;letter-spacing:.3px}#panel-head .sub{margin:4px 0 0;font-size:12px;color:var(--ink-soft);font-style:italic}.group{border-bottom:1px solid var(--beige-line)}.group>h2{margin:0;padding:12px 20px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);cursor:pointer;user-select:none}.group>h2:before{content:"▾ ";color:var(--accent)}.group.collapsed>h2:before{content:"▸ "}.group.collapsed .group-body{display:none}.group-body{padding:2px 20px 7px}.row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;margin:4px 0}.row>label{grid-column:1 / -1;font-size:12px;color:var(--ink)}.row input[type=range]{width:100%;accent-color:var(--accent)}.row input[type=number]{width:74px;font-family:inherit;font-size:12px;padding:3px 5px;border:1px solid var(--beige-line);border-radius:3px;background:var(--white);color:var(--ink)}.row-inline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0;font-size:12px}.row-inline select{font-family:inherit;font-size:12px;padding:3px 5px;border:1px solid var(--beige-line);border-radius:3px;background:var(--white);color:var(--ink)}.row-inline input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.stop{display:grid;grid-template-columns:34px 1fr 24px;align-items:center;gap:8px;margin:6px 0}.stop input[type=color]{width:34px;height:26px;padding:0;border:1px solid var(--beige-line);border-radius:3px;background:none;cursor:pointer}.stop input[type=number]{width:100%;font-family:inherit;font-size:12px;padding:3px 5px;border:1px solid var(--beige-line);border-radius:3px;background:var(--white)}.stop .del{border:none;background:none;color:var(--ink-soft);cursor:pointer;font-size:15px;line-height:1}.stop .del:hover{color:#a23}.ramp-bar{height:18px;border-radius:3px;border:1px solid var(--beige-line);margin:8px 0 0;cursor:copy}.ramp-track{position:relative;height:18px;margin:0 0 4px}.ramp-stop{position:absolute;top:0;width:13px;height:16px;transform:translate(-50%);border:1px solid var(--ink);border-radius:0 0 3px 3px;box-shadow:0 0 0 1.5px #fff;cursor:grab}.ramp-stop.sel{outline:2px solid var(--accent);outline-offset:1px;z-index:3}.stop-edit{display:none;align-items:center;gap:8px;margin:6px 0;font-size:12px}.stop-edit input[type=color]{width:34px;height:26px;padding:0;border:1px solid var(--beige-line);border-radius:3px;background:none;cursor:pointer}.stop-edit input[type=number]{width:80px;font-family:inherit;font-size:12px;padding:3px 5px;border:1px solid var(--beige-line);border-radius:3px;background:var(--white)}button.btn{font-family:inherit;font-size:12px;padding:6px 12px;border:1px solid var(--accent);border-radius:4px;background:var(--beige-2);color:var(--ink);cursor:pointer}button.btn:hover{background:var(--accent);color:var(--white)}button.btn.full{width:100%;margin-top:6px}button.btn:disabled{opacity:.5;cursor:default}.progress{height:8px;background:var(--beige-2);border:1px solid var(--beige-line);border-radius:4px;margin-top:8px;overflow:hidden}.progress>i{display:block;height:100%;width:0%;background:var(--accent)}.note{font-size:11px;color:var(--ink-soft);margin:6px 0 0}#readout{position:absolute;left:14px;bottom:12px;font-size:12px;color:var(--ink-soft);background:#ffffffd9;border:1px solid var(--beige-line);border-radius:4px;padding:4px 8px;pointer-events:none}
