/* Existing Animations... */
.angie-anim-pulse { animation: angie-pulse-58153214 2s infinite; }
@keyframes angie-pulse-58153214 { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.angie-anim-shake:hover { animation: angie-shake-58153214 0.82s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes angie-shake-58153214 { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } }
.angie-anim-wobble:hover { animation: angie-wobble-58153214 1s both; }
@keyframes angie-wobble-58153214 { 0% { transform: none; } 15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } 100% { transform: none; } }
.angie-anim-float { animation: angie-float-58153214 3s ease-in-out infinite; }
@keyframes angie-float-58153214 { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } }
.angie-anim-hover-zoom { transition: transform 0.3s ease; }
.angie-anim-hover-zoom:hover { transform: scale(1.05); }
.angie-anim-glow { animation: angie-glow-58153214 2s infinite alternate; }
@keyframes angie-glow-58153214 { from { text-shadow: 0 0 5px #fff, 0 0 10px #0073e6; box-shadow: 0 0 5px #fff, 0 0 10px #0073e6; } to { text-shadow: 0 0 10px #fff, 0 0 20px #0073e6; box-shadow: 0 0 15px #fff, 0 0 20px #0073e6; } }
.angie-reveal-base, .angie-anim-reveal-up, .angie-anim-reveal-down, .angie-anim-reveal-left, .angie-anim-reveal-right, .angie-anim-reveal-zoom-in, .angie-anim-flip-in-x, .angie-anim-flip-in-y { opacity: 0; transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); }
.angie-anim-reveal-up { transform: translateY(40px); }
.angie-anim-reveal-down { transform: translateY(-40px); }
.angie-anim-reveal-left { transform: translateX(40px); }
.angie-anim-reveal-right { transform: translateX(-40px); }
.angie-anim-reveal-zoom-in { transform: scale(0.8); }
.angie-anim-flip-in-x { transform: perspective(400px) rotateX(90deg); }
.angie-anim-flip-in-y { transform: perspective(400px) rotateY(90deg); }
.angie-anim-reveal-up.is-visible, .angie-anim-reveal-down.is-visible, .angie-anim-reveal-left.is-visible, .angie-anim-reveal-right.is-visible { opacity: 1; transform: translate(0); }
.angie-anim-reveal-zoom-in.is-visible { opacity: 1; transform: scale(1); }
.angie-anim-flip-in-x.is-visible { opacity: 1; transform: perspective(400px) rotateX(0deg); }
.angie-anim-flip-in-y.is-visible { opacity: 1; transform: perspective(400px) rotateY(0deg); }
.angie-anim-text-gradient { background: linear-gradient(270deg, #ff8a00, #e52e71, #9c27b0, #ff8a00); background-size: 400% 400%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: angie-text-grad-58153214 6s ease infinite; display: inline-block; }
@keyframes angie-text-grad-58153214 { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.angie-anim-text-pop { clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%); opacity: 0; transform: translateY(20px); transition: clip-path 0.8s cubic-bezier(0.19, 1, 0.22, 1), transform 0.8s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.8s ease-out; }
.angie-anim-text-pop.is-visible { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); opacity: 1; transform: translateY(0); }
.angie-anim-text-focus:hover { animation: angie-text-focus-58153214 0.5s forwards; }
@keyframes angie-text-focus-58153214 { 0% { filter: blur(4px); opacity: 0; transform: scale(0.95); } 100% { filter: blur(0px); opacity: 1; transform: scale(1); } }
.angie-anim-typewriter { overflow: hidden; border-right: .15em solid orange; white-space: nowrap; margin: 0 auto; letter-spacing: .15em; animation: angie-typing-58153214 3.5s steps(40, end), angie-blink-caret-58153214 .75s step-end infinite; }
@keyframes angie-typing-58153214 { from { width: 0 } to { width: 100% } }
@keyframes angie-blink-caret-58153214 { from, to { border-color: transparent } 50% { border-color: orange; } }

/* --- NEW FRAMER/WEBFLOW STYLE ANIMATIONS --- */

/* 3D Tilt Hover */
.angie-anim-tilt {
    transform-style: preserve-3d;
    transform: perspective(1000px);
}
.angie-anim-tilt-inner {
    transform: translateZ(30px); /* Applied via JS */
}

/* Magnetic Button Hover */
.angie-anim-magnetic {
    transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Smooth Parallax Scroll */
.angie-anim-parallax {
    will-change: transform;
}

/* Infinite Marquee */
.angie-anim-marquee-wrap {
    overflow: hidden;
    white-space: nowrap;
    display: flex;
}
.angie-anim-marquee-content {
    display: flex;
    animation: angie-marquee-58153214 15s linear infinite;
}
@keyframes angie-marquee-58153214 {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Advanced Smooth Reveal (Framer style spring) */
.angie-anim-spring-up {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.angie-anim-spring-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}
