PageSourceSearch

https://txtvo.com/

html txtvo.com collected 2026-10-08 07:56:26 UTC 79,246 bytes, 21 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/logo.svg"/><link rel="stylesheet" href="/assets/index-bhqOGYXc.css" data-precedence="default"/>
vendor: 72 bytes, line 1
1<script id="ga-loader" src="https://www.googletagmanager.com/gtag/js?id=
1G-ZYWZ140L6C
vendor: 20 bytes, line 1
1" async=""></script>
1<script id="plausible-loader" data-domain="txtvo.com" src="https://plausible.photototranslate.com/js/script" async=""></script>
1<title>Faceless AI Video Storyboard Generator | TXTVO</title><meta name="description" content="Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render."/><meta property="og:type" content="website"/><meta property="og:title" content="Faceless AI Video Storyboard Generator | TXTVO"/><meta property="og:description" content="Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render."/><meta property="og:url" content="https://txtvo.com/"/><meta property="og:site_name" content="TXTVO"/><meta property="og:locale" content="en_US"/><meta property="og:locale:alternate" content="zh_CN"/><meta property="og:image" content="https://txtvo.com/og-image.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="TXTVO storyboard preview"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Faceless AI Video Storyboard Generator | TXTVO"/><meta name="twitter:description" content="Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render."/><meta name="twitter:image" content="https://txtvo.com/og-image.png"/><link rel="modulepreload" href="/assets/index-D9DJAGrQ.js"/><link rel="modulepreload" href="/assets/jsx-runtime-C27Mmbu5.js"/><link rel="modulepreload" href="/assets/useStore-B4GNwqYv.js"/><link rel="modulepreload" href="/assets/link-BH8FtUoC.js"/><link rel="modulepreload" href="/assets/matchContext-BvFX7iVu.js"/><link rel="modulepreload" href="/assets/qss-CuvTgpZA.js"/><link rel="modulepreload" href="/assets/createServerFn-BCVeLJUQ.js"/><link rel="modulepreload" href="/assets/react-dom-BGozS2fx.js"/><link rel="modulepreload" href="/assets/routes-CAead-aA.js"/><link rel="modulepreload" href="/assets/button-BY4_7pDt.js"/><link rel="modulepreload" href="/assets/useOpenInteractionType-B_Xxf4tI.js"/><link rel="modulepreload" href="/assets/useCompositeListItem-yWRLYncO.js"/><link rel="modulepreload" href="/assets/input-ChFMCDRV.js"/><link rel="modulepreload" href="/assets/createBaseUIEventDetails-G_iMlgCD.js"/><link rel="modulepreload" href="/assets/navigation-4UWA5xkk.js"/><link rel="modulepreload" href="/assets/utils-DXalBF5w.js"/><link rel="modulepreload" href="/assets/storyboard-demo-b4EwOEsB.js"/><link rel="modulepreload" href="/assets/header-BaLJ9O0P.js"/><link rel="modulepreload" href="/assets/chevron-down-B1TGsPcT.js"/><link rel="modulepreload" href="/assets/chevron-up-DCRDlIdA.js"/><link rel="modulepreload" href="/assets/external-link-uWpmwniK.js"/><link rel="modulepreload" href="/assets/pricing-FZw6UwPb.js"/><link rel="modulepreload" href="/assets/support-widget-WpIl96_O.js"/><link rel="modulepreload" href="/assets/lock-keyhole-62Dd0sz3.js"/><link rel="modulepreload" href="/assets/refresh-cw-ECMldLb0.js"/><link rel="icon" href="/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/favicon.svg"/><link rel="canonical" href="https://txtvo.com/"/><link rel="alternate" hrefLang="en" href="https://txtvo.com/"/><link rel="alternate" hrefLang="zh" href="https://txtvo.com/zh"/><link rel="alternate" hrefLang="x-default" href="https://txtvo.com/"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://txtvo.com/#organization","name":"TXTVO","url":"https://txtvo.com/","logo":"https://txtvo.com/logo.svg"},{"@type":"WebSite","@id":"https://txtvo.com/#website","url":"https://txtvo.com/","name":"TXTVO","inLanguage":["en","zh"],"publisher":{"@id":"https://txtvo.com/#organization"}},{"@type":"WebPage","@id":"https://txtvo.com/#webpage","url":"https://txtvo.com/","name":"Faceless AI Video Storyboard Generator | TXTVO","description":"Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render.","inLanguage":"en","isPartOf":{"@id":"https://txtvo.com/#website"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://txtvo.com/og-image.png","width":1200,"height":630}},{"@type":"SoftwareApplication","@id":"https://txtvo.com/#software","name":"TXTVO Text-First AI Video Storyboard Generator","applicationCategory":"MultimediaApplication","operatingSystem":"Web","url":"https://txtvo.com/","description":"Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render.","publisher":{"@id":"https://txtvo.com/#organization"},"featureList":["Timed storyboard scenes","Narration and caption planning","Visual direction","Markdown and CSV export","Optional model-dependent video proof"]}]}</script>
1</head><body class="font-sans antialiased">
1<script>((e, i, s, u, m, a, l, h) => {
2	let d = document.documentElement, w = ["light", "dark"];
3	function p(n) {
4		(Array.isArray(e) ? e : [e]).forEach((y) => {
5			let k = y === "class", S = k && a ? m.map((f) => a[f] || f) : m;
6			k ? (d.classList.remove(...S), d.classList.add(a && a[n] ? a[n] : n)) : d.setAttribute(y, n);
7		}), R(n);
8	}
9	function R(n) {
10		h && w.includes(n) && (d.style.colorScheme = n);
11	}
12	function c() {
13		return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
14	}
15	if (u) p(u);
16	else try {
17		let n = localStorage.getItem(i) || s;
18		p(l && n === "system" ? c() : n);
19	} catch (n) {}
20})("class","theme","system",null,["light","dark"],null,true,true)</script>
20<!--$--><div class="txtvo-home bg-background text-foreground flex min-h-screen flex-col"><header class="border-border bg-background/92 sticky top-0 z-50 w-full border-b backdrop-blur-md"><div class="mx-auto flex h-[70px] max-w-7xl items-center justify-between px-4 sm:px-6"><a class="flex min-h-11 items-center gap-2.5 active" href="/" data-status="active" aria-current="page"><img src="/logo.svg" alt="" width="32" height="32" class="size-8 rounded-lg"/><span class="text-lg font-black tracking-[-0.04em]">TXTVO</span></a><nav class="hidden items-center gap-7 lg:flex"><a href="/tools" class="text-muted-foreground hover:text-foreground text-sm transition-colors">All tools</a><a href="/#workflow" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Product</a><a href="/#examples" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Examples</a><a href="/#templates" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Templates</a><a href="/pricing" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Access &amp; credits</a></nav><div class="hidden items-center gap-3 lg:flex"><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_qqa6aq_" data-slot="dropdown-menu-trigger" class="inline-flex items-center transition-colors outline-none text-muted-foreground hover:bg-accent hover:text-accent-foreground size-11 justify-center rounded-md"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages size-4" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg><span class="sr-only">Switch language</span></button><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50 size-11"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun size-4 dark:hidden" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon hidden size-4 dark:block" aria-hidden="true"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><a href="/sign-in" class="text-muted-foreground hover:text-foreground inline-flex min-h-11 items-center text-sm font-semibold transition-colors">Sign In</a><a href="/#generator" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
20px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-11 gap-1.5 rounded-lg px-4 font-semibold transition-transform active:scale-[0.98]">Create a storyboard<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-4" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div><button class="hover:bg-muted focus-visible:ring-ring flex size-11 items-center justify-center rounded-lg transition-colors focus-visible:ring-2 focus-visible:outline-none lg:hidden" aria-label="Open menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu size-5" aria-hidden="true"><path d="M4 12h16"></path><path d="M4 18h16"></path><path d="M4 6h16"></path></svg></button></div></header><main><div class="txtvo-hero-surface relative isolate overflow-clip px-4 pt-10 pb-20 sm:px-6 sm:pt-16 sm:pb-28 lg:pt-14 lg:pb-20"><div aria-hidden="true" class="bg-primary/6 absolute top-[19rem] right-0 bottom-8 left-0 -z-10 hidden rounded-[2rem] lg:block"></div><div class="mx-auto max-w-7xl"><section aria-labelledby="home-hero-title" class="txtvo-hero-copy grid items-end gap-8 lg:grid-cols-[1.12fr_0.88fr] lg:gap-16"><h1 id="home-hero-title" class="text-foreground max-w-[15ch] text-[2.5rem] leading-[1.02] font-black tracking-[-0.045em] sm:text-[4rem] sm:leading-[0.96] lg:text-[4.75rem]">Plan a faceless video before you pay to render it.</h1><div class="pb-1"><p class="text-muted-foreground max-w-[49ch] text-base leading-relaxed sm:text-lg lg:text-[1.08rem]">Turn a topic or script into a reviewable scene plan with narration, captions, visual direction, and production preflight.</p><div class="mt-7 flex flex-col gap-3 sm:flex-row"><a href="#generator" class="bg-primary text-primary-foreground hover:bg-primary/90 focus-visible:ring-ring inline-flex h-12 items-center justify-center gap-2 rounded-lg px-6 text-sm font-semibold whitespace-nowrap transition-[transform,background-color,box-shadow] focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none active:scale-[0.98]">Create a storyboard<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-right size-4" aria-hidden="true"><path d="m7 7 10 10"></path><path d="M17 7v10H7"></path></svg></a><a href="/templates/video-storyboard-brief.csv" download="" class="border-border bg-background hover:bg-muted focus-visible:ring-ring inline-flex h-12 items-center justify-center gap-2 rounded-lg border px-6 text-sm font-semibold whitespace-nowrap transition-[transform,background-color,border-color] focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none active:scale-[0.98]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-download size-4" aria-hidden="true"><path d="M12 15V3"></path><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><path d="m7 10 5 5 5-5"></path></svg>Download the CSV brief</a></div></div></section><section aria-label="AI video storyboard workspace" class="mt-10 min-w-0 sm:mt-12 lg:mt-14"><div id="generator" class="bg-card relative scroll-mt-20 overflow-hidden rounded-[var(--radius-xl)] shadow-[0_32px_90px_oklch(0.19_0.025_35/0.18)]"><div class="border-border flex flex-col items-start gap-2 border-b px-4 py-3 sm:flex-row sm:items-center sm:justify-between sm:px-5"><div class="flex min-w-0 items-center gap-2.5"><span class="bg-primary text-primary-foreground flex size-8 items-center justify-center rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-play size-3.5 fill-current" aria-hidden="true"><polygon points="6 3 20 12 6 21 6 3"></polygon></svg></span>
20<p class="text-sm font-semibold">AI video storyboard workspace</p></div><span class="text-muted-foreground pl-10 font-mono text-[11px] tracking-tight sm:pl-0 sm:text-right">Fixed sample. Live API after submit.</span></div><div class="grid gap-0 lg:grid-cols-[0.92fr_1.08fr]"><form class="border-border space-y-3 border-b p-4 sm:p-5 lg:border-r lg:border-b-0"><div class="bg-muted grid grid-cols-3 gap-1 rounded-lg p-1"><button type="button" aria-pressed="true" class="flex h-11 items-center justify-center gap-1.5 rounded-md px-2 text-xs font-semibold transition-colors sm:h-9 bg-background text-foreground shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles size-3.5" aria-hidden="true"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg>Topic</button><button type="button" aria-pressed="false" class="flex h-11 items-center justify-center gap-1.5 rounded-md px-2 text-xs font-semibold transition-colors sm:h-9 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-align-left size-3.5" aria-hidden="true"><path d="M15 12H3"></path><path d="M17 18H3"></path><path d="M21 6H3"></path></svg>Script</button><button type="button" aria-pressed="false" class="flex h-11 items-center justify-center gap-1.5 rounded-md px-2 text-xs font-semibold transition-colors sm:h-9 text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link2 lucide-link-2 size-3.5" aria-hidden="true"><path d="M9 17H7A5 5 0 0 1 7 7h2"></path><path d="M15 7h2a5 5 0 1 1 0 10h-2"></path><line x1="8" x2="16" y1="12" y2="12"></line></svg>URL</button></div><div class="space-y-2"><p class="text-muted-foreground text-xs font-medium">Try a production brief</p><div class="flex flex-wrap gap-2"><button type="button" class="border-border bg-background hover:border-primary/50 hover:bg-primary/5 min-h-11 rounded-md border px-2.5 py-2 text-left text-xs leading-snug transition-colors sm:min-h-0 sm:py-1.5">45s history mystery</button><button type="button" class="border-border bg-background hover:border-primary/50 hover:bg-primary/5 min-h-11 rounded-md border px-2.5 py-2 text-left text-xs leading-snug transition-colors sm:min-h-0 sm:py-1.5">30s visual explainer</button><button type="button" class="border-border bg-background hover:border-primary/50 hover:bg-primary/5 min-h-11 rounded-md border px-2.5 py-2 text-left text-xs leading-snug transition-colors sm:min-h-0 sm:py-1.5">60s narrated story</button></div></div><label class="block" for="storyboard-source"><span class="sr-only">Describe one faceless video idea and the audience takeaway</span><textarea id="storyboard-source" aria-invalid="false" aria-describedby="storyboard-input-help" maxLength="500" rows="4" placeholder="Describe one faceless video idea and the audience takeaway" class="border-input bg-background placeholder:text-muted-foreground/70 focus:border-primary focus:ring-primary/20 min-h-24 w-full resize-none rounded-lg border px-3.5 py-3 text-sm leading-relaxed transition outline-none focus:ring-3">Why the buried city still shapes how people read Vesuvius</textarea></label><div class="grid grid-cols-1 gap-3 min-[360px]:grid-cols-2"><label class="space-y-1.5"><span class="text-muted-foreground text-xs font-medium">Platform</span><select class="border-input bg-background focus:border-primary h-11 w-full rounded-lg border px-3 text-sm outline-none"><option value="youtube-shorts" selected="">YT Shorts</option><option value="instagram-reels">IG Reels</option><option value="tiktok">TikTok</option></select></label><label class="space-y-1.5"><span class="text-muted-foreground text-xs font-medium">Target length</span><select class="border-input bg-background focus:border-primary h-11 w-full rounded-lg border px-3 text-sm outline-none"><option value="30-45" selected="">
2030-45 sec</option><option value="45-60">45-60 sec</option><option value="60-90">60-90 sec</option></select></label><label class="space-y-1.5"><span class="text-muted-foreground flex items-center gap-1.5 text-xs font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages size-3.5" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg>Output language</span><select class="border-input bg-background focus:border-primary h-11 w-full rounded-lg border px-3 text-sm outline-none"><option value="en" selected="">English</option><option value="zh">简体中文</option><option value="es">Español</option><option value="ja">日本語</option></select></label><label class="space-y-1.5"><span class="text-muted-foreground flex items-center gap-1.5 text-xs font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scale size-3.5" aria-hidden="true"><path d="m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="M7 21h10"></path><path d="M12 3v18"></path><path d="M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2"></path></svg>Visual route</span><select class="border-input bg-background focus:border-primary h-11 w-full rounded-lg border px-3 text-sm outline-none"><option value="balanced" selected="">Stock/AI</option><option value="licensed-stock">Licensed stock</option><option value="ai-images">AI stills</option><option value="ai-video">AI video</option></select></label></div><div class="border-border bg-muted/50 flex items-center justify-between gap-3 rounded-lg border px-3.5 py-2.5 text-xs"><span class="text-muted-foreground font-medium">Storyboard charge</span><span class="font-semibold">Loading current cost...</span></div><button type="submit" data-disabled="" tabindex="0" disabled="" data-slot="button" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 gap-1.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-12 w-full rounded-lg px-5 font-semibold">Generate live storyboard</button><p id="storyboard-input-help" class="text-muted-foreground text-xs leading-relaxed">TXTVO does not fetch linked pages. Paste approved source text when wording matters. Live generation uses the storyboard credit charge shown above.</p></form><div class="bg-muted/45 min-h-[430px] p-4 sm:p-5" aria-busy="false"><div class="txtvo-frame-in space-y-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><p class="text-primary font-mono text-[11px] font-semibold tracking-wide uppercase">Fixed storyboard sample</p><p class="mt-1 line-clamp-2 text-sm leading-snug font-semibold">Sample topic: Why the buried city still shapes how people read Vesuvius</p></div><span class="border-border bg-background shrink-0 rounded-md border px-2 py-1 font-mono text-[10px]">9:16</span></div><div><div class="mb-2 flex items-center justify-between"><p class="text-xs font-semibold">Timed scene plan</p><span class="text-muted-foreground flex items-center gap-1 font-mono text-[10px]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock3 lucide-clock-3 size-3" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16.5 12"></polyline></svg> <!-- -->00:45</span></div><div class="grid grid-cols-1 gap-2 min-[360px]:grid-cols-2 sm:grid-cols-3"><div class="min-w-0"><div><div role="img" aria-label="Reusable sample artwork, not generated B-roll. Open on the accepted story. Sample visual direction: establish the familiar version before adding context." class="border-border aspect-[9/13] rounded-lg border bg-cover" style="background-image:url(&#x27;
20/imgs/generated/vesuvius-storyboard-1787646066914.jpg&#x27;);background-position:0% 0%;background-size:300% 300%"></div></div><p class="text-muted-foreground mt-1 font-mono text-[10px]">Sample artwork</p><p class="mt-1.5 truncate text-xs font-semibold">Open on the accepted story</p><p class="text-muted-foreground font-mono text-[11px]">00:00</p><p class="text-muted-foreground mt-1 line-clamp-2 text-xs leading-snug">Sample visual direction: establish the familiar version before adding context.</p></div><div class="min-w-0"><div><div role="img" aria-label="Reusable sample artwork, not generated B-roll. Show the missing evidence. Sample visual direction: separate what the record supports from later retellings." class="border-border aspect-[9/13] rounded-lg border bg-cover" style="background-image:url(&#x27;/imgs/generated/vesuvius-storyboard-1787646066914.jpg&#x27;);background-position:50% 0%;background-size:300% 300%"></div></div><p class="text-muted-foreground mt-1 font-mono text-[10px]">Sample artwork</p><p class="mt-1.5 truncate text-xs font-semibold">Show the missing evidence</p><p class="text-muted-foreground font-mono text-[11px]">00:05</p><p class="text-muted-foreground mt-1 line-clamp-2 text-xs leading-snug">Sample visual direction: separate what the record supports from later retellings.</p></div><div class="min-w-0"><div><div role="img" aria-label="Reusable sample artwork, not generated B-roll. Close on the useful insight. Sample visual direction: make the final point memorable without overstating it." class="border-border aspect-[9/13] rounded-lg border bg-cover" style="background-image:url(&#x27;/imgs/generated/vesuvius-storyboard-1787646066914.jpg&#x27;);background-position:100% 0%;background-size:300% 300%"></div></div><p class="text-muted-foreground mt-1 font-mono text-[10px]">Sample artwork</p><p class="mt-1.5 truncate text-xs font-semibold">Close on the useful insight</p><p class="text-muted-foreground font-mono text-[11px]">00:12</p><p class="text-muted-foreground mt-1 line-clamp-2 text-xs leading-snug">Sample visual direction: make the final point memorable without overstating it.</p></div></div></div><section class="border-border bg-background overflow-hidden rounded-lg border" aria-labelledby="storyboard-preflight-title"><div class="border-border flex items-center gap-2 border-b px-3 py-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check text-primary size-4" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><h3 id="storyboard-preflight-title" class="text-xs font-semibold">Preflight before motion</h3></div><div class="divide-border grid divide-y sm:grid-cols-2 sm:divide-x sm:divide-y-0"><div class="space-y-3 p-3"><p class="flex items-start gap-2 text-xs leading-relaxed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check text-primary mt-0.5 size-3.5 shrink-0" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="m9 12 2 2 4-4"></path></svg>YouTube Shorts: review disclosure and originality rules before publishing.</p><p class="flex items-start gap-2 text-xs leading-relaxed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scale text-primary mt-0.5 size-3.5 shrink-0" aria-hidden="true"><path d="m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z"></path><path d="M7 21h10"></path><path d="M12 3v18"></path>
20<path d="M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2"></path></svg>Use licensed or owned media, and label AI stills where platform rules require it.</p></div><div class="space-y-3 p-3"><p class="flex items-start gap-2 text-xs leading-relaxed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-coins text-primary mt-0.5 size-3.5 shrink-0" aria-hidden="true"><circle cx="8" cy="8" r="6"></circle><path d="M18.09 10.37A6 6 0 1 1 10.34 18"></path><path d="M7 6h1v4"></path><path d="m16.71 13.88.7.71-2.82 2.82"></path></svg>Generate to see the video-preview cost</p><p class="flex items-start gap-2 text-xs leading-relaxed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check text-primary mt-0.5 size-3.5 shrink-0" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg>Review stays on. TXTVO does not publish to your channel.</p></div></div></section></div></div></div></div></section></div></div><section id="examples" class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto grid max-w-7xl items-center gap-10 lg:grid-cols-[1.2fr_0.8fr] lg:gap-16"><figure class="bg-card overflow-hidden rounded-[var(--radius-xl)] p-2 shadow-[0_24px_70px_oklch(0.19_0.025_35/0.14)]"><img src="/imgs/generated/vesuvius-storyboard-1787646066914.jpg" alt="Sample TXTVO vertical storyboard artwork showing three scenes near Mount Vesuvius" width="1024" height="576" loading="lazy" decoding="async" class="aspect-video w-full rounded-lg object-cover"/><figcaption class="text-muted-foreground px-2 py-2.5 font-mono text-[11px]">Sample artwork frames the plan. Generated text appears only after a successful request.</figcaption></figure><div><h2 class="max-w-xl text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">A storyboard is where expensive mistakes should look cheap.</h2><p class="text-muted-foreground mt-5 max-w-[52ch] text-base leading-relaxed sm:text-lg">A live result contains timed narration, visual direction, and captions. The frames shown here are reusable sample artwork, not generated footage or a customer result.</p><div class="border-border mt-8 border-t"><div class="border-border grid grid-cols-[auto_1fr] gap-4 border-b py-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-captions text-primary mt-0.5 size-5" aria-hidden="true"><rect width="18" height="14" x="3" y="5" rx="2" ry="2"></rect><path d="M7 15h4M15 15h2M7 11h2M13 11h4"></path></svg><div><h3 class="text-sm font-bold">Read narration with captions</h3><p class="text-muted-foreground mt-1 text-sm leading-relaxed">Check that what viewers hear and read supports the same point.</p></div></div><div class="border-border grid grid-cols-[auto_1fr] gap-4 border-b py-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-audio-lines text-primary mt-0.5 size-5" aria-hidden="true"><path d="M2 10v3"></path><path d="M6 6v11"></path><path d="M10 3v18"></path><path d="M14 8v7"></path><path d="M18 5v13"></path><path d="M22 10v3"></path></svg><div><h3 class="text-sm font-bold">Challenge the proposed shot</h3><p class="text-muted-foreground mt-1 text-sm leading-relaxed">Catch irrelevant visual direction before a paid video job begins.</p></div></div><div class="border-border grid grid-cols-[auto_1fr] gap-4 border-b py-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-check text-primary mt-0.5 size-5" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="m9 12 2 2 4-4"></path></svg><div><h3 class="text-sm font-bold">Set the pacing up front</h3><p class="text-muted-foreground mt-1 text-sm leading-relaxed">Choose Shorts, Reels, or TikTok and a 30-90 second target before generating.</p></div></div></div></div></div></section><section id="workflow" class="txtvo-reveal border-border bg-muted/35 border-y px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto max-w-7xl"><div class="max-w-3xl"><h2 class="text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">From verified claim to an editor-ready handoff.</h2><p class="text-muted-foreground mt-5 max-w-[58ch] text-base leading-relaxed sm:text-lg">Generate and approve the scene plan first. Video generation stays a separate credit decision.</p></div><div class="bg-border border-border mt-12 grid gap-px overflow-hidden rounded-[var(--radius-xl)] border md:grid-cols-2 lg:grid-cols-12"><article class="relative flex min-h-64 flex-col justify-between p-6 sm:p-7 lg:min-h-80 lg:col-span-4 bg-primary text-primary-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-input size-6 text-primary-foreground" aria-hidden="true"><path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="M2 15h10"></path><path d="m9 18 3-3-3-3"></path></svg><div class="mt-14"><h3 class="font-bold tracking-tight text-2xl">Enter the brief</h3>
20<p class="mt-3 text-sm leading-relaxed text-primary-foreground/75">Name one audience, one verified claim, and one destination. Paste approved source text when wording matters.</p></div></article><article class="relative flex min-h-64 flex-col justify-between p-6 sm:p-7 lg:min-h-80 lg:col-span-3 bg-card text-card-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panels-top-left size-6 text-primary" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M3 9h18"></path><path d="M9 21V9"></path></svg><div class="mt-14"><h3 class="font-bold tracking-tight text-xl">Generate timed scenes</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground">A signed-in account with site credits requests a six-scene plan for the chosen platform, language, visual route, and target length.</p></div></article><article class="relative flex min-h-64 flex-col justify-between p-6 sm:p-7 lg:min-h-80 lg:col-span-2 bg-card text-card-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-eye size-6 text-primary" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><circle cx="12" cy="12" r="1"></circle><path d="M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0"></path></svg><div class="mt-14"><h3 class="font-bold tracking-tight text-xl">Reject weak scenes</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground">Check product truth, narration, captions, visual direction, and timing before motion costs begin.</p></div></article><article class="relative flex min-h-64 flex-col justify-between p-6 sm:p-7 lg:min-h-80 lg:col-span-3 bg-card text-card-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-film size-6 text-primary" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M7 3v18"></path><path d="M3 7.5h4"></path><path d="M3 12h18"></path><path d="M3 16.5h4"></path><path d="M17 3v18"></path><path d="M17 7.5h4"></path><path d="M17 16.5h4"></path></svg><div class="mt-14"><h3 class="font-bold tracking-tight text-xl">Export or render</h3><p class="mt-3 text-sm leading-relaxed text-muted-foreground">Copy Markdown, download CSV, or choose an available video model after the storyboard passes review.</p></div></article></div></div></section><section id="control" class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto grid max-w-7xl gap-12 lg:grid-cols-[0.8fr_1.2fr] lg:gap-20"><div class="lg:sticky lg:top-28 lg:self-start"><h2 class="max-w-xl text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">Keep the expensive step deliberate.</h2><p class="text-muted-foreground mt-5 max-w-[52ch] text-base leading-relaxed sm:text-lg">Planning and video generation are separate, so a weak structure can be rejected before the second credit charge.</p><p class="border-primary text-foreground mt-8 border-l-2 pl-4 text-sm leading-relaxed font-semibold">This workflow creates a text scene plan and optional model-dependent video proof. It does not create visual storyboard frames, a complete edit, or an automatic post.</p></div><div class="border-border border-t"><article class="border-border group grid gap-5 border-b py-7 sm:grid-cols-[auto_1fr] sm:py-8"><span class="border-border bg-card group-hover:border-primary flex size-11 items-center justify-center rounded-lg border transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers text-primary size-5" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></span><div><h3 class="text-xl font-bold tracking-tight">Structured scene plan</h3><p class="text-muted-foreground mt-2 max-w-[58ch] text-sm leading-relaxed sm:text-base">The generator targets six timed scenes and keeps narration, captions, and visual direction together for review.</p></div></article><article class="border-border group grid gap-5 border-b py-7 sm:grid-cols-[auto_1fr] sm:py-8"><span class="border-border bg-card group-hover:border-primary flex size-11 items-center justify-center rounded-lg border transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-primary size-5" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></span><div><h3 class="text-xl font-bold tracking-tight">Portable storyboard export</h3><p class="text-muted-foreground mt-2 max-w-[58ch] text-sm leading-relaxed sm:text-base">Copy the live plan as Markdown or download CSV for an editor, contractor, or production tracker.</p></div></article><article class="border-border group grid gap-5 border-b py-7 sm:grid-cols-[auto_1fr] sm:py-8"><span class="border-border bg-card group-hover:border-primary flex size-11 items-center justify-center rounded-lg border transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-receipt-text text-primary size-5" aria-hidden="true"><path d="M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z"></path><path d="M14 8H8"></path><path d="M16 12H8"></path><path d="M13 16H8"></path></svg></span><div><h3 class="text-xl font-bold tracking-tight">Cost before video submit</h3><p class="text-muted-foreground mt-2 max-w-[58ch] text-sm leading-relaxed sm:text-base">See both current storyboard and preview-video credit charges before starting each job.</p></div></article><article class="border-border group grid gap-5 border-b py-7 sm:grid-cols-[auto_1fr] sm:py-8"><span class="border-border bg-card group-hover:border-primary flex size-11 items-center justify-center rounded-lg border transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-check text-primary size-5" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="m9 12 2 2 4-4"></path></svg></span><div><h3 class="text-xl font-bold tracking-tight">Visible failure handling</h3><p class="text-muted-foreground mt-2 max-w-[58ch] text-sm leading-relaxed sm:text-base">Account, configuration, rate-limit, provider-credit, and render errors stay visible; failed or cancelled tasks restore reserved site credits.</p></div></article></div></div></section><section id="templates" class="txtvo-reveal overflow-hidden px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto max-w-7xl"><div class="max-w-3xl"><h2 class="text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">Four faceless formats worth storyboarding.</h2><p class="text-muted-foreground mt-5 max-w-[58ch] text-base leading-relaxed sm:text-lg">These prompts define useful starting jobs. They are not separate template generators.</p></div><div class="mt-12 grid snap-x auto-cols-[82%] grid-flow-col gap-4 overflow-x-auto pb-4 [scrollbar-width:none] sm:auto-cols-[46%] lg:h-[42rem] lg:auto-cols-auto lg:grid-flow-row lg:grid-cols-12 lg:grid-rows-3 lg:overflow-visible lg:pb-0 [&amp;::-webkit-scrollbar]:hidden"><article class="border-border bg-card flex h-full min-w-0 snap-start flex-col overflow-hidden rounded-[var(--radius-xl)] border p-2 lg:col-span-5 lg:row-span-3"><div role="img" aria-label="History short" class="aspect-[4/3] rounded-lg bg-cover lg:aspect-auto lg:min-h-0 lg:flex-1" style="background-image:url(&#x27;/imgs/generated/txtvo-storyboard-template-atlas.webp&#x27;);background-position:0% 50%;background-size:400% 100%"></div><div class="px-2 pt-4 pb-3"><h3 class="text-lg font-bold tracking-tight">History short</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">Use a clear hook, chronological movement, and source-aware visual direction.</p></div></article><article class="border-border bg-card flex h-full min-w-0 snap-start flex-col overflow-hidden rounded-[var(--radius-xl)] border p-2 lg:col-span-7 lg:col-start-6 lg:row-start-1 lg:grid lg:grid-cols-[minmax(12rem,0.82fr)_minmax(0,1.18fr)]"><div role="img" aria-label="Visual explainer" class="aspect-[4/3] rounded-lg bg-cover lg:aspect-auto lg:h-full" style="background-image:url(&#x27;/imgs/generated/txtvo-storyboard-template-atlas.webp&#x27;);background-position:33.333% 50%;background-size:400% 100%"></div><div class="px-2 pt-4 pb-3 lg:flex lg:flex-col lg:justify-center lg:px-6 lg:py-5"><h3 class="text-lg font-bold tracking-tight">Visual explainer</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">Break one difficult concept into scenes viewers can follow without an on-camera host.</p></div></article><article class="border-border bg-card flex h-full min-w-0 snap-start flex-col overflow-hidden rounded-[var(--radius-xl)] border p-2 lg:col-span-7 lg:col-start-6 lg:row-start-2 lg:grid lg:grid-cols-[minmax(12rem,0.82fr)_minmax(0,1.18fr)]"><div role="img" aria-label="Narrated story" class="aspect-[4/3] rounded-lg bg-cover lg:aspect-auto lg:h-full" style="background-image:url(&#x27;/imgs/generated/txtvo-storyboard-template-atlas.webp&#x27;);background-position:66.667% 50%;background-size:400% 100%"></div><div class="px-2 pt-4 pb-3 lg:flex lg:flex-col lg:justify-center lg:px-6 lg:py-5"><h3 class="text-lg font-bold tracking-tight">Narrated story</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">Plan tension and payoff with narration, captions, and deliberate pacing.</p></div></article><article class="border-border bg-card flex h-full min-w-0 snap-start flex-col overflow-hidden rounded-[var(--radius-xl)] border p-2 lg:col-span-7 lg:col-start-6 lg:row-start-3 lg:grid lg:grid-cols-[minmax(12rem,0.82fr)_minmax(0,1.18fr)]"><div role="img" aria-label="Motivation series" class="aspect-[4/3] rounded-lg bg-cover lg:aspect-auto lg:h-full" style="background-image:url(&#x27;/imgs/generated/txtvo-storyboard-template-atlas.webp&#x27;);background-position:100% 50%;background-size:400% 100%"></div><div class="px-2 pt-4 pb-3 lg:flex lg:flex-col lg:justify-center lg:px-6 lg:py-5"><h3 class="text-lg font-bold tracking-tight">Motivation series</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">Reuse a consistent format while keeping each script and point of view original.</p></div></article></div></div></section><section id="safety" class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="border-border bg-muted/55 mx-auto max-w-7xl rounded-[var(--radius-xl)] border px-6 py-10 sm:px-10 sm:py-14 lg:px-14"><h2 class="max-w-4xl text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">Check the platform, not a marketing promise.</h2>
20<p class="text-muted-foreground mt-5 max-w-[62ch] text-base leading-relaxed sm:text-lg">TXTVO cannot promise monetization, distribution, copyright clearance, or platform approval. Review the output and current rules before publishing.</p><div class="border-border mt-10 grid border-t sm:grid-cols-2 lg:grid-cols-4"><article class="border-border py-6 sm:pr-6 lg:border-r lg:px-6 lg:first:pl-0 lg:last:border-r-0 lg:last:pr-0 sm:[&amp;:nth-child(even)]:pl-6 sm:[&amp;:nth-child(odd)]:border-r"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-check2 lucide-file-check-2 text-primary size-5" aria-hidden="true"><path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><path d="m3 15 2 2 4-4"></path></svg><h3 class="mt-5 text-sm font-bold">URL input stays literal</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">TXTVO uses the address as reference text. It does not fetch or inspect the linked page.</p></article><article class="border-border py-6 sm:pr-6 lg:border-r lg:px-6 lg:first:pl-0 lg:last:border-r-0 lg:last:pr-0 sm:[&amp;:nth-child(even)]:pl-6 sm:[&amp;:nth-child(odd)]:border-r"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert text-primary size-5" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg><h3 class="mt-5 text-sm font-bold">No automatic publishing</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">The live flow ends at a temporary provider video result; it does not connect or post to a channel.</p></article><article class="border-border py-6 sm:pr-6 lg:border-r lg:px-6 lg:first:pl-0 lg:last:border-r-0 lg:last:pr-0 sm:[&amp;:nth-child(even)]:pl-6 sm:[&amp;:nth-child(odd)]:border-r"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock-keyhole text-primary size-5" aria-hidden="true"><circle cx="12" cy="16" r="1"></circle><rect x="3" y="10" width="18" height="12" rx="2"></rect><path d="M7 10V7a5 5 0 0 1 10 0v3"></path></svg><h3 class="mt-5 text-sm font-bold">Reserved credits restored</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">When a task fails or is cancelled, its reserved site credits are restored by the task service.</p></article><article class="border-border py-6 sm:pr-6 lg:border-r lg:px-6 lg:first:pl-0 lg:last:border-r-0 lg:last:pr-0 sm:[&amp;:nth-child(even)]:pl-6 sm:[&amp;:nth-child(odd)]:border-r"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign text-primary size-5" aria-hidden="true"><path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"></path><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"></path><path d="M12 18V6"></path></svg><h3 class="mt-5 text-sm font-bold">Temporary result links</h3><p class="text-muted-foreground mt-2 text-sm leading-relaxed">Provider video URLs expire. Save a result you need before its displayed expiry time.</p></article></div><div class="border-border mt-8 border-t pt-8"><h3 class="text-base font-bold">Current platform checkpoints</h3><p class="text-muted-foreground mt-2 max-w-[70ch] text-sm leading-relaxed">These official links are creator references, not automated approval or legal advice inside TXTVO.</p><div class="mt-5 flex flex-wrap gap-2"><a href="https://support.google.com/youtube/answer/1311392?hl=en-gb" target="_blank" rel="noreferrer" class="border-border bg-background hover:border-primary inline-flex items-center gap-2 rounded-lg border px-3 py-2 text-xs font-semibold transition-colors">YouTube monetization &amp; originality<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link size-3.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://support.google.com/youtube/answer/14328491?hl=en-au" target="_blank" rel="noreferrer" class="border-border bg-background hover:border-primary inline-flex items-center gap-2 rounded-lg border px-3 py-2 text-xs font-semibold transition-colors">YouTube GenAI disclosure<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link size-3.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://support.tiktok.com/en/using-tiktok/creating-videos/ai-generated-content?authuser=0" target="_blank" rel="noreferrer" class="border-border bg-background hover:border-primary inline-flex items-center gap-2 rounded-lg border px-3 py-2 text-xs font-semibold transition-colors">TikTok AI content labels<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link size-3.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://about.fb.com/news/2024/02/labeling-ai-generated-images-on-facebook-instagram-and-threads/" target="_blank" rel="noreferrer" class="border-border bg-background hover:border-primary inline-flex items-center gap-2 rounded-lg border px-3 py-2 text-xs font-semibold transition-colors">Meta AI-label guidance<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link size-3.5" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></div></section><section id="pricing" class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto max-w-7xl"><div class="max-w-3xl"><h2 class="text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">What works now and what uses credits.</h2>
20<p class="text-muted-foreground mt-5 max-w-[62ch] text-base leading-relaxed sm:text-lg">TXTVO uses configurable site-credit charges, not the speculative subscription quotas previously shown here. Each live step has a separate boundary.</p></div><div class="bg-border border-border mt-12 grid gap-px overflow-hidden rounded-[var(--radius-xl)] border md:grid-cols-2 lg:grid-cols-12"><article class="bg-card p-6 md:p-8 lg:min-h-64 lg:col-span-4"><div class="flex items-start justify-between gap-4"><span class="border-border bg-muted flex size-10 items-center justify-center rounded-lg border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scan-eye text-primary size-5" aria-hidden="true"><path d="M3 7V5a2 2 0 0 1 2-2h2"></path><path d="M17 3h2a2 2 0 0 1 2 2v2"></path><path d="M21 17v2a2 2 0 0 1-2 2h-2"></path><path d="M7 21H5a2 2 0 0 1-2-2v-2"></path><circle cx="12" cy="12" r="1"></circle><path d="M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0"></path></svg></span><span class="border-border bg-muted rounded-full border px-3 py-1 font-mono text-[10px] font-semibold tracking-wide uppercase">No sign-in. No credits.</span></div><h3 class="mt-6 text-xl font-bold tracking-tight">Fixed sample</h3><p class="text-muted-foreground mt-3 text-sm leading-relaxed">Inspect the interface and the reusable three-scene example before creating an account.</p><p class="border-primary mt-5 border-l-2 pl-3 text-xs leading-relaxed font-semibold">Sample artwork and copy are not generated from your input.</p></article><article class="p-6 md:p-8 lg:min-h-64 lg:col-span-8 bg-primary/10"><div class="flex items-start justify-between gap-4"><span class="border-border bg-muted flex size-10 items-center justify-center rounded-lg border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panels-top-left text-primary size-5" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M3 9h18"></path><path d="M9 21V9"></path></svg></span><span class="border-border bg-muted rounded-full border px-3 py-1 font-mono text-[10px] font-semibold tracking-wide uppercase">Account + site credits</span></div><h3 class="mt-6 text-xl font-bold tracking-tight">Live AI storyboard</h3><p class="text-muted-foreground mt-3 text-sm leading-relaxed">Generate a six-scene target plan from a topic or pasted source through the configured provider.</p><p class="border-primary mt-5 border-l-2 pl-3 text-xs leading-relaxed font-semibold">The current storyboard charge is shown beside the submit button.</p></article><article class="bg-card p-6 md:p-8 lg:min-h-64 lg:col-span-7"><div class="flex items-start justify-between gap-4"><span class="border-border bg-muted flex size-10 items-center justify-center rounded-lg border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-film text-primary size-5" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M7 3v18"></path><path d="M3 7.5h4"></path><path d="M3 12h18"></path><path d="M3 16.5h4"></path><path d="M17 3v18"></path><path d="M17 7.5h4"></path><path d="M17 16.5h4"></path></svg></span><span class="border-border bg-muted rounded-full border px-3 py-1 font-mono text-[10px] font-semibold tracking-wide uppercase">Separate credit charge</span></div><h3 class="mt-6 text-xl font-bold tracking-tight">Multi-model video generation</h3><p class="text-muted-foreground mt-3 text-sm leading-relaxed">After reviewing the scene plan, optionally select an enabled video model and submit a validated generation job.</p><p class="border-primary mt-5 border-l-2 pl-3 text-xs leading-relaxed font-semibold">The exact cost appears before submit; result links are temporary.</p></article><article class="bg-card p-6 md:p-8 lg:min-h-64 lg:col-span-5"><div class="flex items-start justify-between gap-4"><span class="border-border bg-muted flex size-10 items-center justify-center rounded-lg border"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock-keyhole text-primary size-5" aria-hidden="true"><circle cx="12" cy="16" r="1"></circle><rect x="3" y="10" width="18" height="12" rx="2"></rect><path d="M7 10V7a5 5 0 0 1 10 0v3"></path></svg></span><span class="border-border bg-muted rounded-full border px-3 py-1 font-mono text-[10px] font-semibold tracking-wide uppercase">Not available</span></div><h3 class="mt-6 text-xl font-bold tracking-tight">Complete edit &amp; publishing</h3><p class="text-muted-foreground mt-3 text-sm leading-relaxed">This page does not create a complete 30-90 second edit, save an editable project, or connect a channel.</p><p class="border-primary mt-5 border-l-2 pl-3 text-xs leading-relaxed font-semibold">No public subscription or output quota is claimed for unavailable features.</p></article></div><div class="mt-8 flex flex-col items-start gap-4 sm:flex-row sm:items-center"><a href="/#generator" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
20px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 gap-1.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 h-11 rounded-lg px-6 font-semibold">Create a storyboard</a><p class="text-muted-foreground max-w-2xl text-sm leading-relaxed">Provider availability and your site-credit balance apply. Failed or cancelled tasks restore their reserved site credits.</p></div></div></section><section id="faq" class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="mx-auto grid max-w-7xl gap-10 lg:grid-cols-[0.72fr_1.28fr] lg:gap-20"><div><h2 class="max-w-xl text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">Know what the generator creates before you spend credits.</h2><p class="text-muted-foreground mt-5 max-w-[48ch] text-base leading-relaxed">The fixed sample, generated text storyboard, export, and optional video job are separate states.</p></div><div data-orientation="vertical" dir="ltr" role="region" data-slot="accordion" class="flex flex-col border-border w-full border-t"><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_6gi6aqH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground cursor-pointer py-6 text-left text-base font-bold hover:no-underline">Can I turn a script into a storyboard with AI?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_agi6aqH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground cursor-pointer py-6 text-left text-base font-bold hover:no-underline">Can I try TXTVO without signing in?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_egi6aqH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground cursor-pointer py-6 text-left text-base font-bold hover:no-underline">Does TXTVO generate storyboard images?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_igi6aqH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground cursor-pointer py-6 text-left text-base font-bold hover:no-underline">Does TXTVO create and publish a complete video?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_mgi6aqH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground cursor-pointer py-6 text-left text-base font-bold hover:no-underline">Can I export the storyboard?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div></div></div></section><section class="txtvo-reveal px-4 py-20 sm:px-6 sm:py-28"><div class="bg-primary text-primary-foreground mx-auto grid max-w-7xl items-end gap-8 overflow-hidden rounded-[var(--radius-xl)] px-6 py-10 sm:px-10 sm:py-14 lg:grid-cols-[1fr_auto] lg:px-14"><div><h2 class="max-w-4xl text-4xl leading-[1.02] font-black tracking-[-0.04em] text-balance sm:text-5xl">Make the story visible before you pay for motion.</h2>
20<p class="text-primary-foreground/75 mt-5 max-w-[58ch] text-base leading-relaxed sm:text-lg">Generate, review, and export a scene plan. Choose an optional video model only after the storyboard passes.</p></div><a href="/#generator" class="group/button inline-flex shrink-0 items-center justify-center border border-transparent bg-clip-padding text-sm whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 [a]:hover:bg-primary/80 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 bg-foreground text-background hover:bg-foreground/90 focus-visible:ring-primary-foreground h-12 gap-2 rounded-lg px-6 font-semibold transition-transform active:scale-[0.98]">Create a storyboard<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-4" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div></section></main><footer class="border-border bg-background text-foreground border-t"><div class="mx-auto max-w-7xl px-6 pt-14 pb-6 sm:px-10 sm:pt-16 lg:px-16"><p class="mb-12 max-w-3xl text-3xl leading-[1.06] font-black tracking-[-0.04em] text-balance sm:text-4xl">Reviewable scenes before video generation.</p><div class="grid gap-x-8 gap-y-10 sm:gap-x-12 grid-cols-2 sm:grid-cols-3"><div class="space-y-5"><p class="text-foreground text-[13px] font-bold tracking-wide">Product</p><ul class="space-y-2"><li><a href="/tools" class="text-muted-foreground hover:text-foreground text-sm transition-colors">All tools</a></li><li><a href="/#workflow" class="text-muted-foreground hover:text-foreground text-sm transition-colors">How it works</a></li><li><a href="/#examples" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Examples</a></li><li><a href="/pricing" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Access &amp; credits</a></li></ul></div><div class="space-y-5"><p class="text-foreground text-[13px] font-bold tracking-wide">Resources</p><ul class="space-y-2"><li><a href="/#templates" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Templates</a></li><li><a href="/#safety" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Publishing checks</a></li><li><a href="/#faq" class="text-muted-foreground hover:text-foreground text-sm transition-colors">FAQ</a></li><li><a href="/tools" class="text-muted-foreground hover:text-foreground text-sm transition-colors">All tools</a></li></ul></div><div class="space-y-5"><p class="text-foreground text-[13px] font-bold tracking-wide">Legal</p><ul class="space-y-2"><li><a href="/privacy-policy" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Privacy Policy</a></li><li><a href="/terms-of-service" class="text-muted-foreground hover:text-foreground text-sm transition-colors">Terms of Service</a></li></ul></div></div><div class="mt-8 flex flex-col gap-6 sm:flex-row sm:items-center sm:justify-between"><div></div><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_76q6aq_" data-slot="dropdown-menu-trigger" class="inline-flex items-center transition-colors outline-none h-11 gap-2 border px-4 text-sm border-border text-muted-foreground hover:bg-muted hover:text-foreground rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe size-4" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><span>English</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 opacity-70" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="border-border mt-6 flex flex-col gap-3 border-t pt-5 sm:flex-row sm:items-center sm:justify-between"><span></span><span class="text-muted-foreground text-sm">© 2026 TXTVO. All rights reserved.</span></div></div></footer><button aria-label="Contact support" class="fixed right-4 bottom-[max(1rem,env(safe-area-inset-bottom))] z-40 size-12 rounded-full sm:right-6 sm:bottom-6 bg-primary text-primary-foreground shadow-lg flex items-center justify-center transition-all hover:scale-105 hover:shadow-xl focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-life-buoy size-5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m4.93 4.93 4.24 4.24"></path><path d="m14.83 9.17 4.24-4.24"></path><path d="m14.83 14.83 4.24 4.24"></path><path d="m9.17 14.83-4.24 4.24"></path><circle cx="12" cy="12" r="4"></circle></svg></button></div>
20<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
20<!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
20<script id="ga-init" async="">
vendor: 118 bytes, line 20
20window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
20G-ZYWZ140L6C
vendor: 3 bytes, line 20
20');
20</script>
20<script id="plausible-init">window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};plausible.init();</script>
20<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){if(this.hydrated&&this.streamEnded){const e=()=>{self.$_TSR?.hydrated&&self.$_TSR?.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-D9DJAGrQ.js","/assets/jsx-runtime-C27Mmbu5.js","/assets/useStore-B4GNwqYv.js","/assets/link-BH8FtUoC.js","/assets/matchContext-BvFX7iVu.js","/assets/qss-CuvTgpZA.js","/assets/createServerFn-BCVeLJUQ.js","/assets/react-dom-BGozS2fx.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-D9DJAGrQ.js"}}],css:$R[8]=["/assets/index-bhqOGYXc.css"]},"/":$R[9]={preloads:$R[10]=["/assets/routes-CAead-aA.js","/assets/button-BY4_7pDt.js","/assets/useOpenInteractionType-B_Xxf4tI.js","/assets/useCompositeListItem-yWRLYncO.js","/assets/input-ChFMCDRV.js","/assets/createBaseUIEventDetails-G_iMlgCD.js","/assets/navigation-4UWA5xkk.js","/assets/utils-DXalBF5w.js","/assets/storyboard-demo-b4EwOEsB.js","/assets/header-BaLJ9O0P.js","/assets/chevron-down-B1TGsPcT.js","/assets/chevron-up-DCRDlIdA.js","/assets/external-link-uWpmwniK.js","/assets/pricing-FZw6UwPb.js","/assets/support-widget-WpIl96_O.js","/assets/lock-keyhole-62Dd0sz3.js","/assets/refresh-cw-ECMldLb0.js"]}}}
20,matches:$R[11]=[$R[12]={i:"__root__�",u:1791446186245,s:"success",l:$R[13]={gaId:"G-ZYWZ140L6C",plausibleDomain:"txtvo.com",plausibleSrc:"https://plausible.photototranslate.com/js/script",adsenseCode:"",crispWebsiteId:"",tawkPropertyId:"",tawkWidgetId:""},ssr:!0},$R[14]={i:"��",u:1791446186057,s:"success",l:$R[15]={locale:"en",title:"Faceless AI Video Storyboard Generator | TXTVO",description:"Plan a reviewable faceless video with timed narration, captions, and visual direction before an optional credit-based video render."},ssr:!0}],lastMatchId:"��"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
20<script type="module" async="" src="/assets/index-D9DJAGrQ.js"></script>
20<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"15a55f4c179e4670be44efb14794a383","r":1,"spa":2}' crossorigin="anonymous"></script>
20
21</body></html>

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.