.synerva-mascot{--facing:1;position:fixed;inset:0 auto auto 0;z-index:70;width:68px;height:68px;padding:8px;display:grid;place-items:center;border:0;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation;will-change:transform;-webkit-tap-highlight-color:transparent}
.synerva-mascot:not([data-ready="true"]){visibility:hidden}
.synerva-mascot:focus-visible{outline:3px solid #176f68;outline-offset:2px;border-radius:8px}
.mascot-sprite{display:block;width:52px;height:52px;overflow:visible;transform:scaleX(var(--facing));transform-origin:center;filter:drop-shadow(0 3px 0 rgba(16,40,50,.2));image-rendering:pixelated;pointer-events:none}
.synerva-mascot.is-moving .mascot-sprite{animation:mascot-walk 340ms steps(2,end) infinite}
.synerva-mascot.is-jumping .mascot-sprite{animation:mascot-jump 720ms steps(5,end)}
.synerva-mascot.is-stumbling .mascot-sprite{animation:mascot-stumble 760ms steps(5,end)}
.synerva-mascot.is-spinning .mascot-sprite{animation:mascot-spin 720ms steps(8,end)}
.synerva-mascot.is-waving .mascot-sprite{animation:mascot-wave 680ms steps(4,end)}
.mascot-speech{position:absolute;left:50%;top:-14px;z-index:1;min-width:56px;padding:5px 8px;border:1px solid #0fa3a3;background:#102832;color:#fff;font:600 11px/1.2 'DM Sans',Arial,sans-serif;text-align:center;white-space:nowrap;opacity:0;transform:translate(-50%,4px);transition:opacity 100ms linear,transform 100ms linear;pointer-events:none}
.synerva-mascot.is-talking .mascot-speech{opacity:1;transform:translate(-50%,0)}
.mascot-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes mascot-walk{0%,100%{transform:scaleX(var(--facing)) translateY(0)}50%{transform:scaleX(var(--facing)) translateY(-3px)}}
@keyframes mascot-jump{0%,100%{transform:scaleX(var(--facing)) translateY(0)}28%{transform:scaleX(var(--facing)) translateY(-25px)}55%{transform:scaleX(var(--facing)) translateY(1px)}75%{transform:scaleX(var(--facing)) translateY(-9px)}}
@keyframes mascot-stumble{0%,100%{transform:scaleX(var(--facing)) rotate(0)}25%{transform:scaleX(var(--facing)) rotate(-22deg) translateY(4px)}48%{transform:scaleX(var(--facing)) rotate(18deg) translateY(-3px)}68%{transform:scaleX(var(--facing)) rotate(-8deg)}}
@keyframes mascot-spin{from{transform:scaleX(var(--facing)) rotate(0)}to{transform:scaleX(var(--facing)) rotate(360deg)}}
@keyframes mascot-wave{0%,100%{transform:scaleX(var(--facing)) rotate(0)}30%{transform:scaleX(var(--facing)) rotate(-14deg) translateY(-5px)}60%{transform:scaleX(var(--facing)) rotate(14deg) translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.synerva-mascot,.mascot-speech{transition:none}.synerva-mascot.is-moving .mascot-sprite,.synerva-mascot.is-jumping .mascot-sprite,.synerva-mascot.is-stumbling .mascot-sprite,.synerva-mascot.is-spinning .mascot-sprite,.synerva-mascot.is-waving .mascot-sprite{animation:none}}
