@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); body { font-family: 'Poppins', sans-serif; background-color: #0f1010; } .card-hover { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .card-hover:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(255, 0, 0, 0.1); } .category-btn { position: relative; overflow: hidden; background: rgba(17, 17, 17, 0.7); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.4s ease; } .category-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 135deg, #ef4444 0%, #dc2626 50%, #b91c1c 100% ); transition: all 0.6s ease; z-index: -1; } .category-btn:hover::before { left: 0; } .category-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3); border-color: rgba(239, 68, 68, 0.5); color: white; } .category-btn.active { background: linear-gradient(135deg, #ef4444 0%, #dc2626 50%, #b91c1c 100%); color: white; box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3); border: none; transform: translateY(-3px); } .category-btn.active:hover { transform: translateY(-4px); box-shadow: 0 15px 25px rgba(239, 68, 68, 0.4); } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); } 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); } } .category-btn.active { animation: pulse 2s infinite; } .category-pill { position: relative; overflow: hidden; z-index: 1; } .category-pill::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, #cc1616 0%, #a30d0d 100%); z-index: -1; transition: transform 0.3s ease; transform: translateY(100%); } .category-pill:hover::before { transform: translateY(0); } .product-label { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); } .image-shine { position: relative; overflow: hidden; } .image-shine::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient( to right, transparent 0%, rgba(255, 255, 255, 0.1) 50%, transparent 100% ); transform: skewX(-25deg); transition: all 0.75s; } .card-hover:hover .image-shine::after { left: 100%; } .glass-card { background: rgba(17, 17, 17, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .glass-card:hover { transform: translateY(-8px); border-color: rgba(239, 68, 68, 0.5); box-shadow: 0 10px 40px rgba(239, 68, 68, 0.2); } .like-button.active { animation: likeEffect 0.4s ease; } .price-tag { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); } .sale-badge { background: linear-gradient(135deg, #059669 0%, #047857 100%); } @keyframes likeEffect { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } } .hover-trigger .hover-target { transition: all 0.3s ease; opacity: 0; transform: translateY(10px); } .hover-trigger:hover .hover-target { opacity: 1; transform: translateY(0); } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .action-btn { position: relative; overflow: hidden; padding: 0.85rem 2rem; border-radius: 1rem; font-weight: 600; letter-spacing: 0.8px; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; gap: 0.75rem; } .action-btn::before, .action-btn::after { content: ''; position: absolute; inset: 0; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .action-btn::before { background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.3), transparent ); width: 50%; left: -100%; transform: skewX(-25deg); } .action-btn::after { background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.1), transparent ); width: 100%; left: -100%; transform: skewX(-15deg); } .action-btn:hover::before { left: 150%; } .action-btn:hover::after { left: 100%; } .action-btn:hover { transform: translateY(-5px); letter-spacing: 1.5px; } .action-btn:active { transform: translateY(-2px); } .buy-btn { background: linear-gradient(135deg, rgba(239, 68, 68, 0.9) 0%, rgba(220, 38, 38, 0.9) 50%, rgba(185, 28, 28, 0.9) 100% ); box-shadow: 0 4px 15px rgba(239, 68, 68, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.1); } .buy-btn:hover { box-shadow: 0 8px 25px rgba(239, 68, 68, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.2), 0 0 0 20px rgba(239, 68, 68, 0.1); } .qc-btn { background: linear-gradient(135deg, rgba(185, 28, 28, 0.9) 0%, rgba(153, 27, 27, 0.9) 50%, rgba(127, 29, 29, 0.9) 100% ); box-shadow: 0 4px 15px rgba(185, 28, 28, 0.3), inset 0 0 0 1px rgba(255, 255, 255, 0.1); } .qc-btn:hover { box-shadow: 0 8px 25px rgba(185, 28, 28, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.2), 0 0 0 20px rgba(185, 28, 28, 0.1); } .action-btn i { font-size: 1.25rem; flex-shrink: 0; } .action-btn:focus { animation: buttonPulse 1.5s infinite; } @keyframes buttonPulse { 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); } 70% { box-shadow: 0 0 0 15px rgba(239, 68, 68, 0); } 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); } } .btn-content { display: flex; align-items: center; justify-content: center; width: 100%; min-width: 120px; } @keyframes fadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .animate-fadeIn { animation: fadeIn 0.5s ease-out; } @keyframes modalPulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideIn { from { transform: translateY(20px); } to { transform: translateY(0); } } .modal-animation { animation: fadeIn 0.3s ease-out, slideIn 0.3s ease-out; } .shine-effect { position: relative; overflow: hidden; } .shine-effect::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( to right, transparent, rgba(255, 255, 255, 0.1), transparent ); transform: rotate(45deg); animation: shine 3s infinite; } @keyframes shine { 0% { transform: translateX(-100%) rotate(45deg); } 100% { transform: translateX(100%) rotate(45deg); } } @keyframes modalFadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes modalContentIn { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } } #welcomeModal { transition: opacity 500ms ease-out; } #modalContent { transition: all 500ms cubic-bezier(0.4, 0, 0.2, 1); will-change: transform, opacity; } .modal-open { animation: modalFadeIn 500ms cubic-bezier(0.4, 0, 0.2, 1); } .modal-content-open { animation: modalContentIn 500ms cubic-bezier(0.4, 0, 0.2, 1); } .modal-close-btn { transition: all 300ms ease; } .modal-close-btn:hover { transform: scale(1.1); background-color: rgb(239 68 68 / 1); box-shadow: 0 0 20px rgba(239, 68, 68, 0.5); } #qrButton { backdrop-filter: blur(4px); border: 1px solid rgba(255, 255, 255, 0.1); transform: translateY(0); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } #qrButton:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(239, 68, 68, 0.3); } #qrButton::before { content: ''; position: absolute; inset: -4px; background: linear-gradient(45deg, #ef4444, #dc2626, #b91c1c); filter: blur(10px); opacity: 0; transition: opacity 0.3s ease; border-radius: inherit; z-index: -1; } #qrButton:hover::before { opacity: 0.7; }