:root{--bg:#0d1117;--panel:#10151ceb;--line:#262d36;--text:#e8e4dc;--muted:#9aa3ad;--accent:#4aa3df;--ms1:#f2d33a;--ms2:#f39a2b;--ms3:#e5413a;--ms4:#a543c9;--serif:"Source Serif 4", Georgia, serif;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:14px/1.45 var(--sans);margin:0;overflow:hidden}canvas#gl{width:100vw;height:100vh;touch-action:none;height:100dvh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#labels{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.lab{white-space:nowrap;letter-spacing:.02em;color:#fff;text-shadow:0 1px 3px #000,0 0 8px #000;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.lab.place{font-family:var(--serif);color:#f1ece2;font-size:15px;font-style:italic}.lab.river{font-family:var(--serif);color:#9fd0f2;letter-spacing:.25em;text-transform:uppercase;font-size:14px}.lab.gauge:after{content:"";background:#fff;width:1px;height:18px;margin:2px auto 0;display:block}.lab.gauge b{background:#0000008c;border-radius:3px;padding:1px 6px;font-weight:600}#panel{overscroll-behavior:contain;background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);border-radius:10px;width:380px;padding:16px 18px 18px;position:fixed;top:12px;bottom:44px;left:12px;overflow-y:auto}.sheet-handle{display:none}header h1{font:600 26px/1.1 var(--serif);letter-spacing:-.01em;margin:0 0 4px}header .sub{color:var(--muted);font-family:var(--serif);margin:0 0 10px;font-style:italic}.seg.regions{min-height:34px;margin:0 0 12px}.seg.regions button{flex:1}.gder{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:6px;font-size:11.5px}h2{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:16px 0 8px}h3{font:600 12px var(--sans);color:var(--muted);margin:14px 0 6px}.gauge{margin:6px 0 14px}.ghead{justify-content:space-between;align-items:center;gap:8px;display:flex}.gname{color:var(--muted);font-size:12px}.badge{color:var(--muted);white-space:nowrap;background:#26303b;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600}.badge.m1{background:var(--ms1);color:#1b1b1b}.badge.m2{background:var(--ms2);color:#1b1b1b}.badge.m3{background:var(--ms3);color:#fff}.badge.m4{background:var(--ms4);color:#fff}.gval{align-items:baseline;gap:6px;min-height:40px;display:flex}.ghead{min-height:21px}.gval output{font:600 34px/1 var(--serif);font-variant-numeric:tabular-nums}.gval .unit{color:var(--muted)}.gval .abs{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.track{height:30px;position:relative}.track input{z-index:2;-webkit-appearance:none;appearance:none;background:0 0;width:100%;height:22px;margin:0;position:absolute;top:6px;bottom:auto;left:0;right:0}.track input::-webkit-slider-runnable-track{background:#33404d;border-radius:2px;height:4px}.track input::-moz-range-track{background:#33404d;border-radius:2px;height:4px}.track input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);border:3px solid var(--accent);border-radius:50%;width:22px;height:22px;margin-top:-9px}.track input::-moz-range-thumb{background:var(--text);border:3px solid var(--accent);border-radius:50%;width:16px;height:16px}.track input:disabled{opacity:.55}.ticks{height:8px;position:absolute;top:24px;left:11px;right:11px}.ticks i{width:2px;height:8px;position:absolute;transform:translate(-1px)}.check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:8px;margin:6px 0;font-size:12.5px;display:flex}.check input{accent-color:var(--accent);margin-top:2px}.counters{background:var(--line);border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1fr;gap:1px;margin-top:4px;display:grid;overflow:hidden}.counters div{background:#121820;padding:10px 12px}.counters b{font:600 24px/1.1 var(--serif);font-variant-numeric:tabular-nums;display:block}.counters span{color:var(--muted);font-size:11.5px}.counters small{color:#8b95a0}.chips{grid-template-columns:1fr 1fr;grid-auto-rows:34px;gap:6px;display:grid}button,.btn{font:500 12.5px var(--sans);color:var(--text);cursor:pointer;background:#1b232d;border:1px solid #2c3640;border-radius:6px;min-height:34px;padding:7px 10px}button:hover,.btn:hover{border-color:var(--accent)}button.on{background:var(--accent);border-color:var(--accent);color:#07131c;font-weight:600}.chips button{white-space:nowrap;text-overflow:ellipsis;border-radius:99px;min-height:0;padding:0 10px;overflow:hidden}.row2{grid-template-columns:auto 1fr;gap:14px;display:grid}.seg{flex-wrap:wrap;gap:4px;display:flex}.seg.vertical{flex-direction:column}.seg.vertical button{text-align:left}.legend{color:var(--muted);margin:8px 0 0;font-size:12px}.legend .sw{white-space:nowrap;align-items:center;gap:4px;margin-right:8px;display:inline-flex}.legend .sw i{border-radius:2px;width:12px;height:12px;display:inline-block}.why ol{font-family:var(--serif);margin:0;padding-left:18px;font-size:14.5px;line-height:1.5}.why li{margin-bottom:6px}.tools{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-top:18px;padding-top:14px;display:flex}#disclaimer{min-height:34px;padding:8px 14px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);z-index:5;background:#0a0d12;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex;position:fixed;bottom:0;left:0;right:0}#disclaimer a{color:var(--accent)}#disclaimer .legal{margin-left:12px}#disclaimer .attr{color:#8b95a0;margin-left:auto}#loading{background:var(--bg);z-index:2;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@media (min-width:761px){#loading{left:404px}}@media (max-width:760px){#loading{bottom:372px}}#loading .lbox h1{display:none}body.busy canvas#gl{cursor:progress;opacity:.85;transition:opacity .2s}#counters{grid-auto-rows:88px;min-height:266px}#presets{min-height:274px}#layers,#variants,#legend{min-height:34px}.lbox{text-align:center;width:min(420px,86vw)}.lbox h1{font:600 30px var(--serif);margin:0 0 6px}.lbox p{color:var(--muted)}.bar{background:#222a33;border-radius:2px;height:3px;overflow:hidden}#lbar{background:var(--accent);width:0;height:100%;transition:width .2s}.err{color:#ff8a80!important}#toast{border:1px solid var(--line);opacity:0;pointer-events:none;z-index:30;background:#1f2933;border-radius:6px;padding:8px 14px;transition:opacity .2s;position:fixed;bottom:60px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}dialog{color:var(--text);border:1px solid var(--line);background:#121820;border-radius:10px;max-width:min(560px,92vw);padding:18px 20px}dialog::backdrop{background:#0000008c}dialog h2{font:600 20px var(--serif);text-transform:none;letter-spacing:0;color:var(--text);margin:0 0 8px}dialog p{font-family:var(--serif);font-size:15px;line-height:1.55}.thrgrid{grid-template-columns:auto repeat(4,1fr);align-items:center;gap:6px;display:grid}.thrgrid input,#thrCut{width:100%;color:var(--text);font:14px var(--sans);background:#0d1117;border:1px solid #2c3640;border-radius:5px;padding:6px}.dbtn{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}#keys td{padding:3px 12px 3px 0}#keys td:first-child{white-space:nowrap;font-weight:600}#attrList{color:var(--muted);padding-left:18px;font-size:12.5px}@media (max-width:760px){#panel{width:auto;max-height:62vh;z-index:4;background:#10151c;border-radius:14px 14px 0 0;max-height:62dvh;padding:6px 14px 14px;transition:max-height .25s;top:auto;bottom:34px;left:0;right:0}#panel.collapsed-mobile{max-height:372px;overflow:hidden}#panel.collapsed-mobile header{display:none}.sheet-handle{background:0 0;border:0;width:100%;height:22px;min-height:0;padding:0;display:block}.sheet-handle span{background:#47515c;border-radius:2px;width:40px;height:4px;margin:6px auto;display:block}header h1{font-size:19px}header .sub{display:none}.gauge{margin:2px 0 6px}.gval output{font-size:26px}.gval{min-height:32px}.counters{grid-template-columns:repeat(3,1fr)}.counters div{padding:6px 8px}.counters b{font-size:17px}#counters{grid-auto-rows:60px;min-height:121px}#presets{min-height:274px}.counters span{font-size:10.5px;line-height:1.25;display:block}.ghead .gname{font-size:11px}.track{height:26px}.row2{grid-template-columns:1fr}#disclaimer .attr{display:none}#disclaimer{padding-top:6px;font-size:11px}}[hidden]{display:none!important}
