/* Shared scene chrome, themed through validated CSS color variables. No host selectors. */
.ks3-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;color:var(--ks3-ink,#334455)}
.ks3-stage>canvas{display:block;width:100%;height:100%;outline:none;touch-action:none;cursor:grab}
.ks3-stage>canvas:focus-visible:not(.ks3-pointer-focus){box-shadow:inset 0 0 0 2px var(--ks3-accent,#347777)}
.ks3-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ks3-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:150px;padding:3px 6px;background:var(--ks3-paper,#fafafa);color:var(--ks3-ink,#334455);font:550 11px/1.4 "IBM Plex Sans","Plex SC","PingFang SC",sans-serif;box-shadow:0 1px 3px #6c675c30;border:0;border-radius:2px;cursor:pointer;transition:background-color .15s,box-shadow .15s}
.ks3-label[hidden]{display:none!important}.ks3-label:hover{color:var(--ks3-accent);box-shadow:0 1px 0 var(--ks3-accent)}
.ks3-label.selected{background:var(--ks3-accent);color:var(--ks3-paper)}
.ks3-group{font-weight:750;font-size:12px;border-left:3px solid var(--ks3-color,var(--ks3-accent));padding:5px 8px;max-width:180px;cursor:default}
.ks3-group button{padding:0 0 0 8px;font:inherit;color:var(--ks3-accent);background:none;cursor:pointer}.ks3-civic{color:var(--ks3-accent);font-weight:700;max-width:142px}
.ks3-directory{position:absolute;inset:8px auto 8px 8px;width:min(310px,calc(100% - 16px));background:var(--ks3-paper);border:1px solid var(--ks3-hair);box-shadow:6px 8px 25px #4b493824;padding:12px;display:flex;flex-direction:column;overflow:hidden;z-index:3;touch-action:pan-y}
.ks3-directory[hidden]{display:none!important}.ks3-directory input{width:100%;background:var(--ks3-ground);border:0;color:var(--ks3-ink);font:inherit;font-size:13px;padding:10px;outline-color:var(--ks3-accent);border-radius:2px}
.ks3-directory-list{overflow:auto;min-height:0;margin-top:10px;scrollbar-width:thin}.ks3-directory-list h3{margin:14px 4px 5px;font-size:13px;color:var(--ks3-accent)}
.ks3-directory-item{display:flex;flex-direction:column;gap:3px;width:100%;padding:9px 6px;background:none;color:var(--ks3-ink);text-align:left;font:inherit;font-size:13px;line-height:1.4;border:0;border-bottom:1px solid var(--ks3-hair);cursor:pointer}
.ks3-directory-item[hidden],.ks3-directory-list h3[hidden]{display:none}.ks3-directory-item:hover{background:var(--ks3-ground)}.ks3-directory-item small{font-size:10px;color:var(--ks3-muted)}
.ks3-detail{position:absolute;bottom:12px;right:16px;max-width:calc(100% - 32px);padding:5px 9px;background:var(--ks3-paper);color:var(--ks3-ink);font-size:11px;pointer-events:none;border-radius:2px}.ks3-detail:empty{display:none}
.ks3-label:focus-visible,.ks3-directory-item:focus-visible{outline:2px solid var(--ks3-accent);outline-offset:2px}
.ks3-holding,.ks3-holding *{cursor:grabbing!important;user-select:none}
.ks3-close{align-self:flex-end;width:32px;height:32px;margin:0 0 6px;border:0;background:none;color:var(--ks3-accent);font-size:24px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.ks3-label{transition:none}}

.ks3-stage[hidden]{display:none!important}
