@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes waBounceIn{0%{opacity:0;transform:scale(.5) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes waPulse{0%{transform:scale(1);opacity:.4}50%{transform:scale(1.3);opacity:.2}to{transform:scale(1.5);opacity:0}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes bounceSoft{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95) translateY(20px)}to{opacity:1;transform:translate(-50%,-50%) scale(1) translateY(0)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-fadeInUp{animation:fadeInUp .4s ease-out forwards}.animate-fadeInDown{animation:fadeInDown .4s ease-out forwards}.animate-fadeInLeft{animation:fadeInLeft .4s ease-out forwards}.animate-fadeInRight{animation:fadeInRight .4s ease-out forwards}.anim-delay-100{animation-delay:.1s}.anim-delay-200{animation-delay:.2s}.anim-delay-300{animation-delay:.3s}.anim-delay-400{animation-delay:.4s}.anim-delay-500{animation-delay:.5s}.anim-delay-600{animation-delay:.6s}.anim-delay-700{animation-delay:.7s}.anim-delay-800{animation-delay:.8s}.anim-delay-900{animation-delay:.9s}.anim-delay-1000{animation-delay:1s}.anim-fill-both{animation-fill-mode:both}.anim-fill-forwards{animation-fill-mode:forwards}.bg-pattern-cross{background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.bg-pattern-zigzag{background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 20.5V18H0v-2h20v-2.5a2.5 2.5 0 0 1 5 0V16h20v2H25v2.5a2.5 2.5 0 0 1-5 0z' fill='%23ffffff' fill-opacity='1' fill-rule='evenodd'/%3E%3C/svg%3E")}.bg-pattern-dots{background-image:radial-gradient(circle at 2px 2px,white 1px,transparent 0);background-size:40px 40px}.animate-scaleIn{animation:scaleIn .3s ease-out forwards}.animate-zoomIn{animation:zoomIn .4s ease-out forwards}.animate-scaleUp{animation:scaleUp .3s ease-out forwards}.animate-slideIn{animation:slideIn .3s ease-out forwards}.animate-slideUp{animation:slideUp .4s ease-out forwards}.animate-slideInLeft{animation:slideInLeft .5s ease-out forwards}.animate-slideInRight{animation:slideInRight .5s ease-out forwards}.animate-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 2s infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-bounce{animation:bounce 2s infinite}.animate-bounce-soft{animation:bounceSoft 2s infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-wiggle{animation:wiggle .3s ease-in-out}@keyframes nfFloatParticle{0%,to{transform:translateY(0) scale(1);opacity:.2}50%{transform:translateY(-30px) scale(1.5);opacity:.5}}@keyframes nfWobble{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(10deg) scale(1.1)}75%{transform:rotate(-10deg) scale(1.1)}}@keyframes nfPulseGlow{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.2);opacity:0}}@keyframes nfCountdownPop{0%{transform:scale(1.5)}to{transform:scale(1)}}.animate-nfFloatParticle{animation:nfFloatParticle 3s ease-in-out infinite}.animate-nfWobble{animation:nfWobble 2s ease-in-out infinite}.animate-nfPulseGlow{animation:nfPulseGlow 2s ease-in-out infinite}.animate-nfCountdownPop{animation:nfCountdownPop .3s ease-out forwards}.animate-fill-both{animation-fill-mode:both}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-400{animation-delay:.4s}.animation-delay-500{animation-delay:.5s}.animation-delay-600{animation-delay:.6s}.animation-delay-700{animation-delay:.7s}.animation-delay-800{animation-delay:.8s}.animation-delay-900{animation-delay:.9s}.animation-delay-1000{animation-delay:1s}.hover-scale{transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.05)}.tap-scale:active{transform:scale(.95)}.interactive-scale{transition:transform .2s ease-out}.interactive-scale:hover{transform:scale(1.05)}.interactive-scale:active{transform:scale(.95)}.service-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.service-card:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.property-card-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.property-card-hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.loading-spinner{border:3px solid rgba(0,0,0,.1);border-block-start-color:#3b82f6;border-radius:50%;inline-size:3rem;block-size:3rem;animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@media(max-width:768px){.animate-fadeIn,.animate-fadeInUp,.animate-fadeInDown,.animate-fadeInLeft,.animate-fadeInRight,.animate-slideIn,.animate-scaleIn{animation-duration:.3s}}@media(hover:none)and (pointer:coarse){.hover-scale:hover,.interactive-scale:hover{transform:none}}@keyframes floating{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(5deg)}}.animate-floating{animation:floating 4s ease-in-out infinite}.card-hidden{opacity:0;transform:translateY(20px)}.card-visible{opacity:1;transform:translateY(0);transition:opacity .4s ease-out,transform .4s ease-out}@keyframes floatParticle{0%,to{transform:translateY(0) scale(1);opacity:.1}50%{transform:translateY(-30px) scale(1.5);opacity:.3}}.animate-floatParticle{animation:floatParticle 3s ease-in-out infinite}
