.byte-assistant{position:fixed;z-index:50;right:1rem;bottom:.4rem;width:clamp(120px,12vw,190px);touch-action:none;filter:drop-shadow(0 18px 20px #12052788);transition:transform .25s ease}.byte-body{display:block;position:relative;width:100%;border:0;background:transparent;cursor:grab}.byte-body:active{cursor:grabbing}.byte-body img{display:block;width:100%;height:auto}.byte-bubble{position:absolute;right:82%;top:12%;width:190px;padding:.65rem .8rem;border:2px solid #27124c;border-radius:16px 16px 3px;background:#fff;color:#24123e;font:700 .85rem/1.25 'Atkinson Hyperlegible',sans-serif;box-shadow:5px 6px 0 #f7cf32}.byte-minimize{position:absolute;z-index:2;right:0;top:10%;width:28px;height:28px;border:2px solid #fff;border-radius:50%;background:#29134d;color:#fff}.byte-assistant.is-minimized{transform:translateY(72%)}.byte-assistant.is-minimized .byte-bubble{display:none}
@media(max-width:700px){.byte-assistant{width:115px}.byte-bubble{display:none}}@media(prefers-reduced-motion:reduce){.byte-assistant{transition:none!important}.light-orbit{animation:none!important}}

/* Byte acompaña sin cubrir el contenido, incluso con escalado de Windows. */
.byte-assistant{width:clamp(76px,7vw,112px);right:.65rem;bottom:.35rem}
.byte-bubble{right:88%;top:8%;width:154px;padding:.5rem .6rem;font-size:.74rem;border-width:1.5px;box-shadow:3px 4px 0 #f7cf32}
.byte-minimize{width:25px;height:25px;font-size:.8rem}
@media(max-width:700px){.byte-assistant{width:72px;right:.35rem}.byte-bubble{display:none}}

/* Halo y respiración sutil de Byte, sin interferir con el arrastre. */
.byte-assistant{z-index:var(--z-assistant)}
.byte-assistant::before{content:"";position:absolute;z-index:-1;left:12%;right:4%;bottom:3%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#f7cf3278 0 9%,#ff7a3348 28%,#8a31c436 48%,transparent 70%);filter:blur(8px);animation:byte-halo 7s cubic-bezier(.37,0,.63,1) infinite alternate;pointer-events:none}
.byte-body img{animation:byte-breathe 5.5s cubic-bezier(.37,0,.63,1) infinite alternate;transform-origin:center bottom}
@keyframes byte-halo{to{transform:scale(1.14);opacity:.72}}
@keyframes byte-breathe{to{transform:translate3d(0,-4px,0) scale(1.012)}}
@media(prefers-reduced-motion:reduce){.byte-assistant::before,.byte-body img{animation:none!important}}

/* v1.1.1 — controles de Byte integrados al sistema redondeado. */
.byte-minimize{box-shadow:0 3px 0 #f7cf32;cursor:pointer}.byte-bubble{border-radius:14px 14px 4px 14px}

/* v1.1.4 — Byte más compacto y globo de texto sobre la cabeza, no al costado. */
.byte-assistant{width:clamp(64px,6vw,96px)}
.byte-bubble{top:auto;left:auto;right:0;bottom:calc(100% + 12px);width:158px;padding:.55rem .7rem;border-radius:16px 16px 4px 16px;box-shadow:0 10px 22px -6px #12052766,3px 4px 0 #f7cf32}
@media(max-width:700px){.byte-assistant{width:64px}}

/* v1.1.5 — relieve: Byte se despega un poco de la pantalla al pasar el cursor. */
.byte-assistant{transition:transform .25s cubic-bezier(.22,1,.36,1),filter .25s ease}
@media(hover:hover) and (pointer:fine){
  .byte-assistant:not(.is-minimized):hover{transform:scale(1.08) translateY(-3px);filter:drop-shadow(0 4px 6px #12052799) drop-shadow(0 28px 26px #120527b0)}
}
@media(prefers-reduced-motion:reduce){.byte-assistant{transition:none!important}}

/* v1.1.7 — en celular, Byte se corre lejos de botones y textos, y un halo más contenido. */
@media(max-width:700px){
  .byte-assistant{width:52px;bottom:1.1rem;right:.5rem;filter:drop-shadow(0 10px 12px #12052777)}
  .byte-assistant::before{filter:blur(6px);opacity:.75}
  .byte-minimize{width:22px;height:22px;font-size:.72rem;top:6%}
}

/* v1.1.8 — Byte más arriba, lejos del borde inferior, en celular y en PC. */
.byte-assistant{bottom:2rem}
@media(max-width:700px){.byte-assistant{bottom:2.75rem}}
