@keyframes smoothSlideUp { 0% { opacity: 0; transform: translateY(30px); } 100% { opacity: 1; transform: translateY(0); } } .slide-up { opacity: 0; animation: smoothSlideUp 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards; will-change: transform, opacity; } /* Smoother landing container transition */ .landing-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgb(15, 15, 15); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 1000; opacity: 1; transform: translateY(0); transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform, opacity; } .landing-container.hide { opacity: 0; transform: translateY(-100%); pointer-events: none; } /* Enhanced copy notification */ .copy-notification { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%) translateY(20px); background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(8px); color: white; padding: 0.5rem 1rem; border-radius: 0.5rem; display: flex; align-items: center; gap: 0.5rem; opacity: 0; font-size: 0.875rem; pointer-events: none; z-index: 50; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform, opacity; } .copy-notification.show { opacity: 1; transform: translateX(-50%) translateY(0); } /* Optimize SVG icon size in notification */ .copy-notification svg { width: 0.875rem; height: 0.875rem; }