/* Motion — "decantar": confident, fluid, never bouncy.
   Signature easing is expo-out. Reveals pour upward (clip-path), text rises, wine swirls. */
:root{
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */

--ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */

--ease-in:cubic-bezier(.7,0,.84,0); /* @kind other */

--ease-swirl:cubic-bezier(.45,.05,.25,1); /* @kind other */

--dur-instant:100ms; /* @kind other */
--dur-fast:180ms; /* @kind other */
--dur-base:280ms; /* @kind other */
--dur-slow:520ms; /* @kind other */
--dur-reveal:900ms; /* @kind other */
--dur-ambient:14s; /* @kind other */

--stagger:70ms; /* @kind other */

--transition-color:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out); /* @kind other */

--transition-transform:transform var(--dur-base) var(--ease-out); /* @kind other */

}
@keyframes vc-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes vc-fade{from{opacity:0}to{opacity:1}}
@keyframes vc-pour{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes vc-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes vc-swirl{0%{transform:rotate(0)}50%{transform:rotate(6deg) scale(1.02)}100%{transform:rotate(0)}}
@keyframes vc-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes vc-pulse{0%,100%{box-shadow:0 0 0 0 rgba(159,25,89,.45)}50%{box-shadow:0 0 0 8px rgba(159,25,89,0)}}
@keyframes vc-toast-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes vc-dialog-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
