:root {
            --gradient-gold: linear-gradient(135deg, #FFC107 0%, #ffe082 55%, #fff8e1 100%);
            --gradient-ink: linear-gradient(160deg, #1a1a1a 0%, #222222 100%);
            --gradient-soft: radial-gradient(60% 60% at 50% 0%, rgba(255, 193, 7, 0.22) 0%, transparent 70%);
            --shadow-soft: 0 2px 8px -2px rgba(0, 0, 0, 0.06), 0 12px 32px -12px rgba(0, 0, 0, 0.12);
            --shadow-lift: 0 8px 20px -6px rgba(0, 0, 0, 0.1), 0 28px 60px -20px rgba(0, 0, 0, 0.22);
            --shadow-glow: 0 0 0 1px rgba(255, 193, 7, 0.45), 0 18px 50px -14px rgba(255, 193, 7, 0.6);
            --transition-smooth: 400ms cubic-bezier(0.22, 1, 0.36, 1);
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 6rem;
        }

        body {
            background-color: #ffffff;
            color: #292929;
            font-family: 'Poppins', ui-sans-serif, system-ui, sans-serif;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        h1,
        h2,
        h3,
        h4 {
            font-family: 'Poppins', ui-sans-serif, system-ui, sans-serif;
            letter-spacing: -0.03em;
        }

        ::selection {
            background: #FFC107;
            color: #1a1a1a;
        }

        /* Custom utilities */
        .text-gradient-gold {
            background: var(--gradient-gold);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        .bg-gradient-gold {
            background-image: var(--gradient-gold);
        }

        .bg-gradient-ink {
            background-image: var(--gradient-ink);
        }

        .bg-gradient-soft {
            background-image: var(--gradient-soft);
        }

        .shadow-soft {
            box-shadow: var(--shadow-soft);
        }

        .shadow-lift {
            box-shadow: var(--shadow-lift);
        }

        .shadow-glow {
            box-shadow: var(--shadow-glow);
        }

        .glass {
            background: rgba(255, 255, 255, 0.62);
            backdrop-filter: blur(18px) saturate(160%);
            border: 1px solid rgba(41, 41, 41, 0.08);
        }

        .glass-dark {
            background: rgba(0, 0, 0, 0.45);
            backdrop-filter: blur(18px) saturate(160%);
            border: 1px solid rgba(255, 255, 255, 0.14);
        }

        .hover-lift {
            transition: transform var(--transition-smooth), box-shadow var(--transition-smooth);
        }

        .hover-lift:hover {
            transform: translateY(-6px);
            box-shadow: var(--shadow-lift);
        }

        .gradient-border {
            position: relative;
        }

        .gradient-border::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            padding: 1px;
            background: var(--gradient-gold);
            -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            -webkit-mask-composite: xor;
            mask-composite: exclude;
            pointer-events: none;
        }

        @keyframes raio-float {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-12px);
            }
        }

        @keyframes raio-pulse-glow {

            0%,
            100% {
                opacity: 0.45;
                transform: scale(1);
            }

            50% {
                opacity: 0.85;
                transform: scale(1.08);
            }
        }

        @keyframes raio-dash {
            to {
                stroke-dashoffset: -240;
            }
        }

        @keyframes raio-fade-in-up {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes raio-drive-along-path {
            0% {
                offset-distance: 0%;
            }

            100% {
                offset-distance: 100%;
            }
        }

        @keyframes raio-draw-path {
            to {
                stroke-dashoffset: 0;
            }
        }

        .animate-float {
            animation: raio-float 6s ease-in-out infinite;
        }

        .animate-pulse-glow {
            animation: raio-pulse-glow 4.5s ease-in-out infinite;
        }

        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.7s ease-out, transform 0.7s ease-out;
        }

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

        /* Scroll progress bar */
        #scroll-progress {
            position: fixed;
            top: 0;
            left: 0;
            height: 3px;
            z-index: 100;
            background: var(--gradient-gold);
            width: 0%;
            transition: width 0.1s linear;
            border-radius: 0 2px 2px 0;
        }

        /* Back to top button */
        #back-to-top {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            z-index: 90;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s ease, transform 0.3s ease;
            transform: translateY(20px);
        }

        #back-to-top.visible {
            opacity: 1;
            pointer-events: auto;
            transform: translateY(0);
        }

        /* SVG path animation */
        .route-path-animated {
            stroke-dasharray: 600;
            stroke-dashoffset: 600;
            animation: raio-draw-path 2.4s ease-in-out forwards;
        }

        .cab-marker {
            offset-path: path("M30 400 C 70 320, 60 250, 120 210 S 210 150, 200 90 S 240 50, 270 40");
            animation: raio-drive-along-path 7s linear infinite;
        }

        @media (prefers-reduced-motion: reduce) {
            html {
                scroll-behavior: auto;
            }

            *,
            *::before,
            *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }