:root{--bg-0:#0f1013;--bg-1:#17181c;--bg-2:#1e2024;--bg-3:#26282e;--border:#34373f;--border-soft:#2a2c33;--text-1:#f0f1f5eb;--text-2:#dcdde499;--text-3:#dcdde459;--accent:#ff8a3d;--accent-dim:#ff8a3d29;--live:#e5484d;--online:#3ecf8e;--offline:#55585f;--font-ui:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}ul{padding:0;list-style:none}html,body,#root{height:100%}body{color:var(--text-1);background:var(--bg-0);line-height:1.4;font-family:var(--font-ui);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;font-size:13px;overflow:hidden}html[data-hosted],html[data-hosted] body,html[data-hosted] #root{height:auto}html[data-hosted] body{overflow:visible}button,select,textarea,input{font-family:inherit;font-size:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:5px}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex}.app-titlebar{letter-spacing:.02em;min-height:40px;color:var(--text-2);background:var(--bg-1);border-bottom:1px solid var(--border);-webkit-app-region:drag;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px 12px;padding:4px 14px;font-size:12px;font-weight:600;display:flex}.app-titlebar button,.app-titlebar select{-webkit-app-region:no-drag}.app-titlebar button,.app-titlebar label,.app-titlebar select,.app-titlebar span{white-space:nowrap}.app-titlebar-name{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.titlebar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.titlebar-actions>*{flex-shrink:0}.output-control{align-items:center;gap:6px;display:flex}.output-hide-cursor{color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.icon-btn{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:3px;width:24px;height:24px;font-size:14px;line-height:1}.icon-btn:hover{color:var(--text-1);border-color:var(--accent)}.osc-control{align-items:center;gap:6px;display:flex;position:relative}.auto-advance-control{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.auto-advance-checkbox{white-space:nowrap;align-items:center;gap:4px;display:flex}.auto-advance-interval{background:var(--bg-3);border:1px solid var(--border);width:44px;color:var(--text-1);border-radius:3px;padding:3px 5px;font-size:12px}.auto-advance-unit{white-space:nowrap}.transition-control{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.transition-label{white-space:nowrap}.transition-select{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);border-radius:3px;padding:3px 5px;font-size:12px}.transition-duration{background:var(--bg-3);border:1px solid var(--border);width:58px;color:var(--text-1);border-radius:3px;padding:3px 5px;font-size:12px}.transition-unit{white-space:nowrap}.osc-settings{z-index:20;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:8px;width:220px;margin-top:6px;padding:10px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0006}.osc-settings label{color:var(--text-2);flex-direction:column;gap:3px;font-size:11px;display:flex}.osc-settings input{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);border-radius:3px;padding:4px 6px;font-size:12px}.osc-settings-hint{color:var(--text-3);word-break:break-all;margin:0;font-size:10.5px;line-height:1.4}.osc-settings-divider{border:none;border-top:1px solid var(--border);margin:2px 0}.osc-settings label.osc-settings-checkbox{flex-direction:row;align-items:center;gap:6px}.output-display-select{background:var(--bg-2);border:1px solid var(--border);color:var(--text-1);border-radius:3px;max-width:220px;padding:0 8px;font-size:12px}.output-display-select:disabled{opacity:.6}.transport-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;padding:6px 14px;font-size:12px}.transport-btn:hover:not(:disabled){background:var(--bg-2);border-color:var(--accent)}.transport-btn:disabled{opacity:.4;cursor:default}.transport-btn.active{background:var(--accent);border-color:var(--accent);color:#1a1006}.empty-state{color:var(--text-3);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.now-next{background:var(--border);flex:3;min-height:0;display:flex}.now-next--resizing,.now-next--resizing *{cursor:col-resize;-webkit-user-select:none;user-select:none}.now-next-divider{background:var(--border);cursor:col-resize;touch-action:none;flex:0 0 1px;position:relative}.now-next-divider:after{content:"";z-index:1;position:absolute;inset:0 -4px}.now-next-divider:hover,.now-next-divider--dragging{background:var(--accent)}.slide-slot{background:var(--bg-1);flex-direction:column;flex:1;min-width:0;display:flex}.slide-slot-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);flex-shrink:0;padding:8px 12px;font-size:11px;font-weight:600}.slide-slot:first-child .slide-slot-label{color:var(--accent)}.slide-slot-canvas{border:1px solid var(--border);background:#000;border-radius:2px;flex:1;justify-content:center;align-items:center;margin:0 12px 12px;display:flex;overflow:hidden}.slide-slot-frame{max-width:100%;max-height:100%;position:relative}.slide-slot-frame canvas{width:100%;height:100%;display:block}.slide-link{cursor:pointer;background:0 0;border:none;padding:0;position:absolute}.slide-link:hover{background:var(--accent-dim);outline:1px solid var(--accent);outline-offset:-1px}.slide-slot-empty{color:var(--text-3);font-family:var(--font-mono);font-size:13px}.slide-slot-canvas--clickable{cursor:pointer}.slide-slot-canvas--clickable:hover{outline:1px solid var(--accent);outline-offset:-1px}.transport{background:var(--bg-1);border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:16px;padding:10px;display:flex}.transport-indicator{font-family:var(--font-mono);color:var(--text-2);text-align:center;min-width:70px;font-size:13px}.thumbnail-strip{background:var(--bg-1);border-top:1px solid var(--border);flex-shrink:0;flex-basis:130px;gap:8px;padding:8px 12px 12px;display:flex;overflow:auto hidden}.thumbnail{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding:0;display:flex}.thumbnail-frame{border:2px solid var(--border);background:#000;border-radius:2px;justify-content:center;align-items:center;width:140px;height:90px;display:flex;overflow:hidden}.thumbnail-frame canvas,.thumbnail-placeholder{max-width:100%;max-height:100%}.thumbnail-placeholder{width:100%;height:100%}.thumbnail-active .thumbnail-frame{border-color:var(--accent)}.thumbnail-number{font-size:11px;font-family:var(--font-mono);color:var(--text-2)}.thumbnail-active .thumbnail-number{color:var(--accent)}.output-shell{background:#000;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.output-shell canvas{max-width:100%;max-height:100%}.output-canvas-frame{max-width:100%;max-height:100%;line-height:0;display:inline-block;position:relative}.laser-dot{pointer-events:none;z-index:3;background:#ff3b30;border-radius:50%;width:16px;height:16px;margin-top:-8px;margin-left:-8px;position:absolute;box-shadow:0 0 8px 3px #ff3b30e6,0 0 16px 6px #ff3b3080}.slide-transition-outgoing{pointer-events:none;position:absolute;top:0;left:0}.slide-transition-dip{opacity:0;pointer-events:none;z-index:20;position:fixed;inset:0}.output-empty{color:var(--text-3);font-family:var(--font-mono);font-size:16px}.output-shell--no-cursor{cursor:none}.output-fullscreen-prompt{z-index:10;border:1px solid var(--border);background:var(--bg-2);color:var(--text-1);text-align:center;cursor:pointer;border-radius:6px;flex-direction:column;gap:3px;padding:10px 18px;font-family:inherit;font-size:13px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.output-fullscreen-prompt span{color:var(--text-3);font-size:11.5px}.output-fullscreen-prompt:hover{border-color:var(--accent)}.modal-backdrop{z-index:100;-webkit-app-region:no-drag;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-2);border:1px solid var(--border);border-radius:5px;outline:none;flex-direction:column;width:100%;max-width:420px;max-height:calc(100vh - 48px);display:flex;box-shadow:0 12px 32px #0000008c}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 14px;display:flex}.modal-title{letter-spacing:.02em;color:var(--text-1);margin:0;font-size:13px;font-weight:600}.modal-close{color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;width:24px;height:24px;font-size:13px;line-height:1}.modal-close:hover{color:var(--text-1);border-color:var(--accent)}.modal-body{padding:14px;overflow-y:auto}.modal-hint{color:var(--text-2);margin:0 0 12px;font-size:12px;line-height:1.45}.modal-actions{flex-wrap:wrap;gap:8px;display:flex}.modal-status{color:var(--text-2);overflow-wrap:anywhere;margin:12px 0 0;font-size:11px;line-height:1.45}
