/* Hints stay behind the person, never over the face or chat controls. */
.backstage-context { position:absolute; display:none; pointer-events:none; z-index:1; overflow:visible; }
.backstage-sheet { width:96px; max-width:29%; height:auto; right:0; top:130px; transform:rotate(5deg); opacity:.92; }
.backstage-force { width:103px; max-width:31%; height:auto; left:0; top:145px; }
.chat-home-placeholder .backstage-portrait { z-index:2; }
.chat-home-placeholder .backstage-caption { z-index:3; }
.backstage-steam { z-index:3; }
[data-scene="0"] .backstage-sheet,[data-scene="2"] .backstage-force { display:block; }
.sheet-caret { opacity:0; }
.is-home-target .backstage-context { opacity:.18; transition:opacity 240ms ease; }
@media (prefers-reduced-motion:no-preference) {
  .is-character-awake .backstage-sheet { animation:sheet-arrive 850ms 450ms both cubic-bezier(.22,.65,.23,1); }
  .is-character-awake .sheet-entry { animation:sheet-type 900ms 1.1s both steps(1,end); }
  .is-character-awake .sheet-caret { animation:sheet-blink 900ms 1.1s 3 steps(1,end); }
  .is-character-awake .force-weight { animation:force-lift 2.4s 500ms both cubic-bezier(.22,.65,.23,1),force-hover 4.5s 2.9s 2 ease-in-out; }
  .is-character-awake .force-ripple { animation:force-signal 2.7s 800ms 2 ease-in-out; }
  .is-character-awake .force-shadow { animation:force-shadow 2.4s 500ms both ease-out; }
}
@keyframes sheet-arrive { from {opacity:0;transform:translate(-5px,8px) rotate(1deg)} to {opacity:.92;transform:rotate(5deg)} }
@keyframes sheet-type { from {opacity:0} to {opacity:1} }
@keyframes sheet-blink { 0%,45% {opacity:.8} 46%,100% {opacity:0} }
@keyframes force-lift { from {transform:translateY(25px) rotate(4deg);opacity:.35} to {transform:none;opacity:1} }
@keyframes force-hover { 50% {transform:translateY(-3px)} }
@keyframes force-signal { 0%,100% {opacity:.18} 50% {opacity:.5} }
@keyframes force-shadow { from {opacity:.2} to {opacity:.1} }
@media (max-width:400px) {
  .backstage-sheet { width:85px; max-width:32%; top:128px; right:0; }
  .backstage-force { width:88px; max-width:32%; top:115px; left:-22px; }
}
@media (prefers-reduced-motion:reduce) {
  .backstage-context,.backstage-context * { animation:none !important; transition:none !important; }
}

/* The minimized dock peels into a bubble in direct response to the pointer. */
.chat-minimized-launcher[data-peeling] {
  left:var(--peel-x); top:var(--peel-y); right:auto; bottom:auto;
  width:var(--peel-width); height:var(--peel-height); min-height:0;
  padding:0; gap:0; overflow:hidden; transition:none; transform:none;
  border-radius:var(--peel-radius); cursor:grabbing;
}
.chat-minimized-launcher[data-peeling] img {
  position:absolute; left:var(--peel-avatar-x); top:var(--peel-avatar-y);
  width:var(--peel-avatar-size); height:var(--peel-avatar-size); flex:none;
  margin:0; transform:none; transition:none;
}
.chat-minimized-launcher[data-peeling] span {
  position:absolute; left:var(--peel-label-x); top:var(--peel-label-y);
  opacity:var(--peel-label-opacity); white-space:nowrap; transition:none;
}
