
@keyframes grid-pan-0b559339 {
0% {
        background-position: 0 0;
}
100% {
        background-position: 92px 92px;
}
}
.animate-grid-pan[data-v-0b559339] {
    animation: grid-pan-0b559339 50s linear infinite;
}
@keyframes shimmer-0b559339 {
0% {
        transform: translateX(-100%);
}
100% {
        transform: translateX(300%);
}
}
.animate-shimmer[data-v-0b559339] {
    animation: shimmer-0b559339 3.5s ease-in-out infinite;
}
@keyframes fade-in-up-0b559339 {
0% {
        opacity: 0;
        transform: translateY(18px);
}
100% {
        opacity: 1;
        transform: translateY(0);
}
}
.animate-fade-in-up[data-v-0b559339] {
    animation: fade-in-up-0b559339 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Ambient floating glow orbs — slow, gentle drift for depth across the page */
@keyframes float-slow-0b559339 {
0%,
    100% {
        transform: translate(0, 0) scale(1);
}
50% {
        transform: translate(30px, -40px) scale(1.1);
}
}
.animate-float-slow[data-v-0b559339] {
    animation: float-slow-0b559339 14s ease-in-out infinite;
}
@keyframes float-slow-reverse-0b559339 {
0%,
    100% {
        transform: translate(0, 0) scale(1);
}
50% {
        transform: translate(-25px, 35px) scale(1.08);
}
}
.animate-float-slow-reverse[data-v-0b559339] {
    animation: float-slow-reverse-0b559339 16s ease-in-out infinite;
}
@keyframes float-medium-0b559339 {
0%,
    100% {
        transform: translate(0, 0);
        opacity: 0.6;
}
50% {
        transform: translate(20px, 20px);
        opacity: 1;
}
}
.animate-float-medium[data-v-0b559339] {
    animation: float-medium-0b559339 9s ease-in-out infinite;
}

/* Drifting light particles — rise slowly and fade in/out */
@keyframes particle-0b559339 {
0% {
        transform: translateY(0) translateX(0);
        opacity: 0;
}
12% {
        opacity: 1;
}
85% {
        opacity: 0.7;
}
100% {
        transform: translateY(-200px) translateX(25px);
        opacity: 0;
}
}
.animate-particle[data-v-0b559339] {
    animation: particle-0b559339 linear infinite;
}
