:root {
            --bg-color: #F8FAFC;
            --surface-color: #FFFFFF;
            --text-main: #020617;
            --text-muted: #64748B;
            --border-color: #E2E8F0;
        }

        html.dark {
            --bg-color: #020617;
            /* Very dark slate, almost black */
            --surface-color: #0F172A;
            --text-main: #F8FAFC;
            --text-muted: #94A3B8;
            --border-color: #1E293B;
        }

        body {
            background-color: var(--bg-color);
            color: var(--text-main);
            transition: background-color 0.5s ease, color 0.5s ease;
            overflow-x: hidden;
            /* Hide default cursor on desktop for custom cursor */
            cursor: none;
        }

        /* Responsive Cursor handling */
        @media (max-width: 768px) {
            body {
                cursor: auto;
            }

            .custom-cursor,
            .cursor-follower {
                display: none !important;
            }

            .header-project-cta {
                display: none !important;
            }
        }

        .custom-cursor {
            position: fixed;
            top: 0;
            left: 0;
            width: 12px;
            height: 12px;
            background-color: white;
            border-radius: 50%;
            pointer-events: none;
            z-index: 9999;
            mix-blend-mode: difference;
            transform: translate(-50%, -50%);
            transition: width 0.3s, height 0.3s, background-color 0.3s;
        }

        .cursor-follower {
            position: fixed;
            top: 0;
            left: 0;
            width: 40px;
            height: 40px;
            border: 1px solid rgba(255, 255, 255, 0.5);
            border-radius: 50%;
            pointer-events: none;
            z-index: 9998;
            mix-blend-mode: difference;
            transform: translate(-50%, -50%);
            transition: width 0.3s, height 0.3s, opacity 0.3s;
        }

        /* Hover states for cursor */
        body.hovering-link .custom-cursor {
            width: 60px;
            height: 60px;
            background-color: white;
        }

        body.hovering-link .cursor-follower {
            opacity: 0;
        }

        .text-outline {
            color: transparent;
            -webkit-text-stroke: 1px var(--text-main);
            opacity: 0.2;
            transition: opacity 0.3s;
        }

        .hero-title-hover:hover .text-outline {
            opacity: 0.8;
            color: var(--text-main);
            -webkit-text-stroke: 0px;
        }

        /* Smooth Reveal Sections */
        .reveal-up {
            opacity: 0;
            transform: translateY(50px);
            transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal-up.visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Magnetic button wrap */
        .magnetic-wrap {
            display: inline-block;
        }

        /* Ensure Tailwind display/visibility utilities override the magnetic wrap display */
        .hidden.magnetic-wrap {
            display: none !important;
        }
        .block.magnetic-wrap {
            display: block;
        }
        .inline-block.magnetic-wrap {
            display: inline-block;
        }
        @media (min-width: 768px) {
            .md\:block.magnetic-wrap {
                display: block !important;
            }
            .md\:hidden.magnetic-wrap {
                display: none !important;
            }
        }
        @media (min-width: 1024px) {
            .lg\:inline-block.magnetic-wrap {
                display: inline-block !important;
            }
            .lg\:hidden.magnetic-wrap {
                display: none !important;
            }
        }

        /* Glass Cards */
        .glass-card {
            background: rgba(255, 255, 255, 0.03);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        html.light .glass-card {
            background: rgba(255, 255, 255, 0.6);
            border: 1px solid rgba(0, 0, 0, 0.05);
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.03);
        }

        /* Glow effects */
        .glow-bg {
            position: absolute;
            width: 600px;
            height: 600px;
            background: radial-gradient(circle, rgba(79, 70, 229, 0.15) 0%, transparent 60%);
            filter: blur(80px);
            z-index: -1;
            border-radius: 50%;
            pointer-events: none;
        }

        /* Background Grid Pattern (Mobile Only) */
        .bg-grid-pattern {
            background-size: 50px 50px;
        }

        @media (max-width: 768px) {
            .bg-grid-pattern {
                background-image: linear-gradient(to right, rgba(0, 0, 0, 0.03) 1px, transparent 1px),
                                  linear-gradient(to bottom, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
            }

            html.dark .bg-grid-pattern {
                background-image: linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
                                  linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
            }
        }

        ::selection {
            background: #4F46E5;
            color: white;
        }
