@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/GridStage/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/GridStage/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/GridStage/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/GridStage/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/GridStage/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/GridStage/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/GridStage/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/GridStage/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/GridStage/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/GridStage/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/GridStage/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/GridStage/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/GridStage/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/GridStage/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/GridStage/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--house:#191512;--panel:#221d19;--panel-edge:#3a322b;--floor:#2e2a26;--tungsten:#e8a84c;--spike:#e8d44c;--ink:#ece5db;--ink-dim:#9a8f82;--danger:#d95f5f;--font-display:"Bricolage Grotesque Variable", sans-serif;--font-body:"Instrument Sans Variable", sans-serif;--font-data:"IBM Plex Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--house);color:var(--ink);font-family:var(--font-body);font-size:13px;overflow:hidden}:focus-visible{outline:2px solid var(--tungsten);outline-offset:1px}.app{grid-template:"topbar topbar topbar"46px"cast stage props"1fr"timeline timeline timeline"210px/216px 1fr 248px;height:100%;display:grid;position:relative}.panel-resize{z-index:20;touch-action:none;position:absolute}.panel-resize-col{cursor:col-resize;width:7px;top:46px}.panel-resize-row{cursor:row-resize;height:7px;left:0;right:0}.panel-resize:hover,.panel-resize:active{background:#e8a84c4d}.topbar{background:var(--panel);border-bottom:1px solid var(--panel-edge);grid-area:topbar;align-items:center;gap:14px;padding:0 14px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);-webkit-user-select:none;user-select:none;font-size:17px;font-weight:600}.wordmark em{color:var(--tungsten);font-style:normal}.topbar-spacer{flex:1}.cast-panel{border-right:1px solid var(--panel-edge);grid-area:cast}.stage-area{background:var(--house);grid-area:stage;position:relative;overflow:hidden}.props-panel{border-left:1px solid var(--panel-edge);grid-area:props}.timeline-panel{border-top:1px solid var(--panel-edge);flex-direction:column;grid-area:timeline;display:flex}.side-panel{background:var(--panel);flex-direction:column;display:flex;overflow-y:auto}.panel-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-dim);-webkit-user-select:none;user-select:none;padding:12px 12px 8px;font-size:11px;font-weight:600}.panel-section{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.btn{font-family:var(--font-body);color:var(--ink);background:var(--floor);border:1px solid var(--panel-edge);cursor:pointer;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:5px 10px;font-size:13px;transition:border-color .12s ease-out}.btn:hover{border-color:var(--tungsten)}.btn-primary{background:var(--tungsten);border-color:var(--tungsten);color:#241a0c;font-weight:600}.btn-primary:hover{filter:brightness(1.08)}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger)}.field{flex-direction:column;gap:3px;display:flex}.field label,.field-label{color:var(--ink-dim);font-size:11px}.field-label{display:block}input[type=text],input[type=number],select{font-family:var(--font-body);color:var(--ink);background:var(--house);border:1px solid var(--panel-edge);border-radius:4px;width:100%;padding:5px 8px;font-size:13px}input[type=number]{font-family:var(--font-data);font-size:12px}input[type=range]{accent-color:var(--tungsten)}input[type=color]{border:1px solid var(--panel-edge);background:var(--house);cursor:pointer;border-radius:4px;width:28px;height:24px;padding:2px}.mono{font-family:var(--font-data);color:var(--ink-dim);font-size:12px}.cast-row{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:5px 12px;display:flex}.cast-row:hover{background:var(--floor)}.cast-row.selected{background:var(--floor);border-left-color:var(--tungsten)}.cast-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px}.cast-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cast-role{color:var(--ink-dim);font-size:11px}.cast-row-inactive{opacity:.45}.cast-row-inactive .cast-name{text-decoration:line-through}.timeline-toolbar{background:var(--panel);border-bottom:1px solid var(--panel-edge);align-items:center;gap:10px;padding:6px 12px;display:flex}.timeline-body{background:var(--panel);flex:1;position:relative;overflow:auto hidden}.timeline-content{min-width:100%;height:100%;position:relative}.timeline-body::-webkit-scrollbar{height:9px}.timeline-body::-webkit-scrollbar-thumb{background:var(--panel-edge);border-radius:5px}.zoom-controls{align-items:center;gap:4px;display:flex}.zoom-controls .btn{min-width:28px;padding:3px 9px}.btn:disabled{opacity:.4;cursor:default}.timecode{font-family:var(--font-data);color:var(--tungsten);-webkit-user-select:none;user-select:none;min-width:88px;font-size:12px}.section-flag{color:#7fd4c4;white-space:nowrap;background:#191512d9;border-radius:3px;align-items:center;gap:2px;max-width:108px;padding:1px 3px;font-size:11px;display:inline-flex;position:absolute;top:0;left:1px}.section-flag>span{text-overflow:ellipsis;overflow:hidden}.section-flag-x{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;line-height:1}.section-flag-x:hover{color:var(--danger)}.cam-presets{z-index:5;gap:6px;display:flex;position:absolute;top:12px;left:12px}.canvas-tools{z-index:2;gap:6px;display:flex;position:absolute;top:10px;right:10px}.view-toggle{min-width:40px}.app.view-mode{grid-template-columns:0 1fr 0}.app.view-mode .cast-panel,.app.view-mode .props-panel,.app.view-mode .edit-only{display:none}.presence{align-items:center;gap:4px;display:flex}.presence-dot{border:1.5px solid var(--house);width:12px;height:12px;box-shadow:0 0 0 1px var(--panel-edge);border-radius:50%;display:block}.presence-follow{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:2px}.presence-follow.following{box-shadow:0 0 0 2px var(--tungsten)}.comment-row{background:var(--house);border:1px solid var(--panel-edge);border-radius:4px;padding:6px 8px}.comment-head{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.comment-author{color:var(--tungsten);font-size:11px;font-weight:600}.comment-delete{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.comment-delete:hover{color:var(--danger)}.comment-text{overflow-wrap:break-word;font-size:12px;line-height:1.4}.comment-resolved{opacity:.55}.comment-resolved .comment-text{text-decoration:line-through}.empty-note{color:var(--ink-dim);padding:10px 12px;font-size:12px;line-height:1.5}.export-dialog{border:1px solid var(--panel-edge);background:var(--panel);width:min(520px,90vw);color:var(--ink);border-radius:8px;margin:auto;padding:0}.export-dialog::backdrop{background:#0a0806a6}.guide-dialog{border:1px solid var(--panel-edge);background:var(--panel);width:min(680px,92vw);max-height:86vh;color:var(--ink);border-radius:8px;margin:auto;padding:0;overflow:hidden}.guide-dialog[open]{flex-direction:column;display:flex}.guide-dialog::backdrop{background:#0a0806a6}.stage-canvas-slot{position:absolute;inset:0}.stage-area-split .stage-canvas-slot{left:50%}.ref-video-pip,.ref-video-splitpane{background:var(--panel);border:1px solid var(--panel-edge);z-index:5;flex-direction:column;display:flex}.ref-video-pip{border-radius:8px;width:340px;max-width:70%;position:absolute;overflow:hidden;box-shadow:0 6px 24px #00000073}.ref-video-resize{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 0 50%, var(--panel-edge) 50% 60%, transparent 60% 70%, var(--panel-edge) 70% 80%, transparent 80% 90%, var(--panel-edge) 90%);width:18px;height:18px;position:absolute;bottom:0;right:0}.ref-video-splitpane{border-width:0 1px 0 0;width:50%;position:absolute;top:0;bottom:0;left:0}.ref-video-divider{cursor:col-resize;touch-action:none;width:10px;position:absolute;top:0;bottom:0;right:-5px}.ref-video-divider:hover,.ref-video-divider:active{background:#e8a84c4d}.ref-video-head{cursor:grab;touch-action:none;align-items:center;gap:6px;padding:4px 6px;display:flex}.ref-video-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:1;font-size:11.5px;overflow:hidden}.ref-video-frame{flex:1;min-height:0;display:flex;position:relative}.ref-video-el{object-fit:contain;background:#000;flex:1;width:100%;min-height:0}.ref-video-frame-calibrating .ref-video-el{flex:none;width:78%;height:78%;margin:auto}.calibration-overlay{position:absolute;inset:0}.calibration-overlay svg{touch-action:none;display:block;overflow:visible}:is(.ref-video-pip:fullscreen,.ref-video-splitpane:fullscreen){border-radius:0;max-width:none}.ref-video-note{color:var(--ink);margin:0;padding:2px 6px 6px;font-size:11.5px}.review-report{border-top:1px solid var(--panel-edge);max-height:150px;padding-top:4px;overflow-y:auto}.ref-video-controls{align-items:center;gap:6px;padding:4px 6px;font-size:11.5px;display:flex}.loop-band{pointer-events:none;background:#609ce824;border-left:1px solid #609ce880;border-right:1px solid #609ce880;position:absolute;top:0;bottom:0}.loop-post{cursor:ew-resize;touch-action:none;z-index:3;width:10px;position:absolute;top:0;bottom:0}.loop-post-line{background:#78aff0e6;width:2px;position:absolute;top:0;bottom:0;left:4px}.loop-post:hover .loop-post-line,.loop-post:active .loop-post-line{background:#9cc4f5}.backup-nudge{z-index:20;border:1px solid var(--panel-edge);background:var(--panel);max-width:460px;color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 24px #00000073}.guide-body{padding:8px 16px 20px;overflow-y:auto}.guide-section{border-bottom:1px solid var(--panel-edge);padding:4px 0}.guide-section>summary{cursor:pointer;padding:8px 4px;font-size:1.02rem;font-weight:600;list-style:none}.guide-section>summary::-webkit-details-marker{display:none}.guide-section>summary:before{content:"▸";width:1.1em;color:var(--muted,#9a8f80);display:inline-block}.guide-section[open]>summary:before{content:"▾"}.guide-intro{color:var(--muted,#b7ab9c);margin:2px 4px 10px}.guide-demo{color:var(--accent,#e8843c);background:#e8843c1f;border-radius:6px;margin:2px 4px 12px;padding:6px 10px;font-size:.9rem}.guide-feature{border-left:2px solid var(--panel-edge);margin:0 0 10px;padding:4px 4px 12px 14px}.guide-feature h4{margin:4px 0 6px;font-size:.96rem}.guide-feature p{margin:3px 0;line-height:1.55}.guide-tip{color:var(--accent,#e8843c);font-size:.9rem}.guide-shot{border:1px solid var(--panel-edge);border-radius:6px;max-width:100%;margin:10px 0 2px;display:block}.export-dialog-head,.export-dialog-foot{justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.export-dialog-foot{border-top:1px solid var(--panel-edge);justify-content:flex-end}.export-dialog-body{border-top:1px solid var(--panel-edge);min-height:170px;display:flex}.export-kinds{border-right:1px solid var(--panel-edge);flex-direction:column;gap:6px;padding:12px;display:flex}.export-kind{text-align:left}.export-kind-active{border-color:var(--tungsten);color:var(--tungsten)}.export-settings{flex-direction:column;flex:1;gap:8px;padding:12px 16px;display:flex}.ui-easy .expert-only-ui{display:none!important}.dialog-fields{border-top:1px solid var(--panel-edge);flex-direction:column;gap:10px;min-width:300px;padding:12px 16px;display:flex}.beat-dialog{z-index:30;margin:0;position:fixed;inset:auto 16px 240px auto}.panel-fold>summary{cursor:pointer;letter-spacing:2px;text-transform:uppercase;color:#9a8f82;-webkit-user-select:none;user-select:none;padding:8px 0 4px;font-family:IBM Plex Mono,monospace;font-size:11px}.library-new-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.analyzer-warn{color:#e08052;font-size:12px;line-height:1.4}.btn-active{border-color:var(--tungsten);color:var(--tungsten)}.library-dialog{width:min(680px,94vw)}.library-body{border-top:1px solid var(--panel-edge);flex-direction:column;gap:10px;max-height:60vh;padding:12px 16px;display:flex;overflow-y:auto}.library-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.library-row{border:1px solid var(--panel-edge);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.library-row-main{flex-direction:column;gap:4px;min-width:0;display:flex}.library-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.library-current{color:var(--tungsten);font-weight:400}.library-tags{width:220px}.library-row-actions{flex-shrink:0;gap:6px;display:flex}input.topbar-title{flex-shrink:0;width:200px}body{overscroll-behavior:none}button,input,select,label{touch-action:manipulation}@media (width<=760px){.app,.app.view-mode{grid-template:"topbar"46px"stage"1fr"timeline"170px/1fr}.topbar,.timeline-toolbar{scrollbar-width:none;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}.timeline-toolbar::-webkit-scrollbar{display:none}.topbar{gap:10px;padding:0 10px}input.topbar-title{width:130px}.timeline-panel{min-width:0}.app-narrow .cast-panel,.app-narrow .props-panel{z-index:40;visibility:hidden;width:min(82vw,320px);transition:transform .16s ease-out,visibility 0s .16s;position:fixed;top:46px;bottom:0;box-shadow:0 0 24px #00000080}.app-narrow .cast-panel{left:0;transform:translate(-100%)}.app-narrow .props-panel{right:0;transform:translate(100%)}.app-narrow.cast-open .cast-panel,.app-narrow.props-open .props-panel{visibility:visible;transition:transform .16s ease-out;transform:none}.drawer-tab{z-index:30;writing-mode:vertical-rl;letter-spacing:.08em;padding:12px 5px;position:fixed;top:50%;transform:translateY(-50%)}.drawer-tab-cast{border-left:none;border-radius:0 6px 6px 0;left:0}.drawer-tab-props{border-right:none;border-radius:6px 0 0 6px;right:0}.drawer-backdrop{z-index:35;cursor:pointer;background:#0a080680;border:none;padding:0;position:fixed;inset:46px 0 0}}@media (pointer:coarse){.btn{padding:9px 13px;font-size:14px}input[type=text],input[type=number],select{padding:8px 10px;font-size:16px}.cast-row{padding:9px 12px}.zoom-controls .btn{padding:7px 11px}.panel-resize-col{width:14px}.panel-resize-row{height:14px}.section-flag-x,.comment-delete{padding:2px 5px;font-size:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
