/* Original LINE FRIENDS rigs and body-sized pickup controls. */
[data-concept="line-world"] .line-companion {
  --figure-height: 150px;
  position: absolute;
  left: 0;
  top: 0;
  width: 230px;
  height: 230px;
  z-index: 7;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  transform: translate(-50%, -100%);
  will-change: transform;
}
[data-concept="line-world"] .line-companion.is-sally { --figure-height: 72px; width: 210px; height: 200px; }
.line-companion canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.line-companion .companion-render { visibility: hidden; }
.line-companion .companion-fallback {
  display: block; position: absolute; bottom: 8px; left: 50%; height: var(--figure-height);
  width: auto; transform: translateX(-50%); object-fit: contain; pointer-events: none;
}
.line-companion .companion-hit {
  position: absolute; display: block; margin: 0; padding: 0; border: 0; border-radius: 42%;
  background: transparent; box-shadow: none; pointer-events: auto; touch-action: none;
  appearance: none; -webkit-appearance: none; cursor: grab; color: inherit;
  outline: none; -webkit-tap-highlight-color: transparent;
}
.line-companion .companion-hit:focus,
.line-companion .companion-hit:focus-visible { outline: none; }
[data-concept="line-world"] .line-companion.is-held { z-index: 20; }
.line-companion.is-held .companion-hit { cursor: grabbing; }
.companion-shadow {
  position: absolute; height: 7px; border-radius: 50%; background: #4d643630;
  filter: blur(2px); pointer-events: none; z-index: 5; transform: translateX(-50%);
}
.companion-shadow.is-sally { height: 5px; }
.companion-announcement {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
@media(max-width:760px) {
  [data-concept="line-world"] .line-companion { --figure-height: 90px; width: 155px; height: 165px; }
  [data-concept="line-world"] .line-companion.is-sally { --figure-height: 46px; width: 145px; height: 145px; }
}
@media(prefers-reduced-motion:reduce) {
  [data-concept="line-world"] .line-companion { will-change: auto; }
}
