// faq.jsx — full FAQ accordion by category const { useState: useStateF } = React; function FAQ({ setRoute }) { const [category, setCategory] = useStateF("All"); const categories = [ { cat: "Ordering", items: [ { q: "How long does an animation take?", a: "Two to five days from the moment your brief is locked in. Starter is five days, Standard is four, Pro is two. If you need it faster, add rush delivery — 24 hours, +$50." }, { q: "Can I see the work in progress?", a: "Yes. You'll see the first cut after about 60–70% of the timeline, with time to send notes before final delivery. The progress tracker on your order page updates live." }, { q: "What file formats do I get?", a: "MP4 at 1080p in every package. Standard and Pro also get a transparent MOV (with alpha channel) so you can paste your logo over video. The .aep source file is a $50 add-on." }, { q: "Can I order more than one logo?", a: "Of course. Each is a separate order — but if you're commissioning three or more, send me a note and I'll bundle them at a discount." }, ], }, { cat: "Process", items: [ { q: "Do you use templates?", a: "Never. Every frame is keyed by hand in After Effects. If you see something on a marketplace template site, you're not getting it from me. That's the whole point of Visimatic." }, { q: "Do you use AI?", a: "For brainstorming and reference moodboards, sometimes. For the animation itself — no. AI generators don't yet understand brand-specific timing the way a person does, so they're not part of my pipeline." }, { q: "Do I need to send you a vector logo?", a: "It's the best starting point — SVG, AI, EPS or PDF. If you only have a PNG, I'll redraw it as vectors for $30 (the 'vectorise' add-on)." }, { q: "What if my brand doesn't have a clear style yet?", a: "Pick 'Leave it to you' on the order form and I'll send back two directions based on your sector and aesthetic references. We refine from there." }, ], }, { cat: "Pricing & payment", items: [ { q: "Is the price really one-off?", a: "Yes. Pay once, keep the files, no subscription. No 'licensing per platform' nonsense — you own the animation and can use it anywhere." }, { q: "What does Stripe charge?", a: "Nothing extra to you. Stripe takes their cut from my side. You see one number on the order summary and that's exactly what gets charged." }, { q: "Do you charge in USD?", a: "Yes, but Stripe converts at checkout, so you can pay in your local currency. The total on your card will closely match the USD total." }, { q: "Is the deposit refundable?", a: "Yes. Within seven days of payment, if you're not happy with the first cut, you get a full refund — no questions asked, no clawback of work in progress." }, ], }, { cat: "After delivery", items: [ { q: "Do I get commercial rights?", a: "Every package includes full commercial rights — broadcast, social, paid ads, web, anything. The only thing you can't do is resell the animation itself." }, { q: "Can I get edits later?", a: "Within the project, you get one (Starter, Standard) or two (Pro) revision rounds. After delivery, edits are billed at $60/hour with a one-hour minimum." }, { q: "What if my brand changes colours next year?", a: "If you commissioned the source file (.aep add-on), your team can recolour it themselves. Otherwise, recolouring runs around $60 — half an hour of work." }, { q: "Can I credit you?", a: "I'd love it — 'animated by Visimatic' anywhere on your site or socials is gratitude enough. Not required, just appreciated." }, ], }, ]; const visible = category === "All" ? categories : categories.filter(c => c.cat === category); const total = categories.reduce((s, c) => s + c.items.length, 0); return (
{/* ─── header ─── */}
— Frequently asked

Sixteen answers.
One DM away from more.

Most of what people ask, organised by category. Can't find what you need? The contact form is two clicks away.

{/* category chips */}
{[{ cat: "All", count: total }, ...categories.map(c => ({ cat: c.cat, count: c.items.length }))].map(c => { const active = category === c.cat; return ( ); })}
{/* ─── content ─── */}
{visible.map((c, idx) => (
{String(idx + 1).padStart(2, "0")} —
{c.cat}
))}
{/* ─── still curious? ─── */}
— Still curious?

Easier to just ask.

Replies within 24 hours. Often within the hour, depending on time zones.

); } Object.assign(window, { FAQ });