#!/usr/bin/env python3
"""
Generate CCG26 Sponsorship Package in multiple formats:
- HTML (styled)
- PDF (via weasyprint)
- PPTX (PowerPoint)
"""

import os
from pathlib import Path

# For PDF
from weasyprint import HTML, CSS

# For PowerPoint
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN, MSO_ANCHOR
from pptx.enum.shapes import MSO_SHAPE

# Output directory
OUTPUT_DIR = Path("/home/jeffe/Github/crypto-commons-gather.ing-website")

# Brand colors
PRIMARY_COLOR = RGBColor(34, 139, 34)  # Forest green
DARK_COLOR = RGBColor(30, 30, 30)
LIGHT_COLOR = RGBColor(250, 250, 250)
ACCENT_COLOR = RGBColor(139, 90, 43)  # Earth brown


def create_html_and_pdf():
    """Create styled HTML and PDF versions of the sponsorship package."""

    html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CCG 2026 Sponsorship Package</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

        :root {
            --primary: #228B22;
            --primary-light: #32CD32;
            --dark: #1e1e1e;
            --light: #fafafa;
            --accent: #8B5A2B;
            --muted: #666;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
            line-height: 1.6;
            color: var(--dark);
            font-size: 11pt;
        }

        .page {
            padding: 40px 50px;
            max-width: 800px;
            margin: 0 auto;
        }

        .cover {
            height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            background: linear-gradient(135deg, var(--primary) 0%, #1a5f1a 100%);
            color: white;
            page-break-after: always;
            padding: 60px;
        }

        .cover h1 {
            font-size: 42pt;
            font-weight: 800;
            margin-bottom: 10px;
            letter-spacing: -1px;
        }

        .cover h2 {
            font-size: 24pt;
            font-weight: 500;
            margin-bottom: 40px;
            opacity: 0.9;
        }

        .cover .tagline {
            font-size: 14pt;
            font-style: italic;
            opacity: 0.85;
            max-width: 500px;
            margin-bottom: 60px;
        }

        .cover .details {
            font-size: 12pt;
            opacity: 0.9;
        }

        .cover .details p {
            margin: 5px 0;
        }

        h1 {
            font-size: 24pt;
            font-weight: 700;
            color: var(--primary);
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 3px solid var(--primary);
        }

        h2 {
            font-size: 16pt;
            font-weight: 600;
            color: var(--dark);
            margin-top: 30px;
            margin-bottom: 15px;
        }

        h3 {
            font-size: 13pt;
            font-weight: 600;
            color: var(--accent);
            margin-top: 20px;
            margin-bottom: 10px;
        }

        p {
            margin-bottom: 12px;
        }

        ul, ol {
            margin-left: 20px;
            margin-bottom: 15px;
        }

        li {
            margin-bottom: 6px;
        }

        table {
            width: 100%;
            border-collapse: collapse;
            margin: 20px 0;
            font-size: 10pt;
        }

        th {
            background: var(--primary);
            color: white;
            padding: 12px 15px;
            text-align: left;
            font-weight: 600;
        }

        td {
            padding: 10px 15px;
            border-bottom: 1px solid #ddd;
        }

        tr:nth-child(even) {
            background: #f9f9f9;
        }

        .tier-box {
            border: 2px solid var(--primary);
            border-radius: 8px;
            padding: 20px;
            margin: 20px 0;
            page-break-inside: avoid;
        }

        .tier-box h3 {
            color: var(--primary);
            margin-top: 0;
            font-size: 14pt;
        }

        .tier-box .price {
            font-size: 20pt;
            font-weight: 700;
            color: var(--dark);
            margin-bottom: 15px;
        }

        .highlight-box {
            background: #f0f9f0;
            border-left: 4px solid var(--primary);
            padding: 15px 20px;
            margin: 20px 0;
        }

        .stat-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 15px;
            margin: 20px 0;
        }

        .stat-box {
            text-align: center;
            padding: 20px;
            background: var(--light);
            border-radius: 8px;
        }

        .stat-box .number {
            font-size: 28pt;
            font-weight: 700;
            color: var(--primary);
        }

        .stat-box .label {
            font-size: 10pt;
            color: var(--muted);
        }

        .quote {
            font-style: italic;
            padding: 15px 25px;
            border-left: 3px solid var(--accent);
            margin: 20px 0;
            color: var(--muted);
        }

        .quote cite {
            display: block;
            margin-top: 10px;
            font-style: normal;
            font-weight: 600;
            color: var(--dark);
        }

        .page-break {
            page-break-after: always;
        }

        .footer {
            margin-top: 40px;
            padding-top: 20px;
            border-top: 1px solid #ddd;
            text-align: center;
            font-size: 9pt;
            color: var(--muted);
        }

        @page {
            size: A4;
            margin: 0;
        }

        @page :not(:first) {
            margin: 20mm 15mm;
        }
    </style>
</head>
<body>
    <!-- Cover Page -->
    <div class="cover">
        <h1>Crypto Commons<br>Gathering 2026</h1>
        <h2>Sponsorship Package</h2>
        <p class="tagline">"A recurring temporary refuge from late-capitalism"</p>
        <div class="details">
            <p><strong>August 16-22, 2026</strong></p>
            <p>Commons Hub, Austrian Alps</p>
            <p>6th Annual Edition</p>
        </div>
    </div>

    <!-- Executive Summary -->
    <div class="page">
        <h1>Executive Summary</h1>

        <p>The <strong>Crypto Commons Gathering (CCG)</strong> is an annual week-long retreat where genuine desire for postcapitalist change meets blockchain innovation, commons building, and radical imagination.</p>

        <p>Now in its <strong>6th edition</strong>, CCG has established itself as the premier gathering for builders, researchers, and activists working at the intersection of crypto, regenerative finance, and cooperative economics.</p>

        <div class="stat-grid">
            <div class="stat-box">
                <div class="number">100+</div>
                <div class="label">Participants</div>
            </div>
            <div class="stat-box">
                <div class="number">6</div>
                <div class="label">Years Running</div>
            </div>
            <div class="stat-box">
                <div class="number">20+</div>
                <div class="label">Countries</div>
            </div>
        </div>

        <h2>At a Glance</h2>
        <table>
            <tr><td><strong>Dates</strong></td><td>August 16-22, 2026</td></tr>
            <tr><td><strong>Location</strong></td><td>Commons Hub, Reichenau an der Rax, Austrian Alps</td></tr>
            <tr><td><strong>Format</strong></td><td>Week-long unconference retreat</td></tr>
            <tr><td><strong>Organizers</strong></td><td>Crypto Commons Association & Commons Hub</td></tr>
        </table>

        <h2>Movements Born at CCG</h2>
        <ul>
            <li><strong>#CoFi (Cooperative Finance)</strong> — Redefining collaborative financial infrastructure</li>
            <li><strong>#MycoFi (Mycelial Finance)</strong> — Biomimetic approaches to economic design</li>
        </ul>
    </div>

    <div class="page-break"></div>

    <!-- Why Sponsor -->
    <div class="page">
        <h1>Why Sponsor CCG 2026?</h1>

        <h2>1. Reach Influential Builders & Thought Leaders</h2>
        <p>CCG attracts a unique, highly engaged audience:</p>
        <ul>
            <li><strong>ReFi & DeFi Builders</strong> — Teams from Regen Network, EthicHub, Circles UBI, ReFi DAO</li>
            <li><strong>Governance Innovators</strong> — Contributors to Holochain, Economic Space Agency, DAOs</li>
            <li><strong>Academic Researchers</strong> — PhD researchers, professors, and policy experts</li>
            <li><strong>Artists & Game Designers</strong> — Solarpunk creators, economic worldbuilders</li>
            <li><strong>Activists & Organizers</strong> — Cooperative founders, commons practitioners</li>
        </ul>

        <h2>2. Values-Aligned Audience</h2>
        <p>CCG attendees aren't casual observers—they're committed builders who:</p>
        <ul>
            <li>Lead projects with <strong>real traction</strong> in ReFi, DAOs, and cooperative economics</li>
            <li>Make <strong>purchasing decisions</strong> for their organizations</li>
            <li><strong>Influence discourse</strong> in crypto-commons and regenerative communities</li>
            <li>Seek <strong>genuine partnerships</strong> over superficial marketing</li>
        </ul>

        <h2>3. Six Years of Trust & Credibility</h2>
        <div class="highlight-box">
            <ul>
                <li><strong>Complete financial transparency</strong> — Full budget breakdowns published publicly</li>
                <li><strong>Non-extractive economics</strong> — Organizers cover their own expenses</li>
                <li><strong>Participant-driven format</strong> — Authentic community co-creation</li>
                <li><strong>Long-term relationships</strong> — ~40% of attendees return year after year</li>
            </ul>
        </div>
    </div>

    <div class="page-break"></div>

    <!-- Audience Profile -->
    <div class="page">
        <h1>Audience Profile</h1>

        <h2>Who Attends CCG?</h2>
        <table>
            <tr>
                <th>Segment</th>
                <th>%</th>
                <th>Description</th>
            </tr>
            <tr>
                <td>Builders & Developers</td>
                <td>35%</td>
                <td>Protocol engineers, smart contract devs, infrastructure builders</td>
            </tr>
            <tr>
                <td>Researchers & Academics</td>
                <td>25%</td>
                <td>PhD students, professors, think tank members</td>
            </tr>
            <tr>
                <td>Artists & Designers</td>
                <td>15%</td>
                <td>Game designers, solarpunk creators, UX/UI specialists</td>
            </tr>
            <tr>
                <td>Activists & Organizers</td>
                <td>15%</td>
                <td>Cooperative founders, community organizers, policy advocates</td>
            </tr>
            <tr>
                <td>Investors & Funders</td>
                <td>10%</td>
                <td>Impact investors, grant makers, ecosystem funders</td>
            </tr>
        </table>

        <h2>Attendee Interests</h2>
        <ul>
            <li>Regenerative Finance (ReFi)</li>
            <li>Decentralized Governance & DAOs</li>
            <li>Cooperative Economics & Mutual Aid</li>
            <li>Commons Theory & Practice</li>
            <li>Degrowth & Post-capitalism</li>
            <li>Solarpunk & Speculative Worldbuilding</li>
            <li>Community Currencies & UBI</li>
        </ul>

        <h2>Geographic Distribution</h2>
        <table>
            <tr><td>Europe</td><td>60%</td></tr>
            <tr><td>North America</td><td>20%</td></tr>
            <tr><td>Global South</td><td>15%</td></tr>
            <tr><td>Asia-Pacific</td><td>5%</td></tr>
        </table>
    </div>

    <div class="page-break"></div>

    <!-- Sponsorship Tiers -->
    <div class="page">
        <h1>Sponsorship Tiers</h1>

        <div class="tier-box">
            <h3>MYCELIUM PARTNER</h3>
            <div class="price">€10,000</div>
            <p><em>Become part of the CCG ecosystem</em></p>

            <p><strong>Recognition & Visibility</strong></p>
            <ul>
                <li>Logo placement on website hero section and all pages</li>
                <li>Featured sponsor section on event materials</li>
                <li>Acknowledgment at opening and closing ceremonies</li>
                <li>Social media recognition across all CCG channels</li>
            </ul>

            <p><strong>Engagement</strong></p>
            <ul>
                <li><strong>4 complimentary full-access passes</strong> (€600 value)</li>
                <li>Dedicated 60-minute sponsored session slot</li>
                <li>Private dinner with CCG organizers and community leaders</li>
                <li>First access to participant list for networking</li>
            </ul>
        </div>

        <div class="tier-box">
            <h3>SPORE PARTNER</h3>
            <div class="price">€5,000</div>
            <p><em>Plant seeds for regenerative futures</em></p>
            <ul>
                <li><strong>2 complimentary full-access passes</strong></li>
                <li>30-minute workshop or presentation slot</li>
                <li>Logo on website and event signage</li>
                <li>Social media recognition</li>
            </ul>
        </div>

        <div class="tier-box">
            <h3>SYMBIONT SUPPORTER</h3>
            <div class="price">€2,500</div>
            <p><em>Support commons-building infrastructure</em></p>
            <ul>
                <li><strong>1 complimentary full-access pass</strong></li>
                <li>Logo on website and event signage</li>
                <li>Social media mention</li>
            </ul>
        </div>

        <div class="tier-box">
            <h3>FRIEND OF THE COMMONS</h3>
            <div class="price">€1,000</div>
            <p><em>Show solidarity with the movement</em></p>
            <ul>
                <li>Name/logo listed on website</li>
                <li>Social media thank-you</li>
                <li>1 discounted pass (50% off)</li>
            </ul>
        </div>
    </div>

    <div class="page-break"></div>

    <!-- Alternative Partnerships -->
    <div class="page">
        <h1>Alternative Partnership Opportunities</h1>

        <p>Beyond financial sponsorship, we welcome in-kind contributions and creative partnerships:</p>

        <h3>Track Sponsorship | Custom</h3>
        <p>Sponsor a specific theme track (e.g., "Regenerative Finance Day") with naming rights and session curation involvement.</p>

        <h3>Accommodation Sponsorship | ~€3,000-5,000</h3>
        <p>Cover accommodation costs for participants who need financial support, enabling broader access.</p>

        <h3>Meal Sponsorship | ~€2,000-4,000</h3>
        <p>Sponsor catered meals for a day or the entire event—your name becomes synonymous with nourishment and community care.</p>

        <h3>Documentation Sponsorship | ~€1,500</h3>
        <p>Support professional documentation (photography, videography, written summaries) with credit and content rights.</p>

        <h3>Travel Grants | Custom</h3>
        <p>Fund travel scholarships for participants from underrepresented regions or backgrounds.</p>

        <h3>Technology Partnership | In-Kind</h3>
        <p>Provide tools, platforms, or infrastructure (livestreaming, collaboration tools, etc.) in exchange for recognition.</p>

        <h2>Impact Metrics</h2>
        <table>
            <tr><td>Editions held</td><td>5 (2020-2025)</td></tr>
            <tr><td>Total attendees (all editions)</td><td>400+</td></tr>
            <tr><td>Countries represented</td><td>25+</td></tr>
            <tr><td>Projects incubated/catalyzed</td><td>15+</td></tr>
            <tr><td>Active community members</td><td>500+</td></tr>
            <tr><td>Movements spawned</td><td>#CoFi, #MycoFi</td></tr>
            <tr><td>Return attendee rate</td><td>~40%</td></tr>
        </table>
    </div>

    <div class="page-break"></div>

    <!-- What Makes CCG Different -->
    <div class="page">
        <h1>What Makes CCG Different?</h1>

        <h2>It's Not a Conference—It's a Convivium</h2>
        <p>Unlike traditional crypto events with keynote speakers and expo floors, CCG is:</p>
        <ul>
            <li><strong>Fully participant-driven</strong> — No pre-set agenda; schedule co-created daily</li>
            <li><strong>Deeply relational</strong> — Week-long format enables genuine connection</li>
            <li><strong>Off-grid & intimate</strong> — Mountain retreat setting, away from distractions</li>
            <li><strong>Non-extractive</strong> — Built on commons principles, not corporate incentives</li>
        </ul>

        <h2>Attendees Contribute, Not Just Consume</h2>
        <p>Everyone who attends CCG joins a <strong>Commons Crew</strong>:</p>
        <ul>
            <li>Kitchen crew</li>
            <li>Cleaning crew</li>
            <li>Documentation crew</li>
            <li>Fire/Water crew</li>
            <li>Atmosphere care crew</li>
        </ul>
        <p>This creates a fundamentally different relationship between participants and the event—one of mutual care and shared responsibility.</p>

        <h2>Testimonials</h2>

        <div class="quote">
            "CCG is where I found my people—the ones who actually believe another world is possible and are building it together."
            <cite>— Returning participant, 2024</cite>
        </div>

        <div class="quote">
            "The ideas I encountered at CCG completely changed how I think about protocol design. It's like nothing else in the crypto space."
            <cite>— ReFi builder, 2023</cite>
        </div>

        <div class="quote">
            "I came for the unconference, I stayed for the community. Four years later, my closest collaborators are people I met at CCG."
            <cite>— Cooperative founder, 2022</cite>
        </div>
    </div>

    <div class="page-break"></div>

    <!-- Contact -->
    <div class="page">
        <h1>Contact & Next Steps</h1>

        <p>We'd love to discuss how a partnership could work for your organization.</p>

        <h2>Primary Contact</h2>
        <p><strong>Email:</strong> contact@cryptocommonsgather.ing</p>

        <h2>Event Website</h2>
        <p>https://cryptocommonsgather.ing</p>

        <h2>Community</h2>
        <ul>
            <li>Telegram (CCG26): https://t.me/+n5V_wDVKWrk1ZTBh</li>
            <li>Telegram (CCA): https://t.me/+gZjhNaDswIc0ZDg0</li>
        </ul>

        <h2>Partner Organizations</h2>
        <ul>
            <li>Crypto Commons Association: https://crypto-commons.org</li>
            <li>Commons Hub: https://www.commons-hub.at</li>
        </ul>

        <h2>Key Dates</h2>
        <table>
            <tr><td><strong>Now</strong></td><td>Sponsorship discussions open</td></tr>
            <tr><td><strong>April 30, 2026</strong></td><td>Early bird registration closes</td></tr>
            <tr><td><strong>June 30, 2026</strong></td><td>Regular registration closes</td></tr>
            <tr><td><strong>August 1, 2026</strong></td><td>Final sponsor deliverables due</td></tr>
            <tr><td><strong>August 16-22, 2026</strong></td><td>CCG 2026</td></tr>
        </table>

        <div class="highlight-box" style="margin-top: 40px;">
            <p><strong>Join us in the Austrian Alps for a week that might just change how you see what's possible.</strong></p>
        </div>

        <div class="footer">
            <p>This sponsorship package was prepared by the Crypto Commons Association.</p>
            <p>CCG operates under a Creative Commons ethos—feel free to share this document with aligned partners.</p>
            <p><strong>Last updated: February 2026</strong></p>
        </div>
    </div>
</body>
</html>
    """

    # Save HTML
    html_path = OUTPUT_DIR / "CCG26-Sponsorship-Package.html"
    with open(html_path, "w") as f:
        f.write(html_content)
    print(f"Created: {html_path}")

    # Generate PDF
    pdf_path = OUTPUT_DIR / "CCG26-Sponsorship-Package.pdf"
    HTML(string=html_content).write_pdf(pdf_path)
    print(f"Created: {pdf_path}")

    return html_path, pdf_path


def create_powerpoint():
    """Create a PowerPoint presentation for CCG 2026 sponsorship."""

    prs = Presentation()
    prs.slide_width = Inches(13.333)  # 16:9 aspect ratio
    prs.slide_height = Inches(7.5)

    def add_title_slide(title, subtitle=""):
        slide = prs.slides.add_slide(prs.slide_layouts[6])  # Blank layout

        # Background
        background = slide.shapes.add_shape(
            MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height
        )
        background.fill.solid()
        background.fill.fore_color.rgb = PRIMARY_COLOR
        background.line.fill.background()

        # Title
        title_box = slide.shapes.add_textbox(Inches(0.5), Inches(2.5), Inches(12.333), Inches(1.5))
        tf = title_box.text_frame
        p = tf.paragraphs[0]
        p.text = title
        p.font.size = Pt(54)
        p.font.bold = True
        p.font.color.rgb = RGBColor(255, 255, 255)
        p.alignment = PP_ALIGN.CENTER

        # Subtitle
        if subtitle:
            sub_box = slide.shapes.add_textbox(Inches(0.5), Inches(4.2), Inches(12.333), Inches(1))
            tf = sub_box.text_frame
            p = tf.paragraphs[0]
            p.text = subtitle
            p.font.size = Pt(28)
            p.font.color.rgb = RGBColor(255, 255, 255)
            p.alignment = PP_ALIGN.CENTER

        return slide

    def add_content_slide(title, content_items, two_column=False):
        slide = prs.slides.add_slide(prs.slide_layouts[6])

        # Title
        title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.4), Inches(12.333), Inches(0.8))
        tf = title_box.text_frame
        p = tf.paragraphs[0]
        p.text = title
        p.font.size = Pt(36)
        p.font.bold = True
        p.font.color.rgb = PRIMARY_COLOR

        # Underline
        line = slide.shapes.add_shape(
            MSO_SHAPE.RECTANGLE, Inches(0.5), Inches(1.15), Inches(4), Inches(0.05)
        )
        line.fill.solid()
        line.fill.fore_color.rgb = PRIMARY_COLOR
        line.line.fill.background()

        if two_column and len(content_items) > 1:
            # Left column
            left_box = slide.shapes.add_textbox(Inches(0.5), Inches(1.5), Inches(6), Inches(5.5))
            tf = left_box.text_frame
            tf.word_wrap = True
            for item in content_items[0]:
                p = tf.add_paragraph()
                p.text = f"• {item}"
                p.font.size = Pt(18)
                p.space_after = Pt(10)
                p.font.color.rgb = DARK_COLOR

            # Right column
            right_box = slide.shapes.add_textbox(Inches(6.833), Inches(1.5), Inches(6), Inches(5.5))
            tf = right_box.text_frame
            tf.word_wrap = True
            for item in content_items[1]:
                p = tf.add_paragraph()
                p.text = f"• {item}"
                p.font.size = Pt(18)
                p.space_after = Pt(10)
                p.font.color.rgb = DARK_COLOR
        else:
            # Single column
            content_box = slide.shapes.add_textbox(Inches(0.5), Inches(1.5), Inches(12.333), Inches(5.5))
            tf = content_box.text_frame
            tf.word_wrap = True
            for item in content_items:
                p = tf.add_paragraph()
                p.text = f"• {item}" if not item.startswith("•") else item
                p.font.size = Pt(20)
                p.space_after = Pt(12)
                p.font.color.rgb = DARK_COLOR

        return slide

    def add_stats_slide(title, stats):
        slide = prs.slides.add_slide(prs.slide_layouts[6])

        # Title
        title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.4), Inches(12.333), Inches(0.8))
        tf = title_box.text_frame
        p = tf.paragraphs[0]
        p.text = title
        p.font.size = Pt(36)
        p.font.bold = True
        p.font.color.rgb = PRIMARY_COLOR

        # Stats boxes
        box_width = 3.5
        start_x = (13.333 - (box_width * len(stats) + 0.5 * (len(stats) - 1))) / 2

        for i, (number, label) in enumerate(stats):
            x = start_x + i * (box_width + 0.5)

            # Box background
            box = slide.shapes.add_shape(
                MSO_SHAPE.ROUNDED_RECTANGLE, Inches(x), Inches(2.5), Inches(box_width), Inches(3)
            )
            box.fill.solid()
            box.fill.fore_color.rgb = RGBColor(240, 249, 240)
            box.line.color.rgb = PRIMARY_COLOR
            box.line.width = Pt(2)

            # Number
            num_box = slide.shapes.add_textbox(Inches(x), Inches(3), Inches(box_width), Inches(1.2))
            tf = num_box.text_frame
            p = tf.paragraphs[0]
            p.text = str(number)
            p.font.size = Pt(60)
            p.font.bold = True
            p.font.color.rgb = PRIMARY_COLOR
            p.alignment = PP_ALIGN.CENTER

            # Label
            label_box = slide.shapes.add_textbox(Inches(x), Inches(4.3), Inches(box_width), Inches(0.8))
            tf = label_box.text_frame
            p = tf.paragraphs[0]
            p.text = label
            p.font.size = Pt(18)
            p.font.color.rgb = DARK_COLOR
            p.alignment = PP_ALIGN.CENTER

        return slide

    def add_tier_slide(tier_name, price, tagline, benefits):
        slide = prs.slides.add_slide(prs.slide_layouts[6])

        # Header stripe
        stripe = slide.shapes.add_shape(
            MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, Inches(1.8)
        )
        stripe.fill.solid()
        stripe.fill.fore_color.rgb = PRIMARY_COLOR
        stripe.line.fill.background()

        # Tier name
        title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.4), Inches(8), Inches(0.8))
        tf = title_box.text_frame
        p = tf.paragraphs[0]
        p.text = tier_name
        p.font.size = Pt(36)
        p.font.bold = True
        p.font.color.rgb = RGBColor(255, 255, 255)

        # Price
        price_box = slide.shapes.add_textbox(Inches(9), Inches(0.4), Inches(4), Inches(0.8))
        tf = price_box.text_frame
        p = tf.paragraphs[0]
        p.text = price
        p.font.size = Pt(42)
        p.font.bold = True
        p.font.color.rgb = RGBColor(255, 255, 255)
        p.alignment = PP_ALIGN.RIGHT

        # Tagline
        tag_box = slide.shapes.add_textbox(Inches(0.5), Inches(1.1), Inches(12), Inches(0.5))
        tf = tag_box.text_frame
        p = tf.paragraphs[0]
        p.text = tagline
        p.font.size = Pt(18)
        p.font.italic = True
        p.font.color.rgb = RGBColor(255, 255, 255)

        # Benefits
        content_box = slide.shapes.add_textbox(Inches(0.5), Inches(2.2), Inches(12.333), Inches(5))
        tf = content_box.text_frame
        tf.word_wrap = True
        for benefit in benefits:
            p = tf.add_paragraph()
            p.text = f"✓  {benefit}"
            p.font.size = Pt(20)
            p.space_after = Pt(14)
            p.font.color.rgb = DARK_COLOR

        return slide

    # Slide 1: Title
    add_title_slide(
        "Crypto Commons\nGathering 2026",
        "Sponsorship Package | August 16-22 | Austrian Alps"
    )

    # Slide 2: Key Stats
    add_stats_slide("At a Glance", [
        ("100+", "Participants"),
        ("6", "Years Running"),
        ("20+", "Countries")
    ])

    # Slide 3: What is CCG
    add_content_slide("What is CCG?", [
        "Week-long unconference at the intersection of crypto, regenerative finance, and commons",
        "Fully participant-driven: no pre-set agenda, schedule co-created daily",
        "Movements like #CoFi and #MycoFi were born here",
        "Deeply relational: genuine connections formed over a week of co-living",
        "Off-grid mountain retreat in the Austrian Alps"
    ])

    # Slide 4: Why Sponsor
    add_content_slide("Why Sponsor CCG 2026?", [
        [
            "Reach influential ReFi builders & researchers",
            "Association with real impact movements",
            "Values-aligned, committed audience",
            "6 years of trust and credibility"
        ],
        [
            "Non-extractive economics",
            "Complete financial transparency",
            "~40% return attendee rate",
            "Genuine partnerships over marketing"
        ]
    ], two_column=True)

    # Slide 5: Audience Profile
    add_content_slide("Who Attends CCG?", [
        "35% Builders & Developers — Protocol engineers, smart contract devs",
        "25% Researchers & Academics — PhD students, professors, think tanks",
        "15% Artists & Designers — Solarpunk creators, game designers",
        "15% Activists & Organizers — Cooperative founders, policy advocates",
        "10% Investors & Funders — Impact investors, grant makers"
    ])

    # Slide 6: Tier - Mycelium
    add_tier_slide("MYCELIUM PARTNER", "€10,000", "Become part of the CCG ecosystem", [
        "4 complimentary full-access passes (€600 value)",
        "Dedicated 60-minute sponsored session slot",
        "Private dinner with organizers and community leaders",
        "Logo on website hero section and all event materials",
        "Acknowledgment at opening and closing ceremonies",
        "First access to participant list for networking"
    ])

    # Slide 7: Tier - Spore
    add_tier_slide("SPORE PARTNER", "€5,000", "Plant seeds for regenerative futures", [
        "2 complimentary full-access passes (€300 value)",
        "30-minute workshop or presentation slot",
        "Logo on website sponsor section",
        "Logo on event signage and materials",
        "Social media recognition"
    ])

    # Slide 8: Tier - Symbiont
    add_tier_slide("SYMBIONT SUPPORTER", "€2,500", "Support commons-building infrastructure", [
        "1 complimentary full-access pass (€150 value)",
        "Logo on website sponsor section",
        "Logo on event signage",
        "Social media mention"
    ])

    # Slide 9: Alternative Partnerships
    add_content_slide("Alternative Partnerships", [
        "Track Sponsorship — Name a theme track, curate sessions",
        "Accommodation Sponsorship (~€3,000-5,000) — Enable access for those who need support",
        "Meal Sponsorship (~€2,000-4,000) — Your name synonymous with nourishment",
        "Documentation Sponsorship (~€1,500) — Photo, video, written summaries",
        "Travel Grants — Fund scholarships for underrepresented regions",
        "Technology Partnership — In-kind tools and infrastructure"
    ])

    # Slide 10: Contact
    slide = prs.slides.add_slide(prs.slide_layouts[6])

    # Background
    background = slide.shapes.add_shape(
        MSO_SHAPE.RECTANGLE, 0, 0, prs.slide_width, prs.slide_height
    )
    background.fill.solid()
    background.fill.fore_color.rgb = PRIMARY_COLOR
    background.line.fill.background()

    # Title
    title_box = slide.shapes.add_textbox(Inches(0.5), Inches(1.5), Inches(12.333), Inches(1))
    tf = title_box.text_frame
    p = tf.paragraphs[0]
    p.text = "Let's Talk"
    p.font.size = Pt(48)
    p.font.bold = True
    p.font.color.rgb = RGBColor(255, 255, 255)
    p.alignment = PP_ALIGN.CENTER

    # Contact info
    info_box = slide.shapes.add_textbox(Inches(0.5), Inches(3), Inches(12.333), Inches(3))
    tf = info_box.text_frame
    tf.word_wrap = True

    contact_lines = [
        "contact@cryptocommonsgather.ing",
        "",
        "cryptocommonsgather.ing",
        "",
        "August 16-22, 2026 | Austrian Alps"
    ]

    for line in contact_lines:
        p = tf.add_paragraph()
        p.text = line
        p.font.size = Pt(24)
        p.font.color.rgb = RGBColor(255, 255, 255)
        p.alignment = PP_ALIGN.CENTER
        p.space_after = Pt(8)

    # Save
    pptx_path = OUTPUT_DIR / "CCG26-Sponsorship-Package.pptx"
    prs.save(pptx_path)
    print(f"Created: {pptx_path}")

    return pptx_path


if __name__ == "__main__":
    print("Generating CCG 2026 Sponsorship Package documents...\n")

    html_path, pdf_path = create_html_and_pdf()
    pptx_path = create_powerpoint()

    print("\n✅ All documents generated successfully!")
    print(f"\nFiles created:")
    print(f"  - HTML: {html_path}")
    print(f"  - PDF:  {pdf_path}")
    print(f"  - PPTX: {pptx_path}")
