.character-picker{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:0 0 12px}
.character-picker label{margin:0;font-size:13px}.character-picker small{font-size:11px;color:#72776a}
/* Position, pose, and sprite frames have separate owners. Only one RAF animates them. */
.room .pet-position,.room .pet,.room .pet.reacting{animation:none!important}
.room .pet-position{width:var(--character-size,var(--pet-size));will-change:transform}
.room .pet,.room #avatar{width:var(--character-size,var(--pet-size));height:calc(var(--character-size,var(--pet-size))*var(--character-ratio,1.083333))}
.room .pet{pointer-events:none;position:relative;transform-origin:50% 95%;will-change:transform}
/* Keep the hit area independent of a long gun barrel or transparent image padding. */
.room .pet::after{pointer-events:auto;content:'';position:absolute;left:50%;bottom:0;width:var(--hitbox-width,100%);height:var(--hitbox-height,100%);transform:translateX(-50%)}
.room[data-character-state=SLEEPING] .pet{transform-origin:50% 50%}
