Changes to shipfast.scroll.pub

root
root
14 days ago
Initial commit
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://shipfast.scroll.pub
+ metaTags
+ editButton /edit.html
+ title ShipFast | Reliable Global Shipping
+ style.css
+ header
+ class hero
+ nav
+ div ShipFast
+ class logo
+ div
+ class nav-links
+ a Services
+ href #services
+ a Tracking
+ href #tracking
+ a Pricing
+ href #pricing
+ a Contact
+ class cta-button
+ href #contact
+ div
+ class hero-content
+ h1 Fast, Reliable Shipping Worldwide
+ p We deliver your packages with care and precision, anywhere in the world
+ a Get a Quote
+ class primary-button
+ href #quote
+ main
+ section
+ id services
+ class services
+ h2 Our Services
+ div
+ class service-grid
+ div
+ class service-card
+ div 🚚
+ class service-icon
+ h3 Domestic Shipping
+ p Fast delivery within your country with real-time tracking
+ div
+ class service-card
+ div ✈️
+ class service-icon
+ h3 International Shipping
+ p Global network with customs clearance included
+ div
+ class service-card
+ div 📦
+ class service-icon
+ h3 Package Insurance
+ p Full coverage for your valuable shipments
+ div
+ class service-card
+ div ⚡
+ class service-icon
+ h3 Express Delivery
+ p Guaranteed next-day delivery options
+ section
+ id tracking
+ class tracking
+ h2 Track Your Package
+ div
+ class tracking-form
+ input
+ type text
+ placeholder Enter tracking number
+ id tracking-input
+ button
+ class track-button
+ Track
+ div
+ class tracking-results
+ id tracking-results
+ section
+ id pricing
+ class pricing
+ h2 Simple, Transparent Pricing
+ div
+ class pricing-cards
+ div
+ class pricing-card
+ h3 Domestic
+ div $5.99
+ class price
+ p Up to 5 lbs
+ p 2-3 day delivery
+ a Select
+ class outline-button
+ href #quote
+ div
+ class pricing-card featured
+ h3 International
+ div $24.99
+ class price
+ p Up to 10 lbs
+ p 5-7 day delivery
+ a Select
+ class primary-button
+ href #quote
+ div
+ class pricing-card
+ h3 Express
+ div $14.99
+ class price
+ p Up to 5 lbs
+ p Next-day delivery
+ a Select
+ class outline-button
+ href #quote
+ section
+ id contact
+ class contact
+ h2 Contact Us
+ div
+ class contact-grid
+ div
+ class contact-info
+ h3 Customer Service
+ p 24/7 support available
+ p 📞 (800) 555-SHIP
+ p ✉️ support@shipfast.scroll.pub
+ div
+ class contact-form
+ input
+ type text
+ placeholder Your Name
+ input
+ type email
+ placeholder Your Email
+ textarea
+ placeholder Your Message
+ button
+ class primary-button
+ Send Message
+ footer
+ div
+ class footer-content
+ div ShipFast
+ class footer-logo
+ div
+ class footer-links
+ a About Us
+ href #about
+ a Careers
+ href #careers
+ a Terms
+ href #terms
+ a Privacy
+ href #privacy
+ p Delivering your packages with speed and care since 2023
+
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "fb4bb42a-57a5-4808-aa24-5ebfbf8d0b54",
+ "object": "chat.completion",
+ "created": 1743869410,
+ "model": "deepseek-chat",
+ "choices": [
+ {
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "Here's a professional shipping service website built with Scroll, CSS, and JavaScript:\n\n---domain---\nshipfast.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://shipfast.scroll.pub\nmetaTags\neditButton /edit.html\ntitle ShipFast | Reliable Global Shipping\nstyle.css\nheader\n class hero\n nav\n div ShipFast\n class logo\n div\n class nav-links\n a Services\n href #services\n a Tracking\n href #tracking\n a Pricing\n href #pricing\n a Contact\n class cta-button\n href #contact\n div\n class hero-content\n h1 Fast, Reliable Shipping Worldwide\n p We deliver your packages with care and precision, anywhere in the world\n a Get a Quote\n class primary-button\n href #quote\nmain\n section\n id services\n class services\n h2 Our Services\n div\n class service-grid\n div\n class service-card\n div 🚚\n class service-icon\n h3 Domestic Shipping\n p Fast delivery within your country with real-time tracking\n div\n class service-card\n div ✈️\n class service-icon\n h3 International Shipping\n p Global network with customs clearance included\n div\n class service-card\n div 📦\n class service-icon\n h3 Package Insurance\n p Full coverage for your valuable shipments\n div\n class service-card\n div ⚡\n class service-icon\n h3 Express Delivery\n p Guaranteed next-day delivery options\n section\n id tracking\n class tracking\n h2 Track Your Package\n div\n class tracking-form\n input\n type text\n placeholder Enter tracking number\n id tracking-input\n button\n class track-button\n Track\n div\n class tracking-results\n id tracking-results\n section\n id pricing\n class pricing\n h2 Simple, Transparent Pricing\n div\n class pricing-cards\n div\n class pricing-card\n h3 Domestic\n div $5.99\n class price\n p Up to 5 lbs\n p 2-3 day delivery\n a Select\n class outline-button\n href #quote\n div\n class pricing-card featured\n h3 International\n div $24.99\n class price\n p Up to 10 lbs\n p 5-7 day delivery\n a Select\n class primary-button\n href #quote\n div\n class pricing-card\n h3 Express\n div $14.99\n class price\n p Up to 5 lbs\n p Next-day delivery\n a Select\n class outline-button\n href #quote\n section\n id contact\n class contact\n h2 Contact Us\n div\n class contact-grid\n div\n class contact-info\n h3 Customer Service\n p 24/7 support available\n p 📞 (800) 555-SHIP\n p ✉️ support@shipfast.scroll.pub\n div\n class contact-form\n input\n type text\n placeholder Your Name\n input\n type email\n placeholder Your Email\n textarea\n placeholder Your Message\n button\n class primary-button\n Send Message\nfooter\n div\n class footer-content\n div ShipFast\n class footer-logo\n div\n class footer-links\n a About Us\n href #about\n a Careers\n href #careers\n a Terms\n href #terms\n a Privacy\n href #privacy\n p Delivering your packages with speed and care since 2023\n\nscript.js\n---style.css---\n:root {\n --primary: #2563eb;\n --primary-dark: #1d4ed8;\n --secondary: #f59e0b;\n --dark: #1e293b;\n --light: #f8fafc;\n --gray: #94a3b8;\n --success: #10b981;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Segoe UI', system-ui, sans-serif;\n line-height: 1.6;\n color: var(--dark);\n background-color: var(--light);\n}\n\nheader.hero {\n background: linear-gradient(135deg, var(--primary), var(--primary-dark));\n color: white;\n padding: 2rem 1rem;\n position: relative;\n overflow: hidden;\n}\n\nheader.hero::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwwLjA1KSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNwYXR0ZXJuKSIvPjwvc3ZnPg==');\n}\n\nnav {\n display: flex;\n justify-content: space-between;\n align-items: center;\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1rem;\n}\n\n.logo {\n font-size: 1.8rem;\n font-weight: 700;\n color: white;\n}\n\n.nav-links {\n display: flex;\n gap: 1.5rem;\n align-items: center;\n}\n\n.nav-links a {\n color: white;\n text-decoration: none;\n font-weight: 500;\n transition: opacity 0.2s;\n}\n\n.nav-links a:hover {\n opacity: 0.8;\n}\n\n.hero-content {\n max-width: 1200px;\n margin: 5rem auto 3rem;\n padding: 0 1rem;\n position: relative;\n z-index: 1;\n}\n\n.hero-content h1 {\n font-size: 3rem;\n margin-bottom: 1rem;\n line-height: 1.2;\n}\n\n.hero-content p {\n font-size: 1.2rem;\n max-width: 600px;\n margin-bottom: 2rem;\n opacity: 0.9;\n}\n\n.primary-button, .cta-button {\n display: inline-block;\n background-color: white;\n color: var(--primary);\n padding: 0.75rem 1.5rem;\n border-radius: 0.5rem;\n text-decoration: none;\n font-weight: 600;\n transition: all 0.2s;\n border: none;\n cursor: pointer;\n}\n\n.primary-button:hover, .cta-button:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n.outline-button {\n display: inline-block;\n background-color: transparent;\n color: var(--primary);\n padding: 0.75rem 1.5rem;\n border-radius: 0.5rem;\n text-decoration: none;\n font-weight: 600;\n transition: all 0.2s;\n border: 2px solid var(--primary);\n}\n\n.outline-button:hover {\n background-color: var(--primary);\n color: white;\n}\n\nmain {\n max-width: 1200px;\n margin: 0 auto;\n padding: 4rem 1rem;\n}\n\nsection {\n margin-bottom: 6rem;\n}\n\nh2 {\n font-size: 2.2rem;\n margin-bottom: 2rem;\n text-align: center;\n color: var(--dark);\n}\n\n.service-grid, .pricing-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-top: 3rem;\n}\n\n.service-card, .pricing-card {\n background: white;\n border-radius: 0.5rem;\n padding: 2rem;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n transition: transform 0.2s, box-shadow 0.2s;\n text-align: center;\n}\n\n.service-card:hover {\n transform: translateY(-5px);\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);\n}\n\n.service-icon {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n.tracking-form {\n max-width: 500px;\n margin: 0 auto;\n display: flex;\n gap: 0.5rem;\n}\n\n.tracking-form input {\n flex: 1;\n padding: 0.75rem 1rem;\n border: 1px solid var(--gray);\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n\n.track-button {\n padding: 0 1.5rem;\n background-color: var(--primary);\n color: white;\n border: none;\n border-radius: 0.5rem;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.track-button:hover {\n background-color: var(--primary-dark);\n}\n\n.tracking-results {\n max-width: 800px;\n margin: 2rem auto;\n padding: 2rem;\n background: white;\n border-radius: 0.5rem;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n display: none;\n}\n\n.pricing-card {\n position: relative;\n}\n\n.pricing-card.featured {\n border: 2px solid var(--primary);\n}\n\n.price {\n font-size: 2.5rem;\n font-weight: 700;\n margin: 1rem 0;\n color: var(--primary);\n}\n\n.contact-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 3rem;\n margin-top: 2rem;\n}\n\n.contact-info {\n background: white;\n padding: 2rem;\n border-radius: 0.5rem;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\n}\n\n.contact-form {\n display: grid;\n gap: 1rem;\n}\n\n.contact-form input, .contact-form textarea {\n width: 100%;\n padding: 0.75rem 1rem;\n border: 1px solid var(--gray);\n border-radius: 0.5rem;\n font-size: 1rem;\n}\n\n.contact-form textarea {\n min-height: 150px;\n resize: vertical;\n}\n\nfooter {\n background-color: var(--dark);\n color: white;\n padding: 3rem 1rem;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n gap: 2rem;\n}\n\n.footer-logo {\n font-size: 1.8rem;\n font-weight: 700;\n}\n\n.footer-links {\n display: flex;\n flex-wrap: wrap;\n gap: 1.5rem;\n}\n\n.footer-links a {\n color: white;\n text-decoration: none;\n opacity: 0.8;\n transition: opacity 0.2s;\n}\n\n.footer-links a:hover {\n opacity: 1;\n}\n\n@media (max-width: 768px) {\n .hero-content h1 {\n font-size: 2.2rem;\n }\n \n .nav-links {\n gap: 1rem;\n }\n \n .service-grid, .pricing-cards {\n grid-template-columns: 1fr;\n }\n \n .tracking-form {\n flex-direction: column;\n }\n \n .track-button {\n padding: 0.75rem;\n }\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', function() {\n // Tracking form functionality\n const trackingForm = document.querySelector('.tracking-form');\n const trackingInput = document.getElementById('tracking-input');\n const trackingResults = document.getElementById('tracking-results');\n \n if (trackingForm) {\n trackingForm.addEventListener('submit', function(e) {\n e.preventDefault();\n const trackingNumber = trackingInput.value.trim();\n \n if (trackingNumber) {\n // Simulate tracking lookup\n simulateTracking(trackingNumber);\n }\n });\n }\n \n function simulateTracking(trackingNumber) {\n // Show loading state\n trackingResults.innerHTML = '

Looking up your package...

';\n trackingResults.style.display = 'block';\n \n // Simulate API delay\n setTimeout(() => {\n // Generate random status\n const statuses = [\n { status: 'In Transit', location: 'New York, NY', eta: 'Tomorrow by 8pm' },\n { status: 'Out for Delivery', location: 'Your Local Facility', eta: 'Today by 5pm' },\n { status: 'Delivered', location: 'Front Door', eta: 'Delivered at 2:30pm' },\n { status: 'Processing', location: 'Chicago, IL', eta: '3-5 business days' }\n ];\n \n const randomStatus = statuses[Math.floor(Math.random() * statuses.length)];\n \n // Update results\n trackingResults.innerHTML = `\n

Tracking #${trackingNumber}

\n
\n

Status: ${randomStatus.status}

\n

Location: ${randomStatus.location}

\n

Estimated Delivery: ${randomStatus.eta}

\n
\n
\n
\n
\n

Order Processed

\n

${getRandomPastDate(4)}

\n
\n
\n
\n

Shipped

\n

${getRandomPastDate(3)}

\n
\n
\n
\n

In Transit

\n

${getRandomPastDate(2)}

\n
\n
\n
\n

Out for Delivery

\n

${randomStatus.status === 'Delivered' ? getRandomPastDate(1) : 'Today'}

\n
\n ${randomStatus.status === 'Delivered' ? `\n
\n
\n

Delivered

\n

Today

\n
\n ` : ''}\n
\n `;\n }, 1500);\n }\n \n function getRandomPastDate(daysAgo) {\n const date = new Date();\n date.setDate(date.getDate() - daysAgo + Math.floor(Math.random() * 2));\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n }\n \n // Smooth scrolling for anchor links\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n anchor.addEventListener('click', function(e) {\n e.preventDefault();\n \n const targetId = this.getAttribute('href');\n if (targetId === '#') return;\n \n const targetElement = document.querySelector(targetId);\n if (targetElement) {\n window.scrollTo({\n top: targetElement.offsetTop - 80,\n behavior: 'smooth'\n });\n }\n });\n });\n \n // Mobile menu toggle (would be added if we had a mobile menu)\n // Form validation could be added here for the contact form\n});\n---end---"
+ },
+ "logprobs": null,
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 720,
+ "completion_tokens": 3895,
+ "total_tokens": 4615,
+ "prompt_tokens_details": {
+ "cached_tokens": 0
+ },
+ "prompt_cache_hit_tokens": 0,
+ "prompt_cache_miss_tokens": 720
+ },
+ "system_fingerprint": "fp_3d5141a69a_prod0225"
+ }
readme.scroll
Changed around line 1
+ # shipfast.scroll.pub
+
+ Prompt: website
+ Agent: deepseek
+ Model: deepseek-chat
+
+ ## User prompt
+ a shipping service website
+
+ ## System prompt
+ You are an expert web developer. Create a website based on this request: "a shipping service website"
+
+ Requirements:
+ - Use only Scroll, CSS, and JavaScript (NO frameworks, NO external dependencies)
+ - Create clean, semantic HTML5
+ - Make it mobile-responsive
+ - Follow modern best practices and accessibility guidelines
+ - Keep it simple but professional
+ - Use only relative links and no external resources
+ - Do not put a copyright symbol or all rights reserved in the footer.
+ - Make it beautiful. Dazzling. Advanced used of CSS.
+
+ As a refresher, for doing the html body, Scroll is a whitespace based language that uses a single indented space to mark a line (aka particle) as a subparticle of a parent line.
+
+ For example:
+
+ header
+ class hero
+ nav
+ div Scroll
+ class logo
+ div
+ class nav-links
+ a Features
+ href #features
+ a Examples
+ href #examples
+ a Edit
+ href edit.html
+ a GitHub
+ class cta-button
+ href https://github.com/breck7/scroll
+ div
+ class hero-content
+ h1 Write Better with Scroll
+ p The extendible markup language that makes source beautiful and compiles to anything
+ a Get Started
+ class primary-button
+ href https://hub.scroll.pub/
+ main
+ section
+ id features
+ class features
+ h2 Why Scroll?
+ div
+ class feature-grid
+ div
+ class feature-card
+ div ⚡
+ class feature-icon
+ h3 Simple Syntax
+ p Like Markdown, but more powerful. No parentheses needed.
+ div
+ class feature-card
+ div 🧩
+ class feature-icon
+ h3 Extendible
+ p Build your own custom parsers.
+ div
+ class feature-card
+ div 🎨
+ class feature-icon
+ h3 Beautiful Output
+ p Create stunning documents with minimal effort.
+ div
+ class feature-card
+ div 🚀
+ class feature-icon
+ h3 Fast & Light
+ p Built on the efficient PPS Stack.
+ section
+ id examples
+ class code-demo
+ h2 See It In Action
+ div
+ class code-container
+ pre
+ class code-example
+ div
+ class code-output
+ footer
+ div
+ class footer-content
+ div
+ class footer-links
+ a Documentation
+ href https://scroll.pub/tutorial.html
+ a Community
+ href https://www.reddit.com/r/WorldWideScroll/
+ a Blog
+ href https://scroll.pub/blog
+ p Started by Breck Yunits. Evolved by a community.
+ https://twitter.com/breckyunits Breck Yunits
+ https://github.com/breck7/scroll/graphs/contributors community
+
+
+ First suggest a short, memorable domain name ending in scroll.pub that represents this website. Then provide the website files. Use this exact format:
+
+ ---domain---
+ (domainscroll.pub here)
+ ---index.scroll---
+ buildHtml
+ baseUrl https://(domainscroll.pub here)
+ metaTags
+ editButton /edit.html
+ title (Title here)
+ style.css
+
+ (body content here. no blank lines please.)
+
+ script.js
+ ---style.css---
+ (CSS content here)
+ ---script.js---
+ (JavaScript content here)
+ ---end---
script.js
Changed around line 1
+ document.addEventListener('DOMContentLoaded', function() {
+ // Tracking form functionality
+ const trackingForm = document.querySelector('.tracking-form');
+ const trackingInput = document.getElementById('tracking-input');
+ const trackingResults = document.getElementById('tracking-results');
+
+ if (trackingForm) {
+ trackingForm.addEventListener('submit', function(e) {
+ e.preventDefault();
+ const trackingNumber = trackingInput.value.trim();
+
+ if (trackingNumber) {
+ // Simulate tracking lookup
+ simulateTracking(trackingNumber);
+ }
+ });
+ }
+
+ function simulateTracking(trackingNumber) {
+ // Show loading state
+ trackingResults.innerHTML = '

Looking up your package...

';
+ trackingResults.style.display = 'block';
+
+ // Simulate API delay
+ setTimeout(() => {
+ // Generate random status
+ const statuses = [
+ { status: 'In Transit', location: 'New York, NY', eta: 'Tomorrow by 8pm' },
+ { status: 'Out for Delivery', location: 'Your Local Facility', eta: 'Today by 5pm' },
+ { status: 'Delivered', location: 'Front Door', eta: 'Delivered at 2:30pm' },
+ { status: 'Processing', location: 'Chicago, IL', eta: '3-5 business days' }
+ ];
+
+ const randomStatus = statuses[Math.floor(Math.random() * statuses.length)];
+
+ // Update results
+ trackingResults.innerHTML = `
+

Tracking #${trackingNumber}

+
+

Status: ${randomStatus.status}

+

Location: ${randomStatus.location}

+

Estimated Delivery: ${randomStatus.eta}

+
+
+
+
+

Order Processed

+

${getRandomPastDate(4)}

+
+
+
+

Shipped

+

${getRandomPastDate(3)}

+
+
+
+

In Transit

+

${getRandomPastDate(2)}

+
+
+
+

Out for Delivery

+

${randomStatus.status === 'Delivered' ? getRandomPastDate(1) : 'Today'}

+
+ ${randomStatus.status === 'Delivered' ? `
+
+
+

Delivered

+

Today

+
+ ` : ''}
+
+ `;
+ }, 1500);
+ }
+
+ function getRandomPastDate(daysAgo) {
+ const date = new Date();
+ date.setDate(date.getDate() - daysAgo + Math.floor(Math.random() * 2));
+ return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
+ }
+
+ // Smooth scrolling for anchor links
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function(e) {
+ e.preventDefault();
+
+ const targetId = this.getAttribute('href');
+ if (targetId === '#') return;
+
+ const targetElement = document.querySelector(targetId);
+ if (targetElement) {
+ window.scrollTo({
+ top: targetElement.offsetTop - 80,
+ behavior: 'smooth'
+ });
+ }
+ });
+ });
+
+ // Mobile menu toggle (would be added if we had a mobile menu)
+ // Form validation could be added here for the contact form
+ });
style.css
Changed around line 1
+ :root {
+ --primary: #2563eb;
+ --primary-dark: #1d4ed8;
+ --secondary: #f59e0b;
+ --dark: #1e293b;
+ --light: #f8fafc;
+ --gray: #94a3b8;
+ --success: #10b981;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ font-family: 'Segoe UI', system-ui, sans-serif;
+ line-height: 1.6;
+ color: var(--dark);
+ background-color: var(--light);
+ }
+
+ header.hero {
+ background: linear-gradient(135deg, var(--primary), var(--primary-dark));
+ color: white;
+ padding: 2rem 1rem;
+ position: relative;
+ overflow: hidden;
+ }
+
+ header.hero::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwwLjA1KSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNwYXR0ZXJuKSIvPjwvc3ZnPg==');
+ }
+
+ nav {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1rem;
+ }
+
+ .logo {
+ font-size: 1.8rem;
+ font-weight: 700;
+ color: white;
+ }
+
+ .nav-links {
+ display: flex;
+ gap: 1.5rem;
+ align-items: center;
+ }
+
+ .nav-links a {
+ color: white;
+ text-decoration: none;
+ font-weight: 500;
+ transition: opacity 0.2s;
+ }
+
+ .nav-links a:hover {
+ opacity: 0.8;
+ }
+
+ .hero-content {
+ max-width: 1200px;
+ margin: 5rem auto 3rem;
+ padding: 0 1rem;
+ position: relative;
+ z-index: 1;
+ }
+
+ .hero-content h1 {
+ font-size: 3rem;
+ margin-bottom: 1rem;
+ line-height: 1.2;
+ }
+
+ .hero-content p {
+ font-size: 1.2rem;
+ max-width: 600px;
+ margin-bottom: 2rem;
+ opacity: 0.9;
+ }
+
+ .primary-button, .cta-button {
+ display: inline-block;
+ background-color: white;
+ color: var(--primary);
+ padding: 0.75rem 1.5rem;
+ border-radius: 0.5rem;
+ text-decoration: none;
+ font-weight: 600;
+ transition: all 0.2s;
+ border: none;
+ cursor: pointer;
+ }
+
+ .primary-button:hover, .cta-button:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+ }
+
+ .outline-button {
+ display: inline-block;
+ background-color: transparent;
+ color: var(--primary);
+ padding: 0.75rem 1.5rem;
+ border-radius: 0.5rem;
+ text-decoration: none;
+ font-weight: 600;
+ transition: all 0.2s;
+ border: 2px solid var(--primary);
+ }
+
+ .outline-button:hover {
+ background-color: var(--primary);
+ color: white;
+ }
+
+ main {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 4rem 1rem;
+ }
+
+ section {
+ margin-bottom: 6rem;
+ }
+
+ h2 {
+ font-size: 2.2rem;
+ margin-bottom: 2rem;
+ text-align: center;
+ color: var(--dark);
+ }
+
+ .service-grid, .pricing-cards {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 3rem;
+ }
+
+ .service-card, .pricing-card {
+ background: white;
+ border-radius: 0.5rem;
+ padding: 2rem;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
+ transition: transform 0.2s, box-shadow 0.2s;
+ text-align: center;
+ }
+
+ .service-card:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
+ }
+
+ .service-icon {
+ font-size: 2.5rem;
+ margin-bottom: 1rem;
+ }
+
+ .tracking-form {
+ max-width: 500px;
+ margin: 0 auto;
+ display: flex;
+ gap: 0.5rem;
+ }
+
+ .tracking-form input {
+ flex: 1;
+ padding: 0.75rem 1rem;
+ border: 1px solid var(--gray);
+ border-radius: 0.5rem;
+ font-size: 1rem;
+ }
+
+ .track-button {
+ padding: 0 1.5rem;
+ background-color: var(--primary);
+ color: white;
+ border: none;
+ border-radius: 0.5rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ }
+
+ .track-button:hover {
+ background-color: var(--primary-dark);
+ }
+
+ .tracking-results {
+ max-width: 800px;
+ margin: 2rem auto;
+ padding: 2rem;
+ background: white;
+ border-radius: 0.5rem;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
+ display: none;
+ }
+
+ .pricing-card {
+ position: relative;
+ }
+
+ .pricing-card.featured {
+ border: 2px solid var(--primary);
+ }
+
+ .price {
+ font-size: 2.5rem;
+ font-weight: 700;
+ margin: 1rem 0;
+ color: var(--primary);
+ }
+
+ .contact-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 3rem;
+ margin-top: 2rem;
+ }
+
+ .contact-info {
+ background: white;
+ padding: 2rem;
+ border-radius: 0.5rem;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
+ }
+
+ .contact-form {
+ display: grid;
+ gap: 1rem;
+ }
+
+ .contact-form input, .contact-form textarea {
+ width: 100%;
+ padding: 0.75rem 1rem;
+ border: 1px solid var(--gray);
+ border-radius: 0.5rem;
+ font-size: 1rem;
+ }
+
+ .contact-form textarea {
+ min-height: 150px;
+ resize: vertical;
+ }
+
+ footer {
+ background-color: var(--dark);
+ color: white;
+ padding: 3rem 1rem;
+ }
+
+ .footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+ }
+
+ .footer-logo {
+ font-size: 1.8rem;
+ font-weight: 700;
+ }
+
+ .footer-links {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 1.5rem;
+ }
+
+ .footer-links a {
+ color: white;
+ text-decoration: none;
+ opacity: 0.8;
+ transition: opacity 0.2s;
+ }
+
+ .footer-links a:hover {
+ opacity: 1;
+ }
+
+ @media (max-width: 768px) {
+ .hero-content h1 {
+ font-size: 2.2rem;
+ }
+
+ .nav-links {
+ gap: 1rem;
+ }
+
+ .service-grid, .pricing-cards {
+ grid-template-columns: 1fr;
+ }
+
+ .tracking-form {
+ flex-direction: column;
+ }
+
+ .track-button {
+ padding: 0.75rem;
+ }
+ }