        :root {
            --white: #FFFFFF;
            --charcoal: #1C1C1C;
            --gold: #C9A66B;
            --blush: #F5E9E0;
        }

        body {
            font-family: 'Montserrat', sans-serif;
            background-color: var(--white);
            color: var(--charcoal);
            overflow-x: hidden;
            scroll-behavior: smooth;
        }

        .font-serif { font-family: 'Bodoni Moda', serif; }
        .font-cursive { font-family: 'Birthstone', cursive; }
        .font-body { font-family: 'Lora', serif; }

        /* --- Animations --- */
        @keyframes shimmer {
            0% { background-position: -200% 0; }
            100% { background-position: 200% 0; }
        }
        .shimmer-text {
            background: linear-gradient(90deg, #1c1c1c 0%, #C9A66B 50%, #1c1c1c 100%);
            background-size: 200% auto;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: shimmer 4s infinite linear;
        }

        .loader-screen {
            position: fixed;
            inset: 0;
            background: white;
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: transform 1.2s cubic-bezier(0.8, 0, 0.2, 1);
        }

        .nav-link {
            position: relative;
            padding-bottom: 4px;
        }
        .nav-link::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 1px;
            background: var(--gold);
            transition: width 0.4s ease;
        }
        .nav-link:hover::after { width: 100%; }

        .product-card img {
            transition: transform 1.5s cubic-bezier(0.19, 1, 0.22, 1);
        }
        .product-card:hover img { transform: scale(1.08); }

        .reveal { opacity: 0; transform: translateY(40px); transition: 1s cubic-bezier(0.2, 1, 0.3, 1); }
        .reveal.active { opacity: 1; transform: translateY(0); }

        /* Luxury Scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: var(--blush); }
        ::-webkit-scrollbar-thumb { background: var(--gold); }

        .btn-luxury {
            background: var(--charcoal);
            color: white;
            padding: 16px 40px;
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 3px;
            font-weight: 700;
            transition: all 0.4s;
            border: 1px solid var(--charcoal);
        }
        .btn-luxury:hover { background: transparent; color: var(--charcoal); }

        .hero-bg {
            animation: slowPan 20s infinite alternate;
        }
        @keyframes slowPan {
            from { transform: scale(1); }
            to { transform: scale(1.1); }
        }
    /* Keyframe Animations */
    @keyframes glowIn {
        from { opacity: 0; filter: brightness(0); }
        to { opacity: 1; filter: brightness(1); }
    }
    
    @keyframes splitText {
        0% { letter-spacing: -0.5em; opacity: 0; }
        100% { letter-spacing: normal; opacity: 1; }
    }
    
    @keyframes charReveal {
        0% { opacity: 0; transform: translateY(20px); }
        100% { opacity: 1; transform: translateY(0); }
    }
    
    @keyframes scrollPulse {
        0%, 100% { transform: translateY(0); opacity: 0.5; }
        50% { transform: translateY(10px); opacity: 1; }
    }
    
    @keyframes shimmer {
        0% { background-position: -200% center; }
        100% { background-position: 200% center; }
    }
    
    @keyframes float {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-20px); }
    }
    
    @keyframes slideUp {
        from { transform: translateY(50px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
    }
    
    @keyframes slideLeft {
        from { transform: translateX(-50px); opacity: 0; }
        to { transform: translateX(0); opacity: 1; }
    }
    
    @keyframes slideRight {
        from { transform: translateX(50px); opacity: 0; }
        to { transform: translateX(0); opacity: 1; }
    }
    
    @keyframes countUp {
        from { content: "0"; }
    }
    
    @keyframes drawLine {
        to { stroke-dashoffset: 0; }
    }
    
    @keyframes pulseGlow {
        0%, 100% { box-shadow: 0 0 20px rgba(212, 175, 55, 0.3); }
        50% { box-shadow: 0 0 40px rgba(212, 175, 55, 0.6); }
    }
    
    @keyframes sparkle {
        0% { opacity: 0; transform: scale(0); }
        50% { opacity: 1; transform: scale(1); }
        100% { opacity: 0; transform: scale(0); }
    }
    
    /* Animation Classes */
    .animate-glow-in {
        animation: glowIn 2s ease-out forwards;
    }
    
    .animate-split-text {
        animation: splitText 1.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    
    .char-reveal {
        display: inline-block;
        animation: charReveal 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    
    .animate-scroll-pulse {
        animation: scrollPulse 2s ease-in-out infinite;
    }
    
    .btn-shimmer {
        background: linear-gradient(90deg, #fff 0%, #f4f4f4 25%, #fff 50%, #f4f4f4 75%, #fff 100%);
        background-size: 200% auto;
        animation: shimmer 3s infinite linear;
    }
    
    .btn-border-glow:hover {
        animation: pulseGlow 1.5s infinite;
    }
    
    .reveal-text {
        animation: slideUp 0.8s ease-out forwards;
    }
    
    .slide-text {
        animation: slideLeft 1s ease-out forwards;
    }
    
    .paragraph-reveal {
        animation: slideUp 1.2s ease-out 0.3s forwards;
    }
    
    .slide-up {
        animation: slideUp 0.8s ease-out forwards;
    }
    
    .slide-left {
        animation: slideLeft 0.8s ease-out forwards;
    }
    
    .slide-right {
        animation: slideRight 0.8s ease-out forwards;
    }
    
    .rotate-text {
        animation: slideUp 0.8s ease-out forwards;
        transform-origin: center;
    }
    
    .final-title {
        animation: slideUp 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    
    .final-text {
        animation: slideUp 1.2s cubic-bezier(0.4, 0, 0.2, 1) 0.3s forwards;
    }
    
    .animate-pulse-slow {
        animation: pulseGlow 3s ease-in-out infinite;
    }
    
    .animate-fade-in-delay {
        animation: slideUp 1s ease-out 1s forwards;
        opacity: 0;
    }
    
    /* Delays */
    .delay-1 { animation-delay: 0.1s; }
    .delay-2 { animation-delay: 0.2s; }
    .delay-3 { animation-delay: 0.3s; }
    
    /* Element Styles */
    .line-mask {
        overflow: hidden;
    }
    
    .luxury-btn {
        background: white;
        color: #1a1a1a;
        padding: 1.5rem 3rem;
        font-weight: bold;
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: 0.3em;
        border: none;
        position: relative;
        overflow: hidden;
        transition: all 0.3s ease;
    }
    
    .luxury-btn:hover {
        transform: translateY(-2px);
    }
    
    .btn-sparkle {
        position: absolute;
        width: 20px;
        height: 20px;
        background: radial-gradient(circle, gold 0%, transparent 70%);
        animation: sparkle 1s infinite;
    }
    
    .floating-ornaments .ornament {
        position: absolute;
        width: 100px;
        height: 100px;
        background: radial-gradient(circle, currentColor 0%, transparent 70%);
        opacity: 0.1;
        animation: float 6s ease-in-out infinite;
    }
    
    .ornament.gold { color: gold; animation-delay: 0s; }
    .ornament.blush { color: #F8C8DC; animation-delay: 2s; }
    .ornament.silver { color: silver; animation-delay: 4s; }
    
    .count-up {
        animation: countUp 2s ease-out forwards;
        counter-reset: num var(--num);
    }
    
    .count-up::after {
        content: counter(num);
    }
    
    .hover-3d {
        transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .hover-3d:hover {
        transform: rotateY(10deg) rotateX(5deg) scale(1.05);
    }
    
    .card-float {
        animation: float 4s ease-in-out infinite;
    }
    
    .journey-step {
        opacity: 0;
        transform: translateY(30px);
        transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .journey-step.visible {
        opacity: 1;
        transform: translateY(0);
    }
    
    .step-pulse {
        position: absolute;
        inset: -10px;
        border: 2px solid gold;
        border-radius: 50%;
        animation: pulseGlow 2s infinite;
    }
    
    .signature-draw {
        width: 200px;
        height: 2px;
        background: gold;
        margin: 0 auto;
        stroke-dasharray: 200;
        stroke-dashoffset: 200;
        animation: drawLine 2s ease-out forwards;
    }
