.bbm-clip {
  position: fixed; right: max(24px, env(safe-area-inset-right));
  bottom: max(104px, calc(env(safe-area-inset-bottom) + 96px)); z-index: 39;
  width: min(354px, calc(100vw - 32px)); pointer-events: none;
  color-scheme: light; color: #262313; font: 13px/1.45 Tahoma, Arial, sans-serif;
  letter-spacing: 0; text-shadow: none;
}
.bbm-clip [hidden], .bbm-clip[hidden] { display: none !important; }
.bbm-clip button { cursor: pointer; font: inherit; letter-spacing: 0; }
.bbm-clip button:focus-visible { outline: 2px solid #242311; outline-offset: 3px; }
.bbm-clip button:disabled { opacity: .55; cursor: default; }
.bbm-clip-panel { position: relative; padding: 0 55px 0 0; }
.bbm-clip-bubble {
  position: relative; border: 1px solid #2d2c1a; border-radius: 15px 15px 3px 15px;
  background: linear-gradient(140deg, #fffde0, #f0e8a5); padding: 13px 15px 14px;
  box-shadow: 3px 4px 0 #0007, inset 0 0 0 2px #ffffff70; pointer-events: auto;
}
.bbm-clip-bubble::after {
  content: ''; position: absolute; right: -12px; bottom: 42px; width: 21px; height: 17px;
  border-right: 1px solid #2d2c1a; border-bottom: 1px solid #2d2c1a;
  background: #f1e9ab; transform: skew(35deg) rotate(-23deg); z-index: -1;
}
.bbm-clip-head { display: flex; gap: 8px; align-items: start; justify-content: space-between; font: 700 11px/1.2 'Courier New', monospace; }
.bbm-clip-head small { display: block; margin-top: 4px; font-size: 8px; font-weight: 400; letter-spacing: .09em; color: #5b552d; }
.bbm-clip .bbm-clip-dismiss {
  border: 1px solid #a9a17a; border-radius: 3px; width: 30px; height: 30px; min-width: 30px;
  margin: -4px -5px 0 0; padding: 0; color: #3b341d; background: #fff4bb; font: 22px/1 Arial, sans-serif;
}
.bbm-clip-chapter { font: 10px/1.4 'Courier New', monospace; color: #645e35; margin: 12px 0 7px; overflow-wrap: anywhere; }
.bbm-clip-line { margin: 0 0 13px; min-height: 56px; overflow-wrap: anywhere; }
.bbm-clip-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.bbm-clip-actions button {
  min-height: 39px; padding: 6px 7px; border: 1px solid; border-color: #fff #797349 #797349 #fff;
  border-radius: 4px; background: #fffbdc; color: #202014; box-shadow: 1px 1px 0 #69643d; font-size: 11px;
}
.bbm-clip-actions button:hover { background: #fffadb; }
.bbm-clip-actions button:active { border-color: #797349 #fff #fff #797349; box-shadow: none; transform: translate(1px, 1px); }
.bbm-clip-actions .bbm-clip-next { grid-column: 1 / -1; background: #f7df73; color: #202014; font-weight: 700; border-color: #fff9dc #8c7a2f #8c7a2f #fff9dc; }
.bbm-clip-actions .bbm-clip-next:hover { background: #ffe99a; }
.bbm-clip-avatar { position: absolute; right: -3px; bottom: 12px; width: 86px; height: 131px; transform-origin: 50% 90%; filter: drop-shadow(2px 3px 1px #0008); }
.bbm-clip-avatar svg { display: block; width: 100%; height: 100%; overflow: visible; }
.bbm-clip-body { transform-origin: 58px 158px; animation: bbm-clip-breathe 3.8s ease-in-out infinite; }
.bbm-clip-eye { transform-box: fill-box; transform-origin: center; animation: bbm-clip-blink 5.2s infinite; }
.bbm-clip-eye-right { animation-delay: .09s; }
.bbm-clip-pupil { transform-box: fill-box; animation: bbm-clip-look 7.7s ease-in-out infinite; }
.bbm-clip-brow { transform-box: fill-box; transform-origin: center; }
.bbm-clip-brow-left { animation: bbm-clip-brow 4s ease-in-out infinite; }
.bbm-clip-spark { opacity: 0; }
.bbm-clip[data-mood='thinking'] .bbm-clip-body { animation: bbm-clip-tilt 1.8s ease-in-out infinite; }
.bbm-clip[data-mood='thinking'] .bbm-clip-pupil { animation: none; transform: translate(-3px, -4px); }
.bbm-clip[data-mood='panic'] .bbm-clip-body { animation: bbm-clip-shake .16s linear infinite; }
.bbm-clip[data-mood='panic'] .bbm-clip-eye { animation: none; transform: scale(1.09); }
.bbm-clip[data-mood='panic'] .bbm-clip-pupil { animation: bbm-clip-panic-eyes .24s linear infinite; }
.bbm-clip[data-mood='panic'] .bbm-clip-mouth { transform: translateY(5px) scaleY(-1); transform-origin: center; transform-box: fill-box; }
.bbm-clip[data-mood='proud'] .bbm-clip-body { animation: bbm-clip-bounce .65s ease-in-out 3; }
.bbm-clip[data-mood='proud'] .bbm-clip-spark { opacity: 1; animation: bbm-clip-spark .9s ease-in-out infinite; }
.bbm-clip[data-mood='possessed'] .bbm-clip-body { animation: bbm-clip-levitate 1.4s ease-in-out infinite; }
.bbm-clip[data-mood='possessed'] .bbm-clip-eye { animation-duration: 1.8s; }
.bbm-clip[data-mood='possessed'] .bbm-clip-pupil { animation: bbm-clip-ritual-eyes .85s steps(2, end) infinite; }
.bbm-clip[data-mood='possessed'][data-frantic='2'] .bbm-clip-pupil { animation-duration: .5s; }
.bbm-clip[data-mood='possessed'][data-frantic='3'] .bbm-clip-pupil { animation-duration: .26s; }
.bbm-clip[data-mood='possessed'] .bbm-clip-spark { opacity: 1; stroke: #9b7438; }
.bbm-clip[data-mood='possessed'] .bbm-clip-brow-right { transform: rotate(-18deg) translateY(-5px); }
.bbm-clip[data-mood='calm'] .bbm-clip-body { animation-duration: 7s; }
.bbm-clip[data-mood='calm'] .bbm-clip-pupil { animation: none; transform: translateY(-2px); }
.bbm-clip[data-mood='calm'] .bbm-clip-brow-left { animation: none; }
.bbm-clip[data-mood='uneasy'] .bbm-clip-brow-right { transform: rotate(-23deg) translateY(-5px); }
.bbm-clip[data-mood='split'] .bbm-clip-eye-left { scale: 1.12; }
.bbm-clip[data-mood='split'] .bbm-clip-eye-right { scale: .86; }
.bbm-clip[data-mood='frayed'] .bbm-clip-eye { scale: 1.25; }
.bbm-clip[data-mood='frayed'] .bbm-clip-brow-right { transform: rotate(-27deg) translateY(-8px); }
.bbm-clip[data-mood='pleading'] .bbm-clip-eye { scale: 1.16; }
.bbm-clip[data-mood='pleading'] .bbm-clip-brow-left { transform: rotate(15deg); animation: none; }
.bbm-clip[data-mood='ritual'] .bbm-clip-pupil { animation: none; transform: translate(-2px, -4px); }
.bbm-clip[data-mood='ritual'] .bbm-clip-eye { scale: 1.17; }
.bbm-clip.is-breaking-down .bbm-clip-eye { scale: 1.48; }
.bbm-clip.is-breaking-down .bbm-clip-body { animation: bbm-clip-shake .12s linear infinite; }

/* These three-second performances never accept pointer events. A moving
   report immediately releases when a visitor points at or focuses it. */
.bbm-clip-stage {
  position: fixed; inset: 0; z-index: 43; overflow: hidden; pointer-events: none;
  contain: layout paint style; color: #2c2716; font: 700 11px/1.3 'Courier New', monospace;
}
.bbm-clip-stage *, .bbm-clip-stage *::before, .bbm-clip-stage *::after { pointer-events: none !important; }
.bbm-clip-puppet { position: absolute; width: 78px; height: 119px; filter: drop-shadow(2px 3px 1px #0007); }
.bbm-clip-puppet svg { display: block; width: 100%; height: 100%; overflow: visible; }
.bbm-clip-prop-line {
  position: absolute; left: 50%; bottom: 100%; min-width: 92px; max-width: 146px;
  padding: 6px 8px; transform: translateX(-50%); background: #fff5b9;
  border: 1px solid #2c2716; border-radius: 7px; box-shadow: 2px 2px #0008;
  white-space: normal; text-align: center; font: 700 10px/1.2 'Courier New', monospace;
}
.bbm-clip-stage-meddle .bbm-clip-puppet { animation: bbm-clip-snatch 3s ease-in-out both; }
.bbm-clip-stage-meddle .bbm-clip-body { animation: none; transform: rotate(-12deg); }
.bbm-clip-stage-meddle .bbm-clip-pupil { animation: none; transform: translate(-4px, 2px); }
.bbm-story-report.bbm-clip-tugged, .bbm-encounter.bbm-clip-tugged { animation: bbm-clip-tug 3s ease-in-out both; }
.bbm-clip-stage-split .bbm-clip-puppet { opacity: .78; animation: bbm-clip-apparition 3s ease-in-out both; }
.bbm-clip-stage-split .bbm-clip-puppet:nth-child(2) { animation-delay: .12s; }
.bbm-clip-stage-split .bbm-clip-puppet:first-child .bbm-clip-prop-line { background: #e6b2a6; transform: translateX(-65%) rotate(-5deg); }
.bbm-clip-stage-split .bbm-clip-puppet:nth-child(2) .bbm-clip-prop-line { background: #cee0b2; transform: translateX(-30%) rotate(5deg); }
.bbm-clip-stage-split .bbm-clip-puppet:nth-child(2) .bbm-clip-body { transform: scaleX(-1); animation: none; }
.bbm-clip-stage-breakdown .bbm-clip-puppet { animation: bbm-clip-scramble 2.8s linear both; }
.bbm-clip-stage-breakdown .bbm-clip-eye { scale: 1.6; animation-duration: .46s; }
.bbm-clip-stage-breakdown .bbm-clip-pupil { animation: bbm-clip-panic-eyes .13s steps(2) infinite; }
.bbm-clip-stage-breakdown .bbm-clip-body { animation: bbm-clip-shake .12s linear infinite; }
.bbm-clip-stage-plead .bbm-clip-puppet { animation: bbm-clip-reach 2.9s ease-in-out both; }
.bbm-clip-stage-plead .bbm-clip-body { animation: none; transform: rotate(-16deg); }
.bbm-clip-stage-plead .bbm-clip-arm { transform: rotate(8deg); transform-origin: 50px 110px; }
.bbm-clip-stage-plead .bbm-clip-eye { scale: 1.28; }
.bbm-clip-stage-summon .bbm-clip-puppet { animation: bbm-clip-summon 3s ease-in-out both; }
.bbm-clip-stage-summon .bbm-clip-body { animation: bbm-clip-shake .1s linear infinite; }
.bbm-clip-stage-summon .bbm-clip-eye { scale: 1.3; }
.bbm-clip-stage-summon .bbm-clip-pupil { animation: bbm-clip-ritual-eyes .18s steps(2) infinite; }
.bbm-clip-letter { position: absolute; font: 700 17px/1 Georgia, serif; color: #f7e7a1; text-shadow: 0 0 8px #f3da65; animation: bbm-clip-letter 2.2s ease-out both; animation-delay: var(--bbm-letter-delay, 0ms); }
@keyframes bbm-clip-snatch {
  0%, 100% { translate: var(--bbm-clip-from-x, 0px) var(--bbm-clip-from-y, 0px); opacity: 0; }
  24%, 35% { translate: 0 0; opacity: 1; }
  48% { translate: calc(var(--bbm-clip-pull-x, 0px) + 4px) calc(var(--bbm-clip-pull-y, 0px) - 3px); opacity: 1; }
  56% { translate: calc(var(--bbm-clip-pull-x, 0px) - 3px) calc(var(--bbm-clip-pull-y, 0px) + 2px); }
  66% { translate: var(--bbm-clip-pull-x, 0px) var(--bbm-clip-pull-y, 0px); }
  78% { translate: 0 0; opacity: 1; }
}
@keyframes bbm-clip-tug {
  0%, 35%, 78%, 100% { translate: 0 0; }
  48% { translate: calc(var(--bbm-clip-pull-x, 0px) + 4px) calc(var(--bbm-clip-pull-y, 0px) - 3px); }
  56% { translate: calc(var(--bbm-clip-pull-x, 0px) - 3px) calc(var(--bbm-clip-pull-y, 0px) + 2px); }
  66% { translate: var(--bbm-clip-pull-x, 0px) var(--bbm-clip-pull-y, 0px); }
}
@keyframes bbm-clip-apparition { 0%, 100% { opacity: 0; translate: 0 12px; } 18%, 78% { opacity: .88; translate: 0 0; } 43% { translate: -5px -5px; } 56% { translate: 6px 2px; } }
@keyframes bbm-clip-scramble { 0%, 100% { translate: 0 0; rotate: -4deg; opacity: 0; } 12% { translate: 23px -18px; rotate: 28deg; opacity: 1; } 27% { translate: -25px 4px; rotate: -32deg; } 42% { translate: 30px 12px; rotate: 44deg; } 58% { translate: -12px -35px; rotate: -18deg; } 73% { translate: 29px -4px; rotate: 31deg; } 88% { translate: 0 0; rotate: -5deg; opacity: 1; } }
@keyframes bbm-clip-reach { 0%, 100% { opacity: 0; translate: 20px 10px; } 20%, 76% { opacity: 1; translate: 0 0; } 42%, 65% { translate: -9px 8px; rotate: -9deg; } }
@keyframes bbm-clip-summon { 0%, 100% { opacity: 0; translate: 0 0; } 12% { opacity: 1; } 45% { translate: 0 -42px; rotate: -12deg; } 58% { translate: 4px -36px; rotate: 12deg; } 77% { translate: -3px -25px; rotate: -4deg; opacity: 1; } }
@keyframes bbm-clip-letter { 0% { opacity: 0; translate: 0 0; } 15% { opacity: 1; } 85% { opacity: .7; } 100% { opacity: 0; translate: var(--bbm-letter-x, 0px) -130px; rotate: 45deg; } }
.bbm-clip-wake {
  float: right; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 13px;
  border: 1px solid #baaa76; border-radius: 22px; color: #202014; background: #fff2b9;
  box-shadow: 0 3px 12px #0007; pointer-events: auto; font: 11px/1.3 'Courier New', monospace !important;
}
.bbm-clip-wake > span:first-child { font: 28px/.7 Georgia, serif; transform: rotate(-25deg); }
.bbm-clip-wake-dot { width: 5px; height: 5px; border-radius: 50%; background: #756117; }
.bbm-clip.has-news .bbm-clip-wake-dot { animation: bbm-clip-news .8s ease-in-out 2; }
@keyframes bbm-clip-breathe { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes bbm-clip-blink { 0%, 43%, 47%, 100% { transform: scaleY(1); } 45% { transform: scaleY(.06); } }
@keyframes bbm-clip-look { 0%, 20%, 100% { transform: none; } 25%, 42% { transform: translate(-4px, -2px); } 50%, 65% { transform: translate(3px, 2px); } }
@keyframes bbm-clip-brow { 0%, 62%, 100% { transform: none; } 70%, 85% { transform: rotate(-15deg) translateY(-3px); } }
@keyframes bbm-clip-tilt { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(-17deg) translateY(-3px); } }
@keyframes bbm-clip-shake { 0%, 100% { transform: rotate(-5deg) translateX(-1px); } 50% { transform: rotate(6deg) translateX(2px); } }
@keyframes bbm-clip-panic-eyes { 0%, 100% { transform: translate(-2px, -3px); } 50% { transform: translate(3px, 2px); } }
@keyframes bbm-clip-bounce { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-14px) rotate(4deg); } }
@keyframes bbm-clip-spark { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes bbm-clip-levitate { 0%, 100% { transform: rotate(-5deg) translateY(-4px); } 50% { transform: rotate(5deg) translateY(-14px); } }
@keyframes bbm-clip-ritual-eyes { 0%, 100% { transform: translate(-4px, -3px); } 33% { transform: translate(4px, 1px); } 66% { transform: translate(-1px, 4px); } }
@keyframes bbm-clip-news { 0%, 100% { box-shadow: 0 0 0 0 #d8bd6d00; } 50% { box-shadow: 0 0 0 5px #d8bd6d44; } }
@media (max-width: 640px) {
  .bbm-clip { right: max(12px, env(safe-area-inset-right)); bottom: max(112px, calc(env(safe-area-inset-bottom) + 105px)); width: min(322px, calc(100vw - 24px)); font-size: 12px; }
  .bbm-clip-panel { padding-right: 39px; }
  .bbm-clip-bubble { padding: 12px; max-height: calc(100svh - 180px); overflow-y: auto; }
  .bbm-clip-avatar { right: -6px; bottom: 47px; width: 69px; height: 105px; }
  .bbm-clip-line { min-height: 0; margin-bottom: 10px; }
  .bbm-clip-chapter { font-size: 9px; }
  .bbm-clip-actions button { min-height: 42px; }
}
@media (max-height: 540px) {
  .bbm-clip-bubble { max-height: calc(100svh - 145px); overflow-y: auto; }
  .bbm-clip-avatar { width: 64px; height: 98px; }
}
@media (prefers-reduced-motion: reduce) {
  .bbm-clip *, .bbm-clip *::before, .bbm-clip *::after { animation: none !important; transition: none !important; }
  .bbm-clip-stage *, .bbm-story-report.bbm-clip-tugged, .bbm-encounter.bbm-clip-tugged { animation: none !important; transition: none !important; }
  .bbm-clip-stage .bbm-clip-puppet { opacity: 1; }
  .bbm-clip-stage .bbm-clip-letter { display: none; }
}
