/* Local play controls; all movement stays inside the character area. */
#aban-panel:not(.open){visibility:hidden;pointer-events:none}
#aban-panel.open{visibility:visible;pointer-events:auto}
#aban-char.expr-busy{animation:none}
#aban-char>svg{display:block;width:104px;height:104px;margin:0 auto}
@media(max-width:767px){#aban-char>svg{width:92px;height:92px}}
@media(max-height:600px){#aban-char>svg{width:60px;height:60px}}
#aban-panel-head,#aban-char,#aban-play,#aban-inputbar{flex-shrink:0}
#aban-play{padding:0 16px 11px;border-bottom:1px solid rgba(219,204,255,.08)}
#aban-play-response{height:22px;line-height:22px;margin:0 0 8px;text-align:center;color:#d5cbe8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.1px}
.aban-play-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#aban-play .aban-play-button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;padding:8px 7px;border:1px solid rgba(208,190,245,.17);border-radius:13px;background:rgba(169,142,225,.065);color:#e3dbf4;font:inherit;font-size:12px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .16s,border-color .16s,transform .16s,opacity .16s}
#aban-play .aban-play-button svg{width:17px;height:17px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
#aban-play .aban-play-feed{color:#efcc82;background:rgba(237,179,63,.055);border-color:rgba(237,179,63,.18)}
#aban-play .aban-play-pet svg{color:#d7a3c9}
#aban-play .aban-play-button:focus-visible{outline:2px solid #d3baff;outline-offset:3px}
#aban-play .aban-play-button:disabled{opacity:.5;cursor:default}
#aban-play .aban-play-button:active:not(:disabled){transform:scale(.97)}
@media(hover:hover){#aban-play .aban-play-button:hover:not(:disabled){background:rgba(169,142,225,.16);border-color:rgba(208,190,245,.38)}#aban-play .aban-play-feed:hover:not(:disabled){background:rgba(237,179,63,.12);border-color:rgba(237,179,63,.4)}}
#aban-char .aban-play-fx{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:visible}
.aban-play-fx>span{position:absolute;left:50%;top:45%;display:block;opacity:0}
#aban-char .aban-play-fx svg{display:block;width:100%;height:100%;animation:none;fill:currentColor;stroke:currentColor;stroke-width:1;stroke-linejoin:round}
.aban-play-fx .aban-fx-star{width:24px;height:24px;color:#ffda8b;filter:drop-shadow(0 0 6px rgba(255,205,112,.65))}
.aban-play-fx .aban-fx-heart-one,.aban-play-fx .aban-fx-heart-two{width:18px;height:18px;color:#f0b1d4;filter:drop-shadow(0 0 6px rgba(240,177,212,.4))}
.aban-play-fx .aban-fx-question{font:bold 25px/1 system-ui,sans-serif;color:#e3d5ff;text-shadow:0 0 12px rgba(173,142,232,.6)}
.aban-play-fx .aban-fx-glow{width:106px;height:106px;top:50%;border-radius:50%;background:radial-gradient(circle,rgba(255,214,143,.28),rgba(255,214,143,0) 70%);transform:translate(-50%,-50%)}
#aban-char.play-feed video{animation:aban-play-nibble 1.8s ease-in-out both}
#aban-char.play-feed .aban-fx-star{animation:aban-play-star 1.8s cubic-bezier(.2,.65,.35,1) both}
#aban-char.play-feed .aban-fx-glow{animation:aban-play-glow 1.8s ease-out both}
#aban-char.play-pet video{animation:aban-play-sway 1.8s ease-in-out both}
#aban-char.play-pet .aban-fx-heart-one{animation:aban-play-heart-left 1.8s ease-out both}
#aban-char.play-pet .aban-fx-heart-two{animation:aban-play-heart-right 1.8s ease-out both}
#aban-char.play-poke video{animation:aban-play-dodge 1.4s ease-in-out both}
#aban-char.play-poke .aban-fx-question{animation:aban-play-question 1.8s ease-out both}
@keyframes aban-play-star{0%{opacity:0;transform:translate(-82px,30px) rotate(-30deg) scale(.6)}15%{opacity:1}55%{opacity:1;transform:translate(-12px,-4px) rotate(10deg) scale(1)}72%,100%{opacity:0;transform:translate(-6px,-5px) rotate(30deg) scale(.15)}}
@keyframes aban-play-glow{0%,35%,100%{opacity:0}58%{opacity:1}80%{opacity:.35}}
@keyframes aban-play-nibble{0%,45%,100%{transform:translateY(0) scale(1)}60%{transform:translateY(-2px) scale(1.025)}78%{transform:translateY(1px) scale(1)}}
@keyframes aban-play-sway{0%,100%{transform:rotate(0)}28%{transform:rotate(-4deg)}56%{transform:rotate(3deg)}80%{transform:rotate(-1deg)}}
@keyframes aban-play-heart-left{0%{opacity:0;transform:translate(-35px,-12px) scale(.5)}25%{opacity:1;transform:translate(-40px,-24px) scale(1)}75%{opacity:.8}100%{opacity:0;transform:translate(-47px,-49px) scale(.8)}}
@keyframes aban-play-heart-right{0%,15%{opacity:0;transform:translate(14px,-7px) scale(.45)}40%{opacity:1;transform:translate(23px,-19px) scale(.85)}80%{opacity:.8}100%{opacity:0;transform:translate(32px,-42px) scale(.65)}}
@keyframes aban-play-dodge{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(8px) rotate(5deg)}42%{transform:translateX(5px) rotate(3deg)}65%{transform:translateX(-2px) rotate(-1deg)}}
@keyframes aban-play-question{0%{opacity:0;transform:translate(-49px,-30px) rotate(-14deg) scale(.5)}20%,65%{opacity:1;transform:translate(-45px,-39px) rotate(-8deg) scale(1)}100%{opacity:0;transform:translate(-43px,-46px) rotate(0) scale(.8)}}
@media(min-width:768px){#aban-panel{bottom:24px;height:min(660px,calc(100vh - 48px));max-height:calc(100vh - 48px);height:min(660px,calc(100dvh - 48px));max-height:calc(100dvh - 48px)}}
@media(max-width:767px){#aban-play{padding:0 12px 9px}#aban-play-response{margin-bottom:6px}.aban-play-buttons{gap:6px}#aban-play .aban-play-button{border-radius:12px}}
@media(max-height:600px){#aban-char{padding:4px 0!important}#aban-char video{width:60px!important;height:60px!important}#aban-char::before{width:70px;height:70px}#aban-play{padding-bottom:6px}#aban-play-response{margin-bottom:4px}#aban-panel{height:calc(100vh - 16px);max-height:calc(100vh - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}#aban-panel-head{padding-top:7px;padding-bottom:7px}}
@media(min-width:768px) and (max-height:600px){#aban-panel{bottom:8px}}
@media(prefers-reduced-motion:reduce){#aban-fab,#aban-char,#aban-fab svg,#aban-char svg,#aban-char .aban-eyes,#aban-fab .aban-fab-spin{animation:none!important}#aban-play .aban-play-button{transition:none}#aban-play .aban-play-button:active:not(:disabled){transform:none}#aban-char.play-feed video,#aban-char.play-pet video,#aban-char.play-poke video,#aban-char .aban-play-fx>span{animation:none!important}#aban-char.play-feed .aban-fx-star,#aban-char.play-pet .aban-fx-heart-one,#aban-char.play-poke .aban-fx-question{opacity:1;transform:translate(-55px,-35px)}}

/* New local-only actions: sad, hug, and a heart. */
#aban-play .aban-play-sad { color:#c6c6e5; border-color:rgba(179,183,231,.2); }
#aban-play .aban-play-hug { color:#eeb8d7; border-color:rgba(236,166,205,.22); }
#aban-play .aban-play-heart { color:#ffc5de; border-color:rgba(250,159,204,.25); }
#aban-char.play-sad video,#aban-char.play-sad>svg { animation:aban-play-sad 1.8s ease-in-out both; }
#aban-char.play-hug video,#aban-char.play-hug>svg { animation:aban-play-hug 1.8s cubic-bezier(.25,.7,.25,1) both; }
#aban-char.play-heart video,#aban-char.play-heart>svg { animation:aban-play-heart 1.8s cubic-bezier(.2,.7,.3,1) both; }
#aban-char.play-sad .aban-fx-tear { animation:aban-play-tear 1.8s ease-in both; }
#aban-char.play-hug .aban-fx-heart-one { animation:aban-play-hug-left 1.8s ease-out both; }
#aban-char.play-hug .aban-fx-heart-two { animation:aban-play-hug-right 1.8s ease-out both; }
#aban-char.play-heart .aban-fx-heart-one { animation:aban-play-heart-left 1.8s ease-out both; }
#aban-char.play-heart .aban-fx-heart-two { animation:aban-play-heart-right 1.8s ease-out both; }
.aban-play-fx .aban-fx-tear { width:16px;height:20px;left:calc(50% + 18px);top:34%;color:#a9c8f4;filter:drop-shadow(0 0 6px rgba(169,200,244,.55)); }
@keyframes aban-play-sad { 0%,100%{transform:translateY(0) rotate(0) scale(1)} 30%,68%{transform:translateY(5px) rotate(-4deg) scale(.97)} }
@keyframes aban-play-hug { 0%,100%{transform:scale(1)} 35%,68%{transform:scale(.93) translateY(2px)} }
@keyframes aban-play-heart { 0%,100%{transform:scale(1)} 35%,65%{transform:translateY(-4px) scale(1.05)} }
@keyframes aban-play-tear { 0%{opacity:0;transform:translate(0,-5px) scale(.7)} 25%{opacity:1} 75%{opacity:.9;transform:translate(2px,17px) scale(.85)} 100%{opacity:0;transform:translate(2px,22px) scale(.7)} }
@keyframes aban-play-hug-left { 0%{opacity:0;transform:translate(-28px,0) scale(.5)} 32%{opacity:.95;transform:translate(-35px,-9px) scale(.95)} 78%{opacity:.85} 100%{opacity:0;transform:translate(-43px,-25px) scale(.65)} }
@keyframes aban-play-hug-right { 0%,12%{opacity:0;transform:translate(12px,2px) scale(.45)} 42%{opacity:.95;transform:translate(22px,-10px) scale(.9)} 78%{opacity:.85} 100%{opacity:0;transform:translate(31px,-25px) scale(.65)} }
@media(prefers-reduced-motion:reduce){
  #aban-char.play-sad video,#aban-char.play-sad>svg,#aban-char.play-hug video,#aban-char.play-hug>svg,#aban-char.play-heart video,#aban-char.play-heart>svg,#aban-char.play-sad .aban-fx-tear,#aban-char.play-hug .aban-play-fx>span,#aban-char.play-heart .aban-play-fx>span{animation:none!important}
  #aban-char.play-sad .aban-fx-tear,#aban-char.play-hug .aban-fx-heart-one,#aban-char.play-hug .aban-fx-heart-two,#aban-char.play-heart .aban-fx-heart-one,#aban-char.play-heart .aban-fx-heart-two{opacity:.8}
}
