@import"https://fonts.googleapis.com/css2?family=Mulish:wght@400;700;800&family=Spectral:ital,wght@0,400;0,600;1,400&family=JetBrains+Mono:wght@400;700&display=swap";.xcard-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2);padding:var(--rpg-space-2) var(--rpg-space-3);background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink-strong);border-bottom:1px solid var(--rpg-color-border);border-left:4px solid var(--rpg-color-danger)}.xcard-banner-text{font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);font-weight:600}.board-editor-overlay{position:absolute;inset:0;pointer-events:none;z-index:3}.board-editor-overlay>*{pointer-events:auto}.board-tools{position:absolute;top:12px;left:12px;display:flex;gap:3px;padding:4px;border:1px solid var(--rpg-color-border);border-radius:10px;background:color-mix(in srgb,var(--rpg-color-surface-raised) 92%,transparent);backdrop-filter:blur(6px)}.board-tool{width:32px;height:32px;display:grid;place-items:center;border:none;border-radius:7px;cursor:pointer;font-size:15px;color:var(--rpg-color-ink-muted);background:transparent;transition:background var(--rpg-duration-fast) var(--rpg-easing)}.board-tool svg{display:block;width:16px;height:16px}.board-tool:hover:not(:disabled){background:color-mix(in srgb,var(--rpg-color-surface-raised) 50%,transparent)}.board-tool[aria-pressed=true]{color:var(--rpg-color-accent-ink);background:var(--rpg-color-accent)}.board-tool--disabled{opacity:.5;filter:grayscale(1);cursor:not-allowed;color:var(--rpg-color-ink-muted)}.board-tool--disabled:hover{background:transparent}.board-grid-toggle{position:absolute;top:56px;left:12px;display:flex;gap:2px;padding:3px;border:1px solid var(--rpg-color-border);border-radius:9px;background:color-mix(in srgb,var(--rpg-color-surface-raised) 92%,transparent);backdrop-filter:blur(6px)}.board-grid-style{border:none;border-radius:6px;cursor:pointer;padding:4px 9px;font-size:11px;color:var(--rpg-color-ink-muted);background:transparent}.board-grid-style[aria-pressed=true]{color:var(--rpg-color-accent-ink);background:var(--rpg-color-accent)}.board-active-layer{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--rpg-color-border);border-radius:999px;background:color-mix(in srgb,var(--rpg-color-surface-raised) 92%,transparent);backdrop-filter:blur(6px);font-size:11px;color:var(--rpg-color-ink-muted)}.board-active-layer strong{color:var(--rpg-color-ink)}.board-active-dot{width:7px;height:7px;border-radius:2px;background:var(--rpg-color-accent)}.cursor-position-overlay{position:absolute;bottom:12px;left:12px;padding:6px 12px;border:1px solid var(--rpg-color-border);border-radius:6px;background:color-mix(in srgb,var(--rpg-color-surface-raised) 92%,transparent);backdrop-filter:blur(6px);font-size:11px;color:var(--rpg-color-ink-muted);font-family:monospace;letter-spacing:.5px;pointer-events:none}.token-hover-card{position:absolute;z-index:130;width:10.75rem;pointer-events:none;border:1px solid color-mix(in srgb,var(--rpg-color-border) 82%,transparent);border-radius:.55rem;background:color-mix(in srgb,var(--rpg-color-surface) 93%,transparent);box-shadow:0 14px 28px -20px #00000080;padding:.35rem .38rem;backdrop-filter:blur(6px)}.token-hover-card__head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem}.token-hover-card__swatch{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff}.token-hover-card__identity{min-width:0}.token-hover-card__name{font-size:.72rem;font-weight:700;line-height:1.08;color:var(--rpg-color-ink-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.token-hover-card__sub{font-size:.62rem;color:var(--rpg-color-ink-muted)}.token-hover-card__role{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--rpg-color-ink-muted)}.token-hover-card__stats{margin-top:.3rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.14rem;font-size:.56rem;color:var(--rpg-color-ink-muted)}.token-hover-card__stats span{border:1px solid color-mix(in srgb,var(--rpg-color-border) 84%,transparent);border-radius:.28rem;text-align:center;white-space:nowrap;padding:.1rem .04rem}.chat-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.chat-log{display:flex;flex-direction:column;gap:var(--rpg-space-3);flex:1;min-height:0;overflow-y:auto}.chat-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm)}.chat-message-author{display:flex;align-items:center;gap:var(--rpg-space-2)}.chat-message-sender{font-size:var(--rpg-text-xs);font-weight:600;color:var(--rpg-color-ink-strong)}.chat-composer{display:flex;align-items:center;gap:var(--rpg-space-2)}.chat-composer .chat-input{flex:1}.roll-log-panel{display:flex;flex-direction:column;min-height:0;gap:var(--rpg-space-2)}.roll-log{display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0;overflow-y:auto;order:1}.roll-empty{margin:0;padding:var(--rpg-space-3) var(--rpg-space-2);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.roll-row{display:flex;align-items:center;gap:var(--rpg-space-2);padding:var(--rpg-space-1) var(--rpg-space-2)}.roll-chip{flex:none}.roll-faces{display:inline-flex;align-items:center;gap:var(--rpg-space-1);flex:none}.roll-face--num{font-family:var(--rpg-font-mono);font-size:var(--rpg-text-sm);color:var(--rpg-color-accent-strong)}.roll-text{flex:1 1 auto;min-width:0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink)}.roll-formula{font-family:var(--rpg-font-mono);color:var(--rpg-color-ink-muted)}.roll-total{color:var(--rpg-color-ink)}.roll-roller{color:var(--rpg-color-ink-muted)}.roll-timestamp{flex:none;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.roll-tray{display:flex;align-items:center;gap:var(--rpg-space-2);flex-wrap:wrap;order:2}.roll-count{display:inline-flex;align-items:center;gap:var(--rpg-space-1)}.roll-count-label{font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.roll-count-input{width:3.5rem;height:28px;padding:0 var(--rpg-space-2);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);background:var(--rpg-color-surface);color:var(--rpg-color-ink);font-family:var(--rpg-font-mono);font-size:var(--rpg-text-sm)}.assist-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;outline:none}.assist-head{display:flex;align-items:center;justify-content:flex-start;padding:var(--rpg-space-2) var(--rpg-space-3)}.assist-rulings{display:flex;flex-direction:column;gap:var(--rpg-space-2)}.assist-stack{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rpg-space-3);flex:1 1 auto;min-height:0;overflow-y:auto;position:relative}.assist-newcount{position:sticky;top:0;z-index:1;display:inline-flex;align-self:flex-start;align-items:center;padding:var(--rpg-space-1) var(--rpg-space-2);border-radius:var(--rpg-radius-md);background:var(--rpg-color-accent);color:var(--rpg-color-surface);font-size:var(--rpg-text-sm);font-weight:600;cursor:pointer;border:none;line-height:1}.assist-newcount:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.assist-card-item{margin:0}.assist-card.is-active{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.assist-empty{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);padding:var(--rpg-space-3) var(--rpg-space-2)}.assist-onboard-lead{margin:0 0 var(--rpg-space-2);color:var(--rpg-color-ink);font-weight:600}.assist-onboard-sub,.assist-empty-idle{margin:0;color:var(--rpg-color-ink-muted)}.assist-dismissed{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2);padding:var(--rpg-space-2) var(--rpg-space-3);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm)}.assist-dismissed-label{font-weight:600}.assist-skeleton{display:inline-block;color:var(--rpg-color-ink-faint);font-style:italic}.assist-edit-field{width:100%;min-height:4.5rem;box-sizing:border-box;resize:vertical;font:inherit;color:var(--rpg-color-ink);background:var(--rpg-color-surface);border:2px solid var(--rpg-color-accent);border-radius:var(--rpg-radius-md);padding:var(--rpg-space-2)}.assist-edit-field:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:1px}.assist-edit-actions{display:flex;gap:var(--rpg-space-2)}.assist-streaming-footer{display:flex;flex-direction:column;gap:var(--rpg-space-2);align-items:flex-start}.assist-pending-footer{display:flex;flex-direction:column;gap:var(--rpg-space-1)}.assist-alt-indicator{margin:0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.assist-prompt{display:flex;flex-direction:column;gap:var(--rpg-space-2);padding-top:var(--rpg-space-2);border-top:1px solid var(--rpg-color-border)}.assist-prompt-field{width:100%;box-sizing:border-box;resize:vertical;font:inherit;color:var(--rpg-color-ink);background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);padding:var(--rpg-space-2)}.assist-prompt-field:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:1px;border-color:var(--rpg-color-accent)}.assist-prompt .RpgButton{align-self:flex-end}.assist-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.assist-failed-body{color:var(--rpg-color-ink-muted);font-style:italic}.assist-failed-footer{display:flex;flex-direction:column;gap:var(--rpg-space-2)}.assist-failed-note{margin:0;color:var(--rpg-color-danger, #c0492f);font-size:var(--rpg-text-sm)}.assist-rolledback-body{color:var(--rpg-color-ink-muted)}.assist-rolledback-footer{display:flex;flex-direction:column;gap:var(--rpg-space-2)}.assist-rolledback-note{margin:0;padding:var(--rpg-space-1) var(--rpg-space-2);border-radius:var(--rpg-radius-sm, 4px);background:var(--rpg-color-warning-bg, rgba(192, 73, 47, .1));color:var(--rpg-color-warning, var(--rpg-color-danger, #c0492f));font-size:var(--rpg-text-sm);font-weight:600}.narration-panel,.narration-feed{display:flex;flex-direction:column;min-height:0}.narration-empty{margin:0;padding:var(--rpg-space-3) var(--rpg-space-2);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.narration-row--read .RpgTableFeedRow__text{font-family:var(--rpg-font-narration)}.settings-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.settings-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.settings-title{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);font-weight:600}.settings-hint{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.settings-fields{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.settings-field{display:flex;flex-direction:column;gap:var(--rpg-space-1)}.settings-label{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);font-weight:600}.settings-input,.settings-directive{width:100%;box-sizing:border-box;font:inherit;color:var(--rpg-color-ink);background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);padding:var(--rpg-space-2)}.settings-directive{resize:vertical;min-height:6rem;line-height:var(--rpg-text-base-lh)}.settings-input:focus-visible,.settings-directive:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:1px;border-color:var(--rpg-color-accent)}.settings-session-actions{display:flex;flex-wrap:wrap;gap:var(--rpg-space-2)}.settings-session-actions-bottom{margin-top:auto;padding-top:var(--rpg-space-3);border-top:1px solid var(--rpg-color-border)}.event-log-panel,.event-log-feed{display:flex;flex-direction:column;min-height:0}.event-log-empty{margin:0;padding:var(--rpg-space-3) var(--rpg-space-2);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.event-log-phase{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);text-transform:uppercase;letter-spacing:.04em}.scenes-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.scenes-head-actions{display:flex;align-items:center;gap:var(--rpg-space-1);padding:0 var(--rpg-space-3) var(--rpg-space-2)}.scenes-list{display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0}.scenes-tab{width:100%;justify-content:flex-start;text-align:left}.scenes-rename{width:100%;box-sizing:border-box;font:inherit;color:var(--rpg-color-ink-strong);background:var(--rpg-color-surface-sunken);border:1px solid var(--rpg-color-accent);border-radius:var(--rpg-radius-md);padding:0 var(--rpg-space-2);height:var(--rpg-control-h)}.scenes-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.campaign-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.campaign-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.campaign-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-display);font-size:var(--rpg-text-lg);line-height:var(--rpg-text-lg-lh);font-weight:600}.campaign-summary{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.campaign-section-title{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.campaign-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--rpg-space-2);margin:0}.campaign-stat{display:flex;flex-direction:column;gap:var(--rpg-space-1);padding:var(--rpg-space-2);background:var(--rpg-color-surface-sunken);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md)}.campaign-stat-label{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.campaign-stat-value{margin:0;color:var(--rpg-color-ink-strong);font-size:var(--rpg-text-md);line-height:var(--rpg-text-md-lh);font-weight:600}.campaign-activity-list{display:flex;flex-direction:column;gap:var(--rpg-space-2);margin:0;padding:0;list-style:none;min-height:0}.campaign-activity-row{display:flex;align-items:baseline;gap:var(--rpg-space-2)}.campaign-activity-kind{flex:0 0 auto}.campaign-activity-summary{flex:1 1 auto;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.campaign-activity-when{flex:0 0 auto;color:var(--rpg-color-ink-faint);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);white-space:nowrap}.campaign-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.cast-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.cast-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.cast-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);font-weight:600}.cast-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.cast-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0}.cast-row{border-radius:var(--rpg-radius-md)}.cast-row[data-selected=true]{background:color-mix(in srgb,var(--rpg-color-accent) 14%,transparent);box-shadow:inset 2px 0 0 0 var(--rpg-color-accent)}.cast-rowbody{display:flex;flex-direction:column;gap:2px;min-width:0}.cast-rowtop{display:flex;align-items:center;gap:var(--rpg-space-2);min-width:0}.cast-name{color:var(--rpg-color-ink);font-size:var(--rpg-text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cast-descriptor{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compendium-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.compendium-head{display:flex;flex-direction:column;gap:var(--rpg-space-2)}.compendium-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);font-weight:600}.compendium-search-label{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);font-weight:600}.compendium-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0;overflow-y:auto}.compendium-item{margin:0}.compendium-row-button{display:block;width:100%;text-align:left;font:inherit;color:var(--rpg-color-ink);background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);padding:var(--rpg-space-1) var(--rpg-space-2);cursor:pointer}.compendium-row-button:hover{background:var(--rpg-color-surface-raised)}.compendium-row-button:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:1px;border-color:var(--rpg-color-accent)}.compendium-row-button [data-role=row]{padding:0;background-color:transparent!important;color:inherit;cursor:inherit}.compendium-row-body{display:flex;flex-direction:column;gap:var(--rpg-space-1);min-width:0}.compendium-row-top{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.compendium-row-name{color:var(--rpg-color-ink);font-size:var(--rpg-text-base);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compendium-row-chip{flex:0 0 auto}.compendium-row-blurb{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh);white-space:normal}.compendium-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.journal-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.journal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.journal-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);font-weight:600}.journal-layout{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.journal-list{display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0}.journal-option{border-radius:var(--rpg-radius-md);border-left:2px solid transparent;cursor:pointer}.journal-option:hover{background:var(--rpg-color-surface-raised)}.journal-option.is-selected{background:var(--rpg-color-surface-raised);border-left-color:var(--rpg-color-accent)}.journal-option:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:-2px}.journal-row{display:flex;align-items:center;gap:var(--rpg-space-2);width:100%;min-width:0}.journal-row-text{display:flex;flex-direction:column;gap:var(--rpg-space-1);flex:1;min-width:0}.journal-row-title{color:var(--rpg-color-ink);font-size:var(--rpg-text-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-row-snippet{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-row-chip{flex:none}.journal-detail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.journal-detail-title{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);font-weight:600}.journal-detail-body{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);white-space:pre-wrap}.journal-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.assets-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.assets-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.assets-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);font-weight:600}.assets-controls{display:flex;flex-direction:column;gap:var(--rpg-space-2)}.assets-search{width:100%;box-sizing:border-box}.assets-filters{display:flex;flex-wrap:wrap;gap:var(--rpg-space-1)}.assets-filter{appearance:none;background:transparent;border:none;padding:0;margin:0;cursor:pointer;border-radius:var(--rpg-radius-full)}.assets-filter:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.assets-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.assets-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:var(--rpg-space-2);min-height:0;overflow:auto}.assets-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--rpg-space-1);padding:var(--rpg-space-2);background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md)}.assets-swatch{width:100%;height:3rem;border-radius:var(--rpg-radius-sm);background:var(--assets-swatch, var(--rpg-color-surface-raised));border:1px solid var(--rpg-color-border)}.assets-name{color:var(--rpg-color-ink);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh);font-weight:600;overflow-wrap:anywhere}.encounters-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.encounters-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.encounters-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);font-weight:600}.encounters-status{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-base-lh)}.encounters-list{display:flex;flex-direction:column;gap:var(--rpg-space-1);margin:0;padding:0;list-style:none;min-height:0}.encounters-item{border-radius:var(--rpg-radius-sm);border-left:2px solid transparent}.encounters-item--current{border-left-color:var(--rpg-color-accent);background-color:var(--rpg-color-surface-raised)}.encounters-label{display:flex;align-items:center;gap:var(--rpg-space-2);min-width:0}.encounters-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rpg-color-ink);font-size:var(--rpg-text-base)}.encounters-initiative{color:var(--rpg-color-ink-muted);font-variant-numeric:tabular-nums;font-size:var(--rpg-text-sm)}.encounters-marker{display:inline-block;width:1ch;color:var(--rpg-color-accent)}.encounters-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.encounters-empty{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.combat-log-panel{display:flex;flex-direction:column;min-height:0}.combat-log-feed{display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0}.combat-log-row{display:flex;align-items:baseline;gap:var(--rpg-space-2);padding:var(--rpg-space-1) var(--rpg-space-2)}.combat-log-text{flex:1;min-width:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.combat-log-actor{font-weight:600;color:var(--rpg-color-ink)}.combat-log-time{flex-shrink:0;color:var(--rpg-color-ink-faint);font-variant-numeric:tabular-nums;font-size:var(--rpg-text-sm)}.combat-log-empty{margin:0;padding:var(--rpg-space-3) var(--rpg-space-2);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.plugins-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0;padding:var(--rpg-space-3) var(--rpg-space-2)}.plugins-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.plugins-title{margin:0;color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);font-weight:600}.plugins-hint{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.plugins-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--rpg-space-1);min-height:0}.plugins-item{border-radius:var(--rpg-radius-md)}.plugins-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2);width:100%}.plugins-meta{display:flex;align-items:baseline;gap:var(--rpg-space-2);min-width:0}.plugins-name{color:var(--rpg-color-ink);font-size:var(--rpg-text-base);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plugins-version{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);font-variant-numeric:tabular-nums;flex:none}.plugins-controls{display:flex;align-items:center;gap:var(--rpg-space-2);flex:none}.safety-panel{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-width:0}.safety-card{display:flex;flex-direction:column;gap:var(--rpg-space-2);padding:var(--rpg-space-3);background:var(--rpg-color-surface-raised);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg)}.safety-section-title{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.safety-help{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.safety-xcard-card{border-color:var(--rpg-color-danger)}.safety-xcard-raised{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2);padding:var(--rpg-space-2);border:1px solid var(--rpg-color-danger);border-radius:var(--rpg-radius-md);color:var(--rpg-color-ink-strong);font-weight:600}.safety-add{display:flex;align-items:center;gap:var(--rpg-space-2)}.safety-add .RpgInput{flex:1 1 auto}.safety-kind select{font:inherit;color:var(--rpg-color-ink);background:var(--rpg-color-surface-sunken);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-sm);padding:2px var(--rpg-space-1)}.safety-empty{margin:0;color:var(--rpg-color-ink-faint);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.safety-lists{display:flex;flex-direction:column;gap:var(--rpg-space-3)}.safety-list-title{margin:0 0 var(--rpg-space-1)}.safety-list ul{display:flex;flex-direction:column;gap:var(--rpg-space-1);margin:0;padding:0;list-style:none}.safety-list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.safety-boundary-text{flex:1 1 auto;min-width:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.safety-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.studio-statusbar{display:flex;flex-direction:row;align-items:center;gap:.5rem;padding:.2rem .75rem;background:var(--rpg-color-surface);border-top:1px solid var(--rpg-color-border);font-size:.78rem;color:var(--rpg-color-ink-muted);min-height:0;flex-shrink:0}.studio-statusbar-bell-slot{margin-left:auto;display:flex;align-items:center}.panel-section{border-top:1px solid var(--rpg-color-border)}.panel-section-head{display:flex;align-items:center;padding:4px 10px}.panel-section-toggle{display:inline-flex;width:100%;min-height:18px;justify-content:flex-start;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:pointer;color:inherit}.panel-section-caret{width:9px;color:var(--rpg-color-ink-faint);font-size:10px;line-height:1}.panel-section-title{font-family:var(--rpg-font-sans);font-weight:700;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--rpg-color-ink)}.studio-resize-handle{flex:0 0 auto;background:transparent;position:relative;z-index:1;touch-action:none}.studio-resize-handle--vertical{width:6px;align-self:stretch;cursor:col-resize}.studio-resize-handle--horizontal{height:6px;cursor:row-resize}.studio-resize-handle:hover,.studio-resize-handle:focus-visible{background:var(--rpg-color-accent);outline:none}@media (prefers-reduced-motion: no-preference){.studio-resize-handle{transition:background-color .12s ease}}.scn-edit{display:flex;flex-direction:column;flex:1;min-height:0}.scn-inline-hint{margin:0;padding:0 14px 10px;font-size:11px;color:var(--rpg-color-ink-faint)}.scn-pad{padding:0 12px 10px}.scn-empty-line{padding:0 14px 14px;font-size:12px;color:var(--rpg-color-ink-faint)}.scn-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 11px}.scn-chips .RpgChip{cursor:pointer}.scn-asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 14px}.scn-asset{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 8px;border:1px solid var(--rpg-color-border);border-radius:9px;background:var(--rpg-color-surface-raised);cursor:grab;font:inherit;color:inherit;transition:border-color var(--rpg-duration-fast) var(--rpg-easing)}.scn-asset:hover{border-color:color-mix(in srgb,var(--rpg-color-accent) 45%,transparent)}.scn-asset:active{cursor:grabbing}.scn-asset-swatch{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;border:1.5px solid rgba(0,0,0,.3)}.scn-asset-name{font-size:10px;color:var(--rpg-color-ink-muted);text-align:center;line-height:1.2}.scn-layer-actions{display:flex;gap:2px;padding:0 12px 8px}.scn-layers{list-style:none;margin:0;padding:0 8px 10px;display:flex;flex-direction:column;gap:3px}.scn-layer{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;border:1px solid transparent;background:transparent}.scn-layer.is-active{background:var(--rpg-color-accent-soft);border-color:color-mix(in srgb,var(--rpg-color-accent) 45%,transparent)}.scn-layer.is-dragging{opacity:.5}.scn-layer-grip{cursor:grab;color:var(--rpg-color-ink-faint);font-size:13px;line-height:1;letter-spacing:-2px}.scn-layer-eye,.scn-layer-pv{width:18px;text-align:center;background:none;border:none;padding:0;cursor:pointer;font-size:14px;color:var(--rpg-color-ink)}.scn-layer-eye[aria-pressed=false]{color:var(--rpg-color-ink-faint)}.scn-layer-pv{font-size:12px;color:var(--rpg-color-ink-faint)}.scn-layer-pv.is-shown{color:var(--rpg-color-success)}.scn-layer-thumb{width:26px;height:26px;flex:none;border-radius:6px;display:grid;place-items:center;font-size:13px;color:var(--rpg-color-ink-muted);background:var(--rpg-color-surface-sunken);border:1px solid var(--rpg-color-border)}.scn-layer[data-kind=notes] .scn-layer-thumb{color:var(--rpg-color-accent)}.scn-layer-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;align-items:flex-start;text-align:left;background:none;border:none;padding:0;cursor:pointer;color:inherit}.scn-layer-name{font-size:12px;font-weight:500;color:var(--rpg-color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.scn-layer.is-active .scn-layer-name{font-weight:700;color:var(--rpg-color-ink-strong)}.scn-layer-meta{font-size:10px;color:var(--rpg-color-ink-faint)}.scn-layer-rename{font:inherit;font-size:12px;width:100%;background:var(--rpg-color-surface-sunken);color:var(--rpg-color-ink-strong);border:1px solid var(--rpg-color-accent);border-radius:4px;padding:1px 4px}.scn-layer-reorder{display:flex;flex-direction:column;gap:1px}.scn-layer-reorder button{background:none;border:none;color:var(--rpg-color-ink-faint);cursor:pointer;font-size:8px;line-height:1;padding:1px}.scn-layer-reorder button:disabled{opacity:.3;cursor:default}.scn-layer-opacity{display:flex;align-items:center;gap:4px}.scn-layer-opacity input[type=range]{width:46px;accent-color:var(--rpg-color-accent)}.scn-layer-opacity-val{font-size:10px;color:var(--rpg-color-ink-faint);font-variant-numeric:tabular-nums;width:30px;text-align:right}.scn-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scn-props{min-height:0}.scn-props[data-expanded=true]{flex:1}.scn-props[data-expanded=true] .scn-section-body{min-height:0;overflow:auto}.scn-props-empty{padding:24px 18px 30px;text-align:center;color:var(--rpg-color-ink-faint);font-size:12px;line-height:1.5}.scn-props-empty-glyph{font-size:26px;margin-bottom:8px;opacity:.5}.scn-prop-card{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--rpg-color-border);border-radius:9px;background:var(--rpg-color-surface-raised);margin-bottom:13px}.scn-prop-swatch{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;border:1.5px solid var(--rpg-color-accent)}.scn-prop-id{flex:1;min-width:0}.scn-prop-name{display:block;font-weight:700;font-size:13px;color:var(--rpg-color-ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scn-prop-sub{font-size:11px;color:var(--rpg-color-ink-muted)}.scn-group-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--rpg-color-ink-faint);font-weight:700;margin-bottom:7px}.scn-transform{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.scn-field{display:flex;flex-direction:column;gap:4px}.scn-field-label{font-size:10px;color:var(--rpg-color-ink-muted)}.scn-opacity{margin:12px 0 16px}.scn-opacity-row{display:flex;justify-content:space-between;font-size:10px;color:var(--rpg-color-ink-muted);margin-bottom:6px}.scn-opacity-val{font-variant-numeric:tabular-nums;color:var(--rpg-color-ink)}.scn-opacity input[type=range]{width:100%;accent-color:var(--rpg-color-accent)}.scn-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}.scn-stat{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border:1px solid var(--rpg-color-border);border-radius:8px;background:var(--rpg-color-surface-raised)}.scn-stat-input{font-family:var(--rpg-font-mono);font-weight:700;font-size:14px;color:var(--rpg-color-ink-strong);line-height:1.1;width:100%;text-align:center;background:none;border:none;padding:0}.scn-stat-input::-webkit-outer-spin-button,.scn-stat-input::-webkit-inner-spin-button{appearance:none;margin:0}.scn-stat-label{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--rpg-color-ink-faint)}.scn-prop-actions{display:flex;gap:8px}.scn-prop-actions .RpgButton{flex:1}.campaign-picker{display:flex;flex-direction:column;gap:var(--rpg-space-4);box-sizing:border-box;width:100%;max-width:72rem;margin:0 auto;padding:var(--rpg-space-5);color:var(--rpg-color-ink);font-family:var(--rpg-font-sans)}.campaign-picker-header{display:flex;flex-direction:column;gap:var(--rpg-space-1);align-items:center;text-align:center}.campaign-picker-title{margin:0;color:var(--rpg-color-ink-strong);font-family:var(--rpg-font-display);font-size:var(--rpg-text-xl);line-height:var(--rpg-text-xl-lh);font-weight:700}.campaign-picker-subtitle{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.campaign-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:var(--rpg-space-4);margin:0;padding:0;list-style:none}.campaign-picker-item{display:flex;min-width:0}.campaign-card{display:flex;flex-direction:column;gap:var(--rpg-space-2);box-sizing:border-box;width:100%;margin:0;padding:var(--rpg-space-4);text-align:left;color:var(--rpg-color-ink);font:inherit;background:var(--rpg-color-surface-raised);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);box-shadow:var(--rpg-shadow-1);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.campaign-card:hover{border-color:var(--rpg-color-accent);box-shadow:var(--rpg-shadow-2);transform:translateY(-2px)}.campaign-card:focus-visible{outline:2px solid var(--rpg-color-accent-strong);outline-offset:2px}.campaign-card[aria-pressed=true]{border-color:var(--rpg-color-accent-strong);box-shadow:var(--rpg-shadow-2)}.campaign-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--rpg-space-2)}.campaign-card-title{margin:0;color:var(--rpg-color-ink-strong);font-family:var(--rpg-font-display);font-size:var(--rpg-text-lg);line-height:var(--rpg-text-lg-lh);font-weight:700}.campaign-card-rating{flex:0 0 auto}.campaign-card-premise{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.campaign-card-meta{display:flex;flex-direction:column;gap:var(--rpg-space-1);margin:0}.campaign-card-meta-row{display:flex;align-items:baseline;gap:var(--rpg-space-2);flex-wrap:wrap}.campaign-card-meta-label{flex:0 0 auto;margin:0;color:var(--rpg-color-ink-faint);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.campaign-card-meta-value{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh)}.campaign-card-genres{display:flex;flex-wrap:wrap;gap:var(--rpg-space-1);margin:0;padding:0;list-style:none}.campaign-card-warnings{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh)}.campaign-card-warnings-label{color:var(--rpg-color-ink);font-weight:600}.lobby-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--rpg-space-5);background:color-mix(in srgb,var(--rpg-color-surface-sunken) 72%,transparent)}.lobby-screen{display:flex;width:1040px;max-width:100%;height:760px;max-height:90vh;min-width:0;flex-direction:column;overflow:hidden;background:var(--rpg-color-surface-sunken);color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);font-size:14px;border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);box-shadow:var(--rpg-shadow-2)}.lobby-screen:focus{outline:none}.lobby-topbar{flex:none;display:flex;align-items:center;gap:var(--rpg-space-2);height:54px;padding:0 20px;border-bottom:1px solid var(--rpg-color-border);background:var(--rpg-color-surface-raised)}.lobby-brand{color:var(--rpg-color-accent);font-size:17px;line-height:1}.lobby-topbar-campaign{margin:0;font-family:var(--rpg-font-display);font-weight:800;font-size:16px;color:var(--rpg-color-ink-strong)}.lobby-live-dot{width:8px;height:8px;border-radius:var(--rpg-radius-full);background:var(--rpg-color-live-dot)}.lobby-live-label{font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-topbar-end{margin-left:auto;display:flex;align-items:center;gap:var(--rpg-space-2)}.lobby-code-chip{display:inline-flex;align-items:baseline;gap:var(--rpg-space-2);padding:4px 10px;border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);background:var(--rpg-color-surface);color:var(--rpg-color-ink);cursor:pointer;font:inherit}.lobby-code-chip:hover{border-color:var(--rpg-color-accent)}.lobby-code-chip-label{text-transform:uppercase;font-size:var(--rpg-text-xs);letter-spacing:.1em;color:var(--rpg-color-ink-muted)}.lobby-code-chip-value{font-family:var(--rpg-font-mono);font-size:var(--rpg-text-md);letter-spacing:.18em;color:var(--rpg-color-accent-strong)}.lobby-body{flex:1;min-height:0;display:grid;grid-template-columns:3fr 2fr;gap:var(--rpg-space-5);padding:var(--rpg-space-5) 20px}.lobby-col{display:flex;flex-direction:column;gap:var(--rpg-space-3);min-height:0}.lobby-col--main{overflow:auto}.lobby-col--chat{overflow:hidden}.lobby-body--picker{display:block;overflow:auto;padding:0}.lobby-card{flex:none;border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);background:var(--rpg-color-surface-raised);padding:var(--rpg-space-4) var(--rpg-space-5)}.lobby-campaign-info{background:var(--rpg-color-surface)}.lobby-eyebrow{margin:0 0 4px;text-transform:uppercase;font-size:var(--rpg-text-xs);letter-spacing:.12em;color:var(--rpg-color-ink-muted)}.lobby-subtitle{margin:0;color:var(--rpg-color-ink);font-size:var(--rpg-text-md);line-height:1.45}.lobby-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--rpg-space-2)}.lobby-section-title{margin:0;font-family:var(--rpg-font-display);font-weight:800;font-size:var(--rpg-text-lg);color:var(--rpg-color-ink-strong)}.lobby-count{color:var(--rpg-color-ink-muted);font-weight:400}.lobby-ready-count{font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-name-field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--rpg-space-3)}.lobby-name-label{font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-pending-hint{margin:var(--rpg-space-2) 0 0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-faint)}.lobby-roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.lobby-roster-row{display:flex;align-items:center;gap:var(--rpg-space-3);padding:var(--rpg-space-3) 6px;border-bottom:1px solid var(--rpg-color-border)}.lobby-roster-row:last-child{border-bottom:none}.lobby-roster-identity{display:flex;flex-direction:column;gap:2px;min-width:0}.lobby-roster-name{display:flex;align-items:center;gap:var(--rpg-space-2);font-weight:700;color:var(--rpg-color-ink-strong)}.lobby-roster-meta{display:flex;align-items:center;gap:var(--rpg-space-2);font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-roster-seat{color:var(--rpg-color-ink-muted)}.lobby-roster-controls{margin-left:auto;display:flex;align-items:center;gap:var(--rpg-space-2)}.lobby-ready{display:inline-flex;align-items:center;gap:4px;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-seat-pick select{background:var(--rpg-color-surface);color:var(--rpg-color-ink);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-sm);padding:4px 6px}.lobby-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.lobby-footer{flex:none;display:flex;flex-direction:column;gap:var(--rpg-space-3);border-top:1px solid var(--rpg-color-border);padding-top:var(--rpg-space-4)}.lobby-start,.lobby-enter{display:flex;flex-direction:column;gap:4px}.lobby-start-status{margin:0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.lobby-enter-hint{margin:0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-faint)}.lobby-chat{display:flex;flex:1;min-height:0;flex-direction:column;border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);background:var(--rpg-color-surface-raised);overflow:hidden}.lobby-chat>.lobby-section-title{flex:none;padding:var(--rpg-space-4) var(--rpg-space-5);border-bottom:1px solid var(--rpg-color-border)}.lobby-chat-log{flex:1;min-height:0;overflow:auto;list-style:none;margin:0;padding:var(--rpg-space-5);display:flex;flex-direction:column;gap:var(--rpg-space-3)}.lobby-chat-system{display:flex;justify-content:space-between;gap:var(--rpg-space-2);font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-faint)}.lobby-chat-compose{flex:none;display:flex;gap:var(--rpg-space-2);padding:var(--rpg-space-3) var(--rpg-space-5);border-top:1px solid var(--rpg-color-border)}.lobby-chat-compose>:first-child{flex:1}.lobby-chat-line{display:flex;flex-direction:column;max-width:85%}.lobby-chat-line--mine{align-self:flex-end}.lobby-chat-author{font-size:var(--rpg-text-xs);color:var(--rpg-color-ink-faint);margin-bottom:2px}.lobby-chat-line--mine .lobby-chat-author{text-align:right}.lobby-chat-bubble{border:1px solid var(--rpg-color-border);border-radius:4px 12px 12px;background:var(--rpg-color-surface-sunken);padding:var(--rpg-space-2) var(--rpg-space-3);font-size:var(--rpg-text-base);line-height:1.4}.lobby-chat-line--mine .lobby-chat-bubble{border-radius:12px 4px 12px 12px;background:var(--rpg-color-accent-soft);border-color:var(--rpg-color-streaming-border)}.picker-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--rpg-color-surface-sunken) 82%,transparent)}.picker-dialog{position:relative;width:880px;max-width:100%;height:580px;max-height:90vh;display:grid;grid-template-columns:300px 1fr;background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:14px;overflow:hidden}.picker-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:var(--rpg-radius-full);border:1px solid var(--rpg-color-border);background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink);cursor:pointer;line-height:1}.picker-roster{display:flex;flex-direction:column;border-right:1px solid var(--rpg-color-border);min-height:0}.picker-roster-head{padding:var(--rpg-space-4) var(--rpg-space-4) var(--rpg-space-3);border-bottom:1px solid var(--rpg-color-border)}.picker-roster-title{margin:0;font-family:var(--rpg-font-display);font-weight:800;font-size:var(--rpg-text-md);color:var(--rpg-color-ink-strong)}.picker-roster-hint{margin:4px 0 0;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.picker-roster-list{flex:1;min-height:0;overflow:auto;list-style:none;margin:0;padding:var(--rpg-space-2)}.picker-roster-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--rpg-color-ink);cursor:pointer;text-align:left;font:inherit}.picker-roster-row:hover{background:var(--rpg-color-surface-raised)}.picker-roster-row--selected{border-color:var(--rpg-color-accent);background:var(--rpg-color-accent-soft)}.picker-roster-name{flex:1;font-weight:700;font-size:var(--rpg-text-base)}.picker-detail{overflow:auto;padding:var(--rpg-space-5)}.picker-sheet{display:flex;flex-direction:column;gap:var(--rpg-space-4);height:100%}.picker-sheet-head{display:flex;align-items:center;gap:var(--rpg-space-3)}.picker-sheet-name{margin:0;font-family:var(--rpg-font-display);font-weight:800;font-size:var(--rpg-text-xl);color:var(--rpg-color-ink-strong)}.picker-sheet-blurb{margin:0;padding-left:12px;border-left:3px solid var(--rpg-color-accent);font-family:var(--rpg-font-narration);font-style:italic;font-size:var(--rpg-text-lg);line-height:1.5;color:var(--rpg-color-ink)}.picker-sheet-label{margin:0;text-transform:uppercase;font-size:var(--rpg-text-xs);letter-spacing:.12em;color:var(--rpg-color-ink-muted)}.picker-sheet-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--rpg-space-2)}.picker-stat-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);background:var(--rpg-color-surface-sunken)}.picker-stat-key{font-size:var(--rpg-text-xs);color:var(--rpg-color-ink-muted)}.picker-stat-value{font-family:var(--rpg-font-display);font-weight:800;font-size:var(--rpg-text-lg);color:var(--rpg-color-ink-strong)}.picker-sheet-hp{margin:0;font-family:var(--rpg-font-mono);color:var(--rpg-color-accent-strong)}.picker-sheet-cta{margin-top:auto;display:flex;flex-direction:column;gap:var(--rpg-space-2)}.picker-sheet-mine{margin:0;color:var(--rpg-color-live-dot);font-size:var(--rpg-text-sm)}.picker-sheet-state{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm)}.picker-dialog--empty{display:block;height:auto}.picker-empty{margin:0;padding:var(--rpg-space-5);color:var(--rpg-color-ink-muted)}.identity-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--rpg-space-4);background:var(--rpg-color-surface-sunken)}.identity-screen{display:flex;flex-direction:column;gap:var(--rpg-space-5);box-sizing:border-box;width:min(34rem,100%);max-height:min(88vh,48rem);overflow-y:auto;padding:var(--rpg-space-4) var(--rpg-space-5) var(--rpg-space-5);background:var(--rpg-color-surface);color:var(--rpg-color-ink);font-family:var(--rpg-font-sans);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);box-shadow:var(--rpg-shadow-2)}.identity-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.identity-wordmark{color:var(--rpg-color-ink-strong);font-family:var(--rpg-font-display);font-size:var(--rpg-text-md);line-height:var(--rpg-text-md-lh);font-weight:600}.identity-hero{display:flex;flex-direction:column;gap:var(--rpg-space-1);align-items:center;text-align:center}.identity-eyebrow{margin:0;color:var(--rpg-color-accent-strong);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);font-weight:600;text-transform:uppercase;letter-spacing:.6px}.identity-title{margin:0;color:var(--rpg-color-ink-strong);font-family:var(--rpg-font-display);font-size:var(--rpg-text-xl);line-height:var(--rpg-text-xl-lh);font-weight:700}.identity-subtitle{margin:0;color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh)}.identity-form{display:flex;flex-direction:column;gap:var(--rpg-space-4)}.identity-name-field{display:flex;flex-direction:column;gap:var(--rpg-space-1)}.identity-name-field .RpgInput{width:100%}.identity-name-label{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs);line-height:var(--rpg-text-xs-lh);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.identity-colors{display:flex;flex-wrap:wrap;gap:var(--rpg-space-2)}.identity-swatch{width:2.25rem;height:2.25rem;padding:0;border:2px solid var(--rpg-color-border);border-radius:var(--rpg-radius-full, 999px);background:var(--identity-swatch-color);cursor:pointer;box-shadow:var(--rpg-shadow-1);transition:transform .1s ease,border-color .1s ease}.identity-swatch:hover{transform:scale(1.08)}.identity-swatch:focus-visible{outline:2px solid var(--rpg-color-accent-strong);outline-offset:2px}.identity-swatch--selected{border-color:var(--rpg-color-ink-strong);box-shadow:0 0 0 2px var(--rpg-color-surface),0 0 0 4px var(--rpg-color-ink-strong)}.identity-continue{display:flex;flex-direction:column;align-items:stretch}.identity-continue .RpgButton{width:100%}:root{--rpg-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--rpg-font-narration: "Spectral", Georgia, "Palatino Linotype", Palatino, serif;--rpg-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--rpg-font-display: var(--rpg-font-sans);--rpg-text-xs: 9.5px;--rpg-text-xs-lh: 13px;--rpg-text-sm: 11px;--rpg-text-sm-lh: 15px;--rpg-text-base: 13px;--rpg-text-base-lh: 19px;--rpg-text-md: 14px;--rpg-text-md-lh: 20px;--rpg-text-lg: 17px;--rpg-text-lg-lh: 24px;--rpg-text-xl: 25px;--rpg-text-xl-lh: 30px;--rpg-space-1: 4px;--rpg-space-2: 8px;--rpg-space-3: 11px;--rpg-space-4: 13px;--rpg-space-5: 16px;--rpg-radius-sm: 5px;--rpg-radius-md: 8px;--rpg-radius-lg: 12px;--rpg-radius-full: 999px;--rpg-duration-fast: .12s;--rpg-duration-base: .2s;--rpg-easing: cubic-bezier(.2, .8, .2, 1);--rpg-shadow-0: none;--rpg-shadow-1: 0 1px 2px rgba(15, 23, 42, .06);--rpg-shadow-2: 0 8px 24px rgba(15, 23, 42, .1)}:root,[data-rpg-theme=airy-light]{--rpg-font-display: "Mulish", "Segoe UI", system-ui, sans-serif;--rpg-color-surface: #ffffff;--rpg-color-surface-raised: #f7f9fc;--rpg-color-surface-sunken: #f4f7fb;--rpg-color-ink: #1f2733;--rpg-color-ink-strong: #11161f;--rpg-color-ink-muted: #5b6675;--rpg-color-ink-faint: #67727f;--rpg-color-border: #e6ebf2;--rpg-color-accent: #e8941f;--rpg-color-accent-soft: #fbf4e6;--rpg-color-accent-ink: #1a1205;--rpg-color-accent-strong: #c87708;--rpg-color-success: #2f7d6b;--rpg-color-warning: #9a6800;--rpg-color-danger: #c0492f;--rpg-color-role-gm: #b3372b;--rpg-color-role-player: #3a52c9;--rpg-color-role-npc: #5b6675;--rpg-color-hidden: #d8473f;--rpg-color-hidden-ring: #f3b9b5;--rpg-color-grid: #e2e8f1;--rpg-color-live-dot: #1f8a5e;--rpg-color-streaming-ring: rgba(232, 148, 31, .1);--rpg-color-streaming-border: #f1d9ad;--rpg-color-ruling-badge-bg: #f7f6fe;--rpg-color-ruling-badge-border: #ddd9f6;--rpg-color-ruling-quiet: #6e69a0;--rpg-color-chip-read-ink: #8a5a0f;--rpg-color-chip-read-bg: #fdf2dd;--rpg-color-chip-recap-ink: #37648f;--rpg-color-chip-recap-bg: #e6f0f8;--rpg-color-chip-ruling-ink: #5b59c4;--rpg-color-chip-ruling-bg: #ebeafb;--rpg-color-chip-beat-ink: #266658;--rpg-color-chip-beat-bg: #e4f3ee;--rpg-color-chip-npc-ink: #8a4f20;--rpg-color-chip-npc-bg: #f6ece1;--rpg-color-badge-decision-bg: #a85f08;--rpg-color-badge-decision-ink: #ffffff;--rpg-color-badge-unread-bg: #3147b8;--rpg-color-badge-unread-ink: #ffffff;--rpg-color-badge-passive: #1f8a5e}[data-rpg-theme=focused-dark]{--rpg-font-display: "Mulish", "Segoe UI", system-ui, sans-serif;--rpg-color-surface: #131b2a;--rpg-color-surface-raised: #18223a;--rpg-color-surface-sunken: #0b111c;--rpg-color-ink: #e7ecf5;--rpg-color-ink-strong: #f4f7fc;--rpg-color-ink-muted: #7e8aa3;--rpg-color-ink-faint: #909cb8;--rpg-color-border: #232f49;--rpg-color-accent: #f2a93b;--rpg-color-accent-soft: #2a2110;--rpg-color-accent-ink: #1a1205;--rpg-color-accent-strong: #f6c069;--rpg-color-success: #6fd9bf;--rpg-color-warning: #f5b15c;--rpg-color-danger: #ef5b53;--rpg-color-role-gm: #f472b6;--rpg-color-role-player: #9d78f8;--rpg-color-role-npc: #7e8aa3;--rpg-color-hidden: #ef5b53;--rpg-color-hidden-ring: #c06b63;--rpg-color-grid: #2a3756;--rpg-color-live-dot: #43c98f;--rpg-color-streaming-ring: rgba(242, 169, 59, .16);--rpg-color-streaming-border: #6b5630;--rpg-color-ruling-badge-bg: #23264f;--rpg-color-ruling-badge-border: #33386b;--rpg-color-ruling-quiet: #aab0ff;--rpg-color-chip-read-ink: #f0bf6a;--rpg-color-chip-read-bg: #3a2c12;--rpg-color-chip-recap-ink: #9fc4e8;--rpg-color-chip-recap-bg: #14283c;--rpg-color-chip-ruling-ink: #aab0ff;--rpg-color-chip-ruling-bg: #23264f;--rpg-color-chip-beat-ink: #6fd9bf;--rpg-color-chip-beat-bg: #103029;--rpg-color-chip-npc-ink: #ffb98a;--rpg-color-chip-npc-bg: #3a2418;--rpg-color-badge-decision-bg: #f2a93b;--rpg-color-badge-decision-ink: #1a1205;--rpg-color-badge-unread-bg: #9d78f8;--rpg-color-badge-unread-ink: #1a1024;--rpg-color-badge-passive: #43c98f}[data-rpg-density=compact]{--rpg-space-1: 3px;--rpg-space-2: 6px;--rpg-space-3: 9px;--rpg-space-4: 12px;--rpg-space-5: 18px;--rpg-space-6: 24px;--rpg-control-h: 28px;--rpg-control-px: 10px}[data-rpg-density=comfortable]{--rpg-space-1: 4px;--rpg-space-2: 8px;--rpg-space-3: 12px;--rpg-space-4: 16px;--rpg-space-5: 24px;--rpg-space-6: 32px;--rpg-control-h: 32px;--rpg-control-px: 12px}[data-rpg-density=spacious]{--rpg-space-1: 5px;--rpg-space-2: 10px;--rpg-space-3: 15px;--rpg-space-4: 20px;--rpg-space-5: 30px;--rpg-space-6: 40px;--rpg-control-h: 40px;--rpg-control-px: 16px}@font-face{font-family:dicefont;src:url(data:font/woff;base64,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) format("woff");font-weight:400;font-style:normal;font-display:block}[class^=df-d]:before,[class*=" df-d"]:before{font-family:dicefont;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.df-d4-1:before{content:""}.df-d4-2:before{content:""}.df-d4-3:before{content:""}.df-d4-4:before{content:""}.df-d6-1:before{content:""}.df-d6-2:before{content:""}.df-d6-3:before{content:""}.df-d6-4:before{content:""}.df-d6-5:before{content:""}.df-d6-6:before{content:""}.df-d8-1:before{content:""}.df-d8-2:before{content:""}.df-d8-3:before{content:""}.df-d8-4:before{content:""}.df-d8-5:before{content:""}.df-d8-6:before{content:""}.df-d8-7:before{content:""}.df-d8-8:before{content:""}.df-d12-1:before{content:""}.df-d12-2:before{content:""}.df-d12-3:before{content:""}.df-d12-4:before{content:""}.df-d12-5:before{content:""}.df-d12-6:before{content:""}.df-d12-7:before{content:""}.df-d12-8:before{content:""}.df-d12-9:before{content:""}.df-d12-10:before{content:""}.df-d12-11:before{content:""}.df-d12-12:before{content:""}.df-d20-1:before{content:""}.df-d20-2:before{content:""}.df-d20-3:before{content:""}.df-d20-4:before{content:""}.df-d20-5:before{content:""}.df-d20-6:before{content:""}.df-d20-7:before{content:""}.df-d20-8:before{content:""}.df-d20-9:before{content:""}.df-d20-10:before{content:""}.df-d20-11:before{content:""}.df-d20-12:before{content:""}.df-d20-13:before{content:""}.df-d20-14:before{content:""}.df-d20-15:before{content:""}.df-d20-16:before{content:""}.df-d20-17:before{content:""}.df-d20-18:before{content:""}.df-d20-19:before{content:""}.df-d20-20:before{content:""}.RpgButton{height:var(--rpg-control-h);padding:0 var(--rpg-control-px);border-radius:var(--rpg-radius-md);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-sm);font-weight:600;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--rpg-space-2);transition:filter var(--rpg-duration-fast) var(--rpg-easing)}.RpgButton:hover:not(:disabled){filter:brightness(1.08)}.RpgButton:disabled{opacity:.5;cursor:not-allowed}.RpgButton--primary{background:var(--rpg-color-accent);color:var(--rpg-color-accent-ink)}.RpgButton--secondary{background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink-strong)}.RpgButton--ghost{background:transparent;color:var(--rpg-color-ink)}.RpgButton--ghost:hover:not(:disabled){background:var(--rpg-color-surface)}.RpgButton--danger{background:var(--rpg-color-danger);color:#fff}.RpgButton--sm{height:24px;padding:0 var(--rpg-space-2);font-size:var(--rpg-text-xs)}.RpgInput{background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);color:var(--rpg-color-ink);height:var(--rpg-control-h);padding:0 var(--rpg-control-px);border-radius:var(--rpg-radius-md);font-size:var(--rpg-text-sm);font-family:var(--rpg-font-sans);outline:none;transition:border-color var(--rpg-duration-fast) var(--rpg-easing);width:100%;box-sizing:border-box}.RpgInput:focus{border-color:var(--rpg-color-accent)}.RpgInput-wrap{display:flex;align-items:center;background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);padding:0 var(--rpg-space-2);height:var(--rpg-control-h);gap:var(--rpg-space-2)}.RpgInput-wrap .RpgInput{background:transparent;border:none;flex:1;height:100%;padding:0}.RpgInput-prefix,.RpgInput-suffix{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);display:flex;align-items:center}textarea.RpgInput{height:auto;min-height:calc(var(--rpg-control-h) * 2);padding:var(--rpg-space-2) var(--rpg-control-px);resize:vertical}.RpgChip{display:inline-flex;align-items:center;gap:var(--rpg-space-1);height:22px;padding:0 var(--rpg-space-2);border-radius:var(--rpg-radius-full);font-size:var(--rpg-text-xs);font-weight:600;letter-spacing:.2px;line-height:1}.RpgChip--sm{height:18px;font-size:10px;padding:0 var(--rpg-space-1)}.RpgChip--neutral{background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink)}.RpgChip--role-gm{background:color-mix(in srgb,var(--rpg-color-role-gm) 18%,transparent);color:var(--rpg-color-role-gm)}.RpgChip--role-player{background:color-mix(in srgb,var(--rpg-color-role-player) 18%,transparent);color:var(--rpg-color-role-player)}.RpgChip--accent{background:var(--rpg-color-accent);color:var(--rpg-color-accent-ink)}.RpgChip--success{background:color-mix(in srgb,var(--rpg-color-success) 18%,transparent);color:var(--rpg-color-success)}.RpgChip--warning{background:color-mix(in srgb,var(--rpg-color-warning) 18%,transparent);color:var(--rpg-color-warning)}.RpgChip--danger{background:color-mix(in srgb,var(--rpg-color-danger) 18%,transparent);color:var(--rpg-color-danger)}.RpgAvatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:600;color:#fff;position:relative;flex-shrink:0}.RpgAvatar--xs{width:20px;height:20px;font-size:10px}.RpgAvatar--sm{width:28px;height:28px;font-size:11px}.RpgAvatar--md{width:36px;height:36px;font-size:13px}.RpgAvatar--lg{width:48px;height:48px;font-size:16px}.RpgAvatar--gm{background:linear-gradient(135deg,var(--rpg-color-role-gm),color-mix(in srgb,var(--rpg-color-role-gm) 70%,#000));box-shadow:0 0 0 2px var(--rpg-color-role-gm)}.RpgAvatar--player{background:linear-gradient(135deg,var(--rpg-color-role-player),color-mix(in srgb,var(--rpg-color-role-player) 70%,#000));box-shadow:0 0 0 2px var(--rpg-color-role-player)}.RpgAvatar--npc{background:linear-gradient(135deg,var(--rpg-color-role-npc),color-mix(in srgb,var(--rpg-color-role-npc) 70%,#000));box-shadow:0 0 0 2px var(--rpg-color-role-npc)}.RpgAvatar-status{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--rpg-color-surface)}.RpgAvatar-status--online{background:var(--rpg-color-success)}.RpgAvatar-status--away{background:var(--rpg-color-warning)}.RpgAvatar-status--offline{background:var(--rpg-color-ink-muted)}.RpgAvatar--speaking{animation:rpg-speaking 1.6s ease-in-out infinite}@keyframes rpg-speaking{0%,to{box-shadow:0 0 0 2px var(--rpg-color-success),0 0 0 4px transparent}50%{box-shadow:0 0 0 2px var(--rpg-color-success),0 0 0 6px color-mix(in srgb,var(--rpg-color-success) 40%,transparent)}}.RpgPanel{background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);display:flex;flex-direction:column;overflow:hidden;height:100%}.RpgPanel-header{padding:var(--rpg-space-3) var(--rpg-space-4);border-bottom:1px solid var(--rpg-color-border);display:flex;align-items:center;gap:var(--rpg-space-2);font-weight:600;color:var(--rpg-color-ink-strong);font-size:var(--rpg-text-md)}.RpgPanel-body{padding:var(--rpg-space-3) var(--rpg-space-4);flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--rpg-space-3)}.RpgPanel-footer{padding:var(--rpg-space-3) var(--rpg-space-4);border-top:1px solid var(--rpg-color-border);display:flex;align-items:center;gap:var(--rpg-space-2)}.RpgMessage{display:flex;gap:var(--rpg-space-3);align-items:flex-start}.RpgMessage-author{flex:0 0 auto}.RpgMessage-body{flex:1;min-width:0}.RpgMessage-time{font-size:var(--rpg-text-xs);color:var(--rpg-color-ink-muted);margin-bottom:2px}.RpgMessage-content{font-size:var(--rpg-text-sm);line-height:var(--rpg-text-sm-lh);color:var(--rpg-color-ink)}.RpgMessage-content code{font-family:var(--rpg-font-mono);background:var(--rpg-color-surface-raised);padding:1px 6px;border-radius:var(--rpg-radius-sm);font-size:var(--rpg-text-xs)}.RpgMessage--roll .RpgMessage-content{font-family:var(--rpg-font-mono)}.RpgMessage--combat .RpgMessage-content{color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-xs)}.RpgProposalChip{display:inline-flex;align-items:center;border-radius:var(--rpg-radius-sm);padding:2px 6px;font-size:var(--rpg-text-xs);font-weight:800;letter-spacing:.6px;text-transform:uppercase;line-height:1}.RpgProposalChip--read{color:var(--rpg-color-chip-read-ink);background:var(--rpg-color-chip-read-bg)}.RpgProposalChip--recap{color:var(--rpg-color-chip-recap-ink);background:var(--rpg-color-chip-recap-bg)}.RpgProposalChip--ruling{color:var(--rpg-color-chip-ruling-ink);background:var(--rpg-color-chip-ruling-bg)}.RpgProposalChip--beat{color:var(--rpg-color-chip-beat-ink);background:var(--rpg-color-chip-beat-bg)}.RpgProposalChip--npc{color:var(--rpg-color-chip-npc-ink);background:var(--rpg-color-chip-npc-bg)}.RpgDisposeControls{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--rpg-space-2)}.RpgDisposeControls>.RpgButton{width:100%;justify-content:center}.RpgDisposeControls--streaming{opacity:.5;pointer-events:none}.RpgProposalCard{display:flex;flex-direction:column;gap:var(--rpg-space-2);background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);padding:var(--rpg-space-3);box-shadow:var(--rpg-shadow-1)}.RpgProposalCard__head{display:flex;align-items:center;gap:var(--rpg-space-2)}.RpgProposalCard__meta{font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted)}.RpgProposalCard__body{font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);color:var(--rpg-color-ink);max-height:320px;overflow-y:auto}.RpgProposalCard--read .RpgProposalCard__body{font-family:var(--rpg-font-narration);border-left:3px solid var(--rpg-color-accent);padding-left:var(--rpg-space-3)}.RpgProposalCard__dispose{margin-top:auto}.RpgProposalCard--streaming{border-color:var(--rpg-color-streaming-border);box-shadow:0 0 0 3px var(--rpg-color-streaming-ring)}.RpgProposalCard--streaming .RpgProposalCard__body{color:var(--rpg-color-ink-muted)}.RpgProposalCard__caret{display:inline-block;width:2px;height:1em;margin-left:2px;background:var(--rpg-color-accent);vertical-align:text-bottom;animation:rpg-caret-blink 1s step-end infinite}@keyframes rpg-caret-blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.RpgProposalCard__caret{animation:none}}.RpgPersonaBadge{display:inline-flex;align-items:center;gap:var(--rpg-space-2);height:22px;padding:0 var(--rpg-space-3);border-radius:var(--rpg-radius-full);background:var(--rpg-color-surface-raised);border:1px solid var(--rpg-color-border);color:var(--rpg-color-ink-muted);font-size:var(--rpg-text-sm);white-space:nowrap}.RpgPersonaBadge__dot{width:7px;height:7px;border-radius:var(--rpg-radius-full);background:var(--rpg-color-live-dot);animation:rpg-live-pulse 2s ease-in-out infinite}@keyframes rpg-live-pulse{50%{opacity:.4}}@media (prefers-reduced-motion: reduce){.RpgPersonaBadge__dot{animation:none}}.RpgRulingBadge{display:flex;flex-direction:column;gap:var(--rpg-space-2);background:var(--rpg-color-ruling-badge-bg);border:1px solid var(--rpg-color-ruling-badge-border);border-left:3px solid var(--rpg-color-chip-ruling-ink);border-radius:var(--rpg-radius-md);padding:var(--rpg-space-3)}.RpgRulingBadge__suggested{font-size:var(--rpg-text-xs);letter-spacing:.6px;text-transform:uppercase;color:var(--rpg-color-ruling-quiet)}.RpgRulingBadge__body{font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);color:var(--rpg-color-chip-ruling-ink)}.RpgRulingBadge__actions{display:flex;gap:var(--rpg-space-2)}.RpgButton.RpgRulingBadge__ack{background:var(--rpg-color-chip-ruling-ink);color:var(--rpg-color-ruling-badge-bg)}.RpgTableFeedRow{display:flex;align-items:baseline;gap:var(--rpg-space-2);padding:var(--rpg-space-2) var(--rpg-space-2);border-top:1px solid var(--rpg-color-border);font-size:var(--rpg-text-base);line-height:var(--rpg-text-base-lh);color:var(--rpg-color-ink)}.RpgTableFeedRow__text{flex:1;min-width:0}.RpgTableFeedRow__time{flex:none;font-size:var(--rpg-text-sm);color:var(--rpg-color-ink-muted);font-variant-numeric:tabular-nums}.RpgTableFeedRow--just-resolved{background:color-mix(in srgb,var(--rpg-color-accent) 10%,transparent);border-left:3px solid var(--rpg-color-accent);transition:background var(--rpg-duration-base) var(--rpg-easing)}@media (prefers-reduced-motion: reduce){.RpgTableFeedRow--just-resolved{transition:none}}.RpgSceneTab{appearance:none;height:28px;padding:0 var(--rpg-space-3);border:1px solid transparent;border-radius:var(--rpg-radius-md);background:transparent;color:var(--rpg-color-ink-faint);font-family:var(--rpg-font-sans);font-size:var(--rpg-text-sm);cursor:pointer;transition:color var(--rpg-duration-fast) var(--rpg-easing)}.RpgSceneTab:hover:not(.RpgSceneTab--active){color:var(--rpg-color-ink-muted)}.RpgSceneTab--active{background:var(--rpg-color-surface);border-color:var(--rpg-color-border);color:var(--rpg-color-ink);box-shadow:var(--rpg-shadow-1)}@media (prefers-reduced-motion: reduce){.RpgSceneTab{transition:none}}.RpgDiceGlyph{display:inline-flex;align-items:center;justify-content:center;color:var(--rpg-color-accent-strong)}.RpgDiceGlyph:before{font-size:var(--rpg-text-xl)}.RpgDiceTray{display:flex;align-items:center;gap:var(--rpg-space-3);background:var(--rpg-color-surface-raised);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);padding:var(--rpg-space-2) var(--rpg-space-3)}.RpgDiceTray__set{display:flex;gap:var(--rpg-space-1)}.RpgDiceTray__die{appearance:none;min-width:34px;height:28px;padding:0 var(--rpg-space-2);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-md);background:var(--rpg-color-surface);color:var(--rpg-color-ink-muted);font-family:var(--rpg-font-mono);font-size:var(--rpg-text-sm);cursor:pointer}.RpgDiceTray__die--active{background:var(--rpg-color-accent-soft);border-color:var(--rpg-color-accent);color:var(--rpg-color-accent-strong)}.RpgDiceTray__formula{font-family:var(--rpg-font-mono);font-size:var(--rpg-text-sm);color:var(--rpg-color-ink);background:var(--rpg-color-accent-soft);border-radius:var(--rpg-radius-sm);padding:2px var(--rpg-space-2)}.RpgDiceTray__result{margin-left:auto}html,body,#root{height:100%;margin:0}body{font-family:system-ui,sans-serif;color:var(--rpg-color-ink, #1f2937);background:var(--rpg-color-surface, #f6f8fa)}.studio-shell{display:grid;grid-template-rows:auto 1fr auto;height:100vh;background:var(--rpg-color-surface);color:var(--rpg-color-ink)}.studio-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;background:var(--rpg-color-surface);border-bottom:1px solid var(--rpg-color-border)}.studio-identity{display:flex;align-items:center;gap:.6rem;min-width:0}.studio-product{color:var(--rpg-color-accent)}.studio-title{font-family:var(--rpg-font-display, system-ui);font-weight:600;color:var(--rpg-color-ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-conn{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--rpg-color-ink-muted);white-space:nowrap}.studio-conn-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--rpg-color-ink-muted)}.studio-conn[data-tone=ok] .studio-conn-dot{background:var(--rpg-color-success, #2f9e44)}.studio-conn[data-tone=warn] .studio-conn-dot{background:var(--rpg-color-accent)}.studio-conn[data-tone=danger]{color:var(--rpg-color-danger, #c0492f)}.studio-conn[data-tone=danger] .studio-conn-dot{background:var(--rpg-color-danger, #c0492f)}.studio-topbar-actions{display:flex;align-items:center;gap:.5rem}.studio-overlay-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--rpg-space-4);background:color-mix(in srgb,var(--rpg-color-ink-strong) 45%,transparent)}.studio-overlay-modal{display:flex;flex-direction:column;gap:var(--rpg-space-3);box-sizing:border-box;width:min(34rem,100%);max-height:min(88vh,44rem);overflow-y:auto;padding:var(--rpg-space-3) var(--rpg-space-4) var(--rpg-space-4);background:var(--rpg-color-surface);color:var(--rpg-color-ink);border:1px solid var(--rpg-color-border);border-radius:var(--rpg-radius-lg);box-shadow:var(--rpg-shadow-2)}.studio-overlay-head{display:flex;align-items:center;justify-content:space-between;gap:var(--rpg-space-2)}.studio-overlay-title{color:var(--rpg-color-ink-strong);font-family:var(--rpg-font-display);font-size:var(--rpg-text-md);line-height:var(--rpg-text-md-lh);font-weight:600}.studio-scenetabs{display:flex;gap:.25rem;padding:.25rem .75rem;background:var(--rpg-color-surface-raised);border-bottom:1px solid var(--rpg-color-border)}.studio-scenetab.is-active{font-weight:600}.studio-body{display:flex;flex-direction:row;align-items:stretch;min-height:0;min-width:0;overflow:hidden;position:relative}.studio-activitybar{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem;background:var(--rpg-color-surface);border-right:1px solid var(--rpg-color-border)}.studio-activity-group{display:flex;flex-direction:column;gap:.25rem}.studio-activity-spacer{flex:1 1 auto}.studio-activity-item{background:transparent;border:0;color:var(--rpg-color-ink-muted);display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border-radius:6px;cursor:pointer}.studio-activity-item:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.studio-activity-icon{width:1.1rem;height:1.1rem;display:inline-flex}.studio-activity-icon svg{width:100%;height:100%;fill:none;stroke:currentcolor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.studio-activity-item:hover{background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink)}.rpg-region-toggle-bar{display:inline-flex;align-items:center;gap:2px}.rpg-region-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.7rem;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--rpg-color-ink-muted);cursor:pointer}.rpg-region-toggle:hover{background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink)}.rpg-region-toggle:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.rpg-region-toggle--visible{color:var(--rpg-color-ink)}.rpg-region-toggle[aria-pressed=false]{opacity:.55}.rpg-region-toggle-icon{width:1.15rem;height:1.15rem;display:inline-flex}.rpg-region-toggle-icon svg{width:100%;height:100%;fill:none;stroke:currentcolor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rpg-layout-menu-wrapper{position:relative;display:inline-flex}.rpg-layout-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:50;min-width:16rem;padding:4px;display:flex;flex-direction:column;gap:1px;background:var(--rpg-color-surface);border:1px solid var(--rpg-color-border);border-radius:8px;box-shadow:0 6px 24px #0000002e}.rpg-layout-section-label{padding:6px 10px 2px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--rpg-color-ink-muted)}.rpg-layout-separator{height:1px;margin:4px 6px;background:var(--rpg-color-border)}.rpg-layout-menuitem{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:transparent;border:0;border-radius:5px;text-align:left;font:inherit;font-size:.85rem;color:var(--rpg-color-ink);cursor:pointer}.rpg-layout-menuitem:hover,.rpg-layout-menuitem:focus-visible{background:var(--rpg-color-surface-raised);outline:none}.rpg-layout-menuitem[aria-disabled=true]{color:var(--rpg-color-ink-muted);opacity:.5;cursor:default}.rpg-layout-check{width:1rem;display:inline-flex;justify-content:center;color:var(--rpg-color-accent);font-size:.8rem}.rpg-layout-submenu{display:flex;flex-direction:column;gap:1px;margin:1px 0 1px 12px;padding-left:6px;border-left:1px solid var(--rpg-color-border)}.rpg-layout-export-json{max-height:8rem;overflow:auto;margin:4px 6px;padding:6px 8px;font-size:.7rem;white-space:pre-wrap;word-break:break-all;background:var(--rpg-color-surface-raised);border-radius:5px}.studio-center-column{display:grid;grid-template-columns:1fr var(--rpg-rightdock-w, 20rem);grid-template-rows:1fr var(--rpg-bottomdrawer-h, 150px);flex:1 1 0;min-width:0;min-height:0;overflow:hidden}.studio-workspace{position:relative;grid-column:1;grid-row:1;min-width:0;overflow:hidden;min-height:0;display:flex;flex-direction:column}.studio-center-column>.studio-rightdock{grid-column:2;grid-row:1 / 3}.studio-body>.studio-resize-handle[data-testid=resize-right]{position:absolute;top:0;bottom:0;right:var(--rpg-rightdock-w, 20rem);z-index:2}.studio-center-column~.studio-resize-handle[data-testid=resize-bottom]{position:absolute;left:0;right:var(--rpg-rightdock-w, 20rem);bottom:var(--rpg-bottomdrawer-h, 150px);height:4px;z-index:2;cursor:row-resize}.studio-center-column>.studio-bottomdrawer{grid-column:1;grid-row:2;min-width:0}.studio-workspace>.studio-slot{flex:1 1 auto;min-height:0;min-width:0;display:flex}.studio-workspace>.studio-slot>.studio-slot-panel{flex:1 1 auto;min-height:0;min-width:0;display:flex}.studio-board{position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden;background:var(--rpg-color-surface)}.studio-board-panel{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column}.studio-board-toolbar{flex:0 0 auto;display:flex;align-items:center;gap:.5rem}.scene-tab-strip{display:flex;align-items:center;gap:.5rem;flex:1 1 auto;padding:.25rem .5rem 0;border-bottom:1px solid var(--rpg-color-border);background:var(--rpg-color-surface-raised)}.scene-tab-strip__tablist{display:flex;gap:.25rem}.scene-tab-strip__tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--rpg-color-ink-muted);padding:.4rem .75rem;cursor:pointer;font-size:.875rem;border-radius:4px 4px 0 0}.scene-tab-strip__tab:hover{color:var(--rpg-color-ink);background:var(--rpg-color-surface)}.scene-tab-strip__tab[aria-selected=true],.scene-tab-strip__tab.is-active{color:var(--rpg-color-ink-strong);border-bottom-color:var(--rpg-color-accent);font-weight:600}.studio-board-region{flex:1 1 auto;position:relative;min-height:0;min-width:0;display:flex}.studio-board-region:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:-2px}.studio-board canvas{display:block}.studio-board .rpg-camera-controls{position:absolute}.studio-board .rpg-camera-controls button{color:var(--rpg-color-ink);background:var(--rpg-color-surface-raised);border:1px solid var(--rpg-color-border)}.studio-board .rpg-camera-controls button:hover{background:var(--rpg-color-surface)}.studio-inspector-layer{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;visibility:hidden}.studio-rightdock{flex:0 0 var(--rpg-rightdock-w, 20rem);display:flex;flex-direction:column;background:var(--rpg-color-surface);border-left:1px solid var(--rpg-color-border);min-height:0;overflow:hidden}.rpg-section-region[data-region=right]{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.rpg-section-region[data-region=right] .rpg-section{display:flex;flex-direction:column;flex:1 1 0;min-height:0}.rpg-section-region[data-region=right] .rpg-section[data-collapsed=true],.rpg-section-region[data-region=right] .rpg-section-headhooks{flex:0 0 auto}.rpg-section-region[data-region=right] .rpg-section>.rpg-view-mount{flex:1 1 0;min-height:0;overflow:auto}.rpg-section-region[data-region=right] .rpg-view-mount[data-collapsed=true]{display:none}.rpg-tablist{display:flex;flex-wrap:nowrap;gap:.25rem;padding:.25rem .5rem 0;border-bottom:1px solid var(--rpg-color-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.rpg-tab{display:inline-flex;flex:0 0 auto;align-items:center;gap:.35rem;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--rpg-color-ink-muted);padding:.4rem .6rem;font:inherit;font-size:.85rem;cursor:pointer}.rpg-tab:hover{color:var(--rpg-color-ink)}.rpg-tab[aria-selected=true]{color:var(--rpg-color-ink-strong);border-bottom-color:var(--rpg-color-accent)}.rpg-tab:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:-2px;border-radius:4px}.rpg-tab-badge-slot{display:inline-flex;align-items:center}.studio-dock-tabs{display:flex;gap:.25rem;padding:.5rem .5rem 0;border-bottom:1px solid var(--rpg-color-border)}.studio-dock-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--rpg-color-ink-muted);padding:.4rem .6rem;cursor:pointer}.studio-dock-tab[aria-selected=true]{color:var(--rpg-color-ink-strong);border-bottom-color:var(--rpg-color-accent)}.studio-dock-panel{padding:.75rem;overflow:auto}.studio-leftpanel{flex:0 0 var(--rpg-leftpanel-w, 16rem);min-width:0;overflow:auto;padding:0;background:var(--rpg-color-surface);border-right:1px solid var(--rpg-color-border)}.studio-leftpanel-region{flex:0 0 0;width:0;overflow:hidden;visibility:hidden}.studio-leftpanel-region[data-has-content=true]{flex:0 0 var(--rpg-leftpanel-w, 16rem);width:auto;overflow:auto;visibility:visible;padding:0;background:var(--rpg-color-surface);border-right:1px solid var(--rpg-color-border)}.studio-activity-item[aria-pressed=true]{background:var(--rpg-color-surface-raised);color:var(--rpg-color-ink-strong)}.studio-dock-panel[hidden]{display:none}.studio-bottomdrawer{display:flex;flex-direction:column;background:var(--rpg-color-surface-raised);border-top:1px solid var(--rpg-color-border);color:var(--rpg-color-ink-muted);font-size:.85rem}.studio-drawer-header{display:flex;align-items:center;gap:.25rem;padding:0 .5rem;border-bottom:1px solid var(--rpg-color-border)}.studio-drawer-tabs{display:flex;gap:.25rem}.studio-drawer-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--rpg-color-ink-muted);padding:.4rem .6rem;cursor:pointer}.studio-drawer-tab:hover{color:var(--rpg-color-ink)}.studio-drawer-tab[aria-selected=true]{color:var(--rpg-color-ink-strong);border-bottom-color:var(--rpg-color-accent)}.studio-drawer-toggle{margin-left:auto;background:transparent;border:0;color:var(--rpg-color-ink-muted);cursor:pointer;padding:.2rem .4rem;border-radius:6px}.studio-drawer-toggle:hover{background:var(--rpg-color-surface);color:var(--rpg-color-ink)}.studio-drawer-logs{padding:.5rem .75rem;overflow:auto}.rpg-tablist,.studio-leftpanel,.studio-leftpanel-region[data-has-content=true],.rpg-section-region[data-region=right] .rpg-section>.rpg-view-mount,.studio-dock-panel,.studio-drawer-logs{scrollbar-width:none;-ms-overflow-style:none}.rpg-tablist::-webkit-scrollbar,.studio-leftpanel::-webkit-scrollbar,.studio-leftpanel-region[data-has-content=true]::-webkit-scrollbar,.rpg-section-region[data-region=right] .rpg-section>.rpg-view-mount::-webkit-scrollbar,.studio-dock-panel::-webkit-scrollbar,.studio-drawer-logs::-webkit-scrollbar{width:0;height:0}.studio-drawer-logs[hidden],.studio-drawer-tabpanel[hidden]{display:none}.studio-dicetray{background:transparent;border:0;color:var(--rpg-color-ink-muted);padding:.2rem .4rem;border-radius:6px;cursor:pointer}.studio-dicetray:hover{background:var(--rpg-color-surface);color:var(--rpg-color-ink)}.studio-placeholder{color:var(--rpg-color-ink-muted)}.studio-panel-placeholder{padding:.5rem .75rem;color:var(--rpg-color-ink-muted);font-size:.85rem}.studio-inspector-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;visibility:visible}.inspector-window{pointer-events:auto;position:absolute;width:17rem;min-height:5.5rem;background:linear-gradient(180deg,color-mix(in srgb,var(--rpg-color-surface-raised) 72%,var(--rpg-color-surface)),var(--rpg-color-surface));border:1px solid var(--rpg-color-border);border-radius:.55rem;box-shadow:0 14px 30px -18px #00000073,0 2px 5px -3px #00000059;display:flex;flex-direction:column;overflow:hidden}.inspector-window-titlebar{display:flex;align-items:center;gap:.375rem;padding:.34rem .42rem .34rem .5rem;background:color-mix(in srgb,var(--rpg-color-surface-raised) 84%,transparent);border-bottom:1px solid var(--rpg-color-border);cursor:grab;user-select:none}.inspector-window-titlebar:active{cursor:grabbing}.inspector-window-titlebar:focus{outline:2px solid var(--rpg-color-accent);outline-offset:-2px}.inspector-window-title{flex:1;font-size:.74rem;font-weight:700;letter-spacing:.012em;color:var(--rpg-color-ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-window-close{flex-shrink:0;background:transparent;border:0;border-radius:6px;color:var(--rpg-color-ink-muted);cursor:pointer;font-size:1rem;font-weight:700;line-height:1;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:none}.inspector-window-close:hover{background:color-mix(in srgb,var(--rpg-color-border) 75%,transparent);color:var(--rpg-color-ink)}.inspector-window-close:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.inspector-window-body{flex:1;padding:.36rem .42rem .42rem;overflow-y:auto;overflow-x:hidden}.floating-window{pointer-events:auto;position:absolute;width:17rem;min-height:5.5rem;background:linear-gradient(180deg,color-mix(in srgb,var(--rpg-color-surface-raised) 72%,var(--rpg-color-surface)),var(--rpg-color-surface));border:1px solid var(--rpg-color-border);border-radius:.55rem;box-shadow:0 14px 30px -18px #00000073,0 2px 5px -3px #00000059;display:flex;flex-direction:column;overflow:hidden}.floating-window-titlebar{display:flex;align-items:center;gap:.375rem;padding:.34rem .42rem .34rem .5rem;background:color-mix(in srgb,var(--rpg-color-surface-raised) 84%,transparent);border-bottom:1px solid var(--rpg-color-border);cursor:grab;user-select:none}.floating-window-titlebar:active{cursor:grabbing}.floating-window-titlebar:focus{outline:2px solid var(--rpg-color-accent);outline-offset:-2px}.floating-window-title{flex:1;font-size:.74rem;font-weight:700;letter-spacing:.012em;color:var(--rpg-color-ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floating-window-badge{flex-shrink:0;display:inline-flex;align-items:center}.floating-window-close{flex-shrink:0;background:transparent;border:0;border-radius:6px;color:var(--rpg-color-ink-muted);cursor:pointer;font-size:1rem;font-weight:700;line-height:1;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:none}.floating-window-close:hover{background:color-mix(in srgb,var(--rpg-color-border) 75%,transparent);color:var(--rpg-color-ink)}.floating-window-close:focus-visible{outline:2px solid var(--rpg-color-accent);outline-offset:2px}.floating-window-body{flex:1;padding:.36rem .42rem .42rem;overflow-y:auto;overflow-x:hidden}@media (prefers-reduced-motion: reduce){.inspector-window,.floating-window,.inspector-window-close,.floating-window-close{transition:none}}.rpg-view-move-announce{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);padding:.75rem 1rem;background:var(--rpg-color-accent, #2563eb);color:var(--rpg-color-surface, #ffffff);border-radius:4px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}
