Changes to calorie.scroll.pub

root
root
13 days ago
Initial commit
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://calorie.scroll.pub
+ metaTags
+ editButton /edit.html
+ title Calorie Tracker | Simple & Beautiful Nutrition Tracking
+ style.css
+ header
+ class hero
+ nav
+ div Calorie Tracker
+ class logo
+ div
+ class nav-links
+ a Dashboard
+ href #dashboard
+ a Foods
+ href #foods
+ a Reports
+ href #reports
+ div
+ class hero-content
+ h1 Track Your Nutrition Simply
+ p A beautiful, intuitive way to monitor your daily calorie intake
+ a Get Started
+ class primary-button
+ href #dashboard
+ main
+ section
+ id dashboard
+ class dashboard
+ h2 Today's Intake
+ div
+ class stats-container
+ div
+ class stat-card
+ h3 1,250
+ p Calories
+ div
+ class stat-card
+ h3 85g
+ p Protein
+ div
+ class stat-card
+ h3 45g
+ p Fat
+ div
+ class stat-card
+ h3 120g
+ p Carbs
+ div
+ class intake-form
+ h3 Add Food
+ form
+ id food-form
+ div
+ class form-group
+ label Food Name
+ input
+ type text
+ id food-name
+ placeholder "e.g. Banana"
+ div
+ class form-group
+ label Calories
+ input
+ type number
+ id food-calories
+ placeholder "e.g. 105"
+ button
+ type submit
+ class primary-button
+ Add Food
+ div
+ class food-list
+ h3 Today's Foods
+ ul
+ id recent-foods
+ li
+ class food-item
+ span Banana
+ span 105 cal
+ button
+ class delete-btn
+ ×
+ li
+ class food-item
+ span Greek Yogurt
+ span 150 cal
+ button
+ class delete-btn
+ ×
+ section
+ id foods
+ class common-foods
+ h2 Common Foods
+ div
+ class food-grid
+ div
+ class food-card
+ h3 Apple
+ p 95 cal
+ div
+ class food-card
+ h3 Chicken Breast
+ p 165 cal
+ div
+ class food-card
+ h3 White Rice
+ p 205 cal
+ div
+ class food-card
+ h3 Avocado
+ p 240 cal
+ div
+ class food-card
+ h3 Eggs
+ p 70 cal
+ div
+ class food-card
+ h3 Almonds
+ p 170 cal
+ section
+ id reports
+ class reports
+ h2 Weekly Report
+ div
+ class chart-container
+ canvas
+ id calorie-chart
+ footer
+ div
+ class footer-content
+ div
+ class footer-links
+ a About
+ href about.html
+ a Contact
+ href contact.html
+ a Privacy
+ href privacy.html
+ p Made with ❤️ for health-conscious people
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "53f730f6-5ec4-4533-9af0-a45e9cb174e6",
+ "object": "chat.completion",
+ "created": 1744055902,
+ "model": "deepseek-chat",
+ "choices": [
+ {
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "Here's my suggestion for a calorie tracking website built with Scroll:\n\n---domain---\ncalorie.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://calorie.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Calorie Tracker | Simple & Beautiful Nutrition Tracking\nstyle.css\nheader\n class hero\n nav\n div Calorie Tracker\n class logo\n div\n class nav-links\n a Dashboard\n href #dashboard\n a Foods\n href #foods\n a Reports\n href #reports\n div\n class hero-content\n h1 Track Your Nutrition Simply\n p A beautiful, intuitive way to monitor your daily calorie intake\n a Get Started\n class primary-button\n href #dashboard\nmain\n section\n id dashboard\n class dashboard\n h2 Today's Intake\n div\n class stats-container\n div\n class stat-card\n h3 1,250\n p Calories\n div\n class stat-card\n h3 85g\n p Protein\n div\n class stat-card\n h3 45g\n p Fat\n div\n class stat-card\n h3 120g\n p Carbs\n div\n class intake-form\n h3 Add Food\n form\n id food-form\n div\n class form-group\n label Food Name\n input\n type text\n id food-name\n placeholder \"e.g. Banana\"\n div\n class form-group\n label Calories\n input\n type number\n id food-calories\n placeholder \"e.g. 105\"\n button\n type submit\n class primary-button\n Add Food\n div\n class food-list\n h3 Today's Foods\n ul\n id recent-foods\n li\n class food-item\n span Banana\n span 105 cal\n button\n class delete-btn\n ×\n li\n class food-item\n span Greek Yogurt\n span 150 cal\n button\n class delete-btn\n ×\n section\n id foods\n class common-foods\n h2 Common Foods\n div\n class food-grid\n div\n class food-card\n h3 Apple\n p 95 cal\n div\n class food-card\n h3 Chicken Breast\n p 165 cal\n div\n class food-card\n h3 White Rice\n p 205 cal\n div\n class food-card\n h3 Avocado\n p 240 cal\n div\n class food-card\n h3 Eggs\n p 70 cal\n div\n class food-card\n h3 Almonds\n p 170 cal\n section\n id reports\n class reports\n h2 Weekly Report\n div\n class chart-container\n canvas\n id calorie-chart\nfooter\n div\n class footer-content\n div\n class footer-links\n a About\n href about.html\n a Contact\n href contact.html\n a Privacy\n href privacy.html\n p Made with ❤️ for health-conscious people\nscript.js\n---style.css---\n:root {\n --primary: #4CAF50;\n --primary-dark: #388E3C;\n --secondary: #FF9800;\n --light: #FAFAFA;\n --dark: #212121;\n --gray: #757575;\n --light-gray: #E0E0E0;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n font-family: 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n}\n\nbody {\n background-color: var(--light);\n color: var(--dark);\n line-height: 1.6;\n}\n\nheader.hero {\n background: linear-gradient(135deg, var(--primary), var(--primary-dark));\n color: white;\n padding: 2rem 1rem;\n text-align: center;\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.5rem;\n font-weight: bold;\n}\n\n.nav-links {\n display: flex;\n gap: 1.5rem;\n}\n\n.nav-links a {\n color: white;\n text-decoration: none;\n transition: opacity 0.3s;\n}\n\n.nav-links a:hover {\n opacity: 0.8;\n}\n\n.hero-content {\n max-width: 800px;\n margin: 3rem auto;\n}\n\n.hero-content h1 {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n}\n\n.hero-content p {\n font-size: 1.2rem;\n margin-bottom: 2rem;\n opacity: 0.9;\n}\n\n.primary-button {\n background-color: white;\n color: var(--primary);\n padding: 0.8rem 1.5rem;\n border-radius: 50px;\n text-decoration: none;\n font-weight: bold;\n display: inline-block;\n transition: all 0.3s;\n}\n\n.primary-button:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 8px rgba(0,0,0,0.1);\n}\n\nmain {\n max-width: 1200px;\n margin: 2rem auto;\n padding: 0 1rem;\n}\n\nsection {\n margin-bottom: 3rem;\n}\n\nh2 {\n font-size: 1.8rem;\n margin-bottom: 1.5rem;\n color: var(--dark);\n}\n\n.stats-container {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n gap: 1rem;\n margin-bottom: 2rem;\n}\n\n.stat-card {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n text-align: center;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n}\n\n.stat-card h3 {\n font-size: 2rem;\n color: var(--primary);\n}\n\n.stat-card p {\n color: var(--gray);\n}\n\n.intake-form {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 2rem;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n color: var(--gray);\n}\n\ninput {\n width: 100%;\n padding: 0.8rem;\n border: 1px solid var(--light-gray);\n border-radius: 4px;\n font-size: 1rem;\n}\n\n.food-list {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n}\n\n.food-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n border-bottom: 1px solid var(--light-gray);\n}\n\n.food-item:last-child {\n border-bottom: none;\n}\n\n.delete-btn {\n background: none;\n border: none;\n color: var(--gray);\n font-size: 1.2rem;\n cursor: pointer;\n transition: color 0.3s;\n}\n\n.delete-btn:hover {\n color: var(--primary);\n}\n\n.food-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n gap: 1rem;\n}\n\n.food-card {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n text-align: center;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n transition: transform 0.3s;\n cursor: pointer;\n}\n\n.food-card:hover {\n transform: translateY(-5px);\n}\n\n.food-card h3 {\n margin-bottom: 0.5rem;\n}\n\n.chart-container {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n}\n\nfooter {\n background: var(--dark);\n color: white;\n padding: 2rem 1rem;\n text-align: center;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n}\n\n.footer-links {\n display: flex;\n justify-content: center;\n gap: 2rem;\n margin-bottom: 1.5rem;\n}\n\n.footer-links a {\n color: white;\n text-decoration: none;\n}\n\n.footer-links a:hover {\n text-decoration: underline;\n}\n\n@media (max-width: 768px) {\n nav {\n flex-direction: column;\n gap: 1rem;\n }\n \n .nav-links {\n flex-wrap: wrap;\n justify-content: center;\n }\n \n .hero-content h1 {\n font-size: 2rem;\n }\n \n .stats-container {\n grid-template-columns: 1fr 1fr;\n }\n \n .food-grid {\n grid-template-columns: 1fr 1fr;\n }\n}\n\n@media (max-width: 480px) {\n .stats-container {\n grid-template-columns: 1fr;\n }\n \n .food-grid {\n grid-template-columns: 1fr;\n }\n \n .footer-links {\n flex-direction: column;\n gap: 0.5rem;\n }\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', function() {\n // Form submission\n const foodForm = document.getElementById('food-form');\n const foodList = document.getElementById('recent-foods');\n \n if (foodForm) {\n foodForm.addEventListener('submit', function(e) {\n e.preventDefault();\n \n const foodName = document.getElementById('food-name').value;\n const foodCalories = document.getElementById('food-calories').value;\n \n if (foodName && foodCalories) {\n addFoodItem(foodName, foodCalories);\n foodForm.reset();\n }\n });\n }\n \n // Add food item to list\n function addFoodItem(name, calories) {\n const li = document.createElement('li');\n li.className = 'food-item';\n \n li.innerHTML = `\n ${name}\n ${calories} cal\n \n `;\n \n foodList.prepend(li);\n \n // Add delete functionality\n const deleteBtn = li.querySelector('.delete-btn');\n deleteBtn.addEventListener('click', function() {\n li.remove();\n });\n }\n \n // Initialize chart\n const chartCanvas = document.getElementById('calorie-chart');\n if (chartCanvas) {\n const ctx = chartCanvas.getContext('2d');\n \n // Sample data - in a real app this would come from your data\n const chart = new Chart(ctx, {\n type: 'line',\n data: {\n labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n datasets: [{\n label: 'Calories',\n data: [1800, 1950, 2100, 1850, 2200, 2400, 2000],\n borderColor: '#4CAF50',\n backgroundColor: 'rgba(76, 175, 80, 0.1)',\n fill: true,\n tension: 0.4\n }]\n },\n options: {\n responsive: true,\n plugins: {\n legend: {\n position: 'top',\n },\n },\n scales: {\n y: {\n beginAtZero: false\n }\n }\n }\n });\n }\n \n // Food card click handler\n const foodCards = document.querySelectorAll('.food-card');\n foodCards.forEach(card => {\n card.addEventListener('click', function() {\n const foodName = this.querySelector('h3').textContent;\n const calories = this.querySelector('p').textContent.match(/\\d+/)[0];\n \n document.getElementById('food-name').value = foodName;\n document.getElementById('food-calories').value = calories;\n \n // Scroll to form\n document.getElementById('dashboard').scrollIntoView({\n behavior: 'smooth'\n });\n });\n });\n \n // Delete button handlers for existing items\n const deleteButtons = document.querySelectorAll('.delete-btn');\n deleteButtons.forEach(btn => {\n btn.addEventListener('click', function() {\n this.parentElement.remove();\n });\n });\n});\n---end---"
+ },
+ "logprobs": null,
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 719,
+ "completion_tokens": 2886,
+ "total_tokens": 3605,
+ "prompt_tokens_details": {
+ "cached_tokens": 0
+ },
+ "prompt_cache_hit_tokens": 0,
+ "prompt_cache_miss_tokens": 719
+ },
+ "system_fingerprint": "fp_3d5141a69a_prod0225"
+ }
readme.scroll
Changed around line 1
+ # calorie.scroll.pub
+
+ Prompt: website
+ Agent: deepseek
+ Model: deepseek-chat
+
+ ## User prompt
+ calorie tracker
+
+ ## System prompt
+ You are an expert web developer. Create a website based on this request: "calorie tracker"
+
+ 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() {
+ // Form submission
+ const foodForm = document.getElementById('food-form');
+ const foodList = document.getElementById('recent-foods');
+
+ if (foodForm) {
+ foodForm.addEventListener('submit', function(e) {
+ e.preventDefault();
+
+ const foodName = document.getElementById('food-name').value;
+ const foodCalories = document.getElementById('food-calories').value;
+
+ if (foodName && foodCalories) {
+ addFoodItem(foodName, foodCalories);
+ foodForm.reset();
+ }
+ });
+ }
+
+ // Add food item to list
+ function addFoodItem(name, calories) {
+ const li = document.createElement('li');
+ li.className = 'food-item';
+
+ li.innerHTML = `
+ ${name}
+ ${calories} cal
+
+ `;
+
+ foodList.prepend(li);
+
+ // Add delete functionality
+ const deleteBtn = li.querySelector('.delete-btn');
+ deleteBtn.addEventListener('click', function() {
+ li.remove();
+ });
+ }
+
+ // Initialize chart
+ const chartCanvas = document.getElementById('calorie-chart');
+ if (chartCanvas) {
+ const ctx = chartCanvas.getContext('2d');
+
+ // Sample data - in a real app this would come from your data
+ const chart = new Chart(ctx, {
+ type: 'line',
+ data: {
+ labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+ datasets: [{
+ label: 'Calories',
+ data: [1800, 1950, 2100, 1850, 2200, 2400, 2000],
+ borderColor: '#4CAF50',
+ backgroundColor: 'rgba(76, 175, 80, 0.1)',
+ fill: true,
+ tension: 0.4
+ }]
+ },
+ options: {
+ responsive: true,
+ plugins: {
+ legend: {
+ position: 'top',
+ },
+ },
+ scales: {
+ y: {
+ beginAtZero: false
+ }
+ }
+ }
+ });
+ }
+
+ // Food card click handler
+ const foodCards = document.querySelectorAll('.food-card');
+ foodCards.forEach(card => {
+ card.addEventListener('click', function() {
+ const foodName = this.querySelector('h3').textContent;
+ const calories = this.querySelector('p').textContent.match(/\d+/)[0];
+
+ document.getElementById('food-name').value = foodName;
+ document.getElementById('food-calories').value = calories;
+
+ // Scroll to form
+ document.getElementById('dashboard').scrollIntoView({
+ behavior: 'smooth'
+ });
+ });
+ });
+
+ // Delete button handlers for existing items
+ const deleteButtons = document.querySelectorAll('.delete-btn');
+ deleteButtons.forEach(btn => {
+ btn.addEventListener('click', function() {
+ this.parentElement.remove();
+ });
+ });
+ });
style.css
Changed around line 1
+ :root {
+ --primary: #4CAF50;
+ --primary-dark: #388E3C;
+ --secondary: #FF9800;
+ --light: #FAFAFA;
+ --dark: #212121;
+ --gray: #757575;
+ --light-gray: #E0E0E0;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
+ }
+
+ body {
+ background-color: var(--light);
+ color: var(--dark);
+ line-height: 1.6;
+ }
+
+ header.hero {
+ background: linear-gradient(135deg, var(--primary), var(--primary-dark));
+ color: white;
+ padding: 2rem 1rem;
+ text-align: center;
+ }
+
+ nav {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 1rem;
+ }
+
+ .logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ }
+
+ .nav-links {
+ display: flex;
+ gap: 1.5rem;
+ }
+
+ .nav-links a {
+ color: white;
+ text-decoration: none;
+ transition: opacity 0.3s;
+ }
+
+ .nav-links a:hover {
+ opacity: 0.8;
+ }
+
+ .hero-content {
+ max-width: 800px;
+ margin: 3rem auto;
+ }
+
+ .hero-content h1 {
+ font-size: 2.5rem;
+ margin-bottom: 1rem;
+ }
+
+ .hero-content p {
+ font-size: 1.2rem;
+ margin-bottom: 2rem;
+ opacity: 0.9;
+ }
+
+ .primary-button {
+ background-color: white;
+ color: var(--primary);
+ padding: 0.8rem 1.5rem;
+ border-radius: 50px;
+ text-decoration: none;
+ font-weight: bold;
+ display: inline-block;
+ transition: all 0.3s;
+ }
+
+ .primary-button:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
+ }
+
+ main {
+ max-width: 1200px;
+ margin: 2rem auto;
+ padding: 0 1rem;
+ }
+
+ section {
+ margin-bottom: 3rem;
+ }
+
+ h2 {
+ font-size: 1.8rem;
+ margin-bottom: 1.5rem;
+ color: var(--dark);
+ }
+
+ .stats-container {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
+ gap: 1rem;
+ margin-bottom: 2rem;
+ }
+
+ .stat-card {
+ background: white;
+ border-radius: 8px;
+ padding: 1.5rem;
+ text-align: center;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+ }
+
+ .stat-card h3 {
+ font-size: 2rem;
+ color: var(--primary);
+ }
+
+ .stat-card p {
+ color: var(--gray);
+ }
+
+ .intake-form {
+ background: white;
+ border-radius: 8px;
+ padding: 1.5rem;
+ margin-bottom: 2rem;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+ }
+
+ .form-group {
+ margin-bottom: 1rem;
+ }
+
+ label {
+ display: block;
+ margin-bottom: 0.5rem;
+ color: var(--gray);
+ }
+
+ input {
+ width: 100%;
+ padding: 0.8rem;
+ border: 1px solid var(--light-gray);
+ border-radius: 4px;
+ font-size: 1rem;
+ }
+
+ .food-list {
+ background: white;
+ border-radius: 8px;
+ padding: 1.5rem;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+ }
+
+ .food-item {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 1rem 0;
+ border-bottom: 1px solid var(--light-gray);
+ }
+
+ .food-item:last-child {
+ border-bottom: none;
+ }
+
+ .delete-btn {
+ background: none;
+ border: none;
+ color: var(--gray);
+ font-size: 1.2rem;
+ cursor: pointer;
+ transition: color 0.3s;
+ }
+
+ .delete-btn:hover {
+ color: var(--primary);
+ }
+
+ .food-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
+ gap: 1rem;
+ }
+
+ .food-card {
+ background: white;
+ border-radius: 8px;
+ padding: 1.5rem;
+ text-align: center;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+ transition: transform 0.3s;
+ cursor: pointer;
+ }
+
+ .food-card:hover {
+ transform: translateY(-5px);
+ }
+
+ .food-card h3 {
+ margin-bottom: 0.5rem;
+ }
+
+ .chart-container {
+ background: white;
+ border-radius: 8px;
+ padding: 1.5rem;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
+ }
+
+ footer {
+ background: var(--dark);
+ color: white;
+ padding: 2rem 1rem;
+ text-align: center;
+ }
+
+ .footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ }
+
+ .footer-links {
+ display: flex;
+ justify-content: center;
+ gap: 2rem;
+ margin-bottom: 1.5rem;
+ }
+
+ .footer-links a {
+ color: white;
+ text-decoration: none;
+ }
+
+ .footer-links a:hover {
+ text-decoration: underline;
+ }
+
+ @media (max-width: 768px) {
+ nav {
+ flex-direction: column;
+ gap: 1rem;
+ }
+
+ .nav-links {
+ flex-wrap: wrap;
+ justify-content: center;
+ }
+
+ .hero-content h1 {
+ font-size: 2rem;
+ }
+
+ .stats-container {
+ grid-template-columns: 1fr 1fr;
+ }
+
+ .food-grid {
+ grid-template-columns: 1fr 1fr;
+ }
+ }
+
+ @media (max-width: 480px) {
+ .stats-container {
+ grid-template-columns: 1fr;
+ }
+
+ .food-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .footer-links {
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+ }