1import{r as i,j as n,i as J,R as g,k as _,e as C,E as je,F as Q,B as G,G as K,H as Ae,I as Ie,J as Re,K as _e}from"./main-CXpov6EZ.js";import{c as z,u as X,a as D,d as ee,b as Ee,C as Se}from"./index-5h4l-eM3.js";function Y(e){const t=Pe(e),r=i.forwardRef((o,s)=>{const{children:a,...c}=o,l=i.Children.toArray(a),u=l.find(Oe);if(u){const d=u.props.children,m=l.map(f=>f===u?i.Children.count(d)>1?i.Children.only(null):i.isValidElement(d)?d.props.children:null:f);return n.jsx(t,{...c,ref:s,children:i.isValidElement(d)?i.cloneElement(d,void 0,m):null})}return n.jsx(t,{...c,ref:s,children:a})});return r.displayName=`${e}.Slot`,r}function Pe(e){const t=i.forwardRef((r,o)=>{const{children:s,...a}=r;if(i.isValidElement(s)){const c=Me(s),l=Te(a,s.props);return s.type!==i.Fragment&&(l.ref=o?J(o,c):c),i.cloneElement(s,l)}return i.Children.count(s)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ke=Symbol("radix.slottable");function Oe(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ke}function Te(e,t){const r={...t};for(const o in t){const s=e[o],a=t[o];/^on[A-Z]/.test(o)?s&&a?r[o]=(...l)=>{a(...l),s(...l)}:s&&(r[o]=s):o==="style"?r[o]={...s,...a}:o==="className"&&(r[o]=[s,a].filter(Boolean).join(" "))}return{...e,...r}}function Me(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function De(e){const t=e+"CollectionProvider",[r,o]=z(t),[s,a]=r(t,{collectionRef:{current:null},itemMap:new Map}),c=b=>{const{scope:h,children:w}=b,p=g.useRef(null),y=g.useRef(new Map).current;return n.jsx(s,{scope:h,itemMap:y,collectionRef:p,children:w})};c.displayName=t;const l=e+"CollectionSlot",u=Y(l),d=g.forwardRef((b,h)=>{const{scope:w,children:p}=b,y=a(l,w),N=_(h,y.collectionRef);return n.jsx(u,{ref:N,children:p})});d.displayName=l;const m=e+"CollectionItemSlot",f="data-radix-collection-item",v=Y(m),x=g.forwardRef((b,h)=>{const{scope:w,children:p,...y}=b,N=g.useRef(null),R=_(h,N),I=a(m,w);return g.useEffect(()=>(I.itemMap.set(N,{ref:N,...y}),()=>{I.itemMap.delete(N)})),n.jsx(v,{[f]:"",ref:R,children:p})});x.displayName=m;function A(b){const h=a(e+"CollectionConsumer",b);return g.useCallback(()=>{const p=h.collectionRef.current;if(!p)return[];const y=Array.from(p.querySelectorAll(`[${f}]`));return Array.from(h.itemMap.values()).sort((I,T)=>y.indexOf(I.ref.current)-y.indexOf(T.ref.current))},[h.collectionRef,h.itemMap])}return[{Provider:c,Slot:d,ItemSlot:x},A,o]}function te(e,t,{checkForDefaultPrevented:r=!0}={}){return function(s){if(e?.(s),r===!1||!s.defaultPrevented)return t?.(s)}}function L({prop:e,defaultProp:t,onChange:r=()=>{}}){const[o,s]=$e({defaultProp:t,onChange:r}),a=e!==void 0,c=a?e:o,l=X(r),u=i.useCallback(d=>{if(a){const f=typeof d=="function"?d(e):d;f!==e&&l(f)}else s(d)},[a,e,s,l]);return[c,u]}function $e({defaultProp:e,onChange:t}){const r=i.useState(e),[o]=r,s=i.useRef(o),a=X(t);return i.useEffect(()=>{s.current!==o&&(a(o),s.current=o)},[o,s,a]),r}function ze(e){const t=Le(e),r=i.forwardRef((o,s)=>{const{children:a,...c}=o,l=i.Children.toArray(a),u=l.find(Ve);if(u){const d=u.props.children,m=l.map(f=>f===u?i.Children.count(d)>1?i.Children.only(null):i.isValidElement(d)?d.props.children:null:f);return n.jsx(t,{...c,ref:s,children:i.isValidElement(d)?i.cloneElement(d,void 0,m):null})}return n.jsx(t,{...c,ref:s,children:a})});return r.displayName=`${e}.Slot`,r}function Le(e){const t=i.forwardRef((r,o)=>{const{children:s,...a}=r;if(i.isValidElement(s)){const c=He(s),l=Fe(a,s.props);return s.type!==i.Fragment&&(l.ref=o?J(o,c):c),i.cloneElement(s,l)}return i.Children.count(s)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Be=Symbol("radix.slottable");function Ve(e){return i.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Be}function Fe(e,t){const r={...t};for(const o in t){const s=e[o],a=t[o];/^on[A-Z]/.test(o)?s&&a?r[o]=(...l)=>{a(...l),s(...l)}:s&&(r[o]=s):o==="style"?r[o]={...s,...a}
vendor: 4,335 bytes, line 1
1:o==="className"&&(r[o]=[s,a].filter(Boolean).join(" "))}return{...e,...r}}function He(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var We=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],E=We.reduce((e,t)=>{const r=ze(`Primitive.${t}`),o=i.forwardRef((s,a)=>{const{asChild:c,...l}=s,u=c?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),n.jsx(u,{...l,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function qe(e,t){return i.useReducer((r,o)=>t[r][o]??r,e)}var ne=e=>{const{present:t,children:r}=e,o=Ue(t),s=typeof r=="function"?r({present:o.isPresent}):i.Children.only(r),a=_(o.ref,Ge(s));return typeof r=="function"||o.isPresent?i.cloneElement(s,{ref:a}):null};ne.displayName="Presence";function Ue(e){const[t,r]=i.useState(),o=i.useRef({}),s=i.useRef(e),a=i.useRef("none"),c=e?"mounted":"unmounted",[l,u]=qe(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return i.useEffect(()=>{const d=S(o.current);a.current=l==="mounted"?d:"none"},[l]),D(()=>{const d=o.current,m=s.current;if(m!==e){const v=a.current,x=S(d);e?u("MOUNT"):x==="none"||d?.display==="none"?u("UNMOUNT"):u(m&&v!==x?"ANIMATION_OUT":"UNMOUNT"),s.current=e}},[e,u]),D(()=>{if(t){let d;const m=t.ownerDocument.defaultView??window,f=x=>{const b=S(o.current).includes(x.animationName);if(x.target===t&&b&&(u("ANIMATION_END"),!s.current)){const h=t.style.animationFillMode;t.style.animationFillMode="forwards",d=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=h)})}},v=x=>{x.target===t&&(a.current=S(o.current))};return t.addEventListener("animationstart",v),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{m.clearTimeout(d),t.removeEventListener("animationstart",v),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:i.useCallback(d=>{d&&(o.current=getComputedStyle(d)),r(d)},[])}}function S(e){return e?.animationName||"none"}function Ge(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}var B="Collapsible",[Ke,re]=z(B),[Ye,V]=Ke(B),oe=i.forwardRef((e,t)=>{const{__scopeCollapsible:r,open:o,defaultOpen:s,disabled:a,onOpenChange:c,...l}=e,[u=!1,d]=L({prop:o,defaultProp:s,onChange:c});return n.jsx(Ye,{scope:r,disabled:a,contentId:ee(),open:u,onOpenToggle:i.useCallback(()=>d(m=>!m),[d]),children:n.jsx(E.div,{"data-state":H(u),"data-disabled":a?"":void 0,...l,ref:t})})});oe.displayName=B;var se="CollapsibleTrigger",ae=i.forwardRef((e,t)=>{const{__scopeCollapsible:r,...o}=e,s=V(se,r);return n.jsx(E.button,{type:"button","aria-controls":s.contentId,"aria-expanded":s.open||!1,"data-state":H(s.open),"data-disabled":s.disabled?"":void 0,disabled:s.disabled,...o,ref:t,onClick:te(e.onClick,s.onOpenToggle)})});ae.displayName=se;var F="CollapsibleContent",ie=i.forwardRef((e,t)=>{const{forceMount:r,...o}=e,s=V(F,e.__scopeCollapsible);return n.jsx(ne,{present:r||s.open,children:({present:a})=>n.jsx(Ze,{...o,ref:t,present:a})})});ie.displayName=F;var Ze=i.forwardRef((e,t)=>{const{__scopeCollapsible:r,present:o,children:s,...a}=e,c=V(F,r),[l,u]=i.useState(o),d=i.useRef(null),m=_(t,d),f=i.useRef(0),v=f.current,x=i.useRef(0),A=x.current,b=c.open||l,h=i.useRef(b),w=i.useRef(void 0);return i.useEffect(()=>{const p=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(p)},[]),D(()=>{const p=d.current;if(p){w.current=w.current||{transitionDuration:p.style.transitionDuration,animationName:p.style.animationName},p.style.transitionDuration="0s",p.style.animationName="none";const y=p.getBoundingClientRect();f.current=y.height,x.current=y.width,h.current||(p.style.transitionDuration=w.current.transitionDuration,p.style.animationName=w.current.animationName),u(o)}}
1,[c.open,o]),n.jsx(E.div,{"data-state":H(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!b,...a,ref:m,style:{"--radix-collapsible-content-height":v?`${v}px`:void 0,"--radix-collapsible-content-width":A?`${A}px`:void 0,...e.style},children:b&&s})});function H(e){return e?"open":"closed"}var Je=oe,Qe=ae,Xe=ie,j="Accordion",et=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[W,tt,nt]=De(j),[k]=z(j,[nt,re]),q=re(),le=g.forwardRef((e,t)=>{const{type:r,...o}=e,s=o,a=o;return n.jsx(W.Provider,{scope:e.__scopeAccordion,children:r==="multiple"?n.jsx(at,{...a,ref:t}):n.jsx(st,{...s,ref:t})})});le.displayName=j;var[ce,rt]=k(j),[de,ot]=k(j,{collapsible:!1}),st=g.forwardRef((e,t)=>{const{value:r,defaultValue:o,onValueChange:s=()=>{},collapsible:a=!1,...c}=e,[l,u]=L({prop:r,defaultProp:o,onChange:s});return n.jsx(ce,{scope:e.__scopeAccordion,value:l?[l]:[],onItemOpen:u,onItemClose:g.useCallback(()=>a&&u(""),[a,u]),children:n.jsx(de,{scope:e.__scopeAccordion,collapsible:a,children:n.jsx(ue,{...c,ref:t})})})}),at=g.forwardRef((e,t)=>{const{value:r,defaultValue:o,onValueChange:s=()=>{},...a}=e,[c=[],l]=L({prop:r,defaultProp:o,onChange:s}),u=g.useCallback(m=>l((f=[])=>[...f,m]),[l]),d=g.useCallback(m=>l((f=[])=>f.filter(v=>v!==m)),[l]);return n.jsx(ce,{scope:e.__scopeAccordion,value:c,onItemOpen:u,onItemClose:d,children:n.jsx(de,{scope:e.__scopeAccordion,collapsible:!0,children:n.jsx(ue,{...a,ref:t})})})}),[it,O]=k(j),ue=g.forwardRef((e,t)=>{const{__scopeAccordion:r,disabled:o,dir:s,orientation:a="vertical",...c}=e,l=g.useRef(null),u=_(l,t),d=tt(r),f=Ee(s)==="ltr",v=te(e.onKeyDown,x=>{if(!et.includes(x.key))return;const A=x.target,b=d().filter(M=>!M.ref.current?.disabled),h=b.findIndex(M=>M.ref.current===A),w=b.length;if(h===-1)return;x.preventDefault();let p=h;const y=0,N=w-1,R=()=>{p=h+1,p>N&&(p=y)},I=()=>{p=h-1,p<y&&(p=N)};switch(x.key){case"Home":p=y;break;case"End":p=N;break;case"ArrowRight":a==="horizontal"&&(f?R():I());break;case"ArrowDown":a==="vertical"&&R();break;case"ArrowLeft":a==="horizontal"&&(f?I():R());break;case"ArrowUp":a==="vertical"&&I();break}const T=p%w;b[T].ref.current?.focus()});return n.jsx(it,{scope:r,disabled:o,direction:s,orientation:a,children:n.jsx(W.Slot,{scope:r,children:n.jsx(E.div,{...c,"data-orientation":a,ref:u,onKeyDown:o?void 0:v})})})}),P="AccordionItem",[lt,U]=k(P),fe=g.forwardRef((e,t)=>{const{__scopeAccordion:r,value:o,...s}=e,a=O(P,r),c=rt(P,r),l=q(r),u=ee(),d=o&&c.value.includes(o)||!1,m=a.disabled||e.disabled;return n.jsx(lt,{scope:r,open:d,disabled:m,triggerId:u,children:n.jsx(Je,{"data-orientation":a.orientation,"data-state":ve(d),...l,...s,ref:t,disabled:m,open:d,onOpenChange:f=>{f?c.onItemOpen(o):c.onItemClose(o)}})})});fe.displayName=P;var pe="AccordionHeader",me=g.forwardRef((e,t)=>{const{__scopeAccordion:r,...o}=e,s=O(j,r),a=U(pe,r);return n.jsx(E.h3,{"data-orientation":s.orientation,"data-state":ve(a.open),"data-disabled":a.disabled?"":void 0,...o,ref:t})});me.displayName=pe;var $="AccordionTrigger",xe=g.forwardRef((e,t)=>{const{__scopeAccordion:r,...o}=e,s=O(j,r),a=U($,r),c=ot($,r),l=q(r);return n.jsx(W.ItemSlot,{scope:r,children:n.jsx(Qe,{"aria-disabled":a.open&&!c.collapsible||void 0,"data-orientation":s.orientation,id:a.triggerId,...l,...o,ref:t})})});xe.displayName=$;var he="AccordionContent",ge=g.forwardRef((e,t)=>{const{__scopeAccordion:r,...o}=e,s=O(j,r),a=U(he,r),c=q(r);return n.jsx(Xe,{role:"region","aria-labelledby":a.triggerId,"data-orientation":s.orientation,...c,...o,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});ge.displayName=he;function ve(e){return e?"open":"closed"}var ct=le,dt=fe,ut=me,be=xe,ye=ge;const ft=ct,we=i.forwardRef(({className:e,...t},r)=>n.jsx(dt,{ref:r,className:C("border-b",e),...t}));we.displayName="AccordionItem";const Ne=i.forwardRef(({className:e,children:t,...r},o)=>n.jsx(ut,{className:"flex",children:n.jsxs(be,{ref:o,className:C("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",e),...r,children:[t,n.jsx(Se,{className:"h-4 w-4 shrink-0 text-neutral-500 transition-transform duration-200 dark:text-neutral-400"})]})}));Ne.displayName=be.displayName;const Ce=i.forwardRef(({className:e,children:t,...r},o)=>n.jsx(ye,{ref:o,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...r,children:n.jsx("div",{className:C("pb-4 pt-0",e),children:t})}));Ce.displayName=ye.displayName;const pt=[{question:"What is Budge AI, and how can it help me?",answer:"Budge AI is your personal AI accountant. It auto-syncs your expenses from SMS alerts and email receipts, categorizes them instantly, and organizes them into your budgets. No spreadsheets, no manual logging. Just clear insights and easy automation to keep your finances on track."},{question:"How does expense tracking work?",answer:"Budge AI reads the transaction notifications you already receive via SMS and email to log your spending automatically. You choose what gets tracked, and it even prevents double-logging if you use both sources. No bank APIs or passwords required."},{question:"Can I link my bank accounts, and is it safe?",answer:"You donât have to! Budge AI is designed so you never need to share sensitive login details. All the information it needs are notifications and receipts, which are processed securely to create transactions and generate insights."},{question:"How can I âtalk to my moneyâ with Budge AI?",answer:"Budge AI makes managing your money feel like a conversation. Ask questions like âHow much did I spend on dining last month?â or âAm I staying within my budget?â and get instant, clear answers. You can also scan receipts and documents to create transactions on the spot."},{question:"Does Budge AI support multiple currencies?",answer:"Yes! Budge AI seamlessly handles multi-currency transactions in a single, unified feed, whether it's your daily spending or international travel."},{question:"What is Email Sync?",answer:"Email Sync lets you automatically import and track financial activity from your email. It captures online purchases, invoices, and receipts that might not trigger a text alert."}];function mt(){return n.jsxs("div",{children:[n.jsxs("div",{className:"flex w-full flex-col items-center gap-5 border-b-[1.5px] border-neutral-800 px-5 py-5 sm:py-16",children:[n.jsx("h2",{className:"text-center font-dmsans text-3xl font-semibold tracking-tight text-white sm:text-5xl",children:"Frequently Asked Questions"}),n.jsx("p",{className:"text-center text-white",children:"Answers to common questions about Budge AI. If you have any other questions, please don't hesitate to contact us."})]}),n.jsx("div",{className:"max-w-7xl px-6 py-4 sm:py-16 lg:px-8",children:n.jsx("div",{className:"mx-auto max-w-4xl pb-10",children:n.jsx(ft,{type:"single",collapsible:!0,children:pt.map(e=>n.jsxs(we,{value:e.question,children:[n.jsx(Ne,{className:"text-base font-semibold text-white",children:e.question}),n.jsx(Ce,{className:"text-gray-300",children:e.answer})]},e.question))})})})]})}const xt=({name:e,className:t,background:r,Icon:o,description:s,href:a,cta:c,...l})=>n.jsxs("div",{className:C("group relative rounded-none col-span-3 flex flex-col justify-between overflow-hidden h-64 ","transform-gpu bg- [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]",t),...l,children:[n.jsx("div",{children:r}),n.jsxs("div",{className:"pointer-events-none z-10 flex transform-gpu flex-col gap-1 p-6 transition-all duration-300 group-hover:-translate-y-10",children:[n.jsx(o,{className:"h-12 w-12 origin-left transform-gpu text-neutral-700 transition-all duration-300 ease-in-out group-hover:scale-75"}),n.jsx("h3",{className:"text-xl font-semibold text-neutral-300",children:e}),n.jsx("p",{className:"max-w-lg text-neutral-400",children:s})]}),n.jsx("div",{className:"pointer-events-none absolute inset-0 transform-gpu transition-all duration-300 group-hover:bg-black/[.03] group-hover:dark:bg-neutral-800/10"})]},e);function Z({className:e="",side:t="left"}){return n.jsx("div",{className:` 2 row-span-full 3 max-sm:hidden 4 text-zinc-800 5 border-x 6 border-x-current 7 bg-[size:10px_10px] 8 bg-fixed 9 bg-[image:repeating-linear-gradient(315deg,currentColor_0,currentColor_1px,_transparent_0,_transparent_50%)]
10 ${t==="left"?"col-start-1":"col-start-3"} 11 w-full 12 ${e} 13 `})}function ht(){return n.jsxs("div",{className:"w-full border-t-2 border-t-neutral-800 sm:grid sm:grid-cols-[1fr_minmax(0,900px)_1fr]",children:[n.jsx(Z,{side:"left"}),n.jsxs("div",{className:"pt-16",children:[n.jsxs("div",{className:"flex w-full flex-col items-center justify-center gap-6 py-14",children:[n.jsx("p",{className:"px-2 text-center font-dmsans text-2xl text-white sm:text-4xl",children:"Personal Finance that works for You"}),n.jsx("p",{className:"max-w-xl p-4 text-center text-neutral-500 sm:text-lg",children:"Budge AI brings together smart expense tracking, intuitive budgeting, instant syncing, and personalized AI insights to help you manage your money with ease and confidence."})]}),n.jsx("div",{className:"w-full",children:n.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-4",children:je.map(e=>n.jsx(xt,{...e,className:`${e.className} min-h-[500px]`},e.name))})})]}),n.jsx(Z,{side:"right"})]})}const gt="/assets/Screenshot-VdHXq5Kr.png",vt=({children:e,className:t,shimmerWidth:r=100,...o})=>n.jsx("span",{style:{"--shiny-width":`${r}px`},className:C("mx-auto max-w-md text-neutral-400/70","animate-shiny-text bg-clip-text bg-no-repeat [background-position:0_0] [background-size:var(--shiny-width)_100%] [transition:background-position_1s_cubic-bezier(.6,.6,0,1)_infinite]","bg-gradient-to-r from-transparent via-black/80 via-50% to-transparent dark:via-white/80",t),...o,children:e}),bt=({className:e,size:t=50,delay:r=0,duration:o=6,colorFrom:s="#ffaa40",colorTo:a="#dcfce7",transition:c,style:l,reverse:u=!1,initialOffset:d=0})=>n.jsx("div",{className:"pointer-events-none absolute inset-0 rounded-[inherit] border border-transparent [mask-clip:padding-box,border-box] [mask-composite:intersect] [mask-image:linear-gradient(transparent,transparent),linear-gradient(#000,#000)]",children:n.jsx(Q.div,{className:C("absolute aspect-square","bg-gradient-to-l from-[var(--color-from)] via-[var(--color-to)] to-transparent",e),style:{width:t,offsetPath:`rect(0 auto auto 0 round ${t}px)`,"--color-from":s,"--color-to":a,...l},initial:{offsetDistance:`${d}%`},animate:{offsetDistance:u?[`${100-d}%`,`${-d}%`]:[`${d}%`,`${100+d}%`]},transition:{repeat:1/0,ease:"linear",duration:o,delay:-r,...c}})});function yt({children:e,shadowColor:t="black",className:r,as:o="span",...s}){const a=Q.create(o),c=typeof e=="string"?e:null;if(!c)throw new Error("LineShadowText only accepts string content");return n.jsx(a,{style:{"--shadow-color":t},className:C("relative z-0 inline-flex","after:absolute after:left-[0.04em] after:top-[0.04em] after:content-[attr(data-text)]","after:bg-[linear-gradient(45deg,transparent_45%,var(--shadow-color)_45%,var(--shadow-color)_55%,transparent_0)]","after:-z-10 after:bg-[length:0.06em_0.06em] after:bg-clip-text after:text-transparent","after:animate-line-shadow",r),"data-text":c,...s,children:c})}const wt=({className:e,children:t,borderSize:r=2,borderRadius:o=20,padding:s=6,neonColors:a={firstColor:"#ff00aa",secondColor:"#00FFF1"},...c})=>{const l=i.useRef(null),[u,d]=i.useState({width:0,height:0});i.useEffect(()=>{const f=()=>{if(l.current){const{offsetWidth:v,offsetHeight:x}=l.current;d({width:v,height:x})}};return f(),window.addEventListener("resize",f),()=>{window.removeEventListener("resize",f)}},[]),i.useEffect(()=>{if(l.current){const{offsetWidth:f,offsetHeight:v}=l.current;d({width:f,height:v})}},[t]);const m=typeof s=="number"?`${s}px`:s;return n.jsx("div",{ref:l,style:{"--border-size":`${r}px`,"--border-radius":`${o}px`,"--neon-first-color":a.firstColor,"--neon-second-color":a.secondColor,"--card-width":`${u.width}px`,"--card-height":`${u.height}px`,"--card-content-radius":`${o-r}px`,"--pseudo-element-width":`${u.width+r*2}px`,"--pseudo-element-height":`${u.height+r*2}
13px`,"--after-blur":`${u.width/6}px`,"--card-padding":m},className:C("relative z-10 size-fit rounded-[var(--border-radius)]",e),...c,children:n.jsx("div",{className:C("relative size-full min-h-[inherit] rounded-[var(--card-content-radius)] bg-transparent p-[var(--card-padding)]","before:absolute before:-left-[var(--border-size)] before:-top-[var(--border-size)] before:-z-10 before:block","before:h-[var(--pseudo-element-height)] before:w-[var(--pseudo-element-width)] before:rounded-[var(--border-radius)] before:content-['']","before:bg-transparent","after:absolute after:-left-[var(--border-size)] after:-top-[var(--border-size)] after:-z-10 after:block","after:h-[var(--pseudo-element-height)] after:w-[var(--pseudo-element-width)] after:rounded-[var(--border-radius)] after:blur-[var(--after-blur)] after:content-['']","after:bg-[linear-gradient(0deg,var(--neon-first-color),var(--neon-second-color))] after:bg-[length:100%_200%] after:opacity-70","after:animate-background-position-spin"),children:t})})};function Nt(){return n.jsx("div",{className:"relative py-24 sm:py-32 lg:pb-40",children:n.jsxs("div",{className:"mx-auto max-w-7xl px-6 lg:px-8",children:[n.jsxs("div",{className:"mx-auto max-w-2xl text-center",children:[n.jsx("div",{className:"z-10 my-5 flex min-h-fit items-center justify-center",children:n.jsx("div",{className:C("group rounded-full border border-neutral-700 bg-neutral-900 text-base text-white transition-all ease-in hover:cursor-pointer hover:bg-neutral-800"),children:n.jsx(vt,{className:"inline-flex items-center justify-center px-4 py-1 transition ease-out hover:duration-300 hover:dark:text-neutral-400",children:n.jsx("span",{className:"text-sm",children:"ð Now available on the App Store & Google Play"})})})}),n.jsxs("h1",{className:"font-dmsans text-5xl font-semibold tracking-tight text-white sm:text-7xl",children:["Track your spending"," ",n.jsx(yt,{className:"italic text-green-700",shadowColor:"#16a34a",children:"automatically"}),n.jsx("br",{className:"md:hidden"}),n.jsx("span",{className:"hidden md:inline",children:", "}),"no bank login required"]}),n.jsx("p",{className:"mt-8 text-pretty text-lg font-medium text-gray-400 sm:text-xl/8",children:"Budge AI auto-syncs your expenses from SMS and email, categorizes them instantly, and organizes them into your budgets. Plus, your personal AI accountant helps you scan receipts, analyze spending habits, and get actionable insights."})]}),n.jsx("div",{className:"mt-10 flex items-center justify-center gap-x-6",children:n.jsxs("div",{className:"flex flex-col items-center justify-center gap-4 sm:flex-row sm:gap-x-6",children:[n.jsx(G,{asChild:!0,className:"rounded-full bg-green-700 text-white hover:bg-green-600",size:"lg",onClick:()=>K("hero-google-play-click"),children:n.jsx("a",{href:Ae,target:"_blank",rel:"noreferrer",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ie,{className:"h-6 w-6"}),n.jsx("span",{children:"Get it on Google Play"})]})})}),n.jsx(G,{asChild:!0,className:"rounded-full bg-neutral-50 text-neutral-900 hover:bg-neutral-200",size:"lg",onClick:()=>K("hero-app-store-click"),children:n.jsx("a",{href:Re,target:"_blank",rel:"noreferrer",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(_e,{className:"h-6 w-6"}),n.jsx("span",{children:"Download on the App Store"})]})})})]})}),n.jsx("div",{className:"relative z-10",children:n.jsx(wt,{className:"mx-auto mt-16 w-fit max-w-full sm:mt-24",borderSize:0,padding:0,neonColors:{firstColor:"#dcfce7",secondColor:" #22c55e "},children:n.jsxs("div",{className:"relative h-fit w-fit max-w-full rounded-[3em] text-green-100 sm:rounded-[4rem]",children:[n.jsxs("svg",{role:"img",viewBox:"0 0 366 729",className:"mx-auto w-[22.875rem] max-w-full drop-shadow-xl",children:[n.jsx("title",{children:"App screenshot"}),n.jsx("defs",{children:n.jsx("clipPath",{id:"2ade4387-9c63-4fc4-b754-10e687a0d332",children:n.jsx("rect",{rx:36,width:316,height:684})})}),n.jsx("path",{d:"M363.315 64.213C363.315 22.99 341.312 1 300.092 1H66.751C25.53 1 3.528 22.99 3.528 64.213v44.68l-.857.143A2 2 0 0 0 1 111.009v24.611a2 2 0 0 0 1.671 1.973l.95.158a2.26 2.26 0 0 1-.093.236v26.173c.212.1.398.296.541.643l-1.398.233A2 2 0 0 0 1 167.009v47.611a2 2 0 0 0 1.671 1.973l1.368.228c-.139.319-.314.533-.511.653v16.637c.221.104.414.313.56.689l-1.417.236A2 2 0 0 0 1 237.009v47.611a2 2 0 0 0 1.671 1.973l1.347.225c-.135.294-.302.493-.49.607v377.681c0 41.213 22 63.208 63.223 63.208h95.074c.947-.504 2.717-.843 4.745-.843l.141.001h.194l.086-.001 33.704.005c1.849.043 3.442.37 4.323.838h95.074c41.222 0 63.223-21.999 63.223-63.212v-394.63c-.259-.275-.48-.796-.63-1.47l-.011-.133 1.655-.276A2 2 0 0 0 366 266.62v-77.611a2 2 0 0 0-1.671-1.973l-1.712-.285c.148-.839.396-1.491.698-1.811V64.213Z",fill:"#4B5563"}),n.jsx("path",{d:"M16 59c0-23.748 19.252-43 43-43h246c23.748 0 43 19.252 43 43v615c0 23.196-18.804 42-42 42H58c-23.196 0-42-18.804-42-42V59Z",fill:"#343E4E"}),n.jsx("foreignObject",{width:316,height:684,clipPath:"url(#2ade4387-9c63-4fc4-b754-10e687a0d332)",transform:"translate(24 24)",children:n.jsx("img",{alt:"App screenshot",src:gt,className:"h-full w-full object-cover object-left"})})]}),n.jsx(bt,{duration:8,size:100})]})})})]})})}function At(){return n.jsxs(n.Fragment,{children:[n.jsx(Nt,{}),n.jsx("div",{className:"sm:mt-32",children:n.jsx(ht,{})}),n.jsx("div",{className:"w-full pt-12 lg:pt-16",children:n.jsx(mt,{})})]})}export{At as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.