@@ -136,14 +136,16 @@ export const Hero = () => {
136136 } ;
137137
138138 return (
139- < section className = "relative pt-32 pb-16 lg:pt-40 lg:pb-24 overflow-hidden bg-white" >
140- < div className = "absolute inset-0 bg-[radial-gradient(#e5e7eb_1px,transparent_1px)] [background-size:16px_16px] [mask-image:radial-gradient(ellipse_50%_50%_at_50%_50%,#000_70%,transparent_100%)] opacity-30" > </ div >
139+ < section className = "relative pt-28 pb-14 md:pt-32 md:pb-16 lg:pt-40 lg:pb-24 overflow-hidden" >
140+ < div className = "absolute inset-0 bg-[radial-gradient(#e2e8f0_1px,transparent_1px)] [background-size:20px_20px] opacity-35" > </ div >
141+ < div className = "absolute -top-24 -left-24 w-96 h-96 rounded-full bg-brand-100/70 blur-3xl" />
142+ < div className = "absolute -right-24 top-28 w-80 h-80 rounded-full bg-blue-100/70 blur-3xl" />
141143
142144 < div className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10" >
143145 { /* Rate Volatility Alert */ }
144146 < RateVolatilityAlert currentRate = { convertRate } />
145147
146- < div className = "flex flex-col lg:flex-row items-center gap-12 lg:gap-24" >
148+ < div className = "flex flex-col lg:flex-row items-center gap-10 lg:gap-24" >
147149
148150 { /* Text Content */ }
149151 < div className = "flex-1 text-center lg:text-left z-10" >
@@ -157,17 +159,17 @@ export const Hero = () => {
157159 < div className = "inline-flex items-center gap-2 bg-green-50 border border-green-200 px-3 py-1.5 rounded-full" >
158160 < span className = "w-2 h-2 bg-green-500 rounded-full animate-pulse" > </ span >
159161 < span className = "text-xs font-semibold text-green-700" >
160- { CONFIG . LIVE_STATUS } • { CONFIG . AVERAGE_PROCESS_TIME }
162+ { CONFIG . LIVE_STATUS } | { CONFIG . AVERAGE_PROCESS_TIME }
161163 </ span >
162164 </ div >
163165 < RealtimeProof />
164166 </ div >
165167
166- < h1 className = "text-4xl lg:text-6xl font-extrabold text-gray-900 tracking-tight leading-tight mb-6" >
168+ < h1 className = "text-[1.75rem] max-[360px]:text-[1.62rem] sm:text- 4xl md:text-5xl lg:text-6xl font-extrabold text-gray-900 tracking-tight leading-tight mb-5 md: mb-6" >
167169 Convert PayPal ke Rupiah, < span className = "text-brand-600 bg-clip-text text-transparent bg-gradient-to-r from-brand-600 to-blue-400" > Cepat & Aman </ span >
168170 </ h1 >
169171
170- < p className = "text-xl text-gray-600 mb-8 max-w-2xl mx-auto lg:mx-0 font-medium leading-relaxed" >
172+ < p className = "text-base sm:text-lg md:text- xl text-gray-600 mb-7 md: mb-8 max-w-2xl mx-auto lg:mx-0 font-medium leading-relaxed" >
171173 Langsung cair ke bank atau e-wallet kamu. Rate update otomatis setiap jam, fee transparan, no hidden fee!
172174 </ p >
173175 </ motion . div >
@@ -194,12 +196,12 @@ export const Hero = () => {
194196 </ motion . ul >
195197
196198 { /* Social Proof Avatars */ }
197- < div className = "flex items-center justify-center lg:justify-start gap-4 mb-8" >
199+ < div className = "flex items-center justify-center lg:justify-start gap-3 sm:gap-4 mb-7 md: mb-8" >
198200 < div className = "flex -space-x-3" >
199201 { heroAvatars . map ( ( avatar , idx ) => (
200202 < img
201203 key = { avatar . avatar + idx }
202- className = "w-12 h-12 rounded-full border-2 border-white shadow-sm"
204+ className = "w-10 h-10 sm:w- 12 sm: h-12 rounded-full border-2 border-white shadow-sm"
203205 src = { avatar . avatar }
204206 alt = { avatar . name }
205207 width = "48"
@@ -208,7 +210,7 @@ export const Hero = () => {
208210 decoding = "async"
209211 />
210212 ) ) }
211- < div className = "w-12 h-12 rounded-full border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-bold text-gray-600 shadow-sm" >
213+ < div className = "w-10 h-10 sm:w- 12 sm: h-12 rounded-full border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-bold text-gray-600 shadow-sm" >
212214 99+
213215 </ div >
214216 </ div >
@@ -228,18 +230,18 @@ export const Hero = () => {
228230 initial = { { opacity : 0 , y : 20 } }
229231 animate = { { opacity : 1 , y : 0 } }
230232 transition = { { delay : 0.4 , duration : 0.5 } }
231- className = "flex flex-col items-center lg:items-start gap-4 mb-8"
233+ className = "flex flex-col items-center lg:items-start gap-3 md:gap- 4 mb-8"
232234 >
233235 < motion . button
234236 whileHover = { { scale : 1.05 } }
235237 whileTap = { { scale : 0.95 } }
236238 onClick = { handleConvertClick }
237- className = "w-full sm:w-auto px-8 py-4 bg-gradient-to-r from-brand-600 to-brand-500 hover:from-brand-700 hover:to-brand-600 text-white font-bold text-lg rounded-xl shadow-lg shadow-brand-500/30 transition-all flex items-center justify-center gap-2 ring-4 ring-brand-500/10"
239+ className = "w-full sm:w-auto px-6 sm:px-7 md:px- 8 py-3.5 md:py- 4 bg-gradient-to-r from-brand-600 to-brand-500 hover:from-brand-700 hover:to-brand-600 text-white font-bold text-sm sm:text-base md: text-lg rounded-xl shadow-lg shadow-brand-500/30 transition-all flex items-center justify-center gap-2 ring-4 ring-brand-500/10"
238240 >
239- < MessageCircle size = { 24 } />
241+ < MessageCircle size = { 22 } />
240242 Chat via Messenger
241243 </ motion . button >
242- < div className = "flex items-center gap-2 text-sm text-gray-600 font-medium bg-white/50 backdrop-blur-sm px-4 py-1.5 rounded-full border border-gray-200" >
244+ < div className = "flex items-center gap-2 text-xs sm:text- sm text-gray-600 font-medium bg-white/50 backdrop-blur-sm px-4 py-1.5 rounded-full border border-gray-200" >
243245 < div className = "w-2 h-2 rounded-full bg-green-500 animate-pulse" > </ div >
244246 Jam operasional { CONFIG . OPERATIONAL_HOURS }
245247 </ div >
@@ -254,7 +256,7 @@ export const Hero = () => {
254256 className = "flex-1 w-full max-w-md z-10"
255257 id = "calculator"
256258 >
257- < div className = "bg-white/80 backdrop-blur-xl rounded-2xl shadow-2xl border border-white/50 overflow-hidden ring-1 ring-black /5 transform transition-all hover:shadow-[0_20px_50px_rgba(0,0,0 ,0.1 )]" >
259+ < div className = "bg-white/85 backdrop-blur-xl rounded-3xl shadow-2xl border border-slate-200/70 overflow-hidden ring-1 ring-slate-900 /5 transform transition-all hover:shadow-[0_20px_50px_rgba(15,23,42 ,0.14 )]" >
258260 < div className = "bg-gray-900 p-4 text-white text-center" >
259261 < div className = "font-bold text-lg" >
260262 1 USD = Rp { ( mode === 'convert' ? convertRate : effectiveTopupRate ) . toLocaleString ( 'id-ID' ) }
@@ -265,7 +267,7 @@ export const Hero = () => {
265267 </ div >
266268 </ div >
267269
268- < div className = "p-6 md:p-8 space-y-6" >
270+ < div className = "p-5 sm:p- 6 md:p-8 space-y-5 md: space-y-6" >
269271 < div className = "grid grid-cols-1 sm:grid-cols-2 gap-2" >
270272 < button
271273 className = { `w-full px-4 py-3 rounded-lg border text-sm font-semibold transition ${ mode === 'convert' ? 'bg-brand-50 border-brand-200 text-brand-700' : 'bg-gray-50 border-gray-200 text-gray-600 hover:border-brand-200' } ` }
@@ -299,7 +301,7 @@ export const Hero = () => {
299301 </ div >
300302
301303 { mode === 'convert' ? (
302- < div className = "flex flex-col gap-4 min-h-[160px]" >
304+ < div className = "flex flex-col gap-4 min-h-[132px] md:min-h-[ 160px]" >
303305 < div className = "bg-blue-50/50 p-4 rounded-lg space-y-2 border border-dashed border-blue-100" >
304306 < div className = "flex justify-between text-sm text-gray-600" >
305307 < span > Estimasi Fee</ span >
@@ -321,13 +323,13 @@ export const Hero = () => {
321323 readOnly
322324 aria-label = "Jumlah Rupiah yang kamu terima"
323325 value = { formatIDR ( idrReceived ) }
324- className = "w-full pl-4 pr-4 py-3 bg-brand-50 border border-brand-200 rounded-lg text-2xl font-bold text-brand-700"
326+ className = "w-full pl-4 pr-4 py-3 bg-brand-50 border border-brand-200 rounded-lg text-xl md:text- 2xl font-bold text-brand-700"
325327 />
326328 </ div >
327329 </ div >
328330 </ div >
329331 ) : (
330- < div className = "flex flex-col gap-4 min-h-[160px]" >
332+ < div className = "flex flex-col gap-4 min-h-[132px] md:min-h-[ 160px]" >
331333 < div className = "rounded-lg border border-blue-100 bg-blue-50/50 p-4 space-y-1.5" >
332334 < div className = "text-sm text-gray-700 font-semibold" > Top-up rate (saldo tersedia)</ div >
333335 < p className = "text-xs text-gray-600" > Jika saldo admin kosong, rate normal akan dikonfirmasi dulu.</ p >
0 commit comments