:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #111214;--surface: rgba(20, 21, 23, .94);--surface-solid: #17181a;--line: rgba(255, 255, 255, .11);--line-strong: rgba(255, 255, 255, .19);--text: #e8e8e8;--muted: #92969c;--subtle: #656a70;--accent: #d6d8dc;--danger: #e07878;--success: #8db89a;--warning: #c9a66d}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--bg);color:var(--text)}button,select,input{font:inherit}button{color:inherit}.app-shell{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg)}.viewport{position:absolute;inset:0;background:#17191c}.viewport canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.topbar{position:absolute;z-index:5;inset:0 0 auto;height:46px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 16px;background:#111214e0;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.wordmark{display:flex;align-items:center;gap:11px;white-space:nowrap}.wordmark-main{font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em}.wordmark-divider{width:1px;height:14px;background:var(--line-strong)}.wordmark-sub{color:var(--muted);font:10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.resource-status{overflow:hidden;color:var(--muted);font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.replay-meta,.player-hud,.input-indicators{position:absolute;z-index:3;background:#111214c7;border:1px solid var(--line);backdrop-filter:blur(8px);border-radius:3px;font:10px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none}.replay-meta{top:58px;left:14px;padding:8px 10px;color:#b8bbc0;white-space:pre}.player-hud{left:14px;bottom:91px;min-width:230px;padding:8px 10px;color:#c7c9cc;white-space:pre}.player-hud b{color:#92979e;font-weight:500}.player-hud .bad{color:var(--danger)}.player-hud .ok{color:var(--success)}.player-hud .warn{color:var(--warning)}.input-indicators{top:58px;right:14px;display:flex;flex-direction:column;align-items:flex-end;gap:3px;padding:5px;border:0;background:transparent}.input-indicators span{padding:3px 6px;color:#d5d8dc;border:1px solid var(--line);border-radius:2px;background:#111214d1}.keyboard-hint{position:absolute;left:14px;bottom:78px;z-index:2;color:#dcdee18a;font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none}.keyboard-hint span{color:#747980;padding:0 3px}.transport{position:absolute;z-index:10;left:0;right:0;bottom:0;min-height:62px;display:flex;align-items:center;gap:13px;padding:9px 14px;background:#111214f5;border-top:1px solid var(--line)}.transport-main,.transport-options{display:flex;align-items:center;gap:5px}.transport-main,.transport-options{flex:0 0 auto}.control-button,.select-control{height:32px;padding:0 10px;color:#c8cacf;background:#1b1d20;border:1px solid var(--line);border-radius:3px;font-size:11px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.control-button:hover,.select-control:hover{color:#fff;background:#25282c;border-color:var(--line-strong)}.control-button:focus-visible,.select-control:focus-visible,.timeline-range:focus-visible{outline:1px solid #d7d9dd;outline-offset:2px}.play-button{width:34px;font-size:13px}.skip-button{min-width:42px;color:var(--muted);font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.control-button.on{color:#fff;border-color:#92979f;background:#303338}.select-wrap{position:relative}.select-control{min-width:58px;appearance:none;padding-right:23px}.select-wrap:after{content:"";position:absolute;top:13px;right:9px;width:5px;height:5px;border-right:1px solid #92969c;border-bottom:1px solid #92969c;transform:rotate(45deg);pointer-events:none}.camera-select .select-control{min-width:82px}.timecode{flex:0 0 auto;min-width:96px;color:#aeb2b8;text-align:center;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.timeline-control{flex:1 1 auto;min-width:50px;display:flex;align-items:center}.timeline-range{width:100%;height:20px;margin:0;appearance:none;background:transparent;cursor:pointer}.timeline-range::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,#b8bbc0 0 var(--progress, 0%),#3a3d42 var(--progress, 0%) 100%);border-radius:0}.timeline-range::-moz-range-track{height:3px;background:linear-gradient(to right,#b8bbc0 0 var(--progress, 0%),#3a3d42 var(--progress, 0%) 100%);border-radius:0}.timeline-range::-webkit-slider-thumb{width:10px;height:10px;margin-top:-3.5px;appearance:none;border:1px solid #f0f0f0;border-radius:50%;background:#d9dbde}.timeline-range::-moz-range-thumb{width:9px;height:9px;border:1px solid #f0f0f0;border-radius:50%;background:#d9dbde}.timeline-marks{position:absolute;z-index:11;left:14px;right:14px;bottom:57px;height:7px;pointer-events:none}.timeline-marks i{position:absolute;top:0;width:2px;height:7px;margin-left:-1px;border-radius:1px;cursor:pointer;pointer-events:auto}.timeline-marks .mark-f{background:#e07878}.timeline-marks .mark-m{background:#c9a66d}.file-overlay{position:absolute;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#111214f7}.file-overlay.hide{display:none}.file-dialog{width:min(460px,100%);padding:28px;border:1px solid var(--line);background:#151619;border-radius:3px}.dialog-kicker{color:#898e95;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em}.file-dialog h1{margin:22px 0 8px;color:#f0f0f0;font-size:23px;font-weight:500;letter-spacing:-.035em}.dialog-description{margin:0;color:#969ba2;font-size:12px;line-height:1.6}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border-radius:3px;cursor:pointer;font-size:11px}.primary-action{color:#17181a;background:#d7d9dc;border:1px solid #d7d9dc}.primary-action:hover{background:#fff}.secondary-action{color:#c3c6cb;background:transparent;border:1px solid var(--line-strong)}.secondary-action:hover{background:#202226}.resource-note{margin-top:20px;color:#747980;font:10px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.error-output{margin-top:13px;max-height:35vh;overflow:auto;color:#e08c8c;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.native-file-input{display:none}@media(max-width:900px){.transport{flex-wrap:wrap;gap:7px 10px;padding:8px 10px}.transport-main{order:1}.timecode{order:2;min-width:90px}.transport-options{order:3;margin-left:auto}.timeline-control{order:4;flex-basis:100%}.timeline-marks{bottom:65px}.player-hud{bottom:112px}.keyboard-hint{bottom:97px}.fullscreen-button{display:none}}@media(max-width:560px){.topbar{height:42px;padding:0 10px}.wordmark-sub{display:none}.resource-status{max-width:58%;font-size:9px}.replay-meta{top:52px;left:8px;font-size:9px}.input-indicators{top:52px;right:8px}.player-hud{left:8px;bottom:112px;min-width:0;max-width:calc(100vw - 16px);font-size:9px}.keyboard-hint{display:none}.transport{gap:6px}.transport-options{gap:4px}.control-button,.select-control{height:30px;padding-left:7px;padding-right:7px;font-size:10px}.camera-select .select-control{min-width:70px}.utility-button{padding:0 7px}.skip-button{min-width:36px}.timecode{min-width:78px;font-size:9px}.file-dialog{padding:22px}}#blockInfo{position:fixed;top:8px;left:50%;transform:translate(-50%);background:#000000c7;color:#e8e8e8;font:12px ui-monospace,monospace;padding:8px 12px;border-radius:6px;pointer-events:none;z-index:3;display:none;white-space:pre;line-height:1.55;max-width:60vw}#blockInfo b{color:#8aa2c0;font-weight:400}.flag-info{position:absolute;z-index:12;right:14px;bottom:91px;max-width:460px;max-height:55vh;overflow:auto;margin:0;padding:8px 10px;display:none;color:#c7c9cc;background:#0a0b0dd9;border:1px solid #3a3d42;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.crosshair{position:absolute;top:50%;left:50%;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;display:none;z-index:5}.crosshair.on{display:block}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#fff;mix-blend-mode:difference}.crosshair:before{left:50%;top:0;width:2px;height:100%;transform:translate(-50%)}.crosshair:after{top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}
