commit 630ffc56b3010704fc45a30732217a46d07a1faf
Author: root <root@hub.scroll.pub>
Date: 2024-12-24 00:47:08 +0000
Subject: Initial commit
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5e221b3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# merryfirs.scroll.pub
+Website generated from prompt: build me a website for a christmas tree farm. should have hours and phone number and location. on california ave in waihawa. and give it a clever name. and also ahve some animated snow coming down. and christmas colors and lights
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..5b7d54b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="Merry Firs Christmas Tree Farm in Wahiawa - Fresh, locally grown Christmas trees for your holiday season">
+ <meta name="keywords" content="christmas trees, tree farm, wahiawa, hawaii, holiday, christmas">
+ <title>Merry Firs Christmas Tree Farm | Wahiawa, HI</title>
+ <link rel="stylesheet" href="style.css">
+</head>
+<body>
+ <div class="snowfall"></div>
+ <header>
+ <div class="lights-container">
+ <div class="lights"></div>
+ </div>
+ <h1>Merry Firs<span class="subtitle">Christmas Tree Farm</span></h1>
+ <nav>
+ <a href="#about">About</a>
+ <a href="#hours">Hours</a>
+ <a href="#contact">Contact</a>
+ </nav>
+ </header>
+
+ <main>
+ <section id="hero">
+ <div class="hero-content">
+ <h2>Find Your Perfect Christmas Tree</h2>
+ <p>Family-owned farm bringing holiday joy since 1985</p>
+ </div>
+ </section>
+
+ <section id="about">
+ <h2>Welcome to Merry Firs</h2>
+ <p>Experience the magic of choosing your own Christmas tree in our scenic farm. Fresh-cut trees, wreaths, and holiday cheer!</p>
+ </section>
+
+ <section id="hours">
+ <h2>Farm Hours</h2>
+ <div class="hours-grid">
+ <div class="hours-card">
+ <h3>November 25 - December 23</h3>
+ <p>Monday - Friday: 10:00 AM - 7:00 PM</p>
+ <p>Saturday - Sunday: 8:00 AM - 8:00 PM</p>
+ </div>
+ </div>
+ </section>
+
+ <section id="contact">
+ <h2>Visit Us</h2>
+ <div class="contact-info">
+ <div>
+ <h3>Location</h3>
+ <p>1234 California Avenue</p>
+ <p>Wahiawa, HI 96786</p>
+ </div>
+ <div>
+ <h3>Contact</h3>
+ <p>Phone: (808) 555-0123</p>
+ <p>Email: info@merryfirs.scroll.pub</p>
+ </div>
+ </div>
+ </section>
+ </main>
+
+ <footer>
+ <p>Merry Firs Christmas Tree Farm</p>
+ <p>Bringing joy to Hawaiian homes every Christmas</p>
+ </footer>
+
+ <script src="script.js"></script>
+</body>
+</html>
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..afa21f1
--- /dev/null
+++ b/script.js
@@ -0,0 +1,61 @@
+document.addEventListener('DOMContentLoaded', () => {
+ createSnowfall();
+});
+
+function createSnowfall() {
+ const snowfall = document.querySelector('.snowfall');
+ const snowflakeCount = 50;
+
+ for (let i = 0; i < snowflakeCount; i++) {
+ createSnowflake(snowfall);
+ }
+}
+
+function createSnowflake(container) {
+ const snowflake = document.createElement('div');
+ snowflake.style.position = 'absolute';
+ snowflake.style.color = 'white';
+ snowflake.style.userSelect = 'none';
+ snowflake.style.fontSize = `${Math.random() * 10 + 5}px`;
+ snowflake.innerHTML = '❄';
+
+ const startPositionLeft = Math.random() * window.innerWidth;
+ const animationDuration = Math.random() * 3 + 2;
+ const opacity = Math.random() * 0.6 + 0.4;
+
+ snowflake.style.left = `${startPositionLeft}px`;
+ snowflake.style.top = '-20px';
+ snowflake.style.opacity = opacity;
+
+ container.appendChild(snowflake);
+
+ function animateSnowflake() {
+ let currentTop = -20;
+ let currentLeft = startPositionLeft;
+
+ function update() {
+ currentTop += 1;
+ currentLeft += Math.sin(currentTop * 0.05) * 0.5;
+
+ snowflake.style.top = `${currentTop}px`;
+ snowflake.style.left = `${currentLeft}px`;
+
+ if (currentTop > window.innerHeight) {
+ currentTop = -20;
+ currentLeft = Math.random() * window.innerWidth;
+ }
+
+ requestAnimationFrame(update);
+ }
+
+ update();
+ }
+
+ animateSnowflake();
+}
+
+window.addEventListener('resize', () => {
+ const snowfall = document.querySelector('.snowfall');
+ snowfall.innerHTML = '';
+ createSnowfall();
+});
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..ff44557
--- /dev/null
+++ b/style.css
@@ -0,0 +1,170 @@
+:root {
+ --christmas-red: #c41e3a;
+ --christmas-green: #165b33;
+ --gold: #ffd700;
+ --white: #fff;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Helvetica Neue', Arial, sans-serif;
+ line-height: 1.6;
+ background: linear-gradient(to bottom, #0a2f1f, #165b33);
+ color: var(--white);
+ overflow-x: hidden;
+}
+
+.snowfall {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 1000;
+}
+
+header {
+ background-color: rgba(0, 0, 0, 0.8);
+ padding: 1rem;
+ position: relative;
+ overflow: hidden;
+}
+
+.lights-container {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 10px;
+}
+
+.lights {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ background: repeating-linear-gradient(90deg,
+ var(--christmas-red) 0px,
+ var(--christmas-red) 10px,
+ transparent 10px,
+ transparent 20px,
+ var(--gold) 20px,
+ var(--gold) 30px,
+ transparent 30px,
+ transparent 40px,
+ var(--christmas-green) 40px,
+ var(--christmas-green) 50px);
+ animation: twinkle 1s infinite;
+}
+
+@keyframes twinkle {
+ 0%, 100% { opacity: 1; }
+ 50% { opacity: 0.5; }
+}
+
+h1 {
+ text-align: center;
+ font-size: 3rem;
+ color: var(--gold);
+ text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
+ margin-bottom: 1rem;
+}
+
+.subtitle {
+ display: block;
+ font-size: 1.5rem;
+ color: var(--white);
+}
+
+nav {
+ display: flex;
+ justify-content: center;
+ gap: 2rem;
+}
+
+nav a {
+ color: var(--white);
+ text-decoration: none;
+ font-size: 1.2rem;
+ transition: color 0.3s;
+}
+
+nav a:hover {
+ color: var(--gold);
+}
+
+#hero {
+ height: 60vh;
+ background-image: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
+ url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M50 10 L90 90 L10 90 Z" fill="%23165b33"/></svg>');
+ background-size: cover;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+
+.hero-content {
+ padding: 2rem;
+ background: rgba(0,0,0,0.7);
+ border-radius: 10px;
+}
+
+section {
+ padding: 4rem 2rem;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.hours-grid {
+ display: grid;
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+.hours-card {
+ background: rgba(0,0,0,0.7);
+ padding: 2rem;
+ border-radius: 10px;
+ text-align: center;
+ border: 2px solid var(--gold);
+}
+
+.contact-info {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+footer {
+ background-color: rgba(0,0,0,0.8);
+ text-align: center;
+ padding: 2rem;
+ margin-top: 4rem;
+}
+
+@media (max-width: 768px) {
+ h1 {
+ font-size: 2rem;
+ }
+
+ .subtitle {
+ font-size: 1rem;
+ }
+
+ nav {
+ flex-direction: column;
+ align-items: center;
+ gap: 1rem;
+ }
+
+ #hero {
+ height: 40vh;
+ }
+}