@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap');
        
        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: #fcfbfa;
            overflow-x: hidden;
        }
        .serif-title {
            font-family: 'Playfair Display', serif;
        }
        .hero-bg {
            background: linear-gradient(rgba(10, 48, 34, 0.85), rgba(10, 48, 34, 0.92)), 
                        url('images/hero.jpg');
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
        }
        .gold-gradient {
            background: linear-gradient(135deg, #dfb15b 0%, #b88e3a 100%);
        }
        .emerald-gradient {
            background: linear-gradient(135deg, #0f4c36 0%, #07291d 100%);
        }

        /* --- Custom Keyframes & Animation Utilities --- */
        @keyframes revealLeft {
            from { opacity: 0; transform: translateX(-50px); }
            to { opacity: 1; transform: translateX(0); }
        }
        @keyframes revealRight {
            from { opacity: 0; transform: translateX(50px); }
            to { opacity: 1; transform: translateX(0); }
        }
        @keyframes revealUp {
            from { opacity: 0; transform: translateY(40px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes revealDown {
            from { opacity: 0; transform: translateY(-40px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @keyframes scaleIn {
            from { opacity: 0; transform: scale(0.92); }
            to { opacity: 1; transform: scale(1); }
        }
        @keyframes pulse-gentle {
            0%, 100% { transform: scale(1); box-shadow: 0 4px 14px rgba(34, 197, 94, 0.4); }
            50% { transform: scale(1.06); box-shadow: 0 4px 25px rgba(34, 197, 94, 0.6); }
        }

        .animate-reveal-left {
            animation: revealLeft 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .animate-reveal-right {
            animation: revealRight 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .animate-reveal-up {
            animation: revealUp 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .animate-reveal-down {
            animation: revealDown 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .animate-scale-in {
            animation: scaleIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }
        .animate-whatsapp {
            animation: pulse-gentle 2s infinite ease-in-out;
        }

        /* Animation delays for staggered item looks */
        .delay-100 { animation-delay: 100ms; }
        .delay-200 { animation-delay: 200ms; }
        .delay-300 { animation-delay: 300ms; }
        .delay-400 { animation-delay: 400ms; }