@font-face{font-family:'Lenses Serif';src:url('./fonts/serif.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Lenses Serif';src:url('./fonts/serif-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none;color:#1e293b;background:#f5f7fb;--ink:#1e293b;--muted:#64748b;--line:#e2e8f0;--green:#6366f1;--accent:#6366f1;--paper:#f8fafc;--panel:#fff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 12% 5%,#e0e7ff75,transparent 40%),radial-gradient(ellipse at 90% 65%,#cffafe55,transparent 45%),#f5f7fb}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit;transition:background .2s,color .2s,box-shadow .2s,transform .2s}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #818cf8;outline-offset:4px}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.glass{background:#ffffffa8;border:1px solid #ffffffeb;box-shadow:0 2px 6px #33415503,0 12px 40px #33415506,inset 0 1px 0 #fff;backdrop-filter:blur(22px);border-radius:17px}.shell{max-width:1840px;margin:auto;padding:0 32px}.masthead{display:flex;align-items:center;gap:22px;height:77px;border-bottom:1px solid #e2e8f0b0}.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none}.wordmark svg{width:35px;fill:none;stroke:#6366f1;stroke-width:1.5}.wordmark svg circle+circle{stroke:#06b6d4}.wordmark>span{font:27px 'Lenses Serif',Georgia,serif;letter-spacing:-.8px}.wordmark-dot{color:#818cf8}.masthead-note{font-size:8px;letter-spacing:1.8px;color:#94a3b8;border-left:1px solid var(--line);padding-left:22px}.connection{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:10px;color:#64748b}.connection i{width:6px;height:6px;border-radius:50%;background:#f59e0b}.connection i.ready{background:#10b981;box-shadow:0 0 0 4px #10b9810c}.view-nav{position:absolute;top:21px;left:50%;transform:translateX(-50%);display:flex;gap:4px;padding:4px;border:1px solid #e2e8f0;background:#ffffffb5;border-radius:30px}.view-nav button{font-size:10px;border-radius:20px;padding:9px 16px;color:#94a3b8}.view-nav button.active{background:#eef2ff;color:#4f46e5;box-shadow:0 1px 3px #4338ca08}.nav-count{display:none}.intro{display:flex;align-items:center;justify-content:space-between;padding:26px 0 24px;gap:20px}.eyebrow{font-size:8px;letter-spacing:1.6px;color:#94a3b8}h1{font:35px/1.15 'Lenses Serif',Georgia,serif;letter-spacing:-.7px;font-weight:400;margin:8px 0 0}.intro>p{display:flex;align-items:center;gap:9px;color:#94a3b8;font-size:10px}.intro b{font-size:8px;color:#818cf8;border:1px solid #c7d2fe;background:#eef2ff;border-radius:50%;height:18px;width:18px;display:inline-flex;align-items:center;justify-content:center;margin-left:12px}.intro>p>span{color:#cbd5e1;margin:0 3px}.workspace{display:grid;grid-template-columns:224px minmax(0,1fr);gap:19px;align-items:start;padding-bottom:30px}.sidebar{padding:20px 17px;min-width:0}.side-title{font-size:8px;letter-spacing:1.3px;color:#94a3b8;display:flex;justify-content:space-between;margin-bottom:16px}.side-title>span{font:9px monospace;color:#cbd5e1}.search-wrap{position:relative}.search-icon{position:absolute;width:16px;height:16px;top:11px;left:11px;color:#94a3b8;pointer-events:none}.search-icon svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.5;fill:none}input:not([type=range]),textarea,select{width:100%;background:#ffffffbb;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;color:#475569;font-size:11px;min-height:37px}.search-wrap input{padding-left:33px;font-size:10px;background:#f8fafc}.search-wrap input::placeholder,textarea::placeholder{color:#94a3b8}.search-results{position:absolute;top:43px;left:0;width:290px;max-height:350px;overflow:auto;background:#fffffff5;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 35px #33415515;z-index:60}.search-hit{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;width:100%;text-align:left;border-bottom:1px solid #f1f5f9}.search-hit:hover{background:#eef2ff}.search-hit strong{display:block;font-size:11px;font-weight:500}.search-hit small{display:block;font-size:9px;color:#94a3b8;margin-top:4px}.search-hit>span:last-child{font-size:14px;color:#a5b4fc}.seed-panel{padding:20px 0 16px}.seed-label{font-size:7px;letter-spacing:1.4px;color:#818cf8;margin:4px 0 12px}.seed-panel h3{font:26px/1.15 'Lenses Serif',Georgia,serif;letter-spacing:-.5px;margin:0 0 8px;font-weight:400;overflow-wrap:anywhere}.seed-panel .artist{font-size:11px;color:#64748b;line-height:1.6;margin:0}.seed-actions{display:flex;align-items:center;gap:11px;margin:20px 0}.play-button{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#6366f1;color:white;font-size:9px;padding:0 0 0 1px;flex:none;box-shadow:0 3px 8px #6366f124}.play-button:hover{background:#4f46e5;transform:scale(1.07);box-shadow:0 4px 13px #6366f133}.seed-actions .play-button{width:39px;height:39px;font-size:11px}.seed-actions>span{font-size:10px;font-weight:500;color:#475569}.seed-actions small{display:block;margin-top:4px;font-size:8px;font-weight:400;color:#94a3b8}.seed-tags{display:flex;gap:5px;flex-wrap:wrap}.seed-tags span{font-size:8px;color:#6366f1;background:#eef2ff;border:1px solid #e0e7ff;border-radius:5px;padding:5px 7px;line-height:1.4}.shuffle{display:block;width:100%;border:1px solid #e2e8f0;background:#ffffff99;padding:10px;border-radius:8px;font-size:9px;color:#64748b;text-align:left}.shuffle:hover{background:#eef2ff;color:#6366f1}.seed-suggestions{margin:17px 0 22px}.seed-suggestions summary,.settings>summary{font-size:9px;cursor:pointer;color:#94a3b8}.seed-chips{display:flex;flex-wrap:wrap;gap:5px;padding-top:12px}.seed-chips button{padding:5px 7px;border:1px solid #e2e8f0;border-radius:5px;color:#64748b;font-size:8px}.seed-chips button:hover{background:#e0e7ff;color:#4f46e5}.settings{border-top:1px solid #e2e8f0;padding-top:18px}.settings>summary{color:#64748b;display:flex;justify-content:space-between;list-style:none}.settings-body{padding-top:22px}.side-rule{height:1px;background:#e2e8f0;margin:20px 0}.range-label{display:flex;justify-content:space-between;font-size:9px;color:#64748b;margin:12px 0 8px}.range-label strong{font:9px monospace;color:#6366f1}input[type=range]{accent-color:#6366f1;width:100%;height:12px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:7px;color:#94a3b8;margin-top:5px}.advanced{margin-top:18px;font-size:9px;color:#94a3b8}.advanced summary{cursor:pointer}.advanced label{display:block;margin:12px 0 7px}.advanced label span{font-size:8px;display:block;margin-top:4px}.advanced input{min-height:30px!important;font-size:9px!important}.advanced p{font-size:8px;line-height:1.8}.spectrum{height:30px;display:flex;align-items:end;gap:2px;margin:12px 0}.spectrum i{flex:1;background:#818cf8;border-radius:2px 2px 0 0}.spectrum i.off{background:#e2e8f0}.text-link{font-size:9px;color:#6366f1;padding:0}.sidebar select{font-size:8px!important;min-height:32px!important}.side-footnote{display:none}.sidebar-help{font-size:9px;line-height:1.9;color:#94a3b8;margin:25px 0 0;border-top:1px solid #e2e8f0;padding-top:16px}.canvas-area{min-width:0}.lens-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;min-height:39px}.lens-label{font-size:7px;letter-spacing:1.3px;color:#94a3b8;white-space:nowrap;margin-right:4px}.categories{display:flex;gap:5px;overflow:auto;scrollbar-width:none;min-width:0}.category{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:10px;padding:10px 11px;border-radius:8px;border:1px solid transparent;color:#64748b}.category i{height:5px;width:5px;border-radius:50%;background:currentColor;display:none}.category small{display:none}.category:hover{background:#ffffff90}.category.active{background:#fff;border-color:#e0e7ff;color:#4f46e5;box-shadow:0 2px 6px #6366f108}.category.active::before{content:'';width:5px;height:5px;background:#818cf8;border-radius:50%}.add-category{font-size:9px;color:#818cf8;white-space:nowrap;margin-left:auto;padding:9px 11px;background:#eef2ff88;border:1px dashed #c7d2fe;border-radius:8px}.add-category:hover{background:#e0e7ff}.map-panel{overflow:hidden;background:#ffffffb5;border-radius:16px}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 23px 17px;border-bottom:1px solid #e2e8f080;background:#ffffff65}.map-heading .eyebrow{font-size:7px;letter-spacing:1.5px}.map-heading h2{font:24px/1.1 'Lenses Serif',Georgia,serif;font-weight:400;letter-spacing:-.3px;margin:8px 0}.map-heading p{font-size:9px;line-height:1.7;color:#94a3b8;margin:0;max-width:510px}.map-tools{display:flex;align-items:center;gap:5px;flex:none}.map-tools button{border:1px solid #e2e8f0;border-radius:7px;font-size:9px;padding:8px 10px;background:#ffffffb0;color:#64748b;white-space:nowrap}.map-tools button[aria-pressed=true]{color:#6366f1;background:#eef2ff;border-color:#c7d2fe}.map-tools button:hover{background:#eef2ff;color:#4f46e5}.map-stage{height:clamp(560px,calc(100vh - 340px),770px);position:relative;overflow:hidden;touch-action:none;background:radial-gradient(ellipse at 20% 35%,#eef2ff66,transparent 60%),#fcfdff;isolation:isolate;cursor:grab}.map-stage:active{cursor:grabbing}#space-world{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}#map{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}#map-cards{position:absolute;inset:0;pointer-events:none}.map-point{transition:transform .85s cubic-bezier(.22,.8,.25,1),opacity .3s;cursor:pointer}.map-point circle{opacity:.67;transition:fill .6s,r .2s,opacity .3s}.map-point.result circle{opacity:1;stroke:#fff;stroke-width:1.3}.map-point.seed circle{stroke:#312e81;stroke-width:2;fill:#6366f1!important;opacity:1}.map-point.base circle{stroke:#64748b;stroke-width:1;stroke-dasharray:2 2}.map-point.focus circle{r:7;opacity:1;stroke:#fff;stroke-width:2}.map-point.muted{opacity:.12}#cluster-clouds ellipse{transition:all .85s cubic-bezier(.2,.8,.2,1)}#leaders line{transition:x1 .85s,y1 .85s,x2 .85s,y2 .85s;pointer-events:none}.cluster-name text{font-size:13px;font-weight:600;fill:var(--cluster);paint-order:stroke;stroke:#ffffffc9;stroke-width:5px;stroke-linejoin:round;letter-spacing:-.2px}.cluster-name.muted{opacity:.15}.map-card{position:absolute;left:0;top:0;pointer-events:auto;z-index:3;transform-origin:50% 50%;border-radius:11px;border:1px solid color-mix(in srgb,var(--cluster) 24%,#fff);border-top:3px solid var(--cluster);background:#ffffffec;box-shadow:0 4px 15px #3341550a,0 1px 3px #33415506;backdrop-filter:blur(14px);transition:transform .85s cubic-bezier(.22,.8,.25,1),opacity .3s,border-color .3s,box-shadow .3s;animation:card-appear .5s both}.map-card:hover,.map-card.focus{z-index:25;box-shadow:0 8px 26px color-mix(in srgb,var(--cluster) 18%,transparent);border-color:color-mix(in srgb,var(--cluster) 60%,white)}.map-card.seed{z-index:7;background:#eef2fff5;border:1px solid #a5b4fc;border-top:3px solid #6366f1;box-shadow:0 4px 20px #6366f11a}.map-card.base{border-style:dashed;background:#ffffffdc}.map-card.context{background:#ffffffd8}.map-card.playing{box-shadow:0 0 0 3px color-mix(in srgb,var(--cluster) 20%,transparent),0 8px 25px #33415515;z-index:20}.map-card.muted{opacity:.22}.spatial-content{padding:9px 10px 8px}.spatial-top{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:8px}.spatial-kind{font-size:5.8px;letter-spacing:.75px;color:#94a3b8}.seed .spatial-kind{color:#6366f1;font-weight:600}.cluster-dot{display:block;width:4px;height:4px;border-radius:50%;background:var(--cluster);flex:none}.spatial-body{display:flex;align-items:center;gap:7px}.spatial-text{flex:1;min-width:0}.spatial-title{padding:0;font-size:10px;line-height:1.4;font-weight:600;letter-spacing:-.1px;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:28px;overflow-wrap:anywhere}.spatial-title:hover{color:var(--cluster)}.spatial-artist{display:block;font-size:8px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;line-height:1.4}.spatial-body .play-button{width:26px;height:26px;font-size:8px;background:var(--cluster);box-shadow:0 2px 5px color-mix(in srgb,var(--cluster) 20%,transparent)}.spatial-attribute{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:7px;color:var(--cluster);background:color-mix(in srgb,var(--cluster) 8%,white);border-radius:4px;padding:4px 6px;margin-top:9px;line-height:1.2}.spatial-details{display:none;position:absolute;top:calc(100% - 2px);left:-1px;right:-1px;padding:10px;background:#fffffff7;border:1px solid color-mix(in srgb,var(--cluster) 35%,white);border-top:0;border-radius:0 0 10px 10px;box-shadow:0 10px 25px #33415510;z-index:30}.map-card:hover .spatial-details,.map-card:focus-within .spatial-details{display:block}.spatial-details .card-caption{font-size:8px;line-height:1.8;color:#64748b;-webkit-line-clamp:4;margin:0}.spatial-next{font-size:8px;color:var(--cluster);padding:9px 0 0;display:block;text-align:left}.map-tooltip{position:absolute;top:12px;left:15px;background:#fffffff5;border:1px solid #e2e8f0;padding:10px 13px;border-radius:8px;box-shadow:0 5px 20px #33415508;z-index:35;font-size:10px;pointer-events:none}.map-tooltip small{display:block;font-size:8px;color:#94a3b8;margin-top:4px}.map-empty{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;color:#94a3b8;font-size:13px;pointer-events:none}.map-bottom-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:8px;color:#94a3b8;background:#ffffffd9;padding:7px 12px;border-radius:20px;pointer-events:none;white-space:nowrap;z-index:15;border:1px solid #ffffff}.map-legend{padding:13px 17px;display:flex;align-items:center;gap:15px;border-top:1px solid #e2e8f080;background:#ffffff70}#cluster-legend{display:flex;flex-wrap:wrap;gap:6px;flex:1}.cluster-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border-radius:6px;font-size:8px;color:#64748b;border:1px solid transparent;text-align:left}.cluster-chip i{width:5px;height:5px;display:block;border-radius:50%;background:var(--cluster);flex:none}.cluster-chip span{max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cluster-chip small{font-size:7px;color:#b3becb}.cluster-chip:hover,.cluster-chip.active{background:color-mix(in srgb,var(--cluster) 8%,white);border-color:color-mix(in srgb,var(--cluster) 20%,white);color:var(--cluster)}.map-precision{font-size:7px;color:#94a3b8;white-space:nowrap}.map-status{display:flex;justify-content:space-between;align-items:center;padding:18px 5px 8px;gap:20px}.map-status>div>span{font-size:7px;letter-spacing:1.1px;color:#a5b4fc;display:block;margin-bottom:5px}.map-status strong{font-size:10px;font-weight:500;color:#64748b;line-height:1.8}.map-status p{font:8px/1.7 monospace;color:#94a3b8;margin:4px 0 0}.map-status>span{font-size:8px;color:#94a3b8;white-space:nowrap}.updating #space-world{opacity:.4;pointer-events:none;filter:blur(1px)}.updating #space-world,.updating #space-world *{cursor:wait}.busy{position:fixed;top:15px;left:50%;transform:translateX(-50%);background:#fffffff0;border:1px solid #e0e7ff;border-radius:12px;box-shadow:0 5px 30px #4338ca12;padding:12px 17px;z-index:120;font-size:11px;color:#6366f1;display:flex;align-items:center;gap:10px;max-width:90vw}.spinner{width:13px;height:13px;border-radius:50%;border:1.5px solid #e0e7ff;border-top-color:#818cf8;animation:spin .8s linear infinite;flex:none}.alert{font-size:11px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;padding:14px 18px;border-radius:10px;margin-bottom:18px;line-height:1.8}.method-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid #e2e8f0;padding:32px 0}.method-section h2{font:29px 'Lenses Serif',Georgia,serif;font-weight:400;letter-spacing:-.5px;margin:12px 0}.method-section p{font-size:10px;line-height:1.9;color:#94a3b8;max-width:570px}.method-section a{color:#818cf8;font-size:10px;text-underline-offset:4px}.method-facts{display:grid;gap:14px}.method-facts>div{display:grid;grid-template-columns:110px 1fr;gap:18px}.method-facts span{font-size:7px;letter-spacing:1px;color:#94a3b8;padding-top:5px}.method-facts p{margin:0;font-size:9px}footer{border-top:1px solid #e2e8f0;padding:20px 0 30px;display:flex;justify-content:space-between;gap:20px;color:#94a3b8;font-size:8px}footer i{font-style:normal;margin:0 5px}.player{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:calc(100% - 36px);max-width:820px;display:flex;align-items:center;gap:15px;padding:13px 17px;background:#ffffffdf;border:1px solid #ffffff;backdrop-filter:blur(24px);box-shadow:0 8px 50px #3341551a,0 0 0 1px #e2e8f055;border-radius:15px;z-index:70}.player-track{width:180px;min-width:0;flex:none}.player-track strong{font-size:12px;display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-track span{display:block;font-size:9px;color:#94a3b8;margin-top:4px}.player>span{font:9px monospace;color:#94a3b8}.player input{flex:1;min-width:40px}.player .player-caption{font:6px sans-serif;letter-spacing:.8px;white-space:nowrap;color:#94a3b8}.icon-button{font-size:21px;color:#94a3b8}.study-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;margin:20px 0}.study-toolbar strong{font-size:13px;font-weight:500}.study-toolbar p{font-size:10px;line-height:1.8;color:#94a3b8;margin:7px 0 0}.outline-button{border:1px solid #e0e7ff;background:#eef2ff70;border-radius:8px;color:#6366f1;padding:10px 13px;font-size:10px;white-space:nowrap}.outline-button:hover{background:#e0e7ff}.results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.track-card{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#ffffffc9;animation:card-appear .5s both;animation-delay:calc(var(--order)*25ms);transition:box-shadow .2s,border-color .2s}.track-card:hover{box-shadow:0 7px 25px #33415510;border-color:#c7d2fe}.track-card.playing{border-color:#818cf8}.card-art{position:relative;height:65px;overflow:hidden}.card-art svg{width:100%;height:100%;display:block}.card-art .play-button{position:absolute;bottom:10px;right:12px}.card-number,.card-score{position:absolute;top:10px;font:8px monospace;color:#64748b}.card-number{left:12px}.card-score{right:12px}.card-body{padding:14px}.card-body h3{font-size:13px;font-weight:500;margin:0 0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-artist{font-size:10px;color:#94a3b8;margin:0 0 12px}.card-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.card-tags span{font-size:8px;color:#6366f1;background:#eef2ff;padding:4px 6px;border-radius:5px;max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.card-caption{font-size:9px;line-height:1.9;color:#94a3b8;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-caption mark{background:#e0e7ff;color:#6366f1;padding:0 1px;border-radius:2px}.card-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #f1f5f9;margin-top:12px;padding-top:10px}.card-footer button{font-size:8px;color:#818cf8;padding:0}.card-footer>span{font-size:7px;color:#94a3b8}.vote-controls{padding:10px 13px;background:#f8fafc;display:flex;align-items:center;gap:5px;border-top:1px solid #e2e8f0}.vote-controls>span{font-size:8px;color:#94a3b8;margin-right:auto}.vote-controls button{font-size:9px;border:1px solid #e2e8f0;border-radius:5px;padding:5px 9px;color:#64748b}.vote-controls button.selected{background:#6366f1;border-color:#6366f1;color:white}.vote-controls button.no.selected{background:#f43f5e;border-color:#f43f5e}.study-summary{margin-top:24px;padding:24px}.study-summary h3{font:25px 'Lenses Serif',Georgia,serif;font-weight:400;margin:0 0 12px}.study-summary p{font-size:10px;line-height:1.9;color:#94a3b8}.study-summary table{font-size:10px;width:100%;border-collapse:collapse;margin:15px 0}.study-summary th,.study-summary td{text-align:left;font-weight:400;padding:10px 5px;border-bottom:1px solid #e2e8f0}.study-summary th{font-size:8px;color:#94a3b8}#study-map-cover{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f8faffb5;backdrop-filter:blur(18px);text-align:center}#study-map-cover>span{font-size:8px;letter-spacing:2px;color:#818cf8}#study-map-cover h3{font:31px 'Lenses Serif',Georgia,serif;font-weight:400;margin:16px 0 0}#study-map-cover p{font-size:11px;line-height:1.9;color:#94a3b8}.blind #space-world{visibility:hidden}.blind .map-bottom-hint{display:none}.study-mode .map-legend{visibility:hidden}dialog{background:#fffffff2;backdrop-filter:blur(25px);color:var(--ink);border:1px solid #fff;border-radius:19px;padding:30px 33px;width:calc(100% - 32px);max-width:540px;max-height:85vh;box-shadow:0 25px 100px #33415530}dialog::backdrop{background:#33415530;backdrop-filter:blur(6px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-close{font-size:25px;color:#94a3b8;padding:0}dialog h2{font:34px 'Lenses Serif',Georgia,serif;font-weight:400;margin:20px 0 12px}dialog p{font-size:11px;line-height:1.9;color:#94a3b8}dialog label{display:block;font-size:10px;color:#64748b;margin:18px 0 8px}dialog label span{float:right;font-size:8px;color:#94a3b8}dialog textarea{resize:vertical;line-height:1.8}dialog .dialog-note{font-size:9px}.primary-button{width:100%;display:flex;justify-content:space-between;padding:13px 17px;background:#6366f1;color:white;border-radius:9px;font-size:11px;margin-top:18px}.primary-button:hover{background:#4f46e5}.form-error{font-size:10px;color:#e11d48;line-height:1.8}.prompt-row{font-size:11px;line-height:1.8;padding:11px 0;border-bottom:1px solid #e2e8f0}.prompt-row span{font:8px monospace;color:#94a3b8;margin-right:12px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}.loading-results{opacity:.4;pointer-events:none}.empty-seed{font-size:12px;color:#94a3b8;line-height:1.8}.empty-results{color:#94a3b8;font-size:13px}.skeleton{height:240px;background:#eef2ff;border-radius:12px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-appear{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.workspace{grid-template-columns:245px minmax(0,1fr);gap:23px}.sidebar{padding:23px}.map-stage{height:clamp(640px,calc(100vh - 340px),900px)}}@media(max-width:1200px){.shell{padding:0 23px}.workspace{grid-template-columns:195px minmax(0,1fr);gap:15px}.sidebar{padding:18px 14px}.lens-label{display:none}.category{font-size:9px;padding:9px}.map-heading{align-items:start;flex-direction:column;gap:12px;padding:18px}.map-tools{align-self:end}.map-heading h2{font-size:23px}.map-stage{height:650px}.intro>p{font-size:9px}.intro b{margin-left:4px}.intro h1{font-size:31px}.view-nav{left:52%}.masthead-note{display:none}.map-precision{display:none}.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-tools button{font-size:8px;padding:7px 9px}}@media(max-width:800px){.shell{padding:0 15px}.masthead{height:68px;gap:12px}.wordmark>span{font-size:24px}.wordmark svg{width:29px}.connection{font-size:8px}.view-nav{position:static;transform:none;display:inline-flex;margin-top:16px;padding:3px}.view-nav button{font-size:9px;padding:8px 14px}.intro{padding:20px 0 22px;display:block}.intro h1{font-size:31px}.intro>.eyebrow{font-size:7px}.intro>p{margin:14px 0 0;font-size:9px;gap:6px}.intro b{margin:0 0 0 8px}.intro b:first-child{margin-left:0}.workspace{display:flex;flex-direction:column;gap:17px}.sidebar{width:100%;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:0 18px}.sidebar>.side-title{grid-column:1;margin-bottom:10px}.sidebar .search-wrap{grid-column:1;grid-row:2}.seed-panel{grid-column:2;grid-row:1/5;padding:0;border-left:1px solid #e2e8f0;padding-left:16px}.seed-label{font-size:6px;margin:0 0 8px}.seed-panel h3{font-size:21px;margin-bottom:4px}.seed-panel .artist{font-size:9px}.seed-actions{margin:10px 0}.seed-actions .play-button{height:30px;width:30px;font-size:8px}.seed-actions>span{font-size:8px}.seed-actions small{font-size:7px;margin-top:3px}.seed-tags{display:none}.sidebar .shuffle{grid-column:1;margin-top:10px;font-size:8px;padding:8px}.seed-suggestions{grid-column:1;margin:11px 0 0}.seed-suggestions summary{font-size:8px}.settings{grid-column:1/-1;margin-top:15px;padding-top:12px}.settings>summary{font-size:8px}.settings-body{padding-top:20px}.settings-body .side-title{font-size:8px}.sidebar-help{display:none}.canvas-area{width:100%}.lens-bar{gap:7px;margin-bottom:11px}.category{font-size:9px;padding:10px}.add-category{font-size:8px;padding:9px;flex:none}.map-heading{gap:11px;padding:16px}.map-heading .eyebrow{font-size:6px}.map-heading h2{font-size:25px;margin:7px 0}.map-heading p{font-size:9px;line-height:1.8}.map-tools{align-self:stretch;justify-content:end}.map-tools button{font-size:8px;padding:7px 8px}.map-stage{height:660px}.map-legend{padding:10px}.cluster-chip{font-size:7px;gap:4px;padding:4px}.cluster-chip span{max-width:100px}.cluster-chip small{display:none}.map-status{padding-top:15px;align-items:start}.map-status strong{font-size:9px}.map-status p{font-size:7px}.map-status>span{font-size:7px;max-width:85px;line-height:1.8;white-space:normal}.spatial-kind{font-size:5px;letter-spacing:.4px}.spatial-title{font-size:9px}.spatial-artist{font-size:7px}.spatial-content{padding:8px}.spatial-attribute{font-size:6px;padding:4px}.spatial-body .play-button{height:23px;width:23px;font-size:7px}.cluster-name text{font-size:11px}.method-section{grid-template-columns:1fr;gap:22px;padding-top:25px}.method-section h2{font-size:27px}.method-facts>div{grid-template-columns:90px 1fr;gap:12px}.player{padding:12px;gap:10px;border-radius:13px}.player-track{width:110px}.player-track strong{font-size:10px}.player-track span{font-size:8px}.player .player-caption{display:none}.player>span{font-size:8px}.player .play-button{height:29px;width:29px}.study-toolbar{align-items:start;flex-direction:column;padding:17px}.study-toolbar strong{font-size:12px}.study-toolbar p{font-size:9px}.study-summary{padding:17px}.card-body{padding:11px}.card-body h3{font-size:12px}.card-tags span{font-size:7px}.card-caption{font-size:8px}.vote-controls{padding:9px}.vote-controls>span{font-size:7px}.vote-controls button{font-size:8px;padding:4px 7px}footer{font-size:7px;line-height:1.8}}@media(max-width:380px){.sidebar{grid-template-columns:minmax(0,1fr) 135px;gap:0 12px}.seed-panel{padding-left:12px}.connection{max-width:95px;text-align:right;line-height:1.6}.intro>p{font-size:8px}.intro>p>span{margin:0}.map-tools button{padding:7px}.card-footer>span{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.map-card{min-height:112px}.map-card.seed{min-height:124px}.settings>summary>span{font-size:0}.settings>summary>span::after{content:'+';font-size:13px}
/* Discreet point markers, with exactly one hover/focus preview. */
#space-world{transition:transform .45s cubic-bezier(.22,.8,.25,1)}#space-world.dragging{transition:none}
.map-point{transition:opacity .35s}.map-point circle{transition:fill 1.15s ease,opacity .35s,r .2s}.map-point.has-marker circle{opacity:0}.map-point.focus circle{r:4}
#cluster-clouds ellipse{transition:fill 1.15s,fill-opacity .65s}#cluster-labels .cluster-name{transition:opacity .55s}.cluster-name text{font-size:11px;font-weight:500;opacity:.8;stroke-width:5px}
.map-card,.map-card.seed,.map-card.base,.map-card.context{width:22px!important;height:22px;min-height:0;border:0;border-radius:50%;background:none;box-shadow:none;backdrop-filter:none;transform-origin:0 0;animation:none;transition:opacity .35s;z-index:5;margin:-11px 0 0 -11px}
.map-card:hover,.map-card.focus,.map-card.playing{box-shadow:none;border:0}.map-card.seed{z-index:8}.map-card.expanded{z-index:50}.map-card.muted{opacity:.22}
.spatial-marker{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;color:var(--cluster);background:none;pointer-events:auto;cursor:pointer}.spatial-marker:hover{background:color-mix(in srgb,var(--cluster) 10%,transparent)}.marker-dot{width:7px;height:7px;border-radius:50%;background:var(--cluster);box-shadow:0 0 0 2.5px #fff,0 0 0 3.5px color-mix(in srgb,var(--cluster) 55%,transparent);transition:background 1.15s,box-shadow .3s,transform .2s}.context .marker-dot{width:5px;height:5px;box-shadow:0 0 0 2px #fff,0 0 0 2.7px color-mix(in srgb,var(--cluster) 35%,transparent)}.base .marker-dot{background:white;outline:1px dashed var(--cluster);outline-offset:1px;box-shadow:none}.spatial-marker:hover .marker-dot,.map-card.playing .marker-dot{transform:scale(1.25)}.seed-star{height:24px;width:24px;overflow:visible;filter:drop-shadow(0 1px 3px #f59e0b33)}.seed-star path{fill:#f59e0b;stroke:#fff;stroke-width:1.5;stroke-linejoin:round}
.map-card .spatial-content{position:absolute;left:18px;top:-36px;width:var(--popup-width,232px);height:auto;max-height:300px;overflow:auto;padding:14px;background:#fffffff5;border:1px solid color-mix(in srgb,var(--cluster) 22%,white);border-top:2px solid var(--cluster);box-shadow:0 8px 30px #33415516;border-radius:11px;backdrop-filter:blur(18px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(5px) scale(.98);transform-origin:0 30%;transition:opacity .16s,transform .2s,visibility 0s .16s}
.map-card.expanded .spatial-content{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .16s,transform .2s,visibility 0s}.map-card .spatial-kind{font-size:7px;letter-spacing:.7px}.map-card .spatial-title{font-size:13px;line-height:1.4;max-height:38px}.map-card .spatial-artist{font-size:10px;margin-top:4px}.map-card .spatial-top{margin-bottom:11px}.map-card .spatial-body .play-button{width:32px;height:32px;font-size:10px}.spatial-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.map-card .spatial-attribute{font-size:8px;margin:0;white-space:normal;line-height:1.5;padding:4px 7px}.map-card .spatial-details,.map-card:hover .spatial-details{display:block;position:static;border:0;box-shadow:none;border-radius:0;background:none;padding:10px 0 0}.map-card .spatial-details .card-caption{font-size:9px;line-height:1.9;-webkit-line-clamp:3}.map-card .spatial-next{font-size:9px;padding-top:11px}
.updating #space-world{opacity:1;filter:none;pointer-events:auto}.updating .spatial-marker{pointer-events:none}.transitioning .spatial-content{pointer-events:none}.map-stage.transitioning{cursor:default}.map-bottom-hint{font-size:8px}#map-tooltip{z-index:40}
@media(prefers-reduced-motion:reduce){#space-world,.map-point,.map-point circle,.map-card,.spatial-content,#cluster-clouds ellipse{transition:none!important}}
/* Full-viewport explorer and restrained glass controls. */
:root{--canvas-bg:#f8fafc;--text:#334155;--quiet:#94a3b8;--stroke:#dfe5ee;--glass:rgba(255,255,255,.76);--solid:#fffffff5;--glass-shadow:0 8px 35px #0f172a0c;--control-hover:#eef2ff;--dot-grid:#d5dce8}
:root[data-theme=dark]{color-scheme:dark;--canvas-bg:#0e1119;--text:#d4d9e5;--quiet:#748099;--stroke:#2b3141;--glass:rgba(23,28,40,.8);--solid:#191f2dee;--glass-shadow:0 8px 35px #0003;--control-hover:#262c40;--dot-grid:#2b3141;--ink:#d4d9e5;--muted:#8390a8;--line:#2b3141;--panel:#191f2d;--paper:#111620}
html,body.canvas-page{width:100%;height:100%;margin:0;overflow:hidden}.canvas-page{background:var(--canvas-bg);color:var(--text);transition:background .3s,color .3s}.fullscreen-space,.canvas-page .map-panel{position:fixed;inset:0;border:0;border-radius:0;box-shadow:none;background:var(--canvas-bg);backdrop-filter:none}.canvas-page .map-stage{position:absolute;inset:0;width:100vw;height:100vh;height:100dvh;background:var(--canvas-bg);overflow:hidden}.canvas-page #map{color:var(--dot-grid)}#grid-rect{opacity:.65}
.top-left-tools,.top-right-tools{position:fixed;top:23px;display:flex;align-items:center;gap:20px;z-index:60}.top-left-tools{left:24px}.top-right-tools{right:26px;gap:24px}.canvas-wordmark{font:21px 'Lenses Serif',Georgia,serif;letter-spacing:-.5px;color:var(--text);text-decoration:none}.canvas-wordmark>span{color:#818cf8}.corner-pill{display:flex;align-items:center;padding:4px;border:1px solid var(--stroke);border-radius:24px;background:var(--glass);box-shadow:0 2px 8px #0f172a03;backdrop-filter:blur(22px) saturate(130%)}.icon-control{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:50%;color:var(--quiet);padding:9px;flex:none}.icon-control:hover,.icon-control[aria-pressed=true]{color:#818cf8;background:var(--control-hover)}.icon-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.icon-control svg circle{fill:var(--glass)}.sun-icon{display:none}:root[data-theme=dark] .sun-icon{display:block}:root[data-theme=dark] .moon-icon{display:none}.top-right-tools .connection{font-size:8px;color:var(--quiet)}.explanation-link{font-size:10px;color:var(--quiet);text-decoration:none}.explanation-link:hover{color:#818cf8}.explanation-link>span{padding-left:8px}.canvas-context{position:fixed;left:50%;top:29px;transform:translateX(-50%);text-align:center;pointer-events:none;z-index:15}.canvas-context h1{font:11px/1.6 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-weight:500;letter-spacing:.2px;margin:0;color:var(--text)}.canvas-context p{font-size:8px;color:var(--quiet);margin:3px 0 0;max-width:400px}.zoom-pill{position:fixed;right:24px;bottom:24px;z-index:60;gap:1px}.zoom-pill button{height:31px;min-width:31px;padding:7px 10px;border-radius:18px;font-size:13px;color:var(--quiet)}.zoom-pill button:last-child{font-size:9px;padding:7px 13px}.zoom-pill button:hover{background:var(--control-hover);color:#818cf8}.canvas-key{position:fixed;bottom:28px;left:26px;display:flex;align-items:center;gap:8px;z-index:12;font-size:7px;letter-spacing:.2px;color:var(--quiet);pointer-events:none}.canvas-key .key-star{color:#f59e0b;font-size:12px}.canvas-key i{width:2px;height:2px;background:var(--quiet);border-radius:50%;margin:0 3px}
.floating-controls{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:65;display:flex;align-items:center;gap:8px;padding:11px 13px;background:var(--glass);border:1px solid var(--stroke);border-top-color:color-mix(in srgb,var(--stroke) 30%,white);border-radius:20px;box-shadow:var(--glass-shadow);backdrop-filter:blur(30px) saturate(150%);max-width:calc(100vw - 70px)}.floating-controls .seed-panel{padding:0 9px 0 0;display:grid;grid-template-columns:31px minmax(0,1fr);grid-template-rows:15px 13px;gap:3px 9px;width:193px;min-width:0;flex:none;border:0}.floating-controls .seed-label,.floating-controls .seed-tags{display:none}.floating-controls .seed-actions{grid-column:1;grid-row:1/3;margin:0}.floating-controls .seed-actions>span{display:none}.floating-controls .seed-actions .play-button{width:30px;height:30px;font-size:9px}.floating-controls .seed-panel h3{grid-column:2;grid-row:1;font:10px/1.5 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;letter-spacing:0}.floating-controls .seed-panel .artist{grid-column:2;grid-row:2;font-size:8px;color:var(--quiet);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.control-divider{width:1px;height:26px;background:var(--stroke);margin-right:4px}.control-field{display:flex;flex-direction:column;gap:4px;min-width:0}.control-field label{font-size:7px;letter-spacing:.7px;color:var(--quiet);padding-left:7px}.floating-controls .control-field select{border:0;background:transparent;padding:0 22px 0 7px;min-height:20px;border-radius:0;color:var(--text);font-size:10px;max-width:150px;cursor:pointer}.control-field select option{color:var(--text);background:var(--canvas-bg)}.lens-control{width:137px}.basis-control{width:127px}.bar-button{font-size:9px;color:var(--quiet);padding:10px 9px;border-radius:9px}.bar-button:hover{background:var(--control-hover);color:#818cf8}.floating-controls>.icon-control{width:32px;height:32px;padding:8px}.canvas-status{position:fixed;left:50%;bottom:102px;transform:translateX(-50%);z-index:12;text-align:center;pointer-events:none;font-size:8px;line-height:1.8;color:var(--quiet);max-width:70vw}.canvas-status #results-eyebrow,.canvas-status #results-title,.canvas-status #overlap{display:none}.canvas-status p{margin:0;font:7px/1.8 monospace;opacity:.8}body:has(#player:not([hidden])) .canvas-status{display:none}
.control-popover{position:fixed;inset:auto;left:50%;bottom:104px;transform:translateX(-50%);margin:0;width:440px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 160px);overflow:auto;padding:22px;border:1px solid var(--stroke);border-radius:17px;background:var(--solid);color:var(--text);box-shadow:0 15px 70px #0f172a20;backdrop-filter:blur(28px) saturate(140%)}.control-popover::backdrop{background:transparent}.popover-title{font-size:8px;letter-spacing:1.3px;color:var(--quiet);display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.popover-close{font-size:22px;color:var(--quiet);line-height:1;padding:0}.control-popover input:not([type=range]),.control-popover select{color:var(--text);background:var(--canvas-bg);border:1px solid var(--stroke);font-size:11px}.search-popover .search-results{position:static;box-shadow:none;margin-top:9px;max-height:250px;width:100%;background:var(--glass);border-color:var(--stroke)}.search-hit{color:var(--text);border-color:var(--stroke)}.search-hit:hover{background:var(--control-hover)}.search-hit small{color:var(--quiet)}.suggestions-label{font-size:7px;letter-spacing:1px;color:var(--quiet);margin:21px 0 4px}.seed-chips button{color:var(--quiet);border-color:var(--stroke)}.seed-chips button:hover{color:#818cf8;background:var(--control-hover)}.search-popover .shuffle{margin-top:18px;background:var(--glass);border-color:var(--stroke);color:var(--quiet);font-size:9px}.settings-popover{width:480px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.side-title,.range-label,.setting-label{color:var(--quiet)}.setting-label{display:block;font-size:9px;margin:13px 0 7px}.setting-label>span{font-size:7px;display:block;margin-top:4px;opacity:.7}.settings-grid .outline-button{margin-top:9px;width:100%;text-align:left;font-size:9px;padding:9px 10px}.outline-button{border-color:var(--stroke);background:var(--glass);color:#818cf8}.outline-button:hover{background:var(--control-hover)}#subspace-note,#basis-diagnostics{font-size:9px;line-height:1.8;color:var(--quiet);margin-top:18px}#basis-diagnostics p{margin:0;padding-top:10px;border-top:1px solid var(--stroke)}.canvas-page .alert{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:90;max-width:min(600px,90vw);background:var(--solid);border-color:#f59e0b60;color:#d97706}.canvas-page .busy{top:86px;background:var(--solid);border-color:var(--stroke);max-width:85vw;color:var(--quiet);font-size:10px;border-radius:30px;padding:10px 16px}
.density-layer{opacity:0;transition:opacity 1.15s ease;pointer-events:none}.density-layer.density-in{opacity:1}.density-layer.density-out{opacity:0}.density-layer image{image-rendering:auto}.cluster-name text{fill:var(--cluster);stroke:var(--canvas-bg);stroke-width:5px;font-size:12px;font-weight:500;opacity:.86;letter-spacing:.05px}.map-point circle{opacity:.7}.map-point.has-tile circle{opacity:calc(.7 * (1 - var(--tile-reveal,0)))}.map-card.has-tile .marker-dot{opacity:calc(1 - var(--tile-reveal,0))}.zoom-tiles{position:absolute;inset:0;pointer-events:none;z-index:5}.zoom-tile{position:absolute;left:0;top:0;width:0;height:0;transition:opacity .3s ease;z-index:5}.zoom-tile-surface{width:156px;min-height:46px;display:flex;align-items:center;gap:10px;padding:9px 10px 9px 12px;background:var(--card-glass);border:1px solid var(--card-stroke);border-radius:6px;backdrop-filter:blur(18px);box-shadow:0 2px 8px #0f172a05,inset 0 1px 0 #ffffff18;transform-origin:0 0;transform:scale(var(--inverse-zoom,1)) translate(-50%,-50%);transition:border-color .2s,background .2s,box-shadow .2s}.zoom-tile-surface::before{content:'';position:absolute;left:0;top:15px;width:1px;height:15px;background:var(--cluster);opacity:.65}.zoom-tile-text{display:block;text-align:left;padding:0;flex:1;min-width:0;color:var(--text)}.zoom-tile-text strong{display:block;font-size:10px;line-height:1.4;font-weight:500;letter-spacing:-.1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.zoom-tile-text span{display:block;font-size:8px;line-height:1.5;color:var(--card-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.zoom-tile-surface:hover{border-color:color-mix(in srgb,var(--cluster) 25%,var(--card-stroke));background:var(--solid);box-shadow:0 4px 16px #0f172a09}
.map-card .spatial-content{background:var(--card-glass);color:var(--text);border:1px solid var(--card-stroke);padding:14px;border-radius:8px;box-shadow:0 6px 24px #0f172a0b,inset 0 1px 0 #ffffff20;backdrop-filter:blur(24px)}.map-card .spatial-top{margin-bottom:12px}.map-card .spatial-title{font-size:12px;font-weight:500;line-height:1.45;letter-spacing:-.15px;color:var(--text);max-height:36px}.map-card .spatial-artist{font-size:10px;color:var(--card-muted);margin-top:3px}.map-card .spatial-kind{font-size:8px;letter-spacing:.02em;text-transform:none;color:var(--card-muted)}.map-card .cluster-dot{width:4px;height:4px;opacity:.75}.map-card .spatial-tags{gap:0;margin-top:13px}.map-card .spatial-attribute{display:inline;font-size:9px;line-height:1.6;color:var(--card-muted);background:none;border-radius:0;padding:0;overflow:visible}.map-card .spatial-attribute+.spatial-attribute::before{content:'·';padding:0 6px;opacity:.5}.map-card .spatial-details,.map-card:hover .spatial-details{padding-top:9px}.map-card .spatial-details .card-caption{font-size:9px;line-height:1.7;-webkit-line-clamp:2;color:var(--card-muted);margin:0}.map-card .card-caption mark{background:transparent;color:var(--text);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--cluster) 35%,transparent);text-underline-offset:2px}.map-card .spatial-next{font-size:9px;line-height:1.5;color:var(--card-muted);padding-top:12px}.map-card .spatial-next:hover{color:var(--text)}.map-card .spatial-next::after{content:'↗';margin-left:8px;font-size:11px;color:var(--cluster);opacity:.7}.spatial-marker:focus-visible{outline-offset:1px}.marker-dot{box-shadow:0 0 0 2.5px var(--canvas-bg),0 0 0 3.5px color-mix(in srgb,var(--cluster) 45%,transparent)}.context .marker-dot{box-shadow:0 0 0 2px var(--canvas-bg),0 0 0 2.7px color-mix(in srgb,var(--cluster) 30%,transparent)}.seed-star path{stroke:var(--canvas-bg)}.map-tooltip{background:var(--solid);border-color:var(--stroke);color:var(--text);font-size:9px;box-shadow:var(--glass-shadow)}.map-tooltip small{color:var(--quiet)}.map-card.pinned .spatial-content{box-shadow:0 8px 28px #0f172a10}
.canvas-page .player{bottom:113px;background:var(--glass);border-color:var(--stroke);box-shadow:var(--glass-shadow);max-width:570px;padding:10px 14px;border-radius:30px;backdrop-filter:blur(28px)}.player-track strong{color:var(--text);font-size:10px}.player-track span,.player>span{color:var(--quiet)}.player .player-caption{display:none}.player-track{width:150px}.player .play-button{width:29px;height:29px;font-size:8px}.player .icon-button{font-size:18px}.study-dialog{max-width:1120px;width:calc(100vw - 60px);max-height:calc(100dvh - 70px);background:var(--solid);color:var(--text);border-color:var(--stroke);padding:28px}.study-dialog .results-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.study-toolbar,.study-summary{background:transparent;border-color:var(--stroke)}.track-card{background:var(--glass);border-color:var(--stroke)}.card-body h3{color:var(--text)}.card-artist,.card-caption{color:var(--quiet)}.card-footer,.vote-controls{border-color:var(--stroke)}.vote-controls{background:var(--glass)}.vote-controls button{color:var(--quiet);border-color:var(--stroke)}dialog{background:var(--solid);color:var(--text);border-color:var(--stroke)}dialog input:not([type=range]),dialog textarea{background:var(--canvas-bg);border-color:var(--stroke);color:var(--text)}dialog label,dialog p{color:var(--quiet)}.prompt-row{border-color:var(--stroke)}.card-caption mark{background:#818cf820;color:#818cf8}
html.reading-page{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}body.explanation-page{height:auto;overflow:visible}.explanation-page{background:var(--canvas-bg);color:var(--text);min-height:100vh}.explanation-page header{max-width:860px;margin:0 auto;padding:30px 24px;display:flex;align-items:center;justify-content:space-between}.explanation-page article{max-width:760px;margin:55px auto 90px;padding:0 24px}.explanation-page h1{font:56px/1.1 'Lenses Serif',Georgia,serif;letter-spacing:-1.5px;font-weight:400;margin:18px 0 25px}.explanation-page .lead{font:23px/1.7 'Lenses Serif',Georgia,serif;color:var(--quiet);margin-bottom:35px}.explanation-page p{font-size:13px;line-height:1.95;color:var(--quiet)}.explanation-page h2{font:28px 'Lenses Serif',Georgia,serif;font-weight:400;letter-spacing:-.3px;margin:42px 0 15px}.explanation-page h3{font-size:12px;font-weight:500;margin:0 0 12px}.explanation-page a:not(.canvas-wordmark){color:#818cf8;text-decoration:none}.explanation-page a:hover{text-decoration:underline;text-underline-offset:4px}.formula{font:10px/1.8 monospace;color:var(--quiet);padding:22px 18px;margin:25px 0;border:1px solid var(--stroke);border-radius:12px;background:var(--glass)}.explanation-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px}.explanation-comparison section{padding:20px;border:1px solid var(--stroke);border-radius:14px;background:var(--glass)}.explanation-comparison p{font-size:12px;margin:0}.back-to-map{display:inline-block;margin-top:30px;font-size:13px}
@media(max-width:1100px){.canvas-key{display:none}.floating-controls{max-width:calc(100vw - 40px)}.floating-controls .seed-panel{width:155px}.lens-control{width:120px}.basis-control{width:115px}.top-right-tools .connection{display:none}.canvas-context{top:30px}.canvas-context p{max-width:280px;font-size:7px}}
@media(max-width:700px){.top-left-tools,.top-right-tools{top:15px}.top-left-tools{left:14px;gap:12px}.top-right-tools{right:17px}.canvas-wordmark{font-size:19px}.corner-pill{padding:3px}.icon-control{width:31px;height:31px;padding:8px}.explanation-link{font-size:8px}.explanation-link>span{padding-left:3px}.canvas-context{top:75px;max-width:70vw}.canvas-context h1{font-size:10px}.canvas-context p{display:none}.zoom-pill{right:15px;top:67px;bottom:auto}.zoom-pill button{min-width:27px;height:27px;font-size:12px;padding:5px 7px}.zoom-pill button:last-child{font-size:8px;padding:5px 9px}.floating-controls{bottom:14px;padding:12px;gap:9px 10px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px 30px;width:calc(100vw - 28px);max-width:430px}.floating-controls .seed-panel{width:auto;grid-column:1/3;grid-row:1;grid-template-columns:29px minmax(0,1fr);grid-template-rows:13px 12px;gap:3px 8px;padding:0}.floating-controls .seed-panel h3{font-size:9px}.floating-controls .seed-panel .artist{font-size:7px}.floating-controls .seed-actions .play-button{width:28px;height:28px;font-size:8px}.control-divider{display:none}#search-toggle{grid-column:3;grid-row:1}#settings-toggle{grid-column:4;grid-row:1}.lens-control{grid-column:1;grid-row:2;width:auto}.basis-control{grid-column:2;grid-row:2;width:auto}.control-field label{font-size:6px;letter-spacing:.6px;padding-left:0}.floating-controls .control-field select{font-size:9px;padding-left:0;padding-right:11px;max-width:100%;min-height:18px}#inspect-prompts{grid-column:3/5;grid-row:2;font-size:8px;text-align:center;padding:10px 4px}.canvas-status{bottom:132px;max-width:90vw}.canvas-status p{font-size:6px}.control-popover{bottom:143px;max-height:calc(100dvh - 210px);padding:18px}.settings-grid{gap:18px}.canvas-page .player{bottom:147px;max-width:calc(100vw - 32px);border-radius:14px;padding:10px;gap:8px}.player-track{width:100px}.player-track strong{font-size:9px}.player-track span{font-size:7px}.player>span{font-size:7px}.canvas-page .busy{top:111px;font-size:9px}.canvas-page .alert{top:115px;max-width:90vw;font-size:10px}.study-dialog{padding:18px;width:calc(100vw - 22px);max-height:calc(100dvh - 35px);border-radius:16px}.study-dialog .results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explanation-page article{margin-top:30px}.explanation-page h1{font-size:44px}.explanation-page .lead{font-size:21px}.explanation-comparison{grid-template-columns:1fr}.explanation-page p{font-size:12px}.cluster-name text{font-size:10px}}
/* Keep interactive previews small and legible at every map zoom level. */
.map-card{pointer-events:none}.spatial-marker{transform:scale(var(--inverse-zoom,1));transform-origin:center}.map-card .spatial-content{transform-origin:0 0;transform:scale(calc(var(--inverse-zoom,1)*.98)) translateY(5px)}.map-card.expanded .spatial-content{transform:scale(var(--inverse-zoom,1))}
/* Semantic labels and residual dots stay discreet as the camera zooms. */
.cluster-name text{transform:scale(var(--inverse-zoom,1));transform-origin:0 0}.map-point circle{r:calc(2.2px * var(--inverse-zoom,1))}.map-point.focus circle{r:calc(4px * var(--inverse-zoom,1))}

/* Small, neutral playback controls keep colour in the music map. */
:root{--card-glass:rgba(255,255,255,.78);--card-stroke:rgba(148,163,184,.22);--card-muted:#7b8799}
:root[data-theme=dark]{--card-glass:rgba(24,29,39,.8);--card-stroke:rgba(148,163,184,.17);--card-muted:#929bae}
.map-card .play-button,.zoom-tile .play-button{width:25px;height:25px;padding:0;border-radius:5px;border:1px solid var(--card-stroke);background:transparent;color:var(--card-muted);box-shadow:none;font-size:0;transform:none;transition:color .2s,border-color .2s,background .2s}
.map-card .play-button::before,.zoom-tile .play-button::before{content:'';display:block;width:11px;height:11px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3.5v9l7-4.5z' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.map-card .play-button[aria-label^='Pause']::before,.zoom-tile .play-button[aria-label^='Pause']::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 4v8m6-8v8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.map-card .play-button:hover,.zoom-tile .play-button:hover{background:color-mix(in srgb,var(--cluster) 6%,transparent);border-color:color-mix(in srgb,var(--cluster) 35%,var(--card-stroke));color:var(--cluster);transform:none;box-shadow:none}

.prompt-row{display:flex;align-items:flex-start;gap:12px}.prompt-row>span{flex:none;width:18px;font-variant-numeric:tabular-nums;color:var(--quiet)}.prompt-description{flex:1;min-width:0;line-height:1.7}.control-member{font-size:8px;letter-spacing:.02em;color:var(--quiet);border:1px solid var(--stroke);border-radius:4px;padding:2px 5px;align-self:center;white-space:nowrap}.map-card .spatial-tags:empty{display:none}

/* Screen-space previews: no inherited zoom variables or scaled blur surfaces. */
#space-world{transition:none}#map-cards{z-index:8}.zoom-tiles{z-index:7}
.map-point circle{r:.001px;stroke:var(--cluster)!important;stroke-width:4.4px;stroke-dasharray:none;opacity:.26;transition:opacity .25s,stroke 1.15s;paint-order:stroke}
.map-point.result circle{opacity:1;stroke-width:4.4px}.map-point.base circle{opacity:.6;stroke-width:4.4px;stroke-dasharray:none}.map-point.focus circle{r:.001px;stroke-width:5.5px;opacity:1}.map-point.has-marker circle{opacity:0}
.map-point.has-tile circle{opacity:0}
.spatial-marker{transform:none}.marker-dot,.context .marker-dot,.base .marker-dot{width:4.4px;height:4.4px;background:var(--cluster);box-shadow:none;outline:none;transition:opacity .25s;transform:none}.context .marker-dot{opacity:.42}.base .marker-dot{opacity:.6}.spatial-marker:hover .marker-dot,.map-card.playing .marker-dot{transform:none}
.map-card.has-tile .marker-dot{opacity:inherit}
.map-card .spatial-content{transform:translateY(4px);backdrop-filter:blur(12px)}.map-card.expanded .spatial-content{transform:translateY(0)}
.zoom-tile-surface{transform:translate(-50%,-50%);backdrop-filter:none;background:color-mix(in srgb,var(--canvas-bg) 91%,transparent);box-shadow:0 1px 5px #0f172a04;contain:layout style}.zoom-tile-surface:hover{box-shadow:0 2px 9px #0f172a07}
/* One fine playback strip; the scrubber, not a coloured pill, carries progress. */
.canvas-page .player{max-width:520px;bottom:108px;display:grid;grid-template-columns:26px minmax(90px,1fr) 28px minmax(70px,150px) 28px 22px;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;border:1px solid var(--card-stroke);background:var(--card-glass);backdrop-filter:blur(16px);box-shadow:0 3px 18px #0f172a09}
.canvas-page .player-track{width:auto;min-width:0}.player-track strong{font-size:10px;line-height:1.4;font-weight:500}.player-track span{font-size:8px;margin-top:3px;color:var(--card-muted)}.canvas-page .player>span{font:8px/1.2 ui-monospace,monospace;color:var(--card-muted);text-align:center}
.canvas-page .player .play-button{width:26px;height:26px;border-radius:5px;background:transparent;border:0;box-shadow:none;color:var(--text);font-size:0;padding:0;transform:none}
.player .play-button::before{content:'';width:12px;height:12px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3.5v9l7-4.5z' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.player .play-button[aria-label^='Pause']::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 4v8m6-8v8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}
#player-seek{appearance:none;-webkit-appearance:none;width:100%;min-width:0;margin:0;padding:10px 0;height:22px;background:transparent;--seek-progress:0%}
#player-seek::-webkit-slider-runnable-track{height:2px;border-radius:1px;background:linear-gradient(to right,var(--text) var(--seek-progress),var(--stroke) var(--seek-progress))}
#player-seek::-moz-range-track{height:2px;background:var(--stroke)}#player-seek::-moz-range-progress{height:2px;background:var(--text)}
#player-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:6px;height:6px;margin-top:-2px;border:0;border-radius:50%;background:var(--text);opacity:0;transition:opacity .15s}#player-seek::-moz-range-thumb{width:6px;height:6px;border:0;background:var(--text);opacity:0}
#player-seek:hover::-webkit-slider-thumb,#player-seek:focus-visible::-webkit-slider-thumb,#player-seek:hover::-moz-range-thumb,#player-seek:focus-visible::-moz-range-thumb{opacity:1}
#player-close{width:22px;height:26px;padding:0;color:var(--card-muted);font-size:15px}
@media(max-width:700px){.canvas-page .player{bottom:145px;max-width:calc(100vw - 28px);grid-template-columns:24px minmax(75px,1fr) 26px minmax(40px,1fr) 22px;gap:8px;padding:10px 12px}.canvas-page #player-duration{display:none}}

/* A round-capped path remains visible with a non-scaling stroke at any zoom. */
#points .point-glyph{stroke:var(--cluster);stroke-width:4.4px;stroke-linecap:round;opacity:var(--background-dot-opacity,.18);transition:opacity .25s,stroke 1.15s}
#points .result .point-glyph{opacity:1}#points .base .point-glyph{opacity:.6}#points .focus .point-glyph{opacity:1}#points .has-marker .point-glyph,#points .has-tile .point-glyph{opacity:0}

.map-card .spatial-body .play-button{font-size:0}
.floating-controls .seed-actions .play-button{background:transparent;border:1px solid var(--card-stroke);border-radius:6px;color:var(--text);box-shadow:none;font-size:0;transform:none}
.floating-controls .seed-actions .play-button::before{content:'';display:block;width:12px;height:12px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3.5v9l7-4.5z' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.floating-controls .seed-actions .play-button[aria-label^='Pause']::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 4v8m6-8v8' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}

/* Neighbour hit areas stay discreet; visible dots all live in the SVG map. */
.spatial-marker:hover{background:transparent}

/* Draw the map directly at native device resolution, including while at rest. */
#space-world{transform:none!important;will-change:auto!important;transition:none!important;contain:layout style}
#map-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
#map-cards .map-card:not(.expanded) .spatial-content{visibility:hidden;pointer-events:none}
#map-cards .map-card.expanded .spatial-content{visibility:visible;pointer-events:auto}
.map-card .spatial-content{padding:12px;border-radius:6px;box-shadow:0 3px 18px #0f172a08}
.map-card .spatial-top{margin-bottom:9px}.map-card .spatial-title{font-size:11px}.map-card .spatial-artist{font-size:9px}

.blind #map-cards{visibility:hidden}

/* Glass comboboxes and their floating listboxes share the control dock's surface. */
.control-field .native-select{display:none!important}.control-field label{text-transform:uppercase;font-size:6px;letter-spacing:1px;padding-left:9px}
.floating-controls .lens-control{width:154px}.floating-controls .basis-control{width:144px}
.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px;width:100%;padding:6px 9px;border:1px solid var(--stroke);border-radius:8px;background:color-mix(in srgb,var(--glass) 60%,transparent);font-size:10px;color:var(--text);text-align:left;transition:background .18s,border-color .18s,box-shadow .18s}
.select-value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.select-trigger>svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--quiet);stroke-width:1.4;transition:transform .2s}
.select-trigger:hover,.select-trigger[aria-expanded=true]{background:var(--control-hover);border-color:color-mix(in srgb,#818cf8 40%,var(--stroke));box-shadow:inset 0 1px 0 #ffffff12}.select-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.select-trigger:disabled{opacity:.4;cursor:default}
.select-menu{position:fixed;inset:auto;margin:0;padding:6px;border:1px solid var(--card-stroke);border-radius:14px;background:var(--card-glass);color:var(--text);box-shadow:0 14px 48px #0f172a16,inset 0 1px 0 #ffffff18;backdrop-filter:blur(28px) saturate(160%);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.select-menu:popover-open{animation:select-reveal .18s cubic-bezier(.2,.8,.2,1)}.select-menu::backdrop{background:transparent}
.select-option{display:flex;align-items:center;gap:11px;padding:11px 10px;border-radius:9px;cursor:pointer;transition:background .12s,color .12s;user-select:none}
.select-option.is-active{background:var(--control-hover)}.select-option[aria-selected=true]{color:#818cf8}.select-option-icon{width:29px;height:29px;flex:none;display:grid;place-items:center;border:1px solid var(--stroke);border-radius:8px;color:var(--quiet);background:color-mix(in srgb,var(--canvas-bg) 40%,transparent)}
.select-option-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.select-option[aria-selected=true] .select-option-icon{color:#818cf8;border-color:#818cf840;background:#818cf80b}
.select-option-text{flex:1;min-width:0}.select-option-text strong{font-size:11px;font-weight:500;display:block;line-height:1.5}.select-option-text small{display:block;font-size:9px;color:var(--quiet);margin-top:2px;line-height:1.5}
.select-check{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;opacity:0;flex:none}.select-option[aria-selected=true] .select-check{opacity:1}
@keyframes select-reveal{from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.floating-controls .lens-control,.floating-controls .basis-control{width:auto}.select-trigger{font-size:9px;min-height:31px;padding:6px 8px;gap:5px}.control-field label{padding-left:2px}.select-menu{border-radius:12px}.select-option{padding:10px 8px}}
@media(prefers-reduced-motion:reduce){.select-menu:popover-open{animation:none}.select-trigger>svg{transition:none}}

.motion-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;padding:12px 0;margin:4px 0 12px;border-bottom:1px solid var(--stroke);font-size:10px;color:var(--text);text-align:left}.motion-state{font-size:9px;color:var(--quiet);display:flex;align-items:center;gap:8px}.motion-state::after{content:'';width:23px;height:13px;border-radius:8px;background:var(--stroke);box-shadow:inset 0 0 0 1px var(--stroke);background-image:radial-gradient(circle at 6.5px 6.5px,var(--quiet) 3.5px,transparent 4px)}.motion-toggle[aria-checked=true] .motion-state{color:#818cf8}.motion-toggle[aria-checked=true] .motion-state::after{background-color:#818cf820;background-image:radial-gradient(circle at 16.5px 6.5px,#818cf8 3.5px,transparent 4px)}

/* A single, quiet pill: segmented basis, editorial lens name, utility icons. */
.floating-controls{gap:6px;padding:6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--stroke) 70%,transparent);background:var(--glass);backdrop-filter:blur(18px) saturate(130%);box-shadow:0 6px 24px #0f172a0c;max-width:calc(100vw - 32px)}
.floating-controls .control-field{flex-direction:row;align-items:center;gap:4px}.floating-controls .control-field label{padding:0 0 0 9px;font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}
.floating-controls .lens-control{width:auto;max-width:260px}.floating-controls .basis-control{width:auto;flex:none}.control-divider{margin:0 4px;height:22px;flex:none}
.basis-segments{display:flex;align-items:center;gap:2px}.basis-segments button{font-size:11px;line-height:1;padding:11px 15px;border-radius:999px;white-space:nowrap;color:var(--quiet)}.basis-segments button[aria-pressed=true]{background:var(--text);color:var(--canvas-bg)}.basis-segments button:hover:not([aria-pressed=true]){background:var(--control-hover);color:var(--text)}.basis-segments button:disabled{opacity:.4}
.select-trigger{border:0;box-shadow:none;background:transparent;border-radius:999px;min-height:34px;padding:7px 11px 7px 5px;gap:8px}.select-trigger:hover,.select-trigger[aria-expanded=true]{border:0;box-shadow:none;background:var(--control-hover)}.select-trigger .select-value{font:19px/1.2 'Lenses Serif',Georgia,serif;letter-spacing:-.3px}.select-trigger>svg{width:14px;height:14px}
.bar-button{padding:9px 10px;font-size:10px;flex:none}.floating-controls>.icon-control{width:34px;height:34px;flex:none;padding:9px;border-radius:50%}.floating-controls>#groups-toggle{margin-left:4px;position:relative}.floating-controls>#groups-toggle::before{content:'';position:absolute;left:-4px;top:6px;height:22px;width:1px;background:var(--stroke)}
.canvas-context{max-width:min(360px,38vw)}.canvas-context .seed-panel{padding:0;margin:0;display:grid;grid-template-columns:29px minmax(0,1fr);grid-template-rows:17px 13px;gap:1px 9px;text-align:left;border:0;min-width:0}.canvas-context .seed-label,.canvas-context .seed-tags{display:none}.canvas-context .seed-actions{grid-column:1;grid-row:1/3;margin:0;padding:0;display:flex;align-items:center}.canvas-context .seed-actions>span{display:none}.canvas-context .seed-actions .play-button{width:27px;height:27px;border-radius:50%;background:var(--glass);color:var(--text);box-shadow:none;border:1px solid var(--stroke);font-size:9px;pointer-events:auto}.canvas-context .seed-panel h3{grid-column:2;grid-row:1;font:500 12px/17px Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:0;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-context .seed-panel .artist{display:block;grid-column:2;grid-row:2;font-size:9px;line-height:13px;color:var(--quiet);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.canvas-status{display:none}
.track-labels{position:absolute;inset:0;z-index:6;pointer-events:none}.track-label{position:absolute;left:0;top:0;margin:0;padding:0;height:29px;display:flex;flex-direction:column;justify-content:center;gap:2px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;pointer-events:auto;transform-origin:0 0;transition:opacity .15s;text-shadow:1px 0 var(--canvas-bg),-1px 0 var(--canvas-bg),0 1px var(--canvas-bg),0 -1px var(--canvas-bg)}.track-label[data-side=left]{text-align:right}.track-label[data-side=above],.track-label[data-side=below]{text-align:center}.track-label strong{display:block;width:100%;font-size:11px;font-weight:500;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-label>span{display:block;width:100%;font-size:9px;line-height:11px;color:var(--quiet);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-label:hover strong{color:var(--accent)}
@media(max-width:700px){.floating-controls{bottom:12px;left:12px;right:12px;width:auto;max-width:none;transform:none;display:flex;gap:3px;padding:6px;border-radius:999px}.floating-controls .basis-control{order:0;grid-column:auto;grid-row:auto}.basis-segments{gap:1px}.basis-segments button{font-size:10px;padding:11px 8px}.floating-controls .lens-control{order:1;flex:1;min-width:0;max-width:none;grid-column:auto;grid-row:auto}.floating-controls .lens-control label,.control-divider{display:none}.select-trigger{padding:7px 3px;min-width:0;min-height:31px;gap:3px}.select-trigger .select-value{font-size:16px;line-height:1.2}.select-trigger>svg{width:12px;height:12px}.floating-controls #inspect-prompts{order:2;grid-column:auto;grid-row:auto;font-size:9px;padding:9px 5px}.floating-controls #groups-toggle{order:3;margin-left:0}.floating-controls #groups-toggle::before{display:none}.floating-controls #search-toggle{order:4;grid-column:auto;grid-row:auto}.floating-controls #settings-toggle{order:5;grid-column:auto;grid-row:auto}.floating-controls>.icon-control{width:28px;height:31px;padding:7px}.canvas-context{top:76px;left:18px;transform:none;max-width:none;width:calc(100vw - 155px);text-align:left}.canvas-context .seed-panel h3{font-size:11px}.canvas-context .seed-panel .artist{font-size:8px}.control-popover{bottom:76px;max-height:calc(100dvh - 120px)}.canvas-page .player,.canvas-page .spotify-player{bottom:76px}.track-label strong{font-size:10px}.track-label>span{font-size:9px}}

/* Warm paper and ink; saturated music colours remain legible on the canvas. */
:root:not([data-theme=dark]){--canvas-bg:#f5f0e6;--text:#443c32;--quiet:#938574;--stroke:#ddd3c3;--glass:rgba(255,252,245,.82);--solid:#fffcf6f5;--glass-shadow:0 8px 35px #53432d0c;--control-hover:#eee5d7;--dot-grid:#ddd2c0;--ink:#443c32;--muted:#847562;--line:#ddd3c3;--panel:#fffcf6;--paper:#f5f0e6;--card-glass:rgba(255,252,245,.86);--card-stroke:rgba(145,121,87,.22);--card-muted:#8e7e69}
:root[data-theme=dark]{--canvas-bg:#191714;--text:#e4dccf;--quiet:#9d9180;--stroke:#3d362d;--glass:rgba(38,34,28,.84);--solid:#29241eee;--glass-shadow:0 8px 35px #0003;--control-hover:#383027;--dot-grid:#3d362d;--ink:#e4dccf;--muted:#ab9e8b;--line:#3d362d;--panel:#29241e;--paper:#191714;--card-glass:rgba(38,34,28,.86);--card-stroke:rgba(181,158,122,.2);--card-muted:#ab9e8b}

/* Descriptors stay in screen space, next to the actual density peaks. */
.cluster-themes{position:absolute;inset:0;z-index:5;pointer-events:none;transition:opacity .3s}.cluster-theme{position:absolute;left:0;top:0;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;border:0;border-radius:0;white-space:nowrap;background:none;color:color-mix(in srgb,var(--cluster) 62%,var(--text));text-shadow:0 0 4px var(--canvas-bg),0 0 9px var(--canvas-bg),0 1px 2px var(--canvas-bg);font-size:13px;font-weight:600;letter-spacing:-.2px}.cluster-theme:hover{background:none;color:var(--text)}.cluster-theme small{font-size:8px;font-weight:400;letter-spacing:.15px;color:var(--quiet)}
.cluster-evidence{position:fixed;inset:auto;margin:0;padding:18px;border:1px solid var(--stroke);border-radius:14px;background:var(--solid);color:var(--text);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px);font-size:11px;line-height:1.65;max-height:calc(100dvh - 28px);overflow:auto}.cluster-evidence-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}.cluster-evidence-heading button{font-size:18px;width:24px;height:24px;padding:0}.cluster-evidence p{margin:10px 0 0}.cluster-evidence .evidence-muted{font-size:10px;color:var(--quiet)}
.evidence-examples{margin-top:12px;font-size:10px;color:var(--quiet)}.evidence-examples summary{cursor:pointer;color:var(--text)}.evidence-examples blockquote{margin:12px 0 0;padding-left:10px;border-left:1px solid var(--stroke);font-size:10px;line-height:1.7}.evidence-examples mark{background:var(--control-hover);color:var(--text)}

/* Named profiles remain compact; secondary density peaks avoid label collisions. */
.cluster-theme{max-width:190px;white-space:normal;font-size:11px;line-height:1.3;text-align:center}.cluster-theme>span{max-width:174px}.cluster-theme small{font-size:8px;white-space:nowrap}.profile-directory{margin-top:18px;border-top:1px solid var(--stroke);padding-top:13px;font-size:10px;color:var(--quiet)}.profile-directory summary{cursor:pointer;color:var(--text);padding-bottom:8px}.profile-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 0;text-align:left;font-size:10px;color:var(--text)}.profile-row i{width:6px;height:6px;border-radius:50%;background:var(--cluster);flex:none}.profile-row span{flex:1}.profile-row small{font-size:9px;color:var(--quiet)}.profile-row:hover{background:var(--control-hover)}
@media(max-width:700px){.cluster-theme{max-width:154px;font-size:10px}.cluster-theme>span{max-width:140px}}

/* A single quiet transport floats above the music; the dock stays unchanged. */
.canvas-page .canvas-context .seed-panel{display:none}
.canvas-page .music-player{position:fixed;left:50%;top:20px;right:auto;bottom:auto;transform:translateX(-50%);z-index:66;display:flex;align-items:center;gap:16px;width:min(410px,calc(100vw - 32px));max-width:none;padding:12px 19px 12px 12px;border:0;border-radius:18px;background:rgba(255,255,255,.22);box-shadow:0 6px 26px #4b3a2609;backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);color:var(--text)}
.music-player .player-track{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px;overflow:hidden}
.music-player .player-track strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.35;font-weight:500;color:var(--text)}
.music-player .player-track span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px;line-height:1.35;color:var(--card-muted)}
.music-player #player-play{width:36px;height:36px;flex:none;border:1px solid color-mix(in srgb,var(--playing-color) 20%,transparent);border-radius:50%;background:color-mix(in srgb,var(--playing-color) 7%,transparent);color:var(--text);padding:11px;font-size:0;box-shadow:none;transform:none}
.music-player #player-play::before{content:'';display:block;width:12px;height:12px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m5 3 7 5-7 5Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}
.music-player #player-play[aria-pressed=true]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 4v8m6-8v8' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.music-player #player-play:hover{background:color-mix(in srgb,var(--playing-color) 14%,transparent)}
.player-wave{height:32px;width:96px;flex:none;color:var(--playing-color);opacity:.8;transition:color .7s,opacity .3s}
.player-wave svg{display:block;width:100%;height:100%;overflow:visible}
.player-wave line{stroke:currentColor;stroke-width:2.8;stroke-linecap:round;fill:none}
.music-player[data-playing=true] .player-wave{opacity:1}
.music-player[data-loading=true] .player-wave{animation:audio-loading 1.2s ease-in-out infinite alternate}@keyframes audio-loading{to{opacity:.25}}
:root[data-theme=dark] .canvas-page .music-player{background:rgba(255,255,255,.055);border:0;box-shadow:0 8px 30px #0001}
/* One compositor-animated beacon, rather than repainting 5,000 dots for a pulse. */
.playing-beacon{position:absolute;left:0;top:0;z-index:7;pointer-events:none;color:var(--beacon-color)}
.playing-beacon i{position:absolute;left:0;top:0;width:var(--beacon-size);height:var(--beacon-size);border:1px solid currentColor;border-radius:50%;transform:translate(-50%,-50%);animation:playing-dot 1.8s ease-out infinite}
.playing-beacon i+i{animation-delay:-.9s}@keyframes playing-dot{from{transform:translate(-50%,-50%) scale(.7);opacity:.65}to{transform:translate(-50%,-50%) scale(2.1);opacity:0}}
/* Low-opacity glass, a readable title, and one explicit action to move the star. */
#map-cards .map-card .spatial-content{background:rgba(255,255,255,.28);border:1px solid #ffffff85;border-bottom-color:#8e7d5c1c;border-radius:14px;padding:15px;box-shadow:0 7px 30px #4b3a2612,inset 0 1px 0 #ffffff66;backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%)}
:root[data-theme=dark] #map-cards .map-card .spatial-content{background:rgba(255,255,255,.06);border-color:#ffffff24;box-shadow:0 8px 30px #0002,inset 0 1px 0 #ffffff0e}
.map-card .spatial-title{margin:0;max-height:none;font-size:12px;line-height:1.5;font-weight:500;cursor:default;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.map-card .spatial-artist{margin-top:3px;font-size:10px}.map-card .spatial-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.preview-close{display:grid;place-items:center;width:26px;height:26px;margin:-6px -6px -6px 0;padding:0;font-size:17px;color:var(--card-muted);border-radius:50%;background:transparent}.preview-close:hover{background:#ffffff25;color:var(--text)}
.map-card .spatial-next{display:flex;align-items:center;gap:8px;width:100%;padding:12px 0 0;margin-top:10px;border-top:1px solid color-mix(in srgb,var(--text) 12%,transparent);font-size:10px;color:var(--text);text-align:left}
.map-card .spatial-next::after{display:none}.spatial-next svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3;flex:none}.spatial-next:hover svg{fill:#ffb000;stroke:#ffb000}.map-card .spatial-body .play-button{border-radius:50%;background:#ffffff20;border:1px solid color-mix(in srgb,var(--cluster) 20%,transparent);width:34px;height:34px}
@media(min-width:1001px){.canvas-page .music-player{width:500px;gap:20px;padding:16px 22px 16px 16px;border-radius:20px}.music-player #player-play{width:44px;height:44px;padding:14px}.music-player #player-play::before{width:14px;height:14px}.player-wave{width:124px;height:42px}.music-player .player-track{gap:5px}.music-player .player-track strong{font-size:14px}.music-player .player-track span{font-size:12px}}
@media(max-width:1000px){.canvas-page .music-player{top:76px}}
@media(max-width:700px){.canvas-page .music-player{top:74px;width:min(350px,calc(100vw - 32px));padding:10px 15px 10px 10px;gap:12px;border-radius:16px}.player-wave{width:82px}.player-wave line{stroke-width:3}.music-player .player-track strong{font-size:11px}.music-player .player-track span{font-size:9px}.map-card .spatial-next{min-height:44px}.preview-close{width:32px;height:32px}.map-card .spatial-body .play-button{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.playing-beacon i,.music-player[data-loading=true] .player-wave{animation:none}.playing-beacon i{opacity:.55}.playing-beacon i+i{display:none}}
@media(max-width:700px){.canvas-page .zoom-pill{top:143px;bottom:auto;right:16px}}
/* Native top-layer previews sample the whole canvas for their glass backdrop. */
.map-card .spatial-content[popover]{position:fixed;inset:auto;margin:0;color:var(--text)}
.map-card .spatial-content::backdrop{background:transparent;pointer-events:none}
/* Audio thumbnails resolve out of the dots; only the sounding track has a live SVG. */
.music-waveforms{position:absolute;inset:0;z-index:9;pointer-events:none}.music-wave{position:absolute;left:0;top:0;height:0;pointer-events:auto;color:var(--wave-color);z-index:1}.music-wave:hover,.music-wave:focus-within,.music-wave.is-selected,.music-wave.is-playing{z-index:4}
.wave-play{display:grid;place-items:center;position:absolute;left:0;top:0;width:100%;height:38px;transform:translate(-50%,-50%);border:0;border-radius:9px;padding:0;background:transparent;color:inherit;cursor:pointer;touch-action:none}.wave-play:hover{background:color-mix(in srgb,var(--wave-color) 5%,transparent)}.wave-play:focus-visible{outline:1px solid var(--wave-color);outline-offset:4px}
.wave-live{display:block;width:100%;height:var(--wave-height,28px);overflow:visible;opacity:0;transform:scale(var(--wave-morph,1));pointer-events:none}.wave-live line{stroke:currentColor;stroke-width:2.6;stroke-linecap:round;fill:none}.music-wave[data-live=true] .wave-live{opacity:1}
.wave-seed{display:none;position:absolute;left:-14px;top:9px;width:15px;height:15px;color:#f59e0b}.is-seed .wave-seed{display:block}.wave-seed svg{width:100%;height:100%;fill:currentColor;stroke:var(--canvas-bg);stroke-width:1;stroke-linejoin:round}
.wave-label{position:absolute;left:0;top:22px;width:140px;transform:translateX(-50%);text-align:center;pointer-events:none;opacity:var(--wave-label-opacity,0);text-shadow:0 0 5px var(--canvas-bg),0 0 10px var(--canvas-bg)}.wave-label strong,.wave-label>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wave-label strong{font-size:10px;line-height:14px;font-weight:500;color:var(--text)}.wave-label>span{font-size:9px;line-height:13px;color:var(--quiet)}
.wave-actions{position:absolute;left:0;top:var(--wave-actions-top,-54px);transform:translateX(-50%) translateY(4px);display:flex;gap:1px;padding:3px;border-radius:999px;background:rgba(255,255,255,.32);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);box-shadow:0 3px 18px #4b3a2608;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,transform .15s,visibility .15s}.music-wave:hover .wave-actions,.music-wave:focus-within .wave-actions,.music-wave.is-selected .wave-actions,.music-wave.is-playing .wave-actions{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.wave-action{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:50%;padding:7px;background:transparent;color:var(--text);cursor:pointer}.wave-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.wave-action:hover{background:#ffffff40;color:var(--wave-color)}.wave-action:focus-visible{outline:1px solid var(--wave-color)}.wave-action:disabled{color:#f59e0b;opacity:1;cursor:default}.wave-action:disabled svg{fill:currentColor;stroke:currentColor}.wave-info svg path{stroke-width:1.8}
.map-card.wave-visible .spatial-marker{opacity:0;pointer-events:none}.blind .music-waveforms{visibility:hidden}:root[data-theme=dark] .wave-actions{background:rgba(255,255,255,.07)}:root[data-theme=dark] .wave-action:hover{background:#ffffff12}
@media(max-width:700px){.wave-label{width:116px}.wave-label strong{font-size:10px}.wave-play{height:44px}.wave-actions{top:var(--wave-actions-top,-65px);padding:3px}.wave-action{width:44px;height:44px;padding:13px}.music-wave:hover:not(.is-selected):not(.is-playing):not(:focus-within) .wave-actions{opacity:0;visibility:hidden;pointer-events:none}}

.music-wave.is-seed .wave-seed{display:none}

.music-wave .wave-actions{width:max-content}.music-wave .wave-action{flex:none}

/* The explanation is a reading page; its figure stays inside the text column. */
.explanation-page article{max-width:750px;margin:35px auto 80px;padding:0 25px}.explanation-page header{max-width:800px}.explanation-page h1{font-size:46px;letter-spacing:-.8px;line-height:1.15;margin:16px 0 28px}.explanation-page h2{font-size:29px;margin:38px 0 16px}.explanation-page p{font-size:15px;line-height:1.85;color:var(--text);opacity:.9;margin:18px 0}.explanation-page .lead{font:17px/1.85 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);margin-bottom:24px}.explanation-page a:not(.canvas-wordmark){color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--stroke)}.explanation-page .inline-math{font:italic 20px 'Lenses Serif',Georgia,serif}.explanation-page .implementation-notes{border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);padding:17px 0;margin:30px 0;color:var(--quiet);font-size:12px}.implementation-notes summary{cursor:pointer}.explanation-page .implementation-notes p{font-size:12px;line-height:1.85;color:var(--quiet)}.explanation-page .closing-reference{font-size:13px;color:var(--quiet)}.explanation-page #projection-figure{width:100%;max-width:100%;margin:30px 0}.explanation-page #projection-figure figcaption{font-size:11px;line-height:1.75;opacity:.8}.explanation-page .back-to-map{margin-top:10px}@media(max-width:700px){.explanation-page article{padding:0 22px;margin-top:24px}.explanation-page h1{font-size:36px}.explanation-page p{font-size:14px;line-height:1.85}.explanation-page .lead{font-size:15px}.explanation-page h2{font-size:27px}}
