/* Motion tokens inherit the design system, with standalone fallbacks. */
.ca-host { position:relative; display:block; isolation:isolate; }
.ca-host .ca-art { display:block; overflow:visible; }
.ca-host .face, .ca-host .fx { display:none; }
.ca-host[data-mood="best"] .face--best, .ca-host[data-mood="best"] .fx--best,
.ca-host[data-mood="good"] .face--good,
.ca-host[data-mood="normal"] .face--normal,
.ca-host[data-mood="sad"] .face--sad, .ca-host[data-mood="sad"] .fx--sad,
.ca-host[data-mood="tired"] .face--tired, .ca-host[data-mood="tired"] .fx--tired { display:inline; }
.ca-host .ca-motion { transform-origin:50% 90%; animation:ca-breathe var(--ca-breathe, 2.9s) ease-in-out infinite; }
.ca-host .ca-action { transform-origin:50% 90%; }
.ca-host .ca-secondary { transform-box:fill-box; transform-origin:50% 90%; }
.ca-host .ca-leaf { animation:ca-leaf var(--ca-secondary, 3.7s) ease-in-out infinite alternate; }
.ca-host .ca-leaf-1 { animation-delay:-1.3s; }
.ca-host .ca-ear { animation:ca-ear var(--ca-ear, 4.3s) ease-in-out infinite; }
.ca-host .ca-ear-right { animation-delay:-1.7s; }
.ca-host .part-tail { transform-box:fill-box; transform-origin:15% 90%; animation:ca-tail var(--ca-tail, 1.7s) ease-in-out infinite alternate; }
.ca-host[data-species="cat"] .part-tail { transform-origin:20% 80%; }
.ca-host .fx--best { animation:ca-shine 1.9s ease-in-out infinite alternate; }
.ca-host .fx--sad, .ca-host .fx--tired { animation:ca-sigh 3.3s ease-in-out infinite alternate; }
.ca-host .ca-eye { transform-box:fill-box; transform-origin:center; }
.ca-host[data-blink="true"] .ca-eye { animation:ca-blink var(--ca-blink-duration, 150ms) var(--ease-out, cubic-bezier(.2,.8,.2,1)) both; }
.ca-host .ca-eye-closed, .ca-host .ca-burst { opacity:0; }
.ca-host[data-blink="true"] .ca-eye-open { opacity:0; }
.ca-host[data-blink="true"] .ca-eye-closed { opacity:1; }
.ca-host[data-style="pixel"] .ca-art { shape-rendering:crispEdges; image-rendering:pixelated; }
.ca-host[data-style="pixel"] .ca-action { transform-box:view-box; transform-origin:16px 29px; }
.ca-host[data-style="pixel"] .ca-motion { animation-name:ca-pixel-breathe; animation-timing-function:steps(1,end); }
.ca-host[data-style="pixel"] .ca-secondary { animation-name:ca-pixel-tip; animation-timing-function:steps(1,end); }
.ca-host[data-style="pixel"] .ca-tip-1 { animation-delay:-1.3s; }
.ca-host[data-style="pixel"] .part-tail { animation-name:ca-pixel-tail; animation-timing-function:steps(1,end); }
.ca-host[data-style="pixel"] .fx { animation-name:ca-pixel-fx; animation-timing-function:steps(1,end); }
.ca-host[data-paused="true"] *, .ca-host[data-paused="true"] .ca-eye { animation-play-state:paused !important; }
.ca-host[data-fallback="true"] * { animation:none !important; }
.ca-host[data-reduced="true"] .ca-motion,
.ca-host[data-reduced="true"] .ca-secondary,
.ca-host[data-reduced="true"] .part-tail,
.ca-host[data-reduced="true"] .fx { animation:none !important; transform:none !important; }
@media (prefers-reduced-motion:reduce) {
  .ca-host .ca-motion, .ca-host .ca-secondary, .ca-host .part-tail, .ca-host .fx { animation:none !important; transform:none !important; }
}
@keyframes ca-breathe { 0%,100% { transform:translateY(var(--ca-droop,0px)) scaleY(1); } 50% { transform:translateY(calc(var(--ca-droop,0px) - var(--ca-lift,2px))) scaleY(var(--ca-stretch,1.012)); } }
@keyframes ca-leaf { from { transform:rotate(calc(0deg - var(--ca-angle,3deg))); } to { transform:rotate(var(--ca-angle,3deg)); } }
@keyframes ca-ear { 0%,65%,100% { transform:rotate(0deg); } 75% { transform:rotate(var(--ca-angle,3deg)); } 85% { transform:rotate(calc(0deg - var(--ca-angle,3deg))); } }
@keyframes ca-tail { from { transform:rotate(calc(0deg - var(--ca-tail-angle,5deg))); } to { transform:rotate(var(--ca-tail-angle,5deg)); } }
@keyframes ca-shine { from { opacity:.35; } to { opacity:1; } }
@keyframes ca-sigh { from { transform:translateY(0px); opacity:.65; } to { transform:translateY(3px); opacity:1; } }
@keyframes ca-blink { 0%,100% { transform:scaleY(1); } 40%,65% { transform:scaleY(.08); } }
@keyframes ca-pixel-breathe { 0%,100% { transform:translateY(var(--ca-pixel-droop,0px)); } 30%,65% { transform:translateY(calc(var(--ca-pixel-droop,0px) - 1px)); } }
@keyframes ca-pixel-tip { 0%,100% { transform:translateY(0px); } 45%,70% { transform:translateY(-1px); } }
@keyframes ca-pixel-tail { from { transform:translateX(0px); } to { transform:translateX(1px); } }
@keyframes ca-pixel-fx { from { opacity:0; } to { opacity:1; } }
