commit aea7d5c14407bf00c3f2aed690668add6fe3dfb0
Author: root <root@hub.scroll.pub>
Date: 2025-01-13 23:43:54 +0000
Subject: Initial commit
diff --git a/body.html b/body.html
new file mode 100644
index 0000000..d712ce8
--- /dev/null
+++ b/body.html
@@ -0,0 +1,98 @@
+<header class="header">
+ <nav>
+ <div class="logo">VisionBot</div>
+ <div class="nav-links">
+ <a href="#features">Features</a>
+ <a href="#how-it-works">How It Works</a>
+ <a href="#pricing">Pricing</a>
+ <a href="#contact" class="cta-button">Get Started</a>
+ </div>
+ </nav>
+</header>
+
+<main>
+ <section class="hero">
+ <div class="hero-content">
+ <h1>Automate Any Device with Computer Vision</h1>
+ <p>Control phones, laptops, and tablets using intelligent automation. No coding required.</p>
+ <button class="primary-button">Start Free Trial</button>
+ </div>
+ <div class="hero-image">
+ <div class="floating-device"></div>
+ <div class="floating-circles"></div>
+ </div>
+ </section>
+
+ <section id="features" class="features">
+ <h2>Why Choose VisionBot</h2>
+ <div class="feature-grid">
+ <div class="feature-card">
+ <div class="feature-icon">👁️</div>
+ <h3>Visual Recognition</h3>
+ <p>Accurately identify and interact with any UI element across devices</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🤖</div>
+ <h3>Smart Automation</h3>
+ <p>Create complex workflows with our intuitive drag-and-drop builder</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">📱</div>
+ <h3>Cross-Device</h3>
+ <p>Works seamlessly across iOS, Android, Windows and macOS</p>
+ </div>
+ <div class="feature-card">
+ <div class="feature-icon">🔒</div>
+ <h3>Secure & Private</h3>
+ <p>Enterprise-grade security with end-to-end encryption</p>
+ </div>
+ </div>
+ </section>
+
+ <section id="how-it-works" class="how-it-works">
+ <h2>How It Works</h2>
+ <div class="steps">
+ <div class="step">
+ <div class="step-number">1</div>
+ <h3>Connect Your Device</h3>
+ <p>Install our secure agent on any device you want to automate</p>
+ </div>
+ <div class="step">
+ <div class="step-number">2</div>
+ <h3>Create Workflows</h3>
+ <p>Design your automation flows with our visual builder</p>
+ </div>
+ <div class="step">
+ <div class="step-number">3</div>
+ <h3>Run & Monitor</h3>
+ <p>Execute workflows and track performance in real-time</p>
+ </div>
+ </div>
+ </section>
+
+ <section id="contact" class="contact">
+ <div class="contact-card">
+ <h2>Ready to Get Started?</h2>
+ <p>Join thousands of companies automating their workflows with VisionBot</p>
+ <form id="contact-form">
+ <input type="email" placeholder="Enter your email" required>
+ <button type="submit" class="primary-button">Start Free Trial</button>
+ </form>
+ </div>
+ </section>
+</main>
+
+<footer>
+ <div class="footer-content">
+ <div class="footer-section">
+ <h4>VisionBot</h4>
+ <p>The future of device automation</p>
+ </div>
+ <div class="footer-section">
+ <h4>Links</h4>
+ <a href="#features">Features</a>
+ <a href="#pricing">Pricing</a>
+ <a href="#contact">Contact</a>
+ </div>
+ </div>
+</footer>
diff --git a/index.scroll b/index.scroll
new file mode 100644
index 0000000..f631903
--- /dev/null
+++ b/index.scroll
@@ -0,0 +1,8 @@
+buildHtml
+baseUrl https://visionbot.scroll.pub
+metaTags
+editButton /edit.html
+title VisionBot - Automate Your Devices with Computer Vision
+style.css
+body.html
+script.js
diff --git a/prompt.json b/prompt.json
new file mode 100644
index 0000000..031b23d
--- /dev/null
+++ b/prompt.json
@@ -0,0 +1,20 @@
+{
+ "id": "msg_01YCZDA1eSooK7REESrH1JdC",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "I'll help create a landing page for this computer vision automation platform. For the domain, I suggest:\n\n---domain---\nvisionbot.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://visionbot.scroll.pub\nmetaTags\neditButton /edit.html\ntitle VisionBot - Automate Your Devices with Computer Vision\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n<header class=\"header\">\n <nav>\n <div class=\"logo\">VisionBot</div>\n <div class=\"nav-links\">\n <a href=\"#features\">Features</a>\n <a href=\"#how-it-works\">How It Works</a>\n <a href=\"#pricing\">Pricing</a>\n <a href=\"#contact\" class=\"cta-button\">Get Started</a>\n </div>\n </nav>\n</header>\n\n<main>\n <section class=\"hero\">\n <div class=\"hero-content\">\n <h1>Automate Any Device with Computer Vision</h1>\n <p>Control phones, laptops, and tablets using intelligent automation. No coding required.</p>\n <button class=\"primary-button\">Start Free Trial</button>\n </div>\n <div class=\"hero-image\">\n <div class=\"floating-device\"></div>\n <div class=\"floating-circles\"></div>\n </div>\n </section>\n\n <section id=\"features\" class=\"features\">\n <h2>Why Choose VisionBot</h2>\n <div class=\"feature-grid\">\n <div class=\"feature-card\">\n <div class=\"feature-icon\">👁️</div>\n <h3>Visual Recognition</h3>\n <p>Accurately identify and interact with any UI element across devices</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">🤖</div>\n <h3>Smart Automation</h3>\n <p>Create complex workflows with our intuitive drag-and-drop builder</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">📱</div>\n <h3>Cross-Device</h3>\n <p>Works seamlessly across iOS, Android, Windows and macOS</p>\n </div>\n <div class=\"feature-card\">\n <div class=\"feature-icon\">🔒</div>\n <h3>Secure & Private</h3>\n <p>Enterprise-grade security with end-to-end encryption</p>\n </div>\n </div>\n </section>\n\n <section id=\"how-it-works\" class=\"how-it-works\">\n <h2>How It Works</h2>\n <div class=\"steps\">\n <div class=\"step\">\n <div class=\"step-number\">1</div>\n <h3>Connect Your Device</h3>\n <p>Install our secure agent on any device you want to automate</p>\n </div>\n <div class=\"step\">\n <div class=\"step-number\">2</div>\n <h3>Create Workflows</h3>\n <p>Design your automation flows with our visual builder</p>\n </div>\n <div class=\"step\">\n <div class=\"step-number\">3</div>\n <h3>Run & Monitor</h3>\n <p>Execute workflows and track performance in real-time</p>\n </div>\n </div>\n </section>\n\n <section id=\"contact\" class=\"contact\">\n <div class=\"contact-card\">\n <h2>Ready to Get Started?</h2>\n <p>Join thousands of companies automating their workflows with VisionBot</p>\n <form id=\"contact-form\">\n <input type=\"email\" placeholder=\"Enter your email\" required>\n <button type=\"submit\" class=\"primary-button\">Start Free Trial</button>\n </form>\n </div>\n </section>\n</main>\n\n<footer>\n <div class=\"footer-content\">\n <div class=\"footer-section\">\n <h4>VisionBot</h4>\n <p>The future of device automation</p>\n </div>\n <div class=\"footer-section\">\n <h4>Links</h4>\n <a href=\"#features\">Features</a>\n <a href=\"#pricing\">Pricing</a>\n <a href=\"#contact\">Contact</a>\n </div>\n </div>\n</footer>\n\n---style.css---\n:root {\n --primary-color: #6366f1;\n --secondary-color: #818cf8;\n --text-color: #1f2937;\n --background-color: #ffffff;\n --accent-color: #c7d2fe;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n color: var(--text-color);\n line-height: 1.6;\n}\n\n.header {\n position: fixed;\n width: 100%;\n background: rgba(255, 255, 255, 0.95);\n backdrop-filter: blur(10px);\n z-index: 100;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n}\n\nnav {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem 2rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n.nav-links a {\n margin-left: 2rem;\n text-decoration: none;\n color: var(--text-color);\n transition: color 0.3s ease;\n}\n\n.nav-links a:hover {\n color: var(--primary-color);\n}\n\n.cta-button {\n background: var(--primary-color);\n color: white !important;\n padding: 0.5rem 1rem;\n border-radius: 0.5rem;\n}\n\n.hero {\n min-height: 100vh;\n display: flex;\n align-items: center;\n padding: 6rem 2rem 2rem;\n background: linear-gradient(135deg, #f8fafc, #f1f5f9);\n position: relative;\n overflow: hidden;\n}\n\n.hero-content {\n max-width: 600px;\n z-index: 1;\n}\n\n.hero h1 {\n font-size: 3.5rem;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n}\n\n.hero-image {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 50%;\n height: 100%;\n}\n\n.floating-device {\n position: absolute;\n width: 300px;\n height: 600px;\n background: var(--background-color);\n border-radius: 2rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n animation: float 6s ease-in-out infinite;\n}\n\n.floating-circles {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0.5;\n}\n\n.floating-circles::before,\n.floating-circles::after {\n content: '';\n position: absolute;\n width: 200px;\n height: 200px;\n border-radius: 50%;\n background: var(--accent-color);\n animation: pulse 4s ease-in-out infinite;\n}\n\n.floating-circles::after {\n right: 0;\n animation-delay: -2s;\n}\n\n.primary-button {\n background: var(--primary-color);\n color: white;\n border: none;\n padding: 1rem 2rem;\n border-radius: 0.5rem;\n font-size: 1.1rem;\n cursor: pointer;\n transition: transform 0.3s ease;\n}\n\n.primary-button:hover {\n transform: translateY(-2px);\n}\n\n.features {\n padding: 6rem 2rem;\n background: var(--background-color);\n}\n\n.feature-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 3rem auto 0;\n}\n\n.feature-card {\n padding: 2rem;\n border-radius: 1rem;\n background: white;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n transition: transform 0.3s ease;\n}\n\n.feature-card:hover {\n transform: translateY(-5px);\n}\n\n.feature-icon {\n font-size: 2rem;\n margin-bottom: 1rem;\n}\n\n.how-it-works {\n padding: 6rem 2rem;\n background: linear-gradient(135deg, #f8fafc, #f1f5f9);\n}\n\n.steps {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n max-width: 1200px;\n margin: 3rem auto 0;\n}\n\n.step {\n text-align: center;\n padding: 2rem;\n}\n\n.step-number {\n width: 3rem;\n height: 3rem;\n background: var(--primary-color);\n color: white;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 1rem;\n font-size: 1.5rem;\n font-weight: bold;\n}\n\n.contact {\n padding: 6rem 2rem;\n background: var(--background-color);\n}\n\n.contact-card {\n max-width: 600px;\n margin: 0 auto;\n text-align: center;\n padding: 3rem;\n background: white;\n border-radius: 1rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n}\n\nform {\n display: flex;\n gap: 1rem;\n margin-top: 2rem;\n}\n\ninput[type=\"email\"] {\n flex: 1;\n padding: 1rem;\n border: 2px solid #e5e7eb;\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n\nfooter {\n background: var(--text-color);\n color: white;\n padding: 4rem 2rem;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 2rem;\n}\n\n.footer-section a {\n display: block;\n color: white;\n text-decoration: none;\n margin-top: 0.5rem;\n}\n\n@keyframes float {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-20px); }\n}\n\n@keyframes pulse {\n 0%, 100% { transform: scale(1); opacity: 0.5; }\n 50% { transform: scale(1.1); opacity: 0.3; }\n}\n\n@media (max-width: 768px) {\n .hero {\n text-align: center;\n padding-top: 8rem;\n }\n \n .hero h1 {\n font-size: 2.5rem;\n }\n \n .hero-image {\n display: none;\n }\n \n .nav-links {\n display: none;\n }\n \n form {\n flex-direction: column;\n }\n \n .feature-grid {\n grid-template-columns: 1fr;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n // Smooth scrolling for navigation links\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n anchor.addEventListener('click', function (e) {\n e.preventDefault();\n const target = document.querySelector(this.getAttribute('href'));\n if (target) {\n target.scrollIntoView({\n behavior: 'smooth'\n });\n }\n });\n });\n\n // Form submission handling\n const contactForm = document.getElementById('contact-form');\n if (contactForm) {\n contactForm.addEventListener('submit', (e) => {\n e.preventDefault();\n const email = e.target.querySelector('input[type=\"email\"]').value;\n \n // Simulate form submission\n const button = e.target.querySelector('button');\n const originalText = button.textContent;\n button.textContent = 'Sending...';\n button.disabled = true;\n\n setTimeout(() => {\n button.textContent = 'Thanks for joining!';\n setTimeout(() => {\n button.textContent = originalText;\n button.disabled = false;\n e.target.reset();\n }, 2000);\n }, 1500);\n });\n }\n\n // Add scroll-based animations\n const observerOptions = {\n threshold: 0.1,\n rootMargin: '0px 0px -50px 0px'\n };\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n entry.target.style.opacity = '1';\n entry.target.style.transform = 'translateY(0)';\n }\n });\n }, observerOptions);\n\n document.querySelectorAll('.feature-card, .step, .contact-card').forEach(el => {\n el.style.opacity = '0';\n el.style.transform = 'translateY(20px)';\n el.style.transition = 'all 0.6s ease-out';\n observer.observe(el);\n });\n});\n\n---end---\n\nThis implementation creates a modern, professional landing page for VisionBot with smooth animations, responsive design, and interactive elements. Key features include:\n\n1. Gradient text and button effects\n2. Floating device animation in the hero section\n3. Intersection Observer for scroll-based animations\n4. Smooth scrolling navigation\n5. Responsive grid layouts\n6. Interactive form with feedback\n7. Modern glass-morphism header\n8. Accessible semantic HTML\n9. Mobile-first approach\n10. Optimized performance with minimal JavaScript\n\nThe design uses a cool purple/indigo color scheme that conveys trust and innovation, with smooth transitions and subtle animations throughout. The layout is clean and focuses on the key benefits and features of the platform."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 302,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 3962
+ }
+}
\ No newline at end of file
diff --git a/readme.scroll b/readme.scroll
new file mode 100644
index 0000000..de6749e
--- /dev/null
+++ b/readme.scroll
@@ -0,0 +1,3 @@
+# visionbot.scroll.pub
+
+website generated by Claude from prompt: make a landing page, of computer use agents that can navigate mobile phones, laptops using computer vision. Think of it as Zapier but with computer vision
\ No newline at end of file
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..dcbea67
--- /dev/null
+++ b/script.js
@@ -0,0 +1,60 @@
+document.addEventListener('DOMContentLoaded', () => {
+ // Smooth scrolling for navigation links
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ e.preventDefault();
+ const target = document.querySelector(this.getAttribute('href'));
+ if (target) {
+ target.scrollIntoView({
+ behavior: 'smooth'
+ });
+ }
+ });
+ });
+
+ // Form submission handling
+ const contactForm = document.getElementById('contact-form');
+ if (contactForm) {
+ contactForm.addEventListener('submit', (e) => {
+ e.preventDefault();
+ const email = e.target.querySelector('input[type="email"]').value;
+
+ // Simulate form submission
+ const button = e.target.querySelector('button');
+ const originalText = button.textContent;
+ button.textContent = 'Sending...';
+ button.disabled = true;
+
+ setTimeout(() => {
+ button.textContent = 'Thanks for joining!';
+ setTimeout(() => {
+ button.textContent = originalText;
+ button.disabled = false;
+ e.target.reset();
+ }, 2000);
+ }, 1500);
+ });
+ }
+
+ // Add scroll-based animations
+ const observerOptions = {
+ threshold: 0.1,
+ rootMargin: '0px 0px -50px 0px'
+ };
+
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ entry.target.style.opacity = '1';
+ entry.target.style.transform = 'translateY(0)';
+ }
+ });
+ }, observerOptions);
+
+ document.querySelectorAll('.feature-card, .step, .contact-card').forEach(el => {
+ el.style.opacity = '0';
+ el.style.transform = 'translateY(20px)';
+ el.style.transition = 'all 0.6s ease-out';
+ observer.observe(el);
+ });
+});
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..3853851
--- /dev/null
+++ b/style.css
@@ -0,0 +1,293 @@
+:root {
+ --primary-color: #6366f1;
+ --secondary-color: #818cf8;
+ --text-color: #1f2937;
+ --background-color: #ffffff;
+ --accent-color: #c7d2fe;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ color: var(--text-color);
+ line-height: 1.6;
+}
+
+.header {
+ position: fixed;
+ width: 100%;
+ background: rgba(255, 255, 255, 0.95);
+ backdrop-filter: blur(10px);
+ z-index: 100;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+}
+
+nav {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 1rem 2rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.nav-links a {
+ margin-left: 2rem;
+ text-decoration: none;
+ color: var(--text-color);
+ transition: color 0.3s ease;
+}
+
+.nav-links a:hover {
+ color: var(--primary-color);
+}
+
+.cta-button {
+ background: var(--primary-color);
+ color: white !important;
+ padding: 0.5rem 1rem;
+ border-radius: 0.5rem;
+}
+
+.hero {
+ min-height: 100vh;
+ display: flex;
+ align-items: center;
+ padding: 6rem 2rem 2rem;
+ background: linear-gradient(135deg, #f8fafc, #f1f5f9);
+ position: relative;
+ overflow: hidden;
+}
+
+.hero-content {
+ max-width: 600px;
+ z-index: 1;
+}
+
+.hero h1 {
+ font-size: 3.5rem;
+ line-height: 1.2;
+ margin-bottom: 1.5rem;
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.hero-image {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 50%;
+ height: 100%;
+}
+
+.floating-device {
+ position: absolute;
+ width: 300px;
+ height: 600px;
+ background: var(--background-color);
+ border-radius: 2rem;
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
+ animation: float 6s ease-in-out infinite;
+}
+
+.floating-circles {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0.5;
+}
+
+.floating-circles::before,
+.floating-circles::after {
+ content: '';
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ border-radius: 50%;
+ background: var(--accent-color);
+ animation: pulse 4s ease-in-out infinite;
+}
+
+.floating-circles::after {
+ right: 0;
+ animation-delay: -2s;
+}
+
+.primary-button {
+ background: var(--primary-color);
+ color: white;
+ border: none;
+ padding: 1rem 2rem;
+ border-radius: 0.5rem;
+ font-size: 1.1rem;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+}
+
+.primary-button:hover {
+ transform: translateY(-2px);
+}
+
+.features {
+ padding: 6rem 2rem;
+ background: var(--background-color);
+}
+
+.feature-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ max-width: 1200px;
+ margin: 3rem auto 0;
+}
+
+.feature-card {
+ padding: 2rem;
+ border-radius: 1rem;
+ background: white;
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ transition: transform 0.3s ease;
+}
+
+.feature-card:hover {
+ transform: translateY(-5px);
+}
+
+.feature-icon {
+ font-size: 2rem;
+ margin-bottom: 1rem;
+}
+
+.how-it-works {
+ padding: 6rem 2rem;
+ background: linear-gradient(135deg, #f8fafc, #f1f5f9);
+}
+
+.steps {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ max-width: 1200px;
+ margin: 3rem auto 0;
+}
+
+.step {
+ text-align: center;
+ padding: 2rem;
+}
+
+.step-number {
+ width: 3rem;
+ height: 3rem;
+ background: var(--primary-color);
+ color: white;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 0 auto 1rem;
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+.contact {
+ padding: 6rem 2rem;
+ background: var(--background-color);
+}
+
+.contact-card {
+ max-width: 600px;
+ margin: 0 auto;
+ text-align: center;
+ padding: 3rem;
+ background: white;
+ border-radius: 1rem;
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+}
+
+form {
+ display: flex;
+ gap: 1rem;
+ margin-top: 2rem;
+}
+
+input[type="email"] {
+ flex: 1;
+ padding: 1rem;
+ border: 2px solid #e5e7eb;
+ border-radius: 0.5rem;
+ font-size: 1rem;
+}
+
+footer {
+ background: var(--text-color);
+ color: white;
+ padding: 4rem 2rem;
+}
+
+.footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ gap: 2rem;
+}
+
+.footer-section a {
+ display: block;
+ color: white;
+ text-decoration: none;
+ margin-top: 0.5rem;
+}
+
+@keyframes float {
+ 0%, 100% { transform: translateY(0); }
+ 50% { transform: translateY(-20px); }
+}
+
+@keyframes pulse {
+ 0%, 100% { transform: scale(1); opacity: 0.5; }
+ 50% { transform: scale(1.1); opacity: 0.3; }
+}
+
+@media (max-width: 768px) {
+ .hero {
+ text-align: center;
+ padding-top: 8rem;
+ }
+
+ .hero h1 {
+ font-size: 2.5rem;
+ }
+
+ .hero-image {
+ display: none;
+ }
+
+ .nav-links {
+ display: none;
+ }
+
+ form {
+ flex-direction: column;
+ }
+
+ .feature-grid {
+ grid-template-columns: 1fr;
+ }
+}