/* Potbi Custom Styles */ /* Smooth scroll behavior */ html { scroll-behavior: smooth; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #0f172a; } ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #475569; } /* Selection color */ ::selection { background: rgba(249, 115, 22, 0.3); color: #fff; } /* Focus styles */ *:focus-visible { outline: 2px solid #f97316; outline-offset: 2px; } /* Animation utilities */ .animate-in { animation: fadeIn 0.6s ease-out forwards; } /* Demo tab transitions */ .demo-content { transition: opacity 0.4s ease, transform 0.4s ease; } .demo-content.active { opacity: 1; transform: translateY(0); } .demo-content.hidden { opacity: 0; transform: translateY(20px); position: absolute; pointer-events: none; } /* Tab button states */ .demo-tab { transition: all 0.3s ease; } .demo-tab.active { background: rgba(30, 41, 59, 0.8); border-color: rgba(249, 115, 22, 0.5); } .demo-tab.active .w-12 { background: rgba(249, 115, 22, 0.2); } .demo-tab.active i { color: #fb923c; } /* Gradient text utility */ .gradient-text { background: linear-gradient(135deg, #f97316 0%, #fb923c 50%, #fdba74 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Glass effect */ .glass { background: rgba(15, 23, 42, 0.8); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } /* Counter animation */ @keyframes countUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .counter-animate { animation: countUp 0.6s ease-out forwards; } /* Hover lift effect */ .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-lift:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } /* Button shine effect */ .btn-shine { position: relative; overflow: hidden; } .btn-shine::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( to right, transparent 0%, rgba(255, 255, 255, 0.1) 50%, transparent 100% ); transform: rotate(30deg) translateX(-100%); transition: transform 0.6s; } .btn-shine:hover::after { transform: rotate(30deg) translateX(100%); } /* Loading skeleton */ .skeleton { background: linear-gradient( 90deg, rgba(30, 41, 59, 0.8) 25%, rgba(51, 65, 85, 0.8) 50%, rgba(30, 41, 59, 0.8) 75% ); background-size: 200% 100%; animation: shimmer 1.5s infinite; } @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } /* Mobile menu animation */ .mobile-menu-enter { animation: slideDown 0.3s ease-out forwards; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Reduced motion */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } html { scroll-behavior: auto; } } /* Print styles */ @media print { .no-print { display: none !important; } }