:root{--color-bg:#141414;--color-text:#e6e6e6;--color-muted:#8c8c8c;--color-border:#d0d0d0;--color-border-lt:#2c2c2c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-primary:"T-Star TW", system-ui, sans-serif;--tracking:.1em;--tracking-lg:.12em;--size-xs:11px;--size-sm:12px;--size-base:13px;--size-md:14px;--hairline:1px solid var(--color-border-lt);--stroke:1px solid var(--color-border);--bar:44px;--panel:400px}*{box-sizing:border-box}html,body{background:#000;height:100%;margin:0;overflow:hidden}#view{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{color:var(--color-text);font-family:var(--font-primary);font-weight:400;font-size:var(--size-base);text-transform:uppercase;letter-spacing:var(--tracking);-webkit-font-smoothing:antialiased;line-height:1.4}#ui button,#ui select,#ui input{font:inherit;color:inherit;text-transform:uppercase;letter-spacing:var(--tracking);border-radius:0}#ui strong,#ui h3{font-weight:400}#ui :focus-visible{outline:1px solid var(--color-border);outline-offset:2px}#ui button{border:var(--stroke);font-size:var(--size-sm);cursor:pointer;white-space:nowrap;background:0 0;padding:8px 16px;transition:background .15s,color .15s}#ui button:hover{background:var(--color-text);color:var(--color-bg)}#ui button:disabled{border-color:var(--color-border-lt);color:var(--color-muted);cursor:default}#ui button.mode,#ui button.text,#ui button.ret,#ui button.x,#ui button.go{color:var(--color-muted);border:none;padding:0;transition:color .15s}#ui button.mode:hover,#ui button.text:hover,#ui button.ret:hover,#ui button.x:hover,#ui button.go:hover{color:var(--color-text);background:0 0}#ui input[type=text],#ui input[type=number],#ui select{border:none;border-bottom:var(--stroke);outline-offset:4px;background:0 0;min-width:0;padding:6px 0}#ui input::placeholder{color:var(--color-muted);text-transform:uppercase}#ui select{cursor:pointer}#ui option{color:var(--color-text);background:var(--color-bg)}#ui input[type=color]{border:var(--stroke);cursor:pointer;background:0 0;width:44px;height:18px;padding:0}#ui input[type=color]::-webkit-color-swatch-wrapper{padding:0}#ui input[type=color]::-webkit-color-swatch{border:none;border-radius:0}#ui input[type=checkbox]{appearance:none;border:var(--stroke);cursor:pointer;background:0 0;flex:none;width:13px;height:13px;margin:0}#ui input[type=checkbox]:checked{background:var(--color-text)}#ui input[type=range]{appearance:none;cursor:pointer;background:0 0;min-width:0;height:18px;margin:0}#ui input[type=range]::-webkit-slider-runnable-track{background:var(--color-border);height:1px}#ui input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-text);border:none;border-radius:0;width:7px;height:15px;margin-top:-7px}#ui input[type=range]::-moz-range-track{background:var(--color-border);height:1px}#ui input[type=range]::-moz-range-thumb{background:var(--color-text);border:none;border-radius:0;width:7px;height:15px}#top{height:var(--bar);background:var(--color-bg);border-bottom:var(--hairline);z-index:5;align-items:stretch;gap:24px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.brand{font-size:var(--size-md);letter-spacing:var(--tracking-lg);white-space:nowrap;align-self:center}.modes{align-items:stretch;gap:24px;margin:0 auto;display:flex}#ui .modes button.mode{font-size:var(--size-base);border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 2px}#ui .modes button.mode.on{color:var(--color-text);border-bottom-color:var(--color-border)}.kbd{font-size:var(--size-xs);color:var(--color-muted);align-self:center}.right{font-size:var(--size-sm);color:var(--color-muted);white-space:nowrap;align-items:center;gap:20px;display:flex}.right label{align-items:center;gap:8px;display:flex}.right select{color:var(--color-text);font-size:var(--size-sm);padding:2px 0}#ui .right button.text{font-size:var(--size-sm)}.fps{font-variant-numeric:tabular-nums;text-align:right;min-width:60px}.link:empty{display:none}.link.on{color:var(--color-text)}#panel{top:var(--bar);width:var(--panel);background:var(--color-bg);border-left:var(--stroke);z-index:4;scrollbar-width:thin;scrollbar-color:var(--color-text) var(--color-bg);padding:24px 16px 64px;position:fixed;bottom:0;right:0;overflow-y:auto}body[data-mode=performer] #panel,body[data-panel=off] #panel{display:none}.card{margin-top:40px}.card h3{font-size:var(--size-md);letter-spacing:var(--tracking-lg);align-items:baseline;gap:12px;margin:0 0 16px;display:flex}.chip{font-size:var(--size-xs);color:var(--color-muted);margin-left:auto}.chip.man{color:var(--color-text)}#ui button.ret{font-size:var(--size-xs)}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.row input[type=text],.row select,.wide{flex:1}.cams{flex-wrap:nowrap}#ui .cams button{flex:1;padding:8px 6px}.lbl{color:var(--color-muted);font-size:var(--size-xs)}.ctl{grid-template-columns:104px 1fr 44px;align-items:center;gap:12px;margin:10px 0;display:grid}.ctl select{font-size:var(--size-sm);grid-column:2/4}.val{color:var(--color-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:var(--size-xs)}.note{color:var(--color-muted);font-size:var(--size-xs);margin:12px 0 0;line-height:1.6}.section-status{font-size:var(--size-sm);margin:8px 0 0}.chips{flex-wrap:wrap;gap:8px 12px;margin-bottom:12px;display:flex}.preset{align-items:center;gap:8px;display:inline-flex}#ui .preset button:first-child{padding:6px 12px}.cue{font-size:var(--size-sm);grid-template-columns:62px 56px 1fr 48px 14px;align-items:center;gap:10px;margin:8px 0;display:grid}.cue input,.cue select{width:100%;font-size:var(--size-sm);padding:4px 0}.cue.head{color:var(--color-muted);font-size:var(--size-xs)}#ui .cue .go{font-variant-numeric:tabular-nums;text-align:left;border-bottom:2px solid #0000;padding:4px 0}#ui .cue.active .go{color:var(--color-text);border-bottom-color:var(--color-border)}#transport{background:var(--color-bg);border-top:var(--hairline);z-index:4;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex;position:fixed;bottom:0;left:0;right:0}body[data-mode=director]:not([data-panel=off]) #transport{right:var(--panel)}.play{min-width:76px}#ui .seek{flex:1 0 100%;order:-1}.time{font-variant-numeric:tabular-nums;color:var(--color-muted);font-size:var(--size-sm);min-width:132px}.vol{color:var(--color-muted);font-size:var(--size-xs);align-items:center;gap:8px;margin-left:auto;display:flex}.vol input{width:80px}.meta{color:var(--color-muted);font-size:var(--size-xs);flex-basis:100%;justify-content:space-between;gap:12px;display:flex}.song{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hint{text-align:center;background:var(--color-bg);border:var(--stroke);z-index:4;max-width:min(760px,92vw);color:var(--color-muted);font-size:var(--size-xs);pointer-events:none;flex-direction:column;gap:4px;padding:12px 16px;line-height:1.6;transition:opacity .15s;display:flex;position:fixed;bottom:104px;left:50%;transform:translate(-50%)}#hint strong{color:var(--color-text);font-size:var(--size-sm)}#hint.hide{opacity:0}#toast{left:50%;top:calc(var(--bar) + 12px);background:var(--color-bg);color:var(--color-text);border:var(--stroke);font-size:var(--size-sm);opacity:0;pointer-events:none;z-index:6;padding:8px 16px;transition:opacity .15s;position:fixed;transform:translate(-50%)}#toast.on{opacity:1}#error{text-align:center;background:var(--color-bg);color:var(--color-text);z-index:9;font-size:var(--size-md);letter-spacing:var(--tracking-lg);place-items:center;padding:24px;display:grid;position:fixed;inset:0}#error[hidden],body[data-chrome=off] #top,body[data-chrome=off] #panel,body[data-chrome=off] #transport,body[data-chrome=off] #hint{display:none}@media (width<=860px){#panel{border-left:none;border-top:var(--stroke);width:auto;max-height:46vh;top:auto;bottom:0;left:0}body[data-mode=director]:not([data-panel=off]) #transport{bottom:46vh;right:0}.brand,.kbd{display:none}#top{scrollbar-width:none;gap:16px;padding:0 12px;overflow-x:auto}#top::-webkit-scrollbar{display:none}.modes{flex:none;gap:16px;margin:0}.right{flex:none;gap:14px}}.meters{gap:6px;margin:12px 0 16px;display:grid}.meter{grid-template-columns:104px 1fr;align-items:center;gap:12px;display:grid}.meter .track{border:1px solid var(--color-border-lt);height:7px;position:relative;overflow:hidden}.meter .bar{background:var(--color-text);width:0;position:absolute;top:0;bottom:0;left:0}label.row{flex-wrap:nowrap;align-items:flex-start;line-height:1.3}label.row input[type=checkbox]{margin-top:1px}#menu{z-index:10;background:var(--color-bg);color:var(--color-text);font-family:var(--font-primary);text-transform:uppercase;letter-spacing:var(--tracking);padding:max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));place-items:center;transition:opacity .25s;display:grid;position:fixed;inset:0;overflow-y:auto}#menu.out{opacity:0;pointer-events:none}#menu .m-inner{width:min(640px,100%)}#menu .m-brand{letter-spacing:var(--tracking-lg);margin:0;font-size:22px;font-weight:400;line-height:1.3}#menu .m-sub{color:var(--color-muted);font-size:var(--size-sm);margin:8px 0 0}#menu .m-h{font-size:var(--size-xs);color:var(--color-muted);letter-spacing:var(--tracking-lg);margin:40px 0 12px;font-weight:400}#menu .m-devices,#menu .m-start{grid-template-columns:1fr 1fr;gap:12px;display:grid}#menu button{font:inherit;text-transform:inherit;letter-spacing:inherit;color:var(--color-text);border:1px solid var(--color-border-lt);text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border-radius:0;flex-direction:column;justify-content:space-between;gap:12px;min-height:88px;padding:18px 16px;display:flex}#menu button:hover{border-color:var(--color-muted)}#menu button.on{border-color:var(--color-border);box-shadow:inset 0 0 0 1px var(--color-border)}#menu button.m-go{border-color:var(--color-border)}#menu button.m-go:hover{background:var(--color-text);color:var(--color-bg)}#menu button.m-go:hover .d-note{color:var(--color-bg)}#menu button:disabled{opacity:.4;cursor:default}#menu .d-title{font-size:var(--size-md);align-items:baseline;gap:12px;display:flex}#menu .d-tag{font-size:var(--size-xs);color:var(--color-muted)}#menu .d-note{font-size:var(--size-xs);color:var(--color-muted);text-transform:none;letter-spacing:.02em;line-height:1.5}#menu .m-status{min-height:1.4em;font-size:var(--size-sm);margin:24px 0 0}#menu .m-lan{font-size:var(--size-xs);color:var(--color-muted);text-transform:none;letter-spacing:.02em;margin:16px 0 0;line-height:1.6}#menu .m-url{color:var(--color-text);-webkit-user-select:all;user-select:all}@media (width<=520px){#menu .m-devices,#menu .m-start{grid-template-columns:1fr}#menu button{min-height:72px}}#touch{font-family:var(--font-primary);display:none}body[data-device=handy] #touch{display:block}#touch>*{z-index:4;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:none;position:fixed}body[data-mode=performer] #touch .t-perf,body[data-mode=director] #touch .t-dir{display:flex}body[data-chrome=off] #touch>*{display:none!important}#touch .stick{left:max(16px, env(safe-area-inset-left));bottom:var(--tb,140px);touch-action:none;border:1px solid var(--color-border);background:#14141459;justify-content:center;align-items:center;width:144px;height:144px}#touch .stick.run{box-shadow:inset 0 0 0 1px var(--color-border)}#touch .knob{background:var(--color-text);pointer-events:none;width:44px;height:44px}#touch .t-col{right:max(16px, env(safe-area-inset-right));bottom:var(--tb,140px);flex-direction:column;gap:10px}#touch .tbtn{width:84px;height:52px;font:inherit;font-size:var(--size-sm);text-transform:uppercase;letter-spacing:var(--tracking);color:var(--color-text);border:1px solid var(--color-border);touch-action:none;cursor:pointer;background:#1414148c;border-radius:0}#touch .tbtn.on{background:var(--color-text);color:var(--color-bg)}#touch .t-rotate{left:50%;top:calc(var(--bar) + 104px);font-size:var(--size-xs);color:var(--color-muted);background:var(--color-bg);border:var(--hairline);text-transform:uppercase;letter-spacing:var(--tracking);pointer-events:none;white-space:nowrap;padding:6px 12px;transform:translate(-50%)}#touch:not(.portrait) .t-rotate{display:none!important}body:has(#hint:not(.hide)) #touch .t-rotate{display:none!important}body[data-device=handy] .kbd{display:none}body[data-device=handy] #ui button,body[data-device=handy] #ui select{touch-action:manipulation}body[data-device=handy] #ui select,body[data-device=handy] #ui input[type=number],body[data-device=handy] #ui input[type=text]{font-size:16px}body[data-device=handy] #ui .modes button.mode,body[data-device=handy] #ui .right button.text{min-height:var(--bar);padding:0 6px}body[data-device=handy] #ui input[type=range]{height:32px}body[data-device=handy] #ui input[type=range]::-webkit-slider-thumb{width:14px;height:26px;margin-top:-13px}body[data-device=handy] #transport{padding-bottom:max(12px, env(safe-area-inset-bottom))}body[data-device=handy] #hint{top:calc(var(--bar) + 12px);width:max-content;bottom:auto}body[data-device=handy] #view{touch-action:none}@media (orientation:landscape) and (height<=520px){body[data-device=handy] #transport{padding:6px max(12px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));flex-wrap:nowrap;gap:10px}body[data-device=handy] #transport .meta,body[data-device=handy] #transport .vol,body[data-device=handy] #transport .restart{display:none}body[data-device=handy] #ui #transport .seek{flex:auto;order:0}body[data-device=handy] #transport .time{white-space:nowrap;min-width:0}body[data-device=handy] #transport button{white-space:nowrap;padding:6px 10px}body[data-device=handy] #touch .stick{width:120px;height:120px}body[data-device=handy] #touch .t-col{gap:8px}body[data-device=handy] #touch .tbtn{height:44px}body[data-device=handy] #hint{max-width:56vw}}#ui [hidden]{display:none!important}
