@keyframes lift { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes hover-phone { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-11px) rotate(1deg); } }
@keyframes drift { 0%,100% { transform: translate(0,0); } 50% { transform: translate(9px,-14px); } }

.hero-copy > * { animation: lift .7s both; }
.hero-copy > *:nth-child(2) { animation-delay: .08s; }
.hero-copy > *:nth-child(3) { animation-delay: .16s; }
.hero-copy > *:nth-child(4) { animation-delay: .24s; }
.hero-copy > *:nth-child(5) { animation-delay: .32s; }
.phone { animation: hover-phone 6s ease-in-out infinite; }
.orb, .float-card { animation: drift 6s ease-in-out infinite; }
.orb.two, .rating { animation-delay: -3s; }

[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity: 1; transform: none; }
.steps article:nth-child(2) { transition-delay: .12s; }
.steps article:nth-child(3) { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) { *,*:before,*:after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
