: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;transition:transform .16s ease-out;display:grid}.compass-n{color:#e9a452;font-size:12px;font-weight:700;line-height:1}@media (prefers-reduced-motion:reduce){.compass-needle{transition:none}}.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(360px,2fr) minmax(520px,3fr)}#app.app--edit .app-title{grid-column:1/-1}#editor-root{border-left:1px solid #2c3632;grid-template-columns:240px 1fr;min-height:0;font-size:13px;display:grid}.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-status{border-top:1px solid #2c3632;max-height:160px;padding:6px 10px;font-size:12px;overflow:auto}.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--prop,.gwire--actor{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--prop .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--prop,.gsocket--actor{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}
