PageSourceSearch

https://puzzlepave.com/tower-defense

html puzzlepave.com collected 2026-10-04 10:08:39 UTC 59,332 bytes, 15 lines download raw bytes

1<!DOCTYPE html><!--q75n_7j_gxAZeK9zYFH8N--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/icon0.svg"/><link rel="stylesheet" href="/_next/static/css/d70e645d9bad8948.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-64f5c82b467e9808.js"/>
1<script src="/_next/static/chunks/c6951b29-7549d326364ed404.js" async=""></script>
1<script src="/_next/static/chunks/724-a029ad81f143507d.js" async=""></script>
1<script src="/_next/static/chunks/main-app-2d11df59a88c9ec4.js" async=""></script>
1<script src="/_next/static/chunks/f8937870-1575cc9286ac1f92.js" async=""></script>
1<script src="/_next/static/chunks/186-833cf3d523375ba5.js" async=""></script>
1<script src="/_next/static/chunks/262-8419012b9e410d63.js" async=""></script>
1<script src="/_next/static/chunks/732-ea8d174cb25991f6.js" async=""></script>
1<script src="/_next/static/chunks/299-45dcf57c87acbfcf.js" async=""></script>
1<script src="/_next/static/chunks/689-ddd08fb7e3c12c1d.js" async=""></script>
1<script src="/_next/static/chunks/359-a2bc8f554bcd65e1.js" async=""></script>
1<script src="/_next/static/chunks/app/tower-defense/page-d7081d85032a5af9.js" async=""></script>
1<script src="/_next/static/chunks/fe56b05f-9317456f33030eab.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-17f3ee04616f372d.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-FB699LEFPV" as="script"/><meta name="apple-mobile-web-app-title" content="AIStoryWriter"/><title>Tower Defense - Endless Browser Game | PuzzlePave</title><meta name="description" content="Play an endless tower defense game with burst fire, upgrades, a vertical lane, and in-page expand mode."/><link rel="manifest" href="/manifest.json"/><meta name="keywords" content="tower defense game,browser tower defense,endless tower defense,expand mode tower defense"/><link rel="canonical" href="https://puzzlepave.com/tower-defense"/><meta property="og:title" content="Tower Defense - Endless Browser Game | PuzzlePave"/><meta property="og:description" content="An endless tower defense game with upgrades, burst fire, a vertical lane, and in-page expand mode."/><meta property="og:url" content="https://puzzlepave.com/tower-defense"/><meta property="og:image" content="https://puzzlepave.com/icon0.svg"/><meta property="og:image:width" content="512"/><meta property="og:image:height" content="512"/><meta property="og:image:alt" content="PuzzlePave Tower Defense"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Tower Defense - Endless Browser Game | PuzzlePave"/><meta name="twitter:description" content="An endless tower defense game with upgrades, burst fire, a vertical lane, and in-page expand mode."/><meta name="twitter:image" content="https://puzzlepave.com/icon0.svg"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="48x48"/><link rel="icon" href="/icon0.svg?03bd9a244b51b65d" type="image/svg+xml" sizes="any"/><link rel="icon" href="/icon1.png?e006472442827368" type="image/png" sizes="96x96"/><link rel="apple-touch-icon" href="/apple-icon.png?e75e3680e9dffba5" type="image/png" sizes="180x180"/>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="font-sans antialiased bg-gradient-to-b from-hunata-100 to-30% to-white"><div hidden=""><!--$--><!--/$--></div><div class="flex flex-col min-h-screen justify-between"><div><div class="mb-4 sticky z-10 top-0 transition-all bg-white backdrop-blur-sm bg-opacity-90"><div class="max-w-[1280px] px-4 mx-auto flex justify-between items-center py-3 transition-all"><div class="flex items-center gap-4"><div class="font-bold text-xl"><a class="flex items-center gap-2" href="/"><span class="w-[40px] rounded-lg overflow-hidden"><img src="/icon0.svg" class="" alt="logo"/></span><span class="hidden sm:inline">PuzzlePave</span></a></div><div class="hidden md:flex gap-4 ml-10"><a class="rounded px-3 py-1 font-medium transition-all hover:bg-gray-50 hover:text-indigo-600" href="/#how-to">How to</a><a class="rounded px-3 py-1 font-medium transition-all hover:bg-gray-50 hover:text-indigo-600" href="/#features">Features</a><a class="rounded px-3 py-1 font-medium transition-all hover:bg-gray-50 hover:text-indigo-600" href="/#faq">FAQ</a><a class="rounded px-3 py-1 font-medium transition-all bg-indigo-50 text-indigo-700" href="/tower-defense">Tower Defense</a><a class="rounded px-3 py-1 font-medium transition-all hover:bg-gray-50 hover:text-indigo-600" href="/vertical-defense">Vertical Defense</a></div></div><div class="md:hidden"><button class="p-2 rounded-md hover:bg-gray-100 transition-colors" aria-label="Toggle menu"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div><div class="hidden md:flex items-center gap-4"></div></div></div><div class="max-w-screen-xl mx-auto px-4 md:px-6"><main class="py-6 md:py-10"><section class="mx-auto max-w-6xl space-y-5 md:space-y-8"><div class="space-y-4"><div class="inline-flex items-center gap-2 rounded-full border border-sky-200 bg-sky-50 px-4 py-2 text-xs font-semibold uppercase tracking-[0.22em] text-sky-700">Endless tower defense</div><h1 class="max-w-4xl text-3xl font-black tracking-tight text-slate-950 md:text-5xl md:leading-tight">Build towers, burst the lane, and survive wave after wave.</h1><p class="max-w-3xl text-sm leading-7 text-slate-600 md:text-lg">Place towers on the glowing pads, choose your upgrades, and keep the route clear as the waves keep coming. Every upgrade makes the line hit harder, reach farther, and push back a denser wave.</p></div><div class="relative w-full overflow-hidden rounded-[1.75rem] border border-slate-200 bg-slate-950 shadow-2xl shadow-slate-900/15 outline-none" style="height:clamp(760px, 92dvh, 1100px)"><canvas tabindex="0" aria-label="Endless tower defense game canvas" aria-describedby="tower-defense-help" class="block h-full w-full touch-manipulation" style="touch-action:manipulation"></canvas><p id="tower-defense-help" class="sr-only">Tap glowing pads on the board to place towers. Tap a tower to select it, then use the in-board buttons to upgrade, expand the board, or restart the run. Keyboard shortcuts include U for upgrade, F for expand, and R for restart.</p></div><section class="grid gap-4 md:grid-cols-3"><div class="rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><div class="flex items-center gap-3"><div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white"><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-target h-5 w-5"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg></div><h3 class="text-base font-semibold text-slate-950">Hold the lane</h3></div><p class="mt-4 text-sm leading-7 text-slate-600">Put towers where the route bends and keep the front line covered as the enemies get faster and tougher.</p></div><div class="rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><div class="flex items-center gap-3"><div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white"><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-layers h-5 w-5"><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></div><h3 class="text-base font-semibold text-slate-950">Upgrade the line</h3></div><p class="mt-4 text-sm leading-7 text-slate-600">Each tower level makes the shots stronger, the range wider, and the bursts denser, so a good position keeps paying off.</p></div><div class="rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><div class="flex items-center gap-3"><div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white"><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 h-5 w-5"><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></div><h3 class="text-base font-semibold text-slate-950">Feel the pressure rise</h3></div><p class="mt-4 text-sm leading-7 text-slate-600">Later waves bring more enemies and heavier threats, so every new push asks for a smarter setup than the last one.</p></div></section>
1<section class="grid gap-4 rounded-[2rem] border border-slate-200 bg-white p-5 shadow-sm md:grid-cols-2 md:p-7"><div class="space-y-4"><div class="inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700"><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 h-4 w-4"><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>How the run works</div><h2 class="text-2xl font-bold text-slate-950">Place, upgrade, and keep the lane alive.</h2><p class="text-sm leading-7 text-slate-600">Tap a glowing pad to build a tower. Tap the tower again to select it. Use the board buttons to upgrade it, expand the board, or restart the run when you want a fresh climb.</p><ul class="space-y-3 text-sm leading-6 text-slate-600"><li class="flex gap-2"><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-right mt-1 h-4 w-4 flex-none text-sky-600"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Build where the lane bends to catch more enemies at once.</li><li class="flex gap-2"><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-right mt-1 h-4 w-4 flex-none text-sky-600"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Upgrade selected towers to unlock bigger bursts and better coverage.</li><li class="flex gap-2"><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-right mt-1 h-4 w-4 flex-none text-sky-600"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>Expand the board when you want the lane to fill the whole screen.</li></ul></div><div class="space-y-4 rounded-[1.5rem] bg-slate-950 p-5 text-white"><div class="inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-300"><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-waves h-4 w-4"><path d="M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"></path><path d="M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"></path><path d="M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"></path></svg>Why it stays tense</div><p class="text-sm leading-7 text-slate-200">The lane never stops. New waves keep arriving, mixed enemy types push through in larger numbers, and the route steadily gets more crowded as your run stretches on.</p><p class="text-sm leading-7 text-slate-200">That keeps the game readable and immediate: every new tower, burst, and upgrade changes the fight in a way you can feel instantly.</p><div class="rounded-2xl border border-white/10 bg-white/5 p-4"><div class="flex items-center gap-2 text-sm font-semibold text-sky-200"><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-bot h-4 w-4"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>Endless pressure</div><p class="mt-2 text-sm leading-6 text-slate-300">The game keeps leaning forward: stronger enemies, fuller waves, and bigger reward moments as your defense line gets more polished.</p></div></div></section><section class="rounded-[2rem] border border-slate-200 bg-white p-5 shadow-sm md:p-7"><div class="flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700"><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-layers h-4 w-4"><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>Update log</div><h2 class="mt-3 text-2xl font-bold text-slate-950">
1What changed in the latest rounds</h2><div class="mt-5 grid gap-4 md:grid-cols-2"><div class="rounded-3xl border border-slate-200 bg-slate-50 p-5"><h3 class="text-base font-semibold text-slate-950">The lane turned vertical</h3><p class="mt-2 text-sm leading-7 text-slate-600">The battlefield now runs top to bottom, so the route feels longer, tighter, and easier to read on a phone.</p></div><div class="rounded-3xl border border-slate-200 bg-slate-50 p-5"><h3 class="text-base font-semibold text-slate-950">Board controls stay with the fight</h3><p class="mt-2 text-sm leading-7 text-slate-600">The upgrade, restart, and expand actions now live inside the board, so you never have to leave the game to keep playing.</p></div><div class="rounded-3xl border border-slate-200 bg-slate-50 p-5"><h3 class="text-base font-semibold text-slate-950">Burst fire feels punchier</h3><p class="mt-2 text-sm leading-7 text-slate-600">Towers now fire in bursts with multiple shots, which makes every upgrade feel more powerful and more visible.</p></div><div class="rounded-3xl border border-slate-200 bg-slate-50 p-5"><h3 class="text-base font-semibold text-slate-950">The run keeps building</h3><p class="mt-2 text-sm leading-7 text-slate-600">Later waves bring more enemies, tougher enemies, and a steadier push so every session feels like a fresh climb.</p></div></div></section><section id="faq" class="space-y-4"><div class="flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700"><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 h-4 w-4"><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></svg>FAQ</div><h2 class="text-2xl font-bold text-slate-950">Common questions about the run</h2><div class="grid gap-4 md:grid-cols-2"><details class="group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><summary class="flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950">How do I build a tower?<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 h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></summary><p class="mt-4 text-sm leading-7 text-slate-600">Tap any glowing build pad inside the lane. The pad cost is shown on the board, and the tower you place becomes part of the line automatically.</p></details><details class="group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><summary class="flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950">How does the upgrade system work?<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 h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></summary><p class="mt-4 text-sm leading-7 text-slate-600">Select a tower and use the upgrade button inside the canvas. Each level adds more range, more damage, and denser bursts, so the same tower keeps growing with the run.</p></details><details class="group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><summary class="flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950">Can I keep playing forever?<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 h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></summary><p class="mt-4 text-sm leading-7 text-slate-600">Yes. Waves keep scaling up, enemy mixes get tougher, and the shield rebuilds itself when it runs out, so the run never hard-stops.</p></details>
1<details class="group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm"><summary class="flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950">Does expand mode work on mobile?<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 h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></summary><p class="mt-4 text-sm leading-7 text-slate-600">Yes. The board expands inside the page and can shrink back again without leaving the run.</p></details></div></section><section class="rounded-[2rem] border border-slate-200 bg-gradient-to-br from-sky-50 via-white to-indigo-50 p-5 shadow-sm md:p-7"><div class="max-w-3xl space-y-3"><div class="inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700"><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 h-4 w-4"><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>Endless run</div><h2 class="text-2xl font-bold text-slate-950">The lane keeps tightening as you climb.</h2><p class="text-sm leading-7 text-slate-600">The route runs downward, the upgrades stay in the board, and every new wave asks for a cleaner line, a stronger tower, or one more burst of damage.</p></div></section></section>
1<script type="application/ld+json">[{"@context":"https://schema.org","@type":"VideoGame","name":"PuzzlePave Tower Defense","description":"An endless browser tower defense game with burst fire, upgrades, and in-canvas controls.","url":"https://puzzlepave.com/tower-defense","genre":["Strategy","Tower Defense"],"applicationCategory":"Game","operatingSystem":"Browser"},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How do I build a tower?","acceptedAnswer":{"@type":"Answer","text":"Tap any glowing build pad inside the lane. The pad cost is shown on the board, and the tower you place becomes part of the line automatically."}},{"@type":"Question","name":"How does the upgrade system work?","acceptedAnswer":{"@type":"Answer","text":"Select a tower and use the upgrade button inside the canvas. Each level adds more range, more damage, and denser bursts, so the same tower keeps growing with the run."}},{"@type":"Question","name":"Can I keep playing forever?","acceptedAnswer":{"@type":"Answer","text":"Yes. Waves keep scaling up, enemy mixes get tougher, and the shield rebuilds itself when it runs out, so the run never hard-stops."}},{"@type":"Question","name":"Does expand mode work on mobile?","acceptedA
1nswer":{"@type":"Answer","text":"Yes. The board expands inside the page and can shrink back again without leaving the run."}}]}]</script>
1</main></div></div><div class="mt-4 w-full max-w-screen-xl mx-auto px-4"><div class="flex flex-col md:flex-row items-start md:items-center justify-between border-t py-6 gap-4"><div class="text-left text-xs text-gray-500 space-y-1"><div>© 2025 PuzzlePave. All rights reserved.</div><div><a href="/cdn-cgi/l/email-protection#1e7d71706a7f7d6a5e6e6b6464727b6e7f687b307d7173" class="hover:text-gray-700 transition-colors"><span class="__cf_email__" data-cfemail="13707c7d6772706753636669697f76637265763d707c7e">[email&#160;protected]</span></a></div></div><div class="flex flex-col md:flex-row items-start md:items-center gap-3 md:gap-6 text-sm"><a href="/terms-of-use" class="hover:text-indigo-600 transition-colors">Terms of Use</a><a href="/privacy-policy" class="hover:text-indigo-600 transition-colors">Privacy Policy</a></div></div></div></div><!--$--><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
vendor: 108 bytes, line 1
1<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1<script>
2            function gtag_report_conversion(url) {
3              var callback = function () {
4                if (typeof(url) != 'undefined') {
5                  window.location = url;
6                }
7              };
8              gtag('event', 'conversion', {
9                  'send_to': 'AW-16871836703/qj-aCNWJjtMaEJ-Yj-0-',
10                  'event_callback': callback
11              });
12              return false;
13            }
14        </script>
14<script src="/_next/static/chunks/webpack-64f5c82b467e9808.js" id="_R_" async=""></script>
14<script>(self.__next_f=self.__next_f||[]).push([0])</script>
14<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[21803,[],\"\"]\n4:I[38871,[],\"\"]\n5:I[97969,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"732\",\"static/chunks/732-ea8d174cb25991f6.js\",\"299\",\"static/chunks/299-45dcf57c87acbfcf.js\",\"689\",\"static/chunks/689-ddd08fb7e3c12c1d.js\",\"359\",\"static/chunks/359-a2bc8f554bcd65e1.js\",\"465\",\"static/chunks/app/tower-defense/page-d7081d85032a5af9.js\"],\"default\"]\n6:I[66559,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"732\",\"static/chunks/732-ea8d174cb25991f6.js\",\"299\",\"static/chunks/299-45dcf57c87acbfcf.js\",\"689\",\"static/chunks/689-ddd08fb7e3c12c1d.js\",\"359\",\"static/chunks/359-a2bc8f554bcd65e1.js\",\"465\",\"static/chunks/app/tower-defense/page-d7081d85032a5af9.js\"],\"default\"]\n12:I[57937,[],\"\"]\n:HL[\"/_next/static/css/d70e645d9bad8948.css\",\"style\"]\n"])</script>
14<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"q75n-7j_gxAZeK9zYFH8N\",\"p\":\"\",\"c\":[\"\",\"tower-defense\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"tower-defense\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d70e645d9bad8948.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"tower-defense\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col min-h-screen justify-between\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"$L5\",null,{}],[\"$\",\"div\",null,{\"className\":\"max-w-screen-xl mx-auto px-4 md:px-6\",\"children\":[\"$\",\"main\",null,{\"className\":\"py-6 md:py-10\",\"children\":[[\"$\",\"section\",null,{\"className\":\"mx-auto max-w-6xl space-y-5 md:space-y-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-2 rounded-full border border-sky-200 bg-sky-50 px-4 py-2 text-xs font-semibold uppercase tracking-[0.22em] text-sky-700\",\"children\":\"Endless tower defense\"}],[\"$\",\"h1\",null,{\"className\":\"max-w-4xl text-3xl font-black tracking-tight text-slate-950 md:text-5xl md:leading-tight\",\"children\":\"Build towers, burst the lane, and survive wave after wave.\"}],[\"$\",\"p\",null,{\"className\":\"max-w-3xl text-sm leading-7 text-slate-600 md:text-lg\",\"children\":\"Place towers on the glowing pads, choose your upgrades, and keep the route clear as the waves keep coming. Every upgrade makes the line hit harder, reach farther, and push back a denser wave.\"}]]}],[\"$\",\"$L6\",null,{}],[\"$\",\"section\",null,{\"className\":\"grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-target h-5 w-5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"circle\",\"1vlfrh\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"}],[\"$\",\"circle\",\"1c9p78\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"}],\"$undefined\"]}]}],[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"Hold the lane\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Put towers where the route bends and keep the front line covered as the enemies get faster and tougher.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-layers h-5 w-5\",\"children\":[[\"$\",\"path\",\"zw3jo\",{\"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\",\"1wduqc\",{\"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\",\"kqbvx6\",{\"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\"}],\"$undefined\"]}]}],[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"Upgrade the line\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Each tower level makes the shots stronger, the range wider, and the bursts denser, so a good position keeps paying off.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[\"$L7\",\"$L8\"]}],\"$L9\"]}]]}],\"$La\",\"$Lb\",\"$Lc\",\"$Ld\"]}],\"$Le\"]}]}]]}],\"$Lf\"]}],null,\"$L10\"]}],{}
14,null,false]},null,false]},null,false],\"$L11\",false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script>
14<script>self.__next_f.push([1,"18:I[60079,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"732\",\"static/chunks/732-ea8d174cb25991f6.js\",\"299\",\"static/chunks/299-45dcf57c87acbfcf.js\",\"689\",\"static/chunks/689-ddd08fb7e3c12c1d.js\",\"359\",\"static/chunks/359-a2bc8f554bcd65e1.js\",\"465\",\"static/chunks/app/tower-defense/page-d7081d85032a5af9.js\"],\"default\"]\n19:I[82274,[],\"OutletBoundary\"]\n1b:I[42935,[],\"AsyncMetadataOutlet\"]\n1d:I[82274,[],\"ViewportBoundary\"]\n1f:I[82274,[],\"MetadataBoundary\"]\n20:\"$Sreact.suspense\"\n22:I[51132,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"198\",\"static/chunks/fe56b05f-9317456f33030eab.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"177\",\"static/chunks/app/layout-17f3ee04616f372d.js\"],\"default\"]\n23:I[15314,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"198\",\"static/chunks/fe56b05f-9317456f33030eab.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"177\",\"static/chunks/app/layout-17f3ee04616f372d.js\"],\"default\"]\n24:I[50253,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"198\",\"static/chunks/fe56b05f-9317456f33030eab.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"177\",\"static/chunks/app/layout-17f3ee04616f372d.js\"],\"Toaster\"]\n25:I[26027,[\"533\",\"static/chunks/f8937870-1575cc9286ac1f92.js\",\"198\",\"static/chunks/fe56b05f-9317456f33030eab.js\",\"186\",\"static/chunks/186-833cf3d523375ba5.js\",\"262\",\"static/chunks/262-8419012b9e410d63.js\",\"177\",\"static/chunks/app/layout-17f3ee04616f372d.js\"],\"GoogleAnalytics\"]\n"])</script>
14<script>self.__next_f.push([1,"7:[\"$\",\"div\",null,{\"className\":\"flex h-11 w-11 items-center justify-center rounded-2xl bg-slate-900 text-white\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sparkles h-5 w-5\",\"children\":[[\"$\",\"path\",\"4pj2yx\",{\"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\",\"1olli1\",{\"d\":\"M20 3v4\"}],[\"$\",\"path\",\"1gvqau\",{\"d\":\"M22 5h-4\"}],[\"$\",\"path\",\"vumght\",{\"d\":\"M4 17v2\"}],[\"$\",\"path\",\"zchphs\",{\"d\":\"M5 18H3\"}],\"$undefined\"]}]}]\n"])</script>
14<script>self.__next_f.push([1,"8:[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"Feel the pressure rise\"}]\n9:[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Later waves bring more enemies and heavier threats, so every new push asks for a smarter setup than the last one.\"}]\n"])</script>
14<script>self.__next_f.push([1,"a:[\"$\",\"section\",null,{\"className\":\"grid gap-4 rounded-[2rem] border border-slate-200 bg-white p-5 shadow-sm md:grid-cols-2 md:p-7\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sparkles h-4 w-4\",\"children\":[[\"$\",\"path\",\"4pj2yx\",{\"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\",\"1olli1\",{\"d\":\"M20 3v4\"}],[\"$\",\"path\",\"1gvqau\",{\"d\":\"M22 5h-4\"}],[\"$\",\"path\",\"vumght\",{\"d\":\"M4 17v2\"}],[\"$\",\"path\",\"zchphs\",{\"d\":\"M5 18H3\"}],\"$undefined\"]}],\"How the run works\"]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-950\",\"children\":\"Place, upgrade, and keep the lane alive.\"}],[\"$\",\"p\",null,{\"className\":\"text-sm leading-7 text-slate-600\",\"children\":\"Tap a glowing pad to build a tower. Tap the tower again to select it. Use the board buttons to upgrade it, expand the board, or restart the run when you want a fresh climb.\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-3 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right mt-1 h-4 w-4 flex-none text-sky-600\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}],\"Build where the lane bends to catch more enemies at once.\"]}],[\"$\",\"li\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right mt-1 h-4 w-4 flex-none text-sky-600\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}],\"Upgrade selected towers to unlock bigger bursts and better coverage.\"]}],[\"$\",\"li\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right mt-1 h-4 w-4 flex-none text-sky-600\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}],\"Expand the board when you want the lane to fill the whole screen.\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-4 rounded-[1.5rem] bg-slate-950 p-5 text-white\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-300\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-waves h-4 w-4\",\"children\":[[\"$\",\"path\",\"knzxuh\",{\"d\":\"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}],[\"$\",\"path\",\"2jd2cc\",{\"d\":\"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}],[\"$\",\"path\",\"rd2r6e\",{\"d\":\"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"}],\"$undefined\"]}],\"Why it stays tense\"]}],[\"$\",\"p\",null,{\"className\":\"text-sm leading-7 text-slate-200\",\"children\":\"The lane never stops. New waves keep arriving, mixed enemy types push through in larger numbers, and the route steadily gets more crowded as your run stretches on.\"}],\"$L13\",\"$L14\"]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"b:[\"$\",\"section\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-white p-5 shadow-sm md:p-7\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-layers h-4 w-4\",\"children\":[[\"$\",\"path\",\"zw3jo\",{\"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\",\"1wduqc\",{\"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\",\"kqbvx6\",{\"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\"}],\"$undefined\"]}],\"Update log\"]}],[\"$\",\"h2\",null,{\"className\":\"mt-3 text-2xl font-bold text-slate-950\",\"children\":\"What changed in the latest rounds\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"div\",\"The lane turned vertical\",{\"className\":\"rounded-3xl border border-slate-200 bg-slate-50 p-5\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"The lane turned vertical\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm leading-7 text-slate-600\",\"children\":\"The battlefield now runs top to bottom, so the route feels longer, tighter, and easier to read on a phone.\"}]]}],[\"$\",\"div\",\"Board controls stay with the fight\",{\"className\":\"rounded-3xl border border-slate-200 bg-slate-50 p-5\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"Board controls stay with the fight\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm leading-7 text-slate-600\",\"children\":\"The upgrade, restart, and expand actions now live inside the board, so you never have to leave the game to keep playing.\"}]]}],[\"$\",\"div\",\"Burst fire feels punchier\",{\"className\":\"rounded-3xl border border-slate-200 bg-slate-50 p-5\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"Burst fire feels punchier\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm leading-7 text-slate-600\",\"children\":\"Towers now fire in bursts with multiple shots, which makes every upgrade feel more powerful and more visible.\"}]]}],[\"$\",\"div\",\"The run keeps building\",{\"className\":\"rounded-3xl border border-slate-200 bg-slate-50 p-5\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-base font-semibold text-slate-950\",\"children\":\"The run keeps building\"}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm leading-7 text-slate-600\",\"children\":\"Later waves bring more enemies, tougher enemies, and a steadier push so every session feels like a fresh climb.\"}]]}]]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"c:[\"$\",\"section\",null,{\"id\":\"faq\",\"className\":\"space-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-shield h-4 w-4\",\"children\":[[\"$\",\"path\",\"oel41y\",{\"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\"}],\"$undefined\"]}],\"FAQ\"]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-950\",\"children\":\"Common questions about the run\"}],[\"$\",\"div\",null,{\"className\":\"grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"details\",\"How do I build a tower?\",{\"className\":\"group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950\",\"children\":[\"How do I build a tower?\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Tap any glowing build pad inside the lane. The pad cost is shown on the board, and the tower you place becomes part of the line automatically.\"}]]}],[\"$\",\"details\",\"How does the upgrade system work?\",{\"className\":\"group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950\",\"children\":[\"How does the upgrade system work?\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Select a tower and use the upgrade button inside the canvas. Each level adds more range, more damage, and denser bursts, so the same tower keeps growing with the run.\"}]]}],[\"$\",\"details\",\"Can I keep playing forever?\",{\"className\":\"group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950\",\"children\":[\"Can I keep playing forever?\",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]]}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Yes. Waves keep scaling up, enemy mixes get tougher, and the shield rebuilds itself when it runs out, so the run never hard-stops.\"}]]}],[\"$\",\"details\",\"Does expand mode work on mobile?\",{\"className\":\"group rounded-3xl border border-slate-200 bg-white p-5 shadow-sm\",\"children\":[[\"$\",\"summary\",null,{\"className\":\"flex cursor-pointer list-none items-center justify-between gap-3 text-base font-semibold text-slate-950\",\"children\":[\"Does expand mode work on mobile?\",\"$L15\"]}],\"$L16\"]}]]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"d:[\"$\",\"section\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-gradient-to-br from-sky-50 via-white to-indigo-50 p-5 shadow-sm md:p-7\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-3xl space-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"inline-flex items-center gap-2 text-sm font-semibold uppercase tracking-[0.18em] text-sky-700\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-sparkles h-4 w-4\",\"children\":[[\"$\",\"path\",\"4pj2yx\",{\"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\",\"1olli1\",{\"d\":\"M20 3v4\"}],[\"$\",\"path\",\"1gvqau\",{\"d\":\"M22 5h-4\"}],[\"$\",\"path\",\"vumght\",{\"d\":\"M4 17v2\"}],[\"$\",\"path\",\"zchphs\",{\"d\":\"M5 18H3\"}],\"$undefined\"]}],\"Endless run\"]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-bold text-slate-950\",\"children\":\"The lane keeps tightening as you climb.\"}],[\"$\",\"p\",null,{\"className\":\"text-sm leading-7 text-slate-600\",\"children\":\"The route runs downward, the upgrades stay in the board, and every new wave asks for a cleaner line, a stronger tower, or one more burst of damage.\"}]]}]}]\n"])</script>
14<script>self.__next_f.push([1,"17:T546,"])</script>
14<script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"VideoGame\",\"name\":\"PuzzlePave Tower Defense\",\"description\":\"An endless browser tower defense game with burst fire, upgrades, and in-canvas controls.\",\"url\":\"https://puzzlepave.com/tower-defense\",\"genre\":[\"Strategy\",\"Tower Defense\"],\"applicationCategory\":\"Game\",\"operatingSystem\":\"Browser\"},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"How do I build a tower?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Tap any glowing build pad inside the lane. The pad cost is shown on the board, and the tower you place becomes part of the line automatically.\"}},{\"@type\":\"Question\",\"name\":\"How does the upgrade system work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Select a tower and use the upgrade button inside the canvas. Each level adds more range, more damage, and denser bursts, so the same tower keeps growing with the run.\"}},{\"@type\":\"Question\",\"name\":\"Can I keep playing forever?\",\"acceptedA
14nswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Waves keep scaling up, enemy mixes get tougher, and the shield rebuilds itself when it runs out, so the run never hard-stops.\"}},{\"@type\":\"Question\",\"name\":\"Does expand mode work on mobile?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. The board expands inside the page and can shrink back again without leaving the run.\"}}]}]"])</script>
14<script>self.__next_f.push([1,"e:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$17\"}}]\n"])</script>
14<script>self.__next_f.push([1,"f:[\"$\",\"div\",null,{\"className\":\"mt-4 w-full max-w-screen-xl mx-auto px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-start md:items-center justify-between border-t py-6 gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-left text-xs text-gray-500 space-y-1\",\"children\":[[\"$\",\"div\",null,{\"children\":\"© 2025 PuzzlePave. All rights reserved.\"}],[\"$\",\"div\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"mailto:[email protected]\",\"className\":\"hover:text-gray-700 transition-colors\",\"children\":\"[email protected]\"}]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-start md:items-center gap-3 md:gap-6 text-sm\",\"children\":[[\"$\",\"a\",null,{\"href\":\"/terms-of-use\",\"className\":\"hover:text-indigo-600 transition-colors\",\"children\":\"Terms of Use\"}],[\"$\",\"a\",null,{\"href\":\"/privacy-policy\",\"className\":\"hover:text-indigo-600 transition-colors\",\"children\":\"Privacy Policy\"}]]}]]}],[\"$\",\"$L18\",null,{}]]}]\n"])</script>
14<script>self.__next_f.push([1,"10:[\"$\",\"$L19\",null,{\"children\":[\"$L1a\",[\"$\",\"$L1b\",null,{\"promise\":\"$@1c\"}]]}]\n11:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],null],[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$20\",null,{\"fallback\":null,\"children\":\"$L21\"}]}]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-title\",\"content\":\"AIStoryWriter\"}],[\"$\",\"meta\",null,{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover\"}]]}],[\"$\",\"body\",null,{\"className\":\"font-sans antialiased bg-gradient-to-b from-hunata-100 to-30% to-white\",\"children\":[[\"$\",\"$L22\",null,{\"id\":\"\"}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L23\",null,{}],[\"$\",\"$L24\",null,{}],[[\"$\",\"$L25\",null,{\"gaId\":\"G-FB699LEFPV\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n            function gtag_report_conversion(url) {\\n              var callback = function () {\\n                if (typeof(url) != 'undefined') {\\n                  window.location = url;\\n                }\\n              };\\n              gtag('event', 'conversion', {\\n                  'send_to': 'AW-16871836703/qj-aCNWJjtMaEJ-Yj-0-',\\n                  'event_callback': callback\\n              });\\n              return false;\\n            }\\n        \"}}]]]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"13:[\"$\",\"p\",null,{\"className\":\"text-sm leading-7 text-slate-200\",\"children\":\"That keeps the game readable and immediate: every new tower, burst, and upgrade changes the fight in a way you can feel instantly.\"}]\n"])</script>
14<script>self.__next_f.push([1,"14:[\"$\",\"div\",null,{\"className\":\"rounded-2xl border border-white/10 bg-white/5 p-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm font-semibold text-sky-200\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bot h-4 w-4\",\"children\":[[\"$\",\"path\",\"hb8ula\",{\"d\":\"M12 8V4H8\"}],[\"$\",\"rect\",\"enze0r\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\"}],[\"$\",\"path\",\"vft8re\",{\"d\":\"M2 14h2\"}],[\"$\",\"path\",\"4cs60a\",{\"d\":\"M20 14h2\"}],[\"$\",\"path\",\"1xurst\",{\"d\":\"M15 13v2\"}],[\"$\",\"path\",\"rq6x2g\",{\"d\":\"M9 13v2\"}],\"$undefined\"]}],\"Endless pressure\"]}],[\"$\",\"p\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-300\",\"children\":\"The game keeps leaning forward: stronger enemies, fuller waves, and bigger reward moments as your defense line gets more polished.\"}]]}]\n"])</script>
14<script>self.__next_f.push([1,"15:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-chevron-down h-4 w-4 flex-none text-slate-400 transition-transform group-open:rotate-180\",\"children\":[[\"$\",\"path\",\"qrunsl\",{\"d\":\"m6 9 6 6 6-6\"}],\"$undefined\"]}]\n16:[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Yes. The board expands inside the page and can shrink back again without leaving the run.\"}]\n"])</script>
14<script>self.__next_f.push([1,"1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n1a:null\n"])</script>
14<script>self.__next_f.push([1,"26:I[79655,[],\"IconMark\"]\n"])</script>
14<script>self.__next_f.push([1,"1c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Tower Defense - Endless Browser Game | PuzzlePave\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Play an endless tower defense game with burst fire, upgrades, a vertical lane, and in-page expand mode.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"tower defense game,browser tower defense,endless tower defense,expand mode tower defense\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://puzzlepave.com/tower-defense\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Tower Defense - Endless Browser Game | PuzzlePave\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"An endless tower defense game with upgrades, burst fire, a vertical lane, and in-page expand mode.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://puzzlepave.com/tower-defense\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image\",\"content\":\"https://puzzlepave.com/icon0.svg\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:width\",\"content\":\"512\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:height\",\"content\":\"512\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:alt\",\"content\":\"PuzzlePave Tower Defense\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Tower Defense - Endless Browser Game | PuzzlePave\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"An endless tower defense game with upgrades, burst fire, a vertical lane, and in-page expand mode.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://puzzlepave.com/icon0.svg\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"48x48\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icon0.svg?03bd9a244b51b65d\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"link\",\"19\",{\"rel\":\"icon\",\"href\":\"/icon1.png?e006472442827368\",\"type\":\"image/png\",\"sizes\":\"96x96\"}],[\"$\",\"link\",\"20\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?e75e3680e9dffba5\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L26\",\"21\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
14<script>self.__next_f.push([1,"21:\"$1c:metadata\"\n"])</script>
14<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"ba12a6c8b3b14e869a14b18a821d6bf3","r":1,"spa":2}' crossorigin="anonymous"></script>
14
15</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.