From e922e2dbd3d0b14124201d50e291a250766b798c Mon Sep 17 00:00:00 2001 From: olsch01 Date: Tue, 3 Mar 2026 08:58:15 -0500 Subject: [PATCH] Initial commit of existing project --- .DS_Store | Bin 0 -> 6148 bytes .gitignore | 3 + app.js | 134 ++++++++ hoa-cd-rates.log | 1 + index.html | 441 ++++++++++++++++++++++++++ logo_house copy 2.svg | 47 +++ logo_house copy.png | Bin 0 -> 77388 bytes logo_house copy.svg | 72 +++++ logo_house-cropped.svg | 1 + logo_house.svg | 47 +++ package.json | 14 + privacy.html | 183 +++++++++++ server.js | 137 ++++++++ styles.css | 691 +++++++++++++++++++++++++++++++++++++++++ terms.html | 174 +++++++++++ 15 files changed, 1945 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 app.js create mode 100644 hoa-cd-rates.log create mode 100644 index.html create mode 100644 logo_house copy 2.svg create mode 100644 logo_house copy.png create mode 100644 logo_house copy.svg create mode 100644 logo_house-cropped.svg create mode 100644 logo_house.svg create mode 100644 package.json create mode 100644 privacy.html create mode 100644 server.js create mode 100644 styles.css create mode 100644 terms.html diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 0 + ? `Launching in ${daysLeft} ${label}` + : 'Now Live!'; + + const bannerEl = document.getElementById('bannerCountdown'); + const signupEl = document.getElementById('signupCountdown'); + if (bannerEl) bannerEl.textContent = text; + if (signupEl) signupEl.textContent = text; +})(); + +// ── Form Handler ───────────────────────────────────────── +document.addEventListener('DOMContentLoaded', () => { + const form = document.getElementById('signupForm'); + const submitBtn = document.getElementById('submitBtn'); + const btnText = submitBtn?.querySelector('.btn-text'); + const btnLoading = submitBtn?.querySelector('.btn-loading'); + const successDiv = document.getElementById('signupSuccess'); + + if (!form) return; + + form.addEventListener('submit', async (e) => { + e.preventDefault(); + + const firstName = form.firstName.value.trim(); + const lastName = form.lastName.value.trim(); + const email = form.email.value.trim(); + + const orgName = form.orgName?.value.trim() || ''; + const state = form.state?.value || ''; + + // Basic client-side validation + if (!firstName || !lastName || !email || !orgName || !state) { + highlightEmpty(form); + return; + } + if (!isValidEmail(email)) { + form.email.style.borderColor = '#ef4444'; + form.email.focus(); + return; + } + + // Show loading state + setLoading(true); + + const payload = { + firstName, + lastName, + email, + orgName: form.orgName?.value.trim() || '', + state: form.state?.value || '', + role: form.role.value, + unitCount: form.unitCount.value, + betaInterest: form.betaInterest?.checked || false, + source: 'landing_page', + timestamp: new Date().toISOString(), + }; + + try { + const res = await fetch('/api/leads', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + + if (res.ok) { + showSuccess(); + } else { + const data = await res.json().catch(() => ({})); + if (res.status === 409) { + // Already registered + showSuccess('You\'re already on the list! We\'ll be in touch soon.'); + } else { + alert(data.error || 'Something went wrong. Please try again.'); + setLoading(false); + } + } + } catch (err) { + // Network error — fall back to localStorage so we don't lose the lead + saveLocally(payload); + showSuccess(); + } + }); + + function setLoading(on) { + if (!btnText || !btnLoading) return; + submitBtn.disabled = on; + btnText.classList.toggle('hidden', on); + btnLoading.classList.toggle('hidden', !on); + } + + function showSuccess(msg) { + form.classList.add('hidden'); + if (msg && successDiv) { + const p = successDiv.querySelector('p'); + if (p) p.textContent = msg; + } + successDiv?.classList.remove('hidden'); + } + + function highlightEmpty(f) { + ['firstName', 'lastName', 'email', 'orgName', 'state'].forEach(name => { + const el = f[name]; + if (el && !el.value.trim()) { + el.style.borderColor = '#ef4444'; + el.addEventListener('input', () => { el.style.borderColor = ''; }, { once: true }); + el.addEventListener('change', () => { el.style.borderColor = ''; }, { once: true }); + } + }); + } + + function isValidEmail(email) { + return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); + } + + function saveLocally(payload) { + try { + const existing = JSON.parse(localStorage.getItem('hoa_leads') || '[]'); + existing.push(payload); + localStorage.setItem('hoa_leads', JSON.stringify(existing)); + } catch (_) { /* best-effort */ } + } +}); diff --git a/hoa-cd-rates.log b/hoa-cd-rates.log new file mode 100644 index 0000000..0f6b59d --- /dev/null +++ b/hoa-cd-rates.log @@ -0,0 +1 @@ +Error response from daemon: No such container: hoa_financial_platform-backend diff --git a/index.html b/index.html new file mode 100644 index 0000000..89a115d --- /dev/null +++ b/index.html @@ -0,0 +1,441 @@ + + + + + + HOA LedgerIQ — AI-Powered HOA Finance Management + + + + + + + + + + + +
+ + + +
+ + + + + +
+
+
+
+ + AI-Powered HOA Finance Management +
+

+ Your HOA Finances,
+ Finally Under Control +

+

+ HOA LedgerIQ brings enterprise-grade AI analytics to community associations of any size. + Bank and Investment tracking, real-time budget insights, delinquency tracking, and intelligent + forecasting and planning — all in one beautifully simple platform. Stop wasting time with + outdated & manual spreadsheets, while optimizing your community's finances. +

+ +
+ Built for property managers, board members & CPAs +
+
+ + +
+
+
+ + + + LedgerIQ Dashboard +
+
+
+
Total Collected YTD
+
$412,850
+
↑ 8.2% vs last year
+
+
+
Delinquency Rate
+
3.4%
+
↓ 1.1% this quarter
+
+
+
Reserve Fund Health
+
92%
+
AI Forecast: On Track
+
+
+
+
+
+
+
+
+
+
+ + AI Insight: Reserve funding on pace for full replenishment by Q3. +
+
+
+
+
+ + +
+
+ Trusted workflow for +
+ Self-Managed HOAs + · + Property Management Firms + · + Community CPAs + · + Board Treasurers +
+
+
+ + +
+
+ +

Everything your HOA's
finances demand

+

From dues collection to reserve fund forecasting, LedgerIQ handles the heavy lifting so your board can focus on the community.

+ +
+
+
+

AI Financial Analytics

+

Receive intelligent AI Powered investment recommendations designed to maximize investment income while ensuring sufficient funding for operating costs and capital projects.

+
Powered by GPT-4
+
+
+
📊
+

Intelligent Cash Flow Visibility

+

Understand budget vs. actuals in real time, accurately forecast your cash management throughout the year to make intelligent decisions, and optimize capital project timing.

+
+
+
🏦
+

Reserve Fund Forecasting

+

AI-Enabled 5 Year Comprehensive Capital Project Planning. Easily understand the community's full inventory of assets, date of last repair and expected lifespan, estimated costs and timing to enable continuous planning capability around capital projects and ensure your community is on track — before the board meeting.

+
+
+
🔔
+

Delinquency Tracking & Alerts

+

Automated late-fee calculations, escalation workflows, and homeowner reminders. Reduce delinquencies without awkward board calls.

+
+
+
📄
+

One-Click Board Reports

+

Beautiful, professional PDF and Excel reports ready for every board meeting — income statements, balance sheets, variance analysis, and more.

+
+
+
🔒
+

Audit-Ready Compliance

+

Every transaction is timestamped, signed, and stored with a complete audit trail. Year-end CPA handoffs take minutes, not weeks.

+
+
+
+
+ + +
+
+
+ +

Optimize your Community's Finances

+

LedgerIQ's AI engine doesn't just review your data — it understands it. Get proactive anomaly alerts, funding shortfalls, investment strategy ideas around your predicted cash flow, spending pattern insights, and plain-English answers to complex financial questions without needing a CPA on speed dial.

+
    +
  • Anomaly detection on every transaction
  • +
  • Budget vs. actual variance alerts
  • +
  • Predictive cash flow modeling
  • +
  • Natural language financial Q&A
  • +
  • Automated year-end closing insights
  • +
+
+
+
What investment strategy should we implement given our forecasted cash flow?
+
+ ✦ LedgerIQ AI + Operating funds are currently under-utilized. With over $100k projected in cash by April, deploying $40k into a short-term CD significantly boosts interest income without compromising the ability to pay monthly expenses or handle emergencies. +
+
Are we on track to fund reserves fully by year-end?
+
+ ✦ LedgerIQ AI + Yes — at current contribution rate you'll hit 98% reserve funding by Dec 31. No corrective action needed. Reserve study renewal is due in March. +
+
+
+
+ + +
+
+ +

Pick the plan that fits your community

+

No setup fees. No contracts. Cancel anytime. All plans include a 30-day free trial.

+ +
+ + +
+
Starter
+
Perfect for small self-managed HOAs
+
$49/mo
+
Up to 75 units
+
    +
  • Account balance tracking
  • +
  • Investment account tracking
  • +
  • Dues collection tracking
  • +
  • Basic delinquency alerts
  • +
  • Monthly board-ready PDF reports
  • +
  • Monthly Actuals reconciliation
  • +
  • Role based access for board members (Up to 5 user accounts)
  • +
  • Email support
  • +
  • AI Analytics
  • +
  • Reserve forecasting
  • +
  • Multi-property management
  • +
+ Get Early Access +
+ + + + + +
+
Enterprise
+
For management companies & large communities
+
Request Quote
+
Unlimited units
+
    +
  • Everything in Professional
  • +
  • Multi-property management
  • +
  • 10-year reserve forecasting
  • +
  • Custom API integrations
  • +
  • Advanced AI anomaly detection
  • +
  • SLA-backed uptime guarantee
  • +
  • Custom onboarding & training
  • +
+ Get Early Access +
+ +
+
+
+ + + + + + + + + + diff --git a/logo_house copy 2.svg b/logo_house copy 2.svg new file mode 100644 index 0000000..f26d80b --- /dev/null +++ b/logo_house copy 2.svg @@ -0,0 +1,47 @@ + + + + diff --git a/logo_house copy.png b/logo_house copy.png new file mode 100644 index 0000000000000000000000000000000000000000..196dbd1154b311795915a7fcca4ddc513a85effa GIT binary patch literal 77388 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 h#CaLedi)f$ + + + diff --git a/logo_house-cropped.svg b/logo_house-cropped.svg new file mode 100644 index 0000000..7c6eeb9 --- /dev/null +++ b/logo_house-cropped.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/logo_house.svg b/logo_house.svg new file mode 100644 index 0000000..f26d80b --- /dev/null +++ b/logo_house.svg @@ -0,0 +1,47 @@ + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..db44a55 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "hoaledgeriq-website", + "version": "1.0.0", + "description": "HOA LedgerIQ marketing site + lead capture backend", + "main": "server.js", + "scripts": { + "start": "node server.js", + "dev": "node --watch server.js" + }, + "dependencies": { + "better-sqlite3": "^9.4.3", + "express": "^4.18.3" + } +} diff --git a/privacy.html b/privacy.html new file mode 100644 index 0000000..3f226d0 --- /dev/null +++ b/privacy.html @@ -0,0 +1,183 @@ + + + + + + Privacy Policy — HOA LedgerIQ + + + + + + + + + + + + + + + + + + + diff --git a/server.js b/server.js new file mode 100644 index 0000000..e3f9c33 --- /dev/null +++ b/server.js @@ -0,0 +1,137 @@ +/** + * HOA LedgerIQ — Lead Capture Backend + * Stack: Node.js + Express + better-sqlite3 + * + * Start: node server.js + * Leads DB: ./data/leads.db + */ + +'use strict'; + +require('dotenv').config(); + +const path = require('path'); +const fs = require('fs'); +const express = require('express'); +const Database = require('better-sqlite3'); + +// ── Config ────────────────────────────────────────────── +const PORT = process.env.PORT || 3000; +const DB_DIR = path.join(__dirname, 'data'); +const DB_PATH = path.join(DB_DIR, 'leads.db'); + +// ── DB setup ───────────────────────────────────────────── +fs.mkdirSync(DB_DIR, { recursive: true }); + +const db = new Database(DB_PATH); +db.pragma('journal_mode = WAL'); + +db.exec(` + CREATE TABLE IF NOT EXISTS leads ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + first_name TEXT NOT NULL, + last_name TEXT NOT NULL, + email TEXT NOT NULL UNIQUE, + org_name TEXT, + state TEXT, + role TEXT, + unit_count TEXT, + beta_interest INTEGER DEFAULT 0, + source TEXT DEFAULT 'landing_page', + created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')) + ); +`); + +// Migrate existing DBs: add new columns if they don't exist yet +const cols = db.pragma('table_info(leads)').map(c => c.name); +if (!cols.includes('org_name')) db.exec('ALTER TABLE leads ADD COLUMN org_name TEXT'); +if (!cols.includes('state')) db.exec('ALTER TABLE leads ADD COLUMN state TEXT'); +if (!cols.includes('beta_interest')) db.exec('ALTER TABLE leads ADD COLUMN beta_interest INTEGER DEFAULT 0'); + +// Prepared statements +const insertLead = db.prepare(` + INSERT INTO leads (first_name, last_name, email, org_name, state, role, unit_count, beta_interest, source) + VALUES (@firstName, @lastName, @email, @orgName, @state, @role, @unitCount, @betaInterest, @source) +`); + +const findByEmail = db.prepare(`SELECT id FROM leads WHERE email = ? LIMIT 1`); + +const getAllLeads = db.prepare(` + SELECT id, first_name, last_name, email, org_name, state, role, unit_count, beta_interest, source, created_at + FROM leads + ORDER BY created_at DESC +`); + +// ── App ─────────────────────────────────────────────────── +const app = express(); +app.use(express.json()); +app.use(express.static(__dirname)); // serve the marketing site + +// POST /api/leads — capture a new preview sign-up +app.post('/api/leads', (req, res) => { + const { firstName, lastName, email, orgName, state, role, unitCount, betaInterest, source } = req.body ?? {}; + + // Validate required fields + if (!firstName?.trim() || !lastName?.trim() || !email?.trim()) { + return res.status(400).json({ error: 'firstName, lastName, and email are required.' }); + } + if (!orgName?.trim()) { + return res.status(400).json({ error: 'Organization name is required.' }); + } + if (!state?.trim()) { + return res.status(400).json({ error: 'State is required.' }); + } + + // Simple email format check + const emailRx = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + if (!emailRx.test(email.trim())) { + return res.status(400).json({ error: 'Invalid email address.' }); + } + + // Check for duplicate + const existing = findByEmail.get(email.trim().toLowerCase()); + if (existing) { + return res.status(409).json({ error: 'This email is already on the list.', id: existing.id }); + } + + try { + const info = insertLead.run({ + firstName: firstName.trim(), + lastName: lastName.trim(), + email: email.trim().toLowerCase(), + orgName: orgName?.trim() ?? null, + state: state?.trim() ?? null, + role: role ?? null, + unitCount: unitCount ?? null, + betaInterest: betaInterest ? 1 : 0, + source: source ?? 'landing_page', + }); + + return res.status(201).json({ success: true, id: info.lastInsertRowid }); + } catch (err) { + if (err.code === 'SQLITE_CONSTRAINT_UNIQUE') { + return res.status(409).json({ error: 'This email is already on the list.' }); + } + console.error('DB error:', err); + return res.status(500).json({ error: 'Internal server error.' }); + } +}); + +// GET /api/leads — internal: list all leads (add auth before exposing publicly) +app.get('/api/leads', (req, res) => { + const secret = req.headers['x-admin-key']; + if (!secret || secret !== process.env.ADMIN_KEY) { + return res.status(401).json({ error: 'Unauthorized.' }); + } + const leads = getAllLeads.all(); + res.json({ count: leads.length, leads }); +}); + +// Health check +app.get('/api/health', (_req, res) => res.json({ status: 'ok', ts: new Date().toISOString() })); + +// ── Start ───────────────────────────────────────────────── +app.listen(PORT, () => { + console.log(`\n HOA LedgerIQ server running at http://localhost:${PORT}`); + console.log(` Leads DB: ${DB_PATH}\n`); +}); diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..898466f --- /dev/null +++ b/styles.css @@ -0,0 +1,691 @@ +/* ============================================= + HOA LedgerIQ — Marketing Site Styles + ============================================= */ + +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } + +:root { + --blue: #2563eb; + --blue-dark: #1d4ed8; + --blue-glow: rgba(37, 99, 235, 0.25); + --indigo: #4f46e5; + --teal: #0ea5e9; + --green: #22c55e; + --amber: #f59e0b; + --red: #ef4444; + --gray-50: #f8fafc; + --gray-100: #f1f5f9; + --gray-200: #e2e8f0; + --gray-400: #94a3b8; + --gray-600: #475569; + --gray-700: #334155; + --gray-800: #1e293b; + --gray-900: #0f172a; + --surface: #ffffff; + --radius: 12px; + --radius-lg: 20px; + --shadow: 0 4px 24px rgba(0,0,0,0.08); + --shadow-lg: 0 16px 64px rgba(0,0,0,0.14); +} + +html { scroll-behavior: smooth; } + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; + background: var(--gray-900); + color: var(--gray-100); + line-height: 1.65; + -webkit-font-smoothing: antialiased; +} + +.container { + max-width: 1120px; + margin: 0 auto; + padding: 0 24px; +} + +/* ---- Buttons ---- */ +.btn { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 12px 24px; + border-radius: 8px; + font-size: 15px; + font-weight: 600; + cursor: pointer; + text-decoration: none; + border: 2px solid transparent; + transition: all 0.18s ease; + white-space: nowrap; +} +.btn-primary { + background: var(--blue); + color: #fff; + border-color: var(--blue); +} +.btn-primary:hover { background: var(--blue-dark); border-color: var(--blue-dark); transform: translateY(-1px); box-shadow: 0 8px 24px var(--blue-glow); } +.btn-outline { + background: transparent; + color: var(--gray-100); + border-color: var(--gray-600); +} +.btn-outline:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-1px); } +.btn-ghost { + background: transparent; + color: var(--gray-400); + border-color: transparent; +} +.btn-ghost:hover { color: var(--gray-100); } +.btn-lg { padding: 16px 32px; font-size: 16px; border-radius: 10px; } +.hidden { display: none !important; } + +/* ---- Coming Soon Banner ---- */ +.coming-soon-banner { + background: linear-gradient(90deg, var(--indigo), var(--blue), var(--teal)); + padding: 12px 24px; + display: flex; + align-items: center; + justify-content: center; + gap: 16px; + flex-wrap: wrap; + font-size: 14px; + font-weight: 500; + text-align: center; +} +.banner-badge { + background: rgba(255,255,255,0.2); + border: 1px solid rgba(255,255,255,0.35); + padding: 3px 10px; + border-radius: 99px; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.06em; + color: #fff; + flex-shrink: 0; +} +.banner-text { color: rgba(255,255,255,0.9); } +.banner-cta { + background: #fff; + color: var(--indigo); + padding: 5px 14px; + border-radius: 6px; + font-weight: 700; + font-size: 13px; + text-decoration: none; + flex-shrink: 0; + transition: opacity 0.15s; +} +.banner-cta:hover { opacity: 0.9; } + +/* ---- Nav ---- */ +.nav { + position: sticky; + top: 0; + z-index: 100; + background: rgba(15, 23, 42, 0.85); + backdrop-filter: blur(16px); + border-bottom: 1px solid rgba(255,255,255,0.06); +} +.nav-inner { + max-width: 1120px; + margin: 0 auto; + padding: 0 24px; + height: 68px; + display: flex; + align-items: center; + gap: 32px; +} +.nav-logo { display: flex; align-items: center; text-decoration: none; } +.logo-img { height: 36px; width: auto; } +.logo-img--footer { height: 30px; } +.nav-links { + display: flex; + gap: 28px; + list-style: none; + margin-left: auto; +} +.nav-links a { + color: var(--gray-400); + text-decoration: none; + font-size: 15px; + font-weight: 500; + transition: color 0.15s; +} +.nav-links a:hover { color: var(--gray-100); } +.nav-btn { margin-left: 16px; padding: 9px 20px; font-size: 14px; } + +/* ---- Pulse dot ---- */ +.pulse-dot { + display: inline-block; + width: 8px; height: 8px; + background: var(--green); + border-radius: 50%; + position: relative; + flex-shrink: 0; +} +.pulse-dot::after { + content: ''; + position: absolute; + inset: -4px; + border-radius: 50%; + background: var(--green); + opacity: 0.4; + animation: pulse 1.8s infinite; +} +.pulse-dot--white { background: #fff; } +.pulse-dot--white::after { background: #fff; } +@keyframes pulse { + 0% { transform: scale(1); opacity: 0.4; } + 70% { transform: scale(2.2); opacity: 0; } + 100% { transform: scale(1); opacity: 0; } +} + +/* ---- Hero ---- */ +.hero { + position: relative; + overflow: hidden; + padding: 100px 0 80px; + text-align: center; +} +.hero-glow { + position: absolute; + top: -200px; left: 50%; + transform: translateX(-50%); + width: 900px; height: 600px; + background: radial-gradient(ellipse at center, rgba(79,70,229,0.35) 0%, transparent 70%); + pointer-events: none; +} +.hero-badge { + display: inline-flex; + align-items: center; + gap: 8px; + background: rgba(79,70,229,0.15); + border: 1px solid rgba(79,70,229,0.4); + color: #a5b4fc; + padding: 6px 16px; + border-radius: 99px; + font-size: 13px; + font-weight: 600; + letter-spacing: 0.02em; + margin-bottom: 28px; +} +.hero-headline { + font-size: clamp(40px, 7vw, 76px); + font-weight: 900; + line-height: 1.08; + letter-spacing: -0.03em; + color: #fff; + margin-bottom: 24px; +} +.gradient-text { + background: linear-gradient(135deg, #60a5fa, #a78bfa, #38bdf8); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} +.hero-sub { + max-width: 620px; + margin: 0 auto 36px; + font-size: 18px; + color: var(--gray-400); + line-height: 1.7; +} +.hero-actions { + display: flex; + gap: 16px; + justify-content: center; + flex-wrap: wrap; + margin-bottom: 20px; +} +.hero-trust { + font-size: 13px; + color: var(--gray-600); + margin-top: 8px; +} + +/* ---- Dashboard card (hero visual) ---- */ +.hero-visual { + margin: 60px auto 0; + max-width: 680px; + padding: 0 24px; +} +.dashboard-card { + background: var(--gray-800); + border: 1px solid rgba(255,255,255,0.08); + border-radius: var(--radius-lg); + overflow: hidden; + box-shadow: var(--shadow-lg), 0 0 80px rgba(79,70,229,0.18); + text-align: left; +} +.dash-header { + background: var(--gray-900); + padding: 12px 16px; + display: flex; + align-items: center; + gap: 7px; + border-bottom: 1px solid rgba(255,255,255,0.06); +} +.dash-dot { width: 12px; height: 12px; border-radius: 50%; } +.dash-dot.red { background: #ff5f57; } +.dash-dot.yellow { background: #febc2e; } +.dash-dot.green { background: #28c840; } +.dash-title { margin-left: 8px; font-size: 12px; color: var(--gray-600); font-weight: 500; } +.dash-body { padding: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } +.dash-stat { } +.stat-label { font-size: 11px; color: var(--gray-600); font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; } +.stat-value { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; } +.stat-delta { font-size: 11px; color: var(--gray-600); margin-top: 3px; } +.green-text { color: var(--green); } +.amber-text { color: var(--amber); } +.dash-chart { + grid-column: 1 / -1; + display: flex; + align-items: flex-end; + gap: 6px; + height: 72px; + background: rgba(255,255,255,0.02); + border-radius: 8px; + padding: 10px 12px 0; +} +.chart-bar { + flex: 1; + background: rgba(79,70,229,0.35); + border-radius: 4px 4px 0 0; + transition: background 0.2s; +} +.chart-bar.active { background: var(--blue); } +.dash-ai-chip { + grid-column: 1 / -1; + background: rgba(79,70,229,0.12); + border: 1px solid rgba(79,70,229,0.3); + border-radius: 8px; + padding: 10px 14px; + font-size: 12px; + color: #a5b4fc; + display: flex; + align-items: flex-start; + gap: 8px; +} +.ai-icon { font-size: 14px; flex-shrink: 0; } + +/* ---- Proof strip ---- */ +.proof-strip { + border-top: 1px solid rgba(255,255,255,0.06); + border-bottom: 1px solid rgba(255,255,255,0.06); + padding: 20px 0; + background: rgba(255,255,255,0.02); +} +.proof-inner { + display: flex; + align-items: center; + gap: 20px; + flex-wrap: wrap; + justify-content: center; +} +.proof-label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray-600); font-weight: 600; } +.proof-items { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; font-size: 14px; color: var(--gray-400); font-weight: 500; } +.sep { color: var(--gray-700); } + +/* ---- Section shared ---- */ +.section-label { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.1em; + color: var(--blue); + font-weight: 700; + margin-bottom: 12px; +} +.section-title { + font-size: clamp(28px, 4vw, 46px); + font-weight: 800; + letter-spacing: -0.025em; + color: #fff; + line-height: 1.15; + margin-bottom: 16px; +} +.section-sub { + font-size: 17px; + color: var(--gray-400); + max-width: 560px; + margin-bottom: 56px; +} + +/* ---- Features ---- */ +.features { padding: 100px 0; } +.features-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 20px; +} +.feature-card { + background: var(--gray-800); + border: 1px solid rgba(255,255,255,0.07); + border-radius: var(--radius); + padding: 28px; + transition: transform 0.18s, box-shadow 0.18s; +} +.feature-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); } +.feature-card--highlight { + background: linear-gradient(135deg, rgba(79,70,229,0.2), rgba(37,99,235,0.15)); + border-color: rgba(79,70,229,0.4); +} +.feature-icon { font-size: 24px; margin-bottom: 14px; } +.feature-card h3 { font-size: 17px; font-weight: 700; color: #fff; margin-bottom: 10px; } +.feature-card p { font-size: 14px; color: var(--gray-400); line-height: 1.65; } +.feature-tag { + display: inline-block; + background: rgba(79,70,229,0.18); + border: 1px solid rgba(79,70,229,0.35); + color: #a5b4fc; + font-size: 11px; + font-weight: 700; + padding: 3px 10px; + border-radius: 99px; + margin-top: 14px; + letter-spacing: 0.04em; +} + +/* ---- AI Section ---- */ +.ai-section { + background: linear-gradient(180deg, rgba(79,70,229,0.07) 0%, transparent 100%); + border-top: 1px solid rgba(255,255,255,0.06); + border-bottom: 1px solid rgba(255,255,255,0.06); + padding: 100px 0; +} +.ai-inner { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 64px; + align-items: center; +} +.ai-text h2 { + font-size: clamp(26px, 3.5vw, 42px); + font-weight: 800; + color: #fff; + line-height: 1.15; + letter-spacing: -0.02em; + margin-bottom: 16px; +} +.ai-text p { font-size: 16px; color: var(--gray-400); margin-bottom: 28px; line-height: 1.7; } +.ai-bullets { list-style: none; display: flex; flex-direction: column; gap: 12px; } +.ai-bullets li { font-size: 15px; color: var(--gray-300); display: flex; gap: 10px; align-items: flex-start; } +.check { color: var(--green); font-weight: 700; flex-shrink: 0; } +.ai-visual { display: flex; flex-direction: column; gap: 14px; } +.chat-bubble { + padding: 14px 18px; + border-radius: 12px; + font-size: 14px; + line-height: 1.6; + max-width: 90%; +} +.user-bubble { + background: var(--gray-700); + color: var(--gray-200); + align-self: flex-end; + border-bottom-right-radius: 4px; +} +.ai-bubble { + background: rgba(79,70,229,0.15); + border: 1px solid rgba(79,70,229,0.3); + color: var(--gray-200); + align-self: flex-start; + border-bottom-left-radius: 4px; +} +.ai-label { + display: block; + font-size: 11px; + font-weight: 700; + color: #a5b4fc; + margin-bottom: 6px; + text-transform: uppercase; + letter-spacing: 0.06em; +} + +/* ---- Pricing ---- */ +.pricing { padding: 100px 0; } +.pricing-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 20px; + align-items: stretch; +} +.pricing-card { + background: var(--gray-800); + border: 1px solid rgba(255,255,255,0.08); + border-radius: var(--radius-lg); + padding: 36px; + display: flex; + flex-direction: column; + position: relative; + transition: transform 0.18s, box-shadow 0.18s; +} +.pricing-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); } +.pricing-card--featured { + background: linear-gradient(160deg, rgba(79,70,229,0.25) 0%, rgba(37,99,235,0.15) 100%); + border-color: rgba(79,70,229,0.5); + box-shadow: 0 0 60px rgba(79,70,229,0.2); +} +.plan-badge { + position: absolute; + top: -14px; + left: 50%; + transform: translateX(-50%); + background: linear-gradient(90deg, var(--indigo), var(--blue)); + color: #fff; + font-size: 11px; + font-weight: 700; + padding: 4px 16px; + border-radius: 99px; + text-transform: uppercase; + letter-spacing: 0.07em; + white-space: nowrap; +} +.plan-name { font-size: 20px; font-weight: 800; color: #fff; margin-bottom: 4px; } +.plan-tagline { font-size: 13px; color: var(--gray-500); margin-bottom: 24px; } +.plan-price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 4px; } +.price-amount { font-size: 46px; font-weight: 900; letter-spacing: -0.03em; color: #fff; } +.price-period { font-size: 16px; color: var(--gray-500); } +.plan-units { font-size: 13px; color: var(--gray-500); margin-bottom: 28px; } +.plan-features { list-style: none; display: flex; flex-direction: column; gap: 11px; flex: 1; margin-bottom: 32px; } +.plan-features li { font-size: 14px; color: var(--gray-400); display: flex; align-items: flex-start; gap: 9px; } +.plan-features li.dim { color: var(--gray-700); } +.plan-features .check { color: var(--green); font-weight: 700; flex-shrink: 0; } +.plan-btn { width: 100%; justify-content: center; margin-top: auto; } + +/* ---- Signup Section ---- */ +.signup-section { + position: relative; + overflow: hidden; + padding: 100px 0 120px; +} +.signup-glow { + position: absolute; + top: 50%; left: 50%; + transform: translate(-50%, -50%); + width: 800px; height: 600px; + background: radial-gradient(ellipse, rgba(79,70,229,0.3) 0%, transparent 70%); + pointer-events: none; +} +.signup-card { + position: relative; + background: var(--gray-800); + border: 1px solid rgba(79,70,229,0.35); + border-radius: var(--radius-lg); + padding: 56px; + max-width: 760px; + margin: 0 auto; + text-align: center; + box-shadow: 0 0 80px rgba(79,70,229,0.2), var(--shadow-lg); +} +.countdown-badge { + display: inline-flex; + align-items: center; + gap: 10px; + background: rgba(79,70,229,0.18); + border: 1px solid rgba(79,70,229,0.4); + color: #a5b4fc; + padding: 6px 16px; + border-radius: 99px; + font-size: 13px; + font-weight: 700; + margin-bottom: 20px; + letter-spacing: 0.02em; +} +.signup-card h2 { + font-size: clamp(24px, 3.5vw, 38px); + font-weight: 800; + color: #fff; + letter-spacing: -0.025em; + margin-bottom: 12px; +} +.signup-card > p { + color: var(--gray-400); + font-size: 16px; + margin-bottom: 40px; + max-width: 480px; + margin-left: auto; + margin-right: auto; +} +.signup-form { text-align: left; } +.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } +.form-group { + display: flex; + flex-direction: column; + gap: 6px; + margin-bottom: 16px; +} +.form-group label { font-size: 13px; font-weight: 600; color: var(--gray-400); } +.form-group input, +.form-group select { + background: var(--gray-900); + border: 1px solid rgba(255,255,255,0.1); + border-radius: 8px; + padding: 12px 14px; + color: var(--gray-100); + font-size: 15px; + font-family: inherit; + width: 100%; + outline: none; + transition: border-color 0.15s; + -webkit-appearance: none; +} +.form-group select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 14px center; + padding-right: 36px; +} +.form-group input:focus, +.form-group select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(37,99,235,0.2); } +.form-group input::placeholder { color: var(--gray-700); } +.form-group select option { background: var(--gray-800); color: var(--gray-100); } +.signup-btn { width: 100%; justify-content: center; margin-top: 8px; } +.form-fine { font-size: 12px; color: var(--gray-600); text-align: center; margin-top: 14px; } + +/* ---- Success state ---- */ +.signup-success { padding: 20px 0; } +.success-icon { + width: 64px; height: 64px; + background: rgba(34,197,94,0.15); + border: 2px solid var(--green); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 26px; + color: var(--green); + margin: 0 auto 20px; + font-weight: 700; +} +.signup-success h3 { font-size: 24px; font-weight: 800; color: #fff; margin-bottom: 10px; } +.signup-success p { font-size: 16px; color: var(--gray-400); } + +/* ---- Footer ---- */ +.footer { border-top: 1px solid rgba(255,255,255,0.06); padding: 60px 0 0; } +.footer-inner { + display: grid; + grid-template-columns: 1.5fr 1fr; + gap: 48px; + padding-bottom: 48px; + border-bottom: 1px solid rgba(255,255,255,0.06); +} +.footer-logo p { font-size: 14px; color: var(--gray-600); margin-top: 12px; line-height: 1.6; } +.footer-links { display: flex; gap: 48px; } +.footer-col { display: flex; flex-direction: column; gap: 12px; } +.footer-col-title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gray-600); margin-bottom: 4px; } +.footer-col a { color: var(--gray-500); text-decoration: none; font-size: 14px; transition: color 0.15s; } +.footer-col a:hover { color: var(--gray-200); } +.footer-bottom { + padding: 20px 0; + font-size: 13px; + color: var(--gray-700); +} + +/* ---- Request Quote pricing ---- */ +.price-amount--quote { + font-size: 32px; + background: linear-gradient(135deg, #60a5fa, #a78bfa); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* ---- Login nav button ---- */ +.nav-login { + padding: 9px 20px; + font-size: 14px; +} + +/* ---- Beta checkbox group ---- */ +.beta-group { + display: flex; + align-items: flex-start; + gap: 10px; + margin: 20px 0 4px; + cursor: pointer; +} +.beta-group input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: var(--blue); + margin-top: 2px; + flex-shrink: 0; + cursor: pointer; +} +.beta-group label { + font-size: 14px; + color: var(--gray-200); + cursor: pointer; + font-weight: 500; +} +.beta-disclaimer { + font-size: 12px; + color: var(--gray-600); + line-height: 1.55; + margin-bottom: 16px; + padding-left: 28px; +} + +/* ---- Responsive ---- */ +@media (max-width: 900px) { + .features-grid { grid-template-columns: repeat(2, 1fr); } + .pricing-grid { grid-template-columns: 1fr; max-width: 440px; margin: 0 auto; } + .pricing-card--featured { order: -1; } + .ai-inner { grid-template-columns: 1fr; gap: 48px; } + .footer-inner { grid-template-columns: 1fr; } + .footer-links { flex-wrap: wrap; gap: 32px; } + .dash-body { grid-template-columns: 1fr 1fr; } +} + +@media (max-width: 640px) { + .features-grid { grid-template-columns: 1fr; } + .form-row { grid-template-columns: 1fr; } + .signup-card { padding: 36px 24px; } + .nav-links { display: none; } + .hero-headline { font-size: 36px; } + .coming-soon-banner { gap: 10px; } + .banner-text { display: none; } + .dash-body { grid-template-columns: 1fr; } +} diff --git a/terms.html b/terms.html new file mode 100644 index 0000000..1ef86e5 --- /dev/null +++ b/terms.html @@ -0,0 +1,174 @@ + + + + + + Terms of Service — HOA LedgerIQ + + + + + + + + + + + + + + + + + + +