@keyframes mesh-gradient 
{
    0% 
    {
        background-position: 0% 50%;
    }
    50% 
    {
        background-position: 100% 50%;
    }
    100% 
    {
        background-position: 0% 50%;
    }
}
@keyframes grain 
{
    0%,
    100% 
    {
        transform: translate(0, 0);
    }
    10% 
    {
        transform: translate(-5%, -10%);
    }
    20% 
    {
        transform: translate(-15%, 5%);
    }
    30% 
    {
        transform: translate(7%, -25%);
    }
    40% 
    {
        transform: translate(-5%, 25%);
    }
    50% 
    {
        transform: translate(-15%, 10%);
    }
    60% 
    {
        transform: translate(15%, 0%);
    }
    70% 
    {
        transform: translate(0%, 15%);
    }
    80% 
    {
        transform: translate(3%, 35%);
    }
    90% 
    {
        transform: translate(-10%, 10%);
    }
}
@keyframes fade-up 
{
    from 
    {
        opacity: 0;
        transform: translateY(20px);
    }
    to 
    {
        opacity: 1;
        transform: translateY(0);
    }
}
.animate-fade-up 
{
    animation: fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.stagger-1 
{
    animation-delay: 0.1s;
}
.stagger-2 
{
    animation-delay: 0.2s;
}
.stagger-3 
{
    animation-delay: 0.3s;
}
.stagger-4 
{
    animation-delay: 0.4s;
}
.dynamic-phrase 
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    animation: fade-sequence 12s infinite;
}
.dynamic-phrase:nth-child(1) 
{
    animation-delay: 0s;
}
.dynamic-phrase:nth-child(2) 
{
    animation-delay: 4s;
}
.dynamic-phrase:nth-child(3) 
{
    animation-delay: 8s;
}
@keyframes fade-sequence 
{
    0%,
    5% 
    {
        opacity: 0;
        transform: translateY(10px);
    }
    10%,
    30% 
    {
        opacity: 1;
        transform: translateY(0);
    }
    35%,
    100% 
    {
        opacity: 0;
        transform: translateY(-10px);
    }
}