 @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght=400;700&family=Inter:wght=300;400;600&display=swap');
        
        :root {
            --accent-color: #ff3366;
            --accent-gradient-1: #6367cc;
            --accent-gradient-2: #ff3366;
            --neon-glow: 0 0 10px #ff3366;
            --neon-text-glow: 0 0 5px #ff3366;
            
            --site-bg: #000000;
            --site-bg-secondary: #0d0d0d;
        }

        body {
            background-color: var(--site-bg) !important;
            color: #ffffff;
            font-family: 'Inter', sans-serif;
            overflow-x: hidden;
            cursor: none; 
            transition: background-color 0.5s ease;
        }

        body, 
        .bg-\[\#000000\], 
        .bg-\[\#050624\], 
        .leaflet-container {
            background-color: var(--site-bg) !important;
            transition: background-color 0.5s ease;
        }

        .bg-\[\#0d0d0d\], 
        .bg-\[\#0a0b2e\] {
            background-color: var(--site-bg-secondary) !important;
            transition: background-color 0.5s ease;
        }

        .to-\[\#000000\], .to-\[\#050624\] {
            --tw-gradient-to: var(--site-bg) var(--tw-gradient-to-position) !important;
        }
        .from-\[\#000000\], .from-\[\#050624\] {
            --tw-gradient-from: var(--site-bg) var(--tw-gradient-from-position) !important;
            --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position) !important;
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
        }
        .to-\[\#0d0d0d\], .to-\[\#1a1b3a\] {
            --tw-gradient-to: var(--site-bg-secondary) var(--tw-gradient-to-position) !important;
        }
        .from-\[\#0d0d0d\] {
            --tw-gradient-from: var(--site-bg-secondary) var(--tw-gradient-from-position) !important;
            --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position) !important;
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
        }

        h1, h2, h3, .title-font {
            font-family: 'Cormorant Garamond', serif;
            text-transform: uppercase;
        }

        .cursor-dot {
            width: 8px;
            height: 8px;
            background-color: var(--accent-color);
            position: fixed;
            top: 0; left: 0;
            transform: translate(-50%, -50%);
            border-radius: 50%;
            z-index: 9999;
            pointer-events: none;
            transition: background-color 0.3s ease;
            box-shadow: var(--neon-glow);
        }
        .cursor-outline {
            width: 40px;
            height: 40px;
            border: 2px solid var(--accent-color);
            opacity: 0.5;
            position: fixed;
            top: 0; left: 0;
            transform: translate(-50%, -50%);
            border-radius: 50%;
            z-index: 9999;
            pointer-events: none;
            transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease, border-color 0.3s ease, opacity 0.2s ease, left 0.08s ease-out, top 0.08s ease-out;
            box-shadow: var(--neon-glow);
        }
        body:hover .cursor-outline.hovered {
            width: 60px;
            height: 60px;
            background-color: var(--accent-color);
            opacity: 0.15;
            border-color: transparent;
        }

        .services-scroll {
            display: flex;
            gap: 1.5rem;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scrollbar-width: none;
            padding-bottom: 1.5rem;
            padding-top: 0.5rem;
            cursor: grab;
            user-select: none;
        }
        .services-scroll:active {
            cursor: grabbing;
        }
        .services-scroll::-webkit-scrollbar {
            display: none;
        }
        .service-card {
            scroll-snap-align: start;
            flex: 0 0 300px;
            height: 400px;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            overflow: hidden;
            border-radius: 1.5rem;
            background: rgba(255, 255, 255, 0.03);
            border: 1px solid rgba(255, 255, 255, 0.12);
        }
        @media (min-width: 768px) {
            .service-card {
                flex: 0 0 380px;
                height: 460px;
            }
        }
        .service-card:hover {
            transform: translateY(-8px) scale(1.02);
            border-color: var(--accent-color);
            box-shadow: 0 20px 40px -10px rgba(255, 51, 102, 0.25);
        }
        .service-card img {
            transition: transform 0.7s ease, filter 0.6s ease, opacity 0.6s ease;
            filter: grayscale(100%) brightness(0.85);
            opacity: 0.7;
        }
        .service-card:hover img {
            transform: scale(1.08);
            filter: grayscale(0%) brightness(1);
            opacity: 1;
        }

        #about-img {
            transition: transform 0.7s ease, filter 0.6s ease, opacity 0.6s ease;
            filter: grayscale(100%) brightness(0.85);
            opacity: 0.8;
        }
        .group:hover #about-img {
            transform: scale(1.05);
            filter: grayscale(0%) brightness(1);
            opacity: 1;
        }

        .comparison-slider {
            position: relative;
            width: 100%;
            max-width: 1200px; 
            margin: 0 auto;
            aspect-ratio: 16/9;
            overflow: hidden;
            border-radius: 1.5rem;
            box-shadow: 0 20px 40px -15px rgba(0,0,0,0.9);
            border: 1px solid rgba(255,255,255,0.1);
        }
        .comparison-slider img {
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            object-fit: cover;
            object-position: top;
            pointer-events: none;
            transition: filter 0.6s ease;
            filter: grayscale(100%) brightness(0.85);
        }
        .comparison-slider:hover img {
            filter: grayscale(0%) brightness(1);
        }
        .slider-overlay {
            clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
        }
        .slider-range {
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            opacity: 0;
            cursor: ew-resize;
            z-index: 10;
        }
        .slider-handle {
            position: absolute;
            top: 0; bottom: 0;
            left: 50%;
            width: 4px;
            background: var(--accent-color);
            transform: translateX(-50%);
            pointer-events: none;
            z-index: 5;
            transition: background 0.3s;
            box-shadow: var(--neon-glow);
        }
        .slider-handle::after {
            content: '↔';
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            width: 40px; height: 40px;
            background: var(--accent-color);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            color: white;
            box-shadow: var(--neon-glow);
            transition: background 0.3s;
        }

        #portfolio-grid .group img {
            transition: transform 0.7s ease, filter 0.6s ease;
            filter: grayscale(100%) brightness(0.85);
        }
        #portfolio-grid .group:hover img {
            transform: scale(1.05);
            filter: grayscale(0%) brightness(1);
        }

        /* Защита галереи от выделения текста/картинок */
        .protected-art {
            -webkit-user-select: none;
            -khtml-user-select: none;
            -moz-user-select: none;
            -o-user-select: none;
            user-select: none;
            -webkit-user-drag: none;
        }

        .leaflet-container {
            background-color: var(--site-bg) !important;
        }
        .leaflet-bar a {
            background-color: #121212 !important;
            color: #fff !important;
            border-color: rgba(255,255,255,0.1) !important;
        }

        .animate-bounce {
            box-shadow: var(--neon-glow) !important;
        }

        #chat-window {
            transform: translateY(20px);
            opacity: 0;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        #chat-window.active {
            transform: translateY(0);
            opacity: 1;
        }

        @keyframes pulse-red {
            0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.8); }
            50% { transform: scale(1.3); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
        }
        .new-message-pulse {
            display: block !important;
            animation: pulse-red 1.5s infinite;
        }

        @media (max-width: 768px) {
            .cursor-dot, .cursor-outline { display: none; }
            body { cursor: auto; }
        }

        html {
            scroll-behavior: smooth;
        }

        .nav-menu {
            transition: all 0.3s ease;
        }
        .nav-menu:has(.nav-link:hover) .nav-link:not(:hover) {
            opacity: 0.25;
            filter: blur(3px) grayscale(100%);
            transform: scale(0.95);
        }

        .nav-link {
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            display: inline-block;
        }

        .nav-link:hover {
            color: var(--accent-color) !important;
            text-shadow: var(--neon-text-glow);
            transform: scale(1.15) translateY(-2px);
        }

        .nav-link .hover-blade {
            position: absolute;
            bottom: -6px;
            left: 50%;
            transform: translateX(-50%);
            width: 0;
            height: 2px;
            background-color: var(--accent-color);
            box-shadow: var(--neon-glow);
            transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
            opacity: 0;
            border-radius: 4px;
        }
        .nav-link:hover .hover-blade {
            width: 120%;
            opacity: 1;
        }