.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.app{background:#000;flex-direction:column;min-height:100%;display:flex}.navbar{background-color:#050505;background-image:linear-gradient(#ffffff1a 0%,#ffffff05 35%,#0009 55%,#ffffff0a 100%),linear-gradient(27deg,#0a0a0a 5px,#0000 5px 10px,#0a0a0a 10px 15px,#0000 15px),linear-gradient(207deg,#0a0a0a 5px,#0000 5px 10px,#0a0a0a 10px 15px,#0000 15px),linear-gradient(90deg,#181818 50%,#101010 50%);background-size:auto,8px 16px,8px 16px,8px 16px;border-bottom:1px solid #000;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;display:flex;position:relative;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #0009,0 2px 6px #0009}.brand{color:#fff;align-items:center;text-decoration:none;display:flex}.brand-name{font-family:var(--serif);letter-spacing:.18em;background:linear-gradient(#f5f5f5 0%,#cfcfcf 35%,#6e6e6e 55%,#b8b8b8 75%,#efefef 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;padding-bottom:.25rem;font-size:1.15rem;font-weight:700;position:relative}.brand-name:after{content:"";background:linear-gradient(90deg,#0000 0%,#dc1e1e00 10%,#ff3c3cf2 50%,#dc1e1e00 90%,#0000 100%);height:1px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 6px #ff2828b3}.status-pill{letter-spacing:.06em;text-transform:uppercase;background:var(--panel-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600}.status-pill.status-live,.status-pill.status-waiting{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, transparent);background:color-mix(in srgb, var(--ok) 12%, transparent)}.status-pill.status-connecting,.status-pill.status-reconnecting{color:#e3b341;border-color:color-mix(in srgb, #d29922 45%, var(--border))}.connect-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.address-field{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);align-items:center;gap:8px;font-size:11px;display:flex}.address-field input{border:1px solid var(--border);width:220px;color:var(--text);font:inherit;text-transform:none;letter-spacing:normal;background:#111;border-radius:4px;padding:7px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.address-field input:focus{border-color:#ff50508c;outline:none}.address-field input:disabled{color:var(--text-dim)}.nav-action{color:#ccc;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:1px solid #fff3;padding:7px 12px;font-size:.85rem;transition:color .2s,border-color .2s}.nav-action:not(:disabled):hover{color:#fff;border-color:#ff5050b3}.primary-button{border:1px solid var(--accent-dim);background:var(--accent);color:#fff;border-radius:4px;padding:9px 16px;font-weight:600}.primary-button:not(:disabled):hover{filter:brightness(1.08)}.notices{flex-direction:column;gap:8px;padding:.75rem 1.5rem 0;display:flex}.notice{border:1px solid var(--border);color:var(--text-dim);background:#0a0a0a;align-items:center;gap:12px;margin:0;padding:10px 14px;font-size:14px;display:flex}.notice-error{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));color:var(--danger)}.notice button{color:inherit;background:0 0;border:none;margin-left:auto;font-size:18px;line-height:1}.stage{flex:1;grid-template-columns:minmax(0,1fr) minmax(240px,22rem);min-height:0;display:grid}.stage-main{place-items:center;min-width:0;padding:1rem 1.5rem 2rem;display:grid}.stage-main.is-workspace{align-content:start;place-items:stretch stretch;gap:16px;overflow:auto}.logo{width:min(40vw,520px);height:auto;display:block}.workspace{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;width:100%;display:grid}.workspace-empty{text-align:center;color:#cfcfcf;place-self:center}.workspace-empty h2{font-family:var(--serif);letter-spacing:.12em;margin:0 0 .75rem;font-weight:700}.workspace-kind{font-family:var(--serif);letter-spacing:.18em;text-transform:uppercase;color:#888;margin:0 0 .5rem;font-size:.75rem}.client-panel{color:#cfcfcf;border-left:1px solid #ffffff14;min-height:0;padding:1.25rem 1.5rem 2rem;overflow:auto}.client-title{font-family:var(--serif);letter-spacing:.18em;color:#e8e8e8;margin:0 0 1.25rem;font-size:1.15rem;font-weight:700}.client-empty{color:#555;margin:0;font-size:.95rem}.client-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.client-row{text-align:left;width:100%;color:inherit;background:0 0;border:1px solid #0000;border-left-width:2px;grid-template-columns:1fr;gap:2px;padding:.7rem .75rem;transition:border-color .2s,background .2s;display:grid}.client-row:not(:disabled):hover{background:#ffffff08;border-color:#ffffff0f}.client-row.is-selected{background:#ff28280f;border-left-color:#ff3c3cf2}.client-row.is-offline{opacity:.45}.client-kind{font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;color:#888;font-size:.65rem}.client-name{color:#e8e8e8;font-size:.95rem}.client-meta{color:#666;font-size:.75rem}.client-row.is-online .client-kind{color:#aaa}.footer{text-align:center;border-top:1px solid #ffffff0f;padding:1.25rem 1.5rem}.footer p{font-family:var(--serif);letter-spacing:.12em;color:#777;margin:0;font-size:.75rem}@media (width<=900px){.stage{grid-template-columns:minmax(0,1fr)}.client-panel{border-top:1px solid #ffffff14;border-left:none}.workspace{grid-template-columns:minmax(0,1fr)}.logo{width:min(80vw,420px)}.brand-name{font-size:.85rem}}@media (width<=640px){.address-field input{width:160px}}.video-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.video-frame{aspect-ratio:4/3;background:#05070a;place-items:center;display:grid;position:relative}.video-frame canvas{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .15s;display:block}.video-frame canvas.live{opacity:1}.video-placeholder{color:var(--text-dim);place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.video-meta{color:var(--text-dim);font-variant-numeric:tabular-nums;border-top:1px solid var(--border);justify-content:space-between;padding:10px 14px;font-size:12px;display:flex}.side-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.tabs{border-bottom:1px solid var(--border);display:flex}.tab{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:11px 8px;font-size:12px;font-weight:600}.tab:hover{color:var(--text)}.tab-active{color:var(--text);border-bottom-color:var(--accent);background:var(--panel-raised)}.panel-body{flex-direction:column;gap:16px;padding:18px;display:flex}.panel-body:focus-visible,[role=tabpanel]:focus{outline:none}.dpad{grid-template-columns:repeat(3,1fr);justify-items:stretch;gap:8px;display:grid}.pad-button{aspect-ratio:1;border:1px solid var(--border);background:var(--panel-raised);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;place-items:center;font-size:16px;transition:background .1s,border-color .1s;display:grid}.pad-button:not(:disabled):hover{border-color:var(--accent-dim)}.pad-button:not(:disabled):active{background:var(--accent);border-color:var(--accent);color:#07130a}.pad-up{grid-area:1/2}.pad-left{grid-area:2/1}.pad-center{letter-spacing:.04em;color:var(--text-dim);grid-area:2/2;font-size:11px}.pad-right{grid-area:2/3}.pad-down{grid-area:3/2}.step-control{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}.step-control strong{color:var(--text);font-variant-numeric:tabular-nums}.step-control input{width:100%;accent-color:var(--accent)}.ghost-button{border:1px solid var(--border);color:var(--text-dim);background:0 0;border-radius:8px;padding:8px 12px;font-size:13px}.ghost-button:not(:disabled):hover{color:var(--text);border-color:var(--accent-dim)}.hint{color:var(--text-dim);margin:0;font-size:12px;line-height:1.5}.notice-warn{border-color:color-mix(in srgb, #d29922 45%, var(--border));color:#e3b341;line-height:1.5}.diagnostics{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);border-radius:12px;padding:12px 16px;font-size:13px}.diagnostics summary{cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.diagnostics-grid{flex-wrap:wrap;gap:28px;margin:14px 0 0;display:flex}.diagnostics-grid dt{text-transform:uppercase;letter-spacing:.06em;font-size:11px}.diagnostics-grid dd{color:var(--text);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:15px}.diagnostics-info{color:var(--accent);margin:14px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.diagnostics-note{margin:12px 0 0;line-height:1.5}.setup-group{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.setup-group:disabled{opacity:.45}.setup-group legend{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:0;font-size:12px;font-weight:600}.setup-group .hint{margin-bottom:2px}.setup-row{grid-template-columns:52px minmax(0,1fr) 40px;align-items:center;gap:8px;font-size:12px;display:grid}.setup-label{color:var(--text-dim)}.setup-row input{width:100%;accent-color:var(--accent)}.setup-value{text-align:right;font-variant-numeric:tabular-nums}.setup-toggle{align-items:center;gap:8px;font-size:13px;display:flex}.setup-toggle input{accent-color:var(--accent);width:15px;height:15px}.setup-actions{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:4px;display:flex}.setup-actions .primary-button,.setup-actions .ghost-button{width:100%;margin-top:8px}.setup-actions .ghost-button{margin-top:0}.setup-group>.ghost-button{margin-top:8px}.setup-state{color:var(--text-dim);margin:0;font-size:12px}.setup-state-unsaved{color:#e3b341}.setup-state-saved{color:var(--accent)}.setup-state-error{color:var(--danger)}.gamepad{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.gamepad h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0;font-size:12px;font-weight:600}.gamepad-id{color:var(--text);align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.gamepad-id>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gamepad-dot{background:var(--border);border-radius:50%;flex:none;width:8px;height:8px;transition:background 80ms,box-shadow 80ms}.gamepad-moving .gamepad-dot{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.gamepad-invert{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.gamepad-invert-label{color:var(--text-dim);font-size:12px}.gamepad-invert .setup-toggle{gap:6px;font-size:12px}.diagnostics-aside{color:var(--text-dim);font-size:12px}.performance{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;padding:14px 16px 16px;display:flex}.performance-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.performance-head h2,.stage-chart-wrap h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0;font-size:12px;font-weight:600}.performance-head span{color:var(--text-dim);font-size:12px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.stat-tile{border:1px solid var(--border);background:var(--panel-raised);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px 8px;display:flex}.stat-label{color:var(--text-dim);font-size:12px}.stat-value{color:var(--text);font-size:22px;font-weight:600;line-height:1.2}.stat-unit{color:var(--text-dim);font-size:13px;font-weight:400}.stat-detail{color:var(--text-dim);font-size:11px}.spark{width:100%;height:28px;margin-top:6px;overflow:visible}.spark path{fill:none;stroke:var(--text-dim);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round;opacity:.7}.spark-now{stroke:var(--text);stroke-width:6px;stroke-linecap:round}.performance-note{color:var(--text-dim);margin:0;font-size:13px;line-height:1.5}.stage-chart-wrap{flex-direction:column;gap:8px;display:flex}.stage-chart{min-width:0}.stage-chart .u-legend{color:var(--text-dim);text-align:left;font-size:12px}.stage-chart .u-legend .u-value{color:var(--text);font-variant-numeric:tabular-nums}.performance-caption{color:var(--text-dim);margin:0;font-size:12px;line-height:1.5}.performance-caption strong{color:var(--text);font-weight:600}.performance-table summary{cursor:pointer;color:var(--text-dim);font-size:12px}.table-scroll{margin-top:8px;overflow-x:auto}.performance-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.performance-table th,.performance-table td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);padding:5px 10px 5px 0}.performance-table th{color:var(--text-dim);font-weight:600}.performance-table td{color:var(--text)}.video-controls{gap:20px}.select-row{flex-direction:column;gap:8px;display:flex}.select{border:1px solid var(--border);background:var(--panel-raised);width:100%;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;padding:8px 10px;font-size:13px}.select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.select:disabled{cursor:not-allowed;opacity:.45}.switch-block{flex-direction:column;gap:8px;display:flex}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.switch-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:12px;font-weight:600}.switch{appearance:none;border:1px solid var(--border);background:var(--panel-raised);cursor:pointer;border-radius:999px;flex:none;width:38px;height:22px;margin:0;transition:background .12s,border-color .12s;position:relative}.switch:after{content:"";background:var(--text-dim);border-radius:50%;width:16px;height:16px;transition:transform .12s,background .12s;position:absolute;top:2px;left:2px}.switch:checked{background:var(--accent);border-color:var(--accent)}.switch:checked:after{background:#07130a;transform:translate(16px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch:disabled{cursor:not-allowed;opacity:.45}.switch-row:has(.switch:disabled){cursor:not-allowed}:root{--bg:#000;--panel:#0a0a0a;--panel-raised:#141414;--border:#ffffff14;--text:#e8e8e8;--text-dim:#888;--accent:#e33c3c;--accent-dim:#8a1f1f;--ok:#3fb950;--danger:#f85149;--serif:"Cinzel", "Trajan Pro", Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;min-height:100%;color:var(--text);margin:0}body{overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #ff5050e6}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
