/* FAVEL — Animations */
[data-reveal]{opacity:0;transition-property:opacity,transform,filter;transition-timing-function:cubic-bezier(0.25,0.46,0.45,0.94);transition-duration:700ms;will-change:opacity,transform;}
[data-reveal="fade-up"]{transform:translateY(40px);}
[data-reveal="fade-down"]{transform:translateY(-30px);}
[data-reveal="fade-left"]{transform:translateX(-40px);}
[data-reveal="fade-right"]{transform:translateX(40px);}
[data-reveal="scale-up"]{transform:scale(0.9) translateY(20px);}
[data-reveal="blur-in"]{filter:blur(10px);transform:translateY(20px);}
[data-reveal].revealed{opacity:1;transform:translate(0,0) scale(1);filter:none;}
[data-stagger]>*{opacity:0;transform:translateY(30px);transition:opacity 600ms ease,transform 600ms ease;}
[data-stagger].revealed>*:nth-child(1){transition-delay:0ms;opacity:1;transform:none;}
[data-stagger].revealed>*:nth-child(2){transition-delay:100ms;opacity:1;transform:none;}
[data-stagger].revealed>*:nth-child(3){transition-delay:200ms;opacity:1;transform:none;}
[data-stagger].revealed>*:nth-child(4){transition-delay:300ms;opacity:1;transform:none;}
[data-stagger].revealed>*:nth-child(5){transition-delay:400ms;opacity:1;transform:none;}
[data-stagger].revealed>*:nth-child(6){transition-delay:500ms;opacity:1;transform:none;}
@keyframes hero-float{0%,100%{transform:translateY(0px);}50%{transform:translateY(-12px);}}
@keyframes hero-blob-1{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}50%{border-radius:30% 60% 70% 40%/50% 60% 30% 60%;}100%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}}
.hero-float{animation:hero-float 5s ease-in-out infinite;}
@keyframes shimmer-text{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.text-shimmer{background:linear-gradient(270deg,#C084FC,#9333EA,#A855F7,#7C3AED,#C084FC);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer-text 4s ease infinite;}
@keyframes slide-up{from{transform:translateY(100%);opacity:0;}to{transform:translateY(0);opacity:1;}}
@keyframes spin-slow{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.spin-slow{animation:spin-slow 12s linear infinite;}
@keyframes gradient-shift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}
.gradient-animate{background-size:200% 200%;animation:gradient-shift 6s ease infinite;}
.skip-link{position:fixed;top:-100px;left:50%;transform:translateX(-50%);background:var(--purple-600);color:white;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;z-index:99999;transition:top 0.2s ease;}
.skip-link:focus{top:var(--space-4);}
.hover-scale{transition:transform var(--duration-normal) var(--ease-bounce);}
.hover-scale:hover{transform:scale(1.05);}
.appear-1{animation:appear-up 0.6s ease forwards;animation-delay:0.1s;opacity:0;}
.appear-2{animation:appear-up 0.6s ease forwards;animation-delay:0.25s;opacity:0;}
.appear-3{animation:appear-up 0.6s ease forwards;animation-delay:0.4s;opacity:0;}
.appear-4{animation:appear-up 0.6s ease forwards;animation-delay:0.55s;opacity:0;}
.appear-5{animation:appear-fade 0.8s ease forwards;animation-delay:0.7s;opacity:0;}
@keyframes appear-up{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes appear-fade{from{opacity:0;}to{opacity:1;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;}[data-reveal]{opacity:1!important;transform:none!important;filter:none!important;}[data-stagger]>*{opacity:1!important;transform:none!important;}}