        /* Smooth theme transition */
        * {
            transition: background-color 0.5s ease, border-color 0.5s ease, color 0.5s ease, fill 0.5s ease, stroke 0.5s ease, box-shadow 0.5s ease;
        }

        /* Prevent transitions from interfering with specific animations */
        .blob, .animate-ping, .animate-spin, .reveal, .btn-shine::after {
            transition: transform 0.8s ease-out, opacity 0.8s ease-out !important;
        }

        ::-webkit-scrollbar { width: 4px; }
        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
        .dark ::-webkit-scrollbar-thumb { background: #1e293b; }

        .contact-input:focus {
            border-color: #22d3ee !important;
            box-shadow: 0 0 0 4px rgba(34, 211, 238, 0.1);
        }
        .error-msg {
            display: none;
            color: #ef4444;
            font-size: 10px;
            font-weight: 700;
            margin-top: 4px;
            text-transform: uppercase;
        }
        .input-group.error-active .error-msg {
            display: block;
        }
        
        .btn-shine {
            position: relative;
            overflow: hidden;
        }
        .btn-shine::after {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
            transform: rotate(45deg);
            transition: all 0.5s ease !important;
        }
        .btn-shine:hover::after {
            left: 100%;
        }

        .reveal {
            opacity: 0;
            transform: translateY(20px);
        }
        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .blob-container {
            position: fixed;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: -1;
        }
        .blob {
            position: absolute;
            width: 500px;
            height: 500px;
            background: radial-gradient(circle, rgba(34, 211, 238, 0.1) 0%, transparent 70%);
            border-radius: 50%;
            filter: blur(40px);
            animation: move 20s infinite alternate;
        }

        @keyframes move {
            from { transform: translate(0, 0); }
            to { transform: translate(100px, 100px); }
        }