@keyframes ring-vibration {
    0% { transform: translateY(0) rotate(0deg); }
    15% { transform: translateY(-10px) rotate(-10deg); }
    30% { transform: translateY(0) rotate(10deg); }
    45% { transform: translateY(-10px) rotate(-10deg); }
    60% { transform: translateY(0) rotate(10deg); }
    75% { transform: translateY(-10px) rotate(-10deg); }
    100% { transform: translateY(0) rotate(0deg); }
  }

  .whatsapp-ring {
    animation: ring-vibration 2s ease-in-out infinite;
  }

          @keyframes vibrateUp {
            0% { transform: translateY(0) scale(1); }
            5% { transform: translateY(-1px) translateX(-1px) rotate(-1deg); }
            10% { transform: translateY(-2px) translateX(1px) rotate(1deg); }
            15% { transform: translateY(-3px) translateX(-1px) rotate(0deg); }
            20% { transform: translateY(-4px) translateX(1px) rotate(1deg); }
            25% { transform: translateY(-5px) translateX(-1px) rotate(-1deg); }
            30% { transform: translateY(-6px) translateX(1px) rotate(0deg); }
            35% { transform: translateY(-7px) translateX(-1px) rotate(1deg); }
            40% { transform: translateY(-8px) translateX(1px) rotate(-1deg); }
            45% { transform: translateY(-9px) translateX(-1px) rotate(0deg); }
            50% { transform: translateY(-10px) translateX(0) rotate(1deg); }
            55% { transform: translateY(-9px) translateX(1px) rotate(-1deg); }
            60% { transform: translateY(-8px) translateX(-1px) rotate(0deg); }
            65% { transform: translateY(-7px) translateX(1px) rotate(1deg); }
            70% { transform: translateY(-6px) translateX(-1px) rotate(-1deg); }
            75% { transform: translateY(-5px) translateX(1px) rotate(0deg); }
            80% { transform: translateY(-4px) translateX(-1px) rotate(1deg); }
            85% { transform: translateY(-3px) translateX(1px) rotate(-1deg); }
            90% { transform: translateY(-2px) translateX(-1px) rotate(0deg); }
            95% { transform: translateY(-1px) translateX(1px) rotate(1deg); }
            100% { transform: translateY(0) scale(1); }
        }
        .animate-vibrate-up {
            animation: vibrateUp 2s linear infinite;
            display: inline-block;
        }
    /* Scrollbar Hidden Metric */
    .scrollbar-none::-webkit-scrollbar { display: none; }
    .scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; }

    /* Continuous Icon Vibration Up/Down */
    @keyframes vibrateVertical {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-10px); }
    }
    .animate-vibrate-vertical {
        animation: vibrateVertical 2.5s ease-in-out infinite;
    }

    /* Fast Infinite Loop Marquee Animation */
    @keyframes marqueeFast {
        0% { transform: translateX(0); }
        100% { transform: translateX(-50%); }
    }
    .track-marquee-fast {
        display: flex;
        width: max-content;
        animation: marqueeFast 22s linear infinite;
    }
    .track-marquee-fast:hover {
        animation-play-state: paused;
    }

    /* Scroll/Swipe Animations Base Initial States */
    .reveal-left { opacity: 0; transform: translateX(-60px); transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
    .reveal-right { opacity: 0; transform: translateX(60px); transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
    .reveal-fade { opacity: 0; transform: translateY(30px); transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1); }
    
    /* Active State for Visible Elements */
    .reveal-active { opacity: 1; transform: translateX(0) translateY(0); }
  header{
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99999 !important;
    isolation: isolate;
}

.gradient-primary{
    background: linear-gradient(135deg, #1D0DF3 0%, #1107aa 100%) !important;
}

header *{
    z-index: inherit;
}
@keyframes marquee {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}
.animate-marquee {
    display: flex;
    width: max-content;
    animation: marquee 25s linear infinite;
}
.animate-marquee:hover {
    animation-play-state: paused;
}
    /* Slower Marquee Logic for Global Partnerships */
    .animate-marquee-slow {
        display: flex;
        width: max-content;
        animation: marquee-slow 45s linear infinite;
    }
    @keyframes marquee-slow {
        0% { transform: translate3d(0, 0, 0); }
        100% { transform: translate3d(-50%, 0, 0); }
    }
    
    /* Ambient Zoom for Background Elements */
    .animate-pulse-zoom {
        animation: pulse-zoom 8s ease-in-out infinite;
    }
    @keyframes pulse-zoom {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.05); }
    }

    /* Continuous Vertical Icon Vibration */
    .icon-vibrate-y {
        animation: vibrateY 2s ease-in-out infinite;
    }
    @keyframes vibrateY {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-8px); }
    }

    /* Horizontal Vibrating Vector Control Indicator Arrows (No Backgrounds) */
    .arrow-vibrate-left {
        animation: vibrateLeft 1.2s cubic-bezier(0.25, 1, 0.5, 1) infinite;
    }
    .arrow-vibrate-right {
        animation: vibrateRight 1.2s cubic-bezier(0.25, 1, 0.5, 1) infinite;
    }
    @keyframes vibrateLeft {
        0%, 100% { transform: translateY(-50%) translateX(0); }
        50% { transform: translateY(-50%) translateX(-8px); }
    }
    @keyframes vibrateRight {
        0%, 100% { transform: translateY(-50%) translateX(0); }
        50% { transform: translateY(-50%) translateX(8px); }
    }

    /* Standard Scrollbar Removal Utility */
    .scrollbar-none::-webkit-scrollbar {
        display: none;
    }
    .scrollbar-none {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    /* LIQUID LAYOUT STABILIZERS FOR MOBILE VIEWPORTS */
    @media (max-width: 1023px) {
        .mobile-contain-image {
            height: auto !important;
            min-height: unset !important;
            aspect-ratio: 16 / 10 !important;
        }
        .mobile-contain-image img {
            position: relative !important;
            width: 100% !important;
            height: auto !important;
            object-fit: contain !important;
        }
    }
    /* Slower Marquee Logic for Global Partnerships */
    .animate-marquee-slow {
        display: flex;
        width: max-content;
        animation: marquee-slow 45s linear infinite;
    }
    @keyframes marquee-slow {
        0% { transform: translate3d(0, 0, 0); }
        100% { transform: translate3d(-50%, 0, 0); }
    }
    
    /* Subtle Ambient Ken Burns Zoom for Canada Card Image Backdrop */
    .animate-pulse-zoom {
        animation: pulse-zoom 8s ease-in-out infinite;
    }
    @keyframes pulse-zoom {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.05); }
    }

    /* Directional Vibrating Indicator Arrows (No Backgrounds) */
    .arrow-vibrate-left {
        animation: vibrateLeft 1.2s cubic-bezier(0.25, 1, 0.5, 1) infinite;
    }
    .arrow-vibrate-right {
        animation: vibrateRight 1.2s cubic-bezier(0.25, 1, 0.5, 1) infinite;
    }
    @keyframes vibrateLeft {
        0%, 100% { transform: translateY(-50%) translateX(0); }
        50% { transform: translateY(-50%) translateX(-8px); }
    }
    @keyframes vibrateRight {
        0%, 100% { transform: translateY(-50%) translateX(0); }
        50% { transform: translateY(-50%) translateX(8px); }
    }

    /* Standard Scrollbar Removal Utility */
    .scrollbar-none::-webkit-scrollbar {
        display: none;
    }
    .scrollbar-none {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    /* RESPONSIVE LAYOUT OVERRIDES FOR FIXED BOUNDS & UNINTERRUPTED VIEWS */
    @media (max-width: 1023px) {
        /* Prevents clipping/cropping inside mobile layouts across sliders and cards */
        .mobile-contain-image {
            height: auto !important;
            min-height: unset !important;
            aspect-ratio: 16 / 10 !important;
        }
        .mobile-contain-image img {
            position: relative !important;
            width: 100% !important;
            height: auto !important;
            object-fit: contain !important;
        }
    }
  @keyframes borderBlinkRed {
    0%, 100% { border-color: #dc2626; box-shadow: 0 0 8px rgba(220, 38, 38, 0.6); }
    50% { border-color: transparent; box-shadow: 0 0 0px transparent; }
  }
  .aside-blink-red {
    border: 3px solid #dc2626;
    animation: borderBlinkRed 1.8s infinite ease-in-out;
  }
  @keyframes scrollSlideRight {
    0% { transform: translateX(-60px); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
  }
  @keyframes scrollSlideLeft {
    0% { transform: translateX(60px); opacity: 0; }
    100% { transform: translateX(0); opacity: 1; }
  }
  @keyframes microArrowMove {
    0%, 100% { transform: translateX(0); opacity: 1; }
    50% { transform: translateX(6px); opacity: 0.3; }
  }
  
  /* Class hooks intended for scroll-driven visibility (AOS / Intersection Observer compatible) */
  .scroll-animate-right { animation: scrollSlideRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .scroll-animate-left { animation: scrollSlideLeft 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .btn-arrow-blink { animation: microArrowMove 1.2s infinite ease-in-out; }
	@font-face {
		font-family: 'CameraPlainVariable';
		src: url('https://cdn.gpteng.co/mcp-widgets/v1/fonts/CameraPlainVariable.woff2') format('woff2');
		font-weight: 100 900;
		font-style: normal;
		font-display: swap;
	}
	#lovable-badge {
		--badge-bg: #1b1b1b;
		--badge-text: #c5c1b9;
		--badge-text-hover: #dcdad5;
		--badge-radius: 6px;
		--badge-padding: 8px;
		--badge-gap: 6px;
		--badge-shadow: 
			0 0 0 1px rgba(0, 0, 0, 0.88),
			0 1px 0 0 rgba(0, 0, 0, 0.04),
			0 2px 2px -1px rgba(0, 0, 0, 0.08),
			0 4px 4px -2px rgba(0, 0, 0, 0.08),
			0 8px 8px -4px rgba(0, 0, 0, 0.08),
			0 16px 16px -8px rgba(0, 0, 0, 0.08);
		--badge-transition-duration: 0.2s;
		--badge-transition-easing: cubic-bezier(0.16, 1, 0.32, 1);
		--focus-color: #575ECF;
		--focus-offset: 2px;
		--focus-width: 2px;
		
		position: fixed;
		bottom: 12px;
		right: 12px;
		height: 24px;
		display: flex;
		align-items: center;
		z-index: 1000000;
		background-color: var(--badge-bg);
		color: var(--badge-text);
		border-radius: var(--badge-radius);
		box-shadow: var(--badge-shadow);
		font-size: 12px;
		font-family: CameraPlainVariable, "CameraPlainVariable Fallback", -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
		font-weight: 400 !important;
		text-transform: none !important;
		font-feature-settings: normal !important;
		transform: translateZ(0);
		will-change: transform, opacity;
	}

	#lovable-badge-cta {
		display: flex;
		align-items: center;
		gap: var(--badge-gap);
		padding: 0 var(--badge-padding);
		height: 100%;
		color: inherit;
		text-decoration: none;
		white-space: nowrap;
		border-radius: var(--badge-radius) 0 0 var(--badge-radius);
		transition: 
			background-color var(--badge-transition-duration) ease,
			color var(--badge-transition-duration) ease,
			transform 0.1s ease;
	}

	#lovable-badge-cta:hover {
		background: rgba(255, 255, 255, 0.04);
		color: var(--badge-text-hover);
	}

	#lovable-badge-cta:active {
		transform: scale(0.98);
	}

	#lovable-badge-cta:focus {
		outline: none;
	}

	#lovable-badge-cta:focus-visible {
		outline: var(--focus-width) solid var(--focus-color);
		outline-offset: var(--focus-offset);
		z-index: 1;
	}

	#lovable-badge-text {
		line-height: 1;
	}

	#lovable-badge-divider {
		width: 1px;
		height: 24px;
		background-color: rgba(255, 255, 255, 0.04);
		flex-shrink: 0;
	}

	#lovable-badge-close {
		width: 24px;
		height: 24px;
		min-width: 24px;
		min-height: 24px;
		cursor: pointer;
		background: none;
		border: none;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 0 var(--badge-radius) var(--badge-radius) 0;
		flex-shrink: 0;
		transition: 
			background-color var(--badge-transition-duration) ease,
			transform 0.1s ease;
	}

	#lovable-badge-close:hover {
		background: rgba(255, 255, 255, 0.04);
	}

	#lovable-badge-close:active {
		transform: scale(0.92);
	}

	#lovable-badge-close:focus {
		outline: none;
	}

	#lovable-badge-close:focus-visible {
		outline: var(--focus-width) solid var(--focus-color);
		outline-offset: calc(var(--focus-offset) * -1);
		z-index: 1;
	}

	#lovable-badge-close svg path {
		fill: var(--badge-text);
		transition: fill var(--badge-transition-duration) ease;
	}

	#lovable-badge-close:hover svg path {
		fill: var(--badge-text-hover);
	}

	@media (prefers-reduced-motion: reduce) {
		#lovable-badge-cta,
		#lovable-badge-close,
		#lovable-badge-close svg path {
			transition: none;
		}
		
		#lovable-badge-cta:active,
		#lovable-badge-close:active {
			transform: none;
		}
	}

	@media (prefers-contrast: high) {
		#lovable-badge {
			--badge-bg: #000;
			--badge-text: #fff;
			--badge-text-hover: #fff;
			border: 2px solid currentColor;
		}
		
		#lovable-badge-cta:focus-visible,
		#lovable-badge-close:focus-visible {
			outline-width: 3px;
		}
	}
    .scrollbar-none::-webkit-scrollbar {
        display: none;
    }
    .scrollbar-none {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
/* FLOATING STACK (BELOW TICKER) */
#floating-social-sidebar{
    position: fixed;
    bottom: 80px; /* IMPORTANT: sits above ticker */
    left: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 9990; /* LOWER than ticker */
}

/* TICKER MUST BE ABOVE EVERYTHING */
#ticker-wrapper{
    z-index: 9999 !important;
}

/* FLOAT BOX */
.float-box{
    background:#0f172a;
    padding:10px;
    border-radius:16px;
}

/* BUTTON */
.circle-btn{
    width:46px;
    height:46px;
    border-radius:50%;
    border:none;
    background:#2563eb;
    color:#fff;
    cursor:pointer;
}

/* LANGUAGE MENU */
#lang-menu{
    display:none;
    position:absolute;
    bottom:60px;
    left:0;
    background:#0f172a;
    padding:10px;
    border-radius:10px;
}

/* WHATSAPP */
.whatsapp-btn{
    width:46px;
    height:46px;
    background:#25d366;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
}