assets, move memories to proper location

This commit is contained in:
2026-05-14 07:36:23 -04:00
parent 0bec3c574a
commit 1b917321cf
52 changed files with 3352 additions and 297 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

View File

@@ -0,0 +1,39 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="628" viewBox="0 0 1200 628">
<defs>
<linearGradient id="bgGrad2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="60%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#0c1628"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1200" height="628" fill="url(#bgGrad2)"/>
<rect width="1200" height="5" fill="url(#brandBar)"/>
<circle cx="830" cy="314" r="240" fill="#3b82f608"/>
<circle cx="830" cy="314" r="180" fill="#3b82f606"/>
<circle cx="830" cy="314" r="220" fill="none" stroke="#3b82f615" stroke-width="1" stroke-dasharray="8 8"/>
<!-- Digital shield icon (large, right side) -->
<g transform="translate(830, 314)">
<path d="M-70,-60 L70,-60 L75,20 Q75,60 40,80 L0,95 L-40,80 Q-75,60 -75,20 Z" fill="none" stroke="url(#shieldGrad)" stroke-width="3"/>
<path d="M-30,-10 L0,25 L35,-20" fill="none" stroke="#22c55e" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="0" y="130" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">AI-Powered Protection</text>
</g>
<!-- Left side: text -->
<text x="60" y="220" font-family="system-ui, sans-serif" font-size="44" font-weight="700" fill="#f1f5f9">Your Family Deserves</text>
<text x="60" y="280" font-family="system-ui, sans-serif" font-size="44" font-weight="700" fill="#06b6d4">AI Protection</text>
<text x="60" y="340" font-family="system-ui, sans-serif" font-size="18" fill="#94a3b8">Real-time AI voice clone detection</text>
<text x="60" y="368" font-family="system-ui, sans-serif" font-size="18" fill="#94a3b8">Dark web monitoring • Spam blocking</text>
<rect x="60" y="410" width="200" height="52" rx="26" fill="#3b82f6"/>
<text x="160" y="442" font-family="system-ui, sans-serif" font-size="18" font-weight="600" fill="#f1f5f9" text-anchor="middle">Join the Waitlist</text>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -0,0 +1,45 @@
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="750" viewBox="0 0 600 750">
<defs>
<linearGradient id="bgGrad3" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<filter id="glow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="600" height="750" fill="url(#bgGrad3)"/>
<rect width="600" height="5" fill="url(#brandBar)"/>
<!-- Phone icon -->
<g transform="translate(300, 260)">
<rect x="-60" y="-100" width="120" height="200" rx="18" fill="none" stroke="#3b82f6" stroke-width="3"/>
<circle cx="0" cy="80" r="6" fill="#3b82f6"/>
<!-- Sound waves -->
<path d="M-30,-30 Q-50,-10 -30,10" fill="none" stroke="#06b6d4" stroke-width="2.5" stroke-linecap="round" opacity="0.6"/>
<path d="M-20,-45 Q-65,-10 -20,25" fill="none" stroke="#06b6d4" stroke-width="2.5" stroke-linecap="round" opacity="0.9"/>
<path d="M-10,-60 Q-80,-10 -10,40" fill="none" stroke="#06b6d4" stroke-width="2.5" stroke-linecap="round" filter="url(#glow)"/>
</g>
<!-- Warning indicator -->
<g transform="translate(300, 80)">
<path d="M0,-30 L-20,0 L20,0 Z" fill="#f59e0b"/>
<circle cx="0" cy="10" r="4" fill="#f59e0b"/>
</g>
<text x="300" y="420" font-family="system-ui, sans-serif" font-size="34" font-weight="700" fill="#f1f5f9" text-anchor="middle">Voice Clone</text>
<text x="300" y="460" font-family="system-ui, sans-serif" font-size="34" font-weight="700" fill="#06b6d4" text-anchor="middle">Detection</text>
<text x="300" y="510" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">AI detects synthetic voices</text>
<text x="300" y="535" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">in real time with 99.7% accuracy</text>
<rect x="200" y="580" width="200" height="50" rx="25" fill="#3b82f6"/>
<text x="300" y="611" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Learn How We Detect It</text>
<text x="300" y="710" font-family="system-ui, sans-serif" font-size="13" fill="#64748b" text-anchor="middle">ShieldAI — AI-Powered Identity Protection</text>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

View File

@@ -0,0 +1,45 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="1200" viewBox="0 0 1200 1200">
<defs>
<linearGradient id="bgGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1200" height="1200" fill="url(#bgGrad)"/>
<rect width="1200" height="6" fill="url(#brandBar)"/>
<text x="600" y="160" font-family="system-ui, sans-serif" font-size="52" font-weight="700" fill="#f1f5f9" text-anchor="middle">3 Protections, 1 Platform</text>
<text x="600" y="220" font-family="system-ui, sans-serif" font-size="24" fill="#94a3b8" text-anchor="middle">AI-Powered Identity Protection for Everyone</text>
<rect x="120" y="300" width="280" height="320" rx="16" fill="#1a2332" stroke="#1e293b" stroke-width="1.5"/>
<g transform="translate(260, 420)">
<circle cx="0" cy="0" r="50" fill="#06b6d422" stroke="#06b6d4" stroke-width="2"/>
<path d="M0,-40 Q30,-35 40,-10 Q45,5 35,20 L25,30 L0,40 L-25,30 L-35,20 Q-45,5 -40,-10 Q-30,-35 0,-40 Z" fill="none" stroke="#06b6d4" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M-12,0 L-4,8 L12,-10" fill="none" stroke="#f1f5f9" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<text x="260" y="510" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#f1f5f9" text-anchor="middle">VoicePrint</text>
<text x="260" y="540" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">AI Voice Clone Detection</text>
<rect x="460" y="300" width="280" height="320" rx="16" fill="#1a2332" stroke="#1e293b" stroke-width="1.5"/>
<g transform="translate(600, 420)">
<circle cx="0" cy="0" r="50" fill="#3b82f622" stroke="#3b82f6" stroke-width="2"/>
<path d="M-35,-30 L35,-30 L40,10 Q40,30 25,40 L0,45 L-25,40 Q-40,30 -40,10 Z" fill="none" stroke="#3b82f6" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M0,5 L0,25 M-10,15 L10,15" fill="none" stroke="#f1f5f9" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<text x="600" y="510" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#f1f5f9" text-anchor="middle">DarkWatch</text>
<text x="600" y="540" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">Dark Web Monitoring</text>
<rect x="800" y="300" width="280" height="320" rx="16" fill="#1a2332" stroke="#1e293b" stroke-width="1.5"/>
<g transform="translate(940, 420)">
<circle cx="0" cy="0" r="50" fill="#22c55e22" stroke="#22c55e" stroke-width="2"/>
<path d="M-40,-10 Q-40,-40 0,-40 Q40,-40 40,-10 Q40,15 20,30 L0,40 L-20,30 Q-40,15 -40,-10 Z" fill="none" stroke="#22c55e" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M-15,0 L-5,10 L18,-12" fill="none" stroke="#f1f5f9" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<text x="940" y="510" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#f1f5f9" text-anchor="middle">SpamShield</text>
<text x="940" y="540" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">Spam Call &amp; Text Blocking</text>
<text x="600" y="1100" font-family="system-ui, sans-serif" font-size="18" fill="#64748b" text-anchor="middle">Join 1,000+ Early Adopters</text>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,633 @@
#!/usr/bin/env python3
"""Generate ShieldAI ad creative SVGs for Google Display and Meta campaigns."""
import os
OUT = os.path.join(os.path.dirname(__file__))
# Brand colors
DARK_BG = "#0a0f1e"
CARD_BG = "#1a2332"
TEXT_PRIMARY = "#f1f5f9"
TEXT_SECONDARY = "#94a3b8"
TEXT_MUTED = "#64748b"
ACCENT_BLUE = "#3b82f6"
ACCENT_CYAN = "#06b6d4"
SUCCESS = "#22c55e"
ERROR = "#ef4444"
WARNING = "#f59e0b"
BORDER = "#1e293b"
def shield_logo_svg(size=40, x=0, y=0):
return f'''<g transform="translate({x},{y})">
<circle cx="{size//2}" cy="{size//2}" r="{size//2}" fill="url(shieldGrad)"/>
<path d="M{size//2-10},{size//2-8} L{size//2+10},{size//2-8} L{size//2+10},{size//2+6} Q{size//2},{size//2+14} {size//2},{size//2+14} Q{size//2},{size//2+14} {size//2-10},{size//2+6} Z" fill="none" stroke="{TEXT_PRIMARY}" stroke-width="2.5"/>
<path d="M{size//2-4},{size//2-2} L{size//2},{size//2+4} L{size//2+7},{size//2-5}" fill="none" stroke="{TEXT_PRIMARY}" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>'''
def brand_bar(w, h):
return f'''<rect width="{w}" height="{h}" fill="url(brandBar)"/>'''
def safe_text(text, max_len=80):
return text[:max_len] if len(text) > max_len else text
# ============================================================
# GOOGLE DISPLAY ASSETS
# ============================================================
def gd_square():
"""1:1 (1200x1200) — '3 Protections, 1 Platform' three-icon panel"""
w, h = 1200, 1200
icon_size = 100
box_w, box_h = 280, 320
gap = 60
total_w = 3 * box_w + 2 * gap
start_x = (w - total_w) // 2
top_y = 300
icons_data = [
("VoicePrint", "AI Voice Clone Detection", ACCENT_CYAN, [
"M0,-40 Q30,-35 40,-10 Q45,5 35,20 L25,30 L0,40 L-25,30 L-35,20 Q-45,5 -40,-10 Q-30,-35 0,-40 Z",
"M-12,0 L-4,8 L12,-10"
]),
("DarkWatch", "Dark Web Monitoring", ACCENT_BLUE, [
"M-35,-30 L35,-30 L40,10 Q40,30 25,40 L0,45 L-25,40 Q-40,30 -40,10 Z",
"M0,5 L0,25 M-10,15 L10,15"
]),
("SpamShield", "Spam Call & Text Blocking", SUCCESS, [
"M-40,-10 Q-40,-40 0,-40 Q40,-40 40,-10 Q40,15 20,30 L0,40 L-20,30 Q-40,15 -40,-10 Z",
"M-15,0 L-5,10 L18,-12"
]),
]
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="{DARK_BG}"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<linearGradient id="shieldGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgGrad)"/>
{brand_bar(w, 6)}
<text x="{w//2}" y="160" font-family="system-ui, sans-serif" font-size="52" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">3 Protections, 1 Platform</text>
<text x="{w//2}" y="220" font-family="system-ui, sans-serif" font-size="24" fill="{TEXT_SECONDARY}" text-anchor="middle">AI-Powered Identity Protection for Everyone</text>'''
for i, (name, desc, color, paths) in enumerate(icons_data):
cx = start_x + i * (box_w + gap) + box_w // 2
cy = top_y + box_h // 2
svg += f'''
<rect x="{start_x + i * (box_w + gap)}" y="{top_y}" width="{box_w}" height="{box_h}" rx="16" fill="{CARD_BG}" stroke="{BORDER}" stroke-width="1.5"/>'''
svg += f'''
<g transform="translate({cx}, {cy - 40})">
<circle cx="0" cy="0" r="50" fill="{color}22" stroke="{color}" stroke-width="2"/>
<path d="{paths[0]}" fill="none" stroke="{color}" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path d="{paths[1]}" fill="none" stroke="{TEXT_PRIMARY}" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</g>'''
svg += f'''
<text x="{cx}" y="{cy + 50}" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">{name}</text>
<text x="{cx}" y="{cy + 80}" font-family="system-ui, sans-serif" font-size="16" fill="{TEXT_SECONDARY}" text-anchor="middle">{desc}</text>'''
svg += f'''
<text x="{w//2}" y="{h - 100}" font-family="system-ui, sans-serif" font-size="18" fill="{TEXT_MUTED}" text-anchor="middle">Join 1,000+ Early Adopters</text>
</svg>'''
return svg
def gd_landscape():
"""1.91:1 (1200x628) — 'Your Family Deserves AI Protection' family + shield"""
w, h = 1200, 628
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgGrad2" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{DARK_BG}"/>
<stop offset="60%" stop-color="{DARK_BG}"/>
<stop offset="100%" stop-color="#0c1628"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<linearGradient id="shieldGrad" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgGrad2)"/>
{brand_bar(w, 5)}
<circle cx="830" cy="314" r="240" fill="{ACCENT_BLUE}08"/>
<circle cx="830" cy="314" r="180" fill="{ACCENT_BLUE}06"/>
<circle cx="830" cy="314" r="220" fill="none" stroke="{ACCENT_BLUE}15" stroke-width="1" stroke-dasharray="8 8"/>
<!-- Digital shield icon (large, right side) -->
<g transform="translate(830, 314)">
<path d="M-70,-60 L70,-60 L75,20 Q75,60 40,80 L0,95 L-40,80 Q-75,60 -75,20 Z" fill="none" stroke="url(#shieldGrad)" stroke-width="3"/>
<path d="M-30,-10 L0,25 L35,-20" fill="none" stroke="{SUCCESS}" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="0" y="130" font-family="system-ui, sans-serif" font-size="14" fill="{TEXT_SECONDARY}" text-anchor="middle">AI-Powered Protection</text>
</g>
<!-- Left side: text -->
<text x="60" y="220" font-family="system-ui, sans-serif" font-size="44" font-weight="700" fill="{TEXT_PRIMARY}">Your Family Deserves</text>
<text x="60" y="280" font-family="system-ui, sans-serif" font-size="44" font-weight="700" fill="{ACCENT_CYAN}">AI Protection</text>
<text x="60" y="340" font-family="system-ui, sans-serif" font-size="18" fill="{TEXT_SECONDARY}">Real-time AI voice clone detection</text>
<text x="60" y="368" font-family="system-ui, sans-serif" font-size="18" fill="{TEXT_SECONDARY}">Dark web monitoring • Spam blocking</text>
<rect x="60" y="410" width="200" height="52" rx="26" fill="{ACCENT_BLUE}"/>
<text x="160" y="442" font-family="system-ui, sans-serif" font-size="18" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Join the Waitlist</text>
</svg>'''
return svg
def gd_portrait():
"""4:5 (600x750) — 'Voice Clone Detection' phone call visualization"""
w, h = 600, 750
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgGrad3" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="{DARK_BG}"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<filter id="glow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgGrad3)"/>
{brand_bar(w, 5)}
<!-- Phone icon -->
<g transform="translate(300, 260)">
<rect x="-60" y="-100" width="120" height="200" rx="18" fill="none" stroke="{ACCENT_BLUE}" stroke-width="3"/>
<circle cx="0" cy="80" r="6" fill="{ACCENT_BLUE}"/>
<!-- Sound waves -->
<path d="M-30,-30 Q-50,-10 -30,10" fill="none" stroke="{ACCENT_CYAN}" stroke-width="2.5" stroke-linecap="round" opacity="0.6"/>
<path d="M-20,-45 Q-65,-10 -20,25" fill="none" stroke="{ACCENT_CYAN}" stroke-width="2.5" stroke-linecap="round" opacity="0.9"/>
<path d="M-10,-60 Q-80,-10 -10,40" fill="none" stroke="{ACCENT_CYAN}" stroke-width="2.5" stroke-linecap="round" filter="url(#glow)"/>
</g>
<!-- Warning indicator -->
<g transform="translate(300, 80)">
<path d="M0,-30 L-20,0 L20,0 Z" fill="{WARNING}"/>
<circle cx="0" cy="10" r="4" fill="{WARNING}"/>
</g>
<text x="{w//2}" y="420" font-family="system-ui, sans-serif" font-size="34" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">Voice Clone</text>
<text x="{w//2}" y="460" font-family="system-ui, sans-serif" font-size="34" font-weight="700" fill="{ACCENT_CYAN}" text-anchor="middle">Detection</text>
<text x="{w//2}" y="510" font-family="system-ui, sans-serif" font-size="16" fill="{TEXT_SECONDARY}" text-anchor="middle">AI detects synthetic voices</text>
<text x="{w//2}" y="535" font-family="system-ui, sans-serif" font-size="16" fill="{TEXT_SECONDARY}" text-anchor="middle">in real time with 99.7% accuracy</text>
<rect x="200" y="580" width="200" height="50" rx="25" fill="{ACCENT_BLUE}"/>
<text x="300" y="611" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Learn How We Detect It</text>
<text x="{w//2}" y="{h - 40}" font-family="system-ui, sans-serif" font-size="13" fill="{TEXT_MUTED}" text-anchor="middle">ShieldAI — AI-Powered Identity Protection</text>
</svg>'''
return svg
# ============================================================
# META CREATIVE A: Voice Clone Threat
# ============================================================
def meta_a_1x1():
"""1:1 (1080x1080) — split-screen family / AI distortion"""
w, h = 1080, 1080
half = w // 2
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgGradL" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#0a1528"/>
<stop offset="100%" stop-color="#0f1d35"/>
</linearGradient>
<linearGradient id="bgGradR" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#1a0a0a"/>
<stop offset="100%" stop-color="#2d0f0f"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<linearGradient id="distortGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="{ERROR}66"/>
<stop offset="100%" stop-color="{ERROR}22"/>
</linearGradient>
<filter id="glitch">
<feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="3" result="noise"/>
<feDisplacementMap in="SourceGraphic" in2="noise" scale="8" xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs>
<!-- Left panel: normal family -->
<rect x="0" y="0" width="{half}" height="{h}" fill="url(#bgGradL)"/>
<circle cx="{half//2}" cy="280" r="60" fill="{ACCENT_BLUE}30" stroke="{ACCENT_BLUE}" stroke-width="2"/>
<circle cx="{half//2 - 60}" cy="220" r="40" fill="{ACCENT_BLUE}20" stroke="{ACCENT_BLUE}" stroke-width="1.5"/>
<circle cx="{half//2 + 70}" cy="230" r="35" fill="{ACCENT_BLUE}20" stroke="{ACCENT_BLUE}" stroke-width="1.5"/>
<circle cx="{half//2 - 30}" cy="360" r="45" fill="{ACCENT_BLUE}20" stroke="{ACCENT_BLUE}" stroke-width="1.5"/>
<rect x="{half//2 - 70}" y="420" width="140" height="180" rx="10" fill="{ACCENT_BLUE}15" stroke="{ACCENT_BLUE}" stroke-width="1.5" opacity="0.6"/>
<text x="{half//2}" y="680" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Your Family</text>
<text x="{half//2}" y="710" font-family="system-ui, sans-serif" font-size="15" fill="{TEXT_SECONDARY}" text-anchor="middle">Real & Unfiltered</text>
<!-- Center divider with phone icon -->
<rect x="{half - 2}" y="0" width="4" height="{h}" fill="{BORDER}"/>
<g transform="translate({half}, {h//2 - 60})">
<rect x="-25" y="-50" width="50" height="100" rx="10" fill="{ACCENT_BLUE}" opacity="0.3"/>
<path d="M-10,-10 Q-20,0 -10,10" fill="none" stroke="{ERROR}" stroke-width="2.5" stroke-linecap="round"/>
<path d="M0,-20 Q-25,0 0,20" fill="none" stroke="{ERROR}" stroke-width="2.5" stroke-linecap="round"/>
<path d="M10,-30 Q-30,0 10,30" fill="none" stroke="{ERROR}" stroke-width="2" stroke-linecap="round" opacity="0.7"/>
</g>
<!-- Right panel: distorted/AI -->
<rect x="{half}" y="0" width="{half}" height="{h}" fill="url(#bgGradR)"/>
<g filter="url(#glitch)">
<circle cx="{half + half//2}" cy="280" r="60" fill="{ERROR}30" stroke="{ERROR}" stroke-width="2"/>
<circle cx="{half + half//2 - 60}" cy="220" r="40" fill="{ERROR}20" stroke="{ERROR}" stroke-width="1.5"/>
<circle cx="{half + half//2 + 70}" cy="230" r="35" fill="{ERROR}20" stroke="{ERROR}" stroke-width="1.5"/>
<circle cx="{half + half//2 - 30}" cy="360" r="45" fill="{ERROR}20" stroke="{ERROR}" stroke-width="1.5"/>
<rect x="{half + half//2 - 70}" y="420" width="140" height="180" rx="10" fill="{ERROR}15" stroke="{ERROR}" stroke-width="1.5" opacity="0.6"/>
</g>
<text x="{half + half//2}" y="680" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="{ERROR}" text-anchor="middle">AI Clone</text>
<text x="{half + half//2}" y="710" font-family="system-ui, sans-serif" font-size="15" fill="{TEXT_MUTED}" text-anchor="middle">Synthetic & Dangerous</text>
<!-- Bottom brand bar -->
<rect x="0" y="{h - 90}" width="{w}" height="90" fill="{CARD_BG}"/>
<text x="{w//2}" y="{h - 55}" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Your Family's Voice, Protected</text>
<text x="{w//2}" y="{h - 28}" font-family="system-ui, sans-serif" font-size="15" fill="{TEXT_SECONDARY}" text-anchor="middle">ShieldAI detects AI voice cloning with 99.7% accuracy</text>
</svg>'''
return svg
def meta_a_191():
"""1.91:1 (1200x628) — split-screen family / AI distortion"""
w, h = 1200, 628
half = w // 2
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgL" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#0a1528"/>
<stop offset="100%" stop-color="#0f1d35"/>
</linearGradient>
<linearGradient id="bgR" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#1a0a0a"/>
<stop offset="100%" stop-color="#2d0f0f"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<filter id="glitch2">
<feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="2" result="noise"/>
<feDisplacementMap in="SourceGraphic" in2="noise" scale="6" xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs>
<rect x="0" y="0" width="{half}" height="{h}" fill="url(#bgL)"/>
<circle cx="{half//2}" cy="{h//2 - 30}" r="35" fill="{ACCENT_BLUE}30" stroke="{ACCENT_BLUE}" stroke-width="2"/>
<circle cx="{half//2 - 50}" cy="{h//2 - 80}" r="25" fill="{ACCENT_BLUE}20" stroke="{ACCENT_BLUE}" stroke-width="1.5"/>
<circle cx="{half//2 + 55}" cy="{h//2 - 75}" r="22" fill="{ACCENT_BLUE}20" stroke="{ACCENT_BLUE}" stroke-width="1.5"/>
<text x="{half//2}" y="{h//2 + 60}" font-family="system-ui, sans-serif" font-size="20" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Your Family</text>
<rect x="0" y="{h - 50}" width="{half}" height="50" fill="{CARD_BG}"/>
<text x="{half//2}" y="{h - 22}" font-family="system-ui, sans-serif" font-size="13" fill="{TEXT_SECONDARY}" text-anchor="middle">Real voice, real moment</text>
<rect x="{half - 1}" y="0" width="3" height="{h}" fill="{BORDER}"/>
<rect x="{half}" y="0" width="{half}" height="{h}" fill="url(#bgR)"/>
<g filter="url(#glitch2)">
<circle cx="{half + half//2}" cy="{h//2 - 30}" r="35" fill="{ERROR}30" stroke="{ERROR}" stroke-width="2"/>
<circle cx="{half + half//2 - 50}" cy="{h//2 - 80}" r="25" fill="{ERROR}20" stroke="{ERROR}" stroke-width="1.5"/>
<circle cx="{half + half//2 + 55}" cy="{h//2 - 75}" r="22" fill="{ERROR}20" stroke="{ERROR}" stroke-width="1.5"/>
</g>
<text x="{half + half//2}" y="{h//2 + 60}" font-family="system-ui, sans-serif" font-size="20" font-weight="600" fill="{ERROR}" text-anchor="middle">AI Clone</text>
<rect x="{half}" y="{h - 50}" width="{half}" height="50" fill="{ERROR}22"/>
<text x="{half + half//2}" y="{h - 22}" font-family="system-ui, sans-serif" font-size="13" fill="{TEXT_MUTED}" text-anchor="middle">Synthetic voice clone</text>
<text x="30" y="50" font-family="system-ui, sans-serif" font-size="16" font-weight="600" fill="{TEXT_PRIMARY}">Your Family's Voice, Protected</text>
</svg>'''
return svg
# ============================================================
# META CREATIVE B: Dark Web
# ============================================================
def meta_b_1x1():
"""1:1 (1080x1080) — dark terminal HUD aesthetic"""
w, h = 1080, 1080
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgTerm" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#050a05"/>
<stop offset="100%" stop-color="#0a1a0a"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{SUCCESS}"/>
<stop offset="100%" stop-color="#16a34a"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgTerm)"/>
<!-- Matrix-like grid lines -->
<g stroke="{SUCCESS}10" stroke-width="0.5">
<line x1="0" y1="100" x2="{w}" y2="100"/>
<line x1="0" y1="200" x2="{w}" y2="200"/>
<line x1="0" y1="300" x2="{w}" y2="300"/>
<line x1="0" y1="400" x2="{w}" y2="400"/>
<line x1="0" y1="500" x2="{w}" y2="500"/>
<line x1="0" y1="600" x2="{w}" y2="600"/>
<line x1="0" y1="700" x2="{w}" y2="700"/>
<line x1="0" y1="800" x2="{w}" y2="800"/>
<line x1="0" y1="900" x2="{w}" y2="900"/>
<line x1="0" y1="1000" x2="{w}" y2="1000"/>
</g>
<!-- Terminal window frame -->
<rect x="100" y="200" width="{w - 200}" height="500" rx="12" fill="#0d1f0d" stroke="{SUCCESS}30" stroke-width="1.5"/>
<rect x="100" y="200" width="{w - 200}" height="40" rx="12" fill="#143014"/>
<rect x="100" y="228" width="{w - 200}" height="12" fill="#143014"/>
<circle cx="130" cy="220" r="6" fill="{ERROR}"/>
<circle cx="155" cy="220" r="6" fill="{WARNING}"/>
<circle cx="180" cy="220" r="6" fill="{SUCCESS}"/>
<text x="200" y="225" font-family="monospace" font-size="14" fill="{TEXT_MUTED}">darkwatch@shieldai:~$</text>
<!-- Terminal content -->
<text x="130" y="280" font-family="monospace" font-size="16" fill="{WARNING}">> Scanning 150+ dark web marketplaces...</text>
<text x="130" y="320" font-family="monospace" font-size="16" fill="{WARNING}">> Analyzing breach databases...</text>
<text x="130" y="380" font-family="monospace" font-size="18" font-weight="bold" fill="{ERROR}">! ALERT: MATCHES FOUND</text>
<rect x="130" y="410" width="320" height="28" fill="{ERROR}15"/>
<text x="140" y="430" font-family="monospace" font-size="15" fill="{ERROR}">email:***@gmail.com — 3 breaches</text>
<rect x="130" y="445" width="320" height="28" fill="{ERROR}15"/>
<text x="140" y="465" font-family="monospace" font-size="15" fill="{ERROR}">phone:+1 (555) ***-8842 — 2 breaches</text>
<rect x="130" y="480" width="320" height="28" fill="{ERROR}15"/>
<text x="140" y="500" font-family="monospace" font-size="15" fill="{ERROR}">ssn:***-**-6781 — 1 breach</text>
<text x="130" y="550" font-family="monospace" font-size="16" fill="{SUCCESS}">> Total exposures found: 5,284</text>
<text x="130" y="580" font-family="monospace" font-size="16" fill="{ACCENT_CYAN}">> Run scan on your data? [Y/n] _</text>
<!-- Bottom CTA -->
<rect x="340" y="750" width="400" height="56" rx="28" fill="{SUCCESS}"/>
<text x="540" y="785" font-family="system-ui, sans-serif" font-size="20" font-weight="700" fill="#050a05" text-anchor="middle">Scan Your Email Free</text>
<text x="{w//2}" y="860" font-family="system-ui, sans-serif" font-size="16" fill="{TEXT_MUTED}" text-anchor="middle">ShieldAI DarkWatch — 24/7 Dark Web Monitoring</text>
<text x="{w//2}" y="920" font-family="system-ui, sans-serif" font-size="28" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">5K+ Exposures Found.</text>
<text x="{w//2}" y="960" font-family="system-ui, sans-serif" font-size="28" font-weight="700" fill="{SUCCESS}" text-anchor="middle">What About Yours?</text>
</svg>'''
return svg
def meta_b_45():
"""4:5 (1080x1350) — dark terminal HUD"""
w, h = 1080, 1350
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgB45" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#050a05"/>
<stop offset="100%" stop-color="#0a1a0a"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{SUCCESS}"/>
<stop offset="100%" stop-color="#16a34a"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgB45)"/>
<!-- Terminal -->
<rect x="80" y="250" width="{w - 160}" height="520" rx="12" fill="#0d1f0d" stroke="{SUCCESS}30" stroke-width="1.5"/>
<rect x="80" y="250" width="{w - 160}" height="40" rx="12" fill="#143014"/>
<rect x="80" y="278" width="{w - 160}" height="12" fill="#143014"/>
<circle cx="110" cy="270" r="6" fill="{ERROR}"/>
<circle cx="135" cy="270" r="6" fill="{WARNING}"/>
<circle cx="160" cy="270" r="6" fill="{SUCCESS}"/>
<text x="180" y="275" font-family="monospace" font-size="14" fill="{TEXT_MUTED}">darkwatch@shieldai:~$</text>
<text x="110" y="330" font-family="monospace" font-size="16" fill="{WARNING}">> Scanning 150+ dark web marketplaces...</text>
<text x="110" y="360" font-family="monospace" font-size="16" fill="{WARNING}">> Cross-referencing databases...</text>
<text x="110" y="415" font-family="monospace" font-size="18" font-weight="bold" fill="{ERROR}">! ALERT: DATA EXPOSED</text>
<rect x="110" y="445" width="350" height="28" fill="{ERROR}15"/>
<text x="120" y="465" font-family="monospace" font-size="14" fill="{ERROR}">email:***@gmail.com — 3 breaches</text>
<rect x="110" y="480" width="350" height="28" fill="{ERROR}15"/>
<text x="120" y="500" font-family="monospace" font-size="14" fill="{ERROR}">phone:+1 (555) ***-8842 — 2 breaches</text>
<rect x="110" y="515" width="350" height="28" fill="{ERROR}15"/>
<text x="120" y="535" font-family="monospace" font-size="14" fill="{ERROR}">ssn:***-**-6781 — 1 breach</text>
<rect x="110" y="550" width="350" height="28" fill="{ERROR}15"/>
<text x="120" y="570" font-family="monospace" font-size="14" fill="{ERROR}">Address:*** Oak St — 1 breach</text>
<text x="110" y="625" font-family="monospace" font-size="16" fill="{SUCCESS}">> Total exposures monitored: 5,284</text>
<text x="110" y="660" font-family="monospace" font-size="16" fill="{ACCENT_CYAN}">> Run scan on your data? [Y/n] _</text>
<text x="{w//2}" y="840" font-family="system-ui, sans-serif" font-size="30" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">Your Data May Already Be</text>
<text x="{w//2}" y="885" font-family="system-ui, sans-serif" font-size="30" font-weight="700" fill="{ERROR}" text-anchor="middle">For Sale on the Dark Web</text>
<text x="{w//2}" y="940" font-family="system-ui, sans-serif" font-size="16" fill="{TEXT_SECONDARY}" text-anchor="middle">ShieldAI scans 150+ marketplaces 24/7 and alerts you instantly</text>
<rect x="{w//2 - 175}" y="1000" width="350" height="56" rx="28" fill="{SUCCESS}"/>
<text x="{w//2}" y="1035" font-family="system-ui, sans-serif" font-size="20" font-weight="700" fill="#050a05" text-anchor="middle">Scan Your Email Free</text>
<text x="{w//2}" y="{h - 50}" font-family="system-ui, sans-serif" font-size="14" fill="{TEXT_MUTED}" text-anchor="middle">ShieldAI — AI-Powered Identity Protection for Everyone</text>
</svg>'''
return svg
# ============================================================
# META CREATIVE C: 3 Protections
# ============================================================
def meta_c_1x1():
"""1:1 (1080x1080) — three-panel layout"""
w, h = 1080, 1080
panel_w, panel_h = 300, 400
gap = 30
total_w = 3 * panel_w + 2 * gap
start_x = (w - total_w) // 2
top_y = 280
panels = [
("VoicePrint", ACCENT_CYAN, "AI Voice Clone\nDetection", "Real-time detection\nof synthetic voices\nwith 99.7% accuracy"),
("DarkWatch", ACCENT_BLUE, "Dark Web\nMonitoring", "24/7 scanning of\n150+ marketplaces\nfor your data"),
("SpamShield", SUCCESS, "Spam Call &\nText Blocking", "AI-powered filtering\nof spam calls\nand text messages"),
]
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<linearGradient id="bgC" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="{DARK_BG}"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgC)"/>
{brand_bar(w, 6)}
<text x="{w//2}" y="140" font-family="system-ui, sans-serif" font-size="42" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">3 Ways ShieldAI Protects Your Family</text>
<text x="{w//2}" y="185" font-family="system-ui, sans-serif" font-size="18" fill="{TEXT_SECONDARY}" text-anchor="middle">VoicePrint + DarkWatch + SpamShield</text>'''
for i, (name, color, title, desc) in enumerate(panels):
px = start_x + i * (panel_w + gap)
py = top_y
cx = px + panel_w // 2
icon_y = py + 60
svg += f'''
<rect x="{px}" y="{py}" width="{panel_w}" height="{panel_h}" rx="16" fill="{CARD_BG}" stroke="{color}30" stroke-width="1.5"/>
<circle cx="{cx}" cy="{icon_y}" r="40" fill="{color}22" stroke="{color}" stroke-width="2"/>
<text x="{cx}" y="{icon_y + 5}" font-family="system-ui, sans-serif" font-size="18" font-weight="700" fill="{color}" text-anchor="middle">{name}</text>'''
lines = title.split('\n')
for li, line in enumerate(lines):
svg += f'''
<text x="{cx}" y="{icon_y + 60 + li * 32}" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">{line}</text>'''
desc_lines = desc.split('\n')
for li, line in enumerate(desc_lines):
svg += f'''
<text x="{cx}" y="{icon_y + 120 + li * 25}" font-family="system-ui, sans-serif" font-size="14" fill="{TEXT_SECONDARY}" text-anchor="middle">{line}</text>'''
svg += f'''
<rect x="{w//2 - 135}" y="760" width="270" height="52" rx="26" fill="{ACCENT_BLUE}"/>
<text x="{w//2}" y="793" font-family="system-ui, sans-serif" font-size="18" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Join the Waitlist</text>
<text x="{w//2}" y="870" font-family="system-ui, sans-serif" font-size="15" fill="{TEXT_MUTED}" text-anchor="middle">Three critical protections, one powerful platform</text>
<text x="{w//2}" y="900" font-family="system-ui, sans-serif" font-size="14" fill="{TEXT_MUTED}" text-anchor="middle">Start free. Launching soon.</text>
</svg>'''
return svg
# ============================================================
# META CREATIVE D: Family Protection
# ============================================================
def meta_d_base(w, h, small=False):
"""Family protection — multi-generational family with digital shield overlay"""
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="{w}" height="{h}" viewBox="0 0 {w} {h}">
<defs>
<radialGradient id="shieldGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="{ACCENT_BLUE}30"/>
<stop offset="100%" stop-color="{ACCENT_BLUE}00"/>
</radialGradient>
<linearGradient id="bgD" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="{DARK_BG}"/>
<stop offset="60%" stop-color="#0d1a30"/>
<stop offset="100%" stop-color="{DARK_BG}"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
<linearGradient id="shieldGradD" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="{ACCENT_BLUE}"/>
<stop offset="100%" stop-color="{ACCENT_CYAN}"/>
</linearGradient>
</defs>
<rect width="{w}" height="{h}" fill="url(#bgD)"/>
{brand_bar(w, 5)}
<!-- Digital shield overlay -->
<circle cx="{w//2}" cy="{h//2}" r="{min(w,h)*0.38}" fill="url(#shieldGlow)"/>
<g transform="translate({w//2}, {h//2 - 30})">
<path d="M-60,-55 L60,-55 L65,15 Q65,55 35,75 L0,90 L-35,75 Q-65,55 -65,15 Z" fill="none" stroke="url(#shieldGradD)" stroke-width="3" opacity="0.8"/>
<path d="M-25,-5 L0,25 L30,-15" fill="none" stroke="{SUCCESS}" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<!-- Family figures (simplified) -->
{g_family_figures(w, h)}
<text x="{w//2}" y="{h - 160}" font-family="system-ui, sans-serif" font-size="32" font-weight="700" fill="{TEXT_PRIMARY}" text-anchor="middle">Protect Your Whole Family</text>
<text x="{w//2}" y="{h - 115}" font-family="system-ui, sans-serif" font-size="17" fill="{TEXT_SECONDARY}" text-anchor="middle">AI voice clone detection + dark web monitoring + spam blocking</text>
<text x="{w//2}" y="{h - 85}" font-family="system-ui, sans-serif" font-size="17" fill="{TEXT_SECONDARY}" text-anchor="middle">for up to unlimited family members on Premium</text>
<rect x="{w//2 - 115}" y="{h - 60}" width="230" height="46" rx="23" fill="{ACCENT_BLUE}"/>
<text x="{w//2}" y="{h - 33}" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="{TEXT_PRIMARY}" text-anchor="middle">Protect My Family</text>
</svg>'''
return svg
def g_family_figures(w, h):
"""Generate simple family figure silhouettes."""
cx = w // 2
base_y = h // 2 + 60
return f'''
<!-- Grandparent L -->
<circle cx="{cx - 110}" cy="{base_y - 55}" r="22" fill="#33415580"/>
<rect x="{cx - 125}" y="{base_y - 30}" width="30" height="50" rx="8" fill="#33415560"/>
<!-- Parent L -->
<circle cx="{cx - 50}" cy="{base_y - 70}" r="25" fill="#47556980"/>
<rect x="{cx - 68}" y="{base_y - 42}" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Child -->
<circle cx="{cx + 15}" cy="{base_y - 60}" r="18" fill="#64748b80"/>
<rect x="{cx + 2}" y="{base_y - 40}" width="26" height="40" rx="8" fill="#64748b60"/>
<!-- Parent R -->
<circle cx="{cx + 80}" cy="{base_y - 70}" r="25" fill="#47556980"/>
<rect x="{cx + 62}" y="{base_y - 42}" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Grandparent R -->
<circle cx="{cx + 140}" cy="{base_y - 55}" r="22" fill="#33415580"/>
<rect x="{cx + 125}" y="{base_y - 30}" width="30" height="50" rx="8" fill="#33415560"/>
'''
def meta_d_1x1():
return meta_d_base(1080, 1080)
def meta_d_191():
return meta_d_base(1200, 628)
def meta_d_45():
return meta_d_base(1080, 1350)
# ============================================================
# GENERATE ALL
# ============================================================
if __name__ == "__main__":
assets = [
# Google Display
("gd_square_1200x1200.svg", gd_square()),
("gd_landscape_1200x628.svg", gd_landscape()),
("gd_portrait_600x750.svg", gd_portrait()),
# Meta Creative A
("meta_a_1x1_1080x1080.svg", meta_a_1x1()),
("meta_a_191_1200x628.svg", meta_a_191()),
# Meta Creative B
("meta_b_1x1_1080x1080.svg", meta_b_1x1()),
("meta_b_45_1080x1350.svg", meta_b_45()),
# Meta Creative C
("meta_c_1x1_1080x1080.svg", meta_c_1x1()),
# Meta Creative D
("meta_d_1x1_1080x1080.svg", meta_d_1x1()),
("meta_d_191_1200x628.svg", meta_d_191()),
("meta_d_45_1080x1350.svg", meta_d_45()),
]
for name, svg in assets:
path = os.path.join(OUT, name)
with open(path, 'w') as f:
f.write(svg)
print(f"Created: {name} ({len(svg)} bytes)")
print(f"\nDone. Generated {len(assets)} SVG files in {OUT}")

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -0,0 +1,120 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 627" width="1200" height="627">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="50%" stop-color="#111827"/>
<stop offset="100%" stop-color="#0f1729"/>
</linearGradient>
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="phoneGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1e293b"/>
<stop offset="100%" stop-color="#0f172a"/>
</linearGradient>
<filter id="glow">
<feGaussianBlur stdDeviation="3" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="softGlow">
<feGaussianBlur stdDeviation="8" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Background -->
<rect width="1200" height="627" fill="url(#bg)"/>
<!-- Grid pattern -->
<g opacity="0.05" stroke="#3b82f6" stroke-width="0.5">
<line x1="0" y1="100" x2="1200" y2="100"/>
<line x1="0" y1="200" x2="1200" y2="200"/>
<line x1="0" y1="300" x2="1200" y2="300"/>
<line x1="0" y1="400" x2="1200" y2="400"/>
<line x1="0" y1="500" x2="1200" y2="500"/>
<line x1="200" y1="0" x2="200" y2="627"/>
<line x1="400" y1="0" x2="400" y2="627"/>
<line x1="600" y1="0" x2="600" y2="627"/>
<line x1="800" y1="0" x2="800" y2="627"/>
<line x1="1000" y1="0" x2="1000" y2="627"/>
</g>
<!-- Decorative circle top-right -->
<circle cx="1050" cy="100" r="300" fill="#3b82f6" opacity="0.04"/>
<circle cx="1100" cy="50" r="200" fill="#06b6d4" opacity="0.03"/>
<!-- Left content area -->
<!-- Headline -->
<text x="60" y="200" font-family="DejaVu Sans, sans-serif" font-size="36" font-weight="bold" fill="#f1f5f9">
<tspan x="60" dy="0">AI Voice Cloning</tspan>
<tspan x="60" dy="48" fill="#3b82f6">Is the New Phishing Threat</tspan>
</text>
<!-- Body copy -->
<text x="60" y="330" font-family="DejaVu Sans, sans-serif" font-size="16" fill="#94a3b8">
<tspan x="60" dy="0">Cybercriminals are using AI-generated voice clones</tspan>
<tspan x="60" dy="28">to impersonate executives and family members.</tspan>
<tspan x="60" dy="28">ShieldAI detects synthetic voices in real time.</tspan>
</text>
<!-- CTA Button -->
<rect x="60" y="420" width="180" height="50" rx="25" fill="url(#accent)"/>
<text x="150" y="452" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#ffffff" text-anchor="middle">Learn More →</text>
<!-- Right side: Visual area -->
<!-- Large shield background glow -->
<circle cx="800" cy="330" r="180" fill="#3b82f6" opacity="0.06" filter="url(#softGlow)"/>
<!-- Shield icon -->
<g transform="translate(680, 200)">
<path d="M120 20 L220 60 L220 110 Q220 170 120 210 Q20 170 20 110 L20 60 Z" fill="url(#shieldGrad)" opacity="0.9"/>
</g>
<!-- Phone silhouette -->
<g transform="translate(710, 260)">
<rect x="0" y="0" width="50" height="90" rx="10" fill="url(#phoneGrad)" stroke="#334155" stroke-width="1.5"/>
<rect x="15" y="8" width="20" height="3" rx="1.5" fill="#3b82f6" opacity="0.5"/>
<circle cx="25" cy="68" r="8" fill="none" stroke="#334155" stroke-width="1"/>
<line x1="10" y1="20" x2="40" y2="20" stroke="#334155" stroke-width="0.5"/>
<line x1="10" y1="25" x2="35" y2="25" stroke="#334155" stroke-width="0.5"/>
<line x1="10" y1="30" x2="30" y2="30" stroke="#334155" stroke-width="0.5"/>
</g>
<!-- Sound wave lines from phone -->
<g stroke="#3b82f6" stroke-width="2" fill="none" opacity="0.5" filter="url(#glow)">
<path d="M770 290 Q790 280 770 270"/>
<path d="M780 300 Q810 285 780 270"/>
<path d="M790 310 Q830 290 790 270"/>
</g>
<!-- Executive silhouette -->
<g transform="translate(820, 230)" opacity="0.15">
<ellipse cx="40" cy="25" rx="25" ry="25" fill="#f1f5f9"/>
<rect x="0" y="50" width="80" height="100" rx="10" fill="#f1f5f9"/>
<rect x="-5" y="60" width="15" height="60" rx="5" fill="#f1f5f9"/>
<rect x="70" y="60" width="15" height="60" rx="5" fill="#f1f5f9"/>
</g>
<!-- Digital shield overlay on right -->
<g transform="translate(750, 170)" opacity="0.12">
<path d="M50 0 L100 30 L100 70 Q100 120 50 150 Q0 120 0 70 L0 30 Z" fill="none" stroke="#3b82f6" stroke-width="3"/>
<path d="M50 0 L100 30 L100 70 Q100 120 50 150 Q0 120 0 70 L0 30 Z" fill="none" stroke="#06b6d4" stroke-width="1" transform="translate(5, 5)"/>
</g>
<!-- Bottom branding bar -->
<rect x="0" y="577" width="1200" height="50" fill="#0a0f1e" opacity="0.8"/>
<line x1="0" y1="577" x2="1200" y2="577" stroke="#3b82f6" stroke-width="1" opacity="0.3"/>
<!-- ShieldAI logo -->
<g transform="translate(60, 590)">
<path d="M15 2 L28 12 L28 22 Q28 32 15 38 Q2 32 2 22 L2 12 Z" fill="url(#accent)" opacity="0.9"/>
<path d="M11 18 L15 18 L15 22 L19 22 L19 26 L15 26 L15 30 L11 30 L11 26 L7 26 L7 22 L11 22 Z" fill="white" opacity="0.9"/>
<text x="38" y="26" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#f1f5f9">ShieldAI</text>
<text x="115" y="26" font-family="DejaVu Sans, sans-serif" font-size="11" fill="#64748b">AI-Powered Identity Protection for Everyone</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

View File

@@ -0,0 +1,132 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 627" width="1200" height="627">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#05080f"/>
<stop offset="50%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#0d1117"/>
</linearGradient>
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="dangerGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#ef4444"/>
<stop offset="100%" stop-color="#dc2626"/>
</linearGradient>
<filter id="redGlow">
<feGaussianBlur stdDeviation="4" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="softGlow">
<feGaussianBlur stdDeviation="8" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Background -->
<rect width="1200" height="627" fill="url(#bg)"/>
<!-- Terminal scan lines -->
<g opacity="0.03">
<line x1="0" y1="0" x2="1200" y2="0" stroke="#22c55e" stroke-width="1"/>
<line x1="0" y1="4" x2="1200" y2="4" stroke="#22c55e" stroke-width="0.5"/>
<line x1="0" y1="8" x2="1200" y2="8" stroke="#22c55e" stroke-width="1"/>
</g>
<!-- Matrix rain effect lines -->
<g stroke="#22c55e" stroke-width="0.5" opacity="0.04">
<line x1="100" y1="0" x2="100" y2="627"/>
<line x1="300" y1="0" x2="300" y2="627"/>
<line x1="500" y1="0" x2="500" y2="627"/>
<line x1="700" y1="0" x2="700" y2="627"/>
<line x1="900" y1="0" x2="900" y2="627"/>
<line x1="1100" y1="0" x2="1100" y2="627"/>
</g>
<!-- Top-right decorative glow -->
<circle cx="1050" cy="100" r="250" fill="#ef4444" opacity="0.03"/>
<!-- Terminal window - left side -->
<g transform="translate(60, 120)">
<rect x="0" y="0" width="520" height="340" rx="8" fill="#0d1117" stroke="#1e293b" stroke-width="1.5"/>
<!-- Window chrome -->
<rect x="0" y="0" width="520" height="32" rx="8" fill="#161b22"/>
<rect x="0" y="16" width="520" height="16" fill="#161b22"/>
<circle cx="20" cy="16" r="5" fill="#ef4444"/>
<circle cx="37" cy="16" r="5" fill="#eab308"/>
<circle cx="54" cy="16" r="5" fill="#22c55e"/>
<text x="260" y="21" font-family="monospace" font-size="11" fill="#64748b" text-anchor="middle">DarkWatch Terminal — Scan Results</text>
<!-- Terminal content -->
<text x="16" y="60" font-family="monospace" font-size="12" fill="#22c55e">$ ./darkwatch --scan --deep</text>
<text x="16" y="82" font-family="monospace" font-size="12" fill="#64748b">Scanning 178 dark web marketplaces...</text>
<text x="16" y="104" font-family="monospace" font-size="12" fill="#64748b">Checking credentials associated with target@email.com</text>
<text x="16" y="126" font-family="monospace" font-size="12" fill="#64748b">Checking phone: +1 (555) ***-****</text>
<text x="16" y="148" font-family="monospace" font-size="12" fill="#22c55e">Scan complete. Found 12 exposures.</text>
<!-- Alert box -->
<rect x="16" y="170" width="488" height="44" rx="4" fill="#450a0a" stroke="#ef4444" stroke-width="1" opacity="0.9"/>
<circle cx="32" cy="192" r="5" fill="#ef4444" filter="url(#redGlow)"/>
<text x="44" y="196" font-family="monospace" font-size="12" fill="#fca5a5" font-weight="bold">CRITICAL: Email + password exposed on 3 marketplaces</text>
<!-- Exposed data rows -->
<rect x="16" y="222" width="488" height="30" rx="2" fill="#1a2332" opacity="0.5"/>
<text x="24" y="241" font-family="monospace" font-size="11" fill="#94a3b8">email@example.com</text>
<text x="280" y="241" font-family="monospace" font-size="11" fill="#ef4444">P@ssw0rd123!</text>
<text x="460" y="241" font-family="monospace" font-size="11" fill="#f59e0b">LEAKED</text>
<rect x="16" y="255" width="488" height="30" rx="2" fill="#1a2332" opacity="0.3"/>
<text x="24" y="274" font-family="monospace" font-size="11" fill="#94a3b8">+1 (555) 234-5678</text>
<text x="280" y="274" font-family="monospace" font-size="11" fill="#ef4444">[HASHED]</text>
<text x="460" y="274" font-family="monospace" font-size="11" fill="#f59e0b">LEAKED</text>
<rect x="16" y="288" width="488" height="30" rx="2" fill="#1a2332" opacity="0.5"/>
<text x="24" y="307" font-family="monospace" font-size="11" fill="#94a3b8">SSN: ***-**-1234</text>
<text x="280" y="307" font-family="monospace" font-size="11" fill="#ef4444">[REDACTED]</text>
<text x="460" y="307" font-family="monospace" font-size="11" fill="#ef4444">HIGH RISK</text>
</g>
<!-- Right side: Headline & CTA -->
<text x="660" y="200" font-family="DejaVu Sans, sans-serif" font-size="36" font-weight="bold" fill="#f1f5f9">
<tspan x="660" dy="0">Your Personal Data</tspan>
<tspan x="660" dy="48" fill="#ef4444">Is on the Dark Web</tspan>
</text>
<text x="660" y="320" font-family="DejaVu Sans, sans-serif" font-size="16" fill="#94a3b8">
<tspan x="660" dy="0">70% of data breaches expose employee</tspan>
<tspan x="660" dy="28">personal contact info. ShieldAI's DarkWatch</tspan>
<tspan x="660" dy="28">scans 100+ marketplaces daily for</tspan>
<tspan x="660" dy="28">exposed emails, phones, and SSNs.</tspan>
</text>
<!-- Stats row -->
<g transform="translate(660, 400)">
<rect x="0" y="0" width="110" height="60" rx="8" fill="#1a2332" stroke="#1e293b" stroke-width="1"/>
<text x="55" y="25" font-family="DejaVu Sans, sans-serif" font-size="20" font-weight="bold" fill="#ef4444" text-anchor="middle">178</text>
<text x="55" y="48" font-family="DejaVu Sans, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Marketplaces</text>
<rect x="125" y="0" width="110" height="60" rx="8" fill="#1a2332" stroke="#1e293b" stroke-width="1"/>
<text x="180" y="25" font-family="DejaVu Sans, sans-serif" font-size="20" font-weight="bold" fill="#f59e0b" text-anchor="middle">24/7</text>
<text x="180" y="48" font-family="DejaVu Sans, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Monitoring</text>
<rect x="250" y="0" width="110" height="60" rx="8" fill="#1a2332" stroke="#1e293b" stroke-width="1"/>
<text x="305" y="25" font-family="DejaVu Sans, sans-serif" font-size="20" font-weight="bold" fill="#22c55e" text-anchor="middle">99.7%</text>
<text x="305" y="48" font-family="DejaVu Sans, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Accuracy</text>
</g>
<!-- CTA Button -->
<rect x="660" y="490" width="200" height="50" rx="25" fill="url(#accent)"/>
<text x="760" y="522" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#ffffff" text-anchor="middle">Monitor Your Data →</text>
<!-- Bottom branding bar -->
<rect x="0" y="577" width="1200" height="50" fill="#05080f" opacity="0.9"/>
<line x1="0" y1="577" x2="1200" y2="577" stroke="#3b82f6" stroke-width="1" opacity="0.3"/>
<!-- ShieldAI logo -->
<g transform="translate(60, 590)">
<path d="M15 2 L28 12 L28 22 Q28 32 15 38 Q2 32 2 22 L2 12 Z" fill="url(#accent)" opacity="0.9"/>
<path d="M11 18 L15 18 L15 22 L19 22 L19 26 L15 26 L15 30 L11 30 L11 26 L7 26 L7 22 L11 22 Z" fill="white" opacity="0.9"/>
<text x="38" y="26" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#f1f5f9">ShieldAI</text>
<text x="115" y="26" font-family="DejaVu Sans, sans-serif" font-size="11" fill="#64748b">AI-Powered Identity Protection for Everyone</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -0,0 +1,162 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 627" width="1200" height="627">
<defs>
<linearGradient id="bgLeft" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#111827"/>
</linearGradient>
<linearGradient id="bgRight" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#1a0f0a"/>
<stop offset="100%" stop-color="#2d1a10"/>
</linearGradient>
<linearGradient id="accent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="warmAccent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#f59e0b"/>
<stop offset="100%" stop-color="#f97316"/>
</linearGradient>
<linearGradient id="dividerGrad" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#3b82f6" stop-opacity="0"/>
<stop offset="50%" stop-color="#3b82f6" stop-opacity="0.3"/>
<stop offset="100%" stop-color="#f59e0b" stop-opacity="0"/>
</linearGradient>
<filter id="softGlow">
<feGaussianBlur stdDeviation="6" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- LEFT HALF: Professional -->
<!-- Background left -->
<rect x="0" y="0" width="600" height="577" fill="url(#bgLeft)"/>
<!-- Subtle grid left -->
<g opacity="0.04" stroke="#3b82f6" stroke-width="0.5">
<line x1="0" y1="100" x2="600" y2="100"/>
<line x1="0" y1="200" x2="600" y2="200"/>
<line x1="0" y1="300" x2="600" y2="300"/>
<line x1="0" y1="400" x2="600" y2="400"/>
<line x1="0" y1="500" x2="600" y2="500"/>
<line x1="150" y1="0" x2="150" y2="577"/>
<line x1="300" y1="0" x2="300" y2="577"/>
<line x1="450" y1="0" x2="450" y2="577"/>
</g>
<!-- Office desk illustration -->
<g transform="translate(100, 160)" opacity="0.12">
<!-- Monitor -->
<rect x="30" y="20" width="100" height="65" rx="3" fill="#3b82f6"/>
<rect x="35" y="25" width="90" height="55" rx="1" fill="#0a0f1e"/>
<!-- Screen content -->
<rect x="40" y="35" width="40" height="3" rx="1" fill="#3b82f6" opacity="0.5"/>
<rect x="40" y="42" width="60" height="3" rx="1" fill="#3b82f6" opacity="0.3"/>
<rect x="40" y="49" width="25" height="3" rx="1" fill="#3b82f6" opacity="0.3"/>
<!-- Stand -->
<rect x="55" y="85" width="50" height="5" rx="1" fill="#1e293b"/>
<rect x="70" y="90" width="20" height="10" fill="#1e293b"/>
<!-- Desk -->
<rect x="0" y="100" width="180" height="5" rx="1" fill="#1e293b"/>
</g>
<!-- Professional icon label -->
<g transform="translate(60, 130)">
<circle cx="20" cy="20" r="20" fill="#3b82f6" opacity="0.15"/>
<path d="M12 28 L12 20 L20 16 L28 20 L28 28 Z" fill="#3b82f6" opacity="0.8"/>
<text x="50" y="25" font-family="DejaVu Sans, sans-serif" font-size="14" font-weight="bold" fill="#3b82f6">Work Protection</text>
</g>
<!-- Professional features -->
<g transform="translate(60, 280)" opacity="0.7">
<circle cx="8" cy="8" r="4" fill="#22c55e"/>
<text x="20" y="13" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#94a3b8">AI voice clone detection</text>
<circle cx="8" cy="33" r="4" fill="#22c55e"/>
<text x="20" y="38" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#94a3b8">Dark web monitoring</text>
<circle cx="8" cy="58" r="4" fill="#22c55e"/>
<text x="20" y="63" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#94a3b8">Spam call/text blocking</text>
<circle cx="8" cy="83" r="4" fill="#22c55e"/>
<text x="20" y="88" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#94a3b8">Enterprise-grade security</text>
</g>
<!-- RIGHT HALF: Family -->
<!-- Background right -->
<rect x="600" y="0" width="600" height="577" fill="url(#bgRight)"/>
<!-- Warm glow background -->
<circle cx="850" cy="250" r="200" fill="#f59e0b" opacity="0.04"/>
<!-- Family illustration -->
<g transform="translate(730, 180)" opacity="0.12">
<!-- Adult 1 -->
<ellipse cx="40" cy="20" rx="18" ry="18" fill="#f59e0b"/>
<rect x="15" y="38" width="50" height="65" rx="8" fill="#f59e0b"/>
<!-- Adult 2 -->
<ellipse cx="120" cy="20" rx="18" ry="18" fill="#f59e0b"/>
<rect x="95" y="38" width="50" height="65" rx="8" fill="#f59e0b"/>
<!-- Child 1 -->
<ellipse cx="80" cy="55" rx="14" ry="14" fill="#f59e0b"/>
<rect x="64" y="69" width="32" height="40" rx="6" fill="#f59e0b"/>
<!-- Child 2 -->
<ellipse cx="160" cy="55" rx="14" ry="14" fill="#f97316"/>
<rect x="144" y="69" width="32" height="35" rx="6" fill="#f97316"/>
<!-- Shield over all -->
<path d="M80 10 L160 40 L160 75 Q160 110 80 135 Q0 110 0 75 L0 40 Z" fill="none" stroke="#f59e0b" stroke-width="2" opacity="0.5"/>
</g>
<!-- Family icon label -->
<g transform="translate(630, 130)">
<circle cx="20" cy="20" r="20" fill="#f59e0b" opacity="0.15"/>
<path d="M12 16 A4 4 0 1 1 12 24 A4 4 0 1 1 12 16z" fill="#f59e0b" opacity="0.8"/>
<path d="M8 25 Q12 30 20 30 Q28 30 32 25" fill="#f59e0b" opacity="0.8"/>
<text x="50" y="25" font-family="DejaVu Sans, sans-serif" font-size="14" font-weight="bold" fill="#f59e0b">Family Safety</text>
</g>
<!-- Family features -->
<g transform="translate(630, 280)" opacity="0.7">
<circle cx="8" cy="8" r="4" fill="#22c55e"/>
<text x="20" y="13" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#d4a574">Unlimited family members</text>
<circle cx="8" cy="33" r="4" fill="#22c55e"/>
<text x="20" y="38" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#d4a574">Senior scam protection</text>
<circle cx="8" cy="58" r="4" fill="#22c55e"/>
<text x="20" y="63" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#d4a574">Real-time alerts to family</text>
<circle cx="8" cy="83" r="4" fill="#22c55e"/>
<text x="20" y="88" font-family="DejaVu Sans, sans-serif" font-size="13" fill="#d4a574">24/7 support for all members</text>
</g>
<!-- Center divider -->
<line x1="600" y1="50" x2="600" y2="527" stroke="url(#dividerGrad)" stroke-width="2"/>
<!-- Unified by ShieldAI badge -->
<g transform="translate(380, 370)">
<rect x="0" y="0" width="440" height="60" rx="30" fill="#1a2332" stroke="#334155" stroke-width="1" opacity="0.9"/>
<path d="M25 15 L45 28 L45 40 Q45 50 25 55 Q5 50 5 40 L5 28 Z" fill="url(#accent)" opacity="0.9"/>
<path d="M19 30 L23 30 L23 34 L27 34 L27 38 L23 38 L23 42 L19 42 L19 38 L15 38 L15 34 L19 34 Z" fill="white" opacity="0.9"/>
<text x="55" y="35" font-family="DejaVu Sans, sans-serif" font-size="18" font-weight="bold" fill="#f1f5f9">Unified by</text>
<text x="155" y="35" font-family="DejaVu Sans, sans-serif" font-size="18" font-weight="bold" fill="#3b82f6">ShieldAI</text>
</g>
<!-- Headline at center-top -->
<text x="600" y="100" font-family="DejaVu Sans, sans-serif" font-size="34" font-weight="bold" fill="#f1f5f9" text-anchor="middle">
<tspan x="600" dy="0">One Platform.</tspan>
<tspan x="600" dy="44" fill="#3b82f6">Work Protection +</tspan>
<tspan x="600" dy="44" fill="#f59e0b">Family Safety.</tspan>
</text>
<!-- CTA -->
<rect x="460" y="500" width="280" height="50" rx="25" fill="url(#accent)"/>
<text x="600" y="532" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#ffffff" text-anchor="middle">Join 1,000+ Early Adopters →</text>
<!-- Bottom branding bar -->
<rect x="0" y="577" width="1200" height="50" fill="#05080f" opacity="0.9"/>
<line x1="0" y1="577" x2="1200" y2="577" stroke="url(#accent)" stroke-width="1" opacity="0.3"/>
<!-- ShieldAI logo -->
<g transform="translate(60, 590)">
<path d="M15 2 L28 12 L28 22 Q28 32 15 38 Q2 32 2 22 L2 12 Z" fill="url(#accent)" opacity="0.9"/>
<path d="M11 18 L15 18 L15 22 L19 22 L19 26 L15 26 L15 30 L11 30 L11 26 L7 26 L7 22 L11 22 Z" fill="white" opacity="0.9"/>
<text x="38" y="26" font-family="DejaVu Sans, sans-serif" font-size="16" font-weight="bold" fill="#f1f5f9">ShieldAI</text>
<text x="115" y="26" font-family="DejaVu Sans, sans-serif" font-size="11" fill="#64748b">AI-Powered Identity Protection for Everyone</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -0,0 +1,40 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="628" viewBox="0 0 1200 628">
<defs>
<linearGradient id="bgL" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#0a1528"/>
<stop offset="100%" stop-color="#0f1d35"/>
</linearGradient>
<linearGradient id="bgR" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#1a0a0a"/>
<stop offset="100%" stop-color="#2d0f0f"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<filter id="glitch2">
<feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="2" result="noise"/>
<feDisplacementMap in="SourceGraphic" in2="noise" scale="6" xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs>
<rect x="0" y="0" width="600" height="628" fill="url(#bgL)"/>
<circle cx="300" cy="284" r="35" fill="#3b82f630" stroke="#3b82f6" stroke-width="2"/>
<circle cx="250" cy="234" r="25" fill="#3b82f620" stroke="#3b82f6" stroke-width="1.5"/>
<circle cx="355" cy="239" r="22" fill="#3b82f620" stroke="#3b82f6" stroke-width="1.5"/>
<text x="300" y="374" font-family="system-ui, sans-serif" font-size="20" font-weight="600" fill="#f1f5f9" text-anchor="middle">Your Family</text>
<rect x="0" y="578" width="600" height="50" fill="#1a2332"/>
<text x="300" y="606" font-family="system-ui, sans-serif" font-size="13" fill="#94a3b8" text-anchor="middle">Real voice, real moment</text>
<rect x="599" y="0" width="3" height="628" fill="#1e293b"/>
<rect x="600" y="0" width="600" height="628" fill="url(#bgR)"/>
<g filter="url(#glitch2)">
<circle cx="900" cy="284" r="35" fill="#ef444430" stroke="#ef4444" stroke-width="2"/>
<circle cx="850" cy="234" r="25" fill="#ef444420" stroke="#ef4444" stroke-width="1.5"/>
<circle cx="955" cy="239" r="22" fill="#ef444420" stroke="#ef4444" stroke-width="1.5"/>
</g>
<text x="900" y="374" font-family="system-ui, sans-serif" font-size="20" font-weight="600" fill="#ef4444" text-anchor="middle">AI Clone</text>
<rect x="600" y="578" width="600" height="50" fill="#ef444422"/>
<text x="900" y="606" font-family="system-ui, sans-serif" font-size="13" fill="#64748b" text-anchor="middle">Synthetic voice clone</text>
<text x="30" y="50" font-family="system-ui, sans-serif" font-size="16" font-weight="600" fill="#f1f5f9">Your Family's Voice, Protected</text>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -0,0 +1,60 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1080" viewBox="0 0 1080 1080">
<defs>
<linearGradient id="bgGradL" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#0a1528"/>
<stop offset="100%" stop-color="#0f1d35"/>
</linearGradient>
<linearGradient id="bgGradR" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#1a0a0a"/>
<stop offset="100%" stop-color="#2d0f0f"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="distortGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#ef444466"/>
<stop offset="100%" stop-color="#ef444422"/>
</linearGradient>
<filter id="glitch">
<feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="3" result="noise"/>
<feDisplacementMap in="SourceGraphic" in2="noise" scale="8" xChannelSelector="R" yChannelSelector="G"/>
</filter>
</defs>
<!-- Left panel: normal family -->
<rect x="0" y="0" width="540" height="1080" fill="url(#bgGradL)"/>
<circle cx="270" cy="280" r="60" fill="#3b82f630" stroke="#3b82f6" stroke-width="2"/>
<circle cx="210" cy="220" r="40" fill="#3b82f620" stroke="#3b82f6" stroke-width="1.5"/>
<circle cx="340" cy="230" r="35" fill="#3b82f620" stroke="#3b82f6" stroke-width="1.5"/>
<circle cx="240" cy="360" r="45" fill="#3b82f620" stroke="#3b82f6" stroke-width="1.5"/>
<rect x="200" y="420" width="140" height="180" rx="10" fill="#3b82f615" stroke="#3b82f6" stroke-width="1.5" opacity="0.6"/>
<text x="270" y="680" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#f1f5f9" text-anchor="middle">Your Family</text>
<text x="270" y="710" font-family="system-ui, sans-serif" font-size="15" fill="#94a3b8" text-anchor="middle">Real &amp; Unfiltered</text>
<!-- Center divider with phone icon -->
<rect x="538" y="0" width="4" height="1080" fill="#1e293b"/>
<g transform="translate(540, 480)">
<rect x="-25" y="-50" width="50" height="100" rx="10" fill="#3b82f6" opacity="0.3"/>
<path d="M-10,-10 Q-20,0 -10,10" fill="none" stroke="#ef4444" stroke-width="2.5" stroke-linecap="round"/>
<path d="M0,-20 Q-25,0 0,20" fill="none" stroke="#ef4444" stroke-width="2.5" stroke-linecap="round"/>
<path d="M10,-30 Q-30,0 10,30" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round" opacity="0.7"/>
</g>
<!-- Right panel: distorted/AI -->
<rect x="540" y="0" width="540" height="1080" fill="url(#bgGradR)"/>
<g filter="url(#glitch)">
<circle cx="810" cy="280" r="60" fill="#ef444430" stroke="#ef4444" stroke-width="2"/>
<circle cx="750" cy="220" r="40" fill="#ef444420" stroke="#ef4444" stroke-width="1.5"/>
<circle cx="880" cy="230" r="35" fill="#ef444420" stroke="#ef4444" stroke-width="1.5"/>
<circle cx="780" cy="360" r="45" fill="#ef444420" stroke="#ef4444" stroke-width="1.5"/>
<rect x="740" y="420" width="140" height="180" rx="10" fill="#ef444415" stroke="#ef4444" stroke-width="1.5" opacity="0.6"/>
</g>
<text x="810" y="680" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#ef4444" text-anchor="middle">AI Clone</text>
<text x="810" y="710" font-family="system-ui, sans-serif" font-size="15" fill="#64748b" text-anchor="middle">Synthetic &amp; Dangerous</text>
<!-- Bottom brand bar -->
<rect x="0" y="990" width="1080" height="90" fill="#1a2332"/>
<text x="540" y="1025" font-family="system-ui, sans-serif" font-size="22" font-weight="600" fill="#f1f5f9" text-anchor="middle">Your Family's Voice, Protected</text>
<text x="540" y="1052" font-family="system-ui, sans-serif" font-size="15" fill="#94a3b8" text-anchor="middle">ShieldAI detects AI voice cloning with 99.7% accuracy</text>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -0,0 +1,63 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1080" viewBox="0 0 1080 1080">
<defs>
<linearGradient id="bgTerm" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#050a05"/>
<stop offset="100%" stop-color="#0a1a0a"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#22c55e"/>
<stop offset="100%" stop-color="#16a34a"/>
</linearGradient>
</defs>
<rect width="1080" height="1080" fill="url(#bgTerm)"/>
<!-- Matrix-like grid lines -->
<g stroke="#22c55e10" stroke-width="0.5">
<line x1="0" y1="100" x2="1080" y2="100"/>
<line x1="0" y1="200" x2="1080" y2="200"/>
<line x1="0" y1="300" x2="1080" y2="300"/>
<line x1="0" y1="400" x2="1080" y2="400"/>
<line x1="0" y1="500" x2="1080" y2="500"/>
<line x1="0" y1="600" x2="1080" y2="600"/>
<line x1="0" y1="700" x2="1080" y2="700"/>
<line x1="0" y1="800" x2="1080" y2="800"/>
<line x1="0" y1="900" x2="1080" y2="900"/>
<line x1="0" y1="1000" x2="1080" y2="1000"/>
</g>
<!-- Terminal window frame -->
<rect x="100" y="200" width="880" height="500" rx="12" fill="#0d1f0d" stroke="#22c55e30" stroke-width="1.5"/>
<rect x="100" y="200" width="880" height="40" rx="12" fill="#143014"/>
<rect x="100" y="228" width="880" height="12" fill="#143014"/>
<circle cx="130" cy="220" r="6" fill="#ef4444"/>
<circle cx="155" cy="220" r="6" fill="#f59e0b"/>
<circle cx="180" cy="220" r="6" fill="#22c55e"/>
<text x="200" y="225" font-family="monospace" font-size="14" fill="#64748b">darkwatch@shieldai:~$</text>
<!-- Terminal content -->
<text x="130" y="280" font-family="monospace" font-size="16" fill="#f59e0b">> Scanning 150+ dark web marketplaces...</text>
<text x="130" y="320" font-family="monospace" font-size="16" fill="#f59e0b">> Analyzing breach databases...</text>
<text x="130" y="380" font-family="monospace" font-size="18" font-weight="bold" fill="#ef4444">! ALERT: MATCHES FOUND</text>
<rect x="130" y="410" width="320" height="28" fill="#ef444415"/>
<text x="140" y="430" font-family="monospace" font-size="15" fill="#ef4444">email:***@gmail.com — 3 breaches</text>
<rect x="130" y="445" width="320" height="28" fill="#ef444415"/>
<text x="140" y="465" font-family="monospace" font-size="15" fill="#ef4444">phone:+1 (555) ***-8842 — 2 breaches</text>
<rect x="130" y="480" width="320" height="28" fill="#ef444415"/>
<text x="140" y="500" font-family="monospace" font-size="15" fill="#ef4444">ssn:***-**-6781 — 1 breach</text>
<text x="130" y="550" font-family="monospace" font-size="16" fill="#22c55e">> Total exposures found: 5,284</text>
<text x="130" y="580" font-family="monospace" font-size="16" fill="#06b6d4">> Run scan on your data? [Y/n] _</text>
<!-- Bottom CTA -->
<rect x="340" y="750" width="400" height="56" rx="28" fill="#22c55e"/>
<text x="540" y="785" font-family="system-ui, sans-serif" font-size="20" font-weight="700" fill="#050a05" text-anchor="middle">Scan Your Email Free</text>
<text x="540" y="860" font-family="system-ui, sans-serif" font-size="16" fill="#64748b" text-anchor="middle">ShieldAI DarkWatch — 24/7 Dark Web Monitoring</text>
<text x="540" y="920" font-family="system-ui, sans-serif" font-size="28" font-weight="700" fill="#f1f5f9" text-anchor="middle">5K+ Exposures Found.</text>
<text x="540" y="960" font-family="system-ui, sans-serif" font-size="28" font-weight="700" fill="#22c55e" text-anchor="middle">What About Yours?</text>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 KiB

View File

@@ -0,0 +1,52 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1350" viewBox="0 0 1080 1350">
<defs>
<linearGradient id="bgB45" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#050a05"/>
<stop offset="100%" stop-color="#0a1a0a"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#22c55e"/>
<stop offset="100%" stop-color="#16a34a"/>
</linearGradient>
</defs>
<rect width="1080" height="1350" fill="url(#bgB45)"/>
<!-- Terminal -->
<rect x="80" y="250" width="920" height="520" rx="12" fill="#0d1f0d" stroke="#22c55e30" stroke-width="1.5"/>
<rect x="80" y="250" width="920" height="40" rx="12" fill="#143014"/>
<rect x="80" y="278" width="920" height="12" fill="#143014"/>
<circle cx="110" cy="270" r="6" fill="#ef4444"/>
<circle cx="135" cy="270" r="6" fill="#f59e0b"/>
<circle cx="160" cy="270" r="6" fill="#22c55e"/>
<text x="180" y="275" font-family="monospace" font-size="14" fill="#64748b">darkwatch@shieldai:~$</text>
<text x="110" y="330" font-family="monospace" font-size="16" fill="#f59e0b">> Scanning 150+ dark web marketplaces...</text>
<text x="110" y="360" font-family="monospace" font-size="16" fill="#f59e0b">> Cross-referencing databases...</text>
<text x="110" y="415" font-family="monospace" font-size="18" font-weight="bold" fill="#ef4444">! ALERT: DATA EXPOSED</text>
<rect x="110" y="445" width="350" height="28" fill="#ef444415"/>
<text x="120" y="465" font-family="monospace" font-size="14" fill="#ef4444">email:***@gmail.com — 3 breaches</text>
<rect x="110" y="480" width="350" height="28" fill="#ef444415"/>
<text x="120" y="500" font-family="monospace" font-size="14" fill="#ef4444">phone:+1 (555) ***-8842 — 2 breaches</text>
<rect x="110" y="515" width="350" height="28" fill="#ef444415"/>
<text x="120" y="535" font-family="monospace" font-size="14" fill="#ef4444">ssn:***-**-6781 — 1 breach</text>
<rect x="110" y="550" width="350" height="28" fill="#ef444415"/>
<text x="120" y="570" font-family="monospace" font-size="14" fill="#ef4444">Address:*** Oak St — 1 breach</text>
<text x="110" y="625" font-family="monospace" font-size="16" fill="#22c55e">> Total exposures monitored: 5,284</text>
<text x="110" y="660" font-family="monospace" font-size="16" fill="#06b6d4">> Run scan on your data? [Y/n] _</text>
<text x="540" y="840" font-family="system-ui, sans-serif" font-size="30" font-weight="700" fill="#f1f5f9" text-anchor="middle">Your Data May Already Be</text>
<text x="540" y="885" font-family="system-ui, sans-serif" font-size="30" font-weight="700" fill="#ef4444" text-anchor="middle">For Sale on the Dark Web</text>
<text x="540" y="940" font-family="system-ui, sans-serif" font-size="16" fill="#94a3b8" text-anchor="middle">ShieldAI scans 150+ marketplaces 24/7 and alerts you instantly</text>
<rect x="365" y="1000" width="350" height="56" rx="28" fill="#22c55e"/>
<text x="540" y="1035" font-family="system-ui, sans-serif" font-size="20" font-weight="700" fill="#050a05" text-anchor="middle">Scan Your Email Free</text>
<text x="540" y="1300" font-family="system-ui, sans-serif" font-size="14" fill="#64748b" text-anchor="middle">ShieldAI — AI-Powered Identity Protection for Everyone</text>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

View File

@@ -0,0 +1,46 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1080" viewBox="0 0 1080 1080">
<defs>
<linearGradient id="bgC" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="100%" stop-color="#050812"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1080" height="1080" fill="url(#bgC)"/>
<rect width="1080" height="6" fill="url(#brandBar)"/>
<text x="540" y="140" font-family="system-ui, sans-serif" font-size="42" font-weight="700" fill="#f1f5f9" text-anchor="middle">3 Ways ShieldAI Protects Your Family</text>
<text x="540" y="185" font-family="system-ui, sans-serif" font-size="18" fill="#94a3b8" text-anchor="middle">VoicePrint + DarkWatch + SpamShield</text>
<rect x="60" y="280" width="300" height="400" rx="16" fill="#1a2332" stroke="#06b6d430" stroke-width="1.5"/>
<circle cx="210" cy="340" r="40" fill="#06b6d422" stroke="#06b6d4" stroke-width="2"/>
<text x="210" y="345" font-family="system-ui, sans-serif" font-size="18" font-weight="700" fill="#06b6d4" text-anchor="middle">VoicePrint</text>
<text x="210" y="400" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">AI Voice Clone</text>
<text x="210" y="432" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Detection</text>
<text x="210" y="460" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">Real-time detection</text>
<text x="210" y="485" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">of synthetic voices</text>
<text x="210" y="510" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">with 99.7% accuracy</text>
<rect x="390" y="280" width="300" height="400" rx="16" fill="#1a2332" stroke="#3b82f630" stroke-width="1.5"/>
<circle cx="540" cy="340" r="40" fill="#3b82f622" stroke="#3b82f6" stroke-width="2"/>
<text x="540" y="345" font-family="system-ui, sans-serif" font-size="18" font-weight="700" fill="#3b82f6" text-anchor="middle">DarkWatch</text>
<text x="540" y="400" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Dark Web</text>
<text x="540" y="432" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Monitoring</text>
<text x="540" y="460" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">24/7 scanning of</text>
<text x="540" y="485" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">150+ marketplaces</text>
<text x="540" y="510" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">for your data</text>
<rect x="720" y="280" width="300" height="400" rx="16" fill="#1a2332" stroke="#22c55e30" stroke-width="1.5"/>
<circle cx="870" cy="340" r="40" fill="#22c55e22" stroke="#22c55e" stroke-width="2"/>
<text x="870" y="345" font-family="system-ui, sans-serif" font-size="18" font-weight="700" fill="#22c55e" text-anchor="middle">SpamShield</text>
<text x="870" y="400" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Spam Call &amp;</text>
<text x="870" y="432" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Text Blocking</text>
<text x="870" y="460" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">AI-powered filtering</text>
<text x="870" y="485" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">of spam calls</text>
<text x="870" y="510" font-family="system-ui, sans-serif" font-size="14" fill="#94a3b8" text-anchor="middle">and text messages</text>
<rect x="405" y="760" width="270" height="52" rx="26" fill="#3b82f6"/>
<text x="540" y="793" font-family="system-ui, sans-serif" font-size="18" font-weight="600" fill="#f1f5f9" text-anchor="middle">Join the Waitlist</text>
<text x="540" y="870" font-family="system-ui, sans-serif" font-size="15" fill="#64748b" text-anchor="middle">Three critical protections, one powerful platform</text>
<text x="540" y="900" font-family="system-ui, sans-serif" font-size="14" fill="#64748b" text-anchor="middle">Start free. Launching soon.</text>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

View File

@@ -0,0 +1,60 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="628" viewBox="0 0 1200 628">
<defs>
<radialGradient id="shieldGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#3b82f630"/>
<stop offset="100%" stop-color="#3b82f600"/>
</radialGradient>
<linearGradient id="bgD" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="60%" stop-color="#0d1a30"/>
<stop offset="100%" stop-color="#0a0f1e"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGradD" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1200" height="628" fill="url(#bgD)"/>
<rect width="1200" height="5" fill="url(#brandBar)"/>
<!-- Digital shield overlay -->
<circle cx="600" cy="314" r="238.64000000000001" fill="url(#shieldGlow)"/>
<g transform="translate(600, 284)">
<path d="M-60,-55 L60,-55 L65,15 Q65,55 35,75 L0,90 L-35,75 Q-65,55 -65,15 Z" fill="none" stroke="url(#shieldGradD)" stroke-width="3" opacity="0.8"/>
<path d="M-25,-5 L0,25 L30,-15" fill="none" stroke="#22c55e" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<!-- Family figures (simplified) -->
<!-- Grandparent L -->
<circle cx="490" cy="319" r="22" fill="#33415580"/>
<rect x="475" y="344" width="30" height="50" rx="8" fill="#33415560"/>
<!-- Parent L -->
<circle cx="550" cy="304" r="25" fill="#47556980"/>
<rect x="532" y="332" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Child -->
<circle cx="615" cy="314" r="18" fill="#64748b80"/>
<rect x="602" y="334" width="26" height="40" rx="8" fill="#64748b60"/>
<!-- Parent R -->
<circle cx="680" cy="304" r="25" fill="#47556980"/>
<rect x="662" y="332" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Grandparent R -->
<circle cx="740" cy="319" r="22" fill="#33415580"/>
<rect x="725" y="344" width="30" height="50" rx="8" fill="#33415560"/>
<text x="600" y="468" font-family="system-ui, sans-serif" font-size="32" font-weight="700" fill="#f1f5f9" text-anchor="middle">Protect Your Whole Family</text>
<text x="600" y="513" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">AI voice clone detection + dark web monitoring + spam blocking</text>
<text x="600" y="543" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">for up to unlimited family members on Premium</text>
<rect x="485" y="568" width="230" height="46" rx="23" fill="#3b82f6"/>
<text x="600" y="595" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Protect My Family</text>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -0,0 +1,60 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1080" viewBox="0 0 1080 1080">
<defs>
<radialGradient id="shieldGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#3b82f630"/>
<stop offset="100%" stop-color="#3b82f600"/>
</radialGradient>
<linearGradient id="bgD" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="60%" stop-color="#0d1a30"/>
<stop offset="100%" stop-color="#0a0f1e"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGradD" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1080" height="1080" fill="url(#bgD)"/>
<rect width="1080" height="5" fill="url(#brandBar)"/>
<!-- Digital shield overlay -->
<circle cx="540" cy="540" r="410.4" fill="url(#shieldGlow)"/>
<g transform="translate(540, 510)">
<path d="M-60,-55 L60,-55 L65,15 Q65,55 35,75 L0,90 L-35,75 Q-65,55 -65,15 Z" fill="none" stroke="url(#shieldGradD)" stroke-width="3" opacity="0.8"/>
<path d="M-25,-5 L0,25 L30,-15" fill="none" stroke="#22c55e" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<!-- Family figures (simplified) -->
<!-- Grandparent L -->
<circle cx="430" cy="545" r="22" fill="#33415580"/>
<rect x="415" y="570" width="30" height="50" rx="8" fill="#33415560"/>
<!-- Parent L -->
<circle cx="490" cy="530" r="25" fill="#47556980"/>
<rect x="472" y="558" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Child -->
<circle cx="555" cy="540" r="18" fill="#64748b80"/>
<rect x="542" y="560" width="26" height="40" rx="8" fill="#64748b60"/>
<!-- Parent R -->
<circle cx="620" cy="530" r="25" fill="#47556980"/>
<rect x="602" y="558" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Grandparent R -->
<circle cx="680" cy="545" r="22" fill="#33415580"/>
<rect x="665" y="570" width="30" height="50" rx="8" fill="#33415560"/>
<text x="540" y="920" font-family="system-ui, sans-serif" font-size="32" font-weight="700" fill="#f1f5f9" text-anchor="middle">Protect Your Whole Family</text>
<text x="540" y="965" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">AI voice clone detection + dark web monitoring + spam blocking</text>
<text x="540" y="995" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">for up to unlimited family members on Premium</text>
<rect x="425" y="1020" width="230" height="46" rx="23" fill="#3b82f6"/>
<text x="540" y="1047" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Protect My Family</text>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@@ -0,0 +1,60 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1080" height="1350" viewBox="0 0 1080 1350">
<defs>
<radialGradient id="shieldGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#3b82f630"/>
<stop offset="100%" stop-color="#3b82f600"/>
</radialGradient>
<linearGradient id="bgD" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0a0f1e"/>
<stop offset="60%" stop-color="#0d1a30"/>
<stop offset="100%" stop-color="#0a0f1e"/>
</linearGradient>
<linearGradient id="brandBar" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
<linearGradient id="shieldGradD" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#06b6d4"/>
</linearGradient>
</defs>
<rect width="1080" height="1350" fill="url(#bgD)"/>
<rect width="1080" height="5" fill="url(#brandBar)"/>
<!-- Digital shield overlay -->
<circle cx="540" cy="675" r="410.4" fill="url(#shieldGlow)"/>
<g transform="translate(540, 645)">
<path d="M-60,-55 L60,-55 L65,15 Q65,55 35,75 L0,90 L-35,75 Q-65,55 -65,15 Z" fill="none" stroke="url(#shieldGradD)" stroke-width="3" opacity="0.8"/>
<path d="M-25,-5 L0,25 L30,-15" fill="none" stroke="#22c55e" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
</g>
<!-- Family figures (simplified) -->
<!-- Grandparent L -->
<circle cx="430" cy="680" r="22" fill="#33415580"/>
<rect x="415" y="705" width="30" height="50" rx="8" fill="#33415560"/>
<!-- Parent L -->
<circle cx="490" cy="665" r="25" fill="#47556980"/>
<rect x="472" y="693" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Child -->
<circle cx="555" cy="675" r="18" fill="#64748b80"/>
<rect x="542" y="695" width="26" height="40" rx="8" fill="#64748b60"/>
<!-- Parent R -->
<circle cx="620" cy="665" r="25" fill="#47556980"/>
<rect x="602" y="693" width="36" height="65" rx="10" fill="#47556960"/>
<!-- Grandparent R -->
<circle cx="680" cy="680" r="22" fill="#33415580"/>
<rect x="665" y="705" width="30" height="50" rx="8" fill="#33415560"/>
<text x="540" y="1190" font-family="system-ui, sans-serif" font-size="32" font-weight="700" fill="#f1f5f9" text-anchor="middle">Protect Your Whole Family</text>
<text x="540" y="1235" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">AI voice clone detection + dark web monitoring + spam blocking</text>
<text x="540" y="1265" font-family="system-ui, sans-serif" font-size="17" fill="#94a3b8" text-anchor="middle">for up to unlimited family members on Premium</text>
<rect x="425" y="1290" width="230" height="46" rx="23" fill="#3b82f6"/>
<text x="540" y="1317" font-family="system-ui, sans-serif" font-size="17" font-weight="600" fill="#f1f5f9" text-anchor="middle">Protect My Family</text>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB