/* Identity colours and UI surfaces use Eklavya's semantic tokens. */
eklavya-mascot { display:inline-flex; flex-shrink:0; vertical-align:middle; line-height:0; }
.ek-mascot { display:block; overflow:visible; flex-shrink:0; }
.ek-mascot[data-variant="face"] { overflow:hidden; }
.ek-mascot__face path:not([fill]) { fill:none; }
.ek-mascot--loading .ek-mascot__character { animation:ek-breathe 2.8s ease-in-out infinite; transform-origin:95px 185px; }
.ek-mascot--loading .ek-mascot__arrow { animation:ek-release 2.8s cubic-bezier(.3,0,.3,1) infinite; }
.ek-mascot--loading .ek-mascot__string { animation:ek-draw 2.8s ease-in-out infinite; transform-origin:157px 125px; }
.ek-mascot--loading .ek-mascot__ripple { animation:ek-hit 2.8s ease-out infinite; transform-origin:196px 128px; opacity:0; }
@keyframes ek-breathe { 0%,100% {transform:translateY(0)} 35%,55% {transform:translateY(-3px) rotate(-1deg)} }
@keyframes ek-release { 0%,12% {transform:translateX(0);opacity:1} 40%,52% {transform:translateX(-10px);opacity:1} 68% {transform:translateX(22px);opacity:0} 69%,85% {transform:translateX(0);opacity:0} 100% {transform:translateX(0);opacity:1} }
@keyframes ek-draw { 0%,100% {transform:scaleX(1)} 40%,52% {transform:scaleX(1.11)} 60% {transform:scaleX(.08)} 68% {transform:scaleX(1)} }
@keyframes ek-hit { 0%,60%,100% {opacity:0;transform:scale(.4)} 68% {opacity:.8;transform:scale(.7)} 88% {opacity:0;transform:scale(1.7)} }
.ek-companion { display:flex;align-items:center;gap:12px;color:var(--dim);font:13px/1.5 var(--font-body); }
.ek-companion--hero { margin-bottom:16px; }
.ek-companion--hero b { display:block;color:var(--ink);font-weight:600; }
.ek-mascot-message { display:flex;align-items:center;gap:16px;padding:16px 0; }
.ek-mascot-message p {margin:0}
@media (prefers-reduced-motion:reduce) { .ek-mascot * {animation:none !important;transition:none !important} }

.ek-companion--rail { padding:12px 20px; text-decoration:none; }
.ek-mascot-message > :last-child { min-width:0; overflow-wrap:break-word; }
.ek-mascot-status { display:inline-flex; align-items:center; gap:6px; }
