<!DOCTYPE html>
<html lang="en" x-data="d2Layout()" :class="{ dark: isDark }">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Press Release Distribution | PR Gun</title>
    <link rel="canonical" href="https://prgun.com/">
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "name": "PR Gun",
    "url": "https://prgun.com",
    "logo": "https://prgun.com/favicon-96x96.png",
    "description": "Affordable press release distribution service. Reach Google News, AP News, Street Insider and hundreds of media contacts.",
    "sameAs": ["https://x.com/PRGunCom"],
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer service",
      "url": "https://prgun.com/contact"
    }
  }
  </script>
  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "PR Gun",
    "url": "https://prgun.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://prgun.com/pr/search/{search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
  </script>
  <meta name="description" content="Maximize visibility with PR Gun's press release distribution. Reach Google News, AP News, Street Insider and hundreds of media contacts affordably." />
  <link rel="preload" as="style" href="https://prgun.com/build/assets/app-DWx9npQa.css" /><link rel="modulepreload" as="script" href="https://prgun.com/build/assets/app-C77y79UM.js" /><link rel="modulepreload" as="script" href="https://prgun.com/build/assets/cart-store-G5T2OqD0.js" /><link rel="stylesheet" href="https://prgun.com/build/assets/app-DWx9npQa.css" /><script type="module" src="https://prgun.com/build/assets/app-C77y79UM.js"></script><script type="module" src="https://prgun.com/build/assets/cart-store-G5T2OqD0.js"></script>  <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
  <script>
    (function() {
      const t = localStorage.getItem('theme');
      if (t === 'dark' || (!t && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
        document.documentElement.classList.add('dark');
      }
    })();
    function d2Layout() {
      return {
        isDark: document.documentElement.classList.contains('dark'),
        toggleDark() {
          this.isDark = !this.isDark;
          document.documentElement.classList.toggle('dark', this.isDark);
          localStorage.setItem('theme', this.isDark ? 'dark' : 'light');
        }
      };
    }
  </script>

</head>
<body class="bg-white dark:bg-zinc-950 text-zinc-900 dark:text-zinc-100 min-h-screen flex flex-col">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0LKN7MR1WS"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag("js", new Date());
  gtag("config", "G-0LKN7MR1WS");
</script>

<style>
/* ── exact live header styles preserved ── */
html, body { overflow: visible !important; height: auto !important; }
.prg-header{background:#fff;border-bottom:1px solid #e4e4e7;position:sticky;top:0;z-index:50;padding:0 16px;margin:0}
.dark .prg-header{background:#09090b;border-color:#27272a}
.prg-header nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;width:100%}
.prg-right-icons{justify-content:flex-end}
.prg-logo{display:flex;align-items:center;text-decoration:none}
.prg-links{display:flex;align-items:center;margin:0;padding:0}
.prg-btn{display:flex;align-items:center;border:none;padding:16px 8px;margin:4px;border-radius:4px;height:20px;box-shadow:none;
  background:#fff;font-size:14px;font-weight:500;cursor:pointer;color:#71717a;transition:background .15s,color .15s;text-decoration:none;white-space:nowrap}
.dark .prg-btn{background:#09090b;color:#a1a1aa}
.prg-btn:hover{background:#f9f9f9}
.dark .prg-btn:hover{background:#27272a}
.prg-btn.active{color:#ef4444}
.prg-caret{transition:transform .2s;margin-left:4px}
.prg-btn.open .prg-caret{transform:rotate(180deg)}
/* right icons */
.prg-right{display:flex;align-items:center}
.prg-icon-link{display:flex;align-items:center;margin-right:8px;text-decoration:none}
.prg-dark-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;
  border:none;background:transparent;cursor:pointer;margin-right:8px;transition:background .15s}
.prg-dark-btn:hover{background:#f4f4f5}
.dark .prg-dark-btn:hover{background:#27272a}

/* ── UPGRADED dropdown panels ── */
.dd-wrap{position:absolute;top:calc(100% + 8px);left:-12px;z-index:200}
.dd-panel{background:#fff;border:1px solid rgba(0,0,0,0.07);border-radius:16px;
  padding:8px;min-width:300px;
  box-shadow:0 4px 6px -1px rgba(0,0,0,0.07),0 16px 40px -4px rgba(0,0,0,0.13),0 0 0 1px rgba(0,0,0,0.03);
  animation:dd-appear .18s cubic-bezier(.16,1,.3,1)}
.dark .dd-panel{background:#1c1c1f;border-color:rgba(255,255,255,0.08);
  box-shadow:0 4px 6px -1px rgba(0,0,0,0.3),0 16px 40px -4px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.04)}
@keyframes dd-appear{from{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}

/* notch arrow */
.dd-panel::before,.dd-panel::after{content:"";position:absolute;top:-5px;left:50%;margin-left:-6px}
.dd-panel::before{width:12px;height:12px;background:#fff;border-left:1px solid rgba(0,0,0,0.07);
  border-top:1px solid rgba(0,0,0,0.07);transform:rotate(45deg);border-radius:2px 0 0 0;z-index:1}
.dark .dd-panel::before{background:#1c1c1f;border-color:rgba(255,255,255,0.08)}

/* section label */
.dd-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#a1a1aa;padding:6px 12px 4px;display:block}

.dd-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;
  text-decoration:none;transition:background .13s,box-shadow .13s;position:relative;margin:1px 0}
.dd-item:hover{background:linear-gradient(135deg,#fafafa 0%,#f7f7f8 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.05)}
.dark .dd-item:hover{background:linear-gradient(135deg,rgba(255,255,255,0.06) 0%,rgba(255,255,255,0.03) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06)}

/* animated icon scale on hover */
.dd-item:hover .dd-icon{transform:scale(1.08)}

.dd-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:19px;transition:transform .15s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 1px 3px rgba(0,0,0,0.08)}
.dd-text{flex:1;min-width:0}
.dd-title{font-size:13.5px;font-weight:600;color:#18181b;line-height:1.25;display:flex;align-items:center;gap:6px}
.dark .dd-title{color:#f4f4f5}
/* arrow on title */
.dd-title-arrow{opacity:0;transform:translateX(-4px);transition:opacity .13s,transform .13s;
  font-size:11px;color:#ef4444}
.dd-item:hover .dd-title-arrow{opacity:1;transform:translateX(0)}
.dd-desc{font-size:12px;color:#a1a1aa;line-height:1.4;margin-top:2px;display:block}
.dd-divider{height:1px;background:linear-gradient(90deg,transparent,#e4e4e7 20%,#e4e4e7 80%,transparent);margin:6px 8px}
.dark .dd-divider{background:linear-gradient(90deg,transparent,#27272a 20%,#27272a 80%,transparent)}

/* demo banner */
.dark .demo-content h2{color:#f4f4f5}
.dark .demo-content p{color:#a1a1aa}

/* ── mobile: hamburger + left drawer ── */
.prg-desktop-links{display:flex;align-items:center}
.prg-hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;
  border:none;background:transparent;cursor:pointer;border-radius:8px;color:#71717a;transition:background .15s}
.prg-hamburger:hover{background:#f4f4f5}
.dark .prg-hamburger:hover{background:#27272a}

/* backdrop */
.prg-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:90;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.prg-backdrop.open{display:block;animation:fade-in .2s ease}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* drawer */
.prg-drawer{position:fixed;top:0;left:0;height:100%;width:320px;max-width:88vw;
  background:#fff;z-index:100;
  box-shadow:4px 0 32px rgba(0,0,0,0.12);
  transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;overflow:hidden}
.dark .prg-drawer{background:#111113}
.prg-drawer.open{transform:translateX(0)}

/* drawer header */
.prg-drawer-head{display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}
.dark .prg-drawer-head{border-color:#27272a}
.prg-drawer-close{width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border:none;background:transparent;cursor:pointer;border-radius:8px;color:#71717a;transition:background .15s}
.prg-drawer-close:hover{background:#f4f4f5;color:#18181b}
.dark .prg-drawer-close:hover{background:#27272a;color:#f4f4f5}

/* drawer body */
.prg-drawer-body{flex:1;overflow-y:auto;padding:4px 0}
.prg-drawer-link{display:flex;align-items:center;gap:12px;padding:8px 20px;font-size:14px;font-weight:500;
  color:#52525b;text-decoration:none;transition:background .12s}
.dark .prg-drawer-link{color:#a1a1aa}
.prg-drawer-link:hover{background:#f9f9f9;color:#18181b}
.dark .prg-drawer-link:hover{background:#1c1c1f;color:#f4f4f5}
.prg-drawer-link.active{color:#ef4444}
.prg-drawer-section{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#a1a1aa;padding:10px 20px 4px;display:block}
.prg-drawer-divider{height:1px;background:#f0f0f0;margin:4px 0}
.dark .prg-drawer-divider{background:#27272a}
.prg-drawer-link-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;font-size:14px}

/* drawer footer */
.prg-drawer-foot{padding:16px 20px;border-top:1px solid #f0f0f0;flex-shrink:0}
.dark .prg-drawer-foot{border-color:#27272a}
.prg-drawer-cta{display:flex;align-items:center;justify-content:center;gap:8px;
  background:#ef4444;color:#fff;font-size:14px;font-weight:700;padding:12px;
  border-radius:10px;text-decoration:none;transition:background .15s}
.prg-drawer-cta:hover{background:#dc2626}

@media(max-width:1023px){
  .prg-desktop-links{display:none}
  .prg-hamburger{display:flex}
  .prg-header nav{display:flex !important;justify-content:space-between}
  .prg-right-icons{margin-left:auto;justify-content:flex-end}
}
.prg-right-icons{display:flex;align-items:center;margin-left:auto}
</style>

<div x-data="{ showPricing: false, showResources: false, mobileOpen: false }" @click.away="showPricing=false; showResources=false" style="display:contents">


<header class="prg-header bg-white dark:bg-zinc-950 border-b border-zinc-200 dark:border-zinc-800 sticky top-0 z-50 px-4">
  <nav style="display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;min-height:50px">

    <!-- Logo -->
    <div>
      <a href="/" title="PR Gun" style="display:flex;align-items:center;text-decoration:none" class="focus:outline-none">
        <img src="/assets/img/logo.svg" class="inline-block dark:hidden" width="60" height="18" alt="PRGun logo">
        <img src="/assets/img/logo-dark.svg" class="hidden dark:inline-block" width="60" height="18" alt="PRGun logo">
      </a>
    </div>

    <!-- Desktop nav links -->
    <div class="prg-desktop-links">

      <!-- Pricing -->
      <div style="position:relative">
        <button @click.stop="showPricing=!showPricing; showResources=false"
          :class="['prg-btn', showPricing?'open':'', '']">
          <svg style="width:18px;height:18px;margin-right:6px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="m16 6l-.44.55c-.42.52-.98.75-1.54.75C13 7.3 12 6.52 12 5.3V2S4 6 4 13c0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.96-1.61-5.62-4-7m-4 13c-1.1 0-2-.87-2-1.94c0-.51.2-.99.58-1.36L12 14.3l1.43 1.4c.37.37.57.85.57 1.36c0 1.07-.9 1.94-2 1.94m3.96-1.5c.04-.36.22-1.89-1.13-3.22L12 11.5l-2.83 2.78C7.81 15.62 8 17.16 8.04 17.5A5.98 5.98 0 0 1 6 13c0-3.16 2.13-5.65 4.03-7.25a4.024 4.024 0 0 0 3.99 3.55c.78 0 1.54-.23 2.18-.66A6.18 6.18 0 0 1 18 13c0 1.79-.79 3.4-2.04 4.5"/></svg>
          Pricing
          <svg class="prg-caret" style="width:18px;height:18px" :class="{'rotate-180':showPricing}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06" clip-rule="evenodd"/></svg>
        </button>
        <div class="dd-wrap" x-show="showPricing" @click.stop x-cloak>
          <div class="dd-panel" style="position:relative">
            <span class="dd-label">Distribution</span>
            <a href="/pricing" @click="showPricing=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#fff0f0,#ffe4e4);color:#ef4444">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M177.62 159.6a52 52 0 0 1-34 34a12.2 12.2 0 0 1-3.6.55a12 12 0 0 1-3.6-23.45a28 28 0 0 0 18.32-18.32a12 12 0 0 1 22.9 7.2ZM220 144a92 92 0 0 1-184 0c0-28.81 11.27-58.18 33.48-87.28a12 12 0 0 1 17.9-1.33l19.69 19.11L127 19.89a12 12 0 0 1 18.94-5.12C168.2 33.25 220 82.85 220 144m-24 0c0-41.71-30.61-78.39-52.52-99.29l-20.21 55.4a12 12 0 0 1-19.63 4.5L80.71 82.36C67 103.38 60 124.06 60 144a68 68 0 0 0 136 0"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">PR Packages <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Starter to premium distribution bundles</span>
              </div>
            </a>
            <a href="/pricing/premium" @click="showPricing=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#d97706">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M252 80a32 32 0 1 0-60 15.45l-20.86 25.66l-20.32-46.71a32 32 0 1 0-45.64 0l-20.31 46.71L64 95.45a32 32 0 1 0-35 15.78l14 84.06A19.94 19.94 0 0 0 62.78 212h130.44A19.94 19.94 0 0 0 213 195.29l14-84.06A32.05 32.05 0 0 0 252 80m-32-8a8 8 0 1 1-8 8a8 8 0 0 1 8-8m-92-28a8 8 0 1 1-8 8a8 8 0 0 1 8-8M36 72a8 8 0 1 1-8 8a8 8 0 0 1 8-8m153.83 116H66.17l-10.88-65.22l23.4 28.79A12 12 0 0 0 88 156a13 13 0 0 0 1.63-.11a12 12 0 0 0 9.37-7.1L127.18 84h1.64L157 148.79a12 12 0 0 0 9.37 7.1a13 13 0 0 0 1.63.11a12 12 0 0 0 9.31-4.43l23.4-28.79Z"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">Premium Media <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Top-tier placements on major outlets</span>
              </div>
            </a>
            <div class="dd-divider"></div>
            <span class="dd-label">Outreach</span>
            <a href="/pricing/media-outreach" @click="showPricing=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#3b82f6">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M230.14 25.86a20 20 0 0 0-19.57-5.11l-.22.07L18.44 79a20 20 0 0 0-3.06 37.25L99 157l40.71 83.65a19.81 19.81 0 0 0 18 11.38c.57 0 1.15 0 1.73-.07a19.82 19.82 0 0 0 17.56-14.4l58.18-191.91a1.4 1.4 0 0 0 .07-.22a20 20 0 0 0-5.11-19.57m-73.23 195.21l-34.37-70.64l46-45.95a12 12 0 0 0-17-17l-46 46l-70.61-34.39L210 46Z"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">Media Outreach <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Direct journalist &amp; outlet targeting</span>
              </div>
            </a>
          </div>
        </div>
      </div>

      <!-- Press Releases -->
      <a href="/press-release" class="prg-btn ">
        <svg style="width:18px;height:18px;margin-right:6px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"><path d="m22 44l-1-8m21 8V12H26l1 8l1 8l1 8l-7 8zM28 28h5m-6-8h6"/><path d="M6 4h19l1 8l1 8l1 8l1 8H6zm6 8h7m-7 8h8m-8 8h9"/></g></svg>
        Press Releases
      </a>

      <!-- Resources -->
      <div style="position:relative">
        <button @click.stop="showResources=!showResources; showPricing=false"
          :class="['prg-btn', showResources?'open':'', '']">
          <svg style="width:18px;height:18px;margin-right:6px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M6.75 22q-1.125 0-1.937-.763T4 19.35V5.4q0-.95.588-1.7t1.537-.95L16 .8v16l-9.475 1.9q-.225.05-.375.238T6 19.35q0 .275.225.463T6.75 20H18V4h2v18zM9 16.175l5-.975V3.25l-5 .975zm-2 .4V4.625l-.375.075q-.275.05-.45.238T6 5.4v11.425q.125-.05.263-.087t.262-.063zm-1-11.8v12.05z"/></svg>
          Resources
          <svg class="prg-caret" style="width:18px;height:18px" :class="{'rotate-180':showResources}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="currentColor" fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06" clip-rule="evenodd"/></svg>
        </button>
        <div class="dd-wrap" x-show="showResources" @click.stop x-cloak>
          <div class="dd-panel" style="position:relative">
            <span class="dd-label">Learn</span>
            <a href="/resources" @click="showResources=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#f5f3ff,#ede9fe);color:#7c3aed">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M232 44h-72a43.86 43.86 0 0 0-32 13.85A43.86 43.86 0 0 0 96 44H24a12 12 0 0 0-12 12v144a12 12 0 0 0 12 12h72a20 20 0 0 1 20 20a12 12 0 0 0 24 0a20 20 0 0 1 20-20h72a12 12 0 0 0 12-12V56a12 12 0 0 0-12-12M96 188H36V68h60a20 20 0 0 1 20 20v104.81A43.8 43.8 0 0 0 96 188m124 0h-60a43.7 43.7 0 0 0-20 4.83V88a20 20 0 0 1 20-20h60Z"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">Resources <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Guides, tips &amp; PR best practices</span>
              </div>
            </a>
            <div class="dd-divider"></div>
            <span class="dd-label">Tools</span>
            <a href="/tools/as-seen-on" @click="showResources=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#16a34a">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M228.75 100.05c-3.52-3.67-7.15-7.46-8.34-10.33c-1.06-2.56-1.14-7.83-1.21-12.47c-.15-10-.34-22.44-9.18-31.27s-21.27-9-31.27-9.18c-4.64-.07-9.91-.15-12.47-1.21c-2.87-1.19-6.66-4.82-10.33-8.34C148.87 20.46 140.05 12 128 12s-20.87 8.46-27.95 15.25c-3.67 3.52-7.46 7.15-10.33 8.34c-2.56 1.06-7.83 1.14-12.47 1.21c-10 .2-22.44.34-31.25 9.2s-9 21.25-9.2 31.25c-.07 4.64-.15 9.91-1.21 12.47c-1.19 2.87-4.82 6.66-8.34 10.33C20.46 107.13 12 116 12 128s8.46 20.87 15.25 28c3.52 3.67 7.15 7.46 8.34 10.33c1.06 2.56 1.14 7.83 1.21 12.47c.15 10 .34 22.44 9.18 31.27s21.27 9 31.27 9.18c4.64.07 9.91.15 12.47 1.21c2.87 1.19 6.66 4.82 10.33 8.34C107.13 235.54 116 244 128 244s20.87-8.46 27.95-15.25c3.67-3.52 7.46-7.15 10.33-8.34c2.56-1.06 7.83-1.14 12.47-1.21c10-.15 22.44-.34 31.27-9.18s9-21.27 9.18-31.27c.07-4.64.15-9.91 1.21-12.47c1.19-2.87 4.82-6.66 8.34-10.33c6.79-7.08 15.25-15.9 15.25-27.95s-8.46-20.87-15.25-27.95m-17.32 39.29c-4.82 5-10.28 10.72-13.19 17.76c-2.82 6.8-2.93 14.16-3 21.29c-.08 5.36-.19 12.71-2.15 14.66s-9.3 2.07-14.66 2.15c-7.13.11-14.49.22-21.29 3c-7 2.91-12.73 8.37-17.76 13.19c-3.6 3.45-8.98 8.61-11.38 8.61s-7.78-5.16-11.34-8.57c-5-4.82-10.72-10.28-17.76-13.19c-6.8-2.82-14.16-2.93-21.29-3c-5.36-.08-12.71-.19-14.66-2.15s-2.07-9.3-2.15-14.66c-.11-7.13-.22-14.49-3-21.29c-2.91-7-8.37-12.73-13.19-17.76C41.16 135.78 36 130.4 36 128s5.16-7.78 8.57-11.34c4.82-5 10.28-10.72 13.19-17.76c2.82-6.8 2.93-14.16 3-21.29C60.88 72.25 61 64.9 63 63s9.3-2.07 14.66-2.15c7.13-.11 14.49-.22 21.29-3c7-2.91 12.73-8.37 17.76-13.19C120.22 41.16 125.6 36 128 36s7.78 5.16 11.34 8.57c5 4.82 10.72 10.28 17.76 13.19c6.8 2.82 14.16 2.93 21.29 3c5.36.08 12.71.19 14.66 2.15s2.07 9.3 2.15 14.66c.11 7.13.22 14.49 3 21.29c2.91 7 8.37 12.73 13.19 17.76c3.41 3.56 8.57 8.94 8.57 11.34s-5.12 7.82-8.53 11.38m-34.94-43.83a12 12 0 0 1 0 17l-56 56a12 12 0 0 1-17 0l-24-24a12 12 0 1 1 17-17L112 143l47.51-47.52a12 12 0 0 1 16.98.03"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">As Seen On Logos <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Generate your media badge widget</span>
              </div>
            </a>
            <a href="/tools/press-release-auditor" @click="showResources=false" class="dd-item">
              <div class="dd-icon" style="background:linear-gradient(135deg,#fff7ed,#fed7aa);color:#ea580c">
                <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M232.49 215.51L185 168a92.12 92.12 0 1 0-17 17l47.53 47.54a12 12 0 0 0 17-17ZM44 112a68 68 0 1 1 68 68a68.07 68.07 0 0 1-68-68"/></svg>
              </div>
              <div class="dd-text">
                <span class="dd-title">PR Auditor <svg class="dd-title-arrow" style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01"/></svg></span>
                <span class="dd-desc">Audit &amp; grade your press releases</span>
              </div>
            </a>
          </div>
        </div>
      </div>

      <!-- Contact -->
      <a href="/contact" class="prg-btn ">
        <svg style="width:18px;height:18px;margin-right:6px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M21 12.22C21 6.73 16.74 3 12 3c-4.69 0-9 3.65-9 9.28c-.6.34-1 .98-1 1.72v2c0 1.1.9 2 2 2h1v-6.1c0-3.87 3.13-7 7-7s7 3.13 7 7V19h-8v2h8c1.1 0 2-.9 2-2v-1.22c.59-.31 1-.92 1-1.64v-2.3c0-.7-.41-1.31-1-1.62"/><circle cx="9" cy="13" r="1" fill="currentColor"/><circle cx="15" cy="13" r="1" fill="currentColor"/><path fill="currentColor" d="M18 11.03A6.04 6.04 0 0 0 12.05 6c-3.03 0-6.29 2.51-6.03 6.45a8.07 8.07 0 0 0 4.86-5.89c1.31 2.63 4 4.44 7.12 4.47"/></svg>
        Contact
      </a>
    </div>

    <!-- Right icons -->
    <div style="display:flex;align-items:center;justify-content:flex-end;margin-left:auto">
      <a href="/dashboard" title="Dashboard" style="display:flex;align-items:center;margin-right:8px;text-decoration:none">
        <svg style="width:20px;height:20px;color:#71717a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M5.85 17.1q1.275-.975 2.85-1.537T12 15t3.3.563t2.85 1.537q.875-1.025 1.363-2.325T20 12q0-3.325-2.337-5.663T12 4T6.337 6.338T4 12q0 1.475.488 2.775T5.85 17.1m3.663-5.113Q8.5 10.976 8.5 9.5t1.013-2.488T12 6t2.488 1.013T15.5 9.5t-1.012 2.488T12 13t-2.488-1.012M12 22q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22m2.5-2.387q1.175-.388 2.15-1.113q-.975-.725-2.15-1.112T12 17t-2.5.388T7.35 18.5q.975.725 2.15 1.113T12 20t2.5-.387m-1.425-9.038q.425-.425.425-1.075t-.425-1.075T12 8t-1.075.425T10.5 9.5t.425 1.075T12 11t1.075-.425M12 18.5"/></svg>
      </a>
      <button @click="toggleDark()" class="prg-dark-btn">
        <svg x-show="isDark" style="width:20px;height:20px;color:#a1a1aa" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 3v2.25m6.364.386l-1.591 1.591M21 12h-2.25m-.386 6.364l-1.591-1.591M12 18.75V21m-4.773-4.227l-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0a3.75 3.75 0 0 1 7.5 0"/></svg>
        <svg x-show="!isDark" style="width:20px;height:20px;color:#71717a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M21.752 15.002A9.7 9.7 0 0 1 18 15.75A9.75 9.75 0 0 1 8.25 6c0-1.33.266-2.597.748-3.752A9.75 9.75 0 0 0 3 11.25A9.75 9.75 0 0 0 12.75 21a9.75 9.75 0 0 0 9.002-5.998"/></svg>
      </button>
      <button @click="mobileOpen=!mobileOpen" class="prg-hamburger" title="Menu">
        <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle;font-size:22px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M228 128a12 12 0 0 1-12 12H40a12 12 0 0 1 0-24h176a12 12 0 0 1 12 12M40 76h176a12 12 0 0 0 0-24H40a12 12 0 0 0 0 24m176 104H40a12 12 0 0 0 0 24h176a12 12 0 0 0 0-24"/></svg>
      </button>
    </div>
  </nav>
</header>

<!-- Backdrop -->
<div class="prg-backdrop" :class="{ open: mobileOpen }" @click="mobileOpen=false"></div>

<!-- Left drawer -->
<div class="prg-drawer" :class="{ open: mobileOpen }">
  <div class="prg-drawer-head">
    <a href="/" @click="mobileOpen=false" style="display:flex;align-items:center;text-decoration:none">
      <img src="/assets/img/logo.svg" class="inline-block dark:hidden" width="60" height="18" alt="PRGun">
      <img src="/assets/img/logo-dark.svg" class="hidden dark:inline-block" width="60" height="18" alt="PRGun">
    </a>
    <button @click="mobileOpen=false" class="prg-drawer-close" title="Close">
      <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle;font-size:18px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M208.49 191.51a12 12 0 0 1-17 17L128 145l-63.51 63.49a12 12 0 0 1-17-17L111 128L47.51 64.49a12 12 0 0 1 17-17L128 111l63.51-63.52a12 12 0 0 1 17 17L145 128Z"/></svg>
    </button>
  </div>
  <div class="prg-drawer-body">
    <a href="/" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:#f4f4f5;color:#52525b"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="m222.14 105.85l-80-80a20 20 0 0 0-28.28 0l-80 80A19.86 19.86 0 0 0 28 120v96a12 12 0 0 0 12 12h64a12 12 0 0 0 12-12v-52h24v52a12 12 0 0 0 12 12h64a12 12 0 0 0 12-12v-96a19.86 19.86 0 0 0-5.86-14.15M204 204h-40v-52a12 12 0 0 0-12-12h-48a12 12 0 0 0-12 12v52H52v-82.35l76-76l76 76Z"/></svg></div>Home
    </a>
    <div class="prg-drawer-divider"></div>
    <span class="prg-drawer-section">Pricing</span>
    <a href="/pricing" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#fff0f0,#ffe4e4);color:#ef4444"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M177.62 159.6a52 52 0 0 1-34 34a12.2 12.2 0 0 1-3.6.55a12 12 0 0 1-3.6-23.45a28 28 0 0 0 18.32-18.32a12 12 0 0 1 22.9 7.2ZM220 144a92 92 0 0 1-184 0c0-28.81 11.27-58.18 33.48-87.28a12 12 0 0 1 17.9-1.33l19.69 19.11L127 19.89a12 12 0 0 1 18.94-5.12C168.2 33.25 220 82.85 220 144m-24 0c0-41.71-30.61-78.39-52.52-99.29l-20.21 55.4a12 12 0 0 1-19.63 4.5L80.71 82.36C67 103.38 60 124.06 60 144a68 68 0 0 0 136 0"/></svg></div>PR Packages
    </a>
    <a href="/pricing/premium" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#d97706"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M252 80a32 32 0 1 0-60 15.45l-20.86 25.66l-20.32-46.71a32 32 0 1 0-45.64 0l-20.31 46.71L64 95.45a32 32 0 1 0-35 15.78l14 84.06A19.94 19.94 0 0 0 62.78 212h130.44A19.94 19.94 0 0 0 213 195.29l14-84.06A32.05 32.05 0 0 0 252 80m-32-8a8 8 0 1 1-8 8a8 8 0 0 1 8-8m-92-28a8 8 0 1 1-8 8a8 8 0 0 1 8-8M36 72a8 8 0 1 1-8 8a8 8 0 0 1 8-8m153.83 116H66.17l-10.88-65.22l23.4 28.79A12 12 0 0 0 88 156a13 13 0 0 0 1.63-.11a12 12 0 0 0 9.37-7.1L127.18 84h1.64L157 148.79a12 12 0 0 0 9.37 7.1a13 13 0 0 0 1.63.11a12 12 0 0 0 9.31-4.43l23.4-28.79Z"/></svg></div>Premium Media
    </a>
    <a href="/pricing/media-outreach" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#3b82f6"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M230.14 25.86a20 20 0 0 0-19.57-5.11l-.22.07L18.44 79a20 20 0 0 0-3.06 37.25L99 157l40.71 83.65a19.81 19.81 0 0 0 18 11.38c.57 0 1.15 0 1.73-.07a19.82 19.82 0 0 0 17.56-14.4l58.18-191.91a1.4 1.4 0 0 0 .07-.22a20 20 0 0 0-5.11-19.57m-73.23 195.21l-34.37-70.64l46-45.95a12 12 0 0 0-17-17l-46 46l-70.61-34.39L210 46Z"/></svg></div>Media Outreach
    </a>
    <div class="prg-drawer-divider"></div>
    <a href="/press-release" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:#f4f4f5;color:#52525b"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M92 108a12 12 0 0 1 12-12h72a12 12 0 0 1 0 24h-72a12 12 0 0 1-12-12m12 52h72a12 12 0 0 0 0-24h-72a12 12 0 0 0 0 24m132-96v120a28 28 0 0 1-28 28H36a32 32 0 0 1-32-32V88a12 12 0 0 1 24 0v92a8 8 0 0 0 16 0V64a20 20 0 0 1 20-20h152a20 20 0 0 1 20 20m-24 4H68v112a32 32 0 0 1-1 8h141a4 4 0 0 0 4-4Z"/></svg></div>Press Releases
    </a>
    <div class="prg-drawer-divider"></div>
    <span class="prg-drawer-section">Resources</span>
    <a href="/resources" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#f5f3ff,#ede9fe);color:#7c3aed"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M232 44h-72a43.86 43.86 0 0 0-32 13.85A43.86 43.86 0 0 0 96 44H24a12 12 0 0 0-12 12v144a12 12 0 0 0 12 12h72a20 20 0 0 1 20 20a12 12 0 0 0 24 0a20 20 0 0 1 20-20h72a12 12 0 0 0 12-12V56a12 12 0 0 0-12-12M96 188H36V68h60a20 20 0 0 1 20 20v104.81A43.8 43.8 0 0 0 96 188m124 0h-60a43.7 43.7 0 0 0-20 4.83V88a20 20 0 0 1 20-20h60Z"/></svg></div>Resources
    </a>
    <a href="/tools/as-seen-on" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#16a34a"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M228.75 100.05c-3.52-3.67-7.15-7.46-8.34-10.33c-1.06-2.56-1.14-7.83-1.21-12.47c-.15-10-.34-22.44-9.18-31.27s-21.27-9-31.27-9.18c-4.64-.07-9.91-.15-12.47-1.21c-2.87-1.19-6.66-4.82-10.33-8.34C148.87 20.46 140.05 12 128 12s-20.87 8.46-27.95 15.25c-3.67 3.52-7.46 7.15-10.33 8.34c-2.56 1.06-7.83 1.14-12.47 1.21c-10 .2-22.44.34-31.25 9.2s-9 21.25-9.2 31.25c-.07 4.64-.15 9.91-1.21 12.47c-1.19 2.87-4.82 6.66-8.34 10.33C20.46 107.13 12 116 12 128s8.46 20.87 15.25 28c3.52 3.67 7.15 7.46 8.34 10.33c1.06 2.56 1.14 7.83 1.21 12.47c.15 10 .34 22.44 9.18 31.27s21.27 9 31.27 9.18c4.64.07 9.91.15 12.47 1.21c2.87 1.19 6.66 4.82 10.33 8.34C107.13 235.54 116 244 128 244s20.87-8.46 27.95-15.25c3.67-3.52 7.46-7.15 10.33-8.34c2.56-1.06 7.83-1.14 12.47-1.21c10-.15 22.44-.34 31.27-9.18s9-21.27 9.18-31.27c.07-4.64.15-9.91 1.21-12.47c1.19-2.87 4.82-6.66 8.34-10.33c6.79-7.08 15.25-15.9 15.25-27.95s-8.46-20.87-15.25-27.95m-17.32 39.29c-4.82 5-10.28 10.72-13.19 17.76c-2.82 6.8-2.93 14.16-3 21.29c-.08 5.36-.19 12.71-2.15 14.66s-9.3 2.07-14.66 2.15c-7.13.11-14.49.22-21.29 3c-7 2.91-12.73 8.37-17.76 13.19c-3.6 3.45-8.98 8.61-11.38 8.61s-7.78-5.16-11.34-8.57c-5-4.82-10.72-10.28-17.76-13.19c-6.8-2.82-14.16-2.93-21.29-3c-5.36-.08-12.71-.19-14.66-2.15s-2.07-9.3-2.15-14.66c-.11-7.13-.22-14.49-3-21.29c-2.91-7-8.37-12.73-13.19-17.76C41.16 135.78 36 130.4 36 128s5.16-7.78 8.57-11.34c4.82-5 10.28-10.72 13.19-17.76c2.82-6.8 2.93-14.16 3-21.29C60.88 72.25 61 64.9 63 63s9.3-2.07 14.66-2.15c7.13-.11 14.49-.22 21.29-3c7-2.91 12.73-8.37 17.76-13.19C120.22 41.16 125.6 36 128 36s7.78 5.16 11.34 8.57c5 4.82 10.72 10.28 17.76 13.19c6.8 2.82 14.16 2.93 21.29 3c5.36.08 12.71.19 14.66 2.15s2.07 9.3 2.15 14.66c.11 7.13.22 14.49 3 21.29c2.91 7 8.37 12.73 13.19 17.76c3.41 3.56 8.57 8.94 8.57 11.34s-5.12 7.82-8.53 11.38m-34.94-43.83a12 12 0 0 1 0 17l-56 56a12 12 0 0 1-17 0l-24-24a12 12 0 1 1 17-17L112 143l47.51-47.52a12 12 0 0 1 16.98.03"/></svg></div>As Seen On Logos
    </a>
    <a href="/tools/press-release-auditor" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:linear-gradient(135deg,#fff7ed,#fed7aa);color:#ea580c"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M232.49 215.51L185 168a92.12 92.12 0 1 0-17 17l47.53 47.54a12 12 0 0 0 17-17ZM44 112a68 68 0 1 1 68 68a68.07 68.07 0 0 1-68-68"/></svg></div>PR Auditor
    </a>
    <div class="prg-drawer-divider"></div>
    <a href="/contact" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:#f4f4f5;color:#52525b"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M132 20A104.11 104.11 0 0 0 28 124v84a20 20 0 0 0 20 20h84a104 104 0 0 0 0-208m0 184H52v-80a80 80 0 1 1 80 80m-8-76a16 16 0 1 1-16-16a16 16 0 0 1 16 16m48 0a16 16 0 1 1-16-16a16 16 0 0 1 16 16"/></svg></div>Contact
    </a>
    <a href="/dashboard" @click="mobileOpen=false" class="prg-drawer-link">
      <div class="prg-drawer-link-icon" style="background:#f4f4f5;color:#52525b"><svg style="width:1em;height:1em;display:inline-block;vertical-align:middle" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M128 20a108 108 0 1 0 108 108A108.12 108.12 0 0 0 128 20M79.57 196.57a60 60 0 0 1 96.86 0a83.72 83.72 0 0 1-96.86 0M100 120a28 28 0 1 1 28 28a28 28 0 0 1-28-28m94 59.94a83.5 83.5 0 0 0-29-23.42a52 52 0 1 0-74 0a83.5 83.5 0 0 0-29 23.42a84 84 0 1 1 131.9 0Z"/></svg></div>Dashboard
    </a>
  </div>
  <div class="prg-drawer-foot">
    <a href="/pricing" @click="mobileOpen=false" class="prg-drawer-cta">
      <svg style="width:1em;height:1em;display:inline-block;vertical-align:middle;font-size:16px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="currentColor" d="M227.85 46.89a20 20 0 0 0-18.74-18.74c-13.13-.77-46.65.42-74.48 28.24L131 60H74.36a19.83 19.83 0 0 0-14.14 5.86l-34.35 34.33a20 20 0 0 0 11.35 33.95l37.14 5.18l42.32 42.32l5.19 37.18A19.88 19.88 0 0 0 135.34 235a20.1 20.1 0 0 0 6.37 1a19.9 19.9 0 0 0 14.1-5.87l34.34-34.35a19.85 19.85 0 0 0 5.85-14.14V125l3.6-3.59c27.83-27.87 29.02-61.41 28.25-74.52M76 84h31l-31.25 31.28l-27.23-3.8Zm75.6-10.63A72.27 72.27 0 0 1 204 52a72.17 72.17 0 0 1-21.38 52.41L128 159l-31-31ZM172 180l-27.49 27.49l-3.8-27.23L172 149Zm-72 22c-8.71 11.85-26.19 26-60 26a12 12 0 0 1-12-12c0-33.84 14.12-51.32 26-60a12 12 0 1 1 14.18 19.3C62.3 179.63 55.51 187.8 53 203c15.21-2.51 23.37-9.3 27.7-15.18A12 12 0 1 1 100 202"/></svg>Get Started
    </a>
  </div>
</div>

</div>

<main class="flex-1" x-data="homeData()" @keydown.escape.window="releaseExpanded = false">
  <section>
    <div class="text-center pt-12 pb-36 bg-gradient-to-r from-red-50 via-purple-100 to-blue-100 dark:from-black dark:via-indigo-950 dark:black">
      <div class="container mx-auto px-4 max-w-7xl">
        <div class="grid grid-cols-1 md:grid-cols-2 gap-12 py-12">
          <div>
            <h1 class="sr-only">Press Release Distribution Service — Affordable PR Distribution to Google News, AP News & 500+ Media Outlets | PR Gun</h1>
            <div class="text-6xl font-bold mb-0 text-left hero-gradient" aria-hidden="true">Press Release</div>
            <div class="text-6xl mt-0 text-left font-bold text-zinc-700 dark:text-zinc-100 mb-4" aria-hidden="true">Made Simple</div>
            <p class="mb-6 text-base font-normal text-left max-w-xl dark:text-zinc-300">
              Scale your earned media confidently with our service that publishes your news releases on Google News and major media
              outlets, including FOX, Street Insider, BarChart, Chronicle Journal, and The Mail &amp; Globe.
            </p>
            <div class="block text-left">
              <a href="/pricing"
                class="inline-block rounded-full px-7 py-4 bg-red-600 text-white hover:bg-red-500 transition-all hover:shadow-lg hover:shadow-red-200 dark:hover:shadow-none text-sm font-bold hover:scale-110">
                Submit Press Release
              </a>
            </div>
          </div>
          <div>
            <div x-show="!videoLoaded"
              class="shadow-lg w-full rounded-lg relative flex items-center justify-center cursor-pointer"
              style="aspect-ratio: 16/9; background-color: #333"
              @click="videoLoaded = true">
              <img src="/assets/img/index/promo.webp" alt="PR Gun Promo"
                class="hidden md:block md:absolute inset-0 w-full h-full object-cover rounded-lg"
                width="468" height="263" loading="eager" />
              <img src="/assets/img/index/promo.webp" alt="PR Gun Promo"
                class="absolute md:hidden inset-0 w-full h-full object-cover rounded-lg"
                width="200" height="133" loading="eager" />
              <svg xmlns="http://www.w3.org/2000/svg" class="text-6xl text-white shadow-lg relative z-10 w-16 h-16" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"/>
                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
              </svg>
            </div>
            <video x-show="videoLoaded" autoplay loop muted controls class="shadow-lg w-full rounded-lg">
              <source src="/assets/img/index/promo.mp4" type="video/mp4" />
            </video>
          </div>
        </div>
      </div>
    </div>

    <!-- Social proof bar -->
    <section class="py-12 -mt-32 mx-8">
      <div class="container mx-auto px-4 pt-4 pb-8 bg-white dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-700 rounded-lg max-w-7xl shadow-lg transition-all hover:dark:border-zinc-600">
        <h2 class="text-2xl font-bold text-center mb-4">Over 9,000 <span class="text-zinc-700 dark:text-zinc-400">Press Releases Syndicated</span></h2>
        <div class="flex flex-wrap justify-center items-center gap-8">
          <img src="/assets/img/index/logo-seti.webp" alt="SETI Logotype" width="80" height="49" class="mr-3 transition-all hover:scale-110 dark:invert dark:hue-rotate-180" loading="lazy" />
          <img src="/assets/img/index/logo-nwu.webp" alt="Northwestern Logo" width="80" height="25" class="mr-3 transition-all hover:scale-110 dark:invert dark:hue-rotate-180" loading="lazy" />
          <img src="/assets/img/index/logo-sessions.webp" alt="Sessions Logo" width="80" height="34" class="mr-3 transition-all hover:scale-110 dark:invert dark:hue-rotate-180" loading="lazy" />
          <img src="/assets/img/index/logo-dennys.webp" alt="Denny's Logo" width="80" height="42" class="mr-3 transition-all hover:scale-110 dark:brightness-125" loading="lazy" />
          <img src="/assets/img/index/logo-dlfoods.webp" alt="DL Foods Logo" width="80" height="43" class="mr-3 transition-all hover:scale-110 dark:invert dark:hue-rotate-180" loading="lazy" />
          <img src="/assets/img/index/logo-coldwell.webp" alt="Coldwell Banker Logo" width="80" height="37" class="mr-3 transition-all hover:scale-110" loading="lazy" />
        </div>
      </div>
    </section>

    <!-- WHY PR GUN -->
    <section class="container mx-auto px-4 max-w-7xl py-20">
      <div class="flex flex-col md:flex-row md:items-end md:justify-between gap-6 mb-9">
        <div>
          <div style="font-size: 12px; font-weight: 700; color: #EF4444; letter-spacing: 1.5px; margin-bottom: 10px;">WHY PR GUN</div>
          <h2 style="font-size: 36px; font-weight: 700; letter-spacing: -1px; margin: 0; color: #18181B; line-height: 1.1;" class="dark:!text-zinc-50">
            Built for founders who need
            <span style="background: linear-gradient(90deg, #EF4444 0%, #F43F5E 50%, #6366F1 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;">real coverage, fast.</span>
          </h2>
        </div>
        <p style="font-size: 14px; color: #52525B; max-width: 320px; line-height: 1.55; margin: 0;" class="dark:!text-zinc-400">
          Speed, placement guarantee, and a branded clip report — all standard. Add targeted outreach when you need more reach.
        </p>
      </div>
      <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-5">
        <template x-for="card in whyCards" :key="card.tag">
          <div class="dark:!bg-zinc-900 dark:!border-zinc-800"
            style="border: 1px solid #E4E4E7; border-radius: 18px; background: #fff; overflow: hidden; display: flex; flex-direction: column;">
            <div style="background: #EEF2FF; border-bottom: 1px solid #E4E4E7; position: relative;" class="dark:!bg-indigo-950/30 dark:!border-zinc-800">
              <div style="position: absolute; top: 10px; left: 12px; font-size: 9.5px; font-weight: 800; color: #6366F1; letter-spacing: 1.4px; padding: 3px 8px; background: rgba(255,255,255,0.92); border: 1px solid rgba(99,102,241,0.25); border-radius: 6px; z-index: 2; backdrop-filter: blur(4px);" x-text="card.tag"></div>
              <div x-html="card.vignette"></div>
            </div>
            <div style="padding: 20px 20px 22px; flex: 1; display: flex; flex-direction: column;">
              <div style="display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px;">
                <div style="font-size: 22px; font-weight: 800; color: #18181B; letter-spacing: -0.8px; font-feature-settings: 'tnum';" class="dark:!text-zinc-50" x-text="card.stat"></div>
                <div style="font-size: 11px; font-weight: 600; color: #52525B; letter-spacing: 0.3px;" class="dark:!text-zinc-400" x-text="card.statLabel"></div>
              </div>
              <div style="font-size: 16px; font-weight: 700; color: #18181B; letter-spacing: -0.3px; margin-bottom: 6px;" class="dark:!text-zinc-50" x-text="card.title"></div>
              <div style="font-size: 13px; color: #52525B; font-weight: 400; line-height: 1.55;" class="dark:!text-zinc-400" x-text="card.body"></div>
            </div>
          </div>
        </template>
      </div>
    </section>

    <!-- REAL PLACEMENTS -->
    <section class="container mx-auto px-4 max-w-7xl py-20">
      <div x-show="releaseExpanded" @click="releaseExpanded = false"
        style="position: fixed; inset: 0; z-index: 49; cursor: zoom-out; background: rgba(0,0,0,0.35);"></div>

      <div class="grid grid-cols-1 lg:grid-cols-[1fr_1.1fr] gap-16 items-stretch relative">
        <!-- LEFT -->
        <div>
          <div style="font-size: 12px; font-weight: 700; color: #EF4444; letter-spacing: 1.5px; margin-bottom: 14px;">REAL PLACEMENTS</div>
          <h2 style="font-size: 44px; font-weight: 700; letter-spacing: -1.3px; margin: 0; line-height: 1.1; color: #18181B;" class="dark:!text-zinc-50">
            See what a <span style="background: linear-gradient(90deg, #EF4444 0%, #F43F5E 50%, #6366F1 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;">real release</span> looks like.
          </h2>
          <p style="font-size: 17px; color: #52525B; font-weight: 300; line-height: 1.6; margin: 20px 0 28px;" class="dark:!text-zinc-400">
            PR Gun distributes to 500+ outlets — including Google News, FOX, and Barchart — giving you real, working links to embed on your website, share in investor decks, and add to your email signature.
          </p>
          <div class="flex flex-col gap-2.5">
            <template x-for="(r, i) in releases" :key="r.key">
              <div @click="activeRelease = i"
                @mouseenter="hoveredItem = i" @mouseleave="hoveredItem = null"
                class="dark:!bg-zinc-900 dark:!border-zinc-800"
                :style="{
                  display: 'flex', alignItems: 'center', gap: '14px', padding: '14px 16px',
                  background: i === activeRelease ? '#fff' : hoveredItem === i ? '#FAFAFA' : 'transparent',
                  borderRadius: '10px',
                  border: '1px solid ' + (i === activeRelease ? '#6366F1' : hoveredItem === i ? '#D4D4D8' : '#E4E4E7'),
                  boxShadow: i === activeRelease ? '0 4px 14px rgba(99,102,241,.15)' : hoveredItem === i ? '0 2px 8px rgba(0,0,0,.06)' : 'none',
                  cursor: 'pointer', transition: 'all .15s',
                }">
                <svg width="18" height="18" viewBox="0 0 20 20" fill="none" style="flex-shrink: 0;">
                  <circle cx="10" cy="10" r="10" :fill="i === activeRelease ? '#6366F1' : '#E4E4E7'"/>
                  <path d="M5.5 10L8.5 13L14.5 7" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                </svg>
                <div style="display: flex; align-items: baseline; gap: 10px; flex: 1; min-width: 0;">
                  <span :style="{ fontSize: '12px', fontWeight: 700, color: i === activeRelease ? '#6366F1' : '#71717A', letterSpacing: '0.5px', textTransform: 'uppercase', whiteSpace: 'nowrap' }" x-text="r.source"></span>
                  <span style="font-size: 14px; color: #18181B; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;" class="dark:!text-zinc-100" x-text="r.teaser"></span>
                </div>
                <span :style="{ fontSize: '12px', color: i === activeRelease ? '#6366F1' : '#71717A' }">&#8599;</span>
              </div>
            </template>
          </div>
        </div>

        <!-- RIGHT: fake browser -->
        <div style="position: relative; min-height: 480px;">
          <div
            @mouseenter="!releaseExpanded && (releaseHovered = true)"
            @mouseleave="releaseHovered = false"
            @click="releaseExpanded = true; releaseHovered = false"
            class="dark:!bg-zinc-900 dark:!border-zinc-800"
            :style="{
              position: releaseExpanded ? 'fixed' : 'absolute',
              top: releaseExpanded ? '50%' : '0',
              left: releaseExpanded ? '50%' : 'auto',
              right: releaseExpanded ? 'auto' : '0',
              bottom: releaseExpanded ? 'auto' : '0',
              width: releaseExpanded ? 'min(820px, 92vw)' : '100%',
              height: releaseExpanded ? 'min(620px, 88vh)' : 'auto',
              transform: releaseExpanded ? 'translate(-50%, -50%)' : (releaseHovered ? 'translateY(-10px)' : 'none'),
              background: '#fff', borderRadius: '16px', overflow: 'hidden',
              border: '1px solid #E4E4E7',
              cursor: releaseExpanded ? 'default' : 'zoom-in',
              zIndex: releaseExpanded ? 50 : 1,
              boxShadow: releaseExpanded ? '0 32px 80px rgba(0,0,0,.4)' : (releaseHovered ? '0 32px 72px rgba(0,0,0,.18)' : '0 20px 60px rgba(0,0,0,.10)'),
              transition: 'transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .3s',
            }">
            <!-- Browser chrome -->
            <div style="display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: #F4F4F5; border-bottom: 1px solid #E4E4E7;" class="dark:!bg-zinc-800 dark:!border-zinc-800">
              <div style="width: 10px; height: 10px; border-radius: 5px; background: #FF5F57;"></div>
              <div style="width: 10px; height: 10px; border-radius: 5px; background: #FEBC2E;"></div>
              <div style="width: 10px; height: 10px; border-radius: 5px; background: #28C840;"></div>
              <div style="flex: 1; background: #fff; border-radius: 999px; padding: 4px 10px; font-size: 11px; color: #71717A; margin-left: 10px; font-family: ui-monospace, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;" class="dark:!bg-zinc-700 dark:!text-zinc-400" x-text="currentRelease.url.split('/')[0]"></div>
              <button x-show="releaseExpanded" @click.stop="releaseExpanded = false" aria-label="Collapse"
                style="font-size: 16px; line-height: 1; color: #71717A; margin-left: 8px; background: transparent; border: none; cursor: pointer; padding: 2px 6px;">&#x2715;</button>
            </div>
            <!-- Content -->
            <div :style="{ padding: '28px', cursor: 'auto', height: releaseExpanded ? 'calc(100% - 41px)' : 'auto', overflowY: releaseExpanded ? 'auto' : 'hidden' }" @click.stop>
              <div style="margin-bottom: 16px;" class="dark:[&_*]:!text-zinc-100" x-html="outletLogos[currentRelease.logo]"></div>
              <div style="font-size: 11px; color: #71717A; margin-bottom: 10px; font-weight: 500;" x-text="currentRelease.section + ' · Apr 2026 · 3 min read'"></div>
              <div style="font-size: 24px; font-weight: 800; color: #18181B; letter-spacing: -0.6px; line-height: 1.2; margin-bottom: 14px;" class="dark:!text-zinc-50" x-text="currentRelease.headline"></div>
              <div x-show="currentRelease.image" style="border-radius: 8px; overflow: hidden; margin-bottom: 14px; background: #F4F4F5;" class="dark:!bg-zinc-800">
                <img :src="'/assets/img/home2/v4/' + (currentRelease.image ? currentRelease.image.split('/').pop() : '')" alt="" style="width: 100%; height: 180px; object-fit: cover; display: block;" loading="lazy"/>
              </div>
              <div style="font-size: 13px; line-height: 1.6; color: #52525B; font-weight: 400;" class="dark:!text-zinc-400">
                <p style="margin: 0 0 10px;" x-text="currentRelease.lede"></p>
                <p style="margin: 0 0 10px;" x-text="currentRelease.body"></p>
                <template x-if="releaseExpanded">
                  <div>
                    <p style="margin: 0 0 10px;">The announcement comes amid accelerating market demand and a string of recent partnerships with enterprise customers across North America and Europe.</p>
                    <p style="margin: 0 0 10px;">"This milestone validates the direction we've taken over the past 18 months," a company spokesperson said.</p>
                    <p style="margin: 0 0 10px;">The funding will be used to expand the engineering team and accelerate international expansion.</p>
                  </div>
                </template>
              </div>
              <template x-if="releaseExpanded">
                <div>
                  <div style="margin-top: 20px; padding: 12px 14px; background: #FAFAFA; border-radius: 6px; font-size: 12px; color: #71717A; font-family: Georgia, serif; font-style: italic;" class="dark:!bg-zinc-800" x-text="'← Syndicated via PR Gun · ' + currentRelease.also"></div>
                  <div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid #E4E4E7; display: flex; align-items: center; justify-content: space-between;" class="dark:!border-zinc-800">
                    <a :href="currentRelease.fullUrl" target="_blank" rel="noopener noreferrer" @click.stop
                      style="font-size: 13px; font-weight: 600; color: #EF4444; text-decoration: none; display: inline-flex; align-items: center; gap: 6px;">
                      View release on <span x-text="currentRelease.source"></span> <span style="font-size: 12px;">&#8599;</span>
                    </a>
                    <span style="font-size: 11px; color: #71717A;">Live placement</span>
                  </div>
                </div>
              </template>
            </div>
          </div>
        </div>
      </div>
    </section>

    <!-- HOW IT WORKS -->
    <section class="container mx-auto px-4 max-w-7xl py-20">
      <div class="grid grid-cols-1 lg:grid-cols-[1fr_1.2fr] gap-18 items-center">
        <!-- LEFT: illustration -->
        <div class="relative" style="min-height: 500px;">
          <div :style="{ fontSize: '12px', fontWeight: 700, color: '#EF4444', letterSpacing: '1.5px', marginBottom: '14px', transition: 'color .25s' }"
            x-text="howActive !== null ? ('STEP ' + howSteps[howActive].n + (howPinned !== null ? ' · PINNED' : '')) : 'HOW IT WORKS'"></div>
          <div class="relative w-full" style="min-height: 500px; height: 500px;">
            <div :style="{ position: 'absolute', inset: 0, opacity: howActive === null ? 1 : 0, transform: howActive === null ? 'translateY(0)' : 'translateY(-8px)', transition: 'opacity .3s, transform .3s', pointerEvents: howActive === null ? 'auto' : 'none' }"
              x-html="howIllustrations.idle"></div>
            <template x-for="(s, i) in howSteps" :key="s.n">
              <div :style="{ position: 'absolute', inset: 0, display: 'flex', alignItems: 'center', justifyContent: 'center', opacity: howActive === i ? 1 : 0, transform: howActive === i ? 'translateY(0)' : 'translateY(8px)', transition: 'opacity .3s, transform .3s', pointerEvents: howActive === i ? 'auto' : 'none' }">
                <div style="position: relative; width: 460px; height: 500px; max-width: 100%; aspect-ratio: 460 / 500;" x-html="howIllustrations[s.illustration]"></div>
              </div>
            </template>
          </div>
        </div>

        <!-- RIGHT: step list -->
        <div>
          <template x-for="(s, i) in howSteps" :key="s.n">
            <div
              @mouseenter="howPinned === null && (howHovered = i)"
              @mouseleave="howPinned === null && (howHovered = null)"
              @click="howPinned === i ? (howPinned = null, howHovered = null) : (howPinned = i, howHovered = null)"
              :style="{
                display: 'grid', gridTemplateColumns: '80px 1fr', gap: '28px',
                paddingBottom: i < howSteps.length - 1 ? '40px' : '0',
                position: 'relative',
                opacity: howActive !== null && howActive !== i ? 0.35 : 1,
                transform: howActive === i ? 'translateY(-6px)' : 'translateY(0)',
                transition: 'opacity .25s, transform .25s cubic-bezier(.2,.8,.2,1)',
                cursor: 'pointer', userSelect: 'none',
              }">
              <div style="position: relative;">
                <div
                  :style="{
                    width: '48px', height: '48px', borderRadius: '12px',
                    background: howActive === i ? '#EF4444' : '#18181B',
                    color: '#fff', display: 'flex', alignItems: 'center', justifyContent: 'center',
                    fontSize: '20px', fontWeight: 700, fontFamily: 'ui-monospace, monospace',
                    transform: howActive === i ? 'scale(1.08)' : 'scale(1)',
                    boxShadow: howActive === i ? '0 8px 22px rgba(239,68,68,.28)' : 'none',
                    transition: 'background .25s, transform .25s, box-shadow .25s', position: 'relative',
                  }" class="dark:!bg-zinc-700">
                  <span x-text="s.n"></span>
                  <div x-show="howPinned === i" style="position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 9px; background: #fff; color: #EF4444; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0,0,0,.25);">
                    <svg width="10" height="10" viewBox="0 0 20 20" fill="none"><path d="M10 2 L12 8 L18 8 L13 12 L15 18 L10 14 L5 18 L7 12 L2 8 L8 8 Z" fill="#EF4444"/></svg>
                  </div>
                </div>
                <div x-show="i < howSteps.length - 1" style="position: absolute; top: 56px; left: 23px; bottom: -8px; width: 2px; background: #E4E4E7;" class="dark:!bg-zinc-700"></div>
              </div>
              <div>
                <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px;">
                  <div style="font-size: 24px; font-weight: 700; letter-spacing: -0.6px; color: #18181B;" class="dark:!text-zinc-50" x-text="s.title"></div>
                  <div style="font-size: 11px; font-weight: 600; color: #6366F1; background: #EEF2FF; padding: 3px 10px; border-radius: 999px; white-space: nowrap; margin-left: 12px;" class="dark:!bg-indigo-950/30" x-text="s.time"></div>
                </div>
                <p style="font-size: 15px; color: #52525B; line-height: 1.6; font-weight: 300; margin: 0;" class="dark:!text-zinc-400" x-text="s.body"></p>
              </div>
            </div>
          </template>
        </div>
      </div>
    </section>

    <section class="container mx-auto px-4 max-w-7xl">
      <div class="grid grid-cols-1 md:grid-cols-2 gap-12 py-12 group">
        <div class="flex items-center justify-center order-2 md:order-1">
          <img src="/assets/img/index/google-news.svg" alt="Google News" width="398" height="235" class="shadow-lg max-w-[400px] rounded-lg dark:bg-zinc-900 border border-zinc-300 dark:border-zinc-700 transition-all hover:scale-105 md:hover:scale-110" loading="lazy" />
        </div>
        <div class="order-1 md:order-2">
          <h2 class="text-3xl font-bold">
            <span class="text-zinc-700 dark:text-zinc-400">Google News</span><br />
            <span class="gradient">5X More Impact</span>
          </h2>
          <p class="mb-6">Google News is the primary source of syndication for the majority of journalists and media outlets. We offer plans that cost just 1/5th of our competitors' pricing, giving you a 5X advantage in media placement spend—<strong>starting at just $29.</strong></p>
          <a href="/pricing" class="inline-block rounded-full px-7 py-4 bg-red-600 text-white hover:bg-red-500 transition-all hover:shadow-lg hover:shadow-red-200 dark:hover:shadow-none text-sm font-bold hover:scale-110">Submit Press Release</a>
        </div>
      </div>
    </section>

    <section class="container mx-auto px-4 max-w-7xl">
      <div class="grid grid-cols-1 md:grid-cols-2 gap-12 py-12 group">
        <div class="order-1">
          <h2 class="text-3xl font-bold">
            <span class="text-zinc-700 dark:text-zinc-400">Guaranteed</span><br />
            <span class="gradient">Media Placement</span>
          </h2>
          <p class="mb-6">Get your news published on top outlets like FOX, Benzinga, BarChart, Chronicle Journal, The Mail &amp; Globe, KMLK, Effingham Magazine, News Talk, Today's Family, The Dan, Current 94.3, Wedbush, Sports News, and more.</p>
          <a href="/pricing" class="inline-block rounded-full px-7 py-4 bg-red-600 text-white hover:bg-red-500 transition-all hover:shadow-lg hover:shadow-red-200 dark:hover:shadow-none text-sm font-bold hover:scale-110">Submit Press Release</a>
        </div>
        <div class="flex items-center justify-center order-2">
          <img src="/assets/img/index/media-logos.svg" alt="Media Logos" width="398" height="235" class="shadow-lg max-w-[400px] rounded-lg border dark:bg-zinc-900 border-zinc-300 dark:border-zinc-700 inline-block dark:hidden transition-all hover:scale-105 md:hover:scale-110" loading="lazy" />
          <img src="/assets/img/index/media-logos-dark.svg" alt="Media Logos" width="398" height="235" class="shadow-lg max-w-[400px] hidden dark:inline-block rounded-lg border border-zinc-300 dark:border-zinc-700 transition-all hover:scale-105 md:hover:scale-110" loading="lazy" />
        </div>
      </div>
    </section>

    <section class="container mx-auto px-4 max-w-7xl">
      <div class="grid grid-cols-1 md:grid-cols-2 gap-12 py-12 group">
        <div class="flex items-center justify-center order-2 md:order-1">
          <img src="/assets/img/index/media-outreach.svg" alt="Targeted Media Outreach" width="398" height="235" class="shadow-lg max-w-[400px] inline-block dark:hidden rounded-lg border border-zinc-300 dark:border-zinc-700 transition-all hover:scale-105 md:hover:scale-110" loading="lazy" />
          <img src="/assets/img/index/media-outreach-dark.svg" alt="Targeted Media Outreach" width="398" height="235" class="shadow-lg max-w-[400px] hidden dark:inline-block rounded-lg border border-zinc-300 dark:border-zinc-700 transition-all hover:scale-105 md:hover:scale-110" loading="lazy" />
        </div>
        <div class="order-1 md:order-2">
          <h2 class="text-3xl font-bold">
            <span class="text-zinc-700 dark:text-zinc-400">Targeted</span><br />
            <span class="gradient">Media Outreach</span>
          </h2>
          <p class="mb-6">Achieve impactful earned media coverage with our targeted media outreach service. We direct email your press release to over 250,000 verified media contacts at <strong>just $75 per target</strong>.</p>
          <a href="/pricing/media-outreach" class="inline-block rounded-full px-7 py-4 bg-red-600 text-white hover:bg-red-500 transition-all hover:shadow-lg hover:shadow-red-200 dark:hover:shadow-none text-sm font-bold hover:scale-110">Select Target Audience</a>
        </div>
      </div>
    </section>

    <section class="container mx-auto px-4 max-w-6xl mb-12"
         x-data="{
           startIndex: 0,
           interval: null,
           testimonials: [
             { text: 'PR Gun made it so easy to manage our media outreach. We\'ve seen incredible results in just weeks!', name: 'Alex Johnson', title: 'Marketing Specialist, Pinnacle Group' },
             { text: 'A game-changer for our PR campaigns. The tools are intuitive, and the results speak for themselves.', name: 'Taylor Smith', title: 'Content Strategist, Horizon Media' },
             { text: 'We\'ve doubled our media coverage thanks to PR Gun. Highly recommend for any business!', name: 'Jordan Lee', title: 'Digital Marketing Coordinator, Summit Strategies' },
             { text: 'Our outreach is more targeted and efficient than ever. PR Gun is the secret weapon for PR success.', name: 'Morgan Brown', title: 'Media Relations Associate, Sterling Solutions' },
             { text: 'PR Gun simplified everything. From press releases to journalist connections, it\'s all streamlined.', name: 'Casey Taylor', title: 'Campaign Manager, Vista Partners' },
             { text: 'We achieved nationwide coverage in record time. PR Gun is worth every penny!', name: 'Riley Adams', title: 'Social Media Coordinator, Apex Marketing' },
             { text: 'PR Gun has transformed how we manage our media relationships. It\'s truly indispensable.', name: 'Jamie Morgan', title: 'Brand Specialist, Legacy Communications' },
             { text: 'Incredible platform! PR Gun saved us time and helped us get featured in major publications.', name: 'Taylor Davis', title: 'Outreach Coordinator, Summit PR' }
           ],
           get visible() {
             const out = [];
             for (let i = 0; i < 4; i++) out.push(this.testimonials[(this.startIndex + i) % this.testimonials.length]);
             return out;
           },
           next() { this.startIndex = (this.startIndex + 1) % this.testimonials.length; },
           prev() { this.startIndex = (this.startIndex - 1 + this.testimonials.length) % this.testimonials.length; },
           startScroll() { this.interval = setInterval(() => this.next(), 3000); },
           stopScroll() { clearInterval(this.interval); }
         }"
         x-init="startScroll()"
         @mouseenter="stopScroll()"
         @mouseleave="startScroll()">
  <h2 class="text-3xl font-bold text-center">
    <span class="text-zinc-700 dark:text-zinc-400">Customer </span>
    <span class="gradient">Testimonials</span>
  </h2>
  <div class="text-center">
    <img src="/assets/img/index/testimonials.webp" class="mx-auto mb-6" alt="PRGun testimonials" width="200" height="41" loading="lazy" />
  </div>
  <div class="relative grid grid-cols-1 md:grid-cols-4 gap-4">
    <button @click="prev()" class="hidden md:flex absolute left-0 top-1/2 transform -translate-y-1/2 border border-zinc-200 dark:border-zinc-700 rounded-full w-10 h-10 items-center justify-center -ml-14">
      <span class="text-zinc-700 dark:text-zinc-400">&#8249;</span>
    </button>
    <template x-for="(t, i) in visible" :key="i">
      <div class="px-2">
        <div class="border border-zinc-200 dark:border-zinc-800 rounded-lg px-4 pt-0 md:pt-2 pb-2 h-[120px] md:h-[185px] flex flex-col justify-between">
          <p class="text-zinc-600 dark:text-zinc-400 text-sm mb-4 font-medium" x-text="t.text"></p>
          <div class="mt-auto">
            <div class="text-xs text-zinc-700 dark:text-zinc-300" x-text="t.name"></div>
            <div class="text-xs text-zinc-500 dark:text-zinc-500" x-text="t.title"></div>
          </div>
        </div>
      </div>
    </template>
    <button @click="next()" class="hidden md:flex absolute right-0 top-1/2 transform -translate-y-1/2 border border-zinc-200 dark:border-zinc-800 rounded-full w-10 h-10 items-center justify-center -mr-14">
      <span class="text-zinc-700 dark:text-zinc-400">&#8250;</span>
    </button>
  </div>
</section>
    <section class="container mx-auto px-4 max-w-6xl mb-12"
         x-data="{
           openIndex: 0,
           items: [
             { label: 'What does PR Gun do?', content: 'PR Gun helps you share your press release with the world. We get it on Google News and tons of websites. We even email your press release to journalists and editors who care about your topic. Plus, we\'ll write your press release for free—it\'s like having a pro publicist for cheap!' },
             { label: 'How do I send my press release to PR Gun?', content: 'Easy! Just order our service online and email us your press release. We\'ll take care of the rest, getting it posted on tons of news sites and sent straight to journalists\' inboxes.' },
             { label: 'Why choose PR Gun over other services?', content: 'PR Gun charges way less—like 66% less—than other press release services. That means you get 3x more results for your money. Why spend more if you don\'t have to?' },
             { label: 'Can I see how my press release performs?', content: 'Yep! We give you reports and stats so you can see how many people saw your press release and where it got shared.' },
             { label: 'How much does PR Gun cost?', content: 'We\'ve got press release distribution starting at just $49 for one release—or even cheaper if you buy in bulk. Our media outreach service is $75 per category. Oh, and press release writing? Totally free!' },
             { label: 'Do you really write press releases for free?', content: 'For sure! We\'re the only press release service that writes them for free.' },
             { label: 'How long does it take?', content: 'For press release distribution, we usually get it out in 24 to 48 hours. Media outreach takes a bit longer—about 1 to 2 weeks—because we make sure it gets to the right people.' }
           ]
         }">
  <h2 class="text-3xl font-bold text-center">
    <span class="text-zinc-700 dark:text-zinc-400">Frequently Asked </span>
    <span class="gradient">Questions</span>
  </h2>
  <div class="mt-6 space-y-2">
    <template x-for="(item, index) in items" :key="index">
      <div class="border border-zinc-200 dark:border-zinc-700 rounded-lg overflow-hidden">
        <button
          @click="openIndex = openIndex === index ? null : index"
          class="w-full flex items-center justify-between px-4 py-3 text-left text-sm font-medium text-zinc-700 dark:text-zinc-300 hover:bg-zinc-50 dark:hover:bg-zinc-800 transition-colors"
        >
          <span x-text="item.label"></span>
          <svg
            class="w-4 h-4 text-zinc-400 transition-transform"
            :class="{ 'rotate-90': openIndex === index }"
            fill="none" stroke="currentColor" viewBox="0 0 24 24"
          >
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
          </svg>
        </button>
        <div x-show="openIndex === index" class="px-4 pb-4 text-sm text-zinc-600 dark:text-zinc-400" x-text="item.content"></div>
      </div>
    </template>
  </div>
</section>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What does PR Gun do?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "PR Gun helps you share your press release with the world. We get it on Google News and tons of websites. We even email your press release to journalists and editors who care about your topic. Plus, we'll write your press release for free—it's like having a pro publicist for cheap!"
      }
    },
    {
      "@type": "Question",
      "name": "How do I send my press release to PR Gun?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Easy! Just order our service online and email us your press release. We'll take care of the rest, getting it posted on tons of news sites and sent straight to journalists' inboxes."
      }
    },
    {
      "@type": "Question",
      "name": "Why choose PR Gun over other services?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "PR Gun charges way less—like 66% less—than other press release services. That means you get 3x more results for your money. Why spend more if you don't have to?"
      }
    },
    {
      "@type": "Question",
      "name": "Can I see how my press release performs?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yep! We give you reports and stats so you can see how many people saw your press release and where it got shared."
      }
    },
    {
      "@type": "Question",
      "name": "How much does PR Gun cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "We've got press release distribution starting at just $49 for one release—or even cheaper if you buy in bulk. Our media outreach service is $75 per category. Oh, and press release writing? Totally free!"
      }
    },
    {
      "@type": "Question",
      "name": "Do you really write press releases for free?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "For sure! We're the only press release service that writes them for free."
      }
    },
    {
      "@type": "Question",
      "name": "How long does it take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "For press release distribution, we usually get it out in 24 to 48 hours. Media outreach takes a bit longer—about 1 to 2 weeks—because we make sure it gets to the right people."
      }
    }
  ]
}
</script>  </section>
</main>

<footer class="bg-zinc-50 dark:bg-zinc-950 p-4 text-center border-t border-zinc-200 dark:border-zinc-800">
  <div class="flex flex-wrap justify-center gap-4 text-xs text-zinc-500 dark:text-zinc-400">
    <a href="/" class="hover:text-zinc-700 dark:hover:text-zinc-200">© 2026 PR Gun</a>
    <a href="/about" class="hover:text-zinc-700 dark:hover:text-zinc-200">About Us</a>
    <a href="/contact" class="hover:text-zinc-700 dark:hover:text-zinc-200">Contact Us</a>
    <a href="/guidelines" class="hover:text-zinc-700 dark:hover:text-zinc-200">Editorial Guidelines</a>
    <a href="/terms" class="hover:text-zinc-700 dark:hover:text-zinc-200">Terms &amp; Conditions</a>
    <a href="/privacy" class="hover:text-zinc-700 dark:hover:text-zinc-200">Privacy Policy</a>
  </div>
</footer>

<script>
(function() {
  setTimeout(function() {
    var d = document, s = d.createElement('script');
    s.type = 'text/javascript'; s.async = true; s.defer = true;
    s.src = 'https://chatwoot.app.prgun.com/packs/js/sdk.js';
    s.onload = function() {
      if (window.chatwootSDK) {
        window.chatwootSDK.run({
          websiteToken: 'PdBT1BBLQfDGj9VGqY3rUzsm',
          baseUrl: 'https://chatwoot.app.prgun.com',
        });
      }
    };
    d.head.appendChild(s);
  }, 2000);
})();
</script>

<!-- Push Notification Registration -->
<script>
(function() {
  if (!('serviceWorker' in navigator) || !('PushManager' in window)) return;

  navigator.serviceWorker.register('/sw.js').then(function(reg) {
    // Check if already subscribed
    reg.pushManager.getSubscription().then(function(sub) {
      if (sub) return; // Already subscribed

      // Wait a bit before prompting (don't annoy first-time visitors)
      
      sessionStorage.setItem('push-prompted', '1');

      setTimeout(function() {
        if (Notification.permission === 'denied') return;
        if (Notification.permission === 'granted') {
          subscribePush(reg);
          return;
        }
        // Permission is 'default' — browser will show its own prompt
        subscribePush(reg);
      }, 3000);
    });
  });

  function subscribePush(reg) {
    var vapidKey = 'BPbOE_cUGV7QTVfGn4sMVCmpjsRjV94vrV-mKYkoGJm-2C_sbe9YqUckwh4RK3-TGNTgz0R30IhBhdmOH1Q6BqI';
    console.log('[Push] Subscribing...');
    reg.pushManager.subscribe({
      userVisibleOnly: true,
      applicationServerKey: urlBase64ToUint8Array(vapidKey)
    }).then(function(sub) {
      console.log('[Push] Subscribed, sending to server...');
      var rawKey = sub.getKey('p256dh');
      var rawAuth = sub.getKey('auth');
      function arrayBufToBase64(buf) {
        var bytes = new Uint8Array(buf);
        var str = '';
        for (var i = 0; i < bytes.length; i++) str += String.fromCharCode(bytes[i]);
        return btoa(str);
      }
      var payload = {
        endpoint: sub.endpoint,
        p256dh: arrayBufToBase64(rawKey),
        auth: arrayBufToBase64(rawAuth),
        deviceInfo: {
          platform: navigator.platform || '',
          userAgent: navigator.userAgent || ''
        }
      };
      console.log('[Push] Payload:', JSON.stringify(payload).substring(0, 200));
      fetch('/api/push/subscribe', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify(payload)
      }).then(function(r) { return r.json(); }).then(function(d) {
        console.log('[Push] Server response:', d);
      }).catch(function(e) { console.error('[Push] Fetch error:', e); });
    }).catch(function(e) { console.error('[Push] Subscribe error:', e); });
  }

  function urlBase64ToUint8Array(base64String) {
    var padding = '='.repeat((4 - base64String.length % 4) % 4);
    var base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
    var raw = atob(base64);
    var arr = new Uint8Array(raw.length);
    for (var i = 0; i < raw.length; i++) arr[i] = raw.charCodeAt(i);
    return arr;
  }
})();
</script>
<script>

function homeData() {
  const howIllustrations = {
  idle: `
    <svg viewBox="0 0 460 500" preserveAspectRatio="xMidYMid meet" style="position: absolute; inset: 0; width: 100%; height: 100%; display: block;" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <pattern id="idleGrid" x="0" y="0" width="28" height="28" patternUnits="userSpaceOnUse">
          <path d="M 28 0 L 0 0 0 28" fill="none" stroke="#F1F1F4" stroke-width="1"/>
        </pattern>
        <radialGradient id="idleGlowA" cx="0.25" cy="0.25" r="0.7">
          <stop offset="0" stop-color="#FCA5A5" stop-opacity="0.55"/>
          <stop offset="1" stop-color="#FCA5A5" stop-opacity="0"/>
        </radialGradient>
        <radialGradient id="idleGlowB" cx="0.8" cy="0.8" r="0.7">
          <stop offset="0" stop-color="#C4B5FD" stop-opacity="0.55"/>
          <stop offset="1" stop-color="#C4B5FD" stop-opacity="0"/>
        </radialGradient>
        <linearGradient id="idleHero" x1="0" y1="0" x2="1" y2="1">
          <stop offset="0" stop-color="#EF4444"/>
          <stop offset="0.5" stop-color="#F43F5E"/>
          <stop offset="1" stop-color="#6366F1"/>
        </linearGradient>
        <linearGradient id="idlePlus" x1="0" y1="0" x2="1" y2="1">
          <stop offset="0" stop-color="#F87171"/>
          <stop offset="1" stop-color="#DC2626"/>
        </linearGradient>
        <filter id="idleShadowLg" x="-30%" y="-30%" width="160%" height="160%">
          <feGaussianBlur in="SourceAlpha" stdDeviation="18"/>
          <feOffset dy="18"/>
          <feColorMatrix values="0 0 0 0 0.94  0 0 0 0 0.27  0 0 0 0 0.27  0 0 0 0.25 0"/>
          <feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
        </filter>
        <filter id="idleShadowMd" x="-30%" y="-30%" width="160%" height="160%">
          <feGaussianBlur in="SourceAlpha" stdDeviation="10"/>
          <feOffset dy="10"/>
          <feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0"/>
          <feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
        </filter>
        <filter id="idleShadowSm" x="-30%" y="-30%" width="160%" height="160%">
          <feGaussianBlur in="SourceAlpha" stdDeviation="6"/>
          <feOffset dy="5"/>
          <feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.16 0"/>
          <feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
        </filter>
        <clipPath id="idlePlusHdr"><rect x="-72" y="-108" width="144" height="40"/></clipPath>
      </defs>
      <rect x="0" y="0" width="460" height="500" fill="url(#idleGrid)"/>
      <rect x="0" y="0" width="460" height="500" fill="url(#idleGlowA)"/>
      <rect x="0" y="0" width="460" height="500" fill="url(#idleGlowB)"/>
      <g><g transform="translate(52 56)"><path d="M 0 -7 L 2 -2 L 7 0 L 2 2 L 0 7 L -2 2 L -7 0 L -2 -2 Z" fill="#F59E0B"><animate attributeName="opacity" values="0.3;1;0.3" dur="2.2s" repeatCount="indefinite"/></path></g>
        <g transform="translate(420 70)"><path d="M 0 -6 L 1.6 -1.6 L 6 0 L 1.6 1.6 L 0 6 L -1.6 1.6 L -6 0 L -1.6 -1.6 Z" fill="#6366F1"><animate attributeName="opacity" values="1;0.3;1" dur="2.6s" repeatCount="indefinite"/></path></g>
        <circle cx="36" cy="430" r="5" fill="#22C55E" opacity="0.8"/>
        <circle cx="428" cy="440" r="6" fill="#EF4444" opacity="0.8"/>
        <g transform="translate(430 260)"><path d="M 0 -6 L 1.6 -1.6 L 6 0 L 1.6 1.6 L 0 6 L -1.6 1.6 L -6 0 L -1.6 -1.6 Z" fill="#F59E0B"><animate attributeName="opacity" values="0.2;1;0.2" dur="3s" repeatCount="indefinite"/></path></g></g>
      <g fill="none" stroke="#E4E4E7" stroke-width="1.5" stroke-dasharray="4 6" opacity="0.8">
        <path d="M 120 170 Q 230 140 340 210"><animate attributeName="stroke-dashoffset" from="0" to="-40" dur="3s" repeatCount="indefinite"/></path>
        <path d="M 340 260 Q 230 350 130 350"><animate attributeName="stroke-dashoffset" from="0" to="-40" dur="3s" begin="0.4s" repeatCount="indefinite"/></path>
      </g>
      <g transform="translate(112 372) rotate(-6)" filter="url(#idleShadowMd)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-4; 0,0" dur="4.6s" begin="0.8s" repeatCount="indefinite" additive="sum"/>
        <rect x="-82" y="-62" width="164" height="124" rx="16" fill="#fff" stroke="#F0F0F3" stroke-width="1"/>
        <text x="-68" y="-40" font-size="9" font-weight="800" fill="#71717A" font-family="Inter, sans-serif" letter-spacing="1.2">CLIP REPORT</text>
        <circle cx="68" cy="-44" r="4" fill="#22C55E"/>
        <text x="-68" y="-6" font-size="32" font-weight="800" fill="#18181B" font-family="Inter, sans-serif" letter-spacing="-1.4">47</text>
        <text x="-34" y="-10" font-size="9" font-weight="700" fill="#6366F1" font-family="Inter, sans-serif">placements</text>
        <g transform="translate(0 38)">
          <line x1="-68" y1="0" x2="68" y2="0" stroke="#F0F0F3" stroke-width="1"/>
          <path d="M -68 14 C -48 8 -28 10 -8 0 C 12 -10 32 -14 52 -20 L 68 -24" fill="none" stroke="#22C55E" stroke-width="2.4" stroke-linecap="round" pathLength="100" stroke-dasharray="100" stroke-dashoffset="100">
            <animate attributeName="stroke-dashoffset" from="100" to="0" dur="1.8s" begin="0.6s" fill="freeze"/>
          </path>
          <circle cx="68" cy="-24" r="4" fill="#fff" stroke="#22C55E" stroke-width="2" opacity="0">
            <animate attributeName="opacity" values="0;1" dur="0.3s" begin="2.2s" fill="freeze"/>
          </circle>
        </g>
      </g>
      <g transform="translate(360 130)" filter="url(#idleShadowSm)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-5; 0,0" dur="3.8s" repeatCount="indefinite" additive="sum"/>
        <rect x="-58" y="-18" width="116" height="36" rx="18" fill="#fff" stroke="#F0F0F3" stroke-width="1"/>
        <g transform="translate(-42 0)"><circle r="11" fill="#fff" stroke="#F0F0F3" stroke-width="1"/>
          <text x="0" y="4" font-size="12" font-weight="800" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-0.4"><tspan fill="#4285F4">G</tspan></text>
        </g>
        <text x="-22" y="4" font-size="11" font-weight="700" fill="#18181B" font-family="Inter, sans-serif">Google News</text>
      </g>
      <g transform="translate(388 196)" filter="url(#idleShadowSm)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-5; 0,0" dur="4.2s" begin="0.3s" repeatCount="indefinite" additive="sum"/>
        <rect x="-44" y="-16" width="88" height="32" rx="16" fill="#D5252D"/>
        <text x="0" y="4" font-size="11" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.4">AP News ✓</text>
      </g>
      <g transform="translate(362 252)" filter="url(#idleShadowSm)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-5; 0,0" dur="4s" begin="0.6s" repeatCount="indefinite" additive="sum"/>
        <rect x="-50" y="-16" width="100" height="32" rx="16" fill="#6001D2"/>
        <text x="0" y="4" font-size="11" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif">Yahoo Finance</text>
      </g>
      <g transform="translate(106 208) rotate(-8)" filter="url(#idleShadowMd)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-5; 0,0" dur="4.2s" begin="0.2s" repeatCount="indefinite" additive="sum"/>
        <rect x="-72" y="-108" width="144" height="216" rx="18" fill="#18181B"/>
        <rect x="-72" y="-108" width="144" height="216" rx="18" fill="url(#idlePlus)" clip-path="url(#idlePlusHdr)"/>
        <text x="0" y="-84" font-size="9" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="1.8">★ MOST POPULAR</text>
        <text x="0" y="-42" font-size="11" font-weight="800" fill="#FCA5A5" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="2.4">PLUS</text>
        <text x="0" y="-6" font-size="38" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-1.8">$149</text>
        <text x="0" y="10" font-size="9" font-weight="500" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif">per release</text>
        <line x1="-52" y1="26" x2="52" y2="26" stroke="#27272A" stroke-width="1"/>
        <g transform="translate(-52 46)"><circle cx="0" cy="0" r="6" fill="#EF4444"/><path d="M -2.4 0 L -0.4 2 L 2.4 -2" stroke="#fff" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="62" height="6" rx="3" fill="#3F3F46"/></g>
        <g transform="translate(-52 62)"><circle cx="0" cy="0" r="6" fill="#EF4444"/><path d="M -2.4 0 L -0.4 2 L 2.4 -2" stroke="#fff" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="74" height="6" rx="3" fill="#3F3F46"/></g>
        <g transform="translate(-52 78)"><circle cx="0" cy="0" r="6" fill="#EF4444"/><path d="M -2.4 0 L -0.4 2 L 2.4 -2" stroke="#fff" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="62" height="6" rx="3" fill="#3F3F46"/></g>
        <g transform="translate(-52 94)"><circle cx="0" cy="0" r="6" fill="#EF4444"/><path d="M -2.4 0 L -0.4 2 L 2.4 -2" stroke="#fff" stroke-width="1.8" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="74" height="6" rx="3" fill="#3F3F46"/></g>
      </g>
      <g transform="translate(248 268) rotate(3)" filter="url(#idleShadowLg)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-6; 0,0" dur="3.8s" repeatCount="indefinite" additive="sum"/>
        <rect x="-128" y="-84" width="256" height="168" rx="22" fill="#fff" stroke="#F0F0F3" stroke-width="1"/>
        <g transform="translate(-108 -60)"><rect x="-4" y="-10" width="116" height="20" rx="10" fill="#EEF2FF"/><text x="54" y="4" font-size="10" font-weight="800" fill="#6366F1" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="1.2">3 SIMPLE STEPS</text></g>
        <text x="-108" y="-18" font-size="30" font-weight="800" fill="#18181B" font-family="Inter, sans-serif" letter-spacing="-1.2">From idea to</text>
        <text x="-108" y="14" font-size="30" font-weight="800" fill="url(#idleHero)" font-family="Inter, sans-serif" letter-spacing="-1.2">front page.</text>
        <g transform="translate(-108 46)">
          <rect x="0" y="0" width="54" height="22" rx="11" fill="#F4F4F5"/><circle cx="11" cy="11" r="3" fill="#6366F1"/><text x="36" y="15" font-size="10" font-weight="700" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif">Order</text>
          <rect x="62" y="0" width="72" height="22" rx="11" fill="#F4F4F5"/><circle cx="73" cy="11" r="3" fill="#EF4444"/><text x="102" y="15" font-size="10" font-weight="700" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif">Distribute</text>
          <rect x="142" y="0" width="60" height="22" rx="11" fill="#F4F4F5"/><circle cx="153" cy="11" r="3" fill="#22C55E"/><text x="178" y="15" font-size="10" font-weight="700" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif">Report</text>
        </g>
      </g>
      <g transform="translate(230 470)">
        <rect x="-86" y="-14" width="172" height="28" rx="14" fill="rgba(255,255,255,.8)" stroke="#F0F0F3" stroke-width="1"/>
        <circle cx="-66" cy="0" r="3" fill="#EF4444"><animate attributeName="opacity" values="1;0.3;1" dur="1.4s" repeatCount="indefinite"/></circle>
        <text x="6" y="4" font-size="11" font-weight="600" fill="#71717A" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.2">Hover a step to see how →</text>
      </g>
    </svg>
  `,
  step1: `
    <svg viewBox="0 0 440 460" preserveAspectRatio="xMidYMid meet" style="position: absolute; inset: 0; width: 100%; height: 100%; display: block;" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <filter id="cardShadow01" x="-30%" y="-20%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="14"/><feOffset dy="18"/><feColorMatrix values="0 0 0 0 0.9  0 0 0 0 0.27  0 0 0 0 0.27  0 0 0 0.3 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
        <filter id="sideCardShadow" x="-30%" y="-20%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="9"/><feOffset dy="10"/><feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.16 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
        <linearGradient id="plusGrad" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#F87171"/><stop offset="1" stop-color="#DC2626"/></linearGradient>
        <pattern id="dotGrid01" x="0" y="0" width="18" height="18" patternUnits="userSpaceOnUse"><circle cx="1.6" cy="1.6" r="1.6" fill="#FDA4A4" opacity="0.35"/></pattern>
        <radialGradient id="spotlight01" cx="0.5" cy="0.45" r="0.55"><stop offset="0" stop-color="#FEE2E2" stop-opacity="0.95"/><stop offset="1" stop-color="#FEE2E2" stop-opacity="0"/></radialGradient>
        <clipPath id="plusHeaderClip"><rect x="-94" y="-150" width="188" height="50"/></clipPath>
      </defs>
      <rect x="0" y="0" width="440" height="460" fill="url(#dotGrid01)"/>
      <ellipse cx="220" cy="210" rx="200" ry="160" fill="url(#spotlight01)"/>
      <g>
        <rect x="40" y="40" width="10" height="10" rx="2" fill="#F59E0B" transform="rotate(24 45 45)"><animateTransform attributeName="transform" type="rotate" from="0 45 45" to="360 45 45" dur="10s" repeatCount="indefinite"/></rect>
        <rect x="395" y="60" width="12" height="12" rx="2" fill="#6366F1" transform="rotate(-14 401 66)"><animateTransform attributeName="transform" type="rotate" from="360 401 66" to="0 401 66" dur="11s" repeatCount="indefinite"/></rect>
        <circle cx="30" cy="380" r="7" fill="#22C55E"/>
        <circle cx="408" cy="410" r="9" fill="#EF4444" opacity="0.85"/>
        <g transform="translate(410 200)"><path d="M 0 -9 L 2.3 -2.3 L 9 0 L 2.3 2.3 L 0 9 L -2.3 2.3 L -9 0 L -2.3 -2.3 Z" fill="#F59E0B"/><animateTransform attributeName="transform" type="rotate" values="0;360" dur="14s" repeatCount="indefinite" additive="sum"/></g>
        <g transform="translate(28 220)"><path d="M 0 -7 L 1.8 -1.8 L 7 0 L 1.8 1.8 L 0 7 L -1.8 1.8 L -7 0 L -1.8 -1.8 Z" fill="#22C55E"/><animateTransform attributeName="transform" type="rotate" values="360;0" dur="9s" repeatCount="indefinite" additive="sum"/></g>
      </g>
      <g transform="translate(88 260) rotate(-9)" filter="url(#sideCardShadow)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-4; 0,0" dur="4.4s" repeatCount="indefinite" additive="sum"/>
        <rect x="-72" y="-114" width="144" height="228" rx="18" fill="#fff"/>
        <rect x="-72" y="-114" width="144" height="44" rx="18" fill="#EEF2FF"/>
        <rect x="-72" y="-90" width="144" height="20" fill="#EEF2FF"/>
        <text x="0" y="-86" font-size="13" font-weight="800" fill="#6366F1" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="2">BASIC</text>
        <text x="0" y="-32" font-size="42" font-weight="800" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-1.6">$49</text>
        <text x="0" y="-12" font-size="11" font-weight="500" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif">per release</text>
        <line x1="-52" y1="6" x2="52" y2="6" stroke="#F4F4F5" stroke-width="1.5"/>
        <g transform="translate(-52 26)"><circle cx="0" cy="0" r="6" fill="#E0E7FF"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#6366F1" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="66" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 46)"><circle cx="0" cy="0" r="6" fill="#E0E7FF"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#6366F1" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="80" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 66)"><circle cx="0" cy="0" r="6" fill="#E0E7FF"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#6366F1" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="66" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 86)"><circle cx="0" cy="0" r="6" fill="#E0E7FF"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#6366F1" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="80" height="6" rx="3" fill="#E4E4E7"/></g>
      </g>
      <g transform="translate(352 260) rotate(9)" filter="url(#sideCardShadow)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-4; 0,0" dur="4.2s" begin="0.6s" repeatCount="indefinite" additive="sum"/>
        <rect x="-72" y="-114" width="144" height="228" rx="18" fill="#fff"/>
        <rect x="-72" y="-114" width="144" height="44" rx="18" fill="#FEF3C7"/>
        <rect x="-72" y="-90" width="144" height="20" fill="#FEF3C7"/>
        <text x="0" y="-86" font-size="13" font-weight="800" fill="#D97706" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="2">PRO</text>
        <text x="0" y="-32" font-size="42" font-weight="800" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-1.6">$299</text>
        <text x="0" y="-12" font-size="11" font-weight="500" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif">per release</text>
        <line x1="-52" y1="6" x2="52" y2="6" stroke="#F4F4F5" stroke-width="1.5"/>
        <g transform="translate(-52 26)"><circle cx="0" cy="0" r="6" fill="#FEF3C7"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#D97706" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="70" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 46)"><circle cx="0" cy="0" r="6" fill="#FEF3C7"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#D97706" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="78" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 66)"><circle cx="0" cy="0" r="6" fill="#FEF3C7"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#D97706" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="70" height="6" rx="3" fill="#E4E4E7"/></g>
        <g transform="translate(-52 86)"><circle cx="0" cy="0" r="6" fill="#FEF3C7"/><path d="M -2.5 0 L -0.6 1.9 L 2.5 -2" stroke="#D97706" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="14" y="-3" width="78" height="6" rx="3" fill="#E4E4E7"/></g>
      </g>
      <g transform="translate(220 220)" filter="url(#cardShadow01)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-6; 0,0" dur="3.6s" repeatCount="indefinite" additive="sum"/>
        <rect x="-94" y="-150" width="188" height="300" rx="26" fill="#18181B"/>
        <rect x="-94" y="-150" width="188" height="300" rx="26" fill="url(#plusGrad)" clip-path="url(#plusHeaderClip)"/>
        <text x="0" y="-122" font-size="11" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="2.2">★ MOST POPULAR</text>
        <text x="0" y="-74" font-size="13" font-weight="800" fill="#FCA5A5" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="3">PLUS</text>
        <text x="0" y="-26" font-size="54" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-2.4">$149</text>
        <text x="0" y="-4" font-size="12" font-weight="500" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif">per release</text>
        <line x1="-66" y1="18" x2="66" y2="18" stroke="#27272A" stroke-width="1"/>
        <g transform="translate(-66 42)"><circle cx="0" cy="0" r="8" fill="#EF4444"/><path d="M -3.3 0 L -0.6 2.7 L 3.3 -2.7" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="18" y="-4" width="80" height="8" rx="4" fill="#3F3F46"/></g>
        <g transform="translate(-66 62)"><circle cx="0" cy="0" r="8" fill="#EF4444"/><path d="M -3.3 0 L -0.6 2.7 L 3.3 -2.7" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="18" y="-4" width="94" height="8" rx="4" fill="#3F3F46"/></g>
        <g transform="translate(-66 82)"><circle cx="0" cy="0" r="8" fill="#EF4444"/><path d="M -3.3 0 L -0.6 2.7 L 3.3 -2.7" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="18" y="-4" width="80" height="8" rx="4" fill="#3F3F46"/></g>
        <g transform="translate(-66 102)"><circle cx="0" cy="0" r="8" fill="#EF4444"/><path d="M -3.3 0 L -0.6 2.7 L 3.3 -2.7" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="18" y="-4" width="94" height="8" rx="4" fill="#3F3F46"/></g>
        <g transform="translate(-66 122)"><circle cx="0" cy="0" r="8" fill="#EF4444"/><path d="M -3.3 0 L -0.6 2.7 L 3.3 -2.7" stroke="#fff" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round"/><rect x="18" y="-4" width="80" height="8" rx="4" fill="#3F3F46"/></g>
      </g>
      <g transform="translate(282 110)">
        <animateTransform attributeName="transform" type="translate" values="282,110; 280,104; 282,110" dur="2.4s" repeatCount="indefinite" additive="sum"/>
        <path d="M 0 0 L 0 26 L 8 22 L 12 30 L 17 28 L 13 20 L 21 20 Z" fill="#18181B" stroke="#fff" stroke-width="2" stroke-linejoin="round"/>
      </g>
    </svg>
  `,
  step2: `
    <svg viewBox="0 0 440 460" preserveAspectRatio="xMidYMid meet" style="position: absolute; inset: 0; width: 100%; height: 100%; display: block;" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <linearGradient id="lineMask0" gradientUnits="userSpaceOnUse" x1="220" y1="215" x2="85" y2="95"><stop offset="0" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.232" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.352" stop-color="#A1A1AA" stop-opacity="0.35"/><stop offset="1" stop-color="#A1A1AA" stop-opacity="0.325"/></linearGradient>
        <linearGradient id="lineMask1" gradientUnits="userSpaceOnUse" x1="220" y1="215" x2="355" y2="95"><stop offset="0" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.232" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.352" stop-color="#A1A1AA" stop-opacity="0.35"/><stop offset="1" stop-color="#A1A1AA" stop-opacity="0.325"/></linearGradient>
        <linearGradient id="lineMask2" gradientUnits="userSpaceOnUse" x1="220" y1="215" x2="370" y2="315"><stop offset="0" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.233" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.353" stop-color="#A1A1AA" stop-opacity="0.35"/><stop offset="1" stop-color="#A1A1AA" stop-opacity="0.325"/></linearGradient>
        <linearGradient id="lineMask3" gradientUnits="userSpaceOnUse" x1="220" y1="215" x2="70" y2="325"><stop offset="0" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.226" stop-color="#A1A1AA" stop-opacity="0"/><stop offset="0.346" stop-color="#A1A1AA" stop-opacity="0.35"/><stop offset="1" stop-color="#A1A1AA" stop-opacity="0.325"/></linearGradient>
        <radialGradient id="bgRadial02" cx="0.5" cy="0.5" r="0.65"><stop offset="0" stop-color="#FEF3C7" stop-opacity="0.7"/><stop offset="0.55" stop-color="#FFEDD5" stop-opacity="0.25"/><stop offset="1" stop-color="#FFEDD5" stop-opacity="0"/></radialGradient>
        <filter id="badgeShadow02" x="-30%" y="-30%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dy="6"/><feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
        <filter id="hubGlow" x="-80%" y="-80%" width="260%" height="260%"><feGaussianBlur in="SourceAlpha" stdDeviation="14"/><feOffset dy="0"/><feColorMatrix values="0 0 0 0 0.94  0 0 0 0 0.27  0 0 0 0 0.27  0 0 0 0.7 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
      </defs>
      <rect x="0" y="0" width="440" height="460" fill="url(#bgRadial02)"/>
      <g transform="translate(220 215)" fill="none" stroke="#FCA5A5" stroke-dasharray="3 7" opacity="0.5">
        <circle r="85"/><circle r="125"/><circle r="165"/>
      </g>
      <g><line x1="220" y1="215" x2="129.7" y2="135.2" stroke="url(#lineMask0)" stroke-width="2.5" stroke-dasharray="4 8" stroke-linecap="round"><animate attributeName="stroke-dashoffset" from="0" to="-48" dur="2.2s" repeatCount="indefinite"/></line>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="0s" repeatCount="indefinite" path="M 220 215 L 129.7 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="0s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="0.733s" repeatCount="indefinite" path="M 220 215 L 129.7 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="0.733s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.466s" repeatCount="indefinite" path="M 220 215 L 129.7 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.466s" repeatCount="indefinite"/></circle></g>
      <g><line x1="220" y1="215" x2="310.3" y2="135.2" stroke="url(#lineMask1)" stroke-width="2.5" stroke-dasharray="4 8" stroke-linecap="round"><animate attributeName="stroke-dashoffset" from="0" to="-48" dur="2.2s" repeatCount="indefinite"/></line>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="0.4s" repeatCount="indefinite" path="M 220 215 L 310.3 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="0.4s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.133s" repeatCount="indefinite" path="M 220 215 L 310.3 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.133s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.866s" repeatCount="indefinite" path="M 220 215 L 310.3 135.2"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.866s" repeatCount="indefinite"/></circle></g>
      <g><line x1="220" y1="215" x2="328.8" y2="284.4" stroke="url(#lineMask2)" stroke-width="2.5" stroke-dasharray="4 8" stroke-linecap="round"><animate attributeName="stroke-dashoffset" from="0" to="-48" dur="2.2s" repeatCount="indefinite"/></line>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="0.8s" repeatCount="indefinite" path="M 220 215 L 328.8 284.4"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="0.8s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.533s" repeatCount="indefinite" path="M 220 215 L 328.8 284.4"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.533s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="2.266s" repeatCount="indefinite" path="M 220 215 L 328.8 284.4"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="2.266s" repeatCount="indefinite"/></circle></g>
      <g><line x1="220" y1="215" x2="111.3" y2="288.5" stroke="url(#lineMask3)" stroke-width="2.5" stroke-dasharray="4 8" stroke-linecap="round"><animate attributeName="stroke-dashoffset" from="0" to="-48" dur="2.2s" repeatCount="indefinite"/></line>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.2s" repeatCount="indefinite" path="M 220 215 L 111.3 288.5"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.2s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="1.933s" repeatCount="indefinite" path="M 220 215 L 111.3 288.5"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="1.933s" repeatCount="indefinite"/></circle>
        <circle r="4" fill="#EF4444"><animateMotion dur="2.2s" begin="2.666s" repeatCount="indefinite" path="M 220 215 L 111.3 288.5"/><animate attributeName="opacity" values="0;1" keyTimes="0;1" dur="2.2s" begin="2.666s" repeatCount="indefinite"/></circle></g>
      <g transform="translate(220 215)" fill="none" stroke="#A1A1AA" stroke-width="1.5">
        <circle r="38"><animate attributeName="r" values="38;170" dur="2.6s" repeatCount="indefinite"/><animate attributeName="opacity" values="0.275;0" dur="2.6s" repeatCount="indefinite"/></circle>
        <circle r="38"><animate attributeName="r" values="38;170" dur="2.6s" begin="0.87s" repeatCount="indefinite"/><animate attributeName="opacity" values="0.275;0" dur="2.6s" begin="0.87s" repeatCount="indefinite"/></circle>
        <circle r="38"><animate attributeName="r" values="38;170" dur="2.6s" begin="1.73s" repeatCount="indefinite"/><animate attributeName="opacity" values="0.275;0" dur="2.6s" begin="1.73s" repeatCount="indefinite"/></circle>
      </g>
      <g transform="translate(220 215)" filter="url(#hubGlow)">
        <circle r="42" fill="#fff" stroke="#E4E4E7" stroke-width="1.5"/>
        <g transform="translate(-30 -9) scale(0.186)">
          <path d="M264.936 66V2.00002H278.248V5.45601C282.472 2.38401 287.592 0.976013 293.096 0.976013C309.48 0.976013 321.384 11.984 321.384 28.24V66H307.176V29.136C307.176 21.584 300.776 15.056 293.096 15.056C285.672 15.056 279.272 19.024 279.016 28.496V66H264.936Z" fill="#DC2626"/>
          <path d="M254.505 2.12799V66H241.065V62.416C237.481 65.232 232.105 67.024 226.345 67.024C209.833 67.024 198.057 56.016 198.057 39.632V2.12799H212.138V38.736C212.138 46.416 218.665 52.816 226.217 52.816C233.641 52.816 240.297 48.848 240.297 39.504V2.12799H254.505Z" fill="#DC2626"/>
          <path d="M136.521 34C136.521 44.624 144.841 52.944 155.465 52.944C166.089 52.944 174.41 44.624 174.41 34C174.41 23.376 166.089 15.056 155.465 15.056C144.841 15.056 136.521 23.376 136.521 34ZM129.354 85.712L139.081 76.752C142.665 80.464 147.785 82.896 153.801 82.896C164.553 82.896 173.385 74.32 173.897 63.696V60.752C168.649 64.592 162.25 66.896 154.954 66.896C136.65 66.896 121.801 52.176 121.801 34C121.801 15.824 136.65 0.976013 154.954 0.976013C162.506 0.976013 169.161 3.40801 174.281 7.37601V2.00002H187.978V61.52C187.978 80.464 172.746 95.952 153.546 95.952C144.074 95.952 135.37 92.112 129.354 85.712Z" fill="#DC2626"/>
          <path d="M76.9355 66V2.00002H90.5035V5.71201C94.0875 2.89601 98.1835 1.23201 106.247 0.976013H112.648V15.312H106.76C97.6715 15.44 91.2715 19.536 91.0155 28.496V66H76.9355Z" fill="#292524"/>
          <path d="M0.560501 92.24V2.00002H14.2565V7.37601C19.5045 3.53601 26.0325 0.976013 33.7125 0.976013C51.8885 0.976013 66.7365 15.824 66.7365 34C66.7365 52.176 51.8885 67.024 33.7125 67.024C26.4165 67.024 19.8885 64.592 14.7685 60.752V92.24H0.560501ZM52.6565 34C52.6565 23.376 44.3365 15.056 33.7125 15.056C23.0885 15.056 14.7685 23.376 14.7685 34C14.7685 44.624 23.0885 52.944 33.7125 52.944C44.3365 52.944 52.6565 44.624 52.6565 34Z" fill="#292524"/>
        </g>
      </g>
      <g transform="translate(85 95)" filter="url(#badgeShadow02)"><animateTransform attributeName="transform" type="translate" values="85,95; 85,91; 85,95" dur="3.4s" repeatCount="indefinite"/>
        <circle r="44" fill="#E8F0FE"/>
        <text x="0" y="-2" font-size="14" font-weight="800" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-0.4"><tspan fill="#4285F4">G</tspan><tspan fill="#EA4335">o</tspan><tspan fill="#FBBC05">o</tspan><tspan fill="#4285F4">g</tspan><tspan fill="#34A853">l</tspan><tspan fill="#EA4335">e</tspan></text>
        <text x="0" y="14" font-size="9" font-weight="700" fill="#71717A" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.5">News</text>
      </g>
      <g transform="translate(355 95)" filter="url(#badgeShadow02)"><animateTransform attributeName="transform" type="translate" values="355,95; 355,99; 355,95" dur="3.7s" repeatCount="indefinite"/>
        <circle r="44" fill="#D5252D"/>
        <text x="0" y="-2" font-size="14" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-0.4">AP</text>
        <text x="0" y="14" font-size="9" font-weight="700" fill="#FEE2E2" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.5">News</text>
      </g>
      <g transform="translate(370 315)" filter="url(#badgeShadow02)"><animateTransform attributeName="transform" type="translate" values="370,315; 370,311; 370,315" dur="4s" repeatCount="indefinite"/>
        <circle r="44" fill="#004f88"/>
        <text x="0" y="5" font-size="14" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-0.4">barchart</text>
      </g>
      <g transform="translate(70 325)" filter="url(#badgeShadow02)"><animateTransform attributeName="transform" type="translate" values="70,325; 70,329; 70,325" dur="4.3s" repeatCount="indefinite"/>
        <circle r="44" fill="#6001D2"/>
        <text x="0" y="-2" font-size="14" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-0.4">Yahoo!</text>
        <text x="0" y="14" font-size="9" font-weight="700" fill="#DDD6FE" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.5">Finance</text>
      </g>
      <g transform="translate(220 422)" filter="url(#badgeShadow02)">
        <rect x="-106" y="-22" width="212" height="44" rx="22" fill="#18181B"/>
        <g transform="translate(-86 0)"><circle r="4" fill="#22C55E"/><circle r="8" fill="#22C55E" opacity="0.35"><animate attributeName="r" values="8;14;8" dur="1.6s" repeatCount="indefinite"/><animate attributeName="opacity" values="0.5;0;0.5" dur="1.6s" repeatCount="indefinite"/></circle></g>
        <text x="16" y="5" font-size="13" font-weight="700" fill="#fff" font-family="Inter, sans-serif" text-anchor="middle">500+ outlets reached</text>
      </g>
    </svg>
  `,
  step3: `
    <svg viewBox="0 0 440 460" preserveAspectRatio="xMidYMid meet" style="position: absolute; inset: 0; width: 100%; height: 100%; display: block;" xmlns="http://www.w3.org/2000/svg">
      <defs>
        <linearGradient id="chartFill" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#14B8A6" stop-opacity="0.32"/><stop offset="1" stop-color="#10B981" stop-opacity="0.42"/></linearGradient>
        <clipPath id="svgBounds03"><rect x="0" y="0" width="440" height="460"/></clipPath>
        <linearGradient id="chartLine03" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="#14B8A6"/><stop offset="1" stop-color="#10B981"/></linearGradient>
        <linearGradient id="reachGrad" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#6366F1"/><stop offset="1" stop-color="#4338CA"/></linearGradient>
        <radialGradient id="bgRadial03" cx="0.3" cy="0.3" r="0.9"><stop offset="0" stop-color="#FEF3C7" stop-opacity="0.6"/><stop offset="1" stop-color="#FEF3C7" stop-opacity="0"/></radialGradient>
        <radialGradient id="bgRadial03b" cx="0.85" cy="0.85" r="0.6"><stop offset="0" stop-color="#FEE2E2" stop-opacity="0.75"/><stop offset="1" stop-color="#FEE2E2" stop-opacity="0"/></radialGradient>
        <pattern id="gridPat03" x="0" y="0" width="24" height="24" patternUnits="userSpaceOnUse"><path d="M 24 0 L 0 0 0 24" fill="none" stroke="#EFEFF3" stroke-width="1"/></pattern>
        <filter id="dashShadow" x="-20%" y="-20%" width="140%" height="140%"><feGaussianBlur in="SourceAlpha" stdDeviation="18"/><feOffset dy="18"/><feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
        <filter id="chipShadow03" x="-30%" y="-30%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dy="6"/><feColorMatrix values="0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.18 0"/><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge></filter>
      </defs>
      <rect x="0" y="0" width="440" height="460" fill="url(#gridPat03)"/>
      <rect x="0" y="0" width="440" height="460" fill="url(#bgRadial03)"/>
      <rect x="0" y="0" width="440" height="460" fill="url(#bgRadial03b)"/>
      <g opacity="0.16" clip-path="url(#svgBounds03)">
        <rect x="-40" y="380" width="600" height="14" rx="7" fill="#EF4444" transform="rotate(-8 220 387)"/>
        <rect x="-40" y="420" width="600" height="10" rx="5" fill="#F59E0B" transform="rotate(-8 220 425)"/>
      </g>
      <g><g transform="translate(50 80)"><path d="M 0 -8 L 2 -2 L 8 0 L 2 2 L 0 8 L -2 2 L -8 0 L -2 -2 Z" fill="#EF4444"><animate attributeName="opacity" values="0.3;1;0.3" dur="2s" repeatCount="indefinite"/></path></g>
        <g transform="translate(400 80)"><path d="M 0 -10 L 2.5 -2.5 L 10 0 L 2.5 2.5 L 0 10 L -2.5 2.5 L -10 0 L -2.5 -2.5 Z" fill="#F59E0B"><animate attributeName="opacity" values="1;0.3;1" dur="2.4s" repeatCount="indefinite"/></path></g></g>
      <g transform="translate(220 230)" filter="url(#dashShadow)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-6; 0,0" dur="4s" repeatCount="indefinite" additive="sum"/>
        <rect x="-172" y="-128" width="344" height="256" rx="24" fill="#fff"/>
        <text x="-156" y="-94" font-size="11" font-weight="800" fill="#71717A" font-family="Inter, sans-serif" letter-spacing="1.5">YOUR CLIP REPORT</text>
        <g transform="translate(146 -98)"><circle r="6" fill="#EF4444"/><circle r="10" fill="#EF4444" opacity="0.35"><animate attributeName="r" values="10;16;10" dur="1.8s" repeatCount="indefinite"/><animate attributeName="opacity" values="0.5;0;0.5" dur="1.8s" repeatCount="indefinite"/></circle></g>
        <text x="-156" y="-44" font-size="52" font-weight="800" fill="#18181B" font-family="Inter, sans-serif" letter-spacing="-2.4">47</text>
        <g transform="translate(-82 -60)"><rect x="-4" y="-13" width="72" height="26" rx="13" fill="#FEF3C7"/><text x="32" y="5" font-size="12" font-weight="700" fill="#D97706" text-anchor="middle" font-family="Inter, sans-serif">placements</text></g>
        <text x="-156" y="-22" font-size="11" font-weight="500" fill="#71717A" font-family="Inter, sans-serif">outlets that ran your story</text>
        <g transform="translate(0 58)">
          <line x1="-152" y1="-34" x2="152" y2="-34" stroke="#F4F4F5" stroke-width="1"/>
          <line x1="-152" y1="-10" x2="152" y2="-10" stroke="#F4F4F5" stroke-width="1"/>
          <line x1="-152" y1="14" x2="152" y2="14" stroke="#F4F4F5" stroke-width="1"/>
          <path d="M -152 40 C -110 26 -80 30 -56 14 C -32 0 -8 4 20 -14 C 46 -28 80 -38 114 -48 C 126 -52 138 -54 152 -56 L 152 40 L -152 40 Z" fill="url(#chartFill)" opacity="0">
            <animate attributeName="opacity" values="0;1" dur="1.2s" begin="0.6s" fill="freeze"/>
          </path>
          <path d="M -152 40 C -110 26 -80 30 -56 14 C -32 0 -8 4 20 -14 C 46 -28 80 -38 114 -48 C 126 -52 138 -54 152 -56" fill="none" stroke="url(#chartLine03)" stroke-width="3.8" stroke-linecap="round" pathLength="100" stroke-dasharray="100" stroke-dashoffset="100">
            <animate attributeName="stroke-dashoffset" from="100" to="0" dur="1.6s" fill="freeze"/>
          </path>
          <circle cx="152" cy="-56" r="8" fill="#fff" stroke="#10B981" stroke-width="3" opacity="0">
            <animate attributeName="opacity" values="0;1" dur="0.3s" begin="1.5s" fill="freeze"/>
          </circle>
          <circle cx="152" cy="-56" r="12" fill="#10B981" opacity="0">
            <animate attributeName="r" values="8;18;8" dur="2s" begin="1.6s" repeatCount="indefinite"/>
            <animate attributeName="opacity" values="0.5;0;0.5" dur="2s" begin="1.6s" repeatCount="indefinite"/>
          </circle>
          <g transform="translate(152 -90)" opacity="0">
            <animate attributeName="opacity" values="0;1" dur="0.4s" begin="1.7s" fill="freeze"/>
            <rect x="-42" y="-16" width="84" height="28" rx="8" fill="#18181B"/>
            <path d="M -5 12 L 0 18 L 5 12 Z" fill="#18181B"/>
            <text x="0" y="3" font-size="11" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif">AP News ✓</text>
          </g>
        </g>
      </g>
      <g transform="translate(66 98)" filter="url(#chipShadow03)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-6; 0,0" dur="3.2s" repeatCount="indefinite" additive="sum"/>
        <rect x="-58" y="-24" width="116" height="48" rx="14" fill="#fff"/>
        <circle cx="-40" cy="0" r="12" fill="#EF4444"/>
        <text x="-40" y="4" font-size="9" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif">AP</text>
        <text x="-22" y="-3" font-size="11" font-weight="800" fill="#18181B" font-family="Inter, sans-serif">Picked up</text>
        <text x="-22" y="12" font-size="10" font-weight="500" fill="#71717A" font-family="Inter, sans-serif">AP News</text>
      </g>
      <g transform="translate(360 370)" filter="url(#chipShadow03)">
        <animateTransform attributeName="transform" type="translate" values="0,0; 0,-6; 0,0" dur="3.6s" begin="0.8s" repeatCount="indefinite" additive="sum"/>
        <rect x="-58" y="-28" width="116" height="56" rx="14" fill="url(#reachGrad)"/>
        <text x="-42" y="-6" font-size="9" font-weight="800" fill="#C7D2FE" font-family="Inter, sans-serif" letter-spacing="1.2">REPORT</text>
        <text x="-42" y="18" font-size="14" font-weight="800" fill="#fff" font-family="Inter, sans-serif" letter-spacing="-0.4">Delivered</text>
        <g transform="translate(32 0)"><circle r="20" fill="#fff" opacity="0.15"/><path d="M -7 2 L -2 7 L 7 -5" stroke="#fff" stroke-width="2.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/></g>
      </g>
    </svg>
  `,
};

  const howSteps = [
  { n: '1', title: 'Choose a plan and order', time: 'From $49',
    body: "Pick Basic, Plus, or Pro based on the outlets you need. Email us your release — or we'll write it for free. Get instant answers on pricing, plans, or anything else from Emma, our AI.",
    illustration: 'step1' },
  { n: '2', title: 'We distribute to top outlets', time: '24–48 hrs',
    body: 'Syndicated to Google News, Yahoo, Bing, FOX, Benzinga, Barchart, and hundreds more. Add direct outreach to 250,000+ verified journalists at $75 per audience category.',
    illustration: 'step2' },
  { n: '3', title: 'Receive your branded clip report', time: 'Every campaign',
    body: 'We compile every pickup into a polished clip report and email it straight to you. Share your live PR links on your website, investors, or LinkedIn to show real third-party coverage.',
    illustration: 'step3' },
];

  const whyCards = [
  {
    tag: 'SPEED',
    stat: '36 hrs',
    statLabel: 'avg. go-live',
    title: '24–48 hour turnaround',
    body: 'Submit today, live on Google News tomorrow. No retainers, no waiting weeks.',
    vignette: `
      <svg viewBox="0 0 280 140" style="width: 100%; height: 140px; display: block;">
        <defs>
          <linearGradient id="vpBoltBg" x1="0" y1="0" x2="1" y2="1">
            <stop offset="0" stop-color="#E0E7FF"/>
            <stop offset="1" stop-color="#C7D2FE"/>
          </linearGradient>
        </defs>
        <line x1="28" y1="92" x2="252" y2="92" stroke="#E4E4E7" stroke-width="2" stroke-dasharray="3 4"/>
        <g>
          <circle cx="48" cy="92" r="7" fill="#6366F1"/>
          <text x="48" y="118" font-size="10" font-weight="700" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.8">TODAY</text>
          <rect x="22" y="40" width="52" height="32" rx="8" fill="#fff" stroke="#E4E4E7"/>
          <text x="48" y="60" font-size="11" font-weight="700" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif">Submit</text>
        </g>
        <path d="M 86 56 Q 140 32 194 56" fill="none" stroke="#6366F1" stroke-width="2" stroke-dasharray="140" stroke-dashoffset="140" stroke-linecap="round">
          <animate attributeName="stroke-dashoffset" from="140" to="0" dur="1.6s" fill="freeze"/>
        </path>
        <g>
          <circle cx="232" cy="92" r="9" fill="#fff" stroke="#6366F1" stroke-width="3"/>
          <circle cx="232" cy="92" r="3" fill="#6366F1"/>
          <text x="232" y="118" font-size="10" font-weight="700" fill="#6366F1" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.8">TOMORROW</text>
          <rect x="200" y="40" width="66" height="32" rx="8" fill="url(#vpBoltBg)" stroke="#A5B4FC"/>
          <g transform="translate(210 48)">
            <path d="M 0 10 L 4 10 L 3 18 L 10 8 L 6 8 L 7 0 Z" fill="#4F46E5"/>
          </g>
          <text x="244" y="60" font-size="11" font-weight="700" fill="#3730A3" text-anchor="middle" font-family="Inter, sans-serif">LIVE</text>
        </g>
        <circle cx="140" cy="92" r="4" fill="#6366F1" opacity="0.5">
          <animate attributeName="opacity" values="0.2;0.9;0.2" dur="1.8s" repeatCount="indefinite"/>
        </circle>
      </svg>
    `,
  },
  {
    tag: 'PROMISE',
    stat: '100%',
    statLabel: 'credit-back',
    title: 'Guaranteed placements',
    body: 'Syndicated across our outlet network. Credit back if nothing picks up — written into your terms.',
    vignette: `
      <svg viewBox="0 0 280 140" style="width: 100%; height: 140px; display: block;">
        <g transform="translate(30 12)">
          <rect width="160" height="116" rx="10" fill="#fff" stroke="#E4E4E7" stroke-width="1"/>
          <text x="14" y="22" font-size="8" font-weight="800" fill="#6366F1" font-family="Inter, sans-serif" letter-spacing="1.2">CONTRACT</text>
          <line x1="14" y1="30" x2="146" y2="30" stroke="#E4E4E7"/>
          <g transform="translate(14 44)">
            <circle cx="6" cy="0" r="6" fill="#22C55E"/>
            <path d="M 3 0 L 5.5 2.5 L 9 -2" stroke="#fff" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
            <rect x="18" y="-4" width="118" height="4" rx="2" fill="#E4E4E7"/>
            <rect x="18" y="4" width="74" height="3" rx="1.5" fill="#E4E4E7" opacity="0.6"/>
          </g>
          <g transform="translate(14 66)">
            <circle cx="6" cy="0" r="6" fill="#22C55E"/>
            <path d="M 3 0 L 5.5 2.5 L 9 -2" stroke="#fff" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
            <rect x="18" y="-4" width="96" height="4" rx="2" fill="#E4E4E7"/>
            <rect x="18" y="4" width="104" height="3" rx="1.5" fill="#E4E4E7" opacity="0.6"/>
          </g>
          <g transform="translate(14 88)">
            <circle cx="6" cy="0" r="6" fill="#22C55E"/>
            <path d="M 3 0 L 5.5 2.5 L 9 -2" stroke="#fff" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
            <rect x="18" y="-4" width="110" height="4" rx="2" fill="#E4E4E7"/>
            <rect x="18" y="4" width="62" height="3" rx="1.5" fill="#E4E4E7" opacity="0.6"/>
          </g>
        </g>
        <g transform="translate(216 70)">
          <g>
            <animateTransform attributeName="transform" type="scale" values="1;1.05;1" dur="2.4s" repeatCount="indefinite"/>
            <circle r="46" fill="#6366F1"/>
            <circle r="38" fill="none" stroke="#fff" stroke-width="1.5" stroke-dasharray="2 3" opacity="0.7"/>
            <text y="-5" font-size="8" font-weight="900" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.5">GUARANTEED</text>
            <text y="6" font-size="8" font-weight="900" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.5">PLACEMENT</text>
            <text y="20" font-size="5.5" font-weight="700" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.6" opacity="0.85">OR CREDIT BACK</text>
          </g>
        </g>
      </svg>
    `,
  },
  {
    tag: 'DISTRIBUTION',
    stat: '250K+',
    statLabel: 'journalists',
    title: 'Targeted outreach',
    body: 'Verified contacts across 40+ industries. Add direct pitches at $75 per audience.',
    vignette: `
      <svg viewBox="0 0 280 140" style="width: 100%; height: 140px; display: block;">
        ${[
          { x: 40,  y: 36, c: '#F59E0B', i: 'EM' },
          { x: 90,  y: 24, c: '#6366F1', i: 'JP' },
          { x: 140, y: 36, c: '#6366F1', i: 'SK' },
          { x: 190, y: 24, c: '#22C55E', i: 'DR' },
          { x: 240, y: 36, c: '#F43F5E', i: 'MC' },
          { x: 40,  y: 108, c: '#6366F1', i: 'LO' },
          { x: 90,  y: 120, c: '#F43F5E', i: 'KT' },
          { x: 190, y: 120, c: '#22C55E', i: 'BA' },
          { x: 240, y: 108, c: '#F59E0B', i: 'RC' },
        ].map((a, i) => `
          <line x1="140" y1="72" x2="${a.x}" y2="${a.y}" stroke="#6366F1" stroke-width="1" stroke-dasharray="2 3" opacity="0.5">
            <animate attributeName="opacity" values="0.2;0.7;0.2" dur="${(2 + i * 0.1).toFixed(1)}s" repeatCount="indefinite"/>
          </line>
        `).join('')}
        <g transform="translate(140 72)">
          <circle r="22" fill="#6366F1" opacity="0.15">
            <animate attributeName="r" values="18;30;18" dur="2.4s" repeatCount="indefinite"/>
            <animate attributeName="opacity" values="0.05;0.3;0.05" dur="2.4s" repeatCount="indefinite"/>
          </circle>
          <circle r="16" fill="#6366F1"/>
          <text y="4" font-size="9" font-weight="900" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="0.6">250K+</text>
        </g>
        ${[
          { x: 40,  y: 36, c: '#F59E0B', i: 'EM' },
          { x: 90,  y: 24, c: '#6366F1', i: 'JP' },
          { x: 140, y: 36, c: '#6366F1', i: 'SK' },
          { x: 190, y: 24, c: '#22C55E', i: 'DR' },
          { x: 240, y: 36, c: '#F43F5E', i: 'MC' },
          { x: 40,  y: 108, c: '#6366F1', i: 'LO' },
          { x: 90,  y: 120, c: '#F43F5E', i: 'KT' },
          { x: 190, y: 120, c: '#22C55E', i: 'BA' },
          { x: 240, y: 108, c: '#F59E0B', i: 'RC' },
        ].map((a) => `
          <g transform="translate(${a.x} ${a.y})">
            <circle r="13" fill="#fff" stroke="#E4E4E7"/>
            <circle r="11" fill="${a.c}"/>
            <text y="3.5" font-size="8" font-weight="800" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif">${a.i}</text>
          </g>
        `).join('')}
      </svg>
    `,
  },
  {
    tag: 'PROOF',
    stat: '1 PDF',
    statLabel: 'per campaign',
    title: 'Branded clip report',
    body: 'Every placement in one branded report. Share with investors, LPs, your team.',
    vignette: `
      <svg viewBox="0 0 280 140" style="width: 100%; height: 140px; display: block;">
        <g transform="translate(112 20) rotate(6 50 50)">
          <rect width="100" height="120" rx="6" fill="#FAFAFA" stroke="#E4E4E7"/>
        </g>
        <g transform="translate(86 14)">
          <rect width="108" height="120" rx="6" fill="#fff" stroke="#E4E4E7"/>
          <rect width="108" height="28" rx="6" fill="#6366F1"/>
          <rect y="22" width="108" height="6" fill="#6366F1"/>
          <text x="10" y="17" font-size="7" font-weight="900" fill="#fff" font-family="Inter, sans-serif" letter-spacing="1.5">CLIP REPORT</text>
          <text x="10" y="25" font-size="5.5" font-weight="700" fill="#C7D2FE" font-family="Inter, sans-serif" letter-spacing="0.8">APR 2026 · LINEA HEALTH</text>
          <text x="54" y="60" font-size="30" font-weight="900" fill="#18181B" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="-1.6">147</text>
          <text x="54" y="72" font-size="6" font-weight="700" fill="#A1A1AA" text-anchor="middle" font-family="Inter, sans-serif" letter-spacing="1">PICKUPS</text>
          <g transform="translate(12 84)">
            ${[14, 22, 18, 28, 20, 32, 26].map((h, i) => `
              <rect x="${i * 12}" y="${32 - h}" width="7" height="${h}" rx="1.5" fill="${i === 5 ? '#6366F1' : '#E4E4E7'}">
                <animate attributeName="height" from="0" to="${h}" dur="0.9s" begin="${(i * 0.08).toFixed(2)}s" fill="freeze"/>
                <animate attributeName="y" from="32" to="${32 - h}" dur="0.9s" begin="${(i * 0.08).toFixed(2)}s" fill="freeze"/>
              </rect>
            `).join('')}
          </g>
        </g>
        <g transform="translate(212 96)">
          <rect x="-6" y="-10" width="58" height="20" rx="10" fill="#18181B"/>
          <text x="23" y="3.5" font-size="8" font-weight="700" fill="#fff" text-anchor="middle" font-family="Inter, sans-serif">↗ Share</text>
        </g>
      </svg>
    `,
  },
];

  const releases = [
  {
    key: 'ap',
    source: 'AP News',
    logo: 'apNews',
    teaser: 'Smart Door Lock SLIM for Pella Doors',
    url: 'apnews.com/press-release/getnews/smart-door-lock-slim',
    fullUrl: 'https://apnews.com/press-release/getnews/smart-door-lock-slim-a-proven-access-solution-for-pella-multipoint-doors-b65e25e99025cb008541d2ed16474910',
    image: 'images/v4/release-ap.v2.jpg',
    section: 'PRESS RELEASE',
    headline: 'Smart Door Lock SLIM: A Proven Access Solution for Pella Multipoint Doors',
    lede: 'LOS ANGELES, Apr 18, 2026 — Smart Door Lock SLIM today announced expanded compatibility with Pella multipoint doors, offering homeowners a proven, retrofit-ready smart access solution that preserves the integrity of premium door hardware...',
    body: 'The SLIM platform has been tested against rigorous security benchmarks and is now deployed in thousands of residences across North America...',
    also: 'Also on Google News, FOX, Barchart +47 others',
  },
  {
    key: 'usa',
    source: 'USA Today',
    logo: 'usaToday',
    teaser: 'DapperTails Franchise Scale Acquisition',
    url: 'usatoday.com/press-release/story/29874/dappertails',
    fullUrl: 'https://www.usatoday.com/press-release/story/29874/dappertails-redefines-franchise-scale-with-landmark-18-territory-long-island-acquisition-by-a-powerhouse-growth-operator/',
    image: 'images/v4/release-usa.v2.jpg',
    section: 'PRESS RELEASE',
    headline: 'DapperTails Redefines Franchise Scale with Landmark 18-Territory Long Island Acquisition',
    lede: 'LONG ISLAND, NY, Apr 16, 2026 — DapperTails today announced a landmark 18-territory acquisition across Long Island, completed by a powerhouse growth operator and setting a new benchmark for franchise scale in the pet-services category...',
    body: 'The transaction consolidates operations under a single multi-unit operator with a proven track record of building regional density...',
    also: 'Also on Google News, Yahoo Finance, Benzinga +42 others',
  },
  {
    key: 'barchart',
    source: 'Barchart',
    logo: 'barchart',
    teaser: 'Smart Access Expansion Announcement',
    url: 'barchart.com/story/news/1404487/smart-door-lock-slim',
    fullUrl: 'https://www.barchart.com/story/news/1404487/smart-door-lock-slim-expands-smart-access-options-for-m',
    image: 'images/v4/release-barchart.v2.jpg',
    section: 'MARKETS · PRESS RELEASES',
    headline: 'Smart Door Lock SLIM Expands Smart Access Options for Multipoint Doors',
    lede: 'CHICAGO, Apr 14, 2026 — Smart Door Lock SLIM announced an expansion of its smart access platform compatibility for multipoint door systems, broadening deployment options across residential and light-commercial categories...',
    body: 'The announcement is expected to unlock additional channel relationships with window-and-door manufacturers throughout 2026...',
    also: 'Also on Google News, MarketWatch, Street Insider +38 others',
  },
  {
    key: 'si',
    source: 'Street Insider',
    logo: 'streetInsider',
    teaser: 'Steven Page Summer Camp Announcement',
    url: 'streetinsider.com/GetNews/Music+Masters+Collective',
    fullUrl: 'https://www.streetinsider.com/GetNews/Music+Masters+Collective+Presents+Steven+Page+Summer+Camp+July+2026+at+Full+Moon+Resort/26272128.html',
    image: 'images/v4/release-si.v2.jpg',
    section: 'PRESS RELEASES',
    headline: 'Music Masters Collective Presents Steven Page Summer Camp',
    lede: 'TORONTO, Apr 11, 2026 — Music Masters Collective today announced its flagship Steven Page Summer Camp, an immersive songwriting and performance intensive led by the acclaimed recording artist and scheduled for this July...',
    body: 'The program brings together emerging musicians for a week of workshops, studio sessions, and live performance coaching under the guidance of the artist and his creative team...',
    also: 'Also on Google News, AP News, Barchart +51 others',
  },
];

  const outletLogos = {
  apNews: `
    <div style="display: flex; align-items: center; gap: 8px; font-family: Inter, 'Helvetica Neue', sans-serif;">
      <div style="display: flex; flex-direction: column; align-items: stretch; line-height: 1;">
        <div style="font-weight: 900; font-size: 18px; color: currentColor; letter-spacing: -1px;">AP</div>
        <div style="height: 2.5px; background: #D6231E; margin-top: 2.5px; width: 100%;"></div>
      </div>
      <div style="font-weight: 400; font-size: 15px; color: currentColor; letter-spacing: -0.3px;">News</div>
    </div>
  `,
  usaToday: `
    <div style="display: flex; align-items: center; gap: 8px; font-family: 'Helvetica Neue', Arial, sans-serif;">
      <div style="width: 16px; height: 16px; border-radius: 8px; background: #009BDF;"></div>
      <div style="font-weight: 900; font-size: 13px; color: currentColor; letter-spacing: -0.3px; text-transform: uppercase;">USA TODAY</div>
    </div>
  `,
  barchart: `<div style="font-family: Inter, sans-serif; font-weight: 700; font-size: 16px; color: currentColor; letter-spacing: -0.6px;">barchart</div>`,
  streetInsider: `
    <div style="font-family: 'Times New Roman', Georgia, serif; line-height: 1; display: flex; align-items: baseline; gap: 4px;">
      <div style="font-weight: 700; font-size: 16px; color: currentColor; letter-spacing: -0.4px;">Street</div>
      <div style="font-weight: 700; font-size: 16px; color: #1e5fa8; letter-spacing: -0.4px; font-style: italic;">Insider</div>
    </div>
  `,
};

  return {
    ...d2Layout(),
    videoLoaded: false,
    activeRelease: 0,
    releaseExpanded: false,
    releaseHovered: false,
    hoveredItem: null,
    howHovered: null,
    howPinned: null,
    releases,
    outletLogos,
    howIllustrations,
    howSteps,
    whyCards,

    get howActive() {
      return this.howPinned !== null ? this.howPinned : this.howHovered;
    },

    get currentRelease() {
      return this.releases[this.activeRelease];
    },

    onEsc(e) {
      if (e.key === 'Escape') this.releaseExpanded = false;
    },

    init() {
      window.addEventListener('keydown', this.onEsc.bind(this));
    },

    destroy() {
      window.removeEventListener('keydown', this.onEsc.bind(this));
    },
  };
}

</script>
</body>
</html>
