        :root {
            --ink: #0A0F1D;
            --ink2: #111A2E;
            --paper: #F7F8FB;
            --signal: #14B8A6;
            --violet: #5B5BD6;
            --amber2: #F5A623;
            --line: rgba(10, 15, 29, 0.08);
        }

        html {
            -webkit-text-size-adjust: 100%;
        }

        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--paper);
            -webkit-font-smoothing: antialiased;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        .font-display {
            font-family: 'Space Grotesk', sans-serif;
        }

        .font-mono-num {
            font-family: 'JetBrains Mono', monospace;
        }

        /* Fluid type scale - tuned smaller at the mobile end for a tighter, premium feel */
        .h-display {
            font-size: clamp(1.7rem, 1.25rem + 3.4vw, 4rem);
            line-height: 1.08;
            letter-spacing: -0.02em;
        }

        .h-section {
            font-size: clamp(1.3rem, 1.05rem + 1.6vw, 2.5rem);
            line-height: 1.16;
            letter-spacing: -0.015em;
        }

        .h-sub {
            font-size: clamp(1.02rem, 0.92rem + 0.5vw, 1.5rem);
            letter-spacing: -0.01em;
        }

        .p-lead {
            font-size: clamp(0.85rem, 0.8rem + 0.3vw, 1.15rem);
        }

        /* Scale everything down slightly on small phones for a denser, premium density */
        @media (max-width: 480px) {
            html {
                font-size: 14.5px;
            }
        }

        @media (min-width: 481px) and (max-width: 640px) {
            html {
                font-size: 15.5px;
            }
        }

        /* Flag chip */
        .flag-chip {
            width: 2.1rem;
            height: 1.55rem;
            border-radius: 0.4rem;
            object-fit: cover;
            box-shadow: 0 0 0 1px rgba(10, 15, 29, 0.06), 0 2px 6px rgba(10, 15, 29, 0.12);
            background: #eef0f4;
            transition: transform .35s cubic-bezier(.16, 1, .3, 1);
        }

        .flag-chip-lg {
            width: 2.75rem;
            height: 2rem;
            border-radius: 0.55rem;
        }

        /* Country card accent bar + status color variants */
        .country-card {
            position: relative;
            overflow: hidden;
        }

        .country-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, var(--accent-a, #14B8A6), var(--accent-b, #5B5BD6));
            opacity: .85;
        }

        .country-card:hover .flag-chip {
            transform: scale(1.08) rotate(-1deg);
        }

        /* Grain / premium noise texture */
        .grain {
            position: relative;
            isolation: isolate;
        }

        .grain::after {
            content: "";
            position: absolute;
            inset: 0;
            z-index: 5;
            pointer-events: none;
            opacity: 0.035;
            mix-blend-mode: overlay;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
        }

        /* Glass surfaces */
        .glass {
            background: rgba(255, 255, 255, 0.72);
            backdrop-filter: blur(14px) saturate(160%);
            -webkit-backdrop-filter: blur(14px) saturate(160%);
        }

        .glass-dark {
            background: rgba(10, 15, 29, 0.82);
            backdrop-filter: blur(18px) saturate(140%);
            -webkit-backdrop-filter: blur(18px) saturate(140%);
        }

        /* Gradient border premium card */
        .g-border {
            position: relative;
            border-radius: 1.25rem;
        }

        .g-border::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            padding: 1px;
            background: linear-gradient(135deg, rgba(20, 184, 166, 0.5), rgba(91, 91, 214, 0.35), rgba(10, 15, 29, 0.05));
            -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;
            opacity: 0;
            transition: opacity .4s ease;
        }

        .g-border:hover::before {
            opacity: 1;
        }

        .premium-card {
            background: linear-gradient(180deg, #ffffff 0%, #FBFCFE 100%);
            border: 1px solid var(--line);
            transition: transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s cubic-bezier(.16, 1, .3, 1), border-color .3s ease;
        }

        .premium-card:hover {
            transform: translateY(-6px);
            box-shadow: 0 24px 60px -12px rgba(10, 15, 29, 0.16);
            border-color: rgba(20, 184, 166, 0.25);
        }

        /* Signal bars logo mark */
        .signal-mark {
            display: flex;
            align-items: flex-end;
            gap: 3px;
            height: 20px;
        }

        .signal-mark span {
            width: 4px;
            border-radius: 2px;
            background: linear-gradient(180deg, var(--signal), var(--violet));
            animation: bar-pulse 1.4s ease-in-out infinite;
        }

        .signal-mark span:nth-child(1) {
            height: 35%;
            animation-delay: 0s;
        }

        .signal-mark span:nth-child(2) {
            height: 65%;
            animation-delay: .15s;
        }

        .signal-mark span:nth-child(3) {
            height: 100%;
            animation-delay: .3s;
        }

        .signal-mark span:nth-child(4) {
            height: 50%;
            animation-delay: .45s;
        }

        @keyframes bar-pulse {

            0%,
            100% {
                transform: scaleY(0.55);
                opacity: .7
            }

            50% {
                transform: scaleY(1);
                opacity: 1
            }
        }

        /* Ripple rings for hero mockup */
        .ripple-wrap {
            position: relative;
        }

        .ripple {
            position: absolute;
            inset: 0;
            border-radius: 9999px;
            border: 1.5px solid rgba(20, 184, 166, 0.55);
            animation: ripple 2.6s cubic-bezier(.2, .7, .3, 1) infinite;
        }

        .ripple.d2 {
            animation-delay: .9s;
        }

        .ripple.d3 {
            animation-delay: 1.8s;
        }

        @keyframes ripple {
            0% {
                transform: scale(0.7);
                opacity: .9
            }

            100% {
                transform: scale(2.1);
                opacity: 0
            }
        }

        /* Gradient text */
        .grad-text {
            background: linear-gradient(95deg, var(--signal), var(--violet) 70%);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        /* Animated gradient CTA button */
        .cta-primary {
            background: linear-gradient(95deg, var(--signal), #0EA5E9 55%, var(--violet));
            background-size: 200% 100%;
            transition: background-position .6s ease, transform .3s ease, box-shadow .3s ease;
        }

        .cta-primary:hover {
            background-position: 100% 0;
            transform: translateY(-2px);
            box-shadow: 0 16px 32px -10px rgba(20, 184, 166, 0.45);
        }

        /* Reveal-on-scroll (custom, no external lib dependency for reliability) */
        [data-reveal] {
            opacity: 0;
            transform: translateY(22px);
            transition: opacity .8s cubic-bezier(.16, 1, .3, 1), transform .8s cubic-bezier(.16, 1, .3, 1);
        }

        [data-reveal].is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        [data-reveal-delay="1"] {
            transition-delay: .08s;
        }

        [data-reveal-delay="2"] {
            transition-delay: .16s;
        }

        [data-reveal-delay="3"] {
            transition-delay: .24s;
        }

        [data-reveal-delay="4"] {
            transition-delay: .32s;
        }

        [data-reveal-delay="5"] {
            transition-delay: .4s;
        }

        @media (prefers-reduced-motion: reduce) {
            * {
                animation-duration: 0.001ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.001ms !important;
            }
        }

        /* Scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
        }

        ::-webkit-scrollbar-track {
            background: #F1F5F9;
        }

        ::-webkit-scrollbar-thumb {
            background: #CBD5E1;
            border-radius: 4px;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: #94A3B8;
        }

        /* Mobile: prevent input zoom, ensure tap targets */
        input,
        select,
        textarea,
        button {
            font-size: 16px;
        }

        @media (min-width: 640px) {

            input,
            select,
            textarea {
                font-size: inherit;
            }
        }

        .tick-divider {
            height: 1px;
            width: 100%;
            background: repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 12px);
        }