:root{color:#e8eaed;background:#111314;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,a{color:inherit;font:inherit}.viewer{position:relative;width:100%;height:100%;background:#202224}.viewer canvas{display:block;width:100%;height:100%}.viewer.capturing canvas{position:absolute;inset:0;width:auto;height:auto;max-width:100%;max-height:100%;margin:auto}.scene-tooltip{position:absolute;top:0;left:0;z-index:2;max-width:240px;padding:7px 9px;border:1px solid rgb(255 255 255 / 18%);border-radius:6px;background:#111314d6;color:#f4f7fb;font-size:12px;line-height:1.2;opacity:0;pointer-events:none;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .12s ease}.scene-tooltip.visible{opacity:1}.viewer-toolbar{position:absolute;top:16px;right:16px;z-index:4;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;max-width:calc(100% - 32px);transition:opacity .16s ease}.rotate-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.rotate-toggle.active{border-color:#fbbc04b3;background:#fbbc04;color:#181a1b}.mode-toggle{min-width:56px;min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.mode-toggle.active{border-color:#4285f4cc;background:#4285f4;color:#fff}.shot-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.shot-toggle.active{border-color:#34a853cc;background:#34a853;color:#fff}.help-toggle{flex:0 0 auto;width:34px;height:34px;border:1px solid rgb(255 255 255 / 16%);border-radius:50%;background:#111314c2;color:#dfe4ea;cursor:pointer;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.help-toggle.active{border-color:#fbbc04b3;background:#fbbc04;color:#181a1b}.shot-editor-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.shot-editor-toggle.active{border-color:#fbbc04b3;background:#fbbc04;color:#181a1b}.follow-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.follow-toggle.active{border-color:#37e7ffb3;background:#37e7ff;color:#10191c}.fx-toggle,.cine-toggle{min-height:34px;padding:0 12px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#111314c2;color:#dfe4ea;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .16s ease}.fx-toggle.active,.cine-toggle.active{border-color:#fff6;background:#ffffff29;color:#f4f7fb}.fx-toggle.recording{border-color:#ff3d57cc;background:#ff3d57;color:#fff}.viewer-panels{position:absolute;top:16px;left:16px;z-index:3;display:flex;flex-direction:column;gap:8px;align-items:flex-start;max-width:calc(100% - 32px);pointer-events:none;transition:opacity .16s ease}.follow-panel,.fx-panel,.cine-panel,.rig-panel{display:none;width:min(260px,100%);padding:12px;border:1px solid rgb(255 255 255 / 14%);border-radius:10px;background:#111314e0;font-size:12px;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.follow-panel.open,.fx-panel.open,.cine-panel.open,.rig-panel.open{display:block}.rig-panel{position:absolute;top:0;bottom:0;left:0;z-index:4;flex-direction:column;width:min(340px,92vw);border-width:0 1px 0 0;border-radius:0}.rig-panel.open{display:flex}.viewer:has(.rig-panel.open) .viewer-panels{left:calc(min(340px,92vw) + 12px)}.rig-scroll{flex:1 1 auto;min-height:0;padding-right:4px;overflow-y:auto}.rig-section-title{margin:12px 0 6px;padding-top:10px;border-top:1px solid rgb(255 255 255 / 10%);color:#dfe4ea;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.rig-presets{max-height:min(30vh,280px)}.rig-group-label{margin:6px 0 2px;color:#7f8892;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.rig-transport{gap:8px;justify-content:flex-start}.rig-play{min-width:44px}.rig-time{flex:1;min-width:0}.rig-scrub{width:100%;height:18px;margin:0 0 4px;accent-color:#37e7ff;background:transparent}.rig-value{min-width:86px}.rig-copy{flex-shrink:0}.rig-save-row,.rig-share-row{justify-content:flex-start}.rig-save-row .shot-text{flex:1 1 auto;min-width:0}.rig-share-row>button{flex:1 1 auto}.cine-panel{width:min(320px,100%)}.cine-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,460px);margin-top:8px;overflow-y:auto}.cine-entry{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:7px 8px;border:1px solid rgb(255 255 255 / 10%);border-radius:8px;background:#ffffff0a}.cine-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.cine-meta strong{color:#eef2f7;font-size:11px}.cine-meta span{color:#8b94a0;font-size:10px;line-height:1.3}.cine-actions{display:flex;flex-shrink:0;gap:4px}.fx-note{margin:6px 0 0;color:#7f8892;font-size:10px;line-height:1.35}.fx-record-row{gap:8px}.fx-record{min-height:28px;padding:0 12px;border:1px solid rgb(255 61 87 / 55%);border-radius:5px;background:#ff3d5729;color:#ffd7dd;cursor:pointer;font-size:11px}.fx-record.active{border-color:#ff3d57e5;background:#ff3d57;color:#fff}.fx-record:disabled{border-color:#ffffff24;background:#ffffff0f;color:#6c757e;cursor:default}.fx-status{flex:1;color:#9aa4ae;font-size:11px;font-variant-numeric:tabular-nums;text-align:right}.follow-modes{flex-wrap:wrap}.follow-slider{flex:1;min-width:0;height:18px;margin:0;accent-color:#37e7ff;background:transparent}.follow-value{min-width:46px;color:#9aa4ae;font-size:11px;font-variant-numeric:tabular-nums;text-align:right}.follow-hints{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:10px 0 0;padding-top:10px;border-top:1px solid rgb(255 255 255 / 10%);color:#9aa4ae;font-size:11px}.follow-hints dt{color:#dfe4ea;font-variant-numeric:tabular-nums;white-space:nowrap}.follow-hints dd{margin:0}.help-panel{position:absolute;top:58px;right:16px;z-index:6;width:min(280px,calc(100% - 32px));padding:12px;border:1px solid rgb(255 255 255 / 16%);border-radius:8px;background:#111314d6;color:#e8edf3;font-size:12px;line-height:1.35;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease}.help-panel.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.viewer.ui-hidden .viewer-toolbar,.viewer.ui-hidden .help-panel,.viewer.ui-hidden .help-panel.visible,.viewer.ui-off .viewer-toolbar,.viewer.ui-off .help-panel,.viewer.ui-off .help-panel.visible,.viewer.ui-off .shot-editor,.viewer.ui-off .viewer-panels,.viewer.ui-off .rig-panel,.viewer.ui-off .scene-tooltip,.viewer.ui-off .scene-tooltip.visible{opacity:0;pointer-events:none}.help-panel strong{display:block;margin-bottom:6px;font-size:13px}.help-panel p{margin:0 0 10px;color:#b9c1ca}.help-panel dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:0}.help-panel dt{color:#fbbc04;font-weight:700}.help-panel dd{margin:0;color:#dfe4ea}.shot-editor{display:none}.shot-editor.open{display:block}.shot-panel,.shot-timeline{position:absolute;z-index:3;border:1px solid rgb(255 255 255 / 14%);border-radius:10px;background:#111314e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.shot-panel{top:62px;right:16px;bottom:92px;width:min(330px,calc(100% - 32px));padding:12px;overflow-y:auto;font-size:12px}.shot-panel-title{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px;color:#9aa4ae;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.shot-panel-title:not(:first-child){margin-top:16px;padding-top:12px;border-top:1px solid rgb(255 255 255 / 10%)}.shot-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.shot-row.is-hidden{display:none}.shot-row-label{color:#b9c1ca}.shot-segmented{display:flex;padding:2px;border-radius:6px;background:#ffffff12}.shot-seg{padding:4px 10px;border:0;border-radius:4px;background:transparent;color:#b9c1ca;cursor:pointer;font-size:11px}.shot-seg.active{background:#ffffff24;color:#f4f7fb}.shot-select,.shot-text,.shot-number{min-width:0;padding:4px 6px;border:1px solid rgb(255 255 255 / 14%);border-radius:5px;background:#ffffff0f;color:#e8eaed;font:inherit;font-size:11px}.shot-select{flex:1 1 auto;max-width:190px}.shot-select--sm{max-width:96px}.shot-number{width:100%;text-align:right}.shot-carclock{display:flex;flex:1 1 auto;gap:6px;justify-content:flex-end}.shot-carclock-field{display:flex;gap:4px;align-items:center;width:74px;color:#8b94a0;font-size:10px}.shot-number::-webkit-outer-spin-button,.shot-number::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.shot-icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid rgb(255 255 255 / 14%);border-radius:5px;background:#ffffff0f;color:#dfe4ea;cursor:pointer;font-size:12px;line-height:1}.shot-icon:hover{background:#ffffff24}.shot-icon.active{border-color:#fbbc04b3;background:#fbbc04;color:#181a1b}.shot-primary,.shot-wide{padding:6px 12px;border:1px solid rgb(66 133 244 / 60%);border-radius:6px;background:#4285f4;color:#fff;cursor:pointer;font-size:12px;white-space:nowrap}.shot-wide{width:100%;margin-top:8px;border-color:#ffffff24;background:#ffffff14;color:#e8eaed}.shot-wide:hover{background:#ffffff29}.shot-kf-list{display:flex;flex-direction:column;gap:6px}.shot-kf{padding:8px;border:1px solid rgb(255 255 255 / 10%);border-radius:7px;background:#ffffff0a;cursor:pointer}.shot-kf.is-selected{border-color:#fbbc048c;background:#fbbc0414}.shot-kf-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.shot-kf-id{display:flex;flex:0 0 auto;align-items:center;gap:6px;color:#e8eaed}.shot-kf-dot{width:7px;height:7px;border-radius:50%;background:#fbbc04}.shot-kf-controls{display:flex;align-items:center;gap:4px}.shot-kf-time{display:flex;align-items:center;gap:3px;width:62px;color:#9aa4ae}.shot-kf-body{margin-top:10px;padding-top:8px;border-top:1px solid rgb(255 255 255 / 10%);cursor:default}.shot-kf-label{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 4px;color:#9aa4ae;font-size:11px}.shot-kf-value{color:#fbbc04}.shot-kf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.shot-axis{display:flex;align-items:center;gap:4px;color:#7e8892}.shot-range{width:100%;accent-color:#fbbc04}.shot-timeline{right:16px;bottom:16px;left:16px;display:flex;align-items:center;gap:10px;padding:10px 12px}.shot-transport{display:flex;flex:0 0 auto;align-items:center;gap:4px}.shot-play{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:50%;background:#fbbc04;color:#181a1b;cursor:pointer;font-size:12px}.shot-play.is-playing{background:#e8eaed}.shot-scrubber{position:relative;flex:1 1 auto;min-width:80px;padding-bottom:10px}.shot-scrub{display:block;width:100%;margin:0;accent-color:#fbbc04}.shot-markers{position:absolute;right:8px;bottom:0;left:8px;height:10px}.shot-marker{position:absolute;top:0;width:9px;height:9px;padding:0;border:1px solid rgb(17 19 20 / 80%);border-radius:2px;background:#9aa4ae;cursor:ew-resize;transform:translate(-50%) rotate(45deg)}.shot-marker.is-active{background:#fbbc04}.shot-time{flex:0 0 auto;color:#b9c1ca;font-size:11px;font-variant-numeric:tabular-nums}.shot-menu-wrap{position:relative;flex:0 0 auto}.shot-menu{position:absolute;right:0;bottom:calc(100% + 8px);display:none;min-width:150px;padding:4px;border:1px solid rgb(255 255 255 / 14%);border-radius:8px;background:#181a1bf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.shot-menu.open{display:block}.shot-menu-item{display:block;width:100%;padding:7px 10px;border:0;border-radius:5px;background:transparent;color:#e8eaed;cursor:pointer;font-size:12px;text-align:left}.shot-menu-item:hover{background:#ffffff1a}.shot-modal{position:absolute;inset:0;z-index:7;display:none;align-items:center;justify-content:center;background:#090a0b9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.shot-modal.open{display:flex}.shot-modal-card{width:min(440px,calc(100% - 32px));max-height:min(70%,520px);overflow-y:auto;padding:14px;border:1px solid rgb(255 255 255 / 14%);border-radius:10px;background:#181a1bfa;font-size:12px}.shot-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.shot-save-row{display:flex;gap:8px;margin-bottom:12px}.shot-save-row .shot-text{flex:1 1 auto}.shot-entry-list{display:flex;flex-direction:column;gap:6px}.shot-entry{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid rgb(255 255 255 / 10%);border-radius:7px;background:#ffffff0a}.shot-entry-meta{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.shot-entry-meta span{color:#7e8892;font-size:11px}.shot-entry .shot-wide{width:auto;margin-top:0}.shot-empty{margin:0;color:#7e8892}.shot-toast{position:absolute;bottom:92px;left:50%;z-index:8;padding:8px 14px;border:1px solid rgb(255 255 255 / 16%);border-radius:6px;background:#181a1bf0;color:#f4f7fb;font-size:12px;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translate(-50%,6px);transition:opacity .14s ease,transform .14s ease}.shot-toast.visible{opacity:1;transform:translate(-50%)}.shot-toast.is-error{border-color:#ea4335b3;color:#ffd7d2}.shot-note{margin:0 0 10px;color:#9aa4ae;font-size:11px;line-height:1.4}.shot-note:last-child{margin-bottom:0}.shot-progress{height:6px;margin-bottom:10px;overflow:hidden;border-radius:3px;background:#ffffff1a}.shot-progress-fill{width:0;height:100%;background:#fbbc04;transition:width .12s linear}.shot-menu-separator{height:1px;margin:4px 6px;background:#ffffff1f}.shot-primary:disabled{border-color:#ffffff1f;background:#ffffff14;color:#7e8892;cursor:not-allowed}.is-hidden{display:none}
