@font-face{font-family:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(./Anton-400-latin-ext-BG9LYhSW.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(./Anton-400-latin-BbqyLdY8.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Narrow;font-style:normal;font-weight:600 700;font-display:swap;src:url(./ArchivoNarrow-600-700-latin-ext-DuI8e7dn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Narrow;font-style:normal;font-weight:600 700;font-display:swap;src:url(./ArchivoNarrow-600-700-latin-wfS_k_I9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-weight:400;font-display:swap;src:url(./IBMPlexMono-400-latin-ext-C05TWSE2.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./IBMPlexMono-400-latin-BJoXLJYV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-weight:500;font-display:swap;src:url(./IBMPlexMono-500-latin-ext-BQJS6Ovj.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./IBMPlexMono-500-latin-C820gu2e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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 Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(./IBMPlexSans-400-600-latin-ext-KUPCjGsn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 600;font-display:swap;src:url(./IBMPlexSans-400-600-latin-BD64o3ke.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #0b0c0e;--panel: #111316;--raise: #1a1d21;--line: #2a2e34;--line-soft: #1f2227;--floor: #0f1114;--wall: #5a5f68;--structure: #8a9099;--text: #eceae4;--muted: #a3a6ac;--sodium: #e9a23b;--sodium-dim: #2a2210;--cyan: #6cc4d4;--cyan-dim: #0f2a30;--game: #a592f2;--game-text: #c4b8ff;--game-dim: #1a1730;--signal: #f0524f;--clear: #8fd3b4;--clear-dim: #0f1a17;--grp-moss: #9fbf73;--grp-rose: #d993b5;--grp-sky: #85a3ec;--grp-sand: #cfc093;--grp-slate: #a9b6c9;--level-up: #1d2127;--level-0: #111418;--level-down: #08090b;--set-mode-fg: #f0524f;--set-mode-bg: #000000;--print-ink: #000000;--print-paper: #ffffff;--print-rule: #999999;--f-display: "Archivo Narrow", "Arial Narrow", sans-serif;--f-brand: "Anton", Impact, "Haettenschweiler", "Arial Narrow Bold", sans-serif;--f-ui: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-ui: 13px;--fs-label: 10px;--fs-title: 14px;--radius-s: 4px;--radius-m: 6px;--radius-l: 10px;--target-desktop: 44px;--target-touch: 52px;--stroke-icon: 1.5px;color-scheme:dark}.print-plan{--ink: #ffffff;--panel: #ffffff;--raise: #ececec;--line: #d2d2d2;--line-soft: #e6e6e6;--floor: #f7f7f5;--wall: #1e2024;--structure: #50555d;--text: #000000;--muted: #3c3f44;--sodium: #a86200;--sodium-dim: #f5e4c8;--cyan: #13778a;--cyan-dim: #d3ecf1;--game: #5a42c8;--game-text: #47339f;--game-dim: #e5e0f8;--signal: #c42825;--clear: #2a7d59;--clear-dim: #dbeee5;--grp-moss: #557a2a;--grp-rose: #a8456f;--grp-sky: #3559b8;--grp-sand: #7d6a2c;--grp-slate: #4f5d72;--level-up: #e9e9e7;--level-0: #f7f7f5;--level-down: #ffffff}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--text);font-family:var(--f-ui);font-size:var(--fs-ui);touch-action:manipulation}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--sodium);outline-offset:2px}.shell{height:100%;box-sizing:border-box;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:grid;grid-template-rows:52px minmax(0,1fr) var(--shotlist-h, 220px);grid-template-columns:minmax(0,1fr);position:relative}.topbar{display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--line-soft)}.brand{font-family:var(--f-brand);font-size:26px;line-height:1;letter-spacing:.04em}.muted{color:var(--muted)}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.workspace{display:grid;grid-template-columns:56px minmax(0,1fr) min(var(--inspector-w, 300px),max(25vw,260px));min-height:0;position:relative}.rail{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;background:var(--panel);border-right:1px solid var(--line-soft)}.tool{width:var(--target-desktop);height:var(--target-desktop);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.tool[aria-pressed=true]{background:var(--line);color:var(--text)}.stage{position:relative;min-width:0;display:flex;align-items:center;justify-content:center}.inspector,.shotlist{background:var(--panel);padding:16px}.inspector{border-left:1px solid var(--line-soft)}.shotlist{border-top:1px solid var(--line-soft)}.label{font-family:var(--f-mono);font-size:var(--fs-label);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.topbar-actions{margin-left:auto;display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar-actions>*{flex:none}.btn{min-height:var(--target-desktop);padding:0 12px;display:inline-flex;align-items:center;border-radius:var(--radius-m);color:var(--text);cursor:pointer}.btn:hover{background:var(--line)}.btn:disabled{color:var(--muted);cursor:default;background:none}.btn:has(input:focus-visible){outline:2px solid var(--sodium);outline-offset:2px}.error-banner{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;z-index:10;transform:translate(-50%);width:max-content;max-width:min(720px,calc(100% - 32px));display:flex;align-items:center;gap:16px;padding:4px 4px 4px 16px;background:var(--panel);border:1px solid var(--signal);border-radius:var(--radius-m);color:var(--signal)}.error-banner span{flex:1}.confirm-banner{position:fixed;top:calc(52px + env(safe-area-inset-top));left:0;right:0;z-index:11;display:flex;align-items:center;gap:8px;padding:4px 16px;background:var(--panel);border-bottom:1px solid var(--line);color:var(--text)}.confirm-banner span{flex:1}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.stage{overflow:hidden}.plan{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--ink);--floor-fill: var(--level-0)}.plan.lvl-up{--floor-fill: var(--level-up)}.plan.lvl-down{--floor-fill: var(--level-down)}.plan.panning{cursor:grabbing}.plan *{vector-effect:non-scaling-stroke}.plan [data-id],.plan [data-handle]{cursor:pointer}.plan [data-locked]{cursor:default}.plan .hit{fill:transparent;stroke:none}.floor{fill:var(--floor-fill)}.grid{stroke:var(--line-soft);stroke-width:1}.grid.major{stroke:var(--line)}.plan .wall-line,.plan .glass-core{vector-effect:none;fill:none;stroke:var(--wall);stroke-linecap:square;stroke-linejoin:miter}.plan .wall-half .wall-line{stroke:url(#hatch)}.plan .wall-glass .wall-line{stroke:var(--structure)}.plan .glass-core{stroke:var(--floor-fill)}.plan .hatch-bg{fill:var(--raise)}.plan .hatch-line{vector-effect:none;stroke:var(--wall);stroke-width:.03}.plan .opening-cut{vector-effect:none;stroke:var(--floor-fill)}.opening line:not(.opening-cut):not(.opening-hit),.opening path:not(.hit){fill:none;stroke:var(--structure);stroke-width:1.5}.obj rect,.obj line{fill:var(--raise);stroke:var(--structure);stroke-width:1.5}.note .note-mark{fill:var(--raise);stroke:var(--structure);stroke-width:1.5}.plan .note-text{fill:var(--text);text-anchor:start;dominant-baseline:central}.plan .note.selected .note-text{fill:var(--sodium)}.prop .prop-badge{fill:var(--raise);stroke:var(--text);stroke-width:1.5;vector-effect:non-scaling-stroke}.prop .prop-size{fill:none;stroke:var(--muted);stroke-width:1;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.prop:not(.hero) .prop-badge{fill:none;stroke:var(--muted);stroke-width:1.25}.prop .prop-glyph{fill:none;stroke:var(--text);stroke-width:1.1;stroke-linecap:square;vector-effect:non-scaling-stroke;pointer-events:none}.plan .prop.selected .prop-badge,.plan .prop.selected .prop-glyph{stroke:var(--sodium)}.light circle:not(.hit){fill:var(--sodium)}.light .beam{fill:none;stroke:var(--sodium);stroke-width:1.25;stroke-linecap:square;vector-effect:non-scaling-stroke}.plan .light.selected circle:not(.hit){stroke:var(--text);stroke-width:1.5;vector-effect:non-scaling-stroke}.actor circle:not(.hit){fill:var(--cyan-dim);stroke:var(--cyan);stroke-width:1.5}.actor path{fill:var(--cyan)}.actor.stand-in circle:not(.hit){fill:none;stroke-dasharray:3 2}.attach-line{stroke:var(--sodium);stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke;pointer-events:none}.camera rect:not(.hit){fill:var(--sodium-dim);stroke:var(--sodium);stroke-width:1.5}.plan .label{font-family:var(--f-mono);font-size:var(--label, .2px);text-anchor:middle;dominant-baseline:hanging;fill:var(--cyan);paint-order:stroke fill;stroke:var(--ink);stroke-width:3;stroke-linejoin:round}.plan .wall.selected .wall-line,.plan .contour.selected .contour-line,.selected rect:not(.hit),.selected circle:not(.hit),.selected line:not(.opening-cut),.selected path{stroke:var(--sodium)}.handle-arm{stroke:var(--sodium);stroke-width:1;stroke-dasharray:3 3}.handle{fill:var(--ink);stroke:var(--sodium);stroke-width:1.5}.handle.mid{opacity:.6}.level-select{min-height:var(--target-desktop);padding:0 8px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-m)}.plan.tool-actor,.plan.tool-prop,.plan.tool-path{cursor:crosshair}.extra circle:not(.hit){fill:none;stroke:var(--structure);stroke-width:1.5}.extra-area polygon{fill:var(--raise);fill-opacity:.5;stroke:var(--structure);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.plan .extra-area.selected polygon{stroke:var(--sodium)}.extra-area .crowd-flow{fill:none;stroke:var(--cyan);stroke-width:1.5;stroke-linecap:square;vector-effect:non-scaling-stroke;pointer-events:none}.plan .crowd-label{fill:var(--muted);text-anchor:middle;pointer-events:none}.path-line{fill:none;stroke:var(--cyan);stroke-width:1.5;stroke-dasharray:6 4;opacity:.8}.path-arrow{fill:var(--cyan)}.path-key circle:not(.hit){fill:var(--ink);stroke:var(--cyan);stroke-width:1.5}.path-key.active circle:not(.hit){fill:var(--cyan)}.path-bend{cursor:grab}.path-bend rect{fill:var(--ink);stroke:var(--cyan);stroke-width:1.5}.path-bend:hover rect{fill:var(--cyan)}.ghost{pointer-events:none;--ghost: var(--cyan)}.ghost.extra{--ghost: var(--structure)}.ghost.camera{--ghost: var(--sodium)}.ghost circle,.ghost rect,.ghost line{fill:none;stroke:var(--ghost);stroke-width:1.5}.ghost .ghost-line{stroke-width:1;stroke-dasharray:2 4}.ghost.prev{opacity:.35}.ghost.prev circle,.ghost.prev rect{stroke-dasharray:4 3}.ghost.next{opacity:.65}.plan .ghost-label{fill:var(--ghost);font-size:var(--label-s, .16px)}.extra-path .path-line,.extra-path .path-key circle:not(.hit),.extra-path .path-bend rect{stroke:var(--structure)}.extra-path .path-arrow,.extra-path .path-key.active circle:not(.hit),.extra-path .path-bend:hover rect{fill:var(--structure)}.cam-path .path-line,.cam-path .path-key circle:not(.hit),.cam-path .path-bend rect{stroke:var(--sodium)}.cam-path .path-arrow,.cam-path .path-key.active circle:not(.hit),.cam-path .path-bend:hover rect{fill:var(--sodium)}.plan [data-key]{cursor:move}.plan .key-label{dominant-baseline:auto;font-size:var(--label-s, .16px)}.plan-overlay{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;pointer-events:none}.plan-overlay>*{flex:none;pointer-events:auto}.plan-overlay>.tool-options{flex:0 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.plan-overlay>.tool-options>*{flex-shrink:0}.beats{display:flex;align-items:center;gap:2px;padding:0 4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m)}.beat{min-width:var(--target-desktop);min-height:var(--target-desktop);border-radius:var(--radius-s);color:var(--muted)}.beat[aria-pressed=true]{background:var(--cyan-dim);color:var(--cyan)}.beat-label{padding:0 8px;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-s);font:inherit;min-width:12em}.beat-time{width:5.5em;min-height:36px;padding:0 6px;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.beat-label:hover,.beat-label:focus{border-color:var(--line);color:var(--text)}.inspector-section{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line-soft)}.field{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.field input,.project-panel input,.project-panel select{min-width:0;width:100%;min-height:36px;padding:0 8px;font:inherit;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.field input.mono,.project-panel input.mono{font-family:var(--f-mono)}.frustum{fill:var(--sodium);fill-opacity:.04;stroke:var(--sodium);stroke-opacity:.3;stroke-width:1;pointer-events:visiblePainted}.frustum.selected{fill-opacity:.16;stroke-opacity:.7}.frustum:not(.selected),.dof.other .dof-band{shape-rendering:optimizeSpeed}.plan .cam-label{fill:var(--sodium)}.aim-point path{stroke:var(--sodium);stroke-width:1.5}.plan [data-aim]{cursor:move}.field select{min-width:0;width:100%;min-height:36px;padding:0 6px;font:inherit;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.field select.mono{font-family:var(--f-mono)}.lens-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.lens{min-height:var(--target-desktop);border:1px solid var(--line);border-radius:var(--radius-s);color:var(--muted)}.lens[aria-pressed=true]{background:var(--sodium-dim);border-color:var(--sodium);color:var(--sodium)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.readout th{text-align:left;font-weight:400;padding-right:12px}.readout td{text-align:right}.inspector{overflow-y:auto}.contour-line{fill:none;stroke:var(--structure);stroke-width:1;stroke-dasharray:2 4}.level-edge-line,.level-edge-tick{fill:none;stroke:var(--structure);stroke-width:1.5;vector-effect:non-scaling-stroke}.level-edge-tick{stroke-width:1}.plan .level-edge.selected .level-edge-line,.plan .level-edge.selected .level-edge-tick{stroke:var(--sodium)}.plan .hit-line{fill:none;stroke:transparent;stroke-width:12}.plan .contour-label,.plan .struct-label{fill:var(--muted);font-size:var(--label-s, .16px);dominant-baseline:auto}.plan .struct-label{dominant-baseline:hanging}.obj .up-arrow,.obj .chevron{fill:none;stroke:var(--structure);stroke-width:1.5}.draft polyline{fill:none;stroke:var(--text);stroke-width:1.5;stroke-dasharray:4 3}.marquee{fill:none;stroke:var(--sodium);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.draft-close{fill:none;stroke:var(--text);stroke-width:1;opacity:.5}.plan.tool-wall,.plan.tool-camera{cursor:crosshair}.plan [data-vertex]{cursor:move}.beat{padding:0 8px}.btn-row{display:flex;flex-wrap:wrap;gap:4px}.btn-row .btn{border:1px solid var(--line)}.check{display:flex;align-items:center;gap:8px;min-height:var(--target-desktop)}.plan .opening-hit{vector-effect:none;stroke:transparent}.opening:hover line:not(.opening-cut):not(.opening-hit),.opening:hover path:not(.hit){stroke:var(--text)}.plan .opening{cursor:ew-resize}.axis-line{fill:none;stroke:var(--group, var(--text));stroke-width:1;stroke-dasharray:8 5;opacity:.6}.group.selected .axis-line{stroke:var(--sodium);opacity:1}.plan .group-label{fill:var(--group, var(--muted));font-size:var(--label-s, .16px);dominant-baseline:auto}.camera.crossing rect:not(.hit){stroke:var(--signal)}.plan .camera.crossing .cam-label{fill:var(--signal)}.frustum.crossing{fill:var(--signal);stroke:var(--signal)}.warn{color:var(--signal)}.notice{color:var(--muted)}.inspector fieldset{border:0;margin:0;padding:0}.shotlist{display:flex;flex-direction:column;gap:8px;min-height:0;overflow:hidden;border-top:1px solid var(--line-soft)}.shotlist-bar{display:flex;align-items:center;gap:12px}.shotlist-bar .label{margin-right:auto}.new-column{min-height:36px;width:160px;padding:0 8px;font:inherit;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.column-picker{display:flex;flex-wrap:wrap;gap:0 16px;padding:4px 8px;background:var(--raise);border-radius:var(--radius-m)}.shotlist-scroll{overflow:auto;min-height:0}.th-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:none;border:0;padding:0;width:100%;min-height:var(--target-desktop);text-align:left;cursor:pointer}.shot-table{border-collapse:collapse;width:100%}.shot-table th{position:sticky;top:0;background:var(--panel);text-align:left;padding:4px 10px;white-space:nowrap;font-weight:400}.shot-table td{padding:4px 10px;border-top:1px solid var(--line-soft);white-space:nowrap}.shot-table td.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.shot-table tbody tr{cursor:pointer}.shot-table [draggable=true]{cursor:grab}.shot-table tbody tr:hover{background:var(--raise)}.shot-table tbody tr[aria-selected=true]{background:var(--sodium-dim)}.cell-input{width:100%;min-width:80px;font:inherit;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-s)}.cell-input:focus,.cell-input:hover{border-color:var(--line)}.export-dialog{width:min(640px,92vw);padding:20px;display:grid;gap:14px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l)}.export-dialog:not([open]){display:none}.options{max-height:90vh;overflow-y:auto}.options-keys{display:grid;max-height:40vh;overflow-y:auto}.options-key{display:grid;grid-template-columns:80px 1fr minmax(88px,auto);align-items:center;gap:8px;min-height:44px}.options-key kbd{justify-self:center;font-family:var(--f-mono);color:var(--muted)}.palette{align-self:start;margin-top:12vh;gap:8px}.palette input{width:100%;min-height:44px}.palette ul{margin:0;padding:0;list-style:none;max-height:50vh;overflow-y:auto}.palette li{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:8px;min-height:44px;padding:0 10px;border-radius:var(--radius-m);cursor:pointer}.palette li[aria-selected=true]{background:var(--raise)}.palette li.blocked{cursor:default;color:var(--muted)}.palette kbd{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--muted)}.hint-box{position:fixed;z-index:50;max-width:320px;padding:8px 10px;background:var(--raise);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-m);font:var(--fs-ui) / 1.4 var(--f-ui);transform:translate(-50%);pointer-events:none}.hint-box.above{transform:translate(-50%,-100%)}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.tour-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 70%,transparent)}.tour-spot{position:absolute;border:2px solid var(--sodium);border-radius:var(--radius-m);box-shadow:0 0 0 9999px color-mix(in srgb,var(--ink) 70%,transparent);pointer-events:none}.tour-card{position:absolute;width:360px;max-width:calc(100vw - 24px);padding:14px 16px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-l)}.tour-card.centred{left:50%;top:50%;transform:translate(-50%,-50%)}.tour-card p{margin:8px 0 12px;line-height:1.45}.export-dialog::backdrop{background:color-mix(in srgb,var(--ink) 70%,transparent)}.export-dialog select{min-height:36px;font:inherit;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.column-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}.btn.primary{border:1px solid var(--sodium);color:var(--sodium);font-family:var(--f-mono)}.btn.primary:disabled{border-color:var(--line)}.print-sheet{display:none}@media print{@page{size:A4 landscape;margin:12mm}html,body{height:auto}body>:not(.print-sheet){display:none!important}.print-sheet{display:block;width:100%;color:var(--print-ink);background:var(--print-paper);font-family:var(--f-ui);font-size:9pt}.print-sheet h1{font-family:var(--f-display);font-size:16pt;margin:0 0 2mm}.print-sheet table{width:100%;border-collapse:collapse}.print-sheet th,.print-sheet td{border-bottom:.3mm solid var(--print-rule);padding:1.2mm 2mm;text-align:left;font-variant-numeric:tabular-nums}.print-sheet th{border-bottom:.5mm solid var(--print-ink)}.print-plan{break-after:page;page-break-after:always}.print-section+.print-section{break-before:page;page-break-before:always}.print-sheet h2{font-family:var(--f-display);font-size:12pt;margin:0 0 2mm}.print-plan .plan{position:static;display:block;width:100%;height:165mm}}.plan .prop-label{fill:var(--muted);dominant-baseline:auto}.dof-band{fill:var(--sodium);fill-opacity:.14;stroke:var(--sodium);stroke-opacity:.5;stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke;pointer-events:none}.dof.other{opacity:.45}.focus-arc{fill:none;stroke:var(--sodium);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.focus-mark path{stroke:var(--sodium);stroke-width:1.5;vector-effect:non-scaling-stroke}.focus-mark .label{fill:var(--sodium)}.focus-mark:not(.active){opacity:.6}.plan [data-mark]{cursor:move}.state-row,.mark-row{display:grid;grid-template-columns:3em 1fr;align-items:center;gap:8px}.mark-row{grid-template-columns:4.5em 4.5em 1fr auto}.state-row.active .mono{color:var(--text);font-weight:600}.workspace.with-project{grid-template-columns:56px var(--project-w, 300px) minmax(0,1fr) min(var(--inspector-w, 300px),max(25vw,260px))}.project-panel{display:grid;align-content:start;gap:10px;padding:12px;overflow-y:auto;border-right:1px solid var(--line-soft);background:var(--panel)}.tree{list-style:none;margin:0;padding-left:12px}.project-panel>.tree{padding-left:0}.tree-node{display:block;padding:4px 0;color:var(--muted)}.tree-scene{display:block;width:100%;min-height:var(--target-desktop);padding:0 8px;text-align:left;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-s);font:inherit;cursor:pointer}.tree-scene:hover{border-color:var(--line)}.tree-scene[aria-current=true]{border-color:var(--structure);background:var(--raise)}.path-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.level-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) repeat(3,var(--target-desktop));align-items:center;gap:4px;padding-bottom:6px;border-bottom:1px solid var(--line-soft)}.level-row>:first-child{grid-column:1 / 5}.level-row .btn{padding:0;justify-content:center}.level-row input{min-width:0}.project-panel details{display:grid;gap:10px}.project-panel summary{cursor:pointer;min-height:var(--target-desktop);display:flex;align-items:center}.project-panel,.inspector{overflow-x:hidden;min-width:0}.project-panel .btn-row>input{flex:1}.project-panel .lens-row{grid-template-columns:repeat(auto-fill,minmax(56px,1fr))}.inspector .lens-row{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.inspector .two-col{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.splitter{position:absolute;z-index:5;background:transparent;touch-action:none}.splitter:after{content:"";position:absolute;background:transparent}.splitter:hover:after,.splitter:focus-visible:after,.splitter:active:after{background:var(--structure)}.splitter-x{top:0;bottom:0;width:10px;margin-left:-5px;cursor:col-resize}.splitter-x:after{top:0;bottom:0;left:4px;width:2px}.splitter-y{left:0;right:0;height:10px;margin-bottom:-5px;cursor:row-resize}.splitter-y:after{left:0;right:0;top:4px;height:2px}.splitter.at-project{left:calc(56px + var(--project-w, 300px))}.splitter.at-inspector{left:calc(100% - min(var(--inspector-w, 300px),max(25vw,260px)))}.splitter.at-shotlist{bottom:var(--shotlist-h, 220px)}.plan .game-label{fill:var(--game-text)}.game-edge circle:not(.hit),.game-edge rect:not(.hit),.qte path{fill:var(--game-dim);stroke:var(--game);stroke-width:1.5;vector-effect:non-scaling-stroke}.game-edge path{fill:none;stroke:var(--game-text);stroke-width:1.5;vector-effect:non-scaling-stroke}.plan .game-edge,.plan [data-qte]{cursor:move}.qte:not(.active):not(.selected){opacity:.6}.plan .game-edge.selected circle:not(.hit),.plan .game-edge.selected rect:not(.hit),.plan .qte.selected path,.plan .zone.selected polygon{stroke:var(--game-text);stroke-width:2.5}.look-at line{stroke:var(--game);stroke-width:1;stroke-dasharray:2 3}.look-cone{fill:var(--game-dim);fill-opacity:.35;stroke:none;pointer-events:none}.plan .trigger-step{font-family:var(--f-mono);pointer-events:none}.player-ring{fill:none;stroke:var(--game);stroke-width:1.5;vector-effect:non-scaling-stroke}.zone polygon{fill:var(--game-dim);fill-opacity:.55;stroke:var(--game);stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;cursor:move}.zone-gameplay polygon{stroke-dasharray:none}.zone-noGo polygon{fill:url(#hatch)}.zone-water polygon,.zone-void polygon{stroke-dasharray:2 4}.zone .game-label{dominant-baseline:middle;pointer-events:none}.game-section{border-left:2px solid var(--game);padding-left:10px}.step{display:grid;gap:6px;padding:8px 0;border-bottom:1px solid var(--line-soft)}.step-head{display:grid;grid-template-columns:auto minmax(0,1fr) repeat(3,var(--target-desktop));align-items:center;gap:4px}.step-head:has(>input){grid-template-columns:minmax(0,1fr) var(--target-desktop)}.step-head .btn{padding:0;justify-content:center}.step-head select,.step-head input{min-width:0;min-height:36px;padding:0 6px;font:inherit;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s)}.tool.game[aria-pressed=true],.btn.game[aria-pressed=true]{background:var(--game-dim);color:var(--game-text)}.edge-guide line,.edge-guide path{fill:none;stroke:var(--game);stroke-width:1.25;stroke-dasharray:4 5;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.75;pointer-events:none}.plan .edge-arrow{fill:var(--game);stroke:none;pointer-events:none}.plan.actor-selected .path-of:not(.selected-path){opacity:.3}.selected-path .path-line{stroke-width:2.25;opacity:1}.selected-path .key-label{font-weight:600}.beat.play{color:var(--cyan)}.beat.play:disabled{color:var(--muted)}.tool-hint{align-self:flex-start;max-width:100%;transition:opacity .6s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:6px 10px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m);pointer-events:none}.timeline{display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m)}.timeline-track{position:relative;flex:1;height:44px;overflow:hidden;cursor:ew-resize;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:var(--radius-s)}.timeline-track:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.timeline-beat{position:absolute;top:4px;bottom:4px;padding:0 14px 0 8px;display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;font-size:12px;color:var(--muted);background:var(--line-soft);border-left:1px solid var(--line);pointer-events:none}.timeline-beat.active{color:var(--text);background:var(--cyan-dim)}.timeline-beat .mono{color:var(--cyan)}.timeline-edge{position:absolute;top:0;right:0;bottom:0;width:10px;cursor:col-resize;pointer-events:auto;border-right:2px solid var(--line)}.timeline-edge:hover{border-right-color:var(--cyan)}.timeline-head{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--text);pointer-events:none}.timeline-clock{flex:none;font-size:12px}.tool-hint .mono{color:var(--sodium)}.plan .actor-initial{font-family:var(--f-mono);font-size:.17px;font-weight:600;text-anchor:middle;dominant-baseline:central;fill:var(--cyan);pointer-events:none}.plan .path-name{font-size:var(--label-s, .16px);opacity:.8}.plan.camera-selected .frustum:not(.selected){fill-opacity:.02;stroke-opacity:.15}.plan.camera-selected .camera:not(.selected){opacity:.55}.frustum.selected{stroke-width:1.5}.topbar-actions{flex:1;gap:8px;align-items:center}.btn-group{display:inline-flex;align-items:center;gap:2px;padding-left:8px;border-left:1px solid var(--line-soft)}.btn-group:first-child{border-left:0;padding-left:0}.btn-group.push{margin-left:auto}.topbar .btn{gap:6px;padding:0 10px;white-space:nowrap}.topbar .btn svg{flex:none}.topbar .btn[aria-pressed=false]{color:var(--muted)}.topbar .btn[aria-pressed=true]{background:var(--line-soft);box-shadow:inset 0 -2px 0 var(--text)}.topbar .btn.game[aria-pressed=true]{box-shadow:inset 0 -2px 0 var(--game)}.doc{display:flex;flex-direction:column;min-width:0;max-width:320px;line-height:1.25}.doc>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.doc-file{font-size:var(--fs-label);color:var(--muted)}.doc-state{margin-left:8px}.doc-state.dirty{color:var(--text)}.topbar .notice{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:0 1 auto}@media(max-width:1360px){.topbar .btn-text{display:none}}@media(max-width:1100px){.topbar{gap:8px;padding:0 8px}.brand{display:none}.topbar .btn{padding:0 6px}.topbar-actions{gap:4px}.btn-group{padding-left:4px}}.section{border-top:1px solid var(--line-soft);padding-top:6px}.section>summary{min-height:36px;display:flex;align-items:center;cursor:pointer;list-style:none}.section>summary:before{content:"▸";width:1.2em;color:var(--muted)}.section[open]>summary:before{content:"▾"}.section>summary::-webkit-details-marker{display:none}.section-body{display:grid;gap:10px;padding-bottom:8px}.rail{overflow-y:auto}.plan{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.selection-bar{position:absolute;z-index:3;display:flex;flex-wrap:wrap;align-items:center;max-width:min(480px,calc(100% - 24px));gap:4px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m)}@media(hover:hover)and (pointer:fine){.touch-only{display:none}}@media(pointer:coarse){.tool{width:var(--target-touch);height:var(--target-touch)}.btn,.beat{min-height:var(--target-touch);min-width:var(--target-touch)}.rail{width:64px}.workspace{grid-template-columns:64px minmax(0,1fr) min(var(--inspector-w, 300px),max(25vw,260px))}.workspace.with-project{grid-template-columns:64px var(--project-w, 300px) minmax(0,1fr) min(var(--inspector-w, 300px),max(25vw,260px))}.splitter.at-project{left:calc(64px + var(--project-w, 300px))}}.narrow-only{display:none}@media(max-width:1100px)and (pointer:coarse),(max-width:800px){.narrow-only{display:inline-flex}.workspace{grid-template-columns:56px minmax(0,1fr)}.workspace.with-project{grid-template-columns:56px var(--project-w, 300px) minmax(0,1fr)}.inspector{display:none;position:absolute;top:0;right:0;bottom:0;width:min(360px,85vw);overflow-y:auto;z-index:5;border-left:1px solid var(--line)}.inspector.open{display:block}.splitter.at-inspector{display:none}.workspace:has(.inspector.open) .selection-bar.fixed{right:calc(min(360px,85vw) + 12px)}}@media(max-width:1100px)and (pointer:coarse),(max-width:800px){.shell.shots-closed{grid-template-rows:52px minmax(0,1fr) 0}.shots-closed .shotlist,.shots-closed .splitter.at-shotlist{display:none}.workspace:not(.with-project){grid-template-columns:minmax(0,1fr)}.workspace:not(.with-project) .rail{position:absolute;top:12px;left:12px;z-index:4;width:56px;max-height:calc(100% - 24px);padding:6px 0;border:1px solid var(--line);border-radius:var(--radius-m)}.workspace:not(.with-project) .plan-overlay,.workspace:not(.with-project) .plan-dock{left:80px}}@media(max-width:1100px)and (pointer:coarse){.workspace:not(.with-project) .rail{width:64px}.workspace:not(.with-project) .plan-overlay,.workspace:not(.with-project) .plan-dock{left:88px}.workspace.with-project{grid-template-columns:64px var(--project-w, 300px) minmax(0,1fr)}}.selection-bar.fixed{top:12px;right:12px}.selection-bar.anchored{transform:translate(-50%,-100%)}.selection-bar.menu{max-width:min(360px,calc(100% - 16px));transform:translate(-50%,calc(-100% - 24px))}.menu-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;width:100%;padding-top:4px;border-top:1px solid var(--line)}.menu-row>.label{width:100%;padding:0 6px}.selection-bar kbd{margin-left:6px;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:.8em;color:var(--muted)}.selection-bar:not(.menu) kbd{display:none}.swatch{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:2px;background:var(--group, transparent);border:1px solid var(--line);vertical-align:-1px}.selection-title{width:100%;padding:2px 6px}.tool-name{display:none}.rail-toggle{margin-top:auto;font-family:var(--f-mono)}.shell.rail-wide .workspace .rail{z-index:6;width:200px;align-items:stretch;padding:10px 6px;border-right:1px solid var(--line)}@media(min-width:1101px),(min-width:801px)and (pointer:fine),(min-width:801px)and (pointer:none){.shell.rail-wide .workspace .rail{position:relative}}.rail-wide .tool{width:auto;justify-content:flex-start;gap:10px;padding:0 10px}.rail-wide .tool-name{display:inline;font-size:var(--fs-label);white-space:nowrap}.insp-head{display:flex;justify-content:flex-end;gap:4px;margin:-8px 0 8px}.insp-compact .workspace{--inspector-w: 200px}.insp-compact .splitter.at-inspector,.insp-compact .inspector>:not(.inspector-section,.insp-head),.insp-compact .inspector-section:has(.core)>:not(.core,.label,.warn,.section:has(.core)),.insp-compact .section>summary,.insp-compact .section-body>:not(.core){display:none}@media(min-width:1101px),(min-width:801px)and (pointer:fine),(min-width:801px)and (pointer:none){.insp-hidden .workspace{--inspector-w: 0px}.insp-hidden .inspector,.insp-hidden .splitter.at-inspector{display:none}}.shell.shots-closed{grid-template-rows:52px minmax(0,1fr) 0}.shots-closed .shotlist,.shots-closed .splitter.at-shotlist{display:none}.shell.focus{grid-template-rows:52px minmax(0,1fr) 0}.shell.focus .workspace{grid-template-columns:minmax(0,1fr)}.focus .rail,.focus .project-panel,.focus .inspector,.focus .shotlist,.focus .splitter{display:none!important}.topbar .btn.variant{min-width:36px;max-width:120px;overflow:hidden;text-overflow:ellipsis;justify-content:center}.history{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto}.history-name{color:var(--text)}.variant-ghost{opacity:.6}.variant-ghost .camera{--ghost: var(--sodium)}.variant-ghost circle,.variant-ghost rect,.variant-ghost .variant-frustum{stroke-dasharray:3 3}.variant-ghost .variant-frustum{fill:none;stroke:var(--ghost);stroke-width:1}.timeline-key{position:absolute;bottom:2px;width:8px;height:8px;margin-left:-4px;background:var(--cyan);transform:rotate(45deg);pointer-events:none}.timeline-qte{position:absolute;top:2px;height:16px;display:flex;align-items:center;padding:0 3px;overflow:hidden;font-size:10px;color:var(--game-text);background:var(--game-dim);border:1px solid var(--game);border-radius:2px;cursor:grab}.timeline-qte.selected{background:var(--game);color:var(--panel)}.timeline-speed{flex:none;min-width:44px;min-height:32px;background:none;border:1px solid var(--line-soft);border-radius:4px;color:var(--text);font-size:12px;cursor:pointer}.plan-dock{position:absolute;left:12px;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.plan-dock>*{pointer-events:auto}.plan-dock>.tool-hint{pointer-events:none}.tool-hint.faded{opacity:0}.plan-dock>.beat-edit{align-self:flex-start;max-width:100%;flex-wrap:wrap;gap:6px;padding:4px 6px}.beat-badge{padding:0 6px;color:var(--cyan)}.beat-time-field{display:inline-flex;align-items:center;gap:4px}.tool-options:empty{display:none}@media(hover:hover)and (pointer:fine){.tool-options:not(:has(>:not(.touch-only))){display:none}}.compare-chip{padding:0 10px}.menu-anchor{position:relative;display:inline-flex}.view-button{display:inline-flex;align-items:center;gap:6px;padding:0 10px;background:var(--panel);border:1px solid var(--line);color:var(--text)}.view-menu,.variant-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;gap:2px;min-width:240px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:0 8px 24px #00000073}.menu-check{min-height:var(--target-desktop);padding:0 8px;border-radius:var(--radius-s)}.menu-check:hover,.menu-item:hover:not(:disabled){background:var(--line-soft)}.menu-item{min-height:var(--target-desktop);padding:0 8px;text-align:left;color:var(--text);background:none;border:0;border-radius:var(--radius-s);cursor:pointer}.menu-item:disabled{color:var(--muted);cursor:default}.menu-item.danger:not(:disabled){color:var(--signal)}.menu-field{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border-top:1px solid var(--line-soft)}.variant-menu .menu-item.danger{border-top:1px solid var(--line-soft);border-radius:0}.variant-menu{position:fixed;z-index:50}.variant-menu input{min-height:36px;padding:0 8px;color:var(--text);background:var(--ink);border:1px solid var(--line);border-radius:var(--radius-s);font:inherit}.plan .light.off circle:not(.hit){fill:none;stroke:var(--sodium);stroke-width:1.25;vector-effect:non-scaling-stroke}.plan .light.off .beam{opacity:.25}.plan .cue-note{fill:var(--sodium);font-size:var(--label-s, .16px);text-anchor:middle;pointer-events:none}.menu-note{max-width:260px;margin:0;padding:4px 8px}.timeline-movers{display:inline-flex;align-items:center;gap:3px;margin-left:auto;flex-shrink:0}.timeline-movers i{width:6px;height:6px;border-radius:50%;background:var(--cyan)}.timeline-movers i.camera,.timeline-movers i.light{background:var(--sodium)}.timeline-edge.start{right:auto;left:0;border-right:none;border-left:2px solid transparent}.timeline-edge.start:hover{border-left-color:var(--cyan)}@media(pointer:coarse){.timeline-track{height:52px}.timeline-edge{width:20px}.timeline-beat{padding:0 22px}}.shot-table tr.diff-new td:first-child{box-shadow:inset 3px 0 0 var(--sodium)}.shot-table td.diff{text-decoration:underline dotted var(--sodium);text-underline-offset:3px}.shot-table tr.diff-gone{cursor:default;color:var(--muted);text-decoration:line-through}.shot-table tr.diff-gone:hover{background:none}.diff-sum{color:var(--sodium)}.branch-graph{display:block;font-family:var(--f-mono);font-size:var(--fs-label);font-variant-numeric:tabular-nums}.graph-edge path{fill:none;stroke:var(--structure);stroke-width:1.5}.graph-edge.branch path,.graph-edge.success path,.graph-edge.failure path{stroke:var(--game)}.graph-edge.failure path{stroke-dasharray:4 3}.graph-edge text{fill:var(--game-text)}.graph-arrow.flow{fill:var(--structure)}.graph-arrow.game{fill:var(--game)}.graph-node rect,.graph-node polygon{fill:var(--raise);stroke:var(--line);stroke-width:1.5}.graph-node text{text-anchor:middle;dominant-baseline:central}.graph-title{fill:var(--text)}.graph-detail{fill:var(--muted);font-family:var(--f-ui)}.graph-lane{fill:var(--muted);font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em}.graph-node.trigger rect,.graph-node.qte polygon,.graph-node.choice polygon{fill:var(--game-dim);stroke:var(--game)}.graph-node.entry rect,.graph-node.exit rect{fill:var(--game-dim);stroke:var(--game)}.graph-node.checkpoint rect{fill:none;stroke:var(--game);stroke-dasharray:4 3}.graph-node.beat{cursor:pointer}.graph-node.beat:hover rect{stroke:var(--structure)}.graph-node.active rect{fill:var(--cyan-dim);stroke:var(--cyan)}.graph-node:focus-visible{outline:none}.graph-node:focus-visible rect{stroke:var(--text);stroke-width:2}.graph-port{cursor:grab;touch-action:none}.graph-port .hit{fill:transparent}.graph-port circle:not(.hit){fill:var(--game-dim);stroke:var(--game);stroke-width:1.5}.graph-port text{fill:var(--game-text);font-size:9px;text-anchor:middle;dominant-baseline:central;pointer-events:none}.graph-port:hover circle:not(.hit){fill:var(--game)}.graph-drag{stroke:var(--game);stroke-width:1.5;stroke-dasharray:4 3;pointer-events:none}.branch-graph.dragging{cursor:grabbing}.qte-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.qte-modes .btn{flex-direction:column;min-height:56px;gap:2px;font-size:12px}
