<!DOCTYPE html>

<html lang="da">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>ThrillMe | Unik Kunst af Trille</title>

    

    <!-- Tailwind CSS -->

    <script src="https://cdn.tailwindcss.com"></script>

    

    <!-- Font Awesome til ikoner -->

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">

    

    <!-- Google Fonts -->

    <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lato:wght@300;400;700&display=swap" rel="stylesheet">


    <!-- Markdown Parser (for AI responses) -->

    <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>


    <style>

        /* Custom Font Setup */

        h1, h2, h3, h4, .serif {

            font-family: 'Playfair Display', serif;

        }

        body {

            font-family: 'Lato', sans-serif;

        }

        

        /* Smooth Scrolling */

        html {

            scroll-behavior: smooth;

        }


        /* Hide scrollbar for gallery but allow scroll */

        .hide-scrollbar::-webkit-scrollbar {

            display: none;

        }

        .hide-scrollbar {

            -ms-overflow-style: none;

            scrollbar-width: none;

        }


        /* Cart Animation */

        @keyframes slideIn {

            from { transform: translateX(100%); }

            to { transform: translateX(0); }

        }

        .cart-slide-in {

            animation: slideIn 0.3s ease-out forwards;

        }


        /* Image Hover Effect */

        .art-card:hover .art-overlay {

            opacity: 1;

        }

        .art-card img {

            transition: transform 0.5s ease;

        }

        .art-card:hover img {

            transform: scale(1.05);

        }


        /* Loading Spinner */

        .loader {

            border: 3px solid #f3f3f3;

            border-radius: 50%;

            border-top: 3px solid #d97706; /* amber-600 */

            width: 20px;

            height: 20px;

            -webkit-animation: spin 1s linear infinite; /* Safari */

            animation: spin 1s linear infinite;

        }

        @keyframes spin {

            0% { transform: rotate(0deg); }

            100% { transform: rotate(360deg); }

        }

        

        /* AI Gradient Text */

        .ai-gradient-text {

            background: linear-gradient(to right, #d97706, #92400e);

            -webkit-background-clip: text;

            -webkit-text-fill-color: transparent;

        }

    </style>

</head>

<body class="bg-stone-50 text-stone-800 antialiased">


    <!-- Navigation -->

    <nav class="fixed w-full z-50 bg-white/90 backdrop-blur-md shadow-sm transition-all duration-300" id="navbar">

        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

            <div class="flex justify-between items-center h-20">

                <!-- Logo -->

                <div class="flex-shrink-0 flex items-center">

                    <a href="#" class="text-2xl font-bold serif tracking-wider text-stone-900 uppercase">

                        ThrillMe<span class="text-amber-600">.</span>dk

                    </a>

                </div>


                <!-- Desktop Menu -->

                <div class="hidden md:flex space-x-8 items-center">

                    <a href="#home" class="hover:text-amber-600 transition-colors">Forside</a>

                    <a href="#gallery" class="hover:text-amber-600 transition-colors">Galleri</a>

                    <a href="#about" class="hover:text-amber-600 transition-colors">Om Trille</a>

                    <a href="#contact" class="hover:text-amber-600 transition-colors">Kontakt</a>

                </div>


                <!-- Icons -->

                <div class="flex items-center space-x-6">

                    <button onclick="toggleAIConsultant()" class="hidden md:flex items-center gap-2 text-sm font-semibold text-amber-700 bg-amber-50 px-3 py-1 rounded-full hover:bg-amber-100 transition-colors border border-amber-200">

                        <i class="fas fa-sparkles"></i> AI Konsulent

                    </button>

                    <button onclick="toggleCart()" class="relative hover:text-amber-600 transition-colors">

                        <i class="fas fa-shopping-bag text-xl"></i>

                        <span id="cart-count" class="absolute -top-2 -right-2 bg-amber-600 text-white text-xs font-bold rounded-full h-5 w-5 flex items-center justify-center opacity-0 transition-opacity">0</span>

                    </button>

                    <!-- Mobile menu button -->

                    <button class="md:hidden hover:text-amber-600" onclick="toggleMobileMenu()">

                        <i class="fas fa-bars text-xl"></i>

                    </button>

                </div>

            </div>

        </div>

        

        <!-- Mobile Menu (Hidden by default) -->

        <div id="mobile-menu" class="hidden md:hidden bg-white border-t">

            <div class="px-2 pt-2 pb-3 space-y-1 sm:px-3 text-center">

                <a href="#home" class="block px-3 py-2 text-base font-medium hover:text-amber-600" onclick="toggleMobileMenu()">Forside</a>

                <a href="#gallery" class="block px-3 py-2 text-base font-medium hover:text-amber-600" onclick="toggleMobileMenu()">Galleri</a>

                <a href="#about" class="block px-3 py-2 text-base font-medium hover:text-amber-600" onclick="toggleMobileMenu()">Om Trille</a>

                <a href="#contact" class="block px-3 py-2 text-base font-medium hover:text-amber-600" onclick="toggleMobileMenu()">Kontakt</a>

                <button onclick="toggleAIConsultant(); toggleMobileMenu()" class="w-full text-center px-3 py-2 text-base font-bold text-amber-700 bg-amber-50 mt-2">

                    <i class="fas fa-sparkles"></i> AI Konsulent

                </button>

            </div>

        </div>

    </nav>


    <!-- Shopping Cart Sidebar -->

    <div id="cart-sidebar" class="fixed inset-0 z-[60] hidden">

        <div class="absolute inset-0 bg-black/50 backdrop-blur-sm" onclick="toggleCart()"></div>

        <div class="absolute right-0 top-0 h-full w-full max-w-md bg-white shadow-2xl flex flex-col cart-slide-in">

            <div class="p-6 flex justify-between items-center border-b">

                <h2 class="text-2xl serif font-bold">Din Kurv</h2>

                <button onclick="toggleCart()" class="text-stone-400 hover:text-stone-800">

                    <i class="fas fa-times text-xl"></i>

                </button>

            </div>

            

            <div id="cart-items" class="flex-1 overflow-y-auto p-6 space-y-6">

                <!-- Cart items will be injected here JS -->

                <div class="text-center text-stone-500 mt-10">

                    <i class="fas fa-shopping-basket text-4xl mb-4 text-stone-300"></i>

                    <p>Din kurv er tom lige nu.</p>

                </div>

            </div>


            <div class="p-6 border-t bg-stone-50">

                <div class="flex justify-between items-center mb-4 text-lg font-bold">

                    <span>Total</span>

                    <span id="cart-total">0 DKK</span>

                </div>

                <button onclick="checkout()" class="w-full bg-stone-900 text-white py-4 hover:bg-amber-700 transition-colors uppercase tracking-widest text-sm font-semibold">

                    Gå til kassen

                </button>

            </div>

        </div>

    </div>


    <!-- AI Consultant Modal -->

    <div id="ai-modal" class="fixed inset-0 z-[70] hidden">

        <div class="absolute inset-0 bg-black/60 backdrop-blur-sm" onclick="toggleAIConsultant()"></div>

        <div class="absolute inset-0 flex items-center justify-center p-4">

            <div class="bg-white w-full max-w-2xl rounded-xl shadow-2xl overflow-hidden flex flex-col max-h-[85vh] animate-fade-in relative">

                

                <!-- Header -->

                <div class="bg-stone-900 text-white p-6 flex justify-between items-center">

                    <div>

                        <h2 class="text-2xl serif font-bold flex items-center gap-2">

                            <i class="fas fa-sparkles text-amber-500"></i> Kunst-Konsulenten

                        </h2>

                        <p class="text-stone-400 text-sm mt-1">Fortæl mig om din stil, så finder jeg det perfekte værk fra Trille.</p>

                    </div>

                    <button onclick="toggleAIConsultant()" class="text-stone-400 hover:text-white transition-colors">

                        <i class="fas fa-times text-xl"></i>

                    </button>

                </div>


                <!-- Chat Area -->

                <div id="ai-chat-area" class="flex-1 overflow-y-auto p-6 bg-stone-50 space-y-4">

                    <div class="flex gap-4">

                        <div class="w-10 h-10 rounded-full bg-amber-100 flex items-center justify-center flex-shrink-0 text-amber-700">

                            <i class="fas fa-robot"></i>

                        </div>

                        <div class="bg-white p-4 rounded-r-xl rounded-bl-xl shadow-sm border border-stone-100 text-stone-700 text-sm">

                            <p>Hej! Jeg kender hele Trilles kollektion. Hvad leder du efter?</p>

                            <div class="mt-3 flex flex-wrap gap-2">

                                <button onclick="setAIPrompt('Jeg søger et stort farverigt maleri til stuen.')" class="bg-stone-100 hover:bg-stone-200 px-3 py-1 rounded-full text-xs text-stone-600 transition-colors">Farverigt maleri</button>

                                <button onclick="setAIPrompt('Jeg mangler en unik gave i form af smykker.')" class="bg-stone-100 hover:bg-stone-200 px-3 py-1 rounded-full text-xs text-stone-600 transition-colors">Unika smykker</button>

                                <button onclick="setAIPrompt('Har du noget flot brugskunst til hjemmet?')" class="bg-stone-100 hover:bg-stone-200 px-3 py-1 rounded-full text-xs text-stone-600 transition-colors">Brugskunst</button>

                            </div>

                        </div>

                    </div>

                </div>


                <!-- Input Area -->

                <div class="p-4 bg-white border-t border-stone-200">

                    <form onsubmit="handleAIConsultantSubmit(event)" class="relative">

                        <input type="text" id="ai-input" placeholder="Skriv din forespørgsel her..." class="w-full pl-4 pr-12 py-4 bg-stone-100 border border-stone-200 rounded-lg focus:border-amber-500 focus:ring-1 focus:ring-amber-500 outline-none transition-colors">

                        <button type="submit" id="ai-submit-btn" class="absolute right-2 top-2 h-10 w-10 bg-stone-900 text-white rounded-md hover:bg-amber-600 transition-colors flex items-center justify-center">

                            <i class="fas fa-paper-plane"></i>

                        </button>

                    </form>

                </div>

            </div>

        </div>

    </div>


    <!-- Notification Toast -->

    <div id="toast" class="fixed bottom-5 right-5 bg-stone-900 text-white px-6 py-4 rounded shadow-lg transform translate-y-20 opacity-0 transition-all duration-300 z-[70] flex items-center gap-3">

        <i class="fas fa-check-circle text-green-400"></i>

        <span id="toast-message">Værket er lagt i kurven!</span>

    </div>


    <!-- Hero Section -->

    <section id="home" class="relative h-screen flex items-center justify-center overflow-hidden">

        <!-- Background Image Placeholder -->

        <div class="absolute inset-0 bg-stone-300">

            <img src="https://images.unsplash.com/photo-1579783902614-a3fb39279c0f?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80" alt="Kunst atelier baggrund" class="w-full h-full object-cover opacity-90">

            <div class="absolute inset-0 bg-gradient-to-b from-white/30 via-white/10 to-stone-50"></div>

        </div>


        <div class="relative z-10 text-center px-4 max-w-4xl mx-auto">

            <p class="text-stone-900 uppercase tracking-[0.3em] mb-4 font-bold text-sm bg-white/70 inline-block px-4 py-2 backdrop-blur-sm rounded-sm">Malerier, Smykker & Brugskunst</p>

            <h1 class="text-5xl md:text-7xl font-bold mb-6 text-stone-900 leading-tight">

                ThrillMe<br> <span class="italic text-amber-700">by Trille</span>

            </h1>

            <p class="text-lg md:text-xl text-stone-800 mb-10 max-w-2xl mx-auto font-light bg-white/60 p-4 rounded backdrop-blur-sm">

                Unika kunsthåndværk der skaber glæde og personlighed i dit hjem.

            </p>

            <div class="flex flex-col sm:flex-row gap-4 justify-center">

                <a href="#gallery" class="px-8 py-4 bg-stone-900 text-white hover:bg-amber-700 transition-colors uppercase tracking-widest text-sm font-semibold shadow-lg">

                    Se Kollektionen

                </a>

                <button onclick="toggleAIConsultant()" class="px-8 py-4 bg-white text-stone-900 border border-stone-300 hover:bg-stone-100 transition-colors uppercase tracking-widest text-sm font-semibold flex items-center gap-2">

                   <i class="fas fa-sparkles text-amber-600"></i> Find det rette værk

                </button>

            </div>

        </div>

    </section>


    <!-- Gallery Section -->

    <section id="gallery" class="py-20 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto">

        <div class="text-center mb-16">

            <h2 class="text-4xl font-bold mb-4">Mine Kreationer</h2>

            <div class="w-24 h-1 bg-amber-600 mx-auto mb-8"></div>

            

            <!-- Filters -->

            <div class="flex flex-wrap justify-center gap-4" id="filters">

                <button class="filter-btn active px-6 py-2 rounded-full border border-stone-900 bg-stone-900 text-white transition-all hover:bg-amber-700 hover:border-amber-700" data-filter="all">Alle</button>

                <button class="filter-btn px-6 py-2 rounded-full border border-stone-300 text-stone-600 transition-all hover:border-stone-900 hover:text-stone-900" data-filter="maleri">Malerier</button>

                <button class="filter-btn px-6 py-2 rounded-full border border-stone-300 text-stone-600 transition-all hover:border-stone-900 hover:text-stone-900" data-filter="brugskunst">Brugskunst</button>

                <button class="filter-btn px-6 py-2 rounded-full border border-stone-300 text-stone-600 transition-all hover:border-stone-900 hover:text-stone-900" data-filter="smykker">Smykker</button>

            </div>

        </div>


        <!-- Gallery Grid -->

        <div id="art-grid" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">

            <!-- Items injected via JS -->

        </div>

    </section>


    <!-- Featured / About Section -->

    <section id="about" class="py-20 bg-stone-100">

        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

            <div class="flex flex-col md:flex-row items-center gap-12">

                <div class="w-full md:w-1/2 relative">

                    <div class="absolute top-4 left-4 w-full h-full border-2 border-stone-400 transform translate-x-4 translate-y-4 hidden md:block"></div>

                    <!-- Updated image to something more generic artistic/workshop -->

                    <img src="https://images.unsplash.com/photo-1513364776144-60967b0f800f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Trille i atelieret" class="w-full shadow-xl relative z-10 object-cover h-[500px]">

                </div>

                <div class="w-full md:w-1/2 space-y-6">

                    <h2 class="text-4xl font-bold serif">Om Trille</h2>

                    <h3 class="text-xl text-amber-700 italic serif">"Kunst skal kunne mærkes og bruges i hverdagen."</h3>

                    <p class="text-stone-600 leading-relaxed">

                        Hej, jeg er Trille. Velkommen til ThrillMe. Jeg skaber kunst, der ikke kun skal hænge på væggen, men også bæres og bruges. Min passion spænder fra store, udtryksfulde lærreder til fint forarbejdede smykker og unik brugskunst.

                    </p>

                    <p class="text-stone-600 leading-relaxed">

                        Alt hvad du finder her, er håndlavet af mig. Jeg elsker at eksperimentere med materialer og former, uanset om det er olie på lærred, keramik til bordet eller ædelmetaller til smykker. Tak fordi du kigger med.

                    </p>

                    <div class="pt-4">

                        <span class="font-serif text-4xl italic text-stone-400">Trille</span>

                    </div>

                </div>

            </div>

        </div>

    </section>


    <!-- Contact Section -->

    <section id="contact" class="py-20 max-w-4xl mx-auto px-4">

        <div class="text-center mb-12">

            <h2 class="text-4xl font-bold mb-4">Kontakt Mig</h2>

            <p class="text-stone-600">Har du spørgsmål om et maleri, et smykke eller ønsker du en bestillingsopgave?</p>

        </div>


        <div class="bg-white p-8 md:p-12 shadow-lg border border-stone-100">

            <!-- Updated Form for Netlify -->

            <form name="contact" method="POST" data-netlify="true" onsubmit="submitForm(event)" class="space-y-6">

                <!-- Hidden input required for Netlify forms -->

                <input type="hidden" name="form-name" value="contact" />

                

                <div class="grid grid-cols-1 md:grid-cols-2 gap-6">

                    <div>

                        <label class="block text-sm font-medium text-stone-700 mb-2">Navn</label>

                        <input type="text" name="navn" required class="w-full px-4 py-3 bg-stone-50 border border-stone-200 focus:border-amber-600 focus:ring-0 outline-none transition-colors">

                    </div>

                    <div>

                        <label class="block text-sm font-medium text-stone-700 mb-2">Email</label>

                        <input type="email" name="email" required class="w-full px-4 py-3 bg-stone-50 border border-stone-200 focus:border-amber-600 focus:ring-0 outline-none transition-colors">

                    </div>

                </div>

                <div>

                    <label class="block text-sm font-medium text-stone-700 mb-2">Besked</label>

                    <textarea name="besked" rows="4" required class="w-full px-4 py-3 bg-stone-50 border border-stone-200 focus:border-amber-600 focus:ring-0 outline-none transition-colors"></textarea>

                </div>

                <button type="submit" class="w-full bg-stone-900 text-white py-4 hover:bg-amber-700 transition-colors uppercase tracking-widest text-sm font-semibold">

                    Send Besked

                </button>

            </form>

        </div>

    </section>


    <!-- Footer -->

    <footer class="bg-stone-900 text-stone-400 py-12 border-t border-stone-800">

        <div class="max-w-7xl mx-auto px-4 flex flex-col md:flex-row justify-between items-center gap-6">

            <div class="text-2xl font-bold serif text-white uppercase">ThrillMe<span class="text-amber-600">.</span>dk</div>

            <div class="flex space-x-6">

                <a href="#" class="hover:text-white transition-colors"><i class="fab fa-instagram text-xl"></i></a>

                <a href="#" class="hover:text-white transition-colors"><i class="fab fa-facebook text-xl"></i></a>

                <a href="#" class="hover:text-white transition-colors"><i class="fab fa-pinterest text-xl"></i></a>

            </div>

            <div class="text-sm">

                &copy; 2024 ThrillMe / Trille. Alle rettigheder forbeholdes.

            </div>

        </div>

    </footer>


    <!-- Product Modal -->

    <div id="product-modal" class="fixed inset-0 z-50 hidden">

        <div class="absolute inset-0 bg-black/80 backdrop-blur-sm" onclick="closeModal()"></div>

        <div class="absolute inset-0 flex items-center justify-center p-4">

            <div class="bg-white max-w-4xl w-full max-h-[90vh] overflow-y-auto flex flex-col md:flex-row shadow-2xl animate-fade-in relative">

                <button onclick="closeModal()" class="absolute top-4 right-4 text-stone-500 hover:text-stone-900 z-10">

                    <i class="fas fa-times text-2xl"></i>

                </button>

                

                <div class="w-full md:w-1/2 bg-stone-100">

                    <img id="modal-img" src="" alt="" class="w-full h-full object-cover">

                </div>

                

                <div class="w-full md:w-1/2 p-8 md:p-12 flex flex-col">

                    <span id="modal-category" class="text-amber-600 text-sm font-bold uppercase tracking-wider mb-2"></span>

                    <h2 id="modal-title" class="text-3xl serif font-bold mb-4 text-stone-900"></h2>

                    

                    <div class="mb-6">

                        <p id="modal-desc" class="text-stone-600 leading-relaxed"></p>

                        <!-- AI Button -->

                        <div class="mt-4 border-t border-stone-100 pt-4">

                            <button id="ai-desc-btn" class="text-xs font-bold uppercase tracking-wider text-amber-700 flex items-center gap-2 hover:text-amber-900 transition-colors">

                                <i class="fas fa-sparkles"></i> <span>Generer poetisk beskrivelse med AI</span>

                            </button>

                            <div id="ai-desc-output" class="hidden mt-3 text-stone-600 italic text-sm bg-stone-50 p-4 rounded-lg border border-stone-100"></div>

                        </div>

                    </div>


                    <div class="mt-auto">

                        <div class="flex items-center justify-between mb-8">

                            <span id="modal-price" class="text-2xl font-bold text-stone-900"></span>

                            <span id="modal-stock" class="text-sm text-green-600 font-medium bg-green-100 px-3 py-1 rounded-full">På lager</span>

                        </div>

                        <button id="modal-add-btn" class="w-full bg-stone-900 text-white py-4 hover:bg-amber-700 transition-colors uppercase tracking-widest text-sm font-semibold">

                            Læg i kurv

                        </button>

                    </div>

                </div>

            </div>

        </div>

    </div>


    <!-- Message Modal (New) -->

    <div id="message-modal" class="fixed inset-0 z-[80] hidden">

        <div class="absolute inset-0 bg-black/60 backdrop-blur-sm" onclick="closeMessageModal()"></div>

        <div class="absolute inset-0 flex items-center justify-center p-4">

            <div class="bg-white max-w-md w-full p-8 shadow-2xl rounded-sm text-center animate-fade-in relative">

                <button onclick="closeMessageModal()" class="absolute top-4 right-4 text-stone-400 hover:text-stone-900">

                    <i class="fas fa-times text-xl"></i>

                </button>

                <div class="mb-4 text-amber-600">

                    <i class="fas fa-info-circle text-4xl"></i>

                </div>

                <h3 id="msg-modal-title" class="text-2xl serif font-bold mb-4 text-stone-900"></h3>

                <p id="msg-modal-text" class="text-stone-600 mb-8 leading-relaxed"></p>

                <button onclick="closeMessageModal()" class="bg-stone-900 text-white px-8 py-3 uppercase tracking-widest text-xs font-bold hover:bg-amber-700 transition-colors">

                    Luk

                </button>

            </div>

        </div>

    </div>


    <!-- JavaScript Application Logic -->

    <script>

        // API Key (Empty as per instructions)

        const apiKey = "";

        const apiUrl = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-09-2025:generateContent?key=${apiKey}`;


        // ------------------------------------------------------------------

        // HER STYRER DU DINE KUNSTVÆRKER (DIN "DATABASE")

        // ------------------------------------------------------------------

        // Kategorier: 'maleri', 'brugskunst', 'smykker'

        

        const artworks = [

            {

                id: 1,

                title: "Morgenstund ved Havet",

                category: "maleri",

                price: 2500,

                image: "https://images.unsplash.com/photo-1578301978693-85fa9c0320b9?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Et stemningsfuldt oliemaleri på lærred, der fanger det tidlige morgenlys.",

                dimensions: "60x80 cm"

            },

            {

                id: 2,

                title: "Rustik Vase 'Jord'",

                category: "brugskunst",

                price: 450,

                // Ceramic vase image

                image: "https://images.unsplash.com/photo-1578749556935-ef3893fb895f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Hånddrejet keramikvase i mørke jordfarver. Perfekt til tørrede blomster.",

                dimensions: "H: 22 cm"

            },

            {

                id: 3,

                title: "Sølvhalskæde 'Dråbe'",

                category: "smykker",

                price: 850,

                // Necklace image

                image: "https://images.unsplash.com/photo-1599643478518-17488fbbcd75?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Håndlavet halskæde i sterling sølv med en organisk formet dråbe.",

                dimensions: "45 cm kæde"

            },

            {

                id: 4,

                title: "Skovens Dyb",

                category: "maleri",

                price: 3200,

                image: "https://images.unsplash.com/photo-1551732998-957e29725e2f?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Akryl på lærred. Et dybt og beroligende værk i grønne nuancer.",

                dimensions: "100x100 cm"

            },

            {

                id: 5,

                title: "Keramikskål 'Ocean'",

                category: "brugskunst",

                price: 550,

                // Bowl image

                image: "https://images.unsplash.com/photo-1610701596007-11502861dcfa?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Unika skål med en glasur, der minder om havets bølger. Tåler opvaskemaskine.",

                dimensions: "Ø: 18 cm"

            },

            {

                id: 6,

                title: "Øreringe 'Guldblad'",

                category: "smykker",

                price: 1200,

                // Earrings image

                image: "https://images.unsplash.com/photo-1535632066927-ab7c9ab60908?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80",

                description: "Forgyldte sølvøreringe formet som små blade. Meget lette og elegante.",

                dimensions: "2 cm vedhæng"

            }

        ];

        // ------------------------------------------------------------------

        // SLUT PÅ KUNSTVÆRKER

        // ------------------------------------------------------------------


        // State

        let cart = [];

        let currentFilter = 'all';


        // DOM Elements

        const grid = document.getElementById('art-grid');

        const cartSidebar = document.getElementById('cart-sidebar');

        const cartItemsContainer = document.getElementById('cart-items');

        const cartTotalEl = document.getElementById('cart-total');

        const cartCountEl = document.getElementById('cart-count');

        const toast = document.getElementById('toast');

        const modal = document.getElementById('product-modal');

        const aiModal = document.getElementById('ai-modal');

        const aiChatArea = document.getElementById('ai-chat-area');

        const aiInput = document.getElementById('ai-input');

        const aiSubmitBtn = document.getElementById('ai-submit-btn');


        // Initialize

        function init() {

            renderGallery();

            setupFilters();

            updateCartUI();

        }


        // Render Gallery

        function renderGallery() {

            grid.innerHTML = '';

            

            const filtered = currentFilter === 'all' 

                ? artworks 

                : artworks.filter(art => art.category === currentFilter);


            filtered.forEach(art => {

                const card = document.createElement('div');

                card.className = 'group cursor-pointer';

                card.onclick = (e) => {

                    // Prevent opening modal if clicking add to cart button directly

                    if(!e.target.closest('button')) openModal(art.id);

                };


                card.innerHTML = `

                    <div class="art-card relative overflow-hidden bg-stone-200 aspect-[4/5] mb-4 shadow-sm">

                        <img src="${art.image}" alt="${art.title}" class="w-full h-full object-cover">

                        <div class="art-overlay absolute inset-0 bg-black/40 opacity-0 transition-opacity duration-300 flex items-center justify-center">

                            <button onclick="event.stopPropagation(); addToCart(${art.id})" class="bg-white text-stone-900 px-6 py-3 uppercase tracking-widest text-xs font-bold hover:bg-amber-600 hover:text-white transition-colors transform translate-y-4 group-hover:translate-y-0 duration-300">

                                Læg i kurv

                            </button>

                        </div>

                    </div>

                    <div class="flex justify-between items-start">

                        <div>

                            <h3 class="text-lg font-bold text-stone-900 group-hover:text-amber-700 transition-colors serif">${art.title}</h3>

                            <p class="text-sm text-stone-500 capitalize">${art.category} - ${art.dimensions}</p>

                        </div>

                        <span class="text-stone-900 font-medium">${art.price} DKK</span>

                    </div>

                `;

                grid.appendChild(card);

            });

        }


        // Filters

        function setupFilters() {

            const buttons = document.querySelectorAll('.filter-btn');

            buttons.forEach(btn => {

                btn.addEventListener('click', () => {

                    buttons.forEach(b => {

                        b.classList.remove('bg-stone-900', 'text-white', 'border-stone-900');

                        b.classList.add('text-stone-600', 'border-stone-300');

                    });

                    btn.classList.remove('text-stone-600', 'border-stone-300');

                    btn.classList.add('bg-stone-900', 'text-white', 'border-stone-900');


                    currentFilter = btn.dataset.filter;

                    renderGallery();

                });

            });

        }


        // Cart Logic

        function addToCart(id) {

            const art = artworks.find(a => a.id === id);

            cart.push(art);

            updateCartUI();

            showToast(`"${art.title}" er lagt i kurven`);

            closeModal();

            cartSidebar.classList.remove('hidden');

        }


        function removeFromCart(index) {

            cart.splice(index, 1);

            updateCartUI();

        }


        function updateCartUI() {

            cartCountEl.innerText = cart.length;

            cartCountEl.style.opacity = cart.length > 0 ? '1' : '0';

            const total = cart.reduce((sum, item) => sum + item.price, 0);

            cartTotalEl.innerText = total + " DKK";


            cartItemsContainer.innerHTML = '';

            if (cart.length === 0) {

                cartItemsContainer.innerHTML = `

                    <div class="text-center text-stone-500 mt-10">

                        <i class="fas fa-shopping-basket text-4xl mb-4 text-stone-300"></i>

                        <p>Din kurv er tom lige nu.</p>

                    </div>

                `;

            } else {

                cart.forEach((item, index) => {

                    const el = document.createElement('div');

                    el.className = 'flex gap-4 items-center';

                    el.innerHTML = `

                        <img src="${item.image}" class="w-16 h-20 object-cover bg-stone-200">

                        <div class="flex-1">

                            <h4 class="font-bold text-stone-900 serif text-sm">${item.title}</h4>

                            <p class="text-xs text-stone-500 capitalize">${item.category}</p>

                            <p class="text-sm font-medium mt-1">${item.price} DKK</p>

                        </div>

                        <button onclick="removeFromCart(${index})" class="text-stone-400 hover:text-red-500 transition-colors">

                            <i class="fas fa-trash-alt"></i>

                        </button>

                    `;

                    cartItemsContainer.appendChild(el);

                });

            }

        }


        function toggleCart() {

            cartSidebar.classList.toggle('hidden');

        }


        // Updated Checkout Function

        function checkout() {

            if(cart.length === 0) return;

            // Use custom modal instead of alert

            showMessage("Demo Kasse", "Tak for din interesse! Dette er en demo-side. I en rigtig version ville du nu blive sendt til betaling (f.eks. via Stripe eller MobilePay).");

        }


        // Modal Logic

        function openModal(id) {

            const art = artworks.find(a => a.id === id);

            

            document.getElementById('modal-img').src = art.image;

            document.getElementById('modal-category').innerText = art.category;

            document.getElementById('modal-title').innerText = art.title;

            document.getElementById('modal-desc').innerText = art.description + " Dimensioner: " + art.dimensions;

            document.getElementById('modal-price').innerText = art.price + " DKK";

            

            // Reset AI stuff

            const aiOutput = document.getElementById('ai-desc-output');

            aiOutput.innerHTML = '';

            aiOutput.classList.add('hidden');

            const aiBtn = document.getElementById('ai-desc-btn');

            aiBtn.onclick = () => generatePoeticDescription(art);

            aiBtn.innerHTML = `<i class="fas fa-sparkles"></i> <span>Generer poetisk beskrivelse med AI</span>`;

            aiBtn.disabled = false;


            // Reset button

            const btn = document.getElementById('modal-add-btn');

            btn.onclick = () => addToCart(art.id);

            

            modal.classList.remove('hidden');

            document.body.style.overflow = 'hidden'; 

        }


        function closeModal() {

            modal.classList.add('hidden');

            document.body.style.overflow = 'auto';

        }


        // ------------------------------------------------------------------

        // GEMINI API LOGIC

        // ------------------------------------------------------------------


        // Generic Function to Call Gemini

        async function callGeminiAPI(prompt, systemInstruction = "") {

            try {

                const payload = {

                    contents: [{

                        parts: [{ text: prompt }]

                    }],

                    systemInstruction: {

                         parts: [{ text: systemInstruction }]

                    }

                };


                const response = await fetch(apiUrl, {

                    method: 'POST',

                    headers: { 'Content-Type': 'application/json' },

                    body: JSON.stringify(payload)

                });


                const data = await response.json();

                

                if (data.error) {

                    console.error("Gemini API Error:", data.error);

                    throw new Error(data.error.message || "Unknown error");

                }


                return data.candidates[0].content.parts[0].text;

            } catch (error) {

                console.error("Call failed:", error);

                return "Beklager, AI-tjenesten er midlertidigt utilgængelig. Prøv igen senere.";

            }

        }


        // Feature 1: Poetic Description Generator

        async function generatePoeticDescription(art) {

            const btn = document.getElementById('ai-desc-btn');

            const output = document.getElementById('ai-desc-output');

            

            // UI Loading State

            btn.disabled = true;

            btn.innerHTML = `<span class="loader mr-2"></span> Skriver poesi...`;

            

            // Prompt

            const prompt = `Skriv en kort, dyb og poetisk beskrivelse (max 40 ord) af dette kunstværk. Svar på dansk.

            Titel: ${art.title}

            Kategori: ${art.category}

            Nuværende beskrivelse: ${art.description}`;


            // Call API

            const result = await callGeminiAPI(prompt, "Du er en kunstkritiker og poet.");


            // Update UI

            btn.innerHTML = `<i class="fas fa-check"></i> <span>Beskrivelse genereret</span>`;

            output.innerHTML = `"${result}"`;

            output.classList.remove('hidden');

        }


        // Feature 2: Art Consultant (Chat)

        function toggleAIConsultant() {

            aiModal.classList.toggle('hidden');

            if(!aiModal.classList.contains('hidden')) {

                // Focus input when opened

                setTimeout(() => document.getElementById('ai-input').focus(), 100);

            }

        }


        function setAIPrompt(text) {

            document.getElementById('ai-input').value = text;

        }


        async function handleAIConsultantSubmit(e) {

            e.preventDefault();

            const input = document.getElementById('ai-input');

            const userText = input.value.trim();

            if (!userText) return;


            // Add User Message to Chat

            addChatMessage('user', userText);

            input.value = '';

            

            // Show Loading Bubble

            const loadingId = addChatMessage('ai', '<span class="loader"></span> Tænker...');


            // Prepare Data for Gemini

            // We strip images to save tokens, just sending metadata

            const artCatalog = artworks.map(a => ({id: a.id, title: a.title, category: a.category, price: a.price, desc: a.description}));

            

            const systemPrompt = `Du er en ekspert kunst-kurator og indretningsarkitekt for ThrillMe.dk.

            Din opgave er at anbefale kunstværker (malerier, smykker eller brugskunst) fra den vedlagte liste baseret på brugerens forespørgsel.

            

            Her er listen af tilgængelige værker (JSON):

            ${JSON.stringify(artCatalog)}

            

            Regler:

            1. Vælg 1-2 værker der passer bedst.

            2. Forklar kort HVORFOR de passer til brugerens rum, stil eller gavebehov.

            3. Svar i Markdown format.

            4. Brug en venlig, professionel tone (som Trille).

            5. Hvis intet passer perfekt, foreslå det tætteste match eller foreslå en "Bestillingsopgave" via kontaktsiden.

            6. Svar altid på Dansk.

            `;


            const aiResponseText = await callGeminiAPI(userText, systemPrompt);


            // Replace loading bubble with actual response

            const responseContainer = document.getElementById(loadingId);

            if(responseContainer) {

                // Parse Markdown

                responseContainer.innerHTML = marked.parse(aiResponseText);

            }

        }


        function addChatMessage(role, html) {

            const id = 'msg-' + Date.now();

            const div = document.createElement('div');

            div.className = 'flex gap-4 ' + (role === 'user' ? 'flex-row-reverse' : '');

            

            const avatar = role === 'user' 

                ? `<div class="w-10 h-10 rounded-full bg-stone-900 flex items-center justify-center flex-shrink-0 text-white"><i class="fas fa-user"></i></div>`

                : `<div class="w-10 h-10 rounded-full bg-amber-100 flex items-center justify-center flex-shrink-0 text-amber-700"><i class="fas fa-robot"></i></div>`;

            

            const bubbleColor = role === 'user' ? 'bg-stone-900 text-white' : 'bg-white border border-stone-100 text-stone-700 shadow-sm';

            

            div.innerHTML = `

                ${avatar}

                <div id="${id}" class="${bubbleColor} p-4 rounded-xl text-sm leading-relaxed max-w-[80%]">

                    ${html}

                </div>

            `;

            

            aiChatArea.appendChild(div);

            aiChatArea.scrollTop = aiChatArea.scrollHeight;

            return id;

        }


        // Utilities

        function showToast(msg) {

            const tMsg = document.getElementById('toast-message');

            tMsg.innerText = msg;

            

            toast.classList.remove('translate-y-20', 'opacity-0');

            setTimeout(() => {

                toast.classList.add('translate-y-20', 'opacity-0');

            }, 3000);

        }


        function toggleMobileMenu() {

            document.getElementById('mobile-menu').classList.toggle('hidden');

        }


        // Updated Submit Form Function to work with Netlify

        function submitForm(e) {

            e.preventDefault();

            

            const myForm = e.target;

            const formData = new FormData(myForm);

            

            // Send data to Netlify via AJAX

            fetch("/", {

                method: "POST",

                headers: { "Content-Type": "application/x-www-form-urlencoded" },

                body: new URLSearchParams(formData).toString(),

            })

            .then(() => {

                showMessage("Besked Sendt", "Tak for din besked! Jeg vender tilbage hurtigst muligt.");

                myForm.reset();

            })

            .catch((error) => {

                console.error("Form error:", error);

                showMessage("Hovsa", "Der skete en teknisk fejl. Prøv at sende en almindelig email i stedet.");

            });

        }


        // Message Modal Helpers (New)

        function showMessage(title, text) {

            document.getElementById('msg-modal-title').innerText = title;

            document.getElementById('msg-modal-text').innerText = text;

            document.getElementById('message-modal').classList.remove('hidden');

        }


        function closeMessageModal() {

            document.getElementById('message-modal').classList.add('hidden');

        }


        // Start

        init();


    </script>

</body>

</html>