:root{--bg:#050810;--card-bg:#12141e;--border:#ffffff14;--text:#e0e4ea;--muted:#828894;--radius:6px;--radius-sm:4px;--radius-pill:3px;--radius-btn:8px;--z-poster:1;--z-ambient:2;--z-meta:3;--z-badge:4;--z-lb-close:5;--z-header:50;--z-lb:200}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}header{position:sticky;z-index:var(--z-header);display:flex;border-bottom:1px solid var(--border);background:#050810eb;align-items: center;gap:12px;padding:8px 16px;font-family:monospace;font-size:12px;top:0}header .label{color:var(--muted)}header select{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:#ffffff0d;padding:4px 8px}header #search{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;outline:none;background:#ffffff0d;width:280px;max-width:38vw;padding:4px 10px}header #search::placeholder{color:#ffffff47}header #search:focus{border-color:#ffffff38}header .status-healthy{color:#6df062}header .status-partial{color:#f0c050}header .status-failed{color:#f06060}header #artists-toggle{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;cursor:pointer;white-space:nowrap;background:#ffffff0d;padding:4px 12px}header #artists-toggle:hover{background:#ffffff1f}header .spacer{flex:1}header .info{color:var(--muted)}#artist-rail{position:fixed;z-index:var(--z-lb);border-left:1px solid var(--border);display:flex;box-sizing:border-box;backdrop-filter:blur(6px);background:#080b14f5;flex-direction:column;width:300px;padding:14px;transition:transform .22s;top:0;bottom:0;right:0;transform:translate(100%)}#artist-rail.open{transform:translate(0)}#artist-rail-filter{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;outline:none;box-sizing:border-box;background:#ffffff0d;width:100%;margin-bottom:10px;padding:6px 10px}#artist-rail-filter::placeholder{color:#ffffff47}#artist-rail-list{overflow-y:auto;flex:1;min-height:0}.rail-row{display:flex;cursor:pointer;text-align:left;color:var(--muted);font:inherit;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:3px 4px;line-height:1.35}.rail-row:hover{color:var(--text)}.rail-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.rail-count{opacity:.5;flex:none;font:10px ui-monospace,Menlo,monospace}#artist-banner{display:none;position:sticky;z-index:calc(var(--z-header) - 1);border-bottom:1px solid var(--border);background:#050810f0;padding:14px 16px;top:41px}#artist-banner.show{display:block}#artist-banner .ab-head{display:flex;align-items:baseline;gap:12px}#artist-banner .ab-name{color:var(--text);font-size:19px;font-weight:600}#artist-banner .ab-dates{color:var(--muted);font:11px ui-monospace,Menlo,monospace}#artist-banner .ab-src{color:var(--muted);text-decoration:none;margin-left:auto;font:11px ui-monospace,Menlo,monospace}#artist-banner .ab-src:hover{color:var(--text)}#artist-banner .ab-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font:11px monospace}#artist-banner .ab-close:hover{color:var(--text)}#artist-banner .ab-bio{color:#ffffffb8;overflow-y:auto;white-space:pre-line;max-width:900px;max-height:11em;margin-top:8px;font-size:13px;line-height:1.5}#artist-banner .ab-related{margin-top:8px;font-size:12px}#artist-banner .ab-related a{color:var(--muted);text-decoration:none;margin-right:14px}#artist-banner .ab-related a:hover{color:var(--text);text-decoration:underline}#grid{position:relative;padding:0}#grid-spacer{pointer-events:none;width:1px}.card{position:absolute;background:var(--card-bg);border-radius:var(--radius);overflow:hidden;cursor:pointer;transform-origin:top left;content-visibility:auto;contain-intrinsic-size:300px 220px;top:0;left:0}.card .media{position:absolute;height:var(--media-height,100%);overflow:hidden;background:var(--card-bg);top:0;left:0;right:0}.card .layer{position:absolute;object-fit:cover;width:100%;height:100%;transition:opacity .35s;inset:0}.card .layer.poster{z-index:var(--z-poster);opacity:0;background-color:var(--bg);transition:opacity 50ms}.card .layer.poster.loaded{opacity:1}.card .layer.ambient-video{z-index:var(--z-ambient);opacity:0;background:var(--bg);transition:opacity 50ms}.card .layer.ambient-video.live{opacity:1}.card .layer.ambient-preview{z-index:var(--z-ambient);opacity:0;background:var(--bg);transition:opacity 50ms}.card .layer.ambient-preview.live{opacity:1}.meta{position:absolute;top:var(--media-height,0);background:var(--card-bg);pointer-events:none;z-index:var(--z-meta);box-sizing:border-box;padding:8px 10px;left:0;right:0}.meta-title{color:var(--text);white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--title-lines,3);-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:16px}.meta-sub{color:var(--muted);white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--sub-lines,1);-webkit-box-orient:vertical;margin-top:2px;font-size:11px;line-height:14px}.meta-sub:empty{display:none}.badge{position:absolute;z-index:var(--z-badge);color:#fff9;border-radius:var(--radius-pill);pointer-events:none;background:#00000080;padding:2px 6px;font:10px monospace;top:6px;left:6px}.badge:empty{display:none}#lb{display:none;position:fixed;z-index:var(--z-lb);overflow:hidden;background:#000000d1;justify-content:center;align-items: center;inset:0}#lb.open{display:flex}#lb-stage{position:relative;display:flex;justify-content:center;align-items: center;max-width:100vw;max-height:100vh}#lb video{display:block;object-fit:contain;border-radius:var(--radius);pointer-events:auto;background:#000;max-width:min(70vw,1200px);max-height:86vh;box-shadow:0 8px 40px #0009}#lb .side{position:fixed;display:flex;pointer-events:none;box-sizing:border-box;flex-direction:column;width:min(38vw,560px);padding:32px;top:0;bottom:0;left:0}#lb .side>*{pointer-events:auto}#lb .lb-title{font-size:16px;font-weight:600}#lb .lb-sub{color:var(--muted);cursor:pointer;margin-top:4px;margin-bottom:16px;font-size:13px}#lb .lb-sub:hover{color:var(--text);text-decoration:underline}#lb .lb-meta{color:#fff6;margin-top:16px;font:11px monospace}#lb .lb-desc{color:#ffffff9e;overflow-y:auto;white-space:pre-line;flex:0 auto;min-height:0;margin-top:16px;font-size:13px;line-height:1.5}#lb .lb-desc:empty{display:none}#lb .lb-desc .bio{color:var(--muted);margin-top:12px;font-size:12px}#lb .lb-desc .bio .dates{opacity:.7}#lb-download{display:none;border-radius:var(--radius-btn);color:var(--text);border:1px solid var(--border);text-decoration:none;cursor:pointer;background:#ffffff1a;align-self: flex-start;margin-top:18px;padding:8px 14px;font-size:13px;font-weight:600}#lb-download:hover{background:#ffffff2e}#lb-download.show{display:inline-flex;align-items: center;gap:6px}#lb-close{position:fixed;z-index:var(--z-lb-close);display:flex;color:#fff;border:1px solid var(--border);cursor:pointer;background:#0009;border-radius:50%;justify-content:center;align-items: center;width:40px;height:40px;font-size:24px;line-height:1;top:16px;right:16px}#lb-close:hover{background:#000000d9}#lb-flow{display:none;position:fixed;pointer-events:none;inset:0}#lb.wrap #lb-flow{display:block}#lb-flow .flow-line{position:absolute;white-space:pre;color:#ffffffb8;letter-spacing:.01em}#lb-flow .flow-title{color:#fff}#lb-flow .flow-artist{color:var(--muted);pointer-events:auto;cursor:pointer}#lb-flow .flow-artist:hover{color:var(--text);text-decoration:underline}#lb-flow .flow-meta{color:#ffffff6b}#lb-flow .flow-body{color:#ffffffc7}#lb-flow .flow-bio{color:var(--muted)}#lb.wrap video{max-width:none;max-height:none}#lb.wrap .side{background:0 0}#lb.wrap .lb-title,#lb.wrap .lb-sub,#lb.wrap .lb-meta,#lb.wrap .lb-desc{display:none}#lb.wrap #lb-download.show{position:fixed;z-index:var(--z-lb-close);margin:0;bottom:36px;left:44px}@media (max-width:900px){#lb-flow{display:none!important}#lb{justify-content:center;align-items: center}#lb video{border-radius:0;width:auto;max-width:100vw;max-height:calc(100vh - 112px)}#lb .side{background:linear-gradient(#000000b8,#0000);width:100%;padding:16px;inset:0 0 auto}}
