@font-face{font-family:IBM Plex Sans;src:url(/bundle/ibm-plex-sans-variable-IvpUvPa2.woff2)format("woff2-variations");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/bundle/ibm-plex-mono-400-DMJ8VG8y.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/bundle/ibm-plex-mono-500-DSY6xOcd.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--gray-950:#06090b;--gray-900:#0b1014;--gray-880:#0f1418;--gray-800:#1e272e;--gray-700:#232d35;--gray-600:#303c45;--gray-550:#3a4750;--gray-500:#47545e;--gray-400:#6b7883;--gray-300:#a4b0b9;--gray-200:#d2dae2;--gray-000:#fff;--color-app-bg:var(--gray-950);--color-sidebar:#14181cfa;--color-panel:#1e272ef2;--color-panel-solid:var(--gray-800);--color-sunken:var(--gray-880);--color-surface:var(--gray-700);--color-surface-raised:var(--gray-600);--color-surface-hover:var(--gray-550);--color-border:var(--gray-500);--color-border-strong:var(--gray-400);--color-text:var(--gray-000);--color-text-muted:var(--gray-300);--color-text-code:var(--gray-200);--color-text-inverse:var(--gray-900);--color-accent-soft:#3a3a1a;--color-accent:#ffeb3b;--color-accent-glow:#ffeb3b80;--color-nav-soft:#24455c;--color-nav:#3498db;--color-nav-strong:#5dade2;--color-whisper-soft:#2b2140;--color-whisper:#a98eda;--color-danger-soft:#3a1a18;--color-danger-deep:#7a2620;--color-danger:#ff3f34;--color-danger-dim:#ff6b60;--color-success:#2ecc71;--color-grid-void:#000;--color-grid-line:#ffffff12;--grid-cell:96px;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:14px;--space-7:16px;--space-8:20px;--space-9:24px;--space-10:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-round:50%;--border-width:2px;--border-hairline:1px;--border-width-overlay:3px;--font-ui:"IBM Plex Sans", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-display:"IBM Plex Sans", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--font-size-xs:10px;--font-size-sm:11px;--font-size-md:12px;--font-size-lg:14px;--font-size-xl:16px;--font-size-title:20px;--font-size-display:28px;--font-size-hero:40px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-snug:1.35;--line-height-normal:1.5;--line-height-relaxed:1.6;--letter-spacing-tight:-.01em;--letter-spacing-wide:.05em;--letter-spacing-wider:.12em;--shadow-float:0 4px 10px #00000080;--shadow-panel:0 8px 24px #000000bf;--shadow-dialog:0 10px 30px #000000b3;--shadow-sidebar:-6px 0 20px #0009;--shadow-hard:2px 2px 0px #00000080;--shadow-glow:0 0 var(--space-4) var(--color-accent-glow);--shadow-glow-danger:0 0 var(--space-5) var(--color-danger-glow);--shadow-pause-border:inset 0 0 0 var(--border-width-overlay) var(--color-danger);--color-scrim:#0009;--color-inset:#0009;--color-overlay-light:#fffc;--color-danger-glow:#ff3f3499;--text-shadow-overlay:1px 1px 2px #000c;--duration-fast:.1s;--duration:.2s;--duration-slow:.25s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--opacity-disabled:.45;--opacity-muted:.5;--opacity-faint:.3;--focus-ring-width:2px;--focus-ring-color:var(--color-accent);--focus-ring-offset:2px;--z-map-overlay:5;--z-hud:10;--z-hud-menu:15;--z-fx-overlay:900;--z-pause-banner:950;--z-toast:999;--z-modal:1000;--z-modal-raised:1200;--z-lobby-modal:1300;--z-lobby-modal-raised:1400;--control-height:38px;--icon-size:42px;--icon-btn-size:28px;--thumb-size:16px;--dialog-width:320px;--dialog-width-lg:520px;--dialog-width-xl:880px;--scene-nav-height:40px;--tool-panel-width:220px;--slider-width-inline:80px;--table-formula-width:90px;--table-range-width:44px;--field-control-width:160px;--toolbar-width:120px;--sidebar-width:320px;--reception-width:1100px;--sidebar-rail-width:calc(var(--icon-size) + 2 * var(--space-4))}.btn{justify-content:flex-start;align-items:center;gap:var(--space-4);width:100%;min-height:var(--control-height);box-sizing:border-box;padding:0 var(--space-5);background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);text-align:left;cursor:pointer;transition:background var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard), color var(--duration) var(--ease-standard);display:flex}.btn:hover{background:var(--color-surface-hover);border-color:var(--color-accent)}.btn.active{background:var(--color-accent-soft);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.btn:disabled,.icon-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.btn:disabled:hover{background:var(--color-surface-raised);border-color:var(--color-border)}.icon-btn:disabled:hover{border-color:var(--color-border);color:var(--color-text)}.btn-center{justify-content:center}.btn-inline{justify-content:center;width:auto}.btn-danger{border-color:var(--color-danger-deep);color:var(--color-danger-dim)}.btn-danger:hover{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-text)}.btn-cta{background:var(--color-danger);border-color:var(--color-text);text-transform:uppercase;font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-wide)}.btn-cta:hover{background:var(--color-accent);border-color:var(--color-text-inverse);color:var(--color-text-inverse)}.btn-nav{border-color:var(--color-nav-strong);color:var(--color-nav-strong);background:0 0}.btn-nav:hover{background:var(--color-nav);border-color:var(--color-nav);color:var(--color-text)}.icon-btn{width:var(--icon-btn-size);height:var(--icon-btn-size);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-xl);cursor:pointer;transition:border-color var(--duration) var(--ease-standard), color var(--duration) var(--ease-standard);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.icon-btn:hover{border-color:var(--color-danger);color:var(--color-danger)}.tab-strip{border-bottom:var(--border-width) solid var(--color-border);flex-shrink:0;align-items:center;display:flex}.tab{padding:var(--space-3) var(--space-4);border:none;border-bottom:var(--border-width) solid transparent;color:var(--color-text-muted);font-family:var(--font-ui);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);background:0 0;flex:1}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-accent);border-color:var(--color-accent)}.chip-btn{min-width:var(--icon-btn-size);height:var(--icon-btn-size);padding:0 var(--space-3);box-sizing:border-box;background:var(--color-surface-raised);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);justify-content:center;align-items:center;display:flex}.chip-btn:hover{background:var(--color-surface-hover);border-color:var(--color-accent)}.select{height:var(--control-height);box-sizing:border-box;padding:0 var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-lg);cursor:pointer}.select:hover{border-color:var(--color-accent)}.slider{appearance:none;width:100%;height:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.slider::-webkit-slider-thumb{appearance:none;width:var(--thumb-size);height:var(--thumb-size);background:var(--color-accent);border-radius:var(--radius-round);cursor:pointer}.slider::-moz-range-thumb{width:var(--thumb-size);height:var(--thumb-size);background:var(--color-accent);border-radius:var(--radius-round);cursor:pointer;border:none}.slider:hover{border-color:var(--color-accent)}.slider-inline{width:var(--slider-width-inline);flex:none}.text-input{width:100%;height:var(--control-height);box-sizing:border-box;padding:0 var(--space-4);background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-lg)}.text-input:focus-visible{border-color:var(--color-accent)}.inline-name-input{color:var(--color-text);font-family:var(--font-ui);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;min-width:0}.inline-name-input[readonly]{-webkit-user-select:none;user-select:none}.inline-name-input:not([readonly]){cursor:text;background:var(--color-inset);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:var(--border-hairline) solid var(--color-text)}.code-readout{box-sizing:border-box;width:100%;padding:var(--space-4);background:var(--color-sunken);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--color-text-code);overflow-wrap:anywhere;display:block}.section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-muted);letter-spacing:var(--letter-spacing-wide)}.picker-item{align-items:center;gap:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard), box-shadow var(--duration) var(--ease-standard);display:flex}.picker-item img{object-fit:contain;width:40px;height:40px}.picker-item:hover{background:var(--color-surface-raised)}.picker-item.active{background:var(--color-accent-soft);border-color:var(--color-accent);box-shadow:0 0 var(--space-4) var(--color-accent-glow)}.picker-group-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-muted);letter-spacing:var(--letter-spacing-wide)}.picker-forms{gap:var(--space-3);padding:0 var(--space-3);display:flex}.picker-form{object-fit:contain;cursor:pointer;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);width:40px;height:40px;transition:border-color var(--duration) var(--ease-standard), box-shadow var(--duration) var(--ease-standard)}.picker-form:hover{border-color:var(--color-text-muted)}.picker-form.active{border-color:var(--color-accent);box-shadow:0 0 var(--space-4) var(--color-accent-glow)}.asset-card{gap:var(--space-4);padding:var(--space-6);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;display:flex}.asset-card-builtin{opacity:var(--opacity-disabled)}.asset-card-thumb{aspect-ratio:1;object-fit:contain;background:var(--color-sunken);border-radius:var(--radius-sm);width:100%}.asset-card-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.asset-card-badge{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-muted);letter-spacing:var(--letter-spacing-wide)}.asset-card-grounds{gap:var(--space-3);flex-wrap:wrap;display:flex}.asset-card-grounds img{object-fit:contain;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);width:40px;height:40px}.import-dropzone{align-items:center;gap:var(--space-4);padding:var(--space-8);text-align:center;background:var(--color-sunken);border:var(--border-width) dashed var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--duration) var(--ease-standard), background-color var(--duration) var(--ease-standard);flex-direction:column;display:flex}.import-dropzone.drag-over{border-color:var(--color-accent);background:var(--color-accent-soft)}.import-file-row{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);cursor:pointer;display:flex}.import-file-row:hover{background:var(--color-surface-raised)}.import-file-name{font-family:var(--font-mono);font-size:var(--font-size-sm);overflow-wrap:anywhere}.import-file-verdict{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right}.import-file-row-fail .import-file-verdict{color:var(--color-danger-dim)}#import-preview-canvas{background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);max-width:100%;max-height:360px;image-rendering:pixelated;margin:0 auto;display:block}.import-form-row{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;display:flex}.import-form-thumb{object-fit:contain;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0;width:40px;height:40px}.import-form-name{font-family:var(--font-mono);font-size:var(--font-size-sm);overflow-wrap:anywhere;flex:auto;min-width:0}.import-form-movement,.import-form-fade{flex:none}.import-form-stand-height{flex:none;width:64px;display:none}.import-form-stand-height.active{display:block}#btn-import-template.attention{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 var(--space-4) var(--color-accent-glow)}#sidebar{background:var(--color-sidebar);border-left:var(--border-width) solid var(--color-border);height:100%;box-shadow:var(--shadow-sidebar);color:var(--color-text);flex:none;display:flex}#sidebar-rail{flex:0 0 var(--sidebar-rail-width);align-items:center;gap:var(--space-5);padding:var(--space-6) 0;box-sizing:border-box;border-left:var(--border-width) solid var(--color-border);flex-direction:column;order:1;display:flex}#sidebar-body{width:0;height:100%;transition:width var(--duration-slow) var(--ease-out);box-sizing:border-box;flex:none;overflow:hidden}#sidebar-body.open{width:var(--sidebar-width)}.sidebar-panel{width:var(--sidebar-width);box-sizing:border-box;height:100%;padding:var(--space-7);gap:var(--space-7);display:none;overflow:hidden auto}.sidebar-panel.active{flex-direction:column;display:flex}.sidebar-tab{width:var(--icon-size);height:var(--icon-size);background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-ui);font-size:var(--font-size-title);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;opacity:var(--opacity-muted);transition:opacity var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.sidebar-tab:hover{opacity:1;border-color:var(--color-accent)}.sidebar-tab.active{opacity:1;border-color:var(--color-nav)}.folder-tree{gap:var(--space-4);min-height:var(--control-height);flex-direction:column;flex:auto;display:flex}.folder-row{align-items:center;gap:var(--space-3);padding:0 var(--space-4);width:100%;min-height:var(--control-height);box-sizing:border-box;background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-left-width:var(--border-width-overlay);border-radius:var(--radius-sm);cursor:grab;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);display:flex}.folder-row:hover{background:var(--color-surface)}.folder-row:active{cursor:grabbing}.folder-children{gap:var(--space-4);margin-left:var(--space-4);padding-left:var(--space-6);border-left:var(--border-hairline) solid var(--color-border);flex-direction:column;display:flex}.folder-tree.drag-over,.folder-children.drag-over,.folder-row.drag-over{background:var(--color-accent-soft);outline:var(--border-width) dashed var(--color-accent)}.folder-twisty{color:var(--color-text-muted);font-size:var(--font-size-md);cursor:pointer;transition:color var(--duration) var(--ease-standard);background:0 0;border:none;flex-shrink:0;padding:0}.folder-twisty:hover{color:var(--color-text)}.folder-controls{align-items:center;gap:var(--space-2);opacity:var(--opacity-faint);transition:opacity var(--duration) var(--ease-standard);flex-shrink:0;display:flex}.folder-row:hover .folder-controls{opacity:1}.folder-btn{color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;padding:0}.folder-btn:hover{color:var(--color-text);transform:scale(1.2)}.folder-color{width:var(--thumb-size);height:var(--thumb-size);border-radius:var(--radius-round);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0}.panel-add-row{gap:var(--space-4);display:flex}.panel-add-row .btn{flex:1 1 0;width:auto}.modal-overlay{background:var(--color-scrim);z-index:var(--z-modal);justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-dialog{background:var(--color-panel-solid);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-8);width:var(--dialog-width);max-width:calc(100vw - var(--space-8) * 2);box-shadow:var(--shadow-dialog);color:var(--color-text)}.modal-dialog p{margin:0 0 var(--space-7);font-size:var(--font-size-xl);line-height:var(--line-height-normal)}.modal-actions{justify-content:flex-end;gap:var(--space-5);display:flex}.btn:focus-visible,.icon-btn:focus-visible,.chip-btn:focus-visible,.tab:focus-visible,.sidebar-tab:focus-visible,.folder-twisty:focus-visible,.folder-btn:focus-visible,.folder-color:focus-visible,.select:focus-visible,.slider:focus-visible,.text-input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background-color:var(--color-app-bg);font-family:var(--font-ui);width:100vw;height:100vh;margin:0;padding:0;display:flex;overflow:hidden}canvas{display:block}#viewport{flex:auto;min-width:0;height:100%;position:relative;overflow:hidden}#pause-banner{top:var(--space-7);align-items:center;gap:var(--space-3);background:var(--color-danger);color:var(--color-text-inverse);padding:var(--space-4) var(--space-8);border-radius:var(--radius-md);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-panel);z-index:var(--z-pause-banner);pointer-events:none;display:none;position:fixed;left:50%;transform:translate(-50%)}body.game-paused #pause-banner{display:flex}body.game-paused #viewport{box-shadow:var(--shadow-pause-border)}#toolbar{top:var(--space-6);left:var(--space-6);width:var(--toolbar-width);align-items:center;gap:var(--space-4);padding:var(--space-4);box-sizing:border-box;background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-float);z-index:var(--z-hud);flex-direction:column;display:flex;position:absolute}.tool-group{align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.tool-title{color:var(--color-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;text-align:center;width:100%}.asset-group{gap:var(--space-3);grid-template-columns:1fr 1fr;justify-items:center;width:100%;display:grid}.asset-item{width:var(--control-height);height:var(--control-height);background-color:var(--color-surface-raised);border:var(--border-width) dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text);font-size:var(--font-size-title);-webkit-user-select:none;user-select:none;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard), box-shadow var(--duration) var(--ease-standard);justify-content:center;align-items:center;display:flex}.asset-item:hover{border-color:var(--color-accent)}.asset-item.active{background-color:var(--color-danger);border:var(--border-width) solid var(--color-text);box-shadow:var(--shadow-glow-danger)}.divider{width:100%;height:var(--border-hairline);background:var(--color-border)}.sidebar-panel-header{justify-content:space-between;align-items:center;gap:var(--space-6);display:flex}.sidebar-panel-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}#current-scene-name{text-overflow:ellipsis;white-space:nowrap;color:var(--color-nav-strong);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);overflow:hidden}#scene-list{gap:var(--space-4);flex-direction:column;display:flex}.scene-tab{align-items:center;gap:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--space-5);width:100%;min-height:var(--control-height);box-sizing:border-box;cursor:pointer;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard), box-shadow var(--duration) var(--ease-standard);display:flex;position:relative}.scene-tab:hover{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.scene-tab.viewing{background:var(--color-nav-soft);border-color:var(--color-nav)}.scene-tab.active-players{box-shadow:var(--shadow-glow-danger);border-color:var(--color-danger)}.scene-tab.viewing.active-players{background:var(--color-danger-deep);border-color:var(--color-danger)}.scene-controls{gap:var(--space-2);opacity:var(--opacity-faint);transition:opacity var(--duration) var(--ease-standard);flex-shrink:0;display:flex}.scene-tab:hover .scene-controls,.scene-tab.viewing .scene-controls{opacity:1}.scene-btn{color:var(--color-text-muted);font-size:var(--font-size-xl);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;padding:0}.scene-btn:hover{color:var(--color-text);transform:scale(1.2)}.scene-btn.btn-target:hover{color:var(--color-danger)}.scene-btn.btn-clone:hover{color:var(--color-nav)}.scene-btn.btn-delete:hover{color:var(--color-danger)}#actor-list{flex-direction:column;display:flex}#actor-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;padding:var(--space-5) 0;display:none}#actor-empty.active{display:block}.actor-row{align-items:center;gap:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);width:100%;min-height:var(--control-height);box-sizing:border-box;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);display:flex}.actor-row:hover{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.actor-row{cursor:grab}.actor-row:active{cursor:grabbing}.actor-row.placing{background:var(--color-surface-raised);border-color:var(--color-nav);cursor:default}.actor-portrait{object-fit:cover;border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border-strong);cursor:pointer;flex-shrink:0;width:32px;height:32px}.actor-portrait:hover{border-color:var(--color-accent)}.actor-steps{box-sizing:border-box;width:48px;padding:var(--space-1) var(--space-2);background:var(--color-inset);border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-md);text-align:center;flex-shrink:0}.actor-steps:hover,.actor-steps:focus-visible{border-color:var(--color-accent)}.actor-controls{gap:var(--space-2);opacity:var(--opacity-faint);transition:opacity var(--duration) var(--ease-standard);flex-shrink:0;display:flex}.actor-row:hover .actor-controls{opacity:1}.actor-btn{color:var(--color-text-muted);font-size:var(--font-size-xl);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;padding:0}.actor-btn:hover{color:var(--color-text);transform:scale(1.2)}.btn-delete-actor:hover{color:var(--color-danger)}.actor-row-wrapper{gap:var(--space-2);flex-direction:column;display:flex}.actor-share-panel{gap:var(--space-2);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);flex-direction:column;display:flex}.actor-share-header{font-size:var(--font-size-sm);color:var(--color-text-muted)}.actor-share-line{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.actor-share-name{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.journal-list-view{gap:var(--space-6);box-sizing:border-box;flex-direction:column;height:100%;display:flex}.journal-list{flex-direction:column;flex:auto;min-height:0;display:flex}.journal-page-list{gap:var(--space-4);flex-direction:column;display:flex}.journal-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;padding:var(--space-5) 0;display:none}.journal-empty.active{display:block}.journal-row,.journal-page-row{align-items:center;gap:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);width:100%;min-height:var(--control-height);box-sizing:border-box;cursor:pointer;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);display:flex}.journal-row:hover,.journal-page-row:hover{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.journal-row-wrapper{gap:var(--space-2);flex-direction:column;display:flex}.journal-title-input{font-size:var(--font-size-xl)}.journal-controls{gap:var(--space-2);opacity:var(--opacity-faint);transition:opacity var(--duration) var(--ease-standard);flex-shrink:0;display:flex}.journal-row:hover .journal-controls,.journal-page-row:hover .journal-controls,.journal-header .journal-controls{opacity:1}.journal-btn{color:var(--color-text-muted);font-size:var(--font-size-xl);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;padding:0}.journal-btn:hover{color:var(--color-danger);transform:scale(1.2)}.journal-btn.active{color:var(--color-nav-strong)}.journal-share-panel{gap:var(--space-2);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);flex-direction:column;display:flex}.journal-share-header{font-size:var(--font-size-sm);color:var(--color-text-muted)}.journal-share-line{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.journal-share-name{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.journal-header{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.journal-header-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-accent);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);flex:1;overflow:hidden}.journal-row-glyph{font-size:var(--font-size-md);flex-shrink:0}.invite-external{gap:var(--space-3);margin-top:var(--space-5);flex-direction:column;display:none}.invite-external.active{display:flex}.invite-external-warning{color:var(--color-danger-dim);font-size:var(--font-size-xs);margin:0}.table-view{gap:var(--space-5);flex-direction:column;display:flex}.table-formula-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.table-formula-input{flex:0 0 var(--table-formula-width)}.table-formula-readout{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-md)}.table-coverage{min-width:0;color:var(--color-danger-dim);font-size:var(--font-size-xs);flex:100%}.table-coverage:empty{display:none}.table-results{gap:var(--space-2);flex-direction:column;display:flex}.table-result{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);display:flex}.table-result:nth-child(odd){background:var(--color-sunken)}.table-result-range{flex:0 0 var(--table-range-width);text-align:right;color:var(--color-accent);font-family:var(--font-mono);font-size:var(--font-size-sm)}.table-result-text{min-width:0;color:var(--color-text);font-size:var(--font-size-md);overflow-wrap:anywhere;flex:1}.table-result-editing{flex-wrap:wrap}.table-result-editing .journal-controls{order:1;margin-left:auto}.table-result-input{flex:1 0 100%;order:2;min-width:0}.table-range-input{flex:0 0 var(--table-range-width);text-align:center;padding-inline:var(--space-2)}.chat-table-source{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.journal-page-body{gap:var(--space-4);flex-direction:column;display:flex}.journal-editor{height:calc(var(--control-height) * 6);resize:vertical;padding:var(--space-4);font-family:var(--font-mono);line-height:var(--line-height-normal)}.journal-prose{color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-md);line-height:var(--line-height-relaxed);word-wrap:break-word}.journal-prose>:first-child{margin-top:0}.journal-prose>:last-child{margin-bottom:0}.journal-prose h1,.journal-prose h2,.journal-prose h3{color:var(--color-accent);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);margin:var(--space-7) 0 var(--space-4)}.journal-prose h1{font-size:var(--font-size-title)}.journal-prose h2{font-size:var(--font-size-xl)}.journal-prose h3{font-size:var(--font-size-lg)}.journal-prose p{margin:0 0 var(--space-5)}.journal-prose ul,.journal-prose ol{margin:0 0 var(--space-5);padding-left:var(--space-8)}.journal-prose li{margin-bottom:var(--space-2)}.journal-prose a{color:var(--color-nav-strong)}.journal-prose blockquote{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-5);border-left:var(--space-2) solid var(--color-border-strong);color:var(--color-text-muted);background:var(--color-sunken)}.journal-prose code{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-code);background:var(--color-sunken);padding:0 var(--space-2);border-radius:var(--radius-sm)}.journal-prose pre{margin:0 0 var(--space-5);padding:var(--space-4);background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);overflow-x:auto}.journal-prose pre code{background:0 0;padding:0}.journal-prose table{border-collapse:collapse;margin:0 0 var(--space-5);width:100%}.journal-prose th,.journal-prose td{border:var(--border-width) solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-sm)}.journal-prose th{background:var(--color-surface)}.journal-prose img{border-radius:var(--radius-sm);max-width:100%;margin:0 0 var(--space-5);display:block}.journal-prose hr{border:none;border-top:var(--border-width) solid var(--color-border);margin:var(--space-6) 0}.journal-image-missing{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-5);background:var(--color-sunken);border:var(--border-hairline) dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);display:inline-flex}#audio-blocked-notice{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent);font-family:var(--font-ui);font-size:var(--font-size-sm);text-align:left;cursor:pointer;display:none}#audio-blocked-notice.active{display:block}.audio-channel-row{align-items:center;gap:var(--space-4);display:flex}.audio-channel-row span{width:60px;font-size:var(--font-size-sm);flex-shrink:0}#audio-track-section{gap:var(--space-5);flex-direction:column;display:flex}#audio-track-list{gap:var(--space-3);flex-direction:column;display:flex}#audio-track-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;padding:var(--space-5) 0;display:none}#audio-track-empty.active{display:block}.audio-track-row{align-items:center;gap:var(--space-3);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:flex}.audio-track-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-sm);flex:1;overflow:hidden}.audio-track-duration{color:var(--color-text-muted);font-size:var(--font-size-sm);font-family:var(--font-mono);flex-shrink:0}.audio-track-row .slider{width:var(--slider-width-inline);flex-shrink:0}.audio-btn{color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;flex-shrink:0;padding:0}.audio-btn:hover{color:var(--color-accent);transform:scale(1.2)}#btn-add-track{margin-top:var(--space-5)}.tool-panel{top:var(--space-6);left:calc(var(--space-6) + var(--toolbar-width) + var(--space-6));width:var(--tool-panel-width);gap:var(--space-5);background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);z-index:var(--z-hud-menu);box-shadow:var(--shadow-float);flex-direction:column;display:none;position:absolute}.tool-panel.open{display:flex}.tool-panel-header{justify-content:space-between;align-items:center;display:flex}.tool-panel-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}#template-list,#fx-list{gap:var(--space-3);flex-direction:column;display:flex}.template-list-item,.fx-list-item{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);color:var(--color-text);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard), box-shadow var(--duration) var(--ease-standard)}.template-list-item{border-left-width:var(--space-3)}.template-list-item:hover,.fx-list-item:hover{background:var(--color-surface-raised)}.template-list-item.active,.fx-list-item.active{background:var(--color-accent-soft);border-color:var(--color-accent);box-shadow:0 0 var(--space-4) var(--color-accent-glow)}#tileset-list,#prop-list{gap:var(--space-3);flex-direction:column;display:flex}#prop-selection{gap:var(--space-3);flex-direction:column;display:none}#prop-selection.open{display:flex}#turn-bar{top:var(--space-6);align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);box-sizing:border-box;background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);color:var(--color-text);white-space:nowrap;z-index:var(--z-hud);display:none;position:absolute;left:50%;transform:translate(-50%)}#turn-bar.active{display:flex}#turn-round{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}#turn-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-accent)}#turn-bar #btn-end-turn{display:none}#turn-bar #btn-end-turn.active{display:flex}#token-readout{bottom:var(--space-6);align-items:baseline;gap:var(--space-5);padding:var(--space-3) var(--space-6);box-sizing:border-box;background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:var(--z-hud);display:none;position:absolute;left:50%;transform:translate(-50%)}#token-readout.active{display:flex}#token-readout-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);color:var(--color-accent);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}#token-readout-steps{padding:var(--space-1) var(--space-4);background:var(--color-inset);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-md)}#combat-list{gap:var(--space-4);flex-direction:column;display:flex}.combatant-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);box-sizing:border-box;width:100%;min-height:var(--control-height);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);display:flex}.combatant-row.current{background:var(--color-accent-soft);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.combatant-portrait{object-fit:cover;border-radius:var(--radius-sm);border:var(--border-width) solid var(--color-border-strong);flex-shrink:0;width:32px;height:32px}.combatant-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.combatant-controls{gap:var(--space-2);opacity:var(--opacity-faint);transition:opacity var(--duration) var(--ease-standard);flex-shrink:0;display:flex}.combatant-row:hover .combatant-controls,.combatant-row.current .combatant-controls{opacity:1}.combatant-btn{color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), color var(--duration) var(--ease-standard);background:0 0;border:none;padding:0}.combatant-btn:hover{color:var(--color-text);transform:scale(1.2)}#btn-combat-begin,#btn-combat-end,#combat-turn-controls{display:none}#btn-combat-begin.active,#btn-combat-end.active,#combat-turn-controls.active{display:flex}#combat-empty{display:none}#combat-empty.active{display:block}#zone-overlay-layer{top:var(--scene-nav-height);width:100%;height:calc(100% - var(--scene-nav-height));pointer-events:none;z-index:var(--z-map-overlay);position:absolute;left:0}.zone-card{box-sizing:border-box;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-standard);position:absolute}.zone-badge{border:var(--border-width-overlay) solid var(--color-text-inverse);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-7);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text);text-shadow:var(--text-shadow-overlay);box-shadow:var(--shadow-hard);pointer-events:auto;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out);white-space:nowrap;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.zone-badge:hover{filter:brightness(1.2);transform:translate(-50%)scale(1.1)}.zone-focus-panel{align-items:center;gap:var(--space-5);pointer-events:none;z-index:var(--z-hud);flex-direction:column;display:flex;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.zone-focus-actions{gap:var(--space-5);pointer-events:auto;display:flex}.zone-focus-actions .btn{width:auto;min-height:0;padding:var(--space-3) var(--space-5);border-color:var(--color-text-inverse);font-size:var(--font-size-sm);box-shadow:var(--shadow-hard)}.zone-focus-actions .btn-clear-zone{background:var(--color-danger)}.zone-focus-actions .btn-clear-zone:hover{background:var(--color-text);color:var(--color-danger)}.zone-focus-body{align-items:flex-end;gap:var(--space-6);display:flex}.zone-name-group{align-items:center;gap:var(--space-4);background:var(--color-text);border:var(--border-width-overlay) solid var(--color-text-inverse);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-5);box-shadow:var(--shadow-hard);pointer-events:auto;height:var(--icon-btn-size);margin-bottom:var(--space-1);display:flex}.zone-lock-btn{font-size:var(--font-size-title);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.zone-lock-btn:hover{transform:scale(1.2)}input.zone-name-input{color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);font-family:var(--font-ui);font-size:var(--font-size-lg);text-align:center;background:0 0;border:none;width:120px}.zone-settings{gap:var(--space-2);pointer-events:auto;flex-direction:column;display:flex}.zone-setting{align-items:center;gap:var(--space-4);color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);background:var(--color-overlay-light);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration) var(--ease-standard);border:var(--border-width) solid var(--color-text-inverse);box-shadow:var(--shadow-hard);white-space:nowrap;display:flex}.zone-setting:hover{background:var(--color-accent)}.zone-setting input[type=color]{width:var(--font-size-title);height:var(--font-size-title);border-radius:var(--radius-round);cursor:pointer;background:0 0;border:none;padding:0}.drawer-header{justify-content:space-between;align-items:center;gap:var(--space-6);display:flex}.drawer-title{align-items:center;gap:var(--space-3);font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);display:flex}.drawer-title-icon{font-size:1.3em;line-height:1}.drawer-divider{border:none;border-top:var(--border-hairline) solid var(--color-border);margin:0}.drawer-section{gap:var(--space-5);flex-direction:column;display:flex}.drawer-field{justify-content:space-between;align-items:center;gap:var(--space-5);font-size:var(--font-size-lg);display:flex}.drawer-field>.select,.drawer-field>.text-input{flex:0 0 var(--field-control-width);min-width:0}.invite-address-row{align-items:center;gap:var(--space-4);display:flex}.invite-address-row .code-readout{flex:auto;min-width:0}.invite-address-row .icon-btn{flex-shrink:0}#invite-address{cursor:pointer;border:var(--border-width) solid transparent}#invite-address:hover,#invite-address:focus-visible{border-color:var(--color-accent);outline:none}#settings-readout{gap:var(--space-2);padding:var(--space-4) var(--space-5);box-sizing:border-box;background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-md);flex-direction:column;display:flex}.settings-readout-row{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}.settings-readout-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);font-weight:var(--font-weight-semibold);overflow:hidden}code.settings-readout-value{font-family:var(--font-mono);font-weight:var(--font-weight-normal)}#game-settings-dialog,#world-config-dialog,#controls-dialog{width:var(--dialog-width-lg)}#game-settings-body{gap:var(--space-7);max-height:60vh;display:flex}#game-settings-owners{flex:0 0 var(--field-control-width);gap:var(--space-4);flex-direction:column;min-width:0;display:flex}#settings-owner-list{gap:var(--space-3);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.settings-owner-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:0 var(--space-5);min-height:var(--control-height);box-sizing:border-box;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);font-family:var(--font-ui);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-align:left;cursor:pointer;transition:background-color var(--duration) var(--ease-standard), border-color var(--duration) var(--ease-standard);display:flex}.settings-owner-row:hover{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.settings-owner-row.active{background:var(--color-nav-soft);border-color:var(--color-nav)}.settings-owner-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-owner-count{color:var(--color-text-muted);font-weight:var(--font-weight-normal);flex-shrink:0}#game-settings-fields{flex:auto;min-width:0;overflow-y:auto}#settings-field-list{gap:var(--space-7);flex-direction:column;display:flex}.settings-field{gap:var(--space-2);flex-direction:column;display:flex}.settings-field-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.world-config-stacked{align-items:stretch;gap:var(--space-3);flex-direction:column}.world-config-stacked>.text-input{flex:none}.world-config-textarea{height:calc(var(--control-height) * 2);padding-top:var(--space-4);padding-bottom:var(--space-4);line-height:var(--line-height-normal);resize:none}#world-config-cover-row{gap:var(--space-4)}#world-config-cover{aspect-ratio:16/9;object-fit:cover;background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);width:100%;display:none}#world-config-cover.active{display:block}#module-list,#controls-list{gap:var(--space-3);flex-direction:column;display:flex}#controls-list{max-height:60vh;overflow-y:auto}.module-row,.controls-row{align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);box-sizing:border-box;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-md);display:flex}.module-name,.controls-action{flex:auto;min-width:0}.module-version{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);flex-shrink:0}.controls-keys{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-accent);overflow-wrap:anywhere;flex:0 0 120px}#presence-panel{bottom:var(--space-6);left:var(--space-6);gap:var(--space-2);max-width:200px;padding:var(--space-4) var(--space-5);box-sizing:border-box;background:var(--color-panel);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-float);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:var(--z-hud);flex-direction:column;display:flex;position:absolute}#presence-list{gap:var(--space-1);flex-direction:column;display:flex}.presence-row{text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:var(--font-size-md);overflow:hidden}.presence-gm{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.sidebar-badge{top:calc(-1 * var(--space-1));right:calc(-1 * var(--space-1));width:var(--space-5);height:var(--space-5);background:var(--color-danger);border-radius:var(--radius-round);border:var(--border-width) solid var(--color-sidebar);box-sizing:content-box;display:none;position:absolute}.sidebar-badge.active{display:block}#chat-log{gap:var(--space-5);min-height:0;padding:var(--space-5);box-sizing:border-box;background:var(--color-sunken);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;flex:auto;display:flex;overflow:hidden auto}#chat-empty{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-md);margin:auto 0;display:none}#chat-empty.active{display:block}.chat-message{gap:var(--space-1);padding:var(--space-4) var(--space-5);box-sizing:border-box;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;display:flex}.chat-message.from-gm{border-color:var(--color-accent)}.chat-message.whisper{background:var(--color-whisper-soft);border-color:var(--color-whisper)}.chat-whisper-line{color:var(--color-whisper);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.chat-whisper-line.overheard{opacity:var(--opacity-muted);font-style:italic}.chat-note{text-align:center;color:var(--color-whisper);font-size:var(--font-size-sm);margin:0;font-style:italic}.chat-message-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.chat-sender{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-nav);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);overflow:hidden}.chat-message.from-gm .chat-sender{color:var(--color-accent)}.chat-time{color:var(--color-text-muted);font-size:var(--font-size-xs);flex-shrink:0}.chat-text{color:var(--color-text);font-size:var(--font-size-lg);line-height:var(--line-height-normal);overflow-wrap:anywhere}.chat-roll{gap:var(--space-2);flex-direction:column;display:flex}.chat-roll-formula{color:var(--color-text-code);font-family:var(--font-mono);font-size:var(--font-size-md)}.chat-roll-detail{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chat-roll-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.chat-roll-operator{color:var(--color-text-muted);font-size:var(--font-size-md)}.chat-roll-flat{color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-lg);align-items:center}.chat-roll-total{color:var(--color-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.chat-die{min-width:var(--icon-btn-size);height:var(--icon-btn-size);padding:0 var(--space-2);box-sizing:border-box;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-md);justify-content:center;align-items:center;display:flex}.chat-die.dropped{opacity:var(--opacity-disabled);border-style:dashed;text-decoration:line-through}.chat-die.max{border-color:var(--color-success);color:var(--color-success)}.chat-die.min{border-color:var(--color-danger);color:var(--color-danger-dim)}.chat-die.exploded{border-style:double}.chat-die.rerolled{border-color:var(--color-nav)}#chat-error:empty{display:none}#chat-error{color:var(--color-danger-dim);font-size:var(--font-size-md);line-height:var(--line-height-normal);margin:0}#quick-dice-bar{gap:var(--space-2);flex-wrap:nowrap;display:flex}#quick-dice-bar .chip-btn{flex:auto;min-width:0}.chat-textarea{height:calc(var(--control-height) * 2);padding-top:var(--space-4);padding-bottom:var(--space-4);line-height:var(--line-height-normal);resize:none}#chat-compose{align-items:stretch;gap:var(--space-3);display:flex;position:relative}#chat-compose .chat-textarea{flex:auto;min-width:0}#chat-roll-mode{flex:none;width:auto;height:auto}#chat-targets{gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:var(--border-width) solid var(--color-whisper);border-radius:var(--radius-sm);max-height:calc(var(--control-height) * 4);flex-direction:column;display:none;overflow-y:auto}#chat-targets.active{display:flex}.chat-target-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.chat-target{text-align:left;padding:var(--space-2) var(--space-4);color:var(--color-text);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);font-size:var(--font-size-md);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;overflow:hidden}.chat-target:hover,.chat-target.active{background:var(--color-whisper-soft);border-color:var(--color-whisper)}#toast{transform:translateX(-50%) translateY(var(--space-7));background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-success);padding:var(--space-5) var(--space-8);border-radius:var(--radius-md);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-panel);opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);z-index:var(--z-toast);position:fixed;bottom:28px;left:50%}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}#dice-fx-layer{pointer-events:none;z-index:var(--z-fx-overlay);opacity:0;transition:opacity var(--duration) var(--ease-standard);position:fixed;inset:0}#dice-fx-layer.active{opacity:1}#dice-fx-layer canvas{display:block}#reset-confirm-dialog{border-color:var(--color-danger)}#lobby-overlay{z-index:var(--z-modal-raised);background-color:var(--color-grid-void);background-image:radial-gradient(circle at center, transparent 0%, var(--color-grid-void) 70%), repeating-linear-gradient(26.57deg, var(--color-grid-line), var(--color-grid-line) 1px, transparent 1px, transparent var(--grid-cell)), repeating-linear-gradient(-26.57deg, var(--color-grid-line), var(--color-grid-line) 1px, transparent 1px, transparent var(--grid-cell))}#lobby-frame{gap:var(--space-7);width:min(var(--reception-width), 92vw);height:88vh;color:var(--color-text);flex-direction:column;display:flex}#lobby-masthead{flex-shrink:0;position:relative}#lobby-art{object-fit:cover;border-radius:var(--radius-md);width:100%;max-height:180px;display:block}#lobby-panel{min-height:0;padding:var(--space-7);box-sizing:border-box;background:var(--color-panel-solid);border:var(--border-width) solid var(--color-nav-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-dialog);flex-direction:column;flex:auto;display:flex;overflow:hidden}#lobby-version{text-align:center;color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);flex-shrink:0}#lobby-data-folder-row{margin-bottom:var(--space-7);flex-shrink:0;display:none}#lobby-data-folder-row.available{display:block}#lobby-data-folder-prompt{display:none}#lobby-data-folder-prompt.active{display:block}#data-folder-suggested{margin:var(--space-4) 0 var(--space-7);display:block}#lobby-data-folder-chosen{align-items:center;gap:var(--space-4);display:none}#lobby-data-folder-chosen.active{display:flex}#lobby-data-folder-chosen span{flex-shrink:0}#lobby-data-folder-path{flex:1;min-width:0}.lobby-screen{display:none}.lobby-screen.active{display:block}#lobby-worlds.active,#lobby-join.active{flex-direction:column;flex:1;min-height:0;display:flex}#lobby-header{top:var(--space-5);right:var(--space-5);gap:var(--space-4);display:flex;position:absolute}#lobby-header .icon-btn{background:var(--color-sidebar)}#lobby-filter-row{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);flex-shrink:0;display:flex}#lobby-filter{flex:auto;min-width:0}#btn-lobby-new{white-space:nowrap;flex-shrink:0}#lobby-view-modes{gap:var(--space-2);flex-shrink:0;display:flex}#lobby-view-modes .icon-btn.active{border-color:var(--color-accent);color:var(--color-accent)}.tab-panel{margin-top:var(--space-5);display:none}.tab-panel.active{display:block}#lobby-tab-worlds.active{flex-direction:column;flex:1;min-height:0;display:flex}#lobby-tab-worlds #lobby-world-list{flex:auto;min-height:0;overflow-y:auto}#lobby-world-list{gap:var(--space-5);align-content:start;display:grid}#lobby-world-list.view-covers{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}#lobby-world-list.view-compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}#lobby-world-list.view-list{grid-template-columns:1fr}.lobby-world{text-align:left;background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-ui);cursor:pointer;transition:border-color var(--duration) var(--ease-standard), background-color var(--duration) var(--ease-standard);flex-direction:column;padding:0;display:flex;overflow:hidden}.lobby-world:hover{border-color:var(--color-accent);background:var(--color-surface-raised)}.lobby-world-cover{aspect-ratio:16/9;background-position:50%;background-size:cover;flex-shrink:0;width:100%}.lobby-world-body{gap:var(--space-2);padding:var(--space-5);flex-direction:column;min-width:0;display:flex}.lobby-world-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.lobby-world-description{-webkit-line-clamp:2;color:var(--color-text-muted);font-size:var(--font-size-md);line-height:var(--line-height-snug);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lobby-world-meta{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.lobby-world-date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.lobby-world-system{padding:var(--space-1) var(--space-3);background:var(--color-nav-soft);border-radius:var(--radius-sm);color:var(--color-nav-strong);font-family:var(--font-mono);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.view-compact .lobby-world-description,.view-list .lobby-world-description{display:none}.view-list .lobby-world{flex-direction:row;align-items:center}.view-list .lobby-world-cover{aspect-ratio:16/9;width:120px}.view-list .lobby-world-body{flex:auto}#lobby-no-worlds,#lobby-no-matches{display:none}#lobby-no-worlds.active,#lobby-no-matches.active{display:block}#lobby-no-systems{display:none}#lobby-no-systems.active{display:block}#lobby-systems-path{margin-top:var(--space-4);display:block}#lobby-world-error:empty{display:none}#lobby-world-error{margin-top:var(--space-4);color:var(--color-danger-dim)}#lobby-world-name{margin-bottom:var(--space-5)}#lobby-world-id-preview:empty{display:none}#lobby-world-id-preview{margin-bottom:var(--space-7);color:var(--color-text-muted)}#lobby-join-world{margin-bottom:var(--space-7)}.lobby-note{color:var(--color-text-muted)}#lobby-seat-list{gap:var(--space-4);margin:var(--space-4) 0;flex:1;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));min-height:0;display:grid;overflow-y:auto}#lobby-no-seats{display:none}#lobby-no-seats.active{display:block}#lobby-password-row{align-items:center;gap:var(--space-4);margin-top:var(--space-7);display:none}#lobby-password-row.active{display:flex}#lobby-password{min-width:0;display:none}#lobby-password.active{display:block}#lobby-error:empty{display:none}#lobby-error{margin-top:var(--space-4);color:var(--color-danger-dim)}#global-settings-overlay,#library-overlay{z-index:var(--z-lobby-modal)}#library-dialog{width:min(var(--dialog-width-xl), 92vw);flex-direction:column;max-height:88vh;display:flex;overflow:hidden}#library-list{min-height:0;margin:var(--space-5) 0;flex:1;overflow-y:auto}.library-group+.library-group{margin-top:var(--space-7)}.library-group-cards{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}#library-empty{display:none}#library-empty.active{display:block}#library-path{flex:auto;min-width:0}#import-overlay{z-index:var(--z-lobby-modal-raised)}#import-dialog{width:min(var(--dialog-width-xl), 92vw);flex-direction:column;max-height:88vh;display:flex;overflow:hidden}#import-kind-step,#import-work-step{min-height:0;display:none}#import-kind-step.active{display:block}#import-work-step.active{gap:var(--space-6);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.import-kind-actions{margin-top:var(--space-7);justify-content:center}#import-file-list{max-height:200px;overflow-y:auto}#import-preview-canvas:not([width]),#import-preview-canvas[width="0"]{display:none}#import-prop-fields{gap:var(--space-4);flex-direction:column;display:none}#import-prop-fields.active{display:flex}#import-error:empty{display:none}#import-error{color:var(--color-danger-dim)}#user-dialog{width:520px}.user-row{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.user-row .text-input{min-width:0}.user-role{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);flex-shrink:0}#user-empty{display:none}#user-empty.active{display:block}.user-add-row{align-items:center;gap:var(--space-4);margin-top:var(--space-7);display:flex}.inline-name-input:focus-visible,input.zone-name-input:focus-visible,.zone-setting input[type=color]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-sm)}
