        * { margin: 0; padding: 0; box-sizing: border-box; }
        :root {
            --bg: #ffffff;
            --bg-alt: #f8f8fa;
            --fg: #1b1b1f;
            --fg-soft: #3e3e44;
            --muted: #6b6b72;
            --accent: #ff5f1a;        /* deeper orange */
            --accent-soft: #ff9f4d;
            --accent-glow: rgba(255, 95, 26, 0.2);
            --border: #e8e8ed;
            --border-strong: #d4d4dc;
            --card: #ffffff;
            --card-hover: #f4f4f9;
            --glass: rgba(255, 255, 255, 0.8);
            --glass-border: rgba(0, 0, 0, 0.05);
        }
        body {
            font-family: 'Space Grotesk', sans-serif;
            background: var(--bg);
            color: var(--fg);
            line-height: 1.5;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
            cursor: auto; /* remove custom cursor for cleaner UX, but keep smoothness */
        }
        .font-display { font-family: 'Syne', sans-serif; }

        /* smooth background mesh */
        .bg-mesh {
            position: fixed;
            top: 0; left: 0; width: 100%; height: 100%;
            background-image: radial-gradient(circle at 20% 30%, rgba(255,95,26,0.03) 0%, transparent 30%),
                              radial-gradient(circle at 80% 70%, rgba(255,95,26,0.02) 0%, transparent 35%),
                              linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.5) 100%);
            pointer-events: none;
            z-index: 0;
        }

        /* subtle noise */
        body::after {
            content: ''; position: fixed; inset: 0;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.02'/%3E%3C/svg%3E");
            pointer-events: none; z-index: 9997; opacity: 0.3;
        }

        /* glass header */
        header {
            transition: background 0.3s, backdrop-filter 0.3s, border-color 0.3s;
            border-bottom: 1px solid transparent;
        }
        header.scrolled {
            background: var(--glass) !important;
            backdrop-filter: blur(18px) saturate(1.8);
            border-bottom-color: var(--glass-border);
            box-shadow: 0 4px 25px -8px rgba(0,0,0,0.05);
        }

        /* navigation links */
        .nav-link {
            position: relative;
            color: var(--fg-soft);
            font-weight: 500;
            transition: color 0.2s;
        }
        .nav-link::after {
            content: ''; position: absolute; bottom: -6px; left: 0;
            width: 0; height: 2px;
            background: var(--accent);
            transition: width 0.3s ease;
        }
        .nav-link:hover, .nav-link.active { color: var(--fg); }
        .nav-link:hover::after, .nav-link.active::after { width: 100%; }

        /* primary button — sleek */
        .btn-primary {
            background: var(--accent);
            color: white;
            padding: 1rem 2.5rem;
            font-weight: 600;
            border: none;
            border-radius: 2rem;
            box-shadow: 0 8px 20px -6px var(--accent-glow);
            transition: transform 0.25s, box-shadow 0.25s, background 0.2s;
            display: inline-block;
            text-align: center;
        }
        .btn-primary:hover {
            background: #e64d1a;
            transform: translateY(-3px);
            box-shadow: 0 18px 30px -8px rgba(255, 95, 26, 0.3);
        }

        .btn-secondary {
            background: transparent;
            color: var(--fg);
            padding: 1rem 2.5rem;
            font-weight: 600;
            border: 1px solid var(--border-strong);
            border-radius: 2rem;
            transition: background 0.2s, border-color 0.2s, transform 0.2s;
            display: inline-block;
        }
        .btn-secondary:hover {
            border-color: var(--accent);
            background: rgba(255, 95, 26, 0.02);
            transform: translateY(-3px);
        }

        /* cards — minimal, floating */
        .project-card, .service-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 1.5rem;
            transition: all 0.35s cubic-bezier(0.05, 0.7, 0.2, 1);
            overflow: hidden;
        }
        .project-card:hover, .service-card:hover {
            transform: translateY(-8px);
            border-color: transparent;
            box-shadow: 0 25px 40px -18px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255,95,26,0.2);
        }
        .service-card {
            padding: 2rem;
        }

        /* badge concept */
        .badge-concept {
            background: rgba(255, 95, 26, 0.08);
            color: var(--accent);
            font-size: 0.7rem;
            font-weight: 600;
            padding: 0.2rem 1rem;
            border-radius: 30px;
            border: 1px solid rgba(255,95,26,0.2);
            letter-spacing: 0.3px;
        }

        /* page transitions */
        .page {
            display: none;
            opacity: 0;
            transform: translateY(12px);
            transition: opacity 0.5s ease, transform 0.5s ease;
        }
        .page.active {
            display: block;
            opacity: 1;
            transform: translateY(0);
        }

        /* reveal on scroll */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.7s cubic-bezier(0.2, 0.9, 0.1, 1), transform 0.7s cubic-bezier(0.2, 0.9, 0.1, 1);
        }
        .reveal.revealed {
            opacity: 1;
            transform: translateY(0);
        }
        .delay-1 { transition-delay: 0.1s; }
        .delay-2 { transition-delay: 0.2s; }
        .delay-3 { transition-delay: 0.3s; }
        .delay-4 { transition-delay: 0.4s; }

        /* filter buttons */
        .filter-btn {
            padding: 0.5rem 1.8rem;
            border-radius: 40px;
            font-size: 0.9rem;
            border: 1px solid var(--border);
            background: transparent;
            color: var(--fg-soft);
            transition: all 0.2s;
            cursor: pointer;
        }
        .filter-btn.active, .filter-btn:hover {
            border-color: var(--accent);
            color: var(--accent);
            background: rgba(255,95,26,0.02);
        }

        /* form elements */
        .form-group input, .form-group select, .form-group textarea {
            width: 100%;
            padding: 1rem 1.2rem;
            border: 1px solid var(--border);
            border-radius: 1.2rem;
            background: var(--bg-alt);
            font-family: inherit;
            transition: border 0.2s, box-shadow 0.2s;
        }
        .form-group input:focus, .form-group select:focus, .form-group textarea:focus {
            outline: none;
            border-color: var(--accent);
            box-shadow: 0 0 0 4px rgba(255,95,26,0.08);
        }

        /* mobile menu */
        .mobile-menu {
            position: fixed;
            top: 0; right: -80%;
            width: 80%; max-width: 380px;
            height: 100vh;
            background: rgba(255,255,255,0.97);
            backdrop-filter: blur(20px);
            border-left: 1px solid var(--glass-border);
            z-index: 100;
            transition: right 0.4s cubic-bezier(0.2, 0.9, 0.3, 1);
            padding: 6rem 2rem;
        }
        .mobile-menu.open { right: 0; }
        .menu-overlay {
            position: fixed; inset: 0;
            background: rgba(0,0,0,0.2);
            opacity: 0; visibility: hidden;
            transition: 0.3s; z-index: 90;
        }
        .menu-overlay.open { opacity: 1; visibility: visible; }

        /* particles canvas subtle */
        #particles-canvas {
            position: fixed; top: 0; left: 0;
            width: 100%; height: 100%;
            pointer-events: none;
            z-index: 1;
            opacity: 0.4;
        }

        @media (max-width: 640px) {
            .btn-primary, .btn-secondary { width: 100%; text-align: center; }
        }
        .grecaptcha-badge { visibility: hidden !important; opacity: 0; transition: opacity 0.3s; }
        .contact-active .grecaptcha-badge { visibility: visible !important; opacity: 1; }

                /* Hide reCAPTCHA badge by default */
        .grecaptcha-badge {
            visibility: hidden;
        }
        /* Show reCAPTCHA badge only when contact page is active */
        body.contact-active .grecaptcha-badge {
            visibility: visible;
        }