.gxf,.gxf *,.gxf ::before,.gxf ::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
.gxf{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4}
.gxf h1,.gxf h2,.gxf h3,.gxf h4,.gxf h5,.gxf h6{font-size:inherit;font-weight:inherit;font-family:inherit;color:inherit;line-height:inherit;letter-spacing:inherit;margin:0}
.gxf a{color:inherit;text-decoration:inherit}
.gxf b,.gxf strong{font-weight:bolder}
.gxf button,.gxf input,.gxf optgroup,.gxf select,.gxf textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}
.gxf button,.gxf select{text-transform:none}
.gxf button,.gxf [type=button],.gxf [type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}
.gxf blockquote,.gxf dl,.gxf dd,.gxf hr,.gxf figure,.gxf p,.gxf pre{margin:0}
.gxf ol,.gxf ul,.gxf menu{list-style:none;margin:0;padding:0}
.gxf img,.gxf svg,.gxf video,.gxf canvas,.gxf iframe{display:block;vertical-align:middle}
.gxf img,.gxf video{max-width:100%;height:auto}
.gxf textarea{resize:vertical}
.gxf input::placeholder,.gxf textarea::placeholder{opacity:1;color:#9ca3af}
.gxf table{text-indent:0;border-color:inherit;border-collapse:collapse}
.gxf button,.gxf [role=button]{cursor:pointer}
.gxf :disabled{cursor:default}
.gxf hr{height:0;color:inherit;border-top-width:1px}
.gxf summary{display:list-item}
.gxf [hidden]{display:none}
.gxf .pointer-events-none {
    pointer-events: none
}
.gxf .absolute {
    position: absolute
}
.gxf .relative {
    position: relative
}
.gxf .inset-0 {
    inset: 0px
}
.gxf .-bottom-6 {
    bottom: -1.5rem
}
.gxf .-right-6 {
    right: -1.5rem
}
.gxf .bottom-4 {
    bottom: 1rem
}
.gxf .bottom-6 {
    bottom: 1.5rem
}
.gxf .left-0 {
    left: 0px
}
.gxf .left-4 {
    left: 1rem
}
.gxf .left-6 {
    left: 1.5rem
}
.gxf .left-\[28\%\] {
    left: 28%
}
.gxf .left-\[45\%\] {
    left: 45%
}
.gxf .left-\[58\%\] {
    left: 58%
}
.gxf .left-\[68\%\] {
    left: 68%
}
.gxf .left-\[78\%\] {
    left: 78%
}
.gxf .right-0 {
    right: 0px
}
.gxf .top-0 {
    top: 0px
}
.gxf .top-4 {
    top: 1rem
}
.gxf .top-6 {
    top: 1.5rem
}
.gxf .top-\[30\%\] {
    top: 30%
}
.gxf .top-\[42\%\] {
    top: 42%
}
.gxf .top-\[52\%\] {
    top: 52%
}
.gxf .top-\[62\%\] {
    top: 62%
}
.gxf .top-\[68\%\] {
    top: 68%
}
.gxf .z-0 {
    z-index: 0
}
.gxf .z-10 {
    z-index: 10
}
.gxf .mx-auto {
    margin-left: auto;
    margin-right: auto
}
.gxf .-mt-20 {
    margin-top: -5rem
}
.gxf .mt-1 {
    margin-top: 0.25rem
}
.gxf .block {
    display: block
}
.gxf .flex {
    display: flex
}
.gxf .inline-flex {
    display: inline-flex
}
.gxf .grid {
    display: grid
}
.gxf .hidden {
    display: none
}
.gxf .h-0\.5 {
    height: 0.125rem
}
.gxf .h-1\.5 {
    height: 0.375rem
}
.gxf .h-2 {
    height: 0.5rem
}
.gxf .h-2\.5 {
    height: 0.625rem
}
.gxf .h-3 {
    height: 0.75rem
}
.gxf .h-40 {
    height: 10rem
}
.gxf .h-44 {
    height: 11rem
}
.gxf .h-48 {
    height: 12rem
}
.gxf .h-5 {
    height: 1.25rem
}
.gxf .h-64 {
    height: 16rem
}
.gxf .h-72 {
    height: 18rem
}
.gxf .h-\[220px\] {
    height: 220px
}
.gxf .h-\[450px\] {
    height: 450px
}
.gxf .h-\[480px\] {
    height: 480px
}
.gxf .h-full {
    height: 100%
}
.gxf .min-h-\[460px\] {
    min-height: 460px
}
.gxf .min-h-\[540px\] {
    min-height: 540px
}
.gxf .min-h-\[92vh\] {
    min-height: 92vh
}
.gxf .w-1\.5 {
    width: 0.375rem
}
.gxf .w-2 {
    width: 0.5rem
}
.gxf .w-2\.5 {
    width: 0.625rem
}
.gxf .w-3 {
    width: 0.75rem
}
.gxf .w-5 {
    width: 1.25rem
}
.gxf .w-fit {
    width: fit-content
}
.gxf .w-full {
    width: 100%
}
.gxf .max-w-2xl {
    max-width: 42rem
}
.gxf .max-w-3xl {
    max-width: 48rem
}
.gxf .max-w-4xl {
    max-width: 56rem
}
.gxf .max-w-5xl {
    max-width: 64rem
}
.gxf .max-w-7xl {
    max-width: 80rem
}
.gxf .max-w-xl {
    max-width: 36rem
}
.gxf .flex-grow {
    flex-grow: 1
}
.gxf .-translate-x-1\/2 {
    --tw-translate-x: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf .-translate-y-1\/2 {
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf .scale-100 {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf .scale-105 {
    --tw-scale-x: 1.05;
    --tw-scale-y: 1.05;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf .scale-\[0\.98\] {
    --tw-scale-x: 0.98;
    --tw-scale-y: 0.98;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf .transform {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
@keyframes ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0
    }
}
.gxf .animate-ping {
    animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite
}
.gxf .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr))
}
.gxf .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}
.gxf .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}
.gxf .flex-col {
    flex-direction: column
}
.gxf .flex-wrap {
    flex-wrap: wrap
}
.gxf .items-start {
    align-items: flex-start
}
.gxf .items-end {
    align-items: flex-end
}
.gxf .items-center {
    align-items: center
}
.gxf .items-baseline {
    align-items: baseline
}
.gxf .items-stretch {
    align-items: stretch
}
.gxf .justify-start {
    justify-content: flex-start
}
.gxf .justify-center {
    justify-content: center
}
.gxf .justify-between {
    justify-content: space-between
}
.gxf .gap-0 {
    gap: 0px
}
.gxf .gap-1 {
    gap: 0.25rem
}
.gxf .gap-1\.5 {
    gap: 0.375rem
}
.gxf .gap-10 {
    gap: 2.5rem
}
.gxf .gap-12 {
    gap: 3rem
}
.gxf .gap-14 {
    gap: 3.5rem
}
.gxf .gap-16 {
    gap: 4rem
}
.gxf .gap-2 {
    gap: 0.5rem
}
.gxf .gap-3 {
    gap: 0.75rem
}
.gxf .gap-3\.5 {
    gap: 0.875rem
}
.gxf .gap-4 {
    gap: 1rem
}
.gxf .gap-5 {
    gap: 1.25rem
}
.gxf .gap-6 {
    gap: 1.5rem
}
.gxf .gap-8 {
    gap: 2rem
}
.gxf .overflow-hidden {
    overflow: hidden
}
.gxf .overflow-x-hidden {
    overflow-x: hidden
}
.gxf .rounded-full {
    border-radius: 9999px
}
.gxf .rounded-none {
    border-radius: 0px
}
.gxf .border {
    border-width: 1px
}
.gxf .bg-\[\#101010\] {
    --tw-bg-opacity: 1;
    background-color: rgb(16 16 16 / var(--tw-bg-opacity, 1))
}
.gxf .bg-\[\#F7F6F2\] {
    --tw-bg-opacity: 1;
    background-color: rgb(247 246 242 / var(--tw-bg-opacity, 1))
}
.gxf .bg-gradient-to-r {
    background-image: linear-gradient(to right, var(--tw-gradient-stops))
}
.gxf .bg-gradient-to-t {
    background-image: linear-gradient(to top, var(--tw-gradient-stops))
}
.gxf .to-transparent {
    --tw-gradient-to: transparent var(--tw-gradient-to-position)
}
.gxf .object-cover {
    object-fit: cover
}
.gxf .object-center {
    object-position: center
}
.gxf .object-top {
    object-position: top
}
.gxf .p-1 {
    padding: 0.25rem
}
.gxf .p-1\.5 {
    padding: 0.375rem
}
.gxf .p-3 {
    padding: 0.75rem
}
.gxf .p-3\.5 {
    padding: 0.875rem
}
.gxf .p-4 {
    padding: 1rem
}
.gxf .p-6 {
    padding: 1.5rem
}
.gxf .p-8 {
    padding: 2rem
}
.gxf .px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem
}
.gxf .px-2\.5 {
    padding-left: 0.625rem;
    padding-right: 0.625rem
}
.gxf .px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem
}
.gxf .px-4 {
    padding-left: 1rem;
    padding-right: 1rem
}
.gxf .px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem
}
.gxf .px-8 {
    padding-left: 2rem;
    padding-right: 2rem
}
.gxf .py-0\.5 {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem
}
.gxf .py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem
}
.gxf .py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem
}
.gxf .py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem
}
.gxf .py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem
}
.gxf .py-3\.5 {
    padding-top: 0.875rem;
    padding-bottom: 0.875rem
}
.gxf .py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem
}
.gxf .pb-16 {
    padding-bottom: 4rem
}
.gxf .pt-2 {
    padding-top: 0.5rem
}
.gxf .pt-28 {
    padding-top: 7rem
}
.gxf .pt-3 {
    padding-top: 0.75rem
}
.gxf .pt-4 {
    padding-top: 1rem
}
.gxf .pt-6 {
    padding-top: 1.5rem
}
.gxf .pt-8 {
    padding-top: 2rem
}
.gxf .text-left {
    text-align: left
}
.gxf .text-center {
    text-align: center
}
.gxf .font-sans {
    font-family: "Plus Jakarta Sans", system-ui, sans-serif
}
.gxf .font-serif {
    font-family: "Playfair Display", Georgia, serif
}
.gxf .text-\[10px\] {
    font-size: 10px
}
.gxf .text-\[11px\] {
    font-size: 11px
}
.gxf .text-base {
    font-size: 1rem;
    line-height: 1.5rem
}
.gxf .text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem
}
.gxf .text-xs {
    font-size: 0.75rem;
    line-height: 1rem
}
.gxf .font-bold {
    font-weight: 700
}
.gxf .font-light {
    font-weight: 300
}
.gxf .font-medium {
    font-weight: 500
}
.gxf .font-normal {
    font-weight: 400
}
.gxf .font-semibold {
    font-weight: 600
}
.gxf .uppercase {
    text-transform: uppercase
}
.gxf .italic {
    font-style: italic
}
.gxf .leading-\[1\.05\] {
    line-height: 1.05
}
.gxf .leading-relaxed {
    line-height: 1.625
}
.gxf .tracking-tight {
    letter-spacing: -0.025em
}
.gxf .tracking-wider {
    letter-spacing: 0.05em
}
.gxf .tracking-widest {
    letter-spacing: 0.1em
}
.gxf .text-\[\#101010\] {
    --tw-text-opacity: 1;
    color: rgb(16 16 16 / var(--tw-text-opacity, 1))
}
.gxf .text-\[\#F7F6F2\] {
    --tw-text-opacity: 1;
    color: rgb(247 246 242 / var(--tw-text-opacity, 1))
}
.gxf .text-neutral-700 {
    --tw-text-opacity: 1;
    color: rgb(64 64 64 / var(--tw-text-opacity, 1))
}
.gxf .antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}
.gxf .opacity-100 {
    opacity: 1
}
.gxf .opacity-30 {
    opacity: 0.3
}
.gxf .opacity-70 {
    opacity: 0.7
}
.gxf .opacity-75 {
    opacity: 0.75
}
.gxf .opacity-90 {
    opacity: 0.9
}
.gxf .shadow-inner {
    --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.gxf .shadow-md {
    --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.gxf .shadow-sm {
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.gxf .shadow-xl {
    --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
}
.gxf .backdrop-blur-md {
    --tw-backdrop-blur: blur(12px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}
.gxf .backdrop-blur-sm {
    --tw-backdrop-blur: blur(4px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}
.gxf .transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.gxf .transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.gxf .transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.gxf .transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms
}
.gxf .duration-1000 {
    transition-duration: 1000ms
}
.gxf .duration-500 {
    transition-duration: 500ms
}
.gxf .duration-700 {
    transition-duration: 700ms
}
.gxf .ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
}
.gxf :is(.selection\:bg-\[\#E83E8C\] *)::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(232 62 140 / var(--tw-bg-opacity, 1))
}
.gxf :is(.selection\:text-white *)::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}
.gxf .selection\:bg-\[\#E83E8C\]::selection {
    --tw-bg-opacity: 1;
    background-color: rgb(232 62 140 / var(--tw-bg-opacity, 1))
}
.gxf .selection\:text-white::selection {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}
.gxf .focus\:outline-none:focus {
    outline: 2px solid transparent;
    outline-offset: 2px
}
.gxf :is(.group:hover .group-hover\:translate-x-1) {
    --tw-translate-x: 0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.gxf :is(.group:hover .group-hover\:scale-105) {
    --tw-scale-x: 1.05;
    --tw-scale-y: 1.05;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
@media (min-width: 640px) {
    .gxf .sm\:block {
        display: block
    }
    .gxf .sm\:inline {
        display: inline
    }
    .gxf .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .gxf .sm\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }
    .gxf .sm\:flex-row {
        flex-direction: row
    }
}
@media (min-width: 768px) {
    .gxf .md\:col-span-5 {
        grid-column: span 5 / span 5
    }
    .gxf .md\:col-span-7 {
        grid-column: span 7 / span 7
    }
    .gxf .md\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr))
    }
    .gxf .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .gxf .md\:flex-row {
        flex-direction: row
    }
    .gxf .md\:items-end {
        align-items: flex-end
    }
    .gxf .md\:p-10 {
        padding: 2.5rem
    }
}
@media (min-width: 1024px) {
    .gxf .lg\:col-span-2 {
        grid-column: span 2 / span 2
    }
    .gxf .lg\:col-span-4 {
        grid-column: span 4 / span 4
    }
    .gxf .lg\:col-span-5 {
        grid-column: span 5 / span 5
    }
    .gxf .lg\:col-span-7 {
        grid-column: span 7 / span 7
    }
    .gxf .lg\:col-span-8 {
        grid-column: span 8 / span 8
    }
    .gxf .lg\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr))
    }
    .gxf .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }
    .gxf .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr))
    }
    .gxf .lg\:p-12 {
        padding: 3rem
    }
    .gxf .lg\:px-16 {
        padding-left: 4rem;
        padding-right: 4rem
    }
}


    /* Custom styling for luxury architectural cartography */
    .gxf .glass-panel {
      background: rgba(247, 246, 242, 0.88);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border: 1px solid rgba(255, 255, 255, 0.7);
    }
    .gxf .glass-dark {
      background: rgba(16, 16, 16, 0.82);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border: 1px solid rgba(255, 255, 255, 0.12);
    }
    .gxf .map-container {
      perspective: 1200px;
    }
    .gxf .map-3d-board {
      transform: rotateX(16deg) rotateZ(-1deg) scale(0.98);
      transform-origin: center center;
      transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
      box-shadow: 0 40px 100px -20px rgba(16, 16, 16, 0.18), 0 20px 40px -15px rgba(16, 16, 16, 0.08);
    }
    .gxf .map-container:hover .map-3d-board {
      transform: rotateX(10deg) rotateZ(0deg) scale(1);
    }
    @keyframes pulse-pin {
      0%, 100% { transform: scale(1); opacity: 1; }
      50% { transform: scale(1.15); opacity: 0.85; }
    }
    .gxf .pulse-effect {
      animation: pulse-pin 3s infinite ease-in-out;
    }
    @keyframes ripple {
      0% { transform: scale(0.8); opacity: 0.9; }
      100% { transform: scale(2.4); opacity: 0; }
    }
    .gxf .ripple-ring {
      animation: ripple 2.5s cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
    }
  