        :root {
            --ease-reveal: cubic-bezier(0.7, 0, 0.3, 1);
        }

        body {
            font-family: "Gilda Display", serif;
            background-color: #EEFABD;
            color: #281C59;
            overflow-x: hidden;
        }

        h1, .accent-font {
            font-family: "Jacques Francois Shadow", serif;
        }

        /* --- ANIMATION ENGINE --- */
        .reveal-up { opacity: 0; transform: translateY(40px); transition: 1.2s var(--ease-reveal); }
        .reveal-down { opacity: 0; transform: translateY(-40px); transition: 1.2s var(--ease-reveal); }
        .reveal-left { opacity: 0; transform: translateX(40px); transition: 1.2s var(--ease-reveal); }
        .reveal-right { opacity: 0; transform: translateX(-40px); transition: 1.2s var(--ease-reveal); }
        
        .active.reveal-up, .active.reveal-down, .active.reveal-left, .active.reveal-right {
            opacity: 1; transform: translate(0, 0);
        }

        /* Image Mask Wipe */
        .mask-wipe {
            position: relative;
            overflow: hidden;
            clip-path: inset(0 100% 0 0);
            transition: clip-path 1.8s var(--ease-reveal);
        }
        .mask-wipe.active {
            clip-path: inset(0 0 0 0);
        }

        /* Ink Reveal Text */
        .ink-text {
            background: linear-gradient(to right, #281C59 50%, rgba(40,28,89,0) 50%);
            background-size: 200% 100%;
            background-position: 100% 0;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            transition: background-position 1.5s var(--ease-reveal);
        }
        .active.ink-text { background-position: 0% 0; }

        /* Grid Line Drawing */
        .line-v { width: 1px; height: 0; background: currentColor; transition: height 1.5s var(--ease-reveal); }
        .line-h { height: 1px; width: 0; background: currentColor; transition: width 1.5s var(--ease-reveal); }
        .active .line-v { height: 100%; }
        .active .line-h { width: 100%; }

        /* Hover Effects */
        .nav-link { position: relative; }
        .nav-link::after {
            content: ''; position: absolute; width: 0; height: 1px; 
            bottom: -2px; left: 0; background: currentColor; transition: 0.4s;
        }
        .nav-link:hover::after { width: 100%; }

        /* Custom Scrollbar */
        ::-webkit-scrollbar { width: 4px; }
        ::-webkit-scrollbar-track { background: #EEFABD; }
        ::-webkit-scrollbar-thumb { background: #281C59; }

        /* Mobile Menu */
        #mobile-menu {
            transition: clip-path 0.8s var(--ease-reveal);
            clip-path: circle(0% at 100% 0%);
        }
        #mobile-menu.open { clip-path: circle(150% at 100% 0%); }

        .service-card:hover img { transform: scale(1.05); }
