@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;450;500&display=swap');
:root{color-scheme:dark;--bg:#0a0a0a;--panel:#0d0d0d;--line:#282828;--text:#eaeaea;--muted:#949494;--accent:#e2e2e2;--blue:#b2b2b2;--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{color:inherit}button{cursor:pointer}button{background:none;border:0}a{text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}button:hover{color:#fff}button:disabled{cursor:default;opacity:.4}button[hidden],[hidden]{display:none!important}button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.2}.mono,.eyebrow,.section-label,.statusbar,.gesture-hint,.lens-label,.tag,.number,.meta-label,.source-note{font-family:var(--mono)}.topbar{height:79px;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid var(--line);gap:72px;background:#0d0d0d}.brand{display:flex;align-items:center;gap:9px;font-size:28px;font-weight:650;letter-spacing:-1.4px}.brand svg{color:var(--accent);margin-right:3px}.brand-dot{font-size:12px;align-self:flex-start;margin:8px 0 0 -5px;letter-spacing:0}.topbar nav{display:flex;height:100%;gap:28px}.nav-item{position:relative;font-size:14px;color:var(--muted);padding:0 5px}.nav-item.active{color:var(--text)}.nav-item.active:after{content:'';height:2px;background:var(--accent);position:absolute;bottom:-1px;left:0;right:0}.nav-item span{border:1px solid var(--line);border-radius:3px;font:12px var(--mono);padding:2px 5px;margin-left:5px}.top-right{margin-left:auto;display:flex;gap:25px;align-items:center}.edition{font-size:12px;letter-spacing:1px;color:var(--muted)}.icon-button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:3px;font:20px var(--mono);color:#b3b3b3}.icon-button:hover{background:#1f1f1f;border-color:#595959}.top-right .icon-button{border-radius:50%;width:25px;height:25px;font-size:14px}.workspace{display:grid;grid-template-columns:233px minmax(0,1fr) 313px;height:calc(100dvh - 115px);min-height:400px}.left-panel{border-right:1px solid var(--line);padding:26px 18px 23px;display:flex;flex-direction:column;position:relative;z-index:3;background:var(--panel);overflow-y:auto}.search-wrap{display:flex;align-items:center;height:42px;border:1px solid #373737;padding:0 10px;gap:9px;border-radius:3px;background:#141414}.search-wrap:focus-within{border-color:var(--accent)}.search-wrap svg{width:16px;height:16px;stroke:#999999;fill:none;flex-shrink:0}.search-wrap input{width:100%;min-width:0;border:0;outline:0;background:none;color:var(--text);font-size:14px}.search-wrap input::placeholder{color:#959595}.search-wrap kbd{font:12px var(--mono);color:#7f7f7f;border:1px solid var(--line);border-radius:2px;padding:0 4px}.seed-section{margin-top:32px}.section-label{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.65px;margin-bottom:14px}.seed-row{display:flex;align-items:center;width:100%;padding:11px 10px;margin:3px 0;border:1px solid transparent;border-radius:3px;gap:10px;text-align:left;font-size:14px;color:#b5b5b5}.seed-row.selected{border-color:#414141;background:#1d1d1d;color:#ebebeb}.seed-row:hover{background:#191919}.seed-row .seed-dot{height:5px;width:5px;flex-shrink:0;border:1px solid var(--seed-color);border-radius:50%;background:var(--seed-color);opacity:.8}.seed-row .seed-index{font:11px var(--mono);margin-left:auto;color:#7f7f7f}.seed-row.selected .seed-index{color:var(--accent)}.seed-row.unresolved .seed-dot{background:transparent;border-color:#828282}.left-bottom{margin-top:auto;padding:28px 10px 0}.small-diagram{width:145px;opacity:.5}.left-bottom p{color:#a4a4a4;font-size:15px;line-height:1.6;margin:9px 0 20px}.text-button{padding:0;font-size:12px;color:var(--muted);display:flex;width:100%;justify-content:space-between}.search-results{position:absolute;left:18px;right:18px;top:73px;max-height:460px;overflow:auto;border:1px solid #3f3f3f;background:#161616;box-shadow:0 18px 30px #0008;z-index:6;padding:6px;border-radius:4px}.result-item{display:block;width:100%;text-align:left;padding:11px 9px;font-size:14px;border-bottom:1px solid #2d2d2d}.result-item:hover{background:#2e2e2e}.result-item small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.search-empty{font-size:14px;line-height:1.6;color:var(--muted);padding:14px}.atlas{position:relative;overflow:hidden;min-width:0;background:radial-gradient(ellipse at 45% 50%,#161616 0%,#0b0b0b 45%,#0a0a0a 78%)}#network{width:100%;height:100%;display:block;cursor:grab;touch-action:none}#network:active{cursor:grabbing}.atlas-heading{position:absolute;left:32px;top:31px;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:1.25px;color:var(--muted)}.tiny-cross{margin-right:9px;color:var(--accent)}h1{font-weight:450;letter-spacing:-.85px;font-size:27px;margin:11px 0 8px}.atlas-heading p{font-size:13px;color:#8c8c8c;margin:0;max-width:350px}.coordinate{position:absolute;bottom:115px;left:30px;font-size:10px;letter-spacing:.4px;color:#6f6f6f;pointer-events:none}.view-controls{position:absolute;right:19px;top:28px;display:flex;flex-direction:column;gap:6px}.view-controls .icon-button{background:#111111eb}.view-controls>span{height:5px}.view-controls button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.atlas-bottom{position:absolute;bottom:23px;left:0;right:0;display:flex;align-items:center;flex-direction:column;gap:18px;pointer-events:none}.lens-control{display:flex;align-items:center;padding:5px;background:#141414f2;border:1px solid #383838;border-radius:5px;box-shadow:0 7px 25px #0006;pointer-events:auto}.lens-label{color:#8d8d8d;font-size:10px;letter-spacing:1px;margin:0 13px 0 10px}.lens-control button{font-size:13px;color:#a6a6a6;padding:8px 13px;border-radius:3px;display:flex;align-items:center;gap:7px}.lens-control button.selected{background:#333333;color:#eeeeee}.lens-control i{height:5px;width:5px;border-radius:50%}.sound-dot{background:var(--accent)}.credit-dot{background:var(--blue)}.gesture-hint{display:flex;gap:11px;align-items:center;font-size:9px;letter-spacing:.8px;color:#959595}.gesture-hint i{font-style:normal}.hover-card{position:absolute;background:#191919ef;border:1px solid #626262;padding:10px 13px;pointer-events:none;border-radius:3px;z-index:5;font-size:14px;max-width:220px}.hover-card small{display:block;font:10px var(--mono);color:#afafaf;margin-top:4px}.detail-panel{position:relative;border-left:1px solid var(--line);background:var(--panel);padding:25px 23px 20px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3e3e3e transparent}.detail-top{display:flex;align-items:center;justify-content:space-between}.detail-top .eyebrow{font-size:10px}.detail-top .icon-button{height:29px;width:29px;border:0}.specimen{height:120px;position:relative;margin:15px 0 16px;border:1px solid #2a2a2a;overflow:hidden;background:radial-gradient(ellipse,#272727,#131313 70%)}.specimen svg{position:absolute;inset:0;width:100%;height:100%}.specimen .specimen-index{position:absolute;left:10px;top:9px;font:9px var(--mono);letter-spacing:.8px;color:#949494}.specimen .specimen-foot{position:absolute;bottom:9px;right:10px;font:9px var(--mono);color:#8c8c8c}.detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.detail-title h2{font-size:32px;font-weight:500;letter-spacing:-1px;line-height:1.1;margin:0 0 9px;overflow-wrap:anywhere}.artist-subtitle{color:var(--muted);font-size:12px;line-height:1.6;margin:0}.save-button{border:1px solid #414141;border-radius:3px;width:33px;height:33px;display:grid;place-items:center;flex-shrink:0}.save-button.saved{background:var(--accent);color:#191919;border-color:var(--accent)}.save-button svg{height:17px;width:17px;stroke-width:1.3}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:17px}.tag{padding:5px 7px;border:1px solid #303030;color:#aeaeae;font-size:10px;letter-spacing:.2px;border-radius:2px}.artist-description{font-size:14px;line-height:1.7;color:#adadad;margin:16px 0 20px}.listen-link{background:var(--accent);color:#1e1e1e;border:1px solid var(--accent);border-radius:3px;padding:11px 14px;display:flex;align-items:center;justify-content:center;gap:9px;width:100%;font-size:14px;font-weight:550}.listen-link:hover{background:#eeeeee}.listen-link svg{width:13px;height:13px;fill:currentColor}.secondary-links{display:flex;justify-content:center;gap:19px;margin-top:12px;font-size:12px;color:#b0b0b0}.secondary-links a:hover{text-decoration:underline}.detail-section{margin-top:24px;padding-top:21px;border-top:1px solid var(--line)}.detail-section .section-label{margin-bottom:10px;font-size:10px}.connection-row{display:flex;align-items:center;gap:9px;width:100%;padding:10px 0;text-align:left;border-bottom:1px solid #222222}.connection-mark{height:24px;width:24px;border:1px solid #3e3e3e;display:grid;place-items:center;font-size:15px;color:#c0c0c0;border-radius:50%;flex-shrink:0}.connection-row.credit .connection-mark{color:var(--blue);border-color:#444444}.connection-body{flex:1;min-width:0}.connection-body strong{font-size:13px;font-weight:450;display:block}.connection-body small{font-size:10px;color:#8d8d8d;display:block;margin-top:4px}.connection-arrow{color:#818181;font-size:14px}.expand-button{border:1px solid #4c4c4c;color:var(--accent);padding:11px;width:100%;font-size:12px;margin-top:14px;border-radius:3px}.expand-button:hover{background:#222222}.source-note{font-size:10px;color:#929292;line-height:1.7;margin-top:16px}.source-note a{text-decoration:underline;text-underline-offset:3px}.source-note a:hover{color:var(--accent)}.connection-context{padding:12px;background:#1d1d1d;border-left:2px solid var(--accent);margin:17px 0;font-size:12px;color:#c3c3c3;line-height:1.65}.connection-context small{display:block;font:9px var(--mono);color:#949494;margin-bottom:5px}.statusbar{height:36px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 25px;font-size:9px;letter-spacing:.6px;color:#979797;background:#0d0d0d}.statusbar>div{display:flex;align-items:center;gap:10px}.status-cross{color:#cecece;font-size:16px}.statusbar button{font:9px var(--mono);color:#b5b5b5;letter-spacing:.6px}.statusbar button span{margin-left:8px}.footer-note{color:#727272}.toast{position:fixed;bottom:56px;left:50%;transform:translate(-50%,20px);padding:13px 20px;border:1px solid #5f5f5f;background:#222222;color:#e4e4e4;z-index:20;font-size:14px;opacity:0;pointer-events:none;transition:.2s;border-radius:4px;max-width:90vw}.toast.visible{transform:translate(-50%,0);opacity:1}.collection-panel{position:absolute;inset:0;background:#0e0e0eed;padding:42px;overflow:auto;z-index:4}.collection-panel>p{font-size:14px;color:var(--muted);line-height:1.6}.collection-card{margin-top:12px;border:1px solid #383838;background:#171717;padding:17px;display:flex;align-items:center;gap:16px}.collection-card .number{font-size:12px;color:#a1a1a1}.collection-card button:first-of-type{font-size:17px;text-align:left;flex:1}.collection-card small{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.collection-card .remove-save{font-size:21px;color:#949494}.empty-collection{border:1px dashed #434343;padding:35px 25px;margin-top:30px;font-size:15px;line-height:1.8;color:#a9a9a9}.empty-collection button{display:block;margin-top:15px;color:var(--accent);border:1px solid #434343;padding:9px 13px}.trail-button{font-size:11px;color:#aeaeae;text-align:left;padding:0 0 14px;display:flex;gap:7px;align-items:center}dialog{background:#161616;color:var(--text);border:1px solid #484848;border-radius:5px;width:min(520px,90vw);padding:26px;box-shadow:0 25px 100px #000b}dialog::backdrop{background:#0009;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:26px;font-weight:450;letter-spacing:-.6px;margin:15px 0}dialog p,dialog li{color:#b4b4b4;font-size:14px;line-height:1.8}dialog ul{padding-left:20px}dialog a{color:var(--accent);text-decoration:underline}dialog kbd{padding:2px 5px;border:1px solid #484848;border-radius:3px;font:12px var(--mono)}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:20px;font-size:14px;color:#cecece}.help-grid>span:nth-child(even){text-align:right;color:#a2a2a2}.lens-empty{position:absolute;left:30px;bottom:155px;font-size:12px;color:#aaaaaa;pointer-events:none;max-width:200px;line-height:1.5}.unresolved-note{color:#b7b7b7;border:1px solid #444444;background:#1f1f1f;padding:12px;font-size:13px;line-height:1.7}.detail-panel a:focus-visible{outline-offset:3px}@media(min-width:1700px){.workspace{grid-template-columns:260px minmax(0,1fr) 350px}.detail-panel{padding:30px}.left-panel{padding:28px 23px}.search-results{left:23px;right:23px}.specimen{height:145px}.seed-row{padding:13px 10px}.atlas-heading{left:40px;top:38px}}@media(max-width:1150px){.workspace{grid-template-columns:195px minmax(0,1fr) 270px}.topbar{gap:45px;padding:0 20px}.left-panel{padding:23px 12px}.search-results{left:12px;right:12px}.detail-panel{padding:22px 17px}.section-label{font-size:10px}.atlas-heading{left:20px;right:55px}.atlas-heading h1{font-size:23px}.atlas-heading p{font-size:12px}.edition{display:none}.specimen{height:100px}.detail-title h2{font-size:28px}.lens-control button{padding:8px 9px}.lens-label{margin:0 9px 0 6px}.footer-note{display:none}}@media(max-height:780px){.left-bottom .small-diagram{display:none}.left-bottom p{font-size:13px}.left-bottom{padding-top:18px}.specimen{height:86px;margin:12px 0}.detail-section{margin-top:18px;padding-top:15px}.detail-panel{padding-top:20px}.artist-description{margin:12px 0 16px}.seed-row{padding:9px 8px}.seed-section{margin-top:24px}}@media(max-width:800px){body{overflow:auto}.topbar{height:66px;gap:25px;padding:0 16px}.brand{font-size:24px}.brand svg{width:20px}.topbar nav{gap:14px}.top-right{gap:0}.workspace{grid-template-columns:150px 1fr;height:auto;min-height:calc(100dvh - 102px)}.left-panel{grid-column:1;grid-row:1;padding:18px 9px;min-height:520px}.search-wrap{padding:0 8px}.search-wrap kbd{display:none}.search-wrap input{font-size:12px}.search-wrap svg{width:12px}.section-label{font-size:9px;letter-spacing:0}.seed-row{font-size:12px;padding:10px 7px;gap:7px}.seed-index{display:none}.atlas{height:calc(100dvh - 102px);min-height:520px}.detail-panel{grid-column:1/-1;max-height:none;border-top:1px solid var(--line);border-left:0;display:block;padding:25px}.specimen{height:100px;max-width:400px}.detail-section{max-width:700px}.left-bottom{padding:25px 6px 0}.left-bottom p{font-size:12px}.atlas-heading h1{font-size:21px}.atlas-heading p{max-width:180px;line-height:1.7}.view-controls{right:10px;top:170px}.atlas-bottom{bottom:20px}.lens-label{display:none}.gesture-hint{font-size:8px;gap:6px}.statusbar{position:relative;font-size:8px;padding:0 12px}.statusbar button{font-size:8px}.coordinate{font-size:8px;left:15px}.collection-panel{padding:26px 18px}.collection-panel h1{font-size:22px}.search-results{left:9px;right:-80px;top:64px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Elsewave: a continuous, monochrome discovery space. */
:root{--bg:#0b0b0b;--panel:transparent;--line:#303030;--text:#e5e5e5;--muted:#929292;--accent:#d1d1d1;--blue:#a6a6a6}
body{background:var(--bg)}
.topbar{position:relative;z-index:4;background:transparent;border:0;padding:0 32px;gap:70px}
.brand{font-size:30px;font-weight:500;letter-spacing:-1.6px;gap:10px}
.brand svg{color:#bcbcbc}.nav-item.active:after{display:none}.nav-item.active{color:#ededed}
.nav-item span{border:0;background:#1b1b1b}.top-right .icon-button{border:0;background:transparent}
.workspace{display:block;position:relative;height:calc(100dvh - 115px);min-height:400px}
.atlas{position:absolute;inset:0;height:100%;background:transparent;min-height:0}
.detail-panel{position:absolute;right:0;top:0;bottom:0;width:313px;padding:28px 30px 20px 24px;border:0;scrollbar-color:#444 transparent;z-index:2}
.detail-panel{background:linear-gradient(90deg,transparent,#0b0b0bf2 17%,#0b0b0b 85%)}
.atlas-heading{left:33px;top:28px}.view-controls{right:335px;top:28px}
.icon-button{border:0;background:#171717}.icon-button:hover{background:#262626}
.view-controls .icon-button{background:#171717a8}.view-controls button[aria-pressed=true]{color:white;background:#303030}
.specimen{border:0;background:transparent;margin-top:14px}.specimen-index,.specimen-foot{color:#868686!important}
.tags{gap:12px}.tag{border:0;background:none;padding:0;color:#aaa;font-size:11px}
.save-button{border:0;background:#202020}.save-button.saved{background:#d0d0d0;color:#111}
.listen-link{background:#d1d1d1;border:0;color:#171717}.listen-link:hover{background:#e5e5e5}
.detail-section{border:0;padding-top:12px;margin-top:26px}.connection-row{border:0;padding:12px 0}.connection-row:hover{color:white}
.connection-mark,.connection-row.credit .connection-mark{border:0;color:#bbb;background:none}
.connection-body strong{font-size:14px}.connection-body small{color:#858585}.connection-arrow{color:#888}
.expand-button{border:0;background:#202020;color:#d2d2d2}.expand-button:hover{background:#2c2c2c}
.connection-context{border:0;background:#171717;color:#bfbfbf}.connection-context small{color:#969696}
.statusbar{border:0;background:transparent}.statusbar button{color:#a3a3a3}.status-cross{color:#aaa}
.atlas-bottom{right:313px}.lens-control{border:0;background:#1c1c1ceb;box-shadow:none;padding:6px;border-radius:6px}
.lens-control button{font-size:14px;color:#999}.lens-control button.selected{background:#383838;color:#e5e5e5}
.sound-dot{background:#d0d0d0}.credit-dot{background:transparent!important;border:1px solid #b0b0b0;border-radius:0!important;transform:rotate(45deg)}
.coordinate{left:33px;color:#6e6e6e}.hover-card{background:#1a1a1af5;border:0;color:#ddd}.hover-card small{color:#999}
.collection-panel{right:313px;background:#0b0b0bf5}.collection-card{border:0;background:#171717}.empty-collection{border:0;background:#151515}
.empty-collection button{border:0;background:#272727}.toast{border:0;background:#292929;color:#eee}.dialog-head .icon-button{border:0}dialog{background:#171717;border:0}
@media(min-width:1700px){.workspace{display:block}.detail-panel{width:350px;padding:30px 36px}.atlas-bottom,.collection-panel{right:350px}.view-controls{right:370px}}
@media(max-width:1150px){.workspace{display:block}.detail-panel{width:285px;padding:24px}.atlas-bottom,.collection-panel{right:285px}.view-controls{right:300px}.topbar{gap:45px}.atlas-heading{left:28px}}
@media(max-width:800px){body{overflow:auto}.workspace{display:flex;flex-direction:column;height:auto}.atlas{position:relative;inset:auto;height:65dvh;min-height:440px;width:100%}.detail-panel{position:relative;width:100%;top:auto;bottom:auto;right:auto;background:transparent;padding:30px}.atlas-bottom,.collection-panel{right:0}.view-controls{right:18px;top:135px}.atlas-heading{left:24px}.statusbar{position:relative}.specimen{max-width:300px}.topbar{padding:0 22px;gap:30px}.brand{font-size:27px}}
/* Artist profiles: monochrome portrait, inline samples, equal service links. */
.artist-portrait{height:200px;margin:18px 0 22px;position:relative;overflow:hidden;background:#161616}
.artist-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:grayscale(1) contrast(1.12) brightness(.84);display:block}
.portrait-grain{position:absolute;inset:0;pointer-events:none;background:radial-gradient(#0a0a0a88 .5px,transparent .8px) 0 0/3px 3px,linear-gradient(0deg,#0a0a0add,transparent 40%);opacity:.6}
.artist-portrait figcaption{position:absolute;bottom:10px;right:12px;font:9px var(--mono);color:#d2d2d2;text-shadow:0 1px 4px #000}
.profile-links{display:flex;flex-wrap:wrap;gap:8px 15px;margin:-7px 0 25px;font:10px var(--mono);color:#a2a2a2}.profile-links a:hover{color:white}
.sample-section{margin:23px 0 16px}.sample-section .section-label{font-size:9px;margin-bottom:12px}.sample-row{display:flex;align-items:center;gap:10px;padding:10px 0;min-width:0}.sample-play{height:31px;width:31px;flex-shrink:0;border-radius:50%;background:#242424;display:grid;place-items:center;color:#dedede}.sample-play svg{width:11px;height:11px;fill:currentColor;stroke:none}.sample-play[aria-pressed=true]{background:#dedede;color:#141414}.sample-play[aria-busy=true]{opacity:.45}.sample-info{min-width:0;flex:1}.sample-title{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sample-title a:hover{text-decoration:underline}.sample-album{font-size:10px;color:#828282;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.sample-time{font:9px var(--mono);width:25px;color:#8c8c8c;text-align:right}.sample-row progress{width:100%;height:2px;display:block;margin-top:7px;border:0;background:#252525;accent-color:#bcbcbc}.sample-row progress::-webkit-progress-bar{background:#252525}.sample-row progress::-webkit-progress-value{background:#bcbcbc}.sample-provider{font:9px var(--mono);line-height:1.7;color:#888;margin-top:10px}.preview-status{font-size:11px;line-height:1.6;color:#c7c7c7}.preview-status:empty{display:none}.service-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:17px 0 25px}.service-links a{font-size:10px;display:flex;align-items:center;justify-content:center;min-height:33px;background:#1b1b1b;border-radius:3px;white-space:nowrap}.service-links a:hover{background:#292929}.artist-embed{width:100%;border:0;border-radius:10px}.connection-context strong{font-size:13px;font-weight:500;display:block}.relationship-type{display:block;font:8px var(--mono);letter-spacing:.4px;color:#999;margin-top:12px}.connection-context p{font-size:12px;line-height:1.7;margin:6px 0}.connection-context>a{font-size:11px;text-decoration:underline}.artist-description{margin-bottom:18px}@media(min-width:1700px){.artist-portrait{height:230px}}@media(max-height:780px){.artist-portrait{height:160px}}@media(max-width:800px){.artist-portrait{height:240px;max-width:450px}.sample-section,.service-links{max-width:450px}}

#playback-nav{display:flex;flex-direction:column;gap:6px;align-items:center}.sample-album{font-family:var(--mono);font-size:9px}.clear-artist{padding:0;width:22px;height:33px;color:#888;font-size:20px;flex-shrink:0}.empty-artist{padding-top:35px}.empty-artist h2{font-weight:450;font-size:25px}.empty-artist p{font-size:14px;line-height:1.8;color:#999}#motion-toggle[aria-busy=true]{opacity:.5}

/* Music symbols use geometry, never a font glyph. */
#motion-toggle .play-icon{width:15.2px;height:15.2px}.sample-play .play-icon{width:8.8px;height:8.8px}#motion-toggle .pause-icon,.sample-play .pause-icon{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:butt}#motion-toggle .pause-icon{width:16px;height:16px}.sample-play .pause-icon{width:12px;height:12px}

#network:focus,#network:focus-visible,#network:active{outline:none!important;box-shadow:none!important;border:0!important}.no-selection .atlas-bottom,.no-selection .collection-panel{right:0}.no-selection .view-controls{right:20px}@media(max-width:800px){.no-selection .atlas{height:calc(100dvh - 102px)}}

.spotify-frame{height:352px;min-height:352px}.spotify-frame iframe{display:block;width:100%;height:352px;border:0}

.catalog-search{position:relative;margin-left:auto;width:220px;z-index:30}.catalog-search input{width:100%;font:12px var(--mono);color:var(--text);background:#161616;border:0;border-radius:5px;padding:11px 14px;outline-offset:3px}.catalog-search input::placeholder{color:#888}#artist-results{position:absolute;top:45px;left:0;right:0;background:#171717;border-radius:6px;padding:6px;max-height:390px;overflow:auto;box-shadow:0 12px 40px #0009}#artist-results button{display:block;width:100%;text-align:left;padding:11px 9px;font:12px var(--mono);border:0;background:none;color:#bbb;border-radius:3px}#artist-results button:hover,#artist-results [aria-selected="true"]{background:#303030;color:#fff}#artist-results p{font:11px var(--mono);padding:10px;line-height:1.6}.sample-cover{filter:grayscale(1);width:36px;height:36px;object-fit:cover;flex-shrink:0;border-radius:2px}.sample-info{min-width:0}@media(max-width:800px){.catalog-search{width:160px}.topbar{gap:10px}.top-right .edition{display:none}}

/* Names and controls share the map's typeface; longer reading stays in DM Sans. */
button,input,h1,h2,.sample-title,.service-links,.hover-card,.connection-context strong{font-family:var(--mono)}
h1,h2{letter-spacing:-.5px}
.brand,.artist-description,.atlas-heading p,.collection-panel>p,.empty-collection,.empty-artist p,.connection-context p,dialog p,dialog li,.connection-body small,.collection-card small{font-family:var(--sans)}
.detail-title>div{min-width:0}
.detail-title h2{font-family:var(--mono);letter-spacing:-.6px}
.connection-body{min-width:0}
.connection-body strong{overflow-wrap:anywhere}

.credit-evidence{margin:0 0 20px 38px;color:#999;font-size:12px;line-height:1.6}.credit-evidence p{margin:0 0 5px}.credit-evidence a{color:#c8c8c8;font-family:"IBM Plex Mono",monospace;font-size:11px}

#artist-results{max-height:60vh;overflow-y:auto}#artist-results button small{display:block;font-size:10px;color:#888;white-space:normal;line-height:1.5;margin-top:4px}

/* Small, discoverable keyboard help beside the music controls. */
.catalog-search{width:240px;flex-shrink:0}
#search-play-hint{margin:6px 0 0;text-align:center;font:12px var(--mono);color:#999;white-space:nowrap}
#search-play-hint kbd{font:inherit;color:#ddd}
#artist-results{top:calc(100% + 8px)}
.view-controls{align-items:flex-end;z-index:3}
.controls-disclosure{position:relative}
#controls-toggle{width:34px;font:10px var(--mono);letter-spacing:.2px}
#controls-toggle[aria-expanded=true]{color:#eee;background:#2a2a2a}
#controls-panel{position:absolute;right:calc(100% + 10px);top:0;width:260px;max-width:calc(100vw - 90px);padding:16px;background:#181818f5;border-radius:6px;box-shadow:0 8px 30px #0005;color:#ccc;font:11px var(--mono)}
#controls-panel dl{margin:0;display:grid;gap:16px}
#controls-panel dl>div{display:flex;align-items:center;justify-content:space-between;gap:16px}
#controls-panel dt,#controls-panel dd{margin:0}
#controls-panel kbd{font:inherit;color:#f0f0f0;white-space:nowrap}
@media(max-width:800px){.catalog-search{width:180px;flex-shrink:1;min-width:140px}#search-play-hint{font-size:11px}}

/* Pointillist brand option; original lockup retained in checkpoints/brand-original. */
.brand{width:190px;flex-shrink:0;letter-spacing:0;gap:0}
.brand .pointillist-brand{width:190px;height:38px;margin:0;color:#e5e5e5;overflow:visible}
.topbar{gap:24px}
.topbar nav{gap:22px}
.catalog-search{position:absolute;left:50%;transform:translateX(-50%);margin:0}
.search-field{position:relative}
.catalog-search input{text-align:center}
.search-prompt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;pointer-events:none;font:12px var(--mono);color:#a7a7a7}
.search-prompt b{font-size:15px;font-weight:700;color:#e4e4e4}
.search-field input:not(:placeholder-shown)+.search-prompt{display:none}
.atlas-heading h1{font-family:var(--sans);font-weight:550;letter-spacing:-.7px;color:#b3b3b3}
.atlas-heading p{font-family:var(--sans);font-weight:450;color:#b3b3b3;font-size:14px}
@media(max-width:1100px){.topbar{gap:24px}.catalog-search{position:relative;left:auto;transform:none;margin-left:auto;width:220px}.top-right{margin-left:0}.edition{display:none}}
@media(max-width:800px){.topbar{gap:12px}.brand,.brand .pointillist-brand{width:148px}.catalog-search{width:180px}.search-prompt{font-size:11px}}

@media(min-width:1101px){.edition{display:inline}}

/* Dotted rings drift and orbit; the original dotted wordmark stays still. */
.brand-drift{animation:brand-drift 12s ease-in-out infinite}
.brand-ring{transform-origin:21px 22px;animation:brand-orbit 32s linear infinite}
.brand-ring-inner{animation-duration:23s;animation-direction:reverse}
@keyframes brand-drift{0%,100%{transform:translate(0,0)}50%{transform:translate(.7px,-.6px)}}
@keyframes brand-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.brand-drift,.brand-ring{animation:none}}

/* Coordinates and the orbit hint share the same bottom alignment. */
.atlas{--hint-bottom:23px}
.atlas-bottom,.coordinate{bottom:var(--hint-bottom)}
.coordinate,.gesture-hint{line-height:14px}
@media(max-width:800px){.atlas{--hint-bottom:20px}}

/* A visit's expanding neighborhood; keep it clear of the map and playback controls. */
#exploration-bar{position:absolute;z-index:5;left:24px;right:100px;top:116px;display:flex;align-items:center;gap:14px;font:11px/1.5 var(--mono,monospace);color:#a6a6a6;pointer-events:none}
#exploration-bar[hidden]{display:none}
#exploration-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:480px}
#exploration-bar button{pointer-events:auto;border:0;background:#191919;color:#bcbcbc;border-radius:4px;padding:6px 9px;font:inherit;white-space:nowrap;cursor:pointer}
#exploration-bar button:hover{background:#303030;color:#fff}
#exploration-bar button:focus-visible{outline:1px solid #aaa;outline-offset:3px}
@media(max-width:760px){#exploration-bar{left:16px;right:64px;top:104px;gap:6px;flex-wrap:wrap}#exploration-status{max-width:100%;flex-basis:100%}}

.atlas:has(#collection-panel:not([hidden])) #exploration-bar{display:none}

/* Pointillist text preserves real, accessible text and its original type metrics. */
.pointillist-label{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%224.8%22%20height%3D%224.8%22%20viewBox%3D%220%200%204.8%204.8%22%3E%3Ccircle%20cx%3D%220.75%22%20cy%3D%220.75%22%20r%3D%220.65%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%222.4%22%20cy%3D%220.8%22%20r%3D%220.68%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%224.05%22%20cy%3D%220.72%22%20r%3D%220.6%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%220.82%22%20cy%3D%222.4%22%20r%3D%220.64%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%222.35%22%20cy%3D%222.38%22%20r%3D%220.7%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%224.0%22%20cy%3D%222.42%22%20r%3D%220.62%22%20fill%3D%22white%22%20opacity%3D%220.85%22%2F%3E%3Ccircle%20cx%3D%220.72%22%20cy%3D%224.03%22%20r%3D%220.66%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%222.4%22%20cy%3D%224.0%22%20r%3D%220.6%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%224.1%22%20cy%3D%224.05%22%20r%3D%220.68%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%224.8%22%20height%3D%224.8%22%20viewBox%3D%220%200%204.8%204.8%22%3E%3Ccircle%20cx%3D%220.75%22%20cy%3D%220.75%22%20r%3D%220.65%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%222.4%22%20cy%3D%220.8%22%20r%3D%220.68%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%224.05%22%20cy%3D%220.72%22%20r%3D%220.6%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%220.82%22%20cy%3D%222.4%22%20r%3D%220.64%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%222.35%22%20cy%3D%222.38%22%20r%3D%220.7%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%224.0%22%20cy%3D%222.42%22%20r%3D%220.62%22%20fill%3D%22white%22%20opacity%3D%220.85%22%2F%3E%3Ccircle%20cx%3D%220.72%22%20cy%3D%224.03%22%20r%3D%220.66%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3Ccircle%20cx%3D%222.4%22%20cy%3D%224.0%22%20r%3D%220.6%22%20fill%3D%22white%22%20opacity%3D%220.9%22%2F%3E%3Ccircle%20cx%3D%224.1%22%20cy%3D%224.05%22%20r%3D%220.68%22%20fill%3D%22white%22%20opacity%3D%221%22%2F%3E%3C%2Fsvg%3E");-webkit-mask-repeat:repeat;mask-repeat:repeat}
.topbar .nav-item .pointillist-label{display:inline-block;border:0;border-radius:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;vertical-align:baseline}
/* A distant transmission: restrained softness and slow changes in luminance. */
.atlas-heading{animation:distant-transmission 22s ease-in-out infinite;text-shadow:0 0 4px #b3b3b317}
.atlas-heading h1{font-weight:450;letter-spacing:.07em;color:#b9b9b9}
.atlas-heading p{letter-spacing:.14em;color:#b9b9b9}
@keyframes distant-transmission{0%,100%{opacity:.82}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.atlas-heading{animation:none;opacity:.9}}

/* No label boxes; keyboard focus is indicated by an underline instead. */
.topbar .nav-item,.topbar .nav-item span{background:transparent;border:0;box-shadow:none}
.topbar .nav-item:focus-visible{outline:none;text-decoration:underline;text-underline-offset:6px;text-decoration-color:#bcbcbc}
/* Grain moves inside stationary letterforms, so only their tiny points shimmer. */
.pointillist-label{animation:text-grain-drift 14s linear infinite}
#collection-tab .pointillist-label{animation-duration:19s;animation-direction:reverse}
.edition.pointillist-label,#help-button .pointillist-label{animation-duration:23s}
.atlas-heading h1.pointillist-label{animation-duration:17s}
.atlas-heading p.pointillist-label{animation-duration:21s;animation-direction:reverse}
@keyframes text-grain-drift{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:4.8px 4.8px;mask-position:4.8px 4.8px}}
@media(prefers-reduced-motion:reduce){.pointillist-label{animation:none!important}}

/* Help punctuation shares the edition lettering, retaining its click target. */
.top-right #help-button{font:12px var(--mono);letter-spacing:1px;color:var(--muted)}
