:root{--field:#fff;--paper:#fff;--panel:#f0f0ee;--wash:#e6e6e3;--ink:#111316;--soft-ink:#3a3c40;--muted:#6b6d70;--line:#e7e7e4;--line-strong:#cfcfca;--red:#fe5000;--red-deep:#d94400;--blue:#2563c9;--blue-deep:#1c4ea3;--green:#2e9e5b;--green-deep:#237a46;--related:var(--green);--screen:#14130f;--screen-line:#2b271c;--rust:var(--red);--teal:var(--ink);--gold:var(--red);--display:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;--body:"Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--utility:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;color:var(--ink);background:var(--field);font-family:var(--body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--field);min-width:320px;height:100%;overflow:hidden}body{min-width:320px;height:100%;margin:0;overflow:hidden}button,input{font:inherit}#root{height:100%;overflow:hidden}.app{background:var(--field);grid-template-columns:minmax(320px,396px) minmax(0,1fr);height:100svh;display:grid;overflow:hidden}.app--centered{place-items:center;padding:24px;display:grid}.load-state{border:1px solid var(--line-strong);background:var(--paper);border-radius:0;width:min(440px,100%);padding:30px;box-shadow:inset 0 1px #fff,0 18px 40px -28px #00000080}.load-state h1{font:800 46px/.92 var(--display);letter-spacing:-.03em;text-transform:lowercase;margin:0 0 10px}.load-state p{color:var(--muted);font:500 13px/1.5 var(--utility);margin:0}.rail{border-right:1px solid var(--line-strong);background:linear-gradient(180deg, #fbfbfb 0%, var(--paper) 42%, #f4f4f3 100%);flex-direction:column;height:100svh;min-height:0;display:flex;box-shadow:inset -1px 0 #fff}.brand{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:center;gap:18px;padding:14px 22px 13px;display:flex}.brand-id{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.brand h1{color:var(--ink);font:800 38px/.84 var(--display);letter-spacing:-.04em;text-transform:lowercase;margin:0}.brand h1:before{content:"";vertical-align:6px;background:var(--red);width:9px;height:9px;box-shadow:0 0 0 2px color-mix(in srgb, var(--red) 22%, transparent);border-radius:50%;margin-right:6px;display:inline-block}.brand-credit{width:fit-content;color:color-mix(in srgb, var(--muted) 78%, transparent);font:650 9px/1 var(--utility);letter-spacing:.1em;text-transform:lowercase;text-decoration:none;transition:color .12s}.brand-credit:hover,.brand-credit:focus-visible{color:var(--ink);outline:none}.detail h3{font-family:var(--utility);letter-spacing:.08em;text-transform:lowercase;font-size:10.5px;font-weight:600}.detail{flex:auto;min-height:0;padding:22px 24px 26px;overflow:auto}.detail-head{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:22px;display:flex}.detail h2{color:var(--ink);font:800 33px/.94 var(--display);letter-spacing:-.035em;text-transform:lowercase;margin:0}.detail h2 a{color:inherit;text-decoration:none;transition:color .12s}.detail h2 a:hover,.detail h2 a:focus-visible{color:var(--red)}.detail h2 a:focus-visible{outline:none}.detail-block{border-top:1px solid var(--line);padding-top:18px}.detail-block+.detail-block{margin-top:20px}.detail h3{color:var(--red);align-items:baseline;gap:8px;margin:0 0 13px;display:flex}.detail h3:before{content:attr(data-index);color:var(--muted);font-variant-numeric:tabular-nums}.detail p{color:var(--soft-ink);margin:0;font-size:14.5px;line-height:1.6}.artist-list a{color:inherit;text-decoration:none;transition:color .12s}.artist-list a:hover,.artist-list a:focus-visible{color:var(--red)}.artist-list a:focus-visible{outline:none}.search-dock{border-top:1px solid var(--line-strong);background:color-mix(in srgb, var(--paper) 82%, var(--panel));flex:none;padding:12px 18px 13px;position:relative;box-shadow:inset 0 1px #ffffffb8}.search-field{border:1px solid color-mix(in srgb, var(--line-strong) 70%, transparent);background:color-mix(in srgb, #fff 88%, var(--wash));border-radius:12px;grid-template-columns:15px minmax(0,1fr);align-items:center;gap:8px;min-height:36px;padding:0 12px;display:grid;box-shadow:inset 0 1px #ffffffdb,0 1px 2px #1113160d}.search-field span{opacity:.58;width:13px;height:13px;transition:opacity .12s;position:relative}.search-field:focus-within span{opacity:.92}.search-field span:before{content:"";border:1.8px solid var(--muted);border-radius:50%;width:8px;height:8px;position:absolute;top:1px;left:1px}.search-field span:after{content:"";background:var(--muted);transform-origin:50%;border-radius:999px;width:6px;height:1.8px;position:absolute;bottom:1px;right:1px;transform:rotate(45deg)}.search-field input{appearance:none;width:100%;min-width:0;color:var(--ink);font:560 14px/1 var(--body);letter-spacing:0;background:0 0;border:0;outline:0}.search-field input::placeholder{color:color-mix(in srgb, var(--muted) 76%, transparent);font-weight:520}.search-field:focus-within{border-color:color-mix(in srgb, var(--line-strong) 70%, transparent);background:#fff;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #1113160d}.search-results{z-index:4;border:1px solid color-mix(in srgb, var(--line-strong) 72%, transparent);background:#fff;border-radius:12px;flex-direction:column;animation:60ms ease-out search-results-in;display:flex;position:absolute;bottom:calc(100% - 8px);left:18px;right:18px;overflow:hidden}@keyframes search-results-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.search-results{animation:none}}.search-results-list{max-height:min(360px,100svh - 200px);padding:6px;scroll-padding-block:40px;overflow:auto}.search-results button{appearance:none;width:100%;min-height:34px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 10px;display:grid}.search-results button+button{margin-top:1px}.search-results button.is-active{background:color-mix(in srgb, var(--red) 7%, #fff 93%)}.search-results button:focus-visible{background:color-mix(in srgb, var(--red) 7%, #fff 93%);outline:none}.search-results .result-name{align-items:center;gap:8px;min-width:0;display:flex}.search-results .result-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:color-mix(in srgb, var(--ink) 64%, var(--paper));font:540 13.5px/1.1 var(--body);letter-spacing:0;text-transform:lowercase;overflow:hidden}.search-results .result-match{color:var(--ink);font-weight:720}.search-results .result-count{color:color-mix(in srgb, var(--muted) 88%, transparent);font:560 11px/1 var(--body);font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap}.current-dot{background:var(--red);width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in srgb, var(--red) 22%, transparent);border-radius:50%;flex:none}.search-results p{color:var(--muted);font:600 12px/1 var(--utility);text-transform:lowercase;margin:0;padding:14px 12px}.visualizer{background:var(--screen);height:184px;box-shadow:0 1px 0 #fff, 0 0 0 1px var(--line-strong), inset 0 2px 7px #000000b3, inset 0 0 0 1px #00000080;border-radius:0;margin-bottom:14px;position:relative;overflow:hidden}.visualizer-canvas{background:inherit;width:100%;height:100%;display:block}.visualizer-tag{font:600 8.5px/1 var(--utility);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb, var(--red) 70%, #fff 30%);pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute;bottom:9px;left:11px}.visualizer-led{pointer-events:none;background:#5a3a22;border-radius:50%;width:7px;height:7px;position:absolute;top:10px;right:11px;box-shadow:0 0 0 1px #00000080}.visualizer.is-live .visualizer-led{background:var(--red);box-shadow:0 0 8px 1px color-mix(in srgb, var(--red) 80%, transparent);animation:1.1s step-end infinite led-blink}@keyframes led-blink{50%{opacity:.35}}.preview-player{box-shadow:none;background:0 0;border:0;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-bottom:20px;padding:12px 13px;display:grid}.preview-toggle{appearance:none;background:var(--ink);width:42px;height:42px;color:var(--paper);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:background .14s,box-shadow .14s,transform .12s cubic-bezier(.23,1,.32,1);display:grid;position:relative;box-shadow:inset 0 1px #ffffff2e,0 8px 16px -10px #111316e6}.preview-toggle:hover{background:color-mix(in srgb, var(--ink) 88%, #fff 12%)}.preview-toggle:active{transform:scale(.96);box-shadow:inset 0 1px #ffffff24,0 5px 12px -10px #111316e6}.preview-toggle:focus-visible{box-shadow:0 1px 0 #ffffff2e inset, 0 0 0 3px color-mix(in srgb, var(--blue) 26%, transparent);outline:none}.preview-toggle:disabled{background:var(--wash);color:var(--muted);cursor:not-allowed;box-shadow:inset 0 1px #fff}.preview-symbol{display:block}.preview-symbol--play{border-block:8px solid #0000;border-left:12px solid;width:0;height:0;margin-left:3px}.preview-symbol--pause{border-inline:4px solid;width:13px;height:16px}.preview-main{gap:9px;min-width:0;display:grid}.preview-copy{gap:3px;min-width:0;display:grid}.preview-copy strong,.preview-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-copy strong{color:var(--ink);font:700 14.5px/1.05 var(--display);letter-spacing:0}.preview-copy span{color:var(--muted);font:500 11px/1.1 var(--body);letter-spacing:0}.preview-copy a{color:inherit;text-decoration:none}.preview-copy a:hover,.preview-copy a:focus-visible{color:var(--red)}.preview-copy a:focus-visible{outline:none}.preview-progress{grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:8px;display:grid}.preview-progress span{color:color-mix(in srgb, var(--muted) 84%, transparent);font:600 9.5px/1 var(--utility);font-variant-numeric:tabular-nums;letter-spacing:0}.preview-progress span:last-child{text-align:right}.preview-scrubber{appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.preview-scrubber:disabled{cursor:default}.preview-scrubber::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--ink) 0%, var(--ink) var(--progress), var(--line-strong) var(--progress), var(--line-strong) 100%);border-radius:999px;height:4px}.preview-scrubber::-webkit-slider-thumb{appearance:none;border:0;width:0;height:0}.preview-scrubber::-moz-range-track{background:var(--line-strong);border-radius:999px;height:4px}.preview-scrubber::-moz-range-progress{background:var(--ink);border-radius:999px;height:4px}.preview-scrubber::-moz-range-thumb{border:0;width:0;height:0}.preview-scrubber:focus-visible{outline:none}.preview-scrubber:focus-visible::-webkit-slider-runnable-track{box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 16%, transparent)}.preview-scrubber:focus-visible::-moz-range-track{box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 16%, transparent)}.preview-audio{clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.spectrum{gap:12px;display:grid}.spectrum-bar{border:1px solid var(--line-strong);background:var(--panel);border-radius:4px;height:30px;display:flex;overflow:hidden}.spectrum-seg{background:var(--seg);cursor:pointer;min-width:4px;height:100%;transition:opacity .12s,filter .12s}.spectrum-seg+.spectrum-seg{box-shadow:inset 1px 0 #ffffff80}.spectrum-seg:hover{filter:brightness(1.07)}.spectrum-legend{grid-template-columns:1fr 1fr;gap:1px 16px;margin:0;padding:0;list-style:none;display:grid}.spectrum-legend button{appearance:none;width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:4px 2px;transition:opacity .12s,color .12s;display:grid}.spectrum-legend .swatch{background:var(--seg);border-radius:2px;width:9px;height:9px}.spectrum-legend .legend-name{text-overflow:ellipsis;white-space:nowrap;font:600 13px/1.2 var(--display);letter-spacing:-.01em;overflow:hidden}.spectrum-legend small{color:var(--muted);font:600 11px/1 var(--utility);font-variant-numeric:tabular-nums}.spectrum-legend button:hover,.spectrum-legend button.is-active,.spectrum-legend button:focus-visible{color:var(--related);outline:none}.spectrum-legend button:hover small,.spectrum-legend button.is-active small,.spectrum-legend button:focus-visible small{color:var(--related)}.map-shell{grid-template-rows:1fr;align-content:start;min-width:0;height:100svh;display:grid}.map-stage{background-color:var(--field);min-width:0;height:100svh;min-height:0;position:relative}.map{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.map:active{cursor:grabbing}.map-bg{fill:#0000}.selected-links line{stroke:var(--related);stroke-opacity:calc(.18 + var(--link-strength) * .62);stroke-width:calc(1px + var(--link-strength) * 8px)}.node-label{cursor:pointer;outline:none;transition:opacity .15s,transform .15s}.node-name{fill:color-mix(in srgb, var(--ink) 82%, transparent);paint-order:stroke;stroke:var(--field);stroke-width:var(--label-stroke);stroke-linejoin:round;font:600 var(--label-size)/1 var(--utility);pointer-events:visiblePainted;-webkit-user-select:none;user-select:none}.node-label:hover .node-name,.node-label:focus .node-name{fill:var(--red);stroke-width:var(--selected-label-stroke)}.node-label.is-neighbor .node-name{fill:var(--related);font-size:var(--related-label-size);font-weight:700}.map.is-searching .node-label:not(.is-search-match):not(.is-selected){opacity:.34}.node-label.is-search-match .node-name{fill:var(--blue);stroke-width:var(--selected-label-stroke);font-weight:750}.node-label.is-search-active .node-name{fill:var(--red);stroke-width:var(--selected-label-stroke);font-size:var(--selected-label-size);font-weight:800}.node-label.is-selected .node-name{fill:var(--red);stroke:var(--paper);stroke-width:var(--selected-label-stroke);font-size:var(--selected-label-size);font-weight:700}@media (width<=920px){.app{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line-strong);min-height:auto}.detail{max-height:none}.map-shell{min-height:72svh}.map-stage{height:72svh;min-height:560px}.map{min-height:560px}}@media (width<=560px){.brand{padding:14px 18px 13px}.brand h1{font-size:34px}.detail{padding-inline:18px}}
