:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#14181c;--ink:#e4e9e2;--muted:#8c968e}*{box-sizing:border-box}html,body{background:var(--ground);height:100%;color:var(--ink);margin:0;font:14px/1.5 system-ui,sans-serif}#app{grid-template-rows:auto 1fr;height:100%;display:grid}.app-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;padding:6px 12px;font-size:13px;font-weight:600}#stage-root{min-height:0;position:relative;overflow:hidden}#stage-root canvas{width:100%;height:100%;display:block}.compass{-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex;position:absolute;top:10px;right:10px}.compass-turn{width:32px;height:32px;color:var(--ink);cursor:pointer;background:#1d2320;border:1px solid #3a4540;border-radius:4px;font-size:18px;line-height:1}.compass-turn:hover{background:#262e29}.compass-turn:focus-visible{outline-offset:1px;outline:2px solid #e9a452}.compass-dial{background:#1d2320;border:1px solid #3a4540;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.compass-needle{place-items:start center;width:36px;height:36px;display:grid}.compass-n{color:#e9a452;font-size:12px;font-weight:700;line-height:1}.panel{background:#181d1beb;border:1px solid #3a4540;border-radius:6px;width:300px;max-height:calc(50% - 16px);padding:10px 12px;font-size:13px;line-height:1.4;position:absolute;left:10px;overflow:auto}.sheet-panel{top:10px}.roll-panel{bottom:10px}.panel-title{letter-spacing:.04em;text-transform:uppercase;color:#e9a452;margin:0 0 6px;font-size:13px;font-weight:600}.panel-subtitle{color:var(--muted);margin:10px 0 4px;font-size:12px;font-weight:600}.panel-line,.panel-note,.panel-hint{margin:4px 0}.panel-hint,.panel-muted,.panel-note{color:var(--muted)}.panel-chance{margin:6px 0;font-size:22px;font-weight:700}.panel-band{color:var(--muted);margin-left:6px;font-size:12px;font-weight:500}.panel-result{margin:4px 0;font-size:18px;font-weight:700}.panel-result[data-tier=crit]{color:#ffd166}.panel-result[data-tier=success]{color:#8fd694}.panel-result[data-tier=graze]{color:#d9c27a}.panel-result[data-tier=fail]{color:#e08a7a}.panel-result[data-tier=fumble]{color:#ff5d5d}.panel-die{font-family:ui-monospace,monospace}.panel-breakdown,.panel-report{margin:4px 0;padding:0;list-style:none}.panel-breakdown li{border-top:1px solid #2a332e;justify-content:space-between;gap:8px;padding:2px 0;display:flex}.panel-report li{margin:4px 0}.panel-bands{color:var(--muted);flex-wrap:wrap;gap:4px 8px;margin:6px 0;font-size:11px;display:flex}.panel-button{color:#ffd9a3;cursor:pointer;background:#2a2419;border:1px solid #e9a452;border-radius:4px;margin-top:6px;padding:6px 14px;font-weight:600}.panel-button:hover{background:#3a3020}.sheet-table{border-collapse:collapse;width:100%}.sheet-row th{text-align:left;padding:2px 0;font-weight:500}.sheet-row--secondary th{color:var(--muted);padding-left:10px}.sheet-value{text-align:right;width:3em;font-family:ui-monospace,monospace}.sheet-max{color:var(--muted)}.sheet-bar{width:80px;padding-left:8px;position:relative}.sheet-bar:before{content:"";background:#2a332e;border-radius:3px;height:6px;margin-top:-3px;position:absolute;top:50%;left:8px;right:0}.sheet-bar-fill{background:#e9a452;border-radius:3px;min-width:0;height:6px;display:block;position:relative}.action-panel{bottom:10px}.memory-panel{width:320px;max-height:calc(100% - 80px);top:64px;left:auto;right:10px}.action-list{margin:0;padding:0;list-style:none}.action-block{border-top:1px solid #2c3632;padding:6px 0}.action-block:first-child{border-top:none}.panel-error{color:#e06c6c;margin:4px 0}.memory-table{border-collapse:collapse;width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12px}.memory-table th{text-align:left;color:var(--muted);padding:1px 6px 1px 0;font-weight:400}.memory-table td{text-align:right}.mission-log{margin:0;padding:0;font-size:12px;list-style:none}.mission-log li{padding:2px 0}.log-at{color:var(--muted);font-family:ui-monospace,Consolas,monospace}.log-error{color:#e06c6c}.log-emit{color:var(--muted)}#app.app--edit{grid-template-columns:minmax(0,1fr)}.editor-side{border-right:1px solid #2c3632;padding:10px 12px;overflow:auto}.editor-entries{margin:0 0 8px;padding:0;list-style:none}.editor-entry{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;margin:1px 0;padding:3px 6px}.editor-entry:hover{background:#232b27}.editor-entry--current{border-color:#e9a452}.editor-entry--create{color:var(--muted)}.editor-palette{gap:6px;display:flex}.editor-palette-select{min-width:0;color:var(--ink);font:inherit;background:#1d2320;border:1px solid #3a4540;border-radius:4px;flex:1}.editor-main{grid-template-rows:auto 1fr auto;min-height:0;display:grid}.editor-toolbar{border-bottom:1px solid #2c3632;align-items:center;gap:8px;padding:6px 10px;display:flex}.editor-spacer{flex:1}.editor-current{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:12px}.editor-canvas-host{min-height:0;position:relative;overflow:hidden}.editor-ok{color:#7fc98a;margin:2px 0}.editor-errors{color:#e06c6c;margin:2px 0;padding-left:18px}.editor-note{color:#e9a452;margin:2px 0}.geditor{cursor:grab;-webkit-user-select:none;user-select:none;background:linear-gradient(#1a201d 1px,#0000 1px) 0 0/24px 24px,linear-gradient(90deg,#1a201d 1px,#0000 1px) 0 0/24px 24px,#141917;outline:none;position:absolute;inset:0;overflow:hidden}.gworld{transform-origin:0 0;position:absolute;top:0;left:0}.glinks{pointer-events:none;width:1px;height:1px;position:absolute;top:0;left:0;overflow:visible}.gwire{fill:none;stroke:#9aa6a0;stroke-width:2px;pointer-events:stroke;cursor:pointer}.gwire--exec{stroke:#e4e9e2;stroke-width:2.5px}.gwire--number{stroke:#7fc98a}.gwire--string{stroke:#d59bd6}.gwire--boolean{stroke:#e06c6c}.gwire--actor,.gwire--character{stroke:#6fb3d6}.gwire--broken{stroke-dasharray:6 4}.gwire--pending{stroke:#e9a452;stroke-dasharray:6 4}.gnode{cursor:default;background:#181d1bf5;border:1px solid #3a4540;border-radius:6px;font-size:12px;position:absolute;top:0;left:0;box-shadow:0 2px 8px #0006}.gnode--selected{border-color:#e9a452}.gnode-header{height:var(--gnode-header-height,26px);cursor:grab;background:#26302b;border-bottom:1px solid #2c3632;border-radius:6px 6px 0 0;justify-content:space-between;align-items:center;gap:6px;padding:0 8px;display:flex}.gnode--event .gnode-header{background:#4a2f2a}.gnode--flow .gnode-header{background:#3d3a2a}.gnode--check .gnode-header,.gnode--character .gnode-header{background:#2f3a4a}.gnode--actor .gnode-header{background:#2a3e3a}.gnode--unknown .gnode-header{background:#4a2a4a}.gnode-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.gnode-id{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:11px}.gnode-rows{padding:var(--gnode-rows-padding,6px) 0}.gnode-row{height:var(--gnode-row-height,22px);justify-content:space-between;align-items:center;display:flex}.gpin{height:var(--gnode-row-height,22px);align-items:center;gap:4px;min-width:0;display:flex}.gpin--in{margin-left:-6px}.gpin--out{margin-right:-6px}.gpin-name{white-space:nowrap}.gsocket{cursor:crosshair;background:#141917;border:2px solid #9aa6a0;border-radius:50%;flex:none;width:11px;height:11px}.gsocket--exec{border-color:#e4e9e2;border-radius:2px}.gsocket--number{border-color:#7fc98a}.gsocket--string{border-color:#d59bd6}.gsocket--boolean{border-color:#e06c6c}.gsocket--actor,.gsocket--character{border-color:#6fb3d6}.gfield{width:84px;height:18px;color:var(--ink);font:inherit;background:#101412;border:1px solid #3a4540;border-radius:3px;padding:0 4px;font-size:11px}.gfield[type=checkbox]{width:auto;height:auto}.gnode-settings{border-top:1px solid #2c3632;padding:4px 8px 6px}.gsetting{height:var(--gnode-setting-height,26px);justify-content:space-between;align-items:center;gap:6px;display:flex}.gsetting .gfield{width:110px}.gsetting-name{color:var(--muted);white-space:nowrap}.editor-file{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:12px}.map-row{flex-wrap:wrap;align-items:center;gap:6px;min-height:26px;display:flex}.map-label{width:44px;color:var(--muted);font-size:12px}.map-value{font-family:ui-monospace,Consolas,monospace;font-size:12px}.map-note{color:var(--muted);font-size:11px}.map-check{font-size:12px}.map-select{color:var(--ink);font:inherit;background:#1d2320;border:1px solid #3a4540;border-radius:4px;font-size:12px}.panel-button--current{color:#e9a452;border-color:#e9a452}.new-map-form{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 10px;font-size:12px;display:flex}.new-map-form input,.new-map-form select{width:70px;color:var(--ink);font:inherit;background:#101412;border:1px solid #3a4540;border-radius:3px;margin-left:4px;font-size:12px}.new-map-form input[name=name]{width:110px}.history-list{margin:0;padding-left:22px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.history-entry--undone{color:var(--muted);text-decoration:line-through}.gizmo-layer{z-index:3;pointer-events:none;position:absolute}.gizmo-layer[hidden]{display:none}.gizmo-layer>*{position:absolute}.gizmo-arrow,.gizmo-stop,.gizmo-z{color:#e9a452;width:22px;height:22px;font:inherit;cursor:pointer;pointer-events:auto;background:#12171599;border:1px solid #e9a452;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:flex}.gizmo-arrow[hidden],.gizmo-stop[hidden],.gizmo-z[hidden]{display:none}.gizmo-arrow{cursor:grab}.gizmo-stop{width:20px;height:20px;font-size:10px}.gizmo-stop--current{color:#121715;background:#e9a452}.gizmo-z{color:#7fc98a;border-color:#7fc98a}.gizmo-ring{border:1px dashed #e9a45266;border-radius:50%;transform:translate(-50%,-50%)}.gizmo-caption{color:var(--muted);white-space:nowrap;background:#121715cc;border-radius:3px;padding:1px 5px;font-size:10px;transform:translate(-50%)}.map-row--hotbar{gap:3px}.hot-slot{width:18px;height:18px;color:var(--muted);font:inherit;cursor:pointer;background:#1d2320;border:1px solid #3a4540;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:10px;line-height:1;display:inline-flex}.hot-palette{padding:1px 6px;font-size:11px}.hot-slot--empty{border-style:dashed}.hot-slot--active{color:#e9a452;border-style:solid;border-color:#e9a452}.palette{z-index:4;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121715f2;border:1px solid #2c3632;border-radius:6px;flex-direction:column;gap:4px;width:min(340px,100% - 20px);max-height:min(460px,100% - 90px);padding:6px 8px;font-size:12px;display:flex;position:absolute;overflow-y:auto}.palette[hidden]{display:none}.pal-head{align-items:center;gap:6px;display:flex}.pal-search{min-width:0;color:var(--ink);font:inherit;background:#101412;border:1px solid #3a4540;border-radius:3px;flex:1;padding:2px 5px;font-size:12px}.pal-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:4px 0 2px;font-size:10px;font-weight:600}.pal-row,.pal-surface{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:2px;display:flex}.pal-name{text-overflow:ellipsis;white-space:nowrap;width:86px;overflow:hidden}.pal-block{color:var(--ink);font:inherit;cursor:pointer;background:#1d2320;border:1px solid #3a4540;border-radius:4px;padding:1px 6px;font-size:11px}.pal-block--held{color:#e9a452;border-color:#e9a452}#editor-root{grid-template-rows:auto auto 1fr;min-height:0;font-size:13px;display:grid}.menu-bar{background:#111614;border-bottom:1px solid #2c3632;align-items:center;gap:2px;padding:2px 6px;display:flex}.menu-bar-title{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 10px}.menu-bar-title:hover,.menu-bar-title[aria-expanded=true]{background:#24322b;border-color:#3a4540}.menu-bar-title:focus-visible{outline-offset:-2px;outline:2px solid #e9a452}.shell-top{border-bottom:1px solid #2c3632;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.shell-verdict{color:#7fc98a;font-size:12px}.shell-verdict[data-ok=false]{color:#e06c6c}.shell-note{color:#e9a452;font-size:12px}.shell-list{margin:4px 0;padding-left:18px;font-size:12px}.shell-name{font-family:ui-monospace,Consolas,monospace}.shell-count{color:var(--muted)}.shell-groups{flex-wrap:wrap;gap:0 24px;display:flex}.shell-group{min-width:150px}.dock{--dock-rail:300px;--dock-rail-top:260px;--dock-drawer:200px;grid-template-rows:auto 1fr auto auto;min-height:0;display:grid}.dock-body{grid-template-columns:minmax(0, 1fr) auto var(--dock-rail);min-height:0;display:grid}.dock-rail{grid-template-rows:var(--dock-rail-top) auto minmax(0, 1fr);border-left:1px solid #2c3632;min-width:0;min-height:0;display:grid}.dock-zone{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.dock-zone--drawer{border-top:1px solid #2c3632;grid-template-rows:auto auto}.dock-zone--drawer .dock-panes{height:var(--dock-drawer)}.dock-zone--drop{outline-offset:-3px;outline:2px dashed #e9a452}.dock-strip{background:#171c1a;border-bottom:1px solid #2c3632;align-items:center;gap:2px;padding:2px 6px;display:flex;overflow-x:auto}.dock-strip-row{background:#171c1a;border-bottom:1px solid #2c3632;align-items:stretch;min-width:0;display:flex}.dock-strip-row .dock-strip{border-bottom:0;flex:auto;min-width:0}.dock-status{white-space:nowrap;border-left:1px solid #2c3632;flex:none;align-items:center;gap:10px;max-width:55%;padding:2px 10px;display:flex;overflow:hidden}.editor-dirty{color:#e9a452;font-size:12px}.dock-strip--documents{background:#111614}.dock-strip-spacer{flex:1}.dock-tabwrap{border:1px solid #0000;border-radius:4px 4px 0 0;flex:none;align-items:center;display:inline-flex}.dock-tabwrap--current{background:#232b27;border-color:#3a4540}.dock-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:3px 10px}.dock-tabwrap--current .dock-tab{color:var(--ink)}.dock-close,.dock-reopen,.dock-drawer-toggle{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #3a4540;border-radius:4px;flex:none;font-size:11px}.dock-close{border-color:#0000;margin-right:4px;padding:0 4px}.dock-reopen,.dock-drawer-toggle{padding:2px 8px}.dock-close:hover,.dock-reopen:hover,.dock-drawer-toggle:hover{color:var(--ink);border-color:#3a4540}.dock-tab:focus-visible,.dock-close:focus-visible,.dock-reopen:focus-visible,.dock-drawer-toggle:focus-visible,.dock-splitter:focus-visible{outline-offset:-2px;outline:2px solid #e9a452}.dock--dragging .dock-tab{cursor:grabbing}.dock-panes{min-width:0;min-height:0;display:grid;overflow:hidden}.dock-pane{outline:none;min-width:0;min-height:0;padding:8px 10px;overflow:auto}.dock-pane--scene{grid-template-rows:minmax(0,1fr);padding:0;display:grid;overflow:hidden}.dock-pane--graphs{grid-template-columns:240px minmax(0,1fr);padding:0;display:grid;overflow:hidden}.dock-panes[hidden],.dock-pane[hidden]{display:none}.dock-splitter{background:#1d2320}.dock-splitter--vertical{cursor:col-resize;width:6px}.dock-splitter--horizontal{cursor:row-resize;height:6px}.dock-splitter:hover,.dock-splitter--dragging{background:#e9a452}.dock--drawer-collapsed .dock-splitter[data-size=drawer]{display:none}.scene-strip{z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#12171599;border:1px solid #2c3632;border-radius:6px;flex-direction:column;gap:3px;max-width:min(320px,100% - 20px);padding:4px 6px;font-size:12px;display:flex;position:absolute}.scene-strip .map-note{font-size:10px}.scene-strip:empty{display:none}.scene-strip--top-left{top:10px;left:10px}.scene-strip--top-right{flex-direction:row;align-items:center;top:10px;right:10px}.scene-strip--bottom-left{bottom:10px;left:10px}.scene-strip--bottom-right{bottom:10px;right:10px}.scene-strip .compass{position:static}.map-piece{flex-direction:column;gap:4px;min-width:0;display:flex}.map-piece--camera{flex-direction:row;align-items:center}.menu{z-index:20;background:#161d1a;border:1px solid #3a463f;border-radius:5px;flex-direction:column;min-width:190px;max-width:320px;max-height:min(70vh,560px);padding:3px;font-size:12px;display:flex;position:absolute;overflow-y:auto;box-shadow:0 6px 18px #0008}.menu-item{color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding:3px 8px;display:grid}.menu-item:hover:not([disabled]),.menu-item--focused:not([disabled]){background:#24322b}.menu-item[disabled]{color:var(--muted);cursor:default}.menu-shortcut{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:11px}.menu-hint{color:var(--muted);grid-column:1/-1;font-size:10px}.menu-rule{background:#2c3632;height:1px;margin:3px 6px}.out-groups,.out-rows{margin:4px 0;padding:0;font-size:12px;list-style:none}.out-group+.out-group{margin-top:6px}.out-group--hidden .out-rows{opacity:.45}.out-layer{border-bottom:1px solid #2c3632;align-items:baseline;gap:6px;padding:2px 0;display:flex}.out-type,.out-kind,.out-id{color:var(--muted);font-size:11px}.out-layer .shell-count{margin-left:auto}.out-flag{min-width:20px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:1px solid #3a463f;border-radius:3px;padding:0 3px}.out-flag[aria-pressed=false]{color:var(--muted)}.out-flag[disabled]{opacity:.35;cursor:default}.out-rows{padding-left:18px}.out-row{cursor:pointer;align-items:baseline;gap:6px;padding:1px 3px;display:flex}.out-row--plain{cursor:default}.out-row--selected{background:#24322b;outline:1px solid #7fc98a}.out-row .out-kind{margin-left:auto}.out-rename{min-width:8em;color:var(--ink);font:inherit;background:#101614;border:1px solid #7fc98a;padding:0 2px}.out-document{cursor:pointer;border:1px solid #0000;border-radius:3px;align-items:baseline;gap:6px;padding:2px 3px;font-size:12px;display:flex}.out-document--selected{background:#24322b;border-color:#7fc98a}.det-section{margin-top:8px}.det-header{border-bottom:1px solid #2c3632;padding-bottom:4px}.det-field{grid-template-columns:6.5em minmax(0,1fr) auto;align-items:center;gap:2px 6px;padding:2px 0;font-size:12px;display:grid}.det-label{color:var(--muted)}.det-control{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.det-note{color:var(--muted);grid-column:2/-1;font-size:11px}.det-value{font-family:ui-monospace,Consolas,monospace}.det-value--id{-webkit-user-select:all;user-select:all;word-break:break-all;font-size:11px}.det-id{color:var(--muted);margin-left:6px;font-family:ui-monospace,Consolas,monospace;font-size:11px}.det-default{color:var(--muted);font-size:11px}.det-field--own .det-value,.det-field--own .det-input{color:var(--ink)}.det-mark{color:#e9a452}.det-revert,.det-step,.det-button{color:var(--ink);font:inherit;cursor:pointer;background:#1b2320;border:1px solid #3a463f;border-radius:3px;padding:0 6px}.det-revert{color:#e9a452;border-color:#e9a452}.det-button[disabled],.det-step[disabled]{opacity:.4;cursor:default}.det-input{min-width:0;color:var(--ink);font:inherit;background:#101614;border:1px solid #3a463f;padding:1px 3px}.det-input--number{width:5em}.det-flags{white-space:nowrap;align-items:center;gap:4px;display:flex}.det-source{color:var(--muted);font-size:11px}
