/* Smooth scrolling */ html { scroll-behavior: smooth; cursor: url("data:image/svg+xml;utf8,"), auto; } /* Heart cursor for clickable elements */ a, button, input[type="submit"], label { cursor: url("data:image/svg+xml;utf8,"), pointer; } /* Floating animation */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } /* Pulse animation */ @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } /* Falling hearts */ .heart { position: fixed; top: -20px; z-index: 9999; user-select: none; pointer-events: none; animation: fall linear forwards; text-shadow: 0 0 5px rgba(255,255,255,0.5); will-change: transform; } @keyframes fall { to { transform: translateY(100vh); } } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #888; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #555; } /* 3D Perspective for the page */ body { perspective: 1000px; overflow-x: hidden; } /* Animation for sections */ section { opacity: 0; transform: translateY(20px) rotateX(5deg); transition: opacity 0.6s ease-out, transform 0.6s ease-out; transform-style: preserve-3d; } section.show { opacity: 1; transform: translateY(0) rotateX(0); } /* 3D Card Effect for Wedding Details */ #details .grid > div { transform: translateZ(20px); transition: transform 0.5s ease; } #details .grid > div:hover { transform: translateZ(30px) rotateY(5deg); } /* Parallax Effect for Hero */ .hero-section { transform-style: preserve-3d; } .hero-section::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: url('https://static.photos/nature/1200x630/42') center/cover no-repeat fixed; transform: translateZ(-1px) scale(1.02); z-index: -1; } /* 3D Gallery */ #gallery .aspect-square { transform-style: preserve-3d; transition: transform 0.5s ease; position: relative; } #gallery .aspect-square:hover { transform: rotateY(15deg) rotateX(10deg) translateZ(30px); } #gallery .aspect-square img { transform-style: preserve-3d; transition: transform 0.5s ease, box-shadow 0.5s ease; box-shadow: 0 10px 20px rgba(0,0,0,0.1); } #gallery .aspect-square:hover img { transform: translateZ(20px); box-shadow: 0 20px 40px rgba(0,0,0,0.2); } /* Enhanced 3D Effect for Images */ img { transition: transform 0.5s ease, filter 0.5s ease; transform-style: preserve-3d; } img:hover { transform: rotateY(10deg) rotateX(5deg) translateZ(10px); filter: drop-shadow(0 10px 20px rgba(0,0,0,0.2)); } /* Wedding Party section */ #wedding-party .grid > div { background: rgba(255,255,255,0.9); border-radius: 1rem; padding: 2rem; box-shadow: 0 5px 15px rgba(0,0,0,0.05); transition: transform 0.3s ease; } #wedding-party .grid > div:hover { transform: translateY(-5px); } #wedding-party img { transition: transform 0.3s ease, filter 0.3s ease; } #wedding-party img:hover { transform: scale(1.05); filter: brightness(1.05); } /* QR Code section */ #gift { background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); } /* Form input focus effect */ input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1); } /* Countdown styles */ .countdown-container { display: flex; justify-content: center; gap: 1rem; margin-top: 2rem; } .countdown-box { background: white; padding: 1rem; border-radius: 0.5rem; min-width: 5rem; text-align: center; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .countdown-number { font-size: 2rem; font-weight: bold; color: #333; } .countdown-label { font-size: 0.75rem; text-transform: uppercase; color: #666; }