/* Original Lives V0.29.9 — 3-second animated reactions over a participant's microphone photo. */
#olV299Tray[hidden],#olV299EmojiButton[hidden]{display:none!important}
.ol-v299-emoji-btn{background:linear-gradient(130deg,#7730b4,#492160)!important;border-color:#cfa4fa!important;white-space:nowrap}
.ol-v299-emoji-btn:focus-visible,.ol-v299-react-target:focus-visible,.ol-v299-emoji-choice:focus-visible{outline:3px solid #ffe2a8;outline-offset:2px}
.ol-v299-react-target{position:absolute;z-index:3;right:6px;top:6px;display:grid;place-items:center;width:28px;height:28px;min-width:28px;min-height:28px;
  padding:0;border-radius:9px;background:rgba(50,18,75,.87);border:1px solid rgba(225,188,255,.8);color:white;
  font-size:14px;line-height:1;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.45);backdrop-filter:blur(5px);touch-action:manipulation}
.ol-v299-react-target:hover{transform:scale(1.09);background:#6f2da1}
.ol-v299-react-target[aria-pressed="true"]{background:#8b45bb;border-color:#ffd18a}
.ol-v299-tray{margin:14px 0 4px;background:linear-gradient(150deg,#32184e,#1a112d);border:1px solid #ad75db;border-radius:17px;
  box-shadow:0 12px 30px rgba(0,0,0,.28);padding:13px;min-width:0}
.ol-v299-tray-header{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:10px;color:#f5e4ff}
.ol-v299-tray-header strong{font-size:14px}
.ol-v299-tray-header small{font-size:12px;color:#ecc5fa}
.ol-v299-tray-close{padding:6px 10px;border-radius:8px;border:1px solid #b98cd9;background:#43235d;color:#f5dfff;cursor:pointer}
.ol-v299-emoji-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px}
.ol-v299-emoji-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;gap:2px;padding:5px 3px;
  background:#25143c;border:1px solid #68498c;border-radius:11px;color:#f9efff;cursor:pointer;transition:background .15s,border-color .15s}
.ol-v299-emoji-choice img{display:block;width:min(100%,59px);height:auto;aspect-ratio:1;object-fit:contain;pointer-events:none}
.ol-v299-emoji-choice span{max-width:100%;font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.ol-v299-emoji-choice:hover{border-color:#e0a8ff;background:#4d2a71}
.ol-v299-emoji-choice:disabled{opacity:.5;cursor:wait}
.ol-v299-feedback{margin:10px 0 0;min-height:16px;font-size:12px;color:#dfbbed}
.ol-v299-feedback[data-error="true"]{color:#ffb8bf}
/* PNG/WebP sits over, not instead of, the uploaded user picture. */
.ol-voice-live-seat .ol-v299-reaction{position:absolute;z-index:8;pointer-events:none;user-select:none;
  width:clamp(100px,78%,210px);height:auto;aspect-ratio:1;object-fit:contain;
  left:50%;top:44%;transform:translate(-50%,-50%) scale(.7);
  filter:drop-shadow(0 3px 13px rgba(200,92,255,.88));
  animation:ol-v299-float 3000ms both cubic-bezier(.21,.83,.3,1);will-change:transform,opacity}
@keyframes ol-v299-float{
  0%{opacity:0;transform:translate(-50%,-43%) scale(.48) rotate(-7deg)}
  12%{opacity:1;transform:translate(-50%,-52%) scale(1.07) rotate(3deg)}
  35%{opacity:1;transform:translate(-50%,-58%) scale(1) rotate(-2deg)}
  75%{opacity:1;transform:translate(-50%,-66%) scale(1.04) rotate(2deg)}
  100%{opacity:0;transform:translate(-50%,-86%) scale(.85) rotate(0deg)}
}
@media(max-width:900px){.ol-v299-emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:600px){.ol-v299-emoji-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .ol-v299-emoji-choice img{max-width:57px}.ol-v299-react-target{top:5px;right:5px;width:25px;height:25px;min-width:25px;min-height:25px;font-size:13px;border-radius:8px}
 .ol-voice-live-seat .ol-v299-reaction{width:82%;top:45%}}
@media(prefers-reduced-motion:reduce){.ol-voice-live-seat .ol-v299-reaction{animation:ol-v299-fade 3000ms linear both;will-change:opacity}}
@keyframes ol-v299-fade{0%{opacity:0}10%,85%{opacity:1}100%{opacity:0}}

/* V0.30.0 · Besos/corazones viajan entre fotos por ENCIMA de la pantalla.
   Overlay de pantalla completa no toca el diseño de los asientos ni sus controles. */
#olV300FlyingLayer{position:fixed;inset:0;width:100vw;height:100dvh;z-index:10000;
  pointer-events:none;overflow:visible;isolation:isolate;contain:layout style}
.ol-v300-flying{position:absolute;left:0;top:0;width:clamp(96px,13vw,164px);height:clamp(96px,13vw,164px);
  pointer-events:none;user-select:none;will-change:transform,opacity;
  filter:drop-shadow(0 0 16px rgba(237,87,255,.92)) drop-shadow(0 4px 18px rgba(6,0,15,.75))}
.ol-v300-flying img{width:100%;height:100%;object-fit:contain;display:block}
.ol-v300-flying-sparkles{position:absolute;left:-8px;right:-8px;bottom:-10px;text-align:center;
  letter-spacing:8px;color:#ffd1fb;font-size:19px;text-shadow:0 0 12px #ff85f5;animation:ol-v300-pulse 700ms ease-in-out infinite alternate}
@keyframes ol-v300-pulse{from{opacity:.65;transform:scale(.88) translateY(5px)}to{opacity:1;transform:scale(1.1) translateY(-6px)}}
.ol-v300-fly-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:5px 0 3px}
.ol-v300-fly-quick{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 13px;border:1px solid #da92eb;border-radius:11px;color:#fff;
  background:linear-gradient(125deg,#7d2b91,#401b67);font-weight:750;cursor:pointer;touch-action:manipulation}
.ol-v300-fly-quick:hover,.ol-v300-fly-quick:focus-visible{background:linear-gradient(125deg,#9f3bc0,#5b278d);outline-offset:3px}
.ol-v300-fly-quick:disabled{opacity:.55;cursor:wait}
.ol-v300-fly-quick span{color:#ffb8dc;font-size:19px}
.ol-v300-fly-hint{margin:4px 0 12px;color:#e8c8f3;font-size:12px}
@media(max-width:600px){.ol-v300-flying{width:112px;height:112px}.ol-v300-fly-quick{flex:1 1 115px;font-size:13px;padding:10px}}
@media(prefers-reduced-motion:reduce){.ol-v300-flying-sparkles{animation:none}}

/* V0.30.1 — Solo el remitente puede mostrar sus expresiones en su foto o avatar. */
.ol-v301-self-heading{margin:14px 0 5px;color:#f6dcff;font-weight:850;font-size:14px}
.ol-v301-self-hint{margin:0 0 11px;color:#d9bee9;font-size:12px;line-height:1.5}
.ol-voice-listeners .ol-voice-profile-action.listener{position:relative;isolation:isolate}
.ol-voice-listeners .ol-v299-reaction{position:absolute;pointer-events:none;user-select:none;z-index:9;
 left:50%;top:40%;width:92%;height:auto;aspect-ratio:1;object-fit:contain;
 filter:drop-shadow(0 2px 9px #bc60f9);
 animation:ol-v299-float 3000ms both cubic-bezier(.21,.83,.3,1)}
.ol-v300-flying.is-hug{filter:drop-shadow(0 0 18px #f481fa) drop-shadow(0 2px 18px #6d3eba)}
@media(prefers-reduced-motion:reduce){.ol-voice-listeners .ol-v299-reaction{animation:ol-v299-fade 3000ms linear both}}

/* V0.30.2: colleague selector shows flying gifts only; own selector shows personal reactions only. */
#olV299Tray[data-mode="companion"] .ol-v301-self-heading,
#olV299Tray[data-mode="companion"] .ol-v301-self-hint,
#olV299Tray[data-mode="companion"] #olV299Choices{display:none!important}
#olV299Tray[data-mode="self"] .ol-v300-fly-buttons,
#olV299Tray[data-mode="self"] .ol-v300-fly-hint{display:none!important}

/* V0.30.4: Render reactions over the whole mic tile, never within the IMG element. */
.ol-voice-live-seat > .ol-v299-reaction{position:absolute!important;z-index:12!important;left:50%!important;top:44%!important;display:block!important;visibility:visible!important;max-width:90%;max-height:85%;object-fit:contain;pointer-events:none}
.ol-voice-listeners .ol-voice-profile-action.listener > .ol-v299-reaction{z-index:12!important;display:block!important;visibility:visible!important}
