jashdoshi77 commited on
Commit
ce7d379
Β·
1 Parent(s): c374c9e

landing page mobile responsivenes

Browse files
frontend/src/index.css CHANGED
@@ -3542,113 +3542,537 @@ tr:hover td {
3542
  font-size: 0.68rem;
3543
  }
3544
 
3545
- /* ── Landing Page Responsive ─────────────────────────────────────────── */
 
 
 
 
3546
  @media (max-width: 1024px) {
 
3547
  .lp-overview-inner {
3548
  grid-template-columns: 1fr;
3549
  gap: 2.5rem;
3550
  }
3551
 
 
 
 
 
 
 
 
 
 
3552
  .lp-cap-grid {
3553
  grid-template-columns: repeat(2, 1fr);
3554
  }
3555
 
 
3556
  .lp-markets-grid {
3557
  grid-template-columns: repeat(2, 1fr);
3558
  }
3559
 
 
3560
  .lp-split {
3561
  flex-direction: column;
 
3562
  }
3563
 
3564
  .lp-split-sticky {
3565
  width: 100%;
3566
- height: auto;
 
3567
  position: relative !important;
3568
  transform: none !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3569
  }
3570
 
3571
  .lp-split-scroll {
3572
  width: 100%;
 
3573
  }
3574
 
3575
  .lp-split--right {
3576
  flex-direction: column-reverse;
3577
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3578
  }
3579
 
 
3580
  @media (max-width: 768px) {
 
3581
  .lp-nav {
3582
- padding: 0 1.5rem;
 
 
 
 
3583
  }
3584
 
3585
  .lp-nav-links {
3586
  display: none;
3587
  }
3588
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3589
  .lp-hero-title {
3590
- font-size: clamp(2rem, 8vw, 3rem);
 
3591
  }
3592
 
3593
- .lp-stats-inner {
 
 
 
 
 
 
3594
  flex-direction: column;
3595
- gap: 1.25rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3596
  }
3597
 
3598
  .lp-stat {
3599
- flex-direction: row;
3600
- gap: 0.75rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3601
  }
3602
 
3603
  .lp-cap-grid {
3604
  grid-template-columns: 1fr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3605
  }
3606
 
3607
  .lp-markets-grid {
3608
- grid-template-columns: 1fr 1fr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3609
  }
3610
 
3611
  .lp-footer-cols {
3612
- grid-template-columns: 1fr 1fr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3613
  }
3614
 
3615
  .lp-footer-bottom {
3616
  flex-direction: column;
3617
  gap: 0.5rem;
3618
  text-align: center;
 
3619
  }
3620
 
3621
- .lp-hero-content,
3622
- .lp-overview,
3623
- .lp-capabilities,
3624
- .lp-cta,
3625
- .lp-markets,
3626
- .lp-footer {
3627
- padding-left: 1.5rem;
3628
- padding-right: 1.5rem;
 
 
 
 
 
3629
  }
3630
  }
3631
 
 
3632
  @media (max-width: 480px) {
3633
- .lp-hero-btns {
3634
- flex-direction: column;
3635
- align-items: center;
3636
  }
3637
 
3638
- .lp-cta-btns {
3639
- flex-direction: column;
3640
- align-items: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3641
  }
3642
 
3643
  .lp-markets-grid {
3644
  grid-template-columns: 1fr;
3645
  }
3646
 
 
 
 
 
3647
  .lp-footer-cols {
3648
  grid-template-columns: 1fr;
 
3649
  }
3650
 
3651
  .lp-footer-brand {
3652
- font-size: clamp(2rem, 12vw, 4rem);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3653
  }
3654
  }
 
3542
  font-size: 0.68rem;
3543
  }
3544
 
3545
+ /* ═══════════════════════════════════════════════════════════════════════
3546
+ LANDING PAGE β€” Mobile Responsive (DO NOT MODIFY DESKTOP STYLES ABOVE)
3547
+ ═══════════════════════════════════════════════════════════════════════ */
3548
+
3549
+ /* ── Tablet (≀ 1024px) ─────────────────────────────────────────────── */
3550
  @media (max-width: 1024px) {
3551
+ /* Overview: stack to single column */
3552
  .lp-overview-inner {
3553
  grid-template-columns: 1fr;
3554
  gap: 2.5rem;
3555
  }
3556
 
3557
+ .lp-overview-text .lp-section-title {
3558
+ text-align: center;
3559
+ }
3560
+
3561
+ .lp-section-desc {
3562
+ max-width: 100%;
3563
+ }
3564
+
3565
+ /* Capabilities: 2-col grid */
3566
  .lp-cap-grid {
3567
  grid-template-columns: repeat(2, 1fr);
3568
  }
3569
 
3570
+ /* Markets: 2-col grid */
3571
  .lp-markets-grid {
3572
  grid-template-columns: repeat(2, 1fr);
3573
  }
3574
 
3575
+ /* Split Scroll: Linearize β€” disable GSAP pinning */
3576
  .lp-split {
3577
  flex-direction: column;
3578
+ min-height: auto;
3579
  }
3580
 
3581
  .lp-split-sticky {
3582
  width: 100%;
3583
+ height: auto !important;
3584
+ min-height: 0;
3585
  position: relative !important;
3586
  transform: none !important;
3587
+ top: auto !important;
3588
+ padding: 3rem 1.5rem;
3589
+ }
3590
+
3591
+ .lp-split-sticky-inner {
3592
+ max-width: 100%;
3593
+ text-align: center;
3594
+ }
3595
+
3596
+ .lp-split-accent-line {
3597
+ margin-left: auto;
3598
+ margin-right: auto;
3599
+ }
3600
+
3601
+ .lp-split-features {
3602
+ align-items: center;
3603
  }
3604
 
3605
  .lp-split-scroll {
3606
  width: 100%;
3607
+ padding: 2rem 1.5rem;
3608
  }
3609
 
3610
  .lp-split--right {
3611
  flex-direction: column-reverse;
3612
  }
3613
+
3614
+ /* Footer: 2-col */
3615
+ .lp-footer-cols {
3616
+ grid-template-columns: repeat(2, 1fr);
3617
+ }
3618
+
3619
+ /* Padding adjustments */
3620
+ .lp-overview {
3621
+ padding: 5rem 2rem;
3622
+ }
3623
+
3624
+ .lp-capabilities {
3625
+ padding: 4rem 2rem 3rem;
3626
+ }
3627
+
3628
+ .lp-markets {
3629
+ padding: 5rem 2rem;
3630
+ }
3631
+
3632
+ .lp-cta {
3633
+ padding: 5rem 2rem;
3634
+ }
3635
+
3636
+ .lp-footer {
3637
+ padding: 4rem 2rem 2rem;
3638
+ }
3639
  }
3640
 
3641
+ /* ── Mobile (≀ 768px) ─────────────────────────────────────────────── */
3642
  @media (max-width: 768px) {
3643
+ /* ─ Navbar ─ */
3644
  .lp-nav {
3645
+ padding: 0 1rem;
3646
+ }
3647
+
3648
+ .lp-nav-inner {
3649
+ height: 60px;
3650
  }
3651
 
3652
  .lp-nav-links {
3653
  display: none;
3654
  }
3655
 
3656
+ .lp-nav-actions .lp-btn--ghost {
3657
+ display: none;
3658
+ }
3659
+
3660
+ .lp-nav-actions .lp-btn--primary {
3661
+ font-size: 0.72rem;
3662
+ padding: 0.5rem 1rem;
3663
+ }
3664
+
3665
+ .lp-nav-wordmark {
3666
+ font-size: 1.1rem;
3667
+ }
3668
+
3669
+ /* ─ Hero ─ */
3670
+ .lp-hero {
3671
+ min-height: 100svh;
3672
+ }
3673
+
3674
+ .lp-hero-content {
3675
+ padding: 1.25rem;
3676
+ }
3677
+
3678
+ .lp-hero-tag {
3679
+ font-size: 0.68rem;
3680
+ letter-spacing: 0.2em;
3681
+ margin-bottom: 1.25rem;
3682
+ }
3683
+
3684
  .lp-hero-title {
3685
+ font-size: clamp(1.75rem, 8.5vw, 2.8rem);
3686
+ margin-bottom: 1rem;
3687
  }
3688
 
3689
+ .lp-hero-sub {
3690
+ font-size: 0.92rem;
3691
+ margin-bottom: 1.75rem;
3692
+ line-height: 1.7;
3693
+ }
3694
+
3695
+ .lp-hero-btns {
3696
  flex-direction: column;
3697
+ align-items: center;
3698
+ gap: 0.75rem;
3699
+ }
3700
+
3701
+ .lp-hero-btns .lp-btn {
3702
+ width: 100%;
3703
+ max-width: 280px;
3704
+ justify-content: center;
3705
+ }
3706
+
3707
+ .lp-hero-scroll {
3708
+ bottom: 1.5rem;
3709
+ }
3710
+
3711
+ .lp-hero-scroll span {
3712
+ font-size: 0.58rem;
3713
+ }
3714
+
3715
+ .lp-scroll-line {
3716
+ height: 28px;
3717
+ }
3718
+
3719
+ /* ─ Stats Band ─ */
3720
+ .lp-stats {
3721
+ padding: 2rem 1.25rem;
3722
+ }
3723
+
3724
+ .lp-stats-inner {
3725
+ display: grid;
3726
+ grid-template-columns: repeat(2, 1fr);
3727
+ gap: 1.25rem 1rem;
3728
  }
3729
 
3730
  .lp-stat {
3731
+ flex-direction: column;
3732
+ align-items: center;
3733
+ gap: 0.25rem;
3734
+ min-width: 0;
3735
+ }
3736
+
3737
+ .lp-stat:last-child {
3738
+ grid-column: 1 / -1;
3739
+ justify-self: center;
3740
+ }
3741
+
3742
+ .lp-stat-value {
3743
+ font-size: clamp(1.75rem, 6vw, 2.25rem);
3744
+ }
3745
+
3746
+ .lp-stat-label {
3747
+ font-size: 0.6rem;
3748
+ letter-spacing: 0.08em;
3749
+ }
3750
+
3751
+ /* ─ Platform Overview ─ */
3752
+ .lp-overview {
3753
+ padding: 4rem 1.25rem;
3754
+ }
3755
+
3756
+ .lp-overview-inner {
3757
+ gap: 2rem;
3758
+ }
3759
+
3760
+ .lp-overview-text .lp-section-title {
3761
+ text-align: left;
3762
+ }
3763
+
3764
+ .lp-section-tag {
3765
+ font-size: 0.68rem;
3766
+ }
3767
+
3768
+ .lp-section-title {
3769
+ font-size: clamp(1.5rem, 5.5vw, 2.25rem);
3770
+ }
3771
+
3772
+ .lp-section-desc {
3773
+ font-size: 0.92rem;
3774
+ max-width: 100%;
3775
+ }
3776
+
3777
+ .lp-check-list li {
3778
+ font-size: 0.88rem;
3779
+ }
3780
+
3781
+ .lp-overview-img img {
3782
+ border-radius: 8px;
3783
+ }
3784
+
3785
+ /* ─ Capabilities ─ */
3786
+ .lp-capabilities {
3787
+ padding: 3.5rem 1.25rem 2.5rem;
3788
+ }
3789
+
3790
+ .lp-cap-header {
3791
+ margin-bottom: 2rem;
3792
  }
3793
 
3794
  .lp-cap-grid {
3795
  grid-template-columns: 1fr;
3796
+ gap: 1rem;
3797
+ }
3798
+
3799
+ .lp-cap-card {
3800
+ min-height: 220px;
3801
+ }
3802
+
3803
+ .lp-cap-card-inner {
3804
+ min-height: 220px;
3805
+ }
3806
+
3807
+ .lp-cap-front,
3808
+ .lp-cap-back {
3809
+ padding: 1.5rem;
3810
+ }
3811
+
3812
+ .lp-cap-icon {
3813
+ width: 40px;
3814
+ height: 40px;
3815
+ margin-bottom: 0.75rem;
3816
+ }
3817
+
3818
+ .lp-cap-front h3,
3819
+ .lp-cap-back h3 {
3820
+ font-size: 1.05rem;
3821
+ }
3822
+
3823
+ .lp-cap-front p {
3824
+ font-size: 0.82rem;
3825
+ }
3826
+
3827
+ .lp-cap-highlights p {
3828
+ font-size: 0.75rem;
3829
+ }
3830
+
3831
+ /* ─ Split Scroll ─ */
3832
+ .lp-split {
3833
+ min-height: auto;
3834
+ }
3835
+
3836
+ .lp-split-sticky {
3837
+ padding: 2.5rem 1.25rem;
3838
+ }
3839
+
3840
+ .lp-split-sticky-inner {
3841
+ padding: 0;
3842
+ text-align: left;
3843
+ }
3844
+
3845
+ .lp-split-accent-line {
3846
+ margin-left: 0;
3847
+ margin-right: auto;
3848
+ }
3849
+
3850
+ .lp-split-features {
3851
+ align-items: flex-start;
3852
+ }
3853
+
3854
+ .lp-split-title {
3855
+ font-size: clamp(1.5rem, 5.5vw, 2rem);
3856
+ }
3857
+
3858
+ .lp-split-scroll {
3859
+ padding: 1.5rem 1.25rem;
3860
+ }
3861
+
3862
+ .lp-split-block {
3863
+ margin-bottom: 2rem;
3864
+ }
3865
+
3866
+ .lp-split-block-img img {
3867
+ height: 200px;
3868
+ }
3869
+
3870
+ .lp-split-block-text h3 {
3871
+ font-size: 1.15rem;
3872
+ }
3873
+
3874
+ .lp-split-block-text p {
3875
+ font-size: 0.85rem;
3876
+ }
3877
+
3878
+ .lp-tag-sm {
3879
+ font-size: 0.6rem;
3880
+ }
3881
+
3882
+ /* ─ Global Markets ─ */
3883
+ .lp-markets {
3884
+ padding: 4rem 1.25rem;
3885
+ }
3886
+
3887
+ .lp-markets-header {
3888
+ margin-bottom: 2.5rem;
3889
+ }
3890
+
3891
+ .lp-markets-header .lp-section-tag {
3892
+ color: #7cdfbb;
3893
  }
3894
 
3895
  .lp-markets-grid {
3896
+ grid-template-columns: repeat(2, 1fr);
3897
+ gap: 0.875rem;
3898
+ }
3899
+
3900
+ .lp-market-card {
3901
+ padding: 1.25rem 1rem;
3902
+ border-radius: 8px;
3903
+ }
3904
+
3905
+ .lp-market-code {
3906
+ font-size: 0.65rem;
3907
+ padding: 0.2rem 0.5rem;
3908
+ margin-bottom: 0.625rem;
3909
+ }
3910
+
3911
+ .lp-market-name {
3912
+ font-size: 0.82rem;
3913
+ }
3914
+
3915
+ .lp-market-country {
3916
+ font-size: 0.7rem;
3917
+ }
3918
+
3919
+ /* ─ CTA ─ */
3920
+ .lp-cta {
3921
+ padding: 4rem 1.25rem;
3922
+ }
3923
+
3924
+ .lp-cta-title {
3925
+ font-size: clamp(1.5rem, 6.5vw, 2.5rem);
3926
+ }
3927
+
3928
+ .lp-cta-desc {
3929
+ font-size: 0.92rem;
3930
+ margin-bottom: 2rem;
3931
+ }
3932
+
3933
+ .lp-cta-btns {
3934
+ flex-direction: column;
3935
+ align-items: center;
3936
+ gap: 0.75rem;
3937
+ }
3938
+
3939
+ .lp-cta-btns .lp-btn {
3940
+ width: 100%;
3941
+ max-width: 280px;
3942
+ justify-content: center;
3943
+ }
3944
+
3945
+ /* ─ Footer ─ */
3946
+ .lp-footer {
3947
+ padding: 3rem 1.25rem 1.5rem;
3948
+ }
3949
+
3950
+ .lp-footer-brand {
3951
+ font-size: clamp(2.25rem, 10vw, 4rem);
3952
+ margin-bottom: 2.5rem;
3953
+ letter-spacing: 0.06em;
3954
  }
3955
 
3956
  .lp-footer-cols {
3957
+ grid-template-columns: repeat(2, 1fr);
3958
+ gap: 1.5rem;
3959
+ margin-bottom: 2rem;
3960
+ }
3961
+
3962
+ .lp-footer-col h4 {
3963
+ font-size: 0.65rem;
3964
+ margin-bottom: 0.875rem;
3965
+ }
3966
+
3967
+ .lp-footer-col a {
3968
+ font-size: 0.78rem;
3969
+ }
3970
+
3971
+ .lp-footer-col li {
3972
+ margin-bottom: 0.5rem;
3973
  }
3974
 
3975
  .lp-footer-bottom {
3976
  flex-direction: column;
3977
  gap: 0.5rem;
3978
  text-align: center;
3979
+ padding-top: 1.25rem;
3980
  }
3981
 
3982
+ .lp-footer-bottom p {
3983
+ font-size: 0.65rem;
3984
+ }
3985
+
3986
+ /* ─ Buttons (mobile) ─ */
3987
+ .lp-btn--lg {
3988
+ padding: 0.75rem 1.5rem;
3989
+ font-size: 0.78rem;
3990
+ }
3991
+
3992
+ .lp-btn--xl {
3993
+ padding: 0.875rem 1.75rem;
3994
+ font-size: 0.82rem;
3995
  }
3996
  }
3997
 
3998
+ /* ── Small Mobile (≀ 480px) ──────────────────────────────────────────── */
3999
  @media (max-width: 480px) {
4000
+ .lp-hero-title {
4001
+ font-size: clamp(1.5rem, 9vw, 2.25rem);
 
4002
  }
4003
 
4004
+ .lp-hero-sub {
4005
+ font-size: 0.85rem;
4006
+ line-height: 1.6;
4007
+ }
4008
+
4009
+ .lp-hero-tag {
4010
+ font-size: 0.6rem;
4011
+ }
4012
+
4013
+ .lp-stats-inner {
4014
+ grid-template-columns: repeat(2, 1fr);
4015
+ gap: 1rem 0.75rem;
4016
+ }
4017
+
4018
+ .lp-stat-value {
4019
+ font-size: clamp(1.5rem, 8vw, 2rem);
4020
+ }
4021
+
4022
+ .lp-cap-card {
4023
+ min-height: 200px;
4024
+ }
4025
+
4026
+ .lp-cap-card-inner {
4027
+ min-height: 200px;
4028
  }
4029
 
4030
  .lp-markets-grid {
4031
  grid-template-columns: 1fr;
4032
  }
4033
 
4034
+ .lp-market-card {
4035
+ padding: 1.25rem;
4036
+ }
4037
+
4038
  .lp-footer-cols {
4039
  grid-template-columns: 1fr;
4040
+ gap: 1.25rem;
4041
  }
4042
 
4043
  .lp-footer-brand {
4044
+ font-size: clamp(1.75rem, 12vw, 3rem);
4045
+ }
4046
+
4047
+ .lp-split-block-img img {
4048
+ height: 160px;
4049
+ }
4050
+
4051
+ .lp-section-title {
4052
+ font-size: clamp(1.35rem, 6vw, 1.85rem);
4053
+ }
4054
+
4055
+ .lp-cta-title {
4056
+ font-size: clamp(1.35rem, 7vw, 2rem);
4057
+ }
4058
+
4059
+ .lp-overview {
4060
+ padding: 3rem 1rem;
4061
+ }
4062
+
4063
+ .lp-capabilities {
4064
+ padding: 3rem 1rem 2rem;
4065
+ }
4066
+
4067
+ .lp-markets {
4068
+ padding: 3rem 1rem;
4069
+ }
4070
+
4071
+ .lp-cta {
4072
+ padding: 3rem 1rem;
4073
+ }
4074
+
4075
+ .lp-footer {
4076
+ padding: 2.5rem 1rem 1.5rem;
4077
  }
4078
  }
frontend/src/pages/Landing.tsx CHANGED
@@ -232,8 +232,8 @@ export default function Landing() {
232
  y: 50, opacity: 0, duration: 0.6, stagger: 0.08, ease: 'power2.out',
233
  });
234
 
235
- /* ── Split Section LEFT STICKY ── */
236
- if (splitLeftRef.current) {
237
  const leftWrapper = splitLeftRef.current;
238
  const leftSticky = leftWrapper.querySelector('.lp-split-sticky') as HTMLElement;
239
  const leftScroll = leftWrapper.querySelector('.lp-split-scroll') as HTMLElement;
@@ -257,8 +257,8 @@ export default function Landing() {
257
  }
258
  }
259
 
260
- /* ── Split Section RIGHT STICKY ── */
261
- if (splitRightRef.current) {
262
  const rightWrapper = splitRightRef.current;
263
  const rightSticky = rightWrapper.querySelector('.lp-split-sticky') as HTMLElement;
264
  const rightScroll = rightWrapper.querySelector('.lp-split-scroll') as HTMLElement;
 
232
  y: 50, opacity: 0, duration: 0.6, stagger: 0.08, ease: 'power2.out',
233
  });
234
 
235
+ /* ── Split Section LEFT STICKY (desktop only) ── */
236
+ if (splitLeftRef.current && window.innerWidth > 1024) {
237
  const leftWrapper = splitLeftRef.current;
238
  const leftSticky = leftWrapper.querySelector('.lp-split-sticky') as HTMLElement;
239
  const leftScroll = leftWrapper.querySelector('.lp-split-scroll') as HTMLElement;
 
257
  }
258
  }
259
 
260
+ /* ── Split Section RIGHT STICKY (desktop only) ── */
261
+ if (splitRightRef.current && window.innerWidth > 1024) {
262
  const rightWrapper = splitRightRef.current;
263
  const rightSticky = rightWrapper.querySelector('.lp-split-sticky') as HTMLElement;
264
  const rightScroll = rightWrapper.querySelector('.lp-split-scroll') as HTMLElement;