/* Motion layer: spring-like duration curves, scoped to active interaction only. */
:root { --ease-spring:cubic-bezier(.22,1.18,.36,1); --ease-natural:cubic-bezier(.32,0,.2,1); }
.screen.is-ui-entering > * { animation:ui-component-arrive 620ms var(--ease-spring) both; animation-delay:calc(var(--ui-stagger,0) * 58ms); }
@keyframes ui-component-arrive { 0% { opacity:0; transform:translateY(16px) scale(.975); } 62% { opacity:1; transform:translateY(-2px) scale(1.008); } 100% { opacity:1; transform:none; } }
.app-shell button,.app-shell [role="button"],.app-shell .candidate-card,.app-shell .trip-card,.app-shell .video-card { transition:transform 220ms var(--ease-spring),box-shadow 220ms ease,background-color 220ms ease,filter 220ms ease; }
.app-shell button.ui-press:not(.orbit-nav-item),.app-shell [role="button"].ui-press,.app-shell .candidate-card.ui-press,.app-shell .trip-card.ui-press,.app-shell .video-card.ui-press { animation:ui-press 360ms var(--ease-spring) both; }
@keyframes ui-press { 0% { transform:scale(1); } 42% { transform:scale(.94); } 100% { transform:scale(1); } }
.orbit-nav.is-dragging .orbit-destination.is-orbit-focus .orbit-icon { animation:orbit-focus-breathe 560ms var(--ease-natural) infinite alternate; }
@keyframes orbit-focus-breathe { from { filter:brightness(1); } to { filter:brightness(1.08) saturate(1.14); } }
.assistant-nav-button .nav-cloud-companion.is-chatbot-awake::after { animation:chat-bubble-pop 3.65s var(--ease-spring) both; background:#fffdf9; border:1px solid rgba(243,130,181,.4); border-radius:999px; box-shadow:0 8px 18px rgba(98,114,223,.15); color:#f382b5; content:attr(data-chat-message); font-size:10px; font-weight:900; line-height:25px; max-width:114px; min-width:50px; padding:0 7px; position:absolute; right:-22px; text-align:center; top:-15px; white-space:nowrap; }
/* No circular backing plate: the companion floats as a standalone cloud. */
.assistant-nav-button .nav-cloud-companion.is-chatbot-awake::before { display:none !important; }
@keyframes chat-bubble-pop { 0% { opacity:0; transform:translateY(8px) scale(.4); } 16% { opacity:1; transform:translateY(-2px) scale(1.08); } 82% { opacity:1; transform:translateY(-4px) scale(1); } 100% { opacity:0; transform:translateY(-10px) scale(.9); } }
.assistant-nav-button,.assistant-nav-button .orbit-icon,.assistant-nav-button .nav-cloud-companion,.assistant-nav-button .nav-cloud-float,.assistant-nav-button .nav-cloud-character,.assistant-nav-button .nav-cloud-body,.assistant-nav-button .nav-cloud-face { opacity:1 !important; }
.assistant-nav-button .nav-cloud-body { filter:url("#nav-cloud-remove-green") brightness(1.06) saturate(1.23) contrast(1.12) drop-shadow(0 5px 8px rgba(98,114,223,.19)) !important; }
.assistant-nav-button .nav-cloud-open-eye { animation:chatbot-blink-open 3.2s step-end infinite; }
.assistant-nav-button .nav-cloud-closed-eye { animation:chatbot-blink-closed 3.2s step-end infinite; }
@keyframes chatbot-blink-open { 0%,55%,59%,100% { opacity:1; } 56%,58% { opacity:0; } }
@keyframes chatbot-blink-closed { 0%,55%,59%,100% { opacity:0; } 56%,58% { opacity:1; } }
.cloud-ip-host--card::after,.cloud-ip-host--processing::after,.cloud-ip-host--loading::after { animation-timing-function:var(--ease-natural); }
@media (prefers-reduced-motion:reduce) { .screen.is-ui-entering > *,.app-shell button.ui-press:not(.orbit-nav-item),.app-shell [role="button"].ui-press,.app-shell .candidate-card.ui-press,.app-shell .trip-card.ui-press,.app-shell .video-card.ui-press,.orbit-nav.is-dragging .orbit-destination.is-orbit-focus .orbit-icon,.assistant-nav-button .nav-cloud-companion.is-chatbot-awake::after { animation:none; } }
