:root{--accent: #1d5c8c;--body: #F4F4F2;--ground: #15161A;--muted: #8B9096;--bg: var(--body);--text: #1A1B1E;--faint: #B7BBC0;--line: #E2E3E0;--track: #E8E9E6;--dim: #D3D6D9;--tip-bg: #1A1B1E;--tip-fg: #F4F4F2;--tip-k: #B7BBC0;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}#app[data-theme=dark]{--bg: var(--ground);--text: #F4F4F2;--faint: #5C6168;--line: #26282E;--track: #22242A;--dim: #3A3D44;--tip-bg: #F4F4F2;--tip-fg: #15161A;--tip-k: #5C6168}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--sans);-webkit-font-smoothing:antialiased}#app{height:100%;overflow:hidden;position:relative;background:var(--bg);color:var(--text)}.cfg-btn{position:absolute;top:8px;right:10px;z-index:6;width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:13px;line-height:1;color:var(--muted);background:var(--bg);border:1px solid var(--line);opacity:0;transition:opacity .15s,color .12s,border-color .12s}#app:hover .cfg-btn{opacity:.75}.cfg-btn:hover{opacity:1;color:var(--accent);border-color:var(--accent)}.viz{position:relative;height:100%;width:100%;overflow:hidden;padding:clamp(8px,2.4vmin,24px)}.canvas{width:100%;height:100%;display:block;cursor:pointer;user-select:none;-webkit-user-select:none}.canvas .ridge{stroke:none;transition:opacity .08s ease}.canvas .ridge.dim{fill:var(--dim)!important}.canvas .crest{fill:none;stroke:var(--accent);stroke-linejoin:round;stroke-linecap:round}.canvas .crest.dim{stroke:var(--dim)!important}.canvas .base{stroke:var(--line);stroke-width:1}.canvas .lbl{fill:var(--text);font-family:var(--mono)}.canvas .tick{fill:var(--muted);font-family:var(--mono)}.canvas .axis{stroke:var(--line);stroke-width:1}.canvas .note{fill:var(--faint);font-family:var(--mono);font-size:9.5px}.canvas .lbl,.canvas .tick,.canvas .axis,.canvas .base,.canvas .note{pointer-events:none}#app.sm .canvas .tick,#app.xs .canvas .tick,#app.xs .canvas .lbl,#app.xs .canvas .note{display:none}@keyframes ridge-rise{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#app.enter .canvas .ridge,#app.enter .canvas .crest{transform-origin:center bottom;transform-box:fill-box;animation:ridge-rise .5s cubic-bezier(.2,.7,.2,1) both}#app.enter .canvas .lbl,#app.enter .canvas .tick{animation:fade-in .5s ease-out both}@media(prefers-reduced-motion:reduce){#app.enter .canvas *{animation:none!important}}.legend{position:absolute;right:clamp(8px,2.4vmin,24px);top:clamp(8px,2.4vmin,24px);z-index:3;pointer-events:none;max-width:42%;background:color-mix(in srgb,var(--bg) 84%,transparent);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:11px;line-height:1.5;color:var(--text);font-family:var(--mono);backdrop-filter:blur(2px)}.legend .lg-title{font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend .lg-row{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend .lg-sw{width:11px;height:11px;border-radius:3px;flex:none}.legend .lg-more{color:var(--muted);margin-top:1px}.legend .lg-ramp{width:116px;height:9px;border-radius:5px}.legend .lg-scale{display:flex;justify-content:space-between;font-size:9.5px;color:var(--muted);margin-top:2px}#app.sm .legend,#app.xs .legend{display:none!important}.tip{position:absolute;z-index:4;pointer-events:none;background:var(--tip-bg);color:var(--tip-fg);border-radius:6px;padding:5px 8px;font-family:var(--mono);font-size:10.5px;line-height:1.45;min-width:70px;box-shadow:0 6px 18px #00000038}.tip .tt-k{color:var(--tip-k)}.tip .tt-v{font-weight:600}.empty{height:100%;display:grid;place-items:center;padding:16px}.empty-card{text-align:center;max-width:340px;color:var(--muted)}.empty-mark{color:var(--accent);margin-bottom:10px;opacity:.9}.empty-card h1{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;font-size:22px;color:var(--text);margin:0 0 6px}.empty-card p{font-size:12.5px;line-height:1.55;margin:0}.empty-card b{color:var(--text)}
