/* Techwind Migrated Styles - Animations & Helpers */ /* Selection */ ::selection { @apply bg-indigo-600/90 text-white; } /* Typography defaults */ p { @apply leading-relaxed; } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { @apply leading-normal; } /* Mover animation */ .mover { animation: mover 1.5s infinite alternate; } @keyframes mover { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } } /* Modal flip animation - espejo */ @keyframes modalFlipIn { 0% { transform: perspective(1000px) rotateY(90deg) scale(0.5); opacity: 0; } 50% { transform: perspective(1000px) rotateY(-10deg) scale(1.05); opacity: 0.8; } 100% { transform: perspective(1000px) rotateY(0deg) scale(1); opacity: 1; } } @keyframes modalFlipOut { 0% { transform: perspective(1000px) rotateY(0deg) scale(1); opacity: 1; } 100% { transform: perspective(1000px) rotateY(90deg) scale(0.5); opacity: 0; } } /* Efecto de brillo tipo espejo */ @keyframes mirrorShine { 0% { background-position: -200% center; } 100% { background-position: 200% center; } } .mirror-shine::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent 0%, rgba(255, 255, 255, 0.1) 45%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0.1) 55%, transparent 100% ); background-size: 200% 100%; animation: mirrorShine 1.5s ease-in-out; pointer-events: none; border-radius: inherit; } /* Smooth scrollbar hide */ .scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; } .scrollbar-hide::-webkit-scrollbar { display: none; } /* Carousel smooth scroll */ .carousel-smooth { scroll-behavior: smooth; -webkit-overflow-scrolling: touch; } /* Background animated circles (hero effects) */ @keyframes animate { 0% { transform: translateY(0) rotate(0deg); opacity: 1; border-radius: 10px; } 100% { transform: translateY(-1000px) rotate(720deg); opacity: 0; } } .background-effect .circles li { @apply absolute block -bottom-[150px] bg-indigo-600/30; animation: animate 25s linear infinite; } .background-effect .circles li:nth-child(1) { @apply size-12 start-1/4; animation-delay: 0s; } .background-effect .circles li:nth-child(2) { @apply size-12 start-[10%]; animation-delay: 2s; animation-duration: 12s; } .background-effect .circles li:nth-child(3) { @apply size-12 start-[70%]; animation-delay: 4s; } .background-effect .circles li:nth-child(4) { @apply size-12 start-[40%]; animation-delay: 0s; animation-duration: 18s; } .background-effect .circles li:nth-child(5) { @apply size-12 start-[65%]; animation-delay: 0s; } .background-effect .circles li:nth-child(6) { @apply size-12 start-3/4; animation-delay: 3s; } .background-effect .circles li:nth-child(7) { @apply size-12 start-[35%]; animation-delay: 7s; } .background-effect .circles li:nth-child(8) { @apply size-12 start-1/2; animation-delay: 15s; animation-duration: 45s; } .background-effect .circles li:nth-child(9) { @apply size-12 start-[20%]; animation-delay: 2s; animation-duration: 35s; } .background-effect .circles li:nth-child(10) { @apply size-12 start-[85%]; animation-delay: 0s; animation-duration: 11s; } /* Kenburn effect for images */ .image-wrap { animation: 100s ppb_kenburns linear infinite alternate; } @keyframes ppb_kenburns { 0% { transform: scale(1.3) translate(-10%, 10%); } 25% { transform: scale(1) translate(0, 0); } 50% { transform: scale(1.3) translate(10%, 10%); } 75% { transform: scale(1) translate(0, 0); } 100% { transform: scale(1.3) translate(-10%, 10%); } } /* Preloader spinner */ @keyframes sk-bounce { 0%, 100% { transform: scale(0.0); } 50% { transform: scale(1.0); } } .spinner .double-bounce1, .spinner .double-bounce2 { @apply w-full h-full rounded-full bg-indigo-600/60 absolute top-0 start-0; animation: sk-bounce 2.0s infinite ease-in-out; } .spinner .double-bounce2 { animation-delay: -1.0s; } /* Dark mode toggle switch */ .label .ball { transition: transform 0.2s linear; @apply translate-x-0; } .checkbox:checked + .label .ball { @apply translate-x-6; } /* Testimonial navigation dots (pagination) */ .tns-nav { @apply text-center mt-3; } .tns-nav button { @apply rounded-[3px] bg-indigo-600/30 duration-500 border-0 m-1 p-[5px]; } .tns-nav button.tns-nav-active { @apply bg-indigo-600 rotate-[45deg]; } /* Smooth infinite scroll slider */ @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-360px * 6)); } } .slider .slide-track { animation: scroll 120s linear infinite; width: calc(360px * 20); }