@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@1,9..144,400;1,9..144,500&family=Commissioner:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";.focus-id.svelte-ctys0h{min-width:140px}.rename-input.svelte-ctys0h{color:inherit;background:#ffffff0f;border:1px solid #fff3;border-radius:6px;width:200px;padding:2px 8px;font-family:inherit;font-size:15px}.manage-wrap.svelte-ctys0h{position:relative}.manage-backdrop.svelte-ctys0h{z-index:40;position:fixed;inset:0}.manage-pop.svelte-ctys0h{z-index:41;background:var(--paper-2,#201a15);border:1px solid var(--hair,#ffffff1a);border-radius:10px;flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 10px 30px #00000073}.manage-pop.svelte-ctys0h button:where(.svelte-ctys0h){color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:13px}.manage-pop.svelte-ctys0h button:where(.svelte-ctys0h):hover{background:#ffffff0f}.manage-pop.svelte-ctys0h button.danger:where(.svelte-ctys0h){color:#e5484d}.manage-sep.svelte-ctys0h{background:var(--hair,#ffffff1a);height:1px;margin:4px 6px}.admin-card.svelte-fgz9da{flex-direction:column;width:1080px;max-width:96vw;max-height:90vh;display:flex}.admin-tabs.svelte-fgz9da{flex-wrap:wrap;gap:5px;display:flex}.admin-tabs.svelte-fgz9da button:where(.svelte-fgz9da){background:var(--ink-deep);border:1px solid var(--hair-strong);text-transform:uppercase;letter-spacing:.12em;color:var(--paper-dim);border-radius:999px;padding:5px 12px;font-size:10px}.admin-tabs.svelte-fgz9da button.active:where(.svelte-fgz9da){color:var(--paper);border-color:var(--thread-edge,var(--paper-dim))}.admin-muted.svelte-fgz9da{color:var(--paper-faint)}.admin-loading.svelte-fgz9da{padding:4px 0;font-size:11px}.admin-empty.svelte-fgz9da{text-align:center;padding:28px 0;font-size:12px;font-style:italic}.toolbar.svelte-fgz9da{align-items:center;gap:10px;margin:6px 0 10px;display:flex}.toolbar.wrap.svelte-fgz9da{flex-wrap:wrap}.toolbar.svelte-fgz9da .al-search:where(.svelte-fgz9da){flex:1;max-width:320px}.pill-row.svelte-fgz9da{flex-wrap:wrap;gap:4px;display:flex}.pill-row.right.svelte-fgz9da{margin-left:auto}.pill-row.svelte-fgz9da button:where(.svelte-fgz9da){text-transform:capitalize;background:var(--ink-deep);border:1px solid var(--hair-strong);color:var(--paper-dim);border-radius:999px;padding:4px 10px;font-size:10.5px}.pill-row.svelte-fgz9da button.active:where(.svelte-fgz9da){color:var(--paper);border-color:var(--thread-edge,var(--paper-dim))}.table-wrap.svelte-fgz9da{min-height:0;overflow:auto}.admin-table.svelte-fgz9da{border-collapse:collapse;width:100%;font-size:11.5px}.admin-table.svelte-fgz9da th:where(.svelte-fgz9da){text-align:left;font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);border-bottom:1px solid var(--hair-strong);background:var(--ink-raised);z-index:1;padding:7px 9px;font-size:9.5px;font-weight:500;position:sticky;top:0}.admin-table.svelte-fgz9da td:where(.svelte-fgz9da){border-bottom:1px solid var(--hair);vertical-align:middle;padding:6px 9px}.admin-table.svelte-fgz9da th.n:where(.svelte-fgz9da),.admin-table.svelte-fgz9da td.n:where(.svelte-fgz9da){text-align:right;font-family:var(--f-mono)}.admin-table.svelte-fgz9da .actions:where(.svelte-fgz9da){text-align:right;white-space:nowrap}.admin-table.svelte-fgz9da .actions:where(.svelte-fgz9da) button:where(.svelte-fgz9da){margin-left:4px;padding:3px 8px;font-size:10.5px}.admin-table.compact.svelte-fgz9da{font-size:11px}.admin-table.compact.svelte-fgz9da td:where(.svelte-fgz9da){padding:4px 8px}tr.banned-row.svelte-fgz9da td:where(.svelte-fgz9da){opacity:.6}.badge.svelte-fgz9da{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);border:1px solid var(--hair-strong);border-radius:999px;margin-left:5px;padding:1px 7px;font-size:9px;display:inline-block}.badge.banned.svelte-fgz9da,button.danger.svelte-fgz9da{color:#e7a08a;border-color:#c26b5573}button.danger.svelte-fgz9da:hover:not(:disabled){background:#c26b551f}button.svelte-fgz9da:disabled{opacity:.45;cursor:default}.admin-code.svelte-fgz9da{font-family:var(--f-mono);color:var(--paper-dim);word-break:break-all;max-width:340px;font-size:10px;display:inline-block}.linklike.svelte-fgz9da{color:var(--paper-faint);cursor:pointer;background:0 0;border:0;padding:0;font-size:10.5px}.linklike.svelte-fgz9da:hover{color:var(--paper);background:0 0}.stat-grid.svelte-fgz9da{grid-template-columns:repeat(6,1fr);gap:8px;margin:6px 0 14px;display:grid}.stat.svelte-fgz9da{border:1px solid var(--hair-strong);background:var(--ink-deep);border-radius:6px;padding:10px 12px}.stat.svelte-fgz9da .v:where(.svelte-fgz9da){font-family:var(--f-display);color:var(--paper);font-size:22px}.stat.svelte-fgz9da .l:where(.svelte-fgz9da){font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paper-faint);margin-top:2px;font-size:9.5px}.stat.accent.svelte-fgz9da .v:where(.svelte-fgz9da){color:var(--thread,var(--paper))}.stat.warn.svelte-fgz9da .v:where(.svelte-fgz9da){color:#e7a08a}.overview-grid.svelte-fgz9da{grid-template-columns:1fr 1fr;gap:16px;min-height:0;display:grid;overflow:auto}.overview-grid.svelte-fgz9da section:where(.svelte-fgz9da) h3:where(.svelte-fgz9da){font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);justify-content:space-between;align-items:baseline;margin:0 0 6px;font-size:10px;font-weight:500;display:flex}.fb-list.svelte-fgz9da{flex-direction:column;gap:10px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.fb-item.svelte-fgz9da{border:1px solid var(--hair-strong);background:var(--ink-deep);border-left-width:3px;border-radius:5px;padding:11px 13px}.fb-item.s-open.svelte-fgz9da{border-left-color:#d97757}.fb-item.s-in_progress.svelte-fgz9da{border-left-color:#e3b85a}.fb-item.s-resolved.svelte-fgz9da{border-left-color:#7ea66f}.fb-item.s-wontfix.svelte-fgz9da{border-left-color:#8a8780}.fb-head.svelte-fgz9da{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:5px;display:flex}.fb-kind.svelte-fgz9da{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-dim);font-size:9.5px}.fb-title.svelte-fgz9da{color:var(--paper);font-size:13.5px;font-weight:600}.fb-meta.svelte-fgz9da{color:var(--paper-faint);margin-left:auto;font-size:10.5px}.fb-body.svelte-fgz9da{color:var(--paper-dim);white-space:pre-wrap;margin-bottom:9px;font-size:12px}.fb-item.svelte-fgz9da .pill-row:where(.svelte-fgz9da){margin-bottom:8px}.fb-note.svelte-fgz9da{text-align:left;cursor:pointer;width:100%;color:var(--paper-dim);white-space:pre-wrap;background:#d9775714;border:1px solid #d977574d;border-radius:4px;padding:6px 8px;font-size:11px;display:block}.fb-add-note.svelte-fgz9da{font-size:10.5px}.fb-note-edit.svelte-fgz9da{flex-direction:column;gap:6px;display:flex}.fb-note-edit.svelte-fgz9da textarea:where(.svelte-fgz9da){box-sizing:border-box;resize:vertical;width:100%;font-family:var(--f-body);color:var(--paper);background:var(--ink);border:1px solid var(--hair-strong);border-radius:4px;outline:none;padding:6px 8px;font-size:12px}.fb-note-btns.svelte-fgz9da{justify-content:flex-end;gap:6px;display:flex}.collab-card.svelte-1m7kf5g{width:min(420px,92vw)}.collab-error.svelte-1m7kf5g{color:#e5484d;padding:6px 0;font-size:12px}.collab-list.svelte-1m7kf5g{flex-direction:column;gap:4px;max-height:40vh;margin:10px 0 14px;display:flex;overflow-y:auto}.collab-row.svelte-1m7kf5g{border:1px solid var(--hair,#ffffff14);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.collab-dot.svelte-1m7kf5g{border-radius:50%;flex:none;width:10px;height:10px}.collab-name.svelte-1m7kf5g{flex:1;font-size:13px}.collab-role.svelte-1m7kf5g{letter-spacing:.08em;text-transform:uppercase;opacity:.55;font-size:10px}.collab-role.owner.svelte-1m7kf5g{color:#d97757;opacity:.9}.collab-x.svelte-1m7kf5g{color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:15px;line-height:1}.collab-x.svelte-1m7kf5g:hover{opacity:1;color:#e5484d}.collab-empty.svelte-1m7kf5g{opacity:.55;padding:10px 2px;font-size:12px}.collab-add.svelte-1m7kf5g{gap:8px;display:flex}.collab-add.svelte-1m7kf5g input:where(.svelte-1m7kf5g){flex:1}.bhv-warn.svelte-1vgbo58{color:#d9a441;padding:2px 0 4px;font-size:11px}:root{--ink-deep:#0b0906;--ink:#13100c;--ink-raised:#1c1813;--ink-hover:#231d17;--thread:#d97757;--thread-bright:#e68c68;--thread-soft:#d9775724;--thread-edge:#d9775759;--thread-glow:#d977578c;--paper:#f4e8d4;--paper-dim:#c9baa2;--paper-faint:#8a7b66;--paper-ghost:#5c5041;--hair:#2a2218;--hair-strong:#3a2e21;--stitch:#6b5640;--ochre:#c9a361;--sage:#889a75;--clay:#c26b55;--f-display:"Fraunces", Georgia, serif;--f-body:"Commissioner", ui-sans-serif, system-ui, sans-serif;--f-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;margin:0;overflow:hidden}body{font-family:var(--f-body);color:var(--paper)}canvas{width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{z-index:1;pointer-events:none;position:fixed;inset:0}#ui :where(button,input,.chip,a){pointer-events:auto}button{font-family:var(--f-body);color:var(--paper);border:1px solid var(--hair-strong);cursor:pointer;background:0 0;border-radius:4px;padding:5px 10px;font-size:11.5px;transition:background .12s,border-color .12s,color .12s}button:hover{background:var(--ink-hover);border-color:var(--stitch)}button.ghost{color:var(--paper-dim);border-color:#0000}button.ghost:hover{color:var(--paper);background:var(--ink-hover)}button.primary{background:var(--thread);color:#1a0f08;border-color:#0000;font-weight:600}button.primary:hover{background:var(--thread-bright)}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--thread);outline-offset:2px}.topbar{z-index:2;pointer-events:auto;background:linear-gradient(180deg, var(--ink-raised) 0%, var(--ink) 100%);border-bottom:1px solid var(--hair);align-items:center;gap:18px;height:52px;padding:0 20px;display:flex;position:relative}.brand{align-items:center;gap:12px;display:flex}.brand .diamond{border:1px dashed var(--thread);width:11px;height:11px;transform:rotate(45deg)}.brand .name{font-family:var(--f-display);color:var(--paper);font-size:22px;font-style:italic;font-weight:500}.brand .sub{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--paper-faint);border-left:1px solid var(--hair-strong);padding-left:12px;font-size:10.5px}.mode-toggle{gap:4px;display:flex}.mode-toggle button{background:var(--ink-deep);border:1px solid var(--hair-strong);text-transform:uppercase;letter-spacing:.2em;color:var(--paper-dim);border-radius:999px;padding:5px 13px;font-size:10.5px}.mode-toggle button.active{background:var(--thread);color:#1a0f08;border-color:#0000;font-weight:600}.spacer{flex:1}.status-pill{font-family:var(--f-mono);color:var(--paper-dim);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:999px;align-items:center;gap:7px;padding:4px 11px;font-size:10.5px;display:inline-flex}.status-pill .dot{background:var(--sage);border-radius:50%;width:6px;height:6px}.user-chip{font-family:var(--f-mono);color:var(--paper-dim);border:1px dashed var(--hair-strong);border-radius:2px;padding:3px 8px;font-size:11px}.players-online{color:var(--paper-faint);backdrop-filter:blur(10px);border:1px dashed var(--hair-strong);background:#0c0906a6;border-radius:4px;align-items:center;gap:8px;padding:6px 11px;font-size:11.5px;display:inline-flex;position:absolute;top:64px;left:16px}.players-online.active{color:var(--paper);border-color:var(--thread-edge)}.players-online .po-dot{background:var(--stitch);border-radius:50%;width:6px;height:6px}.players-online.active .po-dot{background:var(--sage)}.world-search{width:320px;position:absolute;top:64px;left:50%;transform:translate(-50%)}.world-search input{width:100%;font-family:var(--f-mono);color:var(--paper);backdrop-filter:blur(10px);border:1px solid var(--hair-strong);background:#0c0906b8;border-radius:4px;outline:none;padding:8px 12px;font-size:11.5px}.world-search input:focus{border-color:var(--thread-edge)}.world-search .results{border:1px solid var(--hair-strong);background:#0c0906e6;border-radius:4px;margin-top:6px;overflow:hidden}.world-search .results button{text-align:left;background:0 0;border:0;border-radius:0;width:100%;padding:7px 12px;font-size:11.5px;display:block}.world-search .results button:hover{background:var(--thread-soft)}.world-search .results .owner{color:var(--paper-faint);font-family:var(--f-mono);font-size:10px}.world-reset-view{pointer-events:auto;backdrop-filter:blur(10px);background:#0c0906b8;position:absolute;top:100px;left:16px}.world-minimap{backdrop-filter:blur(10px);border:1px solid var(--hair-strong);pointer-events:auto;background:#0c0906b3;border-radius:4px;width:150px;height:150px;padding:8px;position:absolute;top:64px;right:16px}.world-minimap svg{width:100%;height:100%;display:block}.mm-plot{fill:#f4e8d447;cursor:pointer}.mm-plot.mine{fill:var(--thread-edge)}.mm-plot.hovered{fill:var(--paper-dim)}.mm-plot.focused{fill:var(--thread)}.world-legend{color:var(--paper-dim);backdrop-filter:blur(10px);border:1px solid var(--hair-strong);background:#0c0906c7;border-radius:4px;padding:9px 13px;font-size:11px;line-height:1.7;position:absolute;bottom:16px;right:16px}.world-legend .legend-dot{vertical-align:middle;border-radius:2px;width:9px;height:9px;margin-right:7px;display:inline-block}.world-legend .legend-dot.mine{background:var(--thread)}.world-legend .legend-dot.others{background:var(--stitch)}.world-focus-bar{backdrop-filter:blur(12px);border:1px solid var(--hair-strong);background:#0b0906e6;border-radius:6px;align-items:center;gap:16px;padding:10px 16px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.world-focus-bar .focus-name{font-family:var(--f-display);color:var(--paper);font-size:16px;font-style:italic}.world-focus-bar .focus-sub{font-family:var(--f-mono);color:var(--paper-faint);gap:7px;font-size:10.5px;display:flex}.hover-info{backdrop-filter:blur(10px);border:1px solid var(--hair-strong);background:#0b0906d1;border-radius:6px;align-items:baseline;gap:10px;padding:7px 14px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.hover-info .hi-name{font-family:var(--f-display);color:var(--paper);font-size:14px;font-style:italic}.hover-info .hi-sub{font-family:var(--f-mono);color:var(--paper-faint);font-size:10px}.login-overlay{z-index:50;pointer-events:auto;backdrop-filter:blur(6px);background:#08060499;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-card{background:linear-gradient(180deg, var(--ink-raised) 0%, var(--ink) 100%);border:1px solid var(--hair-strong);border-radius:10px;flex-direction:column;gap:13px;width:340px;padding:26px 26px 20px;display:flex;box-shadow:0 24px 70px #0000008c}.login-head{flex-direction:column;gap:5px;display:flex}.login-head .diamond{border:1px dashed var(--thread);width:12px;height:12px;margin-bottom:4px;transform:rotate(45deg)}.login-head h2{font-family:var(--f-display);color:var(--paper);margin:0;font-size:21px;font-style:italic;font-weight:500}.login-head p{color:var(--paper-faint);margin:0;font-size:11px;line-height:1.5}.login-tabs{gap:5px;margin-top:4px;display:flex}.login-tabs button{background:var(--ink-deep);border:1px solid var(--hair-strong);text-transform:uppercase;letter-spacing:.14em;color:var(--paper-dim);border-radius:999px;flex:1;padding:6px 10px;font-size:10px}.login-tabs button.active{background:var(--thread);color:#1a0f08;border-color:#0000;font-weight:600}.login-card label{color:var(--paper-faint);text-transform:uppercase;letter-spacing:.1em;flex-direction:column;gap:5px;font-size:10.5px;display:flex}.login-card input{font-family:var(--f-mono);color:var(--paper);letter-spacing:.02em;background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:5px;outline:none;padding:9px 11px;font-size:13px}.login-card input:focus{border-color:var(--thread-edge)}.login-error{font-family:var(--f-mono);color:#e7a08a;background:#c26b551f;border:1px solid #c26b5566;border-radius:5px;padding:7px 10px;font-size:11px}.login-card .primary{margin-top:4px;padding:9px;font-size:12.5px}.login-hint{text-align:center;font-family:var(--f-mono);color:var(--paper-ghost);font-size:10px}.login-hint code{color:var(--paper-dim);background:var(--ink-deep);border-radius:3px;padding:1px 5px}.sidebar{pointer-events:auto;backdrop-filter:blur(12px);border-right:1px solid var(--hair);background:linear-gradient(#14100ceb,#0c0906eb);flex-direction:column;width:232px;display:flex;position:absolute;top:52px;bottom:0;left:0;overflow-y:auto}.side-hint{color:var(--paper-ghost);margin:4px 6px;font-size:11px;line-height:1.5}.side-top{border-bottom:1px solid var(--hair);flex-shrink:0;padding:10px 11px}.add-wrap{position:relative}.add-btn-main{background:var(--thread-soft);border:1px solid var(--thread-edge);width:100%;color:var(--paper);letter-spacing:.01em;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;display:inline-flex}.add-btn-main:hover:not(:disabled){background:var(--thread);border-color:var(--thread);color:#fff}.add-btn-main:disabled{opacity:.4;cursor:default}.add-backdrop{z-index:30;position:fixed;inset:0}.add-pop{z-index:31;border:1px solid var(--hair-strong);background:#18130efa;border-radius:8px;flex-direction:column;gap:1px;max-height:60vh;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 36px #00000080}.add-pop-group{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-faint);margin-top:2px;padding:8px 8px 3px;font-size:9px}.add-pop-group:first-child{margin-top:0}.add-pop-item{text-align:left;width:100%;color:var(--paper-dim);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:6px 9px;font-size:12px}.add-pop-item:hover{background:var(--thread-soft);color:var(--paper)}.hierarchy{flex-direction:column;flex:1;gap:7px;min-height:0;padding:10px 9px 8px;display:flex}.hier-head{align-items:baseline;gap:7px;padding:0 3px;display:flex}.hier-head h4{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-faint);margin:0;font-size:9.5px;font-weight:500}.hier-count{font-family:var(--f-mono);color:var(--paper-ghost);font-size:10px}.hier-filter{width:100%;font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:5px;outline:none;padding:5px 8px;font-size:10.5px}.hier-filter:focus{border-color:var(--thread-edge)}.tree{flex-direction:column;flex:1;gap:1px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.tr-row{color:var(--paper-dim);border-radius:4px;align-items:center;gap:1px;display:flex}.tr-row:hover{background:var(--ink-hover)}.tr-row.selected{background:var(--thread-soft)}.tr-row.selected .tr-name{color:var(--paper);font-weight:500}.tr-row.is-hidden .tr-click{opacity:.42}.icn{display:block}.tr-chev,.tr-chev-gap{flex-shrink:0;width:16px}.tr-chev{height:26px;color:var(--paper-faint);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tr-chev .icn{transition:transform .12s}.tr-chev.open .icn{transform:rotate(90deg)}.tr-chev:hover{color:var(--paper)}.tr-click{text-align:left;min-width:0;height:26px;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:0 2px;display:flex}.tr-icon{color:var(--thread);opacity:.85;flex-shrink:0;align-items:center;display:inline-flex}.tr-name{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.tr-actions{opacity:.55;flex-shrink:0;align-items:center;padding-right:3px;display:flex}.tr-row:hover .tr-actions,.tr-row.selected .tr-actions,.tr-row.is-hidden .tr-actions,.tr-row.is-locked .tr-actions,.tr-actions:focus-within{opacity:1}.tr-act{cursor:pointer;width:20px;height:24px;color:var(--paper-ghost);background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:10px;display:inline-flex}.tr-act:hover{color:var(--paper)}.tr-act.on{color:var(--thread)}.tr-del{font-size:14px;line-height:1}.tr-del:hover{color:var(--clay)}.plot-picker{color:var(--paper-faint);align-items:center;gap:7px;font-size:11px;display:flex}.plot-picker span{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.plot-picker select{font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:5px;outline:none;max-width:240px;padding:5px 8px;font-size:11.5px}.plot-picker select:focus{border-color:var(--thread-edge)}.plot-quota{font-family:var(--f-mono);color:var(--paper-faint);border:1px dashed var(--hair-strong);border-radius:999px;padding:3px 10px;font-size:10.5px}.history-group{gap:2px;display:inline-flex}.icon-btn{color:var(--paper-dim);padding:4px 10px;font-size:14px;line-height:1}.icon-btn:disabled{opacity:.3}.snap-toggle .snap-size{width:50px;font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:4px;outline:none;margin-left:3px;padding:3px 6px;font-size:11px}.snap-toggle .snap-size:focus{border-color:var(--thread-edge)}.ctx-backdrop{z-index:40;pointer-events:auto;position:fixed;inset:0}.ctx-menu{z-index:41;pointer-events:auto;backdrop-filter:blur(12px);border:1px solid var(--hair-strong);background:#100c08f5;border-radius:8px;min-width:168px;padding:5px;position:fixed;box-shadow:0 16px 44px #00000080}.ctx-item{text-align:left;width:100%;color:var(--paper-dim);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:12px;display:flex}.ctx-item:hover{background:var(--thread-soft);color:var(--paper)}.ctx-item.ctx-danger:hover{color:#e7a08a;background:#c26b5529}.ctx-key{font-family:var(--f-mono);color:var(--paper-ghost);font-size:9px}.ctx-arrow{color:var(--paper-faint);font-size:14px}.ctx-divider{background:var(--hair);height:1px;margin:4px 6px}.ctx-sub-anchor{position:relative}.ctx-submenu{backdrop-filter:blur(12px);border:1px solid var(--hair-strong);background:#100c08fa;border-radius:8px;min-width:150px;max-height:70vh;margin-left:3px;padding:5px;position:absolute;top:-5px;left:100%;overflow-y:auto;box-shadow:0 16px 44px #00000080}.ctx-group{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-ghost);padding:6px 10px 3px;font-size:8.5px}.bhv-card{background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:6px;flex-direction:column;gap:6px;padding:8px 9px;display:flex}.bhv-head{justify-content:space-between;align-items:center;display:flex}.bhv-type{font-family:var(--f-display);color:var(--thread);text-transform:capitalize;font-size:13px;font-style:italic}.bhv-x{color:var(--paper-ghost);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:14px;line-height:1}.bhv-x:hover{color:var(--clay)}.bhv-row{color:var(--paper-dim);grid-template-columns:78px 1fr;align-items:center;gap:8px;font-size:10.5px;display:grid}.bhv-row select,.bhv-row input[type=number]{font-family:var(--f-mono);color:var(--paper);background:var(--ink);border:1px solid var(--hair-strong);border-radius:4px;outline:none;width:100%;padding:4px 6px;font-size:10.5px}.bhv-row select:focus,.bhv-row input:focus{border-color:var(--thread-edge)}.bhv-row input[type=checkbox]{accent-color:var(--thread);justify-self:start}.bhv-add{border:1px dashed var(--hair-strong);color:var(--paper-dim);background:0 0;border-radius:6px;width:100%;padding:7px;font-size:11.5px}.bhv-add:hover{border-color:var(--thread-edge);color:var(--paper);background:var(--ink-hover)}.bhv-add-list{background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:6px;flex-direction:column;gap:3px;padding:4px;display:flex}.bhv-add-item{text-align:left;color:var(--paper-dim);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:6px 8px;font-size:11px}.bhv-add-item:hover{background:var(--thread-soft);color:var(--paper)}.modal-backdrop{z-index:50;pointer-events:auto;backdrop-filter:blur(6px);background:#08060499;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:linear-gradient(180deg, var(--ink-raised) 0%, var(--ink) 100%);border:1px solid var(--hair-strong);border-radius:10px;width:460px;max-width:92vw;max-height:86vh;padding:22px 24px;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.modal-head h2{font-family:var(--f-display);color:var(--paper);margin:0;font-size:21px;font-style:italic;font-weight:500}.modal-head p{color:var(--paper-faint);margin:3px 0 0;font-size:11px}.field-label{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-faint);margin:14px 0 7px;font-size:9.5px}.scheme-toggle{gap:5px;display:flex}.scheme-toggle button{background:var(--ink-deep);border:1px solid var(--hair-strong);text-transform:uppercase;letter-spacing:.12em;color:var(--paper-dim);border-radius:999px;flex:1;padding:7px 10px;font-size:10px}.scheme-toggle button.active{background:var(--thread);color:#1a0f08;border-color:#0000;font-weight:600}.keybind-list{flex-direction:column;gap:5px;display:flex}.keybind-row{text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;font-size:12px;display:flex}.keybind-row.capturing{border-color:var(--thread-edge);color:var(--paper)}.keybind-row kbd{font-family:var(--f-mono);background:var(--ink-deep);color:var(--paper-dim);border:1px solid var(--hair-strong);border-radius:4px;padding:3px 8px;font-size:10px}.reset-btn{width:100%;margin-top:12px}.time-control{position:relative}.time-btn{padding:5px 11px;font-size:11.5px}.time-pop{z-index:5;backdrop-filter:blur(12px);border:1px solid var(--hair-strong);pointer-events:auto;background:#100c08f5;border-radius:8px;flex-direction:column;gap:9px;width:200px;padding:12px;display:flex;position:absolute;top:36px;right:0;box-shadow:0 16px 44px #00000080}.time-toggle{color:var(--paper-dim);align-items:center;gap:7px;font-size:12px;display:flex}.time-toggle input{accent-color:var(--thread)}.time-slider{width:100%;accent-color:var(--thread)}.time-readout{font-family:var(--f-mono);color:var(--paper);text-align:center;font-size:12px}.time-hint{color:var(--paper-ghost);text-align:center;font-size:9.5px}.asset-lib{z-index:6;pointer-events:auto;backdrop-filter:blur(12px);border-right:1px solid var(--hair-strong);background:linear-gradient(#16110cf7,#0e0a07f7);flex-direction:column;gap:10px;width:288px;padding:13px;display:flex;position:absolute;top:52px;bottom:0;left:0}.al-head{justify-content:space-between;align-items:center;display:flex}.al-quota{font-family:var(--f-mono);color:var(--paper-faint);margin-top:2px;font-size:9.5px}.al-head h3{font-family:var(--f-display);color:var(--paper);margin:0;font-size:17px;font-style:italic}.al-search{font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:5px;outline:none;padding:6px 9px;font-size:11px}.al-search:focus{border-color:var(--thread-edge)}.al-upload{text-align:center;color:var(--paper-dim);cursor:pointer;border:1px dashed var(--hair-strong);border-radius:6px;padding:11px;font-size:11.5px;transition:border-color .12s,color .12s;display:block}.al-upload:hover{border-color:var(--thread-edge);color:var(--paper);background:var(--ink-hover)}.al-upload.busy{opacity:.6;pointer-events:none}.al-error{color:#e7a08a;background:#c26b551f;border:1px solid #c26b5573;border-radius:6px;padding:8px 9px;font-size:10.5px;line-height:1.4}.al-grid{grid-template-columns:1fr 1fr;align-content:start;gap:8px;display:grid;overflow-y:auto}.al-item{flex-direction:column;gap:4px;display:flex;position:relative}.al-item img,.al-icon{aspect-ratio:1;object-fit:cover;border:1px solid var(--hair-strong);background:var(--ink-deep);border-radius:6px;width:100%}.al-icon{font-family:var(--f-mono);color:var(--paper-faint);justify-content:center;align-items:center;font-size:12px;display:flex}.al-name{color:var(--paper-faint);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.al-del{border:1px solid var(--hair-strong);width:18px;height:18px;color:var(--paper-dim);cursor:pointer;opacity:0;background:#0b0906cc;border-radius:4px;padding:0;font-size:13px;line-height:1;position:absolute;top:4px;right:4px}.al-item:hover .al-del{opacity:1}.al-del:hover{color:var(--clay);border-color:var(--clay)}.al-empty{color:var(--paper-ghost);text-align:center;grid-column:1/-1;padding:12px;font-size:11px;line-height:1.6}.asset-picker{width:520px}.ap-grid{grid-template-columns:repeat(3,1fr);gap:9px;max-height:60vh;display:grid;overflow-y:auto}.ap-item{text-align:center;border:1px solid var(--hair-strong);background:var(--ink-deep);cursor:pointer;color:var(--paper-faint);border-radius:7px;flex-direction:column;align-items:stretch;gap:5px;padding:7px;font-size:9.5px;display:flex}.ap-item:hover{border-color:var(--thread-edge);color:var(--paper)}.ap-item img,.ap-item .al-icon{aspect-ratio:1;object-fit:cover;border-radius:5px;width:100%}.ap-item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ap-none{min-height:80px;color:var(--paper-dim);justify-content:center;align-items:center;font-size:12px}.link-btn{color:var(--thread);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline;display:inline}.asset-field{text-align:left;background:var(--ink-deep);border:1px solid var(--hair-strong);width:100%;color:var(--paper-dim);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:11px;display:flex}.asset-field:hover{border-color:var(--thread-edge);color:var(--paper)}.asset-field img{object-fit:cover;border-radius:4px;flex-shrink:0;width:30px;height:30px}.asset-field span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.af-empty{color:var(--paper-ghost)}.empty-plot{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:52px 260px 0 232px}.empty-plot .card{text-align:center;pointer-events:auto;border:1px solid var(--hair-strong);background:#0c0906d1;border-radius:10px;max-width:360px;padding:24px 26px}.empty-plot h2{font-family:var(--f-display);color:var(--paper);margin:0 0 8px;font-size:22px;font-style:italic;font-weight:500}.empty-plot p{color:var(--paper-dim);margin:0;font-size:12.5px;line-height:1.6}.empty-action{margin-top:16px}.props-panel{pointer-events:auto;backdrop-filter:blur(12px);border-left:1px solid var(--hair);background:linear-gradient(#14100ceb,#0c0906eb);flex-direction:column;gap:12px;width:260px;padding:14px;display:flex;position:absolute;top:52px;bottom:0;right:0;overflow-y:auto}.pp-empty{text-align:center;flex-direction:column;gap:6px;margin-top:30px;display:flex}.pp-empty-title{font-family:var(--f-display);color:var(--paper-dim);font-size:16px;font-style:italic}.pp-empty-sub{color:var(--paper-ghost);padding:0 14px;font-size:11px;line-height:1.5}.mat-presets{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.mat-chip{background:var(--ink-deep);border:1px solid var(--hair-strong);color:var(--paper-dim);border-radius:5px;justify-content:flex-start;align-items:center;gap:6px;padding:5px 7px;font-size:10px;display:flex}.mat-chip:hover{border-color:var(--thread-edge);color:var(--paper);background:var(--ink-hover)}.mat-swatch{border:1px solid #0000004d;border-radius:3px;flex-shrink:0;width:11px;height:11px}.gizmo-bar{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.gizmo-modes,.space-toggle,.cam-presets{pointer-events:auto;backdrop-filter:blur(10px);border:1px solid var(--hair-strong);background:#0b0906d1;border-radius:999px;gap:3px;padding:3px;display:inline-flex}.gizmo-modes button,.space-toggle button{color:var(--paper-dim);text-transform:uppercase;letter-spacing:.14em;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:10.5px;display:inline-flex}.gizmo-modes button.active,.space-toggle button.active{background:var(--thread);color:#1a0f08;font-weight:600}.gizmo-modes kbd{font-family:var(--f-mono);color:inherit;opacity:.8;background:#00000047;border-radius:3px;padding:1px 4px;font-size:8.5px}.cam-presets{padding:4px;position:absolute;top:64px;right:276px}.cam-presets button{color:var(--paper-dim);font-family:var(--f-mono);background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:10px}.cam-presets button:hover{background:var(--ink-hover);color:var(--paper)}.cam-presets button b{color:var(--thread);margin-right:3px}.pp-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pp-type{font-family:var(--f-display);color:var(--paper);text-transform:capitalize;font-size:16px;font-style:italic}.pp-meta{font-family:var(--f-mono);color:var(--paper-faint);margin-top:1px;font-size:10px}.pp-del{color:var(--clay);border-color:#c26b5566;padding:4px 9px;font-size:10px}.pp-del:hover{border-color:var(--clay);color:#e7a08a;background:#c26b5524}.pp-sec{flex-direction:column;gap:7px;display:flex}.pp-sec h4{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-faint);margin:2px 0 0;font-size:9.5px;font-weight:500}.pp-vec{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pp-num{flex-direction:column;gap:3px;display:flex}.pp-num span{font-family:var(--f-mono);color:var(--paper-ghost);padding-left:2px;font-size:9px}.pp-num input{width:100%;font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:4px;outline:none;padding:5px 6px;font-size:11px}.pp-num input:focus{border-color:var(--thread-edge)}.pp-color{color:var(--paper-dim);justify-content:space-between;align-items:center;font-size:11px;display:flex}.pp-color input{border:1px solid var(--hair-strong);cursor:pointer;background:0 0;border-radius:4px;width:40px;height:22px;padding:0}.pp-slider{color:var(--paper-dim);grid-template-columns:64px 1fr 34px;align-items:center;gap:8px;font-size:10.5px;display:grid}.pp-slider input[type=range]{width:100%;accent-color:var(--thread)}.pp-slider em{font-family:var(--f-mono);color:var(--paper-faint);text-align:right;font-size:9.5px;font-style:normal}.pp-textfield{width:100%;font-family:var(--f-mono);color:var(--paper);background:var(--ink-deep);border:1px solid var(--hair-strong);border-radius:4px;outline:none;padding:6px 8px;font-size:11px}.pp-textfield:focus{border-color:var(--thread-edge)}.pp-hint{font-family:var(--f-mono);color:var(--paper-ghost);text-align:center;font-size:9px}@media (width<=1180px){.topbar{gap:8px;padding-inline:10px}.brand{gap:8px}.brand .sub,.plot-quota{display:none}.mode-toggle button{padding-inline:10px}.plot-picker>span{display:none}}@media (width<=900px){.brand .name{font-size:19px}.topbar .status-pill,.topbar .user-chip{display:none}.sidebar{width:190px}.props-panel{width:220px}.empty-plot{left:190px;right:220px}.world-search{width:min(280px,100vw - 32px)}.gizmo-bar{left:calc(50% - 15px)}}.player-marker{z-index:1;color:var(--paper);font-family:var(--f-mono);white-space:nowrap;text-shadow:0 1px 3px #000,0 0 5px #000;pointer-events:none;flex-direction:column;align-items:center;font-size:9px;display:flex;position:absolute;transform:translate(-50%)}.player-marker-name{margin-bottom:3px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.player-marker-body{border:1px solid color-mix(in srgb, var(--sage) 65%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--sage) 34%, transparent), color-mix(in srgb, var(--sage) 12%, transparent));box-shadow:0 0 12px color-mix(in srgb, var(--sage) 45%, transparent), inset 0 -6px 12px #0003;border-radius:999px}.player-marker.self .player-marker-body{border-color:color-mix(in srgb, var(--thread) 80%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--thread) 38%, transparent), color-mix(in srgb, var(--thread) 14%, transparent));box-shadow:0 0 12px color-mix(in srgb, var(--thread) 50%, transparent), inset 0 -6px 12px #0003}.browser-marker{z-index:1;color:var(--paper);font-family:var(--f-mono);white-space:nowrap;text-shadow:0 1px 3px #000,0 0 5px #000;pointer-events:none;flex-direction:column;align-items:center;gap:2px;font-size:9px;display:flex;position:absolute;transform:translate(-50%,-100%)}.browser-marker-glyph{color:color-mix(in srgb, var(--sage) 90%, #fff 10%);text-shadow:0 0 8px color-mix(in srgb, var(--sage) 70%, transparent), 0 1px 2px #000;font-size:12px;line-height:1}.browser-marker.editor .browser-marker-glyph{color:var(--thread-bright);text-shadow:0 0 8px color-mix(in srgb, var(--thread) 70%, transparent), 0 1px 2px #000}
