@font-face{font-family:Space;src:url('./fonts/space.woff2') format('woff2');font-weight:300 700;font-display:swap}@font-face{font-family:Sans;src:url('./fonts/sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--ink:#070b12;--mint:#b8fbd9;--text:#edf5f5;--muted:#96a9b8;--line:#c9e9ff20;--panel:rgba(8,16,25,.94);--edge:32px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#030710;color:var(--text);font:14px/1.5 Sans,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select,label.button{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;border:1px solid var(--line);background:#13202ab3;border-radius:10px;transition:background .2s,border-color .2s,transform .2s}button:hover,.button:hover{border-color:#b8fbd97a;background:#243d44}button:active{transform:translateY(1px)}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:4px}input,select{color:var(--text);background:#0d1821;border:1px solid var(--line);border-radius:8px;padding:10px 12px}select{cursor:pointer}input[type=checkbox]{accent-color:var(--mint);width:20px;height:20px;flex-shrink:0}a{color:var(--mint)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:var(--mint);color:#071910;padding:12px}.skip-link:focus{top:12px}#universe{position:absolute;inset:0;transition:right .35s}#universe canvas{display:block;width:100%;height:100%;touch-action:none;outline:none;cursor:grab}body.artist-open #universe{right:420px}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.world-label{position:absolute;pointer-events:auto;white-space:nowrap;text-align:center;transform:translate(-50%,0);background:transparent;border:0;border-radius:5px;padding:3px 8px;line-height:1.35;text-shadow:0 2px 6px #000,0 0 15px #000;font:500 12px Space,Arial,sans-serif;letter-spacing:.1px;color:#ccdbe5}.world-label:hover{background:#08121da8;color:var(--mint)}.world-label small{display:block;font:8px Sans;letter-spacing:1.4px;text-transform:uppercase;color:#9baeb9;margin-top:4px}.world-label.selected{color:var(--mint);font-size:15px}.world-label .saved-mark{color:var(--mint);font-size:9px;margin-right:4px}.vignette{pointer-events:none;position:fixed;inset:0;background:linear-gradient(180deg,#02060ee0,transparent 20%,transparent 77%,#030910df),linear-gradient(90deg,#03081044,transparent 35%);z-index:1}.topbar{position:fixed;left:var(--edge);right:var(--edge);top:23px;display:flex;gap:30px;align-items:center;z-index:10}.brand{display:flex;align-items:center;gap:11px;border:0;background:none!important;white-space:nowrap;padding:0;font:600 26px Space,Arial;letter-spacing:-1.4px}.brand svg{width:34px;height:34px;stroke:var(--mint);fill:none;stroke-width:1.4;overflow:visible}.brand-dot{color:var(--mint)}.search-wrap{position:relative;width:clamp(220px,32vw,460px);margin:auto}.search-wrap>input{background:#0a131cb3;backdrop-filter:blur(18px);border-radius:30px;width:100%;padding:12px 38px 12px 42px;font-size:12px}.search-icon{position:absolute;left:17px;top:7px;font:25px Space;z-index:1;color:#b8ccd7}.search-wrap kbd{position:absolute;right:16px;top:12px;color:#637b8c;border:1px solid #6e8fa83b;border-radius:4px;font-size:10px;padding:0 5px}nav{display:flex;align-items:center;gap:10px}.nav-button{border:0;background:none;padding:10px;font-size:12px;white-space:nowrap}.small-count{font:9px Space;color:var(--mint);padding:3px 6px;background:#b8fbd911;border-radius:5px;margin-left:5px}.icon-button{height:34px;min-width:34px;padding:0 9px;font-size:21px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);flex-shrink:0}.glass{background:#08121de0;border:1px solid var(--line);backdrop-filter:blur(24px)}#search-results{position:absolute;top:53px;left:0;right:0;min-width:290px;padding:8px;border-radius:15px;max-height:65vh;overflow:auto;box-shadow:0 20px 60px #0008}.result{width:100%;background:none;border:0;padding:10px;display:flex;align-items:center;gap:12px;text-align:left;border-radius:8px}.result span:nth-child(2){flex:1}.result strong{display:block;font-size:13px;font-weight:500}.result small{font-size:10px;color:var(--muted)}.result-arrow{color:var(--mint)}.result-empty{padding:18px;color:var(--muted);font-size:12px}.mini-planet{width:32px;height:32px;display:block;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 28% 25%,hsl(var(--h),50%,80%),hsl(var(--h),40%,36%) 38%,hsl(var(--h),50%,10%) 76%);box-shadow:0 0 18px hsla(var(--h),60%,60%,.14),inset 1px 0 1px #fff4}.welcome{position:fixed;top:23%;left:6%;z-index:2;width:430px;pointer-events:none;transition:opacity .45s,transform .45s}.welcome.dismissed{opacity:0;transform:translateY(-10px);visibility:hidden}.welcome button{pointer-events:auto}.eyebrow{font:9px Space,Arial;letter-spacing:2.8px;color:var(--mint);text-transform:uppercase;display:flex;align-items:center;gap:8px}.status-dot,.live-dot{height:5px;width:5px;border-radius:50%;background:var(--mint);display:inline-block;box-shadow:0 0 10px #b8fbd977;flex-shrink:0}h1{font:400 clamp(38px,4.8vw,72px)/1.04 Space,Arial;letter-spacing:-3.5px;margin:22px 0;color:#f0f5f4;text-shadow:0 4px 40px #000}h2{font:500 28px/1.2 Space,Arial;letter-spacing:-1px;margin:10px 0 18px}h3{font:500 15px Space,Arial;margin:25px 0 8px}.welcome p{font-size:14px;line-height:1.8;color:#a8b7c3;max-width:320px}.primary{background:var(--mint);color:#0a261b;border:0;padding:13px 20px;font-weight:600;font-size:12px;border-radius:8px;display:inline-flex;gap:30px;align-items:center;justify-content:center;text-decoration:none}.primary:hover{background:#d5ffe9;color:#071c13}.welcome .primary{margin-top:15px}.welcome-note{font:9px Space;letter-spacing:1px;margin-top:17px;color:#79909e}.location{position:fixed;left:var(--edge);bottom:150px;z-index:2;display:flex;flex-direction:column;gap:5px;pointer-events:none}.location>span:nth-child(2){font:500 18px Space;letter-spacing:-.3px}.location-detail{font:10px Sans;color:#8a9eac}.location .eyebrow{font-size:8px;letter-spacing:2px}.bottom-ui{position:fixed;left:var(--edge);right:var(--edge);bottom:22px;z-index:10;pointer-events:none}.bottom-ui>*{pointer-events:auto}.filter-bar{display:flex;align-items:center;gap:10px;width:max-content;border-radius:10px;padding:3px 12px;margin-bottom:15px}.filter-bar label{display:flex;align-items:center;gap:7px}.filter-bar select{background:none;border:0;padding:8px 18px 8px 0;font-size:11px;max-width:190px}.filter-bar option{background:#0b1620}.filter-symbol{color:var(--mint)}.filter-divider,.control-separator{height:18px;width:1px;background:var(--line)}.filter-count{font:9px Space;color:#7d98aa;margin:0 3px 0 8px}.bottom-row{display:flex;justify-content:space-between;align-items:center;gap:20px;pointer-events:none}.bottom-row>*{pointer-events:auto}.navigation-hint{display:flex;align-items:center;gap:10px;font-size:10px;color:#78909f}.text-button{background:none;border:0;padding:4px;font-size:10px;color:#a8bac5;text-decoration:underline;text-underline-offset:3px}.flight-controls{display:flex;align-items:center;border-radius:10px;padding:4px;gap:3px}.flight-controls button{border:0;background:none;min-width:34px;height:35px;font-size:18px}.flight-controls .surprise{font-size:11px;padding:0 13px;display:flex;align-items:center;gap:25px;color:var(--mint)}.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(28px);box-shadow:0 20px 100px #0005;z-index:8;border-radius:17px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#34515e transparent}.artist-panel{position:fixed;right:20px;top:89px;bottom:135px;width:380px;overflow-y:auto;animation:slide-in .4s ease}.artist-header{position:relative;padding:27px 24px 22px;background:radial-gradient(ellipse at 70% -30%,hsla(var(--h),60%,35%,.45),transparent 80%);border-bottom:1px solid var(--line)}.artist-header .icon-button{position:absolute;right:15px;top:15px}.artist-header .eyebrow{font-size:8px;letter-spacing:2px;padding-right:30px}.artist-header h2{font-size:34px;line-height:1.07;margin:20px 0 12px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:9px;border:1px solid #a8d5e525;padding:4px 8px;border-radius:20px;color:#b9cbd5}.artist-actions{display:flex;gap:8px;margin-top:22px}.artist-actions .primary{flex:1;padding:11px 8px;gap:8px}.artist-actions button{font-size:16px;min-width:42px}.artist-actions .is-saved{color:var(--mint);border-color:#b8fbd955}.artist-section{padding:22px 24px;border-bottom:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-head h3{font-size:9px;letter-spacing:2px;color:#93aab8;margin:0;text-transform:uppercase}.section-head span{font-size:9px;color:#536f80}.bio{color:#b2c2ce;font-size:12px;line-height:1.9;margin:0;white-space:pre-line}.bio-toggle{color:var(--mint);font-size:10px;margin-top:8px;padding:0;border:0;background:none}.source-note{color:#6d8596;font-size:9px;line-height:1.7;margin-top:12px}.source-note a{color:#96b9c9;text-underline-offset:2px}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.album-link{color:inherit;text-decoration:none;font-size:11px;line-height:1.4}.album-art{aspect-ratio:1.3;border-radius:7px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 15%,hsla(var(--h),80%,75%,.8),transparent 45%),linear-gradient(var(--angle),hsl(var(--h),55%,30%),#070c19);border:1px solid #ffffff13;display:flex;align-items:flex-end;padding:12px;margin-bottom:7px}.album-art:before{content:'';position:absolute;width:75%;height:110%;border:1px solid #fff7;transform:rotate(-30deg);right:-10%;top:-30%;border-radius:50%;box-shadow:0 0 0 10px #ffffff09,0 0 0 22px #ffffff08,0 0 0 34px #ffffff05}.album-art span{font:500 24px Space;letter-spacing:-1px;z-index:1;opacity:.8}.album-link:hover .album-art{border-color:var(--mint)}.album-year{display:block;font-size:9px;color:#6e8899;margin-top:2px}.track{display:flex;gap:12px;align-items:center;text-decoration:none;color:#bdcbd4;padding:12px 0;border-bottom:1px solid #ffffff0a;font-size:12px}.track:last-child{border:0}.track .track-number{font:9px Space;color:#5d7a8c}.track .track-title{flex:1}.track .external{color:#719785}.track:hover{color:var(--mint)}.related-list{display:flex;flex-direction:column;gap:6px}.related-list button{display:flex;align-items:center;gap:10px;background:#13212b66;border:1px solid #ffffff08;text-align:left;padding:10px}.related-list button>span:nth-child(2){flex:1}.related-list strong{font-size:12px;font-weight:500;display:block}.related-list small{font-size:9px;color:#7894a5;display:block;margin-top:2px}.related-list .mini-planet{width:27px;height:27px}.panel-footer{padding:18px 24px;color:#607d8d;font-size:9px;line-height:1.8}.directory{position:fixed;left:var(--edge);right:var(--edge);top:88px;bottom:130px;padding:28px 30px;overflow:auto;z-index:12;background:#07121cf7}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between}.panel-heading h2{margin-bottom:22px}.directory-actions{display:flex;gap:10px;margin-bottom:12px}.directory-actions input{flex:1;min-width:0}.directory-actions select{font-size:12px}.directory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:20px 0}.artist-card{display:flex;align-items:center;gap:13px;text-align:left;padding:15px;background:#10202a77;min-height:85px}.artist-card .mini-planet{width:43px;height:43px}.artist-card strong{font:500 14px Space;display:block}.artist-card small{display:block;color:#7f9aab;font-size:10px;margin-top:3px}.artist-card .card-arrow{margin-left:auto;color:#699a89}.secondary,.button{border:1px solid var(--line);border-radius:8px;padding:10px 15px;background:#172630;color:#c4d7df;text-decoration:none;cursor:pointer;font-size:12px}.wide{width:100%}.muted{color:var(--muted)}.small{font-size:11px}#directory-summary{font-size:11px}#orbit-tools{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}#orbit-tools .button{display:inline-block;margin-left:8px}.empty-state{text-align:center;padding:40px 15px;grid-column:1/-1}.empty-state h3{font-size:22px}.empty-state p{color:var(--muted);font-size:12px}.empty-filter{position:fixed;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:16px;padding:28px;max-width:90vw;text-align:center}.empty-filter h2{font-size:22px}.empty-filter p{color:var(--muted)}dialog{background:#0c1722;color:var(--text);border:1px solid #bddaff2a;border-radius:18px;padding:34px;max-width:580px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#02070cc9;backdrop-filter:blur(10px)}dialog h2{margin-top:20px;font-size:33px}dialog p{color:#a3b6c5;font-size:13px;line-height:1.8}.dialog-close{float:right;margin:-12px -12px 0 10px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:28px 0}.help-grid strong{display:block;font-size:12px;color:var(--mint);margin-bottom:5px}.help-grid span{font-size:11px;color:#8ea4b5}.dialog-done{margin-top:15px}.setting{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.setting strong{font-size:12px;font-weight:500}.setting small{display:block;font-size:10px;color:#829bac;margin-top:5px}.setting select{font-size:11px;max-width:135px}.loading{position:fixed;inset:0;background:#050b14;z-index:90;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:23px;transition:opacity .5s}.loading p{color:#698799;font-size:12px}.loading.done{opacity:0;pointer-events:none}.loading-orbit{width:50px;height:50px;border:1px solid #b8fbd930;border-radius:50%;position:relative;animation:spin 3s linear infinite}.loading-orbit:before{content:'';position:absolute;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#b8fbd9,#204c46 50%,#0a151f);left:9px;top:9px}.loading-orbit:after{content:'';position:absolute;left:22px;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--mint)}.toast{position:fixed;bottom:145px;left:50%;transform:translateX(-50%);z-index:100;border-radius:30px;padding:12px 22px;color:#d0eee3;font-size:12px;max-width:90vw;text-align:center}#space-fallback{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 40%,#143047,#050a13 65%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center}#space-fallback button{padding:12px 25px}.noscript{position:fixed;z-index:101;inset:0;background:#06111c;padding:20%;font-size:20px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1600px){:root{--edge:45px}.artist-panel{width:410px;right:30px}body.artist-open #universe{right:460px}.welcome{left:8%}}@media(max-width:1000px){.topbar{gap:17px}.brand{font-size:23px}.brand svg{width:29px}.nav-button{padding:8px 4px;font-size:11px}.small-count{margin-left:2px}.search-wrap{width:280px}.welcome{left:5%;width:360px}h1{font-size:51px}.navigation-hint #navigation-hint{display:none}.artist-panel{width:350px}body.artist-open #universe{right:380px}.filter-count{display:none}}
@media(max-width:700px){:root{--edge:18px}.topbar{top:17px;gap:10px;flex-wrap:wrap}.brand{font-size:22px}.brand svg{width:27px}.topbar nav{margin-left:auto;gap:5px}.nav-button{font-size:10px}.nav-button .small-count{font-size:8px;padding:2px 4px}.topbar nav .icon-button{width:29px;min-width:29px;height:29px;font-size:17px}.search-wrap{order:3;width:100%;margin-top:8px}.search-wrap>input{padding:11px 35px 11px 39px;font-size:12px}.search-wrap kbd{display:none}.welcome{top:25%;left:24px;width:calc(100% - 48px)}h1{font-size:48px;letter-spacing:-2.5px}.welcome p{font-size:12px}.welcome .eyebrow{font-size:8px}.welcome-note{font-size:8px}.welcome .primary{padding:12px 16px}.location{bottom:160px;max-width:85%}.location>span:nth-child(2){font-size:15px}.location-detail{font-size:9px}.bottom-ui{bottom:max(14px,env(safe-area-inset-bottom));left:14px;right:14px}.filter-bar{width:100%;justify-content:center;margin-bottom:9px;padding:3px 8px;gap:8px}.filter-bar select{font-size:10px;max-width:175px}.bottom-row{gap:7px}.flight-controls{gap:0;margin-left:auto}.flight-controls button{min-width:29px;height:33px}.flight-controls .surprise{font-size:10px;padding:0 8px;gap:10px}.navigation-hint{gap:3px}.navigation-hint .live-dot{display:none}.text-button{font-size:9px}.navigation-hint #about-open{display:none}.artist-panel{left:9px;right:9px;top:auto;bottom:125px;width:auto;height:43dvh;border-radius:17px 17px 10px 10px;background:#08141df5}.artist-header{padding:20px}.artist-header h2{font-size:28px;margin:14px 0 10px}.artist-actions{margin-top:16px}.artist-section{padding:20px}.artist-panel .album-art{aspect-ratio:1.8}.artist-open .location{display:none}body.artist-open #universe{right:0;bottom:calc(43dvh + 120px)}body.artist-open .vignette{background:linear-gradient(180deg,#02060e,transparent 120px,transparent 80%,#030910)}#universe{transition:right .35s,bottom .35s}.directory{left:9px;right:9px;top:122px;bottom:125px;padding:21px 17px}.directory-grid{grid-template-columns:1fr 1fr;gap:7px}.artist-card{padding:12px 9px;gap:9px;min-height:75px}.artist-card .mini-planet{width:27px;height:27px}.artist-card strong{font-size:11px}.artist-card small{font-size:8px}.artist-card .card-arrow{display:none}.directory-actions{flex-direction:column;gap:7px}.directory-actions input{font-size:12px}.directory-actions select{font-size:10px;padding:6px}.panel-heading h2{font-size:24px;margin-bottom:17px}.panel-heading .eyebrow{font-size:8px}.toast{bottom:135px;font-size:11px;width:max-content}.help-grid{gap:15px}dialog{padding:27px}dialog h2{font-size:28px}.setting{gap:12px}.setting small{max-width:190px}.setting select{max-width:105px}.empty-filter{width:85vw}.empty-filter h2{font-size:19px}.world-label{font-size:10px}.world-label small{font-size:7px}.world-label.selected{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


.welcome:before{content:"";position:absolute;inset:-65px -45px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 35% 50%,#030913d9,transparent 72%)}
@media(max-width:700px){.welcome{top:24%}.welcome:before{inset:-45px -25px;background:radial-gradient(ellipse,#040b14d9,transparent 75%)}body.artist-open #universe{top:75px}.location{max-width:350px}}

#artist-title:focus{outline:none}.source-note summary{cursor:pointer;margin-top:8px;color:#92b5c5}
