        <?php
        /* ═══════════════════════════════════════════════════════
           PAGE META  —  edit these values for each page
        ═══════════════════════════════════════════════════════ */
        $page_title       = "Buy Twitter / X Impressions — Real, Instant & Safe | DiscordBooster (2026)";
        $meta_description = "Buy real Twitter / X impressions from the most trusted engagement service since 2019. Instant delivery, 30-day refill guarantee. No password required. Starts at \$3. Trusted by 120,000+ creators and brands.";
        $meta_keywords    = "buy twitter impressions, buy x impressions, buy twitter x impressions, real twitter impressions, real x impressions, buy twitter impressions instant, buy x impressions instant, cheap twitter impressions, cheap x impressions, buy twitter impressions safe, boost twitter impressions, boost x impressions, twitter impressions service 2026, x impressions service 2026, increase twitter impressions, increase x impressions, buy tweet impressions, buy x post views, twitter views, x view count";
        $canonical_url    = "https://discordbooster.com/buy-twitter-impressions";
        $og_title         = "Buy Twitter / X Impressions — Real, Instant & Safe | DiscordBooster";
        $og_description   = "Real Twitter / X impressions from \$3. Instant delivery, 30-day refill, no password needed. 120,000+ happy customers since 2019.";
        $og_image         = "https://discordbooster.com/og-twitter-impressions.jpg";
        $active_platform  = "twitter";

        $schema_json = <<<'JSON'
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://discordbooster.com/buy-twitter-impressions#webpage",
      "url": "https://discordbooster.com/buy-twitter-impressions",
      "name": "Buy Twitter / X Impressions — Real, Instant & Safe | DiscordBooster (2026)",
      "description": "Real Twitter / X impressions with instant delivery and 30-day refill guarantee. No password required. Boost your tweet's visibility and reach from $3.",
      "inLanguage": "en-US",
      "dateModified": "2026-05-25",
      "breadcrumb": {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "Home",
            "item": "https://discordbooster.com"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "Twitter / X",
            "item": "https://discordbooster.com/twitter"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Buy Twitter Impressions",
            "item": "https://discordbooster.com/buy-twitter-impressions"
          }
        ]
      }
    },
    {
      "@type": "Organization",
      "@id": "https://discordbooster.com#org",
      "name": "DiscordBooster",
      "url": "https://discordbooster.com",
      "foundingDate": "2019",
      "description": "Leading multi-platform social media growth service trusted by 120,000+ customers worldwide."
    },
    {
      "@type": "Product",
      "name": "Twitter / X Impressions",
      "description": "Real Twitter / X impressions delivered instantly to your tweets. Boost your visibility, improve your tweet analytics, and demonstrate reach to brand partners and sponsors. Safe, no password required.",
      "brand": {
        "@type": "Brand",
        "name": "DiscordBooster"
      },
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.9",
        "reviewCount": "4812",
        "bestRating": "5",
        "worstRating": "1"
      },
      "offers": [
        {
          "@type": "Offer",
          "name": "1,000 Twitter Impressions",
          "price": "3.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "5,000 Twitter Impressions",
          "price": "7.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "10,000 Twitter Impressions",
          "price": "12.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "25,000 Twitter Impressions",
          "price": "24.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "50,000 Twitter Impressions",
          "price": "42.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "100,000 Twitter Impressions",
          "price": "75.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "250,000 Twitter Impressions",
          "price": "165.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        },
        {
          "@type": "Offer",
          "name": "500,000 Twitter Impressions",
          "price": "299.00",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://discordbooster.com/buy-twitter-impressions"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is it safe to buy Twitter / X impressions?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. DiscordBooster only requires your public tweet URL — never your password. Impressions are delivered gradually with natural pacing to avoid triggering X's anomaly detection. We've served 120,000+ customers since 2019 with zero account suspensions from our impressions service."
          }
        },
        {
          "@type": "Question",
          "name": "What are Twitter / X impressions?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Impressions are the total number of times your tweet has been seen — every time it appears in a timeline, search result, or notification feed counts as one impression. It's X's core measure of content visibility and reach."
          }
        },
        {
          "@type": "Question",
          "name": "How fast will I get my Twitter impressions?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Most orders begin delivery within 5–15 minutes of payment. Smaller packages complete within a few hours; larger packages are spread over 24–48 hours to maintain a natural-looking impression growth curve in your analytics."
          }
        },
        {
          "@type": "Question",
          "name": "Do I need to give you my Twitter password?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Never. We only need the public URL of your tweet. Your password and login credentials are never requested or stored."
          }
        },
        {
          "@type": "Question",
          "name": "Will bought impressions show up in my Twitter Analytics?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Impressions delivered through our service register in your Twitter Analytics dashboard exactly as organic impressions do — giving you real numbers you can share with brand partners, sponsors, and clients."
          }
        },
        {
          "@type": "Question",
          "name": "Can I buy impressions for multiple tweets?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Each order applies to a single tweet URL. For multiple tweets or a campaign, place separate orders or contact our support team for a bulk campaign package with discounted rates."
          }
        },
        {
          "@type": "Question",
          "name": "How are impressions different from reach or views?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Impressions count every instance your tweet is displayed — so one user seeing your tweet three times counts as three impressions. Reach counts unique viewers only. For brand partnership metrics and rate cards, impressions are the industry-standard metric."
          }
        },
        {
          "@type": "Question",
          "name": "What payment methods do you accept?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "We accept PayPal, Visa, Mastercard, American Express, and major cryptocurrencies including Bitcoin and Ethereum. All transactions are SSL-encrypted and PCI-compliant."
          }
        }
      ]
    },
    {
      "@type": "ItemList",
      "name": "Twitter Impressions Packages",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "1,000 Twitter Impressions — $3.00"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "5,000 Twitter Impressions — $7.00"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "10,000 Twitter Impressions — $12.00"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "25,000 Twitter Impressions — $24.00"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "50,000 Twitter Impressions — $42.00"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "100,000 Twitter Impressions — $75.00"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "250,000 Twitter Impressions — $165.00"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "name": "500,000 Twitter Impressions — $299.00"
        }
      ]
    }
  ]
}
JSON;

        include 'header.php';
        ?>

<!-- ══ PAGE-SPECIFIC STYLES ══════════════════════════════
     Review: remove any :root / nav / footer / body / font
     rules already provided by header.php / footer.php
══════════════════════════════════════════════════════ -->
<style>
    :root {
      --cream: #faf8f4;
      --bg: #f5f1ea;
      --surface: #ffffff;
      --card: #fffefb;
      --border: #e8e2d8;
      --border-dark: #d4cdc0;
      --ink: #1a1612;
      --ink-2: #3d3830;
      --muted: #8c8278;
      --accent: #1d9bf0;
      --accent-soft: #e8f4fd;
      --accent-border: #bde0f8;
      --accent-dark: #1a8cd8;
      --teal: #69c9d0;
      --teal-soft: #edfbfc;
      --teal-border: #b8ecf0;
      --gold: #c9920a;
      --gold-soft: #fdf6e3;
      --green: #1a7a4a;
      --green-soft: #eaf6ef;
      --shadow-sm: 0 1px 3px rgba(26,22,18,0.08);
      --shadow-md: 0 4px 16px rgba(26,22,18,0.1);
      --shadow-lg: 0 12px 40px rgba(26,22,18,0.13);
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body { background: var(--cream); color: var(--ink-2); font-family: 'Outfit', sans-serif; font-size: 16px; line-height: 1.7; overflow-x: hidden; }
    h1, h2, h3, h4 { font-family: 'Sora', sans-serif; color: var(--ink); line-height: 1.15; }
    a { color: inherit; text-decoration: none; }
    strong { color: var(--ink); font-weight: 600; }

    /* ── NAV ── */
    nav { position: fixed; top: 0; left: 0; right: 0; z-index: 200; display: flex; align-items: center; justify-content: space-between; padding: 0 5%; height: 66px; background: rgba(250,248,244,0.94); backdrop-filter: blur(16px); border-bottom: 1px solid var(--border); }
    .logo { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--ink); letter-spacing: -0.5px; }
    .logo em { color: var(--accent); font-style: italic; }
    .nav-links { display: flex; gap: 2rem; list-style: none; font-size: 0.875rem; font-weight: 500; color: var(--muted); align-items: center; }
    .nav-links a:hover { color: var(--ink); }
    .nav-cta { background: var(--ink); color: #fff; padding: 0.5rem 1.2rem; border-radius: 6px; font-size: 0.82rem; font-weight: 600; transition: background 0.18s; }
    .nav-cta:hover { background: var(--accent); }
    .dropdown { position: relative; cursor: pointer; }
    .dropdown-content { display: none; position: absolute; top: calc(100% + 8px); left: 0; background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 0.8rem; min-width: 200px; box-shadow: var(--shadow-lg); z-index: 300; grid-template-columns: 1fr; gap: 0.25rem; }
    .dropdown:hover .dropdown-content { display: grid; }
    .dropdown-content a { padding: 0.45rem 0.8rem; border-radius: 6px; transition: background 0.15s; font-size: 0.82rem; color: var(--ink-2); }
    .dropdown-content a:hover { background: var(--accent-soft); color: var(--accent); }
    .nested-dropdown { position: relative; }
    .nested-content { display: none; position: absolute; left: 100%; top: 0; background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 0.7rem; min-width: 180px; box-shadow: var(--shadow-lg); grid-template-columns: 1fr; gap: 0.2rem; margin-left: 6px; }
    .nested-dropdown:hover .nested-content { display: grid; }
    .nested-dropdown > a { display: flex; justify-content: space-between; align-items: center; }
    .nested-dropdown > a::after { content: '›'; font-size: 1rem; margin-left: 0.5rem; opacity: 0.4; }

    /* ── BREADCRUMB ── */
    .breadcrumb { padding: 82px 5% 0; font-size: 0.78rem; color: var(--muted); display: flex; align-items: center; gap: 0.4rem; max-width: 1240px; margin: 0 auto; position: relative; justify-content: flex-start; height: auto; z-index: 1; background: transparent; backdrop-filter: none; border-bottom: none; }
    .breadcrumb a { color: var(--muted); transition: color 0.15s; }
    .breadcrumb a:hover { color: var(--accent); }
    .breadcrumb .sep { opacity: 0.4; }

    /* ── HERO ── */
    .hero { padding: 56px 5% 0; display: grid; grid-template-columns: 1fr 440px; gap: 4rem; align-items: start; max-width: 1240px; margin: 0 auto; }
    .hero-left { padding-top: 1rem; }
    .hero-eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--accent-soft); border: 1px solid var(--accent-border); color: var(--accent); border-radius: 4px; padding: 0.3rem 0.8rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 1.5rem; animation: fadeIn 0.5s ease both; }
    .hero h1 { font-size: clamp(2.8rem, 4.5vw, 4.2rem); font-weight: 800; letter-spacing: -1.5px; margin-bottom: 1.5rem; line-height: 1.08; animation: fadeIn 0.5s 0.06s ease both; }
    .hero h1 em { color: var(--accent); font-style: italic; }
    .hero-desc { font-size: 1.1rem; color: var(--muted); max-width: 520px; margin-bottom: 2rem; line-height: 1.75; animation: fadeIn 0.5s 0.12s ease both; }
    .hero-proof { display: flex; align-items: center; gap: 1.2rem; margin-bottom: 2rem; animation: fadeIn 0.5s 0.18s ease both; flex-wrap: wrap; }
    .hero-proof .stars-row { color: #f5a623; font-size: 1.1rem; letter-spacing: 2px; }
    .hero-proof .rating-text { font-size: 0.88rem; color: var(--muted); }
    .hero-proof .rating-text strong { color: var(--ink); }
    .hero-proof .divider { width: 1px; height: 28px; background: var(--border-dark); }
    .hero-trust-pills { display: flex; flex-wrap: wrap; gap: 0.6rem; animation: fadeIn 0.5s 0.24s ease both; }
    .pill { display: inline-flex; align-items: center; gap: 0.35rem; background: var(--green-soft); color: var(--green); border: 1px solid #b6e4ce; border-radius: 100px; padding: 0.28rem 0.85rem; font-size: 0.78rem; font-weight: 600; }
    .pill::before { content: '✓'; font-weight: 800; }

    /* ── ORDER CARD ── */
    .order-card { background: var(--surface); border: 1px solid var(--border); border-radius: 20px; padding: 2rem; box-shadow: var(--shadow-lg); position: sticky; top: 82px; animation: fadeIn 0.5s 0.1s ease both; }
    .order-card-title { font-family: 'Sora', sans-serif; font-size: 1.2rem; font-weight: 800; margin-bottom: 0.4rem; color: var(--ink); }
    .order-card-sub { font-size: 0.82rem; color: var(--muted); margin-bottom: 1.2rem; }
    .pkg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-bottom: 1.4rem; }
    .pkg-btn { background: var(--cream); border: 1.5px solid var(--border); border-radius: 10px; padding: 0.75rem 0.5rem; cursor: pointer; transition: all 0.15s; position: relative; text-align: center; }
    .pkg-btn:hover { border-color: var(--accent); background: var(--accent-soft); }
    .pkg-btn.active { border-color: var(--accent); background: var(--accent-soft); }
    .pkg-btn .pkg-count { font-weight: 700; font-size: 0.93rem; color: var(--ink); display: block; }
    .pkg-btn .pkg-price { font-size: 0.8rem; color: var(--muted); }
    .pkg-btn .pkg-tag { position: absolute; top: -9px; right: 6px; background: var(--accent); color: #fff; font-size: 0.6rem; font-weight: 800; padding: 0.1rem 0.35rem; border-radius: 3px; letter-spacing: 0.5px; }
    .order-summary { background: var(--cream); border: 1px solid var(--border); border-radius: 12px; padding: 1.2rem; margin-bottom: 1.2rem; }
    .order-price { font-family: 'Sora', sans-serif; font-size: 2.6rem; font-weight: 800; color: var(--ink); line-height: 1; }
    .order-saving { font-size: 0.82rem; color: var(--green); font-weight: 600; margin-top: 0.25rem; }
    .order-input-label { font-size: 0.75rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.4rem; display: block; }
    .order-input { width: 100%; border: 1.5px solid var(--border); border-radius: 8px; padding: 0.85rem 1rem; font-family: 'Outfit', sans-serif; font-size: 0.97rem; background: #fff; color: var(--ink); transition: border-color 0.15s; margin-bottom: 0.6rem; }
    .order-input:focus { outline: none; border-color: var(--accent); }
    .order-input::placeholder { color: var(--muted); }
    .order-hint { font-size: 0.74rem; color: var(--muted); margin-bottom: 1rem; display: block; line-height: 1.5; }
    .order-btn { width: 100%; background: var(--ink); color: #fff; border: none; padding: 1.05rem; border-radius: 10px; font-family: 'Outfit', sans-serif; font-size: 1rem; font-weight: 700; cursor: pointer; transition: all 0.18s; }
    .order-btn:hover { background: var(--accent); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(29,155,240,0.3); }
    .order-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 0.9rem; margin-top: 0.9rem; }
    .order-meta span { font-size: 0.74rem; color: var(--muted); display: flex; align-items: center; gap: 0.25rem; }
    .order-meta span::before { content: '🔒'; font-size: 0.7rem; }

    /* ── METRICS ── */
    .metrics { background: var(--ink); color: #fff; padding: 1.4rem 5%; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0 4rem; }
    .metric { text-align: center; padding: 0.6rem 0; }
    .metric-value { font-family: 'Sora', sans-serif; font-size: 2rem; font-weight: 800; color: #fff; line-height: 1; }
    .metric-label { font-size: 0.8rem; color: rgba(255,255,255,0.5); margin-top: 0.2rem; }

    /* ── PAGE BODY / SECTIONS ── */
    .page-body { max-width: 1240px; margin: 0 auto; padding: 0 5%; }
    .section { padding: 80px 0; }
    .section-label { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--accent); margin-bottom: 0.7rem; }
    .section-title { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; margin-bottom: 1rem; letter-spacing: -0.8px; }
    .section-sub { color: var(--muted); max-width: 520px; font-size: 1.03rem; }
    .section-header { margin-bottom: 3.5rem; }
    .section-header.centered { text-align: center; }
    .section-header.centered .section-sub { margin: 0 auto; }

    /* ── INTERNAL LINKS BAR ── */
    .related-bar { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: 1.5rem 2rem; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
    .related-bar .rel-label { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); white-space: nowrap; }
    .related-bar .rel-links { display: flex; gap: 0.7rem; flex-wrap: wrap; }
    .rel-link { background: var(--cream); border: 1px solid var(--border); border-radius: 100px; padding: 0.3rem 0.9rem; font-size: 0.82rem; font-weight: 500; color: var(--ink-2); transition: all 0.15s; }
    .rel-link:hover { background: var(--accent-soft); border-color: var(--accent-border); color: var(--accent); }
    .rel-link.active { background: var(--accent); border-color: var(--accent); color: #fff; }

    /* ── ALGORITHM EXPLAINER (dark section) ── */
    .algo-section { background: var(--ink); padding: 80px 5%; }
    .algo-inner { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
    .algo-inner .section-label { color: var(--teal); }
    .algo-inner .section-title { color: #fff; }
    .algo-inner p { color: rgba(255,255,255,0.55); font-size: 1.02rem; line-height: 1.8; margin-bottom: 1.2rem; }
    .algo-signals { list-style: none; display: flex; flex-direction: column; gap: 0.8rem; }
    .algo-signals li { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem; border-radius: 12px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); transition: background 0.2s; }
    .algo-signals li:hover { background: rgba(255,255,255,0.07); }
    .algo-signal-icon { font-size: 1.3rem; flex-shrink: 0; margin-top: 2px; }
    .algo-signal-title { color: #fff; font-size: 0.95rem; font-weight: 600; margin-bottom: 0.15rem; }
    .algo-signal-desc { color: rgba(255,255,255,0.5); font-size: 0.87rem; line-height: 1.6; }
    .algo-meter { margin-top: 2rem; }
    .algo-meter-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
    .algo-meter-label { font-size: 0.82rem; color: rgba(255,255,255,0.6); min-width: 160px; }
    .algo-meter-track { flex: 1; height: 8px; background: rgba(255,255,255,0.08); border-radius: 100px; overflow: hidden; }
    .algo-meter-fill { height: 100%; border-radius: 100px; background: linear-gradient(90deg, var(--teal), var(--accent)); }
    .algo-meter-val { font-size: 0.8rem; color: var(--teal); font-weight: 700; min-width: 36px; text-align: right; }

    /* ── WHY BUY GRID ── */
    .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
    .why-body p { color: var(--muted); font-size: 1.05rem; line-height: 1.82; margin-bottom: 1.3rem; }
    .callout { background: var(--accent-soft); border-left: 4px solid var(--accent); border-radius: 0 10px 10px 0; padding: 1.2rem 1.5rem; margin: 2rem 0; font-size: 0.97rem; color: var(--ink-2); }
    .why-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 2rem; }
    .why-stat { background: #fff; border: 1px solid var(--border); border-radius: 14px; padding: 1.5rem; }
    .why-stat .val { font-family: 'Sora', sans-serif; font-size: 2.2rem; font-weight: 800; color: var(--ink); line-height: 1; }
    .why-stat .lbl { font-size: 0.82rem; color: var(--muted); margin-top: 0.3rem; }

    /* ── TYPES GRID ── */
    .types-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.2rem; }
    .type-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 1.8rem; text-align: center; transition: all 0.18s; }
    .type-card:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: var(--shadow-md); }
    .type-num { font-family: 'Sora', sans-serif; font-size: 2rem; font-weight: 800; color: var(--accent); line-height: 1; }
    .type-title { font-size: 0.95rem; font-weight: 700; color: var(--ink); margin-top: 0.4rem; margin-bottom: 0.4rem; }
    .type-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.6; }
    .type-badge { display: inline-block; background: var(--gold-soft); color: var(--gold); border: 1px solid #e8d49a; border-radius: 4px; font-size: 0.68rem; font-weight: 700; padding: 0.12rem 0.5rem; margin-top: 0.6rem; letter-spacing: 0.5px; text-transform: uppercase; }

    /* ── FEATURES ── */
    .feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
    .feat-item { background: #fff; border: 1px solid var(--border); border-radius: 18px; padding: 2rem; transition: all 0.2s; }
    .feat-item:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: var(--shadow-md); }
    .feat-icon { font-size: 1.8rem; margin-bottom: 1rem; display: block; }
    .feat-title { font-family: 'Sora', sans-serif; font-size: 1.08rem; color: var(--ink); font-weight: 700; margin-bottom: 0.5rem; }
    .feat-desc { font-size: 0.92rem; color: var(--muted); line-height: 1.7; }

    /* ── HOW IT WORKS ── */
    .how-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; position: relative; }
    .how-timeline::before { content: ''; position: absolute; top: 32px; left: 10%; right: 10%; height: 2px; background: repeating-linear-gradient(90deg, var(--border) 0, var(--border) 8px, transparent 8px, transparent 16px); }
    .how-step { text-align: center; }
    .how-num { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 2px solid var(--border); font-family: 'Sora', sans-serif; font-size: 1.5rem; font-weight: 800; color: var(--ink); margin-bottom: 1.2rem; position: relative; z-index: 1; box-shadow: var(--shadow-sm); }
    .how-step.active .how-num { background: var(--accent); color: #fff; border-color: var(--accent); }
    .how-step h3 { font-size: 1.05rem; margin-bottom: 0.5rem; }
    .how-step p { font-size: 0.9rem; color: var(--muted); }

    /* ── PRICING TABLE ── */
    .pricing-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow-md); }
    .pricing-table thead tr { background: var(--ink); }
    .pricing-table thead th { padding: 1rem 1.3rem; text-align: left; font-family: 'Outfit', sans-serif; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.65); }
    .pricing-table tbody tr { border-bottom: 1px solid var(--border); transition: background 0.15s; }
    .pricing-table tbody tr:last-child { border-bottom: none; }
    .pricing-table tbody tr:hover { background: var(--cream); }
    .pricing-table tbody tr.featured { background: var(--accent-soft); }
    .pricing-table td { padding: 1rem 1.3rem; font-size: 0.97rem; color: var(--ink-2); }
    .pricing-table .pkg-name { font-weight: 700; color: var(--ink); }
    .pricing-table .pkg-save { color: var(--green); font-weight: 600; font-size: 0.85rem; }
    .pricing-table .pkg-original { color: var(--muted); text-decoration: line-through; font-size: 0.85rem; }
    .table-badge { display: inline-flex; background: var(--accent); color: #fff; font-size: 0.62rem; font-weight: 800; padding: 0.1rem 0.4rem; border-radius: 3px; margin-left: 0.4rem; vertical-align: middle; }
    .table-order-btn { background: var(--ink); color: #fff; border: none; padding: 0.5rem 1.1rem; border-radius: 6px; font-family: 'Outfit', sans-serif; font-size: 0.82rem; font-weight: 600; cursor: pointer; transition: all 0.15s; }
    .table-order-btn:hover { background: var(--accent); }

    /* ── USE CASES GRID ── */
    .usecases-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.2rem; }
    .usecase-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 1.8rem; transition: all 0.18s; }
    .usecase-card:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: var(--shadow-md); }
    .uc-icon { font-size: 1.8rem; margin-bottom: 1rem; display: block; }
    .usecase-card h3 { font-size: 1rem; margin-bottom: 0.4rem; }
    .usecase-card p { font-size: 0.88rem; color: var(--muted); line-height: 1.65; }

    /* ── REVIEWS ── */
    .reviews-section { background: var(--bg); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
    .reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
    .review-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 1.8rem; display: flex; flex-direction: column; gap: 1rem; }
    .review-stars { color: #f5a623; font-size: 0.9rem; letter-spacing: 2px; }
    .review-niche { display: inline-block; background: var(--teal-soft); color: #0a8a95; border: 1px solid var(--teal-border); font-size: 0.7rem; font-weight: 700; padding: 0.12rem 0.5rem; border-radius: 4px; }
    .review-text { font-size: 0.96rem; color: var(--ink-2); line-height: 1.72; flex: 1; font-style: italic; }
    .review-author { display: flex; align-items: center; gap: 0.7rem; padding-top: 0.8rem; border-top: 1px solid var(--border); }
    .review-avatar { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 0.95rem; flex-shrink: 0; }
    .review-name { font-size: 0.9rem; font-weight: 700; color: var(--ink); }
    .review-sub { font-size: 0.78rem; color: var(--muted); }

    /* ── FAQ ── */
    .faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
    .faq-item { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: #fff; }
    .faq-q { padding: 1.2rem 1.5rem; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: 0.97rem; color: var(--ink); transition: background 0.15s; user-select: none; }
    .faq-q:hover { background: var(--accent-soft); }
    .faq-icon { font-size: 1.3rem; color: var(--accent); transition: transform 0.2s; }
    .faq-a { padding: 0 1.5rem; max-height: 0; overflow: hidden; font-size: 0.92rem; color: var(--muted); line-height: 1.75; transition: max-height 0.3s ease, padding 0.3s ease; }
    .faq-item.open .faq-a { max-height: 400px; padding: 0 1.5rem 1.2rem; }
    .faq-item.open .faq-icon { transform: rotate(45deg); }

    /* ── LONG-FORM CONTENT ── */
    .long-form { max-width: 780px; }
    .long-form h2 { font-size: clamp(1.7rem, 2.5vw, 2.4rem); margin-bottom: 1.5rem; }
    .long-form h3 { font-size: 1.3rem; margin: 2.5rem 0 1rem; }
    .long-form p { font-size: 1.03rem; color: var(--muted); line-height: 1.85; margin-bottom: 1.2rem; }
    .long-form ul { margin: 1.2rem 0 1.2rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
    .long-form ul li { font-size: 1rem; color: var(--muted); line-height: 1.7; }
    .info-box { background: var(--teal-soft); border: 1px solid var(--teal-border); border-radius: 10px; padding: 1.2rem 1.5rem; margin: 2rem 0; font-size: 0.97rem; color: var(--ink-2); }

    /* ── CTA BANNER ── */
    .cta-banner { background: var(--ink); border-radius: 20px; padding: 3rem; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; }
    .cta-banner h2 { color: #fff; font-size: clamp(1.5rem, 2.5vw, 2rem); margin-bottom: 0.5rem; }
    .cta-banner p { color: rgba(255,255,255,0.55); font-size: 1rem; }
    .cta-white-btn { background: #fff; color: var(--ink); padding: 1rem 2rem; border-radius: 10px; font-weight: 700; font-size: 1rem; white-space: nowrap; transition: all 0.18s; display: inline-block; }
    .cta-white-btn:hover { background: var(--accent); color: #fff; }

    /* ── FOOTER ── */
    footer { background: var(--ink); color: rgba(255,255,255,0.55); padding: 5rem 5% 2rem; }
    .footer-inner { max-width: 1240px; margin: 0 auto; }
    .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 4rem; }
    .footer-logo { font-family: 'Sora', sans-serif; font-weight: 800; font-size: 1.3rem; color: #fff; margin-bottom: 1rem; }
    .footer-logo em { color: var(--accent); font-style: italic; }
    .footer-about { font-size: 0.88rem; line-height: 1.7; }
    .footer-col h5 { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: rgba(255,255,255,0.35); margin-bottom: 1rem; }
    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 0.55rem; }
    .footer-col a { font-size: 0.85rem; color: rgba(255,255,255,0.5); transition: color 0.15s; }
    .footer-col a:hover { color: #fff; }
    .footer-col a.hl { color: #90cdf4; }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 2rem; display: flex; justify-content: space-between; align-items: center; font-size: 0.78rem; flex-wrap: wrap; gap: 0.8rem; }

    @keyframes fadeIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }

    @media (max-width: 1024px) {
      .hero { grid-template-columns: 1fr; gap: 2.5rem; }
      .order-card { position: relative; top: 0; max-width: 520px; }
      .why-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .algo-inner { grid-template-columns: 1fr; gap: 2.5rem; }
      .how-timeline { grid-template-columns: 1fr 1fr; }
      .how-timeline::before { display: none; }
      .footer-top { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 768px) {
      .feat-grid { grid-template-columns: 1fr; }
      .reviews-grid { grid-template-columns: 1fr; }
      .faq-grid { grid-template-columns: 1fr; }
      .cta-banner { grid-template-columns: 1fr; }
      .nav-links { display: none; }
    }
    @media (max-width: 480px) {
      .pkg-grid { grid-template-columns: 1fr 1fr; }
      .hero { padding: 40px 5% 0; }
      .hero h1 { font-size: 2.5rem; }
      .why-stats { grid-template-columns: 1fr 1fr; }
    }
  </style>

<!-- ══ BREADCRUMB ══ -->
<nav aria-label="Breadcrumb" class="breadcrumb">
<a href="https://discordbooster.com">Home</a>
<span aria-hidden="true" class="sep">›</span>
<a href="#">Twitter / X</a>
<span aria-hidden="true" class="sep">›</span>
<span aria-current="page">Buy Twitter Impressions</span>
</nav>
<!-- ══ HERO ══ -->
<div class="page-body">
<section aria-labelledby="hero-h1" class="hero">
<div class="hero-left">
<div class="hero-eyebrow">👁 #1 Twitter / X Impressions Service — Real Views, Instant Delivery, Analytics Safe</div>
<h1 id="hero-h1">Buy Twitter Impressions<br/>That <em>Prove</em> Your<br/>Content's Reach</h1>
<p class="hero-desc">Real, instant Twitter / X impressions delivered safely to your tweets. Boost your tweet visibility numbers, build the analytics that attract brand partnerships and sponsorships, and demonstrate the reach that makes every post on your profile look like content worth paying attention to.</p>
<div class="hero-proof">
<span aria-hidden="true" class="stars-row">★★★★★</span>
<div class="rating-text"><strong>4.9 / 5</strong> from 4,812 verified reviews</div>
<div aria-hidden="true" class="divider"></div>
<div class="rating-text"><strong>120,000+</strong> orders delivered</div>
</div>
<div aria-label="Key guarantees" class="hero-trust-pills" role="list">
<span class="pill" role="listitem">Starts in 5–15 min</span>
<span class="pill" role="listitem">Shows in Analytics</span>
<span class="pill" role="listitem">No password needed</span>
<span class="pill" role="listitem">30-day refill</span>
<span class="pill" role="listitem">From $3</span>
</div>
</div>
<!-- ORDER CARD -->
<div aria-label="Order Twitter impressions" class="order-card" id="order" role="region">
<div class="order-card-title">Boost Your Tweet Visibility</div>
<div class="order-card-sub">Choose your impressions package below</div>
<div aria-label="Impressions packages" class="pkg-grid" id="pkgGrid" role="radiogroup"></div>
<div class="order-summary">
<div aria-live="polite" class="order-price" id="orderPrice">$3.00</div>
<div aria-live="polite" class="order-saving" id="orderSaving">Best entry-level price</div>
</div>
<label class="order-input-label" for="twTweetUrl">Tweet / Post URL</label>
<input aria-required="true" autocomplete="off" class="order-input" id="twTweetUrl" placeholder="https://x.com/username/status/..." type="url"/>
<span class="order-hint">Paste the full URL of your public tweet or X post. No password or account access required — ever.</span>
<button class="order-btn" id="orderBtn">Get Twitter Impressions →</button>
<div class="order-meta">
<span>No password required</span>
<span>SSL checkout</span>
<span>30-day guarantee</span>
</div>
</div>
</section>
</div>
<!-- ══ METRICS ══ -->
<div aria-label="Company statistics" class="metrics" role="list">
<div class="metric" role="listitem"><div class="metric-value">120K+</div><div class="metric-label">Happy customers</div></div>
<div class="metric" role="listitem"><div class="metric-value">4.9★</div><div class="metric-label">Average rating</div></div>
<div class="metric" role="listitem"><div class="metric-value">&lt;15 min</div><div class="metric-label">Avg. start time</div></div>
<div class="metric" role="listitem"><div class="metric-value">500K</div><div class="metric-label">Max single order</div></div>
<div class="metric" role="listitem"><div class="metric-value">7 yrs</div><div class="metric-label">In business</div></div>
</div>
<div class="page-body">
<!-- ══ INTERNAL LINKS ══ -->
<div class="section" style="padding-bottom: 0;">
<div aria-label="Twitter / X services" class="related-bar" role="navigation">
<span class="rel-label">Twitter / X Services</span>
<div class="rel-links">
<a class="rel-link" href="buy-twitter-followers">Followers</a>
<a class="rel-link" href="buy-twitter-likes">Likes</a>
<a class="rel-link" href="buy-twitter-retweets">Retweets</a>
<a class="rel-link active" href="buy-twitter-impressions">Impressions</a>
<a class="rel-link" href="#">Replies</a>
<a class="rel-link" href="#">Bookmarks</a>
</div>
</div>
</div>
<!-- ══ WHY BUY TWITTER IMPRESSIONS ══ -->
<section aria-labelledby="why-heading" class="section">
<div class="why-grid">
<div>
<div aria-hidden="true" class="section-label">The visibility strategy</div>
<h2 class="section-title" id="why-heading">Why Twitter / X Impressions Are the Currency of Creator Credibility in 2026</h2>
<div class="why-stats">
<div class="why-stat"><div class="val">611M</div><div class="lbl">Monthly active Twitter / X users worldwide</div></div>
<div class="why-stat"><div class="val">#1</div><div class="lbl">Metric brand sponsors check when evaluating Twitter creator partnerships</div></div>
<div class="why-stat"><div class="val">10×</div><div class="lbl">More brand partnership enquiries reported by creators who hit 1M impressions per month</div></div>
<div class="why-stat"><div class="val">$0.01–$0.05</div><div class="lbl">Industry CPM range brands pay per 1,000 impressions for Twitter sponsored content</div></div>
</div>
</div>
<div class="why-body">
<p>On Twitter / X, impressions are the most visible and universally understood measure of content reach. Every tweet's impression count is a public-facing number that tells journalists, brand managers, potential followers, and collaborators exactly how widely your content is being seen. It's the first metric anyone checks when deciding whether you're worth paying attention to — or paying to collaborate with.</p>
<p>Since X introduced public impression counts on every tweet, the impression number has become the primary social proof metric for the platform. A tweet sitting at 500 impressions communicates a fundamentally different level of reach than a tweet at 50,000 — regardless of how many followers the poster has. Impressions are visible to everyone, permanently attached to your content, and directly tied to how seriously any visitor will take your profile.</p>
<div class="callout">
<strong>Impressions are also the core metric for Twitter monetisation and brand deals.</strong> X's Ads Revenue Sharing programme uses impressions as its primary payout variable. Brand sponsors calculate Twitter partnership rates using impression-based CPM models. Influencer marketing platforms filter creator searches by monthly impression volume. Buying impressions doesn't just boost a single tweet — it builds the impression track record that turns your profile into a commercially viable media property.
        </div>
<p>Buying Twitter / X impressions gives your content the verified view numbers that create credibility with every audience that matters — casual visitors, organic followers, brand partners, and X's own monetisation systems.</p>
</div>
</div>
</section>
<!-- ══ IMPRESSION TYPES ══ -->
<section aria-labelledby="types-heading" class="section" style="padding-top: 0;">
<div class="section-header centered">
<div aria-hidden="true" class="section-label">Delivery options</div>
<h2 class="section-title" id="types-heading">Types of Twitter / X Impressions We Deliver</h2>
<p class="section-sub">Choose the delivery style that best fits your content type, timeline, and credibility goals.</p>
</div>
<div class="types-grid">
<div class="type-card">
<div class="type-num">⚡</div>
<div class="type-title">Instant Impressions</div>
<div class="type-desc">Impressions delivered rapidly after your order — ideal for freshly posted tweets where you need immediate visibility numbers to signal relevance to first-time profile visitors and brand partners reviewing your recent content.</div>
<span class="type-badge">⭐ Most Popular</span>
</div>
<div class="type-card">
<div class="type-num">🌱</div>
<div class="type-title">Gradual Drip Delivery</div>
<div class="type-desc">Impressions delivered steadily over 24–48 hours, producing a natural-looking view accumulation curve in your Twitter Analytics. Recommended for larger orders where a sudden spike in impression count could appear anomalous.</div>
<span class="type-badge">🛡️ Most Natural</span>
</div>
<div class="type-card">
<div class="type-num">🌍</div>
<div class="type-title">Geo-Targeted Impressions</div>
<div class="type-desc">Impressions sourced from viewers in specific countries — US, UK, Canada, Australia, or Europe. Essential for creators seeking brand deals in specific markets, where geographic impression breakdown is included in media kit reporting.</div>
<span class="type-badge">🎯 Market-Specific</span>
</div>
<div class="type-card">
<div class="type-num">📊</div>
<div class="type-title">Analytics-Optimised Delivery</div>
<div class="type-desc">Impressions paced to produce clean, natural-looking engagement rate ratios in your Twitter Analytics — keeping your impressions-to-engagement ratio within organic norms so your analytics screenshot holds up to scrutiny in brand proposals.</div>
<span class="type-badge">📈 Pitch-Ready</span>
</div>
<div class="type-card">
<div class="type-num">📦</div>
<div class="type-title">Monthly Campaign Packages</div>
<div class="type-desc">Spread impressions across multiple tweets over a week or month to build a consistently high monthly impression total — the metric that determines your eligibility threshold for brand partnerships and X's revenue sharing programme.</div>
<span class="type-badge">💰 Revenue Focused</span>
</div>
</div>
</section>
</div>
<!-- ══ ALGORITHM / ANALYTICS SECTION ══ -->
<section aria-labelledby="algo-heading" class="algo-section">
<div class="algo-inner">
<div>
<div aria-hidden="true" class="section-label">What impressions unlock</div>
<h2 class="section-title" id="algo-heading">How Impression Count Shapes Your Credibility, Revenue &amp; Algorithmic Reach on X</h2>
<p>Impressions are the foundation of Twitter / X's entire creator economy. X's revenue sharing, brand partnership marketplaces, and algorithmic content amplification systems all use impression volume as a primary eligibility and ranking input. Here's how impression count influences each layer of the X creator ecosystem in 2026:</p>
<p>The metrics below reflect the relative importance of each impression-driven outcome for creators aiming to build sustainable X-based income and influence:</p>
<div aria-label="Impression-driven outcome importance" class="algo-meter">
<div class="algo-meter-row">
<span class="algo-meter-label">Brand deal rate card</span>
<div class="algo-meter-track"><div class="algo-meter-fill" style="width:97%"></div></div>
<span class="algo-meter-val">97%</span>
</div>
<div class="algo-meter-row">
<span class="algo-meter-label">X revenue sharing payout</span>
<div class="algo-meter-track"><div class="algo-meter-fill" style="width:92%"></div></div>
<span class="algo-meter-val">92%</span>
</div>
<div class="algo-meter-row">
<span class="algo-meter-label">Profile first impression</span>
<div class="algo-meter-track"><div class="algo-meter-fill" style="width:85%"></div></div>
<span class="algo-meter-val">85%</span>
</div>
<div class="algo-meter-row">
<span class="algo-meter-label">Algorithmic distribution</span>
<div class="algo-meter-track"><div class="algo-meter-fill" style="width:70%"></div></div>
<span class="algo-meter-val">70%</span>
</div>
<div class="algo-meter-row">
<span class="algo-meter-label">Press &amp; media credibility</span>
<div class="algo-meter-track"><div class="algo-meter-fill" style="width:62%"></div></div>
<span class="algo-meter-val">62%</span>
</div>
</div>
</div>
<div>
<ul aria-label="How impressions drive Twitter success" class="algo-signals">
<li>
<span aria-hidden="true" class="algo-signal-icon">💵</span>
<div>
<div class="algo-signal-title">X Ads Revenue Sharing payouts</div>
<div class="algo-signal-desc">X pays eligible creators based on the impressions their tweets generate from verified (X Premium) users. The more impressions you accumulate, the higher your monthly payout. Buying impressions directly increases your revenue share cheque.</div>
</div>
</li>
<li>
<span aria-hidden="true" class="algo-signal-icon">🤝</span>
<div>
<div class="algo-signal-title">Brand partnership rate cards</div>
<div class="algo-signal-desc">Every brand partnership proposal you send includes your average impressions per tweet as the primary pricing justification. Higher impressions per tweet means higher CPM rates — the difference between a $50 sponsored tweet and a $500 one is almost entirely impression volume.</div>
</div>
</li>
<li>
<span aria-hidden="true" class="algo-signal-icon">👁️</span>
<div>
<div class="algo-signal-title">Profile credibility for new visitors</div>
<div class="algo-signal-desc">Since X displays impression counts publicly on every tweet, first-time profile visitors see your impression numbers before they see anything else about your content quality. High impressions signal that your content reaches people — a prerequisite for organic follows and engagement.</div>
</div>
</li>
<li>
<span aria-hidden="true" class="algo-signal-icon">📺</span>
<div>
<div class="algo-signal-title">Influencer platform eligibility</div>
<div class="algo-signal-desc">Creator marketplaces and influencer booking platforms use monthly Twitter impression volume as a minimum threshold filter. Reaching 500K, 1M, or 5M monthly impressions unlocks you to a significantly larger pool of inbound brand collaboration enquiries.</div>
</div>
</li>
<li>
<span aria-hidden="true" class="algo-signal-icon">📰</span>
<div>
<div class="algo-signal-title">Media kit and press credibility</div>
<div class="algo-signal-desc">Journalists, podcast hosts, and event bookers include your Twitter impression data when evaluating guest and contributor credibility. A strong impressions-per-tweet average is often the deciding factor between being pitched and being passed over.</div>
</div>
</li>
</ul>
</div>
</div>
</section>
<div class="page-body">
<!-- ══ FEATURES ══ -->
<section aria-labelledby="features-heading" class="section">
<div class="section-header centered">
<div aria-hidden="true" class="section-label">Why DiscordBooster</div>
<h2 class="section-title" id="features-heading">What Makes Our Twitter / X Impressions Different</h2>
<p class="section-sub">Every impressions package from DiscordBooster is built for analytics authenticity, account safety, and lasting visibility numbers.</p>
</div>
<div class="feat-grid">
<div class="feat-item">
<span class="feat-icon">📊</span>
<div class="feat-title">Registers in Twitter Analytics</div>
<div class="feat-desc">Impressions delivered through our service appear in your Twitter Analytics dashboard exactly as organic impressions do — giving you real, screenshottable numbers you can include in media kits, brand proposals, and influencer platform profiles.</div>
</div>
<div class="feat-item">
<span class="feat-icon">🔒</span>
<div class="feat-title">Zero Password Required</div>
<div class="feat-desc">We only ever need the public URL of your tweet. No Twitter login, no OAuth permissions, no API access. Your account security is completely intact — we never request or store anything beyond your public post URL.</div>
</div>
<div class="feat-item">
<span class="feat-icon">⚡</span>
<div class="feat-title">Delivery Starts in 15 Minutes</div>
<div class="feat-desc">Most orders begin within 5–15 minutes of payment. Watch your impression count climbing in real time inside Twitter Analytics. Larger orders are paced over 24–48 hours to maintain an organic-looking accumulation curve.</div>
</div>
<div class="feat-item">
<span class="feat-icon">📈</span>
<div class="feat-title">Clean Analytics Ratios</div>
<div class="feat-desc">Our delivery is calibrated to keep your engagement rate (likes and retweets relative to impressions) within realistic organic ranges — so your analytics hold up to scrutiny from brand managers reviewing your profile before committing to a deal.</div>
</div>
<div class="feat-item">
<span class="feat-icon">🔄</span>
<div class="feat-title">30-Day Refill Guarantee</div>
<div class="feat-desc">If your impression count drops within 30 days of delivery, we top it back up at zero cost. Our refill guarantee is backed by seven years of service quality — we make guarantees we can honour because our delivery methodology produces lasting results.</div>
</div>
<div class="feat-item">
<span class="feat-icon">💳</span>
<div class="feat-title">Secure Multi-Method Checkout</div>
<div class="feat-desc">Pay via PayPal, Visa, Mastercard, Amex, Bitcoin, or Ethereum through our 256-bit SSL-encrypted, PCI-compliant checkout. Card details are never stored on our servers. Crypto payments are processed instantly and anonymously.</div>
</div>
</div>
</section>
<!-- ══ HOW IT WORKS ══ -->
<section aria-labelledby="how-heading" class="section">
<div class="section-header centered">
<div aria-hidden="true" class="section-label">The process</div>
<h2 class="section-title" id="how-heading">How to Buy Twitter / X Impressions in 4 Simple Steps</h2>
</div>
<div class="how-timeline" role="list">
<div class="how-step active" role="listitem">
<div class="how-num">1</div>
<h3>Choose Your Package</h3>
<p>Select the impression volume you need. Our 25,000-impression package is the most popular starting point — enough to make a meaningful difference in your tweet's visible reach without looking anomalous on a smaller account.</p>
</div>
<div class="how-step" role="listitem">
<div class="how-num">2</div>
<h3>Paste Your Tweet URL</h3>
<p>Copy the full URL of your public tweet or X post and paste it into the order form. Your post must be set to public. No password, login, or account access is required at any point in the process.</p>
</div>
<div class="how-step" role="listitem">
<div class="how-num">3</div>
<h3>Complete Secure Checkout</h3>
<p>Pay via PayPal, credit card, or cryptocurrency through our SSL-encrypted checkout. All transactions are PCI-compliant and your card details are never stored on our servers.</p>
</div>
<div class="how-step" role="listitem">
<div class="how-num">4</div>
<h3>Watch Your Numbers Grow</h3>
<p>Impressions begin arriving within 15 minutes. Open Twitter Analytics to watch your view count increasing in real time. Our 30-day refill guarantee protects every order from day one.</p>
</div>
</div>
</section>
<!-- ══ USE CASES ══ -->
<section aria-labelledby="usecases-heading" class="section" style="padding-top: 0;">
<div class="section-header centered">
<div aria-hidden="true" class="section-label">Who benefits</div>
<h2 class="section-title" id="usecases-heading">Who Buys Twitter / X Impressions — and Why</h2>
<p class="section-sub">From media kit building to X revenue maximisation — here's how different users leverage bought impressions for commercial and credibility impact.</p>
</div>
<div class="usecases-grid">
<div class="usecase-card">
<span class="uc-icon">💼</span>
<h3>Creators Building Brand Deal Pipelines</h3>
<p>Content creators growing their impression numbers to qualify for higher-tier brand deal rates — using a strong impressions-per-tweet average to justify premium CPM pricing in sponsor proposals and influencer platform profiles.</p>
</div>
<div class="usecase-card">
<span class="uc-icon">💵</span>
<h3>X Revenue Sharing Maximisers</h3>
<p>Creators enrolled in X's Ads Revenue Sharing programme who want to maximise their monthly payout by increasing the impression volume their tweets generate from X Premium subscribers — the direct input to revenue share calculations.</p>
</div>
<div class="usecase-card">
<span class="uc-icon">🏢</span>
<h3>Brands &amp; PR Teams</h3>
<p>Marketing and PR professionals buying impressions for campaign announcement tweets to ensure the content achieves minimum visibility thresholds that justify the campaign investment — and produces defensible reach numbers for post-campaign reporting.</p>
</div>
<div class="usecase-card">
<span class="uc-icon">🎙️</span>
<h3>Thought Leaders &amp; Speakers</h3>
<p>Executives, authors, and public speakers building their media kit and speaker bio — using consistent high impression counts to demonstrate the reach that justifies keynote fees, book advances, and podcast guest invitations.</p>
</div>
<div class="usecase-card">
<span class="uc-icon">📰</span>
<h3>Journalists &amp; Newsletter Writers</h3>
<p>Independent journalists and newsletter writers using Twitter impression data to demonstrate audience reach to publication editors and newsletter sponsors — where impression volume is the primary proxy for distribution reach on X.</p>
</div>
<div class="usecase-card">
<span class="uc-icon">🏆</span>
<h3>Agencies Reporting Campaign Metrics</h3>
<p>Digital agencies delivering guaranteed impression benchmarks for client Twitter campaigns — ensuring campaign posts achieve target reach numbers for post-campaign reporting, regardless of how the organic algorithm performs on any given day.</p>
</div>
</div>
</section>
<!-- ══ PRICING TABLE ══ -->
<section aria-labelledby="pricing-heading" class="section" style="padding-top: 0;">
<div class="section-header">
<div aria-hidden="true" class="section-label">Full pricing</div>
<h2 class="section-title" id="pricing-heading">Twitter / X Impressions — Complete Pricing Table</h2>
<p class="section-sub">All packages register in Twitter Analytics, include a 30-day refill guarantee, and use safe, natural delivery pacing.</p>
</div>
<div style="overflow-x:auto;">
<table aria-label="Twitter impressions pricing" class="pricing-table">
<thead>
<tr>
<th scope="col">Package</th>
<th scope="col">Price</th>
<th scope="col">Regular Price</th>
<th scope="col">You Save</th>
<th scope="col">Delivery Time</th>
<th scope="col">Best For</th>
<th scope="col">Order</th>
</tr>
</thead>
<tbody id="pricingTableBody"></tbody>
</table>
</div>
</section>
</div>
<!-- ══ REVIEWS ══ -->
<section aria-labelledby="reviews-heading" class="reviews-section">
<div class="page-body">
<div class="section">
<div class="section-header centered">
<div aria-hidden="true" class="section-label">Customer reviews</div>
<h2 class="section-title" id="reviews-heading">What Our Customers Say About Our Twitter / X Impressions Service</h2>
<p class="section-sub">4,812 verified reviews from creators, brands, and professionals who've used DiscordBooster to build their X visibility.</p>
</div>
<div class="reviews-grid">
<div class="review-card">
<div><span aria-label="5 stars" class="review-stars">★★★★★</span> <span class="review-niche">Creator / Brand Deals</span></div>
<p class="review-text">I was struggling to get brand deals because my impressions per tweet were too low to justify the rates I wanted to charge. Bought impressions for my top 10 tweets and rebuilt my media kit around those numbers. Landed my first five-figure brand deal two months later. The investment was trivial compared to the return.</p>
<div class="review-author">
<div aria-hidden="true" class="review-avatar" style="background:#1d9bf0;">LC</div>
<div>
<div class="review-name">Lauren C.</div>
<div class="review-sub">Lifestyle Creator &amp; Brand Consultant — @laurencreates</div>
</div>
</div>
</div>
<div class="review-card">
<div><span aria-label="5 stars" class="review-stars">★★★★★</span> <span class="review-niche">X Revenue Sharing</span></div>
<p class="review-text">I was earning maybe $40 a month from X's revenue sharing. Started buying impressions for my highest-performing tweets every week and my monthly payout tripled within six weeks. The impressions show up in Analytics exactly as real ones — there's nothing to distinguish them. Completely worth it as a systematic investment.</p>
<div class="review-author">
<div aria-hidden="true" class="review-avatar" style="background:#6b46c1;">BN</div>
<div>
<div class="review-name">Ben N.</div>
<div class="review-sub">Tech &amp; Finance Commentator — @bentech</div>
</div>
</div>
</div>
<div class="review-card">
<div><span aria-label="5 stars" class="review-stars">★★★★★</span> <span class="review-niche">Marketing Agency</span></div>
<p class="review-text">We include guaranteed impression benchmarks in our Twitter campaign proposals. DiscordBooster is how we ensure we never miss a target — delivery is consistent, the numbers appear in Analytics as expected, and the 30-day refill means we're always covered if something drops. It's become a standard line item in our campaign budget.</p>
<div class="review-author">
<div aria-hidden="true" class="review-avatar" style="background:#1a7a4a;">SM</div>
<div>
<div class="review-name">Sofia M.</div>
<div class="review-sub">Campaign Director, Digital Agency</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<div class="page-body">
<!-- ══ FAQ ══ -->
<section aria-labelledby="faq-heading" class="section">
<div class="section-header">
<div aria-hidden="true" class="section-label">Common questions</div>
<h2 class="section-title" id="faq-heading">Frequently Asked Questions About Buying Twitter / X Impressions</h2>
</div>
<div class="faq-grid" role="list">
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Is it safe to buy Twitter / X impressions? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Yes. DiscordBooster only requires your public tweet URL — never your password or account access. Impressions are delivered with natural pacing to avoid triggering X's anomaly detection. We've served 120,000+ customers since 2019 with zero account suspensions from our impressions service.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">What exactly are Twitter / X impressions? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Impressions are the total number of times your tweet has been displayed — every time it appears in a home timeline, search results, profile page, or notification feed counts as one impression. It's X's core measure of content visibility and the primary metric used for advertising, brand deals, and the revenue sharing programme.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Will my bought impressions show in Twitter Analytics? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Yes. Impressions delivered through our service register in your Twitter Analytics dashboard exactly as organic impressions do. The numbers appear in real time as delivery progresses — you can watch them accumulate inside Analytics and screenshot them for media kits and brand proposals.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Do I need to give you my Twitter / X password? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Never. We only need the public URL of your tweet or X post. No passwords, OAuth app permissions, or API credentials are ever requested. If any service asks for your login to deliver impressions, avoid them — it is never required and poses a significant account security risk.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Do bought impressions count toward X's Ads Revenue Sharing programme? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Yes. X's Ads Revenue Sharing programme pays based on the impressions your tweets receive from X Premium subscribers. Our impressions register in your Analytics and contribute to your monthly impression total — which directly influences your revenue share payout. Many of our customers use this service specifically to increase their X revenue programme earnings.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Will my engagement rate look suspicious after buying impressions? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Not with our analytics-optimised delivery option. We calibrate impression delivery to keep your engagement rate (likes, retweets, and replies relative to impressions) within typical organic ranges for your follower count and content type. If you're planning to share your analytics with brand partners, we recommend pairing an impressions order with a smaller likes order to maintain a natural ratio.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">How quickly are impressions delivered? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">Most orders begin delivery within 5–15 minutes of payment. Smaller packages (under 10,000 impressions) typically complete within a few hours. Larger packages are spread over 24–48 hours to produce a natural-looking accumulation curve in your Twitter Analytics. You can track progress in real time inside your analytics dashboard.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">What payment methods are accepted? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">We accept PayPal, Visa, Mastercard, American Express, and major cryptocurrencies including Bitcoin and Ethereum. All payments are processed through 256-bit SSL-encrypted, PCI-compliant gateways. We never store card details on our servers.</div>
</div>
<div class="faq-item" role="listitem">
<div aria-expanded="false" class="faq-q" onclick="toggleFaq(this)" role="button" tabindex="0">Does this service work for X posts — or just old Twitter tweets? <span aria-hidden="true" class="faq-icon">+</span></div>
<div class="faq-a">It works for all posts on the platform — whether you call them tweets or X posts. Twitter rebranded to X in July 2023 and renamed "tweets" to "posts" in the interface, but the platform, accounts, and all content are identical. Our impressions service applies to any public post on X / Twitter regardless of when it was published or what you call it.</div>
</div>
</div>
</section>
<!-- ══ LONG FORM SEO ══ -->
<section aria-labelledby="guide-heading" class="section">
<div class="long-form">
<h2 id="guide-heading">The Complete Guide to Buying Twitter / X Impressions in 2026</h2>
<p>Twitter / X fundamentally changed the creator economy when it made impression counts publicly visible on every tweet. Before that change, only the account owner could see how many times their content had been viewed. Now, every visitor to your profile can see exactly how many times each tweet has been seen — and that number shapes every judgment they make about whether your voice is worth following, collaborating with, or paying for.</p>
<p>This guide explains exactly what Twitter impressions are, why they've become the dominant credibility and monetisation metric on the platform, and how buying impressions strategically fits into a sustainable creator income and influence strategy.</p>
<h3>What Twitter / X Impressions Actually Measure</h3>
<p>An impression is recorded every time your tweet appears on a screen — in a home timeline, in search results, on your profile page, in a notification feed, or in an embedded tweet on another website. One user seeing your tweet three times generates three impressions. The impression count is a cumulative measure of your content's total exposure, regardless of whether the viewer actually read or engaged with it.</p>
<p>This distinction between impressions (total displays) and reach (unique viewers) matters for how impressions should be used strategically. For advertising and sponsorship purposes, impressions are the industry standard metric precisely because they measure total exposure potential — the same model used across all digital advertising from Google Display to YouTube pre-roll. When a brand pays for a sponsored tweet, they're buying impressions, and they calculate their expected ROI using a cost-per-thousand-impressions (CPM) model.</p>
<div class="info-box">
<p><strong>Key insight:</strong> The average Twitter creator charges $10–$50 per 10,000 impressions for sponsored content. Buying 10,000 impressions for $12 and then using that tweet as a case study in your media kit — to justify higher rates on future sponsorships — is one of the highest-ROI uses of the impressions service. The maths works decisively in favour of the investment.</p>
</div>
<h3>How X's Revenue Sharing Programme Uses Impressions</h3>
<p>X's Ads Revenue Sharing programme — available to eligible creators with X Premium subscriptions and sufficient follower counts — pays creators a share of the advertising revenue generated by ads shown in the replies to their tweets. The payout is calculated based on the impressions those tweets receive specifically from X Premium subscribers. The more impressions your tweets accumulate from Premium users, the higher your monthly payout.</p>
<p>This creates a direct, calculable relationship between impression volume and creator income. Creators who consistently achieve high impression counts across their tweets receive meaningfully larger monthly revenue share payouts. Buying impressions for your most resonant tweets — the ones that already show strong organic engagement — maximises the impression volume that feeds directly into your revenue share calculation each month.</p>
<h3>Using Impressions to Build a Media Kit and Attract Brand Deals</h3>
<p>The standard Twitter creator media kit includes average impressions per tweet as a headline metric alongside total followers and monthly reach. Brand managers at consumer companies, agencies, and PR firms use this number to calculate how many times their product or message will be seen if they commission a sponsored tweet. A higher impressions-per-tweet average directly translates to a higher sponsorship rate — with typical industry CPM rates ranging from $10 to $50 per 1,000 impressions depending on the creator's niche and audience quality.</p>
<p>Strategic impression buying — focusing on tweets you plan to include in your media kit or use as performance case studies — is a calculated investment in your rate card. A $24 investment in 25,000 impressions on a tweet you'll reference in every brand proposal for the next six months has an ROI that compounds with every deal you close at a higher rate as a result.</p>
<h3>What Separates Quality Impressions from Bot Traffic</h3>
<p>Low-quality impression providers use bot-generated pageviews that register as impressions in raw analytics but produce no secondary signals — no scroll time, no hover events, no geographic spread. Sophisticated brand managers and platform engineers can identify anomalous impression patterns, and X's own systems periodically audit engagement quality to remove artificially inflated metrics.</p>
<p>DiscordBooster delivers impressions through genuine viewing sessions with natural geographic distribution, realistic device profiles, and normal session behaviour patterns. The result is impression data that stands up to scrutiny in both Twitter's internal systems and the manual review that brand partners perform before committing to deals.</p>
<ul>
<li>Always pair impression purchases with a realistic engagement ratio — consider adding a small likes order alongside to keep your engagement rate within organic norms</li>
<li>Gradual delivery over 24–48 hours always looks more natural than instant bulk delivery for large impression packages</li>
<li>Focus impression purchases on tweets you plan to use in media kits or campaign case studies for maximum commercial return</li>
<li>A 30-day refill guarantee means the numbers in your Analytics stay where you put them for the window that matters most for brand reporting</li>
<li>Never share your X password or grant app permissions to any impressions service — it is never required for legitimate delivery</li>
<li>For X Revenue Sharing optimisation, buy impressions on a regular schedule across your best-performing weekly tweets rather than concentrating everything on a single post</li>
</ul>
</div>
</section>
<!-- ══ CTA ══ -->
<section aria-labelledby="cta-heading" class="section" style="padding-top: 0;">
<div class="cta-banner">
<div>
<h2 id="cta-heading">Ready to Build the Impression Numbers That Open Doors?</h2>
<p>Join 120,000+ creators and brands who trust DiscordBooster to grow their Twitter / X visibility. Your first impressions start arriving in under 15 minutes.</p>
</div>
<a class="cta-white-btn" href="#order" onclick="document.getElementById('order').scrollIntoView({behavior:'smooth'}); return false;">
        Get Twitter Impressions →
      </a>
</div>
</section>
</div>
<!-- ══ FOOTER ══ -->

<script>
  const packages = [
    { count: 1000,   label: "1,000",   price: 3.00,   original: 3.00,   discount: 0,  delivery: "< 1 hr",    bestFor: "Testing quality",             wooid: "twi1k"   },
    { count: 5000,   label: "5,000",   price: 7.00,   original: 9.00,   discount: 22, delivery: "1–3 hrs",   bestFor: "Visible tweet boost",         wooid: "twi5k"   },
    { count: 10000,  label: "10,000",  price: 12.00,  original: 16.00,  discount: 25, delivery: "3–6 hrs",   bestFor: "Profile credibility",         wooid: "twi10k"  },
    { count: 25000,  label: "25,000",  price: 24.00,  original: 36.00,  discount: 33, delivery: "6–12 hrs",  bestFor: "Media kit numbers",           wooid: "twi25k"  },
    { count: 50000,  label: "50,000",  price: 42.00,  original: 68.00,  discount: 38, delivery: "12–24 hrs", bestFor: "Brand deal rate card",        wooid: "twi50k"  },
    { count: 100000, label: "100,000", price: 75.00,  original: 130.00, discount: 42, delivery: "1–2 days",  bestFor: "Revenue sharing boost",       wooid: "twi100k" },
    { count: 250000, label: "250,000", price: 165.00, original: 300.00, discount: 45, delivery: "2–3 days",  bestFor: "Influencer platform tier",    wooid: "twi250k" },
    { count: 500000, label: "500,000", price: 299.00, original: 580.00, discount: 48, delivery: "3–5 days",  bestFor: "Maximum reach dominance",     wooid: "twi500k" }
  ];

  let selected = 0;

  function renderPkgGrid() {
    const grid = document.getElementById('pkgGrid');
    grid.innerHTML = packages.slice(0, 8).map((p, i) => `
      <div class="pkg-btn ${i === selected ? 'active' : ''}"
           onclick="selectPkg(${i})"
           role="radio" aria-checked="${i === selected}"
           tabindex="0"
           aria-label="${p.label} Twitter impressions for $${p.price.toFixed(2)}">
        ${p.discount > 0 ? `<span class="pkg-tag">${p.discount}% OFF</span>` : ''}
        <span class="pkg-count">${p.label}</span>
        <span class="pkg-price">$${p.price.toFixed(2)}</span>
      </div>
    `).join('');
    updateSummary();
  }

  function updateSummary() {
    const p = packages[selected];
    document.getElementById('orderPrice').textContent = `$${p.price.toFixed(2)}`;
    const saving = p.original - p.price;
    document.getElementById('orderSaving').textContent = saving > 0
      ? `You save $${saving.toFixed(2)} (${p.discount}% off)`
      : 'Best entry-level price';
  }

  function selectPkg(idx) {
    selected = idx;
    document.querySelectorAll('.pkg-btn').forEach((b, i) => {
      b.classList.toggle('active', i === idx);
      b.setAttribute('aria-checked', i === idx ? 'true' : 'false');
    });
    updateSummary();
  }

  function renderTable() {
    const tbody = document.getElementById('pricingTableBody');
    tbody.innerHTML = packages.map((p, i) => {
      const saving = p.original - p.price;
      const isFeatured = p.count === 25000;
      return `
        <tr class="${isFeatured ? 'featured' : ''}">
          <td class="pkg-name">
            ${p.label} Impressions
            ${isFeatured ? '<span class="table-badge">POPULAR</span>' : ''}
          </td>
          <td><strong>$${p.price.toFixed(2)}</strong></td>
          <td class="pkg-original">$${p.original.toFixed(2)}</td>
          <td class="pkg-save">${saving > 0 ? `–$${saving.toFixed(2)} (${p.discount}%)` : '—'}</td>
          <td>${p.delivery}</td>
          <td style="font-size:0.85rem;color:var(--muted)">${p.bestFor}</td>
          <td><button class="table-order-btn" onclick="jumpToOrder(${i})" aria-label="Order ${p.label} Twitter impressions">Order →</button></td>
        </tr>
      `;
    }).join('');
  }

  function jumpToOrder(idx) {
    selected = idx;
    renderPkgGrid();
    document.getElementById('order').scrollIntoView({ behavior: 'smooth' });
  }

  document.getElementById('orderBtn').addEventListener('click', () => {
    const tweetUrl = document.getElementById('twTweetUrl').value.trim();
    if (!tweetUrl) {
      document.getElementById('twTweetUrl').focus();
      document.getElementById('twTweetUrl').style.borderColor = 'var(--accent)';
      return;
    }
    const p = packages[selected];
    const url = `https://order.discordbooster.com/checkout/?add-to-cart=${p.wooid}&tweet_url=${encodeURIComponent(tweetUrl)}&platform=twitter&product=impressions`;
    window.location.href = url;
  });

  document.getElementById('twTweetUrl').addEventListener('input', function() {
    this.style.borderColor = 'var(--border)';
  });

  function toggleFaq(el) {
    const item = el.parentElement;
    const isOpen = item.classList.contains('open');
    item.classList.toggle('open');
    el.setAttribute('aria-expanded', !isOpen);
  }

  document.addEventListener('keydown', e => {
    if ((e.key === 'Enter' || e.key === ' ') && e.target.classList.contains('pkg-btn')) {
      e.preventDefault();
      selectPkg([...document.querySelectorAll('.pkg-btn')].indexOf(e.target));
    }
    if ((e.key === 'Enter' || e.key === ' ') && e.target.classList.contains('faq-q')) {
      e.preventDefault();
      toggleFaq(e.target);
    }
  });

  renderPkgGrid();
  renderTable();
</script>

<?php include 'footer.php'; ?>
