attr.so
FeaturesAboutChrome ExtensionFree toolsBlogPricingSign inSign up free
FeaturesAboutChrome ExtensionFree toolsBlogPricingSign inSign up free
attr.so/Free tools/Social Media Preview
FREE TOOL · NO SIGNUP

Social Preview Generator -free

Edit a title, description, and image; see the share preview on Twitter, LinkedIn, Facebook, and Slack at once - then copy the complete meta tag block.

4platforms live
OG+TWtags emitted
∞previews / day
attr.so/tools/social-previewLive preview
39/60 ideal · longer titles get truncated on Twitter.
84/160 ideal.
Live preview
Twitter / X
No image
yoursite.com
How we shipped 12 free tools in 3 weeks
Behind-the-scenes on the launch playbook, what worked, and what we'd skip next time.
LinkedIn
No image
How we shipped 12 free tools in 3 weeks
yoursite.com
Facebook
No image
yoursite.com
How we shipped 12 free tools in 3 weeks
Behind-the-scenes on the launch playbook, what worked, and what we'd skip next time.
Slack
attr.so
How we shipped 12 free tools in 3 weeks
Behind-the-scenes on the launch playbook, what worked, and what we'd skip next time.
Meta tag HTML
<!-- Open Graph --> <meta property="og:title" content="How we shipped 12 free tools in 3 weeks" /> <meta property="og:description" content="Behind-the-scenes on the launch playbook, what worked, and what we'd skip next time." /> <meta property="og:image" content="" /> <meta property="og:url" content="https://yoursite.com/article" /> <meta property="og:site_name" content="attr.so" /> <meta property="og:type" content="website" /> <!-- Twitter --> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="How we shipped 12 free tools in 3 weeks" /> <meta name="twitter:description" content="Behind-the-scenes on the launch playbook, what worked, and what we'd skip next time." /> <meta name="twitter:image" content="" />
/ 5 quick steps

How to use this tool.

~ 30 seconds end to end
  1. 01

    Edit the title, description, image, URL

    Type - every change re-renders the previews instantly.

  2. 02

    Watch the four previews update

    Twitter, LinkedIn, Facebook, Slack - all four side-by-side as you tweak.

  3. 03

    Copy the meta tag HTML

    One click copies the complete <meta> block including OpenGraph, Twitter Card, and recommended type tags.

  4. 04

    Paste into your <head>

    Add it to your CMS template, Next.js metadata config, or static HTML. Verify with our Meta Tag Preview tool when live.

  5. 05

    Track the share URLOPTIONAL

    Wrap the canonical share URL in an attr.so short link to see which platform actually drives clicks.

    Make it trackable
/ Where people use it

Common use cases.

6 most popular
Content
Track every link.attr.so
USE CASE 01

Blog posts

Tighter descriptions and stronger images mean 2-3x more clicks from LinkedIn and Twitter shares.

Launch
USE CASE 02

Product launches

Make sure the launch URL renders perfectly on Product Hunt, HN, Twitter, and LinkedIn before announcing.

Static
attr.so
USE CASE 03

Static HTML pages

Marketing landing pages without a CMS - generate the full meta block once and paste it into <head>.

Micro
USE CASE 04

Microsites and one-pagers

Single-page launches where every share moment counts. Polished previews are free engagement.

Internal
@attrso
attr.so/launch
USE CASE 05

Internal-tool dashboards

Even Slack-shared internal links benefit from a clean preview - avoid bare-URL ugliness in team channels.

A/B
USE CASE 06

Landing page A/B tests

Test image and headline variants in social previews before changing what your CMS emits.

/ The difference

Free, then trackable when you need it.

vs typical free tools
⚠ Most free tools

What you usually get

  • OG-only output. Twitter Card tags missing - your tweets fall back to bare URL.
  • One platform preview at a time. Tabbed UI; you cannot see all four side-by-side.
  • No length warnings. Too-long titles get silently truncated on every platform.
  • Server-side render. Your unreleased copy sits in their logs.
  • Email gate for HTML export. You can preview, but exporting the tag block costs an email.
attr.so · what we ship

What you get here

  • Both OG and Twitter Card output. Sensible defaults like twitter:card="summary_large_image" built in.
  • Four-platform live preview. Twitter, LinkedIn, Facebook, Slack - side by side as you edit.
  • Length recommendations. Character counts against ideal lengths so you avoid silent truncation.
  • No signup, no upload. Renders locally - your image and copy never leave the page.
  • Copy-ready HTML block. One click copies the full <meta> block, ready to paste.
/ FAQ

Frequently asked.

Can't find it? Email us
What is the ideal og:image size?
1200 x 630 pixels at a 1.91 : 1 aspect ratio is the sweet spot - Facebook, LinkedIn, and most other platforms crop to roughly that. Keep file size under 8 MB.
Do I need both Open Graph and Twitter Card tags?
For broad coverage, yes. Most apps (LinkedIn, Slack, Discord, iMessage) read Open Graph. Twitter primarily reads twitter:* tags but falls back to og:* if they are missing. Setting both is the safest default.
How long can the title and description be?
Title: 60 characters before Twitter and Google truncate; LinkedIn allows ~70. Description: 160 characters is the standard cut-off across platforms.
Why does my OG image not appear in shares?
Three usual causes: the image URL is relative not absolute, the image is behind a login or referer block, or the platform cached an older version. Use Facebook Sharing Debugger or LinkedIn Post Inspector to flush the cache.
Does Google use Open Graph for SEO?
Indirectly. Google primarily uses and <meta description>; Open Graph drives social sharing, which drives backlinks and brand searches that do affect ranking.</div></details><details class="tlp-q"><summary><span>Can I generate dynamic OG images per page?</span><span class="tlp-q-tog" aria-hidden="true"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 5v14M5 12h14"></path></svg></span></summary><div class="tlp-q-a">Yes - Next.js, Vercel, and Cloudflare all offer dynamic image rendering APIs (satori, OG image generation). Generate a static template here, then automate per-page versions in production.</div></details><details class="tlp-q"><summary><span>Should I include og:type and og:site_name?</span><span class="tlp-q-tog" aria-hidden="true"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 5v14M5 12h14"></path></svg></span></summary><div class="tlp-q-a">Yes - both are recommended. og:type="website" or "article" is enough for most pages; og:site_name helps Slack and LinkedIn show your brand alongside the title.</div></details></div><script>(function(){ var root = document.querySelector('[data-tlp-faq]'); if (!root) return; var all = root.querySelectorAll('details.tlp-q'); all.forEach(function(d){ d.addEventListener('toggle', function(){ if (d.open) all.forEach(function(o){ if (o !== d) o.open = false; }); }); }); })();</script></div></section><section class="tlp-section tlp-section-tan"><div class="tlp-container"><div class="tlp-s-head"><div><span class="tlp-eyebrow">/ Keep going</span><h2 class="tlp-h2">Pair with these.</h2></div></div><div class="tlp-rel-grid"><div class="tlp-rel-col"><h3 class="tlp-rel-h3">Related free tools</h3><div class="tlp-rel-rows"><a class="tlp-rel-row" href="/tools/meta-tag-preview"><span class="tlp-rel-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="14" rx="2"></rect><path d="M3 9h18M8 14h6"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">Meta Tag / OG Preview</span><span class="tlp-rel-sub">See how a link looks</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/utm-builder"><span class="tlp-rel-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 6h16M4 12h16M4 18h10"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">UTM Parameter Builder</span><span class="tlp-rel-sub">Tag campaigns properly</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/qr-code-generator"><span class="tlp-rel-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><path d="M14 14h3v3M17 21h4v-4"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">QR Code Generator</span><span class="tlp-rel-sub">QR codes from any URL</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/url-shortener"><span class="tlp-rel-icon" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.72-1.71"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">URL Shortener</span><span class="tlp-rel-sub">Shorten long URLs</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a></div></div><div class="tlp-rel-col"><h3 class="tlp-rel-h3">Related guides</h3><div class="tlp-rel-rows"><a class="tlp-rel-row" href="/tools/meta-tag-preview"><span class="tlp-rel-icon tlp-rel-icon-soft" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h12l4 4v12H4z"></path><path d="M16 4v4h4M8 12h8M8 16h6"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">Verify a live URL&apos;s meta tags</span><span class="tlp-rel-sub">FREE TOOL</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/utm-builder"><span class="tlp-rel-icon tlp-rel-icon-soft" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h12l4 4v12H4z"></path><path d="M16 4v4h4M8 12h8M8 16h6"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">Build a UTM-tagged share URL</span><span class="tlp-rel-sub">FREE TOOL</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/qr-code-generator"><span class="tlp-rel-icon tlp-rel-icon-soft" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h12l4 4v12H4z"></path><path d="M16 4v4h4M8 12h8M8 16h6"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">Generate a QR code for the share</span><span class="tlp-rel-sub">FREE TOOL</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a><a class="tlp-rel-row" href="/tools/url-shortener"><span class="tlp-rel-icon tlp-rel-icon-soft" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h12l4 4v12H4z"></path><path d="M16 4v4h4M8 12h8M8 16h6"></path></svg></span><span class="tlp-rel-text"><span class="tlp-rel-title">Shorten the share URL</span><span class="tlp-rel-sub">FREE TOOL</span></span><span class="tlp-rel-arr" aria-hidden="true">→</span></a></div></div></div><div class="tlp-track"><div class="tlp-track-tx"><h3 class="tlp-track-h">Find out which preview gets the clicks.</h3><p>Wrap your share URL in an attr.so short link and see exactly which platform drives traffic.</p></div><div class="tlp-track-actions"><a class="tlp-btn tlp-btn-cyan" href="/login?mode=signup">Start free <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="tlp-btn tlp-btn-outline-white" href="/#pricing">See pricing</a></div></div></div></section><section class="tlp-section tlp-section-other"><div class="tlp-container"><div class="tlp-s-head"><div><span class="tlp-eyebrow">/ More from attr.so</span><h2 class="tlp-h2">Other free tools.</h2></div><a class="tlp-s-meta tlp-s-meta-link" href="/tools">Browse all <!-- -->12<!-- --> →</a></div><div class="tlp-otile-grid"><a class="tlp-otile" href="/tools/qr-code-generator"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><path d="M14 14h3v3M17 21h4v-4"></path></svg></span><h3 class="tlp-otile-name">QR Code Generator</h3><p class="tlp-otile-desc">QR codes from any URL</p><span class="tlp-otile-foot">Open tool<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><a class="tlp-otile" href="/tools/url-shortener"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.72-1.71"></path></svg></span><h3 class="tlp-otile-name">URL Shortener</h3><p class="tlp-otile-desc">Shorten long URLs</p><span class="tlp-otile-foot">Open tool<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><a class="tlp-otile" href="/tools/utm-builder"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 6h16M4 12h16M4 18h10"></path></svg></span><h3 class="tlp-otile-name">UTM Parameter Builder</h3><p class="tlp-otile-desc">Tag campaigns properly</p><span class="tlp-otile-foot">Open tool<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><a class="tlp-otile" href="/tools/meta-tag-preview"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="14" rx="2"></rect><path d="M3 9h18M8 14h6"></path></svg></span><h3 class="tlp-otile-name">Meta Tag / OG Preview</h3><p class="tlp-otile-desc">See how a link looks</p><span class="tlp-otile-foot">Open tool<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><a class="tlp-otile" href="/tools/link-privacy-checker"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="11" width="18" height="11" rx="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg></span><h3 class="tlp-otile-name">Link Privacy Checker</h3><p class="tlp-otile-desc">Where does a short link go?</p><span class="tlp-otile-foot">Open tool<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></a><div class="tlp-otile tlp-otile-current" aria-current="page"><span class="tlp-otile-ic" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"></rect><circle cx="9" cy="9" r="2"></circle><path d="m21 15-5-5L5 21"></path></svg></span><h3 class="tlp-otile-name">Social Media Preview</h3><p class="tlp-otile-desc">Preview every platform</p><span class="tlp-otile-foot">You're here</span></div></div></div></section></div></main><style> .ms-footer { /* Scope dark-palette values so the footer stays dark on every theme, matching the design spec in screenshots/footer.png. */ --ms-surface: #0a0d14; --ms-text: #e2eaf6; --ms-muted: #8ca0bc; --ms-border: rgba(255, 255, 255, 0.08); background: var(--ms-surface); border-top: 1px solid var(--ms-border); margin: 0; padding: 36px 40px 24px; color: var(--ms-text); } @media (max-width: 720px) { .ms-footer { padding: 28px 20px 20px; } } .ms-footer .ms-logo { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ms-text); text-decoration: none; display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .ms-footer .ms-logo-mark { width: 28px; height: 28px; border-radius: 6px; overflow: hidden; display: inline-flex; flex-shrink: 0; } .ms-footer .ms-logo-mark img { width: 100%; height: 100%; display: block; } .ms-footer-top { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 2fr); gap: 32px; align-items: start; max-width: 1200px; margin: 0 auto; } @media (max-width: 720px) { .ms-footer-top { grid-template-columns: 1fr; gap: 28px; } } .ms-footer-brand { display: flex; flex-direction: column; gap: 14px; max-width: 360px; } .ms-footer-tagline { font-size: 14px; color: var(--ms-muted); line-height: 1.55; } .ms-footer-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } @media (max-width: 480px) { .ms-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } } .ms-footer-col-title { font-size: 13px; font-weight: 700; color: var(--ms-text); margin: 0 0 12px; letter-spacing: 0.01em; } .ms-footer-col-list { display: flex; flex-direction: column; gap: 8px; list-style: none; padding: 0; margin: 0; } .ms-footer-link { font-size: 13px; color: var(--ms-muted); text-decoration: none; transition: color 0.15s; } .ms-footer-link:hover { color: var(--ms-text); } .ms-footer-credit-row { max-width: 1200px; margin: 28px auto 0; padding-top: 18px; border-top: 1px solid var(--ms-border); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; } .ms-footer-credit { font-size: 12px; color: var(--ms-muted); font-family: var(--brand-font-mono-stack); } .ms-footer-built { font-size: 12px; color: var(--ms-muted); display: inline-flex; align-items: center; gap: 8px; text-decoration: none; } .ms-footer-built:hover { color: var(--ms-text); } .ms-footer-built-text { color: inherit; } .ms-footer-built-icon { width: 16px; height: 16px; display: block; border-radius: 4px; flex-shrink: 0; } </style><footer class="ms-footer"><div class="ms-footer-top"><div class="ms-footer-brand"><a class="ms-logo" aria-label="Attr.so" href="/"><span class="inline-flex items-center " style="gap:0.625rem"><svg width="28" height="28" viewBox="0 0 64 64" class="" style="color:var(--app-accent, #0DBDD5)" aria-hidden="true"><rect x="20" y="8" width="36" height="36" rx="8" fill="currentColor" fill-opacity="0.35"></rect><rect x="14" y="14" width="36" height="36" rx="8" fill="currentColor" fill-opacity="0.6"></rect><rect x="8" y="20" width="36" height="36" rx="8" fill="currentColor"></rect></svg><span class="font-bold " style="font-family:var(--brand-font-wordmark-stack, var(--brand-font-heading-stack));font-weight:700;font-size:22px;letter-spacing:-0.05em;line-height:1">attr<span style="color:var(--app-accent, #0DBDD5)">.so</span></span></span></a><p class="ms-footer-tagline">Privacy-first, developer-friendly link management software</p></div><div class="ms-footer-cols"><div><div class="ms-footer-col-title">Product</div><ul class="ms-footer-col-list"><li><a class="ms-footer-link" href="/features">Features</a></li><li><a class="ms-footer-link" href="/extension">Chrome Extension</a></li><li><a class="ms-footer-link" href="/tools">Free tools</a></li><li><a class="ms-footer-link" href="/#pricing">Pricing</a></li><li><a class="ms-footer-link" href="/docs">Docs</a></li><li><a class="ms-footer-link" href="/docs/api">API reference</a></li><li><a class="ms-footer-link" href="/changelog">Changelog</a></li><li><a class="ms-footer-link" href="/roadmap">Roadmap</a></li></ul></div><div><div class="ms-footer-col-title">Company</div><ul class="ms-footer-col-list"><li><a class="ms-footer-link" href="/about">About</a></li><li><a class="ms-footer-link" href="/blog">Blog</a></li><li><a class="ms-footer-link" href="/help">Help</a></li><li><a class="ms-footer-link" href="/feature-requests">Feature requests</a></li><li><a class="ms-footer-link" href="/support">Support</a></li><li><a class="ms-footer-link" href="/status">Status</a></li></ul></div><div><div class="ms-footer-col-title">Legal</div><ul class="ms-footer-col-list"><li><a class="ms-footer-link" href="/privacy">Privacy</a></li><li><a class="ms-footer-link" href="/terms">Terms</a></li><li><a class="ms-footer-link" href="/security">Security</a></li></ul></div></div></div><div class="ms-footer-credit-row"><div class="ms-footer-credit">© <!-- -->2026<!-- --> <!-- -->Attr.so<!-- --> - All rights reserved</div><a href="https://apptimistic.com" target="_blank" rel="noopener noreferrer" class="ms-footer-built" aria-label="Built by Apptimistic"><img src="/apptimistic.png" alt="" width="16" height="16" class="ms-footer-built-icon"/><span class="ms-footer-built-text">Built by Apptimistic</span></a></div></footer></div><!--$--><!--/$--></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0}; $RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:I[339756,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"LoadingBoundaryProvider\"]\n2:\"$Sreact.fragment\"\nd:I[253348,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/11d5cyyukrc_j.js\",\"/_next/static/chunks/0..wa5b-e~l7h.js\"],\"default\"]\n11:I[339756,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"default\"]\n12:I[837457,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"default\"]\n14:I[897367,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"OutletBoundary\"]\n15:\"$Sreact.suspense\"\n18:I[897367,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"ViewportBoundary\"]\n1a:I[897367,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"MetadataBoundary\"]\n1c:I[134377,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0myhs2tvc-1rr.js\"],\"GoogleAnalytics\"]\n1d:I[617571,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0myhs2tvc-1rr.js\"],\"AnnouncementBanner\"]\n1f:I[522016,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0myhs2tvc-1rr.js\",\"/_next/static/chunks/0p2_r4oyd364h.js\",\"/_next/static/chunks/0a8ouwlg63mr2.js\",\"/_next/static/chunks/0qy5ye52vfqr2.js\",\"/_next/static/chunks/0jjjvmnuho84o.js\",\"/_next/static/chunks/06lb._za6beft.js\",\"/_next/static/chunks/0v9_t5fti2j5z.js\",\"/_next/static/chunks/08i6uf86v2s6h.js\"],\"\"]\n20:I[650466,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0myhs2tvc-1rr.js\"],\"CookieConsent\"]\n25:I[175696,[\"/_next/static/chunks/0l2986in4yq45.js\"],\"default\"]\n26:I[408821,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0i7zqk6lcdle7.js\",\"/_next/static/chunks/0..wa5b-e~l7h.js\"],\"default\"]\n33:I[49226,[\"/_next/static/chunks/0l2986in4yq45.js\",\"/_next/static/chunks/0myhs2tvc-1rr.js\",\"/_next/static/chunks/0p2_r4oyd364h.js\",\"/_next/static/chunks/0a8ouwlg63mr2.js\",\"/_next/static/chunks/0qy5ye52vfqr2.js\",\"/_next/static/chunks/0jjjvmnuho84o.js\",\"/_next/static/chunks/06lb._za6beft.js\",\"/_next/static/chunks/0v9_t5fti2j5z.js\",\"/_next/static/chunks/08i6uf86v2s6h.js\"],\"SocialPreview\"]\n4b:I[27201,[\"/_next/static/chunks/0x.73w57rn4ou.js\",\"/_next/static/chunks/0i.l9589uvx0j.js\"],\"IconMark\"]\n:HL[\"/_next/static/chunks/0-8lnz2e8l8ef.css\",\"style\"]\n:HL[\"/_next/static/chunks/12-e6yyrrosth.css\",\"style\"]\n:HL[\"/_next/static/media/051742360c26797e-s.p.0f97p8c3305p~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/7f85dd73dfdb86b2-s.p.02pc7aiy98wtw.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/apptimistic.png\",\"image\"]\n3:T6f3,"])</script><script>self.__next_f.push([1,"\n .pb-skel-page { min-height: 100vh; background: var(--brand-page-bg); color: var(--brand-text-primary); font-family: var(--brand-font-body-stack); }\n .light .pb-skel-page { background: var(--brand-page-bg); color: var(--brand-text-primary); }\n\n .pb-skel-nav { height: 56px; border-bottom: 1px solid var(--brand-divider); display: flex; align-items: center; padding: 0 24px; gap: 16px; background: rgba(9,9,11,0.92); backdrop-filter: blur(12px); }\n .light .pb-skel-nav { border-bottom-color: var(--brand-border); background: rgba(255,255,255,0.92); }\n\n .pb-skel-block, .pb-skel-pill, .pb-skel-bar, .pb-skel-card {\n background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, var(--brand-border) 50%, rgba(255,255,255,0.04) 100%);\n background-size: 200% 100%;\n animation: pb-skel-shimmer 1.4s ease-in-out infinite;\n border-radius: 8px;\n }\n .light .pb-skel-block, .light .pb-skel-pill, .light .pb-skel-bar, .light .pb-skel-card {\n background: linear-gradient(90deg, var(--brand-input-bg) 0%, var(--brand-border) 50%, var(--brand-input-bg) 100%);\n background-size: 200% 100%;\n }\n\n .pb-skel-pill { height: 28px; width: 120px; border-radius: 999px; }\n .pb-skel-bar { height: 14px; }\n .pb-skel-card { height: 140px; border-radius: 14px; margin-bottom: 16px; }\n .pb-skel-card.tall { height: 240px; }\n .pb-skel-card.short { height: 80px; }\n\n @keyframes pb-skel-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .pb-skel-block, .pb-skel-pill, .pb-skel-bar, .pb-skel-card { animation: none; }\n }\n "])</script><script>self.__next_f.push([1,"5:T6f3,"])</script><script>self.__next_f.push([1,"\n .pb-skel-page { min-height: 100vh; background: var(--brand-page-bg); color: var(--brand-text-primary); font-family: var(--brand-font-body-stack); }\n .light .pb-skel-page { background: var(--brand-page-bg); color: var(--brand-text-primary); }\n\n .pb-skel-nav { height: 56px; border-bottom: 1px solid var(--brand-divider); display: flex; align-items: center; padding: 0 24px; gap: 16px; background: rgba(9,9,11,0.92); backdrop-filter: blur(12px); }\n .light .pb-skel-nav { border-bottom-color: var(--brand-border); background: rgba(255,255,255,0.92); }\n\n .pb-skel-block, .pb-skel-pill, .pb-skel-bar, .pb-skel-card {\n background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, var(--brand-border) 50%, rgba(255,255,255,0.04) 100%);\n background-size: 200% 100%;\n animation: pb-skel-shimmer 1.4s ease-in-out infinite;\n border-radius: 8px;\n }\n .light .pb-skel-block, .light .pb-skel-pill, .light .pb-skel-bar, .light .pb-skel-card {\n background: linear-gradient(90deg, var(--brand-input-bg) 0%, var(--brand-border) 50%, var(--brand-input-bg) 100%);\n background-size: 200% 100%;\n }\n\n .pb-skel-pill { height: 28px; width: 120px; border-radius: 999px; }\n .pb-skel-bar { height: 14px; }\n .pb-skel-card { height: 140px; border-radius: 14px; margin-bottom: 16px; }\n .pb-skel-card.tall { height: 240px; }\n .pb-skel-card.short { height: 80px; }\n\n @keyframes pb-skel-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .pb-skel-block, .pb-skel-pill, .pb-skel-bar, .pb-skel-card { animation: none; }\n }\n "])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"tools\",\"social-preview\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(marketing)\",{\"children\":[\"tools\",{\"children\":[\"social-preview\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",4]},\"$undefined\",\"$undefined\",28],[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"$2\",\"l\",{\"children\":[[\"$\",\"style\",null,{\"children\":\"$3\"}],[\"$\",\"div\",null,{\"className\":\"pb-skel-page\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-skel-nav\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":110}}],[\"$\",\"div\",null,{\"style\":{\"flex\":1,\"display\":\"flex\",\"gap\":8},\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":70,\"height\":24}}],[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":70,\"height\":24}}],[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":70,\"height\":24}}],[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":70,\"height\":24}}]]}],[\"$\",\"div\",null,{\"className\":\"pb-skel-pill\",\"style\":{\"width\":32,\"height\":32,\"borderRadius\":\"50%\"}}]]}],[\"$\",\"main\",null,{\"style\":{\"maxWidth\":1280,\"margin\":\"0 auto\",\"padding\":\"32px 24px\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-skel-bar\",\"style\":{\"width\":220,\"height\":22,\"marginBottom\":24}}],[[\"$\",\"div\",\"0\",{\"className\":\"pb-skel-card short\"}],[\"$\",\"div\",\"1\",{\"className\":\"pb-skel-card \"}],[\"$\",\"div\",\"2\",{\"className\":\"pb-skel-card \"}]]]}]]}]]}],[],[]],\"children\":[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0-8lnz2e8l8ef.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12-e6yyrrosth.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0l2986in4yq45.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L4\"]}]}],{\"children\":[[\"$\",\"$L1\",null,{\"loading\":[[\"$\",\"$2\",\"l\",{\"children\":[[\"$\",\"style\",null,{\"children\":\"$5\"}],\"$L6\"]}],[],[]],\"children\":\"$L7\"}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{},null,false,null]},null,false,\"$@b\"]},null,false,\"$@b\"]},null,false,null]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\",\"$Lf\"]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"L6SJuJxQ6J8AaUJ5WNieh\"}\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"main\",null,{\"style\":{\"maxWidth\":1280,\"margin\":\"0 auto\",\"padding\":\"32px 24px\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"pb-skel-bar\",\"style\":{\"width\":220,\"height\":22,\"marginBottom\":24}}],[[\"$\",\"div\",\"0\",{\"className\":\"pb-skel-card short\"}],[\"$\",\"div\",\"1\",{\"className\":\"pb-skel-card \"}],[\"$\",\"div\",\"2\",{\"className\":\"pb-skel-card \"}]]]}]\n7:[\"$\",\"$2\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0myhs2tvc-1rr.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L10\"]}]\n8:[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L12\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$2\",\"c\",{\"children\":[null,[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L12\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$2\",\"c\",{\"children\":[\"$L13\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0p2_r4oyd364h.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0a8ouwlg63mr2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0qy5ye52vfqr2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0jjjvmnuho84o.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/06lb._za6beft.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0v9_t5fti2j5z.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/08i6uf86v2s6h.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@16\"}]}]]}]\n17:[]\nb:\"$W17\"\nc:[\"$\",\"$2\",\"h\",{\"children\":[null,[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1b\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0-8lnz2e8l8ef.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12-e6yyrrosth.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n1e:T63f,"])</script><script>self.__next_f.push([1,"\n .nf-shell { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:32px; background:var(--brand-page-bg); color:var(--brand-text-primary); font-family: var(--brand-font-body-stack); }\n .light .nf-shell { background:var(--brand-page-bg); color:var(--brand-text-primary); }\n .nf-card { width:100%; max-width:520px; background:var(--brand-surface); border:1px solid var(--brand-border); border-radius:16px; padding:40px 32px; text-align:center; }\n .light .nf-card { background:var(--brand-surface); border-color:var(--brand-border); }\n .nf-code { font-size:48px; font-weight:800; letter-spacing:-0.04em; color:var(--app-accent); margin:0 0 4px; line-height:1; }\n .nf-title { margin:0 0 12px; font-size:22px; font-weight:800; letter-spacing:-0.02em; }\n .nf-body { margin:0 0 24px; font-size:14px; line-height:1.6; color:var(--brand-text-secondary); }\n .light .nf-body { color:var(--brand-text-secondary); }\n .nf-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }\n .nf-btn { padding:11px 18px; border-radius:10px; font-size:13px; font-weight:700; text-decoration:none; letter-spacing:-0.01em; }\n .nf-btn-primary { background:var(--app-accent); color:var(--app-accent-contrast); }\n .nf-btn-secondary { background:var(--brand-input-bg); color:var(--brand-text-primary); border:1px solid var(--brand-input-border); }\n .light .nf-btn-secondary { background:var(--brand-input-bg); color:var(--brand-text-primary); border-color:var(--brand-input-border); }\n "])</script><script>self.__next_f.push([1,"10:[\"$\",\"div\",null,{\"className\":\"plus_jakarta_sans_e515de72-module__peB0DW__variable plus_jakarta_sans_41b32ec9-module__tQNMAq__variable\",\"style\":{\"fontFamily\":\"var(--brand-font-body-stack)\"},\"children\":[[\"$\",\"$L1c\",null,{}],[\"$\",\"$L1d\",null,{\"announcement\":null}],[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L12\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"className\":\"nf-shell\",\"children\":[[\"$\",\"style\",null,{\"children\":\"$1e\"}],[\"$\",\"div\",null,{\"className\":\"nf-card\",\"children\":[[\"$\",\"p\",null,{\"className\":\"nf-code\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"nf-title\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"nf-body\",\"children\":\"The page you were looking for doesn't exist or has been moved.\"}],[\"$\",\"div\",null,{\"className\":\"nf-actions\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/\",\"className\":\"nf-btn nf-btn-primary\",\"children\":\"Go home\"}],[\"$\",\"$L1f\",null,{\"href\":\"/dashboard\",\"className\":\"nf-btn nf-btn-secondary\",\"children\":\"Open dashboard\"}]]}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L20\",null,{\"version\":\"1\"}]]}]\n21:T12ef,"])</script><script>self.__next_f.push([1,":root { --app-accent: #0DBDD5; --app-accent-rgb: 13, 189, 213; --app-accent-contrast: #ffffff; --brand-accent-deep: #04323a; --brand-accent-soft: #b8ecf3; --brand-accent-tint: #e6f8fb; --brand-line: rgba(4,50,58,0.12); --brand-radius: 0.5rem; --brand-focus-ring: rgba(var(--app-accent-rgb, 13, 189, 213), 0.4); --brand-font-body-stack: var(--brand-font-body), \"Plus Jakarta Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; --brand-font-heading-stack: var(--brand-font-heading), \"Plus Jakarta Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; --brand-font-mono-stack: var(--brand-font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; --brand-font-wordmark-stack: var(--brand-font-wordmark), Geist, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; --font-geist-mono: var(--brand-font-mono); --font-display: var(--brand-font-heading); --font-body: var(--brand-font-body); --brand-text-xs: 11px; --brand-text-sm: 12px; --brand-text-base: 14px; --brand-text-md: 15px; --brand-text-lg: 17px; --brand-text-xl: 20px; --brand-text-2xl: 24px; --brand-text-3xl: 32px; --brand-text-4xl: 44px; --brand-page-bg: #090d14; --brand-surface: #111923; --brand-surface-elevated: #161e2c; --brand-text-primary: #e2eaf6; --brand-text-secondary: #8ca0bc; --brand-text-muted: #566880; --brand-placeholder: #3d5266; --brand-border: rgba(100,150,200,0.10); --brand-border-strong: rgba(100,150,200,0.18); --brand-divider: rgba(100,150,200,0.07); --brand-input-bg: rgba(255,255,255,0.04); --brand-input-border: rgba(100,150,200,0.14); --brand-hover-bg: rgba(100,150,200,0.07); --brand-success: #10b981; --brand-success-rgb: 16, 185, 129; --brand-danger: #f87171; --brand-danger-rgb: 248, 113, 113; --brand-warning: #f59e0b; --brand-warning-rgb: 245, 158, 11; --brand-status-hot: #ff5630; --background: var(--brand-page-bg); --foreground: var(--brand-text-primary); --card: var(--brand-surface); --card-foreground: var(--brand-text-primary); --popover: var(--brand-surface-elevated); --popover-foreground: var(--brand-text-primary); --primary: var(--app-accent, #0DBDD5); --primary-foreground: var(--app-accent-contrast, #ffffff); --secondary: rgba(255,255,255,0.06); --secondary-foreground: var(--brand-text-primary); --muted: rgba(255,255,255,0.05); --muted-foreground: var(--brand-text-muted); --accent: rgba(var(--app-accent-rgb, 13, 189, 213), 0.1); --accent-foreground: var(--app-accent, #0DBDD5); --destructive: var(--brand-danger); --border: var(--brand-border); --input: rgba(255,255,255,0.06); --ring: rgba(var(--app-accent-rgb, 13, 189, 213), 0.4); --radius: var(--brand-radius); --sidebar: var(--brand-surface); --sidebar-foreground: var(--brand-text-primary); --sidebar-primary: var(--app-accent, #0DBDD5); --sidebar-primary-foreground: var(--app-accent-contrast, #ffffff); --sidebar-accent: rgba(255,255,255,0.05); --sidebar-accent-foreground: var(--brand-text-primary); --sidebar-border: var(--brand-border); --sidebar-ring: rgba(var(--app-accent-rgb, 13, 189, 213), 0.4); } .light { --brand-page-bg: #f2f7fc; --brand-surface: #ffffff; --brand-surface-elevated: #e8f2f9; --brand-text-primary: #090d14; --brand-text-secondary: #3d5a76; --brand-text-muted: #6080a0; --brand-placeholder: #8cafc8; --brand-border: rgba(0,0,0,0.08); --brand-border-strong: rgba(0,0,0,0.14); --brand-divider: rgba(0,0,0,0.06); --brand-input-bg: rgba(0,0,0,0.03); --brand-input-border: rgba(0,0,0,0.10); --brand-hover-bg: rgba(0,0,0,0.05); --brand-success: #10b981; --brand-success-rgb: 16, 185, 129; --brand-danger: #dc2626; --brand-danger-rgb: 220, 38, 38; --brand-warning: #f59e0b; --brand-warning-rgb: 245, 158, 11; --brand-status-hot: #ff5630; --background: var(--brand-page-bg); --foreground: var(--brand-text-primary); --card: var(--brand-surface); --card-foreground: var(--brand-text-primary); --popover: var(--brand-surface-elevated); --popover-foreground: var(--brand-text-primary); --primary: var(--app-accent, #0DBDD5); --primary-foreground: var(--app-accent-contrast, #ffffff); --secondary: rgba(0,0,0,0.05); --secondary-foreground: var(--brand-text-primary); --muted: rgba(0,0,0,0.04); --muted-foreground: var(--brand-text-muted); --accent: rgba(var(--app-accent-rgb, 13, 189, 213), 0.12); --accent-foreground: var(--app-accent, #0DBDD5); --destructive: var(--brand-danger); --border: var(--brand-border); --input: rgba(0,0,0,0.06); --ring: rgba(var(--app-accent-rgb, 13, 189, 213), 0.4); --radius: var(--brand-radius); --sidebar: var(--brand-surface); --sidebar-foreground: var(--brand-text-primary); --sidebar-primary: var(--app-accent, #0DBDD5); --sidebar-primary-foreground: var(--app-accent-contrast, #ffffff); --sidebar-accent: rgba(0,0,0,0.04); --sidebar-accent-foreground: var(--brand-text-primary); --sidebar-border: var(--brand-border); --sidebar-ring: rgba(var(--app-accent-rgb, 13, 189, 213), 0.4); }"])</script><script>self.__next_f.push([1,"4:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"plus_jakarta_sans_41b32ec9-module__tQNMAq__variable plus_jakarta_sans_e515de72-module__peB0DW__variable geist_mono_c708d052-module__19RM2G__variable geist_7fb8541a-module__m4Oj1W__variable light\",\"children\":[[\"$\",\"head\",null,{\"children\":[[[\"$\",\"script\",\"4cbd9c6c-069a-4795-899c-aef6be764b5d_0\",{\"async\":\"\",\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-5Y2BQRF697\",\"dangerouslySetInnerHTML\":{\"__html\":\"\"}}],[\"$\",\"script\",\"4cbd9c6c-069a-4795-899c-aef6be764b5d_1\",{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n\\n gtag('config', 'G-5Y2BQRF697');\\n\"}}]],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$21\"}}],\"$L22\",null,[]]}],\"$L23\"]}]\n22:[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root { --app-logo-url: url(\\\"/brand/icon-light.svg\\\"); --app-favicon-url: url(\\\"/favicon.ico\\\"); }\"}}]\n23:[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background text-foreground antialiased\",\"children\":[[],\"$L24\",[]]}]\n19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n27:T63f,"])</script><script>self.__next_f.push([1,"\n .nf-shell { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:32px; background:var(--brand-page-bg); color:var(--brand-text-primary); font-family: var(--brand-font-body-stack); }\n .light .nf-shell { background:var(--brand-page-bg); color:var(--brand-text-primary); }\n .nf-card { width:100%; max-width:520px; background:var(--brand-surface); border:1px solid var(--brand-border); border-radius:16px; padding:40px 32px; text-align:center; }\n .light .nf-card { background:var(--brand-surface); border-color:var(--brand-border); }\n .nf-code { font-size:48px; font-weight:800; letter-spacing:-0.04em; color:var(--app-accent); margin:0 0 4px; line-height:1; }\n .nf-title { margin:0 0 12px; font-size:22px; font-weight:800; letter-spacing:-0.02em; }\n .nf-body { margin:0 0 24px; font-size:14px; line-height:1.6; color:var(--brand-text-secondary); }\n .light .nf-body { color:var(--brand-text-secondary); }\n .nf-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }\n .nf-btn { padding:11px 18px; border-radius:10px; font-size:13px; font-weight:700; text-decoration:none; letter-spacing:-0.01em; }\n .nf-btn-primary { background:var(--app-accent); color:var(--app-accent-contrast); }\n .nf-btn-secondary { background:var(--brand-input-bg); color:var(--brand-text-primary); border:1px solid var(--brand-input-border); }\n .light .nf-btn-secondary { background:var(--brand-input-bg); color:var(--brand-text-primary); border-color:var(--brand-input-border); }\n "])</script><script>self.__next_f.push([1,"24:[\"$\",\"$L25\",null,{\"formats\":\"$undefined\",\"locale\":\"en\",\"messages\":{\"common\":{\"appName\":\"PromptEzy\",\"save\":\"Save\",\"cancel\":\"Cancel\",\"delete\":\"Delete\",\"loading\":\"Loading.\",\"saving\":\"Saving...\",\"back\":\"Back\",\"continue\":\"Continue\",\"yes\":\"Yes\",\"no\":\"No\",\"confirm\":\"Confirm\",\"close\":\"Close\"},\"nav\":{\"dashboard\":\"Dashboard\",\"settings\":\"Settings\",\"billing\":\"Billing\",\"team\":\"Team\",\"admin\":\"Admin\",\"signOut\":\"Sign out\"},\"auth\":{\"signIn\":\"Sign in\",\"signUp\":\"Create account\",\"email\":\"Email\",\"password\":\"Password\",\"forgotPassword\":\"Forgot password?\",\"newPassword\":\"New password\",\"confirmPassword\":\"Confirm password\",\"continueWith\":\"Continue with {provider}\"},\"settings\":{\"profile\":\"Profile\",\"security\":\"Security\",\"notifications\":\"Notifications\",\"apiKeys\":\"API Keys\",\"webhooks\":\"Webhooks\"}},\"now\":\"$undefined\",\"timeZone\":\"UTC\",\"children\":[\"$\",\"$L11\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$26\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0i7zqk6lcdle7.js\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0..wa5b-e~l7h.js\",\"async\":true}]],\"template\":[\"$\",\"$L12\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"className\":\"nf-shell\",\"children\":[[\"$\",\"style\",null,{\"children\":\"$27\"}],[\"$\",\"div\",null,{\"className\":\"nf-card\",\"children\":[[\"$\",\"p\",null,{\"className\":\"nf-code\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"nf-title\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"nf-body\",\"children\":\"The page you were looking for doesn't exist or has been moved.\"}],[\"$\",\"div\",null,{\"className\":\"nf-actions\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/\",\"className\":\"nf-btn nf-btn-primary\",\"children\":\"Go home\"}],[\"$\",\"$L1f\",null,{\"href\":\"/dashboard\",\"className\":\"nf-btn nf-btn-secondary\",\"children\":\"Open dashboard\"}]]}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script><script>self.__next_f.push([1,"28:T112b,"])</script><script>self.__next_f.push([1,"\n .ms-page {\n --ms-ink: var(--brand-surface);\n --ms-surface: #131316;\n --ms-surface-2: #1c1c20;\n --ms-border: var(--brand-border);\n --ms-text: var(--brand-text-primary);\n --ms-muted: var(--brand-text-muted);\n --ms-amber: var(--app-accent);\n --ms-amber-dim: rgba(var(--app-accent-rgb), 0.12);\n background: var(--ms-ink);\n color: var(--ms-text);\n min-height: 100vh;\n font-family: var(--font-body), -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n }\n .light .ms-page {\n --ms-ink: var(--brand-page-bg);\n --ms-surface: var(--brand-surface);\n --ms-surface-2: var(--brand-surface);\n --ms-border: var(--brand-border);\n --ms-text: var(--brand-text-primary);\n --ms-muted: var(--brand-text-secondary);\n }\n\n .ms-nav {\n position: sticky; top: 0; z-index: 50;\n border-bottom: 1px solid var(--ms-border);\n background: rgba(12,12,14,0.85);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n }\n .light .ms-nav { background: rgba(255,255,255,0.85); }\n .ms-nav-inner {\n max-width: 1200px; margin: 0 auto;\n padding: 0 24px; height: 56px;\n display: flex; align-items: center; justify-content: space-between;\n }\n .ms-logo {\n font-family: var(--font-display);\n font-weight: 700; font-size: 18px;\n color: var(--ms-text); text-decoration: none;\n display: flex; align-items: center; gap: 8px;\n flex-shrink: 0;\n }\n .ms-logo-mark {\n width: 28px; height: 28px;\n border-radius: 6px; overflow: hidden;\n display: inline-flex; flex-shrink: 0;\n }\n .ms-logo-mark img { width: 100%; height: 100%; display: block; }\n .ms-nav-links { display: flex; align-items: center; gap: 4px; }\n .ms-nav-link {\n font-size: 14px; color: var(--ms-muted);\n text-decoration: none; padding: 6px 12px; border-radius: 8px;\n transition: color 0.15s, background 0.15s;\n }\n .ms-nav-link:hover { color: var(--ms-text); }\n .ms-nav-link.active { color: var(--ms-text); background: var(--ms-surface-2); }\n .light .ms-nav-link.active { background: var(--brand-input-bg); }\n .ms-btn-primary {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 8px 18px; background: var(--ms-amber); color: var(--app-accent-contrast, var(--brand-text-primary));\n border-radius: 8px; font-size: 13px; font-weight: 700;\n text-decoration: none; transition: opacity 0.15s;\n margin-left: 4px;\n }\n .ms-btn-primary:hover { opacity: 0.92; }\n\n /* Hamburger (mobile) */\n .ms-burger { display: none; position: relative; }\n .ms-burger \u003e summary {\n list-style: none; cursor: pointer;\n width: 36px; height: 36px; border-radius: 8px;\n border: 1px solid var(--ms-border); color: var(--ms-muted);\n display: inline-flex; align-items: center; justify-content: center;\n transition: background 0.15s, color 0.15s, border-color 0.15s;\n }\n .ms-burger \u003e summary::-webkit-details-marker { display: none; }\n .ms-burger \u003e summary::marker { content: ''; }\n .ms-burger \u003e summary:hover { color: var(--ms-text); background: var(--ms-surface-2); }\n .ms-burger[open] \u003e summary { color: var(--ms-text); background: var(--ms-surface-2); }\n .ms-burger-menu {\n position: absolute; top: calc(100% + 10px); right: 0;\n min-width: 220px;\n background: var(--ms-surface);\n border: 1px solid var(--ms-border);\n border-radius: 12px; padding: 8px;\n box-shadow: 0 20px 40px rgba(0,0,0,0.4);\n display: flex; flex-direction: column; gap: 2px;\n z-index: 60;\n }\n .light .ms-burger-menu { box-shadow: 0 12px 32px rgba(9,9,11,0.1); }\n .ms-burger-menu .ms-nav-link { padding: 10px 12px; font-size: 14px; }\n .ms-burger-menu .ms-btn-primary { justify-content: center; margin-left: 0; margin-top: 4px; }\n @media (max-width: 720px) {\n .ms-nav-links { display: none; }\n .ms-burger { display: inline-block; }\n }\n "])</script><script>self.__next_f.push([1,"13:[[\"$\",\"style\",null,{\"children\":\"$28\"}],\"$L29\"]\n2a:T9586,"])</script><script>self.__next_f.push([1,"\n.tlp-root {\n --accent: #0DBDD5;\n --accent-deep: #04323a;\n --accent-soft: #b8ecf3;\n --accent-tint: #e6f8fb;\n --ink: #0F0F0F;\n --ink-2: #1c1c1c;\n --paper: #FAFAF7;\n --tan: #f2efe7;\n --line: #e6e2da;\n --line-2: #efece5;\n --muted: #6b6b6b;\n --muted-2: #9a9a93;\n background: var(--paper);\n color: var(--ink);\n font-family: var(--brand-font-body-stack), 'Geist', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n -webkit-font-smoothing: antialiased;\n font-size: 16px;\n line-height: 1.5;\n}\n.tlp-root *,\n.tlp-root *::before,\n.tlp-root *::after { box-sizing: border-box; }\n.tlp-root a { color: inherit; text-decoration: none; }\n\n.tlp-container {\n max-width: 1180px;\n margin: 0 auto;\n padding: 0 32px;\n position: relative;\n z-index: 2;\n}\n@media (max-width: 600px) {\n .tlp-container { padding: 0 18px; }\n}\n\n.tlp-eyebrow {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', ui-monospace, monospace;\n font-size: 11px; font-weight: 600;\n letter-spacing: 1.6px; text-transform: uppercase;\n color: var(--accent);\n}\n\n.tlp-h2 {\n font-size: clamp(28px, 3.4vw, 40px);\n font-weight: 700; letter-spacing: -1.4px;\n line-height: 1.05;\n margin: 6px 0 0;\n color: var(--ink);\n}\n\n.tlp-s-head {\n display: flex; align-items: flex-end;\n justify-content: space-between;\n gap: 24px; margin-bottom: 36px;\n flex-wrap: wrap;\n}\n.tlp-s-meta {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', ui-monospace, monospace;\n font-size: 11px; color: var(--muted);\n letter-spacing: 1px; text-transform: uppercase;\n}\n.tlp-s-meta-link { color: var(--accent); font-weight: 600; }\n.tlp-s-meta-link:hover { color: var(--accent-deep); }\n\n/* ─── Hero (cyan band) ─── */\n.tlp-hero {\n background: var(--accent);\n color: var(--accent-deep);\n position: relative;\n overflow: hidden;\n border-bottom: 1px solid rgba(4,50,58,.12);\n padding: 32px 0 64px;\n}\n.tlp-hero::before {\n content: '';\n position: absolute; inset: 0;\n background-image:\n linear-gradient(rgba(4,50,58,.06) 1px, transparent 1px),\n linear-gradient(90deg, rgba(4,50,58,.06) 1px, transparent 1px);\n background-size: 56px 56px;\n -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 40%, transparent 80%);\n mask-image: radial-gradient(ellipse at 50% 0%, #000 40%, transparent 80%);\n pointer-events: none;\n}\n.tlp-hero::after {\n content: '';\n position: absolute; inset: -40% -10% auto auto;\n width: 60%; aspect-ratio: 1;\n background: radial-gradient(circle, rgba(255,255,255,0.45), transparent 60%);\n pointer-events: none;\n z-index: 1;\n}\n\n.tlp-crumb {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 11px; letter-spacing: 1px;\n text-transform: uppercase;\n color: var(--accent-deep);\n opacity: 0.7;\n margin-bottom: 22px;\n display: flex; align-items: center; gap: 10px;\n flex-wrap: wrap;\n}\n.tlp-crumb a:hover { opacity: 1; }\n.tlp-crumb i { opacity: 0.5; font-style: normal; }\n\n.tlp-hero-grid {\n display: flex; flex-direction: column;\n gap: 36px; align-items: center; text-align: center;\n}\n.tlp-hero-intro {\n max-width: 720px;\n display: flex; flex-direction: column; align-items: center;\n}\n\n.tlp-pill {\n display: inline-flex; align-items: center; gap: 8px;\n background: rgba(4,50,58,.1);\n border: 1px solid rgba(4,50,58,.22);\n padding: 5px 11px; border-radius: 999px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; font-weight: 600;\n letter-spacing: 1.4px; text-transform: uppercase;\n color: var(--accent-deep);\n}\n.tlp-pill-dot {\n width: 6px; height: 6px; border-radius: 50%;\n background: var(--accent-deep);\n}\n\n.tlp-h1 {\n font-size: clamp(38px, 4.8vw, 64px);\n font-weight: 700; letter-spacing: -2.4px;\n line-height: 0.98;\n margin: 14px 0 16px;\n color: var(--accent-deep);\n}\n.tlp-h1-mark {\n font-style: normal;\n background: var(--ink);\n color: var(--accent);\n padding: 0 14px 4px;\n border-radius: 12px;\n display: inline-block;\n transform: rotate(-1deg);\n margin: 0 2px;\n}\n\n.tlp-lede {\n font-size: 17px;\n line-height: 1.55;\n max-width: 540px;\n color: var(--accent-deep);\n opacity: 0.82;\n margin: 0 0 22px;\n}\n\n.tlp-stat-row {\n display: flex; gap: 36px;\n flex-wrap: wrap; justify-content: center;\n margin-top: 4px;\n}\n.tlp-stat b {\n display: block; font-size: 24px;\n font-weight: 700; letter-spacing: -0.8px;\n line-height: 1;\n}\n.tlp-stat span {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; text-transform: uppercase;\n letter-spacing: 1.2px;\n color: var(--accent-deep);\n opacity: 0.7;\n margin-top: 5px;\n display: block;\n}\n\n/* ─── Interactive tool card ─── */\n.tlp-tool-card {\n width: 100%;\n max-width: 1080px;\n background: #fff;\n border-radius: 18px;\n box-shadow: 0 30px 60px -20px rgba(4,50,58,0.32), 0 0 0 1px rgba(4,50,58,0.1);\n overflow: hidden;\n text-align: left;\n}\n.tlp-tool-bar {\n background: #f5f3ee;\n padding: 9px 14px;\n display: flex; align-items: center; gap: 8px;\n border-bottom: 1px solid var(--line);\n}\n.tlp-tool-bar \u003e i {\n width: 9px; height: 9px; border-radius: 50%;\n background: #d7d2c7; flex-shrink: 0;\n}\n.tlp-tool-bar-url {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; color: var(--muted);\n margin-left: 8px;\n display: flex; align-items: center; gap: 6px;\n flex: 1; min-width: 0;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.tlp-tool-bar-live {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; color: #117a30;\n display: inline-flex; align-items: center; gap: 6px;\n flex-shrink: 0;\n}\n.tlp-tool-bar-live::before {\n content: '';\n width: 6px; height: 6px; border-radius: 50%;\n background: #1ee87f;\n box-shadow: 0 0 0 3px rgba(30,232,127,0.2);\n}\n.tlp-tool-body {\n background: #fff;\n color: var(--ink);\n /* Most of the existing widgets style their own internals against dark\n surfaces. We force a clean white surface and let them lay out. */\n padding: 0;\n}\n/* Ensure widget inputs / buttons read well on the white card. The\n widgets already use --brand-* tokens for their internal palette;\n inside the cyan hero we want their light-mode appearance. */\n.tlp-tool-body :is(input, select, textarea, button) { font-family: inherit; }\n.tlp-tool-body { color-scheme: light; }\n\n/* ─── Section scaffold ─── */\n.tlp-section {\n padding: 80px 0;\n position: relative;\n border-bottom: 1px solid var(--line);\n background: var(--paper);\n}\n.tlp-section:last-of-type { border-bottom: 0; }\n.tlp-section-tan { background: var(--tan); border-bottom-color: rgba(0,0,0,0.06); }\n.tlp-section-other { background: var(--tan); border-bottom: 0; }\n@media (max-width: 720px) {\n .tlp-section { padding: 56px 0; }\n}\n\n/* ─── How to use ─── */\n.tlp-steps {\n list-style: none; padding: 0; margin: 0;\n display: flex; flex-direction: column; gap: 14px;\n max-width: 820px; margin: 0 auto;\n position: relative;\n}\n.tlp-steps::before {\n content: '';\n position: absolute;\n left: 46px; top: 32px; bottom: 32px;\n width: 2px;\n background-image: linear-gradient(to bottom, var(--accent) 50%, var(--line) 50%);\n background-size: 2px 14px;\n opacity: 0.4;\n}\n.tlp-step {\n display: grid; grid-template-columns: 56px 1fr;\n gap: 22px;\n padding: 22px 24px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 14px;\n align-items: start;\n position: relative;\n}\n.tlp-step-num {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 38px; font-weight: 700;\n letter-spacing: -2px;\n color: var(--accent);\n line-height: 0.9;\n width: 54px;\n background: #fff;\n position: relative; z-index: 1;\n}\n.tlp-step-title {\n font-size: 16px; font-weight: 600;\n margin: 0 0 6px;\n letter-spacing: -0.3px;\n color: var(--ink);\n display: flex; align-items: center; gap: 10px;\n flex-wrap: wrap;\n}\n.tlp-step-body p {\n margin: 0;\n font-size: 13.5px; color: var(--muted);\n line-height: 1.55;\n}\n.tlp-step-badge {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px;\n background: var(--accent);\n color: var(--accent-deep);\n padding: 3px 7px;\n border-radius: 4px;\n letter-spacing: 1px;\n font-weight: 600;\n}\n.tlp-step-upsell {\n background: var(--ink);\n color: #fff;\n border-color: var(--ink);\n}\n.tlp-step-upsell .tlp-step-num { background: var(--ink); color: var(--accent); }\n.tlp-step-upsell .tlp-step-title { color: #fff; }\n.tlp-step-upsell .tlp-step-body p { color: rgba(255,255,255,0.65); }\n.tlp-step-cta {\n display: inline-flex; align-items: center; gap: 8px;\n margin-top: 12px;\n padding: 10px 16px;\n background: var(--accent);\n color: var(--accent-deep);\n border-radius: 10px;\n font-size: 13px; font-weight: 600;\n transition: transform 0.12s, box-shadow 0.15s;\n}\n.tlp-step-cta:hover { transform: translateY(-1px); }\n\n/* ─── Use cases ─── */\n.tlp-cases {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 18px;\n}\n@media (max-width: 960px) { .tlp-cases { grid-template-columns: repeat(2, 1fr); } }\n@media (max-width: 600px) { .tlp-cases { grid-template-columns: 1fr; } }\n.tlp-case {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 14px;\n overflow: hidden;\n display: flex; flex-direction: column;\n transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s;\n}\n.tlp-case:hover {\n transform: translateY(-2px);\n border-color: var(--accent-soft);\n box-shadow: 0 18px 32px -16px rgba(4,50,58,0.18);\n}\n.tlp-case-ill {\n aspect-ratio: 5/3;\n display: flex; align-items: center; justify-content: center;\n background: var(--paper);\n border-bottom: 1px solid var(--line);\n position: relative;\n overflow: hidden;\n}\n.tlp-case-ill-cyan { background: var(--accent-tint); }\n.tlp-case-tag {\n position: absolute;\n top: 10px; left: 10px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 9.5px;\n font-weight: 600;\n letter-spacing: 1px;\n text-transform: uppercase;\n background: #fff;\n padding: 3px 7px; border-radius: 4px;\n color: var(--accent-deep);\n border: 1px solid var(--line);\n z-index: 2;\n}\n.tlp-case-body { padding: 18px 20px 20px; }\n.tlp-case-label {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10px; font-weight: 600;\n letter-spacing: 1.2px; text-transform: uppercase;\n color: var(--muted-2);\n display: block; margin-bottom: 6px;\n}\n.tlp-case-title {\n font-size: 18px; font-weight: 600;\n margin: 0 0 6px;\n letter-spacing: -0.2px;\n color: var(--ink);\n}\n.tlp-case-text {\n margin: 0;\n font-size: 14px;\n color: var(--muted);\n line-height: 1.55;\n}\n\n/* ─── Difference (split comparison) ─── */\n.tlp-diff {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 0;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 18px;\n overflow: hidden;\n}\n@media (max-width: 800px) { .tlp-diff { grid-template-columns: 1fr; } }\n.tlp-diff-col { padding: 36px; }\n.tlp-diff-us { background: var(--accent); color: var(--accent-deep); }\n.tlp-diff-them { background: #fff; }\n.tlp-diff-h3 {\n font-size: 20px; font-weight: 700;\n margin: 8px 0 22px;\n letter-spacing: -0.6px;\n}\n.tlp-diff-badge {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; font-weight: 600;\n letter-spacing: 1.4px; text-transform: uppercase;\n padding: 4px 9px;\n border-radius: 5px;\n display: inline-flex; align-items: center; gap: 6px;\n}\n.tlp-diff-badge-us {\n background: var(--accent-deep);\n color: var(--accent);\n}\n.tlp-diff-badge-them {\n background: var(--paper);\n color: var(--muted);\n border: 1px solid var(--line);\n}\n.tlp-diff-list {\n display: flex; flex-direction: column; gap: 14px;\n margin: 0; padding: 0; list-style: none;\n}\n.tlp-diff-list li {\n display: flex; gap: 12px; align-items: flex-start;\n font-size: 14px; line-height: 1.5;\n}\n.tlp-diff-mark {\n flex-shrink: 0;\n width: 18px; height: 18px;\n border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n margin-top: 1px;\n}\n.tlp-diff-mark-us {\n background: var(--accent-deep);\n color: var(--accent);\n}\n.tlp-diff-mark-them {\n background: var(--paper);\n color: var(--muted);\n border: 1px solid var(--line);\n}\n.tlp-diff-them li {\n color: var(--muted);\n text-decoration: line-through;\n text-decoration-color: rgba(0,0,0,0.15);\n}\n.tlp-diff-them li b { color: var(--ink-2); }\n.tlp-diff-us li b { color: var(--accent-deep); }\n\n/* ─── FAQ ─── */\n.tlp-faq {\n max-width: 840px;\n margin: 0 auto;\n}\n.tlp-q {\n border-bottom: 1px solid var(--line);\n padding: 20px 0;\n}\n.tlp-q:first-child { border-top: 1px solid var(--line); }\n.tlp-q summary {\n list-style: none; cursor: pointer;\n display: flex; gap: 16px; align-items: center;\n font-size: 16.5px; font-weight: 600;\n letter-spacing: -0.2px;\n color: var(--ink);\n}\n.tlp-q summary::-webkit-details-marker { display: none; }\n.tlp-q summary::marker { content: ''; }\n.tlp-q summary \u003e span:first-child { flex: 1; }\n.tlp-q-tog {\n margin-left: auto;\n width: 26px; height: 26px;\n border-radius: 50%;\n background: var(--paper);\n border: 1px solid var(--line);\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n transition: transform 0.2s, background 0.15s, border-color 0.15s, color 0.15s;\n color: var(--muted);\n}\n.tlp-q[open] \u003e summary .tlp-q-tog {\n transform: rotate(45deg);\n background: var(--accent);\n border-color: var(--accent);\n color: var(--accent-deep);\n}\n.tlp-q-a {\n padding: 12px 0 4px;\n font-size: 14.5px; line-height: 1.6;\n color: var(--muted);\n max-width: 680px;\n}\n\n/* ─── Related + track banner ─── */\n.tlp-rel-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 28px;\n}\n@media (max-width: 800px) { .tlp-rel-grid { grid-template-columns: 1fr; } }\n.tlp-rel-h3 {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 11px; font-weight: 600;\n letter-spacing: 1.6px; text-transform: uppercase;\n color: var(--muted);\n margin: 0 0 16px;\n}\n.tlp-rel-rows {\n display: flex; flex-direction: column; gap: 10px;\n}\n.tlp-rel-row {\n display: flex; align-items: center; gap: 14px;\n padding: 14px 18px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 12px;\n transition: border-color 0.15s, transform 0.12s, box-shadow 0.15s;\n}\n.tlp-rel-row:hover {\n border-color: var(--accent);\n transform: translateY(-2px);\n box-shadow: 0 14px 24px -16px rgba(4,50,58,0.18);\n}\n.tlp-rel-icon {\n width: 40px; height: 40px;\n border-radius: 10px;\n background: var(--ink);\n color: var(--accent);\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.tlp-rel-icon-soft {\n background: var(--accent-tint);\n color: var(--accent-deep);\n}\n.tlp-rel-text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }\n.tlp-rel-title {\n font-size: 14.5px; font-weight: 600;\n letter-spacing: -0.2px;\n color: var(--ink);\n}\n.tlp-rel-sub {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px; color: var(--muted);\n letter-spacing: 0.4px;\n}\n.tlp-rel-arr {\n margin-left: auto;\n color: var(--muted);\n transition: transform 0.15s, color 0.15s;\n font-size: 18px; line-height: 1;\n}\n.tlp-rel-row:hover .tlp-rel-arr {\n color: var(--accent);\n transform: translateX(3px);\n}\n\n.tlp-track {\n margin-top: 36px;\n background: var(--ink);\n color: #fff;\n border-radius: 18px;\n padding: 32px 36px;\n display: flex; gap: 24px;\n align-items: center; justify-content: space-between;\n position: relative;\n overflow: hidden;\n flex-wrap: wrap;\n}\n.tlp-track::before {\n content: '';\n position: absolute; inset: 0;\n background-image:\n linear-gradient(rgba(13,189,213,0.04) 1px, transparent 1px),\n linear-gradient(90deg, rgba(13,189,213,0.04) 1px, transparent 1px);\n background-size: 48px 48px;\n -webkit-mask-image: radial-gradient(ellipse at 80% 50%, #000 0%, transparent 70%);\n mask-image: radial-gradient(ellipse at 80% 50%, #000 0%, transparent 70%);\n pointer-events: none;\n}\n.tlp-track-tx { position: relative; z-index: 2; min-width: 240px; flex: 1; }\n.tlp-track-h {\n margin: 0 0 6px;\n font-size: 22px; font-weight: 700;\n letter-spacing: -0.6px;\n color: #fff;\n}\n.tlp-track-tx p {\n margin: 0;\n font-size: 14px;\n color: rgba(255,255,255,0.6);\n max-width: 520px;\n line-height: 1.5;\n}\n.tlp-track-actions {\n position: relative; z-index: 2;\n display: flex; gap: 10px; flex-wrap: wrap;\n}\n.tlp-btn {\n display: inline-flex; align-items: center; gap: 8px;\n padding: 11px 18px;\n border-radius: 10px;\n font-size: 13.5px; font-weight: 600;\n transition: transform 0.12s, box-shadow 0.15s, background 0.15s;\n border: 1px solid transparent;\n cursor: pointer;\n}\n.tlp-btn:hover { transform: translateY(-1px); }\n.tlp-btn-cyan {\n background: var(--accent);\n color: var(--accent-deep);\n}\n.tlp-btn-outline-white {\n background: rgba(255,255,255,0.04);\n color: #fff;\n border-color: rgba(255,255,255,0.2);\n}\n.tlp-btn-outline-white:hover { background: rgba(255,255,255,0.08); }\n\n/* ─── Other tools tiles ─── */\n.tlp-otile-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 16px;\n}\n@media (max-width: 960px) { .tlp-otile-grid { grid-template-columns: repeat(2, 1fr); } }\n@media (max-width: 600px) { .tlp-otile-grid { grid-template-columns: 1fr; } }\n.tlp-otile {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 14px;\n padding: 22px;\n display: flex; flex-direction: column; gap: 12px;\n transition: transform 0.15s, border-color 0.15s, box-shadow 0.15s;\n min-height: 170px;\n}\n.tlp-otile:hover {\n transform: translateY(-3px);\n border-color: var(--accent);\n box-shadow: 0 24px 40px -20px rgba(4,50,58,0.22);\n}\n.tlp-otile-current {\n opacity: 0.55;\n pointer-events: none;\n background: rgba(255,255,255,0.6);\n}\n.tlp-otile-ic {\n width: 42px; height: 42px;\n border-radius: 10px;\n background: var(--ink);\n color: var(--accent);\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.tlp-otile-name {\n font-size: 16px; font-weight: 600;\n letter-spacing: -0.3px;\n margin: 0;\n color: var(--ink);\n}\n.tlp-otile-desc {\n font-size: 13px;\n color: var(--muted);\n margin: 0; line-height: 1.5;\n flex: 1;\n}\n.tlp-otile-foot {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10.5px;\n color: var(--accent);\n font-weight: 600;\n display: inline-flex; gap: 6px; align-items: center;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n}\n\n/* ────────────────────────────────────────────────────────────────────\n CSS-only illustrations\n ──────────────────────────────────────────────────────────────────── */\n\n.tlp-mqr { width: 100%; height: 100%; display: block; }\n\n.tlp-ill-menu {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n width: 62%; max-width: 200px;\n display: flex; flex-direction: column; gap: 5px;\n transform: rotate(-3deg);\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-menu-ti {\n font-size: 11px; font-weight: 700;\n letter-spacing: -0.2px; margin-bottom: 4px;\n color: var(--ink);\n}\n.tlp-ill-menu-ln {\n height: 5px; background: var(--line-2); border-radius: 3px;\n}\n.tlp-ill-menu-ln-s { width: 60%; }\n.tlp-ill-qr {\n position: absolute; right: 14px; bottom: 14px;\n width: 54px; height: 54px;\n background: var(--accent);\n border-radius: 6px;\n padding: 6px;\n}\n\n.tlp-ill-poster {\n position: absolute;\n width: 78px; height: 108px;\n background: var(--ink);\n border-radius: 5px;\n color: #fff;\n padding: 8px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 7px;\n line-height: 1.3;\n box-shadow: 0 12px 24px -10px rgba(0,0,0,0.4);\n display: flex; flex-direction: column; gap: 3px;\n}\n.tlp-ill-poster-1 { left: 30%; top: 16%; transform: rotate(-7deg); }\n.tlp-ill-poster-2 {\n right: 24%; bottom: 12%; transform: rotate(5deg);\n background: var(--accent); color: var(--accent-deep);\n}\n.tlp-ill-poster-ti {\n font-weight: 700; font-size: 8px;\n letter-spacing: -0.2px;\n margin-bottom: 4px;\n}\n.tlp-ill-poster-ln {\n display: block;\n height: 3px; background: rgba(255,255,255,0.3);\n border-radius: 1px;\n margin: 1px 0;\n width: 80%;\n}\n.tlp-ill-poster-ln-s { width: 50%; }\n.tlp-ill-poster-2 .tlp-ill-poster-ln { background: rgba(4,50,58,0.3); }\n.tlp-ill-poster-q {\n width: 20px; height: 20px;\n background: #fff;\n border-radius: 2px;\n margin-top: auto;\n display: block;\n}\n.tlp-ill-poster-2 .tlp-ill-poster-q { background: var(--ink); }\n\n.tlp-ill-card {\n position: absolute;\n width: 140px; height: 88px;\n background: #fff;\n border-radius: 7px;\n border: 1px solid var(--line);\n padding: 10px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.2);\n display: flex; flex-direction: column; justify-content: space-between;\n}\n.tlp-ill-card-1 { transform: rotate(-4deg); left: 20%; top: 30%; }\n.tlp-ill-card-2 {\n transform: rotate(6deg); right: 18%; top: 18%;\n background: var(--accent-deep);\n color: #fff;\n border-color: var(--accent-deep);\n}\n.tlp-ill-card-nm { font-size: 11px; font-weight: 700; letter-spacing: -0.3px; }\n.tlp-ill-card-em {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 8.5px;\n color: var(--muted);\n}\n.tlp-ill-card-2 .tlp-ill-card-em { color: rgba(255,255,255,0.6); }\n.tlp-ill-card-ph {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 8px;\n color: var(--muted);\n}\n.tlp-ill-card-2 .tlp-ill-card-ph { color: rgba(255,255,255,0.7); }\n.tlp-ill-card-q {\n position: absolute;\n right: 8px; bottom: 8px;\n width: 32px; height: 32px;\n background: var(--ink);\n border-radius: 4px;\n padding: 3px;\n}\n.tlp-ill-card-2 .tlp-ill-card-q { background: var(--accent); }\n\n.tlp-ill-booth {\n position: absolute; inset: auto 0 0 0;\n height: 72%;\n background: linear-gradient(to bottom, transparent, var(--accent-tint));\n border-top: 2px solid var(--accent);\n display: flex; align-items: flex-end; justify-content: center;\n}\n.tlp-ill-booth-signs {\n display: flex; gap: 8px; padding: 14px;\n}\n.tlp-ill-booth-sg {\n width: 50px; height: 64px;\n background: #fff;\n border-radius: 4px;\n border: 1px solid var(--line);\n padding: 5px;\n display: flex; flex-direction: column;\n align-items: center; gap: 3px;\n box-shadow: 0 4px 12px -6px rgba(0,0,0,0.2);\n}\n.tlp-ill-booth-qq {\n width: 32px; height: 32px;\n background: var(--ink);\n border-radius: 3px;\n}\n.tlp-ill-booth-nb {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 7px; color: var(--muted);\n}\n\n.tlp-ill-wifi {\n display: flex; flex-direction: column; align-items: center; gap: 6px;\n}\n.tlp-ill-wifi-ssid {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 11px;\n background: var(--ink);\n color: var(--accent);\n padding: 5px 12px;\n border-radius: 5px;\n font-weight: 600;\n}\n.tlp-ill-wifi-qq {\n width: 64px; height: 64px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 6px;\n padding: 6px;\n}\n.tlp-ill-wifi-arrows {\n display: flex; gap: 14px;\n font-size: 18px; color: var(--accent-deep);\n align-items: center;\n}\n.tlp-ill-wifi-bars { font-weight: 700; }\n\n.tlp-ill-phones {\n display: flex; gap: 12px;\n}\n.tlp-ill-phone {\n width: 50px; height: 88px;\n background: var(--ink);\n border-radius: 8px;\n padding: 5px;\n border: 2px solid var(--ink);\n}\n.tlp-ill-phone-scr {\n width: 100%; height: 100%;\n background: #fff;\n border-radius: 4px;\n display: flex; flex-direction: column;\n align-items: center; justify-content: center;\n gap: 3px;\n}\n.tlp-ill-phone-ic {\n width: 18px; height: 18px;\n border-radius: 5px;\n background: var(--accent);\n}\n.tlp-ill-phone-tx {\n font-size: 6.5px; font-weight: 700;\n color: var(--ink);\n}\n.tlp-ill-phone-android .tlp-ill-phone-ic {\n background: #34a853;\n border-radius: 50%;\n}\n\n.tlp-ill-social {\n width: 70%; max-width: 220px;\n}\n.tlp-ill-social-card {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 10px;\n padding: 12px;\n display: flex; gap: 10px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-social-av {\n width: 32px; height: 32px;\n border-radius: 50%;\n background: var(--accent);\n flex-shrink: 0;\n}\n.tlp-ill-social-meta { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n.tlp-ill-social-name {\n font-size: 11px; font-weight: 700;\n color: var(--ink);\n}\n.tlp-ill-social-ln { height: 4px; background: var(--line-2); border-radius: 2px; }\n.tlp-ill-social-ln-s { width: 50%; }\n.tlp-ill-social-link {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 9px;\n color: var(--accent);\n}\n\n.tlp-ill-sig {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 14px 18px;\n width: 70%; max-width: 220px;\n display: flex; flex-direction: column; gap: 8px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-sig-name { font-size: 12px; line-height: 1.4; color: var(--ink); }\n.tlp-ill-sig-link {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10px;\n background: var(--accent-tint);\n color: var(--accent-deep);\n padding: 4px 8px;\n border-radius: 5px;\n align-self: flex-start;\n}\n\n.tlp-ill-podcast {\n display: flex; align-items: center; gap: 14px;\n}\n.tlp-ill-podcast-disc {\n width: 56px; height: 56px;\n border-radius: 50%;\n background: var(--ink);\n display: flex; align-items: center; justify-content: center;\n position: relative;\n}\n.tlp-ill-podcast-disc::after {\n content: '';\n position: absolute;\n inset: 16px;\n border-radius: 50%;\n background: var(--accent);\n}\n.tlp-ill-podcast-bars {\n display: flex; align-items: flex-end; gap: 3px;\n height: 50px;\n}\n.tlp-ill-podcast-bars span {\n width: 4px; height: var(--h, 30%);\n background: var(--accent-deep);\n border-radius: 2px;\n}\n\n.tlp-ill-sms {\n display: flex; flex-direction: column; gap: 6px;\n width: 65%; max-width: 200px;\n}\n.tlp-ill-sms-bubble {\n padding: 8px 11px;\n border-radius: 12px;\n font-size: 10.5px;\n line-height: 1.35;\n max-width: 80%;\n}\n.tlp-ill-sms-bubble-1 {\n background: #fff;\n border: 1px solid var(--line);\n color: var(--ink);\n align-self: flex-start;\n border-bottom-left-radius: 3px;\n}\n.tlp-ill-sms-bubble-2 {\n background: var(--accent);\n color: var(--accent-deep);\n align-self: flex-end;\n border-bottom-right-radius: 3px;\n}\n.tlp-ill-sms-link {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n color: var(--accent-deep); font-weight: 600;\n}\n\n.tlp-ill-chart {\n width: 82%; max-width: 240px;\n display: flex; flex-direction: column;\n align-items: stretch;\n}\n.tlp-ill-chart svg {\n width: 100%; height: 96px;\n display: block;\n}\n.tlp-ill-chart-axis {\n height: 2px;\n background: var(--line);\n border-radius: 2px;\n}\n\n.tlp-ill-redirect {\n display: flex; align-items: center; gap: 6px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n flex-wrap: wrap; justify-content: center;\n max-width: 90%;\n}\n.tlp-ill-redirect-pill {\n background: #fff;\n border: 1px solid var(--line);\n color: var(--muted);\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 10.5px;\n}\n.tlp-ill-redirect-pill-mid {\n background: var(--paper);\n}\n.tlp-ill-redirect-pill-end {\n background: var(--accent);\n color: var(--accent-deep);\n border-color: var(--accent);\n font-weight: 600;\n}\n.tlp-ill-redirect-arr {\n color: var(--accent-deep);\n opacity: 0.5;\n font-size: 14px;\n}\n\n.tlp-ill-shield svg {\n width: 68px; height: auto; display: block;\n filter: drop-shadow(0 10px 20px rgba(4,50,58,0.2));\n}\n\n.tlp-ill-globe svg {\n width: 92px; height: 92px;\n display: block;\n}\n\n.tlp-ill-flags {\n display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;\n max-width: 80%;\n}\n.tlp-ill-flags-chip {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 6px;\n padding: 6px 9px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 11px;\n font-weight: 600;\n color: var(--accent-deep);\n display: inline-flex; align-items: center; gap: 6px;\n}\n.tlp-ill-flags-sw {\n width: 12px; height: 8px;\n background: linear-gradient(to bottom, var(--accent) 50%, var(--accent-deep) 50%);\n border-radius: 2px;\n display: inline-block;\n}\n\n.tlp-ill-browser {\n width: 70%; max-width: 220px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-browser-bar {\n background: var(--paper);\n padding: 5px 8px;\n display: flex; align-items: center; gap: 5px;\n border-bottom: 1px solid var(--line);\n}\n.tlp-ill-browser-bar i {\n width: 6px; height: 6px; border-radius: 50%;\n background: #d7d2c7;\n}\n.tlp-ill-browser-url {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 9px; color: var(--muted);\n margin-left: 6px;\n}\n.tlp-ill-browser-body {\n padding: 12px;\n display: flex; flex-direction: column; gap: 5px;\n}\n.tlp-ill-browser-row {\n height: 5px; background: var(--line-2); border-radius: 3px;\n}\n.tlp-ill-browser-row-s { width: 60%; }\n\n.tlp-ill-preview {\n width: 72%; max-width: 220px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-preview-img {\n height: 70px;\n background: linear-gradient(135deg, var(--accent-deep), var(--accent));\n}\n.tlp-ill-preview-meta {\n padding: 10px 12px;\n display: flex; flex-direction: column; gap: 2px;\n}\n.tlp-ill-preview-title {\n font-size: 11px; font-weight: 700;\n color: var(--ink);\n}\n.tlp-ill-preview-host {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 9px; color: var(--muted);\n}\n\n.tlp-ill-tags {\n display: flex; gap: 6px; flex-wrap: wrap; justify-content: center;\n max-width: 80%;\n}\n.tlp-ill-tags-chip {\n background: var(--accent);\n color: var(--accent-deep);\n padding: 5px 9px;\n border-radius: 999px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10px; font-weight: 600;\n}\n\n.tlp-ill-list {\n width: 80%; max-width: 230px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n display: flex; flex-direction: column; gap: 6px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-list-row {\n display: flex; align-items: center; gap: 8px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 9px; color: var(--muted);\n}\n.tlp-ill-list-mark {\n width: 14px; height: 14px;\n border-radius: 50%;\n background: var(--accent-deep);\n color: var(--accent);\n display: inline-flex; align-items: center; justify-content: center;\n font-size: 9px; font-weight: 700;\n flex-shrink: 0;\n}\n.tlp-ill-list-row-bad .tlp-ill-list-mark {\n background: var(--paper);\n color: var(--ink);\n border: 1px solid var(--line);\n}\n.tlp-ill-list-row-bad { color: var(--ink); }\n\n.tlp-ill-cal {\n width: 64%; max-width: 180px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n}\n.tlp-ill-cal-head {\n display: flex; justify-content: space-between;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 10px; font-weight: 600;\n letter-spacing: 1px;\n color: var(--accent-deep);\n margin-bottom: 8px;\n}\n.tlp-ill-cal-grid {\n display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px;\n}\n.tlp-ill-cal-cell {\n aspect-ratio: 1;\n background: var(--line-2);\n border-radius: 3px;\n}\n.tlp-ill-cal-cell-mark {\n background: var(--accent);\n}\n\n.tlp-ill-launch svg {\n width: 72px; height: 90px;\n display: block;\n filter: drop-shadow(0 12px 22px rgba(4,50,58,0.25));\n}\n\n.tlp-ill-sparkles svg {\n width: 80%; max-width: 220px;\n height: auto;\n}\n\n.tlp-ill-meter {\n display: flex; flex-direction: column;\n align-items: center; gap: 4px;\n}\n.tlp-ill-meter svg {\n width: 120px; height: 70px;\n display: block;\n}\n.tlp-ill-meter-val {\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 16px; font-weight: 700;\n color: var(--accent-deep);\n margin-top: -8px;\n}\n\n.tlp-ill-inbox {\n display: flex; justify-content: center;\n}\n.tlp-ill-inbox-env {\n position: relative;\n width: 100px; height: 70px;\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 6px;\n box-shadow: 0 12px 24px -10px rgba(4,50,58,0.18);\n overflow: hidden;\n}\n.tlp-ill-inbox-flap {\n position: absolute; inset: 0 0 auto 0;\n height: 50%;\n background: var(--accent);\n clip-path: polygon(0 0, 100% 0, 50% 100%);\n}\n.tlp-ill-inbox-body {\n position: absolute; left: 12px; right: 12px; bottom: 10px;\n display: flex; flex-direction: column; gap: 4px;\n}\n.tlp-ill-inbox-ln {\n height: 5px; background: var(--line-2); border-radius: 3px;\n}\n.tlp-ill-inbox-ln-s { width: 60%; }\n\n.tlp-ill-plate {\n width: 64px; height: 64px;\n border-radius: 14px;\n background: var(--accent-tint);\n color: var(--accent);\n display: flex; align-items: center; justify-content: center;\n}\n.tlp-ill-plate svg { width: 32px; height: 32px; }\n\n/* ────────────────────────────────────────────────────────────────────\n Legacy widget styles. The interactive tool widgets (QR generator, URL\n shortener, UTM builder, etc.) were written for the old dark-chrome\n ToolPage and use class names like .tool-input / .tool-btn-primary.\n We re-declare them here, scoped under .tlp-tool-body, so they read as\n crisp light-mode controls on the new white hero card without per-widget\n edits. New widgets should prefer real component-scoped styles.\n ──────────────────────────────────────────────────────────────────── */\n\n.tlp-tool-body .tool-card {\n /* The widget's own card wrapper - flatten inside our outer card. */\n background: transparent;\n border: 0;\n border-radius: 0;\n padding: 28px;\n margin: 0;\n}\n@media (max-width: 600px) {\n .tlp-tool-body .tool-card { padding: 18px; }\n}\n\n.tlp-tool-body .tool-label {\n display: block;\n font-size: 12.5px; font-weight: 600;\n color: var(--ink);\n margin-bottom: 6px;\n letter-spacing: 0.01em;\n}\n.tlp-tool-body .tool-help {\n font-size: 11.5px; color: var(--muted);\n margin-top: 5px; line-height: 1.5;\n}\n.tlp-tool-body .tool-input,\n.tlp-tool-body .tool-select,\n.tlp-tool-body .tool-textarea {\n width: 100%;\n background: var(--paper);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 9px 12px;\n color: var(--ink);\n font-size: 13.5px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', ui-monospace, monospace;\n outline: none;\n transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;\n}\n.tlp-tool-body .tool-textarea { min-height: 88px; resize: vertical; line-height: 1.5; }\n.tlp-tool-body .tool-input:focus,\n.tlp-tool-body .tool-select:focus,\n.tlp-tool-body .tool-textarea:focus {\n border-color: var(--accent);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(13,189,213,0.18);\n}\n.tlp-tool-body .tool-btn-primary {\n display: inline-flex; align-items: center; gap: 8px;\n padding: 10px 18px;\n background: var(--accent);\n color: var(--accent-deep);\n border: 0;\n border-radius: 9px;\n font-size: 13px; font-weight: 600;\n font-family: inherit;\n cursor: pointer;\n transition: transform 0.1s, box-shadow 0.15s, opacity 0.15s;\n}\n.tlp-tool-body .tool-btn-primary:hover { transform: translateY(-1px); }\n.tlp-tool-body .tool-btn-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n}\n.tlp-tool-body .tool-btn-ghost {\n display: inline-flex; align-items: center; gap: 8px;\n padding: 10px 18px;\n background: #fff;\n color: var(--ink);\n border: 1px solid var(--line);\n border-radius: 9px;\n font-size: 13px; font-weight: 600;\n font-family: inherit;\n cursor: pointer;\n transition: border-color 0.15s, background 0.15s;\n}\n.tlp-tool-body .tool-btn-ghost:hover {\n border-color: var(--ink);\n background: var(--paper);\n}\n.tlp-tool-body .tool-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 14px;\n}\n@media (max-width: 600px) { .tlp-tool-body .tool-grid { grid-template-columns: 1fr; } }\n.tlp-tool-body .tool-result-box {\n background: var(--paper);\n border: 1px solid var(--line);\n border-radius: 10px;\n padding: 14px 16px;\n font-family: var(--brand-font-mono-stack), 'JetBrains Mono', monospace;\n font-size: 13px;\n color: var(--ink);\n word-break: break-all;\n line-height: 1.55;\n}\n.tlp-tool-body .tool-tag {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 4px 10px; border-radius: 999px;\n background: var(--accent-tint);\n color: var(--accent-deep);\n font-size: 11px; font-weight: 600;\n letter-spacing: 0.04em;\n}\n.tlp-tool-body .tool-row {\n display: flex; align-items: center; gap: 8px;\n flex-wrap: wrap;\n}\n.tlp-tool-body .tool-cta {\n background: linear-gradient(135deg, rgba(13,189,213,0.12) 0%, rgba(13,189,213,0.04) 100%);\n border: 1px solid rgba(13,189,213,0.3);\n border-radius: 14px;\n padding: 22px 26px;\n margin: 22px 0 0;\n display: flex; align-items: center; gap: 22px;\n flex-wrap: wrap; justify-content: space-between;\n}\n.tlp-tool-body .tool-cta-body { flex: 1; min-width: 200px; }\n.tlp-tool-body .tool-cta-title {\n font-size: 16px; font-weight: 700;\n color: var(--ink);\n margin-bottom: 4px;\n}\n.tlp-tool-body .tool-cta-sub {\n font-size: 13.5px; color: var(--muted);\n line-height: 1.5;\n}\n/* The legacy .tool-page / .tool-hero / .tool-blurb / .tool-related blocks\n are obsolete - the new ToolPage renders all that chrome itself. Hide\n any stragglers a widget might still emit so they do not double up. */\n.tlp-tool-body :is(.tool-page, .tool-crumbs, .tool-hero, .tool-related) { display: none; }\n"])</script><script>self.__next_f.push([1,"29:[\"$\",\"div\",null,{\"className\":\"ms-page\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"ms-nav\",\"children\":[\"$\",\"div\",null,{\"className\":\"ms-nav-inner\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/\",\"className\":\"ms-logo\",\"aria-label\":\"Attr.so\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center \",\"style\":{\"gap\":\"0.625rem\"},\"children\":[[\"$\",\"svg\",null,{\"width\":28,\"height\":28,\"viewBox\":\"0 0 64 64\",\"className\":\"\",\"style\":{\"color\":\"var(--app-accent, #0DBDD5)\"},\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"20\",\"y\":\"8\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\",\"fillOpacity\":\"0.35\"}],[\"$\",\"rect\",null,{\"x\":\"14\",\"y\":\"14\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\",\"fillOpacity\":\"0.6\"}],[\"$\",\"rect\",null,{\"x\":\"8\",\"y\":\"20\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-bold \",\"style\":{\"fontFamily\":\"var(--brand-font-wordmark-stack, var(--brand-font-heading-stack))\",\"fontWeight\":700,\"fontSize\":22,\"letterSpacing\":\"-0.05em\",\"lineHeight\":1},\"children\":[\"attr\",[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--app-accent, #0DBDD5)\"},\"children\":\".so\"}]]}]]}]}],[\"$\",\"div\",null,{\"className\":\"ms-nav-links\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/features\",\"className\":\"ms-nav-link \",\"children\":\"Features\"}],[\"$\",\"$L1f\",null,{\"href\":\"/about\",\"className\":\"ms-nav-link \",\"children\":\"About\"}],[\"$\",\"$L1f\",null,{\"href\":\"/extension\",\"className\":\"ms-nav-link \",\"children\":\"Chrome Extension\"}],[\"$\",\"$L1f\",null,{\"href\":\"/tools\",\"className\":\"ms-nav-link active\",\"children\":\"Free tools\"}],[\"$\",\"$L1f\",null,{\"href\":\"/blog\",\"className\":\"ms-nav-link \",\"children\":\"Blog\"}],[\"$\",\"$L1f\",null,{\"href\":\"/pricing\",\"className\":\"ms-nav-link \",\"children\":\"Pricing\"}],[[\"$\",\"$L1f\",null,{\"href\":\"/login\",\"className\":\"ms-nav-link\",\"children\":\"Sign in\"}],[\"$\",\"$L1f\",null,{\"href\":\"/login?mode=signup\",\"className\":\"ms-btn-primary\",\"children\":\"Sign up free\"}]]]}],[\"$\",\"details\",null,{\"className\":\"ms-burger\",\"children\":[[\"$\",\"summary\",null,{\"aria-label\":\"Menu\",\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"children\":[[\"$\",\"line\",null,{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"}],[\"$\",\"line\",null,{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"}],[\"$\",\"line\",null,{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"ms-burger-menu\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/features\",\"className\":\"ms-nav-link \",\"children\":\"Features\"}],[\"$\",\"$L1f\",null,{\"href\":\"/about\",\"className\":\"ms-nav-link \",\"children\":\"About\"}],[\"$\",\"$L1f\",null,{\"href\":\"/extension\",\"className\":\"ms-nav-link \",\"children\":\"Chrome Extension\"}],[\"$\",\"$L1f\",null,{\"href\":\"/tools\",\"className\":\"ms-nav-link active\",\"children\":\"Free tools\"}],[\"$\",\"$L1f\",null,{\"href\":\"/blog\",\"className\":\"ms-nav-link \",\"children\":\"Blog\"}],[\"$\",\"$L1f\",null,{\"href\":\"/pricing\",\"className\":\"ms-nav-link \",\"children\":\"Pricing\"}],[[\"$\",\"$L1f\",null,{\"href\":\"/login\",\"className\":\"ms-nav-link\",\"children\":\"Sign in\"}],[\"$\",\"$L1f\",null,{\"href\":\"/login?mode=signup\",\"className\":\"ms-btn-primary\",\"children\":\"Sign up free\"}]]]}]]}]]}]}],[\"$\",\"main\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-root\",\"children\":[[\"$\",\"style\",null,{\"children\":\"$2a\"}],\"$L2b\",\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\",\"$L31\"]}]}],\"$L32\"]}]\n"])</script><script>self.__next_f.push([1,"2b:[\"$\",\"section\",null,{\"className\":\"tlp-hero\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"nav\",null,{\"className\":\"tlp-crumb\",\"aria-label\":\"Breadcrumb\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/\",\"children\":\"attr.so\"}],[\"$\",\"i\",null,{\"aria-hidden\":true,\"children\":\"/\"}],[\"$\",\"$L1f\",null,{\"href\":\"/tools\",\"children\":\"Free tools\"}],[\"$\",\"i\",null,{\"aria-hidden\":true,\"children\":\"/\"}],[\"$\",\"span\",null,{\"children\":\"Social Media Preview\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-hero-grid\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-hero-intro\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-pill\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-pill-dot\"}],\" \",\"FREE TOOL · NO SIGNUP\"]}],[\"$\",\"h1\",null,{\"className\":\"tlp-h1\",\"children\":[\"Social Preview Generator \",[\"$\",\"em\",null,{\"className\":\"tlp-h1-mark\",\"children\":\"-free\"}],\"\"]}],[\"$\",\"p\",null,{\"className\":\"tlp-lede\",\"children\":\"Edit a title, description, and image; see the share preview on Twitter, LinkedIn, Facebook, and Slack at once - then copy the complete meta tag block.\"}],[\"$\",\"div\",null,{\"className\":\"tlp-stat-row\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"tlp-stat\",\"children\":[[\"$\",\"b\",null,{\"children\":\"4\"}],[\"$\",\"span\",null,{\"children\":\"platforms live\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"tlp-stat\",\"children\":[[\"$\",\"b\",null,{\"children\":\"OG+TW\"}],[\"$\",\"span\",null,{\"children\":\"tags emitted\"}]]}],[\"$\",\"div\",\"2\",{\"className\":\"tlp-stat\",\"children\":[[\"$\",\"b\",null,{\"children\":\"∞\"}],[\"$\",\"span\",null,{\"children\":\"previews / day\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-tool-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-tool-bar\",\"children\":[[\"$\",\"i\",null,{}],[\"$\",\"i\",null,{}],[\"$\",\"i\",null,{}],[\"$\",\"span\",null,{\"className\":\"tlp-tool-bar-url\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\"}],[\"$\",\"path\",null,{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"}]]}],\"attr.so/tools/social-preview\"]}],[\"$\",\"span\",null,{\"className\":\"tlp-tool-bar-live\",\"aria-hidden\":true,\"children\":\"Live preview\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-tool-body\",\"children\":[\"$\",\"$L33\",\".0\",{}]}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"2c:[\"$\",\"section\",null,{\"className\":\"tlp-section\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ 5 quick steps\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"How to use this tool.\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-s-meta\",\"children\":\"~ 30 seconds end to end\"}]]}],[\"$\",\"ol\",null,{\"className\":\"tlp-steps\",\"children\":[[\"$\",\"li\",\"0\",{\"className\":\"tlp-step\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-step-num\",\"children\":\"01\"}],[\"$\",\"div\",null,{\"className\":\"tlp-step-body\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-step-title\",\"children\":[\"Edit the title, description, image, URL\",null]}],[\"$\",\"p\",null,{\"children\":\"Type - every change re-renders the previews instantly.\"}],null]}]]}],[\"$\",\"li\",\"1\",{\"className\":\"tlp-step\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-step-num\",\"children\":\"02\"}],[\"$\",\"div\",null,{\"className\":\"tlp-step-body\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-step-title\",\"children\":[\"Watch the four previews update\",null]}],[\"$\",\"p\",null,{\"children\":\"Twitter, LinkedIn, Facebook, Slack - all four side-by-side as you tweak.\"}],null]}]]}],[\"$\",\"li\",\"2\",{\"className\":\"tlp-step\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-step-num\",\"children\":\"03\"}],[\"$\",\"div\",null,{\"className\":\"tlp-step-body\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-step-title\",\"children\":[\"Copy the meta tag HTML\",null]}],[\"$\",\"p\",null,{\"children\":\"One click copies the complete \u003cmeta\u003e block including OpenGraph, Twitter Card, and recommended type tags.\"}],null]}]]}],[\"$\",\"li\",\"3\",{\"className\":\"tlp-step\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-step-num\",\"children\":\"04\"}],[\"$\",\"div\",null,{\"className\":\"tlp-step-body\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-step-title\",\"children\":[\"Paste into your \u003chead\u003e\",null]}],[\"$\",\"p\",null,{\"children\":\"Add it to your CMS template, Next.js metadata config, or static HTML. Verify with our Meta Tag Preview tool when live.\"}],null]}]]}],[\"$\",\"li\",\"4\",{\"className\":\"tlp-step tlp-step-upsell\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-step-num\",\"children\":\"05\"}],[\"$\",\"div\",null,{\"className\":\"tlp-step-body\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-step-title\",\"children\":[\"Track the share URL\",[\"$\",\"span\",null,{\"className\":\"tlp-step-badge\",\"children\":\"OPTIONAL\"}]]}],[\"$\",\"p\",null,{\"children\":\"Wrap the canonical share URL in an attr.so short link to see which platform actually drives clicks.\"}],[\"$\",\"$L1f\",null,{\"href\":\"/login?mode=signup\",\"className\":\"tlp-step-cta\",\"children\":[\"Make it trackable\",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}]]}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"2d:[\"$\",\"section\",null,{\"className\":\"tlp-section tlp-section-tan\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ Where people use it\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"Common use cases.\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-s-meta\",\"children\":\"6 most popular\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-cases\",\"children\":[[\"$\",\"article\",\"0\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"Content\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-preview\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-ill-preview-img\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-preview-meta\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-ill-preview-title\",\"children\":\"Track every link.\"}],[\"$\",\"span\",null,{\"className\":\"tlp-ill-preview-host\",\"children\":\"attr.so\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"01\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Blog posts\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Tighter descriptions and stronger images mean 2-3x more clicks from LinkedIn and Twitter shares.\"}]]}]]}],[\"$\",\"article\",\"1\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill tlp-case-ill-cyan\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"Launch\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-launch\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 80 100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M40 8 C56 22 60 44 60 60 L40 78 L20 60 C20 44 24 22 40 8 Z\",\"fill\":\"var(--accent-deep)\"}],[\"$\",\"circle\",null,{\"cx\":\"40\",\"cy\":\"40\",\"r\":\"7\",\"fill\":\"var(--accent)\"}],[\"$\",\"path\",null,{\"d\":\"M20 60 L10 80 L26 72 Z\",\"fill\":\"var(--accent)\"}],[\"$\",\"path\",null,{\"d\":\"M60 60 L70 80 L54 72 Z\",\"fill\":\"var(--accent)\"}],[\"$\",\"path\",null,{\"d\":\"M40 78 L34 92 L46 92 Z\",\"fill\":\"var(--accent)\"}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"02\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Product launches\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Make sure the launch URL renders perfectly on Product Hunt, HN, Twitter, and LinkedIn before announcing.\"}]]}]]}],[\"$\",\"article\",\"2\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"Static\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-browser\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-ill-browser-bar\",\"children\":[[\"$\",\"i\",null,{}],[\"$\",\"i\",null,{}],[\"$\",\"i\",null,{}],[\"$\",\"span\",null,{\"className\":\"tlp-ill-browser-url\",\"children\":\"attr.so\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-browser-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-ill-browser-row\"}],[\"$\",\"span\",null,{\"className\":\"tlp-ill-browser-row tlp-ill-browser-row-s\"}],[\"$\",\"span\",null,{\"className\":\"tlp-ill-browser-row\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"03\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Static HTML pages\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Marketing landing pages without a CMS - generate the full meta block once and paste it into \u003chead\u003e.\"}]]}]]}],[\"$\",\"article\",\"3\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill tlp-case-ill-cyan\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"Micro\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-sparkles\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 96 64\",\"aria-hidden\":true,\"children\":[[\"$\",\"g\",\"0\",{\"transform\":\"translate(12 32)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]}],[\"$\",\"g\",\"1\",{\"transform\":\"translate(40 18)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]}],[\"$\",\"g\",\"2\",{\"transform\":\"translate(72 36)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]}],[\"$\",\"g\",\"3\",{\"transform\":\"translate(56 50)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]}],[\"$\",\"g\",\"4\",{\"transform\":\"translate(88 24)\",\"children\":\"$L34\"}],\"$L35\"]}]}]]}],\"$L36\"]}],\"$L37\",\"$L38\"]}]]}]}]\n"])</script><script>self.__next_f.push([1,"2e:[\"$\",\"section\",null,{\"className\":\"tlp-section\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ The difference\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"Free, then trackable when you need it.\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-s-meta\",\"children\":\"vs typical free tools\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-diff\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-diff-col tlp-diff-them\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-badge tlp-diff-badge-them\",\"children\":[[\"$\",\"span\",null,{\"aria-hidden\":true,\"children\":\"⚠\"}],\" Most free tools\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-diff-h3\",\"children\":\"What you usually get\"}],[\"$\",\"ul\",null,{\"className\":\"tlp-diff-list\",\"children\":[[\"$\",\"li\",\"0\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-them\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6 6l12 12M6 18L18 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"OG-only output\",\".\"]}],\" \",\"Twitter Card tags missing - your tweets fall back to bare URL.\"]}]]}],[\"$\",\"li\",\"1\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-them\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6 6l12 12M6 18L18 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"One platform preview at a time\",\".\"]}],\" \",\"Tabbed UI; you cannot see all four side-by-side.\"]}]]}],[\"$\",\"li\",\"2\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-them\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6 6l12 12M6 18L18 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"No length warnings\",\".\"]}],\" \",\"Too-long titles get silently truncated on every platform.\"]}]]}],[\"$\",\"li\",\"3\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-them\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6 6l12 12M6 18L18 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Server-side render\",\".\"]}],\" \",\"Your unreleased copy sits in their logs.\"]}]]}],[\"$\",\"li\",\"4\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-them\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6 6l12 12M6 18L18 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Email gate for HTML export\",\".\"]}],\" \",\"You can preview, but exporting the tag block costs an email.\"]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-diff-col tlp-diff-us\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-badge tlp-diff-badge-us\",\"children\":[[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 64 64\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"20\",\"y\":\"8\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fillOpacity\":\".35\"}],[\"$\",\"rect\",null,{\"x\":\"14\",\"y\":\"14\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fillOpacity\":\".6\"}],[\"$\",\"rect\",null,{\"x\":\"8\",\"y\":\"20\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\"}]]}],\" attr.so · what we ship\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-diff-h3\",\"children\":\"What you get here\"}],[\"$\",\"ul\",null,{\"className\":\"tlp-diff-list\",\"children\":[[\"$\",\"li\",\"0\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-us\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M5 12l4 4L19 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Both OG and Twitter Card output\",\".\"]}],\" \",\"Sensible defaults like twitter:card=\\\"summary_large_image\\\" built in.\"]}]]}],[\"$\",\"li\",\"1\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-us\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M5 12l4 4L19 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Four-platform live preview\",\".\"]}],\" \",\"Twitter, LinkedIn, Facebook, Slack - side by side as you edit.\"]}]]}],[\"$\",\"li\",\"2\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-us\",\"aria-hidden\":true,\"children\":\"$L39\"}],\"$L3a\"]}],\"$L3b\",\"$L3c\"]}]]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"2f:[\"$\",\"section\",null,{\"className\":\"tlp-section\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ FAQ\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"Frequently asked.\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-s-meta\",\"children\":[\"Can't find it? \",[\"$\",\"$L1f\",null,{\"href\":\"/support\",\"className\":\"tlp-s-meta-link\",\"children\":\"Email us\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-faq\",\"data-tlp-faq\":true,\"children\":[[\"$\",\"details\",\"0\",{\"className\":\"tlp-q\",\"open\":true,\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"What is the ideal og:image size?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"1200 x 630 pixels at a 1.91 : 1 aspect ratio is the sweet spot - Facebook, LinkedIn, and most other platforms crop to roughly that. Keep file size under 8 MB.\"}}]]}],[\"$\",\"details\",\"1\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Do I need both Open Graph and Twitter Card tags?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"For broad coverage, yes. Most apps (LinkedIn, Slack, Discord, iMessage) read Open Graph. Twitter primarily reads twitter:* tags but falls back to og:* if they are missing. Setting both is the safest default.\"}}]]}],[\"$\",\"details\",\"2\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"How long can the title and description be?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"Title: 60 characters before Twitter and Google truncate; LinkedIn allows ~70. Description: 160 characters is the standard cut-off across platforms.\"}}]]}],[\"$\",\"details\",\"3\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Why does my OG image not appear in shares?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"Three usual causes: the image URL is relative not absolute, the image is behind a login or referer block, or the platform cached an older version. Use Facebook Sharing Debugger or LinkedIn Post Inspector to flush the cache.\"}}]]}],[\"$\",\"details\",\"4\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Does Google use Open Graph for SEO?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"Indirectly. Google primarily uses \u003ctitle\u003e and \u003cmeta description\u003e; Open Graph drives social sharing, which drives backlinks and brand searches that do affect ranking.\"}}]]}],[\"$\",\"details\",\"5\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Can I generate dynamic OG images per page?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":\"$L3d\"}]}]]}],\"$L3e\"]}],\"$L3f\"]}],\"$L40\"]}]}]\n"])</script><script>self.__next_f.push([1,"30:[\"$\",\"section\",null,{\"className\":\"tlp-section tlp-section-tan\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ Keep going\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"Pair with these.\"}]]}]}],[\"$\",\"div\",null,{\"className\":\"tlp-rel-grid\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-rel-col\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-rel-h3\",\"children\":\"Related free tools\"}],[\"$\",\"div\",null,{\"className\":\"tlp-rel-rows\",\"children\":[[\"$\",\"$L1f\",\"meta-tag-preview\",{\"href\":\"/tools/meta-tag-preview\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"14\",\"rx\":\"2\"}],[\"$\",\"path\",null,{\"d\":\"M3 9h18M8 14h6\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"Meta Tag / OG Preview\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"See how a link looks\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}],[\"$\",\"$L1f\",\"utm-builder\",{\"href\":\"/tools/utm-builder\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[\"$\",\"path\",null,{\"d\":\"M4 6h16M4 12h16M4 18h10\"}]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"UTM Parameter Builder\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"Tag campaigns properly\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}],[\"$\",\"$L1f\",\"qr-code-generator\",{\"href\":\"/tools/qr-code-generator\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\",\"rx\":\"1\"}],[\"$\",\"rect\",null,{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\",\"rx\":\"1\"}],[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\",\"rx\":\"1\"}],[\"$\",\"path\",null,{\"d\":\"M14 14h3v3M17 21h4v-4\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"QR Code Generator\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"QR codes from any URL\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}],[\"$\",\"$L1f\",\"url-shortener\",{\"href\":\"/tools/url-shortener\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",null,{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.72-1.71\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"URL Shortener\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"Shorten long URLs\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-rel-col\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-rel-h3\",\"children\":\"Related guides\"}],[\"$\",\"div\",null,{\"className\":\"tlp-rel-rows\",\"children\":[[\"$\",\"$L1f\",\"0\",{\"href\":\"/tools/meta-tag-preview\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon tlp-rel-icon-soft\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M4 4h12l4 4v12H4z\"}],[\"$\",\"path\",null,{\"d\":\"M16 4v4h4M8 12h8M8 16h6\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"Verify a live URL\u0026apos;s meta tags\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"FREE TOOL\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}],[\"$\",\"$L1f\",\"1\",{\"href\":\"/tools/utm-builder\",\"className\":\"tlp-rel-row\",\"children\":[\"$L41\",\"$L42\",\"$L43\"]}],\"$L44\",\"$L45\"]}]]}]]}],\"$L46\"]}]}]\n"])</script><script>self.__next_f.push([1,"31:[\"$\",\"section\",null,{\"className\":\"tlp-section tlp-section-other\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-container\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-s-head\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-eyebrow\",\"children\":\"/ More from attr.so\"}],[\"$\",\"h2\",null,{\"className\":\"tlp-h2\",\"children\":\"Other free tools.\"}]]}],[\"$\",\"$L1f\",null,{\"href\":\"/tools\",\"className\":\"tlp-s-meta tlp-s-meta-link\",\"children\":[\"Browse all \",12,\" →\"]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-otile-grid\",\"children\":[[\"$\",\"$L1f\",\"qr-code-generator\",{\"href\":\"/tools/qr-code-generator\",\"className\":\"tlp-otile\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":\"$30:props:children:props:children:1:props:children:0:props:children:1:props:children:2:props:children:0:props:children:props:children\"}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"QR Code Generator\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"QR codes from any URL\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"Open tool\",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}]]}],[\"$\",\"$L1f\",\"url-shortener\",{\"href\":\"/tools/url-shortener\",\"className\":\"tlp-otile\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":\"$30:props:children:props:children:1:props:children:0:props:children:1:props:children:3:props:children:0:props:children:props:children\"}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"URL Shortener\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"Shorten long URLs\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"Open tool\",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}]]}],[\"$\",\"$L1f\",\"utm-builder\",{\"href\":\"/tools/utm-builder\",\"className\":\"tlp-otile\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":\"$30:props:children:props:children:1:props:children:0:props:children:1:props:children:1:props:children:0:props:children:props:children\"}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"UTM Parameter Builder\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"Tag campaigns properly\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"Open tool\",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}]]}],[\"$\",\"$L1f\",\"meta-tag-preview\",{\"href\":\"/tools/meta-tag-preview\",\"className\":\"tlp-otile\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":\"$30:props:children:props:children:1:props:children:0:props:children:1:props:children:0:props:children:0:props:children:props:children\"}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"Meta Tag / OG Preview\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"See how a link looks\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"Open tool\",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}]]}],[\"$\",\"$L1f\",\"link-privacy-checker\",{\"href\":\"/tools/link-privacy-checker\",\"className\":\"tlp-otile\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\"}],[\"$\",\"path\",null,{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"}]]}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"Link Privacy Checker\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"Where does a short link go?\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"Open tool\",\"$L47\"]}]]}],\"$L48\"]}]]}]}]\n"])</script><script>self.__next_f.push([1,"49:Td14,"])</script><script>self.__next_f.push([1,"\n .ms-footer {\n /* Scope dark-palette values so the footer stays dark on every theme,\n matching the design spec in screenshots/footer.png. */\n --ms-surface: #0a0d14;\n --ms-text: #e2eaf6;\n --ms-muted: #8ca0bc;\n --ms-border: rgba(255, 255, 255, 0.08);\n background: var(--ms-surface);\n border-top: 1px solid var(--ms-border);\n margin: 0;\n padding: 36px 40px 24px;\n color: var(--ms-text);\n }\n @media (max-width: 720px) {\n .ms-footer { padding: 28px 20px 20px; }\n }\n .ms-footer .ms-logo {\n font-family: var(--font-display);\n font-weight: 700; font-size: 18px;\n color: var(--ms-text); text-decoration: none;\n display: flex; align-items: center; gap: 8px;\n flex-shrink: 0;\n }\n .ms-footer .ms-logo-mark {\n width: 28px; height: 28px;\n border-radius: 6px; overflow: hidden;\n display: inline-flex; flex-shrink: 0;\n }\n .ms-footer .ms-logo-mark img { width: 100%; height: 100%; display: block; }\n .ms-footer-top {\n display: grid;\n grid-template-columns: minmax(0, 1.4fr) minmax(0, 2fr);\n gap: 32px;\n align-items: start;\n max-width: 1200px; margin: 0 auto;\n }\n @media (max-width: 720px) {\n .ms-footer-top { grid-template-columns: 1fr; gap: 28px; }\n }\n .ms-footer-brand {\n display: flex; flex-direction: column; gap: 14px;\n max-width: 360px;\n }\n .ms-footer-tagline {\n font-size: 14px; color: var(--ms-muted); line-height: 1.55;\n }\n .ms-footer-cols {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 24px;\n }\n @media (max-width: 480px) {\n .ms-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n }\n .ms-footer-col-title {\n font-size: 13px; font-weight: 700; color: var(--ms-text);\n margin: 0 0 12px; letter-spacing: 0.01em;\n }\n .ms-footer-col-list {\n display: flex; flex-direction: column; gap: 8px;\n list-style: none; padding: 0; margin: 0;\n }\n .ms-footer-link {\n font-size: 13px; color: var(--ms-muted);\n text-decoration: none; transition: color 0.15s;\n }\n .ms-footer-link:hover { color: var(--ms-text); }\n .ms-footer-credit-row {\n max-width: 1200px; margin: 28px auto 0;\n padding-top: 18px;\n border-top: 1px solid var(--ms-border);\n display: flex; justify-content: space-between; align-items: center;\n gap: 16px; flex-wrap: wrap;\n }\n .ms-footer-credit {\n font-size: 12px; color: var(--ms-muted);\n font-family: var(--brand-font-mono-stack);\n }\n .ms-footer-built {\n font-size: 12px; color: var(--ms-muted);\n display: inline-flex; align-items: center; gap: 8px;\n text-decoration: none;\n }\n .ms-footer-built:hover { color: var(--ms-text); }\n .ms-footer-built-text { color: inherit; }\n .ms-footer-built-icon {\n width: 16px; height: 16px; display: block;\n border-radius: 4px; flex-shrink: 0;\n }\n "])</script><script>self.__next_f.push([1,"32:[[\"$\",\"style\",null,{\"children\":\"$49\"}],\"$L4a\"]\n34:[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]\n35:[\"$\",\"g\",\"5\",{\"transform\":\"translate(28 50)\",\"children\":[\"$\",\"path\",null,{\"d\":\"M0 -10 L3 -3 L10 0 L3 3 L0 10 L-3 3 L-10 0 L-3 -3 Z\",\"fill\":\"var(--accent-deep)\"}]}]\n36:[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"04\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Microsites and one-pagers\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Single-page launches where every share moment counts. Polished previews are free engagement.\"}]]}]\n37:[\"$\",\"article\",\"4\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"Internal\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-social\",\"children\":[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-av\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-meta\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-name\",\"children\":\"@attrso\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-ln\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-ln tlp-ill-social-ln-s\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-social-link\",\"children\":\"attr.so/launch\"}]]}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"05\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Internal-tool dashboards\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Even Slack-shared internal links benefit from a clean preview - avoid bare-URL ugliness in team channels.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"38:[\"$\",\"article\",\"5\",{\"className\":\"tlp-case\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-case-ill tlp-case-ill-cyan\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-tag\",\"children\":\"A/B\"}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-chart\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 200 100\",\"preserveAspectRatio\":\"none\",\"aria-hidden\":true,\"children\":[[\"$\",\"defs\",null,{\"children\":[\"$\",\"linearGradient\",null,{\"id\":\"tlp-ill-chart-grad\",\"x1\":\"0\",\"y1\":\"0\",\"x2\":\"0\",\"y2\":\"1\",\"children\":[[\"$\",\"stop\",null,{\"offset\":\"0%\",\"stopColor\":\"var(--accent)\",\"stopOpacity\":\"0.45\"}],[\"$\",\"stop\",null,{\"offset\":\"100%\",\"stopColor\":\"var(--accent)\",\"stopOpacity\":\"0\"}]]}]}],[\"$\",\"path\",null,{\"d\":\"M0 75 L25 60 L55 70 L85 35 L120 50 L150 25 L185 30 L200 18 L200 100 L0 100 Z\",\"fill\":\"url(#tlp-ill-chart-grad)\"}],[\"$\",\"path\",null,{\"d\":\"M0 75 L25 60 L55 70 L85 35 L120 50 L150 25 L185 30 L200 18\",\"stroke\":\"var(--accent-deep)\",\"strokeWidth\":\"2\",\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-ill-chart-axis\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-case-body\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-case-label\",\"children\":[\"USE CASE \",\"06\"]}],[\"$\",\"h3\",null,{\"className\":\"tlp-case-title\",\"children\":\"Landing page A/B tests\"}],[\"$\",\"p\",null,{\"className\":\"tlp-case-text\",\"children\":\"Test image and headline variants in social previews before changing what your CMS emits.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"39:[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M5 12l4 4L19 6\"}]}]\n3a:[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Length recommendations\",\".\"]}],\" \",\"Character counts against ideal lengths so you avoid silent truncation.\"]}]\n3b:[\"$\",\"li\",\"3\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-us\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M5 12l4 4L19 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"No signup, no upload\",\".\"]}],\" \",\"Renders locally - your image and copy never leave the page.\"]}]]}]\n3c:[\"$\",\"li\",\"4\",{\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-diff-mark tlp-diff-mark-us\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"9\",\"height\":\"9\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"3\",\"children\":[\"$\",\"path\",null,{\"d\":\"M5 12l4 4L19 6\"}]}]}],[\"$\",\"span\",null,{\"children\":[[\"$\",\"b\",null,{\"children\":[\"Copy-ready HTML block\",\".\"]}],\" \",\"One click copies the full \u003cmeta\u003e block, ready to paste.\"]}]]}]\n3d:[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]\n3e:[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"Yes - Next.js, Vercel, and Cloudflare all offer dynamic image rendering APIs (satori, OG image generation). Generate a static template here, then automate per-page versions in production.\"}}]\n3f:[\"$\",\"details\",\"6\",{\"className\":\"tlp-q\",\"open\":\"$undefined\",\"children\":[[\"$\",\"summary\",null,{\"children\":[[\"$\",\"span\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"Should I include og:type and og:site_name?\"}}],[\"$\",\"span\",null,{\"className\":\"tlp-q-tog\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"11\",\"height\":\"11\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 5v14M5 12h14\"}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-q-a\",\"dangerouslySetInnerHTML\":{\"__html\":\"Yes - both are recommended. og:type=\\\"website\\\" or \\\"article\\\" is enough for most pages; og:site_name helps Slack and LinkedIn show your brand alongside the title.\"}}]]}]\n40:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\n var root = document.querySelector('[data-tlp-faq]');\\n if (!root) return;\\n var all = root.querySelectorAll('details.tlp-q');\\n all.forEach(function(d){\\n d.addEventListener('toggle', function(){\\n if (d.open) all.forEach(function(o){ if (o !== d) o.open = false; });\\n });\\n });\\n})();\"}}]\n41:[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon tlp-rel-icon-soft\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M4 4h12l4 4v12H4z\"}],[\"$\",\"path\",null,{\"d\":\"M16 4v4h4M8 12h8M8 16h6\"}]]}]}]\n42:[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"Build a UTM-tagged share URL\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"FREE TOOL\"}]]}]\n43:[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]\n44:[\"$\",\"$L1f\",\"2\",{\"href\":\"/tools/qr-code-generator\",\"className\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon tlp-rel-icon-soft\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M4 4h12l4 4v12H4z\"}],[\"$\",\"path\",null,{\"d\":\"M16 4v4h4M8 12h8M8 16h6\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"Generate a QR code for the share\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"FREE TOOL\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}]\n45:[\"$\",\"$L1f\",\"3\",{\"href\":\"/tools/url-shortener\",\"classNam"])</script><script>self.__next_f.push([1,"e\":\"tlp-rel-row\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-icon tlp-rel-icon-soft\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"children\":[[\"$\",\"path\",null,{\"d\":\"M4 4h12l4 4v12H4z\"}],[\"$\",\"path\",null,{\"d\":\"M16 4v4h4M8 12h8M8 16h6\"}]]}]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-text\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-rel-title\",\"children\":\"Shorten the share URL\"}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-sub\",\"children\":\"FREE TOOL\"}]]}],[\"$\",\"span\",null,{\"className\":\"tlp-rel-arr\",\"aria-hidden\":true,\"children\":\"→\"}]]}]\n46:[\"$\",\"div\",null,{\"className\":\"tlp-track\",\"children\":[[\"$\",\"div\",null,{\"className\":\"tlp-track-tx\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"tlp-track-h\",\"children\":\"Find out which preview gets the clicks.\"}],[\"$\",\"p\",null,{\"children\":\"Wrap your share URL in an attr.so short link and see exactly which platform drives traffic.\"}]]}],[\"$\",\"div\",null,{\"className\":\"tlp-track-actions\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/login?mode=signup\",\"className\":\"tlp-btn tlp-btn-cyan\",\"children\":[\"Start free \",[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]]}],[\"$\",\"$L1f\",null,{\"href\":\"/#pricing\",\"className\":\"tlp-btn tlp-btn-outline-white\",\"children\":\"See pricing\"}]]}]]}]\n47:[\"$\",\"svg\",null,{\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2.5\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",null,{\"d\":\"M5 12h14\"}],[\"$\",\"path\",null,{\"d\":\"m12 5 7 7-7 7\"}]]}]\n48:[\"$\",\"div\",\"social-preview\",{\"className\":\"tlp-otile tlp-otile-current\",\"aria-current\":\"page\",\"children\":[[\"$\",\"span\",null,{\"className\":\"tlp-otile-ic\",\"aria-hidden\":true,\"children\":[\"$\",\"svg\",null,{\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\"}],[\"$\",\"circle\",null,{\"cx\":\"9\",\"cy\":\"9\",\"r\":\"2\"}],[\"$\",\"path\",null,{\"d\":\"m21 15-5-5L5 21\"}]]}]}],[\"$\",\"h3\",null,{\"className\":\"tlp-otile-name\",\"children\":\"Social Media Preview\"}],[\"$\",\"p\",null,{\"className\":\"tlp-otile-desc\",\"children\":\"Preview every platform\"}],[\"$\",\"span\",null,{\"className\":\"tlp-otile-foot\",\"children\":[\"You're here\",null]}]]}]\n"])</script><script>self.__next_f.push([1,"4a:[\"$\",\"footer\",null,{\"className\":\"ms-footer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-top\",\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-brand\",\"children\":[[\"$\",\"$L1f\",null,{\"href\":\"/\",\"className\":\"ms-logo\",\"aria-label\":\"Attr.so\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center \",\"style\":{\"gap\":\"0.625rem\"},\"children\":[[\"$\",\"svg\",null,{\"width\":28,\"height\":28,\"viewBox\":\"0 0 64 64\",\"className\":\"\",\"style\":{\"color\":\"var(--app-accent, #0DBDD5)\"},\"aria-hidden\":true,\"children\":[[\"$\",\"rect\",null,{\"x\":\"20\",\"y\":\"8\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\",\"fillOpacity\":\"0.35\"}],[\"$\",\"rect\",null,{\"x\":\"14\",\"y\":\"14\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\",\"fillOpacity\":\"0.6\"}],[\"$\",\"rect\",null,{\"x\":\"8\",\"y\":\"20\",\"width\":\"36\",\"height\":\"36\",\"rx\":\"8\",\"fill\":\"currentColor\"}]]}],[\"$\",\"span\",null,{\"className\":\"font-bold \",\"style\":{\"fontFamily\":\"var(--brand-font-wordmark-stack, var(--brand-font-heading-stack))\",\"fontWeight\":700,\"fontSize\":22,\"letterSpacing\":\"-0.05em\",\"lineHeight\":1},\"children\":[\"attr\",[\"$\",\"span\",null,{\"style\":{\"color\":\"var(--app-accent, #0DBDD5)\"},\"children\":\".so\"}]]}]]}]}],[\"$\",\"p\",null,{\"className\":\"ms-footer-tagline\",\"children\":\"Privacy-first, developer-friendly link management software\"}]]}],[\"$\",\"div\",null,{\"className\":\"ms-footer-cols\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-col-title\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"ms-footer-col-list\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/features\",\"className\":\"ms-footer-link\",\"children\":\"Features\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/extension\",\"className\":\"ms-footer-link\",\"children\":\"Chrome Extension\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/tools\",\"className\":\"ms-footer-link\",\"children\":\"Free tools\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/#pricing\",\"className\":\"ms-footer-link\",\"children\":\"Pricing\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/docs\",\"className\":\"ms-footer-link\",\"children\":\"Docs\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/docs/api\",\"className\":\"ms-footer-link\",\"children\":\"API reference\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/changelog\",\"className\":\"ms-footer-link\",\"children\":\"Changelog\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/roadmap\",\"className\":\"ms-footer-link\",\"children\":\"Roadmap\"}]}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-col-title\",\"children\":\"Company\"}],[\"$\",\"ul\",null,{\"className\":\"ms-footer-col-list\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/about\",\"className\":\"ms-footer-link\",\"children\":\"About\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/blog\",\"className\":\"ms-footer-link\",\"children\":\"Blog\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/help\",\"className\":\"ms-footer-link\",\"children\":\"Help\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/feature-requests\",\"className\":\"ms-footer-link\",\"children\":\"Feature requests\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/support\",\"className\":\"ms-footer-link\",\"children\":\"Support\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/status\",\"className\":\"ms-footer-link\",\"children\":\"Status\"}]}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-col-title\",\"children\":\"Legal\"}],[\"$\",\"ul\",null,{\"className\":\"ms-footer-col-list\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/privacy\",\"className\":\"ms-footer-link\",\"children\":\"Privacy\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/terms\",\"className\":\"ms-footer-link\",\"children\":\"Terms\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/security\",\"className\":\"ms-footer-link\",\"children\":\"Security\"}]}]]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"ms-footer-credit-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"ms-footer-credit\",\"children\":[\"© \",2026,\" \",\"Attr.so\",\" - All rights reserved\"]}],[\"$\",\"a\",null,{\"href\":\"https://apptimistic.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"ms-footer-built\",\"aria-label\":\"Built by Apptimistic\",\"children\":[[\"$\",\"img\",null,{\"src\":\"/apptimistic.png\",\"alt\":\"\",\"width\":16,\"height\":16,\"className\":\"ms-footer-built-icon\"}],[\"$\",\"span\",null,{\"className\":\"ms-footer-built-text\",\"children\":\"Built by Apptimistic\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:null\n"])</script><script>self.__next_f.push([1,"1b:[[\"$\",\"title\",\"0\",{\"children\":\"Social Media Preview Generator | Attr.so\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Edit a title, description, and image - see exactly how your link looks on Twitter, LinkedIn, Facebook, and Slack. Generate the meta tag HTML in one click.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/site.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"Attr.so - Privacy-first, developer-friendly link management software\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Transform weak prompts into expert-quality ones in one click. Works on ChatGPT, Claude, Gemini, Grok \u0026 Perplexity.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:image\",\"content\":\"https://attr.so/og-image.png\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:alt\",\"content\":\"Attr.so\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:title\",\"content\":\"Attr.so - Privacy-first, developer-friendly link management software\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:description\",\"content\":\"Transform weak prompts into expert-quality ones in one click. Works on ChatGPT, Claude, Gemini, Grok \u0026 Perplexity.\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:image\",\"content\":\"https://attr.so/og-image.png\"}],[\"$\",\"link\",\"14\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"15\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.03ha8wtwncf8v.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icons/icon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"19\",{\"rel\":\"icon\",\"href\":\"/icons/icon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"20\",{\"rel\":\"icon\",\"href\":\"/icons/icon-96x96.png\",\"sizes\":\"96x96\",\"type\":\"image/png\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/icons/icon-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/icons/icon-512x512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"23\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L4b\",\"24\",{}]]\n"])</script></body></html>