/* Original, round hand-drawn Xiaobala artwork with quiet, activity-specific motion. */
.capybara-widget .capybara-character { position: relative; display: block; width: 100%; height: 100%; pointer-events: none; }
.capybara-widget .capybara-raster-image { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; user-select: none; transform-origin: 50% 90%; }
.capybara-widget .capybara-idle-effects { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.capybara-widget .capybara-idle-effects > g { display: none; }
.capybara-widget[data-state="idle"] .capybara-raster-image { animation: capybara-raster-breathe 4.6s ease-in-out infinite; }
.capybara-widget[data-state="singing"] .capybara-raster-image { animation: capybara-raster-sing 2.4s ease-in-out infinite; }
.capybara-widget[data-state="singing"] .capybara-music { display: inline; }
.capybara-widget .capybara-music path { animation: capybara-note-drift 3s ease-in-out infinite; }
.capybara-widget .capybara-note-two { animation-delay: -1.5s; }
.capybara-widget:is([data-state="snacking"], [data-state="eat_question"], [data-state="eat"]) .capybara-raster-image { animation: capybara-raster-nibble .85s ease-in-out infinite; }
.capybara-widget[data-state="reading"] .capybara-raster-image { animation: capybara-raster-read 6s ease-in-out infinite; }
.capybara-widget:is([data-state="pondering"], [data-state="thinking"]) .capybara-raster-image { animation: capybara-raster-ponder 4s ease-in-out infinite; }
.capybara-widget[data-state="pondering"] .capybara-inspiration { display: inline; animation: capybara-idea-appear 6s ease-in-out infinite; }
.capybara-widget[data-state="sleeping"] .capybara-raster-image { animation: capybara-raster-sleep 5.4s ease-in-out infinite; }
.capybara-widget[data-state="sleeping"] .capybara-dream { display: inline; }
.capybara-widget .capybara-dream path { animation: capybara-note-drift 4.8s ease-in-out infinite; }
.capybara-widget .capybara-z-two { animation-delay: -1.6s; }
.capybara-widget .capybara-z-three { animation-delay: -3.2s; }
.capybara-widget[data-state="exercising"] .capybara-raster-image { animation: capybara-raster-workout 1.8s ease-in-out infinite; }
.capybara-widget[data-state="stretching"] .capybara-raster-image { animation: capybara-raster-stretch 4.8s ease-in-out infinite; }
.capybara-widget:is([data-state="happy"], [data-state="yeah"], [data-state="drag_hover"]) .capybara-raster-image { animation: capybara-raster-joy 1.8s ease-in-out infinite; }
.capybara-widget:is([data-state="shy"], [data-state="kiss"]) .capybara-raster-image { animation: capybara-raster-ponder 2.5s ease-in-out infinite; }
.capybara-widget:is([data-state="kiss"], [data-state="shy"]) .capybara-affection { display: inline; animation: capybara-note-drift 2.5s ease-out infinite; }
@keyframes capybara-raster-breathe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01,1.016); } }
@keyframes capybara-raster-sing { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes capybara-raster-nibble { 0%,100% { transform: scale(1); } 48% { transform: scale(1.01,.995); } }
@keyframes capybara-raster-read { 0%,30%,100% { transform: rotate(-1deg); } 60%,80% { transform: rotate(1.5deg) translateY(-1px); } }
@keyframes capybara-raster-ponder { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes capybara-raster-sleep { 0%,100% { transform: scale(1,.985); } 50% { transform: scale(1.02,1.015); } }
@keyframes capybara-raster-workout { 0%,100% { transform: translateY(1px) scale(1,.99); } 50% { transform: translateY(-4px) scale(1,1.01); } }
@keyframes capybara-raster-stretch { 0%,100% { transform: rotate(-3deg) scale(1); } 40%,65% { transform: rotate(3deg) scale(.99,1.035); } }
@keyframes capybara-raster-joy { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-4px) rotate(-2deg); } 65% { transform: translateY(-2px) rotate(2deg); } }
@keyframes capybara-note-drift { 0% { opacity: 0; transform: translateY(4px); } 30%,65% { opacity: .9; } 100% { opacity: 0; transform: translateY(-8px); } }
@keyframes capybara-idea-appear { 0%,20%,100% { opacity: 0; } 45%,80% { opacity: 1; } }
.capybara-widget.capybara-paused *, .capybara-paused .capybara-widget * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { .capybara-widget, .capybara-widget * { animation: none !important; transition: none !important; } }

/* Apply the warm base tone to idle and fallback artwork; activity calibrations override it. */
.capybara-widget :is(.capybara-raster-image, .capybara-sprite) { filter: url("#capybara-palette-idle"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/singing.webp"] { filter: url("#capybara-palette-singing"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/snacking.webp"] { filter: url("#capybara-palette-snacking"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/reading.webp"] { filter: url("#capybara-palette-reading"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/pondering.webp"] { filter: url("#capybara-palette-pondering"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/sleeping.webp"] { filter: url("#capybara-palette-sleeping"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/exercising.webp"] { filter: url("#capybara-palette-exercising"); }
.capybara-widget .capybara-raster-image[src*="/idle-actions-v2/stretching.webp"] { filter: url("#capybara-palette-stretching"); }
/* These assets are already matched to the reference, including the eyes and blush. */
.capybara-widget :is(.capybara-raster-image, .capybara-sprite)[src*="/idle-actions-v3/"] { filter: none; }

/* The entire image is one continuous surface; its joints never become separate pieces. */
.capybara-motion-canvas, .capybara-smooth-overlay { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
.capybara-motion-canvas { opacity: 0; }
.has-smooth-motion .capybara-motion-canvas { opacity: 1; }
.has-smooth-motion .capybara-raster-image { opacity: 0; animation: none !important; }
.capybara-smooth-overlay { overflow: visible; }
.capybara-page-turn { opacity: 0; transform-box: view-box; }
.capybara-widget[data-state="reading"] .has-smooth-motion .capybara-page-turn { animation: capybara-turn-leaf 4.8s ease-in-out infinite; }
@keyframes capybara-turn-leaf {
  0%,38%,100% { opacity: 0; transform: scaleX(1) translateY(0); }
  42% { opacity: 1; transform: scaleX(1) translateY(0); }
  54% { opacity: 1; transform: scaleX(.08) translateY(0); }
  67% { opacity: 1; transform: scaleX(-1) translateY(0); }
  73% { opacity: 0; transform: scaleX(-1) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .capybara-motion-canvas, .capybara-smooth-overlay { display: none; }
  .has-smooth-motion .capybara-raster-image { opacity: 1; }
}
