@php // Deterministic scatter for the ambient dust particles (varied but stable across renders) // `depth` scales how far each particle drifts with the cursor — smaller = further back. $particles = [ ['top' => '12%', 'left' => '18%', 'size' => 4, 'drift' => '14px, -22px', 'delay' => '0s', 'duration' => '7s', 'depth' => 0.8], ['top' => '22%', 'left' => '78%', 'size' => 3, 'drift' => '-10px, -18px', 'delay' => '0.6s', 'duration' => '9s', 'depth' => 0.4], ['top' => '68%', 'left' => '12%', 'size' => 5, 'drift' => '16px, -14px', 'delay' => '1.2s', 'duration' => '8s', 'depth' => 1], ['top' => '78%', 'left' => '82%', 'size' => 3, 'drift' => '-14px, -20px', 'delay' => '0.3s', 'duration' => '10s', 'depth' => 0.5], ['top' => '8%', 'left' => '52%', 'size' => 2, 'drift' => '8px, -16px', 'delay' => '1.8s', 'duration' => '7.5s', 'depth' => 0.3], ['top' => '48%', 'left' => '90%', 'size' => 4, 'drift' => '-12px, -22px', 'delay' => '0.9s', 'duration' => '8.5s', 'depth' => 0.7], ['top' => '85%', 'left' => '42%', 'size' => 3, 'drift' => '10px, -18px', 'delay' => '1.4s', 'duration' => '9.5s', 'depth' => 0.6], ['top' => '38%', 'left' => '6%', 'size' => 2, 'drift' => '12px, -12px', 'delay' => '0.2s', 'duration' => '7s', 'depth' => 0.9], ]; $heroStats = \App\Models\Statistic::where('is_published', true) ->where('is_featured', true) ->orderBy('display_order') ->get(); $heroStatThemes = ['blue', 'teal', 'gold']; @endphp
Now live across Kathmandu Valley

Nepal travels on a tap.

Fintech turns two coins and a queue into one motion. Tap when you board. Tap when you get off. The fare works itself out, down to the rupee.

No app required to ride. No cash required, ever.

@if ($heroStats->isNotEmpty())
@foreach ($heroStats as $index => $stat)

{{ $stat->number }}

{{ $stat->name }}

@endforeach
@endif
@foreach ($particles as $p) @endforeach
{{-- Same card face partial the journey section uses (and the hero-journey-bridge morphs into) — one image, three places. --}}
@include('frontend.partials.home.journey-card-inner')
{{-- The hero card "hands off" to the journey section's card as you scroll between them: resources/js/hero-journey-bridge.js measures #hero-card-face at the moment it would scroll out of view, fades the real hero card out, and drives this fixed-position clone (same face partial, so it's pixel- identical) from that exact spot to dead center of the journey stage — landing exactly where #journey-card-face already sits at rest, so the swap back to the journey section's own card is invisible. Desktop only; see the reduced-motion / <1024px guard in the JS. #hero-journey-city-preview rides the same scroll progress, fading the city skyline in underneath the flying card — so the card is never seen flying over a blank/plain background while journey.js's own stage is still hidden (it stays hidden until the pin engages, to avoid a different bug: its card anchor peeking early via normal scroll). --}}