:root{--bg: #0b0d10;--bg-2: #12161b;--panel: #161b21;--line: #242c35;--text: #e8edf2;--dim: #8995a3;--faint: #56616e;--accent: #5ef2d6;--accent-ink: #062a24;--warn: #ffb547;--bad: #ff5d73;--radius: 10px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(1200px 500px at 50% 38%,#18212b 0%,transparent 70%),var(--bg);color:var(--text);font:14px/1.45 var(--font);display:grid;grid-template-rows:auto 1fr auto auto;min-height:100vh;overflow-x:hidden}button,input,select{font:inherit;color:inherit}.topbar{display:flex;align-items:center;gap:18px;padding:12px 20px;border-bottom:1px solid var(--line);background:#0b0d10b3;backdrop-filter:blur(8px);position:relative;z-index:10}.brand{font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:10px;white-space:nowrap}.brand em{font-style:normal;color:var(--accent);font-weight:500;margin-left:2px}.mark{width:18px;height:14px;border-radius:3px;background:linear-gradient(90deg,#33404a 0 22%,var(--accent) 22% 78%,#33404a 78%);transform:perspective(40px) rotateX(18deg)}.search{flex:1;max-width:420px;display:flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:0 14px}.search:focus-within{border-color:#3a4a57}.search svg{width:15px;height:15px;fill:none;stroke:var(--dim);stroke-width:2;flex:none}.search input{flex:1;background:none;border:0;outline:0;padding:8px 0;min-width:0}.audio{margin-left:auto;display:flex;align-items:center;gap:10px}select{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:6px 8px;outline:none}select:focus-visible{border-color:var(--accent)}.icon-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);cursor:pointer;position:relative;flex:none}.icon-btn:before{content:"";position:absolute;left:12px;top:9px;border-left:10px solid var(--text);border-top:7px solid transparent;border-bottom:7px solid transparent}.icon-btn.on{background:var(--accent);border-color:var(--accent)}.icon-btn.on:before{left:10px;top:10px;width:4px;height:12px;border:0;background:var(--accent-ink);box-shadow:7px 0 0 var(--accent-ink)}input[type=range]{accent-color:var(--accent)}#volume{width:80px}.meters{display:flex;gap:3px;height:22px;align-items:flex-end}.meters i{width:5px;height:100%;border-radius:2px;background:var(--accent);transform-origin:bottom;transform:scaleY(.04)}.meters i:nth-child(2){background:#9be86b}.meters i:nth-child(3){background:#ffd36b}main{display:flex;flex-direction:column;min-height:0}.stage{position:relative;height:clamp(320px,58vh,680px);flex:none}.carousel{--card-w: clamp(260px, 31vw, 560px);position:absolute;inset:0;perspective:1500px;perspective-origin:50% 46%;overflow:hidden;outline:none;user-select:none;touch-action:pan-y;cursor:grab}.carousel:active{cursor:grabbing}.carousel:after{content:"";position:absolute;left:15%;right:15%;top:calc(50% + var(--card-w) * .34);height:90px;background:radial-gradient(50% 50% at 50% 0%,rgba(94,242,214,.08),transparent 70%);pointer-events:none}.carousel-track{position:absolute;left:50%;top:50%;transform-style:preserve-3d}.card{position:absolute;width:var(--card-w);aspect-ratio:16 / 9;left:calc(var(--card-w) / -2);top:calc(var(--card-w) * -9 / 32);border-radius:var(--radius);background:#07090b;box-shadow:0 30px 60px -20px #000000e6,0 0 0 1px #ffffff0f;backface-visibility:hidden;will-change:transform;transform-style:preserve-3d}.card-media{position:absolute;inset:0;border-radius:inherit;overflow:hidden}.card-media img,.card-media canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.card-shade{position:absolute;inset:0;border-radius:inherit;background:#000;opacity:var(--shade, 0);pointer-events:none}.live-canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity .26s ease}.live-canvas.visible{opacity:1}.card.is-center{box-shadow:0 40px 80px -24px #000000f2,0 0 0 1px #ffffff1a}.card.is-center[draggable=true]{cursor:grab}.card.is-center[data-state=live]{box-shadow:0 40px 80px -24px #000000f2,0 0 0 1px #5ef2d673,0 0 40px -10px #5ef2d659}.card.dragging{opacity:.55!important}.card-cap{position:absolute;left:0;right:0;top:calc(100% + 14px);display:flex;flex-direction:column;align-items:center;gap:1px;opacity:0;transition:opacity .16s;pointer-events:none;text-align:center}.card.is-center .card-cap{opacity:1;pointer-events:auto;cursor:default}.carousel.is-moving .card-cap,.carousel.is-moving .card-badges{opacity:0;transition-duration:60ms}.card-name{font-weight:650;font-size:16px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.card-by{color:var(--dim);font-size:12.5px}.card-by a{color:var(--accent);text-decoration:none;cursor:pointer}.card-by a:hover{text-decoration:underline}.card-badges{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity .16s;pointer-events:none}.card.is-center .card-badges{opacity:1}.card-badges i{font-style:normal;font:600 10.5px/1 var(--mono);padding:4px 6px;border-radius:5px;background:#0000009e;color:#dfe7ee;backdrop-filter:blur(4px)}.card-status{position:absolute;inset:0;pointer-events:none;border-radius:inherit;overflow:hidden}.dwell-bar{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--accent);opacity:0}.status-text{position:absolute;left:8px;top:8px;font:600 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 7px;border-radius:5px;background:#0000009e;color:var(--dim);opacity:0;transition:opacity .16s;backdrop-filter:blur(4px)}.card[data-state=dwell] .dwell-bar{opacity:.9;animation:dwell var(--dwell, .9s) linear forwards}.card[data-state=compiling] .dwell-bar{opacity:1;width:40%;animation:shimmer .9s ease-in-out infinite}.card[data-state=compiling] .status-text,.card[data-state=live] .status-text,.card[data-state=error] .status-text,.card[data-state=still] .status-text{opacity:1}.card[data-state=live] .status-text{color:var(--accent)}.card[data-state=live] .status-text:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px;animation:pulse 1.6s ease-in-out infinite}.card[data-state=error] .status-text{color:var(--bad)}.card[data-state=live] .status-text{animation:fadeAway 2.4s 1.2s forwards}@keyframes dwell{0%{width:0}to{width:100%}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(260%)}}@keyframes pulse{50%{opacity:.3}}@keyframes fadeAway{to{opacity:.35}}.unlock{position:absolute;left:50%;top:18px;transform:translate(-50%);z-index:5;font-size:12.5px;color:var(--dim);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;pointer-events:none}.scrub{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:8px 20px 4px;max-width:1200px;width:100%;margin:0 auto}.counter{font:600 13px/1 var(--mono);color:var(--dim);min-width:92px}#scrubber{flex:1;min-width:160px}.ctl{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:12.5px;white-space:nowrap}.ctl #dwell{width:90px}.ctl output{font-family:var(--mono);color:var(--text);min-width:32px}.ctl.check input{accent-color:var(--accent)}.info{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;max-width:1200px;width:100%;margin:6px auto 0;padding:12px 20px}.info-main{min-width:220px;flex:1}.info h2{margin:0;font-size:20px;letter-spacing:.01em}.info .by{color:var(--dim)}.info .desc{color:#b9c3cd;margin:6px 0 0;max-width:62ch;font-size:13.5px}.info .src{color:var(--accent);text-decoration:none}.info .src:hover{text-decoration:underline}.stars{color:var(--warn);letter-spacing:1px;margin-left:8px;font-size:12px}.info dl{display:flex;gap:22px;margin:2px 0 0;flex-wrap:wrap}.info dl div{display:flex;flex-direction:column}.info dt{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.info dd{margin:0;font-family:var(--mono);font-size:13px}.st-live{color:var(--accent)}.st-compiling,.st-dwell{color:var(--warn)}.st-error{color:var(--bad)}.err{flex-basis:100%}.err summary{cursor:pointer;color:var(--bad);font-size:12.5px}.err pre,.info pre{white-space:pre-wrap;font:12px/1.4 var(--mono);color:#f3c3cb;background:#1a1116;border:1px solid #3a1d27;padding:10px;border-radius:8px;max-height:180px;overflow:auto}.timeline{border-top:1px solid var(--line);background:var(--bg-2);padding:10px 20px 12px}.timeline header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.timeline .hint{color:var(--faint);font-size:12.5px}.ghost-btn{margin-left:auto;background:none;border:1px solid var(--line);border-radius:6px;padding:3px 10px;color:var(--dim);cursor:pointer}.lane{display:flex;gap:6px;height:64px;padding:6px;overflow-x:auto;border:1px dashed #33404a;border-radius:8px;background:repeating-linear-gradient(90deg,transparent 0 79px,rgba(255,255,255,.03) 79px 80px);transition:border-color .12s,background-color .12s}.lane.over{border-color:var(--accent);background-color:#5ef2d60f}.lane-empty{margin:auto;color:var(--faint);font-size:12.5px}.clip{flex:none;display:flex;align-items:center;gap:8px;width:190px;padding:0 8px 0 0;border-radius:6px;overflow:hidden;border:1px solid #2c3742;background:#1c232b;cursor:pointer;text-align:left}.clip:hover{border-color:var(--accent)}.clip img{height:100%;aspect-ratio:16/9;object-fit:cover}.clip span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drop-log{margin:8px 0 0;font:11.5px/1.35 var(--mono);color:var(--dim);max-height:90px;overflow:auto;white-space:pre}.drop-log:empty{display:none}.drag-ghost{position:fixed;top:-1000px;left:-1000px;display:flex;flex-direction:column;gap:4px;padding:4px;background:var(--panel);border-radius:8px;border:1px solid var(--accent)}.drag-ghost canvas{border-radius:5px;display:block}.drag-ghost span{font-size:12px;padding:0 4px 2px;color:var(--text)}.keys{text-align:center;color:var(--faint);font-size:11.5px;padding:6px 12px 10px;background:var(--bg-2)}@media(max-width:760px){.topbar{flex-wrap:wrap;gap:10px;padding:10px 16px}.search{order:3;max-width:none;flex-basis:100%}.audio{gap:8px}#volume,.meters{display:none}.carousel{--card-w: 62vw}.scrub,.info{padding-left:16px;padding-right:16px}.keys{display:none}}@media(prefers-reduced-motion:reduce){.live-canvas{transition:none}}
